@volter/browser-wali 0.1.171 → 0.1.173

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.
@@ -1,11 +1,14 @@
1
1
  import { closeSharedPipe, pollSharedPipe, readSharedPipe, readSharedPipeSync, sharedPipeGeneration, sharedPipeAvailable, writeSharedPipeSync, } from "./process-bridge.js";
2
2
  import { WaliDescriptionRegistry, WaliProcessDescriptorTable } from "./descriptors.js";
3
3
  import { gatherWaliWriteVector } from "./write-vector.js";
4
- const PIPE_FD_MIN = 10_000;
4
+ import { hostWait } from "./host-idle.js";
5
+ import { waliSignalWaitState } from "./signal-interruption.js";
5
6
  const PIPE_FD_MAX = 19_999;
6
7
  const PIPE_SLOT_COUNT = 64;
7
8
  const PIPE_PAYLOAD_BYTES = 64 * 1024;
8
- const PIPE_CONTROL_WORDS = 8;
9
+ const PIPE_CONTROL_WORDS = 10;
10
+ const FIFO_READER_OPEN = 8;
11
+ const FIFO_WRITER_OPEN = 9;
9
12
  const PIPE_READER_REFS = 3;
10
13
  const PIPE_WRITER_REFS = 4;
11
14
  const O_NONBLOCK = 0x800;
@@ -25,10 +28,21 @@ export function createWaliSharedPipeState(table = new WaliProcessDescriptorTable
25
28
  slots: new SharedArrayBuffer(PIPE_SLOT_COUNT * Int32Array.BYTES_PER_ELEMENT),
26
29
  controls: new SharedArrayBuffer(PIPE_SLOT_COUNT * PIPE_CONTROL_WORDS * Int32Array.BYTES_PER_ELEMENT),
27
30
  payloads: new SharedArrayBuffer(PIPE_SLOT_COUNT * PIPE_PAYLOAD_BYTES),
31
+ fifoWaits: new SharedArrayBuffer(65_536 * Int32Array.BYTES_PER_ELEMENT),
28
32
  };
29
33
  localTables.set(state.table, table);
30
34
  return state;
31
35
  }
36
+ const namedSlots = new WeakMap();
37
+ /** Storage inode retained by a named pipe description, including after unlink. */
38
+ export function waliNamedPipeInode(table, fd) {
39
+ const description = table.get(fd);
40
+ return description?.kind === "pipe" ? description.value.inode : undefined;
41
+ }
42
+ export function waliNamedPipePath(table, fd) {
43
+ const description = table.get(fd);
44
+ return description?.kind === "pipe" ? description.value.path : undefined;
45
+ }
32
46
  const localTables = new WeakMap();
33
47
  /** The table's and descriptions' views, made once per state rather than per poll. */
34
48
  const entryViews = new WeakMap();
@@ -75,15 +89,30 @@ export function pollWaliSharedPipeState(state, fd, events) {
75
89
  const entry = pipeEntry(state, fd);
76
90
  if (entry === 0)
77
91
  return;
92
+ const id = Atomics.load(new Int32Array(state.table), fd);
93
+ return pollPipeEntry(state, entry, id, events);
94
+ }
95
+ function pollPipeEntry(state, entry, id, events) {
78
96
  const slot = Math.abs(entry) - 1;
79
- return pollSharedPipe({
80
- control: state.controls,
81
- payload: state.payloads,
82
- role: entry > 0 ? "reader" : "writer",
83
- controlOffset: slot * PIPE_CONTROL_WORDS * Int32Array.BYTES_PER_ELEMENT,
84
- payloadOffset: slot * PIPE_PAYLOAD_BYTES,
85
- payloadLength: PIPE_PAYLOAD_BYTES,
86
- }, events);
97
+ const handle = {
98
+ control: state.controls, payload: state.payloads, role: entry > 0 ? "reader" : "writer",
99
+ controlOffset: slot * PIPE_CONTROL_WORDS * 4, payloadOffset: slot * PIPE_PAYLOAD_BYTES, payloadLength: PIPE_PAYLOAD_BYTES,
100
+ };
101
+ let ready = pollSharedPipe(handle, events);
102
+ if (Atomics.load(new Int32Array(state.slots), slot) === 2) {
103
+ const flags = Atomics.load(new Int32Array(state.descriptions), id * 3 + 1);
104
+ if ((flags & 3) === 2)
105
+ ready |= pollSharedPipe({ ...handle, role: "writer" }, events);
106
+ else if (entry > 0 && (ready & 0x10)) {
107
+ // A nonblocking reader reports EOF but not POLLHUP until a writer
108
+ // has connected since its open (Linux fifo_poll / f_version).
109
+ const mark = Atomics.load(new Int32Array(state.fifoWaits), id);
110
+ const control = new Int32Array(state.controls, slot * PIPE_CONTROL_WORDS * 4, PIPE_CONTROL_WORDS);
111
+ if (mark && Atomics.load(control, FIFO_WRITER_OPEN) === ((mark - 1) | 0))
112
+ ready &= ~0x10;
113
+ }
114
+ }
115
+ return ready;
87
116
  }
88
117
  export function waliSharedPipeGeneration(state, fd) {
89
118
  if (!Number.isSafeInteger(fd) || fd < 0 || fd >= 65_536)
@@ -98,17 +127,19 @@ export function waliSharedPipeGeneration(state, fd) {
98
127
  controlOffset: (Math.abs(entry) - 1) * PIPE_CONTROL_WORDS * Int32Array.BYTES_PER_ELEMENT,
99
128
  });
100
129
  }
101
- /** Process-wide anonymous pipes shared by the root Wasm instance and every pthread. */
130
+ /** Anonymous and named pipes shared by every process and pthread in one kernel. */
102
131
  export class WaliSharedPipeHost {
103
132
  memory;
104
133
  state;
105
134
  remote;
135
+ waitForNamedOpen;
106
136
  table;
107
137
  slots;
108
- constructor(memory, state, table, remote) {
138
+ constructor(memory, state, table, remote, waitForNamedOpen = false) {
109
139
  this.memory = memory;
110
140
  this.state = state;
111
141
  this.remote = remote;
142
+ this.waitForNamedOpen = waitForNamedOpen;
112
143
  this.table = table ?? localTables.get(state.table);
113
144
  this.slots = new Int32Array(state.slots);
114
145
  }
@@ -121,13 +152,19 @@ export class WaliSharedPipeHost {
121
152
  }
122
153
  pollDescriptor(fd, events) {
123
154
  const entry = this.entry(fd);
124
- return entry === 0 ? undefined : pollSharedPipe(this.handle(entry), events);
155
+ if (entry === 0)
156
+ return;
157
+ const id = Atomics.load(new Int32Array(this.state.table), fd);
158
+ return pollPipeEntry(this.state, entry, id, events);
125
159
  }
126
160
  /** proc/self/fd reopens the pipe inode with new access/status flags, not dup's description. */
127
161
  reopen(fd, flags) {
128
162
  const entry = this.entry(fd);
129
163
  if (!entry || !this.table)
130
164
  return -9n;
165
+ const named = this.table && waliNamedPipeInode(this.table, fd);
166
+ if (named)
167
+ return this.openNamed(named.retain(), flags, waliNamedPipePath(this.table, fd));
131
168
  if ((flags & 3) === 2)
132
169
  return -95n; // A bidirectional pipe description needs two endpoint references.
133
170
  const slot = Math.abs(entry) - 1;
@@ -140,6 +177,137 @@ export class WaliSharedPipeHost {
140
177
  Atomics.store(this.table.registry.pipeMetadata, this.table.entries[next].description * 3 + 1, flags & O_NONBLOCK);
141
178
  return BigInt(next);
142
179
  }
180
+ // Emscripten WasmFS refuses FIFO creation. Linux fs/pipe.c fifo_open
181
+ // supplies these rendezvous rules (https://man7.org/linux/man-pages/man7/fifo.7.html);
182
+ // storage and the shared pipe remain this kernel's seam.
183
+ /** Called only by the descriptor owner; waiting happens in the guest realm. */
184
+ openNamed(inode, flags, path) {
185
+ if (!this.table || (flags & 3) === 3 || (flags & 0x200000)) {
186
+ inode.close();
187
+ return -95n;
188
+ }
189
+ let names = namedSlots.get(this.state.controls);
190
+ if (!names) {
191
+ names = new Map();
192
+ namedSlots.set(this.state.controls, names);
193
+ }
194
+ const stat = inode.stat();
195
+ const key = `${stat.dev ?? 1}:${stat.ino}`;
196
+ let slot = names.get(key);
197
+ if (slot !== undefined && (Atomics.load(this.slots, slot) !== 2
198
+ || (Atomics.load(this.control(slot), PIPE_READER_REFS) === 0
199
+ && Atomics.load(this.control(slot), PIPE_WRITER_REFS) === 0))) {
200
+ names.delete(key);
201
+ slot = undefined;
202
+ }
203
+ if (slot === undefined) {
204
+ slot = this.allocateSlot();
205
+ if (slot < 0) {
206
+ inode.close();
207
+ return -24n;
208
+ }
209
+ this.control(slot).fill(0);
210
+ Atomics.store(this.slots, slot, 2);
211
+ names.set(key, slot);
212
+ }
213
+ const control = this.control(slot);
214
+ const access = flags & 3;
215
+ const reading = access !== 1, writing = access !== 0;
216
+ if (access === 1 && (flags & O_NONBLOCK) && Atomics.load(control, PIPE_READER_REFS) === 0) {
217
+ if (Atomics.load(control, PIPE_WRITER_REFS) === 0) {
218
+ names.delete(key);
219
+ Atomics.store(this.slots, slot, 0);
220
+ }
221
+ inode.close();
222
+ return -6n;
223
+ }
224
+ const fd = this.freeDescriptor(0);
225
+ if (fd < 0) {
226
+ if (Atomics.load(control, PIPE_READER_REFS) === 0 && Atomics.load(control, PIPE_WRITER_REFS) === 0) {
227
+ names.delete(key);
228
+ Atomics.store(this.slots, slot, 0);
229
+ }
230
+ inode.close();
231
+ return -24n;
232
+ }
233
+ const entry = (reading ? 1 : -1) * (slot + 1);
234
+ const peerIndex = reading ? FIFO_WRITER_OPEN : FIFO_READER_OPEN;
235
+ const peerRefs = reading ? PIPE_WRITER_REFS : PIPE_READER_REFS;
236
+ const unpaired = access !== 2 && Atomics.load(control, peerRefs) === 0;
237
+ const baseline = Atomics.load(control, peerIndex);
238
+ const release = () => {
239
+ if (reading)
240
+ closeSharedPipe(this.handle(slot + 1));
241
+ if (writing)
242
+ closeSharedPipe(this.handle(-(slot + 1)));
243
+ inode.close();
244
+ if (Atomics.load(control, PIPE_READER_REFS) === 0 && Atomics.load(control, PIPE_WRITER_REFS) === 0) {
245
+ names.delete(key);
246
+ Atomics.store(this.slots, slot, 0);
247
+ }
248
+ };
249
+ const description = (() => {
250
+ try {
251
+ return this.table.registry.create("pipe", { pipe: slot, side: reading ? "reader" : "writer", inode, path }, release);
252
+ }
253
+ catch (error) {
254
+ inode.close();
255
+ if (Atomics.load(control, PIPE_READER_REFS) === 0 && Atomics.load(control, PIPE_WRITER_REFS) === 0) {
256
+ names.delete(key);
257
+ Atomics.store(this.slots, slot, 0);
258
+ }
259
+ throw error;
260
+ }
261
+ })();
262
+ Atomics.store(this.table.registry.pipeMetadata, description.id * 3, entry);
263
+ Atomics.store(this.table.registry.pipeMetadata, description.id * 3 + 1, flags & (O_NONBLOCK | 3));
264
+ Atomics.store(new Int32Array(this.state.fifoWaits), description.id, unpaired ? baseline + 1 : 0);
265
+ this.table.set(fd, description, flags & O_CLOEXEC ? 1 : 0);
266
+ if (reading) {
267
+ Atomics.add(control, PIPE_READER_REFS, 1);
268
+ Atomics.add(control, FIFO_READER_OPEN, 1);
269
+ Atomics.notify(control, FIFO_READER_OPEN);
270
+ }
271
+ if (writing) {
272
+ Atomics.add(control, PIPE_WRITER_REFS, 1);
273
+ Atomics.add(control, FIFO_WRITER_OPEN, 1);
274
+ Atomics.notify(control, FIFO_WRITER_OPEN);
275
+ }
276
+ Atomics.add(control, 5, 1);
277
+ Atomics.add(control, 6, 1);
278
+ Atomics.notify(control, 5);
279
+ Atomics.notify(control, 6);
280
+ return BigInt(fd);
281
+ }
282
+ finishOpen(fd) {
283
+ const entry = this.entry(fd);
284
+ if (!entry || Atomics.load(this.slots, Math.abs(entry) - 1) !== 2 || (this.statusFlags(fd) & (O_NONBLOCK | 3)) === 2
285
+ || (this.statusFlags(fd) & O_NONBLOCK))
286
+ return BigInt(fd);
287
+ const id = Atomics.load(new Int32Array(this.state.table), fd);
288
+ const waits = new Int32Array(this.state.fifoWaits);
289
+ const mark = Atomics.load(waits, id);
290
+ if (!mark)
291
+ return BigInt(fd);
292
+ const control = this.control(Math.abs(entry) - 1);
293
+ const index = entry > 0 ? FIFO_WRITER_OPEN : FIFO_READER_OPEN;
294
+ while (Atomics.load(control, index) === ((mark - 1) | 0)) {
295
+ const signal = waliSignalWaitState();
296
+ if (signal.pending) {
297
+ if (this.remote)
298
+ this.remote.syscall("SYS_close", [fd]);
299
+ else
300
+ this.table.close(fd);
301
+ return -4n;
302
+ }
303
+ hostWait(control, index, (mark - 1) | 0, undefined, undefined, {
304
+ resource: `FIFO ${entry > 0 ? "reader" : "writer"} open: opposite endpoint opens`, deadline: null,
305
+ interrupt: { words: control, index }, guards: signal.guards,
306
+ });
307
+ }
308
+ Atomics.store(waits, id, 0);
309
+ return BigInt(fd);
310
+ }
143
311
  // Emscripten libsyscall.js descriptor dispatch (MIT), 862dc0d4; pipe
144
312
  // counts and status remain in our kernel's shared description/table.
145
313
  ioctl(fd, request, argument) {
@@ -182,6 +350,7 @@ export class WaliSharedPipeHost {
182
350
  // Each call tests the descriptor and calls the pipe's or the fallback's
183
351
  // handler with its own arguments: two closures and an argument array per
184
352
  // call were most of what this layer cost a file's syscall (2026-09-28).
353
+ SYS_ftruncate: (fd, length) => this.isPipeFd(Number(fd)) ? -22n : fallback.SYS_ftruncate?.(fd, length) ?? -38n,
185
354
  SYS_fsync: (fd) => this.isPipeFd(Number(fd)) ? -22n : fallback.SYS_fsync?.(fd) ?? -38n,
186
355
  SYS_fdatasync: (fd) => this.isPipeFd(Number(fd)) ? -22n : fallback.SYS_fdatasync?.(fd) ?? -38n,
187
356
  SYS_close: (fd) => this.isPipeFd(Number(fd)) ? this.close(Number(fd)) : fallback.SYS_close?.(fd) ?? -38n,
@@ -202,7 +371,10 @@ export class WaliSharedPipeHost {
202
371
  SYS_writev: (fd, pointer, count) => this.isPipeFd(Number(fd)) ? this.writev(Number(fd), Number(pointer), Number(count))
203
372
  : fallback.SYS_writev?.(fd, pointer, count) ?? -38n,
204
373
  SYS_lseek: (fd, offset, whence) => this.isPipeFd(Number(fd)) ? -29n : fallback.SYS_lseek?.(fd, offset, whence) ?? -38n,
205
- SYS_fstat: (fd, pointer) => this.isPipeFd(Number(fd)) ? this.fstat(Number(fd), Number(pointer)) : fallback.SYS_fstat?.(fd, pointer) ?? -38n,
374
+ SYS_fstat: (fd, pointer) => this.isPipeFd(Number(fd))
375
+ ? Atomics.load(this.slots, Math.abs(this.entry(Number(fd))) - 1) === 2
376
+ ? fallback.SYS_fstat?.(fd, pointer) ?? -38n : this.fstat(Number(fd), Number(pointer))
377
+ : fallback.SYS_fstat?.(fd, pointer) ?? -38n,
206
378
  SYS_dup: (fd) => this.isPipeFd(Number(fd)) ? this.duplicate(Number(fd)) : fallback.SYS_dup?.(fd) ?? -38n,
207
379
  SYS_dup2: (fd, target) => this.isPipeFd(Number(fd)) ? this.duplicate(Number(fd), Number(target), 3, false, fallback)
208
380
  : fallback.SYS_dup2?.(fd, target) ?? -38n,
@@ -215,6 +387,16 @@ export class WaliSharedPipeHost {
215
387
  : fallback.SYS_fcntl?.(fd, command, argument) ?? -38n,
216
388
  SYS_poll: (pointer, count, timeout) => this.poll(Number(pointer), Number(count), Number(timeout), () => delegate("SYS_poll", [pointer, count, timeout])),
217
389
  };
390
+ if (this.waitForNamedOpen) {
391
+ for (const name of ["SYS_open", "SYS_openat"]) {
392
+ const open = result[name];
393
+ if (open)
394
+ result[name] = (...args) => {
395
+ const value = BigInt(open(...args) ?? -38n);
396
+ return value < 0n ? value : this.finishOpen(Number(value));
397
+ };
398
+ }
399
+ }
218
400
  if (this.remote) {
219
401
  for (const name of ["SYS_pipe", "SYS_pipe2", "SYS_close", "SYS_dup", "SYS_dup2", "SYS_dup3", "SYS_fcntl"]) {
220
402
  const local = result[name];
@@ -258,6 +440,8 @@ export class WaliSharedPipeHost {
258
440
  return -22n;
259
441
  if (!this.validRange(pointer, length))
260
442
  return -14n;
443
+ if ((this.statusFlags(fd) & 3) === 1)
444
+ return -9n;
261
445
  const read = this.statusFlags(fd) & O_NONBLOCK ? readSharedPipe : readSharedPipeSync;
262
446
  const value = read(this.handle(this.entry(fd)), length);
263
447
  if (typeof value === "bigint")
@@ -270,7 +454,9 @@ export class WaliSharedPipeHost {
270
454
  return -22n;
271
455
  if (!this.validRange(pointer, length))
272
456
  return -14n;
273
- return writeSharedPipeSync(this.handle(this.entry(fd)), this.bytes().slice(pointer, pointer + length), Boolean(this.statusFlags(fd) & O_NONBLOCK));
457
+ if (this.entry(fd) > 0 && (this.statusFlags(fd) & 3) !== 2)
458
+ return -9n;
459
+ return writeSharedPipeSync(this.writeHandle(fd), this.bytes().slice(pointer, pointer + length), Boolean(this.statusFlags(fd) & O_NONBLOCK));
274
460
  }
275
461
  readv(fd, pointer, count) {
276
462
  if (!Number.isSafeInteger(count) || count < 0 || count > 1024)
@@ -296,6 +482,8 @@ export class WaliSharedPipeHost {
296
482
  }
297
483
  // One read consumes the currently available bytes. Reading each iovec
298
484
  // separately could park after already consuming data from the first.
485
+ if ((this.statusFlags(fd) & 3) === 1)
486
+ return -9n;
299
487
  const read = this.statusFlags(fd) & O_NONBLOCK ? readSharedPipe : readSharedPipeSync;
300
488
  const value = read(this.handle(this.entry(fd)), total);
301
489
  if (typeof value === "bigint")
@@ -312,8 +500,10 @@ export class WaliSharedPipeHost {
312
500
  return BigInt(value.byteLength);
313
501
  }
314
502
  writev(fd, pointer, count) {
503
+ if (this.entry(fd) > 0 && (this.statusFlags(fd) & 3) !== 2)
504
+ return -9n;
315
505
  const value = gatherWaliWriteVector(this.memory(), pointer, count);
316
- return typeof value === "bigint" ? value : writeSharedPipeSync(this.handle(this.entry(fd)), value, Boolean(this.statusFlags(fd) & O_NONBLOCK));
506
+ return typeof value === "bigint" ? value : writeSharedPipeSync(this.writeHandle(fd), value, Boolean(this.statusFlags(fd) & O_NONBLOCK));
317
507
  }
318
508
  fstat(fd, pointer) {
319
509
  if (!this.validRange(pointer, 144))
@@ -350,7 +540,7 @@ export class WaliSharedPipeHost {
350
540
  if (command === F_GETFL)
351
541
  return BigInt(this.statusFlags(fd) | (this.entry(fd) < 0 ? 1 : 0));
352
542
  if (command === F_SETFL) {
353
- Atomics.store(new Int32Array(this.state.descriptions), entry.description * 3 + 1, argument & O_NONBLOCK);
543
+ Atomics.store(new Int32Array(this.state.descriptions), entry.description * 3 + 1, (this.statusFlags(fd) & 3) | (argument & O_NONBLOCK));
354
544
  return 0n;
355
545
  }
356
546
  return -22n;
@@ -393,8 +583,25 @@ export class WaliSharedPipeHost {
393
583
  }
394
584
  allocateSlot() {
395
585
  for (let slot = 0; slot < this.slots.length; slot += 1) {
396
- if (Atomics.compareExchange(this.slots, slot, 0, 1) === 0)
586
+ // Descriptor ownership can end before a separately retained browser
587
+ // endpoint. Its later close changes the shared counts, not the owner's
588
+ // registry callback. Allocation is serialized by this owner: reclaim
589
+ // only when BOTH counts are zero, never while an endpoint is live.
590
+ if (Atomics.load(this.slots, slot) !== 0) {
591
+ const control = this.control(slot);
592
+ if (Atomics.load(control, PIPE_READER_REFS) === 0 && Atomics.load(control, PIPE_WRITER_REFS) === 0)
593
+ Atomics.store(this.slots, slot, 0);
594
+ }
595
+ if (Atomics.compareExchange(this.slots, slot, 0, 1) === 0) {
596
+ // A named FIFO whose exported endpoint closed last can leave an
597
+ // inode-to-slot cache entry. Reusing the slot ends that identity.
598
+ const names = namedSlots.get(this.state.controls);
599
+ if (names)
600
+ for (const [key, heldSlot] of names)
601
+ if (heldSlot === slot)
602
+ names.delete(key);
397
603
  return slot;
604
+ }
398
605
  }
399
606
  return -1;
400
607
  }
@@ -405,7 +612,7 @@ export class WaliSharedPipeHost {
405
612
  }
406
613
  return -1;
407
614
  }
408
- allocateDescriptor(entry, minimum = PIPE_FD_MIN) {
615
+ allocateDescriptor(entry, minimum = 0) {
409
616
  const fd = this.freeDescriptor(minimum);
410
617
  if (fd < 0)
411
618
  return fd;
@@ -421,6 +628,7 @@ export class WaliSharedPipeHost {
421
628
  return fd;
422
629
  }
423
630
  entry(fd) { return pipeEntry(this.state, fd); }
631
+ writeHandle(fd) { return this.handle(-Math.abs(this.entry(fd))); }
424
632
  handle(entry) {
425
633
  const slot = Math.abs(entry) - 1;
426
634
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"shared-pipes.js","sourceRoot":"","sources":["../src/shared-pipes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,OAAO,GAAG,QAAQ,CAAC;AAUzB,MAAM,UAAU,yBAAyB,CAAC,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,uBAAuB,EAAE,CAAC;IAC7G,MAAM,KAAK,GAAwB;QACjC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,MAA2B;QACtD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAA2B;QACrE,KAAK,EAAE,IAAI,iBAAiB,CAAC,eAAe,GAAG,UAAU,CAAC,iBAAiB,CAAC;QAC5E,QAAQ,EAAE,IAAI,iBAAiB,CAAC,eAAe,GAAG,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACpG,QAAQ,EAAE,IAAI,iBAAiB,CAAC,eAAe,GAAG,kBAAkB,CAAC;KACtE,CAAC;IACF,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,WAAW,GAAG,IAAI,OAAO,EAAiD,CAAC;AAEjF,qFAAqF;AACrF,MAAM,UAAU,GAAG,IAAI,OAAO,EAAwE,CAAC;AACvG,2EAA2E;AAC3E,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,+DAA+D;AAC/D,IAAI,SAA0C,CAAC;AAC/C,IAAI,SAAsE,CAAC;AAC3E,SAAS,SAAS,CAAC,KAA0B,EAAE,EAAU;IACvD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAC;IAClE,IAAI,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAC/I,SAAS,GAAG,KAAK,CAAC;IAAC,SAAS,GAAG,KAAK,CAAC;IACrC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACvC,SAAS,GAAG,SAAS,CAAC;IAAC,SAAS,GAAG,SAAS,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA0B,EAAE,EAAU;IAC9E,OAAO,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAA0B,EAC1B,EAAU,EACV,MAAc;IAEd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO;IAChE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QACrC,aAAa,EAAE,IAAI,GAAG,kBAAkB,GAAG,UAAU,CAAC,iBAAiB;QACvE,aAAa,EAAE,IAAI,GAAG,kBAAkB;QACxC,aAAa,EAAE,kBAAkB;KAClC,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA0B,EAAE,EAAU;IAC7E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO;IAChE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO;IACxB,OAAO,oBAAoB,CAAC;QAC1B,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QACrC,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,UAAU,CAAC,iBAAiB;KACzF,CAAC,CAAC;AACL,CAAC;AAED,uFAAuF;AACvF,MAAM,OAAO,kBAAkB;IAKV;IACA;IAEA;IAPF,KAAK,CAAyC;IAC9C,KAAK,CAAa;IAEnC,YACmB,MAAgC,EAChC,KAA0B,EAC3C,KAAkC,EACjB,MAAwE;QAHxE,WAAM,GAAN,MAAM,CAA0B;QAChC,UAAK,GAAL,KAAK,CAAqB;QAE1B,WAAM,GAAN,MAAM,CAAkE;QAEzF,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,wBAAwB,CAAC,EAAU;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,EAAU,EAAE,MAAc;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,+FAA+F;IAC/F,MAAM,CAAC,EAAU,EAAE,KAAa;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,kEAAkE;QACtG,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;QACnH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,QAAgB;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO;QACxB,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,CAAC;QAChC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC;YACjE,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC;YAChE,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC;IACd,CAAC;IAED,OAAO,CAAC,WAAwD,EAAE;QAChE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAA4B,EAA0B,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3H,MAAM,MAAM,GAAsC;YAChD,GAAG,QAAQ;YACX,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;mBAC1F,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvD,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpD,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,wEAAwE;YACxE,yEAAyE;YACzE,wEAAwE;YACxE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;YACtF,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;YAC9F,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;YACxG,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnH,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YACpD,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC5E,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YAC/D,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrH,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YACrD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC7E,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YAChE,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC5E,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAC/D,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC7E,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAChE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnH,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;YACpD,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrH,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;YACrD,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YACtH,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;YAC3I,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;YACxG,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC;gBAClH,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;YAC3C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;oBACnE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAE,QAAQ,CAAC;gBACtG,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;YAClD,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAChG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;YACvD,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAC9C,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CACvG;SACF,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC1G,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvG,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,IAAI,CAAC,OAAe,EAAE,KAAa;QACzC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,MAAM,IAAI,CAAC;gBAAE,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC;QACd,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;QAC3H,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,IAAI,CAAC,EAAU,EAAE,OAAe,EAAE,MAAc;QACtD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,MAAc;QACvD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QACnD,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACrJ,CAAC;IAEO,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,KAAa;QACtD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC;QAC3E,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QACtD,MAAM,OAAO,GAA4C,EAAE,CAAC;QAC5D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACvD,KAAK,IAAI,MAAM,CAAC;YAChB,IAAI,KAAK,GAAG,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC;YACrC,IAAI,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YAChE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,IAAI,MAAM,CAAC;YACf,IAAI,IAAI,KAAK,KAAK,CAAC,UAAU;gBAAE,MAAM;QACvC,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,EAAU,EAAE,OAAe,EAAE,KAAa;QACvD,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACjJ,CAAC;IAEO,KAAK,CAAC,EAAU,EAAE,OAAe;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,WAAW,CAAC,EAAU;QAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,QAAgB,EAAE,QAAqD;QAChH,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAM,CAAC,eAAe;gBAAE,OAAO,CAAC,GAAG,CAAC;YACtI,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,KAAK,eAAe,EAAE,QAAQ,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;QACvC,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAC5E,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;YACzG,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC;IACd,CAAC;IAEO,SAAS,CAAC,EAAU,EAAE,MAAe,EAAE,OAAO,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAC7E,YAAyD,EAAE;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1E,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAClD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAM,CAAC,eAAe;YAAE,OAAO,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,EAAU,IAAY,OAAO,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC,OAAe,EAAE,KAAa,EAAE,QAAgB,EAAE,QAAsC;QACnG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QACrH,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9E,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,YAAY;QAClB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,WAAW,IAAI,EAAE,GAAG,IAAI,CAAC,KAAM,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC;YAChG,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,OAAO,GAAG,WAAW;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE;YAClH,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;gBAChG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,EAAU,IAAY,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,CAAC,KAAa;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC5B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC5B,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACrC,aAAa,EAAE,IAAI,GAAG,kBAAkB,GAAG,UAAU,CAAC,iBAAiB;YACvE,aAAa,EAAE,IAAI,GAAG,kBAAkB;YACxC,aAAa,EAAE,kBAAkB;SAClC,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,IAAI,GAAG,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,EACxD,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAEO,KAAK,KAAiB,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,KAAe,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/D,UAAU,CAAC,OAAe,EAAE,MAAc;QAChD,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;eAC9F,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"shared-pipes.js","sourceRoot":"","sources":["../src/shared-pipes.ts"],"names":[],"mappings":"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"}
@@ -202,6 +202,7 @@ export declare class SnapshotWaliFileSystem implements WaliFileSystem {
202
202
  private takeSpare;
203
203
  writeFileSync(path: string, data: string | Uint8Array): void;
204
204
  createFileSync(path: string, mode: number): void;
205
+ createFifoSync(path: string, mode: number): void;
205
206
  mkdirSync(path: string, options?: {
206
207
  recursive?: boolean;
207
208
  }): void;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-filesystem.d.ts","sourceRoot":"","sources":["../src/snapshot-filesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-filesystem.d.ts","sourceRoot":"","sources":["../src/snapshot-filesystem.ts"],"names":[],"mappings":"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"}
@@ -536,7 +536,7 @@ export class SnapshotWaliFileSystem {
536
536
  statNode(node) {
537
537
  const size = node.content?.byteLength ?? node.size ?? 0;
538
538
  return {
539
- isFile: () => node.type === "file",
539
+ isFile: () => node.type === "file" && (node.mode & 0o170000) !== 0o010000,
540
540
  isDirectory: () => node.type === "directory",
541
541
  size,
542
542
  mode: node.mode,
@@ -588,7 +588,7 @@ export class SnapshotWaliFileSystem {
588
588
  chmod: (mode) => {
589
589
  check();
590
590
  this.mutate(() => {
591
- node.mode = mode & 0o7777;
591
+ node.mode = (node.mode & 0o170000) | (mode & 0o7777);
592
592
  node.ctimeMs = realtimeMilliseconds();
593
593
  this.markNodeMutation(node);
594
594
  });
@@ -872,6 +872,13 @@ export class SnapshotWaliFileSystem {
872
872
  this.nodes.get(normalize(path)).mode = mode & 0o7777;
873
873
  });
874
874
  }
875
+ createFifoSync(path, mode) {
876
+ this.mutate(() => {
877
+ this.createFileSync(path, mode);
878
+ // createFileSync initializes permissions; set kind before publication.
879
+ this.nodes.get(normalize(path)).mode |= 0o010000;
880
+ });
881
+ }
875
882
  mkdirSync(path, options) {
876
883
  this.mutate(() => {
877
884
  const normalized = normalize(path);
@@ -1051,7 +1058,7 @@ export class SnapshotWaliFileSystem {
1051
1058
  const node = this.node(normalized);
1052
1059
  if (!node)
1053
1060
  throw new Error(`ENOENT: no such file or directory, chmod '${normalized}'`);
1054
- node.mode = mode & 0o7777;
1061
+ node.mode = (node.mode & 0o170000) | (mode & 0o7777);
1055
1062
  node.ctimeMs = realtimeMilliseconds();
1056
1063
  this.markMutation(normalized);
1057
1064
  });