gadidae 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +767 -42
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -273,12 +273,12 @@ body > a {
|
|
|
273
273
|
>
|
|
274
274
|
<style>
|
|
275
275
|
.codehs-logo {
|
|
276
|
-
animation: codehs-logo
|
|
276
|
+
animation: codehs-logo 3.6s ease-in-out forwards;
|
|
277
277
|
transform-origin: 8px 8px;
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
.cod-logo {
|
|
281
|
-
animation: cod-logo
|
|
281
|
+
animation: cod-logo 3.6s cubic-bezier(.2, .8, .2, 1) forwards;
|
|
282
282
|
opacity: 0;
|
|
283
283
|
transform: scale(.38);
|
|
284
284
|
transform-box: fill-box;
|
|
@@ -290,11 +290,11 @@ body > a {
|
|
|
290
290
|
font-size: 7px;
|
|
291
291
|
font-weight: 700;
|
|
292
292
|
letter-spacing: 0;
|
|
293
|
-
animation: text
|
|
293
|
+
animation: text 3.6s ease-in-out forwards;
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
.removed-text {
|
|
297
|
-
animation: removed-text
|
|
297
|
+
animation: removed-text 3.6s ease-in-out forwards;
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
@keyframes codehs-logo {
|
|
@@ -350,61 +350,786 @@ body > a {
|
|
|
350
350
|
<path stroke="currentColor" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"
|
|
351
351
|
d="M12 9 12 2 8.5 5.5M12 2l3.5 3.5M15 12 22 12 18.5 8.5M22 12l-3.5 3.5M9 12 2 12 5.5 8.5M2 12l3.5 3.5M12 15 12 22 15.5 18.5M12 22l-3.5-3.5" />
|
|
352
352
|
</svg>
|
|
353
|
-
`,i
|
|
353
|
+
`,i=`:root {
|
|
354
|
+
--cod-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
body {
|
|
354
358
|
background: var(--m3c-surface-container-lowest);
|
|
355
359
|
height: 100dvh;
|
|
360
|
+
overflow: hidden;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.m3-layer {
|
|
356
364
|
position: relative;
|
|
365
|
+
|
|
366
|
+
&:before {
|
|
367
|
+
content: "";
|
|
368
|
+
position: absolute;
|
|
369
|
+
inset: 0;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
&:after {
|
|
373
|
+
border-radius: inherit;
|
|
374
|
+
content: "";
|
|
375
|
+
opacity: 0;
|
|
376
|
+
pointer-events: none;
|
|
377
|
+
background-color: currentColor;
|
|
378
|
+
transition: opacity .15s;
|
|
379
|
+
position: absolute;
|
|
380
|
+
inset: 0;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
:disabled.m3-layer:after, button[aria-disabled="true"].m3-layer:after {
|
|
385
|
+
display: none;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
@media (hover: hover) {
|
|
389
|
+
:hover.m3-layer:after, :active.m3-layer:after {
|
|
390
|
+
opacity: .08;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
:focus-visible.m3-layer:after, html:not(.js) :active.m3-layer:after {
|
|
395
|
+
opacity: .12;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.terminal-app {
|
|
399
|
+
inset: auto max(.5rem, env(safe-area-inset-right))
|
|
400
|
+
max(2.5rem, calc(env(safe-area-inset-bottom) + 2.5rem))
|
|
401
|
+
max(.5rem, env(safe-area-inset-left));
|
|
402
|
+
z-index: 80;
|
|
403
|
+
background: var(--m3c-surface-container-lowest);
|
|
404
|
+
width: min(72rem, 100%);
|
|
405
|
+
height: min(34rem, 100dvh - 4rem);
|
|
406
|
+
color: var(--m3c-on-surface);
|
|
407
|
+
pointer-events: auto;
|
|
408
|
+
border-radius: 1rem;
|
|
409
|
+
grid-template-rows: auto 1fr;
|
|
410
|
+
margin: 0 auto;
|
|
411
|
+
display: none;
|
|
412
|
+
position: fixed;
|
|
413
|
+
overflow: hidden;
|
|
414
|
+
box-shadow: 0 -.5rem 2rem #0000003d, 0 1rem 3rem #00000073;
|
|
415
|
+
|
|
416
|
+
&[open] {
|
|
417
|
+
display: grid;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
&::backdrop {
|
|
421
|
+
background: #00000029;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
&:focus {
|
|
425
|
+
outline: none;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.terminal-header {
|
|
430
|
+
background: var(--m3c-surface-container-lowest);
|
|
431
|
+
align-items: center;
|
|
432
|
+
display: flex;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
.terminal-tabs {
|
|
436
|
+
overscroll-behavior-x: contain;
|
|
437
|
+
scrollbar-width: none;
|
|
438
|
+
flex: 1;
|
|
439
|
+
min-width: 0;
|
|
440
|
+
min-height: 3.5rem;
|
|
441
|
+
display: flex;
|
|
442
|
+
overflow-x: auto;
|
|
443
|
+
|
|
444
|
+
&::-webkit-scrollbar {
|
|
445
|
+
display: none;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
& .terminal-tab {
|
|
449
|
+
min-width: min(9rem, 42vw);
|
|
450
|
+
min-height: 3.5rem;
|
|
451
|
+
color: var(--m3c-on-surface-variant);
|
|
452
|
+
font: 750 .875rem/1 var(--cod-font);
|
|
453
|
+
cursor: pointer;
|
|
454
|
+
flex: 1 1 0;
|
|
455
|
+
align-items: stretch;
|
|
456
|
+
padding: .375rem;
|
|
457
|
+
animation: .19s cubic-bezier(.2, 0, 0, 1) both terminal-tab-grow;
|
|
458
|
+
display: flex;
|
|
459
|
+
overflow: hidden;
|
|
460
|
+
|
|
461
|
+
&:focus {
|
|
462
|
+
outline: none;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
&:focus-visible .terminal-tab-background {
|
|
466
|
+
outline: 2px solid var(--m3c-primary);
|
|
467
|
+
outline-offset: -2px;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
&:hover .terminal-tab-background:after, &:active .terminal-tab-background:after {
|
|
471
|
+
opacity: .08;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
&.active {
|
|
475
|
+
color: var(--m3c-on-primary-container-subtle);
|
|
476
|
+
|
|
477
|
+
& .terminal-tab-background {
|
|
478
|
+
background: var(--m3c-primary-container-subtle);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
& .terminal-tab-background {
|
|
484
|
+
pointer-events: none;
|
|
485
|
+
background: none;
|
|
486
|
+
border-radius: .875rem;
|
|
487
|
+
flex: 1;
|
|
488
|
+
justify-content: center;
|
|
489
|
+
align-items: center;
|
|
490
|
+
min-width: 0;
|
|
491
|
+
padding: 0 .75rem;
|
|
492
|
+
transition: background-color .15s, outline-color .15s;
|
|
493
|
+
display: flex;
|
|
494
|
+
|
|
495
|
+
& span {
|
|
496
|
+
text-overflow: ellipsis;
|
|
497
|
+
white-space: nowrap;
|
|
498
|
+
overflow: hidden;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
.terminal-empty button {
|
|
504
|
+
background: var(--m3c-secondary-container-subtle);
|
|
505
|
+
box-shadow: inset 0 0 0 1px var(--m3c-outline);
|
|
506
|
+
color: var(--m3c-on-secondary-container-subtle);
|
|
507
|
+
font: 750 .8rem/1.5 var(--cod-font);
|
|
508
|
+
cursor: pointer;
|
|
509
|
+
border-radius: 999px;
|
|
510
|
+
padding: 0 1ch;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.new-terminal {
|
|
514
|
+
width: 3.5rem;
|
|
515
|
+
height: 3.5rem;
|
|
516
|
+
color: var(--m3c-on-surface-variant);
|
|
517
|
+
cursor: pointer;
|
|
518
|
+
flex: none;
|
|
519
|
+
align-items: stretch;
|
|
520
|
+
display: flex;
|
|
521
|
+
|
|
522
|
+
&:focus {
|
|
523
|
+
outline: none;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
&:focus-visible .new-terminal-background {
|
|
527
|
+
outline-offset: -2px;
|
|
528
|
+
outline: 2px solid;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
&:hover .new-terminal-background:after, &:active .new-terminal-background:after {
|
|
532
|
+
opacity: .08;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.new-terminal-background {
|
|
537
|
+
pointer-events: none;
|
|
538
|
+
background: none;
|
|
539
|
+
border-radius: .875rem;
|
|
540
|
+
flex: 1;
|
|
541
|
+
place-items: center;
|
|
542
|
+
min-width: 0;
|
|
543
|
+
margin: .375rem;
|
|
544
|
+
transition: outline-color .15s;
|
|
545
|
+
display: grid;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
@keyframes terminal-tab-grow {
|
|
549
|
+
from {
|
|
550
|
+
opacity: 0;
|
|
551
|
+
flex-grow: 0;
|
|
552
|
+
min-width: 0;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.task-list {
|
|
557
|
+
overflow: auto;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.task-entry {
|
|
357
561
|
overflow: hidden;
|
|
562
|
+
|
|
563
|
+
&.finished .task-summary {
|
|
564
|
+
color: var(--m3c-on-surface-variant);
|
|
565
|
+
opacity: .62;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
&.error .task-summary {
|
|
569
|
+
color: var(--m3c-on-error-container-subtle);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.task-summary {
|
|
574
|
+
background: var(--m3c-surface-container-lowest);
|
|
575
|
+
width: 100%;
|
|
576
|
+
height: 2rem;
|
|
577
|
+
color: var(--m3c-on-surface);
|
|
578
|
+
font: .875rem/1 var(--cod-font);
|
|
579
|
+
text-align: left;
|
|
580
|
+
cursor: pointer;
|
|
581
|
+
align-items: center;
|
|
582
|
+
gap: 1ch;
|
|
583
|
+
padding-inline: 1ch;
|
|
584
|
+
display: flex;
|
|
585
|
+
|
|
586
|
+
&:hover {
|
|
587
|
+
background: var(--m3c-surface-container-low);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
& .task-chevron {
|
|
591
|
+
color: var(--m3c-primary);
|
|
592
|
+
font: 850 .875rem/1 var(--cod-font);
|
|
593
|
+
flex: none;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
& strong {
|
|
597
|
+
text-overflow: ellipsis;
|
|
598
|
+
white-space: nowrap;
|
|
599
|
+
min-width: 0;
|
|
600
|
+
color: var(--m3c-on-surface);
|
|
601
|
+
flex: 1;
|
|
602
|
+
align-items: center;
|
|
603
|
+
font-size: .875rem;
|
|
604
|
+
font-weight: 700;
|
|
605
|
+
display: flex;
|
|
606
|
+
overflow: hidden;
|
|
607
|
+
|
|
608
|
+
& .task-title {
|
|
609
|
+
text-overflow: ellipsis;
|
|
610
|
+
min-width: 0;
|
|
611
|
+
color: var(--m3c-on-surface-variant);
|
|
612
|
+
font-weight: 500;
|
|
613
|
+
overflow: hidden;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
& .task-loader {
|
|
617
|
+
object-fit: contain;
|
|
618
|
+
flex: none;
|
|
619
|
+
width: 2.25ch;
|
|
620
|
+
height: 2.25ch;
|
|
621
|
+
margin-inline-start: .5ch;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
.terminal-app pre {
|
|
627
|
+
background: var(--m3c-surface-container-lowest);
|
|
628
|
+
min-height: 0;
|
|
629
|
+
color: var(--m3c-on-surface);
|
|
630
|
+
font: .875rem/1.5 var(--cod-font);
|
|
631
|
+
white-space: pre-wrap;
|
|
632
|
+
user-select: text;
|
|
633
|
+
padding: 1ch;
|
|
634
|
+
overflow: auto;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.empty {
|
|
638
|
+
color: var(--m3c-on-surface-variant);
|
|
639
|
+
font: .875rem/1.5 var(--cod-font);
|
|
640
|
+
padding: 1rem;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.terminal-empty {
|
|
644
|
+
text-align: center;
|
|
645
|
+
place-content: center;
|
|
646
|
+
gap: .5rem;
|
|
647
|
+
min-height: 12rem;
|
|
648
|
+
display: grid;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
@media (width <= 640px) {
|
|
652
|
+
.terminal-app {
|
|
653
|
+
border-radius: 1rem 1rem .75rem .75rem;
|
|
654
|
+
height: min(30rem, 100dvh - 3rem);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
.terminal-header {
|
|
658
|
+
align-items: stretch;
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
@media (height <= 460px) {
|
|
663
|
+
.terminal-app {
|
|
664
|
+
height: calc(100dvh - 1rem);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.cod-ansi-black {
|
|
669
|
+
color: light-dark(#303030, #848484);
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.cod-ansi-red {
|
|
673
|
+
color: light-dark(#ae3e0c, #ffa17f);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.cod-ansi-green {
|
|
677
|
+
color: light-dark(#007246, #3ad18b);
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.cod-ansi-yellow {
|
|
681
|
+
color: light-dark(#597700, #a5cf3e);
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
.cod-ansi-blue {
|
|
685
|
+
color: light-dark(#00699d, #75c3ff);
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
.cod-ansi-magenta {
|
|
689
|
+
color: light-dark(#8c3fb4, #e2a4ff);
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.cod-ansi-cyan {
|
|
693
|
+
color: light-dark(#006e79, #3fcdde);
|
|
358
694
|
}
|
|
359
|
-
|
|
695
|
+
|
|
696
|
+
.cod-ansi-white {
|
|
697
|
+
color: light-dark(#525252, #ddd);
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
.cod-ansi-bright-black {
|
|
701
|
+
color: light-dark(#6a6a6a, #a6a6a6);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
.cod-ansi-bright-red {
|
|
705
|
+
color: light-dark(#c9450f, #ffbda7);
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.cod-ansi-bright-green {
|
|
709
|
+
color: light-dark(#008352, #48e69c);
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
.cod-ansi-bright-yellow {
|
|
713
|
+
color: light-dark(#658700, #bae750);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.cod-ansi-bright-blue {
|
|
717
|
+
color: light-dark(#0079b1, #a7d7ff);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
.cod-ansi-bright-magenta {
|
|
721
|
+
color: light-dark(#9a51c5, #ecc3ff);
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
.cod-ansi-bright-cyan {
|
|
725
|
+
color: light-dark(#007e88, #57e4f3);
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
.cod-ansi-bright-white {
|
|
729
|
+
color: light-dark(#1b1b1b, #f3f3f3);
|
|
730
|
+
}
|
|
731
|
+
`;const a=globalThis.process?.env?.NODE_ENV;var o=a&&!a.toLowerCase().startsWith(`prod`),s=Array.isArray,c=Array.prototype.indexOf,l=Array.prototype.includes,u=Array.from,d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyDescriptors,m=Object.prototype,h=Array.prototype,g=Object.getPrototypeOf,_=Object.isExtensible;const v=()=>{};function y(e){for(var t=0;t<e.length;t++)e[t]()}function b(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const x=1024,S=2048,C=4096,w=8192,ee=32768,te=1<<25,ne=65536,re=1<<25,ie=65536,ae=1<<21,oe=1<<23,se=Symbol(`$state`),ce=Symbol(``),le=Symbol(`proxy path`),ue=Symbol(`attributes`),de=Symbol(`class`),fe=Symbol(`style`),pe=Symbol(`text`),me=Symbol(`hmr anchor`),he=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ge=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function _e(){if(o){let e=Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/async_derived_orphan`)}function ve(){if(o){let e=Error(`derived_references_self
|
|
360
732
|
A derived value cannot reference itself recursively
|
|
361
|
-
https://svelte.dev/e/derived_references_self`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/derived_references_self`)}function be(){if(o){let e=Error(`
|
|
733
|
+
https://svelte.dev/e/derived_references_self`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/derived_references_self`)}function ye(e,t,n){if(o){let r=Error(`each_key_duplicate\n${n?`Keyed each block has duplicate key \`${n}\` at indexes ${e} and ${t}`:`Keyed each block has duplicate key at indexes ${e} and ${t}`}\nhttps://svelte.dev/e/each_key_duplicate`);throw r.name=`Svelte error`,r}else throw Error(`https://svelte.dev/e/each_key_duplicate`)}function be(e,t,n){if(o){let r=Error(`each_key_volatile\nKeyed each block has key that is not idempotent — the key for item at index ${e} was \`${t}\` but is now \`${n}\`. Keys must be the same each time for a given item\nhttps://svelte.dev/e/each_key_volatile`);throw r.name=`Svelte error`,r}else throw Error(`https://svelte.dev/e/each_key_volatile`)}function xe(e){if(o){let t=Error(`effect_in_teardown\n\`${e}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Se(){if(o){let e=Error(`effect_in_unowned_derived
|
|
734
|
+
Effect cannot be created inside a \`$derived\` value that was not itself created inside an effect
|
|
735
|
+
https://svelte.dev/e/effect_in_unowned_derived`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Ce(e){if(o){let t=Error(`effect_orphan\n\`${e}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/effect_orphan`)}function we(){if(o){let e=Error(`effect_update_depth_exceeded
|
|
362
736
|
Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state
|
|
363
|
-
https://svelte.dev/e/effect_update_depth_exceeded`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function
|
|
737
|
+
https://svelte.dev/e/effect_update_depth_exceeded`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Te(e){if(o){let t=Error(`rune_outside_svelte\nThe \`${e}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throw t.name=`Svelte error`,t}else throw Error(`https://svelte.dev/e/rune_outside_svelte`)}function Ee(){if(o){let e=Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function De(){if(o){let e=Error(`state_prototype_fixed
|
|
364
738
|
Cannot set prototype of \`$state\` object
|
|
365
|
-
https://svelte.dev/e/state_prototype_fixed`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function
|
|
739
|
+
https://svelte.dev/e/state_prototype_fixed`);throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Oe(){if(o){let e=Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ke(){if(o){let e=Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw e.name=`Svelte error`,e}else throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}const Ae={},T=Symbol(`uninitialized`),je=Symbol(`filename`);var Me=`font-weight: bold`,Ne=`font-weight: normal`;function Pe(e){o?console.warn(`%c[svelte] await_reactivity_loss\n%cDetected reactivity loss when reading \`${e}\`. This happens when state is read in an async function after an earlier \`await\`\nhttps://svelte.dev/e/await_reactivity_loss`,Me,Ne):console.warn(`https://svelte.dev/e/await_reactivity_loss`)}function Fe(e,t){o?console.warn(`%c[svelte] await_waterfall\n%cAn async derived, \`${e}\` (${t}) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app\nhttps://svelte.dev/e/await_waterfall`,Me,Ne):console.warn(`https://svelte.dev/e/await_waterfall`)}function Ie(){o?console.warn(`%c[svelte] derived_inert
|
|
366
740
|
%cReading a derived belonging to a now-destroyed effect may result in stale values
|
|
367
|
-
https://svelte.dev/e/derived_inert`,
|
|
741
|
+
https://svelte.dev/e/derived_inert`,Me,Ne):console.warn(`https://svelte.dev/e/derived_inert`)}function Le(e,t,n){o?console.warn(`%c[svelte] hydration_attribute_changed\n%cThe \`${e}\` attribute on \`${t}\` changed its value between server and client renders. The client value, \`${n}\`, will be ignored in favour of the server value\nhttps://svelte.dev/e/hydration_attribute_changed`,Me,Ne):console.warn(`https://svelte.dev/e/hydration_attribute_changed`)}function Re(e){o?console.warn(`%c[svelte] hydration_mismatch\n%c${e?`Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${e}`:`Hydration failed because the initial UI does not match what was rendered on the server`}\nhttps://svelte.dev/e/hydration_mismatch`,Me,Ne):console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ze(e){o?console.warn(`%c[svelte] state_proxy_equality_mismatch\n%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${e}\` will produce unexpected results\nhttps://svelte.dev/e/state_proxy_equality_mismatch`,Me,Ne):console.warn(`https://svelte.dev/e/state_proxy_equality_mismatch`)}function Be(){o?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",Me,Ne):console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}let E=!1;function Ve(e){E=e}let D;function O(e){if(e===null)throw Re(),Ae;return D=e}function He(){return O(jn(D))}function k(e){if(E){if(jn(D)!==null)throw Re(),Ae;D=e}}function Ue(e=1){if(E){for(var t=e,n=D;t--;)n=jn(n);D=n}}function We(e=!0){for(var t=0,n=D;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=jn(n);e&&n.remove(),n=i}}function Ge(e){if(!e||e.nodeType!==8)throw Re(),Ae;return e.data}function Ke(e){return e===this.v}function qe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Je(e){return!qe(e,this.v)}function Ye(e,t){return e.label=t,Xe(e.v,t),e}function Xe(e,t){return e?.[le]?.(t),e}function Ze(e){let t=Error(),n=Qe();return n.length===0?null:(n.unshift(`
|
|
368
742
|
`),d(t,`stack`,{value:n.join(`
|
|
369
|
-
`)}),d(t,`name`,{value:e}),t)}function
|
|
370
|
-
`),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=t.replaceAll(`\\`,`/`);if(t.trim()!==`Error`){if(t.includes(`validate_each_keys`))return[];i.includes(`svelte/src/internal`)||i.includes(`node_modules/.vite`)||r.push(t)}}return r}let
|
|
743
|
+
`)}),d(t,`name`,{value:e}),t)}function Qe(){let e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;let t=Error().stack;if(Error.stackTraceLimit=e,!t)return[];let n=t.split(`
|
|
744
|
+
`),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=t.replaceAll(`\\`,`/`);if(t.trim()!==`Error`){if(t.includes(`validate_each_keys`))return[];i.includes(`svelte/src/internal`)||i.includes(`node_modules/.vite`)||r.push(t)}}return r}let A=null;function $e(e){A=e}let et=null;function tt(e){et=e}let nt=null;function rt(e){nt=e}function it(e,t=!1,n){A={p:A,i:!1,c:null,e:null,s:e,x:null,r:G,l:null},o&&(A.function=n,nt=n)}function at(e){var t=A,n=t.e;if(n!==null){t.e=null;for(var r of n)Wn(r)}return e!==void 0&&(t.x=e),t.i=!0,A=t.p,o&&(nt=A?.function??null),e??{}}function ot(){return!0}let st=[];function ct(){var e=st;st=[],y(e)}function lt(e){if(st.length===0&&!St){var t=st;queueMicrotask(()=>{t===st&&ct()})}st.push(e)}function ut(){for(;st.length>0;)ct()}const dt=new WeakMap;function ft(e){var t=G;if(t===null)return H.f|=oe,e;if(o&&e instanceof Error&&!dt.has(e)&&dt.set(e,mt(e,t)),!(t.f&32768)&&!(t.f&4))throw o&&!t.parent&&e instanceof Error&&ht(e),e;pt(e,t)}function pt(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw o&&e instanceof Error&&ht(e),e}function mt(e,t){let n=f(e,`message`);if(!(n&&!n.configurable)){for(var r=En?` `:` `,i=`\n${r}in ${t.fn?.name||`<unknown>`}`,a=t.ctx;a!==null;)i+=`\n${r}in ${a.function?.[je].split(`/`).pop()}`,a=a.p;return{message:e.message+`\n${i}\n`,stack:e.stack?.split(`
|
|
371
745
|
`).filter(e=>!e.includes(`svelte/src/internal`)).join(`
|
|
372
|
-
`)}}}function Ze(e){let t=Je.get(e);t&&(d(e,`message`,{value:t.message}),d(e,`stack`,{value:t.stack}))}function D(e,t){e.f=e.f&-7169|t}function Qe(e){e.f&512||e.deps===null?D(e,v):D(e,re)}function $e(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=se,$e(t.deps))}function et(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),$e(e.deps),D(e,v)}let tt=null,O=null,nt=null,k=null,rt=null,it=!1,at=!1,A=null,ot=null;var st=0,ct=new Set;let lt=1;var ut=class e{id=lt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#r=new Set;#i=new Set;#a=new Set;#o=0;#s=new Map;#c=null;#l=[];#u=[];#d=new Set;#f=new Set;#p=new Map;#m=new Set;is_fork=!1;#h=!1;#g(){if(this.is_fork)return!0;for(let n of this.#s.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#p.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#p.has(e)||this.#p.set(e,{d:[],m:[]}),this.#m.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#p.get(e);if(n){this.#p.delete(e);for(var r of n.d)D(r,y),t(r);for(r of n.m)D(r,re),t(r)}this.#m.add(e)}#_(){if(this.#e=!0,st++>1e3&&(this.#C(),dt()),o)for(let e of this.current.keys())ct.add(e);if(!this.#g()){for(let e of this.#d)this.#f.delete(e),D(e,y),this.schedule(e);for(let e of this.#f)D(e,re),this.schedule(e)}let t=this.#l;this.#l=[],this.apply();var n=A=[],r=[],i=ot=[];for(let e of t)try{this.#v(e,n,r)}catch(t){throw _t(e),t}if(O=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(A=null,ot=null,this.#g()){this.#x(r),this.#x(n);for(let[e,t]of this.#p)gt(e,t);i.length>0&&O.#_();return}let s=this.#y();if(s){s.#b(this);return}this.#d.clear(),this.#f.clear();for(let e of this.#r)e(this);this.#r.clear(),nt=this,ft(r),ft(n),nt=null,this.#c?.resolve();var c=O;if(this.linked&&this.#o===0&&this.#C(),this.#l.length>0){c===null&&(c=this,this.#S());let e=c;e.#l.push(...this.#l.filter(t=>!e.#l.includes(t)))}c!==null&&c.#_()}#v(e,t,n){e.f^=v;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#p.has(r))&&r.fn!==null){a?r.f^=v:i&4?t.push(r):Rn(r)&&(i&16&&this.#f.add(r),Q(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve)}let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#f.delete(i),D(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#C(),O=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)et(e[t],this.#d,this.#f)}capture(e,t,n=!1){e.v!==b&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),k?.set(e,t)),this.is_fork||(e.v=t)}activate(){O=this}deactivate(){O=null,k=null}flush(){try{o&&ct.clear(),at=!0,O=this,this.#_()}finally{if(st=0,rt=null,A=null,ot=null,at=!1,O=null,k=null,P.clear(),o)for(let e of ct)e.updated=null}}discard(){for(let e of this.#i)e(this);this.#i.clear(),this.#a.clear(),this.#C()}register_created_effect(e){this.#u.push(e)}increment(e,t){if(this.#o+=1,e){let e=this.#s.get(t)??0;this.#s.set(t,e+1)}}decrement(e,t){if(--this.#o,e){let e=this.#s.get(t)??0;e===1?this.#s.delete(t):this.#s.set(t,e-1)}this.#h||(this.#h=!0,qe(()=>{this.#h=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#d.add(t);for(let e of t)this.#f.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}on_fork_commit(e){this.#a.add(e)}run_fork_commit_callbacks(){for(let e of this.#a)e(this);this.#a.clear()}settled(){return(this.#c??=ne()).promise}static ensure(){if(O===null){let t=O=new e;t.#S(),!at&&qe(()=>{t.#e||t.flush()})}return O}apply(){k=null}schedule(e){if(rt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(A!==null&&t===W&&(V===null||!(V.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=v}}this.#l.push(t)}#S(){tt===null?tt=this:(tt.#n=this,this.#t=tt),tt=this}#C(){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?tt=e:t.#t=e,this.linked=!1}};function dt(){if(o){var e=new Map;for(let n of O.current.keys())for(let[r,i]of n.updated??[]){var t=e.get(r);t||(t={error:i.error,count:0},e.set(r,t)),t.count+=i.count}for(let t of e.values())t.error&&console.error(t.error)}try{be()}catch(e){o&&d(e,`stack`,{value:``}),E(e,rt)}}let j=null;function ft(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&Rn(r)&&(j=new Set,Q(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Dn(r),j?.size>0)){P.clear();for(let e of j){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)j.has(n)&&(j.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||Q(n)}}j.clear()}}j=null}}function pt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?pt(i,t,n,r):e&4194320&&!(e&2048)&&mt(i,t,r)&&(D(i,y),ht(i))}}function mt(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(l.call(t,r))return!0;if(r.f&2&&mt(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function ht(e){O.schedule(e)}function gt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),D(e,v);for(var n=e.first;n!==null;)gt(n,t),n=n.next}}function _t(e){D(e,v);for(var t=e.first;t!==null;)_t(t),t=t.next}function vt(e){let t=0,n=Vt(0),r;return o&&x(n,`createSubscriber version`),()=>{fn()&&($(n),vn(()=>(t===0&&(r=Gn(()=>e(()=>Wt(n)))),t+=1,()=>{qe(()=>{--t,t===0&&(r?.(),r=void 0,Wt(n))})})))}}var yt=589824;function bt(e,t,n,r){new xt(e,t,n,r)}var xt=class{parent;is_pending=!1;transform_error;#e;#t;#n;#r;#i=null;#a=null;#o=null;#s=null;#c=0;#l=0;#u=!1;#d=new Set;#f=new Set;#p=null;#m=vt(()=>(this.#p=Vt(this.#c),o&&x(this.#p,`$effect.pending()`),()=>{this.#p=null}));constructor(e,t,n,r){this.#e=e,this.#t=t,this.#n=e=>{var t=W;t.b=this,t.f|=128,n(e)},this.parent=W.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#r=bn(()=>{this.#h()},yt)}#h(){try{if(this.is_pending=this.has_pending_snippet(),this.#l=0,this.#c=0,this.#i=Sn(()=>{this.#n(this.#e)}),this.#l>0){var e=this.#s=document.createDocumentFragment();An(this.#i,e);let t=this.#t.pending;this.#a=Sn(()=>t(this.#e))}else this.#g(O)}catch(e){this.error(e)}}#g(e){this.is_pending=!1,e.transfer_effects(this.#d,this.#f)}defer_effect(e){et(e,this.#d,this.#f)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#t.pending}#_(e){var t=W,n=V,r=S;G(this.#r),U(this.#r),C(this.#r.ctx);try{return ut.ensure(),e()}catch(e){return Ye(e),null}finally{G(t),U(n),C(r)}}#v(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#v(e,t);return}this.#l+=e,this.#l===0&&(this.#g(t),this.#a&&On(this.#a,()=>{this.#a=null}),this.#s&&=(this.#e.before(this.#s),null))}update_pending_count(e,t){this.#v(e,t),this.#c+=e,!(!this.#p||this.#u)&&(this.#u=!0,qe(()=>{this.#u=!1,this.#p&&Ht(this.#p,this.#c)}))}get_effect_pending(){return this.#m(),$(this.#p)}error(e){if(!this.#t.onerror&&!this.#t.failed)throw e;O?.is_fork?(this.#i&&O.skip_effect(this.#i),this.#a&&O.skip_effect(this.#a),this.#o&&O.skip_effect(this.#o),O.on_fork_commit(()=>{this.#y(e)})):this.#y(e)}#y(e){this.#i&&=(z(this.#i),null),this.#a&&=(z(this.#a),null),this.#o&&=(z(this.#o),null);var t=this.#t.onerror;let n=this.#t.failed;var r=!1,i=!1;let a=()=>{if(r){Ne();return}r=!0,i&&Te(),this.#o!==null&&On(this.#o,()=>{this.#o=null}),this.#_(()=>{this.#h()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){E(e,this.#r&&this.#r.parent)}n&&(this.#o=this.#_(()=>{try{return Sn(()=>{var t=W;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return E(e,this.#r.parent),null}}))};qe(()=>{var t;try{t=this.transform_error(e)}catch(e){E(e,this.#r&&this.#r.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>E(e,this.#r&&this.#r.parent)):o(t)})}};function St(e,t,n,r){let i=Ge()?Ot:jt;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=W,s=Ct(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){if(!(o.f&16384)){s();try{r(e)}catch(e){E(e,o)}wt()}}var u=Tt();if(n.length===0){c.then(()=>l(t.map(i))).finally(u);return}function d(){Promise.all(n.map(e=>At(e))).then(e=>l([...t.map(i),...e])).catch(e=>E(e,o)).finally(u)}c?c.then(()=>{s(),d(),wt()}):d()}function Ct(){var e=W,t=V,n=S,r=O;if(o)var i=w;return function(a=!0){G(e),U(t),C(n),a&&!(e.f&16384)&&(r?.activate(),r?.apply()),o&&(Et(null),Be(i))}}function wt(e=!0){G(null),U(null),C(null),e&&O?.deactivate(),o&&(Et(null),Be(null))}function Tt(){var e=W,t=e.b,n=O,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}let M=null;function Et(e){M=e}const Dt=new Set;function Ot(e){return W!==null&&(W.f|=524288),{ctx:S,deps:null,effects:null,equals:Pe,f:2050,fn:e,reactions:null,rv:0,v:b,wv:0,parent:W,ac:null}}const kt=Symbol(`obsolete`);function At(e,t,n){let r=W;r===null&&ve();var i=void 0,a=Vt(b);o&&(a.label=t??e.toString());var s=!V,c=new Set;return _n(()=>{var t=W;o&&(M={effect:t,effect_deps:new Set,warned:!1});var l=ne();i=l.promise;try{Promise.resolve(e()).then(l.resolve,e=>{e!==_e&&l.reject(e)}).finally(wt)}catch(e){l.reject(e),wt()}if(o){if(M){if(t.deps!==null)for(let e=0;e<J;e+=1)M.effect_deps.add(t.deps[e]);if(q!==null)for(let e=0;e<q.length;e+=1)M.effect_deps.add(q[e])}M=null}var u=O;if(s){if(t.f&32768)var d=Tt();if(r.b.is_rendered())u.async_deriveds.get(t)?.reject(kt);else for(let e of c.values())e.reject(kt);c.add(l),u.async_deriveds.set(t,l)}let f=(e,r=void 0)=>{o&&(M=null),d?.(),c.delete(l),r!==kt&&(u.activate(),r?(a.f|=le,Ht(a,r)):(a.f&8388608&&(a.f^=le),Ht(a,e),o&&n!==void 0&&(Dt.add(a),setTimeout(()=>{Dt.has(a)&&!(t.f&16384)&&(Ae(a.label,n),Dt.delete(a))}))),u.deactivate())};l.promise.then(f,e=>f(null,e||`unknown`))}),pn(()=>{for(let e of c)e.reject(kt)}),o&&(a.f|=4194304),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function jt(e){let t=Ot(e);return t.equals=Ie,t}function Mt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)z(t[n])}}let Nt=[];function Pt(e){var t,n=W,r=e.parent;if(!B&&r!==null&&e.v!==b&&r.f&24576)return je(),e.v;if(G(r),o){let r=N;Rt(new Set);try{l.call(Nt,e)&&ye(),Nt.push(e),e.f&=-65537,Mt(e),t=Bn(e)}finally{G(n),Rt(r),Nt.pop()}}else try{e.f&=-65537,Mt(e),t=Bn(e)}finally{G(n)}return t}function Ft(e){var t=Pt(e);if(!e.equals(t)&&(e.wv=Ln(),(!O?.is_fork||e.deps===null)&&(O===null?e.v=t:(O.capture(e,t,!0),nt?.capture(e,t,!0)),e.deps===null))){D(e,v);return}B||(k===null?Qe(e):(fn()||O?.is_fork)&&k.set(e,t))}function It(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(_e),t.fn!==null&&(t.teardown=ee),t.ac=null,Hn(t,0),wn(t))}function Lt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&Q(t)}let N=new Set;const P=new Map;function Rt(e){N=e}let zt=!1;function Bt(){zt=!0}function Vt(e,t){return{f:0,v:e,reactions:null,equals:Pe,rv:0,wv:0}}function F(e,t){let n=Vt(e,t);return Nn(n),n}function I(e,t,n=!1){V!==null&&(!H||V.f&131072)&&Ge()&&V.f&4325394&&(K===null||!l.call(K,e))&&we();let r=n?qt(t):t;return o&&Le(r,e.label),Ht(e,r,ot)}function Ht(e,t,n=null){if(!e.equals(t)){P.set(e,B?t:e.v);var r=ut.ensure();if(r.capture(e,t),o){if(W!==null){e.updated??=new Map;let t=(e.updated.get(``)?.count??0)+1;if(e.updated.set(``,{error:null,count:t}),t>5){let t=Re(`updated at`);if(t!==null){let n=e.updated.get(t.stack);n||(n={error:t,count:0},e.updated.set(t.stack,n)),n.count++}}}W!==null&&(e.set_during_effect=!0)}if(e.f&2){let t=e;e.f&2048&&Pt(t),k===null&&Qe(t)}e.wv=Ln(),Gt(e,y,n),Ge()&&W!==null&&W.f&1024&&!(W.f&96)&&(Y===null?Pn([e]):Y.push(e)),!r.is_fork&&N.size>0&&!zt&&Ut()}return t}function Ut(){zt=!1;for(let e of N){e.f&1024&&D(e,re);let t;try{t=Rn(e)}catch{t=!0}t&&Q(e)}N.clear()}function Wt(e){I(e,e.v+1)}function Gt(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ge(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===W)){var l=(c&y)==0;if(l&&D(s,t),c&131072)N.add(s);else if(c&2){var u=s;k?.delete(u),c&65536||(c&512&&(W===null||!(W.f&2097152))&&(s.f|=se),Gt(u,re,n))}else if(l){var d=s;c&16&&j!==null&&j.add(d),n===null?ht(d):n.push(d)}}}}const Kt=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function qt(e){if(typeof e!=`object`||!e||ue in e)return e;let t=g(e);if(t!==m&&t!==h)return e;var n=new Map,r=s(e),i=F(0),a=null,c=Z,l=e=>{if(Z===c)return e();var t=V,n=Z;U(null),In(c);var r=e();return U(t),In(n),r};r&&(n.set(`length`,F(e.length,a)),o&&(e=Xt(e)));var u=``;let d=!1;function p(e){if(!d){d=!0,u=e,x(i,`${u} version`);for(let[e,t]of n)x(t,L(u,e));d=!1}}return new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&Se();var i=n.get(t);return i===void 0?l(()=>{var e=F(r.value,a);return n.set(t,e),o&&typeof t==`string`&&x(e,L(u,t)),e}):I(i,r.value,!0),!0},deleteProperty(e,t){var r=n.get(t);if(r===void 0){if(t in e){let e=l(()=>F(b,a));n.set(t,e),Wt(i),o&&x(e,L(u,t))}}else I(r,b),Wt(i);return!0},get(t,r,i){if(r===ue)return e;if(o&&r===fe)return p;var s=n.get(r),c=r in t;if(s===void 0&&(!c||f(t,r)?.writable)&&(s=l(()=>{var e=F(qt(c?t[r]:b),a);return o&&x(e,L(u,r)),e}),n.set(r,s)),s!==void 0){var d=$(s);return d===b?void 0:d}return Reflect.get(t,r,i)},getOwnPropertyDescriptor(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);if(r&&`value`in r){var i=n.get(t);i&&(r.value=$(i))}else if(r===void 0){var a=n.get(t),o=a?.v;if(a!==void 0&&o!==b)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,t){if(t===ue)return!0;var r=n.get(t),i=r!==void 0&&r.v!==b||Reflect.has(e,t);return(r!==void 0||W!==null&&(!i||f(e,t)?.writable))&&(r===void 0&&(r=l(()=>{var n=F(i?qt(e[t]):b,a);return o&&x(n,L(u,t)),n}),n.set(t,r)),$(r)===b)?!1:i},set(e,t,s,c){var d=n.get(t),p=t in e;if(r&&t===`length`)for(var m=s;m<d.v;m+=1){var h=n.get(m+``);h===void 0?m in e&&(h=l(()=>F(b,a)),n.set(m+``,h),o&&x(h,L(u,m))):I(h,b)}if(d===void 0)(!p||f(e,t)?.writable)&&(d=l(()=>F(void 0,a)),o&&x(d,L(u,t)),I(d,qt(s)),n.set(t,d));else{p=d.v!==b;var g=l(()=>qt(s));I(d,g)}var _=Reflect.getOwnPropertyDescriptor(e,t);if(_?.set&&_.set.call(c,s),!p){if(r&&typeof t==`string`){var ee=n.get(`length`),te=Number(t);Number.isInteger(te)&&te>=ee.v&&I(ee,te+1)}Wt(i)}return!0},ownKeys(e){$(i);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==b});for(var[r,a]of n)a.v!==b&&!(r in e)&&t.push(r);return t},setPrototypeOf(){Ce()}})}function L(e,t){return typeof t==`symbol`?`${e}[Symbol(${t.description??``})]`:Kt.test(t)?`${e}.${t}`:/^\d+$/.test(t)?`${e}[${t}]`:`${e}['${t}']`}function Jt(e){try{if(typeof e==`object`&&e&&ue in e)return e[ue]}catch{}return e}const Yt=new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);function Xt(e){return new Proxy(e,{get(e,t,n){var r=Reflect.get(e,t,n);return Yt.has(t)?function(...e){Bt();var t=r.apply(this,e);return Ut(),t}:r}})}function Zt(){let e=Array.prototype,t=Array.__svelte_cleanup;t&&t();let{indexOf:n,lastIndexOf:r,includes:i}=e;e.indexOf=function(e,t){let r=n.call(this,e,t);if(r===-1){for(let n=t??0;n<this.length;n+=1)if(Jt(this[n])===e){Me(`array.indexOf(...)`);break}}return r},e.lastIndexOf=function(e,t){let n=r.call(this,e,t??this.length-1);if(n===-1){for(let n=0;n<=(t??this.length-1);n+=1)if(Jt(this[n])===e){Me(`array.lastIndexOf(...)`);break}}return n},e.includes=function(e,t){let n=i.call(this,e,t);if(!n){for(let t=0;t<this.length;t+=1)if(Jt(this[t])===e){Me(`array.includes(...)`);break}}return n},Array.__svelte_cleanup=()=>{e.indexOf=n,e.lastIndexOf=r,e.includes=i}}var Qt,$t,en,tn;function nn(){if(Qt===void 0){Qt=window,$t=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;en=f(t,`firstChild`).get,tn=f(t,`nextSibling`).get,_(e)&&(e[me]=void 0,e[pe]=null,e[he]=void 0,e.__e=void 0),_(n)&&(n[ge]=void 0),o&&(e.__svelte_meta=null,Zt())}}function rn(e=``){return document.createTextNode(e)}function an(e){return en.call(e)}function on(e){return tn.call(e)}function sn(e,t=!1){var n=an(e);return n instanceof Comment&&n.data===``?on(n):n}function cn(e,t=1,n=!1){let r=e;for(;t--;)r=on(r);return r}function ln(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function un(e){var t=V,n=W;U(null),G(null);try{return e()}finally{U(t),G(n)}}function dn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function R(e,t){var n=W;if(o)for(;n!==null&&n.f&131072;)n=n.parent;n!==null&&n.f&8192&&(e|=ie);var r={ctx:S,deps:null,nodes:null,f:e|2560,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};o&&(r.component_function=Ve),O?.register_created_effect(r);var i=r;if(e&4)A===null?ut.ensure().schedule(r):A.push(r);else if(t!==null){try{Q(r)}catch(e){throw z(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=65536))}if(i!==null&&(i.parent=n,n!==null&&dn(i,n),V!==null&&V.f&2&&!(e&64))){var a=V;(a.effects??=[]).push(i)}return r}function fn(){return V!==null&&!H}function pn(e){let t=R(8,null);return D(t,v),t.teardown=e,t}function mn(e){return R(1048580,e)}function hn(e){ut.ensure();let t=R(524352,e);return(e={})=>new Promise(n=>{e.outro?On(t,()=>{z(t),n(void 0)}):(z(t),n(void 0))})}function gn(e){return R(4,e)}function _n(e){return R(4718592,e)}function vn(e,t=0){return R(8|t,e)}function yn(e,t=[],n=[],r=[]){St(r,t,n,t=>{R(8,()=>e(...t.map($)))})}function bn(e,t=0){var n=R(16|t,e);return o&&(n.dev_stack=w),n}function xn(e,t=0){var n=R(16777216|t,e);return o&&(n.dev_stack=w),n}function Sn(e){return R(524320,e)}function Cn(e){var t=e.teardown;if(t!==null){let e=B,n=V;Mn(!0),U(null);try{t.call(null)}finally{Mn(e),U(n)}}}function wn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&un(()=>{e.abort(_e)});var r=n.next;n.f&64?n.parent=null:z(n,t),n=r}}function Tn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||z(t),t=n}}function z(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(En(e.nodes.start,e.nodes.end),n=!0),D(e,oe),wn(e,t&&!n),Hn(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Cn(e),e.f^=oe,e.f|=16384;var i=e.parent;i!==null&&i.first!==null&&Dn(e),o&&(e.component_function=null),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function En(e,t){for(;e!==null;){var n=e===t?null:on(e);e.remove(),e=n}}function Dn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function On(e,t,n=!0){var r=[];kn(e,r,!0);var i=()=>{n&&z(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function kn(e,t,n){if(!(e.f&8192)){e.f^=ie;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;kn(i,t,o?n:!1)}i=a}}}function An(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:on(n);t.append(n),n=i}}let jn=!1,B=!1;function Mn(e){B=e}let V=null,H=!1;function U(e){V=e}let W=null;function G(e){W=e}let K=null;function Nn(e){V!==null&&(K===null?K=[e]:K.push(e))}let q=null,J=0,Y=null;function Pn(e){Y=e}let Fn=1,X=0,Z=X;function In(e){Z=e}function Ln(){return++Fn}function Rn(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=-65537),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(Rn(a)&&Ft(a),a.wv>e.wv)return!0}t&512&&k===null&&D(e,v)}return!1}function zn(e,t,n=!0){var r=e.reactions;if(r!==null&&!(K!==null&&l.call(K,e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?zn(a,t,!1):t===a&&(n?D(a,y):a.f&1024&&D(a,re),ht(a))}}function Bn(e){var t=q,n=J,r=Y,i=V,a=K,o=S,s=H,c=Z,l=e.f;q=null,J=0,Y=null,V=l&96?null:e,K=null,C(e.ctx),H=!1,Z=++X,e.ac!==null&&(un(()=>{e.ac.abort(_e)}),e.ac=null);try{e.f|=ce;var u=e.fn,d=u();e.f|=ae;var f=e.deps,p=O?.is_fork;if(q!==null){var m;if(p||Hn(e,J),f!==null&&J>0)for(f.length=J+q.length,m=0;m<q.length;m++)f[J+m]=q[m];else e.deps=f=q;if(fn()&&e.f&512)for(m=J;m<f.length;m++)(f[m].reactions??=[]).push(e)}else !p&&f!==null&&J<f.length&&(Hn(e,J),f.length=J);if(Ge()&&Y!==null&&!H&&f!==null&&!(e.f&6146))for(m=0;m<Y.length;m++)zn(Y[m],e);if(i!==null&&i!==e){if(X++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=X;if(t!==null)for(let e of t)e.rv=X;Y!==null&&(r===null?r=Y:r.push(...Y))}return e.f&8388608&&(e.f^=le),d}catch(e){return Ye(e)}finally{e.f^=ce,q=t,J=n,Y=r,V=i,K=a,C(o),H=s,Z=c}}function Vn(e,t){let n=t.reactions;if(n!==null){var r=c.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&t.f&2&&(q===null||!l.call(q,t))){var a=t;a.f&512&&(a.f^=512,a.f&=-65537),a.v!==b&&Qe(a),It(a),Hn(a,0)}}function Hn(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Vn(e,n[r])}function Q(e){var t=e.f;if(!(t&16384)){D(e,v);var n=W,r=jn;if(W=e,jn=!0,o){var i=Ve;He(e.component_function);var a=w;Be(e.dev_stack??w)}try{t&16777232?Tn(e):wn(e),Cn(e);var s=Bn(e);e.teardown=typeof s==`function`?s:null,e.wv=Fn}finally{jn=r,W=n,o&&(He(i),Be(a))}}}function $(e){var t=(e.f&2)!=0;if(V!==null&&!H&&!(W!==null&&W.f&16384)&&(K===null||!l.call(K,e))){var n=V.deps;if(V.f&2097152)e.rv<X&&(e.rv=X,q===null&&n!==null&&n[J]===e?J++:q===null?q=[e]:q.push(e));else{V.deps??=[],l.call(V.deps,e)||V.deps.push(e);var r=e.reactions;r===null?e.reactions=[V]:l.call(r,V)||r.push(V)}}if(o){if(!H&&M&&!M.warned&&!(M.effect.f&2097152)&&!M.effect_deps.has(e)){M.warned=!0,ke(e.label);var i=Re(`traced at`);i&&console.warn(i)}Dt.delete(e)}if(B&&P.has(e))return P.get(e);if(t){var a=e;if(B){var s=a.v;return(!(a.f&1024)&&a.reactions!==null||Wn(a))&&(s=Pt(a)),P.set(a,s),s}var c=(a.f&512)==0&&!H&&V!==null&&(jn||(V.f&512)!=0),u=(a.f&ae)==0;Rn(a)&&(c&&(a.f|=512),Ft(a)),c&&!u&&(Lt(a),Un(a))}if(k?.has(e))return k.get(e);if(e.f&8388608)throw e.v;return e.v}function Un(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(Lt(t),Un(t))}function Wn(e){if(e.v===b)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(P.has(t)||t.f&2&&Wn(t))return!0;return!1}function Gn(e){var t=H;try{return H=!0,e()}finally{H=t}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];const Kn=[`touchstart`,`touchmove`];function qn(e){return Kn.includes(e)}var Jn=new Map;function Yn(e,t){var n=Jn.get(e);n||(n=new Set,Jn.set(e,n)),n.add(t)}const Xn=Symbol(`events`),Zn=new Set,Qn=new Set;let $n=null;function er(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;$n=e;var o=0,s=$n===e&&e[Xn];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[Xn]=t;return}var l=i.indexOf(t);if(l===-1)return;c<=l&&(o=c)}if(a=i[o]||e.target,a!==t){d(e,`currentTarget`,{configurable:!0,get(){return a||n}});var u=V,f=W;U(null),G(null);try{for(var p,m=[];a!==null;){var h=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Xn]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble||h===t||h===null)break;a=h}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Xn]=t,delete e.currentTarget,U(u),G(f)}}}const tr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function nr(e){return tr?.createHTML(e)??e}function rr(e){var t=ln(`template`);return t.innerHTML=nr(e.replaceAll(`<!>`,`<!---->`)),t.content}function ir(e,t){var n=W;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function ar(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{i===void 0&&(i=rr(a?e:`<!>`+e),n||(i=an(i)));var t=r||$t?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=an(t),s=t.lastChild;ir(o,s)}else ir(t,t);return t}}function or(e,t){e!==null&&e.before(t)}function sr(e,t){return lr(e,t)}const cr=new Map;function lr(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:s}){nn();var c=void 0,l=hn(()=>{var o=n??t.appendChild(rn());bt(o,{pending:()=>{}},t=>{Ue({});var n=S;a&&(n.c=a),i&&(r.$$events=i),c=e(t,r)||{},We()},s);var l=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!l.has(r)){l.add(r);var i=qn(r);for(let e of[t,document]){var a=cr.get(e);a===void 0&&(a=new Map,cr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,er,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(u(Zn)),Qn.add(d),()=>{for(var e of l)for(let n of[t,document]){var r=cr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,er),r.delete(e),r.size===0&&cr.delete(n)):r.set(e,i)}Qn.delete(d),o!==n&&o.parentNode?.removeChild(o)}});return ur.set(c,l),c}let ur=new WeakMap;function dr(e,t){gn(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector(`#`+t.hash)){let e=ln(`style`);e.id=t.hash,e.textContent=t.code,r.appendChild(e),o&&Yn(t.hash,e)}})}function fr(e,t){var n=void 0,r;xn(()=>{n!==(n=t())&&(r&&=(z(r),null),n&&(r=Sn(()=>{gn(()=>n(e))})))})}const pr=[...`
|
|
373
|
-
\r\f\xA0\v`];function mr(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||pr.includes(r[o-1]))&&(s===r.length||pr.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function hr(e,t,n,r,i,a){var o=e[me];if(o!==n||o===void 0){var s=mr(n,r,a);s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s),e[me]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}const gr=Symbol(`is custom element`),_r=Symbol(`is html`);function vr(e,t,n,r){var i=yr(e);i[t]!==(i[t]=n)&&(t===`loading`&&(e[de]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&xr(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function yr(e){return e[pe]??={[gr]:e.nodeName.includes(`-`),[_r]:e.namespaceURI===`http://www.w3.org/1999/xhtml`}}var br=new Map;function xr(e){var t=e.getAttribute(`is`)||e.nodeName,n=br.get(t);if(n)return n;br.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=p(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=g(i)}return n}if(o){function e(e){if(!(e in globalThis)){let t;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(t!==void 0)return t;xe(e)},set:e=>{t=e}})}}e(`$state`),e(`$effect`),e(`$derived`),e(`$inspect`),e(`$props`),e(`$bindable`)}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Sr=`data:image/webp;base64,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`;const Cr=e=>{let t=new Map;return{start(e,n={}){if(t.has(e))throw Error(`spawn id already running: ${e}`);return new Promise((r,i)=>{t.set(e,{output:``,resolve:r,reject:i,resolveOnOutput:n.resolveOnOutput??(()=>!1)})})},handleOutput(n,r){let i=r?.id,a=i?t.get(i):void 0;if(!a){e(n,r);return}let o=String(r?.data??``);a.output+=o,e(n,o),a.resolveOnOutput(o)&&(t.delete(i),a.resolve())},handleExit(e){let n=e?.id,r=n?t.get(n):void 0;if(!n||!r)return;t.delete(n);let i=e?.data;if((i?.code??0)===0&&!i?.signal){r.resolve();return}r.reject(Error(`${n} exited with code ${i?.code??`null`} signal ${i?.signal??`null`}: ${r.output}`))}}},wr=(e,t,n)=>{let r=new WebSocket(`wss://scalinghub.codehs.com/user/${e}/spawn/?watch=true&EIO=3&transport=websocket`),i=!1,a,o=new Promise(e=>{a=e}),s=(e,t)=>{!i||r.readyState!==WebSocket.OPEN||r.send(`42${JSON.stringify([e,t])}`)};return t.setInterval(()=>{s(`keepalive`,null)},2e4),r.addEventListener(`message`,e=>{if(typeof e.data==`string`){if(e.data.startsWith(`0`)){r.send(`40`);return}if(e.data===`40`){i=!0,a();return}if(e.data.startsWith(`42`)){let[t,r]=JSON.parse(e.data.slice(2));t===`stdout`?n.onStdout?.(r):t===`stderr`?n.onStderr?.(r):t===`exit`?n.onExit?.(r):t===`transferComplete`&&n.onTransferComplete?.(r);return}e.data===`2`&&r.send(`3`)}}),r.addEventListener(`close`,()=>{i=!1}),{ready:o,spawn(e){s(`spawn`,e)},transfer(e){s(`transfer`,e)}}},Tr=(e,t,n=()=>{})=>{let r=Cr(n),i=[],a=wr(e,t,{onStdout:e=>r.handleOutput(`stdout`,e),onStderr:e=>r.handleOutput(`stderr`,e),onExit:e=>r.handleExit(e),onTransferComplete:()=>i.shift()?.()});return{ready:a.ready,spawnCommand:(e,t,n={})=>{let i=n.untracked?void 0:r.start(e,n);return a.spawn({cmd:`bash`,args:n.args??[`-lc`,t],id:e,options:{type:n.type??`normal`,env:n.env}}),i},transfer(e){let t=new Promise(e=>{i.push(e)});return a.transfer(e),t}}};var Er=ar(`<div class="screen svelte-1ywbbn9"></div> <img alt="Loading Cod"/>`,1);const Dr={hash:`svelte-1ywbbn9`,code:`.screen.svelte-1ywbbn9 {position:absolute;inset:0;overflow:visible;canvas {max-width:none;max-height:none;object-fit:none;}}.cod-loader.svelte-1ywbbn9 {position:absolute;inset:0;margin:auto;width:min(50vw, 50vh, 24rem);height:auto;transition:opacity 100ms;&.hidden {visibility:hidden;opacity:0;}}`};function Or(e,t){Ue(t,!0),dr(e,Dr);let n=String.raw`import os
|
|
746
|
+
`)}}}function ht(e){let t=dt.get(e);t&&(d(e,`message`,{value:t.message}),d(e,`stack`,{value:t.stack}))}function j(e,t){e.f=e.f&-7169|t}function gt(e){e.f&512||e.deps===null?j(e,x):j(e,C)}function _t(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ie,_t(t.deps))}function vt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),_t(e.deps),j(e,x)}let yt=null,M=null,bt=null,N=null,xt=null,St=!1,Ct=!1,wt=null,Tt=null;var Et=0,Dt=new Set;let Ot=1;var kt=class e{id=Ot++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#r=new Set;#i=new Set;#a=new Set;#o=0;#s=new Map;#c=null;#l=[];#u=[];#d=new Set;#f=new Set;#p=new Map;#m=new Set;is_fork=!1;#h=!1;#g(){if(this.is_fork)return!0;for(let n of this.#s.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#p.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#p.has(e)||this.#p.set(e,{d:[],m:[]}),this.#m.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#p.get(e);if(n){this.#p.delete(e);for(var r of n.d)j(r,S),t(r);for(r of n.m)j(r,C),t(r)}this.#m.add(e)}#_(){if(this.#e=!0,Et++>1e3&&(this.#C(),jt()),o)for(let e of this.current.keys())Dt.add(e);if(!this.#g()){for(let e of this.#d)this.#f.delete(e),j(e,S),this.schedule(e);for(let e of this.#f)j(e,C),this.schedule(e)}let t=this.#l;this.#l=[],this.apply();var n=wt=[],r=[],i=Tt=[];for(let e of t)try{this.#v(e,n,r)}catch(t){throw Rt(e),t}if(M=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(wt=null,Tt=null,this.#g()){this.#x(r),this.#x(n);for(let[e,t]of this.#p)Lt(e,t);i.length>0&&M.#_();return}let s=this.#y();if(s){s.#b(this);return}this.#d.clear(),this.#f.clear();for(let e of this.#r)e(this);this.#r.clear(),bt=this,Nt(r),Nt(n),bt=null,this.#c?.resolve();var c=M;if(this.linked&&this.#o===0&&this.#C(),this.#l.length>0){c===null&&(c=this,this.#S());let e=c;e.#l.push(...this.#l.filter(t=>!e.#l.includes(t)))}c!==null&&c.#_()}#v(e,t,n){e.f^=x;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#p.has(r))&&r.fn!==null){a?r.f^=x:i&4?t.push(r):vr(r)&&(i&16&&this.#f.add(r),Cr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve)}let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#f.delete(i),j(i,S),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#C(),M=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)vt(e[t],this.#d,this.#f)}capture(e,t,n=!1){e.v!==T&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),N?.set(e,t)),this.is_fork||(e.v=t)}activate(){M=this}deactivate(){M=null,N=null}flush(){try{o&&Dt.clear(),Ct=!0,M=this,this.#_()}finally{if(Et=0,xt=null,wt=null,Tt=null,Ct=!1,M=null,N=null,cn.clear(),o)for(let e of Dt)e.updated=null}}discard(){for(let e of this.#i)e(this);this.#i.clear(),this.#a.clear(),this.#C()}register_created_effect(e){this.#u.push(e)}increment(e,t){if(this.#o+=1,e){let e=this.#s.get(t)??0;this.#s.set(t,e+1)}}decrement(e,t){if(--this.#o,e){let e=this.#s.get(t)??0;e===1?this.#s.delete(t):this.#s.set(t,e-1)}this.#h||(this.#h=!0,lt(()=>{this.#h=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#d.add(t);for(let e of t)this.#f.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}on_fork_commit(e){this.#a.add(e)}run_fork_commit_callbacks(){for(let e of this.#a)e(this);this.#a.clear()}settled(){return(this.#c??=b()).promise}static ensure(){if(M===null){let t=M=new e;t.#S(),!Ct&&!St&<(()=>{t.#e||t.flush()})}return M}apply(){N=null}schedule(e){if(xt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(wt!==null&&t===G&&(H===null||!(H.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=x}}this.#l.push(t)}#S(){yt===null?yt=this:(yt.#n=this,this.#t=yt),yt=this}#C(){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?yt=e:t.#t=e,this.linked=!1}};function At(e){var t=St;St=!0;try{var n;for(e&&(M!==null&&!M.is_fork&&M.flush(),n=e());;){if(ut(),M===null)return n;M.flush()}}finally{St=t}}function jt(){if(o){var e=new Map;for(let n of M.current.keys())for(let[r,i]of n.updated??[]){var t=e.get(r);t||(t={error:i.error,count:0},e.set(r,t)),t.count+=i.count}for(let t of e.values())t.error&&console.error(t.error)}try{we()}catch(e){o&&d(e,`stack`,{value:``}),pt(e,xt)}}let Mt=null;function Nt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&vr(r)&&(Mt=new Set,Cr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&nr(r),Mt?.size>0)){cn.clear();for(let e of Mt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Mt.has(n)&&(Mt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||Cr(n)}}Mt.clear()}}Mt=null}}function Pt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Pt(i,t,n,r):e&4194320&&!(e&2048)&&Ft(i,t,r)&&(j(i,S),It(i))}}function Ft(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(l.call(t,r))return!0;if(r.f&2&&Ft(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function It(e){M.schedule(e)}function Lt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),j(e,x);for(var n=e.first;n!==null;)Lt(n,t),n=n.next}}function Rt(e){j(e,x);for(var t=e.first;t!==null;)Rt(t),t=t.next}function zt(e){let t=0,n=fn(0),r;return o&&Ye(n,`createSubscriber version`),()=>{Vn()&&(Z(n),Jn(()=>(t===0&&(r=Dr(()=>e(()=>gn(n)))),t+=1,()=>{lt(()=>{--t,t===0&&(r?.(),r=void 0,gn(n))})})))}}var Bt=589824;function Vt(e,t,n,r){new Ht(e,t,n,r)}var Ht=class{parent;is_pending=!1;transform_error;#e;#t=E?D:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=zt(()=>(this.#m=fn(this.#l),o&&Ye(this.#m,`$effect.pending()`),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=G;t.b=this,t.f|=128,n(e)},this.parent=G.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Xn(()=>{if(E){let e=this.#t;He();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},Bt),E&&(this.#e=D)}#g(){try{this.#a=B(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=B(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=B(()=>e(this.#e)),lt(()=>{var e=this.#c=document.createDocumentFragment(),t=L();e.append(t),this.#a=this.#x(()=>B(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,rr(this.#o,()=>{this.#o=null}),this.#b(M))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=B(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();sr(this.#a,e);let t=this.#n.pending;this.#o=B(()=>t(this.#e))}else this.#b(M)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){vt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=G,n=H,r=A;K(this.#i),W(this.#i),$e(this.#i.ctx);try{return kt.ensure(),e()}catch(e){return ft(e),null}finally{K(t),W(n),$e(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&rr(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,lt(()=>{this.#d=!1,this.#m&&mn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),Z(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;M?.is_fork?(this.#a&&M.skip_effect(this.#a),this.#o&&M.skip_effect(this.#o),this.#s&&M.skip_effect(this.#s),M.on_fork_commit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(V(this.#a),null),this.#o&&=(V(this.#o),null),this.#s&&=(V(this.#s),null),E&&(O(this.#t),Ue(),O(We()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Be();return}r=!0,i&&ke(),this.#s!==null&&rr(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){pt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return B(()=>{var t=G;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return pt(e,this.#i.parent),null}}))};lt(()=>{var t;try{t=this.transform_error(e)}catch(e){pt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>pt(e,this.#i&&this.#i.parent)):o(t)})}};function Ut(e,t,n,r){let i=ot()?Yt:$t;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=G,s=Wt(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){if(!(o.f&16384)){s();try{r(e)}catch(e){pt(e,o)}Gt()}}var u=Kt();if(n.length===0){c.then(()=>l(t.map(i))).finally(u);return}function d(){Promise.all(n.map(e=>Zt(e))).then(e=>l([...t.map(i),...e])).catch(e=>pt(e,o)).finally(u)}c?c.then(()=>{s(),d(),Gt()}):d()}function Wt(){var e=G,t=H,n=A,r=M;if(o)var i=et;return function(a=!0){K(e),W(t),$e(n),a&&!(e.f&16384)&&(r?.activate(),r?.apply()),o&&(qt(null),tt(i))}}function Gt(e=!0){K(null),W(null),$e(null),e&&M?.deactivate(),o&&(qt(null),tt(null))}function Kt(){var e=G,t=e.b,n=M,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}let P=null;function qt(e){P=e}const Jt=new Set;function Yt(e){return G!==null&&(G.f|=524288),{ctx:A,deps:null,effects:null,equals:Ke,f:2050,fn:e,reactions:null,rv:0,v:T,wv:0,parent:G,ac:null}}const Xt=Symbol(`obsolete`);function Zt(e,t,n){let r=G;r===null&&_e();var i=void 0,a=fn(T);o&&(a.label=t??e.toString());var s=!H,c=new Set;return qn(()=>{var t=G;o&&(P={effect:t,effect_deps:new Set,warned:!1});var l=b();i=l.promise;try{Promise.resolve(e()).then(l.resolve,e=>{e!==he&&l.reject(e)}).finally(Gt)}catch(e){l.reject(e),Gt()}if(o){if(P){if(t.deps!==null)for(let e=0;e<Y;e+=1)P.effect_deps.add(t.deps[e]);if(J!==null)for(let e=0;e<J.length;e+=1)P.effect_deps.add(J[e])}P=null}var u=M;if(s){if(t.f&32768)var d=Kt();if(r.b.is_rendered())u.async_deriveds.get(t)?.reject(Xt);else for(let e of c.values())e.reject(Xt);c.add(l),u.async_deriveds.set(t,l)}let f=(e,r=void 0)=>{o&&(P=null),d?.(),c.delete(l),r!==Xt&&(u.activate(),r?(a.f|=oe,mn(a,r)):(a.f&8388608&&(a.f^=oe),mn(a,e),o&&n!==void 0&&(Jt.add(a),setTimeout(()=>{Jt.has(a)&&!(t.f&16384)&&(Fe(a.label,n),Jt.delete(a))}))),u.deactivate())};l.promise.then(f,e=>f(null,e||`unknown`))}),Hn(()=>{for(let e of c)e.reject(Xt)}),o&&(a.f|=4194304),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function Qt(e){let t=Yt(e);return dr(t),t}function $t(e){let t=Yt(e);return t.equals=Je,t}function en(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)V(t[n])}}let tn=[];function nn(e){var t,n=G,r=e.parent;if(!lr&&r!==null&&e.v!==T&&r.f&24576)return Ie(),e.v;if(K(r),o){let r=sn;ln(new Set);try{l.call(tn,e)&&ve(),tn.push(e),e.f&=-65537,en(e),t=br(e)}finally{K(n),ln(r),tn.pop()}}else try{e.f&=-65537,en(e),t=br(e)}finally{K(n)}return t}function rn(e){var t=nn(e);if(!e.equals(t)&&(e.wv=_r(),(!M?.is_fork||e.deps===null)&&(M===null?e.v=t:(M.capture(e,t,!0),bt?.capture(e,t,!0)),e.deps===null))){j(e,x);return}lr||(N===null?gt(e):(Vn()||M?.is_fork)&&N.set(e,t))}function an(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(he),t.fn!==null&&(t.teardown=v),t.ac=null,Sr(t,0),$n(t))}function on(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&Cr(t)}let sn=new Set;const cn=new Map;function ln(e){sn=e}let un=!1;function dn(){un=!0}function fn(e,t){return{f:0,v:e,reactions:null,equals:Ke,rv:0,wv:0}}function F(e,t){let n=fn(e,t);return dr(n),n}function pn(e,t=!1,n=!0){let r=fn(e);return t||(r.equals=Je),r}function I(e,t,n=!1){H!==null&&(!U||H.f&131072)&&ot()&&H.f&4325394&&(q===null||!l.call(q,e))&&Oe();let r=n?yn(t):t;return o&&Xe(r,e.label),mn(e,r,Tt)}function mn(e,t,n=null){if(!e.equals(t)){cn.set(e,lr?t:e.v);var r=kt.ensure();if(r.capture(e,t),o){if(G!==null){e.updated??=new Map;let t=(e.updated.get(``)?.count??0)+1;if(e.updated.set(``,{error:null,count:t}),t>5){let t=Ze(`updated at`);if(t!==null){let n=e.updated.get(t.stack);n||(n={error:t,count:0},e.updated.set(t.stack,n)),n.count++}}}G!==null&&(e.set_during_effect=!0)}if(e.f&2){let t=e;e.f&2048&&nn(t),N===null&>(t)}e.wv=_r(),_n(e,S,n),ot()&&G!==null&&G.f&1024&&!(G.f&96)&&(X===null?fr([e]):X.push(e)),!r.is_fork&&sn.size>0&&!un&&hn()}return t}function hn(){un=!1;for(let e of sn){e.f&1024&&j(e,C);let t;try{t=vr(e)}catch{t=!0}t&&Cr(e)}sn.clear()}function gn(e){I(e,e.v+1)}function _n(e,t,n){var r=e.reactions;if(r!==null)for(var i=ot(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===G)){var l=(c&S)==0;if(l&&j(s,t),c&131072)sn.add(s);else if(c&2){var u=s;N?.delete(u),c&65536||(c&512&&(G===null||!(G.f&2097152))&&(s.f|=ie),_n(u,C,n))}else if(l){var d=s;c&16&&Mt!==null&&Mt.add(d),n===null?It(d):n.push(d)}}}}const vn=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function yn(e){if(typeof e!=`object`||!e||se in e)return e;let t=g(e);if(t!==m&&t!==h)return e;var n=new Map,r=s(e),i=F(0),a=null,c=hr,l=e=>{if(hr===c)return e();var t=H,n=hr;W(null),gr(c);var r=e();return W(t),gr(n),r};r&&(n.set(`length`,F(e.length,a)),o&&(e=Cn(e)));var u=``;let d=!1;function p(e){if(!d){d=!0,u=e,Ye(i,`${u} version`);for(let[e,t]of n)Ye(t,bn(u,e));d=!1}}return new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&Ee();var i=n.get(t);return i===void 0?l(()=>{var e=F(r.value,a);return n.set(t,e),o&&typeof t==`string`&&Ye(e,bn(u,t)),e}):I(i,r.value,!0),!0},deleteProperty(e,t){var r=n.get(t);if(r===void 0){if(t in e){let e=l(()=>F(T,a));n.set(t,e),gn(i),o&&Ye(e,bn(u,t))}}else I(r,T),gn(i);return!0},get(t,r,i){if(r===se)return e;if(o&&r===le)return p;var s=n.get(r),c=r in t;if(s===void 0&&(!c||f(t,r)?.writable)&&(s=l(()=>{var e=F(yn(c?t[r]:T),a);return o&&Ye(e,bn(u,r)),e}),n.set(r,s)),s!==void 0){var d=Z(s);return d===T?void 0:d}return Reflect.get(t,r,i)},getOwnPropertyDescriptor(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);if(r&&`value`in r){var i=n.get(t);i&&(r.value=Z(i))}else if(r===void 0){var a=n.get(t),o=a?.v;if(a!==void 0&&o!==T)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,t){if(t===se)return!0;var r=n.get(t),i=r!==void 0&&r.v!==T||Reflect.has(e,t);return(r!==void 0||G!==null&&(!i||f(e,t)?.writable))&&(r===void 0&&(r=l(()=>{var n=F(i?yn(e[t]):T,a);return o&&Ye(n,bn(u,t)),n}),n.set(t,r)),Z(r)===T)?!1:i},set(e,t,s,c){var d=n.get(t),p=t in e;if(r&&t===`length`)for(var m=s;m<d.v;m+=1){var h=n.get(m+``);h===void 0?m in e&&(h=l(()=>F(T,a)),n.set(m+``,h),o&&Ye(h,bn(u,m))):I(h,T)}if(d===void 0)(!p||f(e,t)?.writable)&&(d=l(()=>F(void 0,a)),o&&Ye(d,bn(u,t)),I(d,yn(s)),n.set(t,d));else{p=d.v!==T;var g=l(()=>yn(s));I(d,g)}var _=Reflect.getOwnPropertyDescriptor(e,t);if(_?.set&&_.set.call(c,s),!p){if(r&&typeof t==`string`){var v=n.get(`length`),y=Number(t);Number.isInteger(y)&&y>=v.v&&I(v,y+1)}gn(i)}return!0},ownKeys(e){Z(i);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==T});for(var[r,a]of n)a.v!==T&&!(r in e)&&t.push(r);return t},setPrototypeOf(){De()}})}function bn(e,t){return typeof t==`symbol`?`${e}[Symbol(${t.description??``})]`:vn.test(t)?`${e}.${t}`:/^\d+$/.test(t)?`${e}[${t}]`:`${e}['${t}']`}function xn(e){try{if(typeof e==`object`&&e&&se in e)return e[se]}catch{}return e}const Sn=new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);function Cn(e){return new Proxy(e,{get(e,t,n){var r=Reflect.get(e,t,n);return Sn.has(t)?function(...e){dn();var t=r.apply(this,e);return hn(),t}:r}})}function wn(){let e=Array.prototype,t=Array.__svelte_cleanup;t&&t();let{indexOf:n,lastIndexOf:r,includes:i}=e;e.indexOf=function(e,t){let r=n.call(this,e,t);if(r===-1){for(let n=t??0;n<this.length;n+=1)if(xn(this[n])===e){ze(`array.indexOf(...)`);break}}return r},e.lastIndexOf=function(e,t){let n=r.call(this,e,t??this.length-1);if(n===-1){for(let n=0;n<=(t??this.length-1);n+=1)if(xn(this[n])===e){ze(`array.lastIndexOf(...)`);break}}return n},e.includes=function(e,t){let n=i.call(this,e,t);if(!n){for(let t=0;t<this.length;t+=1)if(xn(this[t])===e){ze(`array.includes(...)`);break}}return n},Array.__svelte_cleanup=()=>{e.indexOf=n,e.lastIndexOf=r,e.includes=i}}var Tn,En,Dn,On;function kn(){if(Tn===void 0){Tn=window,En=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Dn=f(t,`firstChild`).get,On=f(t,`nextSibling`).get,_(e)&&(e[de]=void 0,e[ue]=null,e[fe]=void 0,e.__e=void 0),_(n)&&(n[pe]=void 0),o&&(e.__svelte_meta=null,wn())}}function L(e=``){return document.createTextNode(e)}function An(e){return Dn.call(e)}function jn(e){return On.call(e)}function R(e,t){if(!E)return An(e);var n=An(D);if(n===null)n=D.appendChild(L());else if(t&&n.nodeType!==3){var r=L();return n?.before(r),O(r),r}return t&&In(n),O(n),n}function Mn(e,t=!1){if(!E){var n=An(e);return n instanceof Comment&&n.data===``?jn(n):n}if(t){if(D?.nodeType!==3){var r=L();return D?.before(r),O(r),r}In(D)}return D}function z(e,t=1,n=!1){let r=E?D:e;for(var i;t--;)i=r,r=jn(r);if(!E)return r;if(n){if(r?.nodeType!==3){var a=L();return r===null?i?.after(a):r.before(a),O(a),a}In(r)}return O(r),r}function Nn(e){e.textContent=``}function Pn(){return!1}function Fn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function In(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Ln(e){var t=H,n=G;W(null),K(null);try{return e()}finally{W(t),K(n)}}function Rn(e){G===null&&(H===null&&Ce(e),Se()),lr&&xe(e)}function zn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Bn(e,t){var n=G;if(o)for(;n!==null&&n.f&131072;)n=n.parent;n!==null&&n.f&8192&&(e|=w);var r={ctx:A,deps:null,nodes:null,f:e|2560,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};o&&(r.component_function=nt),M?.register_created_effect(r);var i=r;if(e&4)wt===null?kt.ensure().schedule(r):wt.push(r);else if(t!==null){try{Cr(r)}catch(e){throw V(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=ne))}if(i!==null&&(i.parent=n,n!==null&&zn(i,n),H!==null&&H.f&2&&!(e&64))){var a=H;(a.effects??=[]).push(i)}return r}function Vn(){return H!==null&&!U}function Hn(e){let t=Bn(8,null);return j(t,x),t.teardown=e,t}function Un(e){Rn(`$effect`),o&&d(e,`name`,{value:`$effect`});var t=G.f;if(!H&&t&32&&!(t&32768)){var n=A;(n.e??=[]).push(e)}else return Wn(e)}function Wn(e){return Bn(1048580,e)}function Gn(e){kt.ensure();let t=Bn(524352,e);return(e={})=>new Promise(n=>{e.outro?rr(t,()=>{V(t),n(void 0)}):(V(t),n(void 0))})}function Kn(e){return Bn(4,e)}function qn(e){return Bn(4718592,e)}function Jn(e,t=0){return Bn(8|t,e)}function Yn(e,t=[],n=[],r=[]){Ut(r,t,n,t=>{Bn(8,()=>e(...t.map(Z)))})}function Xn(e,t=0){var n=Bn(16|t,e);return o&&(n.dev_stack=et),n}function Zn(e,t=0){var n=Bn(16777216|t,e);return o&&(n.dev_stack=et),n}function B(e){return Bn(524320,e)}function Qn(e){var t=e.teardown;if(t!==null){let e=lr,n=H;ur(!0),W(null);try{t.call(null)}finally{ur(e),W(n)}}}function $n(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Ln(()=>{e.abort(he)});var r=n.next;n.f&64?n.parent=null:V(n,t),n=r}}function er(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||V(t),t=n}}function V(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(tr(e.nodes.start,e.nodes.end),n=!0),j(e,te),$n(e,t&&!n),Sr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Qn(e),e.f^=te,e.f|=16384;var i=e.parent;i!==null&&i.first!==null&&nr(e),o&&(e.component_function=null),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function tr(e,t){for(;e!==null;){var n=e===t?null:jn(e);e.remove(),e=n}}function nr(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function rr(e,t,n=!0){var r=[];ir(e,r,!0);var i=()=>{n&&V(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function ir(e,t,n){if(!(e.f&8192)){e.f^=w;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;ir(i,t,o?n:!1)}i=a}}}function ar(e){or(e,!0)}function or(e,t){if(e.f&8192){e.f^=w,e.f&1024||(j(e,S),kt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;or(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function sr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:jn(n);t.append(n),n=i}}let cr=!1,lr=!1;function ur(e){lr=e}let H=null,U=!1;function W(e){H=e}let G=null;function K(e){G=e}let q=null;function dr(e){H!==null&&(q===null?q=[e]:q.push(e))}let J=null,Y=0,X=null;function fr(e){X=e}let pr=1,mr=0,hr=mr;function gr(e){hr=e}function _r(){return++pr}function vr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=-65537),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(vr(a)&&rn(a),a.wv>e.wv)return!0}t&512&&N===null&&j(e,x)}return!1}function yr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(q!==null&&l.call(q,e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?yr(a,t,!1):t===a&&(n?j(a,S):a.f&1024&&j(a,C),It(a))}}function br(e){var t=J,n=Y,r=X,i=H,a=q,o=A,s=U,c=hr,l=e.f;J=null,Y=0,X=null,H=l&96?null:e,q=null,$e(e.ctx),U=!1,hr=++mr,e.ac!==null&&(Ln(()=>{e.ac.abort(he)}),e.ac=null);try{e.f|=ae;var u=e.fn,d=u();e.f|=ee;var f=e.deps,p=M?.is_fork;if(J!==null){var m;if(p||Sr(e,Y),f!==null&&Y>0)for(f.length=Y+J.length,m=0;m<J.length;m++)f[Y+m]=J[m];else e.deps=f=J;if(Vn()&&e.f&512)for(m=Y;m<f.length;m++)(f[m].reactions??=[]).push(e)}else !p&&f!==null&&Y<f.length&&(Sr(e,Y),f.length=Y);if(ot()&&X!==null&&!U&&f!==null&&!(e.f&6146))for(m=0;m<X.length;m++)yr(X[m],e);if(i!==null&&i!==e){if(mr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=mr;if(t!==null)for(let e of t)e.rv=mr;X!==null&&(r===null?r=X:r.push(...X))}return e.f&8388608&&(e.f^=oe),d}catch(e){return ft(e)}finally{e.f^=ae,J=t,Y=n,X=r,H=i,q=a,$e(o),U=s,hr=c}}function xr(e,t){let n=t.reactions;if(n!==null){var r=c.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&t.f&2&&(J===null||!l.call(J,t))){var a=t;a.f&512&&(a.f^=512,a.f&=-65537),a.v!==T&>(a),an(a),Sr(a,0)}}function Sr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)xr(e,n[r])}function Cr(e){var t=e.f;if(!(t&16384)){j(e,x);var n=G,r=cr;if(G=e,cr=!0,o){var i=nt;rt(e.component_function);var a=et;tt(e.dev_stack??et)}try{t&16777232?er(e):$n(e),Qn(e);var s=br(e);e.teardown=typeof s==`function`?s:null,e.wv=pr}finally{cr=r,G=n,o&&(rt(i),tt(a))}}}async function wr(){await Promise.resolve(),At()}function Z(e){var t=(e.f&2)!=0;if(H!==null&&!U&&!(G!==null&&G.f&16384)&&(q===null||!l.call(q,e))){var n=H.deps;if(H.f&2097152)e.rv<mr&&(e.rv=mr,J===null&&n!==null&&n[Y]===e?Y++:J===null?J=[e]:J.push(e));else{H.deps??=[],l.call(H.deps,e)||H.deps.push(e);var r=e.reactions;r===null?e.reactions=[H]:l.call(r,H)||r.push(H)}}if(o){if(!U&&P&&!P.warned&&!(P.effect.f&2097152)&&!P.effect_deps.has(e)){P.warned=!0,Pe(e.label);var i=Ze(`traced at`);i&&console.warn(i)}Jt.delete(e)}if(lr&&cn.has(e))return cn.get(e);if(t){var a=e;if(lr){var s=a.v;return(!(a.f&1024)&&a.reactions!==null||Er(a))&&(s=nn(a)),cn.set(a,s),s}var c=(a.f&512)==0&&!U&&H!==null&&(cr||(H.f&512)!=0),u=(a.f&ee)==0;vr(a)&&(c&&(a.f|=512),rn(a)),c&&!u&&(on(a),Tr(a))}if(N?.has(e))return N.get(e);if(e.f&8388608)throw e.v;return e.v}function Tr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(on(t),Tr(t))}function Er(e){if(e.v===T)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(cn.has(t)||t.f&2&&Er(t))return!0;return!1}function Dr(e){var t=U;try{return U=!0,e()}finally{U=t}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];const Or=[`touchstart`,`touchmove`];function kr(e){return Or.includes(e)}var Ar=new Map;function jr(e,t){var n=Ar.get(e);n||(n=new Set,Ar.set(e,n)),n.add(t)}const Mr=Symbol(`events`),Nr=new Set,Pr=new Set;function Fr(e,t,n,r={}){function i(e){if(r.capture||Br.call(t,e),!e.cancelBubble)return Ln(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?lt(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Ir(e,t,n,r,i){var a={capture:r,passive:i},o=Fr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Hn(()=>{t.removeEventListener(e,o,a)})}function Lr(e,t,n){(t[Mr]??={})[e]=n}function Rr(e){for(var t=0;t<e.length;t++)Nr.add(e[t]);for(var n of Pr)n(e)}let zr=null;function Br(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;zr=e;var o=0,s=zr===e&&e[Mr];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[Mr]=t;return}var l=i.indexOf(t);if(l===-1)return;c<=l&&(o=c)}if(a=i[o]||e.target,a!==t){d(e,`currentTarget`,{configurable:!0,get(){return a||n}});var u=H,f=G;W(null),K(null);try{for(var p,m=[];a!==null;){var h=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Mr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble||h===t||h===null)break;a=h}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Mr]=t,delete e.currentTarget,W(u),K(f)}}}const Vr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Hr(e){return Vr?.createHTML(e)??e}function Ur(e){var t=Fn(`template`);return t.innerHTML=Hr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Wr(e,t){var n=G;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Q(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(E)return Wr(D,null),D;i===void 0&&(i=Ur(a?e:`<!>`+e),n||(i=An(i)));var t=r||En?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=An(t),s=t.lastChild;Wr(o,s)}else Wr(t,t);return t}}function $(e,t){if(E){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=D),He();return}e!==null&&e.before(t)}function Gr(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[pe]??=e.nodeValue)&&(e[pe]=n,e.nodeValue=`${n}`)}function Kr(e,t){return Jr(e,t)}const qr=new Map;function Jr(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:s}){kn();var c=void 0,l=Gn(()=>{var o=n??t.appendChild(L());Vt(o,{pending:()=>{}},t=>{it({});var n=A;if(a&&(n.c=a),i&&(r.$$events=i),E&&Wr(t,null),c=e(t,r)||{},E&&(G.nodes.end=D,D===null||D.nodeType!==8||D.data!==`]`))throw Re(),Ae;at()},s);var l=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!l.has(r)){l.add(r);var i=kr(r);for(let e of[t,document]){var a=qr.get(e);a===void 0&&(a=new Map,qr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Br,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(u(Nr)),Pr.add(d),()=>{for(var e of l)for(let n of[t,document]){var r=qr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Br),r.delete(e),r.size===0&&qr.delete(n)):r.set(e,i)}Pr.delete(d),o!==n&&o.parentNode?.removeChild(o)}});return Yr.set(c,l),c}let Yr=new WeakMap;var Xr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)ar(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(this.#t.set(t,r.effect),this.#n.delete(t),o&&(r.fragment.lastChild[me]=this.anchor),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(V(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();sr(r,t),t.append(L()),this.#n.set(e,{effect:r,fragment:t})}else V(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),rr(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(V(n.effect),this.#n.delete(e))};ensure(e,t){var n=M,r=Pn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=L();i.append(a),this.#n.set(e,{effect:B(()=>t(a)),fragment:i})}else this.#t.set(e,B(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else E&&(this.anchor=D),this.#a(n)}};function Zr(e,t,n=!1){var r;E&&(r=D,He());var i=new Xr(e),a=n?ne:0;function o(e,t){if(E){var n=Ge(r);if(e!==parseInt(n.substring(1))){var a=We();O(a),i.anchor=a,Ve(!1),i.ensure(e,t),Ve(!0);return}}i.ensure(e,t)}Xn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Qr(e,t){return t}function $r(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s<i;s++){let n=t[s];rr(n,()=>{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;ei(e,u(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else --o},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var l=n,d=l.parentNode;Nn(d),d.append(l),e.items.clear()}ei(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function ei(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=re,sr(a,document.createDocumentFragment())):V(t[i],n)}}var ti;function ni(e,t,n,r,i,a=null){var c=e,l=new Map;if(t&4){var d=e;c=E?O(An(d)):d.appendChild(L())}E&&He();var f=null,p=$t(()=>{var e=n();return s(e)?e:e==null?[]:u(e)});o&&Ye(p,`{#each ...}`);var m,h=new Map,g=!0;function _(e){y.effect.f&16384||(y.pending.delete(e),y.fallback=f,ii(y,m,c,t,r),f!==null&&(m.length===0?f.f&33554432?(f.f^=re,oi(f,null,c)):ar(f):rr(f,()=>{f=null})))}function v(e){y.pending.delete(e)}var y={effect:Xn(()=>{m=Z(p);var e=m.length;let s=!1;E&&Ge(c)===`[!`!=(e===0)&&(c=We(),O(c),Ve(!1),s=!0);for(var u=new Set,d=M,y=Pn(),b=0;b<e;b+=1){E&&D.nodeType===8&&D.data===`]`&&(c=D,s=!0,Ve(!1));var x=m[b],S=r(x,b);if(o){var C=r(x,b);S!==C&&be(String(b),String(S),String(C))}var w=g?null:l.get(S);w?(w.v&&mn(w.v,x),w.i&&mn(w.i,b),y&&d.unskip_effect(w.e)):(w=ai(l,g?c:ti??=L(),x,S,b,i,t,n),g||(w.e.f|=re),l.set(S,w)),u.add(S)}if(e===0&&a&&!f&&(g?f=B(()=>a(c)):(f=B(()=>a(ti??=L())),f.f|=re)),e>u.size&&(o?ci(m,r):ye(``,``,``)),E&&e>0&&O(We()),!g)if(h.set(d,u),y){for(let[e,t]of l)u.has(e)||d.skip_effect(t.e);d.oncommit(_),d.ondiscard(v)}else _(d);s&&Ve(!0),Z(p)}),flags:t,items:l,pending:h,outrogroups:null,fallback:f};g=!1,E&&(c=D)}function ri(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ii(e,t,n,r,i){var a=(r&8)!=0,o=t.length,s=e.items,c=ri(e.effect.first),l,d=null,f,p=[],m=[],h,g,_,v;if(a)for(v=0;v<o;v+=1)h=t[v],g=i(h,v),_=s.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<o;v+=1){if(h=t[v],g=i(h,v),_=s.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(ar(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=re,_===c)oi(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),si(e,d,_),si(e,_,y),oi(_,y,n),d=_,p=[],m=[],c=ri(d.next);continue}if(_!==c){if(l!==void 0&&l.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)oi(p[x],b,n);for(x=0;x<m.length;x+=1)l.delete(m[x]);si(e,S.prev,C.next),si(e,d,S),si(e,C,b),c=b,d=C,--v,p=[],m=[]}else l.delete(_),oi(_,c,n),si(e,_.prev,_.next),si(e,_,d===null?e.effect.first:d.next),si(e,d,_),d=_;continue}for(p=[],m=[];c!==null&&c!==_;)(l??=new Set).add(c),m.push(c),c=ri(c.next);if(c===null)continue}_.f&33554432||p.push(_),d=_,c=ri(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(ei(e,u(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||l!==void 0){var w=[];if(l!==void 0)for(_ of l)_.f&8192||w.push(_);for(;c!==null;)!(c.f&8192)&&c!==e.fallback&&w.push(c),c=ri(c.next);var ee=w.length;if(ee>0){var te=r&4&&o===0?n:null;if(a){for(v=0;v<ee;v+=1)w[v].nodes?.a?.measure();for(v=0;v<ee;v+=1)w[v].nodes?.a?.fix()}$r(e,w,te)}}a&<(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ai(e,t,n,r,i,a,s,c){var l=s&1?s&16?fn(n):pn(n,!1,!1):null,u=s&2?fn(i):null;return o&&l&&(l.trace=()=>{c()[u?.v??i]}),{v:l,i:u,e:B(()=>(a(t,l??n,u??i,c),()=>{e.delete(r)}))}}function oi(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=jn(r);if(a.before(r),r===i)return;r=o}}function si(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ci(e,t){let n=new Map,r=e.length;for(let i=0;i<r;i++){let r=t(e[i],i);if(n.has(r)){let e=String(n.get(r)),t=String(i),a=String(r);a.startsWith(`[object `)&&(a=null),ye(e,t,a)}n.set(r,i)}}function li(e,t){Kn(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector(`#`+t.hash)){let e=Fn(`style`);e.id=t.hash,e.textContent=t.code,r.appendChild(e),o&&jr(t.hash,e)}})}function ui(e,t){var n=void 0,r;Zn(()=>{n!==(n=t())&&(r&&=(V(r),null),n&&(r=B(()=>{Kn(()=>n(e))})))})}function di(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=di(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function fi(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=di(e))&&(r&&(r+=` `),r+=t);return r}function pi(e){return typeof e==`object`?fi(e):e??``}const mi=[...`
|
|
747
|
+
\r\f\xA0\v`];function hi(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||mi.includes(r[o-1]))&&(s===r.length||mi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function gi(e,t,n,r,i,a){var o=e[de];if(E||o!==n||o===void 0){var s=hi(n,r,a);(!E||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[de]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}const _i=Symbol(`is custom element`),vi=Symbol(`is html`),yi=ge?`link`:`LINK`;function bi(e,t,n,r){var i=xi(e);if(E&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===yi)){r||wi(e,t,n??``);return}i[t]!==(i[t]=n)&&(t===`loading`&&(e[ce]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ci(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function xi(e){return e[ue]??={[_i]:e.nodeName.includes(`-`),[vi]:e.namespaceURI===`http://www.w3.org/1999/xhtml`}}var Si=new Map;function Ci(e){var t=e.getAttribute(`is`)||e.nodeName,n=Si.get(t);if(n)return n;Si.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=p(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=g(i)}return n}function wi(e,t,n){o&&(t===`srcset`&&Di(e,n)||Ti(e.getAttribute(t)??``,n)||Le(t,e.outerHTML.replace(e.innerHTML,e.innerHTML&&`...`),String(n)))}function Ti(e,t){return e===t?!0:new URL(e,document.baseURI).href===new URL(t,document.baseURI).href}function Ei(e){return e.split(`,`).map(e=>e.trim().split(` `).filter(Boolean))}function Di(e,t){var n=Ei(e.srcset),r=Ei(t);return r.length===n.length&&r.every(([e,t],r)=>t===n[r][1]&&(Ti(n[r][0],e)||Ti(e,n[r][0])))}function Oi(e,t){return e===t||e?.[se]===t}function ki(e={},t,n,r){var i=A.r,a=G;return Kn(()=>{var o,s;return Jn(()=>{o=s,s=r?.()||[],Dr(()=>{Oi(n(...s),e)||(t(e,...s),o&&Oi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Oi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}if(o){function e(e){if(!(e in globalThis)){let t;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(t!==void 0)return t;Te(e)},set:e=>{t=e}})}}e(`$state`),e(`$effect`),e(`$derived`),e(`$inspect`),e(`$props`),e(`$bindable`)}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Ai=`data:image/webp;base64,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`,ji=Q(`<span> </span>`),Mi=Q(`<pre></pre>`);function Ni(e,t){it(t,!0);let n=(e,t)=>{let n=[],r=e=>{let t=n.at(-1);t&&t.className===e.className?t.text+=e.text:e.text&&n.push(e)},i=0;for(let n of t)n.start>i&&r({text:e.slice(i,n.start)}),r({className:n.name,text:e.slice(n.start,n.end)}),i=n.end;return i<e.length&&r({text:e.slice(i)}),n},r=F(void 0),i=Qt(()=>n(t.text,t.ranges));Un(()=>{t.text,Z(r),wr().then(()=>{Z(r)&&(Z(r).scrollTop=Z(r).scrollHeight)})});var a=Mi();ni(a,21,()=>Z(i),Qr,(e,t)=>{var n=ji(),r=R(n,!0);k(n),Yn(()=>{gi(n,1,pi(Z(t).className)),Gr(r,Z(t).text)}),$(e,n)}),k(a),ki(a,e=>I(r,e),()=>Z(r)),Yn(()=>bi(a,`data-terminal-id`,t.id)),$(e,a),at()}const Pi={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`,90:`bright-black`,91:`bright-red`,92:`bright-green`,93:`bright-yellow`,94:`bright-blue`,95:`bright-magenta`,96:`bright-cyan`,97:`bright-white`},Fi=e=>{if(e.ctrlKey&&e.key.length===1){let t=e.key.toUpperCase().charCodeAt(0)-64;if(t>=1&&t<=26)return String.fromCharCode(t)}if(e.key===`Enter`)return`\r`;if(e.key===`Backspace`)return``;if(e.key===`Tab`)return` `;if(e.key===`Escape`)return`\x1B`;if(e.key===`ArrowUp`)return`\x1B[A`;if(e.key===`ArrowDown`)return`\x1B[B`;if(e.key===`ArrowRight`)return`\x1B[C`;if(e.key===`ArrowLeft`)return`\x1B[D`;if(e.key===`Home`)return`\x1B[H`;if(e.key===`End`)return`\x1B[F`;if(e.key===`Delete`)return`\x1B[3~`;if(e.key===`PageUp`)return`\x1B[5~`;if(e.key===`PageDown`)return`\x1B[6~`;if(e.key.length===1&&!e.metaKey&&!e.altKey)return e.key},Ii=e=>{let t=e.lines.map(e=>e.text).join(``).replace(/\x1b(?!\[)/g,``),n=[],r=[[]],i=0,a=0,o=``,s=!1,c=()=>(r[i]??=[],r[i]),l=e=>{let t=c();for(;t.length<a;)t.push({text:` `,foreground:``,bold:!1});t[a]={text:e,foreground:o,bold:s},a+=1},u=e=>{let t=c();if(e===2)r[i]=[],a=0;else if(e===1)for(let e=0;e<=a;e+=1)t[e]={text:` `,foreground:``,bold:!1};else t.length=a},d=e=>{let t=e?e.split(`;`).map(Number):[0];for(let e of t)e===0?(o=``,s=!1):e===1?s=!0:e===22?s=!1:e===39?o=``:Pi[e]&&(o=Pi[e])};for(let e=0;e<t.length;e+=1){let n=t[e];if(n===`\x1B`&&t[e+1]===`[`){let n=t.slice(e).match(/^\x1b\[([0-9;?]*)([A-Za-z~])/);if(!n)continue;e+=n[0].length-1;let r=n[1],o=n[2],s=Number(r.split(`;`)[0])||0;o===`m`?d(r):o===`K`?u(s):o===`G`?a=Math.max(0,s-1):o===`C`?a+=s||1:o===`D`?a=Math.max(0,a-(s||1)):o===`A`?(i=Math.max(0,i-(s||1)),a=Math.min(a,c().length)):o===`B`&&(i+=s||1,a=Math.min(a,c().length));continue}if(n===`\r`)a=0;else if(n===`
|
|
748
|
+
`)i+=1,a=0,c();else if(n===`\b`||n===``){a=Math.max(0,a-1);let e=c();a===e.length-1?e.length=a:e[a]&&(e[a]={text:` `,foreground:``,bold:!1})}else if(n===` `){let e=a+(8-a%8);for(;a<e;)l(` `)}else n>=` `&&l(n)}let f=``;return r.forEach((e,t)=>{t>0&&(f+=`
|
|
749
|
+
`),e.forEach(e=>{let t=f.length;f+=e.text,e.foreground&&n.push({name:`cod-ansi-${e.bold&&!e.foreground.startsWith(`bright-`)?`bright-${e.foreground}`:e.foreground}`,start:t,end:f.length})})}),{text:f,ranges:n}};var Li=Q(`<button type="button"><div class="terminal-tab-background m3-layer"><span> </span></div></button>`),Ri=Q(`<p class="empty">$ no tasks have started yet</p>`),zi=Q(`<img aria-label="running" class="task-loader" alt="running"/>`),Bi=Q(`<article><button class="task-summary m3-layer" type="button"><span class="task-chevron" aria-hidden="true"> </span> <strong><span class="task-title"> </span> <!></strong></button> <!></article>`),Vi=Q(`<div class="task-list"><!> <!></div>`),Hi=Q(`<div class="empty terminal-empty"><button class="m3-layer" type="button">+ bash</button></div>`),Ui=Q(`<dialog aria-label="Terminal" class="terminal-app" data-terminal-app="" closedby="any" tabindex="-1"><header class="terminal-header"><nav aria-label="Terminal tabs" class="terminal-tabs"><button type="button"><div class="terminal-tab-background m3-layer"><span>Tasks</span></div></button> <!></nav> <button aria-label="New terminal" class="new-terminal" type="button"><div class="new-terminal-background m3-layer"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M11 13v3q0 .425.288.713T12 17t.713-.288T13 16v-3h3q.425 0 .713-.288T17 12t-.288-.712T16 11h-3V8q0-.425-.288-.712T12 7t-.712.288T11 8v3H8q-.425 0-.712.288T7 12t.288.713T8 13zm-6 8q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5H5zM5 5v14z"></path></svg></div></button></header> <!></dialog>`);function Wi(e,t){it(t,!0);let n=F(void 0),r=!1,i=()=>t.terminals.filter(e=>e.kind===`task`),a=()=>t.terminals.filter(e=>e.kind===`terminal`),o=()=>a().find(e=>e.id===t.activeTab),s=e=>Ii(e),c=e=>{let n=o();if(!n||n.kind!==`terminal`)return;let r=Fi(e);r&&(e.preventDefault(),t.onInput(n.id,r))};Un(()=>{Z(n)&&(t.open&&!Z(n).open?(Z(n).showModal(),Z(n).focus({preventScroll:!0})):!t.open&&Z(n).open&&(r=!0,Z(n).close()))});var l=Ui(),u=R(l),d=R(u),f=R(d);let p;ni(z(f,2),17,a,e=>e.id,(e,n)=>{var r=Li();let i;var a=R(r),o=R(a),s=R(o,!0);k(o),k(a),k(r),Yn(()=>{bi(r,`aria-current`,t.activeTab===Z(n).id?`page`:void 0),i=gi(r,1,`terminal-tab`,null,i,{active:t.activeTab===Z(n).id}),Gr(s,Z(n).title)}),Lr(`click`,r,()=>t.onSelectTab(Z(n).id)),$(e,r)}),k(d);var m=z(d,2);k(u);var h=z(u,2),g=e=>{var n=Vi(),r=R(n),a=e=>{$(e,Ri())},o=Qt(()=>i().length===0);Zr(r,e=>{Z(o)&&e(a)}),ni(z(r,2),17,i,e=>e.id,(e,n)=>{var r=Bi();let i;var a=R(r),o=R(a),c=R(o);k(o);var l=z(o,2),u=R(l),d=R(u,!0);k(u);var f=z(u,2),p=e=>{var t=zi();Yn(()=>bi(t,`src`,Ai)),$(e,t)};Zr(f,e=>{Z(n).running&&e(p)}),k(l),k(a);var m=z(a,2),h=e=>{let t=Qt(()=>s(Z(n)));Ni(e,{get id(){return Z(n).id},get text(){return Z(t).text},get ranges(){return Z(t).ranges}})};Zr(m,e=>{Z(n).collapsed||e(h)}),k(r),Yn(()=>{i=gi(r,1,`task-entry`,null,i,{error:Z(n).failed,finished:!Z(n).running}),bi(a,`aria-expanded`,!Z(n).collapsed),Gr(c,`[${Z(n).collapsed?`+`:`-`}]`),Gr(d,Z(n).title)}),Lr(`click`,a,()=>t.onToggleTask(Z(n).id)),$(e,r)}),k(n),$(e,n)},_=e=>{let n=Qt(()=>s(o()));Ni(e,{get id(){return t.activeTab},get text(){return Z(n).text},get ranges(){return Z(n).ranges}})},v=Qt(()=>o()),y=e=>{var n=Hi(),r=R(n);k(n),Lr(`click`,r,function(...e){t.onNewTerminal?.apply(this,e)}),$(e,n)};Zr(h,e=>{t.activeTab===`tasks`?e(g):Z(v)?e(_,1):e(y,-1)}),k(l),ki(l,e=>I(n,e),()=>Z(n)),Yn(()=>{bi(f,`aria-current`,t.activeTab===`tasks`?`page`:void 0),p=gi(f,1,`terminal-tab`,null,p,{active:t.activeTab===`tasks`})}),Ir(`close`,l,()=>{if(r){r=!1;return}t.onClose()}),Lr(`keydown`,l,c),Lr(`click`,f,()=>t.onSelectTab(`tasks`)),Lr(`click`,m,function(...e){t.onNewTerminal?.apply(this,e)}),$(e,l),at()}Rr([`keydown`,`click`]);var Gi=Q(`<button class="app-entry alive m3-layer svelte-1ywbbn9" type="button"><span class="svelte-1ywbbn9"> </span></button>`),Ki=Q(`<button class="app-entry m3-layer svelte-1ywbbn9" type="button"><span class="svelte-1ywbbn9">Launch Firefox</span></button>`),qi=Q(`<div class="screen svelte-1ywbbn9"></div> <!> <div><nav class="bar svelte-1ywbbn9" aria-label="Open windows"><!> <!> <button type="button" title="Terminal"><span class="svelte-1ywbbn9">Terminal</span></button></nav></div> <div><img alt="Loading Cod" class="svelte-1ywbbn9"/></div>`,1);const Ji={hash:`svelte-1ywbbn9`,code:`.screen.svelte-1ywbbn9 {position:absolute;z-index:10;inset:0;overflow:visible;canvas {max-width:none;max-height:none;object-fit:none;}}.bar-anchor.svelte-1ywbbn9 {display:contents;--transition: 220ms cubic-bezier(0.2, 0, 0, 1);}.bar.svelte-1ywbbn9 {position:fixed;z-index:100;bottom:0;left:50%;display:flex;align-items:center;gap:0.25rem;width:max-content;max-width:calc(100vw - 1rem);height:2.25rem;overflow:visible;padding:0.25rem;background:transparent;translate:-50% 0;transition:height var(--transition),
|
|
750
|
+
width var(--transition),
|
|
751
|
+
padding var(--transition),
|
|
752
|
+
border-radius var(--transition);&::after {position:absolute;bottom:0.1875rem;left:50%;width:2.75rem;height:0.25rem;border-radius:999px;background:var(--m3c-primary-container);content:'';translate:-50% 0;transition:opacity var(--transition),
|
|
753
|
+
visibility var(--transition);}}.bar-anchor.svelte-1ywbbn9:not(:hover, :focus-within, .force-expand) > .bar:where(.svelte-1ywbbn9) {width:3.5rem;height:0.75rem;padding:0;}.bar-anchor.svelte-1ywbbn9:is(:where(.svelte-1ywbbn9):hover, :where(.svelte-1ywbbn9):focus-within, .force-expand:where(.svelte-1ywbbn9)) > .bar:where(.svelte-1ywbbn9)::after {visibility:hidden;opacity:0;}.bar-anchor.svelte-1ywbbn9:not(:hover, :focus-within, .force-expand) > .bar:where(.svelte-1ywbbn9) > button:where(.svelte-1ywbbn9) {width:0;min-width:0;padding-inline:0;visibility:hidden;}.bar.svelte-1ywbbn9 button:where(.svelte-1ywbbn9) {position:relative;display:flex;align-items:center;justify-content:center;min-width:5.25rem;max-width:10rem;height:1.75rem;border:0;border-radius:0.5rem;padding:0 0.625rem;background:var(--m3c-surface-container-low);color:var(--m3c-on-surface);text-align:center;cursor:pointer;transition:width var(--transition),
|
|
754
|
+
min-width var(--transition),
|
|
755
|
+
padding var(--transition),
|
|
756
|
+
background 120ms;&:hover {background:var(--m3c-surface-container-high);}&.alive::after {position:absolute;bottom:0.2rem;left:50%;width:0.25rem;height:0.25rem;border-radius:999px;background:currentColor;content:'';opacity:0.75;translate:-50% 0;}span:where(.svelte-1ywbbn9) {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:1.1;}}.loader.svelte-1ywbbn9 {position:absolute;z-index:60;inset:0;display:grid;place-items:center;align-content:center;gap:1rem;background:var(--m3c-surface-container-lowest);transition:opacity 140ms;&.hidden {visibility:hidden;opacity:0;}img:where(.svelte-1ywbbn9) {width:min(50vw, 50vh, 24rem);height:auto;}}`};function Yi(e,t){it(t,!0),li(e,Ji);let n=String.raw`set -euo pipefail
|
|
757
|
+
echo "Installing Firefox..."
|
|
758
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
759
|
+
BIN_DIR="$HOME/.local/bin"
|
|
760
|
+
APP_DIR="$HOME/.local"
|
|
761
|
+
mkdir -p "$BIN_DIR" "$APP_DIR"
|
|
762
|
+
BROWSER="$APP_DIR/firefox/firefox"
|
|
763
|
+
|
|
764
|
+
if [ ! -x "$BROWSER" ]; then
|
|
765
|
+
ARCHIVE="/tmp/codehs-firefox.tar.xz"
|
|
766
|
+
EXTRACT_DIR="$(mktemp -d "$APP_DIR/firefox-install.XXXXXX")"
|
|
767
|
+
URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US"
|
|
768
|
+
cleanup() {
|
|
769
|
+
rm -rf "$EXTRACT_DIR"
|
|
770
|
+
}
|
|
771
|
+
trap cleanup EXIT
|
|
772
|
+
echo "Downloading Firefox from Mozilla..."
|
|
773
|
+
if command -v curl >/dev/null 2>&1; then
|
|
774
|
+
curl -L --fail --retry 2 --max-time 90 -o "$ARCHIVE" "$URL"
|
|
775
|
+
elif command -v wget >/dev/null 2>&1; then
|
|
776
|
+
wget -O "$ARCHIVE" "$URL"
|
|
777
|
+
else
|
|
778
|
+
python3 - <<'PY'
|
|
779
|
+
import urllib.request
|
|
780
|
+
url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US'
|
|
781
|
+
with urllib.request.urlopen(url) as response:
|
|
782
|
+
content_type = response.headers.get('content-type', '')
|
|
783
|
+
if response.status != 200:
|
|
784
|
+
raise RuntimeError(f'unexpected Firefox response: {response.status} {content_type}')
|
|
785
|
+
with open('/tmp/codehs-firefox.tar.xz', 'wb') as f:
|
|
786
|
+
f.write(response.read())
|
|
787
|
+
PY
|
|
788
|
+
fi
|
|
789
|
+
echo "Extracting Firefox..."
|
|
790
|
+
tar -xf "$ARCHIVE" -C "$EXTRACT_DIR"
|
|
791
|
+
rm -rf "$APP_DIR/firefox"
|
|
792
|
+
mv "$EXTRACT_DIR/firefox" "$APP_DIR/firefox"
|
|
793
|
+
fi
|
|
794
|
+
|
|
795
|
+
"$BROWSER" --version
|
|
796
|
+
echo "Firefox is ready: $BROWSER"
|
|
797
|
+
`,r=String.raw`import json
|
|
798
|
+
import os
|
|
374
799
|
import subprocess
|
|
800
|
+
import sys
|
|
801
|
+
import threading
|
|
802
|
+
import tempfile
|
|
803
|
+
import textwrap
|
|
375
804
|
import time
|
|
376
805
|
|
|
377
|
-
|
|
378
|
-
|
|
806
|
+
HOME = os.environ.get('HOME') or '/home/karel'
|
|
807
|
+
BIN_DIR = os.path.join(HOME, '.local', 'bin')
|
|
808
|
+
WM_DIR = os.path.join(HOME, '.local', 'codehs-wm')
|
|
809
|
+
os.makedirs(BIN_DIR, exist_ok=True)
|
|
810
|
+
os.makedirs(WM_DIR, exist_ok=True)
|
|
811
|
+
os.environ['PATH'] = BIN_DIR + ':' + os.environ.get('PATH', '')
|
|
379
812
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
out = subprocess.run(cmd, text=True, capture_output=True, timeout=10)
|
|
383
|
-
print(label, "rc=", out.returncode, flush=True)
|
|
384
|
-
for line in out.stdout.splitlines():
|
|
385
|
-
if "dimensions:" in line:
|
|
386
|
-
print(label, line.strip(), flush=True)
|
|
387
|
-
if out.stdout:
|
|
388
|
-
print(label, "stdout", out.stdout[:1200], flush=True)
|
|
389
|
-
if out.stderr:
|
|
390
|
-
print(label, "stderr", out.stderr[:1200], flush=True)
|
|
391
|
-
except Exception as exc:
|
|
392
|
-
print(label, "failed", repr(exc), flush=True)
|
|
813
|
+
GRAPHICS_WIDTH = 1920
|
|
814
|
+
GRAPHICS_HEIGHT = 1080
|
|
393
815
|
|
|
394
|
-
|
|
816
|
+
def say(*parts):
|
|
817
|
+
print(*parts, flush=True)
|
|
395
818
|
|
|
396
|
-
|
|
819
|
+
def say_block(label, text):
|
|
820
|
+
if not text:
|
|
821
|
+
return
|
|
822
|
+
print(label, flush=True)
|
|
823
|
+
print(text[:2000].rstrip(), flush=True)
|
|
824
|
+
|
|
825
|
+
def run(cmd, timeout=60, cwd=None, env=None, quiet=False):
|
|
826
|
+
if not quiet:
|
|
827
|
+
say('$', ' '.join(cmd))
|
|
397
828
|
try:
|
|
398
|
-
|
|
399
|
-
|
|
829
|
+
p = subprocess.run(cmd, text=True, capture_output=True, timeout=timeout, cwd=cwd, env=env)
|
|
830
|
+
if not quiet:
|
|
831
|
+
say('Command finished with exit code', p.returncode)
|
|
832
|
+
if not quiet:
|
|
833
|
+
say_block('Output:', p.stdout)
|
|
834
|
+
say_block('Errors:', p.stderr)
|
|
835
|
+
return p.returncode == 0, p.stdout, p.stderr
|
|
400
836
|
except Exception as exc:
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
time
|
|
407
|
-
|
|
408
|
-
|
|
837
|
+
if not quiet:
|
|
838
|
+
say('Command failed:', type(exc).__name__, str(exc))
|
|
839
|
+
return False, '', str(exc)
|
|
840
|
+
|
|
841
|
+
def download(url, path, timeout=120):
|
|
842
|
+
return run(['curl', '-L', '--fail', '--max-time', str(timeout - 20), '-o', path, url], timeout=timeout)[0]
|
|
843
|
+
|
|
844
|
+
def extract_jwm():
|
|
845
|
+
candidate = os.path.join(WM_DIR, 'usr', 'bin', 'jwm')
|
|
846
|
+
if os.path.exists(candidate):
|
|
847
|
+
return candidate
|
|
848
|
+
deb = os.path.join(tempfile.mkdtemp(prefix='cod-jwm-'), 'jwm.deb')
|
|
849
|
+
urls = [
|
|
850
|
+
'https://mirrors.kernel.org/ubuntu/pool/universe/j/jwm/jwm_2.4.0-2_amd64.deb',
|
|
851
|
+
'https://archive.ubuntu.com/ubuntu/pool/universe/j/jwm/jwm_2.4.0-2_amd64.deb',
|
|
852
|
+
]
|
|
853
|
+
for url in urls:
|
|
854
|
+
if download(url, deb, 90):
|
|
855
|
+
ok, _out, _err = run(['dpkg-deb', '-x', deb, WM_DIR], timeout=60)
|
|
856
|
+
if ok and os.path.exists(candidate):
|
|
857
|
+
os.chmod(candidate, os.stat(candidate).st_mode | 0o111)
|
|
858
|
+
return candidate
|
|
859
|
+
return None
|
|
860
|
+
|
|
861
|
+
def start_background(cmd, log_path, cwd=None):
|
|
862
|
+
log = open(log_path, 'ab', buffering=0)
|
|
863
|
+
return subprocess.Popen(
|
|
864
|
+
cmd,
|
|
865
|
+
cwd=cwd,
|
|
866
|
+
stdin=subprocess.DEVNULL,
|
|
867
|
+
stdout=log,
|
|
868
|
+
stderr=subprocess.STDOUT,
|
|
869
|
+
start_new_session=True,
|
|
870
|
+
)
|
|
871
|
+
|
|
872
|
+
def wait_for_display(timeout=8):
|
|
873
|
+
deadline = time.time() + timeout
|
|
874
|
+
while time.time() < deadline:
|
|
875
|
+
ok, _out, _err = run(['xdpyinfo', '-display', ':99'], timeout=2, quiet=True)
|
|
876
|
+
if ok:
|
|
877
|
+
return True
|
|
878
|
+
time.sleep(0.25)
|
|
879
|
+
return False
|
|
880
|
+
|
|
881
|
+
def restart_graphics_stack():
|
|
882
|
+
say('Restarting graphics stack at', f'{GRAPHICS_WIDTH}x{GRAPHICS_HEIGHT}')
|
|
883
|
+
for pattern in [
|
|
884
|
+
'websockify 1337 :5900',
|
|
885
|
+
'x11vnc .* -display :99',
|
|
886
|
+
'/usr/bin/Xvfb :99',
|
|
887
|
+
]:
|
|
888
|
+
run(['pkill', '-f', pattern], timeout=5, quiet=True)
|
|
889
|
+
time.sleep(1)
|
|
890
|
+
for path in ['/tmp/.X99-lock', '/tmp/.X11-unix/X99']:
|
|
891
|
+
try:
|
|
892
|
+
os.remove(path)
|
|
893
|
+
except FileNotFoundError:
|
|
894
|
+
pass
|
|
895
|
+
except Exception as exc:
|
|
896
|
+
say('Warning: could not remove display lock', path, type(exc).__name__, str(exc))
|
|
897
|
+
|
|
898
|
+
start_background(
|
|
899
|
+
[
|
|
900
|
+
'/usr/bin/Xvfb',
|
|
901
|
+
':99',
|
|
902
|
+
'-screen',
|
|
903
|
+
'0',
|
|
904
|
+
f'{GRAPHICS_WIDTH}x{GRAPHICS_HEIGHT}x16',
|
|
905
|
+
'-ac',
|
|
906
|
+
'+extension',
|
|
907
|
+
'GLX',
|
|
908
|
+
'+extension',
|
|
909
|
+
'RANDR',
|
|
910
|
+
],
|
|
911
|
+
'/tmp/cod-xvfb.log',
|
|
912
|
+
)
|
|
913
|
+
if not wait_for_display():
|
|
914
|
+
say('Error: Xvfb display did not become ready')
|
|
915
|
+
sys.exit(5)
|
|
916
|
+
run(['xrandr', '-d', ':99', '--current'], timeout=5)
|
|
917
|
+
start_background(
|
|
918
|
+
['x11vnc', '-noxrecord', '-xrandr', '-noncache', '-display', ':99', '-forever', '-rfbport', '5900'],
|
|
919
|
+
'/tmp/cod-x11vnc.log',
|
|
920
|
+
)
|
|
921
|
+
time.sleep(1)
|
|
922
|
+
start_background(
|
|
923
|
+
['/usr/bin/python3.8', '-m', 'websockify', '1337', ':5900'],
|
|
924
|
+
'/tmp/cod-websockify.log',
|
|
925
|
+
cwd='/usr/local/websockify',
|
|
926
|
+
)
|
|
927
|
+
time.sleep(2)
|
|
928
|
+
say('Graphics stack is ready at', f'{GRAPHICS_WIDTH}x{GRAPHICS_HEIGHT}')
|
|
929
|
+
|
|
930
|
+
def write_jwmrc(path):
|
|
931
|
+
with open(path, 'w') as f:
|
|
932
|
+
f.write(textwrap.dedent('''\
|
|
933
|
+
<?xml version="1.0"?>
|
|
934
|
+
<JWM>
|
|
935
|
+
<RootMenu onroot="123">
|
|
936
|
+
<Restart label="Restart JWM"/>
|
|
937
|
+
<Exit label="Exit JWM" confirm="false"/>
|
|
938
|
+
</RootMenu>
|
|
939
|
+
<Group>
|
|
940
|
+
<Name>Navigator</Name>
|
|
941
|
+
<Class>firefox</Class>
|
|
942
|
+
<Class>Firefox</Class>
|
|
943
|
+
<Option>maximized</Option>
|
|
944
|
+
</Group>
|
|
945
|
+
<Group>
|
|
946
|
+
<Option>tiled</Option>
|
|
947
|
+
<Option>aerosnap</Option>
|
|
948
|
+
<Option>noborder</Option>
|
|
949
|
+
<Option>notitle</Option>
|
|
950
|
+
</Group>
|
|
951
|
+
<WindowStyle decorations="motif">
|
|
952
|
+
<Font>Sans-10</Font>
|
|
953
|
+
<Width>0</Width>
|
|
954
|
+
<Height>0</Height>
|
|
955
|
+
</WindowStyle>
|
|
956
|
+
<Tray autohide="true" x="0" y="-1" height="1"></Tray>
|
|
957
|
+
<FocusModel>click</FocusModel>
|
|
958
|
+
<MoveMode>opaque</MoveMode>
|
|
959
|
+
<ResizeMode>opaque</ResizeMode>
|
|
960
|
+
<DoubleClickSpeed>400</DoubleClickSpeed>
|
|
961
|
+
<DoubleClickDelta>2</DoubleClickDelta>
|
|
962
|
+
<Key key="A-Tab">nextstacked</Key>
|
|
963
|
+
<Key key="A-F4">close</Key>
|
|
964
|
+
</JWM>
|
|
965
|
+
'''))
|
|
966
|
+
|
|
967
|
+
def get_window_title(window_id):
|
|
968
|
+
ok, out, _err = run(['xprop', '-id', window_id, '_NET_WM_NAME', 'WM_NAME'], timeout=2, quiet=True)
|
|
969
|
+
if not ok:
|
|
970
|
+
return ''
|
|
971
|
+
for line in out.splitlines():
|
|
972
|
+
if ' = ' not in line:
|
|
973
|
+
continue
|
|
974
|
+
_key, value = line.split(' = ', 1)
|
|
975
|
+
if value.startswith('"') and value.endswith('"'):
|
|
976
|
+
return value[1:-1]
|
|
977
|
+
return ''
|
|
978
|
+
|
|
979
|
+
def list_windows():
|
|
980
|
+
ok, out, _err = run(['xprop', '-root', '_NET_CLIENT_LIST'], timeout=2, quiet=True)
|
|
981
|
+
if not ok or '#' not in out:
|
|
982
|
+
return []
|
|
983
|
+
ids = [part.strip().rstrip(',') for part in out.split('#', 1)[1].split(',')]
|
|
984
|
+
windows = []
|
|
985
|
+
for window_id in ids:
|
|
986
|
+
if not window_id.startswith('0x'):
|
|
987
|
+
continue
|
|
988
|
+
title = get_window_title(window_id) or 'Untitled window'
|
|
989
|
+
windows.append({'id': window_id, 'title': title})
|
|
990
|
+
return windows
|
|
991
|
+
|
|
992
|
+
def watch_windows():
|
|
993
|
+
previous = None
|
|
994
|
+
while True:
|
|
995
|
+
windows = list_windows()
|
|
996
|
+
current = json.dumps(windows, sort_keys=True)
|
|
997
|
+
if current != previous:
|
|
998
|
+
say('COD_WINDOWS', current)
|
|
999
|
+
previous = current
|
|
1000
|
+
time.sleep(1)
|
|
1001
|
+
|
|
1002
|
+
say('Starting desktop services')
|
|
1003
|
+
restart_graphics_stack()
|
|
1004
|
+
try:
|
|
1005
|
+
subprocess.run(['xsetroot', '-solid', '#00120a'], timeout=5)
|
|
1006
|
+
except Exception:
|
|
1007
|
+
pass
|
|
1008
|
+
|
|
1009
|
+
jwm = extract_jwm()
|
|
1010
|
+
if not jwm:
|
|
1011
|
+
say('Error: could not install the window manager')
|
|
1012
|
+
sys.exit(2)
|
|
1013
|
+
say('Window manager is ready:', jwm)
|
|
1014
|
+
|
|
1015
|
+
jwmrc = os.path.join(tempfile.mkdtemp(prefix='cod-jwmrc-'), 'jwmrc')
|
|
1016
|
+
write_jwmrc(jwmrc)
|
|
1017
|
+
env = os.environ.copy()
|
|
1018
|
+
env['PATH'] = os.path.dirname(jwm) + ':' + BIN_DIR + ':' + env.get('PATH', '')
|
|
1019
|
+
wm = subprocess.Popen([jwm, '-f', jwmrc], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, env=env)
|
|
1020
|
+
time.sleep(1)
|
|
1021
|
+
if wm.poll() is not None:
|
|
1022
|
+
say('Error: window manager exited during startup with code', wm.returncode)
|
|
1023
|
+
sys.exit(3)
|
|
1024
|
+
say('Desktop is ready')
|
|
1025
|
+
threading.Thread(target=watch_windows, daemon=True).start()
|
|
1026
|
+
|
|
1027
|
+
while True:
|
|
1028
|
+
if wm.poll() is not None:
|
|
1029
|
+
say('Error: window manager stopped with code', wm.returncode)
|
|
1030
|
+
sys.exit(4)
|
|
1031
|
+
time.sleep(5)
|
|
1032
|
+
`,i=F(!0),a,o=0,s=F(!1),c=F(`tasks`),l=F(yn([])),u=F(yn([])),d=F(!1),f,p=(e=Z(c))=>{I(c,e,!0),I(s,!0),t.appWindow.setTimeout(ie)},m=()=>{I(s,!1)},h=(e,t)=>new Promise((n,r)=>{if([...e.scripts].find(e=>e.src===t)){n();return}let i=e.createElement(`script`);i.src=t,i.onload=()=>n(),i.onerror=()=>r(Error(`failed to load ${t}`)),e.head.appendChild(i)}),g=()=>({width:Math.max(1,Math.round(t.appWindow.innerWidth)),height:Math.max(1,Math.round(t.appWindow.innerHeight))}),_=e=>{let n=0,r,i=()=>{n=0;let t=g();r?.width===t.width&&r.height===t.height||(r=t,e(t))},a=()=>{n&&t.appWindow.clearTimeout(n),n=t.appWindow.setTimeout(i)};return t.appWindow.addEventListener(`resize`,a),a(),()=>{t.appWindow.removeEventListener(`resize`,a),n&&t.appWindow.clearTimeout(n)}},v=e=>{let t=e.querySelector(`canvas`);t instanceof HTMLCanvasElement&&(t.style.width=`${t.width}px`,t.style.height=`${t.height}px`,t.style.maxWidth=`none`,t.style.maxHeight=`none`,t.style.objectFit=`fill`)},y=e=>{let t,n=()=>{let n=e.querySelector(`canvas`);if(!(n instanceof HTMLCanvasElement))return!1;t?.disconnect();let r=new MutationObserver(()=>v(e));return t=r,r.observe(n,{attributes:!0,attributeFilter:[`width`,`height`]}),v(e),!0},r=new MutationObserver(()=>{n()&&r.disconnect()});n()||r.observe(e,{childList:!0,subtree:!0})},b=(e,n,r)=>{let i=!1,a,o=0,s=()=>{let c=t.appWindow.RFB;c&&(i=!1,o=0,a=new c(e,n,{}),a.scaleViewport=!1,a.resizeSession=!1,a.clipViewport=!0,a.focusOnClick=!0,a.addEventListener(`disconnect`,e=>{i&&console.warn(`[rfb] disconnected`,e),i=!1,o||=t.appWindow.setTimeout(s,1e3)}),a.addEventListener(`connect`,()=>{i=!0,r()}))};return s(),()=>{o&&t.appWindow.clearTimeout(o),a?.disconnect()}},x=e=>{a={width:Math.min(e.width,1920),height:Math.min(e.height,1080)},o&&t.appWindow.clearTimeout(o),o=t.appWindow.setTimeout(()=>{o=0;let e=a;if(!e)return;let t=`set -euo pipefail
|
|
1033
|
+
WIDTH=${e.width}
|
|
1034
|
+
HEIGHT=${e.height}
|
|
1035
|
+
MODE="\${WIDTH}x\${HEIGHT}"
|
|
1036
|
+
MODEL="$(gtf "$WIDTH" "$HEIGHT" 60 | sed -n -e 's/^.*" //p')"
|
|
1037
|
+
for _ in $(seq 1 1200); do
|
|
1038
|
+
if xdpyinfo -display :99 >/dev/null 2>&1 && xrandr -d :99 --query >/dev/null 2>&1; then
|
|
1039
|
+
xrandr -d :99 --newmode "$MODE" $MODEL >/dev/null 2>&1 || true
|
|
1040
|
+
xrandr -d :99 --addmode screen "$MODE" >/dev/null 2>&1 || true
|
|
1041
|
+
if xrandr -d :99 --output screen --mode "$MODE" >/dev/null 2>&1; then
|
|
1042
|
+
echo "Display resized to $MODE"
|
|
1043
|
+
exit 0
|
|
1044
|
+
fi
|
|
1045
|
+
fi
|
|
1046
|
+
sleep 0.5
|
|
1047
|
+
done
|
|
1048
|
+
xdpyinfo -display :99 >/dev/null
|
|
1049
|
+
xrandr -d :99 --query >/dev/null
|
|
1050
|
+
for _ in $(seq 1 10); do
|
|
1051
|
+
xrandr -d :99 --newmode "$MODE" $MODEL || true
|
|
1052
|
+
xrandr -d :99 --addmode screen "$MODE" || true
|
|
1053
|
+
if xrandr -d :99 --output screen --mode "$MODE"; then
|
|
1054
|
+
echo "Display resized to $MODE"
|
|
1055
|
+
break
|
|
1056
|
+
fi
|
|
1057
|
+
sleep 0.5
|
|
1058
|
+
done
|
|
1059
|
+
xrandr -d :99 --output screen --mode "$MODE" >/dev/null
|
|
1060
|
+
`;de({id:`task-display-resize-${Date.now()}`,title:`Resize display to ${e.width}x${e.height}`,command:t})},120)},S=e=>{let t=e.slice(12).trim();try{let e=JSON.parse(t).filter(e=>typeof e.id==`string`&&typeof e.title==`string`);e.length>0&&I(d,!0);let n=new Map(e.map(e=>[e.id,e])),r=Z(u).map(e=>n.get(e.id)).filter(e=>!!e);for(let t of e)r.some(e=>e.id===t.id)||r.push(t);I(u,r,!0)}catch(t){console.warn(`[wm] failed to parse windows`,t,e)}},C=e=>{for(let t of e.split(`
|
|
1061
|
+
`))t.startsWith(`COD_WINDOWS `)&&S(t)},w=()=>t.session.transfer({"main.py":r}),ee=()=>{let e=`set -e
|
|
409
1062
|
source "./.pyvenv311/bin/activate"
|
|
410
|
-
python -B "$MAIN_FILE"`;
|
|
1063
|
+
python -B "$MAIN_FILE"`;de({id:`task-desktop`,title:`Starting desktop`,command:e,args:[`-i`,`-c`,e],type:`echopty`,env:{MAIN_FILE:`main.py`,DEBUG_MODE:0},track:!1})},te=async e=>{let r=`wss://scalinghub.codehs.com/user/${t.uid}/graphics`;if(y(e),t.session.setOutputHandler((e,t,n)=>{let r=String(t??``);n&&Z(l).some(e=>e.id===n)&&le(n,e,r),e===`stderr`&&console.warn(`[spawn]`,r),C(r)}),_(x),await w(),ee(),de({id:`task-firefox-install`,title:`Installing Firefox`,command:n}),oe(),await h(t.appWindow.document,`https://static1.codehs.com/lib/noVNC/noVNC.js`),!t.appWindow.RFB)throw Error(`noVNC RFB global did not load`);b(e,r,()=>{I(i,!1),v(e)})},ne=e=>{f=e,te(e)},re=()=>{let e=f?.querySelector(`canvas`);e instanceof HTMLCanvasElement&&e.focus({preventScroll:!0})},ie=()=>{t.appWindow.document.querySelector(`[data-terminal-app]`)?.focus({preventScroll:!0})},ae=()=>Z(l).filter(e=>e.kind===`terminal`).length,oe=()=>{de({id:`task-firefox-launch-${Date.now()}`,title:`Launching Firefox`,command:`set -euo pipefail
|
|
1064
|
+
BROWSER="$HOME/.local/firefox/firefox"
|
|
1065
|
+
for _ in $(seq 1 1200); do
|
|
1066
|
+
if [ -x "$BROWSER" ] && xdpyinfo -display :99 >/dev/null 2>&1 && xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null 2>&1; then
|
|
1067
|
+
break
|
|
1068
|
+
fi
|
|
1069
|
+
sleep 0.5
|
|
1070
|
+
done
|
|
1071
|
+
[ -x "$BROWSER" ]
|
|
1072
|
+
xdpyinfo -display :99 >/dev/null
|
|
1073
|
+
xprop -root _NET_SUPPORTING_WM_CHECK >/dev/null
|
|
1074
|
+
"$BROWSER" about:blank`})},se=()=>{let e=`terminal-${Date.now()}`;I(l,[...Z(l),{id:e,title:`Bash ${ae()+1}`,kind:`terminal`,running:!0,started:!0,failed:!1,collapsed:!1,lines:[]}],!0),I(c,e),p(e),t.session.spawnCommand(e,`exec bash -l`,{type:`echopty`,args:[`-l`],untracked:!0})},ce=e=>{if(t.session){let t=JSON.stringify(e.id);de({id:`task-focus-${Date.now()}`,title:`Focus ${e.title}`,command:`python -B - <<'PY'
|
|
1075
|
+
import ctypes
|
|
1076
|
+
import time
|
|
1077
|
+
|
|
1078
|
+
window_id = ${t}
|
|
1079
|
+
if not window_id.startswith('0x'):
|
|
1080
|
+
raise SystemExit(0)
|
|
1081
|
+
|
|
1082
|
+
class ClientMessageData(ctypes.Union):
|
|
1083
|
+
_fields_ = [
|
|
1084
|
+
('b', ctypes.c_char * 20),
|
|
1085
|
+
('s', ctypes.c_short * 10),
|
|
1086
|
+
('l', ctypes.c_long * 5),
|
|
1087
|
+
]
|
|
1088
|
+
|
|
1089
|
+
class XClientMessageEvent(ctypes.Structure):
|
|
1090
|
+
_fields_ = [
|
|
1091
|
+
('type', ctypes.c_int),
|
|
1092
|
+
('serial', ctypes.c_ulong),
|
|
1093
|
+
('send_event', ctypes.c_int),
|
|
1094
|
+
('display', ctypes.c_void_p),
|
|
1095
|
+
('window', ctypes.c_ulong),
|
|
1096
|
+
('message_type', ctypes.c_ulong),
|
|
1097
|
+
('format', ctypes.c_int),
|
|
1098
|
+
('data', ClientMessageData),
|
|
1099
|
+
]
|
|
1100
|
+
|
|
1101
|
+
class XEvent(ctypes.Union):
|
|
1102
|
+
_fields_ = [
|
|
1103
|
+
('type', ctypes.c_int),
|
|
1104
|
+
('xclient', XClientMessageEvent),
|
|
1105
|
+
('pad', ctypes.c_long * 24),
|
|
1106
|
+
]
|
|
1107
|
+
|
|
1108
|
+
x11 = ctypes.cdll.LoadLibrary('libX11.so.6')
|
|
1109
|
+
x11.XOpenDisplay.restype = ctypes.c_void_p
|
|
1110
|
+
x11.XDefaultRootWindow.restype = ctypes.c_ulong
|
|
1111
|
+
x11.XInternAtom.restype = ctypes.c_ulong
|
|
1112
|
+
|
|
1113
|
+
display = x11.XOpenDisplay(None)
|
|
1114
|
+
if not display:
|
|
1115
|
+
raise SystemExit(0)
|
|
1116
|
+
try:
|
|
1117
|
+
window = int(window_id, 16)
|
|
1118
|
+
root = x11.XDefaultRootWindow(display)
|
|
1119
|
+
active_window = x11.XInternAtom(display, b'_NET_ACTIVE_WINDOW', False)
|
|
1120
|
+
event = XEvent()
|
|
1121
|
+
event.xclient.type = 33
|
|
1122
|
+
event.xclient.display = display
|
|
1123
|
+
event.xclient.window = window
|
|
1124
|
+
event.xclient.message_type = active_window
|
|
1125
|
+
event.xclient.format = 32
|
|
1126
|
+
event.xclient.data.l[0] = 1
|
|
1127
|
+
event.xclient.data.l[1] = int(time.time())
|
|
1128
|
+
x11.XSendEvent(display, root, False, 0x00100000 | 0x00080000, ctypes.byref(event))
|
|
1129
|
+
x11.XRaiseWindow(display, window)
|
|
1130
|
+
x11.XFlush(display)
|
|
1131
|
+
finally:
|
|
1132
|
+
x11.XCloseDisplay(display)
|
|
1133
|
+
PY`})}t.appWindow.setTimeout(re)},le=(e,t,n)=>{I(l,Z(l).map(r=>r.id===e?{...r,running:t===`system`&&n.includes(`exited`)?!1:r.running,lines:[...r.lines,{stream:t,text:n}].slice(-500)}:r),!0)},ue=(e,t,n)=>{I(l,Z(l).map(r=>r.id===e?{...r,running:!1,failed:t,collapsed:!0,lines:[...r.lines,{stream:`system`,text:n}].slice(-500)}:r),!0)},de=({id:e,title:n,command:r,args:i,env:a,type:o,track:s=!0,onSuccess:c,onFailure:u})=>{if(Z(l).some(t=>t.id===e))throw Error(`cannot start ${e}: terminal already exists`);let d=`COD_TASK_EXIT ${e} `,f=`set +e\n(\n${r}\n)\ncode=$?\necho "${d}$code"\nexit 0`,p=s?f:r;I(l,[...Z(l),{id:e,title:n,kind:`task`,running:!0,started:!0,failed:!1,collapsed:!0,lines:[]}],!0);let m;try{m=t.session.spawnCommand(e,p,{type:o??`echopty`,args:i??[`-lc`,p],env:a,untracked:!s,resolveOnOutput:e=>e.includes(`${d}0`),rejectOnOutput:e=>{let t=e.match(RegExp(`${d}(\\d+)`));if(!(!t||t[1]===`0`))return Error(`${n} exited with code ${t[1]}`)}})}catch(t){let n=t instanceof Error?t:Error(String(t));ue(e,!0,`\nTask failed to start: ${n.message}\n`),u?.(n);return}m?.then(()=>{ue(e,!1,`
|
|
1134
|
+
Task completed successfully.
|
|
1135
|
+
`),c?.()}).catch(t=>{ue(e,!0,`\nTask failed: ${t.message}\n`),u?.(t)})},fe=e=>{I(c,e,!0),p(e)},pe=e=>{I(l,Z(l).map(t=>t.id===e?{...t,collapsed:!t.collapsed}:t),!0)},me=(e,n)=>{t.session?.input(e,n)};var he=qi(),ge=Mn(he);ui(ge,()=>ne);var _e=z(ge,2);Wi(_e,{get terminals(){return Z(l)},get open(){return Z(s)},get activeTab(){return Z(c)},onClose:m,onSelectTab:fe,onToggleTask:pe,onNewTerminal:se,onInput:me});var ve=z(_e,2);let ye;var be=R(ve),xe=R(be);ni(xe,17,()=>Z(u),e=>e.id,(e,t)=>{var n=Gi(),r=R(n),i=R(r,!0);k(r),k(n),Yn(()=>{bi(n,`title`,Z(t).title),Gr(i,Z(t).title)}),Lr(`click`,n,()=>ce(Z(t))),$(e,n)});var Se=z(xe,2),Ce=e=>{var t=Ki();Lr(`click`,t,oe),$(e,t)};Zr(Se,e=>{Z(d)&&Z(u).length===0&&e(Ce)});var we=z(Se,2);let Te;k(be),k(ve);var Ee=z(ve,2);let De;var Oe=R(Ee);k(Ee),Yn(()=>{ye=gi(ve,1,`bar-anchor svelte-1ywbbn9`,null,ye,{"force-expand":Z(i)}),Te=gi(we,1,`app-entry m3-layer svelte-1ywbbn9`,null,Te,{alive:Z(s)||Z(l).length>0}),De=gi(Ee,1,`loader svelte-1ywbbn9`,null,De,{hidden:!Z(i)}),bi(Oe,`src`,Ai)}),Lr(`click`,we,()=>p()),$(e,he),at()}Rr([`click`]);const Xi=e=>{let{document:t,HTMLButtonElement:n,HTMLInputElement:r,HTMLLabelElement:i}=e,a=[],o=[],s=e=>{if(e instanceof n&&e.disabled||e instanceof r&&e.disabled)return!1;if(e instanceof i){let t=e.control;if(t instanceof r&&t.disabled)return!1}return!0},c=(n,r,i,a,o)=>{if(e.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let s=Math.hypot(Math.max(r,a-r),Math.max(i,o-i))*2.5,c=Math.max(Math.min(Math.log(s)*50,600),200),l=t.createElementNS(`http://www.w3.org/2000/svg`,`radialGradient`);l.id=`ripple-${Date.now()}-${Math.random().toString(36).slice(2)}`;for(let{offset:e,opacity:n}of[{offset:`0%`,opacity:`0.12`},{offset:`70%`,opacity:`0.12`},{offset:`100%`,opacity:`0`}]){let r=t.createElementNS(`http://www.w3.org/2000/svg`,`stop`);r.setAttribute(`offset`,e),r.setAttribute(`stop-color`,`currentColor`),r.setAttribute(`stop-opacity`,n),l.appendChild(r)}let u=t.createElementNS(`http://www.w3.org/2000/svg`,`circle`);u.setAttribute(`cx`,`${r}`),u.setAttribute(`cy`,`${i}`),u.setAttribute(`r`,`0`),u.setAttribute(`fill`,`url(#${l.id})`);let d=t.createElementNS(`http://www.w3.org/2000/svg`,`animate`);d.setAttribute(`attributeName`,`r`),d.setAttribute(`from`,`0`),d.setAttribute(`to`,`${s/2}`),d.setAttribute(`dur`,`${c}ms`),d.setAttribute(`fill`,`freeze`),d.setAttribute(`calcMode`,`spline`),d.setAttribute(`keySplines`,`0.4 0, 0.2 1`),u.appendChild(d);let f=t.createElementNS(`http://www.w3.org/2000/svg`,`svg`);return f.classList.add(`active-ripple`),f.style.cssText=[`position: absolute`,`inset: 0`,`width: 100%`,`height: 100%`,`overflow: hidden`,`border-radius: inherit`,`pointer-events: none`].join(`;`),f.appendChild(l),f.appendChild(u),n.appendChild(f),()=>{let n=t.createElementNS(`http://www.w3.org/2000/svg`,`animate`);n.setAttribute(`attributeName`,`opacity`),n.setAttribute(`from`,`1`),n.setAttribute(`to`,`0`),n.setAttribute(`dur`,`800ms`),n.setAttribute(`fill`,`freeze`),n.setAttribute(`calcMode`,`spline`),n.setAttribute(`keySplines`,`0.4 0, 0.2 1`),u.appendChild(n),n.beginElement(),e.setTimeout(()=>f.remove(),800)}};t.documentElement.classList.add(`js`),t.addEventListener(`pointerdown`,e=>{if(e.button!==0)return;let t=e.target?.closest(`.m3-layer`);if(!t||!s(t))return;let n=t.getBoundingClientRect(),r=c(t,e.clientX-n.left,e.clientY-n.top,n.width,n.height);r&&a.push(r)});let l=()=>{for(let e of a)e();a.length=0};t.addEventListener(`pointerup`,l),t.addEventListener(`dragend`,l),t.addEventListener(`keydown`,e=>{if(e.repeat)return;let t=e.target?.closest(`.m3-layer`);if(!t||!s(t)||!(e.key===`Enter`||e.key===` `&&t.tagName===`BUTTON`))return;let n=t.getBoundingClientRect(),r=c(t,n.width/2,n.height/2,n.width,n.height);r&&o.push(r)}),t.addEventListener(`keyup`,()=>{for(let e of o)e();o.length=0})},Zi=(t,n,r)=>{let{document:a}=n;a.title=`New Tab`;let o=a.createElement(`style`);o.textContent=e+i,a.head.appendChild(o),Xi(n),Kr(Yi,{target:a.body,props:{uid:t,appWindow:n,session:r}})},Qi=e=>{let t=new Map;return{start(e,n={}){if(t.has(e))throw Error(`spawn id already running: ${e}`);return new Promise((r,i)=>{t.set(e,{output:``,resolve:r,reject:i,resolveOnOutput:n.resolveOnOutput??(()=>!1),rejectOnOutput:n.rejectOnOutput??(()=>void 0)})})},handleOutput(n,r){let i=r?.id,a=i?t.get(i):void 0;if(!a){e(n,r?.data??r,i);return}let o=String(r?.data??``);a.output+=o,e(n,o,i);let s=a.rejectOnOutput(o);if(s){t.delete(i),a.reject(s);return}a.resolveOnOutput(o)&&(t.delete(i),a.resolve())},handleExit(e){let n=e?.id,r=n?t.get(n):void 0;if(!n||!r)return;t.delete(n);let i=e?.data,a=typeof i==`number`?i:i?.code??i?.exitCode??i?.status,o=typeof i==`number`?null:i?.signal;if(a===0&&!o){r.resolve();return}r.reject(Error(`${n} exited with code ${a??`unknown`} signal ${o??`null`}: ${r.output}`))}}},$i=(e,t,n)=>{let r=new WebSocket(`wss://scalinghub.codehs.com/user/${e}/spawn/?watch=true&EIO=3&transport=websocket`),i=!1,a={width:1100,height:800},o,s=new Promise(e=>{o=e}),c=(e,t)=>{if(!i||r.readyState!==WebSocket.OPEN)throw Error(`spawn socket is not open; cannot send ${e}`);r.send(`42${JSON.stringify([e,t])}`)};return t.setInterval(()=>{i&&r.readyState===WebSocket.OPEN&&c(`keepalive`,null)},2e4),r.addEventListener(`message`,e=>{if(typeof e.data==`string`){if(e.data.startsWith(`0`)){r.send(`40`);return}if(e.data===`40`){i=!0,o();return}if(e.data.startsWith(`42`)){let[t,r]=JSON.parse(e.data.slice(2));t===`stdout`?n.onStdout?.(r):t===`stderr`?n.onStderr?.(r):t===`exit`?n.onExit?.(r):t===`transferComplete`&&n.onTransferComplete?.(r);return}e.data===`2`&&r.send(`3`)}}),r.addEventListener(`close`,()=>{i=!1}),{ready:s,spawn(e){c(`spawn`,e)},kill(e){c(`kill`,{id:e})},input(e,t){c(`stdin`,{id:e,data:t})},resize(e,t){a={width:Math.max(1,Math.round(e)),height:Math.max(1,Math.round(t))},c(`resize`,{w:a.width,h:a.height})},transfer(e){c(`transfer`,e)}}},ea=(e,t,n=()=>{})=>{let r=n,i=Qi((e,t,n)=>{r(e,t,n)}),a=[],o=$i(e,t,{onStdout:e=>i.handleOutput(`stdout`,e),onStderr:e=>i.handleOutput(`stderr`,e),onExit:e=>i.handleExit(e),onTransferComplete:()=>a.shift()?.()});return{ready:o.ready,setOutputHandler(e){r=e},spawnCommand:(e,t,n={})=>{let r=n.untracked?void 0:i.start(e,n);return o.spawn({cmd:`bash`,args:n.args??[`-lc`,t],id:e,options:{type:n.type??`normal`,env:n.env}}),r},kill(e){o.kill(e)},input(e,t){o.input(e,t)},resize(e,t){o.resize(e,t)},transfer(e){let t=new Promise(e=>{a.push(e)});return o.transfer(e),t}}},ta=(Math.random()*1e5).toFixed(0),na=fetch(`https://scalinghub.codehs.com/hub/api/spinup/${ta}/config/default`,{credentials:`include`}),ra=document.createElement(`style`);ra.textContent=e+t,document.head.appendChild(ra);const ia=document.createElement(`button`);ia.innerHTML=n,ia.disabled=!0;const aa=document.createElement(`a`);aa.innerHTML=`Made by <span>${r} Abundance</span>, the makers of <u>0K</u>`,aa.href=`https://cdn.jsdelivr.net/gh/abndnce/b0k@main/jsdelivr/index.svg`,aa.target=`_blank`,document.body.replaceChildren(ia,aa),na.then(async()=>{let e=ea(ta,window);await e.ready,ia.disabled=!1,ia.onclick=()=>{let t=window.open(`about:blank`,`_blank`);if(!t)throw Error(`failed to open`);Zi(ta,t,e)}});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gadidae",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"description": "cod",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"exports": {
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"typescript": "^6.0.3"
|
|
24
24
|
},
|
|
25
25
|
"inlinedDependencies": {
|
|
26
|
+
"clsx": "2.1.1",
|
|
26
27
|
"esm-env": "1.2.2",
|
|
27
28
|
"svelte": "5.55.9"
|
|
28
29
|
},
|