mdzilla 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,34 @@
1
1
  import { parseMeta, renderToMarkdown, renderToText } from "md4x";
2
2
  import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
3
+ import { existsSync, watch } from "node:fs";
3
4
  import { basename, dirname, extname, join } from "node:path";
4
- import { existsSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
6
6
  import { init, renderToHtml, renderToText as renderToText$1 } from "md4x/napi";
7
7
  import { highlightText } from "@speed-highlight/core";
8
8
  //#region web/.output/server/index.mjs
9
9
  globalThis.__nitro_main__ = import.meta.url;
10
- var v = Object.defineProperty, y = (e, t) => () => (e && (t = e(e = 0)), t), b = (e, t) => {
10
+ var y = Object.defineProperty, b = (e, t) => () => (e && (t = e(e = 0)), t), x = (e, t) => {
11
11
  let n = {};
12
- for (var r in e) v(n, r, {
12
+ for (var r in e) y(n, r, {
13
13
  get: e[r],
14
14
  enumerable: !0
15
15
  });
16
- return t || v(n, Symbol.toStringTag, { value: `Module` }), n;
16
+ return t || y(n, Symbol.toStringTag, { value: `Module` }), n;
17
17
  };
18
18
  globalThis.__nitro_vite_envs__ = {};
19
- var x, ee = y((() => {
20
- x = (() => {
19
+ var S, ee = b((() => {
20
+ S = (() => {
21
21
  let e = function() {};
22
22
  return e.prototype = Object.create(null), Object.freeze(e.prototype), e;
23
23
  })();
24
- })), te, S, ne = y((() => {
25
- te = URL, S = Response;
24
+ })), te, C, ne = b((() => {
25
+ te = URL, C = Response;
26
26
  }));
27
27
  function re(e) {
28
28
  return decodeURI(e.includes(`%25`) ? e.replace(/%25/g, `%2525`) : e);
29
29
  }
30
30
  function ie(e = ``) {
31
- return e.replace(_e, ``);
31
+ return e.replace(Se, ``);
32
32
  }
33
33
  function ae(e, t = 200) {
34
34
  return !e || (typeof e == `string` && (e = +e), e < 100 || e > 599) ? t : e;
@@ -38,68 +38,68 @@ function oe(e, t) {
38
38
  if (t !== `object`) return t === `boolean` || t === `number` || t === `string`;
39
39
  if (typeof e.toJSON == `function` || Array.isArray(e)) return !0;
40
40
  if (typeof e.pipe == `function` || typeof e.pipeTo == `function`) return !1;
41
- if (e instanceof x) return !0;
41
+ if (e instanceof S) return !0;
42
42
  let n = Object.getPrototypeOf(e);
43
43
  return n === Object.prototype || n === null;
44
44
  }
45
- function C(e, t, n = {}) {
46
- if (typeof e?.then == `function`) return (e.catch?.((e) => e) || Promise.resolve(e)).then((e) => C(e, t, n));
45
+ function w(e, t, n = {}) {
46
+ if (typeof e?.then == `function`) return (e.catch?.((e) => e) || Promise.resolve(e)).then((e) => w(e, t, n));
47
47
  let r = se(e, t, n);
48
- if (typeof r?.then == `function`) return C(r, t, n);
48
+ if (typeof r?.then == `function`) return w(r, t, n);
49
49
  let { onResponse: i } = n;
50
50
  return i ? Promise.resolve(i(r, t)).then(() => r) : r;
51
51
  }
52
52
  function se(e, t, n, r) {
53
- if (e === ve) return new S(null);
54
- if (e === P && (e = new N({
53
+ if (e === Ce) return new C(null);
54
+ if (e === I && (e = new F({
55
55
  status: 404,
56
56
  message: `Cannot find any route matching [${t.req.method}] ${t.url}`
57
57
  })), e && e instanceof Error) {
58
- let i = N.isError(e), a = i ? e : new N(e);
58
+ let i = F.isError(e), a = i ? e : new F(e);
59
59
  i || (a.unhandled = !0, e?.stack && (a.stack = e.stack)), a.unhandled && !n.silent && console.error(a);
60
- let { onError: o } = n, s = t[k]?.[j];
60
+ let { onError: o } = n, s = t[N]?.[be];
61
61
  return o && !r ? Promise.resolve(o(a, t)).catch((e) => e).then((r) => se(r ?? e, t, n, !0)) : ue(a, n.debug, s);
62
62
  }
63
- let i = t[k], a = i?.[A];
64
- if (t[k] = void 0, !(e instanceof Response)) {
63
+ let i = t[N], a = i?.[ye];
64
+ if (t[N] = void 0, !(e instanceof Response)) {
65
65
  let r = ce(e, t, n), o = r.status || i?.status;
66
- return new S(le(t.req.method, o) ? null : r.body, {
66
+ return new C(le(t.req.method, o) ? null : r.body, {
67
67
  status: o,
68
68
  statusText: r.statusText || i?.statusText,
69
- headers: r.headers && a ? w(r.headers, a) : r.headers || a
69
+ headers: r.headers && a ? T(r.headers, a) : r.headers || a
70
70
  });
71
71
  }
72
72
  if (!a || r || !e.ok) return e;
73
73
  try {
74
- return w(e.headers, a, e.headers), e;
74
+ return T(e.headers, a, e.headers), e;
75
75
  } catch {
76
- return new S(le(t.req.method, e.status) ? null : e.body, {
76
+ return new C(le(t.req.method, e.status) ? null : e.body, {
77
77
  status: e.status,
78
78
  statusText: e.statusText,
79
- headers: w(e.headers, a)
79
+ headers: T(e.headers, a)
80
80
  });
81
81
  }
82
82
  }
83
- function w(e, t, n = new Headers(e)) {
83
+ function T(e, t, n = new Headers(e)) {
84
84
  for (let [e, r] of t) e === `set-cookie` ? n.append(e, r) : n.set(e, r);
85
85
  return n;
86
86
  }
87
87
  function ce(e, t, n) {
88
88
  if (e == null) return {
89
89
  body: ``,
90
- headers: ye
90
+ headers: Te
91
91
  };
92
92
  let r = typeof e;
93
93
  if (r === `string`) return { body: e };
94
94
  if (e instanceof Uint8Array) return t.res.headers.set(`content-length`, e.byteLength.toString()), { body: e };
95
- if (e instanceof F || e?.constructor?.name === `HTTPResponse`) return e;
95
+ if (e instanceof L || e?.constructor?.name === `HTTPResponse`) return e;
96
96
  if (oe(e, r)) return {
97
97
  body: JSON.stringify(e, void 0, n.debug ? 2 : void 0),
98
- headers: R
98
+ headers: z
99
99
  };
100
100
  if (r === `bigint`) return {
101
101
  body: e.toString(),
102
- headers: R
102
+ headers: z
103
103
  };
104
104
  if (e instanceof Blob) {
105
105
  let t = new Headers({
@@ -117,8 +117,8 @@ function le(e, t) {
117
117
  return e === `HEAD` || t === 100 || t === 101 || t === 102 || t === 204 || t === 205 || t === 304;
118
118
  }
119
119
  function ue(e, t, n) {
120
- let r = e.headers ? w(R, e.headers) : new Headers(R);
121
- return n && (r = w(r, n)), new S(JSON.stringify({
120
+ let r = e.headers ? T(z, e.headers) : new Headers(z);
121
+ return n && (r = T(r, n)), new C(JSON.stringify({
122
122
  ...e.toJSON(),
123
123
  stack: t && e.stack ? e.stack.split(`
124
124
  `).map((e) => e.trim()) : void 0
@@ -128,25 +128,25 @@ function ue(e, t, n) {
128
128
  headers: r
129
129
  });
130
130
  }
131
- function de(e, t, n, r = 0) {
131
+ function E(e, t, n, r = 0) {
132
132
  if (r === t.length) return n(e);
133
- let i = t[r], a, o, s = () => a ? o : (a = !0, o = de(e, t, n, r + 1), o), c = i(e, s);
134
- return fe(c) ? s() : typeof c?.then == `function` ? c.then((e) => fe(e) ? s() : e) : c;
133
+ let i = t[r], a, o, s = () => a ? o : (a = !0, o = E(e, t, n, r + 1), o), c = i(e, s);
134
+ return de(c) ? s() : typeof c?.then == `function` ? c.then((e) => de(e) ? s() : e) : c;
135
135
  }
136
- function fe(e) {
137
- return e === void 0 || e === P;
136
+ function de(e) {
137
+ return e === void 0 || e === I;
138
138
  }
139
- function pe(e) {
140
- let t = new x();
139
+ function fe(e) {
140
+ let t = new S();
141
141
  if (!e || e === `?`) return t;
142
142
  let n = e.length, r = ``, i = ``, a = -1, o = -1, s = !1, c = !1, l = !1, u = !1, d = !1, f = 0;
143
143
  for (let p = 0; p < n + 1; p++) switch (f = p === n ? 38 : e.charCodeAt(p), f) {
144
144
  case 38:
145
145
  if (d = o > a, d || (o = p), r = e.slice(a + 1, o), d || r.length > 0) {
146
- if (l && (r = r.replace(z, ` `)), s) try {
146
+ if (l && (r = r.replace(Ee, ` `)), s) try {
147
147
  r = decodeURIComponent(r);
148
148
  } catch {}
149
- if (d && (i = e.slice(o + 1, p), u && (i = i.replace(z, ` `)), c)) try {
149
+ if (d && (i = e.slice(o + 1, p), u && (i = i.replace(Ee, ` `)), c)) try {
150
150
  i = decodeURIComponent(i);
151
151
  } catch {}
152
152
  let n = t[r];
@@ -166,59 +166,85 @@ function pe(e) {
166
166
  }
167
167
  return t;
168
168
  }
169
- function me(e) {
170
- return pe((e.url || new URL(e.req.url)).search.slice(1));
169
+ function pe(e) {
170
+ return fe((e.url || new URL(e.req.url)).search.slice(1));
171
171
  }
172
- function T(e) {
173
- if (typeof e == `function`) return he(e);
172
+ function D(e) {
173
+ if (typeof e == `function`) return me(e);
174
174
  let t = e.handler || (e.fetch ? function(t) {
175
175
  return e.fetch(t.req);
176
- } : B);
177
- return Object.assign(he(e.middleware?.length ? function(n) {
178
- return de(n, e.middleware, t);
176
+ } : De);
177
+ return Object.assign(me(e.middleware?.length ? function(n) {
178
+ return E(n, e.middleware, t);
179
179
  } : t), e);
180
180
  }
181
- function he(e) {
181
+ function me(e) {
182
182
  return `fetch` in e ? e : Object.assign(e, { fetch: (t) => {
183
183
  typeof t == `string` && (t = new URL(t, `http://_`)), t instanceof URL && (t = new Request(t));
184
- let n = new M(t);
184
+ let n = new P(t);
185
185
  try {
186
- return Promise.resolve(C(e(n), n));
186
+ return Promise.resolve(w(e(n), n));
187
187
  } catch (e) {
188
- return Promise.resolve(C(e, n));
188
+ return Promise.resolve(w(e, n));
189
189
  }
190
190
  } });
191
191
  }
192
- function E(e) {
192
+ function O(e) {
193
193
  let t, n;
194
- return T(function(r) {
194
+ return D(function(r) {
195
195
  return t ? t(r) : (n ??= Promise.resolve(e()).then(function(e) {
196
- if (t = D(e) || D(e.default), typeof t != `function`) throw TypeError(`Invalid lazy handler`, { cause: { resolved: e } });
196
+ if (t = k(e) || k(e.default), typeof t != `function`) throw TypeError(`Invalid lazy handler`, { cause: { resolved: e } });
197
197
  return t;
198
198
  })).then((e) => e(r));
199
199
  });
200
200
  }
201
- function D(e) {
201
+ function k(e) {
202
202
  if (typeof e == `function`) return e;
203
203
  if (typeof e?.handler == `function`) return e.handler;
204
204
  if (typeof e?.fetch == `function`) return function(t) {
205
205
  return e.fetch(t.req);
206
206
  };
207
207
  }
208
- var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
209
- ee(), ne(), O = `h3.internal.event.`, k = Symbol.for(`${O}res`), A = Symbol.for(`${O}res.headers`), j = Symbol.for(`${O}res.err.headers`), M = class {
208
+ function A(e) {
209
+ return e.split(/\r\n|\r|\n/).map((e) => `: ${e}\n`).join(``) + `
210
+ `;
211
+ }
212
+ function j(e) {
213
+ let t = ``;
214
+ e.id && (t += `id: ${he(e.id)}\n`), e.event && (t += `event: ${he(e.event)}\n`), typeof e.retry == `number` && Number.isInteger(e.retry) && (t += `retry: ${e.retry}\n`);
215
+ let n = typeof e.data == `string` ? e.data : ``;
216
+ for (let e of n.split(/\r\n|\r|\n/)) t += `data: ${e}\n`;
217
+ return t += `
218
+ `, t;
219
+ }
220
+ function he(e) {
221
+ return e.replace(/[\n\r]/g, ``);
222
+ }
223
+ function ge(e) {
224
+ let t = ``;
225
+ for (let n of e) t += j(n);
226
+ return t;
227
+ }
228
+ function _e(e) {
229
+ e.res.headers.set(`content-type`, `text/event-stream`), e.res.headers.set(`cache-control`, `private, no-cache, no-store, no-transform, must-revalidate, max-age=0`), e.res.headers.set(`x-accel-buffering`, `no`), e.req.headers.get(`connection`) === `keep-alive` && e.res.headers.set(`connection`, `keep-alive`);
230
+ }
231
+ function ve(e, t) {
232
+ return new Ae(e, t);
233
+ }
234
+ var M, N, ye, be, P, xe, Se, F, I, Ce, L, R, we, Te, z, Ee, De, Oe, ke, Ae, je = b((() => {
235
+ ee(), ne(), M = `h3.internal.event.`, N = Symbol.for(`${M}res`), ye = Symbol.for(`${M}res.headers`), be = Symbol.for(`${M}res.err.headers`), P = class {
210
236
  app;
211
237
  req;
212
238
  url;
213
239
  context;
214
240
  static __is_event__ = !0;
215
241
  constructor(e, t, n) {
216
- this.context = t || e.context || new x(), this.req = e, this.app = n;
242
+ this.context = t || e.context || new S(), this.req = e, this.app = n;
217
243
  let r = e._url, i = r && r instanceof URL ? r : new te(e.url);
218
244
  i.pathname.includes(`%`) && (i.pathname = re(i.pathname)), this.url = i;
219
245
  }
220
246
  get res() {
221
- return this[k] ||= new ge();
247
+ return this[N] ||= new xe();
222
248
  }
223
249
  get runtime() {
224
250
  return this.req.runtime;
@@ -244,16 +270,16 @@ var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
244
270
  get method() {
245
271
  return this.req.method;
246
272
  }
247
- }, ge = class {
273
+ }, xe = class {
248
274
  status;
249
275
  statusText;
250
276
  get headers() {
251
- return this[A] ||= new Headers();
277
+ return this[ye] ||= new Headers();
252
278
  }
253
279
  get errHeaders() {
254
- return this[j] ||= new Headers();
280
+ return this[be] ||= new Headers();
255
281
  }
256
- }, _e = /[^\u0009\u0020-\u007E]/g, N = class e extends Error {
282
+ }, Se = /[^\u0009\u0020-\u007E]/g, F = class e extends Error {
257
283
  get name() {
258
284
  return `HTTPError`;
259
285
  }
@@ -303,7 +329,7 @@ var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
303
329
  ...e ? void 0 : this.body
304
330
  };
305
331
  }
306
- }, P = Symbol.for(`h3.notFound`), ve = Symbol.for(`h3.handled`), F = class {
332
+ }, I = Symbol.for(`h3.notFound`), Ce = Symbol.for(`h3.handled`), L = class {
307
333
  #e;
308
334
  #t;
309
335
  body;
@@ -319,13 +345,13 @@ var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
319
345
  get headers() {
320
346
  return this.#e ||= new Headers(this.#t?.headers);
321
347
  }
322
- }, I = (e) => (...t) => {
348
+ }, R = (e) => (...t) => {
323
349
  throw Error(`Headers are frozen (${e} ${t.join(`, `)})`);
324
- }, L = class extends Headers {
325
- set = I(`set`);
326
- append = I(`append`);
327
- delete = I(`delete`);
328
- }, ye = new L({ "content-length": `0` }), R = new L({ "content-type": `application/json;charset=UTF-8` }), z = /\+/g, B = () => P, be = class {
350
+ }, we = class extends Headers {
351
+ set = R(`set`);
352
+ append = R(`append`);
353
+ delete = R(`delete`);
354
+ }, Te = new we({ "content-length": `0` }), z = new we({ "content-type": `application/json;charset=UTF-8` }), Ee = /\+/g, De = () => I, Oe = class {
329
355
  config;
330
356
  "~middleware";
331
357
  "~routes" = [];
@@ -338,11 +364,11 @@ var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
338
364
  handler(e) {
339
365
  let t = this[`~findRoute`](e);
340
366
  t && (e.context.params = t.params, e.context.matchedRoute = t.data);
341
- let n = t?.data.handler || B, r = this[`~getMiddleware`](e, t);
342
- return r.length > 0 ? de(e, r, n) : n(e);
367
+ let n = t?.data.handler || De, r = this[`~getMiddleware`](e, t);
368
+ return r.length > 0 ? E(e, r, n) : n(e);
343
369
  }
344
370
  "~request"(e, t) {
345
- let n = new M(e, t, this), r;
371
+ let n = new P(e, t, this), r;
346
372
  try {
347
373
  if (this.config.onRequest) {
348
374
  let e = this.config.onRequest(n);
@@ -351,7 +377,7 @@ var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
351
377
  } catch (e) {
352
378
  r = Promise.reject(e);
353
379
  }
354
- return C(r, n, this.config);
380
+ return w(r, n, this.config);
355
381
  }
356
382
  "~findRoute"(e) {}
357
383
  "~addRoute"(e) {
@@ -361,17 +387,123 @@ var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
361
387
  let n = t?.data.middleware, r = this[`~middleware`];
362
388
  return n ? [...r, ...n] : r;
363
389
  }
390
+ }, ke = () => {}, Ae = class {
391
+ _event;
392
+ _transformStream = new TransformStream();
393
+ _writer;
394
+ _encoder = new TextEncoder();
395
+ _writerIsClosed = !1;
396
+ _paused = !1;
397
+ _unsentData;
398
+ _disposed = !1;
399
+ _handled = !1;
400
+ constructor(e, t = {}) {
401
+ this._event = e, this._writer = this._transformStream.writable.getWriter(), this._writer.closed.then(() => {
402
+ this._writerIsClosed = !0;
403
+ }), t.autoclose !== !1 && this._event.runtime?.node?.res?.once(`close`, () => this.close());
404
+ }
405
+ async push(e) {
406
+ if (typeof e == `string`) {
407
+ await this._sendEvent({ data: e });
408
+ return;
409
+ }
410
+ if (Array.isArray(e)) {
411
+ if (e.length === 0) return;
412
+ if (typeof e[0] == `string`) {
413
+ let t = [];
414
+ for (let n of e) t.push({ data: n });
415
+ await this._sendEvents(t);
416
+ return;
417
+ }
418
+ await this._sendEvents(e);
419
+ return;
420
+ }
421
+ await this._sendEvent(e);
422
+ }
423
+ async pushComment(e) {
424
+ if (!this._writerIsClosed) {
425
+ if (this._paused && !this._unsentData) {
426
+ this._unsentData = A(e);
427
+ return;
428
+ }
429
+ if (this._paused) {
430
+ this._unsentData += A(e);
431
+ return;
432
+ }
433
+ await this._writer.write(this._encoder.encode(A(e))).catch(() => {
434
+ this._writerIsClosed = !0;
435
+ });
436
+ }
437
+ }
438
+ async _sendEvent(e) {
439
+ if (!this._writerIsClosed) {
440
+ if (this._paused && !this._unsentData) {
441
+ this._unsentData = j(e);
442
+ return;
443
+ }
444
+ if (this._paused) {
445
+ this._unsentData += j(e);
446
+ return;
447
+ }
448
+ await this._writer.write(this._encoder.encode(j(e))).catch(() => {
449
+ this._writerIsClosed = !0;
450
+ });
451
+ }
452
+ }
453
+ async _sendEvents(e) {
454
+ if (this._writerIsClosed) return;
455
+ let t = ge(e);
456
+ if (this._paused && !this._unsentData) {
457
+ this._unsentData = t;
458
+ return;
459
+ }
460
+ if (this._paused) {
461
+ this._unsentData += t;
462
+ return;
463
+ }
464
+ await this._writer.write(this._encoder.encode(t)).catch(() => {
465
+ this._writerIsClosed = !0;
466
+ });
467
+ }
468
+ pause() {
469
+ this._paused = !0;
470
+ }
471
+ get isPaused() {
472
+ return this._paused;
473
+ }
474
+ async resume() {
475
+ this._paused = !1, await this.flush();
476
+ }
477
+ async flush() {
478
+ this._writerIsClosed || this._unsentData?.length && (await this._writer.write(this._encoder.encode(this._unsentData)).catch(() => {
479
+ this._writerIsClosed = !0;
480
+ }), this._unsentData = void 0);
481
+ }
482
+ async close() {
483
+ if (!this._disposed) {
484
+ if (!this._writerIsClosed) try {
485
+ await this._writer.close();
486
+ } catch {}
487
+ this._disposed = !0;
488
+ }
489
+ }
490
+ onClosed(e) {
491
+ this._writer.closed.then(e).catch(ke);
492
+ }
493
+ async send() {
494
+ return _e(this._event), this._event.res.status = 200, this._handled = !0, this._transformStream.readable;
495
+ }
364
496
  }, new TextEncoder();
365
- })), V = y((() => {
366
- xe();
497
+ })), B = b((() => {
498
+ je();
367
499
  }));
368
- V(), ne();
369
- var Ce = (e, t) => {
370
- let n = we(e, t);
371
- return new S(typeof n.body == `string` ? n.body : JSON.stringify(n.body, null, 2), n);
500
+ B(), ne();
501
+ var Ne = (e, t) => {
502
+ let n = Pe(e, t);
503
+ return new C(typeof n.body == `string` ? n.body : JSON.stringify(n.body, null, 2), n);
372
504
  };
373
- function we(e, t) {
374
- let n = e.unhandled ?? !N.isError(e), { status: r = 500, statusText: i = `` } = n ? {} : e;
505
+ function Pe(e, t) {
506
+ let n = e.unhandled ?? !F.isError(e), { status: r = 500, statusText: i = `` } = n ? {} : e;
375
507
  if (r === 404) {
376
508
  let e = t.url || new URL(t.req.url);
377
509
  if (/^\/[^/]/.test(`/`) && !e.pathname.startsWith(`/`)) return {
@@ -397,131 +529,131 @@ function we(e, t) {
397
529
  }
398
530
  };
399
531
  }
400
- var Te = [Ce];
401
- async function Ee(e, t) {
402
- for (let n of Te) try {
403
- let r = await n(e, t, { defaultHandler: we });
532
+ var Fe = [Ne];
533
+ async function Ie(e, t) {
534
+ for (let n of Fe) try {
535
+ let r = await n(e, t, { defaultHandler: Pe });
404
536
  if (r) return r;
405
537
  } catch (e) {
406
538
  console.error(e);
407
539
  }
408
540
  }
409
541
  String.fromCharCode;
410
- var De = /%2f/gi;
411
- function Oe(e = ``) {
542
+ var Le = /%2f/gi;
543
+ function Re(e = ``) {
412
544
  try {
413
545
  return decodeURIComponent(`` + e);
414
546
  } catch {
415
547
  return `` + e;
416
548
  }
417
549
  }
418
- function ke(e) {
419
- return Oe(e.replace(De, `%252F`));
550
+ function ze(e) {
551
+ return Re(e.replace(Le, `%252F`));
420
552
  }
421
- var Ae = /\/$|\/\?|\/#/, je = /^\.?\//;
422
- function H(e = ``, t) {
423
- return t ? Ae.test(e) : e.endsWith(`/`);
553
+ var Be = /\/$|\/\?|\/#/, Ve = /^\.?\//;
554
+ function V(e = ``, t) {
555
+ return t ? Be.test(e) : e.endsWith(`/`);
424
556
  }
425
- function Me(e = ``, t) {
426
- if (!t) return (H(e) ? e.slice(0, -1) : e) || `/`;
427
- if (!H(e, !0)) return e || `/`;
557
+ function He(e = ``, t) {
558
+ if (!t) return (V(e) ? e.slice(0, -1) : e) || `/`;
559
+ if (!V(e, !0)) return e || `/`;
428
560
  let n = e, r = ``, i = e.indexOf(`#`);
429
561
  i !== -1 && (n = e.slice(0, i), r = e.slice(i));
430
562
  let [a, ...o] = n.split(`?`);
431
563
  return ((a.endsWith(`/`) ? a.slice(0, -1) : a) || `/`) + (o.length > 0 ? `?${o.join(`?`)}` : ``) + r;
432
564
  }
433
- function Ne(e = ``, t) {
565
+ function Ue(e = ``, t) {
434
566
  if (!t) return e.endsWith(`/`) ? e : e + `/`;
435
- if (H(e, !0)) return e || `/`;
567
+ if (V(e, !0)) return e || `/`;
436
568
  let n = e, r = ``, i = e.indexOf(`#`);
437
569
  if (i !== -1 && (n = e.slice(0, i), r = e.slice(i), !n)) return r;
438
570
  let [a, ...o] = n.split(`?`);
439
571
  return a + `/` + (o.length > 0 ? `?${o.join(`?`)}` : ``) + r;
440
572
  }
441
- function Pe(e = ``) {
573
+ function We(e = ``) {
442
574
  return e.startsWith(`/`);
443
575
  }
444
- function Fe(e = ``) {
445
- return Pe(e) ? e : `/` + e;
576
+ function Ge(e = ``) {
577
+ return We(e) ? e : `/` + e;
446
578
  }
447
- function Ie(e) {
579
+ function Ke(e) {
448
580
  return e && e !== `/`;
449
581
  }
450
- function Le(e, ...t) {
582
+ function qe(e, ...t) {
451
583
  let n = e || ``;
452
- for (let e of t.filter((e) => Ie(e))) if (n) {
453
- let t = e.replace(je, ``);
454
- n = Ne(n) + t;
584
+ for (let e of t.filter((e) => Ke(e))) if (n) {
585
+ let t = e.replace(Ve, ``);
586
+ n = Ue(n) + t;
455
587
  } else n = e;
456
588
  return n;
457
589
  }
458
- var Re = ((e) => function(t) {
590
+ var Je = ((e) => function(t) {
459
591
  for (let [n, r] of Object.entries(e.options || {})) t.res.headers.set(n, r);
460
- }), U = {
461
- "/assets/index-BC9qhYL0.js": {
592
+ }), H = {
593
+ "/assets/index-CIhhqrBM.js": {
462
594
  type: `text/javascript; charset=utf-8`,
463
- etag: `"2c32-P9M3yJbjRmzrrPeoaEqQI2KbS4E"`,
464
- mtime: `2026-03-25T21:41:35.759Z`,
465
- size: 11314,
466
- path: `../public/assets/index-BC9qhYL0.js`,
467
- data: `KGZ1bmN0aW9uKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgbGlua2ApLnJlbExpc3Q7aWYoZSYmZS5zdXBwb3J0cyYmZS5zdXBwb3J0cyhgbW9kdWxlcHJlbG9hZGApKXJldHVybjtmb3IobGV0IGUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXWApKW4oZSk7bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZT0+e2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PWBjaGlsZExpc3RgKWZvcihsZXQgZSBvZiB0LmFkZGVkTm9kZXMpZS50YWdOYW1lPT09YExJTktgJiZlLnJlbD09PWBtb2R1bGVwcmVsb2FkYCYmbihlKX0pLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZnVuY3Rpb24gdChlKXtsZXQgdD17fTtyZXR1cm4gZS5pbnRlZ3JpdHkmJih0LmludGVncml0eT1lLmludGVncml0eSksZS5yZWZlcnJlclBvbGljeSYmKHQucmVmZXJyZXJQb2xpY3k9ZS5yZWZlcnJlclBvbGljeSksZS5jcm9zc09yaWdpbj09PWB1c2UtY3JlZGVudGlhbHNgP3QuY3JlZGVudGlhbHM9YGluY2x1ZGVgOmUuY3Jvc3NPcmlnaW49PT1gYW5vbnltb3VzYD90LmNyZWRlbnRpYWxzPWBvbWl0YDp0LmNyZWRlbnRpYWxzPWBzYW1lLW9yaWdpbmAsdH1mdW5jdGlvbiBuKGUpe2lmKGUuZXApcmV0dXJuO2UuZXA9ITA7bGV0IG49dChlKTtmZXRjaChlLmhyZWYsbil9fSkoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgaWNvbi1zdW5gKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBpY29uLW1vb25gKTtmdW5jdGlvbiBuKCl7bGV0IG49bG9jYWxTdG9yYWdlLmdldEl0ZW0oYHRoZW1lYCkscj1uPT09YGRhcmtgfHwhbiYmd2luZG93Lm1hdGNoTWVkaWEoYChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylgKS5tYXRjaGVzO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKGBkYXJrYCxyKSxlLmNsYXNzTGlzdC50b2dnbGUoYGhpZGRlbmAsIXIpLHQuY2xhc3NMaXN0LnRvZ2dsZShgaGlkZGVuYCxyKX1mdW5jdGlvbiByKCl7bigpLHdpbmRvdy5tYXRjaE1lZGlhKGAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspYCkuYWRkRXZlbnRMaXN0ZW5lcihgY2hhbmdlYCwoKT0+e2xvY2FsU3RvcmFnZS5nZXRJdGVtKGB0aGVtZWApfHxuKCl9KSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgdGhlbWUtdG9nZ2xlYCkuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLCgpPT57bGV0IGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhgZGFya2ApO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGB0aGVtZWAsZT9gbGlnaHRgOmBkYXJrYCksbigpfSl9ZnVuY3Rpb24gaShlLHQpe3JldHVybiBlLnBhdGg9PT10PyEwOmUuY2hpbGRyZW4/LnNvbWUoZT0+aShlLHQpKT8/ITF9ZnVuY3Rpb24gYShlLHQpe3JldHVybiBlLm1hcChlPT57bGV0IG49ZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg+MCxyPW4/YShlLmNoaWxkcmVuLHQrMSk6YGAsaT0xMit0KjEyO3JldHVybmAKICAgICAgICA8bGk+CiAgICAgICAgICAke2UucGFnZSE9PSExJiYhKG4mJmUuY2hpbGRyZW4/LlswXT8ucGF0aD09PWUucGF0aCk/YDxhIGhyZWY9IiR7ZS5wYXRofSIKICAgICAgICAgICAgY2xhc3M9Im5hdi1saW5rIGJsb2NrIHB5LTEuNSB0ZXh0LXNtICR7bj9gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDBgOmB0ZXh0LWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTQwMGB9IGhvdmVyOmJnLWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS05MDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCBkYXJrOmhvdmVyOnRleHQtZ3JheS0xMDAgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyIKICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHtpfXB4OyBwYWRkaW5nLXJpZ2h0OiAxMnB4IgogICAgICAgICAgICBkYXRhLXBhdGg9IiR7ZS5wYXRofSI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvYT5gOmA8c3BhbgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDAgY3Vyc29yLWRlZmF1bHQiCiAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7aX1weDsgcGFkZGluZy1yaWdodDogMTJweCI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvc3Bhbj5gfQogICAgICAgICAgJHtyP2A8dWwgY2xhc3M9Im10LTAuNSI+JHtyfTwvdWw+YDpgYH0KICAgICAgICA8L2xpPmB9KS5qb2luKGBgKX1mdW5jdGlvbiBvKGUsdCl7bGV0IG49ZS5zb21lKGU9PmkoZSx0KSkscj0hMDtyZXR1cm4gZS5tYXAoZT0+e2lmKCEoZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg+MCkpcmV0dXJuYDxsaT4ke2UucGFnZT09PSExP2A8c3BhbiBjbGFzcz0iYmxvY2sgcHktMS41IHB4LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTEwMCBjdXJzb3ItZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAke2UudGl0bGV9CiAgICAgICAgICAgICAgPC9zcGFuPmA6YDxhIGhyZWY9IiR7ZS5wYXRofSIKICAgICAgICAgICAgICAgIGNsYXNzPSJuYXYtbGluayBibG9jayBweS0xLjUgcHgtMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyIKICAgICAgICAgICAgICAgIGRhdGEtcGF0aD0iJHtlLnBhdGh9Ij4KICAgICAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgICAgICA8L2E+YH08L2xpPmA7bGV0IG89aShlLHQpfHwhbiYmcjtyPSExO2xldCBzPWUucGFnZSE9PSExJiZlLmNoaWxkcmVuPy5bMF0/LnBhdGghPT1lLnBhdGgsYz1gPHN2ZyBjbGFzcz0ibmF2LWNoZXZyb24gdy00IGgtNCB0ZXh0LWdyYXktNDAwIHRyYW5zaXRpb24tdHJhbnNmb3JtICR7bz9gcm90YXRlLTkwYDpgYH0iIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjIxIDE0Ljc3YS43NS43NSAwIDAxLjAyLTEuMDZMMTEuMTY4IDEwIDcuMjMgNi4yOWEuNzUuNzUgMCAxMTEuMDQtMS4wOGw0LjUgNC4yNWEuNzUuNzUgMCAwMTAgMS4wOGwtNC41IDQuMjVhLjc1Ljc1IDAgMDEtMS4wNi0uMDJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz5gLGw9cz9gPGEgaHJlZj0iJHtlLnBhdGh9IgogICAgICAgICAgICBjbGFzcz0ibmF2LWxpbmsgZmxleC0xIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LWdyYXktMzAwIHRyYW5zaXRpb24tY29sb3JzIgogICAgICAgICAgICBkYXRhLXBhdGg9IiR7ZS5wYXRofSI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvYT5gOmA8c3BhbiBjbGFzcz0iZmxleC0xIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIj4KICAgICAgICAgICAgJHtlLnRpdGxlfQogICAgICAgICAgPC9zcGFuPmAsdT1hKGUuY2hpbGRyZW4sMSk7cmV0dXJuYAogICAgICAgIDxsaSBkYXRhLXNlY3Rpb249IiR7ZS5wYXRofSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBweC0zIHJvdW5kZWQtbWQgaG92ZXI6YmctZ3JheS0xMDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi10b2dnbGUgcC0wLjUgLW1sLTEgbXItMSIgZGF0YS1zZWN0aW9uPSIke2UucGF0aH0iIGFyaWEtbGFiZWw9IlRvZ2dsZSBzZWN0aW9uIj4KICAgICAgICAgICAgICAke2N9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAke2x9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx1bCBjbGFzcz0ibmF2LXNlY3Rpb24gbXQtMC41ICR7bz9gYDpgaGlkZGVuYH0iIGRhdGEtc2VjdGlvbj0iJHtlLnBhdGh9Ij4KICAgICAgICAgICAgJHt1fQogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPmB9KS5qb2luKGBgKX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBlKXtpZih0LnBhZ2UhPT0hMSlyZXR1cm4gdC5wYXRoO2lmKHQuY2hpbGRyZW4pe2xldCBlPXModC5jaGlsZHJlbik7aWYoZSlyZXR1cm4gZX19fXZhciBjPVtdO2Z1bmN0aW9uIGwoZSx0KXtjPXQ7bGV0IG49bG9jYXRpb24ucGF0aG5hbWU7ZS5pbm5lckhUTUw9dC5sZW5ndGg/YDx1bCBjbGFzcz0ic3BhY2UteS0wLjUiPiR7byh0LG4pfTwvdWw+YDpgPHAgY2xhc3M9InB4LTMgcHktMiB0ZXh0LXNtIHRleHQtZ3JheS00MDAiPk5vIHBhZ2VzIGxvYWRlZDwvcD5gLGUuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHQ9PntsZXQgbj10LnRhcmdldCxyPW4uY2xvc2VzdChgLm5hdi10b2dnbGVgKTtpZihyKXt1KGUsci5kYXRhc2V0LnNlY3Rpb24pO3JldHVybn1sZXQgaT1uLmNsb3Nlc3QoYGxpW2RhdGEtc2VjdGlvbl1gKTtpJiYhbi5jbG9zZXN0KGAubmF2LWxpbmtgKSYmdShlLGkuZGF0YXNldC5zZWN0aW9uKX0pfWZ1bmN0aW9uIHUoZSx0KXtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoYHVsLm5hdi1zZWN0aW9uW2RhdGEtc2VjdGlvbj0iJHt0fSJdYCk7biYmKG4uY2xhc3NMaXN0LmNvbnRhaW5zKGBoaWRkZW5gKT8oZS5xdWVyeVNlbGVjdG9yQWxsKGB1bC5uYXYtc2VjdGlvbmApLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LmFkZChgaGlkZGVuYCl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoYC5uYXYtY2hldnJvbmApLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LnJlbW92ZShgcm90YXRlLTkwYCl9KSxuLmNsYXNzTGlzdC5yZW1vdmUoYGhpZGRlbmApLGUucXVlcnlTZWxlY3RvcihgLm5hdi10b2dnbGVbZGF0YS1zZWN0aW9uPSIke3R9Il0gLm5hdi1jaGV2cm9uYCk/LmNsYXNzTGlzdC5hZGQoYHJvdGF0ZS05MGApKToobi5jbGFzc0xpc3QuYWRkKGBoaWRkZW5gKSxlLnF1ZXJ5U2VsZWN0b3IoYC5uYXYtdG9nZ2xlW2RhdGEtc2VjdGlvbj0iJHt0fSJdIC5uYXYtY2hldnJvbmApPy5jbGFzc0xpc3QucmVtb3ZlKGByb3RhdGUtOTBgKSkpfWZ1bmN0aW9uIGQoZSx0KXtlLnF1ZXJ5U2VsZWN0b3JBbGwoYC5uYXYtbGlua2ApLmZvckVhY2goZT0+e2xldCBuPWUuZ2V0QXR0cmlidXRlKGBkYXRhLXBhdGhgKT09PXQ7ZS5jbGFzc0xpc3QudG9nZ2xlKGBuYXYtYWN0aXZlYCxuKSxlLmNsYXNzTGlzdC50b2dnbGUoYGZvbnQtbWVkaXVtYCxuKX0pO2xldCBuPWMuZmluZChlPT5pKGUsdCkpO24/LmNoaWxkcmVuPy5sZW5ndGgmJihlLnF1ZXJ5U2VsZWN0b3JBbGwoYHVsLm5hdi1zZWN0aW9uYCkuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QuYWRkKGBoaWRkZW5gKX0pLGUucXVlcnlTZWxlY3RvckFsbChgLm5hdi1jaGV2cm9uYCkuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QucmVtb3ZlKGByb3RhdGUtOTBgKX0pLGUucXVlcnlTZWxlY3RvcihgdWwubmF2LXNlY3Rpb25bZGF0YS1zZWN0aW9uPSIke24ucGF0aH0iXWApPy5jbGFzc0xpc3QucmVtb3ZlKGBoaWRkZW5gKSxlLnF1ZXJ5U2VsZWN0b3IoYC5uYXYtdG9nZ2xlW2RhdGEtc2VjdGlvbj0iJHtuLnBhdGh9Il0gLm5hdi1jaGV2cm9uYCk/LmNsYXNzTGlzdC5hZGQoYHJvdGF0ZS05MGApKX1mdW5jdGlvbiBmKGUsdCl7ZS5pbm5lckhUTUw9YDxhcnRpY2xlIGNsYXNzPSJwcm9zZSBwcm9zZS1ncmF5IG1heC13LW5vbmUiPiR7dH08L2FydGljbGU+YDtmb3IobGV0IHQgb2YgZS5xdWVyeVNlbGVjdG9yQWxsKGBhW2hyZWZdYCkpe2xldCBuPXQuZ2V0QXR0cmlidXRlKGBocmVmYCk7bi5zdGFydHNXaXRoKGAvYCk/dC5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsZT0+e2UucHJldmVudERlZmF1bHQoKSxoaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLG4pLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KGBwb3BzdGF0ZWApKX0pOm4uc3RhcnRzV2l0aChgI2ApP3QuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHQ9Pnt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHI9bi5zbGljZSgxKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIpfHxlLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtDU1MuZXNjYXBlKHIpfSJdYCk7aSYmKGkuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOmBzbW9vdGhgfSksaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxgYCxuKSl9KTovXmh0dHBzPzpcL1wvLy50ZXN0KG4pJiYodC50YXJnZXQ9YF9ibGFua2AsdC5yZWw9YG5vb3BlbmVyIG5vcmVmZXJyZXJgKX19YXN5bmMgZnVuY3Rpb24gcChlLHQpe2YoZSxgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IG49YXdhaXQoYXdhaXQgZmV0Y2goYC9hcGkvcGFnZT9wYXRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWApKS5qc29uKCk7aWYobi5lcnJvcilmKGUsYDxwIGNsYXNzPSJ0ZXh0LXJlZC01MDAiPiR7bi5lcnJvcn08L3A+YCk7ZWxzZXtmKGUsbi5odG1sKTtsZXQgdD1sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKHQpe2xldCBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpfHxlLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtDU1MuZXNjYXBlKHQpfSJdYCk7biYmbi5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6YHNtb290aGB9KX19fXZhciBtPVtdO2Z1bmN0aW9uIGgoZSl7bT1lfWZ1bmN0aW9uIGcoKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgc2VhcmNoLXRyaWdnZXJgKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtbW9kYWxgKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtYmFja2Ryb3BgKSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtaW5wdXRgKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtcmVzdWx0c2ApLGEsbz0tMSxzPVtdO2UuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLGMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGU9PnsoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleT09PWBrYCYmKGUucHJldmVudERlZmF1bHQoKSxjKCkpfSksbi5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsbCksci5hZGRFdmVudExpc3RlbmVyKGBpbnB1dGAsKCk9PntjbGVhclRpbWVvdXQoYSk7bGV0IGU9ci52YWx1ZS50cmltKCk7aWYoZS5sZW5ndGg8Mil7bz0tMSxzPVtdLHAoKTtyZXR1cm59YT1zZXRUaW1lb3V0KCgpPT51KGUpLDIwMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGU9PntlLmtleT09PWBBcnJvd0Rvd25gPyhlLnByZXZlbnREZWZhdWx0KCksZihvKzEpKTplLmtleT09PWBBcnJvd1VwYD8oZS5wcmV2ZW50RGVmYXVsdCgpLGYoby0xKSk6ZS5rZXk9PT1gRW50ZXJgJiZvPj0wPyhlLnByZXZlbnREZWZhdWx0KCksaChzW29dLnBhdGgpKTplLmtleT09PWBFc2NhcGVgJiZsKCl9KTtmdW5jdGlvbiBjKCl7dC5jbGFzc0xpc3QucmVtb3ZlKGBoaWRkZW5gKSxyLnZhbHVlPWBgLG89LTEscz1bXSxwKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5yLmZvY3VzKCkpfWZ1bmN0aW9uIGwoKXt0LmNsYXNzTGlzdC5hZGQoYGhpZGRlbmApLHIudmFsdWU9YGAscz1bXSxvPS0xfWFzeW5jIGZ1bmN0aW9uIHUoZSl7cz0oYXdhaXQoYXdhaXQgZmV0Y2goYC9hcGkvc2VhcmNoP3E9JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCkpLmpzb24oKSkucmVzdWx0cyxvPXMubGVuZ3RoPjA/MDotMSxkKCl9ZnVuY3Rpb24gZCgpe2lmKHMubGVuZ3RoPT09MCl7aS5pbm5lckhUTUw9YDxwIGNsYXNzPSJweC00IHB5LTggdGV4dC1zbSB0ZXh0LWdyYXktNDAwIHRleHQtY2VudGVyIj5ObyByZXN1bHRzIGZvdW5kPC9wPmA7cmV0dXJufWkuaW5uZXJIVE1MPXMubWFwKChlLHQpPT5gCiAgICAgIDxhIGhyZWY9IiR7ZS5wYXRofSIgY2xhc3M9InNlYXJjaC1pdGVtIGZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcHgtNCBweS0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCBkYXJrOmJvcmRlci1ncmF5LTgwMCBob3ZlcjpiZy1ncmF5LTUwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgdHJhbnNpdGlvbi1jb2xvcnMgJHt0PT09bz9gYmctZ3JheS01MCBkYXJrOmJnLWdyYXktODAwYDpgYH0iIGRhdGEtaW5kZXg9IiR7dH0iPgogICAgICAgIDxzdmcgY2xhc3M9InNpemUtNCBtdC0wLjUgc2hyaW5rLTAgdGV4dC1ncmF5LTQwMCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMTkuNSAxNC4yNXYtMi42MjVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVoLTEuNUExLjEyNSAxLjEyNSAwIDAgMSAxMy41IDcuMTI1di0xLjVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVIOC4yNW0yLjI1IDBINS42MjVjLS42MjEgMC0xLjEyNS41MDQtMS4xMjUgMS4xMjV2MTcuMjVjMCAuNjIxLjUwNCAxLjEyNSAxLjEyNSAxLjEyNWgxMi43NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxMS4yNWE5IDkgMCAwIDAtOS05WiIgLz4KICAgICAgICA8L3N2Zz4KICAgICAgICA8ZGl2IGNsYXNzPSJtaW4tdy0wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDAiPiR7dihlLnRpdGxlKX08L2Rpdj4KICAgICAgICAgICR7ZS5zbmlwcGV0c1swXT9gPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMCBtdC0wLjUgbGluZS1jbGFtcC0yIj4ke3YoZS5zbmlwcGV0c1swXSl9PC9kaXY+YDpgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9hPmApLmpvaW4oYGApLGkucXVlcnlTZWxlY3RvckFsbChgLnNlYXJjaC1pdGVtYCkuZm9yRWFjaChlPT57ZS5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsKCk9PmwoKSl9KX1mdW5jdGlvbiBmKGUpe3MubGVuZ3RoIT09MCYmKG89TWF0aC5tYXgoMCxNYXRoLm1pbihlLHMubGVuZ3RoLTEpKSxkKCksaS5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pbmRleD0iJHtvfSJdYCk/LnNjcm9sbEludG9WaWV3KHtibG9jazpgbmVhcmVzdGB9KSl9ZnVuY3Rpb24gcCgpe2xldCBlPV8obSk7aWYoZS5sZW5ndGg9PT0wKXtpLmlubmVySFRNTD1gPHAgY2xhc3M9InB4LTQgcHktOCB0ZXh0LXNtIHRleHQtZ3JheS00MDAgdGV4dC1jZW50ZXIiPlR5cGUgdG8gc2VhcmNo4oCmPC9wPmA7cmV0dXJufXM9ZS5tYXAoZT0+KHtwYXRoOmUucGF0aCx0aXRsZTplLnRpdGxlLHNuaXBwZXRzOltdfSkpLG89LTEsaS5pbm5lckhUTUw9cy5tYXAoKGUsdCk9PmAKICAgICAgPGEgaHJlZj0iJHtlLnBhdGh9IiBjbGFzcz0ic2VhcmNoLWl0ZW0gZmxleCBpdGVtcy1zdGFydCBnYXAtMyBweC00IHB5LTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGRhcms6Ym9yZGVyLWdyYXktODAwIGhvdmVyOmJnLWdyYXktNTAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWNvbG9ycyIgZGF0YS1pbmRleD0iJHt0fSI+CiAgICAgICAgPHN2ZyBjbGFzcz0ic2l6ZS00IG10LTAuNSBzaHJpbmstMCB0ZXh0LWdyYXktNDAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik0xOS41IDE0LjI1di0yLjYyNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NWgtMS41QTEuMTI1IDEuMTI1IDAgMCAxIDEzLjUgNy4xMjV2LTEuNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NUg4LjI1bTIuMjUgMEg1LjYyNWMtLjYyMSAwLTEuMTI1LjUwNC0xLjEyNSAxLjEyNXYxNy4yNWMwIC42MjEuNTA0IDEuMTI1IDEuMTI1IDEuMTI1aDEyLjc1Yy42MjEgMCAxLjEyNS0uNTA0IDEuMTI1LTEuMTI1VjExLjI1YTkgOSAwIDAgMC05LTlaIiAvPgogICAgICAgIDwvc3ZnPgogICAgICAgIDxkaXYgY2xhc3M9Im1pbi13LTAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTEwMCI+JHt2KGUudGl0bGUpfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+YCkuam9pbihgYCksaS5xdWVyeVNlbGVjdG9yQWxsKGAuc2VhcmNoLWl0ZW1gKS5mb3JFYWNoKGU9PntlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCx0PT57dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPU51bWJlcihlLmRhdGFzZXQuaW5kZXgpO2goc1tuXS5wYXRoKX0pfSl9ZnVuY3Rpb24gaChlKXtsb2NhdGlvbi5oYXNoPWUsbCgpfX1mdW5jdGlvbiBfKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlKW4ucGFnZSE9PSExJiZ0LnB1c2goe3BhdGg6bi5wYXRoLHRpdGxlOm4udGl0bGV9KSxuLmNoaWxkcmVuJiZ0LnB1c2goLi4uXyhuLmNoaWxkcmVuKSk7cmV0dXJuIHR9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5yZXBsYWNlKC8mL2csYCZhbXA7YCkucmVwbGFjZSgvPC9nLGAmbHQ7YCkucmVwbGFjZSgvPi9nLGAmZ3Q7YCkucmVwbGFjZSgvIi9nLGAmcXVvdDtgKX12YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgc2lkZWJhcmApLGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGNvbnRlbnRgKTtyKCksZygpO2Z1bmN0aW9uIHgoZSl7aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxgYCxlKSxTKCl9YXN5bmMgZnVuY3Rpb24gUygpe2xldCBlPWxvY2F0aW9uLnBhdGhuYW1lO2lmKGU9PT1gL2Ape2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPlNlbGVjdCBhIHBhZ2UgZnJvbSB0aGUgc2lkZWJhci48L3A+YCk7cmV0dXJufWQoeSxlKSxhd2FpdCBwKGIsZSl9YXN5bmMgZnVuY3Rpb24gQygpe2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IGU9KGF3YWl0KGF3YWl0IGZldGNoKGAvYXBpL21ldGFgKSkuanNvbigpKS50b2M7aWYobCh5LGUpLGgoZSkseS5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsZT0+e2xldCB0PWUudGFyZ2V0LmNsb3Nlc3QoYGEubmF2LWxpbmtgKTt0JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHgodC5nZXRBdHRyaWJ1dGUoYGRhdGEtcGF0aGApKSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcG9wc3RhdGVgLFMpLGxvY2F0aW9uLnBhdGhuYW1lPT09YC9gKXtsZXQgdD1zKGUpO2lmKHQpe3godCk7cmV0dXJufX1TKCl9QygpOw==`
595
+ etag: `"2d2f-pscmo5HNdcDiWLYskz489hC/rWg"`,
596
+ mtime: `2026-03-27T14:37:40.339Z`,
597
+ size: 11567,
598
+ path: `../public/assets/index-CIhhqrBM.js`,
599
+ data: `KGZ1bmN0aW9uKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgbGlua2ApLnJlbExpc3Q7aWYoZSYmZS5zdXBwb3J0cyYmZS5zdXBwb3J0cyhgbW9kdWxlcHJlbG9hZGApKXJldHVybjtmb3IobGV0IGUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXWApKW4oZSk7bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZT0+e2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PWBjaGlsZExpc3RgKWZvcihsZXQgZSBvZiB0LmFkZGVkTm9kZXMpZS50YWdOYW1lPT09YExJTktgJiZlLnJlbD09PWBtb2R1bGVwcmVsb2FkYCYmbihlKX0pLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZnVuY3Rpb24gdChlKXtsZXQgdD17fTtyZXR1cm4gZS5pbnRlZ3JpdHkmJih0LmludGVncml0eT1lLmludGVncml0eSksZS5yZWZlcnJlclBvbGljeSYmKHQucmVmZXJyZXJQb2xpY3k9ZS5yZWZlcnJlclBvbGljeSksZS5jcm9zc09yaWdpbj09PWB1c2UtY3JlZGVudGlhbHNgP3QuY3JlZGVudGlhbHM9YGluY2x1ZGVgOmUuY3Jvc3NPcmlnaW49PT1gYW5vbnltb3VzYD90LmNyZWRlbnRpYWxzPWBvbWl0YDp0LmNyZWRlbnRpYWxzPWBzYW1lLW9yaWdpbmAsdH1mdW5jdGlvbiBuKGUpe2lmKGUuZXApcmV0dXJuO2UuZXA9ITA7bGV0IG49dChlKTtmZXRjaChlLmhyZWYsbil9fSkoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgaWNvbi1zdW5gKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBpY29uLW1vb25gKTtmdW5jdGlvbiBuKCl7bGV0IG49bG9jYWxTdG9yYWdlLmdldEl0ZW0oYHRoZW1lYCkscj1uPT09YGRhcmtgfHwhbiYmd2luZG93Lm1hdGNoTWVkaWEoYChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylgKS5tYXRjaGVzO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKGBkYXJrYCxyKSxlLmNsYXNzTGlzdC50b2dnbGUoYGhpZGRlbmAsIXIpLHQuY2xhc3NMaXN0LnRvZ2dsZShgaGlkZGVuYCxyKX1mdW5jdGlvbiByKCl7bigpLHdpbmRvdy5tYXRjaE1lZGlhKGAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspYCkuYWRkRXZlbnRMaXN0ZW5lcihgY2hhbmdlYCwoKT0+e2xvY2FsU3RvcmFnZS5nZXRJdGVtKGB0aGVtZWApfHxuKCl9KSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgdGhlbWUtdG9nZ2xlYCkuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLCgpPT57bGV0IGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhgZGFya2ApO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGB0aGVtZWAsZT9gbGlnaHRgOmBkYXJrYCksbigpfSl9ZnVuY3Rpb24gaShlLHQpe3JldHVybiBlLnBhdGg9PT10PyEwOmUuY2hpbGRyZW4/LnNvbWUoZT0+aShlLHQpKT8/ITF9ZnVuY3Rpb24gYShlLHQpe3JldHVybiBlLm1hcChlPT57bGV0IG49ZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg+MCxyPW4/YShlLmNoaWxkcmVuLHQrMSk6YGAsaT0xMit0KjEyO3JldHVybmAKICAgICAgICA8bGk+CiAgICAgICAgICAke2UucGFnZSE9PSExJiYhKG4mJmUuY2hpbGRyZW4/LlswXT8ucGF0aD09PWUucGF0aCk/YDxhIGhyZWY9IiR7ZS5wYXRofSIKICAgICAgICAgICAgY2xhc3M9Im5hdi1saW5rIGJsb2NrIHB5LTEuNSB0ZXh0LXNtICR7bj9gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDBgOmB0ZXh0LWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTQwMGB9IGhvdmVyOmJnLWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS05MDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCBkYXJrOmhvdmVyOnRleHQtZ3JheS0xMDAgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyIKICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHtpfXB4OyBwYWRkaW5nLXJpZ2h0OiAxMnB4IgogICAgICAgICAgICBkYXRhLXBhdGg9IiR7ZS5wYXRofSI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvYT5gOmA8c3BhbgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDAgY3Vyc29yLWRlZmF1bHQiCiAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7aX1weDsgcGFkZGluZy1yaWdodDogMTJweCI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvc3Bhbj5gfQogICAgICAgICAgJHtyP2A8dWwgY2xhc3M9Im10LTAuNSI+JHtyfTwvdWw+YDpgYH0KICAgICAgICA8L2xpPmB9KS5qb2luKGBgKX1mdW5jdGlvbiBvKGUsdCl7bGV0IG49ZS5zb21lKGU9PmkoZSx0KSkscj0hMDtyZXR1cm4gZS5tYXAoZT0+e2lmKCEoZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg+MCkpcmV0dXJuYDxsaT4ke2UucGFnZT09PSExP2A8c3BhbiBjbGFzcz0iYmxvY2sgcHktMS41IHB4LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTEwMCBjdXJzb3ItZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAke2UudGl0bGV9CiAgICAgICAgICAgICAgPC9zcGFuPmA6YDxhIGhyZWY9IiR7ZS5wYXRofSIKICAgICAgICAgICAgICAgIGNsYXNzPSJuYXYtbGluayBibG9jayBweS0xLjUgcHgtMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyIKICAgICAgICAgICAgICAgIGRhdGEtcGF0aD0iJHtlLnBhdGh9Ij4KICAgICAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgICAgICA8L2E+YH08L2xpPmA7bGV0IG89aShlLHQpfHwhbiYmcjtyPSExO2xldCBzPWUucGFnZSE9PSExJiZlLmNoaWxkcmVuPy5bMF0/LnBhdGghPT1lLnBhdGgsYz1gPHN2ZyBjbGFzcz0ibmF2LWNoZXZyb24gdy00IGgtNCB0ZXh0LWdyYXktNDAwIHRyYW5zaXRpb24tdHJhbnNmb3JtICR7bz9gcm90YXRlLTkwYDpgYH0iIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjIxIDE0Ljc3YS43NS43NSAwIDAxLjAyLTEuMDZMMTEuMTY4IDEwIDcuMjMgNi4yOWEuNzUuNzUgMCAxMTEuMDQtMS4wOGw0LjUgNC4yNWEuNzUuNzUgMCAwMTAgMS4wOGwtNC41IDQuMjVhLjc1Ljc1IDAgMDEtMS4wNi0uMDJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz5gLGw9cz9gPGEgaHJlZj0iJHtlLnBhdGh9IgogICAgICAgICAgICBjbGFzcz0ibmF2LWxpbmsgZmxleC0xIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LWdyYXktMzAwIHRyYW5zaXRpb24tY29sb3JzIgogICAgICAgICAgICBkYXRhLXBhdGg9IiR7ZS5wYXRofSI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvYT5gOmA8c3BhbiBjbGFzcz0iZmxleC0xIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIj4KICAgICAgICAgICAgJHtlLnRpdGxlfQogICAgICAgICAgPC9zcGFuPmAsdT1hKGUuY2hpbGRyZW4sMSk7cmV0dXJuYAogICAgICAgIDxsaSBkYXRhLXNlY3Rpb249IiR7ZS5wYXRofSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBweC0zIHJvdW5kZWQtbWQgaG92ZXI6YmctZ3JheS0xMDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi10b2dnbGUgcC0wLjUgLW1sLTEgbXItMSIgZGF0YS1zZWN0aW9uPSIke2UucGF0aH0iIGFyaWEtbGFiZWw9IlRvZ2dsZSBzZWN0aW9uIj4KICAgICAgICAgICAgICAke2N9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAke2x9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx1bCBjbGFzcz0ibmF2LXNlY3Rpb24gbXQtMC41ICR7bz9gYDpgaGlkZGVuYH0iIGRhdGEtc2VjdGlvbj0iJHtlLnBhdGh9Ij4KICAgICAgICAgICAgJHt1fQogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPmB9KS5qb2luKGBgKX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBlKXtpZih0LnBhZ2UhPT0hMSlyZXR1cm4gdC5wYXRoO2lmKHQuY2hpbGRyZW4pe2xldCBlPXModC5jaGlsZHJlbik7aWYoZSlyZXR1cm4gZX19fXZhciBjPVtdO2Z1bmN0aW9uIGwoZSx0KXtjPXQ7bGV0IG49bG9jYXRpb24ucGF0aG5hbWU7ZS5pbm5lckhUTUw9dC5sZW5ndGg/YDx1bCBjbGFzcz0ic3BhY2UteS0wLjUiPiR7byh0LG4pfTwvdWw+YDpgPHAgY2xhc3M9InB4LTMgcHktMiB0ZXh0LXNtIHRleHQtZ3JheS00MDAiPk5vIHBhZ2VzIGxvYWRlZDwvcD5gLGUuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHQ9PntsZXQgbj10LnRhcmdldCxyPW4uY2xvc2VzdChgLm5hdi10b2dnbGVgKTtpZihyKXt1KGUsci5kYXRhc2V0LnNlY3Rpb24pO3JldHVybn1sZXQgaT1uLmNsb3Nlc3QoYGxpW2RhdGEtc2VjdGlvbl1gKTtpJiYhbi5jbG9zZXN0KGAubmF2LWxpbmtgKSYmdShlLGkuZGF0YXNldC5zZWN0aW9uKX0pfWZ1bmN0aW9uIHUoZSx0KXtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoYHVsLm5hdi1zZWN0aW9uW2RhdGEtc2VjdGlvbj0iJHt0fSJdYCk7biYmKG4uY2xhc3NMaXN0LmNvbnRhaW5zKGBoaWRkZW5gKT8oZS5xdWVyeVNlbGVjdG9yQWxsKGB1bC5uYXYtc2VjdGlvbmApLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LmFkZChgaGlkZGVuYCl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoYC5uYXYtY2hldnJvbmApLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LnJlbW92ZShgcm90YXRlLTkwYCl9KSxuLmNsYXNzTGlzdC5yZW1vdmUoYGhpZGRlbmApLGUucXVlcnlTZWxlY3RvcihgLm5hdi10b2dnbGVbZGF0YS1zZWN0aW9uPSIke3R9Il0gLm5hdi1jaGV2cm9uYCk/LmNsYXNzTGlzdC5hZGQoYHJvdGF0ZS05MGApKToobi5jbGFzc0xpc3QuYWRkKGBoaWRkZW5gKSxlLnF1ZXJ5U2VsZWN0b3IoYC5uYXYtdG9nZ2xlW2RhdGEtc2VjdGlvbj0iJHt0fSJdIC5uYXYtY2hldnJvbmApPy5jbGFzc0xpc3QucmVtb3ZlKGByb3RhdGUtOTBgKSkpfWZ1bmN0aW9uIGQoZSx0KXtlLnF1ZXJ5U2VsZWN0b3JBbGwoYC5uYXYtbGlua2ApLmZvckVhY2goZT0+e2xldCBuPWUuZ2V0QXR0cmlidXRlKGBkYXRhLXBhdGhgKT09PXQ7ZS5jbGFzc0xpc3QudG9nZ2xlKGBuYXYtYWN0aXZlYCxuKSxlLmNsYXNzTGlzdC50b2dnbGUoYGZvbnQtbWVkaXVtYCxuKX0pO2xldCBuPWMuZmluZChlPT5pKGUsdCkpO24/LmNoaWxkcmVuPy5sZW5ndGgmJihlLnF1ZXJ5U2VsZWN0b3JBbGwoYHVsLm5hdi1zZWN0aW9uYCkuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QuYWRkKGBoaWRkZW5gKX0pLGUucXVlcnlTZWxlY3RvckFsbChgLm5hdi1jaGV2cm9uYCkuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QucmVtb3ZlKGByb3RhdGUtOTBgKX0pLGUucXVlcnlTZWxlY3RvcihgdWwubmF2LXNlY3Rpb25bZGF0YS1zZWN0aW9uPSIke24ucGF0aH0iXWApPy5jbGFzc0xpc3QucmVtb3ZlKGBoaWRkZW5gKSxlLnF1ZXJ5U2VsZWN0b3IoYC5uYXYtdG9nZ2xlW2RhdGEtc2VjdGlvbj0iJHtuLnBhdGh9Il0gLm5hdi1jaGV2cm9uYCk/LmNsYXNzTGlzdC5hZGQoYHJvdGF0ZS05MGApKX1mdW5jdGlvbiBmKGUsdCl7ZS5pbm5lckhUTUw9YDxhcnRpY2xlIGNsYXNzPSJwcm9zZSBwcm9zZS1ncmF5IG1heC13LW5vbmUiPiR7dH08L2FydGljbGU+YDtmb3IobGV0IHQgb2YgZS5xdWVyeVNlbGVjdG9yQWxsKGBhW2hyZWZdYCkpe2xldCBuPXQuZ2V0QXR0cmlidXRlKGBocmVmYCk7bi5zdGFydHNXaXRoKGAvYCk/dC5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsZT0+e2UucHJldmVudERlZmF1bHQoKSxoaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLG4pLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KGBwb3BzdGF0ZWApKX0pOm4uc3RhcnRzV2l0aChgI2ApP3QuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHQ9Pnt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHI9bi5zbGljZSgxKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIpfHxlLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtDU1MuZXNjYXBlKHIpfSJdYCk7aSYmKGkuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOmBzbW9vdGhgfSksaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxgYCxuKSl9KTovXmh0dHBzPzpcL1wvLy50ZXN0KG4pJiYodC50YXJnZXQ9YF9ibGFua2AsdC5yZWw9YG5vb3BlbmVyIG5vcmVmZXJyZXJgKX19YXN5bmMgZnVuY3Rpb24gcChlLHQpe2YoZSxgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IG49YXdhaXQoYXdhaXQgZmV0Y2goYC9hcGkvcGFnZT9wYXRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWApKS5qc29uKCk7aWYobi5lcnJvcilmKGUsYDxwIGNsYXNzPSJ0ZXh0LXJlZC01MDAiPiR7bi5lcnJvcn08L3A+YCk7ZWxzZXtmKGUsbi5odG1sKTtsZXQgdD1sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKHQpe2xldCBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpfHxlLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtDU1MuZXNjYXBlKHQpfSJdYCk7biYmbi5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6YHNtb290aGB9KX19fXZhciBtPVtdO2Z1bmN0aW9uIGgoZSl7bT1lfWZ1bmN0aW9uIGcoKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgc2VhcmNoLXRyaWdnZXJgKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtbW9kYWxgKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtYmFja2Ryb3BgKSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtaW5wdXRgKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtcmVzdWx0c2ApLGEsbz0tMSxzPVtdO2UuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLGMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGU9PnsoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleT09PWBrYCYmKGUucHJldmVudERlZmF1bHQoKSxjKCkpfSksbi5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsbCksci5hZGRFdmVudExpc3RlbmVyKGBpbnB1dGAsKCk9PntjbGVhclRpbWVvdXQoYSk7bGV0IGU9ci52YWx1ZS50cmltKCk7aWYoZS5sZW5ndGg8Mil7bz0tMSxzPVtdLHAoKTtyZXR1cm59YT1zZXRUaW1lb3V0KCgpPT51KGUpLDIwMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGU9PntlLmtleT09PWBBcnJvd0Rvd25gPyhlLnByZXZlbnREZWZhdWx0KCksZihvKzEpKTplLmtleT09PWBBcnJvd1VwYD8oZS5wcmV2ZW50RGVmYXVsdCgpLGYoby0xKSk6ZS5rZXk9PT1gRW50ZXJgJiZvPj0wPyhlLnByZXZlbnREZWZhdWx0KCksaChzW29dLnBhdGgpKTplLmtleT09PWBFc2NhcGVgJiZsKCl9KTtmdW5jdGlvbiBjKCl7dC5jbGFzc0xpc3QucmVtb3ZlKGBoaWRkZW5gKSxyLnZhbHVlPWBgLG89LTEscz1bXSxwKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5yLmZvY3VzKCkpfWZ1bmN0aW9uIGwoKXt0LmNsYXNzTGlzdC5hZGQoYGhpZGRlbmApLHIudmFsdWU9YGAscz1bXSxvPS0xfWFzeW5jIGZ1bmN0aW9uIHUoZSl7cz0oYXdhaXQoYXdhaXQgZmV0Y2goYC9hcGkvc2VhcmNoP3E9JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCkpLmpzb24oKSkucmVzdWx0cyxvPXMubGVuZ3RoPjA/MDotMSxkKCl9ZnVuY3Rpb24gZCgpe2lmKHMubGVuZ3RoPT09MCl7aS5pbm5lckhUTUw9YDxwIGNsYXNzPSJweC00IHB5LTggdGV4dC1zbSB0ZXh0LWdyYXktNDAwIHRleHQtY2VudGVyIj5ObyByZXN1bHRzIGZvdW5kPC9wPmA7cmV0dXJufWkuaW5uZXJIVE1MPXMubWFwKChlLHQpPT5gCiAgICAgIDxhIGhyZWY9IiR7ZS5wYXRofSIgY2xhc3M9InNlYXJjaC1pdGVtIGZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcHgtNCBweS0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCBkYXJrOmJvcmRlci1ncmF5LTgwMCBob3ZlcjpiZy1ncmF5LTUwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgdHJhbnNpdGlvbi1jb2xvcnMgJHt0PT09bz9gYmctZ3JheS01MCBkYXJrOmJnLWdyYXktODAwYDpgYH0iIGRhdGEtaW5kZXg9IiR7dH0iPgogICAgICAgIDxzdmcgY2xhc3M9InNpemUtNCBtdC0wLjUgc2hyaW5rLTAgdGV4dC1ncmF5LTQwMCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMTkuNSAxNC4yNXYtMi42MjVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVoLTEuNUExLjEyNSAxLjEyNSAwIDAgMSAxMy41IDcuMTI1di0xLjVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVIOC4yNW0yLjI1IDBINS42MjVjLS42MjEgMC0xLjEyNS41MDQtMS4xMjUgMS4xMjV2MTcuMjVjMCAuNjIxLjUwNCAxLjEyNSAxLjEyNSAxLjEyNWgxMi43NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxMS4yNWE5IDkgMCAwIDAtOS05WiIgLz4KICAgICAgICA8L3N2Zz4KICAgICAgICA8ZGl2IGNsYXNzPSJtaW4tdy0wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDAiPiR7dihlLnRpdGxlKX08L2Rpdj4KICAgICAgICAgICR7ZS5zbmlwcGV0c1swXT9gPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMCBtdC0wLjUgbGluZS1jbGFtcC0yIj4ke3YoZS5zbmlwcGV0c1swXSl9PC9kaXY+YDpgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9hPmApLmpvaW4oYGApLGkucXVlcnlTZWxlY3RvckFsbChgLnNlYXJjaC1pdGVtYCkuZm9yRWFjaChlPT57ZS5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsKCk9PmwoKSl9KX1mdW5jdGlvbiBmKGUpe3MubGVuZ3RoIT09MCYmKG89TWF0aC5tYXgoMCxNYXRoLm1pbihlLHMubGVuZ3RoLTEpKSxkKCksaS5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pbmRleD0iJHtvfSJdYCk/LnNjcm9sbEludG9WaWV3KHtibG9jazpgbmVhcmVzdGB9KSl9ZnVuY3Rpb24gcCgpe2xldCBlPV8obSk7aWYoZS5sZW5ndGg9PT0wKXtpLmlubmVySFRNTD1gPHAgY2xhc3M9InB4LTQgcHktOCB0ZXh0LXNtIHRleHQtZ3JheS00MDAgdGV4dC1jZW50ZXIiPlR5cGUgdG8gc2VhcmNo4oCmPC9wPmA7cmV0dXJufXM9ZS5tYXAoZT0+KHtwYXRoOmUucGF0aCx0aXRsZTplLnRpdGxlLHNuaXBwZXRzOltdfSkpLG89LTEsaS5pbm5lckhUTUw9cy5tYXAoKGUsdCk9PmAKICAgICAgPGEgaHJlZj0iJHtlLnBhdGh9IiBjbGFzcz0ic2VhcmNoLWl0ZW0gZmxleCBpdGVtcy1zdGFydCBnYXAtMyBweC00IHB5LTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGRhcms6Ym9yZGVyLWdyYXktODAwIGhvdmVyOmJnLWdyYXktNTAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWNvbG9ycyIgZGF0YS1pbmRleD0iJHt0fSI+CiAgICAgICAgPHN2ZyBjbGFzcz0ic2l6ZS00IG10LTAuNSBzaHJpbmstMCB0ZXh0LWdyYXktNDAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik0xOS41IDE0LjI1di0yLjYyNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NWgtMS41QTEuMTI1IDEuMTI1IDAgMCAxIDEzLjUgNy4xMjV2LTEuNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NUg4LjI1bTIuMjUgMEg1LjYyNWMtLjYyMSAwLTEuMTI1LjUwNC0xLjEyNSAxLjEyNXYxNy4yNWMwIC42MjEuNTA0IDEuMTI1IDEuMTI1IDEuMTI1aDEyLjc1Yy42MjEgMCAxLjEyNS0uNTA0IDEuMTI1LTEuMTI1VjExLjI1YTkgOSAwIDAgMC05LTlaIiAvPgogICAgICAgIDwvc3ZnPgogICAgICAgIDxkaXYgY2xhc3M9Im1pbi13LTAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTEwMCI+JHt2KGUudGl0bGUpfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+YCkuam9pbihgYCksaS5xdWVyeVNlbGVjdG9yQWxsKGAuc2VhcmNoLWl0ZW1gKS5mb3JFYWNoKGU9PntlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCx0PT57dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPU51bWJlcihlLmRhdGFzZXQuaW5kZXgpO2goc1tuXS5wYXRoKX0pfSl9ZnVuY3Rpb24gaChlKXtsb2NhdGlvbi5oYXNoPWUsbCgpfX1mdW5jdGlvbiBfKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlKW4ucGFnZSE9PSExJiZ0LnB1c2goe3BhdGg6bi5wYXRoLHRpdGxlOm4udGl0bGV9KSxuLmNoaWxkcmVuJiZ0LnB1c2goLi4uXyhuLmNoaWxkcmVuKSk7cmV0dXJuIHR9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5yZXBsYWNlKC8mL2csYCZhbXA7YCkucmVwbGFjZSgvPC9nLGAmbHQ7YCkucmVwbGFjZSgvPi9nLGAmZ3Q7YCkucmVwbGFjZSgvIi9nLGAmcXVvdDtgKX12YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgc2lkZWJhcmApLGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGNvbnRlbnRgKTtyKCksZygpO2Z1bmN0aW9uIHgoZSl7aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxgYCxlKSxTKCl9YXN5bmMgZnVuY3Rpb24gUygpe2xldCBlPWxvY2F0aW9uLnBhdGhuYW1lO2lmKGU9PT1gL2Ape2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPlNlbGVjdCBhIHBhZ2UgZnJvbSB0aGUgc2lkZWJhci48L3A+YCk7cmV0dXJufWQoeSxlKSxhd2FpdCBwKGIsZSl9YXN5bmMgZnVuY3Rpb24gQygpe2xldCBlPShhd2FpdChhd2FpdCBmZXRjaChgL2FwaS9tZXRhYCkpLmpzb24oKSkudG9jO3JldHVybiBsKHksZSksaChlKSxkKHksbG9jYXRpb24ucGF0aG5hbWUpLGV9YXN5bmMgZnVuY3Rpb24gdygpe2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IGU9YXdhaXQgQygpO2lmKHkuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLGU9PntsZXQgdD1lLnRhcmdldC5jbG9zZXN0KGBhLm5hdi1saW5rYCk7dCYmKGUucHJldmVudERlZmF1bHQoKSx4KHQuZ2V0QXR0cmlidXRlKGBkYXRhLXBhdGhgKSkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCxTKSxsb2NhdGlvbi5wYXRobmFtZT09PWAvYCl7bGV0IHQ9cyhlKTtpZih0KXt4KHQpO3JldHVybn19UygpLFQoKX1mdW5jdGlvbiBUKCl7bGV0IGU9bmV3IEV2ZW50U291cmNlKGAvYXBpL3dhdGNoYCk7ZS5vbm1lc3NhZ2U9YXN5bmMoKT0+e2F3YWl0IEMoKTtsZXQgZT1sb2NhdGlvbi5wYXRobmFtZTtlIT09YC9gJiZhd2FpdCBwKGIsZSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBiZWZvcmV1bmxvYWRgLCgpPT5lLmNsb3NlKCkpfXcoKTs=`
468
600
  },
469
601
  "/assets/logo-BLkVGWak.svg": {
470
602
  type: `image/svg+xml`,
471
603
  etag: `"557-HYXN/qI1kFu3DGsCSw4J8HIDoeU"`,
472
- mtime: `2026-03-25T21:41:35.760Z`,
604
+ mtime: `2026-03-27T14:37:40.339Z`,
473
605
  size: 1367,
474
606
  path: `../public/assets/logo-BLkVGWak.svg`,
475
607
  data: `PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgPCEtLSBCb2R5OiByb3VuZGVkIHJlY3RhbmdsZSAoZG9jdW1lbnQgc2hhcGUpIC0tPgogIDxyZWN0IHg9IjQwIiB5PSIzMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxNTAiIHJ4PSIxOCIgcnk9IjE4IiBmaWxsPSIjMkIyRDQyIi8+CgogIDwhLS0gRG9jdW1lbnQgbGluZXMgKG1hcmtkb3duIGZlZWwpIC0tPgogIDxyZWN0IHg9IjYyIiB5PSI3MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjOEQ5OUFFIi8+CiAgPHJlY3QgeD0iNjIiIHk9Ijg2IiB3aWR0aD0iNzYiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTAyIiB3aWR0aD0iNjIiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTE4IiB3aWR0aD0iNzAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTM0IiB3aWR0aD0iNDAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KCiAgPCEtLSBIZWFkaW5nIGhhc2ggbWFyayAobWFya2Rvd24gIykgLS0+CiAgPHRleHQgeD0iNjIiIHk9IjYwIiBmb250LWZhbWlseT0ibW9ub3NwYWNlIiBmb250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSIxOCIgZmlsbD0iI0VERjJGNCI+IzwvdGV4dD4KCiAgPCEtLSBFeWVzIC0tPgogIDxjaXJjbGUgY3g9Ijc4IiBjeT0iMTcyIiByPSI1IiBmaWxsPSIjRUYyMzNDIi8+CiAgPGNpcmNsZSBjeD0iMTIyIiBjeT0iMTcyIiByPSI1IiBmaWxsPSIjRUYyMzNDIi8+CgogIDwhLS0gVGVldGggKHppbGxhIGJpdGUgb24gYm90dG9tKSAtLT4KICA8cG9seWdvbiBwb2ludHM9IjY4LDE4MCA3NCwxOTIgODAsMTgwIiBmaWxsPSIjRURGMkY0Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSI4OCwxODAgOTQsMTkyIDEwMCwxODAiIGZpbGw9IiNFREYyRjQiLz4KICA8cG9seWdvbiBwb2ludHM9IjEwOCwxODAgMTE0LDE5MiAxMjAsMTgwIiBmaWxsPSIjRURGMkY0Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSIxMjgsMTgwIDEzNCwxOTIgMTQwLDE4MCIgZmlsbD0iI0VERjJGNCIvPgoKICA8IS0tIFNwaWtlcyBvbiB0b3AgKHppbGxhIGhvcm5zKSAtLT4KICA8cG9seWdvbiBwb2ludHM9IjcwLDMwIDc4LDEwIDg2LDMwIiBmaWxsPSIjMkIyRDQyIi8+CiAgPHBvbHlnb24gcG9pbnRzPSI5MiwzMCAxMDAsNiAxMDgsMzAiIGZpbGw9IiMyQjJENDIiLz4KICA8cG9seWdvbiBwb2ludHM9IjExNCwzMCAxMjIsMTAgMTMwLDMwIiBmaWxsPSIjMkIyRDQyIi8+Cjwvc3ZnPgo=`
476
608
  }
477
609
  };
478
- function ze(e) {
479
- if (U[e]) return U[e]._data ? U[e]._data : U[e].data ? (U[e]._data = Uint8Array.from(atob(U[e].data), (e) => e.charCodeAt(0)), U[e]._data) : U[e].data;
610
+ function Ye(e) {
611
+ if (H[e]) return H[e]._data ? H[e]._data : H[e].data ? (H[e]._data = Uint8Array.from(atob(H[e].data), (e) => e.charCodeAt(0)), H[e]._data) : H[e].data;
480
612
  }
481
- var Be = {};
482
- function Ve(e = ``) {
483
- if (U[e]) return !0;
484
- for (let t in Be) if (e.startsWith(t)) return !0;
613
+ var Xe = {};
614
+ function Ze(e = ``) {
615
+ if (H[e]) return !0;
616
+ for (let t in Xe) if (e.startsWith(t)) return !0;
485
617
  return !1;
486
618
  }
487
- function He(e) {
488
- return U[e];
619
+ function Qe(e) {
620
+ return H[e];
489
621
  }
490
- V();
491
- var Ue = new Set([`HEAD`, `GET`]), We = {
622
+ B();
623
+ var $e = new Set([`HEAD`, `GET`]), et = {
492
624
  gzip: `.gz`,
493
625
  br: `.br`,
494
626
  zstd: `.zst`
495
- }, Ge = T((e) => {
496
- if (e.req.method && !Ue.has(e.req.method)) return;
497
- let t = ke(Fe(Me(e.url.pathname))), n, r = [...(e.req.headers.get(`accept-encoding`) || ``).split(`,`).map((e) => We[e.trim()]).filter(Boolean).sort(), ``];
498
- for (let e of r) for (let r of [t + e, Le(t, `index.html` + e)]) {
499
- let e = He(r);
627
+ }, tt = D((e) => {
628
+ if (e.req.method && !$e.has(e.req.method)) return;
629
+ let t = ze(Ge(He(e.url.pathname))), n, r = [...(e.req.headers.get(`accept-encoding`) || ``).split(`,`).map((e) => et[e.trim()]).filter(Boolean).sort(), ``];
630
+ for (let e of r) for (let r of [t + e, qe(t, `index.html` + e)]) {
631
+ let e = Qe(r);
500
632
  if (e) {
501
633
  n = e, t = r;
502
634
  break;
503
635
  }
504
636
  }
505
637
  if (!n) {
506
- if (Ve(t)) throw e.res.headers.delete(`Cache-Control`), new N({ status: 404 });
638
+ if (Ze(t)) throw e.res.headers.delete(`Cache-Control`), new F({ status: 404 });
507
639
  return;
508
640
  }
509
641
  if (r.length > 1 && e.res.headers.append(`Vary`, `Accept-Encoding`), e.req.headers.get(`if-none-match`) === n.etag) return e.res.status = 304, e.res.statusText = `Not Modified`, ``;
510
642
  let i = e.req.headers.get(`if-modified-since`), a = new Date(n.mtime);
511
- return i && n.mtime && new Date(i) >= a ? (e.res.status = 304, e.res.statusText = `Not Modified`, ``) : (n.type && e.res.headers.set(`Content-Type`, n.type), n.etag && !e.res.headers.has(`ETag`) && e.res.headers.set(`ETag`, n.etag), n.mtime && !e.res.headers.has(`Last-Modified`) && e.res.headers.set(`Last-Modified`, a.toUTCString()), n.encoding && !e.res.headers.has(`Content-Encoding`) && e.res.headers.set(`Content-Encoding`, n.encoding), n.size > 0 && !e.res.headers.has(`Content-Length`) && e.res.headers.set(`Content-Length`, n.size.toString()), ze(t));
512
- }), W = y((() => {
513
- V();
643
+ return i && n.mtime && new Date(i) >= a ? (e.res.status = 304, e.res.statusText = `Not Modified`, ``) : (n.type && e.res.headers.set(`Content-Type`, n.type), n.etag && !e.res.headers.has(`ETag`) && e.res.headers.set(`ETag`, n.etag), n.mtime && !e.res.headers.has(`Last-Modified`) && e.res.headers.set(`Last-Modified`, a.toUTCString()), n.encoding && !e.res.headers.has(`Content-Encoding`) && e.res.headers.set(`Content-Encoding`, n.encoding), n.size > 0 && !e.res.headers.has(`Content-Length`) && e.res.headers.set(`Content-Length`, n.size.toString()), Ye(t));
644
+ }), U = b((() => {
645
+ B();
514
646
  }));
515
- function Ke(e, t, n) {
647
+ function nt(e, t, n) {
516
648
  let r = [];
517
649
  for (let i of e) r.push({
518
650
  entry: i,
519
651
  depth: t,
520
652
  filePath: n.get(i.path)
521
- }), i.children && r.push(...Ke(i.children, t + 1, n));
653
+ }), i.children && r.push(...nt(i.children, t + 1, n));
522
654
  return r;
523
655
  }
524
- function qe(e, t) {
656
+ function rt(e, t) {
525
657
  let n = e.toLowerCase(), r = t.toLowerCase();
526
658
  if (n.length === 0) return 0;
527
659
  if (n.length > r.length) return -1;
@@ -529,13 +661,13 @@ function qe(e, t) {
529
661
  for (let e = 0; e < r.length && a < n.length; e++) r[e] === n[a] && (o === e - 1 && (i -= 5), (e === 0 || `/\\-_. `.includes(r[e - 1])) && (i -= 10), o >= 0 && (i += e - o - 1), o = e, a++);
530
662
  return a < n.length ? -1 : (i += r.length * .1, i);
531
663
  }
532
- function Je(e, t, n) {
664
+ function it(e, t, n) {
533
665
  if (!t) return e;
534
666
  let r = [];
535
667
  for (let i of e) {
536
668
  let e = Infinity;
537
669
  for (let r of n(i)) {
538
- let n = qe(t, r);
670
+ let n = rt(t, r);
539
671
  n !== -1 && n < e && (e = n);
540
672
  }
541
673
  e < Infinity && r.push({
@@ -545,7 +677,7 @@ function Je(e, t, n) {
545
677
  }
546
678
  return r.sort((e, t) => e.score - t.score), r.map((e) => e.item);
547
679
  }
548
- function Ye(e, t, n = 1) {
680
+ function at(e, t, n = 1) {
549
681
  let r = [], i = e.split(`
550
682
  `);
551
683
  for (let e = 0; e < i.length; e++) if (i[e].toLowerCase().includes(t)) {
@@ -559,23 +691,40 @@ function Ye(e, t, n = 1) {
559
691
  }
560
692
  return r;
561
693
  }
562
- var G, Xe = y((() => {
563
- G = class {
694
+ var W, ot = b((() => {
695
+ W = class {
564
696
  source;
565
697
  tree = [];
566
698
  flat = [];
567
699
  _fileMap = /* @__PURE__ */ new Map();
568
700
  _contentCache = /* @__PURE__ */ new Map();
701
+ _changeListeners = /* @__PURE__ */ new Set();
702
+ _reloadTimer;
569
703
  constructor(e) {
570
704
  this.source = e;
571
705
  }
572
706
  async load() {
573
707
  let { tree: e, fileMap: t } = await this.source.load();
574
- this.tree = e, this._fileMap = t, this.flat = Ke(this.tree, 0, this._fileMap), this._contentCache.clear();
708
+ this.tree = e, this._fileMap = t, this.flat = nt(this.tree, 0, this._fileMap), this._contentCache.clear();
575
709
  }
576
710
  async reload() {
577
711
  return this.load();
578
712
  }
713
+ watch() {
714
+ this.source.watch(({ path: e }) => {
715
+ clearTimeout(this._reloadTimer), this._reloadTimer = setTimeout(() => {
716
+ this.reload().then(() => {
717
+ for (let t of this._changeListeners) t(e);
718
+ });
719
+ }, 100);
720
+ });
721
+ }
722
+ unwatch() {
723
+ clearTimeout(this._reloadTimer), this.source.unwatch(), this._changeListeners.clear();
724
+ }
725
+ onChange(e) {
726
+ return this._changeListeners.add(e), () => this._changeListeners.delete(e);
727
+ }
579
728
  async getContent(e) {
580
729
  if (!e.filePath || e.entry.page === !1) return;
581
730
  let t = this._contentCache.get(e.filePath);
@@ -587,7 +736,7 @@ var G, Xe = y((() => {
587
736
  this._contentCache.delete(e);
588
737
  }
589
738
  filter(e) {
590
- return Je(this.flat, e, ({ entry: e }) => [e.title, e.path]);
739
+ return it(this.flat, e, ({ entry: e }) => [e.title, e.path]);
591
740
  }
592
741
  async *search(t) {
593
742
  if (!t) return;
@@ -609,7 +758,7 @@ var G, Xe = y((() => {
609
758
  }
610
759
  }
611
760
  }
612
- let f = s ? Ye(s, n) : [];
761
+ let f = s ? at(s, n) : [];
613
762
  yield {
614
763
  flat: t,
615
764
  score: u,
@@ -658,7 +807,7 @@ var G, Xe = y((() => {
658
807
  }
659
808
  };
660
809
  }));
661
- function Ze(e, t, n = {}) {
810
+ function st(e, t, n = {}) {
662
811
  let { maxSnippets: r = 3, radius: i = 80 } = n, a = e.toLowerCase(), o = [];
663
812
  for (let e of t) {
664
813
  let t = a.indexOf(e);
@@ -676,8 +825,8 @@ function Ze(e, t, n = {}) {
676
825
  }
677
826
  return s;
678
827
  }
679
- var Qe = y((() => {}));
680
- function $e(e) {
828
+ var ct = b((() => {}));
829
+ function lt(e) {
681
830
  let t = e.endsWith(`.md`) ? e.slice(0, -3) : e, n = t.endsWith(`.draft`);
682
831
  n && (t = t.slice(0, -6));
683
832
  let r = t.match(/^(\d+)\.(.+)$/);
@@ -691,10 +840,10 @@ function $e(e) {
691
840
  draft: n
692
841
  };
693
842
  }
694
- function et(e) {
843
+ function ut(e) {
695
844
  return e.split(`-`).map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(` `);
696
845
  }
697
- async function tt(t) {
846
+ async function dt(t) {
698
847
  try {
699
848
  let { headings: n, ...r } = parseMeta(`---\n${await readFile(join(t, `.navigation.yml`), `utf8`)}\n---\n`);
700
849
  return r;
@@ -702,7 +851,7 @@ async function tt(t) {
702
851
  return {};
703
852
  }
704
853
  }
705
- function nt(e) {
854
+ function ft(e) {
706
855
  let t = e.navigation;
707
856
  if (t === !1) return {
708
857
  ...e,
@@ -717,60 +866,61 @@ function nt(e) {
717
866
  }
718
867
  return e;
719
868
  }
720
- function rt(e) {
869
+ function pt(e) {
721
870
  let t = {}, n = !1;
722
- for (let [r, i] of Object.entries(e)) !ot.has(r) && r !== `navigation` && (t[r] = i, n = !0);
871
+ for (let [r, i] of Object.entries(e)) !gt.has(r) && r !== `navigation` && (t[r] = i, n = !0);
723
872
  return n ? t : void 0;
724
873
  }
725
- async function it(e, t) {
726
- return at(e, `/`, t || {});
874
+ async function mt(e, t) {
875
+ return ht(e, `/`, t || {});
727
876
  }
728
- async function at(t, n, r) {
729
- let s = await readdir(t), l = [];
877
+ async function ht(t, n, r) {
878
+ let s = await readdir(t), c = [];
730
879
  for (let a of s) {
731
880
  if (a.startsWith(`.`) || a.startsWith(`_`) || a === `node_modules` || a === `dist` || a === `package.json` || a === `pnpm-lock.yaml` || a === `pnpm-workspace.yaml`) continue;
732
- let s = join(t, a), f;
881
+ let s = join(t, a), l;
733
882
  try {
734
- f = await stat(s);
883
+ l = await stat(s);
735
884
  } catch {
736
885
  continue;
737
886
  }
738
- if (f.isDirectory()) {
739
- let { order: e, slug: t } = $e(a), i = await tt(s);
887
+ if (l.isDirectory()) {
888
+ let { order: e, slug: t } = lt(a), i = await dt(s);
740
889
  if (i.navigation === !1) continue;
741
- let o = await at(s, n === `/` ? `/${t}` : `${n}/${t}`, r), c = o.some((e) => e.slug === ``), u = {
890
+ let o = await ht(s, n === `/` ? `/${t}` : `${n}/${t}`, r), l = o.some((e) => e.slug === ``), u = {
742
891
  slug: t,
743
892
  path: n === `/` ? `/${t}` : `${n}/${t}`,
744
- title: i.title || et(t),
893
+ title: i.title || ut(t),
745
894
  order: e,
746
895
  ...i.icon ? { icon: i.icon } : {},
747
896
  ...i.description ? { description: i.description } : {},
748
- ...c ? {} : { page: !1 },
897
+ ...l ? {} : { page: !1 },
749
898
  ...o.length > 0 ? { children: o } : {}
750
899
  };
751
- l.push(u);
900
+ c.push(u);
752
901
  } else if (extname(a) === `.md`) {
753
- let { order: t, slug: o, draft: u } = $e(basename(a));
754
- if (u && !r.drafts) continue;
755
- let d = nt(parseMeta(await readFile(s, `utf8`)));
756
- if (d.navigation === !1) continue;
757
- let f = typeof d.order == `number` ? d.order : t, p = o === `index` ? `` : o, m = d.title || et(o) || `index`, h = p === `` ? n === `/` ? `/` : n : n === `/` ? `/${p}` : `${n}/${p}`, g = rt(d), _ = {
758
- slug: p,
759
- path: h,
760
- title: m,
761
- order: f,
762
- ...d.icon ? { icon: d.icon } : {},
763
- ...d.description ? { description: d.description } : {},
764
- ...u ? { draft: !0 } : {},
765
- ...g
902
+ let { order: t, slug: o, draft: l } = lt(basename(a));
903
+ if (l && !r.drafts) continue;
904
+ let d = parseMeta(await readFile(s, `utf8`)), f = ft(d);
905
+ if (f.navigation === !1) continue;
906
+ let p = typeof f.order == `number` ? f.order : t, m = o === `index` ? `` : o, h = d.headings?.find((e) => e.level === 1)?.text, g = f.title || h || ut(o) || `index`, _ = m === `` ? n === `/` ? `/` : n : n === `/` ? `/${m}` : `${n}/${m}`, v = pt(f), y = {
907
+ slug: m,
908
+ path: _,
909
+ title: g,
910
+ order: p,
911
+ ...h && h !== g ? { heading: h } : {},
912
+ ...f.icon ? { icon: f.icon } : {},
913
+ ...f.description ? { description: f.description } : {},
914
+ ...l ? { draft: !0 } : {},
915
+ ...v
766
916
  };
767
- l.push(_);
917
+ c.push(y);
768
918
  }
769
919
  }
770
- return l.sort((e, t) => e.order - t.order || e.slug.localeCompare(t.slug)), l;
920
+ return c.sort((e, t) => e.order - t.order || e.slug.localeCompare(t.slug)), c;
771
921
  }
772
- var ot, st = y((() => {
773
- ot = new Set([
922
+ var gt, _t = b((() => {
923
+ gt = new Set([
774
924
  `slug`,
775
925
  `path`,
776
926
  `title`,
@@ -781,64 +931,76 @@ var ot, st = y((() => {
781
931
  `children`,
782
932
  `headings`
783
933
  ]);
784
- })), K, q = y((() => {
785
- K = class {};
934
+ })), G, K = b((() => {
935
+ G = class {
936
+ watch(e) {}
937
+ unwatch() {}
938
+ };
786
939
  }));
787
- function ct(e) {
940
+ function vt(e) {
788
941
  let t = e.endsWith(`.draft`) ? e.slice(0, -6) : e, n = t.match(/^(\d+)\.(.+)$/);
789
942
  return n ? n[2] : t;
790
943
  }
791
- async function lt(e, t) {
944
+ async function yt(e, t) {
792
945
  let n = /* @__PURE__ */ new Map(), r = await readdir(t, { withFileTypes: !0 });
793
946
  for (let i of r) {
794
947
  if (i.name.startsWith(`.`) || i.name.startsWith(`_`) || i.name === `node_modules` || i.name === `dist`) continue;
795
948
  let r = join(t, i.name);
796
949
  if (i.isDirectory()) {
797
- let t = ct(i.name), a = await lt(e === `/` ? `/${t}` : `${e}/${t}`, r);
950
+ let t = vt(i.name), a = await yt(e === `/` ? `/${t}` : `${e}/${t}`, r);
798
951
  for (let [e, t] of a) n.set(e, t);
799
952
  } else if (extname(i.name) === `.md`) {
800
- let t = ct(i.name.replace(/\.md$/, ``)), a = t === `index` ? `` : t, o = a === `` ? e === `/` ? `/` : e : e === `/` ? `/${a}` : `${e}/${a}`;
953
+ let t = vt(i.name.replace(/\.md$/, ``)), a = t === `index` ? `` : t, o = a === `` ? e === `/` ? `/` : e : e === `/` ? `/${a}` : `${e}/${a}`;
801
954
  n.set(o, r);
802
955
  }
803
956
  }
804
957
  return n;
805
958
  }
806
- async function ut(e, t) {
959
+ async function bt(e, t) {
807
960
  let n;
808
961
  try {
809
962
  n = JSON.parse(await readFile(join(t, `_navigation.json`), `utf8`));
810
963
  } catch {
811
964
  return;
812
965
  }
813
- dt(e, n);
966
+ xt(e, n);
814
967
  }
815
- function dt(e, t) {
968
+ function xt(e, t) {
816
969
  let n = new Map(t.map((e, t) => [e.path, t]));
817
970
  e.sort((e, t) => (n.get(e.path) ?? Infinity) - (n.get(t.path) ?? Infinity));
818
971
  for (let n of e) if (n.children?.length) {
819
972
  let e = t.find((e) => e.path === n.path);
820
- e?.children && dt(n.children, e.children);
973
+ e?.children && xt(n.children, e.children);
821
974
  }
822
975
  }
823
- var J, Y = y((() => {
824
- st(), q(), J = class extends K {
976
+ var q, J = b((() => {
977
+ _t(), K(), q = class extends G {
825
978
  dir;
979
+ _watcher;
826
980
  constructor(e) {
827
981
  super(), this.dir = e;
828
982
  }
829
983
  async load() {
830
- let e = await it(this.dir);
831
- return await ut(e, this.dir), {
984
+ let e = await mt(this.dir);
985
+ return await bt(e, this.dir), {
832
986
  tree: e,
833
- fileMap: await lt(`/`, this.dir)
987
+ fileMap: await yt(`/`, this.dir)
834
988
  };
835
989
  }
836
990
  async readContent(e) {
837
991
  return readFile(e, `utf8`);
838
992
  }
993
+ watch(e) {
994
+ this.unwatch(), this._watcher = watch(this.dir, { recursive: !0 }, (t, n) => {
995
+ !n || n.startsWith(`.`) || n.startsWith(`_`) || e({ path: `/` + n });
996
+ });
997
+ }
998
+ unwatch() {
999
+ this._watcher?.close(), this._watcher = void 0;
1000
+ }
839
1001
  };
840
- })), X, ft = y((() => {
841
- q(), Y(), X = class extends K {
1002
+ })), Y, St = b((() => {
1003
+ K(), J(), Y = class extends G {
842
1004
  src;
843
1005
  options;
844
1006
  _fs;
@@ -861,7 +1023,7 @@ var J, Y = y((() => {
861
1023
  break;
862
1024
  }
863
1025
  }
864
- return this._fs = new J(i), this._fs.load();
1026
+ return this._fs = new q(i), this._fs.load();
865
1027
  }
866
1028
  async readContent(e) {
867
1029
  if (!this._fs) throw Error(`GitSource: call load() before readContent()`);
@@ -869,7 +1031,7 @@ var J, Y = y((() => {
869
1031
  }
870
1032
  };
871
1033
  }));
872
- function pt(e) {
1034
+ function Ct(e) {
873
1035
  let t = e, n = ``;
874
1036
  if (t.startsWith(`@`)) {
875
1037
  let e = t.indexOf(`/`, t.indexOf(`/`) + 1);
@@ -885,12 +1047,12 @@ function pt(e) {
885
1047
  subdir: n
886
1048
  };
887
1049
  }
888
- async function mt(e, t) {
1050
+ async function wt(e, t) {
889
1051
  let n = t ? `https://registry.npmjs.org/${e}/${t}` : `https://registry.npmjs.org/${e}`, r = await fetch(n);
890
1052
  if (!r.ok) throw Error(`Failed to fetch package info for ${e}${t ? `@${t}` : ``}: ${r.status} ${r.statusText}`);
891
1053
  return r.json();
892
1054
  }
893
- function ht(e) {
1055
+ function Tt(e) {
894
1056
  let t;
895
1057
  try {
896
1058
  t = new URL(e);
@@ -903,15 +1065,15 @@ function ht(e) {
903
1065
  let r = t.pathname.match(/^\/((?:@[^/]+\/)?[^/]+)\/?$/);
904
1066
  if (r && !/^(package|settings|signup|login|org|search)$/.test(r[1])) return r[1];
905
1067
  }
906
- var gt = y((() => {}));
907
- function _t(e) {
1068
+ var Et = b((() => {}));
1069
+ function Dt(e) {
908
1070
  try {
909
1071
  return new URL(e).hostname;
910
1072
  } catch {
911
1073
  return e;
912
1074
  }
913
1075
  }
914
- function vt(e, t, n, r) {
1076
+ function Ot(e, t, n, r) {
915
1077
  let i = e.split(`
916
1078
  `), a = [], o = ``, s = ``, c, l = 0, u = 0;
917
1079
  for (let e of i) {
@@ -926,7 +1088,7 @@ function vt(e, t, n, r) {
926
1088
  }
927
1089
  if (r.startsWith(`## `)) {
928
1090
  c = {
929
- slug: yt(r.slice(3).trim()),
1091
+ slug: kt(r.slice(3).trim()),
930
1092
  path: `/_section/${l}`,
931
1093
  title: r.slice(3).trim(),
932
1094
  order: l++,
@@ -958,20 +1120,20 @@ function vt(e, t, n, r) {
958
1120
  let d = {
959
1121
  slug: ``,
960
1122
  path: `/`,
961
- title: o || _t(t),
1123
+ title: o || Dt(t),
962
1124
  order: 0,
963
1125
  ...s ? { description: s } : {},
964
1126
  ...a.length > 0 ? { children: a } : {}
965
1127
  };
966
1128
  return n.set(`/`, `/`), r.set(`/`, e), [d];
967
1129
  }
968
- function yt(e) {
1130
+ function kt(e) {
969
1131
  return e.toLowerCase().replace(/[^a-z\d]+/g, `-`).replace(/^-|-$/g, ``);
970
1132
  }
971
- function bt(e, t) {
1133
+ function At(e, t) {
972
1134
  let n = /* @__PURE__ */ new Set(), r = [], i = /* @__PURE__ */ new Set(), a = 0, o = /\[([^\]]+)]\(([^)]+)\)/g, s;
973
1135
  for (; (s = o.exec(e)) !== null;) {
974
- let e = s[1], o = s[2], c = xt(o, t);
1136
+ let e = s[1], o = s[2], c = jt(o, t);
975
1137
  if (!c) continue;
976
1138
  let l = c.pathname.replace(/\/+$/, ``) || `/`, u = /\/index\.md$/i.test(l) || l.endsWith(`/index`);
977
1139
  if (l = l.replace(/\/index\.md$/i, ``).replace(/\/index$/, ``).replace(/\.md$/i, ``), l ||= `/`, l === `/` || n.has(l)) continue;
@@ -989,7 +1151,7 @@ function bt(e, t) {
989
1151
  tocPaths: i
990
1152
  };
991
1153
  }
992
- function xt(e, t) {
1154
+ function jt(e, t) {
993
1155
  try {
994
1156
  let n = new URL(t), r = new URL(e, t);
995
1157
  return r.origin !== n.origin || e.startsWith(`#`) || /\.(png|jpg|jpeg|gif|svg|css|js|ico|woff2?)$/i.test(r.pathname) ? void 0 : r;
@@ -997,8 +1159,8 @@ function xt(e, t) {
997
1159
  return;
998
1160
  }
999
1161
  }
1000
- var St, Ct = y((() => {
1001
- q(), gt(), St = class extends K {
1162
+ var Mt, Nt = b((() => {
1163
+ K(), Et(), Mt = class extends G {
1002
1164
  url;
1003
1165
  options;
1004
1166
  _contentCache = /* @__PURE__ */ new Map();
@@ -1006,7 +1168,7 @@ var St, Ct = y((() => {
1006
1168
  _fileMap = /* @__PURE__ */ new Map();
1007
1169
  _npmPackage;
1008
1170
  constructor(e, t = {}) {
1009
- super(), this.url = e.replace(/\/+$/, ``), this._npmPackage = ht(this.url), this.options = t;
1171
+ super(), this.url = e.replace(/\/+$/, ``), this._npmPackage = Tt(this.url), this.options = t;
1010
1172
  }
1011
1173
  async load() {
1012
1174
  if (this._npmPackage) return this._loadNpm(this._npmPackage);
@@ -1020,9 +1182,9 @@ var St, Ct = y((() => {
1020
1182
  let r = {
1021
1183
  slug: ``,
1022
1184
  path: `/`,
1023
- title: parseMeta(n).title || _t(this.url),
1185
+ title: parseMeta(n).title || Dt(this.url),
1024
1186
  order: 0
1025
- }, { entries: i, tocPaths: a } = bt(n, this.url);
1187
+ }, { entries: i, tocPaths: a } = At(n, this.url);
1026
1188
  if (i.length > 0) {
1027
1189
  r.children = i;
1028
1190
  for (let e of i) this._fileMap.set(e.path, e.path);
@@ -1050,7 +1212,7 @@ var St, Ct = y((() => {
1050
1212
  } catch {
1051
1213
  return;
1052
1214
  }
1053
- if (t.trimStart().startsWith(`#`)) return vt(t, e, this._fileMap, this._contentCache);
1215
+ if (t.trimStart().startsWith(`#`)) return Ot(t, e, this._fileMap, this._contentCache);
1054
1216
  }
1055
1217
  async readContent(e) {
1056
1218
  let t = this._contentCache.get(e);
@@ -1065,7 +1227,7 @@ var St, Ct = y((() => {
1065
1227
  if (!t.has(e.path)) return;
1066
1228
  let i = `${r}${e.path}`, a = await this._fetch(i);
1067
1229
  this._contentCache.set(e.path, a);
1068
- let { entries: o, tocPaths: s } = bt(a, i);
1230
+ let { entries: o, tocPaths: s } = At(a, i);
1069
1231
  if (o.length > 0) {
1070
1232
  e.children = o;
1071
1233
  for (let e of o) this._fileMap.set(e.path, e.path);
@@ -1076,7 +1238,7 @@ var St, Ct = y((() => {
1076
1238
  async _loadNpm(t) {
1077
1239
  let n;
1078
1240
  try {
1079
- let e = await mt(t);
1241
+ let e = await wt(t);
1080
1242
  n = e.readme || `# ${e.name || t}\n\n${e.description || `No README available.`}`;
1081
1243
  } catch (e) {
1082
1244
  n = `# Fetch Error\n\nFailed to fetch package \`${t}\`\n\n> ${e instanceof Error ? e.message : String(e)}`;
@@ -1105,8 +1267,8 @@ var St, Ct = y((() => {
1105
1267
  }
1106
1268
  };
1107
1269
  }));
1108
- async function wt(e) {
1109
- let { name: t, version: n, subdir: r } = pt(e), i = await mt(t, n);
1270
+ async function Pt(e) {
1271
+ let { name: t, version: n, subdir: r } = Ct(e), i = await wt(t, n);
1110
1272
  return {
1111
1273
  name: i.name,
1112
1274
  version: i.version,
@@ -1114,8 +1276,8 @@ async function wt(e) {
1114
1276
  tar: i.dist.tarball
1115
1277
  };
1116
1278
  }
1117
- var Tt, Et = y((() => {
1118
- q(), Y(), gt(), Tt = class extends K {
1279
+ var X, Ft = b((() => {
1280
+ K(), J(), Et(), X = class extends G {
1119
1281
  src;
1120
1282
  options;
1121
1283
  _fs;
@@ -1128,7 +1290,7 @@ var Tt, Et = y((() => {
1128
1290
  dir: r,
1129
1291
  force: !0,
1130
1292
  install: !1,
1131
- providers: { npm: wt },
1293
+ providers: { npm: Pt },
1132
1294
  registry: !1
1133
1295
  });
1134
1296
  let a = r;
@@ -1139,7 +1301,7 @@ var Tt, Et = y((() => {
1139
1301
  break;
1140
1302
  }
1141
1303
  }
1142
- return this._fs = new J(a), this._fs.load();
1304
+ return this._fs = new q(a), this._fs.load();
1143
1305
  }
1144
1306
  async readContent(e) {
1145
1307
  if (!this._fs) throw Error(`NpmSource: call load() before readContent()`);
@@ -1147,78 +1309,78 @@ var Tt, Et = y((() => {
1147
1309
  }
1148
1310
  };
1149
1311
  }));
1150
- function Dt(e) {
1151
- return e.startsWith(`http://`) || e.startsWith(`https://`) ? new St(e) : e.startsWith(`gh:`) ? new X(e) : e.startsWith(`npm:`) ? new Tt(e) : new J(e);
1312
+ function It(e) {
1313
+ return e.startsWith(`http://`) || e.startsWith(`https://`) ? new Mt(e) : e.startsWith(`gh:`) ? new Y(e) : e.startsWith(`npm:`) ? new X(e) : new q(e);
1152
1314
  }
1153
- var Ot = y((() => {
1154
- Y(), ft(), Ct(), Et(), q();
1315
+ var Lt = b((() => {
1316
+ J(), St(), Nt(), Ft(), K();
1155
1317
  }));
1156
- async function kt(e, t, n = {}) {
1157
- let i = new G(typeof e == `string` ? Dt(e) : e);
1158
- return await i.load(), await mkdir(t, { recursive: !0 }), await At(i, t, n), i;
1159
- }
1160
- async function At(e, i, a = {}) {
1161
- let o = e.flat.find((e) => e.entry.path === `/`), c = [`# ${a.title ?? o?.entry.title ?? `Table of Contents`}`, ``], u = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map();
1162
- Mt(e.tree, ``, f);
1163
- let p = /* @__PURE__ */ new Set();
1164
- jt(e.tree, p);
1318
+ async function Rt(e, t, n = {}) {
1319
+ let i = new W(typeof e == `string` ? It(e) : e);
1320
+ return await i.load(), await mkdir(t, { recursive: !0 }), await zt(i, t, n), i;
1321
+ }
1322
+ async function zt(e, i, a = {}) {
1323
+ let o = e.flat.find((e) => e.entry.path === `/`), c = [`# ${a.title ?? o?.entry.title ?? `Table of Contents`}`, ``], l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map();
1324
+ Vt(e.tree, ``, u);
1325
+ let f = /* @__PURE__ */ new Set();
1326
+ Bt(e.tree, f);
1165
1327
  for (let o of e.flat) {
1166
- if ((a.filter ? !a.filter(o) : o.entry.page === !1) || Nt.has(o.entry.path)) continue;
1328
+ if ((a.filter ? !a.filter(o) : o.entry.page === !1) || Ht.has(o.entry.path)) continue;
1167
1329
  let m = await e.getContent(o);
1168
1330
  if (m === void 0) continue;
1169
- let h = a.plainText ? renderToText(m) : renderToMarkdown(m), g = f.get(o.entry.path) ?? o.entry.path, _ = o.entry.path === `/` || p.has(o.entry.path) ? o.entry.path === `/` ? `/index.md` : `${g}/index.md` : g.endsWith(`.md`) ? g : `${g}.md`, v = join(i, _);
1170
- await mkdir(dirname(v), { recursive: !0 }), await writeFile(v, h, `utf8`), u.add(_.slice(1));
1331
+ let h = a.plainText ? renderToText(m) : renderToMarkdown(m), g = u.get(o.entry.path) ?? o.entry.path, _ = o.entry.path === `/` || f.has(o.entry.path) ? o.entry.path === `/` ? `/index.md` : `${g}/index.md` : g.endsWith(`.md`) ? g : `${g}.md`, v = join(i, _);
1332
+ await mkdir(dirname(v), { recursive: !0 }), await writeFile(v, h, `utf8`), l.add(_.slice(1));
1171
1333
  let y = ` `.repeat(o.depth), b = o.entry.description ? `: ${o.entry.description}` : ``;
1172
1334
  c.push(`${y}- [${o.entry.title}](.${_})${b}`);
1173
1335
  }
1174
1336
  let m = a.tocFile ?? `README.md`;
1175
- u.has(m) && (m = `_${m}`), await writeFile(join(i, m), c.join(`
1337
+ l.has(m) && (m = `_${m}`), await writeFile(join(i, m), c.join(`
1176
1338
  `) + `
1177
1339
  `, `utf8`);
1178
1340
  }
1179
- function jt(e, t) {
1180
- for (let n of e) n.children?.length && (t.add(n.path), jt(n.children, t));
1341
+ function Bt(e, t) {
1342
+ for (let n of e) n.children?.length && (t.add(n.path), Bt(n.children, t));
1181
1343
  }
1182
- function Mt(e, t, n) {
1344
+ function Vt(e, t, n) {
1183
1345
  for (let [r, i] of e.entries()) {
1184
1346
  let e = `${t}/${r}.${i.slug || `index`}`;
1185
- n.set(i.path, e), i.children?.length && Mt(i.children, e, n);
1347
+ n.set(i.path, e), i.children?.length && Vt(i.children, e, n);
1186
1348
  }
1187
1349
  }
1188
- var Nt, Pt = y((() => {
1189
- Xe(), Ot(), Nt = new Set([`/llms.txt`, `/llms-full.txt`]);
1190
- })), Ft = b({
1191
- Collection: () => G,
1192
- FSSource: () => J,
1193
- GitSource: () => X,
1194
- HTTPSource: () => St,
1195
- NpmSource: () => Tt,
1196
- Source: () => K,
1197
- exportSource: () => kt,
1198
- extractSnippets: () => Ze,
1199
- resolveSource: () => Dt,
1200
- writeCollection: () => At
1201
- }), It = y((() => {
1202
- Xe(), Qe(), Ot(), Pt();
1350
+ var Ht, Ut = b((() => {
1351
+ ot(), Lt(), Ht = new Set([`/llms.txt`, `/llms-full.txt`]);
1352
+ })), Wt = x({
1353
+ Collection: () => W,
1354
+ FSSource: () => q,
1355
+ GitSource: () => Y,
1356
+ HTTPSource: () => Mt,
1357
+ NpmSource: () => X,
1358
+ Source: () => G,
1359
+ exportSource: () => Rt,
1360
+ extractSnippets: () => st,
1361
+ resolveSource: () => It,
1362
+ writeCollection: () => zt
1363
+ }), Gt = b((() => {
1364
+ ot(), ct(), Lt(), Ut();
1203
1365
  }));
1204
1366
  async function Z(e) {
1205
1367
  if (Q) return Q;
1206
1368
  if (!Q) {
1207
- let { Collection: t, GitSource: n } = await Promise.resolve().then(() => (It(), Ft));
1208
- Q = new t(e?.source || new n(`gh:nitrojs/nitro/docs`, { subdir: `docs` })), await Q.load();
1369
+ let { Collection: t, resolveSource: n } = await Promise.resolve().then(() => (Gt(), Wt));
1370
+ Q = new t(e?.source || n(process.env.DOCS_SOURCE || `gh:nitrojs/nitro/docs`)), await Q.load(), Q.watch();
1209
1371
  }
1210
1372
  return Q;
1211
1373
  }
1212
- var Q, $ = y((() => {})), Lt = b({ default: () => Rt }), Rt, zt = y((() => {
1213
- W(), $(), Rt = T(async () => ({
1374
+ var Q, $ = b((() => {})), Kt = x({ default: () => qt }), qt, Jt = b((() => {
1375
+ U(), $(), qt = D(async () => ({
1214
1376
  title: `Nitro`,
1215
1377
  toc: (await Z()).tree
1216
1378
  }));
1217
- })), Bt = b({ default: () => Wt });
1218
- async function Vt(e) {
1379
+ })), Yt = x({ default: () => $t });
1380
+ async function Xt(e) {
1219
1381
  let t = /<pre><code class="language-(\w+)">([\s\S]*?)<\/code><\/pre>/g, n = [];
1220
1382
  for (let r of e.matchAll(t)) {
1221
- let [e, t, i] = r, a = Ut(i);
1383
+ let [e, t, i] = r, a = Qt(i);
1222
1384
  n.push(highlightText(a, t, !1).then((n) => ({
1223
1385
  match: e,
1224
1386
  result: `<pre><code class="language-${t}">${n}</code></pre>`
@@ -1231,35 +1393,35 @@ async function Vt(e) {
1231
1393
  for (let { match: e, result: t } of await Promise.all(n)) r = r.replace(e, t);
1232
1394
  return r;
1233
1395
  }
1234
- function Ht(e) {
1396
+ function Zt(e) {
1235
1397
  return e.replace(/<(h[1-6])>(.*?)<\/\1>/g, (e, t, n) => {
1236
1398
  let r = n.replace(/<[^>]+>/g, ``).trim().toLowerCase().replace(/[^\w\s-]/g, ``).replace(/\s+/g, `-`);
1237
1399
  return `<${t} id="${r}"><a href="#${r}">#</a>${n}</${t}>`;
1238
1400
  });
1239
1401
  }
1240
- function Ut(e) {
1402
+ function Qt(e) {
1241
1403
  return e.replace(/&amp;/g, `&`).replace(/&lt;/g, `<`).replace(/&gt;/g, `>`).replace(/&quot;/g, `"`).replace(/&#39;/g, `'`);
1242
1404
  }
1243
- var Wt, Gt = y((async () => {
1244
- W(), $(), await init(), Wt = T(async (e) => {
1245
- let { path: t } = me(e);
1405
+ var $t, en = b((async () => {
1406
+ U(), $(), await init(), $t = D(async (e) => {
1407
+ let { path: t } = pe(e);
1246
1408
  if (!t) return { error: `Missing ?path= query parameter` };
1247
1409
  let n = await (await Z()).resolvePage(t);
1248
1410
  return n.raw ? {
1249
1411
  path: t,
1250
- html: Ht(await Vt(renderToHtml(n.raw)))
1412
+ html: Zt(await Xt(renderToHtml(n.raw)))
1251
1413
  } : {
1252
1414
  error: `Page not found`,
1253
1415
  path: t
1254
1416
  };
1255
1417
  });
1256
- })), Kt = b({ default: () => qt }), qt, Jt = y((() => {
1257
- W(), $(), It(), qt = T(async (e) => {
1258
- let { q: t, limit: n } = me(e);
1418
+ })), tn = x({ default: () => nn }), nn, rn = b((() => {
1419
+ U(), $(), Gt(), nn = D(async (e) => {
1420
+ let { q: t, limit: n } = pe(e);
1259
1421
  if (!t || t.length < 2) return { results: [] };
1260
1422
  let r = await Z(), i = Math.min(Number(n) || 20, 50), a = t.toLowerCase().split(/\s+/).filter(Boolean), o = [];
1261
1423
  for await (let e of r.search(t)) {
1262
- let t = await r.getContent(e.flat), n = t ? renderToText$1(t) : ``, i = n ? Ze(n, a) : [];
1424
+ let t = await r.getContent(e.flat), n = t ? renderToText$1(t) : ``, i = n ? st(n, a) : [];
1263
1425
  o.push({
1264
1426
  path: e.flat.entry.path,
1265
1427
  title: e.flat.entry.title,
@@ -1270,8 +1432,17 @@ var Wt, Gt = y((async () => {
1270
1432
  }
1271
1433
  return o.sort((e, t) => e.score - t.score), { results: o.slice(0, i).map(({ score: e, ...t }) => t) };
1272
1434
  });
1273
- })), Yt, Xt = y((() => {
1274
- V(), Yt = () => new F(`<!doctype html>
1435
+ })), an = x({ default: () => on }), on, sn = b((() => {
1436
+ U(), $(), on = D(async (e) => {
1437
+ let t = await Z(), n = ve(e), r = t.onChange((e) => {
1438
+ n.push(JSON.stringify({ path: e }));
1439
+ });
1440
+ return n.onClosed(() => {
1441
+ r();
1442
+ }), n.send();
1443
+ });
1444
+ })), cn, ln = b((() => {
1445
+ B(), cn = () => new L(`<!doctype html>
1275
1446
  <html lang="en">
1276
1447
  <head>
1277
1448
  <meta charset="UTF-8" />
@@ -1280,7 +1451,7 @@ var Wt, Gt = y((async () => {
1280
1451
  <title></title>
1281
1452
  <style>/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
1282
1453
  @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.z-50{z-index:50}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-screen{height:100vh}.max-h-80{max-height:calc(var(--spacing) * 80)}.w-4{width:calc(var(--spacing) * 4)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-\\[15vh\\]{padding-top:15vh}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-red-500{color:var(--color-red-500)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:text-gray-500:hover{color:var(--color-gray-500)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\\:inline{display:inline}}.dark\\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\\:bg-gray-950:where(.dark,.dark *){background-color:var(--color-gray-950)}.dark\\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\\:text-gray-500:where(.dark,.dark *),.dark\\:placeholder-gray-500:where(.dark,.dark *)::placeholder{color:var(--color-gray-500)}@media (hover:hover){.dark\\:hover\\:border-gray-600:where(.dark,.dark *):hover{border-color:var(--color-gray-600)}.dark\\:hover\\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\\:hover\\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}.dark\\:hover\\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\\:hover\\:text-gray-400:where(.dark,.dark *):hover{color:var(--color-gray-400)}}}#search-results::-webkit-scrollbar{width:6px}#search-results::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:3px}.dark #search-results::-webkit-scrollbar-thumb{background:var(--color-gray-600)}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.nav-active{background:var(--color-gray-100)}.dark .nav-active{background:var(--color-gray-800)}.prose{color:var(--color-gray-700);line-height:1.75}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--color-gray-900);margin-top:2em;margin-bottom:.75em;font-weight:700;line-height:1.3;position:relative}:is(.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6)>a[href^=\\#]{color:var(--color-gray-300);opacity:0;padding-right:.25em;font-weight:400;text-decoration:none;transition:opacity .15s;position:absolute;right:100%}:is(.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6):hover>a[href^=\\#]{opacity:1}.prose h1{margin-top:0;font-size:2.25em}.prose h2{border-bottom:1px solid var(--color-gray-200);padding-bottom:.3em;font-size:1.5em}.prose h3{font-size:1.25em}.prose h4{font-size:1.1em}.prose p{margin-top:1.25em;margin-bottom:1.25em}.prose a{color:var(--color-blue-600);text-underline-offset:2px;text-decoration:underline}.prose a:hover{color:var(--color-blue-500)}.prose strong{color:var(--color-gray-900);font-weight:600}.prose code{color:var(--color-gray-800);background:var(--color-gray-100);border-radius:.25em;padding:.2em .4em;font-size:.875em}.prose pre{border:1px solid var(--color-gray-200);background:#f6f8fa;border-radius:.5em;margin-top:1.5em;margin-bottom:1.5em;padding:1em;overflow-x:auto}.prose pre code{background:0 0;border-radius:0;padding:0;font-size:.875em}.prose blockquote{border-left:3px solid var(--color-gray-300);color:var(--color-gray-500);margin-top:1.5em;margin-bottom:1.5em;padding-left:1em;font-style:italic}.prose blockquote.alert{border-left-width:4px;border-radius:.5em;padding:.75em 1em;font-style:normal}.prose blockquote.alert>p:first-child{margin-top:0}.prose blockquote.alert>p:last-child{margin-bottom:0}.prose blockquote.alert-tip{border-left-color:var(--color-green-500);background:#f0fdf499}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-tip{background:color-mix(in srgb, var(--color-green-50) 60%, transparent)}}.prose blockquote.alert-tip{color:var(--color-green-800)}.prose blockquote.alert-note{border-left-color:var(--color-blue-500);background:#eff6ff99}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-note{background:color-mix(in srgb, var(--color-blue-50) 60%, transparent)}}.prose blockquote.alert-note{color:var(--color-blue-800)}.prose blockquote.alert-important{border-left-color:var(--color-purple-500);background:#faf5ff99}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-important{background:color-mix(in srgb, var(--color-purple-50) 60%, transparent)}}.prose blockquote.alert-important{color:var(--color-purple-800)}.prose blockquote.alert-warning{border-left-color:var(--color-yellow-500);background:#fefce899}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-warning{background:color-mix(in srgb, var(--color-yellow-50) 60%, transparent)}}.prose blockquote.alert-warning{color:var(--color-yellow-800)}.prose blockquote.alert-caution{border-left-color:var(--color-red-500);background:#fef2f299}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-caution{background:color-mix(in srgb, var(--color-red-50) 60%, transparent)}}.prose blockquote.alert-caution{color:var(--color-red-800)}.prose ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.5em;list-style:outside}.prose ol{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.5em;list-style:decimal}.prose li{margin-top:.5em;margin-bottom:.5em}.prose li>ul,.prose li>ol{margin-top:.25em;margin-bottom:.25em}.prose hr{border:none;border-top:1px solid var(--color-gray-200);margin-top:2em;margin-bottom:2em}.prose table{border-collapse:collapse;width:100%;margin-top:1.5em;margin-bottom:1.5em;font-size:.875em}.prose th,.prose td{border:1px solid var(--color-gray-200);text-align:left;padding:.5em .75em}.prose th{background:var(--color-gray-50);color:var(--color-gray-900);font-weight:600}.prose img,.prose video{border-radius:.5em;max-width:100%;margin-top:1.5em;margin-bottom:1.5em}.dark .prose{color:var(--color-gray-200)}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:var(--color-gray-50)}:is(.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6)>a[href^=\\#]{color:var(--color-gray-600)}.dark .prose h2{border-bottom-color:var(--color-gray-700)}.dark .prose a{color:var(--color-blue-400)}.dark .prose a:hover{color:var(--color-blue-300)}.dark .prose strong{color:var(--color-gray-50)}.dark .prose code{color:var(--color-gray-100);background:var(--color-gray-800)}.dark .prose pre{border-color:var(--color-gray-700);background:#161b22}.dark .prose pre code{color:var(--color-gray-100);background:0 0}.dark .prose blockquote{border-left-color:var(--color-gray-600);color:var(--color-gray-400)}.dark .prose blockquote.alert-tip{background:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-tip{background:color-mix(in srgb, var(--color-green-900) 30%, transparent)}}.dark .prose blockquote.alert-tip{color:var(--color-green-300);border-left-color:var(--color-green-500)}.dark .prose blockquote.alert-note{background:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-note{background:color-mix(in srgb, var(--color-blue-900) 30%, transparent)}}.dark .prose blockquote.alert-note{color:var(--color-blue-300);border-left-color:var(--color-blue-500)}.dark .prose blockquote.alert-important{background:#59168b4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-important{background:color-mix(in srgb, var(--color-purple-900) 30%, transparent)}}.dark .prose blockquote.alert-important{color:var(--color-purple-300);border-left-color:var(--color-purple-500)}.dark .prose blockquote.alert-warning{background:#733e0a4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-warning{background:color-mix(in srgb, var(--color-yellow-900) 30%, transparent)}}.dark .prose blockquote.alert-warning{color:var(--color-yellow-300);border-left-color:var(--color-yellow-500)}.dark .prose blockquote.alert-caution{background:#82181a4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-caution{background:color-mix(in srgb, var(--color-red-900) 30%, transparent)}}.dark .prose blockquote.alert-caution{color:var(--color-red-300);border-left-color:var(--color-red-500)}.dark .prose hr{border-top-color:var(--color-gray-700)}.dark .prose th,.dark .prose td{border-color:var(--color-gray-700)}.dark .prose th{background:var(--color-gray-800);color:var(--color-gray-50)}.shj-syn-cmnt{color:#6e7781;font-style:italic}.shj-syn-err,.shj-syn-kwd{color:#cf222e}.shj-syn-class{color:#953800}.shj-syn-type,.shj-syn-oper,.shj-syn-num,.shj-syn-section,.shj-syn-var,.shj-syn-bool{color:#0550ae}.shj-syn-str{color:#0a3069}.shj-syn-func{color:#8250df}.shj-syn-insert{color:#116329}.shj-syn-deleted{color:#cf222e}.shj-syn-esc{color:#0550ae}.dark .shj-syn-cmnt{color:#8b949e}.dark .shj-syn-err,.dark .shj-syn-kwd{color:#ff7b72}.dark .shj-syn-class{color:#ffa657}.dark .shj-syn-type,.dark .shj-syn-oper,.dark .shj-syn-num,.dark .shj-syn-section,.dark .shj-syn-var,.dark .shj-syn-bool{color:#79c0ff}.dark .shj-syn-str{color:#a5d6ff}.dark .shj-syn-func{color:#d2a8ff}.dark .shj-syn-insert{color:#98c379}.dark .shj-syn-deleted{color:#ff7b72}.dark .shj-syn-esc{color:#79c0ff}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}</style>
1283
- <script type="module" crossorigin src="/assets/index-BC9qhYL0.js"><\/script>
1454
+ <script type="module" crossorigin src="/assets/index-CIhhqrBM.js"><\/script>
1284
1455
  </head>
1285
1456
  <body class="h-screen flex flex-col bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-200">
1286
1457
  <!-- Header -->
@@ -1407,19 +1578,19 @@ var Wt, Gt = y((async () => {
1407
1578
  </body>
1408
1579
  </html>
1409
1580
  `, { headers: { "content-type": `text/html; charset=utf-8` } });
1410
- })), Zt = b({ default: () => Qt });
1411
- function Qt(e) {
1412
- return Yt(e.req);
1581
+ })), un = x({ default: () => dn });
1582
+ function dn(e) {
1583
+ return cn(e.req);
1413
1584
  }
1414
- var $t = y((() => {
1415
- Xt();
1585
+ var fn = b((() => {
1586
+ ln();
1416
1587
  }));
1417
- V();
1418
- var en = (() => {
1588
+ B();
1589
+ var pn = (() => {
1419
1590
  let e = [{
1420
1591
  name: `headers`,
1421
1592
  route: `/assets/**`,
1422
- handler: Re,
1593
+ handler: Je,
1423
1594
  options: { "cache-control": `public, max-age=31536000, immutable` }
1424
1595
  }];
1425
1596
  return (t, n) => {
@@ -1431,38 +1602,42 @@ var en = (() => {
1431
1602
  params: { _: i.slice(2).join(`/`) }
1432
1603
  }), r;
1433
1604
  };
1434
- })(), tn = E(() => Promise.resolve().then(() => (zt(), Lt))), nn = E(() => Gt().then(() => Bt)), rn = E(() => Promise.resolve().then(() => (Jt(), Kt))), an = E(() => Promise.resolve().then(() => ($t(), Zt))), on = (() => {
1605
+ })(), mn = O(() => Promise.resolve().then(() => (Jt(), Kt))), hn = O(() => en().then(() => Yt)), gn = O(() => Promise.resolve().then(() => (rn(), tn))), _n = O(() => Promise.resolve().then(() => (sn(), an))), vn = O(() => Promise.resolve().then(() => (fn(), un))), yn = (() => {
1435
1606
  let e = {
1436
1607
  route: `/api/meta`,
1437
- handler: tn
1608
+ handler: mn
1438
1609
  }, t = {
1439
1610
  route: `/api/page`,
1440
- handler: nn
1611
+ handler: hn
1441
1612
  }, n = {
1442
1613
  route: `/api/search`,
1443
- handler: rn
1614
+ handler: gn
1444
1615
  }, r = {
1616
+ route: `/api/watch`,
1617
+ handler: _n
1618
+ }, i = {
1445
1619
  route: `/**`,
1446
- handler: an
1620
+ handler: vn
1447
1621
  };
1448
- return (i, a) => {
1449
- if (a.charCodeAt(a.length - 1) === 47 && (a = a.slice(0, -1) || `/`), a === `/api/meta`) return { data: e };
1450
- if (a === `/api/page`) return { data: t };
1451
- if (a === `/api/search`) return { data: n };
1452
- let o = a.split(`/`);
1453
- return o.length, {
1454
- data: r,
1455
- params: { _: o.slice(1).join(`/`) }
1622
+ return (a, o) => {
1623
+ if (o.charCodeAt(o.length - 1) === 47 && (o = o.slice(0, -1) || `/`), o === `/api/meta`) return { data: e };
1624
+ if (o === `/api/page`) return { data: t };
1625
+ if (o === `/api/search`) return { data: n };
1626
+ if (o === `/api/watch`) return { data: r };
1627
+ let s = o.split(`/`);
1628
+ return s.length, {
1629
+ data: i,
1630
+ params: { _: s.slice(1).join(`/`) }
1456
1631
  };
1457
1632
  };
1458
- })(), sn = [D(Ge)].filter(Boolean);
1459
- V();
1460
- var cn = `default`;
1461
- function ln() {
1462
- let e = ln._instance;
1463
- return e || (e = ln._instance = un(), globalThis.__nitro__ = globalThis.__nitro__ || {}, globalThis.__nitro__[cn] = e, e);
1464
- }
1465
- function un() {
1633
+ })(), bn = [k(tt)].filter(Boolean);
1634
+ B();
1635
+ var xn = `default`;
1636
+ function Sn() {
1637
+ let e = Sn._instance;
1638
+ return e || (e = Sn._instance = Cn(), globalThis.__nitro__ = globalThis.__nitro__ || {}, globalThis.__nitro__[xn] = e, e);
1639
+ }
1640
+ function Cn() {
1466
1641
  let e = (e, t) => {
1467
1642
  if (t?.event) {
1468
1643
  let n = t.event.req.context?.nitro?.errors;
@@ -1471,8 +1646,8 @@ function un() {
1471
1646
  context: t
1472
1647
  });
1473
1648
  }
1474
- }, t = dn({ onError(e, t) {
1475
- return Ee(e, t);
1649
+ }, t = wn({ onError(e, t) {
1650
+ return Ie(e, t);
1476
1651
  } });
1477
1652
  return {
1478
1653
  fetch: (e) => (e.context ||= {}, e.context.nitro = e.context.nitro || { errors: [] }, t.fetch(e)),
@@ -1481,19 +1656,19 @@ function un() {
1481
1656
  captureError: e
1482
1657
  };
1483
1658
  }
1484
- function dn(e) {
1485
- let t = new be(e);
1486
- return t[`~findRoute`] = (e) => on(e.req.method, e.url.pathname), t[`~middleware`].push(...sn), t[`~getMiddleware`] = (e, n) => {
1659
+ function wn(e) {
1660
+ let t = new Oe(e);
1661
+ return t[`~findRoute`] = (e) => yn(e.req.method, e.url.pathname), t[`~middleware`].push(...bn), t[`~getMiddleware`] = (e, n) => {
1487
1662
  let r = e.url.pathname, i = e.req.method, a = [];
1488
1663
  {
1489
- let t = fn(i, r);
1664
+ let t = Tn(i, r);
1490
1665
  e.context.routeRules = t?.routeRules, t?.routeRuleMiddleware.length && a.push(...t.routeRuleMiddleware);
1491
1666
  }
1492
1667
  return a.push(...t[`~middleware`]), n?.data?.middleware?.length && a.push(...n.data.middleware), a;
1493
1668
  }, t;
1494
1669
  }
1495
- function fn(e, t) {
1496
- let n = en(e, t);
1670
+ function Tn(e, t) {
1671
+ let n = pn(e, t);
1497
1672
  if (!n?.length) return { routeRuleMiddleware: [] };
1498
1673
  let r = {};
1499
1674
  for (let e of n) for (let t of e.data) {
@@ -1523,12 +1698,12 @@ function fn(e, t) {
1523
1698
  };
1524
1699
  }
1525
1700
  $();
1526
- async function pn(e) {
1527
- let t = ln(), n = await Z(e);
1701
+ async function En(e) {
1702
+ let t = Sn(), n = await Z(e);
1528
1703
  return {
1529
1704
  fetch: t.fetch,
1530
1705
  docs: n
1531
1706
  };
1532
1707
  }
1533
1708
  //#endregion
1534
- export { pn as createDocsServer };
1709
+ export { En as createDocsServer };