diff --git a/assets/index-6f8b05aa.css b/assets/index-6f8b05aa.css new file mode 100644 index 0000000..2f1bd51 --- /dev/null +++ b/assets/index-6f8b05aa.css @@ -0,0 +1 @@ +.mr-6{margin-right:1.5rem}.pb-2{padding-bottom:.5rem}.pl-12{padding-left:3rem}.pl-24{padding-left:6rem}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity))}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-48{margin-left:12rem;margin-right:12rem}.mx-auto{margin-left:auto;margin-right:auto}.my-48{margin-top:12rem;margin-bottom:12rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.mr-5{margin-right:1.25rem}.mt-12{margin-top:3rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-sm{max-width:24rem}.flex-grow,.grow{flex-grow:1}.border-spacing-y-4{--tw-border-spacing-y: 1rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.fill-orange-300{fill:#fdba74}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-0{outline-width:0px}.ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}:is([dir=rtl] .rtl\:border-l){border-left-width:1px}:is([dir=rtl] .rtl\:border-r-0){border-right-width:0px}@media (prefers-reduced-motion: no-preference){@keyframes pulse{50%{opacity:.5}}.motion-safe\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 1024px){.lg\:w-1\/5{width:20%}.lg\:w-4\/5{width:80%}.lg\:flex-row{flex-direction:row}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:hidden{display:none}} diff --git a/assets/index-74ed96eb.css b/assets/index-74ed96eb.css deleted file mode 100644 index 58c1f07..0000000 --- a/assets/index-74ed96eb.css +++ /dev/null @@ -1 +0,0 @@ -.pb-2{padding-bottom:.5rem}.pl-12{padding-left:3rem}.pl-24{padding-left:6rem}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity))}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-48{margin-left:12rem;margin-right:12rem}.mx-auto{margin-left:auto;margin-right:auto}.my-48{margin-top:12rem;margin-bottom:12rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.mr-5{margin-right:1.25rem}.mr-6{margin-right:1.5rem}.mt-12{margin-top:3rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-sm{max-width:24rem}.flex-grow,.grow{flex-grow:1}.border-spacing-y-4{--tw-border-spacing-y: 1rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.fill-orange-300{fill:#fdba74}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-0{outline-width:0px}.ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}:is([dir=rtl] .rtl\:border-l){border-left-width:1px}:is([dir=rtl] .rtl\:border-r-0){border-right-width:0px}@media (prefers-reduced-motion: no-preference){@keyframes pulse{50%{opacity:.5}}.motion-safe\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 1024px){.lg\:w-1\/5{width:20%}.lg\:w-4\/5{width:80%}.lg\:flex-row{flex-direction:row}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:hidden{display:none}} diff --git a/assets/index-6a83c016.js b/assets/index-d275ae1d.js similarity index 96% rename from assets/index-6a83c016.js rename to assets/index-d275ae1d.js index 4df0f66..67fd3ce 100644 --- a/assets/index-6a83c016.js +++ b/assets/index-d275ae1d.js @@ -53,7 +53,7 @@ var Yn=Object.defineProperty;var Dn=(s,e,r)=>e in s?Yn(s,e,{enumerable:!0,config `));return}var oe=0,Ne=function(){if(oe=V){Ot(u,"Invalid argument: "+p.argString.substring(b));return}for(var Z=0;Z<=V-R;Z++){var $e=String.fromCharCode(R+Z);delete g.marks[$e]}}else{Ot(u,"Invalid argument: "+P+"-");return}}else delete g.marks[I]}}},ei=new an;function An(u,p,g,y,b,I,P,M,R){u.state.vim.exMode=!0;var V=!1,Z,$e,Pe;function Oe(){u.operation(function(){for(;!V;)oe(),Re();He()})}function oe(){var Ze=u.getRange(I.from(),I.to()),yt=Ze.replace(P,M),Dt=I.to().line;I.replace(yt),$e=I.to().line,b+=$e-Dt,Pe=$e1&&(pn(u,g,g.insertModeRepeat-1,!0),g.lastEditInputState.repeatOverride=g.insertModeRepeat),delete g.insertModeRepeat,g.insertMode=!1,p||u.setCursor(u.getCursor().line,u.getCursor().ch-1),u.setOption("keyMap","vim"),u.setOption("disableInput",!0),u.toggleOverwrite(!1),b.setText(P.changes.join("")),s.signal(u,"vim-mode-change",{mode:"normal"}),y.isRecording&&Qn(y)}function cn(u){o.unshift(u)}function Pn(u,p,g,y,b){var I={keys:u,type:p};I[p]=g,I[p+"Args"]=y;for(var P in b)I[P]=b[P];cn(I)}mt("insertModeEscKeysTimeout",200,"number"),s.keyMap["vim-insert"]={fallthrough:["default"],attach:d,detach:f,call:m},s.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:d,detach:f};function Tn(u,p,g,y){var b=Ye.registerController.getRegister(y);if(y==":"){b.keyBuffer[0]&&ei.processCommand(u,b.keyBuffer[0]),g.isPlaying=!1;return}var I=b.keyBuffer,P=0;g.isPlaying=!0,g.replaySearchQueries=b.searchQueries.slice(0);for(var M=0;M|<\w+>|./.exec(R),Z=V[0],R=R.substring(V.index+Z.length),Tt.handleKey(u,Z,"macro"),p.insertMode){var $e=b.insertModeChanges[P++].changes;Ye.macroModeState.lastInsertModeChanges.changes=$e,On(u,$e,1),Ci(u)}g.isPlaying=!1}function Ln(u,p){if(!u.isPlaying){var g=u.latestRegister,y=Ye.registerController.getRegister(g);y&&y.pushText(p)}}function Qn(u){if(!u.isPlaying){var p=u.latestRegister,g=Ye.registerController.getRegister(p);g&&g.pushInsertModeChanges&&g.pushInsertModeChanges(u.lastInsertModeChanges)}}function Rn(u,p){if(!u.isPlaying){var g=u.latestRegister,y=Ye.registerController.getRegister(g);y&&y.pushSearchQuery&&y.pushSearchQuery(p)}}function hn(u,p){var g=Ye.macroModeState,y=g.lastInsertModeChanges;if(!g.isPlaying)for(var b=u.state.vim;p;){if(y.expectCursorActivityForChange=!0,y.ignoreCount>1)y.ignoreCount--;else if(p.origin=="+input"||p.origin=="paste"||p.origin===void 0){var I=u.listSelections().length;I>1&&(y.ignoreCount=I);var P=p.text.join(` `);if(y.maybeReset&&(y.changes=[],y.maybeReset=!1),P)if(u.state.overwrite&&!/\n/.test(P))y.changes.push([P]);else{if(P.length>1){var M=b&&b.insertEnd&&b.insertEnd.find(),R=u.getCursor();if(M&&M.line==R.line){var V=M.ch-R.ch;V>0&&V",kt(y,g))}else p.insertMode||(p.lastHPos=u.getCursor().ch)}function Wr(u){this.keyName=u}function dn(u){var p=Ye.macroModeState,g=p.lastInsertModeChanges,y=s.keyName(u);if(!y)return;function b(){return g.maybeReset&&(g.changes=[],g.maybeReset=!1),g.changes.push(new Wr(y)),!0}(y.indexOf("Delete")!=-1||y.indexOf("Backspace")!=-1)&&s.lookupKey(y,"vim-insert",b)}function pn(u,p,g,y){var b=Ye.macroModeState;b.isPlaying=!0;var I=!!p.lastEditActionCommand,P=p.inputState;function M(){I?ui.processAction(u,p,p.lastEditActionCommand):ui.evalInput(u,p)}function R(Z){if(b.lastInsertModeChanges.changes.length>0){Z=p.lastEditActionCommand?Z:1;var $e=b.lastInsertModeChanges;On(u,$e.changes,Z)}}if(p.inputState=p.lastEditInputState,I&&p.lastEditActionCommand.interlaceInsertRepeat)for(var V=0;V"&&!b.insertMode&&!b.visualMode&&P&&b.status=="")Lt(u);else if(I||!P||u.inVirtualSelectionMode)y=Tt.handleKey(u,p,g);else{var M=Fr(b),R=b.inputState.changeQueueList||[];u.operation(function(){u.curOp.isVimOp=!0;var V=0;u.forEachSelection(function(){u.state.vim.inputState.changeQueue=R[V];var Z=u.getCursor("head"),$e=u.getCursor("anchor"),Pe=qe(Z,$e)?0:-1,Oe=qe(Z,$e)?-1:0;Z=wt(Z,0,Pe),$e=wt($e,0,Oe),u.state.vim.sel.head=Z,u.state.vim.sel.anchor=$e,y=Tt.handleKey(u,p,g),u.virtualSelection&&(R[V]=u.state.vim.inputState.changeQueue,u.state.vim=Fr(M)),V++}),u.curOp.cursorActivity&&!y&&(u.curOp.cursorActivity=!1),u.state.vim=b,b.inputState.changeQueueList=R,b.inputState.changeQueue=null},!0)}return y&&!b.visualMode&&!b.insert&&b.visualMode!=u.somethingSelected()&&fn(u,b),y}return hr(),Tt}function indexFromPos(s,e){var r=e.ch,n=e.line+1;n<1&&(n=1,r=0),n>s.lines&&(n=s.lines,r=Number.MAX_VALUE);var o=s.line(n);return Math.min(o.from+Math.max(0,r),o.to)}function posFromIndex(s,e){let r=s.lineAt(e);return{line:r.number-1,ch:e-r.from}}class Pos{constructor(e,r){this.line=e,this.ch=r}}function on(s,e,r){if(s.addEventListener)s.addEventListener(e,r,!1);else{var n=s._handlers||(s._handlers={});n[e]=(n[e]||[]).concat(r)}}function off(s,e,r){if(s.removeEventListener)s.removeEventListener(e,r,!1);else{var n=s._handlers,o=n&&n[e];if(o){var a=o.indexOf(r);a>-1&&(n[e]=o.slice(0,a).concat(o.slice(a+1)))}}}function signal(s,e,...r){var n,o=(n=s._handlers)===null||n===void 0?void 0:n[e];if(o)for(var a=0;a({anchor:posFromIndex(e,r.anchor),head:posFromIndex(e,r.head)}))}setSelections(e,r){var n=this.cm6.state.doc,o=e.map(a=>EditorSelection.range(indexFromPos(n,a.anchor),indexFromPos(n,a.head)));this.cm6.dispatch({selection:EditorSelection.create(o,r)})}setSelection(e,r,n){var o=this.cm6.state.doc,a=[EditorSelection.range(indexFromPos(o,e),indexFromPos(o,r))];this.cm6.dispatch({selection:EditorSelection.create(a,0)}),n&&n.origin=="*mouse"&&this.onBeforeEndOperation()}getLine(e){var r=this.cm6.state.doc;return e<0||e>=r.lines?"":this.cm6.state.doc.line(e+1).text}getLineHandle(e){return this.$lineHandleChanges||(this.$lineHandleChanges=[]),{row:e,index:this.indexFromPos(new Pos(e,0))}}getLineNumber(e){var r=this.$lineHandleChanges;if(!r)return null;for(var n=e.index,o=0;o({from:o.from,to:o.to,insert:e[a]||""}));dispatchChange(this,{changes:n})}getSelection(){return this.getSelections().join(` `)}getSelections(){var e=this.cm6;return e.state.selection.ranges.map(r=>e.state.sliceDoc(r.from,r.to))}somethingSelected(){return this.cm6.state.selection.ranges.some(e=>!e.empty)}getInputField(){return this.cm6.contentDOM}clipPos(e){var r=this.cm6.state.doc,n=e.ch,o=e.line+1;o<1&&(o=1,n=0),o>r.lines&&(o=r.lines,n=Number.MAX_VALUE);var a=r.line(o);return n=Math.min(Math.max(0,n),a.to-a.from),new Pos(o-1,n)}getValue(){return this.cm6.state.doc.toString()}setValue(e){var r=this.cm6;return r.dispatch({changes:{from:0,to:r.state.doc.length,insert:e},selection:EditorSelection.range(0,0)})}focus(){return this.cm6.focus()}blur(){return this.cm6.contentDOM.blur()}defaultTextHeight(){return this.cm6.defaultLineHeight}findMatchingBracket(e){var r=this.cm6.state,n=indexFromPos(r.doc,e),o=matchBrackets(r,n+1,-1);return o&&o.end?{to:posFromIndex(r.doc,o.end.from)}:(o=matchBrackets(r,n,1),o&&o.end?{to:posFromIndex(r.doc,o.end.from)}:{to:void 0})}scanForBracket(e,r,n,o){return scanForBracket(this,e,r,n,o)}indentLine(e,r){r?this.indentMore():this.indentLess()}indentMore(){indentMore(this.cm6)}indentLess(){indentLess(this.cm6)}execCommand(e){e=="indentAuto"?CodeMirror.commands.indentAuto(this):e=="goLineLeft"?cursorLineBoundaryBackward(this.cm6):e=="goLineRight"?(cursorLineBoundaryForward(this.cm6),cursorCharBackward(this.cm6)):console.log(e+" is not implemented")}setBookmark(e,r){var n=r!=null&&r.insertLeft?1:-1,o=this.indexFromPos(e),a=new Marker(this,o,n);return a}addOverlay({query:e}){let r=new SearchQuery({regexp:!0,search:e.source,caseSensitive:!/i/.test(e.flags)});if(r.valid){r.forVim=!0,this.cm6Query=r;let n=setSearchQuery.of(r);return this.cm6.dispatch({effects:n}),r}}removeOverlay(e){if(!this.cm6Query)return;this.cm6Query.forVim=!1;let r=setSearchQuery.of(this.cm6Query);this.cm6.dispatch({effects:r})}getSearchCursor(e,r){var n=this,o=null,a=null;r.ch==null&&(r.ch=Number.MAX_VALUE);var l=indexFromPos(n.cm6.state.doc,r),c=e.source.replace(/(\\.|{(?:\d+(?:,\d*)?|,\d+)})|[{}]/g,function(v,A){return A||"\\"+v});function h(v,A=0,T=v.length){return new RegExpCursor(v,c,{ignoreCase:e.ignoreCase},A,T)}function f(v){var A=n.cm6.state.doc;if(v>A.length)return null;let T=h(A,v).next();return T.done?null:T.value}var d=1e4;function m(v,A){var T=n.cm6.state.doc;for(let B=1;;B++){let Y=Math.max(v,A-B*d),F=h(T,Y,A),ke=null;for(;!F.next().done;)ke=F.value;if(ke&&(Y==v||ke.from>Y+10))return ke;if(Y==v)return null}}return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(v){var A=n.cm6.state.doc;if(v){let T=o?o.from==o.to?o.to-1:o.from:l;o=m(0,T)}else{let T=o?o.from==o.to?o.to+1:o.to:l;o=f(T)}return a=o&&{from:posFromIndex(A,o.from),to:posFromIndex(A,o.to),match:o.match},o&&o.match},from:function(){return a==null?void 0:a.from},to:function(){return a==null?void 0:a.to},replace:function(v){o&&(dispatchChange(n,{changes:{from:o.from,to:o.to,insert:v}}),o.to=o.from+v.length,a&&(a.to=posFromIndex(n.cm6.state.doc,o.to)))}}}findPosV(e,r,n,o){let{cm6:a}=this;const l=a.state.doc;let c=n=="page"?a.dom.clientHeight:0;const h=indexFromPos(l,e);let f=EditorSelection.range(h,h,o),d=Math.round(Math.abs(r));for(let v=0;v0,c):n=="line"&&(f=a.moveVertically(f,r>0));let m=posFromIndex(l,f.head);return(r<0&&f.head==0&&o!=0&&e.line==0&&e.ch!=0||r>0&&f.head==l.length&&m.ch!=o&&e.line==m.line)&&(m.hitSide=!0),m}charCoords(e,r){var n=this.cm6.contentDOM.getBoundingClientRect(),o=indexFromPos(this.cm6.state.doc,e),a=this.cm6.coordsAtPos(o),l=-n.top;return{left:((a==null?void 0:a.left)||0)-n.left,top:((a==null?void 0:a.top)||0)+l,bottom:((a==null?void 0:a.bottom)||0)+l}}coordsChar(e,r){var n=this.cm6.contentDOM.getBoundingClientRect(),o=this.cm6.posAtCoords({x:e.left+n.left,y:e.top+n.top})||0;return posFromIndex(this.cm6.state.doc,o)}getScrollInfo(){var e=this.cm6.scrollDOM;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight,width:e.scrollWidth,clientHeight:e.clientHeight,clientWidth:e.clientWidth}}scrollTo(e,r){e!=null&&(this.cm6.scrollDOM.scrollLeft=e),r!=null&&(this.cm6.scrollDOM.scrollTop=r)}scrollIntoView(e,r){if(e){var n=this.indexFromPos(e);this.cm6.dispatch({effects:EditorView.scrollIntoView(n)})}else this.cm6.dispatch({scrollIntoView:!0,userEvent:"scroll"})}getWrapperElement(){return this.cm6.dom}getMode(){return{name:this.getOption("mode")}}setSize(e,r){this.cm6.dom.style.width=e+4+"px",this.cm6.dom.style.height=r+"px",this.refresh()}refresh(){this.cm6.measure()}destroy(){this.removeOverlay()}getLastEditEnd(){return this.posFromIndex(this.$lastChangeEndOffset)}onChange(e){this.$lineHandleChanges&&this.$lineHandleChanges.push(e);for(let n in this.marks)this.marks[n].update(e.changes);this.virtualSelection&&(this.virtualSelection.ranges=this.virtualSelection.ranges.map(n=>n.map(e.changes)));var r=this.curOp=this.curOp||{};e.changes.iterChanges((n,o,a,l,c)=>{(r.$changeStart==null||r.$changeStart>a)&&(r.$changeStart=a),this.$lastChangeEndOffset=l;var h={text:c.toJSON()};r.lastChange?r.lastChange.next=r.lastChange=h:r.lastChange=r.change=h},!0),r.changeHandlers||(r.changeHandlers=this._handlers.change&&this._handlers.change.slice())}onSelectionChange(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._handlers.cursorActivity&&this._handlers.cursorActivity.slice()),this.curOp.cursorActivity=!0}operation(e){this.curOp||(this.curOp={$d:0}),this.curOp.$d++;try{var r=e()}finally{this.curOp&&(this.curOp.$d--,this.curOp.$d||this.onBeforeEndOperation())}return r}onBeforeEndOperation(){var e=this.curOp,r=!1;e&&(e.change&&signalTo(e.changeHandlers,this,e.change),e&&e.cursorActivity&&(signalTo(e.cursorActivityHandlers,this,null),e.isVimOp&&(r=!0)),this.curOp=null),r&&this.scrollIntoView()}moveH(e,r){if(r=="char"){var n=this.getCursor();this.setCursor(n.line,n.ch+e)}}setOption(e,r){switch(e){case"keyMap":this.state.keyMap=r;break}}getOption(e){switch(e){case"firstLineNumber":return 1;case"tabSize":return this.cm6.state.tabSize||4;case"readonly":return this.cm6.state.readOnly;case"indentWithTabs":return this.cm6.state.facet(indentUnit)==" ";case"indentUnit":return this.cm6.state.facet(indentUnit).length||2;case"keyMap":return this.state.keyMap||"vim"}}toggleOverwrite(e){this.state.overwrite=e}getTokenTypeAt(e){var r,n=this.indexFromPos(e),o=ensureSyntaxTree(this.cm6.state,n),a=o==null?void 0:o.resolve(n),l=((r=a==null?void 0:a.type)===null||r===void 0?void 0:r.name)||"";return/comment/i.test(l)?"comment":/string/i.test(l)?"string":""}overWriteSelection(e){var r=this.cm6.state.doc,n=this.cm6.state.selection,o=n.ranges.map(a=>{if(a.empty){var l=a.to1}virtualSelectionMode(){return!!this.virtualSelection}forEachSelection(e){var r=this.cm6.state.selection;this.virtualSelection=EditorSelection.create(r.ranges,r.mainIndex);for(var n=0;ndispatchChange(s,e)})},indentAuto:function(s){indentSelection(s.cm6)}};CodeMirror.defineOption=function(s,e,r){};CodeMirror.isWordChar=function(s){return wordChar.test(s)};CodeMirror.keys=keys;CodeMirror.keyMap={};CodeMirror.addClass=function(){};CodeMirror.rmClass=function(){};CodeMirror.e_preventDefault=function(s){s.preventDefault()};CodeMirror.e_stop=function(s){var e,r;(e=s==null?void 0:s.stopPropagation)===null||e===void 0||e.call(s),(r=s==null?void 0:s.preventDefault)===null||r===void 0||r.call(s)};CodeMirror.keyName=function(s){var e=s.key;if(!ignoredKeys[e]){e=="Escape"&&(e="Esc"),e==" "&&(e="Space"),e.length>1&&(e=e.replace(/Numpad|Arrow/,"")),e.length==1&&(e=e.toUpperCase());var r="";return s.ctrlKey&&(r+="Ctrl-"),s.altKey&&(r+="Alt-"),(r||e.length>1)&&s.shiftKey&&(r+="Shift-"),r+=e,r}};CodeMirror.vimKey=function(e){var r=e.key;if(!ignoredKeys[r]){r.length>1&&r[0]=="n"&&(r=r.replace("Numpad","")),r=specialKey[r]||r;var n="";return e.ctrlKey&&(n+="C-"),e.altKey&&(n+="A-"),e.metaKey&&(n+="M-"),CodeMirror.isMac&&e.altKey&&!e.metaKey&&!e.ctrlKey&&(n=n.slice(2)),(n||r.length>1)&&e.shiftKey&&(n+="S-"),n+=r,n.length>1&&(n="<"+n+">"),n}};CodeMirror.lookupKey=function(e,r,n){var o=CodeMirror.keys[e];o&&n(o)};CodeMirror.on=on;CodeMirror.off=off;CodeMirror.signal=signal;CodeMirror.findMatchingTag=findMatchingTag;CodeMirror.findEnclosingTag=findEnclosingTag;function dialogDiv(s,e,r){var n=document.createElement("div");return n.appendChild(e),n}function closeNotification(s,e){s.state.currentNotificationClose&&s.state.currentNotificationClose(),s.state.currentNotificationClose=e}function openNotification(s,e,r){closeNotification(s,c);var n=dialogDiv(s,e,r&&r.bottom),o=!1,a,l=r&&typeof r.duration<"u"?r.duration:5e3;function c(){o||(o=!0,clearTimeout(a),n.remove(),hideDialog(s,n))}return n.onclick=function(h){h.preventDefault(),c()},showDialog(s,n),l&&(a=setTimeout(c,l)),c}function showDialog(s,e){var r=s.state.dialog;s.state.dialog=e,e&&r!==e&&(r&&r.contains(document.activeElement)&&s.focus(),r&&r.parentElement?r.parentElement.replaceChild(e,r):r&&r.remove(),CodeMirror.signal(s,"dialog"))}function hideDialog(s,e){s.state.dialog==e&&(s.state.dialog=null,CodeMirror.signal(s,"dialog"))}function openDialog(s,e,r,n){n||(n={}),closeNotification(s,void 0);var o=dialogDiv(s,e,n.bottom),a=!1;showDialog(s,o);function l(h){if(typeof h=="string")c.value=h;else{if(a)return;a=!0,hideDialog(s,o),s.state.dialog||s.focus(),n.onClose&&n.onClose(o)}}var c=o.getElementsByTagName("input")[0];return c&&(n.value&&(c.value=n.value,n.selectValueOnOpen!==!1&&c.select()),n.onInput&&CodeMirror.on(c,"input",function(h){n.onInput(h,c.value,l)}),n.onKeyUp&&CodeMirror.on(c,"keyup",function(h){n.onKeyUp(h,c.value,l)}),CodeMirror.on(c,"keydown",function(h){n&&n.onKeyDown&&n.onKeyDown(h,c.value,l)||(h.keyCode==13&&r(c.value),(h.keyCode==27||n.closeOnEnter!==!1&&h.keyCode==13)&&(c.blur(),CodeMirror.e_stop(h),l()))}),n.closeOnBlur!==!1&&CodeMirror.on(c,"blur",function(){setTimeout(function(){document.activeElement!==c&&l()})}),c.focus()),l}var matching={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function bracketRegex(s){return s&&s.bracketRegex||/[(){}[\]]/}function scanForBracket(s,e,r,n,o){for(var a=o&&o.maxScanLineLength||1e4,l=o&&o.maxScanLines||1e3,c=[],h=bracketRegex(o),f=r>0?Math.min(e.line+l,s.lastLine()+1):Math.max(s.firstLine()-1,e.line-l),d=e.line;d!=f;d+=r){var m=s.getLine(d);if(m){var v=r>0?0:m.length-1,A=r>0?m.length:-1;if(!(m.length>a))for(d==e.line&&(v=e.ch-(r<0?1:0));v!=A;v+=r){var T=m.charAt(v);if(h.test(T)){var B=matching[T];if(B&&B.charAt(1)==">"==r>0)c.push(T);else if(c.length)c.pop();else return{pos:new Pos(d,v),ch:T}}}}}return d-r==(r>0?s.lastLine():s.firstLine())?!1:null}function findMatchingTag(s,e){}function findEnclosingTag(s,e){var r,n,o=s.cm6.state,a=s.indexFromPos(e);if(a!r.eq(this.cursors[n]))){let r=this.cursorLayer.children;if(r.length!==e.length){this.cursorLayer.textContent="";for(const n of e)this.cursorLayer.appendChild(n.draw())}else e.forEach((n,o)=>n.adjust(r[o]));this.cursors=e}}destroy(){this.cursorLayer.remove()}}const themeSpec={".cm-vimMode .cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-fat-cursor":{position:"absolute",background:"#ff9696",border:"none",whiteSpace:"pre"},"&:not(.cm-focused) .cm-fat-cursor":{background:"none",outline:"solid 1px #ff9696",color:"transparent !important"}},hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(s){let e=s.scrollDOM.getBoundingClientRect();return{left:(s.textDirection==Direction.LTR?e.left:e.right-s.scrollDOM.clientWidth)-s.scrollDOM.scrollLeft,top:e.top-s.scrollDOM.scrollTop}}function measureCursor(s,e,r,n){let o=r.head,a=!1,l=1,c=s.state.vim;if(c&&(!c.insertMode||s.state.overwrite)){if(a=!0,c.visualBlock&&!n)return null;r.anchor1&&(o--,f=e.state.sliceDoc(o,o+1));let d=e.coordsAtPos(o,1);if(!d)return null;let m=getBase(e),v=e.domAtPos(o),A=v?v.node:e.contentDOM;for(;v&&v.node instanceof HTMLElement;)A=v.node,v={node:v.node.childNodes[v.offset],offset:0};if(!(A instanceof HTMLElement)){if(!A.parentNode)return null;A=A.parentNode}let T=getComputedStyle(A),B=d.left;if(!f||f==` -`||f=="\r")f=" ";else if(f==" "){f=" ";var h=e.coordsAtPos(o+1,-1);h&&(B=h.left-(h.left-d.left)/parseInt(T.tabSize))}else/[\uD800-\uDBFF]/.test(f)&&o{e.state.vim&&(e.state.vim.status=""),this.blockCursor.scheduleRedraw(),this.updateStatus()}),this.cm.on("vim-mode-change",r=>{e.state.vim.mode=r.mode,r.subMode&&(e.state.vim.mode+=" block"),e.state.vim.status="",this.blockCursor.scheduleRedraw(),this.updateClass(),this.updateStatus()}),this.cm.on("dialog",()=>{this.cm.state.statusbar?this.updateStatus():s.dispatch({effects:showVimPanel.of(!!this.cm.state.dialog)})}),this.dom=document.createElement("span"),this.dom.style.cssText="position: absolute; right: 10px; top: 1px",this.statusButton=document.createElement("span"),this.statusButton.onclick=r=>{Vim.handleKey(this.cm,"","user"),this.cm.focus()},this.statusButton.style.cssText="cursor: pointer"}update(s){var e;if((s.viewportChanged||s.docChanged)&&this.query&&this.highlight(this.query),s.docChanged&&this.cm.onChange(s),s.selectionSet&&this.cm.onSelectionChange(),s.viewportChanged,this.cm.curOp&&!this.cm.curOp.isVimOp&&this.cm.onBeforeEndOperation(),s.transactions){for(let r of s.transactions)for(let n of r.effects)if(n.is(setSearchQuery))if(!((e=n.value)===null||e===void 0?void 0:e.forVim))this.highlight(null);else{let a=n.value.create();this.highlight(a)}}this.blockCursor.update(s)}updateClass(){const s=this.cm.state;!s.vim||s.vim.insertMode&&!s.overwrite?this.view.scrollDOM.classList.remove("cm-vimMode"):this.view.scrollDOM.classList.add("cm-vimMode")}updateStatus(){let s=this.cm.state.statusbar,e=this.cm.state.vim;if(!s||!e)return;let r=this.cm.state.dialog;if(r)r.parentElement!=s&&(s.textContent="",s.appendChild(r));else{s.textContent="";var n=(e.mode||"normal").toUpperCase();e.insertModeReturn&&(n+="(C-O)"),this.statusButton.textContent=`--${n}--`,s.appendChild(this.statusButton)}this.dom.textContent=e.status,s.appendChild(this.dom)}destroy(){Vim.leaveVimMode(this.cm),this.updateClass(),this.blockCursor.destroy(),delete this.view.cm}highlight(s){if(this.query=s,!s)return this.decorations=Decoration.none;let{view:e}=this,r=new RangeSetBuilder;for(let n=0,o=e.visibleRanges,a=o.length;no[n+1].from-2*HighlightMargin;)c=o[++n].to;s.highlight(e.state,l,c,(h,f)=>{r.add(h,f,matchMark)})}return this.decorations=r.finish()}handleKey(s,e){const r=CodeMirror.vimKey(s),n=this.cm;if(!r)return;let o=n.state.vim;if(!o)return;if(r==""&&!o.insertMode&&!o.visualMode&&this.query){const c=o.searchState_;c&&(n.removeOverlay(c.getOverlay()),c.setOverlay(null))}if(r===""&&!CodeMirror.isMac&&n.somethingSelected())return this.waitForCopy=!0,!0;o.status=(o.status||"")+r;let l=Vim.multiSelectHandleKey(n,r,"user");return o=n.state.vim,!l&&o.insertMode&&n.state.overwrite&&(s.key&&s.key.length==1&&!/\n/.test(s.key)?(l=!0,n.overWriteSelection(s.key)):s.key=="Backspace"&&(l=!0,CodeMirror.commands.cursorCharLeft(n))),l&&(CodeMirror.signal(this.cm,"vim-keypress",r),s.preventDefault(),s.stopPropagation(),this.blockCursor.scheduleRedraw()),this.updateStatus(),!!l}},{eventHandlers:{copy:function(s,e){this.waitForCopy&&(this.waitForCopy=!1,Promise.resolve().then(()=>{var r=this.cm,n=r.state.vim;n&&(n.insertMode?r.setSelection(r.getCursor(),r.getCursor()):r.operation(()=>{r.curOp&&(r.curOp.isVimOp=!0),Vim.handleKey(r,"","user")}))}))},compositionstart:function(s,e){this.useNextTextInput=!0},keypress:function(s,e){this.lastKeydown=="Dead"&&this.handleKey(s,e)},keydown:function(s,e){this.lastKeydown=s.key,this.lastKeydown=="Unidentified"||this.lastKeydown=="Process"||this.lastKeydown=="Dead"?this.useNextTextInput=!0:(this.useNextTextInput=!1,this.handleKey(s,e))}},provide:()=>[EditorView.inputHandler.of((s,e,r,n)=>{var o,a,l=getCM(s);if(!l)return!1;var c=(o=l.state)===null||o===void 0?void 0:o.vim,h=l.state.vimPlugin;return c&&!c.insertMode&&!(!((a=l.curOp)===null||a===void 0)&&a.isVimOp)?(n==="\0\0"||(n.length==1&&h.useNextTextInput&&h.handleKey({key:n,preventDefault:()=>{},stopPropagation:()=>{}}),forceEndComposition(s)),!0):!1})],decorations:s=>s.decorations});function forceEndComposition(s){var e=s.scrollDOM.parentElement;if(e){if(FIREFOX_LINUX){s.contentDOM.textContent="\0\0",s.contentDOM.dispatchEvent(new CustomEvent("compositionend"));return}var r=s.scrollDOM.nextSibling,n=window.getSelection(),o=n&&{anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset};s.scrollDOM.remove(),e.insertBefore(s.scrollDOM,r);try{o&&n&&(n.setPosition(o.anchorNode,o.anchorOffset),o.focusNode&&n.extend(o.focusNode,o.focusOffset))}catch(a){console.error(a)}s.focus(),s.contentDOM.dispatchEvent(new CustomEvent("compositionend"))}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),showVimPanel=StateEffect.define(),vimPanelState=StateField.define({create:()=>!1,update(s,e){for(let r of e.effects)r.is(showVimPanel)&&(s=r.value);return s},provide:s=>showPanel.from(s,e=>e?createVimPanel:null)});function createVimPanel(s){let e=document.createElement("div");e.className="cm-vim-panel";let r=s.cm;return r.state.dialog&&e.appendChild(r.state.dialog),{top:!1,dom:e}}function statusPanel(s){let e=document.createElement("div");e.className="cm-vim-panel";let r=s.cm;return r.state.statusbar=e,r.state.vimPlugin.updateStatus(),{dom:e}}function vim(s={}){return[vimStyle,vimPlugin,hideNativeSelection,s.status?showPanel.of(statusPanel):vimPanelState]}function getCM(s){return s.cm||null}const delay=s=>new Promise((e,r)=>setTimeout(()=>r(new Error("Operation took too long")),s)),tryCatchWrapper=(s,e)=>new Promise((r,n)=>{try{Function(`with (this) {try{${e}} catch (e) {console.log(e)}};`).call(s.api),r(!0)}catch(o){console.log(o),r(!1)}}),tryEvaluate=async(s,e,r=5e3)=>{try{e.evaluations++,await Promise.race([tryCatchWrapper(s,`let i = ${e.evaluations};`+e.candidate),delay(r)])?e.committed=e.candidate:await evaluate(s,e,r)}catch(n){console.log(n)}},evaluate=async(s,e,r=1e3)=>{try{await Promise.race([tryCatchWrapper(s,e.committed),delay(r)]),e.evaluations&&e.evaluations++}catch(n){console.log(n)}},zeroPad=(s,e)=>String(s).padStart(e,"0");class TransportNode extends AudioWorkletNode{constructor(r,n,o){super(r,"transport",n);z(this,"handleMessage",r=>{if(r.data&&r.data.type==="bang"){this.startTime===null&&(this.startTime=r.data.currentTime),this.elapsedTime=r.data.currentTime-this.startTime,this.prevCurrentTime=r.data.currentTime;let{futureTimeStamp:n,timeToNextPulse:o,nextPulsePosition:a}=this.convertTimeToNextBarsBeats(this.elapsedTime);this.nextPulsePosition!==a&&(this.nextPulsePosition=a,setTimeout(()=>{const l=performance.now();this.app.clock.time_position=n,this.$clock.innerHTML=`[${n.bar}:${n.beat}:${zeroPad(n.pulse,"2")}]`,tryEvaluate(this.app,this.app.global_buffer),this.hasBeenEvaluated=!0,this.currentPulsePosition=a;const c=performance.now();this.lastLatencies[this.indexOfLastLatencies]=c-l,this.indexOfLastLatencies=(this.indexOfLastLatencies+1)%this.lastLatencies.length;const h=this.lastLatencies.reduce((f,d)=>f+d)/this.lastLatencies.length;this.executionLatency=h/1e3},(o+this.executionLatency)*1e3))}});this.app=o,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.$clock=document.getElementById("clockviewer"),this.hasBeenEvaluated=!1,this.currentPulsePosition=0,this.nextPulsePosition=-1,this.executionLatency=0,this.lastLatencies=[0,0,0,0,0,0,0,0,0,0],this.indexOfLastLatencies=0,this.startTime=null,this.elapsedTime=0}start(){this.port.postMessage("start")}pause(){this.port.postMessage("pause")}stop(){this.startTime=null,this.elapsedTime=null,this.app.clock.tick=0,this.$clock.innerHTML=`[1 | 1 | ${zeroPad(1,"2")}]`,this.port.postMessage("stop")}convertTimeToBarsBeats(r){const n=60/this.app.clock.bpm,o=r/n,a=this.app.clock.time_signature[0],l=Math.floor(o/a)+1,c=Math.floor(o%a)+1,h=Math.floor(o%1*this.app.clock.ppqn);return this.app.clock.tick++,{bar:l,beat:c,ppqn:h}}convertTimeToNextBarsBeats(r){const n=60/this.app.clock.bpm,o=r/n,a=this.app.clock.time_signature[0];this.currentPulsePosition=o*this.app.clock.ppqn;const l=Math.ceil(this.currentPulsePosition),c=this.app.clock.convertPulseToSecond(this.nextPulsePosition-this.currentPulsePosition),h=this.nextPulsePosition/this.app.clock.ppqn,f=h/a,d={bar:Math.floor(f)+1,beat:Math.floor(h)%a+1,pulse:Math.floor(this.nextPulsePosition)%this.app.clock.ppqn};return this.app.clock.tick++,{futureTimeStamp:d,timeToNextPulse:c,nextPulsePosition:l}}}const TransportProcessor="/assets/TransportProcessor-9e6f56da.js";class Clock{constructor(e,r){z(this,"ctx");z(this,"transportNode");z(this,"bpm");z(this,"time_signature");z(this,"time_position");z(this,"ppqn");z(this,"tick");this.app=e,this.time_position={bar:0,beat:0,pulse:0},this.time_signature=[4,4],this.tick=0,this.bpm=120,this.ppqn=48,this.transportNode=null,this.ctx=r,r.audioWorklet.addModule(TransportProcessor).then(n=>(this.transportNode=new TransportNode(r,{},this.app),this.transportNode.connect(r.destination),n)).catch(n=>{console.log("Error loading TransportProcessor.js:",n)})}get ticks_before_new_bar(){const e=(this.app.clock.beats_since_origin-1)*48+this.time_position.pulse+1;return this.beats_per_bar*this.ppqn*this.time_position.bar+1-e}get beats_per_bar(){return this.time_signature[0]}get beats_since_origin(){return(this.time_position.bar-1)*this.beats_per_bar+this.time_position.beat}get pulses_since_origin(){return this.beats_since_origin*this.ppqn+this.time_position.pulse}get pulse_duration(){return 60/this.bpm/this.ppqn}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e,r;((e=this.transportNode)==null?void 0:e.state)==="running"?console.log("Already started"):(this.app.audioContext.resume(),(r=this.transportNode)==null||r.start())}pause(){var e;(e=this.transportNode)==null||e.pause()}stop(){var e;(e=this.transportNode)==null||e.stop()}}const global_text=` +`||f=="\r")f=" ";else if(f==" "){f=" ";var h=e.coordsAtPos(o+1,-1);h&&(B=h.left-(h.left-d.left)/parseInt(T.tabSize))}else/[\uD800-\uDBFF]/.test(f)&&o{e.state.vim&&(e.state.vim.status=""),this.blockCursor.scheduleRedraw(),this.updateStatus()}),this.cm.on("vim-mode-change",r=>{e.state.vim.mode=r.mode,r.subMode&&(e.state.vim.mode+=" block"),e.state.vim.status="",this.blockCursor.scheduleRedraw(),this.updateClass(),this.updateStatus()}),this.cm.on("dialog",()=>{this.cm.state.statusbar?this.updateStatus():s.dispatch({effects:showVimPanel.of(!!this.cm.state.dialog)})}),this.dom=document.createElement("span"),this.dom.style.cssText="position: absolute; right: 10px; top: 1px",this.statusButton=document.createElement("span"),this.statusButton.onclick=r=>{Vim.handleKey(this.cm,"","user"),this.cm.focus()},this.statusButton.style.cssText="cursor: pointer"}update(s){var e;if((s.viewportChanged||s.docChanged)&&this.query&&this.highlight(this.query),s.docChanged&&this.cm.onChange(s),s.selectionSet&&this.cm.onSelectionChange(),s.viewportChanged,this.cm.curOp&&!this.cm.curOp.isVimOp&&this.cm.onBeforeEndOperation(),s.transactions){for(let r of s.transactions)for(let n of r.effects)if(n.is(setSearchQuery))if(!((e=n.value)===null||e===void 0?void 0:e.forVim))this.highlight(null);else{let a=n.value.create();this.highlight(a)}}this.blockCursor.update(s)}updateClass(){const s=this.cm.state;!s.vim||s.vim.insertMode&&!s.overwrite?this.view.scrollDOM.classList.remove("cm-vimMode"):this.view.scrollDOM.classList.add("cm-vimMode")}updateStatus(){let s=this.cm.state.statusbar,e=this.cm.state.vim;if(!s||!e)return;let r=this.cm.state.dialog;if(r)r.parentElement!=s&&(s.textContent="",s.appendChild(r));else{s.textContent="";var n=(e.mode||"normal").toUpperCase();e.insertModeReturn&&(n+="(C-O)"),this.statusButton.textContent=`--${n}--`,s.appendChild(this.statusButton)}this.dom.textContent=e.status,s.appendChild(this.dom)}destroy(){Vim.leaveVimMode(this.cm),this.updateClass(),this.blockCursor.destroy(),delete this.view.cm}highlight(s){if(this.query=s,!s)return this.decorations=Decoration.none;let{view:e}=this,r=new RangeSetBuilder;for(let n=0,o=e.visibleRanges,a=o.length;no[n+1].from-2*HighlightMargin;)c=o[++n].to;s.highlight(e.state,l,c,(h,f)=>{r.add(h,f,matchMark)})}return this.decorations=r.finish()}handleKey(s,e){const r=CodeMirror.vimKey(s),n=this.cm;if(!r)return;let o=n.state.vim;if(!o)return;if(r==""&&!o.insertMode&&!o.visualMode&&this.query){const c=o.searchState_;c&&(n.removeOverlay(c.getOverlay()),c.setOverlay(null))}if(r===""&&!CodeMirror.isMac&&n.somethingSelected())return this.waitForCopy=!0,!0;o.status=(o.status||"")+r;let l=Vim.multiSelectHandleKey(n,r,"user");return o=n.state.vim,!l&&o.insertMode&&n.state.overwrite&&(s.key&&s.key.length==1&&!/\n/.test(s.key)?(l=!0,n.overWriteSelection(s.key)):s.key=="Backspace"&&(l=!0,CodeMirror.commands.cursorCharLeft(n))),l&&(CodeMirror.signal(this.cm,"vim-keypress",r),s.preventDefault(),s.stopPropagation(),this.blockCursor.scheduleRedraw()),this.updateStatus(),!!l}},{eventHandlers:{copy:function(s,e){this.waitForCopy&&(this.waitForCopy=!1,Promise.resolve().then(()=>{var r=this.cm,n=r.state.vim;n&&(n.insertMode?r.setSelection(r.getCursor(),r.getCursor()):r.operation(()=>{r.curOp&&(r.curOp.isVimOp=!0),Vim.handleKey(r,"","user")}))}))},compositionstart:function(s,e){this.useNextTextInput=!0},keypress:function(s,e){this.lastKeydown=="Dead"&&this.handleKey(s,e)},keydown:function(s,e){this.lastKeydown=s.key,this.lastKeydown=="Unidentified"||this.lastKeydown=="Process"||this.lastKeydown=="Dead"?this.useNextTextInput=!0:(this.useNextTextInput=!1,this.handleKey(s,e))}},provide:()=>[EditorView.inputHandler.of((s,e,r,n)=>{var o,a,l=getCM(s);if(!l)return!1;var c=(o=l.state)===null||o===void 0?void 0:o.vim,h=l.state.vimPlugin;return c&&!c.insertMode&&!(!((a=l.curOp)===null||a===void 0)&&a.isVimOp)?(n==="\0\0"||(n.length==1&&h.useNextTextInput&&h.handleKey({key:n,preventDefault:()=>{},stopPropagation:()=>{}}),forceEndComposition(s)),!0):!1})],decorations:s=>s.decorations});function forceEndComposition(s){var e=s.scrollDOM.parentElement;if(e){if(FIREFOX_LINUX){s.contentDOM.textContent="\0\0",s.contentDOM.dispatchEvent(new CustomEvent("compositionend"));return}var r=s.scrollDOM.nextSibling,n=window.getSelection(),o=n&&{anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset};s.scrollDOM.remove(),e.insertBefore(s.scrollDOM,r);try{o&&n&&(n.setPosition(o.anchorNode,o.anchorOffset),o.focusNode&&n.extend(o.focusNode,o.focusOffset))}catch(a){console.error(a)}s.focus(),s.contentDOM.dispatchEvent(new CustomEvent("compositionend"))}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),showVimPanel=StateEffect.define(),vimPanelState=StateField.define({create:()=>!1,update(s,e){for(let r of e.effects)r.is(showVimPanel)&&(s=r.value);return s},provide:s=>showPanel.from(s,e=>e?createVimPanel:null)});function createVimPanel(s){let e=document.createElement("div");e.className="cm-vim-panel";let r=s.cm;return r.state.dialog&&e.appendChild(r.state.dialog),{top:!1,dom:e}}function statusPanel(s){let e=document.createElement("div");e.className="cm-vim-panel";let r=s.cm;return r.state.statusbar=e,r.state.vimPlugin.updateStatus(),{dom:e}}function vim(s={}){return[vimStyle,vimPlugin,hideNativeSelection,s.status?showPanel.of(statusPanel):vimPanelState]}function getCM(s){return s.cm||null}const delay=s=>new Promise((e,r)=>setTimeout(()=>r(new Error("Operation took too long")),s)),tryCatchWrapper=(s,e)=>new Promise((r,n)=>{try{Function(`with (this) {try{${e}} catch (e) {console.log(e)}};`).call(s.api),r(!0)}catch(o){console.log(o),r(!1)}}),tryEvaluate=async(s,e,r=5e3)=>{try{e.evaluations++,await Promise.race([tryCatchWrapper(s,`let i = ${e.evaluations};`+e.candidate),delay(r)])?e.committed=e.candidate:await evaluate(s,e,r)}catch(n){console.log(n)}},evaluate=async(s,e,r=1e3)=>{try{await Promise.race([tryCatchWrapper(s,e.committed),delay(r)]),e.evaluations&&e.evaluations++}catch(n){console.log(n)}};class TransportNode extends AudioWorkletNode{constructor(r,n,o){super(r,"transport",n);z(this,"handleMessage",r=>{if(r.data&&r.data.type==="bang"){this.startTime===null&&(this.startTime=r.data.currentTime),this.elapsedTime=r.data.currentTime-this.startTime,this.prevCurrentTime=r.data.currentTime;let{futureTimeStamp:n,timeToNextPulse:o,nextPulsePosition:a}=this.convertTimeToNextBarsBeats(this.elapsedTime);this.nextPulsePosition!==a&&(this.nextPulsePosition=a,setTimeout(()=>{const l=performance.now();this.app.clock.time_position=n,tryEvaluate(this.app,this.app.global_buffer),this.hasBeenEvaluated=!0,this.currentPulsePosition=a;const c=performance.now();this.lastLatencies[this.indexOfLastLatencies]=c-l,this.indexOfLastLatencies=(this.indexOfLastLatencies+1)%this.lastLatencies.length;const h=this.lastLatencies.reduce((f,d)=>f+d)/this.lastLatencies.length;this.executionLatency=h/1e3},(o+this.executionLatency)*1e3))}});this.app=o,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.$clock=document.getElementById("clockviewer"),this.hasBeenEvaluated=!1,this.currentPulsePosition=0,this.nextPulsePosition=-1,this.executionLatency=0,this.lastLatencies=[0,0,0,0,0,0,0,0,0,0],this.indexOfLastLatencies=0,this.startTime=null,this.elapsedTime=0}start(){this.port.postMessage("start")}pause(){this.port.postMessage("pause")}stop(){this.startTime=null,this.elapsedTime=null,this.app.clock.tick=0,this.port.postMessage("stop")}convertTimeToBarsBeats(r){const n=60/this.app.clock.bpm,o=r/n,a=this.app.clock.time_signature[0],l=Math.floor(o/a)+1,c=Math.floor(o%a)+1,h=Math.floor(o%1*this.app.clock.ppqn);return this.app.clock.tick++,{bar:l,beat:c,ppqn:h}}convertTimeToNextBarsBeats(r){const n=60/this.app.clock.bpm,o=r/n,a=this.app.clock.time_signature[0];this.currentPulsePosition=o*this.app.clock.ppqn;const l=Math.ceil(this.currentPulsePosition),c=this.app.clock.convertPulseToSecond(this.nextPulsePosition-this.currentPulsePosition),h=this.nextPulsePosition/this.app.clock.ppqn,f=h/a,d={bar:Math.floor(f)+1,beat:Math.floor(h)%a+1,pulse:Math.floor(this.nextPulsePosition)%this.app.clock.ppqn};return this.app.clock.tick++,{futureTimeStamp:d,timeToNextPulse:c,nextPulsePosition:l}}}const TransportProcessor="/assets/TransportProcessor-9e6f56da.js";class Clock{constructor(e,r){z(this,"ctx");z(this,"transportNode");z(this,"bpm");z(this,"time_signature");z(this,"time_position");z(this,"ppqn");z(this,"tick");this.app=e,this.time_position={bar:0,beat:0,pulse:0},this.time_signature=[4,4],this.tick=0,this.bpm=120,this.ppqn=24,this.transportNode=null,this.ctx=r,r.audioWorklet.addModule(TransportProcessor).then(n=>(this.transportNode=new TransportNode(r,{},this.app),this.transportNode.connect(r.destination),n)).catch(n=>{console.log("Error loading TransportProcessor.js:",n)})}get ticks_before_new_bar(){const e=(this.app.clock.beats_since_origin-1)*48+this.time_position.pulse+1;return this.beats_per_bar*this.ppqn*this.time_position.bar+1-e}get beats_per_bar(){return this.time_signature[0]}get beats_since_origin(){return(this.time_position.bar-1)*this.beats_per_bar+this.time_position.beat}get pulses_since_origin(){return this.beats_since_origin*this.ppqn+this.time_position.pulse}get pulse_duration(){return 60/this.bpm/this.ppqn}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e,r;((e=this.transportNode)==null?void 0:e.state)==="running"?console.log("Already started"):(this.app.audioContext.resume(),(r=this.transportNode)==null||r.start())}pause(){var e;(e=this.transportNode)==null||e.pause()}stop(){var e;(e=this.transportNode)==null||e.stop()}}const global_text=` // Global buffer: a central buffer to command them all. // ==================================================== // The global buffer is a special buffer used to control @@ -80,4 +80,4 @@ var Yn=Object.defineProperty;var Dn=(s,e,r)=>e in s?Yn(s,e,{enumerable:!0,config `+a.line+" | "+f+` `+h+" | "+peg$padEnd("",o.column-1," ")+peg$padEnd("",m,"^")}else e+=` at `+l}return e},peg$SyntaxError.buildMessage=function(s,e){var r={literal:function(f){return'"'+o(f.text)+'"'},class:function(f){var d=f.parts.map(function(m){return Array.isArray(m)?a(m[0])+"-"+a(m[1]):a(m)});return"["+(f.inverted?"^":"")+d.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(f){return f.description}};function n(f){return f.charCodeAt(0).toString(16).toUpperCase()}function o(f){return f.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(d){return"\\x0"+n(d)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(d){return"\\x"+n(d)})}function a(f){return f.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(d){return"\\x0"+n(d)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(d){return"\\x"+n(d)})}function l(f){return r[f.type](f)}function c(f){var d=f.map(l),m,v;if(d.sort(),d.length>0){for(m=1,v=1;m",peg$c9="[",peg$c10="+",peg$c11="*",peg$c12="%",peg$c13="&",peg$c14="|",peg$c15="<<",peg$c16=">>",peg$r0=/^[' '\t\r\n]/,peg$r1=/^[0-9]/,peg$e0=peg$classExpectation(["'"," ","'"," ","\r",` -`],!1,!1),peg$e1=peg$literalExpectation("(",!1),peg$e2=peg$literalExpectation(",",!1),peg$e3=peg$literalExpectation(")",!1),peg$e4=peg$classExpectation([["0","9"]],!1,!1),peg$e5=peg$literalExpectation(".",!1),peg$e6=peg$literalExpectation("-",!1),peg$e7=peg$literalExpectation("/",!1),peg$e8=peg$literalExpectation("\\",!1),peg$e9=peg$literalExpectation("<",!1),peg$e10=peg$literalExpectation(">",!1),peg$e11=peg$literalExpectation("[",!1),peg$e12=peg$literalExpectation("+",!1),peg$e13=peg$literalExpectation("*",!1),peg$e14=peg$literalExpectation("%",!1),peg$e15=peg$literalExpectation("&",!1),peg$e16=peg$literalExpectation("|",!1),peg$e17=peg$literalExpectation("<<",!1),peg$e18=peg$literalExpectation(">>",!1),peg$f0=function(s){return centsToSemitones(s.filter(e=>e))},peg$f1=function(){},peg$f2=function(s,e){return Math.floor(Math.random()*(e-s+1)+s)},peg$f3=function(s,e){return Math.random()*(e-s)+s},peg$f4=function(){return parseFloat(text())},peg$f5=function(){return parseInt(text())},peg$f6=function(s){return ratioToCents(s)},peg$f7=function(s,e){return s/e},peg$f8=function(s,e){return Math.pow(2,s/e)},peg$f9=function(s,e,r,n){var o=n?r/n:r;return Math.pow(o,s/e)},peg$f10=function(s,e){return parseFloat(s.toString()+"."+e.toString())},peg$f11=function(s){return s.filter(e=>e)},peg$f12=function(s){return monzoToCents(s)},peg$f13=function(){return eval(text())},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$resultsCache={},peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions))throw new Error(`Can't start parsing from rule "`+options.startRule+'".');peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function peg$literalExpectation(s,e){return{type:"literal",text:s,ignoreCase:e}}function peg$classExpectation(s,e,r){return{type:"class",parts:s,inverted:e,ignoreCase:r}}function peg$endExpectation(){return{type:"end"}}function peg$computePosDetails(s){var e=peg$posDetailsCache[s],r;if(e)return e;for(r=s-1;!peg$posDetailsCache[r];)r--;for(e=peg$posDetailsCache[r],e={line:e.line,column:e.column};rpeg$maxFailPos&&(peg$maxFailPos=peg$currPos,peg$maxFailExpected=[]),peg$maxFailExpected.push(s))}function peg$buildStructuredError(s,e,r){return new peg$SyntaxError(peg$SyntaxError.buildMessage(s,e),s,e,r)}function peg$parselines(){var s,e,r,n=peg$currPos*17+0,o=peg$resultsCache[n];if(o)return peg$currPos=o.nextPos,o.result;if(s=peg$currPos,e=[],r=peg$parseratio(),r===peg$FAILED&&(r=peg$parsevalue(),r===peg$FAILED&&(r=peg$parsemonzo(),r===peg$FAILED&&(r=peg$parseoperation(),r===peg$FAILED&&(r=peg$parsesep())))),r!==peg$FAILED)for(;r!==peg$FAILED;)e.push(r),r=peg$parseratio(),r===peg$FAILED&&(r=peg$parsevalue(),r===peg$FAILED&&(r=peg$parsemonzo(),r===peg$FAILED&&(r=peg$parseoperation(),r===peg$FAILED&&(r=peg$parsesep()))));else e=peg$FAILED;return e!==peg$FAILED&&(peg$savedPos=s,e=peg$f0(e)),s=e,peg$resultsCache[n]={nextPos:peg$currPos,result:s},s}function peg$parsesep(){var s,e,r=peg$currPos*17+1,n=peg$resultsCache[r];return n?(peg$currPos=n.nextPos,n.result):(s=peg$currPos,peg$r0.test(input.charAt(peg$currPos))?(e=input.charAt(peg$currPos),peg$currPos++):(e=peg$FAILED,peg$fail(peg$e0)),e!==peg$FAILED&&(peg$savedPos=s,e=peg$f1()),s=e,peg$resultsCache[r]={nextPos:peg$currPos,result:s},s)}function peg$parsevalue(){var s,e=peg$currPos*17+2,r=peg$resultsCache[e];return r?(peg$currPos=r.nextPos,r.result):(s=peg$parsefloat(),s===peg$FAILED&&(s=peg$parseint(),s===peg$FAILED&&(s=peg$parserandom_int(),s===peg$FAILED&&(s=peg$parserandom_float()))),peg$resultsCache[e]={nextPos:peg$currPos,result:s},s)}function peg$parserandom_int(){var s,e,r,n,o,a,l=peg$currPos*17+3,c=peg$resultsCache[l];return c?(peg$currPos=c.nextPos,c.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===40?(e=peg$c0,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e1)),e!==peg$FAILED?(r=peg$parseint(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===44?(n=peg$c1,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e2)),n!==peg$FAILED?(o=peg$parseint(),o!==peg$FAILED?(input.charCodeAt(peg$currPos)===41?(a=peg$c2,peg$currPos++):(a=peg$FAILED,peg$fail(peg$e3)),a!==peg$FAILED?(peg$savedPos=s,s=peg$f2(r,o)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[l]={nextPos:peg$currPos,result:s},s)}function peg$parserandom_float(){var s,e,r,n,o,a,l=peg$currPos*17+4,c=peg$resultsCache[l];return c?(peg$currPos=c.nextPos,c.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===40?(e=peg$c0,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e1)),e!==peg$FAILED?(r=peg$parsefloat(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===44?(n=peg$c1,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e2)),n!==peg$FAILED?(o=peg$parsefloat(),o!==peg$FAILED?(input.charCodeAt(peg$currPos)===41?(a=peg$c2,peg$currPos++):(a=peg$FAILED,peg$fail(peg$e3)),a!==peg$FAILED?(peg$savedPos=s,s=peg$f3(r,o)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[l]={nextPos:peg$currPos,result:s},s)}function peg$parsefloat(){var s,e,r,n,o,a,l,c=peg$currPos*17+5,h=peg$resultsCache[c];if(h)return peg$currPos=h.nextPos,h.result;if(s=peg$currPos,e=peg$currPos,r=[],peg$r1.test(input.charAt(peg$currPos))?(n=input.charAt(peg$currPos),peg$currPos++):(n=peg$FAILED,peg$fail(peg$e4)),n!==peg$FAILED)for(;n!==peg$FAILED;)r.push(n),peg$r1.test(input.charAt(peg$currPos))?(n=input.charAt(peg$currPos),peg$currPos++):(n=peg$FAILED,peg$fail(peg$e4));else r=peg$FAILED;if(r!==peg$FAILED?(input.charCodeAt(peg$currPos)===46?(n=peg$c3,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e5)),n!==peg$FAILED?(r=[r,n],e=r):(peg$currPos=e,e=peg$FAILED)):(peg$currPos=e,e=peg$FAILED),e===peg$FAILED){for(e=peg$currPos,input.charCodeAt(peg$currPos)===45?(r=peg$c4,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e6)),r===peg$FAILED&&(r=null),n=[],peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4));o!==peg$FAILED;)n.push(o),peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4));if(input.charCodeAt(peg$currPos)===46?(o=peg$c3,peg$currPos++):(o=peg$FAILED,peg$fail(peg$e5)),o!==peg$FAILED){if(a=[],peg$r1.test(input.charAt(peg$currPos))?(l=input.charAt(peg$currPos),peg$currPos++):(l=peg$FAILED,peg$fail(peg$e4)),l!==peg$FAILED)for(;l!==peg$FAILED;)a.push(l),peg$r1.test(input.charAt(peg$currPos))?(l=input.charAt(peg$currPos),peg$currPos++):(l=peg$FAILED,peg$fail(peg$e4));else a=peg$FAILED;a!==peg$FAILED?(r=[r,n,o,a],e=r):(peg$currPos=e,e=peg$FAILED)}else peg$currPos=e,e=peg$FAILED;if(e===peg$FAILED)if(e=peg$currPos,input.charCodeAt(peg$currPos)===46?(r=peg$c3,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e5)),r!==peg$FAILED){if(n=[],peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4)),o!==peg$FAILED)for(;o!==peg$FAILED;)n.push(o),peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4));else n=peg$FAILED;n!==peg$FAILED?(r=[r,n],e=r):(peg$currPos=e,e=peg$FAILED)}else peg$currPos=e,e=peg$FAILED}return e!==peg$FAILED&&(peg$savedPos=s,e=peg$f4()),s=e,peg$resultsCache[c]={nextPos:peg$currPos,result:s},s}function peg$parseint(){var s,e,r,n=peg$currPos*17+6,o=peg$resultsCache[n];if(o)return peg$currPos=o.nextPos,o.result;if(s=peg$currPos,input.charCodeAt(peg$currPos)===45?peg$currPos++:peg$fail(peg$e6),e=[],peg$r1.test(input.charAt(peg$currPos))?(r=input.charAt(peg$currPos),peg$currPos++):(r=peg$FAILED,peg$fail(peg$e4)),r!==peg$FAILED)for(;r!==peg$FAILED;)e.push(r),peg$r1.test(input.charAt(peg$currPos))?(r=input.charAt(peg$currPos),peg$currPos++):(r=peg$FAILED,peg$fail(peg$e4));else e=peg$FAILED;return e!==peg$FAILED?(peg$savedPos=s,s=peg$f5()):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[n]={nextPos:peg$currPos,result:s},s}function peg$parseratio(){var s,e,r=peg$currPos*17+7,n=peg$resultsCache[r];return n?(peg$currPos=n.nextPos,n.result):(s=peg$currPos,e=peg$parseedji_ratio(),e===peg$FAILED&&(e=peg$parseedo_ratio(),e===peg$FAILED&&(e=peg$parsefrac_ratio(),e===peg$FAILED&&(e=peg$parsedecimal_ratio()))),e!==peg$FAILED&&(peg$savedPos=s,e=peg$f6(e)),s=e,peg$resultsCache[r]={nextPos:peg$currPos,result:s},s)}function peg$parsefrac_ratio(){var s,e,r,n,o=peg$currPos*17+8,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,e=peg$parseint(),e===peg$FAILED&&(e=peg$parserandom_int()),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===47?(r=peg$c5,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e7)),r!==peg$FAILED?(n=peg$parseint(),n===peg$FAILED&&(n=peg$parserandom_int()),n!==peg$FAILED?(peg$savedPos=s,s=peg$f7(e,n)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseedo_ratio(){var s,e,r,n,o=peg$currPos*17+9,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,e=peg$parseint(),e===peg$FAILED&&(e=peg$parserandom_int()),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===92?(r=peg$c6,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e8)),r!==peg$FAILED?(n=peg$parseint(),n===peg$FAILED&&(n=peg$parserandom_int()),n!==peg$FAILED?(peg$savedPos=s,s=peg$f8(e,n)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseedji_ratio(){var s,e,r,n,o,a,l,c,h=peg$currPos*17+10,f=peg$resultsCache[h];return f?(peg$currPos=f.nextPos,f.result):(s=peg$currPos,e=peg$parseint(),e===peg$FAILED&&(e=peg$parserandom_int()),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===92?(r=peg$c6,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e8)),r!==peg$FAILED?(n=peg$parseint(),n===peg$FAILED&&(n=peg$parserandom_int()),n!==peg$FAILED?(input.charCodeAt(peg$currPos)===60?(o=peg$c7,peg$currPos++):(o=peg$FAILED,peg$fail(peg$e9)),o!==peg$FAILED?(a=peg$parseint(),a===peg$FAILED&&(a=peg$parserandom_int()),a!==peg$FAILED?(input.charCodeAt(peg$currPos)===47?peg$currPos++:peg$fail(peg$e7),l=peg$parseint(),l===peg$FAILED&&(l=peg$parserandom_int()),l===peg$FAILED&&(l=null),input.charCodeAt(peg$currPos)===62?(c=peg$c8,peg$currPos++):(c=peg$FAILED,peg$fail(peg$e10)),c!==peg$FAILED?(peg$savedPos=s,s=peg$f9(e,n,a,l)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[h]={nextPos:peg$currPos,result:s},s)}function peg$parsedecimal_ratio(){var s,e,r,n,o=peg$currPos*17+11,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,e=peg$parseint(),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===44?(r=peg$c1,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e2)),r!==peg$FAILED?(n=peg$parseint(),n!==peg$FAILED?(peg$savedPos=s,s=peg$f10(e,n)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseints(){var s,e,r,n=peg$currPos*17+12,o=peg$resultsCache[n];if(o)return peg$currPos=o.nextPos,o.result;if(s=peg$currPos,e=[],r=peg$parseint(),r===peg$FAILED&&(r=peg$parsesep()),r!==peg$FAILED)for(;r!==peg$FAILED;)e.push(r),r=peg$parseint(),r===peg$FAILED&&(r=peg$parsesep());else e=peg$FAILED;return e!==peg$FAILED&&(peg$savedPos=s,e=peg$f11(e)),s=e,peg$resultsCache[n]={nextPos:peg$currPos,result:s},s}function peg$parsemonzo(){var s,e,r,n,o=peg$currPos*17+13,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===91?(e=peg$c9,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e11)),e!==peg$FAILED?(r=peg$parseints(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===62?(n=peg$c8,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e10)),n!==peg$FAILED?(peg$savedPos=s,s=peg$f12(r)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseoperation(){var s,e,r,n,o,a,l,c=peg$currPos*17+14,h=peg$resultsCache[c];if(h)return peg$currPos=h.nextPos,h.result;if(s=peg$currPos,e=peg$parsevalue(),e===peg$FAILED&&(e=peg$parseratio(),e===peg$FAILED&&(e=peg$parsemonzo(),e===peg$FAILED)))for(e=[],r=peg$parsesep();r!==peg$FAILED;)e.push(r),r=peg$parsesep();if(e!==peg$FAILED){if(r=[],n=peg$currPos,o=peg$parseoperator(),o!==peg$FAILED){if(a=peg$parsevalue(),a===peg$FAILED&&(a=peg$parseratio(),a===peg$FAILED&&(a=peg$parsemonzo(),a===peg$FAILED&&(a=peg$parsesub_operations(),a===peg$FAILED&&(a=peg$parseoperation(),a===peg$FAILED)))))for(a=[],l=peg$parsesep();l!==peg$FAILED;)a.push(l),l=peg$parsesep();a!==peg$FAILED?(o=[o,a],n=o):(peg$currPos=n,n=peg$FAILED)}else peg$currPos=n,n=peg$FAILED;if(n!==peg$FAILED)for(;n!==peg$FAILED;)if(r.push(n),n=peg$currPos,o=peg$parseoperator(),o!==peg$FAILED){if(a=peg$parsevalue(),a===peg$FAILED&&(a=peg$parseratio(),a===peg$FAILED&&(a=peg$parsemonzo(),a===peg$FAILED&&(a=peg$parsesub_operations(),a===peg$FAILED&&(a=peg$parseoperation(),a===peg$FAILED)))))for(a=[],l=peg$parsesep();l!==peg$FAILED;)a.push(l),l=peg$parsesep();a!==peg$FAILED?(o=[o,a],n=o):(peg$currPos=n,n=peg$FAILED)}else peg$currPos=n,n=peg$FAILED;else r=peg$FAILED;r!==peg$FAILED?(peg$savedPos=s,s=peg$f13()):(peg$currPos=s,s=peg$FAILED)}else peg$currPos=s,s=peg$FAILED;return peg$resultsCache[c]={nextPos:peg$currPos,result:s},s}function peg$parseoperator(){var s,e=peg$currPos*17+15,r=peg$resultsCache[e];return r?(peg$currPos=r.nextPos,r.result):(input.charCodeAt(peg$currPos)===43?(s=peg$c10,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e12)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===45?(s=peg$c4,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e6)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===42?(s=peg$c11,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e13)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===37?(s=peg$c12,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e14)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===38?(s=peg$c13,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e15)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===124?(s=peg$c14,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e16)),s===peg$FAILED&&(input.substr(peg$currPos,2)===peg$c15?(s=peg$c15,peg$currPos+=2):(s=peg$FAILED,peg$fail(peg$e17)),s===peg$FAILED&&(input.substr(peg$currPos,2)===peg$c16?(s=peg$c16,peg$currPos+=2):(s=peg$FAILED,peg$fail(peg$e18))))))))),peg$resultsCache[e]={nextPos:peg$currPos,result:s},s)}function peg$parsesub_operations(){var s,e,r,n,o=peg$currPos*17+16,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===40?(e=peg$c0,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e1)),e!==peg$FAILED?(r=peg$parseoperation(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===41?(n=peg$c2,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e3)),n!==peg$FAILED?(e=[e,r,n],s=e):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}if(peg$result=peg$startRuleFunction(),peg$result!==peg$FAILED&&peg$currPos===input.length)return peg$result;throw peg$result!==peg$FAILED&&peg$currPos{typeof PROCESS.emitWarning=="function"?PROCESS.emitWarning(s,e,r,n):console.error(`[${r}] ${e}: ${s}`)};let AC=globalThis.AbortController,AS=globalThis.AbortSignal;var mn;if(typeof AC>"u"){AS=class{constructor(){z(this,"onabort");z(this,"_onabort",[]);z(this,"reason");z(this,"aborted",!1)}addEventListener(n,o){this._onabort.push(o)}},AC=class{constructor(){z(this,"signal",new AS);e()}abort(n){var o,a;if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(const l of this.signal._onabort)l(n);(a=(o=this.signal).onabort)==null||a.call(o,n)}}};let s=((mn=PROCESS.env)==null?void 0:mn.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{s&&(s=!1,emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}const shouldWarn=s=>!warned.has(s),isPosInt=s=>s&&s===Math.floor(s)&&s>0&&isFinite(s),getUintArray=s=>isPosInt(s)?s<=Math.pow(2,8)?Uint8Array:s<=Math.pow(2,16)?Uint16Array:s<=Math.pow(2,32)?Uint32Array:s<=Number.MAX_SAFE_INTEGER?ZeroArray:null:null;class ZeroArray extends Array{constructor(e){super(e),this.fill(0)}}var _i;const Ti=class Ti{constructor(e,r){z(this,"heap");z(this,"length");if(!N(Ti,_i))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(e),this.length=0}static create(e){const r=getUintArray(e);if(!r)return[];Ue(Ti,_i,!0);const n=new Ti(e,r);return Ue(Ti,_i,!1),n}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};_i=new WeakMap,rt(Ti,_i,!1);let Stack=Ti;var ti,Ut,ii,ri,Vi,At,ni,Pt,vt,Je,Zt,zt,Bt,Mt,si,Et,fi,di,oi,ai,ki,_t,sr,qr,Li,pi,or,jt,Tr,yn,Qi,Gi,ar,ci,Ii,hi,wi,lr,Kr,Hi,Ar,Wi,Pr,St,Ct,cr,Jr,Ri,nr;const en=class en{constructor(e){rt(this,sr);rt(this,Tr);rt(this,ci);rt(this,hi);rt(this,lr);rt(this,Hi);rt(this,Wi);rt(this,St);rt(this,cr);rt(this,Ri);rt(this,ti,void 0);rt(this,Ut,void 0);rt(this,ii,void 0);rt(this,ri,void 0);rt(this,Vi,void 0);z(this,"ttl");z(this,"ttlResolution");z(this,"ttlAutopurge");z(this,"updateAgeOnGet");z(this,"updateAgeOnHas");z(this,"allowStale");z(this,"noDisposeOnSet");z(this,"noUpdateTTL");z(this,"maxEntrySize");z(this,"sizeCalculation");z(this,"noDeleteOnFetchRejection");z(this,"noDeleteOnStaleGet");z(this,"allowStaleOnFetchAbort");z(this,"allowStaleOnFetchRejection");z(this,"ignoreFetchAbort");rt(this,At,void 0);rt(this,ni,void 0);rt(this,Pt,void 0);rt(this,vt,void 0);rt(this,Je,void 0);rt(this,Zt,void 0);rt(this,zt,void 0);rt(this,Bt,void 0);rt(this,Mt,void 0);rt(this,si,void 0);rt(this,Et,void 0);rt(this,fi,void 0);rt(this,di,void 0);rt(this,oi,void 0);rt(this,ai,void 0);rt(this,ki,void 0);rt(this,_t,void 0);rt(this,Li,()=>{});rt(this,pi,()=>{});rt(this,or,()=>{});rt(this,jt,()=>!1);rt(this,Qi,e=>{});rt(this,Gi,(e,r,n)=>{});rt(this,ar,(e,r,n,o)=>{if(n||o)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:r=0,ttl:n,ttlResolution:o=1,ttlAutopurge:a,updateAgeOnGet:l,updateAgeOnHas:c,allowStale:h,dispose:f,disposeAfter:d,noDisposeOnSet:m,noUpdateTTL:v,maxSize:A=0,maxEntrySize:T=0,sizeCalculation:B,fetchMethod:Y,noDeleteOnFetchRejection:F,noDeleteOnStaleGet:ke,allowStaleOnFetchRejection:Qe,allowStaleOnFetchAbort:xe,ignoreFetchAbort:Te}=e;if(r!==0&&!isPosInt(r))throw new TypeError("max option must be a nonnegative integer");const Le=r?getUintArray(r):Array;if(!Le)throw new Error("invalid max value: "+r);if(Ue(this,ti,r),Ue(this,Ut,A),this.maxEntrySize=T||N(this,Ut),this.sizeCalculation=B,this.sizeCalculation){if(!N(this,Ut)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(Y!==void 0&&typeof Y!="function")throw new TypeError("fetchMethod must be a function if specified");if(Ue(this,Vi,Y),Ue(this,ki,!!Y),Ue(this,Pt,new Map),Ue(this,vt,new Array(r).fill(void 0)),Ue(this,Je,new Array(r).fill(void 0)),Ue(this,Zt,new Le(r)),Ue(this,zt,new Le(r)),Ue(this,Bt,0),Ue(this,Mt,0),Ue(this,si,Stack.create(r)),Ue(this,At,0),Ue(this,ni,0),typeof f=="function"&&Ue(this,ii,f),typeof d=="function"?(Ue(this,ri,d),Ue(this,Et,[])):(Ue(this,ri,void 0),Ue(this,Et,void 0)),Ue(this,ai,!!N(this,ii)),Ue(this,_t,!!N(this,ri)),this.noDisposeOnSet=!!m,this.noUpdateTTL=!!v,this.noDeleteOnFetchRejection=!!F,this.allowStaleOnFetchRejection=!!Qe,this.allowStaleOnFetchAbort=!!xe,this.ignoreFetchAbort=!!Te,this.maxEntrySize!==0){if(N(this,Ut)!==0&&!isPosInt(N(this,Ut)))throw new TypeError("maxSize must be a positive integer if specified");if(!isPosInt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");_e(this,Tr,yn).call(this)}if(this.allowStale=!!h,this.noDeleteOnStaleGet=!!ke,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!c,this.ttlResolution=isPosInt(o)||o===0?o:1,this.ttlAutopurge=!!a,this.ttl=n||0,this.ttl){if(!isPosInt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");_e(this,sr,qr).call(this)}if(N(this,ti)===0&&this.ttl===0&&N(this,Ut)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!N(this,ti)&&!N(this,Ut)){const Me="LRU_CACHE_UNBOUNDED";shouldWarn(Me)&&(warned.add(Me),emitWarning("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Me,en))}}static unsafeExposeInternals(e){return{starts:N(e,di),ttls:N(e,oi),sizes:N(e,fi),keyMap:N(e,Pt),keyList:N(e,vt),valList:N(e,Je),next:N(e,Zt),prev:N(e,zt),get head(){return N(e,Bt)},get tail(){return N(e,Mt)},free:N(e,si),isBackgroundFetch:r=>{var n;return _e(n=e,St,Ct).call(n,r)},backgroundFetch:(r,n,o,a)=>{var l;return _e(l=e,Wi,Pr).call(l,r,n,o,a)},moveToTail:r=>{var n;return _e(n=e,Ri,nr).call(n,r)},indexes:r=>{var n;return _e(n=e,ci,Ii).call(n,r)},rindexes:r=>{var n;return _e(n=e,hi,wi).call(n,r)},isStale:r=>{var n;return N(n=e,jt).call(n,r)}}}get max(){return N(this,ti)}get maxSize(){return N(this,Ut)}get calculatedSize(){return N(this,ni)}get size(){return N(this,At)}get fetchMethod(){return N(this,Vi)}get dispose(){return N(this,ii)}get disposeAfter(){return N(this,ri)}getRemainingTTL(e){return N(this,Pt).has(e)?1/0:0}*entries(){for(const e of _e(this,ci,Ii).call(this))N(this,Je)[e]!==void 0&&N(this,vt)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield[N(this,vt)[e],N(this,Je)[e]])}*rentries(){for(const e of _e(this,hi,wi).call(this))N(this,Je)[e]!==void 0&&N(this,vt)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield[N(this,vt)[e],N(this,Je)[e]])}*keys(){for(const e of _e(this,ci,Ii).call(this)){const r=N(this,vt)[e];r!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield r)}}*rkeys(){for(const e of _e(this,hi,wi).call(this)){const r=N(this,vt)[e];r!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield r)}}*values(){for(const e of _e(this,ci,Ii).call(this))N(this,Je)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield N(this,Je)[e])}*rvalues(){for(const e of _e(this,hi,wi).call(this))N(this,Je)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield N(this,Je)[e])}[Symbol.iterator](){return this.entries()}find(e,r={}){for(const n of _e(this,ci,Ii).call(this)){const o=N(this,Je)[n],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;if(a!==void 0&&e(a,N(this,vt)[n],this))return this.get(N(this,vt)[n],r)}}forEach(e,r=this){for(const n of _e(this,ci,Ii).call(this)){const o=N(this,Je)[n],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;a!==void 0&&e.call(r,a,N(this,vt)[n],this)}}rforEach(e,r=this){for(const n of _e(this,hi,wi).call(this)){const o=N(this,Je)[n],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;a!==void 0&&e.call(r,a,N(this,vt)[n],this)}}purgeStale(){let e=!1;for(const r of _e(this,hi,wi).call(this,{allowStale:!0}))N(this,jt).call(this,r)&&(this.delete(N(this,vt)[r]),e=!0);return e}dump(){const e=[];for(const r of _e(this,ci,Ii).call(this,{allowStale:!0})){const n=N(this,vt)[r],o=N(this,Je)[r],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;if(a===void 0||n===void 0)continue;const l={value:a};if(N(this,oi)&&N(this,di)){l.ttl=N(this,oi)[r];const c=perf.now()-N(this,di)[r];l.start=Math.floor(Date.now()-c)}N(this,fi)&&(l.size=N(this,fi)[r]),e.unshift([n,l])}return e}load(e){this.clear();for(const[r,n]of e){if(n.start){const o=Date.now()-n.start;n.start=perf.now()-o}this.set(r,n.value,n)}}set(e,r,n={}){var v,A,T,B,Y;if(r===void 0)return this.delete(e),this;const{ttl:o=this.ttl,start:a,noDisposeOnSet:l=this.noDisposeOnSet,sizeCalculation:c=this.sizeCalculation,status:h}=n;let{noUpdateTTL:f=this.noUpdateTTL}=n;const d=N(this,ar).call(this,e,r,n.size||0,c);if(this.maxEntrySize&&d>this.maxEntrySize)return h&&(h.set="miss",h.maxEntrySizeExceeded=!0),this.delete(e),this;let m=N(this,At)===0?void 0:N(this,Pt).get(e);if(m===void 0)m=N(this,At)===0?N(this,Mt):N(this,si).length!==0?N(this,si).pop():N(this,At)===N(this,ti)?_e(this,Hi,Ar).call(this,!1):N(this,At),N(this,vt)[m]=e,N(this,Je)[m]=r,N(this,Pt).set(e,m),N(this,Zt)[N(this,Mt)]=m,N(this,zt)[m]=N(this,Mt),Ue(this,Mt,m),xr(this,At)._++,N(this,Gi).call(this,m,d,h),h&&(h.set="add"),f=!1;else{_e(this,Ri,nr).call(this,m);const F=N(this,Je)[m];if(r!==F){if(N(this,ki)&&_e(this,St,Ct).call(this,F)){F.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:ke}=F;ke!==void 0&&!l&&(N(this,ai)&&((v=N(this,ii))==null||v.call(this,ke,e,"set")),N(this,_t)&&((A=N(this,Et))==null||A.push([ke,e,"set"])))}else l||(N(this,ai)&&((T=N(this,ii))==null||T.call(this,F,e,"set")),N(this,_t)&&((B=N(this,Et))==null||B.push([F,e,"set"])));if(N(this,Qi).call(this,m),N(this,Gi).call(this,m,d,h),N(this,Je)[m]=r,h){h.set="replace";const ke=F&&_e(this,St,Ct).call(this,F)?F.__staleWhileFetching:F;ke!==void 0&&(h.oldValue=ke)}}else h&&(h.set="update")}if(o!==0&&!N(this,oi)&&_e(this,sr,qr).call(this),N(this,oi)&&(f||N(this,or).call(this,m,o,a),h&&N(this,pi).call(this,h,m)),!l&&N(this,_t)&&N(this,Et)){const F=N(this,Et);let ke;for(;ke=F==null?void 0:F.shift();)(Y=N(this,ri))==null||Y.call(this,...ke)}return this}pop(){var e;try{for(;N(this,At);){const r=N(this,Je)[N(this,Bt)];if(_e(this,Hi,Ar).call(this,!0),_e(this,St,Ct).call(this,r)){if(r.__staleWhileFetching)return r.__staleWhileFetching}else if(r!==void 0)return r}}finally{if(N(this,_t)&&N(this,Et)){const r=N(this,Et);let n;for(;n=r==null?void 0:r.shift();)(e=N(this,ri))==null||e.call(this,...n)}}}has(e,r={}){const{updateAgeOnHas:n=this.updateAgeOnHas,status:o}=r,a=N(this,Pt).get(e);if(a!==void 0){const l=N(this,Je)[a];if(_e(this,St,Ct).call(this,l)&&l.__staleWhileFetching===void 0)return!1;if(N(this,jt).call(this,a))o&&(o.has="stale",N(this,pi).call(this,o,a));else return n&&N(this,Li).call(this,a),o&&(o.has="hit",N(this,pi).call(this,o,a)),!0}else o&&(o.has="miss");return!1}peek(e,r={}){const{allowStale:n=this.allowStale}=r,o=N(this,Pt).get(e);if(o!==void 0&&(n||!N(this,jt).call(this,o))){const a=N(this,Je)[o];return _e(this,St,Ct).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,r={}){const{allowStale:n=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:c=this.noDisposeOnSet,size:h=0,sizeCalculation:f=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:m=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:v=this.allowStaleOnFetchRejection,ignoreFetchAbort:A=this.ignoreFetchAbort,allowStaleOnFetchAbort:T=this.allowStaleOnFetchAbort,context:B,forceRefresh:Y=!1,status:F,signal:ke}=r;if(!N(this,ki))return F&&(F.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:o,noDeleteOnStaleGet:a,status:F});const Qe={allowStale:n,updateAgeOnGet:o,noDeleteOnStaleGet:a,ttl:l,noDisposeOnSet:c,size:h,sizeCalculation:f,noUpdateTTL:d,noDeleteOnFetchRejection:m,allowStaleOnFetchRejection:v,allowStaleOnFetchAbort:T,ignoreFetchAbort:A,status:F,signal:ke};let xe=N(this,Pt).get(e);if(xe===void 0){F&&(F.fetch="miss");const Te=_e(this,Wi,Pr).call(this,e,xe,Qe,B);return Te.__returned=Te}else{const Te=N(this,Je)[xe];if(_e(this,St,Ct).call(this,Te)){const Ve=n&&Te.__staleWhileFetching!==void 0;return F&&(F.fetch="inflight",Ve&&(F.returnedStale=!0)),Ve?Te.__staleWhileFetching:Te.__returned=Te}const Le=N(this,jt).call(this,xe);if(!Y&&!Le)return F&&(F.fetch="hit"),_e(this,Ri,nr).call(this,xe),o&&N(this,Li).call(this,xe),F&&N(this,pi).call(this,F,xe),Te;const Me=_e(this,Wi,Pr).call(this,e,xe,Qe,B),Fe=Me.__staleWhileFetching!==void 0&&n;return F&&(F.fetch=Le?"stale":"refresh",Fe&&Le&&(F.returnedStale=!0)),Fe?Me.__staleWhileFetching:Me.__returned=Me}}get(e,r={}){const{allowStale:n=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:l}=r,c=N(this,Pt).get(e);if(c!==void 0){const h=N(this,Je)[c],f=_e(this,St,Ct).call(this,h);return l&&N(this,pi).call(this,l,c),N(this,jt).call(this,c)?(l&&(l.get="stale"),f?(l&&n&&h.__staleWhileFetching!==void 0&&(l.returnedStale=!0),n?h.__staleWhileFetching:void 0):(a||this.delete(e),l&&n&&(l.returnedStale=!0),n?h:void 0)):(l&&(l.get="hit"),f?h.__staleWhileFetching:(_e(this,Ri,nr).call(this,c),o&&N(this,Li).call(this,c),h))}else l&&(l.get="miss")}delete(e){var n,o,a,l;let r=!1;if(N(this,At)!==0){const c=N(this,Pt).get(e);if(c!==void 0)if(r=!0,N(this,At)===1)this.clear();else{N(this,Qi).call(this,c);const h=N(this,Je)[c];_e(this,St,Ct).call(this,h)?h.__abortController.abort(new Error("deleted")):(N(this,ai)||N(this,_t))&&(N(this,ai)&&((n=N(this,ii))==null||n.call(this,h,e,"delete")),N(this,_t)&&((o=N(this,Et))==null||o.push([h,e,"delete"]))),N(this,Pt).delete(e),N(this,vt)[c]=void 0,N(this,Je)[c]=void 0,c===N(this,Mt)?Ue(this,Mt,N(this,zt)[c]):c===N(this,Bt)?Ue(this,Bt,N(this,Zt)[c]):(N(this,Zt)[N(this,zt)[c]]=N(this,Zt)[c],N(this,zt)[N(this,Zt)[c]]=N(this,zt)[c]),xr(this,At)._--,N(this,si).push(c)}}if(N(this,_t)&&((a=N(this,Et))!=null&&a.length)){const c=N(this,Et);let h;for(;h=c==null?void 0:c.shift();)(l=N(this,ri))==null||l.call(this,...h)}return r}clear(){var e,r,n;for(const o of _e(this,hi,wi).call(this,{allowStale:!0})){const a=N(this,Je)[o];if(_e(this,St,Ct).call(this,a))a.__abortController.abort(new Error("deleted"));else{const l=N(this,vt)[o];N(this,ai)&&((e=N(this,ii))==null||e.call(this,a,l,"delete")),N(this,_t)&&((r=N(this,Et))==null||r.push([a,l,"delete"]))}}if(N(this,Pt).clear(),N(this,Je).fill(void 0),N(this,vt).fill(void 0),N(this,oi)&&N(this,di)&&(N(this,oi).fill(0),N(this,di).fill(0)),N(this,fi)&&N(this,fi).fill(0),Ue(this,Bt,0),Ue(this,Mt,0),N(this,si).length=0,Ue(this,ni,0),Ue(this,At,0),N(this,_t)&&N(this,Et)){const o=N(this,Et);let a;for(;a=o==null?void 0:o.shift();)(n=N(this,ri))==null||n.call(this,...a)}}};ti=new WeakMap,Ut=new WeakMap,ii=new WeakMap,ri=new WeakMap,Vi=new WeakMap,At=new WeakMap,ni=new WeakMap,Pt=new WeakMap,vt=new WeakMap,Je=new WeakMap,Zt=new WeakMap,zt=new WeakMap,Bt=new WeakMap,Mt=new WeakMap,si=new WeakMap,Et=new WeakMap,fi=new WeakMap,di=new WeakMap,oi=new WeakMap,ai=new WeakMap,ki=new WeakMap,_t=new WeakMap,sr=new WeakSet,qr=function(){const e=new ZeroArray(N(this,ti)),r=new ZeroArray(N(this,ti));Ue(this,oi,e),Ue(this,di,r),Ue(this,or,(a,l,c=perf.now())=>{if(r[a]=l!==0?c:0,e[a]=l,l!==0&&this.ttlAutopurge){const h=setTimeout(()=>{N(this,jt).call(this,a)&&this.delete(N(this,vt)[a])},l+1);h.unref&&h.unref()}}),Ue(this,Li,a=>{r[a]=e[a]!==0?perf.now():0}),Ue(this,pi,(a,l)=>{if(e[l]){const c=e[l],h=r[l];a.ttl=c,a.start=h,a.now=n||o();const f=a.now-h;a.remainingTTL=c-f}});let n=0;const o=()=>{const a=perf.now();if(this.ttlResolution>0){n=a;const l=setTimeout(()=>n=0,this.ttlResolution);l.unref&&l.unref()}return a};this.getRemainingTTL=a=>{const l=N(this,Pt).get(a);if(l===void 0)return 0;const c=e[l],h=r[l];if(c===0||h===0)return 1/0;const f=(n||o())-h;return c-f},Ue(this,jt,a=>e[a]!==0&&r[a]!==0&&(n||o())-r[a]>e[a])},Li=new WeakMap,pi=new WeakMap,or=new WeakMap,jt=new WeakMap,Tr=new WeakSet,yn=function(){const e=new ZeroArray(N(this,ti));Ue(this,ni,0),Ue(this,fi,e),Ue(this,Qi,r=>{Ue(this,ni,N(this,ni)-e[r]),e[r]=0}),Ue(this,ar,(r,n,o,a)=>{if(_e(this,St,Ct).call(this,n))return 0;if(!isPosInt(o))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(o=a(n,r),!isPosInt(o))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return o}),Ue(this,Gi,(r,n,o)=>{if(e[r]=n,N(this,Ut)){const a=N(this,Ut)-e[r];for(;N(this,ni)>a;)_e(this,Hi,Ar).call(this,!0)}Ue(this,ni,N(this,ni)+e[r]),o&&(o.entrySize=n,o.totalCalculatedSize=N(this,ni))})},Qi=new WeakMap,Gi=new WeakMap,ar=new WeakMap,ci=new WeakSet,Ii=function*({allowStale:e=this.allowStale}={}){if(N(this,At))for(let r=N(this,Mt);!(!_e(this,lr,Kr).call(this,r)||((e||!N(this,jt).call(this,r))&&(yield r),r===N(this,Bt)));)r=N(this,zt)[r]},hi=new WeakSet,wi=function*({allowStale:e=this.allowStale}={}){if(N(this,At))for(let r=N(this,Bt);!(!_e(this,lr,Kr).call(this,r)||((e||!N(this,jt).call(this,r))&&(yield r),r===N(this,Mt)));)r=N(this,Zt)[r]},lr=new WeakSet,Kr=function(e){return e!==void 0&&N(this,Pt).get(N(this,vt)[e])===e},Hi=new WeakSet,Ar=function(e){var a,l;const r=N(this,Bt),n=N(this,vt)[r],o=N(this,Je)[r];return N(this,ki)&&_e(this,St,Ct).call(this,o)?o.__abortController.abort(new Error("evicted")):(N(this,ai)||N(this,_t))&&(N(this,ai)&&((a=N(this,ii))==null||a.call(this,o,n,"evict")),N(this,_t)&&((l=N(this,Et))==null||l.push([o,n,"evict"]))),N(this,Qi).call(this,r),e&&(N(this,vt)[r]=void 0,N(this,Je)[r]=void 0,N(this,si).push(r)),N(this,At)===1?(Ue(this,Bt,Ue(this,Mt,0)),N(this,si).length=0):Ue(this,Bt,N(this,Zt)[r]),N(this,Pt).delete(n),xr(this,At)._--,r},Wi=new WeakSet,Pr=function(e,r,n,o){const a=r===void 0?void 0:N(this,Je)[r];if(_e(this,St,Ct).call(this,a))return a;const l=new AC,{signal:c}=n;c==null||c.addEventListener("abort",()=>l.abort(c.reason),{signal:l.signal});const h={signal:l.signal,options:n,context:o},f=(B,Y=!1)=>{const{aborted:F}=l.signal,ke=n.ignoreFetchAbort&&B!==void 0;if(n.status&&(F&&!Y?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,ke&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),F&&!ke&&!Y)return m(l.signal.reason);const Qe=A;return N(this,Je)[r]===A&&(B===void 0?Qe.__staleWhileFetching?N(this,Je)[r]=Qe.__staleWhileFetching:this.delete(e):(n.status&&(n.status.fetchUpdated=!0),this.set(e,B,h.options))),B},d=B=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=B),m(B)),m=B=>{const{aborted:Y}=l.signal,F=Y&&n.allowStaleOnFetchAbort,ke=F||n.allowStaleOnFetchRejection,Qe=ke||n.noDeleteOnFetchRejection,xe=A;if(N(this,Je)[r]===A&&(!Qe||xe.__staleWhileFetching===void 0?this.delete(e):F||(N(this,Je)[r]=xe.__staleWhileFetching)),ke)return n.status&&xe.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),xe.__staleWhileFetching;if(xe.__returned===xe)throw B},v=(B,Y)=>{var ke;const F=(ke=N(this,Vi))==null?void 0:ke.call(this,e,a,h);F&&F instanceof Promise&&F.then(Qe=>B(Qe===void 0?void 0:Qe),Y),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(B(void 0),n.allowStaleOnFetchAbort&&(B=Qe=>f(Qe,!0)))})};n.status&&(n.status.fetchDispatched=!0);const A=new Promise(v).then(f,d),T=Object.assign(A,{__abortController:l,__staleWhileFetching:a,__returned:void 0});return r===void 0?(this.set(e,T,{...h.options,status:void 0}),r=N(this,Pt).get(e)):N(this,Je)[r]=T,T},St=new WeakSet,Ct=function(e){if(!N(this,ki))return!1;const r=e;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof AC},cr=new WeakSet,Jr=function(e,r){N(this,zt)[r]=e,N(this,Zt)[e]=r},Ri=new WeakSet,nr=function(e){e!==N(this,Mt)&&(e===N(this,Bt)?Ue(this,Bt,N(this,Zt)[e]):_e(this,cr,Jr).call(this,N(this,zt)[e],N(this,Zt)[e]),_e(this,cr,Jr).call(this,N(this,Mt),e),Ue(this,Mt,e))};let LRUCache=en;const zcache=new LRUCache({max:1e3,ttl:1e3*60*5});class Ziffers{constructor(e,r={}){z(this,"values");z(this,"evaluated");z(this,"options");z(this,"index",0);z(this,"redo");z(this,"_current");r={...DEFAULT_OPTIONS,...r},r.scale&&(typeof r.scale=="string"&&(isScale(r.scale)?(r.scaleName=r.scale,r.scale=getScale(r.scale)):r.scale=parse(r.scale)),r.parsedScale=r.scale,delete r.scale),r.redo!==void 0?this.redo=r.redo:this.redo=1,r&&r.seed&&(r.randomSeed=r.seed,r.seededRandom=seededRandom(r.seed)),this.options={nodeOptions:r};try{this.values=parse$1(e,this.options),this.evaluated=this.evaluate()}catch(n){console.log(n),this.values=[],this.evaluated=[]}}update(){this.evaluated=this.evaluate()}pitches(){return this.evaluated.map(e=>e.collect("pitch"))}notes(){return this.evaluated.map(e=>e.collect("note"))}freqs(){return this.evaluated.map(e=>e.collect("freq"))}durations(){return this.evaluated.map(e=>e.collect("duration"))}next(){if(this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.update(),this._current=void 0),this._current!==void 0){const r=this.evaluated[this._current%this.evaluated.length];r.modifiedEvent&&r.modifiedEvent==null,this._current=this._current+1r.evaluate()).flat(1/0).filter(r=>r!==void 0);return e.forEach((r,n)=>{r._next=n0?n-1:e.length-1}),e}}const generateCacheKey=(...s)=>s.map(e=>JSON.stringify(e)).join(","),cachedCall=(s,e)=>{const r=generateCacheKey(s,e);if(zcache.has(r))return zcache.get(r);{const n=new Ziffers(s,e);return zcache.set(r,n),n}},cachedPattern=(s,e={})=>cachedCall(s,e);class MidiConnection{constructor(){z(this,"midiAccess",null);z(this,"midiOutputs",[]);z(this,"currentOutputIndex",0);z(this,"scheduledNotes",{});this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&console.warn("No MIDI outputs available.")}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndexn.name===e);return r!==-1?(this.currentOutputIndex=r,!0):(console.error(`MIDI output "${e}" not found.`),!1)}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,r)=>{console.log(`${r+1}. ${e.name}`)})}sendMidiNote(e,r,n,o){const a=this.midiOutputs[this.currentOutputIndex];if(e=Math.min(Math.max(e,0),127),a){const l=[144+r,e,n],c=[128+r,e,0];a.send(l);const h=setTimeout(()=>{a.send(c),delete this.scheduledNotes[e]},(o-.02)*1e3);this.scheduledNotes[e]=h}else console.error("MIDI output not available.")}sendSysExMessage(e){const r=this.midiOutputs[this.currentOutputIndex];r?r.send(e):console.error("MIDI output not available.")}sendPitchBend(e,r){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(r<0||r>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15.");const n=this.midiOutputs[this.currentOutputIndex];if(n){const o=e&127,a=e>>7&127;n.send([224|r,o,a])}else console.error("MIDI output not available.")}sendProgramChange(e,r){const n=this.midiOutputs[this.currentOutputIndex];n?n.send([192+r,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,r,n){const o=this.midiOutputs[this.currentOutputIndex];o?o.send([176+n,e,r]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const r in this.scheduledNotes){const n=this.scheduledNotes[r];clearTimeout(n),e.send([128,parseInt(r),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class DrunkWalk{constructor(e,r,n){z(this,"min");z(this,"max");z(this,"wrap");z(this,"position");this.min=e,this.max=r,this.wrap=n,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}const SCALES={major:[0,2,4,5,7,9,11],naturalMinor:[0,2,3,5,7,8,10],harmonicMinor:[0,2,3,5,7,8,11],melodicMinor:[0,2,3,5,7,9,11],dorian:[0,2,3,5,7,9,10],phrygian:[0,1,3,5,7,8,10],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],aeolian:[0,2,3,5,7,8,10],locrian:[0,1,3,5,6,8,10],wholeTone:[0,2,4,6,8,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10],chromatic:[0,1,2,3,4,5,6,7,8,9,10,11],blues:[0,3,5,6,7,10],diminished:[0,2,3,5,6,8,9,11],neapolitanMinor:[0,1,3,5,7,8,11],neapolitanMajor:[0,1,3,5,7,9,11],enigmatic:[0,1,4,6,8,10,11],doubleHarmonic:[0,1,4,5,7,8,11],octatonic:[0,2,3,5,6,8,9,11],bebopDominant:[0,2,4,5,7,9,10,11],bebopMajor:[0,2,4,5,7,8,9,11],bebopMinor:[0,2,3,5,7,8,9,11],bebopDorian:[0,2,3,4,5,7,9,10],harmonicMajor:[0,2,4,5,7,8,11],hungarianMinor:[0,2,3,6,7,8,11],hungarianMajor:[0,3,4,6,7,9,10],oriental:[0,1,4,5,6,9,10],romanianMinor:[0,2,3,6,7,9,10],spanishGypsy:[0,1,4,5,7,8,10],jewish:[0,1,4,5,7,8,10],hindu:[0,2,4,5,7,8,10],japanese:[0,1,5,7,8],hirajoshi:[0,2,3,7,8],kumoi:[0,2,3,7,9],inSen:[0,1,5,7,10],iwato:[0,1,5,6,10],yo:[0,2,5,7,9],minorBlues:[0,3,5,6,7,10],algerian:[0,2,3,5,6,7,8,11],augmented:[0,3,4,7,8,11],balinese:[0,1,3,7,8],byzantine:[0,1,4,5,7,8,11],chinese:[0,4,6,7,11],egyptian:[0,2,5,7,10],eightToneSpanish:[0,1,3,4,5,6,8,10],hawaiian:[0,2,3,5,7,9,10],hindustan:[0,2,4,5,7,8,10],persian:[0,1,4,5,6,8,11],eastIndianPurvi:[0,1,4,6,7,8,11],orientalA:[0,1,4,5,6,9,10]};function scale(s,e="major",r=4){const n=SCALES[e];if(!n)throw new Error(`Unknown scale ${e}`);let o=s%n.length;o<0&&(o+=n.length);let a=Math.floor(s/n.length);return 60+(r+a)*12+n[o]}let listenerQueue=[],atom=(s,e)=>{let r,n=[],o={lc:0,l:e||0,value:s,set(a){o.value=a,o.notify()},get(){return o.lc||o.listen(()=>{})(),o.value},notify(a){r=n;let l=!listenerQueue.length;for(let c=0;c{n===r&&(n=n.slice());let c=n.indexOf(a);~c&&(n.splice(c,2),o.lc--,o.lc||o.off())}},subscribe(a,l){let c=o.listen(a,l);return a(o.value),c},off(){}};return o},map=(s={})=>{let e=atom(s);return e.setKey=function(r,n){typeof n>"u"?r in e.value&&(e.value={...e.value},delete e.value[r],e.notify(r)):e.value[r]!==n&&(e.value={...e.value,[r]:n},e.notify(r))},e};if(typeof DelayNode<"u"){class s extends DelayNode{constructor(r,n,o,a){super(r),n=Math.abs(n),this.delayTime.value=o;const l=r.createGain();l.gain.value=Math.min(Math.abs(a),.995),this.feedback=l.gain;const c=r.createGain();return c.gain.value=n,this.delayGain=c,this.connect(l),this.connect(c),l.connect(this),this.connect=h=>c.connect(h),this}start(r){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,r+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,r,n){return new s(this,e,r,n)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(s,e=1){const r=this.sampleRate*s,n=this.createBuffer(e,r,this.sampleRate),o=n.getChannelData(0);for(let a=0;a(e.buffer=this.impulseResponse(r),e.duration=s,e),e.setDuration(s),e});var q={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class s extends GainNode{constructor(r,n){if(super(r),!q[n])throw new Error("vowel: unknown vowel "+n);const{gains:o,qs:a,freqs:l}=q[n],c=r.createGain();for(let h=0;h<5;h++){const f=r.createGain();f.gain.value=o[h];const d=r.createBiquadFilter();d.type="bandpass",d.Q.value=a[h],d.frequency.value=l[h],this.connect(d),d.connect(f),f.connect(c)}return c.gain.value=8,this.connect=h=>c.connect(h),this}}AudioContext.prototype.createVowelFilter=function(e){return new s(this,e)}}const ce=s=>{var o;if(typeof s!="string")return[];const[e,r="",n]=((o=s.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:o.slice(1))||[];return e?[e,r,n?Number(n):void 0]:[]},re={c:0,d:2,e:4,f:5,g:7,a:9,b:11},ie={"#":1,b:-1,s:1,f:-1},L=(s,e=3)=>{const[r,n,o=e]=ce(s);if(!r)throw new Error('not a note: "'+s+'"');const a=re[r.toLowerCase()],l=(n==null?void 0:n.split("").reduce((c,h)=>c+ie[h],0))||0;return(Number(o)+1)*12+a+l},se=s=>Math.pow(2,(s-69)/12)*440,ae=(s,e,r)=>Math.min(Math.max(s,e),r),ge=s=>12*Math.log(s/440)/Math.LN2+69,de=(s,e)=>{if(typeof s!="object")throw new Error("valueToMidi: expected object value");let{freq:r,note:n}=s;if(typeof r=="number")return ge(r);if(typeof n=="string")return L(n);if(typeof n=="number")return n;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},ue="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function k(s){const e=C().createGain();return e.gain.value=s,e}const Ie=({s,freq:e,t:r})=>{const n=C().createOscillator();return n.type=s||"triangle",n.frequency.value=Number(e),n.start(r),{node:n,stop:o=>n.stop(o)}},ee=(s,e,r,n,o,a)=>{const l=C().createGain();return l.gain.setValueAtTime(0,a),l.gain.linearRampToValueAtTime(o,a+s),l.gain.linearRampToValueAtTime(r*o,a+s+e),{node:l,stop:c=>{l.gain.setValueAtTime(r*o,c),l.gain.linearRampToValueAtTime(0,c+n)}}},Q=(s,e,r)=>{const n=C().createBiquadFilter();return n.type=s,n.frequency.value=e,n.Q.value=r,n},E=map();function te(s,e,r={}){E.setKey(s,{onTrigger:e,data:r})}function U(s){return E.get()[s]}let J;const C=()=>(J||(J=new AudioContext),J);let W;const j=()=>{const s=C();return W||(W=s.createGain(),W.connect(s.destination)),W};let D;function le(){return D||(D=C().audioWorklet.addModule(ue),D)}function x(s,e,r){const n=new AudioWorkletNode(s,e);return Object.entries(r).forEach(([o,a])=>{n.parameters.get(o).value=a}),n}async function Ce(s={}){const{disableWorklets:e=!1}=s;typeof window<"u"&&(await C().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await le().catch(r=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",r)}))}async function ve(s){return new Promise(e=>{document.addEventListener("click",async function r(){await Ce(s),e(),document.removeEventListener("click",r)})})}let G={};function fe(s,e,r,n){var o;if(r=ae(r,0,.98),!G[s]){const a=C().createFeedbackDelay(1,e,r);(o=a.start)==null||o.call(a,n),a.connect(j()),G[s]=a}return G[s].delayTime.value!==e&&G[s].delayTime.setValueAtTime(e,n),G[s].feedback.value!==r&&G[s].feedback.setValueAtTime(r,n),G[s]}let w={};function Ae(s,e=2){if(!w[s]){const r=C().createReverb(e);r.connect(j()),w[s]=r}return w[s].duration!==e&&(w[s]=w[s].setDuration(e),w[s].duration=e),w[s]}function _(s,e,r){const n=k(r);return s.connect(n),n.connect(e),n}const he=async(s,e,r)=>{const n=C();if(typeof s!="object")throw new Error(`expected hap.value to be an object, but got "${s}". Hint: append .note() or .s() to the end`,"error");let o=n.currentTime+e,{s:a="triangle",bank:l,source:c,gain:h=.8,cutoff:f,resonance:d=1,hcutoff:m,hresonance:v=1,bandf:A,bandq:T=1,coarse:B,crush:Y,shape:F,pan:ke,vowel:Qe,delay:xe=0,delayfeedback:Te=.5,delaytime:Le=.25,orbit:Me=1,room:ot,size:Fe=2,velocity:Ve=1}=s;h*=Ve;let at=[];const dt=()=>{at.forEach(lt=>lt==null?void 0:lt.disconnect())};l&&a&&(a=`${l}_${a}`);let ct;if(c)ct=c(o,s,r);else if(U(a)){const{onTrigger:lt}=U(a),st=await lt(o,s,dt);st&&(ct=st.node,st.stop(o+r))}else throw new Error(`sound ${a} not found! Is it loaded?`);if(!ct||n.currentTime>o)return;const nt=[];if(nt.push(ct),nt.push(k(h)),f!==void 0&&nt.push(Q("lowpass",f,d)),m!==void 0&&nt.push(Q("highpass",m,v)),A!==void 0&&nt.push(Q("bandpass",A,T)),Qe!==void 0&&nt.push(n.createVowelFilter(Qe)),B!==void 0&&nt.push(x(n,"coarse-processor",{coarse:B})),Y!==void 0&&nt.push(x(n,"crush-processor",{crush:Y})),F!==void 0&&nt.push(x(n,"shape-processor",{shape:F})),ke!==void 0){const lt=n.createStereoPanner();lt.pan.value=2*ke-1,nt.push(lt)}const ft=k(1);nt.push(ft),ft.connect(j());let it;if(xe>0&&Le>0&&Te>0){const lt=fe(Me,Le,Te,o);it=_(ft,lt,xe)}let pt;if(ot>0&&Fe>0){const lt=Ae(Me,Fe);pt=_(ft,lt,ot)}nt.slice(1).reduce((lt,st)=>lt.connect(st),nt[0]),at=nt.concat([it,pt])},O={};function pe(s,e){var r=e?1e3:1024;if(s=r);return s.toFixed(1)+" "+n[o]}const be=async(s,e,r,n,o,a,l)=>{let c=0,h=de({freq:o,note:r},36);c=h-36;const f=C();let d;if(Array.isArray(a))d=a[e%a.length];else{const T=Y=>L(Y)-h,B=Object.keys(a).filter(Y=>!Y.startsWith("_")).reduce((Y,F,ke)=>!Y||Math.abs(T(F))(O[s]||(O[s]=fetch(s).then(o=>o.arrayBuffer()).then(async o=>(pe(o.byteLength),await e.decodeAudioData(o)))),O[s]);function ye(s){const e=C(),r=e.createBuffer(s.numberOfChannels,s.length,e.sampleRate);for(let n=0;nObject.entries(s).forEach(([n,o])=>{if(typeof o=="string"&&(o=[o]),typeof o!="object")throw new Error("wrong sample map format for "+n);r=o._base||r;const a=l=>(r+l).replace("github:","https://raw.githubusercontent.com/");Array.isArray(o)?o=o.map(a):o=Object.fromEntries(Object.entries(o).map(([l,c])=>[l,(typeof c=="string"?[c]:c).map(a)])),e(n,o)});let ne={};function Ge(s){const e=Object.entries(ne).find(([r])=>s.startsWith(r));if(e)return e[1]}const we=async(s,e=s._base||"",r={})=>{if(typeof s=="string"){const a=Ge(s);if(a)return a(s);if(s.startsWith("github:")){let[c,h]=s.split("github:");h=h.endsWith("/")?h.slice(0,-1):h,s=`https://raw.githubusercontent.com/${h}/strudel.json`}if(typeof fetch!="function")return;const l=s.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(s).then(c=>c.json()).then(c=>we(c,e||c._base||l,r)).catch(c=>{throw console.error(c),new Error(`error loading "${s}"`)})}const{prebake:n,tag:o}=r;me(s,(a,l)=>te(a,(c,h,f)=>Xe(c,h,f,l),{type:"sample",samples:l,baseUrl:e,prebake:n,tag:o}),e)},$=[];async function Xe(s,e,r,n,o){const{s:a,freq:l,unit:c,nudge:h=0,cut:f,loop:d,clip:m=void 0,n:v=0,note:A,speed:T=1,begin:B=0,end:Y=1}=e;if(T===0)return;const F=C(),{attack:ke=.001,decay:Qe=.001,sustain:xe=1,release:Te=.001}=e,Le=s+h,Me=await be(a,v,A,T,l,n,o);if(F.currentTime>s||!Me)return;Me.playbackRate.value=Math.abs(T)*Me.playbackRate.value,c==="c"&&(Me.playbackRate.value=Me.playbackRate.value*Me.buffer.duration*1);const ot=B*Me.buffer.duration;Me.start(Le,ot);const Fe=Me.buffer.duration/Me.playbackRate.value,{node:Ve,stop:at}=ee(ke,Qe,xe,Te,1,s);Me.connect(Ve);const dt=F.createGain();Ve.connect(dt),Me.onended=function(){Me.disconnect(),Ve.disconnect(),dt.disconnect(),r()};const ct={node:dt,bufferSource:Me,stop:(nt,ft=m===void 0)=>{let it=nt;ft&&(it=s+(Y-B)*Fe),Me.stop(it+Te),at(it)}};if(f!==void 0){const nt=$[f];nt&&(nt.node.gain.setValueAtTime(1,Le),nt.node.gain.linearRampToValueAtTime(0,Le+.01)),$[f]=ct}return ct}function Ke(){["sine","square","triangle","sawtooth"].forEach(s=>{te(s,(e,r,n)=>{const{attack:o=.001,decay:a=.05,sustain:l=.6,release:c=.01}=r;let{n:h,note:f,freq:d}=r;h=f||h||36,typeof h=="string"&&(h=L(h)),!d&&typeof h=="number"&&(d=se(h));const{node:m,stop:v}=Ie({t:e,s,freq:d}),A=k(.3),{node:T,stop:B}=ee(o,a,l,c,1,e);return m.onended=()=>{m.disconnect(),A.disconnect(),n()},{node:m.connect(A).connect(T),stop:Y=>{B(Y),v(Y+c)}}},{type:"synth",prebake:!0})})}class Sound{constructor(e){z(this,"values");z(this,"unit",e=>(this.values.unit=e,this));z(this,"frequency",e=>(this.values.frequency=e,this));z(this,"nudge",e=>(this.values.nudge=e,this));z(this,"cut",e=>(this.values.cut=e,this));z(this,"loop",e=>(this.values.loop=e,this));z(this,"clip",e=>(this.values.clip=e,this));z(this,"n",e=>(this.values.n=e,this));z(this,"note",e=>(this.values.note=e,this));z(this,"speed",e=>(this.values.speed=e,this));z(this,"begin",e=>(this.values.begin=e,this));z(this,"end",e=>(this.values.end=e,this));z(this,"gain",e=>(this.values.gain=e,this));z(this,"cutoff",e=>(this.values.cutoff=e,this));z(this,"resonance",e=>(this.values.resonance=e,this));z(this,"hcutoff",e=>(this.values.hcutoff=e,this));z(this,"hresonance",e=>(this.values.hresonance=e,this));z(this,"bandf",e=>(this.values.bandf=e,this));z(this,"bandq",e=>(this.values.bandq=e,this));z(this,"coarse",e=>(this.values.coarse=e,this));z(this,"crush",e=>(this.values.crush=e,this));z(this,"shape",e=>(this.values.shape=e,this));z(this,"pan",e=>(this.values.pan=e,this));z(this,"vowel",e=>(this.values.vowel=e,this));z(this,"delay",e=>(this.values.delay=e,this));z(this,"delayfeedback",e=>(this.values.delayfeedback=e,this));z(this,"delaytime",e=>(this.values.delaytime=e,this));z(this,"orbit",e=>(this.values.orbit=e,this));z(this,"room",e=>(this.values.room=e,this));z(this,"size",e=>(this.values.size=e,this));z(this,"velocity",e=>(this.values.velocity=e,this));z(this,"out",()=>he(this.values,0));this.values={s:e}}}const cache=new LRUCache({max:1e3,ttl:1e3*60*5});Array.prototype.in=function(s){return this.includes(s)};Promise.all([ve(),we("github:tidalcycles/Dirt-Samples/master"),we("github:Bubobubobubobubo/Topos-Samples/main"),Ke()]);class UserAPI{constructor(e){z(this,"variables",{});z(this,"iterators",{});z(this,"_drunk",new DrunkWalk(-100,100,!1));z(this,"MidiConnection",new MidiConnection);z(this,"load");z(this,"s",this.script);z(this,"cs",this.clear_script);z(this,"cps",this.copy_script);z(this,"$",this.iterator);z(this,"v",this.variable);z(this,"dv",this.delete_variable);z(this,"cv",this.clear_variables);z(this,"rI",this.randI);z(this,"r",this.rand);z(this,"quant",this.quantize);z(this,"cmp",this.clamp);z(this,"tempo",this.bpm);z(this,"silence",this.stop);z(this,"hush",this.stop);z(this,"abs",Math.abs);z(this,"d",async(e,r=0)=>{he(e,r)});z(this,"sound",e=>new Sound(e));z(this,"samples",we);z(this,"log",console.log);z(this,"scale",scale);this.app=e,this.load=we("github:tidalcycles/Dirt-Samples/master")}get time(){return this.app.audioContext.currentTime}get mouseX(){return this.app._mouseX}get mouseY(){return this.app._mouseY}script(...e){e.forEach(r=>{tryEvaluate(this.app,this.app.universes[this.app.selected_universe].locals[r])})}clear_script(e){this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}}copy_script(e,r){this.app.universes[this.app.selected_universe].locals[r]=this.app.universes[this.app.selected_universe].locals[e]}midi_outputs(){return console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs}midi_output(e){e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())}note(e,r={}){const n=r.channel?r.channel:0,o=r.velocity?r.velocity:100,a=r.duration?r.duration:.5;this.MidiConnection.sendMidiNote(e,n,o,a)}sysex(e){this.MidiConnection.sendSysExMessage(e)}pitch_bend(e,r){this.MidiConnection.sendPitchBend(e,r)}program_change(e,r){this.MidiConnection.sendProgramChange(e,r)}midi_clock(){this.MidiConnection.sendMidiClock()}control_change({control:e=20,value:r=0,channel:n=0}){this.MidiConnection.sendMidiControlChange(e,r,n)}midi_panic(){this.MidiConnection.panic()}zn(e,r={}){const n=cachedPattern(e,r);if(n.hasStarted()){const o=n.peek(),a=o.modifiedEvent?o.modifiedEvent:o,l=r.channel?r.channel:0,c=r.velocity?r.velocity:100,h=r.sustain?r.sustain:.5;a instanceof Pitch?(a.bend&&this.MidiConnection.sendPitchBend(a.bend,l),this.MidiConnection.sendMidiNote(a.note,l,c,h),a.bend&&this.MidiConnection.sendPitchBend(8192,l)):a instanceof Chord&&a.pitches.forEach(f=>{f.bend&&this.MidiConnection.sendPitchBend(f.bend,l),this.MidiConnection.sendMidiNote(f.note,l,c,h),f.bend&&this.MidiConnection.sendPitchBend(8192,l)}),o.modifiedEvent&&(o.modifiedEvent=void 0)}return n.next()}iterator(e,r,n){return e in this.iterators?(this.iterators[e].limit!==r&&(this.iterators[e].value=0,this.iterators[e].limit=r),this.iterators[e].step!==n&&(this.iterators[e].step=n??this.iterators[e].step),this.iterators[e].value+=this.iterators[e].step,this.iterators[e].limit!==void 0&&this.iterators[e].value>this.iterators[e].limit&&(this.iterators[e].value=0)):this.iterators[e]={value:0,step:n??1,limit:r},this.iterators[e].value}get drunk(){return this._drunk.step(),this._drunk.getPosition()}set drunk(e){this._drunk.position=e}set drunk_max(e){this._drunk.max=e}set drunk_min(e){this._drunk.min=e}set drunk_wrap(e){this._drunk.toggleWrap(e)}variable(e,r){return typeof e=="string"&&r===void 0?this.variables[e]:(this.variables[e]=r,this.variables[e])}delete_variable(e){delete this.variables[e]}clear_variables(){this.variables={}}_sequence_key_generator(e){return btoa(JSON.stringify(e))}seqmod(...e){if(cache.has(this._sequence_key_generator(e))){let r=cache.get(this._sequence_key_generator(e));return r.options.currentIteration++,r.options.currentIteration===r.options.nextTarget&&(r.options.index++,r.options.nextTarget=e[r.options.index%e.length],r.options.currentIteration=0),cache.set(this._sequence_key_generator(e),{pattern:e,options:r.options}),r.options.currentIteration===0}else{let r={index:-1,nextTarget:this.app.clock.ticks_before_new_bar,currentIteration:0};return typeof e[e.length-1]=="object"&&(r={...e.pop(),...r}),r.nextTarget=this.app.clock.ticks_before_new_bar,r.currentIteration===r.nextTarget&&(r.index++,r.nextTarget=e[r.index%e.length],r.currentIteration=0),cache.set(this._sequence_key_generator(e),{pattern:e,options:r}),r.currentIteration===0}}seq(...e){if(cache.has(this._sequence_key_generator(e))){let r=cache.get(this._sequence_key_generator(e));return r.options.index+=1,cache.set(this._sequence_key_generator(e),r),r.pattern[r.options.index%r.pattern.length]}else{let r={index:0};return typeof e[e.length-1]=="object"&&(r={...e.pop(),...r}),cache.set(this._sequence_key_generator(e),{pattern:e,options:r}),cache.get(this._sequence_key_generator(e))}}pick(...e){return e[Math.floor(Math.random()*e.length)]}seqbeat(...e){return e[this.ebeat%e.length]}mel(e,r){return r[e%r.length]}seqbar(...e){return e[(this.app.clock.time_position.bar+1)%e.length]}seqpulse(...e){return e[this.app.clock.time_position.pulse%e.length]}randI(e,r){return Math.floor(Math.random()*(r-e+1))+e}rand(e,r){return Math.random()*(r-e)+e}quantize(e,r){if(r.length===0)return e;let n=r[0];return r.forEach(o=>{Math.abs(o-e)500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e)}bpb(e){return e===void 0?this.app.clock.time_signature[0]:(e<1&&console.log(`Setting bpb to ${e}`),this.app.clock.time_signature[0]=e,e)}ppqn(e){return e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e)}time_signature(e,r){this.app.clock.time_signature=[e,r]}almostNever(){return Math.random()>.9}sometimes(){return Math.random()>.5}rarely(){return Math.random()>.75}often(){return Math.random()>.25}almostAlways(){return Math.random()>.1}dice(e){return Math.floor(Math.random()*e)+1}get i(){return this.app.universes[this.app.selected_universe].global.evaluations}set i(e){this.app.universes[this.app.selected_universe].global.evaluations=e}get bar(){return this.app.clock.time_position.bar}get tick(){return this.app.clock.tick}get pulse(){return this.app.clock.time_position.pulse}get beat(){return this.app.clock.time_position.beat}get ebeat(){return this.app.clock.beats_since_origin}get epulse(){return this.app.clock.pulses_since_origin}onbar(e,...r){const n=[...Array(e).keys()].map(o=>o+1);return console.log(r.some(o=>n.includes(o%e))),r.some(o=>n.includes(o%e))}onbeat(...e){let r=[];return e.forEach(n=>{n=n%this.app.clock.time_signature[0]+1;let o=Math.floor(n),a=n-o;r.push(o===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===a*this.app.clock.ppqn)}),r.some(n=>n==!0)}stop(){this.app.clock.pause(),this.app.setButtonHighlighting("pause",!0)}prob(e){return Math.random()*100.5}min(...e){return Math.min(...e)}max(...e){return Math.max(...e)}limit(e,r,n){return Math.min(Math.max(e,r),n)}delay(e,r){setTimeout(r,e)}delayr(e,r,n){[...Array(r).keys()].map(a=>e*a).forEach((a,l)=>{setTimeout(n,a)})}mod(...e){return e.some(r=>this.app.clock.time_position.pulse%r===0)}modbar(...e){return e.some(r=>this.app.clock.time_position.bar%r===0)}euclid(e,r,n,o=0){return this._euclidean_cycle(r,n,o)[e%n]}_euclidean_cycle(e,r,n=0){function o(c,h){const f=c.length,d=(h+1)%f;return c[h]>c[d]}if(e>=r)return[!0];const a=Array.from({length:r},(c,h)=>(e*(h-1)%r+r)%r);let l=a.map((c,h)=>o(a,h));return n!=0&&(l=l.slice(n).concat(l.slice(0,n))),l}bin(e,r){let o=r.toString(2).split("").map(a=>a==="1");return o[e%o.length]}gold(){}line(e,r,n=1){const o=[];if(r>e&&n>0||r0?1:-1}usquare(e=1,r=0){return(this.square(e,r)+1)/2}noise(){return Math.random()*2-1}rate(e){}}class Editor{constructor(){z(this,"universes",template_universes);z(this,"selected_universe");z(this,"local_index",1);z(this,"editor_mode","local");z(this,"fontSize");z(this,"withLineNumbers");z(this,"vimModeCompartment");z(this,"chosenLanguage");z(this,"settings",new AppSettings);z(this,"editorExtensions",[]);z(this,"userPlugins",[]);z(this,"state");z(this,"api");z(this,"audioContext");z(this,"view");z(this,"clock");z(this,"manualPlay",!1);z(this,"_mouseX",0);z(this,"_mouseY",0);z(this,"play_buttons",[document.getElementById("play-button-1"),document.getElementById("play-button-2")]);z(this,"pause_buttons",[document.getElementById("pause-button-1"),document.getElementById("pause-button-2")]);z(this,"stop_buttons",[document.getElementById("stop-button-1"),document.getElementById("stop-button-2")]);z(this,"clear_buttons",[document.getElementById("clear-button-1"),document.getElementById("clear-button-2")]);z(this,"local_button",document.getElementById("local-button"));z(this,"global_button",document.getElementById("global-button"));z(this,"init_button",document.getElementById("init-button"));z(this,"note_button",document.getElementById("note-button"));z(this,"settings_button",document.getElementById("settings-button"));z(this,"close_settings_button",document.getElementById("close-settings-button"));z(this,"universe_viewer",document.getElementById("universe-viewer"));z(this,"buffer_modal",document.getElementById("modal-buffers"));z(this,"buffer_search",document.getElementById("buffer-search"));z(this,"local_script_tabs",document.getElementById("local-script-tabs"));z(this,"font_size_slider",document.getElementById("font-size-slider"));z(this,"font_size_witness",document.getElementById("font-size-witness"));z(this,"line_numbers_checkbox",document.getElementById("show-line-numbers"));z(this,"normal_mode_button",document.getElementById("normal-mode"));z(this,"vim_mode_button",document.getElementById("vim-mode"));this.selected_universe=this.settings.selected_universe,this.universe_viewer.innerHTML=`Topos: ${this.selected_universe}`,this.universes={...template_universes,...this.settings.universes},this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new Clock(this,this.audioContext),this.api=new UserAPI(this),this.vimModeCompartment=new Compartment,this.withLineNumbers=new Compartment,this.chosenLanguage=new Compartment,this.fontSize=new Compartment;const e=this.settings.vimMode?vim():[],r=this.settings.line_numbers?lineNumbers():[],n=EditorView.theme({"&":{fontSize:`${this.settings.font_size}px`},".cm-gutters":{fontSize:`${this.settings.font_size}px`}});this.editorExtensions=[this.withLineNumbers.of(r),this.fontSize.of(n),this.vimModeCompartment.of(e),editorSetup,oneDark,this.chosenLanguage.of(javascript()),EditorView.updateListener.of(l=>{})];let o=new Compartment;this.state=EditorState.create({extensions:[...this.editorExtensions,EditorView.lineWrapping,o.of(this.userPlugins)],doc:this.universes[this.selected_universe].locals[this.local_index].candidate}),this.view=new EditorView({parent:document.getElementById("editor"),state:this.state}),document.addEventListener("keydown",l=>{l.key==="Tab"&&l.preventDefault(),l.ctrlKey&&l.key==="s"&&(l.preventDefault(),this.setButtonHighlighting("pause",!0),this.clock.pause()),l.ctrlKey&&l.key==="r"&&(l.preventDefault(),this.setButtonHighlighting("stop",!0),this.clock.stop()),l.ctrlKey&&l.key==="p"&&(l.preventDefault(),this.setButtonHighlighting("play",!0),this.clock.start()),(l.key==="v"||l.key==="V")&&l.ctrlKey&&l.shiftKey&&(this.settings.vimMode=!this.settings.vimMode,l.preventDefault(),this.userPlugins=this.settings.vimMode?[]:[vim()],this.view.dispatch({effects:o.reconfigure(this.userPlugins)})),(l.key==="Enter"||l.key==="Return")&&l.ctrlKey&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#2d313d",200)),(l.key==="Enter"&&l.shiftKey||l.key==="e"&&l.ctrlKey)&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#2d313d",200)),l.ctrlKey&&l.key==="b"&&this.openBuffersModal(),l.shiftKey&&l.key==="Escape"&&this.openSettingsModal(),l.ctrlKey&&l.key==="l"&&(l.preventDefault(),this.changeModeFromInterface("local"),this.view.focus()),l.ctrlKey&&l.key==="n"&&(l.preventDefault(),this.changeModeFromInterface("notes"),this.view.focus()),l.ctrlKey&&l.key==="g"&&(l.preventDefault(),this.changeModeFromInterface("global"),this.view.focus()),l.ctrlKey&&l.key==="i"&&(l.preventDefault(),this.changeModeFromInterface("init"),this.changeToLocalBuffer(0),this.view.focus()),[112,113,114,115,116,117,118,119,120].forEach((c,h)=>{l.keyCode===c&&(l.preventDefault(),l.ctrlKey?this.api.script(c-111):(this.changeModeFromInterface("local"),this.changeToLocalBuffer(h)))}),l.keyCode==121&&this.changeModeFromInterface("global"),l.keyCode==122&&this.changeModeFromInterface("init")});const a=document.querySelectorAll('[id^="tab-"]');for(let l=0;l{a[l].classList.add("bg-orange-300");for(let d=0;d{l.addEventListener("click",()=>{this.setButtonHighlighting("play",!0),this.clock.start()})}),this.clear_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(this.universes[this.selected_universe]=template_universe,this.updateEditorView())})}),this.pause_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("pause",!0),this.clock.pause()})}),this.stop_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("stop",!0),this.clock.stop()})}),this.local_button.addEventListener("click",()=>this.changeModeFromInterface("local")),this.global_button.addEventListener("click",()=>this.changeModeFromInterface("global")),this.init_button.addEventListener("click",()=>this.changeModeFromInterface("init")),this.note_button.addEventListener("click",()=>this.changeModeFromInterface("notes")),this.settings_button.addEventListener("click",()=>{var h;this.font_size_slider.value=this.settings.font_size.toString(),this.font_size_witness.innerHTML=`Font Size: ${this.settings.font_size}px`,(h=this.font_size_witness)==null||h.setAttribute("style",`font-size: ${this.settings.font_size}px;`),this.line_numbers_checkbox.checked=this.settings.line_numbers;let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.remove("invisible"),c==null||c.classList.add("invisible")}),this.close_settings_button.addEventListener("click",()=>{let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.add("invisible"),c==null||c.classList.remove("invisible")}),this.font_size_slider.addEventListener("input",()=>{const l=this.font_size_slider.value;this.settings.font_size=parseInt(l),this.font_size_witness.style.fontSize=`${l}px`,this.font_size_witness.innerHTML=`Font Size: ${l}px`;let c=EditorView.theme({"&":{fontSize:l+"px"},".cm-gutters":{fontSize:l+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(c)}),this.settings.font_size=parseInt(l)}),this.normal_mode_button.addEventListener("click",()=>{this.settings.vimMode=!1,this.view.dispatch({effects:this.vimModeCompartment.reconfigure([])})}),this.line_numbers_checkbox.addEventListener("change",()=>{let l=!!this.line_numbers_checkbox.checked;this.settings.line_numbers=l,this.view.dispatch({effects:this.withLineNumbers.reconfigure(l?[lineNumbers()]:[])})}),this.vim_mode_button.addEventListener("click",()=>{this.settings.vimMode=!0,this.view.dispatch({effects:this.vimModeCompartment.reconfigure(vim())})}),this.buffer_search.addEventListener("keydown",l=>{if(l.key==="Enter"){let c=this.buffer_search.value;c.length>2&&c.length<20&&(this.loadUniverse(c),this.settings.selected_universe=c,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus())}}),tryEvaluate(this,this.universes[this.selected_universe.toString()].init)}get note_buffer(){return this.universes[this.selected_universe.toString()].notes}get global_buffer(){return this.universes[this.selected_universe.toString()].global}get init_buffer(){return this.universes[this.selected_universe.toString()].init}get local_buffer(){return this.universes[this.selected_universe.toString()].locals[this.local_index]}changeToLocalBuffer(e){const r=document.querySelectorAll('[id^="tab-"]'),n=r[e];n.classList.add("bg-orange-300");for(let a=0;a{r.forEach(a=>{let l=a.children[0];l.classList.contains("text-orange-300")&&(l.classList.remove("text-orange-300"),a.classList.remove("text-orange-300"))}),o.children[0].classList.remove("text-white"),o.children[0].classList.add("text-orange-300"),o.classList.add("text-orange-300")};switch(e){case"local":this.local_script_tabs.classList.contains("hidden")&&this.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,this.changeToLocalBuffer(this.local_index),n(this.local_button);break;case"global":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="global",n(this.global_button);break;case"init":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="init",n(this.init_button);break;case"notes":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",n(this.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[markdown()]:[javascript()])}),this.updateEditorView()}setButtonHighlighting(e,r){this.flashBackground("#2d313d",200);const n=['[id^="play-button-"]','[id^="pause-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let o;switch(e){case"play":o=0;break;case"pause":o=1;break;case"clear":o=2;break;case"stop":o=3;break}document.querySelectorAll(n[o]).forEach(a=>{r&&a.children[0].classList.add("fill-orange-300")}),document.querySelectorAll(n.filter((a,l)=>l!=o).join(",")).forEach(a=>{a.children[0].classList.remove("fill-orange-300"),a.children[0].classList.remove("text-orange-300"),a.children[0].classList.remove("bg-orange-300")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}loadUniverse(e){this.currentFile().candidate=this.view.state.doc.toString();let r=e.trim();this.universes[r]===void 0&&(this.universes[r]=template_universe),this.selected_universe=r,this.settings.selected_universe=this.selected_universe,this.universe_viewer.innerHTML=`Topos: ${r}`,this.updateEditorView(),tryEvaluate(this,this.universes[this.selected_universe.toString()].init)}openSettingsModal(){document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):this.closeSettingsModal()}closeSettingsModal(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")}openBuffersModal(){document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):this.closeBuffersModal()}closeBuffersModal(){document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal").classList.add("invisible"),document.getElementById("modal-buffers").classList.add("invisible")}flashBackground(e,r){this.view.dom.style.backgroundColor=e;const n=this.view.dom.getElementsByClassName("cm-gutter");Array.from(n).forEach(o=>o.style.backgroundColor=e),setTimeout(()=>{this.view.dom.style.backgroundColor="",Array.from(n).forEach(o=>o.style.backgroundColor="")},r)}}const app=new Editor;function startClock(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal").classList.add("hidden"),document.getElementById("modal-container").classList.remove("motion-safe:animate-pulse"),document.getElementById("start-button").removeEventListener("click",startClock),document.removeEventListener("click",startClock),document.removeEventListener("keydown",startOnEnter),document.removeEventListener("click",startOnClick),app.clock.start(),app.view.focus(),app.setButtonHighlighting("play",!0)}function startOnEnter(s){(s.code==="Enter"||s.code==="Space")&&startClock()}function startOnClick(s){s.button===0&&startClock()}document.addEventListener("keydown",startOnEnter);document.addEventListener("click",startOnClick);function reportMouseCoordinates(s){app._mouseX=s.clientX,app._mouseY=s.clientY}window.addEventListener("mousemove",reportMouseCoordinates);window.addEventListener("beforeunload",()=>(event.preventDefault(),app.currentFile().candidate=app.view.state.doc.toString(),app.currentFile().committed=app.view.state.doc.toString(),app.settings.saveApplicationToLocalStorage(app.universes,app.settings),app.clock.stop(),null)); +`],!1,!1),peg$e1=peg$literalExpectation("(",!1),peg$e2=peg$literalExpectation(",",!1),peg$e3=peg$literalExpectation(")",!1),peg$e4=peg$classExpectation([["0","9"]],!1,!1),peg$e5=peg$literalExpectation(".",!1),peg$e6=peg$literalExpectation("-",!1),peg$e7=peg$literalExpectation("/",!1),peg$e8=peg$literalExpectation("\\",!1),peg$e9=peg$literalExpectation("<",!1),peg$e10=peg$literalExpectation(">",!1),peg$e11=peg$literalExpectation("[",!1),peg$e12=peg$literalExpectation("+",!1),peg$e13=peg$literalExpectation("*",!1),peg$e14=peg$literalExpectation("%",!1),peg$e15=peg$literalExpectation("&",!1),peg$e16=peg$literalExpectation("|",!1),peg$e17=peg$literalExpectation("<<",!1),peg$e18=peg$literalExpectation(">>",!1),peg$f0=function(s){return centsToSemitones(s.filter(e=>e))},peg$f1=function(){},peg$f2=function(s,e){return Math.floor(Math.random()*(e-s+1)+s)},peg$f3=function(s,e){return Math.random()*(e-s)+s},peg$f4=function(){return parseFloat(text())},peg$f5=function(){return parseInt(text())},peg$f6=function(s){return ratioToCents(s)},peg$f7=function(s,e){return s/e},peg$f8=function(s,e){return Math.pow(2,s/e)},peg$f9=function(s,e,r,n){var o=n?r/n:r;return Math.pow(o,s/e)},peg$f10=function(s,e){return parseFloat(s.toString()+"."+e.toString())},peg$f11=function(s){return s.filter(e=>e)},peg$f12=function(s){return monzoToCents(s)},peg$f13=function(){return eval(text())},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$resultsCache={},peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions))throw new Error(`Can't start parsing from rule "`+options.startRule+'".');peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function peg$literalExpectation(s,e){return{type:"literal",text:s,ignoreCase:e}}function peg$classExpectation(s,e,r){return{type:"class",parts:s,inverted:e,ignoreCase:r}}function peg$endExpectation(){return{type:"end"}}function peg$computePosDetails(s){var e=peg$posDetailsCache[s],r;if(e)return e;for(r=s-1;!peg$posDetailsCache[r];)r--;for(e=peg$posDetailsCache[r],e={line:e.line,column:e.column};rpeg$maxFailPos&&(peg$maxFailPos=peg$currPos,peg$maxFailExpected=[]),peg$maxFailExpected.push(s))}function peg$buildStructuredError(s,e,r){return new peg$SyntaxError(peg$SyntaxError.buildMessage(s,e),s,e,r)}function peg$parselines(){var s,e,r,n=peg$currPos*17+0,o=peg$resultsCache[n];if(o)return peg$currPos=o.nextPos,o.result;if(s=peg$currPos,e=[],r=peg$parseratio(),r===peg$FAILED&&(r=peg$parsevalue(),r===peg$FAILED&&(r=peg$parsemonzo(),r===peg$FAILED&&(r=peg$parseoperation(),r===peg$FAILED&&(r=peg$parsesep())))),r!==peg$FAILED)for(;r!==peg$FAILED;)e.push(r),r=peg$parseratio(),r===peg$FAILED&&(r=peg$parsevalue(),r===peg$FAILED&&(r=peg$parsemonzo(),r===peg$FAILED&&(r=peg$parseoperation(),r===peg$FAILED&&(r=peg$parsesep()))));else e=peg$FAILED;return e!==peg$FAILED&&(peg$savedPos=s,e=peg$f0(e)),s=e,peg$resultsCache[n]={nextPos:peg$currPos,result:s},s}function peg$parsesep(){var s,e,r=peg$currPos*17+1,n=peg$resultsCache[r];return n?(peg$currPos=n.nextPos,n.result):(s=peg$currPos,peg$r0.test(input.charAt(peg$currPos))?(e=input.charAt(peg$currPos),peg$currPos++):(e=peg$FAILED,peg$fail(peg$e0)),e!==peg$FAILED&&(peg$savedPos=s,e=peg$f1()),s=e,peg$resultsCache[r]={nextPos:peg$currPos,result:s},s)}function peg$parsevalue(){var s,e=peg$currPos*17+2,r=peg$resultsCache[e];return r?(peg$currPos=r.nextPos,r.result):(s=peg$parsefloat(),s===peg$FAILED&&(s=peg$parseint(),s===peg$FAILED&&(s=peg$parserandom_int(),s===peg$FAILED&&(s=peg$parserandom_float()))),peg$resultsCache[e]={nextPos:peg$currPos,result:s},s)}function peg$parserandom_int(){var s,e,r,n,o,a,l=peg$currPos*17+3,c=peg$resultsCache[l];return c?(peg$currPos=c.nextPos,c.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===40?(e=peg$c0,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e1)),e!==peg$FAILED?(r=peg$parseint(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===44?(n=peg$c1,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e2)),n!==peg$FAILED?(o=peg$parseint(),o!==peg$FAILED?(input.charCodeAt(peg$currPos)===41?(a=peg$c2,peg$currPos++):(a=peg$FAILED,peg$fail(peg$e3)),a!==peg$FAILED?(peg$savedPos=s,s=peg$f2(r,o)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[l]={nextPos:peg$currPos,result:s},s)}function peg$parserandom_float(){var s,e,r,n,o,a,l=peg$currPos*17+4,c=peg$resultsCache[l];return c?(peg$currPos=c.nextPos,c.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===40?(e=peg$c0,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e1)),e!==peg$FAILED?(r=peg$parsefloat(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===44?(n=peg$c1,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e2)),n!==peg$FAILED?(o=peg$parsefloat(),o!==peg$FAILED?(input.charCodeAt(peg$currPos)===41?(a=peg$c2,peg$currPos++):(a=peg$FAILED,peg$fail(peg$e3)),a!==peg$FAILED?(peg$savedPos=s,s=peg$f3(r,o)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[l]={nextPos:peg$currPos,result:s},s)}function peg$parsefloat(){var s,e,r,n,o,a,l,c=peg$currPos*17+5,h=peg$resultsCache[c];if(h)return peg$currPos=h.nextPos,h.result;if(s=peg$currPos,e=peg$currPos,r=[],peg$r1.test(input.charAt(peg$currPos))?(n=input.charAt(peg$currPos),peg$currPos++):(n=peg$FAILED,peg$fail(peg$e4)),n!==peg$FAILED)for(;n!==peg$FAILED;)r.push(n),peg$r1.test(input.charAt(peg$currPos))?(n=input.charAt(peg$currPos),peg$currPos++):(n=peg$FAILED,peg$fail(peg$e4));else r=peg$FAILED;if(r!==peg$FAILED?(input.charCodeAt(peg$currPos)===46?(n=peg$c3,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e5)),n!==peg$FAILED?(r=[r,n],e=r):(peg$currPos=e,e=peg$FAILED)):(peg$currPos=e,e=peg$FAILED),e===peg$FAILED){for(e=peg$currPos,input.charCodeAt(peg$currPos)===45?(r=peg$c4,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e6)),r===peg$FAILED&&(r=null),n=[],peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4));o!==peg$FAILED;)n.push(o),peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4));if(input.charCodeAt(peg$currPos)===46?(o=peg$c3,peg$currPos++):(o=peg$FAILED,peg$fail(peg$e5)),o!==peg$FAILED){if(a=[],peg$r1.test(input.charAt(peg$currPos))?(l=input.charAt(peg$currPos),peg$currPos++):(l=peg$FAILED,peg$fail(peg$e4)),l!==peg$FAILED)for(;l!==peg$FAILED;)a.push(l),peg$r1.test(input.charAt(peg$currPos))?(l=input.charAt(peg$currPos),peg$currPos++):(l=peg$FAILED,peg$fail(peg$e4));else a=peg$FAILED;a!==peg$FAILED?(r=[r,n,o,a],e=r):(peg$currPos=e,e=peg$FAILED)}else peg$currPos=e,e=peg$FAILED;if(e===peg$FAILED)if(e=peg$currPos,input.charCodeAt(peg$currPos)===46?(r=peg$c3,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e5)),r!==peg$FAILED){if(n=[],peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4)),o!==peg$FAILED)for(;o!==peg$FAILED;)n.push(o),peg$r1.test(input.charAt(peg$currPos))?(o=input.charAt(peg$currPos),peg$currPos++):(o=peg$FAILED,peg$fail(peg$e4));else n=peg$FAILED;n!==peg$FAILED?(r=[r,n],e=r):(peg$currPos=e,e=peg$FAILED)}else peg$currPos=e,e=peg$FAILED}return e!==peg$FAILED&&(peg$savedPos=s,e=peg$f4()),s=e,peg$resultsCache[c]={nextPos:peg$currPos,result:s},s}function peg$parseint(){var s,e,r,n=peg$currPos*17+6,o=peg$resultsCache[n];if(o)return peg$currPos=o.nextPos,o.result;if(s=peg$currPos,input.charCodeAt(peg$currPos)===45?peg$currPos++:peg$fail(peg$e6),e=[],peg$r1.test(input.charAt(peg$currPos))?(r=input.charAt(peg$currPos),peg$currPos++):(r=peg$FAILED,peg$fail(peg$e4)),r!==peg$FAILED)for(;r!==peg$FAILED;)e.push(r),peg$r1.test(input.charAt(peg$currPos))?(r=input.charAt(peg$currPos),peg$currPos++):(r=peg$FAILED,peg$fail(peg$e4));else e=peg$FAILED;return e!==peg$FAILED?(peg$savedPos=s,s=peg$f5()):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[n]={nextPos:peg$currPos,result:s},s}function peg$parseratio(){var s,e,r=peg$currPos*17+7,n=peg$resultsCache[r];return n?(peg$currPos=n.nextPos,n.result):(s=peg$currPos,e=peg$parseedji_ratio(),e===peg$FAILED&&(e=peg$parseedo_ratio(),e===peg$FAILED&&(e=peg$parsefrac_ratio(),e===peg$FAILED&&(e=peg$parsedecimal_ratio()))),e!==peg$FAILED&&(peg$savedPos=s,e=peg$f6(e)),s=e,peg$resultsCache[r]={nextPos:peg$currPos,result:s},s)}function peg$parsefrac_ratio(){var s,e,r,n,o=peg$currPos*17+8,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,e=peg$parseint(),e===peg$FAILED&&(e=peg$parserandom_int()),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===47?(r=peg$c5,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e7)),r!==peg$FAILED?(n=peg$parseint(),n===peg$FAILED&&(n=peg$parserandom_int()),n!==peg$FAILED?(peg$savedPos=s,s=peg$f7(e,n)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseedo_ratio(){var s,e,r,n,o=peg$currPos*17+9,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,e=peg$parseint(),e===peg$FAILED&&(e=peg$parserandom_int()),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===92?(r=peg$c6,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e8)),r!==peg$FAILED?(n=peg$parseint(),n===peg$FAILED&&(n=peg$parserandom_int()),n!==peg$FAILED?(peg$savedPos=s,s=peg$f8(e,n)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseedji_ratio(){var s,e,r,n,o,a,l,c,h=peg$currPos*17+10,f=peg$resultsCache[h];return f?(peg$currPos=f.nextPos,f.result):(s=peg$currPos,e=peg$parseint(),e===peg$FAILED&&(e=peg$parserandom_int()),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===92?(r=peg$c6,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e8)),r!==peg$FAILED?(n=peg$parseint(),n===peg$FAILED&&(n=peg$parserandom_int()),n!==peg$FAILED?(input.charCodeAt(peg$currPos)===60?(o=peg$c7,peg$currPos++):(o=peg$FAILED,peg$fail(peg$e9)),o!==peg$FAILED?(a=peg$parseint(),a===peg$FAILED&&(a=peg$parserandom_int()),a!==peg$FAILED?(input.charCodeAt(peg$currPos)===47?peg$currPos++:peg$fail(peg$e7),l=peg$parseint(),l===peg$FAILED&&(l=peg$parserandom_int()),l===peg$FAILED&&(l=null),input.charCodeAt(peg$currPos)===62?(c=peg$c8,peg$currPos++):(c=peg$FAILED,peg$fail(peg$e10)),c!==peg$FAILED?(peg$savedPos=s,s=peg$f9(e,n,a,l)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[h]={nextPos:peg$currPos,result:s},s)}function peg$parsedecimal_ratio(){var s,e,r,n,o=peg$currPos*17+11,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,e=peg$parseint(),e!==peg$FAILED?(input.charCodeAt(peg$currPos)===44?(r=peg$c1,peg$currPos++):(r=peg$FAILED,peg$fail(peg$e2)),r!==peg$FAILED?(n=peg$parseint(),n!==peg$FAILED?(peg$savedPos=s,s=peg$f10(e,n)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseints(){var s,e,r,n=peg$currPos*17+12,o=peg$resultsCache[n];if(o)return peg$currPos=o.nextPos,o.result;if(s=peg$currPos,e=[],r=peg$parseint(),r===peg$FAILED&&(r=peg$parsesep()),r!==peg$FAILED)for(;r!==peg$FAILED;)e.push(r),r=peg$parseint(),r===peg$FAILED&&(r=peg$parsesep());else e=peg$FAILED;return e!==peg$FAILED&&(peg$savedPos=s,e=peg$f11(e)),s=e,peg$resultsCache[n]={nextPos:peg$currPos,result:s},s}function peg$parsemonzo(){var s,e,r,n,o=peg$currPos*17+13,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===91?(e=peg$c9,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e11)),e!==peg$FAILED?(r=peg$parseints(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===62?(n=peg$c8,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e10)),n!==peg$FAILED?(peg$savedPos=s,s=peg$f12(r)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}function peg$parseoperation(){var s,e,r,n,o,a,l,c=peg$currPos*17+14,h=peg$resultsCache[c];if(h)return peg$currPos=h.nextPos,h.result;if(s=peg$currPos,e=peg$parsevalue(),e===peg$FAILED&&(e=peg$parseratio(),e===peg$FAILED&&(e=peg$parsemonzo(),e===peg$FAILED)))for(e=[],r=peg$parsesep();r!==peg$FAILED;)e.push(r),r=peg$parsesep();if(e!==peg$FAILED){if(r=[],n=peg$currPos,o=peg$parseoperator(),o!==peg$FAILED){if(a=peg$parsevalue(),a===peg$FAILED&&(a=peg$parseratio(),a===peg$FAILED&&(a=peg$parsemonzo(),a===peg$FAILED&&(a=peg$parsesub_operations(),a===peg$FAILED&&(a=peg$parseoperation(),a===peg$FAILED)))))for(a=[],l=peg$parsesep();l!==peg$FAILED;)a.push(l),l=peg$parsesep();a!==peg$FAILED?(o=[o,a],n=o):(peg$currPos=n,n=peg$FAILED)}else peg$currPos=n,n=peg$FAILED;if(n!==peg$FAILED)for(;n!==peg$FAILED;)if(r.push(n),n=peg$currPos,o=peg$parseoperator(),o!==peg$FAILED){if(a=peg$parsevalue(),a===peg$FAILED&&(a=peg$parseratio(),a===peg$FAILED&&(a=peg$parsemonzo(),a===peg$FAILED&&(a=peg$parsesub_operations(),a===peg$FAILED&&(a=peg$parseoperation(),a===peg$FAILED)))))for(a=[],l=peg$parsesep();l!==peg$FAILED;)a.push(l),l=peg$parsesep();a!==peg$FAILED?(o=[o,a],n=o):(peg$currPos=n,n=peg$FAILED)}else peg$currPos=n,n=peg$FAILED;else r=peg$FAILED;r!==peg$FAILED?(peg$savedPos=s,s=peg$f13()):(peg$currPos=s,s=peg$FAILED)}else peg$currPos=s,s=peg$FAILED;return peg$resultsCache[c]={nextPos:peg$currPos,result:s},s}function peg$parseoperator(){var s,e=peg$currPos*17+15,r=peg$resultsCache[e];return r?(peg$currPos=r.nextPos,r.result):(input.charCodeAt(peg$currPos)===43?(s=peg$c10,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e12)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===45?(s=peg$c4,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e6)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===42?(s=peg$c11,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e13)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===37?(s=peg$c12,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e14)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===38?(s=peg$c13,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e15)),s===peg$FAILED&&(input.charCodeAt(peg$currPos)===124?(s=peg$c14,peg$currPos++):(s=peg$FAILED,peg$fail(peg$e16)),s===peg$FAILED&&(input.substr(peg$currPos,2)===peg$c15?(s=peg$c15,peg$currPos+=2):(s=peg$FAILED,peg$fail(peg$e17)),s===peg$FAILED&&(input.substr(peg$currPos,2)===peg$c16?(s=peg$c16,peg$currPos+=2):(s=peg$FAILED,peg$fail(peg$e18))))))))),peg$resultsCache[e]={nextPos:peg$currPos,result:s},s)}function peg$parsesub_operations(){var s,e,r,n,o=peg$currPos*17+16,a=peg$resultsCache[o];return a?(peg$currPos=a.nextPos,a.result):(s=peg$currPos,input.charCodeAt(peg$currPos)===40?(e=peg$c0,peg$currPos++):(e=peg$FAILED,peg$fail(peg$e1)),e!==peg$FAILED?(r=peg$parseoperation(),r!==peg$FAILED?(input.charCodeAt(peg$currPos)===41?(n=peg$c2,peg$currPos++):(n=peg$FAILED,peg$fail(peg$e3)),n!==peg$FAILED?(e=[e,r,n],s=e):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED)):(peg$currPos=s,s=peg$FAILED),peg$resultsCache[o]={nextPos:peg$currPos,result:s},s)}if(peg$result=peg$startRuleFunction(),peg$result!==peg$FAILED&&peg$currPos===input.length)return peg$result;throw peg$result!==peg$FAILED&&peg$currPos{typeof PROCESS.emitWarning=="function"?PROCESS.emitWarning(s,e,r,n):console.error(`[${r}] ${e}: ${s}`)};let AC=globalThis.AbortController,AS=globalThis.AbortSignal;var mn;if(typeof AC>"u"){AS=class{constructor(){z(this,"onabort");z(this,"_onabort",[]);z(this,"reason");z(this,"aborted",!1)}addEventListener(n,o){this._onabort.push(o)}},AC=class{constructor(){z(this,"signal",new AS);e()}abort(n){var o,a;if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(const l of this.signal._onabort)l(n);(a=(o=this.signal).onabort)==null||a.call(o,n)}}};let s=((mn=PROCESS.env)==null?void 0:mn.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{s&&(s=!1,emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}const shouldWarn=s=>!warned.has(s),isPosInt=s=>s&&s===Math.floor(s)&&s>0&&isFinite(s),getUintArray=s=>isPosInt(s)?s<=Math.pow(2,8)?Uint8Array:s<=Math.pow(2,16)?Uint16Array:s<=Math.pow(2,32)?Uint32Array:s<=Number.MAX_SAFE_INTEGER?ZeroArray:null:null;class ZeroArray extends Array{constructor(e){super(e),this.fill(0)}}var _i;const Ti=class Ti{constructor(e,r){z(this,"heap");z(this,"length");if(!N(Ti,_i))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(e),this.length=0}static create(e){const r=getUintArray(e);if(!r)return[];Ue(Ti,_i,!0);const n=new Ti(e,r);return Ue(Ti,_i,!1),n}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};_i=new WeakMap,rt(Ti,_i,!1);let Stack=Ti;var ti,Ut,ii,ri,Vi,At,ni,Pt,vt,Je,Zt,zt,Bt,Mt,si,Et,fi,di,oi,ai,ki,_t,sr,qr,Li,pi,or,jt,Tr,yn,Qi,Gi,ar,ci,Ii,hi,wi,lr,Kr,Hi,Ar,Wi,Pr,St,Ct,cr,Jr,Ri,nr;const en=class en{constructor(e){rt(this,sr);rt(this,Tr);rt(this,ci);rt(this,hi);rt(this,lr);rt(this,Hi);rt(this,Wi);rt(this,St);rt(this,cr);rt(this,Ri);rt(this,ti,void 0);rt(this,Ut,void 0);rt(this,ii,void 0);rt(this,ri,void 0);rt(this,Vi,void 0);z(this,"ttl");z(this,"ttlResolution");z(this,"ttlAutopurge");z(this,"updateAgeOnGet");z(this,"updateAgeOnHas");z(this,"allowStale");z(this,"noDisposeOnSet");z(this,"noUpdateTTL");z(this,"maxEntrySize");z(this,"sizeCalculation");z(this,"noDeleteOnFetchRejection");z(this,"noDeleteOnStaleGet");z(this,"allowStaleOnFetchAbort");z(this,"allowStaleOnFetchRejection");z(this,"ignoreFetchAbort");rt(this,At,void 0);rt(this,ni,void 0);rt(this,Pt,void 0);rt(this,vt,void 0);rt(this,Je,void 0);rt(this,Zt,void 0);rt(this,zt,void 0);rt(this,Bt,void 0);rt(this,Mt,void 0);rt(this,si,void 0);rt(this,Et,void 0);rt(this,fi,void 0);rt(this,di,void 0);rt(this,oi,void 0);rt(this,ai,void 0);rt(this,ki,void 0);rt(this,_t,void 0);rt(this,Li,()=>{});rt(this,pi,()=>{});rt(this,or,()=>{});rt(this,jt,()=>!1);rt(this,Qi,e=>{});rt(this,Gi,(e,r,n)=>{});rt(this,ar,(e,r,n,o)=>{if(n||o)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:r=0,ttl:n,ttlResolution:o=1,ttlAutopurge:a,updateAgeOnGet:l,updateAgeOnHas:c,allowStale:h,dispose:f,disposeAfter:d,noDisposeOnSet:m,noUpdateTTL:v,maxSize:A=0,maxEntrySize:T=0,sizeCalculation:B,fetchMethod:Y,noDeleteOnFetchRejection:F,noDeleteOnStaleGet:ke,allowStaleOnFetchRejection:Qe,allowStaleOnFetchAbort:xe,ignoreFetchAbort:Te}=e;if(r!==0&&!isPosInt(r))throw new TypeError("max option must be a nonnegative integer");const Le=r?getUintArray(r):Array;if(!Le)throw new Error("invalid max value: "+r);if(Ue(this,ti,r),Ue(this,Ut,A),this.maxEntrySize=T||N(this,Ut),this.sizeCalculation=B,this.sizeCalculation){if(!N(this,Ut)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(Y!==void 0&&typeof Y!="function")throw new TypeError("fetchMethod must be a function if specified");if(Ue(this,Vi,Y),Ue(this,ki,!!Y),Ue(this,Pt,new Map),Ue(this,vt,new Array(r).fill(void 0)),Ue(this,Je,new Array(r).fill(void 0)),Ue(this,Zt,new Le(r)),Ue(this,zt,new Le(r)),Ue(this,Bt,0),Ue(this,Mt,0),Ue(this,si,Stack.create(r)),Ue(this,At,0),Ue(this,ni,0),typeof f=="function"&&Ue(this,ii,f),typeof d=="function"?(Ue(this,ri,d),Ue(this,Et,[])):(Ue(this,ri,void 0),Ue(this,Et,void 0)),Ue(this,ai,!!N(this,ii)),Ue(this,_t,!!N(this,ri)),this.noDisposeOnSet=!!m,this.noUpdateTTL=!!v,this.noDeleteOnFetchRejection=!!F,this.allowStaleOnFetchRejection=!!Qe,this.allowStaleOnFetchAbort=!!xe,this.ignoreFetchAbort=!!Te,this.maxEntrySize!==0){if(N(this,Ut)!==0&&!isPosInt(N(this,Ut)))throw new TypeError("maxSize must be a positive integer if specified");if(!isPosInt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");_e(this,Tr,yn).call(this)}if(this.allowStale=!!h,this.noDeleteOnStaleGet=!!ke,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!c,this.ttlResolution=isPosInt(o)||o===0?o:1,this.ttlAutopurge=!!a,this.ttl=n||0,this.ttl){if(!isPosInt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");_e(this,sr,qr).call(this)}if(N(this,ti)===0&&this.ttl===0&&N(this,Ut)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!N(this,ti)&&!N(this,Ut)){const Me="LRU_CACHE_UNBOUNDED";shouldWarn(Me)&&(warned.add(Me),emitWarning("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Me,en))}}static unsafeExposeInternals(e){return{starts:N(e,di),ttls:N(e,oi),sizes:N(e,fi),keyMap:N(e,Pt),keyList:N(e,vt),valList:N(e,Je),next:N(e,Zt),prev:N(e,zt),get head(){return N(e,Bt)},get tail(){return N(e,Mt)},free:N(e,si),isBackgroundFetch:r=>{var n;return _e(n=e,St,Ct).call(n,r)},backgroundFetch:(r,n,o,a)=>{var l;return _e(l=e,Wi,Pr).call(l,r,n,o,a)},moveToTail:r=>{var n;return _e(n=e,Ri,nr).call(n,r)},indexes:r=>{var n;return _e(n=e,ci,Ii).call(n,r)},rindexes:r=>{var n;return _e(n=e,hi,wi).call(n,r)},isStale:r=>{var n;return N(n=e,jt).call(n,r)}}}get max(){return N(this,ti)}get maxSize(){return N(this,Ut)}get calculatedSize(){return N(this,ni)}get size(){return N(this,At)}get fetchMethod(){return N(this,Vi)}get dispose(){return N(this,ii)}get disposeAfter(){return N(this,ri)}getRemainingTTL(e){return N(this,Pt).has(e)?1/0:0}*entries(){for(const e of _e(this,ci,Ii).call(this))N(this,Je)[e]!==void 0&&N(this,vt)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield[N(this,vt)[e],N(this,Je)[e]])}*rentries(){for(const e of _e(this,hi,wi).call(this))N(this,Je)[e]!==void 0&&N(this,vt)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield[N(this,vt)[e],N(this,Je)[e]])}*keys(){for(const e of _e(this,ci,Ii).call(this)){const r=N(this,vt)[e];r!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield r)}}*rkeys(){for(const e of _e(this,hi,wi).call(this)){const r=N(this,vt)[e];r!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield r)}}*values(){for(const e of _e(this,ci,Ii).call(this))N(this,Je)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield N(this,Je)[e])}*rvalues(){for(const e of _e(this,hi,wi).call(this))N(this,Je)[e]!==void 0&&!_e(this,St,Ct).call(this,N(this,Je)[e])&&(yield N(this,Je)[e])}[Symbol.iterator](){return this.entries()}find(e,r={}){for(const n of _e(this,ci,Ii).call(this)){const o=N(this,Je)[n],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;if(a!==void 0&&e(a,N(this,vt)[n],this))return this.get(N(this,vt)[n],r)}}forEach(e,r=this){for(const n of _e(this,ci,Ii).call(this)){const o=N(this,Je)[n],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;a!==void 0&&e.call(r,a,N(this,vt)[n],this)}}rforEach(e,r=this){for(const n of _e(this,hi,wi).call(this)){const o=N(this,Je)[n],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;a!==void 0&&e.call(r,a,N(this,vt)[n],this)}}purgeStale(){let e=!1;for(const r of _e(this,hi,wi).call(this,{allowStale:!0}))N(this,jt).call(this,r)&&(this.delete(N(this,vt)[r]),e=!0);return e}dump(){const e=[];for(const r of _e(this,ci,Ii).call(this,{allowStale:!0})){const n=N(this,vt)[r],o=N(this,Je)[r],a=_e(this,St,Ct).call(this,o)?o.__staleWhileFetching:o;if(a===void 0||n===void 0)continue;const l={value:a};if(N(this,oi)&&N(this,di)){l.ttl=N(this,oi)[r];const c=perf.now()-N(this,di)[r];l.start=Math.floor(Date.now()-c)}N(this,fi)&&(l.size=N(this,fi)[r]),e.unshift([n,l])}return e}load(e){this.clear();for(const[r,n]of e){if(n.start){const o=Date.now()-n.start;n.start=perf.now()-o}this.set(r,n.value,n)}}set(e,r,n={}){var v,A,T,B,Y;if(r===void 0)return this.delete(e),this;const{ttl:o=this.ttl,start:a,noDisposeOnSet:l=this.noDisposeOnSet,sizeCalculation:c=this.sizeCalculation,status:h}=n;let{noUpdateTTL:f=this.noUpdateTTL}=n;const d=N(this,ar).call(this,e,r,n.size||0,c);if(this.maxEntrySize&&d>this.maxEntrySize)return h&&(h.set="miss",h.maxEntrySizeExceeded=!0),this.delete(e),this;let m=N(this,At)===0?void 0:N(this,Pt).get(e);if(m===void 0)m=N(this,At)===0?N(this,Mt):N(this,si).length!==0?N(this,si).pop():N(this,At)===N(this,ti)?_e(this,Hi,Ar).call(this,!1):N(this,At),N(this,vt)[m]=e,N(this,Je)[m]=r,N(this,Pt).set(e,m),N(this,Zt)[N(this,Mt)]=m,N(this,zt)[m]=N(this,Mt),Ue(this,Mt,m),xr(this,At)._++,N(this,Gi).call(this,m,d,h),h&&(h.set="add"),f=!1;else{_e(this,Ri,nr).call(this,m);const F=N(this,Je)[m];if(r!==F){if(N(this,ki)&&_e(this,St,Ct).call(this,F)){F.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:ke}=F;ke!==void 0&&!l&&(N(this,ai)&&((v=N(this,ii))==null||v.call(this,ke,e,"set")),N(this,_t)&&((A=N(this,Et))==null||A.push([ke,e,"set"])))}else l||(N(this,ai)&&((T=N(this,ii))==null||T.call(this,F,e,"set")),N(this,_t)&&((B=N(this,Et))==null||B.push([F,e,"set"])));if(N(this,Qi).call(this,m),N(this,Gi).call(this,m,d,h),N(this,Je)[m]=r,h){h.set="replace";const ke=F&&_e(this,St,Ct).call(this,F)?F.__staleWhileFetching:F;ke!==void 0&&(h.oldValue=ke)}}else h&&(h.set="update")}if(o!==0&&!N(this,oi)&&_e(this,sr,qr).call(this),N(this,oi)&&(f||N(this,or).call(this,m,o,a),h&&N(this,pi).call(this,h,m)),!l&&N(this,_t)&&N(this,Et)){const F=N(this,Et);let ke;for(;ke=F==null?void 0:F.shift();)(Y=N(this,ri))==null||Y.call(this,...ke)}return this}pop(){var e;try{for(;N(this,At);){const r=N(this,Je)[N(this,Bt)];if(_e(this,Hi,Ar).call(this,!0),_e(this,St,Ct).call(this,r)){if(r.__staleWhileFetching)return r.__staleWhileFetching}else if(r!==void 0)return r}}finally{if(N(this,_t)&&N(this,Et)){const r=N(this,Et);let n;for(;n=r==null?void 0:r.shift();)(e=N(this,ri))==null||e.call(this,...n)}}}has(e,r={}){const{updateAgeOnHas:n=this.updateAgeOnHas,status:o}=r,a=N(this,Pt).get(e);if(a!==void 0){const l=N(this,Je)[a];if(_e(this,St,Ct).call(this,l)&&l.__staleWhileFetching===void 0)return!1;if(N(this,jt).call(this,a))o&&(o.has="stale",N(this,pi).call(this,o,a));else return n&&N(this,Li).call(this,a),o&&(o.has="hit",N(this,pi).call(this,o,a)),!0}else o&&(o.has="miss");return!1}peek(e,r={}){const{allowStale:n=this.allowStale}=r,o=N(this,Pt).get(e);if(o!==void 0&&(n||!N(this,jt).call(this,o))){const a=N(this,Je)[o];return _e(this,St,Ct).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,r={}){const{allowStale:n=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:c=this.noDisposeOnSet,size:h=0,sizeCalculation:f=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:m=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:v=this.allowStaleOnFetchRejection,ignoreFetchAbort:A=this.ignoreFetchAbort,allowStaleOnFetchAbort:T=this.allowStaleOnFetchAbort,context:B,forceRefresh:Y=!1,status:F,signal:ke}=r;if(!N(this,ki))return F&&(F.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:o,noDeleteOnStaleGet:a,status:F});const Qe={allowStale:n,updateAgeOnGet:o,noDeleteOnStaleGet:a,ttl:l,noDisposeOnSet:c,size:h,sizeCalculation:f,noUpdateTTL:d,noDeleteOnFetchRejection:m,allowStaleOnFetchRejection:v,allowStaleOnFetchAbort:T,ignoreFetchAbort:A,status:F,signal:ke};let xe=N(this,Pt).get(e);if(xe===void 0){F&&(F.fetch="miss");const Te=_e(this,Wi,Pr).call(this,e,xe,Qe,B);return Te.__returned=Te}else{const Te=N(this,Je)[xe];if(_e(this,St,Ct).call(this,Te)){const Ve=n&&Te.__staleWhileFetching!==void 0;return F&&(F.fetch="inflight",Ve&&(F.returnedStale=!0)),Ve?Te.__staleWhileFetching:Te.__returned=Te}const Le=N(this,jt).call(this,xe);if(!Y&&!Le)return F&&(F.fetch="hit"),_e(this,Ri,nr).call(this,xe),o&&N(this,Li).call(this,xe),F&&N(this,pi).call(this,F,xe),Te;const Me=_e(this,Wi,Pr).call(this,e,xe,Qe,B),Fe=Me.__staleWhileFetching!==void 0&&n;return F&&(F.fetch=Le?"stale":"refresh",Fe&&Le&&(F.returnedStale=!0)),Fe?Me.__staleWhileFetching:Me.__returned=Me}}get(e,r={}){const{allowStale:n=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:l}=r,c=N(this,Pt).get(e);if(c!==void 0){const h=N(this,Je)[c],f=_e(this,St,Ct).call(this,h);return l&&N(this,pi).call(this,l,c),N(this,jt).call(this,c)?(l&&(l.get="stale"),f?(l&&n&&h.__staleWhileFetching!==void 0&&(l.returnedStale=!0),n?h.__staleWhileFetching:void 0):(a||this.delete(e),l&&n&&(l.returnedStale=!0),n?h:void 0)):(l&&(l.get="hit"),f?h.__staleWhileFetching:(_e(this,Ri,nr).call(this,c),o&&N(this,Li).call(this,c),h))}else l&&(l.get="miss")}delete(e){var n,o,a,l;let r=!1;if(N(this,At)!==0){const c=N(this,Pt).get(e);if(c!==void 0)if(r=!0,N(this,At)===1)this.clear();else{N(this,Qi).call(this,c);const h=N(this,Je)[c];_e(this,St,Ct).call(this,h)?h.__abortController.abort(new Error("deleted")):(N(this,ai)||N(this,_t))&&(N(this,ai)&&((n=N(this,ii))==null||n.call(this,h,e,"delete")),N(this,_t)&&((o=N(this,Et))==null||o.push([h,e,"delete"]))),N(this,Pt).delete(e),N(this,vt)[c]=void 0,N(this,Je)[c]=void 0,c===N(this,Mt)?Ue(this,Mt,N(this,zt)[c]):c===N(this,Bt)?Ue(this,Bt,N(this,Zt)[c]):(N(this,Zt)[N(this,zt)[c]]=N(this,Zt)[c],N(this,zt)[N(this,Zt)[c]]=N(this,zt)[c]),xr(this,At)._--,N(this,si).push(c)}}if(N(this,_t)&&((a=N(this,Et))!=null&&a.length)){const c=N(this,Et);let h;for(;h=c==null?void 0:c.shift();)(l=N(this,ri))==null||l.call(this,...h)}return r}clear(){var e,r,n;for(const o of _e(this,hi,wi).call(this,{allowStale:!0})){const a=N(this,Je)[o];if(_e(this,St,Ct).call(this,a))a.__abortController.abort(new Error("deleted"));else{const l=N(this,vt)[o];N(this,ai)&&((e=N(this,ii))==null||e.call(this,a,l,"delete")),N(this,_t)&&((r=N(this,Et))==null||r.push([a,l,"delete"]))}}if(N(this,Pt).clear(),N(this,Je).fill(void 0),N(this,vt).fill(void 0),N(this,oi)&&N(this,di)&&(N(this,oi).fill(0),N(this,di).fill(0)),N(this,fi)&&N(this,fi).fill(0),Ue(this,Bt,0),Ue(this,Mt,0),N(this,si).length=0,Ue(this,ni,0),Ue(this,At,0),N(this,_t)&&N(this,Et)){const o=N(this,Et);let a;for(;a=o==null?void 0:o.shift();)(n=N(this,ri))==null||n.call(this,...a)}}};ti=new WeakMap,Ut=new WeakMap,ii=new WeakMap,ri=new WeakMap,Vi=new WeakMap,At=new WeakMap,ni=new WeakMap,Pt=new WeakMap,vt=new WeakMap,Je=new WeakMap,Zt=new WeakMap,zt=new WeakMap,Bt=new WeakMap,Mt=new WeakMap,si=new WeakMap,Et=new WeakMap,fi=new WeakMap,di=new WeakMap,oi=new WeakMap,ai=new WeakMap,ki=new WeakMap,_t=new WeakMap,sr=new WeakSet,qr=function(){const e=new ZeroArray(N(this,ti)),r=new ZeroArray(N(this,ti));Ue(this,oi,e),Ue(this,di,r),Ue(this,or,(a,l,c=perf.now())=>{if(r[a]=l!==0?c:0,e[a]=l,l!==0&&this.ttlAutopurge){const h=setTimeout(()=>{N(this,jt).call(this,a)&&this.delete(N(this,vt)[a])},l+1);h.unref&&h.unref()}}),Ue(this,Li,a=>{r[a]=e[a]!==0?perf.now():0}),Ue(this,pi,(a,l)=>{if(e[l]){const c=e[l],h=r[l];a.ttl=c,a.start=h,a.now=n||o();const f=a.now-h;a.remainingTTL=c-f}});let n=0;const o=()=>{const a=perf.now();if(this.ttlResolution>0){n=a;const l=setTimeout(()=>n=0,this.ttlResolution);l.unref&&l.unref()}return a};this.getRemainingTTL=a=>{const l=N(this,Pt).get(a);if(l===void 0)return 0;const c=e[l],h=r[l];if(c===0||h===0)return 1/0;const f=(n||o())-h;return c-f},Ue(this,jt,a=>e[a]!==0&&r[a]!==0&&(n||o())-r[a]>e[a])},Li=new WeakMap,pi=new WeakMap,or=new WeakMap,jt=new WeakMap,Tr=new WeakSet,yn=function(){const e=new ZeroArray(N(this,ti));Ue(this,ni,0),Ue(this,fi,e),Ue(this,Qi,r=>{Ue(this,ni,N(this,ni)-e[r]),e[r]=0}),Ue(this,ar,(r,n,o,a)=>{if(_e(this,St,Ct).call(this,n))return 0;if(!isPosInt(o))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(o=a(n,r),!isPosInt(o))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return o}),Ue(this,Gi,(r,n,o)=>{if(e[r]=n,N(this,Ut)){const a=N(this,Ut)-e[r];for(;N(this,ni)>a;)_e(this,Hi,Ar).call(this,!0)}Ue(this,ni,N(this,ni)+e[r]),o&&(o.entrySize=n,o.totalCalculatedSize=N(this,ni))})},Qi=new WeakMap,Gi=new WeakMap,ar=new WeakMap,ci=new WeakSet,Ii=function*({allowStale:e=this.allowStale}={}){if(N(this,At))for(let r=N(this,Mt);!(!_e(this,lr,Kr).call(this,r)||((e||!N(this,jt).call(this,r))&&(yield r),r===N(this,Bt)));)r=N(this,zt)[r]},hi=new WeakSet,wi=function*({allowStale:e=this.allowStale}={}){if(N(this,At))for(let r=N(this,Bt);!(!_e(this,lr,Kr).call(this,r)||((e||!N(this,jt).call(this,r))&&(yield r),r===N(this,Mt)));)r=N(this,Zt)[r]},lr=new WeakSet,Kr=function(e){return e!==void 0&&N(this,Pt).get(N(this,vt)[e])===e},Hi=new WeakSet,Ar=function(e){var a,l;const r=N(this,Bt),n=N(this,vt)[r],o=N(this,Je)[r];return N(this,ki)&&_e(this,St,Ct).call(this,o)?o.__abortController.abort(new Error("evicted")):(N(this,ai)||N(this,_t))&&(N(this,ai)&&((a=N(this,ii))==null||a.call(this,o,n,"evict")),N(this,_t)&&((l=N(this,Et))==null||l.push([o,n,"evict"]))),N(this,Qi).call(this,r),e&&(N(this,vt)[r]=void 0,N(this,Je)[r]=void 0,N(this,si).push(r)),N(this,At)===1?(Ue(this,Bt,Ue(this,Mt,0)),N(this,si).length=0):Ue(this,Bt,N(this,Zt)[r]),N(this,Pt).delete(n),xr(this,At)._--,r},Wi=new WeakSet,Pr=function(e,r,n,o){const a=r===void 0?void 0:N(this,Je)[r];if(_e(this,St,Ct).call(this,a))return a;const l=new AC,{signal:c}=n;c==null||c.addEventListener("abort",()=>l.abort(c.reason),{signal:l.signal});const h={signal:l.signal,options:n,context:o},f=(B,Y=!1)=>{const{aborted:F}=l.signal,ke=n.ignoreFetchAbort&&B!==void 0;if(n.status&&(F&&!Y?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,ke&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),F&&!ke&&!Y)return m(l.signal.reason);const Qe=A;return N(this,Je)[r]===A&&(B===void 0?Qe.__staleWhileFetching?N(this,Je)[r]=Qe.__staleWhileFetching:this.delete(e):(n.status&&(n.status.fetchUpdated=!0),this.set(e,B,h.options))),B},d=B=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=B),m(B)),m=B=>{const{aborted:Y}=l.signal,F=Y&&n.allowStaleOnFetchAbort,ke=F||n.allowStaleOnFetchRejection,Qe=ke||n.noDeleteOnFetchRejection,xe=A;if(N(this,Je)[r]===A&&(!Qe||xe.__staleWhileFetching===void 0?this.delete(e):F||(N(this,Je)[r]=xe.__staleWhileFetching)),ke)return n.status&&xe.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),xe.__staleWhileFetching;if(xe.__returned===xe)throw B},v=(B,Y)=>{var ke;const F=(ke=N(this,Vi))==null?void 0:ke.call(this,e,a,h);F&&F instanceof Promise&&F.then(Qe=>B(Qe===void 0?void 0:Qe),Y),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(B(void 0),n.allowStaleOnFetchAbort&&(B=Qe=>f(Qe,!0)))})};n.status&&(n.status.fetchDispatched=!0);const A=new Promise(v).then(f,d),T=Object.assign(A,{__abortController:l,__staleWhileFetching:a,__returned:void 0});return r===void 0?(this.set(e,T,{...h.options,status:void 0}),r=N(this,Pt).get(e)):N(this,Je)[r]=T,T},St=new WeakSet,Ct=function(e){if(!N(this,ki))return!1;const r=e;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof AC},cr=new WeakSet,Jr=function(e,r){N(this,zt)[r]=e,N(this,Zt)[e]=r},Ri=new WeakSet,nr=function(e){e!==N(this,Mt)&&(e===N(this,Bt)?Ue(this,Bt,N(this,Zt)[e]):_e(this,cr,Jr).call(this,N(this,zt)[e],N(this,Zt)[e]),_e(this,cr,Jr).call(this,N(this,Mt),e),Ue(this,Mt,e))};let LRUCache=en;const zcache=new LRUCache({max:1e3,ttl:1e3*60*5});class Ziffers{constructor(e,r={}){z(this,"values");z(this,"evaluated");z(this,"options");z(this,"index",0);z(this,"redo");z(this,"_current");r={...DEFAULT_OPTIONS,...r},r.scale&&(typeof r.scale=="string"&&(isScale(r.scale)?(r.scaleName=r.scale,r.scale=getScale(r.scale)):r.scale=parse(r.scale)),r.parsedScale=r.scale,delete r.scale),r.redo!==void 0?this.redo=r.redo:this.redo=1,r&&r.seed&&(r.randomSeed=r.seed,r.seededRandom=seededRandom(r.seed)),this.options={nodeOptions:r};try{this.values=parse$1(e,this.options),this.evaluated=this.evaluate()}catch(n){console.log(n),this.values=[],this.evaluated=[]}}update(){this.evaluated=this.evaluate()}pitches(){return this.evaluated.map(e=>e.collect("pitch"))}notes(){return this.evaluated.map(e=>e.collect("note"))}freqs(){return this.evaluated.map(e=>e.collect("freq"))}durations(){return this.evaluated.map(e=>e.collect("duration"))}next(){if(this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.update(),this._current=void 0),this._current!==void 0){const r=this.evaluated[this._current%this.evaluated.length];r.modifiedEvent&&r.modifiedEvent==null,this._current=this._current+1r.evaluate()).flat(1/0).filter(r=>r!==void 0);return e.forEach((r,n)=>{r._next=n0?n-1:e.length-1}),e}}const generateCacheKey=(...s)=>s.map(e=>JSON.stringify(e)).join(","),cachedCall=(s,e)=>{const r=generateCacheKey(s,e);if(zcache.has(r))return zcache.get(r);{const n=new Ziffers(s,e);return zcache.set(r,n),n}},cachedPattern=(s,e={})=>cachedCall(s,e);class MidiConnection{constructor(){z(this,"midiAccess",null);z(this,"midiOutputs",[]);z(this,"currentOutputIndex",0);z(this,"scheduledNotes",{});this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&console.warn("No MIDI outputs available.")}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndexn.name===e);return r!==-1?(this.currentOutputIndex=r,!0):(console.error(`MIDI output "${e}" not found.`),!1)}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,r)=>{console.log(`${r+1}. ${e.name}`)})}sendMidiNote(e,r,n,o){const a=this.midiOutputs[this.currentOutputIndex];if(e=Math.min(Math.max(e,0),127),a){const l=[144+r,e,n],c=[128+r,e,0];a.send(l);const h=setTimeout(()=>{a.send(c),delete this.scheduledNotes[e]},(o-.02)*1e3);this.scheduledNotes[e]=h}else console.error("MIDI output not available.")}sendSysExMessage(e){const r=this.midiOutputs[this.currentOutputIndex];r?r.send(e):console.error("MIDI output not available.")}sendPitchBend(e,r){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(r<0||r>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15.");const n=this.midiOutputs[this.currentOutputIndex];if(n){const o=e&127,a=e>>7&127;n.send([224|r,o,a])}else console.error("MIDI output not available.")}sendProgramChange(e,r){const n=this.midiOutputs[this.currentOutputIndex];n?n.send([192+r,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,r,n){const o=this.midiOutputs[this.currentOutputIndex];o?o.send([176+n,e,r]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const r in this.scheduledNotes){const n=this.scheduledNotes[r];clearTimeout(n),e.send([128,parseInt(r),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class DrunkWalk{constructor(e,r,n){z(this,"min");z(this,"max");z(this,"wrap");z(this,"position");this.min=e,this.max=r,this.wrap=n,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}const SCALES={major:[0,2,4,5,7,9,11],naturalMinor:[0,2,3,5,7,8,10],harmonicMinor:[0,2,3,5,7,8,11],melodicMinor:[0,2,3,5,7,9,11],dorian:[0,2,3,5,7,9,10],phrygian:[0,1,3,5,7,8,10],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],aeolian:[0,2,3,5,7,8,10],locrian:[0,1,3,5,6,8,10],wholeTone:[0,2,4,6,8,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10],chromatic:[0,1,2,3,4,5,6,7,8,9,10,11],blues:[0,3,5,6,7,10],diminished:[0,2,3,5,6,8,9,11],neapolitanMinor:[0,1,3,5,7,8,11],neapolitanMajor:[0,1,3,5,7,9,11],enigmatic:[0,1,4,6,8,10,11],doubleHarmonic:[0,1,4,5,7,8,11],octatonic:[0,2,3,5,6,8,9,11],bebopDominant:[0,2,4,5,7,9,10,11],bebopMajor:[0,2,4,5,7,8,9,11],bebopMinor:[0,2,3,5,7,8,9,11],bebopDorian:[0,2,3,4,5,7,9,10],harmonicMajor:[0,2,4,5,7,8,11],hungarianMinor:[0,2,3,6,7,8,11],hungarianMajor:[0,3,4,6,7,9,10],oriental:[0,1,4,5,6,9,10],romanianMinor:[0,2,3,6,7,9,10],spanishGypsy:[0,1,4,5,7,8,10],jewish:[0,1,4,5,7,8,10],hindu:[0,2,4,5,7,8,10],japanese:[0,1,5,7,8],hirajoshi:[0,2,3,7,8],kumoi:[0,2,3,7,9],inSen:[0,1,5,7,10],iwato:[0,1,5,6,10],yo:[0,2,5,7,9],minorBlues:[0,3,5,6,7,10],algerian:[0,2,3,5,6,7,8,11],augmented:[0,3,4,7,8,11],balinese:[0,1,3,7,8],byzantine:[0,1,4,5,7,8,11],chinese:[0,4,6,7,11],egyptian:[0,2,5,7,10],eightToneSpanish:[0,1,3,4,5,6,8,10],hawaiian:[0,2,3,5,7,9,10],hindustan:[0,2,4,5,7,8,10],persian:[0,1,4,5,6,8,11],eastIndianPurvi:[0,1,4,6,7,8,11],orientalA:[0,1,4,5,6,9,10]};function scale(s,e="major",r=4){const n=SCALES[e];if(!n)throw new Error(`Unknown scale ${e}`);let o=s%n.length;o<0&&(o+=n.length);let a=Math.floor(s/n.length);return 60+(r+a)*12+n[o]}let listenerQueue=[],atom=(s,e)=>{let r,n=[],o={lc:0,l:e||0,value:s,set(a){o.value=a,o.notify()},get(){return o.lc||o.listen(()=>{})(),o.value},notify(a){r=n;let l=!listenerQueue.length;for(let c=0;c{n===r&&(n=n.slice());let c=n.indexOf(a);~c&&(n.splice(c,2),o.lc--,o.lc||o.off())}},subscribe(a,l){let c=o.listen(a,l);return a(o.value),c},off(){}};return o},map=(s={})=>{let e=atom(s);return e.setKey=function(r,n){typeof n>"u"?r in e.value&&(e.value={...e.value},delete e.value[r],e.notify(r)):e.value[r]!==n&&(e.value={...e.value,[r]:n},e.notify(r))},e};if(typeof DelayNode<"u"){class s extends DelayNode{constructor(r,n,o,a){super(r),n=Math.abs(n),this.delayTime.value=o;const l=r.createGain();l.gain.value=Math.min(Math.abs(a),.995),this.feedback=l.gain;const c=r.createGain();return c.gain.value=n,this.delayGain=c,this.connect(l),this.connect(c),l.connect(this),this.connect=h=>c.connect(h),this}start(r){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,r+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,r,n){return new s(this,e,r,n)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(s,e=1){const r=this.sampleRate*s,n=this.createBuffer(e,r,this.sampleRate),o=n.getChannelData(0);for(let a=0;a(e.buffer=this.impulseResponse(r),e.duration=s,e),e.setDuration(s),e});var q={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class s extends GainNode{constructor(r,n){if(super(r),!q[n])throw new Error("vowel: unknown vowel "+n);const{gains:o,qs:a,freqs:l}=q[n],c=r.createGain();for(let h=0;h<5;h++){const f=r.createGain();f.gain.value=o[h];const d=r.createBiquadFilter();d.type="bandpass",d.Q.value=a[h],d.frequency.value=l[h],this.connect(d),d.connect(f),f.connect(c)}return c.gain.value=8,this.connect=h=>c.connect(h),this}}AudioContext.prototype.createVowelFilter=function(e){return new s(this,e)}}const ce=s=>{var o;if(typeof s!="string")return[];const[e,r="",n]=((o=s.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:o.slice(1))||[];return e?[e,r,n?Number(n):void 0]:[]},re={c:0,d:2,e:4,f:5,g:7,a:9,b:11},ie={"#":1,b:-1,s:1,f:-1},L=(s,e=3)=>{const[r,n,o=e]=ce(s);if(!r)throw new Error('not a note: "'+s+'"');const a=re[r.toLowerCase()],l=(n==null?void 0:n.split("").reduce((c,h)=>c+ie[h],0))||0;return(Number(o)+1)*12+a+l},se=s=>Math.pow(2,(s-69)/12)*440,ae=(s,e,r)=>Math.min(Math.max(s,e),r),ge=s=>12*Math.log(s/440)/Math.LN2+69,de=(s,e)=>{if(typeof s!="object")throw new Error("valueToMidi: expected object value");let{freq:r,note:n}=s;if(typeof r=="number")return ge(r);if(typeof n=="string")return L(n);if(typeof n=="number")return n;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},ue="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function k(s){const e=C().createGain();return e.gain.value=s,e}const Ie=({s,freq:e,t:r})=>{const n=C().createOscillator();return n.type=s||"triangle",n.frequency.value=Number(e),n.start(r),{node:n,stop:o=>n.stop(o)}},ee=(s,e,r,n,o,a)=>{const l=C().createGain();return l.gain.setValueAtTime(0,a),l.gain.linearRampToValueAtTime(o,a+s),l.gain.linearRampToValueAtTime(r*o,a+s+e),{node:l,stop:c=>{l.gain.setValueAtTime(r*o,c),l.gain.linearRampToValueAtTime(0,c+n)}}},Q=(s,e,r)=>{const n=C().createBiquadFilter();return n.type=s,n.frequency.value=e,n.Q.value=r,n},E=map();function te(s,e,r={}){E.setKey(s,{onTrigger:e,data:r})}function U(s){return E.get()[s]}let J;const C=()=>(J||(J=new AudioContext),J);let W;const j=()=>{const s=C();return W||(W=s.createGain(),W.connect(s.destination)),W};let D;function le(){return D||(D=C().audioWorklet.addModule(ue),D)}function x(s,e,r){const n=new AudioWorkletNode(s,e);return Object.entries(r).forEach(([o,a])=>{n.parameters.get(o).value=a}),n}async function Ce(s={}){const{disableWorklets:e=!1}=s;typeof window<"u"&&(await C().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await le().catch(r=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",r)}))}async function ve(s){return new Promise(e=>{document.addEventListener("click",async function r(){await Ce(s),e(),document.removeEventListener("click",r)})})}let G={};function fe(s,e,r,n){var o;if(r=ae(r,0,.98),!G[s]){const a=C().createFeedbackDelay(1,e,r);(o=a.start)==null||o.call(a,n),a.connect(j()),G[s]=a}return G[s].delayTime.value!==e&&G[s].delayTime.setValueAtTime(e,n),G[s].feedback.value!==r&&G[s].feedback.setValueAtTime(r,n),G[s]}let w={};function Ae(s,e=2){if(!w[s]){const r=C().createReverb(e);r.connect(j()),w[s]=r}return w[s].duration!==e&&(w[s]=w[s].setDuration(e),w[s].duration=e),w[s]}function _(s,e,r){const n=k(r);return s.connect(n),n.connect(e),n}const he=async(s,e,r)=>{const n=C();if(typeof s!="object")throw new Error(`expected hap.value to be an object, but got "${s}". Hint: append .note() or .s() to the end`,"error");let o=n.currentTime+e,{s:a="triangle",bank:l,source:c,gain:h=.8,cutoff:f,resonance:d=1,hcutoff:m,hresonance:v=1,bandf:A,bandq:T=1,coarse:B,crush:Y,shape:F,pan:ke,vowel:Qe,delay:xe=0,delayfeedback:Te=.5,delaytime:Le=.25,orbit:Me=1,room:ot,size:Fe=2,velocity:Ve=1}=s;h*=Ve;let at=[];const dt=()=>{at.forEach(lt=>lt==null?void 0:lt.disconnect())};l&&a&&(a=`${l}_${a}`);let ct;if(c)ct=c(o,s,r);else if(U(a)){const{onTrigger:lt}=U(a),st=await lt(o,s,dt);st&&(ct=st.node,st.stop(o+r))}else throw new Error(`sound ${a} not found! Is it loaded?`);if(!ct||n.currentTime>o)return;const nt=[];if(nt.push(ct),nt.push(k(h)),f!==void 0&&nt.push(Q("lowpass",f,d)),m!==void 0&&nt.push(Q("highpass",m,v)),A!==void 0&&nt.push(Q("bandpass",A,T)),Qe!==void 0&&nt.push(n.createVowelFilter(Qe)),B!==void 0&&nt.push(x(n,"coarse-processor",{coarse:B})),Y!==void 0&&nt.push(x(n,"crush-processor",{crush:Y})),F!==void 0&&nt.push(x(n,"shape-processor",{shape:F})),ke!==void 0){const lt=n.createStereoPanner();lt.pan.value=2*ke-1,nt.push(lt)}const ft=k(1);nt.push(ft),ft.connect(j());let it;if(xe>0&&Le>0&&Te>0){const lt=fe(Me,Le,Te,o);it=_(ft,lt,xe)}let pt;if(ot>0&&Fe>0){const lt=Ae(Me,Fe);pt=_(ft,lt,ot)}nt.slice(1).reduce((lt,st)=>lt.connect(st),nt[0]),at=nt.concat([it,pt])},O={};function pe(s,e){var r=e?1e3:1024;if(s=r);return s.toFixed(1)+" "+n[o]}const be=async(s,e,r,n,o,a,l)=>{let c=0,h=de({freq:o,note:r},36);c=h-36;const f=C();let d;if(Array.isArray(a))d=a[e%a.length];else{const T=Y=>L(Y)-h,B=Object.keys(a).filter(Y=>!Y.startsWith("_")).reduce((Y,F,ke)=>!Y||Math.abs(T(F))(O[s]||(O[s]=fetch(s).then(o=>o.arrayBuffer()).then(async o=>(pe(o.byteLength),await e.decodeAudioData(o)))),O[s]);function ye(s){const e=C(),r=e.createBuffer(s.numberOfChannels,s.length,e.sampleRate);for(let n=0;nObject.entries(s).forEach(([n,o])=>{if(typeof o=="string"&&(o=[o]),typeof o!="object")throw new Error("wrong sample map format for "+n);r=o._base||r;const a=l=>(r+l).replace("github:","https://raw.githubusercontent.com/");Array.isArray(o)?o=o.map(a):o=Object.fromEntries(Object.entries(o).map(([l,c])=>[l,(typeof c=="string"?[c]:c).map(a)])),e(n,o)});let ne={};function Ge(s){const e=Object.entries(ne).find(([r])=>s.startsWith(r));if(e)return e[1]}const we=async(s,e=s._base||"",r={})=>{if(typeof s=="string"){const a=Ge(s);if(a)return a(s);if(s.startsWith("github:")){let[c,h]=s.split("github:");h=h.endsWith("/")?h.slice(0,-1):h,s=`https://raw.githubusercontent.com/${h}/strudel.json`}if(typeof fetch!="function")return;const l=s.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(s).then(c=>c.json()).then(c=>we(c,e||c._base||l,r)).catch(c=>{throw console.error(c),new Error(`error loading "${s}"`)})}const{prebake:n,tag:o}=r;me(s,(a,l)=>te(a,(c,h,f)=>Xe(c,h,f,l),{type:"sample",samples:l,baseUrl:e,prebake:n,tag:o}),e)},$=[];async function Xe(s,e,r,n,o){const{s:a,freq:l,unit:c,nudge:h=0,cut:f,loop:d,clip:m=void 0,n:v=0,note:A,speed:T=1,begin:B=0,end:Y=1}=e;if(T===0)return;const F=C(),{attack:ke=.001,decay:Qe=.001,sustain:xe=1,release:Te=.001}=e,Le=s+h,Me=await be(a,v,A,T,l,n,o);if(F.currentTime>s||!Me)return;Me.playbackRate.value=Math.abs(T)*Me.playbackRate.value,c==="c"&&(Me.playbackRate.value=Me.playbackRate.value*Me.buffer.duration*1);const ot=B*Me.buffer.duration;Me.start(Le,ot);const Fe=Me.buffer.duration/Me.playbackRate.value,{node:Ve,stop:at}=ee(ke,Qe,xe,Te,1,s);Me.connect(Ve);const dt=F.createGain();Ve.connect(dt),Me.onended=function(){Me.disconnect(),Ve.disconnect(),dt.disconnect(),r()};const ct={node:dt,bufferSource:Me,stop:(nt,ft=m===void 0)=>{let it=nt;ft&&(it=s+(Y-B)*Fe),Me.stop(it+Te),at(it)}};if(f!==void 0){const nt=$[f];nt&&(nt.node.gain.setValueAtTime(1,Le),nt.node.gain.linearRampToValueAtTime(0,Le+.01)),$[f]=ct}return ct}function Ke(){["sine","square","triangle","sawtooth"].forEach(s=>{te(s,(e,r,n)=>{const{attack:o=.001,decay:a=.05,sustain:l=.6,release:c=.01}=r;let{n:h,note:f,freq:d}=r;h=f||h||36,typeof h=="string"&&(h=L(h)),!d&&typeof h=="number"&&(d=se(h));const{node:m,stop:v}=Ie({t:e,s,freq:d}),A=k(.3),{node:T,stop:B}=ee(o,a,l,c,1,e);return m.onended=()=>{m.disconnect(),A.disconnect(),n()},{node:m.connect(A).connect(T),stop:Y=>{B(Y),v(Y+c)}}},{type:"synth",prebake:!0})})}class Sound{constructor(e,r){z(this,"values");z(this,"unit",e=>(this.values.unit=e,this));z(this,"frequency",e=>(this.values.frequency=e,this));z(this,"nudge",e=>(this.values.nudge=e,this));z(this,"cut",e=>(this.values.cut=e,this));z(this,"loop",e=>(this.values.loop=e,this));z(this,"clip",e=>(this.values.clip=e,this));z(this,"n",e=>(this.values.n=e,this));z(this,"note",e=>(this.values.note=e,this));z(this,"speed",e=>(this.values.speed=e,this));z(this,"begin",e=>(this.values.begin=e,this));z(this,"end",e=>(this.values.end=e,this));z(this,"gain",e=>(this.values.gain=e,this));z(this,"cutoff",e=>(this.values.cutoff=e,this));z(this,"resonance",e=>(this.values.resonance=e,this));z(this,"hcutoff",e=>(this.values.hcutoff=e,this));z(this,"hresonance",e=>(this.values.hresonance=e,this));z(this,"bandf",e=>(this.values.bandf=e,this));z(this,"bandq",e=>(this.values.bandq=e,this));z(this,"coarse",e=>(this.values.coarse=e,this));z(this,"crush",e=>(this.values.crush=e,this));z(this,"shape",e=>(this.values.shape=e,this));z(this,"pan",e=>(this.values.pan=e,this));z(this,"vowel",e=>(this.values.vowel=e,this));z(this,"delay",e=>(this.values.delay=e,this));z(this,"delayfeedback",e=>(this.values.delayfeedback=e,this));z(this,"delaytime",e=>(this.values.delaytime=e,this));z(this,"orbit",e=>(this.values.orbit=e,this));z(this,"room",e=>(this.values.room=e,this));z(this,"size",e=>(this.values.size=e,this));z(this,"velocity",e=>(this.values.velocity=e,this));z(this,"out",()=>he(this.values,this.app.clock.pulse_duration));this.app=r,this.values={s:e}}}const cache=new LRUCache({max:1e3,ttl:1e3*60*5});Array.prototype.in=function(s){return this.includes(s)};Promise.all([ve(),we("github:tidalcycles/Dirt-Samples/master"),we("github:Bubobubobubobubo/Topos-Samples/main"),Ke()]);class UserAPI{constructor(e){z(this,"variables",{});z(this,"iterators",{});z(this,"_drunk",new DrunkWalk(-100,100,!1));z(this,"MidiConnection",new MidiConnection);z(this,"load");z(this,"s",this.script);z(this,"cs",this.clear_script);z(this,"cps",this.copy_script);z(this,"$",this.iterator);z(this,"v",this.variable);z(this,"dv",this.delete_variable);z(this,"cv",this.clear_variables);z(this,"rI",this.randI);z(this,"r",this.rand);z(this,"quant",this.quantize);z(this,"cmp",this.clamp);z(this,"tempo",this.bpm);z(this,"silence",this.stop);z(this,"hush",this.stop);z(this,"abs",Math.abs);z(this,"d",async(e,r=0)=>{he(e,r)});z(this,"sound",e=>new Sound(e,this.app));z(this,"samples",we);z(this,"log",console.log);z(this,"scale",scale);this.app=e,this.load=we("github:tidalcycles/Dirt-Samples/master")}get time(){return this.app.audioContext.currentTime}get mouseX(){return this.app._mouseX}get mouseY(){return this.app._mouseY}script(...e){e.forEach(r=>{tryEvaluate(this.app,this.app.universes[this.app.selected_universe].locals[r])})}clear_script(e){this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}}copy_script(e,r){this.app.universes[this.app.selected_universe].locals[r]=this.app.universes[this.app.selected_universe].locals[e]}midi_outputs(){return console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs}midi_output(e){e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())}note(e,r={}){const n=r.channel?r.channel:0,o=r.velocity?r.velocity:100,a=r.duration?r.duration:.5;this.MidiConnection.sendMidiNote(e,n,o,a)}sysex(e){this.MidiConnection.sendSysExMessage(e)}pitch_bend(e,r){this.MidiConnection.sendPitchBend(e,r)}program_change(e,r){this.MidiConnection.sendProgramChange(e,r)}midi_clock(){this.MidiConnection.sendMidiClock()}control_change({control:e=20,value:r=0,channel:n=0}){this.MidiConnection.sendMidiControlChange(e,r,n)}midi_panic(){this.MidiConnection.panic()}zn(e,r={}){const n=cachedPattern(e,r);if(n.hasStarted()){const o=n.peek(),a=o.modifiedEvent?o.modifiedEvent:o,l=r.channel?r.channel:0,c=r.velocity?r.velocity:100,h=r.sustain?r.sustain:.5;a instanceof Pitch?(a.bend&&this.MidiConnection.sendPitchBend(a.bend,l),this.MidiConnection.sendMidiNote(a.note,l,c,h),a.bend&&this.MidiConnection.sendPitchBend(8192,l)):a instanceof Chord&&a.pitches.forEach(f=>{f.bend&&this.MidiConnection.sendPitchBend(f.bend,l),this.MidiConnection.sendMidiNote(f.note,l,c,h),f.bend&&this.MidiConnection.sendPitchBend(8192,l)}),o.modifiedEvent&&(o.modifiedEvent=void 0)}return n.next()}iterator(e,r,n){return e in this.iterators?(this.iterators[e].limit!==r&&(this.iterators[e].value=0,this.iterators[e].limit=r),this.iterators[e].step!==n&&(this.iterators[e].step=n??this.iterators[e].step),this.iterators[e].value+=this.iterators[e].step,this.iterators[e].limit!==void 0&&this.iterators[e].value>this.iterators[e].limit&&(this.iterators[e].value=0)):this.iterators[e]={value:0,step:n??1,limit:r},this.iterators[e].value}get drunk(){return this._drunk.step(),this._drunk.getPosition()}set drunk(e){this._drunk.position=e}set drunk_max(e){this._drunk.max=e}set drunk_min(e){this._drunk.min=e}set drunk_wrap(e){this._drunk.toggleWrap(e)}variable(e,r){return typeof e=="string"&&r===void 0?this.variables[e]:(this.variables[e]=r,this.variables[e])}delete_variable(e){delete this.variables[e]}clear_variables(){this.variables={}}_sequence_key_generator(e){return btoa(JSON.stringify(e))}seqmod(...e){if(cache.has(this._sequence_key_generator(e))){let r=cache.get(this._sequence_key_generator(e));return r.options.currentIteration++,r.options.currentIteration===r.options.nextTarget&&(r.options.index++,r.options.nextTarget=e[r.options.index%e.length],r.options.currentIteration=0),cache.set(this._sequence_key_generator(e),{pattern:e,options:r.options}),r.options.currentIteration===0}else{let r={index:-1,nextTarget:this.app.clock.ticks_before_new_bar,currentIteration:0};return typeof e[e.length-1]=="object"&&(r={...e.pop(),...r}),r.nextTarget=this.app.clock.ticks_before_new_bar,r.currentIteration===r.nextTarget&&(r.index++,r.nextTarget=e[r.index%e.length],r.currentIteration=0),cache.set(this._sequence_key_generator(e),{pattern:e,options:r}),r.currentIteration===0}}seq(...e){if(cache.has(this._sequence_key_generator(e))){let r=cache.get(this._sequence_key_generator(e));return r.options.index+=1,cache.set(this._sequence_key_generator(e),r),r.pattern[r.options.index%r.pattern.length]}else{let r={index:0};return typeof e[e.length-1]=="object"&&(r={...e.pop(),...r}),cache.set(this._sequence_key_generator(e),{pattern:e,options:r}),cache.get(this._sequence_key_generator(e))}}pick(...e){return e[Math.floor(Math.random()*e.length)]}seqbeat(...e){return e[this.ebeat%e.length]}mel(e,r){return r[e%r.length]}seqbar(...e){return e[(this.app.clock.time_position.bar+1)%e.length]}seqpulse(...e){return e[this.app.clock.time_position.pulse%e.length]}randI(e,r){return Math.floor(Math.random()*(r-e+1))+e}rand(e,r){return Math.random()*(r-e)+e}quantize(e,r){if(r.length===0)return e;let n=r[0];return r.forEach(o=>{Math.abs(o-e)500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e)}bpb(e){return e===void 0?this.app.clock.time_signature[0]:(e<1&&console.log(`Setting bpb to ${e}`),this.app.clock.time_signature[0]=e,e)}ppqn(e){return e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e)}time_signature(e,r){this.app.clock.time_signature=[e,r]}almostNever(){return Math.random()>.9}sometimes(){return Math.random()>.5}rarely(){return Math.random()>.75}often(){return Math.random()>.25}almostAlways(){return Math.random()>.1}dice(e){return Math.floor(Math.random()*e)+1}get i(){return this.app.universes[this.app.selected_universe].global.evaluations}set i(e){this.app.universes[this.app.selected_universe].global.evaluations=e}get bar(){return this.app.clock.time_position.bar}get tick(){return this.app.clock.tick}get pulse(){return this.app.clock.time_position.pulse}get beat(){return this.app.clock.time_position.beat}get ebeat(){return this.app.clock.beats_since_origin}get epulse(){return this.app.clock.pulses_since_origin}onbar(e,...r){const n=[...Array(e).keys()].map(o=>o+1);return console.log(r.some(o=>n.includes(o%e))),r.some(o=>n.includes(o%e))}onbeat(...e){let r=[];return e.forEach(n=>{n=n%this.app.clock.time_signature[0]+1;let o=Math.floor(n),a=n-o;r.push(o===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===a*this.app.clock.ppqn)}),r.some(n=>n==!0)}stop(){this.app.clock.pause(),this.app.setButtonHighlighting("pause",!0)}prob(e){return Math.random()*100.5}min(...e){return Math.min(...e)}max(...e){return Math.max(...e)}limit(e,r,n){return Math.min(Math.max(e,r),n)}delay(e,r){setTimeout(r,e)}delayr(e,r,n){[...Array(r).keys()].map(a=>e*a).forEach((a,l)=>{setTimeout(n,a)})}mod(...e){return e.some(r=>this.app.clock.time_position.pulse%r===0)}modbar(...e){return e.some(r=>this.app.clock.time_position.bar%r===0)}euclid(e,r,n,o=0){return this._euclidean_cycle(r,n,o)[e%n]}_euclidean_cycle(e,r,n=0){if(e==r)return Array.from({length:r},()=>!0);function o(c,h){const f=c.length,d=(h+1)%f;return c[h]>c[d]}if(e>=r)return[!0];const a=Array.from({length:r},(c,h)=>(e*(h-1)%r+r)%r);let l=a.map((c,h)=>o(a,h));return n!=0&&(l=l.slice(n).concat(l.slice(0,n))),l}bin(e,r){let o=r.toString(2).split("").map(a=>a==="1");return o[e%o.length]}gold(){}line(e,r,n=1){const o=[];if(r>e&&n>0||r0?1:-1}usquare(e=1,r=0){return(this.square(e,r)+1)/2}noise(){return Math.random()*2-1}rate(e){}}class Editor{constructor(){z(this,"universes",template_universes);z(this,"selected_universe");z(this,"local_index",1);z(this,"editor_mode","local");z(this,"fontSize");z(this,"withLineNumbers");z(this,"vimModeCompartment");z(this,"chosenLanguage");z(this,"settings",new AppSettings);z(this,"editorExtensions",[]);z(this,"userPlugins",[]);z(this,"state");z(this,"api");z(this,"audioContext");z(this,"view");z(this,"clock");z(this,"manualPlay",!1);z(this,"_mouseX",0);z(this,"_mouseY",0);z(this,"play_buttons",[document.getElementById("play-button-1"),document.getElementById("play-button-2")]);z(this,"pause_buttons",[document.getElementById("pause-button-1"),document.getElementById("pause-button-2")]);z(this,"stop_buttons",[document.getElementById("stop-button-1"),document.getElementById("stop-button-2")]);z(this,"clear_buttons",[document.getElementById("clear-button-1"),document.getElementById("clear-button-2")]);z(this,"local_button",document.getElementById("local-button"));z(this,"global_button",document.getElementById("global-button"));z(this,"init_button",document.getElementById("init-button"));z(this,"note_button",document.getElementById("note-button"));z(this,"settings_button",document.getElementById("settings-button"));z(this,"close_settings_button",document.getElementById("close-settings-button"));z(this,"universe_viewer",document.getElementById("universe-viewer"));z(this,"buffer_modal",document.getElementById("modal-buffers"));z(this,"buffer_search",document.getElementById("buffer-search"));z(this,"local_script_tabs",document.getElementById("local-script-tabs"));z(this,"font_size_slider",document.getElementById("font-size-slider"));z(this,"font_size_witness",document.getElementById("font-size-witness"));z(this,"line_numbers_checkbox",document.getElementById("show-line-numbers"));z(this,"normal_mode_button",document.getElementById("normal-mode"));z(this,"vim_mode_button",document.getElementById("vim-mode"));this.selected_universe=this.settings.selected_universe,this.universe_viewer.innerHTML=`Topos: ${this.selected_universe}`,this.universes={...template_universes,...this.settings.universes},this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new Clock(this,this.audioContext),this.api=new UserAPI(this),this.vimModeCompartment=new Compartment,this.withLineNumbers=new Compartment,this.chosenLanguage=new Compartment,this.fontSize=new Compartment;const e=this.settings.vimMode?vim():[],r=this.settings.line_numbers?lineNumbers():[],n=EditorView.theme({"&":{fontSize:`${this.settings.font_size}px`},".cm-gutters":{fontSize:`${this.settings.font_size}px`}});this.editorExtensions=[this.withLineNumbers.of(r),this.fontSize.of(n),this.vimModeCompartment.of(e),editorSetup,oneDark,this.chosenLanguage.of(javascript()),EditorView.updateListener.of(l=>{})];let o=new Compartment;this.state=EditorState.create({extensions:[...this.editorExtensions,EditorView.lineWrapping,o.of(this.userPlugins)],doc:this.universes[this.selected_universe].locals[this.local_index].candidate}),this.view=new EditorView({parent:document.getElementById("editor"),state:this.state}),document.addEventListener("keydown",l=>{l.key==="Tab"&&l.preventDefault(),l.ctrlKey&&l.key==="s"&&(l.preventDefault(),this.setButtonHighlighting("pause",!0),this.clock.pause()),l.ctrlKey&&l.key==="r"&&(l.preventDefault(),this.setButtonHighlighting("stop",!0),this.clock.stop()),l.ctrlKey&&l.key==="p"&&(l.preventDefault(),this.setButtonHighlighting("play",!0),this.clock.start()),(l.key==="v"||l.key==="V")&&l.ctrlKey&&l.shiftKey&&(this.settings.vimMode=!this.settings.vimMode,l.preventDefault(),this.userPlugins=this.settings.vimMode?[]:[vim()],this.view.dispatch({effects:o.reconfigure(this.userPlugins)})),(l.key==="Enter"||l.key==="Return")&&l.ctrlKey&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#2d313d",200)),(l.key==="Enter"&&l.shiftKey||l.key==="e"&&l.ctrlKey)&&(l.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#2d313d",200)),l.ctrlKey&&l.key==="b"&&this.openBuffersModal(),l.shiftKey&&l.key==="Escape"&&this.openSettingsModal(),l.ctrlKey&&l.key==="l"&&(l.preventDefault(),this.changeModeFromInterface("local"),this.view.focus()),l.ctrlKey&&l.key==="n"&&(l.preventDefault(),this.changeModeFromInterface("notes"),this.view.focus()),l.ctrlKey&&l.key==="g"&&(l.preventDefault(),this.changeModeFromInterface("global"),this.view.focus()),l.ctrlKey&&l.key==="i"&&(l.preventDefault(),this.changeModeFromInterface("init"),this.changeToLocalBuffer(0),this.view.focus()),[112,113,114,115,116,117,118,119,120].forEach((c,h)=>{l.keyCode===c&&(l.preventDefault(),l.ctrlKey?this.api.script(c-111):(this.changeModeFromInterface("local"),this.changeToLocalBuffer(h)))}),l.keyCode==121&&this.changeModeFromInterface("global"),l.keyCode==122&&this.changeModeFromInterface("init")});const a=document.querySelectorAll('[id^="tab-"]');for(let l=0;l{a[l].classList.add("bg-orange-300");for(let d=0;d{l.addEventListener("click",()=>{this.setButtonHighlighting("play",!0),this.clock.start()})}),this.clear_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(this.universes[this.selected_universe]=template_universe,this.updateEditorView())})}),this.pause_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("pause",!0),this.clock.pause()})}),this.stop_buttons.forEach(l=>{l.addEventListener("click",()=>{this.setButtonHighlighting("stop",!0),this.clock.stop()})}),this.local_button.addEventListener("click",()=>this.changeModeFromInterface("local")),this.global_button.addEventListener("click",()=>this.changeModeFromInterface("global")),this.init_button.addEventListener("click",()=>this.changeModeFromInterface("init")),this.note_button.addEventListener("click",()=>this.changeModeFromInterface("notes")),this.settings_button.addEventListener("click",()=>{var h;this.font_size_slider.value=this.settings.font_size.toString(),this.font_size_witness.innerHTML=`Font Size: ${this.settings.font_size}px`,(h=this.font_size_witness)==null||h.setAttribute("style",`font-size: ${this.settings.font_size}px;`),this.line_numbers_checkbox.checked=this.settings.line_numbers;let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.remove("invisible"),c==null||c.classList.add("invisible")}),this.close_settings_button.addEventListener("click",()=>{let l=document.getElementById("modal-settings"),c=document.getElementById("editor");l==null||l.classList.add("invisible"),c==null||c.classList.remove("invisible")}),this.font_size_slider.addEventListener("input",()=>{const l=this.font_size_slider.value;this.settings.font_size=parseInt(l),this.font_size_witness.style.fontSize=`${l}px`,this.font_size_witness.innerHTML=`Font Size: ${l}px`;let c=EditorView.theme({"&":{fontSize:l+"px"},".cm-gutters":{fontSize:l+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(c)}),this.settings.font_size=parseInt(l)}),this.normal_mode_button.addEventListener("click",()=>{this.settings.vimMode=!1,this.view.dispatch({effects:this.vimModeCompartment.reconfigure([])})}),this.line_numbers_checkbox.addEventListener("change",()=>{let l=!!this.line_numbers_checkbox.checked;this.settings.line_numbers=l,this.view.dispatch({effects:this.withLineNumbers.reconfigure(l?[lineNumbers()]:[])})}),this.vim_mode_button.addEventListener("click",()=>{this.settings.vimMode=!0,this.view.dispatch({effects:this.vimModeCompartment.reconfigure(vim())})}),this.buffer_search.addEventListener("keydown",l=>{if(l.key==="Enter"){let c=this.buffer_search.value;c.length>2&&c.length<20&&(this.loadUniverse(c),this.settings.selected_universe=c,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus())}}),tryEvaluate(this,this.universes[this.selected_universe.toString()].init)}get note_buffer(){return this.universes[this.selected_universe.toString()].notes}get global_buffer(){return this.universes[this.selected_universe.toString()].global}get init_buffer(){return this.universes[this.selected_universe.toString()].init}get local_buffer(){return this.universes[this.selected_universe.toString()].locals[this.local_index]}changeToLocalBuffer(e){const r=document.querySelectorAll('[id^="tab-"]'),n=r[e];n.classList.add("bg-orange-300");for(let a=0;a{r.forEach(a=>{let l=a.children[0];l.classList.contains("text-orange-300")&&(l.classList.remove("text-orange-300"),a.classList.remove("text-orange-300"))}),o.children[0].classList.remove("text-white"),o.children[0].classList.add("text-orange-300"),o.classList.add("text-orange-300")};switch(e){case"local":this.local_script_tabs.classList.contains("hidden")&&this.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,this.changeToLocalBuffer(this.local_index),n(this.local_button);break;case"global":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="global",n(this.global_button);break;case"init":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="init",n(this.init_button);break;case"notes":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",n(this.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[markdown()]:[javascript()])}),this.updateEditorView()}setButtonHighlighting(e,r){this.flashBackground("#2d313d",200);const n=['[id^="play-button-"]','[id^="pause-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let o;switch(e){case"play":o=0;break;case"pause":o=1;break;case"clear":o=2;break;case"stop":o=3;break}document.querySelectorAll(n[o]).forEach(a=>{r&&a.children[0].classList.add("fill-orange-300")}),document.querySelectorAll(n.filter((a,l)=>l!=o).join(",")).forEach(a=>{a.children[0].classList.remove("fill-orange-300"),a.children[0].classList.remove("text-orange-300"),a.children[0].classList.remove("bg-orange-300")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}loadUniverse(e){this.currentFile().candidate=this.view.state.doc.toString();let r=e.trim();this.universes[r]===void 0&&(this.universes[r]=template_universe),this.selected_universe=r,this.settings.selected_universe=this.selected_universe,this.universe_viewer.innerHTML=`Topos: ${r}`,this.updateEditorView(),tryEvaluate(this,this.universes[this.selected_universe.toString()].init)}openSettingsModal(){document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):this.closeSettingsModal()}closeSettingsModal(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")}openBuffersModal(){document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):this.closeBuffersModal()}closeBuffersModal(){document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal").classList.add("invisible"),document.getElementById("modal-buffers").classList.add("invisible")}flashBackground(e,r){this.view.dom.style.backgroundColor=e;const n=this.view.dom.getElementsByClassName("cm-gutter");Array.from(n).forEach(o=>o.style.backgroundColor=e),setTimeout(()=>{this.view.dom.style.backgroundColor="",Array.from(n).forEach(o=>o.style.backgroundColor="")},r)}}const app=new Editor;function startClock(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal").classList.add("hidden"),document.getElementById("modal-container").classList.remove("motion-safe:animate-pulse"),document.getElementById("start-button").removeEventListener("click",startClock),document.removeEventListener("click",startClock),document.removeEventListener("keydown",startOnEnter),document.removeEventListener("click",startOnClick),app.clock.start(),app.view.focus(),app.setButtonHighlighting("play",!0)}function startOnEnter(s){(s.code==="Enter"||s.code==="Space")&&startClock()}function startOnClick(s){s.button===0&&startClock()}document.addEventListener("keydown",startOnEnter);document.addEventListener("click",startOnClick);function reportMouseCoordinates(s){app._mouseX=s.clientX,app._mouseY=s.clientY}window.addEventListener("mousemove",reportMouseCoordinates);window.addEventListener("beforeunload",()=>(event.preventDefault(),app.currentFile().candidate=app.view.state.doc.toString(),app.currentFile().committed=app.view.state.doc.toString(),app.settings.saveApplicationToLocalStorage(app.universes,app.settings),app.clock.stop(),null)); diff --git a/index.html b/index.html index 2439050..9aa2bc7 100644 --- a/index.html +++ b/index.html @@ -6,8 +6,8 @@ Topos - - + +