diff --git a/assets/index-98c38f06.js b/assets/index-7c8b8c12.js
similarity index 92%
rename from assets/index-98c38f06.js
rename to assets/index-7c8b8c12.js
index 8c5d833..ed10a40 100644
--- a/assets/index-98c38f06.js
+++ b/assets/index-7c8b8c12.js
@@ -387,6 +387,49 @@ No sound will play until you add .out() at the end of the chain.
${Sk()}
`,yk=`
+# Synthesizers
+
+Topos comes with a small number of basic synthesizers. These synths are based on a basic [WebAudio](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) design. For heavy synthesis duties, please use MIDI and speak to more complex instruments.
+
+# Substractive Synthesis
+
+The sound function can take the name of a synthesizer as first argument.
+- sine, sawtooth,triangle, square for the waveform selection.
+- cutoff and resonance for adding a low-pass filter with cutoff frequency and filter resonance.
+ - hcutoff or bandf to switch to a high-pass or bandpass filter.
+ - hresonance and bandq for the resonance parameter of these filters.
+
+Here is a simple example of a substractive synth:
+
+\`\`\`javascript
+mod(.5) && snd('sawtooth')
+ .cutoff(pick(2000,500)) + usine(.5) * 4000)
+ .resonance(0.9).freq(pick(100,150))
+ .out()
+\`\`\`
+
+
+# Frequency Modulation Synthesis (FM)
+
+The same basic waveforms can take additional methods to switch to a basic two operators FM synth design (with _carrier_ and _modulator_). FM Synthesis is a complex topic but take this advice: simple ratios will yield stable and harmonic sounds, complex ratios will generate noises, percussions and gritty sounds.
+
+- fmi (_frequency modulation index_): a floating point value between 1 and n.
+- fmh (_frequency modulation harmonic ratio_): a floating point value between 1 and n.
+
+And here is a simple example:
+
+\`\`\`javascript
+mod(.25) && snd('sine')
+ .fmi(pick(1,2,4,8))
+ .fmh(divseq(2, 1,2,4,8))
+ .freq(pick(100,150))
+ .sustain(0.1)
+ .out()
+\`\`\`
+
+**Note::** you can also set the _modulation index_ and the _harmonic ratio_ with the fm argument. You will have to feed both as a string: fm('2:4'). If you only feed one number, only the _modulation index_ will be updated.
+
+`,Ak=`
# About Topos
## The Topos Project
@@ -402,7 +445,7 @@ Topos is an experimental web based algorithmic sequencer programmed by **BuboBub
Topos is a free and open-source software distributed under [GPL-3.0](https://github.com/Bubobubobubobubo/Topos/blob/main/LICENSE) licence. We welcome all contributions and ideas. You can find the source code on [GitHub](https://github.com/Bubobubobubobubo/topos). You can also join us on [Discord](https://discord.gg/8Q2QV6Z6) to discuss about the project and live coding in general.
**Have fun!**
-`,Ak=`
+`,Rk=`
# Code
Topos is using the [JavaScript](https://en.wikipedia.org/wiki/JavaScript) syntax because it lives in a web browser where JS is the default programming language. It is also a language that you can learn to speak quite fast if you are already familiar with other programming languages. You are not going to write a lot of code anyway but familiarity with the language can help. Here are some good resources:
@@ -426,7 +469,7 @@ The code you enter in any of the scripts is evaluated in strict mode. This tells
## About crashes and bugs
Things will crash, that's also part of the show. You will learn progressively to avoid mistakes and to write safer code. Do not hesitate to kill the page or to stop the transport if you feel overwhelmed by an algorithm blowing up. There are no safeties in place to save you. This is to ensure that you have all the available possible room to write bespoke code and experiment with your ideas through code.
-`,Rk=`
+`,Ik=`
# Functions
## Global Shared Variables
@@ -545,9 +588,9 @@ Chance operators returning a boolean value are also available:
- delayr(ms: number, nb: number, func: Function): void: Delays the execution of a function by a given number of milliseconds, repeated a given number of times.
-`,Ik=`
-# Reference
`,Nk=`
+# Reference
+`,Dk=`
# Keybindings
Topos is made to be controlled entirely with a keyboard. It is recommanded to stop using the mouse as much as possible when you are _live coding_. Here is a list of the most important keybindings:
@@ -576,19 +619,19 @@ Topos is made to be controlled entirely with a keyboard. It is recommanded to st
## Special
- Switch the editor to Vim Mode: ${Tt("Ctrl + V")}.
-`,Dk={introduction:Ok,interface:Ek,code:Ak,time:bk,sound:Ck,samples:vk,midi:Tk,functions:Rk,reference:Ik,shortcuts:Nk,about:yk},ky=n=>new Promise((e,t)=>setTimeout(()=>t(new Error("Operation took too long")),n)),My=n=>n.replace(/->/g,"&&").replace(/::/g,"&&"),Py=(n,e)=>new Promise((t,r)=>{try{Function(`"use strict";try{${My(e)}} catch (e) {console.log(e); _reportError(e);};`).call(n.api),t(!0)}catch(i){n.error_line.innerHTML=i,console.log(i),t(!1)}}),_a=new Map,wk=20,xk=(n,e)=>{_a.size>=wk&&_a.delete(_a.keys().next().value),_a.set(n,e)},vl=async(n,e,t=5e3)=>{try{e.evaluations++;const r=e.candidate;if(_a.has(r))_a.get(r).call(n.api);else{const i=`let i = ${e.evaluations};`+r;if(await Promise.race([Py(n,i),ky(t)])){e.committed=e.candidate;const s=new Function(`"use strict";try{${My(i)}} catch (e) {console.log(e)};`);xk(r,s)}else await Lk(n,e,t)}}catch(r){n.error_line.innerHTML=r,console.log(r)}},Lk=async(n,e,t=1e3)=>{try{await Promise.race([Py(n,e.committed),ky(t)]),e.evaluations&&e.evaluations++}catch(r){n.error_line.innerHTML=r,console.log(r)}};class kk extends AudioWorkletNode{constructor(t,r,i){super(t,"transport",r);I(this,"handleMessage",t=>{if(t.data&&t.data.type==="bang"){this.startTime===null&&(this.startTime=t.data.currentTime),this.elapsedTime=t.data.currentTime-this.startTime,this.prevCurrentTime=t.data.currentTime;let{futureTimeStamp:r,timeToNextPulse:i,nextPulsePosition:a}=this.convertTimeToNextBarsBeats(this.elapsedTime);this.nextPulsePosition!==a&&(this.nextPulsePosition=a,setTimeout(()=>{const s=this.app.audioContext.currentTime;this.app.clock.time_position=r,vl(this.app,this.app.global_buffer),this.hasBeenEvaluated=!0,this.currentPulsePosition=a;const o=this.app.audioContext.currentTime;this.lastLatencies[this.indexOfLastLatencies]=o-s,this.indexOfLastLatencies=(this.indexOfLastLatencies+1)%this.lastLatencies.length;const l=this.lastLatencies.reduce((u,d)=>u+d)/this.lastLatencies.length;this.executionLatency=l/1e3},(i+this.executionLatency)*1e3))}});this.app=i,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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(t){const r=60/this.app.clock.bpm,i=t/r,a=this.app.clock.time_signature[0],s=Math.floor(i/a)+1,o=Math.floor(i%a)+1,l=Math.floor(i%1*this.app.clock.ppqn);return this.app.clock.tick++,{bar:s,beat:o,ppqn:l}}convertTimeToNextBarsBeats(t){const r=60/this.app.clock.bpm,i=t/r,a=this.app.clock.time_signature[0];this.currentPulsePosition=i*this.app.clock.ppqn;const s=Math.ceil(this.currentPulsePosition),o=this.app.clock.convertPulseToSecond(this.nextPulsePosition-this.currentPulsePosition),l=this.nextPulsePosition/this.app.clock.ppqn,u=l/a,d={bar:Math.floor(u)+1,beat:Math.floor(l)%a+1,pulse:Math.floor(this.nextPulsePosition)%this.app.clock.ppqn};return this.app.clock.tick++,{futureTimeStamp:d,timeToNextPulse:o,nextPulsePosition:s}}}const Mk="/assets/TransportProcessor-9e6f56da.js";class Pk{constructor(e,t){I(this,"ctx");I(this,"transportNode");I(this,"bpm");I(this,"time_signature");I(this,"time_position");I(this,"ppqn");I(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=t,t.audioWorklet.addModule(Mk).then(r=>(this.transportNode=new kk(t,{},this.app),this.transportNode.connect(t.destination),r)).catch(r=>{console.log("Error loading TransportProcessor.js:",r)})}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,t;((e=this.transportNode)==null?void 0:e.state)==="running"?console.log("Already started"):(this.app.audioContext.resume(),(t=this.transportNode)==null||t.start())}pause(){var e;(e=this.transportNode)==null||e.pause()}stop(){var e;(e=this.transportNode)==null||e.stop()}}const Bk={"+":(n,e)=>n+e,"-":(n,e)=>n-e,"*":(n,e)=>n*e,"/":(n,e)=>n/e,"%":(n,e)=>n%e,"^":(n,e)=>n**e,"<<":(n,e)=>n<>":(n,e)=>n>>e,"&":(n,e)=>n&e,"|":(n,e)=>n|e},Uk={octave:0,duration:.25,key:"C4",scale:"IONIAN",measure:0,degrees:!1},Fk={m:8,k:10240/1920,l:4,"d.":3,p:5120/1920,d:2,"w.":1.5,c:2560/1920,w:1,"h..":.875,"h.":.75,y:1280/1920,h:.5,"q..":840/1920,"q.":.375,n:640/1920,q:.25,"e..":420/1920,"e.":.1875,a:320/1920,e:.125,"s..":210/1920,"s.":180/1920,f:160/1920,s:.0625,"t..":105/1920,"t.":90/1920,x:80/1920,t:60/1920,"u.":45/1920,g:40/1920,u:30/1920,j:15/1920,o:8/1920,z:0},Yk={C:0,Cs:1,D:2,Eb:3,E:4,F:5,Fs:6,G:7,Ab:8,A:9,Bb:10,B:11},Gk={"#":1,b:-1,s:1},Qk=()=>{const n=[2,1,2,2,1,2,2],e=[2,2,1,2,2,2,1],t=[2,1,2,2,1,3,1],r=[2,2,1,2,1,3,1],i=[3,2,2,3,2],a=[2,3,2,3,2],s=[2,2,2,2,2,2],o=[2,1,1,3,2,3],l=[3,2,1,1,3,2],u=[2,1,2,2,2,2,1],d=[2,2,1,2,1,2,2],f=[1,2,2,2,1,3,1],m=[1,2,2,2,2,2,1],g=[1,2,1,2,1,2,1,2],b=[2,2,1,2,1,1,2,1],v=[2,1,2,2,1,1,2,1],y=[2,2,1,2,2,1,1,1];return{MAJOR:e,MINOR:n,"HARMONIC MINOR":t,"HARMONIC MAJOR":r,"MINOR PENTATONIC":i,"SUSPENDED PENTATONIC":a,"BLUES MAJOR":o,"BLUES MINOR":l,WHOLE:s,"MELODIC MINOR":u,"MELODIC MAJOR":d,MINORIC:[4,4,4],THAPTIC:[4,3,4,1],LOTHIC:[3,4,1,4],PHRATIC:[4,1,4,3],AERATHIC:[1,4,3,4],EPATHIC:[4,3,2,3],MYNIC:[3,2,3,4],ROTHIC:[2,3,4,3],EPORIC:[3,4,3,2],ZYPHIC:[4,4,3,1],EPOGIC:[4,3,1,4],LANIC:[3,1,4,4],PYRRIC:[1,4,4,3],AEOLORIC:[4,4,1,3],GONIC:[4,1,3,4],DALIC:[1,3,4,4],DYGIC:[3,4,4,1],DARIC:[4,3,3,2],LONIC:[3,3,2,4],PHRADIC:[3,2,4,3],BOLIC:[2,4,3,3],SARIC:[4,2,3,3],ZOPTIC:[2,3,3,4],AERAPHIC:[3,3,4,2],BYPTIC:[3,4,2,3],AEOLIC:[4,4,2,2],KOPTIC:[4,2,2,4],MIXOLYRIC:[2,2,4,4],LYDIC:[2,4,4,2],STATHIC:[4,2,4,2],DADIC:[2,4,2,4],PHRYNIC:[3,3,3,3],EPATHITONIC:[3,2,3,2,2],MYNITONIC:[2,3,2,2,3],ROCRITONIC:i,PENTATONIC:[2,2,3,2,3],THAPTITONIC:a,MAGITONIC:[4,3,2,2,1],DADITONIC:[3,2,2,1,4],AEOLYPHRITONIC:[2,2,1,4,3],GYCRITONIC:[2,1,4,3,2],PYRITONIC:[1,4,3,2,2],GATHITONIC:[4,2,3,2,1],IONITONIC:[2,3,2,1,4],PHRYNITONIC:[3,2,1,4,2],STATHITONIC:[2,1,4,2,3],THALITONIC:[1,4,2,3,2],ZOLITONIC:[4,2,1,4,1],EPOGITONIC:[2,1,4,1,4],LANITONIC:[1,4,1,4,2],PAPTITONIC:[4,1,4,2,1],IONACRITONIC:[1,4,2,1,4],PHRADITONIC:[4,1,4,1,2],AEOLORITONIC:[1,4,1,2,4],GONITONIC:[4,1,2,4,1],DALITONIC:[1,2,4,1,4],DYGITONIC:[2,4,1,4,1],AERACRITONIC:[4,1,2,3,2],BYPTITONIC:[1,2,3,2,4],DARITONIC:[2,3,2,4,1],LONITONIC:[3,2,4,1,2],IONYCRITONIC:[2,4,1,2,3],LOTHITONIC:[4,1,2,2,3],PHRATONIC:[1,2,2,3,4],AERATHITONIC:[2,2,3,4,1],SARITONIC:[2,3,4,1,2],ZOPTITONIC:[3,4,1,2,2],DOLITONIC:[4,4,1,2,1],PORITONIC:[4,1,2,1,4],AERYLITONIC:[1,2,1,4,4],ZAGITONIC:[2,1,4,4,1],LAGITONIC:[1,4,4,1,2],MOLITONIC:[4,3,3,1,1],STAPTITONIC:[3,3,1,1,4],MOTHITONIC:[3,1,1,4,3],AERITONIC:[1,1,4,3,3],RAGITONIC:[1,4,3,3,1],IONADITONIC:[4,3,2,1,2],BOCRITONIC:[3,2,1,2,4],GYTHITONIC:[2,1,2,4,3],PAGITONIC:[1,2,4,3,2],AEOLYTHITONIC:[2,4,3,2,1],ZACRITONIC:[4,3,1,3,1],LARITONIC:[3,1,3,1,4],THACRITONIC:[1,3,1,4,3],STYDITONIC:[3,1,4,3,1],LORITONIC:[1,4,3,1,3],AEOLYRITONIC:[4,3,1,1,3],GORITONIC:[3,1,1,3,4],AEOLODITONIC:[1,1,3,4,3],DOPTITONIC:[1,3,4,3,1],AERAPHITONIC:[3,4,3,1,1],ZATHITONIC:[4,2,4,1,1],RADITONIC:[2,4,1,1,4],STONITONIC:[4,1,1,4,2],SYPTITONIC:[1,1,4,2,4],IONYTHITONIC:[1,4,2,4,1],AEOLANITONIC:[4,2,2,3,1],DANITONIC:[2,2,3,1,4],IONARITONIC:[2,3,1,4,2],DYNITONIC:[3,1,4,2,2],ZYDITONIC:[1,4,2,2,3],AEOLACRITONIC:[4,2,1,2,3],ZYTHITONIC:[2,1,2,3,4],DYRITONIC:[1,2,3,4,2],KOPTITONIC:[2,3,4,2,1],THOCRITONIC:[3,4,2,1,2],LYCRITONIC:[4,1,3,3,1],DAPTITONIC:[1,3,3,1,4],KYGITONIC:[3,3,1,4,1],MOCRITONIC:[3,1,4,1,3],ZYNITONIC:[1,4,1,3,3],EPYGITONIC:[4,1,3,2,2],ZAPTITONIC:[1,3,2,2,4],KAGITONIC:[3,2,2,4,1],ZOGITONIC:[2,2,4,1,3],EPYRITONIC:[2,4,1,3,2],ZOTHITONIC:[4,1,3,1,3],PHROLITONIC:[1,3,1,3,4],IONAGITONIC:[3,1,3,4,1],AEOLAPRITONIC:[1,3,4,1,3],KYRITONIC:[3,4,1,3,1],IONYPTITONIC:[4,1,1,3,3],GYRITONIC:[1,1,3,3,4],ZALITONIC:[1,3,3,4,1],STOLITONIC:[3,3,4,1,1],BYLITONIC:[3,4,1,1,3],THODITONIC:[3,3,2,3,1],DOGITONIC:[3,2,3,1,3],PHRALITONIC:[2,3,1,3,3],GARITONIC:[3,1,3,3,2],SOPTITONIC:[1,3,3,2,3],KATARITONIC:[3,3,2,2,2],SYLITONIC:[3,2,2,2,3],THONITONIC:[2,2,2,3,3],PHROPITONIC:[2,2,3,3,2],STADITONIC:[2,3,3,2,2],LYDITONIC:[3,3,1,3,2],MYTHITONIC:[3,1,3,2,3],SOGITONIC:[1,3,2,3,3],GOTHITONIC:[3,2,3,3,1],ROTHITONIC:[2,3,3,1,3],ZYLITONIC:[4,4,2,1,1],ZODITONIC:[4,2,1,1,4],ZARITONIC:[2,1,1,4,4],PHRYTHITONIC:[1,1,4,4,2],ROLITONIC:[1,4,4,2,1],RANITONIC:[4,4,1,1,2],LADITONIC:[4,1,1,2,4],PODITONIC:[1,1,2,4,4],IONOTHITONIC:[1,2,4,4,1],KANITONIC:[2,4,4,1,1],RYPHITONIC:[4,3,1,2,2],GYLITONIC:[3,1,2,2,4],AEOLYCRITONIC:[1,2,2,4,3],PYNITONIC:[2,2,4,3,1],ZANITONIC:[2,4,3,1,2],PHRONITONIC:[4,2,3,1,2],BANITONIC:[2,3,1,2,4],AERONITONIC:[3,1,2,4,2],GOLITONIC:[1,2,4,2,3],DYPTITONIC:[2,4,2,3,1],AERYNITONIC:[4,2,2,1,3],PALITONIC:[2,2,1,3,4],STOTHITONIC:[2,1,3,4,2],AEROPHITONIC:[1,3,4,2,2],KATAGITONIC:[3,4,2,2,1],IONODITONIC:[4,2,1,3,2],BOGITONIC:[2,1,3,2,4],MOGITONIC:[1,3,2,4,2],DOCRITONIC:[3,2,4,2,1],EPADITONIC:[2,4,2,1,3],MIXITONIC:[3,3,3,2,1],PHROTHITONIC:[3,3,2,1,3],KATYCRITONIC:[3,2,1,3,3],IONALITONIC:[2,1,3,3,3],LOPTITONIC:[1,3,3,3,2],THYRITONIC:[3,3,3,1,2],THOPTITONIC:[3,3,1,2,3],BYCRITONIC:[3,1,2,3,3],PATHITONIC:[1,2,3,3,3],MYDITONIC:[2,3,3,3,1],BOLITONIC:[4,2,2,2,2],BOTHITONIC:[2,2,2,2,4],KATADITONIC:[2,2,2,4,2],KODITONIC:[2,2,4,2,2],THOLITONIC:[2,4,2,2,2],EPATHIMIC:[3,2,2,1,2,2],MYNIMIC:[2,2,1,2,2,3],ROCRIMIC:[2,1,2,2,3,2],EPORIMIC:[1,2,2,3,2,2],THAPTIMIC:[2,2,3,2,2,1],LOTHIMIC:[2,3,2,2,1,2],DYRIMIC:[4,2,1,2,2,1],KOPTIMIC:[2,1,2,2,1,4],THOCRIMIC:[1,2,2,1,4,2],AEOLANIMIC:[2,2,1,4,2,1],DANIMIC:[2,1,4,2,1,2],IONARIMIC:[1,4,2,1,2,2],DAPTIMIC:[4,1,4,1,1,1],KYGIMIC:[1,4,1,1,1,4],MOCRIMIC:[4,1,1,1,4,1],ZYNIMIC:[1,1,1,4,1,4],AEOLIMIC:[1,1,4,1,4,1],ZYTHIMIC:[1,4,1,4,1,1],EPYGIMIC:[4,1,2,3,1,1],ZAPTIMIC:[1,2,3,1,1,4],KAGIMIC:[2,3,1,1,4,1],ZOGIMIC:[3,1,1,4,1,2],EPYRIMIC:[1,1,4,1,2,3],LYCRIMIC:[1,4,1,2,3,1],BYLIMIC:[4,1,2,2,2,1],ZOTHIMIC:[1,2,2,2,1,4],PHROLIMIC:[2,2,2,1,4,1],IONAGIMIC:[2,2,1,4,1,2],AEOLAPHIMIC:[2,1,4,1,2,2],KYCRIMIC:[1,4,1,2,2,2],GARIMIC:[4,1,2,2,1,2],SOPTIMIC:[1,2,2,1,2,4],IONYPTIMIC:[2,2,1,2,4,1],GYRIMIC:[2,1,2,4,1,2],ZALIMIC:[1,2,4,1,2,2],STOLIMIC:[2,4,1,2,2,1],THONIMIC:[4,1,1,4,1,1],STADIMIC:[1,1,4,1,1,4],THODIMIC:[1,4,1,1,4,1],MYTHIMIC:[4,1,1,3,2,1],SOGIMIC:[1,1,3,2,1,4],GOGIMIC:[1,3,2,1,4,1],ROTHIMIC:[3,2,1,4,1,1],KATARIMIC:[2,1,4,1,1,3],SYLIMIC:[1,4,1,1,3,2],MIXOLIMIC:[3,2,3,2,1,1],DADIMIC:[2,3,2,1,1,3],AEOLYPHIMIC:[3,2,1,1,3,2],GYCRIMIC:o,PYRIMIC:[1,1,3,2,3,2],LYDIMIC:[1,3,2,3,2,1],IONACRIMIC:[3,2,3,1,1,2],GATHIMIC:[2,3,1,1,2,3],IONYNIMIC:[3,1,1,2,3,2],PHRYNIMIC:[1,1,2,3,2,3],STATHIMIC:[1,2,3,2,3,1],THATIMIC:[2,3,2,3,1,1],DALIMIC:[3,2,2,3,1,1],DYGIMIC:[2,2,3,1,1,3],ZOLIMIC:[2,3,1,1,3,2],EPOGIMIC:[3,1,1,3,2,2],LANIMIC:[1,1,3,2,2,3],PAPTIMIC:[1,3,2,2,3,1],DARMIC:[3,2,2,2,1,2],LONIMIC:[2,2,2,1,2,3],IONYCRIMIC:[2,2,1,2,3,2],PHRADIMIC:[2,1,2,3,2,2],AEOLORIMIC:[1,2,3,2,2,2],GONIMIC:[2,3,2,2,2,1],PHRACRIMIC:[3,2,1,2,2,2],AERATHIMIC:[2,1,2,2,2,3],SARIMIC:[1,2,2,2,3,2],ZOPTIMIC:[2,2,2,3,2,1],ZERACRIMIC:[2,2,3,2,1,2],BYPTIMIC:[2,3,2,1,2,2],STARIMIC:[4,3,2,1,1,1],PHRATHIMIC:[3,2,1,1,1,4],SAPTIMIC:[2,1,1,1,4,3],AERODIMIC:[1,1,1,4,3,2],MACRIMIC:[1,1,4,3,2,1],ROGIMIC:[1,4,3,2,1,1],BYGIMIC:[4,3,1,1,2,1],THYCRIMIC:[3,1,1,2,1,4],AEOLADIMIC:[1,1,2,1,4,3],DYLIMIC:[1,2,1,4,3,1],EPONIMIC:[2,1,4,3,1,1],KATYGIMIC:[1,4,3,1,1,2],STALIMIC:[4,2,3,1,1,1],STOPTIMIC:[2,3,1,1,1,4],ZYGIMIC:[3,1,1,1,4,2],KATAPTIMIC:[1,1,1,4,2,3],AEOLAPTIMIC:[1,1,4,2,3,1],POTHIMIC:[1,4,2,3,1,1],RYCRIMIC:[4,2,2,1,2,1],RONIMIC:[2,2,1,2,1,4],STYCRIMIC:[2,1,2,1,4,2],KATORIMIC:[1,2,1,4,2,2],EPYTHIMIC:[2,1,4,2,2,1],KAPTIMIC:[1,4,2,2,1,2],KATYTHIMIC:[4,2,1,3,1,1],MADIMIC:[2,1,3,1,1,4],AERYGIMIC:[1,3,1,1,4,2],PYLIMIC:[3,1,1,4,2,1],IONATHIMIC:[1,1,4,2,1,3],MORIMIC:[1,4,2,1,3,1],AERYCRIMIC:[4,2,1,1,3,1],GANIMIC:[2,1,1,3,1,4],EPARIMIC:[1,1,3,1,4,2],LYRIMIC:[1,3,1,4,2,1],PHRAPTIMIC:[3,1,4,2,1,1],BACRIMIC:[1,4,2,1,1,3],PHRALIMIC:[4,1,3,2,1,1],PHROGIMIC:[1,3,2,1,1,4],RATHIMIC:[3,2,1,1,4,1],KATOCRIMIC:[2,1,1,4,1,3],PHRYPTIMIC:[1,1,4,1,3,2],KATYNIMIC:[1,4,1,3,2,1],SOLIMIC:[4,1,3,1,2,1],IONOLIMIC:[1,3,1,2,1,4],IONOPHIMIC:[3,1,2,1,4,1],AEOLOGIMIC:[1,2,1,4,1,3],ZADIMIC:[2,1,4,1,3,1],SYGIMIC:[1,4,1,3,1,2],THOGIMIC:[4,1,3,1,1,2],RYTHIMIC:[1,3,1,1,2,4],DONIMIC:[3,1,1,2,4,1],AEOLOPTIMIC:[1,1,2,4,1,3],PANIMIC:[1,2,4,1,3,1],LODIMIC:[2,4,1,3,1,1],LAPTIMIC:[4,1,2,1,3,1],LYGIMIC:[1,2,1,3,1,4],LOGIMIC:[2,1,3,1,4,1],LALIMIC:[1,3,1,4,1,2],SOTHIMIC:[3,1,4,1,2,1],PHROCRIMIC:[1,4,1,2,1,3],MODIMIC:[4,1,2,1,2,2],BARIMIC:[1,2,1,2,2,4],POPTIMIC:[2,1,2,2,4,1],SAGIMIC:[1,2,2,4,1,2],AELOTHIMIC:l,SOCRIMIC:[2,4,1,2,1,2],SYRIMIC:[4,1,2,1,1,3],STODIMIC:[1,2,1,1,3,4],IONOCRIMIC:[2,1,1,3,4,1],ZYCRIMIC:[1,1,3,4,1,2],IONYGIMIC:[1,3,4,1,2,1],KATATHIMIC:[3,4,1,2,1,1],BOLIMIC:[4,1,1,3,1,2],BOTHIMIC:[1,1,3,1,2,4],KATADIMIC:[1,3,1,2,4,1],KODIMIC:[3,1,2,4,1,1],THOLIMIC:[1,2,4,1,1,3],RALIMIC:[2,4,1,1,3,1],KANIMIC:[4,1,1,2,3,1],ZYLIMIC:[1,1,2,3,1,4],ZODIMIC:[1,2,3,1,4,1],ZARIMIC:[2,3,1,4,1,1],PHRYTHIMIC:[3,1,4,1,1,2],RORIMIC:[1,4,1,1,2,3],PYNIMIC:[4,1,1,1,3,2],ZANIMIC:[1,1,1,3,2,4],RANIMIC:[1,1,3,2,4,1],LADIMIC:[1,3,2,4,1,1],PODIMIC:[3,2,4,1,1,1],IONOTHIMIC:[2,4,1,1,1,3],KYTRIMIC:[4,1,1,1,2,3],GOLIMIC:[1,1,1,2,3,4],DYPTIMIC:[1,1,2,3,4,1],RYRIMIC:[1,2,3,4,1,1],GYLIMIC:[2,3,4,1,1,1],AEOLYCRIMIC:[3,4,1,1,1,2],PALIMIC:[3,3,2,2,1,1],STOTHIMIC:[3,2,2,1,1,3],AERONIMIC:[2,2,1,1,3,3],KATAGIMIC:[2,1,1,3,3,2],PHRONIMIC:[1,1,3,3,2,2],BANIMIC:[1,3,3,2,2,1],IONODIMIC:[3,3,1,3,1,1],BOGIMIC:[3,1,3,1,1,3],MOGIMIC:[1,3,1,1,3,3],DOCRIMIC:[3,1,1,3,3,1],EPADIMIC:[1,1,3,3,1,3],AERYNIMIC:[1,3,3,1,3,1],MYDIMIC:[3,3,1,1,3,1],THYPTIMIC:[3,1,1,3,1,3],PHROTHIMIC:[1,1,3,1,3,3],KATYCRIMIC:[1,3,1,3,3,1],IONALIMIC:[3,1,3,3,1,1],LOPTIMIC:[1,3,3,1,1,3],ZAGIMIC:[3,3,1,1,2,2],LAGIMIC:[3,1,1,2,2,3],THYRIMIC:[1,1,2,2,3,3],THOTHIMIC:[1,2,2,3,3,1],BYCRIMIC:[2,2,3,3,1,1],PATHIMIC:[2,3,3,1,1,2],MOTHIMIC:[3,2,2,1,3,1],AERANIMIC:[2,2,1,3,1,3],RAGIMIC:[2,1,3,1,3,2],DOLIMIC:[1,3,1,3,2,2],PORIMIC:[3,1,3,2,2,1],AERYLIMIC:[1,3,2,2,1,3],BOCRIMIC:[3,2,1,3,1,2],GYTHIMIC:[2,1,3,1,2,3],PAGIMIC:[1,3,1,2,3,2],AEOLYTHIMIC:[3,1,2,3,2,1],MOLIMIC:[1,2,3,2,1,3],STAPTIMIC:[2,3,2,1,3,1],ZACRIMIC:[3,2,1,2,3,1],LARIMIC:[2,1,2,3,1,3],THACRIMIC:[1,2,3,1,3,2],STYDIMIC:[2,3,1,3,2,1],LORIMIC:[3,1,3,2,1,2],IONADIMIC:[1,3,2,1,2,3],IONYTHIMIC:[3,1,3,1,3,1],AERYTHIMIC:[1,3,1,3,1,3],DYNIMIC:[3,1,3,1,2,2],ZYDIMIC:[1,3,1,2,2,3],ZATHIMIC:[3,1,2,2,3,1],RADIMIC:[1,2,2,3,1,3],STONIMIC:[2,2,3,1,3,1],SYPTIMIC:[2,3,1,3,1,2],PONIMIC:[4,4,1,1,1,1],KADIMIC:[4,1,1,1,1,4],GYNIMIC:[1,1,1,1,4,4],THYDIMIC:[1,1,1,4,4,1],POLIMIC:[1,1,4,4,1,1],THANIMIC:[1,4,4,1,1,1],LATHIMIC:[4,3,1,2,1,1],AERALIMIC:[3,1,2,1,1,4],KYNIMIC:[1,2,1,1,4,3],STYNIMIC:[2,1,1,4,3,1],EPYTIMIC:[1,1,4,3,1,2],KATOPTIMIC:[1,4,3,1,2,1],GALIMIC:[4,3,1,1,1,2],KATHIMIC:[3,1,1,1,2,4],LYLIMIC:[1,1,1,2,4,3],EPALIMIC:[1,1,2,4,3,1],EPACRIMIC:[1,2,4,3,1,1],SATHIMIC:[2,4,3,1,1,1],KATANIMIC:[4,2,2,2,1,1],KATYRIMIC:[2,2,2,1,1,4],RYNIMIC:[2,2,1,1,4,2],POGIMIC:[2,1,1,4,2,2],AERAPTIMIC:[1,1,4,2,2,2],EPYLIMIC:[1,4,2,2,2,1],MANIMIC:[4,2,1,2,1,2],MARIMIC:[2,1,2,1,2,4],LOCRIMIC:[1,2,1,2,4,2],RYLIMIC:[2,1,2,4,2,1],EPATIMIC:[1,2,4,2,1,2],BYRIMIC:[2,4,2,1,2,1],KOCRIMIC:[4,2,1,1,1,3],KORIMIC:[2,1,1,1,3,4],LYNIMIC:[1,1,1,3,4,2],MALIMIC:[1,1,3,4,2,1],SYNIMIC:[1,3,4,2,1,1],PHRAGIMIC:[3,4,2,1,1,1],MYCRIMIC:[4,1,1,2,2,2],IONORIMIC:[1,1,2,2,2,4],PHRYDIMIC:[1,2,2,2,4,1],ZYPTIMIC:[2,2,2,4,1,1],KATOTHIMIC:[2,2,4,1,1,2],PHRYLIMIC:[2,4,1,1,2,2],AEROTHIMIC:[4,1,1,2,1,3],STAGIMIC:[1,1,2,1,3,4],DORIMIC:[1,2,1,3,4,1],PHRYCRIMIC:[2,1,3,4,1,1],KYPTIMIC:[1,3,4,1,1,2],IONYLIMIC:[3,4,1,1,2,1],EPYNIMIC:[3,3,3,1,1,1],IONOGIMIC:[3,3,1,1,1,3],KYDIMIC:[3,1,1,1,3,3],GAPTIMIC:[1,1,1,3,3,3],THARIMIC:[1,1,3,3,3,1],IONAPHIMIC:[1,3,3,3,1,1],THOPTIMIC:[3,3,2,1,2,1],BAGIMIC:[3,2,1,2,1,3],KYRIMIC:[2,1,2,1,3,3],SONIMIC:[1,2,1,3,3,2],AEOLONIMIC:[2,1,3,3,2,1],RYGIMIC:[1,3,3,2,1,2],THAGIMIC:[3,3,2,1,1,2],KOLIMIC:[3,2,1,1,2,3],DYCRIMIC:[2,1,1,2,3,3],EPYCRIMIC:[1,1,2,3,3,2],GOCRIMIC:[1,2,3,3,2,1],KATOLIMIC:[2,3,3,2,1,1],DAGIMIC:[3,3,1,2,2,1],AEOLYDIMIC:[3,1,2,2,1,3],PARIMIC:[1,2,2,1,3,3],IONAPTIMIC:[2,2,1,3,3,1],THYLIMIC:[2,1,3,3,1,2],LOLIMIC:[1,3,3,1,2,2],THALIMIC:[3,3,1,2,1,2],STYGIMIC:[3,1,2,1,2,3],AEOLYGIMIC:[1,2,1,2,3,3],AEROGIMIC:[2,1,2,3,3,1],DACRIMIC:[1,2,3,3,1,2],BAPTIMIC:[2,3,3,1,2,1],STYTHIMIC:[3,2,3,1,2,1],KOTHIMIC:[2,3,1,2,1,3],PYGIMIC:[3,1,2,1,3,2],RODIMIC:[1,2,1,3,2,3],SORIMIC:[2,1,3,2,3,1],MONIMIC:[1,3,2,3,1,2],AERAGIMIC:[3,2,2,2,2,1],EPOTHIMIC:[2,2,2,2,1,3],SALIMIC:[2,2,2,1,3,2],LYPTIMIC:[2,2,1,3,2,2],KATONIMIC:[2,1,3,2,2,2],GYGIMIC:[1,3,2,2,2,2],AERADIMIC:[3,2,1,3,2,1],ZYRIMIC:[2,1,3,2,1,3],STYLIMIC:[1,3,2,1,3,2],LYTHIMIC:[3,1,2,3,1,2],DODIMIC:[1,2,3,1,2,3],KATALIMIC:[2,3,1,2,3,1],BOPTIMIC:[3,1,2,2,2,2],STOGIMIC:[1,2,2,2,2,3],THYNIMIC:[2,2,2,2,3,1],AEOLATHIMIC:[2,2,2,3,1,2],BYTHIMIC:[2,2,3,1,2,2],PADIMIC:[2,3,1,2,2,2],DATHIMIC:[4,2,2,1,1,2],EPAGIMIC:[2,2,1,1,2,4],RAPTIMIC:[2,1,1,2,4,2],EPOLIMIC:[1,1,2,4,2,2],SYTHIMIC:[1,2,4,2,2,1],SYDIMIC:[2,4,2,2,1,1],GACRIMIC:[4,2,1,1,2,2],BORIMIC:[2,1,1,2,2,4],SYCRIMIC:[1,1,2,2,4,2],GADIMIC:[1,2,2,4,2,1],AEOLOCRIMIC:[2,2,4,2,1,1],PHRYGIMIC:[2,4,2,1,1,2],WHOLETONE:s,LYDIAN:[2,2,2,1,2,2,1],MIXOLYDIAN:[2,2,1,2,2,1,2],AEOLIAN:n,LOCRIAN:[1,2,2,1,2,2,2],IONIAN:e,DORIAN:[2,1,2,2,2,1,2],PHRYGIAN:[1,2,2,2,1,2,2],IONYTHIAN:[4,1,2,2,1,1,1],AEOLYRIAN:[1,2,2,1,1,1,4],GORIAN:[2,2,1,1,1,4,1],AEOLODIAN:[2,1,1,1,4,1,2],DOPTIAN:[1,1,1,4,1,2,2],AERAPHIAN:[1,1,4,1,2,2,1],ZACRIAN:[1,4,1,2,2,1,1],IONARIAN:[4,1,1,3,1,1,1],DYNIAN:[1,1,3,1,1,1,4],ZYDIAN:[1,3,1,1,1,4,1],ZATHIAN:[3,1,1,1,4,1,1],RADIAN:[1,1,1,4,1,1,3],STONIAN:[1,1,4,1,1,3,1],SYPTIAN:[1,4,1,1,3,1,1],AEOLACRIAN:[4,1,1,1,3,1,1],ZYTHIAN:[1,1,1,3,1,1,4],DYRIAN:[1,1,3,1,1,4,1],KOPTIAN:[1,3,1,1,4,1,1],THOCRIAN:[3,1,1,4,1,1,1],AEOLANIAN:[1,1,4,1,1,1,3],DANIAN:[1,4,1,1,1,3,1],ZOGIAN:[4,1,1,1,2,2,1],EPYRIAN:[1,1,1,2,2,1,4],LYCRIAN:[1,1,2,2,1,4,1],DAPTIAN:[1,2,2,1,4,1,1],KYGIAN:[2,2,1,4,1,1,1],MOCRIAN:[2,1,4,1,1,1,2],ZYNIAN:[1,4,1,1,1,2,2],PHROLIAN:[3,2,2,1,2,1,1],IONAGIAN:[2,2,1,2,1,1,3],AEODIAN:[2,1,2,1,1,3,2],KYCRIAN:[1,2,1,1,3,2,2],EPYGIAN:[2,1,1,3,2,2,1],ZAPTIAN:[1,1,3,2,2,1,2],KAGIAN:[1,3,2,2,1,2,1],SOPTIAN:[3,2,2,1,1,1,2],IONYPTIAN:[2,2,1,1,1,2,3],GYRIAN:[2,1,1,1,2,3,2],ZALIAN:[1,1,1,2,3,2,2],STOLIAN:[1,1,2,3,2,2,1],BYLIAN:[1,2,3,2,2,1,1],ZOTHIAN:[2,3,2,2,1,1,1],THONIAN:[3,2,1,2,2,1,1],PHRORIAN:[2,1,2,2,1,1,3],STADIAN:[1,2,2,1,1,3,2],THODIAN:[2,2,1,1,3,2,1],DOGIAN:[2,1,1,3,2,1,2],MIXOPYRIAN:[1,1,3,2,1,2,2],GARIAN:[1,3,2,1,2,2,1],EPATHIAN:[3,2,1,1,3,1,1],MYTHIAN:[2,1,1,3,1,1,3],SOGIAN:[1,1,3,1,1,3,2],GOGIAN:[1,3,1,1,3,2,1],ROTHIAN:[3,1,1,3,2,1,1],KATARIAN:[1,1,3,2,1,1,3],STYLIAN:[1,3,2,1,1,3,1],STATHIAN:[3,2,1,1,1,2,2],MIXONYPHIAN:[2,1,1,1,2,2,3],MAGIAN:[1,1,1,2,2,3,2],DADIAN:[1,1,2,2,3,2,1],AEOLYLIAN:[1,2,2,3,2,1,1],GYCRIAN:[2,2,3,2,1,1,1],PYRIAN:[2,3,2,1,1,1,2],EPOGIAN:[3,1,1,3,1,1,2],LANIAN:[1,1,3,1,1,2,3],PAPTIAN:[1,3,1,1,2,3,1],IONACRIAN:[3,1,1,2,3,1,1],GATHIAN:[1,1,2,3,1,1,3],IONYPHIAN:[1,2,3,1,1,3,1],PHRYNIAN:[2,3,1,1,3,1,1],IONYCRIAN:[3,1,1,2,2,1,2],PHRADIAN:[1,1,2,2,1,2,3],AEOLORIAN:[1,2,2,1,2,3,1],GONIAN:[2,2,1,2,3,1,1],DALIAN:[2,1,2,3,1,1,2],DYGIAN:[1,2,3,1,1,2,2],ZOLIAN:[2,3,1,1,2,2,1],AERATHIAN:[3,1,1,2,1,2,2],SARIAN:[1,1,2,1,2,2,3],ZOPTIAN:[1,2,1,2,2,3,1],AERACRIAN:[2,1,2,2,3,1,1],BYPTIAN:[1,2,2,3,1,1,2],DARIAN:[2,2,3,1,1,2,1],LONIAN:[2,3,1,1,2,1,2],AEOPIAN:[4,2,1,2,1,1,1],RYGIAN:[2,1,2,1,1,1,4],EPYNIAN:[1,2,1,1,1,4,2],IONOGIAN:[2,1,1,1,4,2,1],KYDIAN:[1,1,1,4,2,1,2],GAPTIAN:[1,1,4,2,1,2,1],THARIAN:[1,4,2,1,2,1,1],EPYCRIAN:[4,2,1,1,1,2,1],GOCRIAN:[2,1,1,1,2,1,4],KATOLIAN:[1,1,1,2,1,4,2],THOPTIAN:[1,1,2,1,4,2,1],BAGIAN:[1,2,1,4,2,1,1],KYRIAN:[2,1,4,2,1,1,1],SONIAN:[1,4,2,1,1,1,2],PARIAN:[4,1,3,1,1,1,1],IONAPTIAN:[1,3,1,1,1,1,4],THYLIAN:[3,1,1,1,1,4,1],LOLIAN:[1,1,1,1,4,1,3],THAGIAN:[1,1,1,4,1,3,1],KOLIAN:[1,1,4,1,3,1,1],DYCRIAN:[1,4,1,3,1,1,1],STYGIAN:[4,1,2,1,2,1,1],AEOLYGIAN:[1,2,1,2,1,1,4],AEROGIAN:[2,1,2,1,1,4,1],DACRIAN:[1,2,1,1,4,1,2],BAPTIAN:[2,1,1,4,1,2,1],DAGIAN:[1,1,4,1,2,1,2],AEOLYDIAN:[1,4,1,2,1,2,1],STYTHIAN:[4,1,2,1,1,2,1],KOTHIAN:[1,2,1,1,2,1,4],PYGIAN:[2,1,1,2,1,4,1],RODIAN:[1,1,2,1,4,1,2],SORIAN:[1,2,1,4,1,2,1],MONIAN:[2,1,4,1,2,1,1],THALIAN:[1,4,1,2,1,1,2],ZORIAN:[4,1,2,1,1,1,2],AERAGIAN:[1,2,1,1,1,2,4],EPOTHIAN:[2,1,1,1,2,4,1],SALIAN:[1,1,1,2,4,1,2],LYPTIAN:[1,1,2,4,1,2,1],KATONIAN:[1,2,4,1,2,1,1],GYPHIAN:[2,4,1,2,1,1,1],THACRIAN:[4,1,1,2,2,1,1],DODIAN:[1,1,2,2,1,1,4],AEOLYPTIAN:[1,2,2,1,1,4,1],AEOLONIAN:[2,2,1,1,4,1,1],AERADIAN:[2,1,1,4,1,1,2],AEOLAGIAN:[1,1,4,1,1,2,2],ZYRIAN:[1,4,1,1,2,2,1],AEOLATHIAN:[4,1,1,2,1,2,1],BYTHIAN:[1,1,2,1,2,1,4],PADIAN:[1,2,1,2,1,4,1],ROLIAN:[2,1,2,1,4,1,1],PYDIAN:[1,2,1,4,1,1,2],THYGIAN:[2,1,4,1,1,2,1],KATALIAN:[1,4,1,1,2,1,2],SAPTIAN:[4,1,1,1,2,1,2],AERODIAN:[1,1,1,2,1,2,4],MACRIAN:[1,1,2,1,2,4,1],ROGIAN:[1,2,1,2,4,1,1],BOPTIAN:[2,1,2,4,1,1,1],STOGIAN:[1,2,4,1,1,1,2],THYNIAN:[2,4,1,1,1,2,1],THYCRIAN:[4,1,1,1,1,3,1],AEOLADIAN:[1,1,1,1,3,1,4],DYLIAN:[1,1,1,3,1,4,1],EPONIAN:[1,1,3,1,4,1,1],KATYGIAN:[1,3,1,4,1,1,1],STARIAN:[3,1,4,1,1,1,1],PHRATHIAN:[1,4,1,1,1,1,3],STALIAN:[3,3,1,1,2,1,1],STOPTIAN:[3,1,1,2,1,1,3],ZYGIAN:[1,1,2,1,1,3,3],KATAPTIAN:[1,2,1,1,3,3,1],AEOLAPTIAN:[2,1,1,3,3,1,1],POTHIAN:[1,1,3,3,1,1,2],BYGIAN:[1,3,3,1,1,2,1],MORIAN:[3,2,3,1,1,1,1],RYCRIAN:[2,3,1,1,1,1,3],RONIAN:[3,1,1,1,1,3,2],STYCRIAN:[1,1,1,1,3,2,3],KATORIAN:[1,1,1,3,2,3,1],EPYTHIAN:[1,1,3,2,3,1,1],KAPTIAN:[1,3,2,3,1,1,1],PHRAPTIAN:[3,2,2,2,1,1,1],BACRIAN:[2,2,2,1,1,1,3],KATYTHIAN:[2,2,1,1,1,3,2],MADIAN:[2,1,1,1,3,2,2],AERYGIAN:[1,1,1,3,2,2,2],PYLIAN:[1,1,3,2,2,2,1],IONATHIAN:[1,3,2,2,2,1,1],KATOCRIAN:[3,2,1,3,1,1,1],PHRYPTIAN:[2,1,3,1,1,1,3],KATYNIAN:[1,3,1,1,1,3,2],AERYCRIAN:[3,1,1,1,3,2,1],GANIAN:[1,1,1,3,2,1,3],EPARIAN:[1,1,3,2,1,3,1],LYRIAN:[1,3,2,1,3,1,1],IONOPIAN:[3,2,1,2,1,1,2],AEOLOGIAN:[2,1,2,1,1,2,3],ZADIAN:[1,2,1,1,2,3,2],SYGIAN:[2,1,1,2,3,2,1],PHRALIAN:[1,1,2,3,2,1,2],PHROGIAN:[1,2,3,2,1,2,1],RATHIAN:[2,3,2,1,2,1,1],RYTHIAN:[3,2,1,1,2,1,2],DONIAN:[2,1,1,2,1,2,3],AEOLOPTIAN:[1,1,2,1,2,3,2],PANIAN:[1,2,1,2,3,2,1],LODIAN:[2,1,2,3,2,1,1],SOLIAN:[1,2,3,2,1,1,2],IONOLIAN:[2,3,2,1,1,2,1],LAPTIAN:[3,2,1,1,1,3,1],LYGIAN:[2,1,1,1,3,1,3],LOGIAN:[1,1,1,3,1,3,2],LALIAN:[1,1,3,1,3,2,1],SOTHIAN:[1,3,1,3,2,1,1],PHROCRIAN:[3,1,3,2,1,1,1],THOGIAN:[1,3,2,1,1,1,3],KATATHIAN:[3,1,3,1,2,1,1],MODIAN:[1,3,1,2,1,1,3],BARIAN:[3,1,2,1,1,3,1],MIXOLOCRIAN:[1,2,1,1,3,1,3],SAGIAN:[2,1,1,3,1,3,1],AEOLOTHIAN:[1,1,3,1,3,1,2],SOCRIAN:[1,3,1,3,1,2,1],THOLIAN:[3,1,3,1,1,2,1],RALIAN:[1,3,1,1,2,1,3],SYRIAN:[3,1,1,2,1,3,1],STODIAN:[1,1,2,1,3,1,3],IONOCRIAN:[1,2,1,3,1,3,1],ZYCRIAN:[2,1,3,1,3,1,1],IONYGIAN:[1,3,1,3,1,1,2],ZARIAN:[3,1,3,1,1,1,2],PHRYTHIAN:[1,3,1,1,1,2,3],RORIAN:[3,1,1,1,2,3,1],BOLIAN:[1,1,1,2,3,1,3],BOTHIAN:[1,1,2,3,1,3,1],KATADIAN:[1,2,3,1,3,1,1],KODIAN:[2,3,1,3,1,1,1],RANIAN:[3,1,2,3,1,1,1],LADIAN:[1,2,3,1,1,1,3],PODIAN:[2,3,1,1,1,3,1],IONOTHIAN:[3,1,1,1,3,1,2],KANIAN:[1,1,1,3,1,2,3],ZYLIAN:[1,1,3,1,2,3,1],ZODIAN:[1,3,1,2,3,1,1],GOLIAN:[3,1,2,2,2,1,1],DYPTIAN:[1,2,2,2,1,1,3],RYPHIAN:[2,2,2,1,1,3,1],GYLIAN:[2,2,1,1,3,1,2],AEOLYCRIAN:[2,1,1,3,1,2,2],PYNIAN:[1,1,3,1,2,2,2],ZANIAN:[1,3,1,2,2,2,1],PALIAN:[3,1,2,2,1,2,1],STOTHIAN:[1,2,2,1,2,1,3],AERORIAN:r,KATAGIAN:[2,1,2,1,3,1,2],PHRONIAN:[1,2,1,3,1,2,2],BANIAN:[2,1,3,1,2,2,1],AERONIAN:[1,3,1,2,2,1,2],LOPTIAN:[3,1,2,1,3,1,1],IONODIAN:[1,2,1,3,1,1,3],BOGIAN:[2,1,3,1,1,3,1],MOGIAN:[1,3,1,1,3,1,2],DOCRIAN:[3,1,1,3,1,2,1],EPADIAN:[1,1,3,1,2,1,3],AERYNIAN:[1,3,1,2,1,3,1],BYCRIAN:[3,1,2,1,2,2,1],PATHIAN:[1,2,1,2,2,1,3],MYDIAN:t,THYPTIAN:[1,2,2,1,3,1,2],PHROTHIAN:[2,2,1,3,1,2,1],KATYCRIAN:[2,1,3,1,2,1,2],IONALIAN:[1,3,1,2,1,2,2],DOLIAN:[3,1,1,2,2,2,1],PORIAN:[1,1,2,2,2,1,3],AERYLIAN:f,"NEOPOLITAN MINOR":f,ZAGIAN:[2,2,2,1,3,1,1],LAGIAN:[2,2,1,3,1,1,2],TYRIAN:[2,1,3,1,1,2,2],MIXONORIAN:[1,3,1,1,2,2,2],PAGIAN:[3,1,1,1,2,2,2],AEOLYTHIAN:[1,1,1,2,2,2,3],MOLIAN:[1,1,2,2,2,3,1],STAPTIAN:[1,2,2,2,3,1,1],MOTHIAN:[2,2,2,3,1,1,1],AERANIAN:[2,2,3,1,1,1,2],RAGIAN:[2,3,1,1,1,2,2],LARIAN:[2,2,2,2,1,2,1],LYTHIAN:[2,2,2,1,2,1,2],STYDIAN:d,LORIAN:[2,1,2,1,2,2,2],IONADIAN:[1,2,1,2,2,2,2],BOCRIAN:u,MIXOLYTHIAN:[1,2,2,2,2,1,2],THADIAN:[4,3,1,1,1,1,1],SANIAN:[3,1,1,1,1,1,4],IONYDIAN:[1,1,1,1,1,4,3],EPYDIAN:[1,1,1,1,4,3,1],KATYDIAN:[1,1,1,4,3,1,1],MATHIAN:[1,1,4,3,1,1,1],AERYPTIAN:[1,4,3,1,1,1,1],PYTHIAN:[4,2,2,1,1,1,1],KATYLIAN:[2,2,1,1,1,1,4],BYDIAN:[2,1,1,1,1,4,2],BYNIAN:[1,1,1,1,4,2,2],GALIAN:[1,1,1,4,2,2,1],ZONIAN:[1,1,4,2,2,1,1],MYRIAN:[1,4,2,2,1,1,1],KATOGIAN:[4,2,1,1,2,1,1],STACRIAN:[2,1,1,2,1,1,4],STYRIAN:[1,1,2,1,1,4,2],IONYRIAN:[1,2,1,1,4,2,1],PHRODIAN:[2,1,1,4,2,1,1],PYCRIAN:[1,1,4,2,1,1,2],GYPTIAN:[1,4,2,1,1,2,1],KATACRIAN:[4,1,1,2,1,1,2],SODIAN:[1,1,2,1,1,2,4],BATHIAN:[1,2,1,1,2,4,1],MYLIAN:[2,1,1,2,4,1,1],GODIAN:[1,1,2,4,1,1,2],THORIAN:[1,2,4,1,1,2,1],ZOCRIAN:[2,4,1,1,2,1,1],STANIAN:[4,1,1,1,1,2,2],EPANIAN:[1,1,1,1,2,2,4],KONIAN:[1,1,1,2,2,4,1],STOCRIAN:[1,1,2,2,4,1,1],KALIAN:[1,2,2,4,1,1,1],PHROPTIAN:[2,2,4,1,1,1,1],DYDIAN:[2,4,1,1,1,1,2],KATYPTIAN:[4,1,1,1,1,1,3],EPODIAN:[1,1,1,1,1,3,4],MYGIAN:[1,1,1,1,3,4,1],PACRIAN:[1,1,1,3,4,1,1],AEROCRIAN:[1,1,3,4,1,1,1],AEOLARIAN:[1,3,4,1,1,1,1],KYTHIAN:[3,4,1,1,1,1,1],BONIAN:[3,3,2,1,1,1,1],BADIAN:[3,2,1,1,1,1,3],KATODIAN:[2,1,1,1,1,3,3],SADIAN:[1,1,1,1,3,3,2],DOTHIAN:[1,1,1,3,3,2,1],MOPTIAN:[1,1,3,3,2,1,1],AERYRIAN:[1,3,3,2,1,1,1],EPAGIAN:[3,3,1,2,1,1,1],RAPTIAN:[3,1,2,1,1,1,3],EPOLIAN:[1,2,1,1,1,3,3],SYTHIAN:[2,1,1,1,3,3,1],SYDIAN:[1,1,1,3,3,1,2],EPOCRIAN:[1,1,3,3,1,2,1],KYLIAN:[1,3,3,1,2,1,1],GACRIAN:[3,3,1,1,1,2,1],BORIAN:[3,1,1,1,2,1,3],SYCRIAN:[1,1,1,2,1,3,3],GADIAN:[1,1,2,1,3,3,1],AEOLOCRIAN:[1,2,1,3,3,1,1],MIXODORIAN:[2,1,3,3,1,1,1],DATHIAN:[1,3,3,1,1,1,2],KATOPTIAN:[3,3,1,1,1,1,2],PONIAN:[3,1,1,1,1,2,3],KADIAN:[1,1,1,1,2,3,3],GYNIAN:[1,1,1,2,3,3,1],THYPHIAN:[1,1,2,3,3,1,1],POLIAN:[1,2,3,3,1,1,1],THANIAN:[2,3,3,1,1,1,1],EPACRIAN:[3,2,2,1,1,2,1],SATHIAN:[2,2,1,1,2,1,3],LATHIAN:[2,1,1,2,1,3,2],AERALIAN:[1,1,2,1,3,2,2],KYNIAN:[1,2,1,3,2,2,1],STYNIAN:[2,1,3,2,2,1,1],EPYPHIAN:[1,3,2,2,1,1,2],POGIAN:[3,2,1,2,1,2,1],AERAPTIAN:[2,1,2,1,2,1,3],EPYLIAN:[1,2,1,2,1,3,2],GAMIAN:[2,1,2,1,3,2,1],KATHIAN:[1,2,1,3,2,1,2],LYLIAN:[2,1,3,2,1,2,1],EPALIAN:[1,3,2,1,2,1,2],EPORIAN:[3,2,1,1,2,2,1],RYLIAN:[2,1,1,2,2,1,3],EPAPTIAN:[1,1,2,2,1,3,2],BYRIAN:[1,2,2,1,3,2,1],KATANIAN:[2,2,1,3,2,1,1],KATYRIAN:[2,1,3,2,1,1,2],RYNIAN:[1,3,2,1,1,2,2],KORIAN:[3,1,2,2,1,1,2],LYNIAN:[1,2,2,1,1,2,3],MALIAN:[2,2,1,1,2,3,1],SYNIAN:[2,1,1,2,3,1,2],PHRAGIAN:[1,1,2,3,1,2,2],MANIAN:[1,2,3,1,2,2,1],MARIAN:[2,3,1,2,2,1,1],MYCRIAN:[3,1,2,1,2,1,2],IONORIAN:[1,2,1,2,1,2,3],PHRYDIAN:[2,1,2,1,2,3,1],ZYPTIAN:[1,2,1,2,3,1,2],KATOTHIAN:[2,1,2,3,1,2,1],PHRYLIAN:[1,2,3,1,2,1,2],KOCRIAN:[2,3,1,2,1,2,1],IONANIAN:[3,1,2,1,1,2,2],AEROTHIAN:[1,2,1,1,2,2,3],STAGIAN:[2,1,1,2,2,3,1],LOTHIAN:[1,1,2,2,3,1,2],PHRYCRIAN:[1,2,2,3,1,2,1],KYPTIAN:[2,2,3,1,2,1,1],IONYLIAN:[2,3,1,2,1,1,2],GYDIAN:[4,2,1,1,1,1,2],KOGIAN:[2,1,1,1,1,2,4],RARIAN:[1,1,1,1,2,4,2],AEROLIAN:[1,1,1,2,4,2,1],KARIAN:[1,1,2,4,2,1,1],MYPTIAN:[1,2,4,2,1,1,1],RYDIAN:[2,4,2,1,1,1,1],AEOLYNIAN:[2,2,2,2,2,1,1],AEROPTIAN:[2,2,2,2,1,1,2],PHRYRIAN:[2,2,2,1,1,2,2],GOTHIAN:[2,2,1,1,2,2,2],STORIAN:[2,1,1,2,2,2,2],PYPTIAN:[1,1,2,2,2,2,2],THYDIAN:m,"NEOPOLITAN MAJOR":m,AERYCRYLLIC:y,"DOMINANT BEBOP":y,"BEBOP DOMINANT":y,GADYLLIC:[2,1,2,2,1,1,1,2],SOLYLLIC:[1,2,2,1,1,1,2,2],ZYLYLLIC:[2,2,1,1,1,2,2,1],MIXODYLLIC:[2,1,1,1,2,2,1,2],SORYLLIC:[1,1,1,2,2,1,2,2],GODYLLIC:[1,1,2,2,1,2,2,1],EPIPHYLLIC:[1,2,2,1,2,2,1,1],PYNYLLIC:[4,1,1,1,2,1,1,1],BOCRYLLIC:[1,1,1,2,1,1,1,4],KOGYLLIC:[1,1,2,1,1,1,4,1],RARYLLIC:[1,2,1,1,1,4,1,1],ZYCRYLLIC:[2,1,1,1,4,1,1,1],MYCRYLLIC:[1,1,1,4,1,1,1,2],LAPTYLLIC:[1,1,4,1,1,1,2,1],PYLYLLIC:[1,4,1,1,1,2,1,1],POTHYLLIC:[3,2,1,1,1,2,1,1],PHRONYLLIC:[2,1,1,1,2,1,1,3],STYNYLLIC:[1,1,1,2,1,1,3,2],RATHYLLIC:[1,1,2,1,1,3,2,1],AERYPTYLLIC:[1,2,1,1,3,2,1,1],ZYDYLLIC:[2,1,1,3,2,1,1,1],KATOLYLLIC:[1,1,3,2,1,1,1,2],RYTHYLLIC:[1,3,2,1,1,1,2,1],LOCRYLLIC:[3,1,1,3,1,1,1,1],BYLYLLIC:[1,1,3,1,1,1,1,3],SOGYLLIC:[1,3,1,1,1,1,3,1],IONYCRYLLIC:[3,1,1,1,1,3,1,1],KOPTYLLIC:[1,1,1,1,3,1,1,3],EPYRYLLIC:[1,1,1,3,1,1,3,1],SOPTYLLIC:[1,1,3,1,1,3,1,1],AEOLYLYLLIC:[1,3,1,1,3,1,1,1],AERACRYLLIC:[3,1,1,2,2,1,1,1],EPYGYLLIC:[1,1,2,2,1,1,1,3],THONYLLIC:[1,2,2,1,1,1,3,1],LANYLLIC:[2,2,1,1,1,3,1,1],PHRYNYLLIC:[2,1,1,1,3,1,1,2],LYCRYLLIC:[1,1,1,3,1,1,2,2],IONYPTYLLIC:[1,1,3,1,1,2,2,1],EPATHYLLIC:[1,3,1,1,2,2,1,1],DYDYLLIC:[3,1,1,2,1,2,1,1],THOGYLLIC:[1,1,2,1,2,1,1,3],RYGYLLIC:[1,2,1,2,1,1,3,1],BYCRYLLIC:[2,1,2,1,1,3,1,1],ZACRYLLIC:[1,2,1,1,3,1,1,2],PANYLLIC:[2,1,1,3,1,1,2,1],DYRYLLIC:[1,1,3,1,1,2,1,2],ZATHYLLIC:[1,3,1,1,2,1,2,1],DAGYLLIC:[3,1,1,2,1,1,1,2],KATALYLLIC:[1,1,2,1,1,1,2,3],KATORYLLIC:[1,2,1,1,1,2,3,1],DODYLLIC:[2,1,1,1,2,3,1,1],ZOGYLLIC:[1,1,1,2,3,1,1,2],MADYLLIC:[1,1,2,3,1,1,2,1],DYCRYLLIC:[1,2,3,1,1,2,1,1],AEOLOGYLLIC:[2,3,1,1,2,1,1,1],SYDYLLIC:[3,1,1,1,3,1,1,1],KATOGYLLIC:[1,1,1,3,1,1,1,3],ZYGYLLIC:[1,1,3,1,1,1,3,1],AERALYLLIC:[1,3,1,1,1,3,1,1],BACRYLLIC:[3,1,1,1,2,2,1,1],AERYGYLLIC:[1,1,1,2,2,1,1,3],DATHYLLIC:[1,1,2,2,1,1,3,1],BOPTYLLIC:[1,2,2,1,1,3,1,1],BAGYLLIC:[2,2,1,1,3,1,1,1],MATHYLLIC:[2,1,1,3,1,1,1,2],STYPTYLLIC:[1,1,3,1,1,1,2,2],ZOLYLLIC:[1,3,1,1,1,2,2,1],ROCRYLLIC:[2,2,2,1,2,1,1,1],ZYRYLLIC:[2,2,1,2,1,1,1,2],SAGYLLIC:[2,1,2,1,1,1,2,2],EPINYLLIC:[1,2,1,1,1,2,2,2],KATAGYLLIC:[2,1,1,1,2,2,2,1],RAGYLLIC:[1,1,1,2,2,2,1,2],GOTHYLLIC:[1,1,2,2,2,1,2,1],LYTHYLLIC:[1,2,2,2,1,2,1,1],IONOCRYLLIC:[2,2,2,1,1,1,2,1],GOCRYLLIC:[2,2,1,1,1,2,1,2],EPIRYLLIC:[2,1,1,1,2,1,2,2],AERADYLLIC:[1,1,1,2,1,2,2,2],STAPTYLLIC:[1,1,2,1,2,2,2,1],DANYLLIC:[1,2,1,2,2,2,1,1],GOPTYLLIC:[2,1,2,2,2,1,1,1],EPOCRYLLIC:[1,2,2,2,1,1,1,2],IONOPTYLLIC:b,"MARJOR BEBOP":b,"BEBOP MAJOR":b,AEOLORYLLIC:[2,1,2,1,1,2,1,2],THYDYLLIC:[1,2,1,1,2,1,2,2],GYCRYLLIC:[2,1,1,2,1,2,2,1],LYRYLLIC:[1,1,2,1,2,2,1,2],MOGYLLIC:[1,2,1,2,2,1,2,1],KATODYLLIC:[2,1,2,2,1,2,1,1],MOPTYLLIC:[1,2,2,1,2,1,1,2],DOLYLLIC:[4,1,2,1,1,1,1,1],MORYLLIC:[1,2,1,1,1,1,1,4],BYDYLLIC:[2,1,1,1,1,1,4,1],POCRYLLIC:[1,1,1,1,1,4,1,2],PHRACRYLLIC:[1,1,1,1,4,1,2,1],GYRYLLIC:[1,1,1,4,1,2,1,1],PHRYGYLLIC:[1,1,4,1,2,1,1,1],DOGYLLIC:[1,4,1,2,1,1,1,1],THAGYLLIC:[4,1,1,2,1,1,1,1],THOPTYLLIC:[1,1,2,1,1,1,1,4],PHRAPTYLLIC:[1,2,1,1,1,1,4,1],GYLYLLIC:[2,1,1,1,1,4,1,1],PHRALYLLIC:[1,1,1,1,4,1,1,2],DYGYLLIC:[1,1,1,4,1,1,2,1],RONYLLIC:[1,1,4,1,1,2,1,1],EPOGYLLIC:[1,4,1,1,2,1,1,1],AEOLADYLLIC:[4,1,1,1,1,2,1,1],KOCRYLLIC:[1,1,1,1,2,1,1,4],LODYLLIC:[1,1,1,2,1,1,4,1],BYNYLLIC:[1,1,2,1,1,4,1,1],KYDYLLIC:[1,2,1,1,4,1,1,1],BYGYLLIC:[2,1,1,4,1,1,1,1],PHRYPTYLLIC:[1,1,4,1,1,1,1,2],IONAYLLIC:[1,4,1,1,1,1,2,1],PHRORYLLIC:[4,1,1,1,1,1,2,1],THYPHYLLIC:[1,1,1,1,1,2,1,4],POPTYLLIC:[1,1,1,1,2,1,4,1],MIXONYLLIC:[1,1,1,2,1,4,1,1],PAPTYLLIC:[1,1,2,1,4,1,1,1],STORYLLIC:[1,2,1,4,1,1,1,1],PHRYCRYLLIC:[2,1,4,1,1,1,1,1],PALYLLIC:[1,4,1,1,1,1,1,2],PHRANYLLIC:[3,2,2,1,1,1,1,1],STYDYLLIC:[2,2,1,1,1,1,1,3],ZADYLLIC:[2,1,1,1,1,1,3,2],ZALYLLIC:[1,1,1,1,1,3,2,2],ZOCRYLLIC:[1,1,1,1,3,2,2,1],KATOCRYLLIC:[1,1,1,3,2,2,1,1],AERATHYLLIC:[1,1,3,2,2,1,1,1],STOPTYLLIC:[1,3,2,2,1,1,1,1],LYDYLLIC:[3,2,1,2,1,1,1,1],RADYLLIC:[2,1,2,1,1,1,1,3],STAGYLLIC:[1,2,1,1,1,1,3,2],IONORYLLIC:[2,1,1,1,1,3,2,1],PHRODYLLIC:[1,1,1,1,3,2,1,2],AERAGYLLIC:[1,1,1,3,2,1,2,1],BANYLLIC:[1,1,3,2,1,2,1,1],EPOTHYLLIC:[1,3,2,1,2,1,1,1],ZORYLLIC:[3,2,1,1,2,1,1,1],PHROLYLLIC:[2,1,1,2,1,1,1,3],KOLYLLIC:[1,1,2,1,1,1,3,2],THODYLLIC:[1,2,1,1,1,3,2,1],SOCRYLLIC:[2,1,1,1,3,2,1,1],AEOLYLLIC:[1,1,1,3,2,1,1,2],ZYTHYLLIC:[1,1,3,2,1,1,2,1],AEORYLLIC:[1,3,2,1,1,2,1,1],MIXOLYDYLLIC:[3,2,1,1,1,1,1,2],MIXONYPHYLLIC:[2,1,1,1,1,1,2,3],AEOLANYLLIC:[1,1,1,1,1,2,3,2],THOCRYLLIC:[1,1,1,1,2,3,2,1],KYGYLLIC:[1,1,1,2,3,2,1,1],IONAGYLLIC:[1,1,2,3,2,1,1,1],GOGYLLIC:[1,2,3,2,1,1,1,1],PHRADYLLIC:[2,3,2,1,1,1,1,1],IONIPTYLLIC:[3,1,3,1,1,1,1,1],KYCRYLLIC:[1,3,1,1,1,1,1,3],AEOLAPTYLLIC:[3,1,1,1,1,1,3,1],RODYLLIC:[1,1,1,1,1,3,1,3],IONATHYLLIC:[1,1,1,1,3,1,3,1],PYTHYLLIC:[1,1,1,3,1,3,1,1],ZONYLLIC:[1,1,3,1,3,1,1,1],RYRYLLIC:[1,3,1,3,1,1,1,1],AEOLOTHYLLIC:[3,1,2,2,1,1,1,1],IONYRYLLIC:[1,2,2,1,1,1,1,3],RYDYLLIC:[2,2,1,1,1,1,3,1],GONYLLIC:[2,1,1,1,1,3,1,2],ROLYLLIC:[1,1,1,1,3,1,2,2],KATYDYLLIC:[1,1,1,3,1,2,2,1],ZYPTYLLIC:[1,1,3,1,2,2,1,1],MODYLLIC:[1,3,1,2,2,1,1,1],MAPTYLLIC:[3,1,2,1,2,1,1,1],AERAPTYLLIC:[1,2,1,2,1,1,1,3],KATADYLLIC:[2,1,2,1,1,1,3,1],MAGYLLIC:[1,2,1,1,1,3,1,2],PHRYLYLLIC:[2,1,1,1,3,1,2,1],EPIGYLLIC:[1,1,1,3,1,2,1,2],MOLYLLIC:[1,1,3,1,2,1,2,1],PONYLLIC:[1,3,1,2,1,2,1,1],THYPTYLLIC:[3,1,2,1,1,2,1,1],IONOGYLLIC:[1,2,1,1,2,1,1,3],AEOLARYLLIC:[2,1,1,2,1,1,3,1],KATYGYLLIC:[1,1,2,1,1,3,1,2],GANYLLIC:[1,2,1,1,3,1,2,1],KYPTYLLIC:[2,1,1,3,1,2,1,1],SALYLLIC:[1,1,3,1,2,1,1,2],SANYLLIC:[1,3,1,2,1,1,2,1],DOPTYLLIC:[3,1,2,1,1,1,2,1],IONILYLLIC:[1,2,1,1,1,2,1,3],MANYLLIC:[2,1,1,1,2,1,3,1],POLYLLIC:[1,1,1,2,1,3,1,2],STANYLLIC:[1,1,2,1,3,1,2,1],MIXOTHARYLLIC:[1,2,1,3,1,2,1,1],EPORYLLIC:[2,1,3,1,2,1,1,1],AERYNYLLIC:[1,3,1,2,1,1,1,2],LONYLLIC:[3,1,1,2,1,1,2,1],SATHYLLIC:[1,1,2,1,1,2,1,3],LAYLLIC:[1,2,1,1,2,1,3,1],SARYLLIC:[2,1,1,2,1,3,1,1],THACRYLLIC:[1,1,2,1,3,1,1,2],AEOLYNYLLIC:[1,2,1,3,1,1,2,1],THADYLLIC:[2,1,3,1,1,2,1,1],LYNYLLIC:[1,3,1,1,2,1,1,2],AEOLATHYLLIC:[3,1,1,1,2,1,2,1],AEOLOCRYLLIC:[1,1,1,2,1,2,1,3],PHROPTYLLIC:[1,1,2,1,2,1,3,1],KODYLLIC:[1,2,1,2,1,3,1,1],EPAPTYLLIC:[2,1,2,1,3,1,1,1],IONOYLLIC:[1,2,1,3,1,1,1,2],GYPTYLLIC:[2,1,3,1,1,1,2,1],AERYTHYLLIC:[1,3,1,1,1,2,1,2],ZAGYLLIC:[3,1,1,1,2,1,1,2],EPACRYLLIC:[1,1,1,2,1,1,2,3],THORCRYLLIC:[1,1,2,1,1,2,3,1],LOPTYLLIC:[1,2,1,1,2,3,1,1],KATYLYLLIC:[2,1,1,2,3,1,1,1],MALYLLIC:[1,1,2,3,1,1,1,2],MYDYLLIC:[1,2,3,1,1,1,2,1],THYCRYLLIC:[2,3,1,1,1,2,1,1],GYTHYLLIC:[3,1,1,1,1,2,2,1],PYRYLLIC:[1,1,1,1,2,2,1,3],RYCRYLLIC:[1,1,1,2,2,1,3,1],PHRATHYLLIC:[1,1,2,2,1,3,1,1],BADYLLIC:[1,2,2,1,3,1,1,1],PHROCRYLLIC:[2,2,1,3,1,1,1,1],STARYLLIC:[2,1,3,1,1,1,1,2],ZOTHYLLIC:[1,3,1,1,1,1,2,2],THARYLLIC:[3,1,1,1,1,2,1,2],SYLYLLIC:[1,1,1,1,2,1,2,3],LOTHYLLIC:[1,1,1,2,1,2,3,1],DARYLLIC:[1,1,2,1,2,3,1,1],MONYLLIC:[1,2,1,2,3,1,1,1],STYRYLLIC:[2,1,2,3,1,1,1,1],AEOLACRYLLIC:[1,2,3,1,1,1,1,2],RAPTYLLIC:[2,3,1,1,1,1,2,1],KATARYLLIC:[3,1,1,1,1,1,2,2],AEROCRYLLIC:[1,1,1,1,1,2,2,3],ZANYLLIC:[1,1,1,1,2,2,3,1],AEOLONYLLIC:[1,1,1,2,2,3,1,1],AEONYLLIC:[1,1,2,2,3,1,1,1],KYRYLLIC:[1,2,2,3,1,1,1,1],SYTHYLLIC:[2,2,3,1,1,1,1,1],KATYCRYLLIC:[2,3,1,1,1,1,1,2],STOGYLLIC:[2,2,1,2,1,2,1,1],IONIDYLLIC:[2,1,2,1,2,1,1,2],STONYLLIC:[1,2,1,2,1,1,2,2],STALYLLIC:[2,1,2,1,1,2,2,1],PORYLLIC:[1,2,1,1,2,2,1,2],MOCRYLLIC:[2,1,1,2,2,1,2,1],AEOLYRYLLIC:[1,1,2,2,1,2,1,2],BARYLLIC:[1,2,2,1,2,1,2,1],DALYLLIC:[2,2,1,1,2,1,2,1],IONYPHYLLIC:[2,1,1,2,1,2,1,2],ZAPTYLLIC:[1,1,2,1,2,1,2,2],GARYLLIC:[1,2,1,2,1,2,2,1],GATHYLLIC:[2,1,2,1,2,2,1,1],MIXOPYRYLLIC:[1,2,1,2,2,1,1,2],IONACRYLLIC:v,"BEBOP MINOR":v,"MINOR BEBOP":v,"DORIAN BEBOP":v,"BEBOP DORIAN":v,STYLYLLIC:[1,2,2,1,1,2,1,2],STYCRYLLIC:[4,2,1,1,1,1,1,1],IONOTHYLLIC:[2,1,1,1,1,1,1,4],MYTHYLLIC:[1,1,1,1,1,1,4,2],AERYLYLLIC:[1,1,1,1,1,4,2,1],BONYLLIC:[1,1,1,1,4,2,1,1],THOLYLLIC:[1,1,1,4,2,1,1,1],KATYRYLLIC:[1,1,4,2,1,1,1,1],SADYLLIC:[1,4,2,1,1,1,1,1],STOLYLLIC:[4,1,1,1,1,1,1,2],LOGYLLIC:[1,1,1,1,1,1,2,4],DACRYLLIC:[1,1,1,1,1,2,4,1],THYNYLLIC:[1,1,1,1,2,4,1,1],GYDYLLIC:[1,1,1,2,4,1,1,1],EPARYLLIC:[1,1,2,4,1,1,1,1],DYNYLLIC:[1,2,4,1,1,1,1,1],IONYLLIC:[2,4,1,1,1,1,1,1],ZARYLLIC:[3,3,1,1,1,1,1,1],DYTHYLLIC:[3,1,1,1,1,1,1,3],IONARYLLIC:[1,1,1,1,1,1,3,3],LARYLLIC:[1,1,1,1,1,3,3,1],KATAPTYLLIC:[1,1,1,1,3,3,1,1],SONYLLIC:[1,1,1,3,3,1,1,1],PATHYLLIC:[1,1,3,3,1,1,1,1],LORYLLIC:[1,3,3,1,1,1,1,1],AERONYLLIC:[3,2,1,1,1,1,2,1],PYCRYLLIC:[2,1,1,1,1,2,1,3],MYGYLLIC:[1,1,1,1,2,1,3,2],LYLYLLIC:[1,1,1,2,1,3,2,1],DAPTYLLIC:[1,1,2,1,3,2,1,1],IONINYLLIC:[1,2,1,3,2,1,1,1],EPAPHYLLIC:[2,1,3,2,1,1,1,1],LOLYLLIC:[1,3,2,1,1,1,1,2],STACRYLLIC:[3,1,2,1,1,1,1,2],DORYLLIC:[1,2,1,1,1,1,2,3],KADYLLIC:[2,1,1,1,1,2,3,1],RYNYLLIC:[1,1,1,1,2,3,1,2],AEROGYLLIC:[1,1,1,2,3,1,2,1],ROTHYLLIC:[1,1,2,3,1,2,1,1],KAGYLLIC:[1,2,3,1,2,1,1,1],STATHYLLIC:[2,3,1,2,1,1,1,1],THYRYLLIC:[2,2,2,2,1,1,1,1],GYGYLLIC:[2,2,2,1,1,1,1,2],SODYLLIC:[2,2,1,1,1,1,2,2],GORYLLIC:[2,1,1,1,1,2,2,2],BOTHYLLIC:[1,1,1,1,2,2,2,2],GYNYLLIC:[1,1,1,2,2,2,2,1],IONAPTYLLIC:[1,1,2,2,2,2,1,1],PHRYRYLLIC:[1,2,2,2,2,1,1,1],RACRYLLIC:[2,2,2,1,1,2,1,1],EPICRYLLIC:[2,2,1,1,2,1,1,2],STYGYLLIC:[2,1,1,2,1,1,2,2],SYRYLLIC:[1,1,2,1,1,2,2,2],STYTHYLLIC:[1,2,1,1,2,2,2,1],AEROTHYLLIC:[2,1,1,2,2,2,1,1],MIXORYLLIC:[1,1,2,2,2,1,1,2],THANYLLIC:[1,2,2,2,1,1,2,1],RORYLLIC:[2,2,1,1,2,2,1,1],EPOTYLLIC:[2,1,1,2,2,1,1,2],EPIDYLLIC:[1,1,2,2,1,1,2,2],KAPTYLLIC:[1,2,2,1,1,2,2,1],MAJORDIMIN:[2,1,2,1,2,1,2,1],MINORDIMIN:g,OCTATONIC:g,AERYCRYGIC:[2,2,1,1,1,2,1,1,1],GADYGIC:[2,1,1,1,2,1,1,1,2],SOLYGIC:[1,1,1,2,1,1,1,2,2],ZYLYGIC:[1,1,2,1,1,1,2,2,1],GARYGIC:[1,2,1,1,1,2,2,1,1],SORYGIC:[2,1,1,1,2,2,1,1,1],GODYGIC:[1,1,1,2,2,1,1,1,2],EPITHYGIC:[1,1,2,2,1,1,1,2,1],IONOPTYGIC:[1,2,2,1,1,1,2,1,1],KALYGIC:[3,1,1,2,1,1,1,1,1],IONODYGIC:[1,1,2,1,1,1,1,1,3],BYTHYGIC:[1,2,1,1,1,1,1,3,1],EPYGIC:[2,1,1,1,1,1,3,1,1],MARYGIC:[1,1,1,1,1,3,1,1,2],GAPTYGIC:[1,1,1,1,3,1,1,2,1],AEROPTYGIC:[1,1,1,3,1,1,2,1,1],MYLYGIC:[1,1,3,1,1,2,1,1,1],GALYGIC:[1,3,1,1,2,1,1,1,1],MIXOLYDYGIC:[3,1,1,1,2,1,1,1,1],IONYCRYGIC:[1,1,1,2,1,1,1,1,3],ZOPTYGIC:[1,1,2,1,1,1,1,3,1],PHRYGYGIC:[1,2,1,1,1,1,3,1,1],LOCRYGIC:[2,1,1,1,1,3,1,1,1],GONYGIC:[1,1,1,1,3,1,1,1,2],AERACRYGIC:[1,1,1,3,1,1,1,2,1],AERATHYGIC:[1,1,3,1,1,1,2,1,1],DORYGIC:[1,3,1,1,1,2,1,1,1],DYCRYGIC:[3,1,1,1,1,2,1,1,1],AEOLYGIC:[1,1,1,1,2,1,1,1,3],DYDYGIC:[1,1,1,2,1,1,1,3,1],THOLYGIC:[1,1,2,1,1,1,3,1,1],RYNYGIC:[1,2,1,1,1,3,1,1,1],BYCRYGIC:[2,1,1,1,3,1,1,1,1],ZACRYGIC:[1,1,1,3,1,1,1,1,2],PANYGIC:[1,1,3,1,1,1,1,2,1],DYRYGIC:[1,3,1,1,1,1,2,1,1],LOPTYGIC:[3,1,1,1,1,1,2,1,1],KATYLYGIC:[1,1,1,1,1,2,1,1,3],PHRADYGIC:[1,1,1,1,2,1,1,3,1],MIXODYGIC:[1,1,1,2,1,1,3,1,1],KATALYGIC:[1,1,2,1,1,3,1,1,1],KATORYGIC:[1,2,1,1,3,1,1,1,1],DOGYGIC:[2,1,1,3,1,1,1,1,1],ZODYGIC:[1,1,3,1,1,1,1,1,2],MADYGIC:[1,3,1,1,1,1,1,2,1],BAGYGIC:[2,2,1,2,1,1,1,1,1],MATHYGIC:[2,1,2,1,1,1,1,1,2],STYPTYGIC:[1,2,1,1,1,1,1,2,2],ZOLYGIC:[2,1,1,1,1,1,2,2,1],SYDYGIC:[1,1,1,1,1,2,2,1,2],KATYGIC:[1,1,1,1,2,2,1,2,1],ZYPHYGIC:[1,1,1,2,2,1,2,1,1],AERALYGIC:[1,1,2,2,1,2,1,1,1],RYPTYGIC:[1,2,2,1,2,1,1,1,1],APINYGIC:[2,2,1,1,1,1,1,2,1],KATAGYGIC:[2,1,1,1,1,1,2,1,2],RADYGIC:[1,1,1,1,1,2,1,2,2],GOTHYGIC:[1,1,1,1,2,1,2,2,1],LYTHYGIC:[1,1,1,2,1,2,2,1,1],BACRYGIC:[1,1,2,1,2,2,1,1,1],AERYGIC:[1,2,1,2,2,1,1,1,1],DATHYGIC:[2,1,2,2,1,1,1,1,1],BOPTYGIC:[1,2,2,1,1,1,1,1,2],EPYRYGIC:[2,1,2,1,1,2,1,1,1],AERADYGIC:[1,2,1,1,2,1,1,1,2],STAPTYGIC:[2,1,1,2,1,1,1,2,1],DANYGIC:[1,1,2,1,1,1,2,1,2],GOPTYGIC:[1,2,1,1,1,2,1,2,1],EPOCRYGIC:[2,1,1,1,2,1,2,1,1],ROCRYGIC:[1,1,1,2,1,2,1,1,2],ZYRYGIC:[1,1,2,1,2,1,1,2,1],SADYGIC:[1,2,1,2,1,1,2,1,1],AEOLORYGIC:[2,1,2,1,1,1,2,1,1],THYDYGIC:[1,2,1,1,1,2,1,1,2],GYCRYGIC:[2,1,1,1,2,1,1,2,1],LYRYGIC:[1,1,1,2,1,1,2,1,2],MODYGIC:[1,1,2,1,1,2,1,2,1],KATODYGIC:[1,2,1,1,2,1,2,1,1],MOPTYGIC:[2,1,1,2,1,2,1,1,1],IONOCRYGIC:[1,1,2,1,2,1,1,1,2],GOCRYGIC:[1,2,1,2,1,1,1,2,1],MANYGIC:[4,1,1,1,1,1,1,1,1],POLYGIC:[1,1,1,1,1,1,1,1,4],STANYGIC:[1,1,1,1,1,1,1,4,1],THAPTYGIC:[1,1,1,1,1,1,4,1,1],EPORYGIC:[1,1,1,1,1,4,1,1,1],AERYNYGIC:[1,1,1,1,4,1,1,1,1],THYPTYGIC:[1,1,1,4,1,1,1,1,1],IONOGYGIC:[1,1,4,1,1,1,1,1,1],AEOLARYGIC:[1,4,1,1,1,1,1,1,1],SATHYGIC:[3,2,1,1,1,1,1,1,1],LADYGIC:[2,1,1,1,1,1,1,1,3],SARYGIC:[1,1,1,1,1,1,1,3,2],THACRYGIC:[1,1,1,1,1,1,3,2,1],AEOLYNYGIC:[1,1,1,1,1,3,2,1,1],THADYGIC:[1,1,1,1,3,2,1,1,1],LYNYGIC:[1,1,1,3,2,1,1,1,1],DOPTYGIC:[1,1,3,2,1,1,1,1,1],IONILYGIC:[1,3,2,1,1,1,1,1,1],PHRYGIC:[3,1,2,1,1,1,1,1,1],AERANYGIC:[1,2,1,1,1,1,1,1,3],DOTHYGIC:[2,1,1,1,1,1,1,3,1],LYDYGIC:[1,1,1,1,1,1,3,1,2],STADYGIC:[1,1,1,1,1,3,1,2,1],BYPTYGIC:[1,1,1,1,3,1,2,1,1],STODYGIC:[1,1,1,3,1,2,1,1,1],ZYNYGIC:[1,1,3,1,2,1,1,1,1],LONYGIC:[1,3,1,2,1,1,1,1,1],ZOTHYGIC:[3,1,1,1,1,1,1,2,1],AEOLATHYGIC:[1,1,1,1,1,1,2,1,3],AEOLOCRYGIC:[1,1,1,1,1,2,1,3,1],PHROPTYGIC:[1,1,1,1,2,1,3,1,1],KODYGIC:[1,1,1,2,1,3,1,1,1],EPARYGIC:[1,1,2,1,3,1,1,1,1],IONYGIC:[1,2,1,3,1,1,1,1,1],GYPTYGIC:[2,1,3,1,1,1,1,1,1],AERYTHYGIC:[1,3,1,1,1,1,1,1,2],AEOLACRYGIC:[3,1,1,1,1,1,1,1,2],RAPTYGIC:[1,1,1,1,1,1,1,2,3],GYTHYGIC:[1,1,1,1,1,1,2,3,1],PYRYGIC:[1,1,1,1,1,2,3,1,1],RYCRYGIC:[1,1,1,1,2,3,1,1,1],PHRATHYGIC:[1,1,1,2,3,1,1,1,1],BADYGIC:[1,1,2,3,1,1,1,1,1],PHROCRYGIC:[1,2,3,1,1,1,1,1,1],STARYGIC:[2,3,1,1,1,1,1,1,1],KYRYGIC:[2,2,2,1,1,1,1,1,1],SYTHYGIC:[2,2,1,1,1,1,1,1,2],KATYCRYGIC:[2,1,1,1,1,1,1,2,2],THARYGIC:[1,1,1,1,1,1,2,2,2],SYLYGIC:[1,1,1,1,1,2,2,2,1],LOTHYGIC:[1,1,1,1,2,2,2,1,1],DARYGIC:[1,1,1,2,2,2,1,1,1],MONYGIC:[1,1,2,2,2,1,1,1,1],STYRYGIC:[1,2,2,2,1,1,1,1,1],PORYGIC:[2,2,1,1,2,1,1,1,1],MOCRYGIC:[2,1,1,2,1,1,1,1,2],AEOLYRYGIC:[1,1,2,1,1,1,1,2,2],BARYGIC:[1,2,1,1,1,1,2,2,1],KATARYGIC:[2,1,1,1,1,2,2,1,1],AEROCRYGIC:[1,1,1,1,2,2,1,1,2],ZANYGIC:[1,1,1,2,2,1,1,2,1],AEOLONYGIC:[1,1,2,2,1,1,2,1,1],AEOLANYGIC:[1,2,2,1,1,2,1,1,1],KAPTYGIC:[2,2,1,1,1,1,2,1,1],SACRYGIC:[2,1,1,1,1,2,1,1,2],PADYGIC:[1,1,1,1,2,1,1,2,2],EPILYGIC:[1,1,1,2,1,1,2,2,1],KYNYGIC:[1,1,2,1,1,2,2,1,1],STOPHYGIC:[1,2,1,1,2,2,1,1,1],IONIDYGIC:[2,1,1,2,2,1,1,1,1],STONYGIC:[1,1,2,2,1,1,1,1,2],STALYGIC:[1,2,2,1,1,1,1,2,1],KOPTYGIC:[2,1,2,1,2,1,1,1,1],RAPHYGIC:[1,2,1,2,1,1,1,1,2],ZYCRYGIC:[2,1,2,1,1,1,1,2,1],MYCRYGIC:[1,2,1,1,1,1,2,1,2],LAPTYGIC:[2,1,1,1,1,2,1,2,1],PYLYGIC:[1,1,1,1,2,1,2,1,2],RODYGIC:[1,1,1,2,1,2,1,2,1],EPOLYGIC:[1,1,2,1,2,1,2,1,1],EPIDYGIC:[1,2,1,2,1,2,1,1,1],PHRONYGIC:[2,1,1,2,1,1,2,1,1],STYNYGIC:[1,1,2,1,1,2,1,1,2],ZYDYGIC:[1,2,1,1,2,1,1,2,1],AERYCRYLLIAN:[2,1,1,1,2,1,1,1,1,1],GADYLLIAN:[1,1,1,2,1,1,1,1,1,2],SOLYLLIAN:[1,1,2,1,1,1,1,1,2,1],ZYPHYLLIAN:[1,2,1,1,1,1,1,2,1,1],GARYLLIAN:[2,1,1,1,1,1,2,1,1,1],SORYLLIAN:[1,1,1,1,1,2,1,1,1,2],GODYLLIAN:[1,1,1,1,2,1,1,1,2,1],EPITYLLIAN:[1,1,1,2,1,1,1,2,1,1],IONYLLIAN:[1,1,2,1,1,1,2,1,1,1],AEORYLLIAN:[1,2,1,1,1,2,1,1,1,1],KATORYLLIAN:[3,1,1,1,1,1,1,1,1,1],DODYLLIAN:[1,1,1,1,1,1,1,1,1,3],ZOGYLLIAN:[1,1,1,1,1,1,1,1,3,1],MADYLLIAN:[1,1,1,1,1,1,1,3,1,1],DYCRYLLIAN:[1,1,1,1,1,1,3,1,1,1],AEOGYLLIAN:[1,1,1,1,1,3,1,1,1,1],DYDYLLIAN:[1,1,1,1,3,1,1,1,1,1],THOGYLLIAN:[1,1,1,3,1,1,1,1,1,1],RYGYLLIAN:[1,1,3,1,1,1,1,1,1,1],BATHYLLIAN:[1,3,1,1,1,1,1,1,1,1],SYDYLLIAN:[2,2,1,1,1,1,1,1,1,1],KATOGYLLIAN:[2,1,1,1,1,1,1,1,1,2],MIXODYLLIAN:[1,1,1,1,1,1,1,1,2,2],AERADYLLIAN:[1,1,1,1,1,1,1,2,2,1],RYPTYLLIAN:[1,1,1,1,1,1,2,2,1,1],LOPTYLLIAN:[1,1,1,1,1,2,2,1,1,1],KATAPHYLLIAN:[1,1,1,1,2,2,1,1,1,1],PHRADYLLIAN:[1,1,1,2,2,1,1,1,1,1],DAGYLLIAN:[1,1,2,2,1,1,1,1,1,1],KATYLLIAN:[1,2,2,1,1,1,1,1,1,1],GOTHYLLIAN:[2,1,2,1,1,1,1,1,1,1],LYTHYLLIAN:[1,2,1,1,1,1,1,1,1,2],BACRYLLIAN:[2,1,1,1,1,1,1,1,2,1],AERYGYLLIAN:[1,1,1,1,1,1,1,2,1,2],DATHYLLIAN:[1,1,1,1,1,1,2,1,2,1],BOPTYLLIAN:[1,1,1,1,1,2,1,2,1,1],BAGYLLIAN:[1,1,1,1,2,1,2,1,1,1],MATHYLLIAN:[1,1,1,2,1,2,1,1,1,1],STYPTYLLIAN:[1,1,2,1,2,1,1,1,1,1],ZOLYLLIAN:[1,2,1,2,1,1,1,1,1,1],STAPTYLLIAN:[2,1,1,2,1,1,1,1,1,1],DANYLLIAN:[1,1,2,1,1,1,1,1,1,2],GOPTYLLIAN:[1,2,1,1,1,1,1,1,2,1],EPOCRYLLIAN:[2,1,1,1,1,1,1,2,1,1],ROCRYLLIAN:[1,1,1,1,1,1,2,1,1,2],ZYRYLLIAN:[1,1,1,1,1,2,1,1,2,1],SAGYLLIAN:[1,1,1,1,2,1,1,2,1,1],EPINYLLIAN:[1,1,1,2,1,1,2,1,1,1],KATAGYLLIAN:[1,1,2,1,1,2,1,1,1,1],RAGYLLIAN:[1,2,1,1,2,1,1,1,1,1],THYDYLLIAN:[2,1,1,1,1,2,1,1,1,1],EPIRYLLIAN:[1,1,1,1,2,1,1,1,1,2],LYRYLLIAN:[1,1,1,2,1,1,1,1,2,1],MOGYLLIAN:[1,1,2,1,1,1,1,2,1,1],KATODYLLIAN:[1,2,1,1,1,1,2,1,1,1],AERYCRATIC:[2,1,1,1,1,1,1,1,1,1,1],MONATIC:[1,1,1,1,1,1,1,1,1,1,2],SOLATIC:[1,1,1,1,1,1,1,1,1,2,1],ZYLATIC:[1,1,1,1,1,1,1,1,2,1,1],MIXOLATIC:[1,1,1,1,1,1,1,2,1,1,1],SORATIC:[1,1,1,1,1,1,2,1,1,1,1],GODATIC:[1,1,1,1,1,2,1,1,1,1,1],EPTATIC:[1,1,1,1,2,1,1,1,1,1,1],IONATIC:[1,1,1,2,1,1,1,1,1,1,1],AEOLATIC:[1,1,2,1,1,1,1,1,1,1,1],THYDATIC:[1,2,1,1,1,1,1,1,1,1,1],CHROMATIC:[1,1,1,1,1,1,1,1,1,1,1,1]}},yl=Qk(),$k=()=>{const n=Object.keys(yl),e=n[Math.floor(Math.random()*n.length)];return yl[e]},Zi=n=>yl[n.toUpperCase()],Dm=n=>n.toUpperCase()in yl,Nh=(n="")=>{let e=0,t=0,r=0,i=0;function a(){const s=(e^e<<11)>>>0;return e=t,t=r,r=i,i^=(i>>>19^s^s>>>8)>>>0,(i>>>0)/4294967296}for(let s=0;sArray.isArray(n)?n.map(e=>Al(e)):n&&typeof n=="object"?Object.getOwnPropertyNames(n).reduce((e,t)=>(Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t)),e[t]=Al(n[t]),e),Object.create(Object.getPrototypeOf(n))):n,qk=n=>{try{return new Function(`"use strict";return (${n})`)()}catch(e){throw new Error(`Error in eval: ${e}`)}},By=function(){function n(i,a){function s(){this.constructor=i}s.prototype=a.prototype,i.prototype=new s}function e(i,a,s,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=a,l.found=s,l.location=o,l.name="SyntaxError",l}n(e,Error);function t(i,a,s){return s=s||" ",i.length>a?i:(a-=i.length,s+=s.repeat(a),i+s.slice(0,a))}e.prototype.format=function(i){var a="Error: "+this.message;if(this.location){var s=null,o;for(o=0;onew Promise((e,t)=>setTimeout(()=>t(new Error("Operation took too long")),n)),My=n=>n.replace(/->/g,"&&").replace(/::/g,"&&"),Py=(n,e)=>new Promise((t,r)=>{try{Function(`"use strict";try{${My(e)}} catch (e) {console.log(e); _reportError(e);};`).call(n.api),t(!0)}catch(i){n.error_line.innerHTML=i,console.log(i),t(!1)}}),_a=new Map,xk=20,Lk=(n,e)=>{_a.size>=xk&&_a.delete(_a.keys().next().value),_a.set(n,e)},vl=async(n,e,t=5e3)=>{try{e.evaluations++;const r=e.candidate;if(_a.has(r))_a.get(r).call(n.api);else{const i=`let i = ${e.evaluations};`+r;if(await Promise.race([Py(n,i),ky(t)])){e.committed=e.candidate;const s=new Function(`"use strict";try{${My(i)}} catch (e) {console.log(e)};`);Lk(r,s)}else await kk(n,e,t)}}catch(r){n.error_line.innerHTML=r,console.log(r)}},kk=async(n,e,t=1e3)=>{try{await Promise.race([Py(n,e.committed),ky(t)]),e.evaluations&&e.evaluations++}catch(r){n.error_line.innerHTML=r,console.log(r)}};class Mk extends AudioWorkletNode{constructor(t,r,i){super(t,"transport",r);I(this,"handleMessage",t=>{if(t.data&&t.data.type==="bang"){this.startTime===null&&(this.startTime=t.data.currentTime),this.elapsedTime=t.data.currentTime-this.startTime,this.prevCurrentTime=t.data.currentTime;let{futureTimeStamp:r,timeToNextPulse:i,nextPulsePosition:a}=this.convertTimeToNextBarsBeats(this.elapsedTime);this.nextPulsePosition!==a&&(this.nextPulsePosition=a,setTimeout(()=>{const s=this.app.audioContext.currentTime;this.app.clock.time_position=r,vl(this.app,this.app.global_buffer),this.hasBeenEvaluated=!0,this.currentPulsePosition=a;const o=this.app.audioContext.currentTime;this.lastLatencies[this.indexOfLastLatencies]=o-s,this.indexOfLastLatencies=(this.indexOfLastLatencies+1)%this.lastLatencies.length;const l=this.lastLatencies.reduce((u,d)=>u+d)/this.lastLatencies.length;this.executionLatency=l/1e3},(i+this.executionLatency)*1e3))}});this.app=i,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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(t){const r=60/this.app.clock.bpm,i=t/r,a=this.app.clock.time_signature[0],s=Math.floor(i/a)+1,o=Math.floor(i%a)+1,l=Math.floor(i%1*this.app.clock.ppqn);return this.app.clock.tick++,{bar:s,beat:o,ppqn:l}}convertTimeToNextBarsBeats(t){const r=60/this.app.clock.bpm,i=t/r,a=this.app.clock.time_signature[0];this.currentPulsePosition=i*this.app.clock.ppqn;const s=Math.ceil(this.currentPulsePosition),o=this.app.clock.convertPulseToSecond(this.nextPulsePosition-this.currentPulsePosition),l=this.nextPulsePosition/this.app.clock.ppqn,u=l/a,d={bar:Math.floor(u)+1,beat:Math.floor(l)%a+1,pulse:Math.floor(this.nextPulsePosition)%this.app.clock.ppqn};return this.app.clock.tick++,{futureTimeStamp:d,timeToNextPulse:o,nextPulsePosition:s}}}const Pk="/assets/TransportProcessor-9e6f56da.js";class Bk{constructor(e,t){I(this,"ctx");I(this,"transportNode");I(this,"bpm");I(this,"time_signature");I(this,"time_position");I(this,"ppqn");I(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=t,t.audioWorklet.addModule(Pk).then(r=>(this.transportNode=new Mk(t,{},this.app),this.transportNode.connect(t.destination),r)).catch(r=>{console.log("Error loading TransportProcessor.js:",r)})}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,t;((e=this.transportNode)==null?void 0:e.state)==="running"?console.log("Already started"):(this.app.audioContext.resume(),(t=this.transportNode)==null||t.start())}pause(){var e;(e=this.transportNode)==null||e.pause()}stop(){var e;(e=this.transportNode)==null||e.stop()}}const Uk={"+":(n,e)=>n+e,"-":(n,e)=>n-e,"*":(n,e)=>n*e,"/":(n,e)=>n/e,"%":(n,e)=>n%e,"^":(n,e)=>n**e,"<<":(n,e)=>n<>":(n,e)=>n>>e,"&":(n,e)=>n&e,"|":(n,e)=>n|e},Fk={octave:0,duration:.25,key:"C4",scale:"IONIAN",measure:0,degrees:!1},Yk={m:8,k:10240/1920,l:4,"d.":3,p:5120/1920,d:2,"w.":1.5,c:2560/1920,w:1,"h..":.875,"h.":.75,y:1280/1920,h:.5,"q..":840/1920,"q.":.375,n:640/1920,q:.25,"e..":420/1920,"e.":.1875,a:320/1920,e:.125,"s..":210/1920,"s.":180/1920,f:160/1920,s:.0625,"t..":105/1920,"t.":90/1920,x:80/1920,t:60/1920,"u.":45/1920,g:40/1920,u:30/1920,j:15/1920,o:8/1920,z:0},Gk={C:0,Cs:1,D:2,Eb:3,E:4,F:5,Fs:6,G:7,Ab:8,A:9,Bb:10,B:11},Qk={"#":1,b:-1,s:1},$k=()=>{const n=[2,1,2,2,1,2,2],e=[2,2,1,2,2,2,1],t=[2,1,2,2,1,3,1],r=[2,2,1,2,1,3,1],i=[3,2,2,3,2],a=[2,3,2,3,2],s=[2,2,2,2,2,2],o=[2,1,1,3,2,3],l=[3,2,1,1,3,2],u=[2,1,2,2,2,2,1],d=[2,2,1,2,1,2,2],f=[1,2,2,2,1,3,1],m=[1,2,2,2,2,2,1],g=[1,2,1,2,1,2,1,2],b=[2,2,1,2,1,1,2,1],v=[2,1,2,2,1,1,2,1],y=[2,2,1,2,2,1,1,1];return{MAJOR:e,MINOR:n,"HARMONIC MINOR":t,"HARMONIC MAJOR":r,"MINOR PENTATONIC":i,"SUSPENDED PENTATONIC":a,"BLUES MAJOR":o,"BLUES MINOR":l,WHOLE:s,"MELODIC MINOR":u,"MELODIC MAJOR":d,MINORIC:[4,4,4],THAPTIC:[4,3,4,1],LOTHIC:[3,4,1,4],PHRATIC:[4,1,4,3],AERATHIC:[1,4,3,4],EPATHIC:[4,3,2,3],MYNIC:[3,2,3,4],ROTHIC:[2,3,4,3],EPORIC:[3,4,3,2],ZYPHIC:[4,4,3,1],EPOGIC:[4,3,1,4],LANIC:[3,1,4,4],PYRRIC:[1,4,4,3],AEOLORIC:[4,4,1,3],GONIC:[4,1,3,4],DALIC:[1,3,4,4],DYGIC:[3,4,4,1],DARIC:[4,3,3,2],LONIC:[3,3,2,4],PHRADIC:[3,2,4,3],BOLIC:[2,4,3,3],SARIC:[4,2,3,3],ZOPTIC:[2,3,3,4],AERAPHIC:[3,3,4,2],BYPTIC:[3,4,2,3],AEOLIC:[4,4,2,2],KOPTIC:[4,2,2,4],MIXOLYRIC:[2,2,4,4],LYDIC:[2,4,4,2],STATHIC:[4,2,4,2],DADIC:[2,4,2,4],PHRYNIC:[3,3,3,3],EPATHITONIC:[3,2,3,2,2],MYNITONIC:[2,3,2,2,3],ROCRITONIC:i,PENTATONIC:[2,2,3,2,3],THAPTITONIC:a,MAGITONIC:[4,3,2,2,1],DADITONIC:[3,2,2,1,4],AEOLYPHRITONIC:[2,2,1,4,3],GYCRITONIC:[2,1,4,3,2],PYRITONIC:[1,4,3,2,2],GATHITONIC:[4,2,3,2,1],IONITONIC:[2,3,2,1,4],PHRYNITONIC:[3,2,1,4,2],STATHITONIC:[2,1,4,2,3],THALITONIC:[1,4,2,3,2],ZOLITONIC:[4,2,1,4,1],EPOGITONIC:[2,1,4,1,4],LANITONIC:[1,4,1,4,2],PAPTITONIC:[4,1,4,2,1],IONACRITONIC:[1,4,2,1,4],PHRADITONIC:[4,1,4,1,2],AEOLORITONIC:[1,4,1,2,4],GONITONIC:[4,1,2,4,1],DALITONIC:[1,2,4,1,4],DYGITONIC:[2,4,1,4,1],AERACRITONIC:[4,1,2,3,2],BYPTITONIC:[1,2,3,2,4],DARITONIC:[2,3,2,4,1],LONITONIC:[3,2,4,1,2],IONYCRITONIC:[2,4,1,2,3],LOTHITONIC:[4,1,2,2,3],PHRATONIC:[1,2,2,3,4],AERATHITONIC:[2,2,3,4,1],SARITONIC:[2,3,4,1,2],ZOPTITONIC:[3,4,1,2,2],DOLITONIC:[4,4,1,2,1],PORITONIC:[4,1,2,1,4],AERYLITONIC:[1,2,1,4,4],ZAGITONIC:[2,1,4,4,1],LAGITONIC:[1,4,4,1,2],MOLITONIC:[4,3,3,1,1],STAPTITONIC:[3,3,1,1,4],MOTHITONIC:[3,1,1,4,3],AERITONIC:[1,1,4,3,3],RAGITONIC:[1,4,3,3,1],IONADITONIC:[4,3,2,1,2],BOCRITONIC:[3,2,1,2,4],GYTHITONIC:[2,1,2,4,3],PAGITONIC:[1,2,4,3,2],AEOLYTHITONIC:[2,4,3,2,1],ZACRITONIC:[4,3,1,3,1],LARITONIC:[3,1,3,1,4],THACRITONIC:[1,3,1,4,3],STYDITONIC:[3,1,4,3,1],LORITONIC:[1,4,3,1,3],AEOLYRITONIC:[4,3,1,1,3],GORITONIC:[3,1,1,3,4],AEOLODITONIC:[1,1,3,4,3],DOPTITONIC:[1,3,4,3,1],AERAPHITONIC:[3,4,3,1,1],ZATHITONIC:[4,2,4,1,1],RADITONIC:[2,4,1,1,4],STONITONIC:[4,1,1,4,2],SYPTITONIC:[1,1,4,2,4],IONYTHITONIC:[1,4,2,4,1],AEOLANITONIC:[4,2,2,3,1],DANITONIC:[2,2,3,1,4],IONARITONIC:[2,3,1,4,2],DYNITONIC:[3,1,4,2,2],ZYDITONIC:[1,4,2,2,3],AEOLACRITONIC:[4,2,1,2,3],ZYTHITONIC:[2,1,2,3,4],DYRITONIC:[1,2,3,4,2],KOPTITONIC:[2,3,4,2,1],THOCRITONIC:[3,4,2,1,2],LYCRITONIC:[4,1,3,3,1],DAPTITONIC:[1,3,3,1,4],KYGITONIC:[3,3,1,4,1],MOCRITONIC:[3,1,4,1,3],ZYNITONIC:[1,4,1,3,3],EPYGITONIC:[4,1,3,2,2],ZAPTITONIC:[1,3,2,2,4],KAGITONIC:[3,2,2,4,1],ZOGITONIC:[2,2,4,1,3],EPYRITONIC:[2,4,1,3,2],ZOTHITONIC:[4,1,3,1,3],PHROLITONIC:[1,3,1,3,4],IONAGITONIC:[3,1,3,4,1],AEOLAPRITONIC:[1,3,4,1,3],KYRITONIC:[3,4,1,3,1],IONYPTITONIC:[4,1,1,3,3],GYRITONIC:[1,1,3,3,4],ZALITONIC:[1,3,3,4,1],STOLITONIC:[3,3,4,1,1],BYLITONIC:[3,4,1,1,3],THODITONIC:[3,3,2,3,1],DOGITONIC:[3,2,3,1,3],PHRALITONIC:[2,3,1,3,3],GARITONIC:[3,1,3,3,2],SOPTITONIC:[1,3,3,2,3],KATARITONIC:[3,3,2,2,2],SYLITONIC:[3,2,2,2,3],THONITONIC:[2,2,2,3,3],PHROPITONIC:[2,2,3,3,2],STADITONIC:[2,3,3,2,2],LYDITONIC:[3,3,1,3,2],MYTHITONIC:[3,1,3,2,3],SOGITONIC:[1,3,2,3,3],GOTHITONIC:[3,2,3,3,1],ROTHITONIC:[2,3,3,1,3],ZYLITONIC:[4,4,2,1,1],ZODITONIC:[4,2,1,1,4],ZARITONIC:[2,1,1,4,4],PHRYTHITONIC:[1,1,4,4,2],ROLITONIC:[1,4,4,2,1],RANITONIC:[4,4,1,1,2],LADITONIC:[4,1,1,2,4],PODITONIC:[1,1,2,4,4],IONOTHITONIC:[1,2,4,4,1],KANITONIC:[2,4,4,1,1],RYPHITONIC:[4,3,1,2,2],GYLITONIC:[3,1,2,2,4],AEOLYCRITONIC:[1,2,2,4,3],PYNITONIC:[2,2,4,3,1],ZANITONIC:[2,4,3,1,2],PHRONITONIC:[4,2,3,1,2],BANITONIC:[2,3,1,2,4],AERONITONIC:[3,1,2,4,2],GOLITONIC:[1,2,4,2,3],DYPTITONIC:[2,4,2,3,1],AERYNITONIC:[4,2,2,1,3],PALITONIC:[2,2,1,3,4],STOTHITONIC:[2,1,3,4,2],AEROPHITONIC:[1,3,4,2,2],KATAGITONIC:[3,4,2,2,1],IONODITONIC:[4,2,1,3,2],BOGITONIC:[2,1,3,2,4],MOGITONIC:[1,3,2,4,2],DOCRITONIC:[3,2,4,2,1],EPADITONIC:[2,4,2,1,3],MIXITONIC:[3,3,3,2,1],PHROTHITONIC:[3,3,2,1,3],KATYCRITONIC:[3,2,1,3,3],IONALITONIC:[2,1,3,3,3],LOPTITONIC:[1,3,3,3,2],THYRITONIC:[3,3,3,1,2],THOPTITONIC:[3,3,1,2,3],BYCRITONIC:[3,1,2,3,3],PATHITONIC:[1,2,3,3,3],MYDITONIC:[2,3,3,3,1],BOLITONIC:[4,2,2,2,2],BOTHITONIC:[2,2,2,2,4],KATADITONIC:[2,2,2,4,2],KODITONIC:[2,2,4,2,2],THOLITONIC:[2,4,2,2,2],EPATHIMIC:[3,2,2,1,2,2],MYNIMIC:[2,2,1,2,2,3],ROCRIMIC:[2,1,2,2,3,2],EPORIMIC:[1,2,2,3,2,2],THAPTIMIC:[2,2,3,2,2,1],LOTHIMIC:[2,3,2,2,1,2],DYRIMIC:[4,2,1,2,2,1],KOPTIMIC:[2,1,2,2,1,4],THOCRIMIC:[1,2,2,1,4,2],AEOLANIMIC:[2,2,1,4,2,1],DANIMIC:[2,1,4,2,1,2],IONARIMIC:[1,4,2,1,2,2],DAPTIMIC:[4,1,4,1,1,1],KYGIMIC:[1,4,1,1,1,4],MOCRIMIC:[4,1,1,1,4,1],ZYNIMIC:[1,1,1,4,1,4],AEOLIMIC:[1,1,4,1,4,1],ZYTHIMIC:[1,4,1,4,1,1],EPYGIMIC:[4,1,2,3,1,1],ZAPTIMIC:[1,2,3,1,1,4],KAGIMIC:[2,3,1,1,4,1],ZOGIMIC:[3,1,1,4,1,2],EPYRIMIC:[1,1,4,1,2,3],LYCRIMIC:[1,4,1,2,3,1],BYLIMIC:[4,1,2,2,2,1],ZOTHIMIC:[1,2,2,2,1,4],PHROLIMIC:[2,2,2,1,4,1],IONAGIMIC:[2,2,1,4,1,2],AEOLAPHIMIC:[2,1,4,1,2,2],KYCRIMIC:[1,4,1,2,2,2],GARIMIC:[4,1,2,2,1,2],SOPTIMIC:[1,2,2,1,2,4],IONYPTIMIC:[2,2,1,2,4,1],GYRIMIC:[2,1,2,4,1,2],ZALIMIC:[1,2,4,1,2,2],STOLIMIC:[2,4,1,2,2,1],THONIMIC:[4,1,1,4,1,1],STADIMIC:[1,1,4,1,1,4],THODIMIC:[1,4,1,1,4,1],MYTHIMIC:[4,1,1,3,2,1],SOGIMIC:[1,1,3,2,1,4],GOGIMIC:[1,3,2,1,4,1],ROTHIMIC:[3,2,1,4,1,1],KATARIMIC:[2,1,4,1,1,3],SYLIMIC:[1,4,1,1,3,2],MIXOLIMIC:[3,2,3,2,1,1],DADIMIC:[2,3,2,1,1,3],AEOLYPHIMIC:[3,2,1,1,3,2],GYCRIMIC:o,PYRIMIC:[1,1,3,2,3,2],LYDIMIC:[1,3,2,3,2,1],IONACRIMIC:[3,2,3,1,1,2],GATHIMIC:[2,3,1,1,2,3],IONYNIMIC:[3,1,1,2,3,2],PHRYNIMIC:[1,1,2,3,2,3],STATHIMIC:[1,2,3,2,3,1],THATIMIC:[2,3,2,3,1,1],DALIMIC:[3,2,2,3,1,1],DYGIMIC:[2,2,3,1,1,3],ZOLIMIC:[2,3,1,1,3,2],EPOGIMIC:[3,1,1,3,2,2],LANIMIC:[1,1,3,2,2,3],PAPTIMIC:[1,3,2,2,3,1],DARMIC:[3,2,2,2,1,2],LONIMIC:[2,2,2,1,2,3],IONYCRIMIC:[2,2,1,2,3,2],PHRADIMIC:[2,1,2,3,2,2],AEOLORIMIC:[1,2,3,2,2,2],GONIMIC:[2,3,2,2,2,1],PHRACRIMIC:[3,2,1,2,2,2],AERATHIMIC:[2,1,2,2,2,3],SARIMIC:[1,2,2,2,3,2],ZOPTIMIC:[2,2,2,3,2,1],ZERACRIMIC:[2,2,3,2,1,2],BYPTIMIC:[2,3,2,1,2,2],STARIMIC:[4,3,2,1,1,1],PHRATHIMIC:[3,2,1,1,1,4],SAPTIMIC:[2,1,1,1,4,3],AERODIMIC:[1,1,1,4,3,2],MACRIMIC:[1,1,4,3,2,1],ROGIMIC:[1,4,3,2,1,1],BYGIMIC:[4,3,1,1,2,1],THYCRIMIC:[3,1,1,2,1,4],AEOLADIMIC:[1,1,2,1,4,3],DYLIMIC:[1,2,1,4,3,1],EPONIMIC:[2,1,4,3,1,1],KATYGIMIC:[1,4,3,1,1,2],STALIMIC:[4,2,3,1,1,1],STOPTIMIC:[2,3,1,1,1,4],ZYGIMIC:[3,1,1,1,4,2],KATAPTIMIC:[1,1,1,4,2,3],AEOLAPTIMIC:[1,1,4,2,3,1],POTHIMIC:[1,4,2,3,1,1],RYCRIMIC:[4,2,2,1,2,1],RONIMIC:[2,2,1,2,1,4],STYCRIMIC:[2,1,2,1,4,2],KATORIMIC:[1,2,1,4,2,2],EPYTHIMIC:[2,1,4,2,2,1],KAPTIMIC:[1,4,2,2,1,2],KATYTHIMIC:[4,2,1,3,1,1],MADIMIC:[2,1,3,1,1,4],AERYGIMIC:[1,3,1,1,4,2],PYLIMIC:[3,1,1,4,2,1],IONATHIMIC:[1,1,4,2,1,3],MORIMIC:[1,4,2,1,3,1],AERYCRIMIC:[4,2,1,1,3,1],GANIMIC:[2,1,1,3,1,4],EPARIMIC:[1,1,3,1,4,2],LYRIMIC:[1,3,1,4,2,1],PHRAPTIMIC:[3,1,4,2,1,1],BACRIMIC:[1,4,2,1,1,3],PHRALIMIC:[4,1,3,2,1,1],PHROGIMIC:[1,3,2,1,1,4],RATHIMIC:[3,2,1,1,4,1],KATOCRIMIC:[2,1,1,4,1,3],PHRYPTIMIC:[1,1,4,1,3,2],KATYNIMIC:[1,4,1,3,2,1],SOLIMIC:[4,1,3,1,2,1],IONOLIMIC:[1,3,1,2,1,4],IONOPHIMIC:[3,1,2,1,4,1],AEOLOGIMIC:[1,2,1,4,1,3],ZADIMIC:[2,1,4,1,3,1],SYGIMIC:[1,4,1,3,1,2],THOGIMIC:[4,1,3,1,1,2],RYTHIMIC:[1,3,1,1,2,4],DONIMIC:[3,1,1,2,4,1],AEOLOPTIMIC:[1,1,2,4,1,3],PANIMIC:[1,2,4,1,3,1],LODIMIC:[2,4,1,3,1,1],LAPTIMIC:[4,1,2,1,3,1],LYGIMIC:[1,2,1,3,1,4],LOGIMIC:[2,1,3,1,4,1],LALIMIC:[1,3,1,4,1,2],SOTHIMIC:[3,1,4,1,2,1],PHROCRIMIC:[1,4,1,2,1,3],MODIMIC:[4,1,2,1,2,2],BARIMIC:[1,2,1,2,2,4],POPTIMIC:[2,1,2,2,4,1],SAGIMIC:[1,2,2,4,1,2],AELOTHIMIC:l,SOCRIMIC:[2,4,1,2,1,2],SYRIMIC:[4,1,2,1,1,3],STODIMIC:[1,2,1,1,3,4],IONOCRIMIC:[2,1,1,3,4,1],ZYCRIMIC:[1,1,3,4,1,2],IONYGIMIC:[1,3,4,1,2,1],KATATHIMIC:[3,4,1,2,1,1],BOLIMIC:[4,1,1,3,1,2],BOTHIMIC:[1,1,3,1,2,4],KATADIMIC:[1,3,1,2,4,1],KODIMIC:[3,1,2,4,1,1],THOLIMIC:[1,2,4,1,1,3],RALIMIC:[2,4,1,1,3,1],KANIMIC:[4,1,1,2,3,1],ZYLIMIC:[1,1,2,3,1,4],ZODIMIC:[1,2,3,1,4,1],ZARIMIC:[2,3,1,4,1,1],PHRYTHIMIC:[3,1,4,1,1,2],RORIMIC:[1,4,1,1,2,3],PYNIMIC:[4,1,1,1,3,2],ZANIMIC:[1,1,1,3,2,4],RANIMIC:[1,1,3,2,4,1],LADIMIC:[1,3,2,4,1,1],PODIMIC:[3,2,4,1,1,1],IONOTHIMIC:[2,4,1,1,1,3],KYTRIMIC:[4,1,1,1,2,3],GOLIMIC:[1,1,1,2,3,4],DYPTIMIC:[1,1,2,3,4,1],RYRIMIC:[1,2,3,4,1,1],GYLIMIC:[2,3,4,1,1,1],AEOLYCRIMIC:[3,4,1,1,1,2],PALIMIC:[3,3,2,2,1,1],STOTHIMIC:[3,2,2,1,1,3],AERONIMIC:[2,2,1,1,3,3],KATAGIMIC:[2,1,1,3,3,2],PHRONIMIC:[1,1,3,3,2,2],BANIMIC:[1,3,3,2,2,1],IONODIMIC:[3,3,1,3,1,1],BOGIMIC:[3,1,3,1,1,3],MOGIMIC:[1,3,1,1,3,3],DOCRIMIC:[3,1,1,3,3,1],EPADIMIC:[1,1,3,3,1,3],AERYNIMIC:[1,3,3,1,3,1],MYDIMIC:[3,3,1,1,3,1],THYPTIMIC:[3,1,1,3,1,3],PHROTHIMIC:[1,1,3,1,3,3],KATYCRIMIC:[1,3,1,3,3,1],IONALIMIC:[3,1,3,3,1,1],LOPTIMIC:[1,3,3,1,1,3],ZAGIMIC:[3,3,1,1,2,2],LAGIMIC:[3,1,1,2,2,3],THYRIMIC:[1,1,2,2,3,3],THOTHIMIC:[1,2,2,3,3,1],BYCRIMIC:[2,2,3,3,1,1],PATHIMIC:[2,3,3,1,1,2],MOTHIMIC:[3,2,2,1,3,1],AERANIMIC:[2,2,1,3,1,3],RAGIMIC:[2,1,3,1,3,2],DOLIMIC:[1,3,1,3,2,2],PORIMIC:[3,1,3,2,2,1],AERYLIMIC:[1,3,2,2,1,3],BOCRIMIC:[3,2,1,3,1,2],GYTHIMIC:[2,1,3,1,2,3],PAGIMIC:[1,3,1,2,3,2],AEOLYTHIMIC:[3,1,2,3,2,1],MOLIMIC:[1,2,3,2,1,3],STAPTIMIC:[2,3,2,1,3,1],ZACRIMIC:[3,2,1,2,3,1],LARIMIC:[2,1,2,3,1,3],THACRIMIC:[1,2,3,1,3,2],STYDIMIC:[2,3,1,3,2,1],LORIMIC:[3,1,3,2,1,2],IONADIMIC:[1,3,2,1,2,3],IONYTHIMIC:[3,1,3,1,3,1],AERYTHIMIC:[1,3,1,3,1,3],DYNIMIC:[3,1,3,1,2,2],ZYDIMIC:[1,3,1,2,2,3],ZATHIMIC:[3,1,2,2,3,1],RADIMIC:[1,2,2,3,1,3],STONIMIC:[2,2,3,1,3,1],SYPTIMIC:[2,3,1,3,1,2],PONIMIC:[4,4,1,1,1,1],KADIMIC:[4,1,1,1,1,4],GYNIMIC:[1,1,1,1,4,4],THYDIMIC:[1,1,1,4,4,1],POLIMIC:[1,1,4,4,1,1],THANIMIC:[1,4,4,1,1,1],LATHIMIC:[4,3,1,2,1,1],AERALIMIC:[3,1,2,1,1,4],KYNIMIC:[1,2,1,1,4,3],STYNIMIC:[2,1,1,4,3,1],EPYTIMIC:[1,1,4,3,1,2],KATOPTIMIC:[1,4,3,1,2,1],GALIMIC:[4,3,1,1,1,2],KATHIMIC:[3,1,1,1,2,4],LYLIMIC:[1,1,1,2,4,3],EPALIMIC:[1,1,2,4,3,1],EPACRIMIC:[1,2,4,3,1,1],SATHIMIC:[2,4,3,1,1,1],KATANIMIC:[4,2,2,2,1,1],KATYRIMIC:[2,2,2,1,1,4],RYNIMIC:[2,2,1,1,4,2],POGIMIC:[2,1,1,4,2,2],AERAPTIMIC:[1,1,4,2,2,2],EPYLIMIC:[1,4,2,2,2,1],MANIMIC:[4,2,1,2,1,2],MARIMIC:[2,1,2,1,2,4],LOCRIMIC:[1,2,1,2,4,2],RYLIMIC:[2,1,2,4,2,1],EPATIMIC:[1,2,4,2,1,2],BYRIMIC:[2,4,2,1,2,1],KOCRIMIC:[4,2,1,1,1,3],KORIMIC:[2,1,1,1,3,4],LYNIMIC:[1,1,1,3,4,2],MALIMIC:[1,1,3,4,2,1],SYNIMIC:[1,3,4,2,1,1],PHRAGIMIC:[3,4,2,1,1,1],MYCRIMIC:[4,1,1,2,2,2],IONORIMIC:[1,1,2,2,2,4],PHRYDIMIC:[1,2,2,2,4,1],ZYPTIMIC:[2,2,2,4,1,1],KATOTHIMIC:[2,2,4,1,1,2],PHRYLIMIC:[2,4,1,1,2,2],AEROTHIMIC:[4,1,1,2,1,3],STAGIMIC:[1,1,2,1,3,4],DORIMIC:[1,2,1,3,4,1],PHRYCRIMIC:[2,1,3,4,1,1],KYPTIMIC:[1,3,4,1,1,2],IONYLIMIC:[3,4,1,1,2,1],EPYNIMIC:[3,3,3,1,1,1],IONOGIMIC:[3,3,1,1,1,3],KYDIMIC:[3,1,1,1,3,3],GAPTIMIC:[1,1,1,3,3,3],THARIMIC:[1,1,3,3,3,1],IONAPHIMIC:[1,3,3,3,1,1],THOPTIMIC:[3,3,2,1,2,1],BAGIMIC:[3,2,1,2,1,3],KYRIMIC:[2,1,2,1,3,3],SONIMIC:[1,2,1,3,3,2],AEOLONIMIC:[2,1,3,3,2,1],RYGIMIC:[1,3,3,2,1,2],THAGIMIC:[3,3,2,1,1,2],KOLIMIC:[3,2,1,1,2,3],DYCRIMIC:[2,1,1,2,3,3],EPYCRIMIC:[1,1,2,3,3,2],GOCRIMIC:[1,2,3,3,2,1],KATOLIMIC:[2,3,3,2,1,1],DAGIMIC:[3,3,1,2,2,1],AEOLYDIMIC:[3,1,2,2,1,3],PARIMIC:[1,2,2,1,3,3],IONAPTIMIC:[2,2,1,3,3,1],THYLIMIC:[2,1,3,3,1,2],LOLIMIC:[1,3,3,1,2,2],THALIMIC:[3,3,1,2,1,2],STYGIMIC:[3,1,2,1,2,3],AEOLYGIMIC:[1,2,1,2,3,3],AEROGIMIC:[2,1,2,3,3,1],DACRIMIC:[1,2,3,3,1,2],BAPTIMIC:[2,3,3,1,2,1],STYTHIMIC:[3,2,3,1,2,1],KOTHIMIC:[2,3,1,2,1,3],PYGIMIC:[3,1,2,1,3,2],RODIMIC:[1,2,1,3,2,3],SORIMIC:[2,1,3,2,3,1],MONIMIC:[1,3,2,3,1,2],AERAGIMIC:[3,2,2,2,2,1],EPOTHIMIC:[2,2,2,2,1,3],SALIMIC:[2,2,2,1,3,2],LYPTIMIC:[2,2,1,3,2,2],KATONIMIC:[2,1,3,2,2,2],GYGIMIC:[1,3,2,2,2,2],AERADIMIC:[3,2,1,3,2,1],ZYRIMIC:[2,1,3,2,1,3],STYLIMIC:[1,3,2,1,3,2],LYTHIMIC:[3,1,2,3,1,2],DODIMIC:[1,2,3,1,2,3],KATALIMIC:[2,3,1,2,3,1],BOPTIMIC:[3,1,2,2,2,2],STOGIMIC:[1,2,2,2,2,3],THYNIMIC:[2,2,2,2,3,1],AEOLATHIMIC:[2,2,2,3,1,2],BYTHIMIC:[2,2,3,1,2,2],PADIMIC:[2,3,1,2,2,2],DATHIMIC:[4,2,2,1,1,2],EPAGIMIC:[2,2,1,1,2,4],RAPTIMIC:[2,1,1,2,4,2],EPOLIMIC:[1,1,2,4,2,2],SYTHIMIC:[1,2,4,2,2,1],SYDIMIC:[2,4,2,2,1,1],GACRIMIC:[4,2,1,1,2,2],BORIMIC:[2,1,1,2,2,4],SYCRIMIC:[1,1,2,2,4,2],GADIMIC:[1,2,2,4,2,1],AEOLOCRIMIC:[2,2,4,2,1,1],PHRYGIMIC:[2,4,2,1,1,2],WHOLETONE:s,LYDIAN:[2,2,2,1,2,2,1],MIXOLYDIAN:[2,2,1,2,2,1,2],AEOLIAN:n,LOCRIAN:[1,2,2,1,2,2,2],IONIAN:e,DORIAN:[2,1,2,2,2,1,2],PHRYGIAN:[1,2,2,2,1,2,2],IONYTHIAN:[4,1,2,2,1,1,1],AEOLYRIAN:[1,2,2,1,1,1,4],GORIAN:[2,2,1,1,1,4,1],AEOLODIAN:[2,1,1,1,4,1,2],DOPTIAN:[1,1,1,4,1,2,2],AERAPHIAN:[1,1,4,1,2,2,1],ZACRIAN:[1,4,1,2,2,1,1],IONARIAN:[4,1,1,3,1,1,1],DYNIAN:[1,1,3,1,1,1,4],ZYDIAN:[1,3,1,1,1,4,1],ZATHIAN:[3,1,1,1,4,1,1],RADIAN:[1,1,1,4,1,1,3],STONIAN:[1,1,4,1,1,3,1],SYPTIAN:[1,4,1,1,3,1,1],AEOLACRIAN:[4,1,1,1,3,1,1],ZYTHIAN:[1,1,1,3,1,1,4],DYRIAN:[1,1,3,1,1,4,1],KOPTIAN:[1,3,1,1,4,1,1],THOCRIAN:[3,1,1,4,1,1,1],AEOLANIAN:[1,1,4,1,1,1,3],DANIAN:[1,4,1,1,1,3,1],ZOGIAN:[4,1,1,1,2,2,1],EPYRIAN:[1,1,1,2,2,1,4],LYCRIAN:[1,1,2,2,1,4,1],DAPTIAN:[1,2,2,1,4,1,1],KYGIAN:[2,2,1,4,1,1,1],MOCRIAN:[2,1,4,1,1,1,2],ZYNIAN:[1,4,1,1,1,2,2],PHROLIAN:[3,2,2,1,2,1,1],IONAGIAN:[2,2,1,2,1,1,3],AEODIAN:[2,1,2,1,1,3,2],KYCRIAN:[1,2,1,1,3,2,2],EPYGIAN:[2,1,1,3,2,2,1],ZAPTIAN:[1,1,3,2,2,1,2],KAGIAN:[1,3,2,2,1,2,1],SOPTIAN:[3,2,2,1,1,1,2],IONYPTIAN:[2,2,1,1,1,2,3],GYRIAN:[2,1,1,1,2,3,2],ZALIAN:[1,1,1,2,3,2,2],STOLIAN:[1,1,2,3,2,2,1],BYLIAN:[1,2,3,2,2,1,1],ZOTHIAN:[2,3,2,2,1,1,1],THONIAN:[3,2,1,2,2,1,1],PHRORIAN:[2,1,2,2,1,1,3],STADIAN:[1,2,2,1,1,3,2],THODIAN:[2,2,1,1,3,2,1],DOGIAN:[2,1,1,3,2,1,2],MIXOPYRIAN:[1,1,3,2,1,2,2],GARIAN:[1,3,2,1,2,2,1],EPATHIAN:[3,2,1,1,3,1,1],MYTHIAN:[2,1,1,3,1,1,3],SOGIAN:[1,1,3,1,1,3,2],GOGIAN:[1,3,1,1,3,2,1],ROTHIAN:[3,1,1,3,2,1,1],KATARIAN:[1,1,3,2,1,1,3],STYLIAN:[1,3,2,1,1,3,1],STATHIAN:[3,2,1,1,1,2,2],MIXONYPHIAN:[2,1,1,1,2,2,3],MAGIAN:[1,1,1,2,2,3,2],DADIAN:[1,1,2,2,3,2,1],AEOLYLIAN:[1,2,2,3,2,1,1],GYCRIAN:[2,2,3,2,1,1,1],PYRIAN:[2,3,2,1,1,1,2],EPOGIAN:[3,1,1,3,1,1,2],LANIAN:[1,1,3,1,1,2,3],PAPTIAN:[1,3,1,1,2,3,1],IONACRIAN:[3,1,1,2,3,1,1],GATHIAN:[1,1,2,3,1,1,3],IONYPHIAN:[1,2,3,1,1,3,1],PHRYNIAN:[2,3,1,1,3,1,1],IONYCRIAN:[3,1,1,2,2,1,2],PHRADIAN:[1,1,2,2,1,2,3],AEOLORIAN:[1,2,2,1,2,3,1],GONIAN:[2,2,1,2,3,1,1],DALIAN:[2,1,2,3,1,1,2],DYGIAN:[1,2,3,1,1,2,2],ZOLIAN:[2,3,1,1,2,2,1],AERATHIAN:[3,1,1,2,1,2,2],SARIAN:[1,1,2,1,2,2,3],ZOPTIAN:[1,2,1,2,2,3,1],AERACRIAN:[2,1,2,2,3,1,1],BYPTIAN:[1,2,2,3,1,1,2],DARIAN:[2,2,3,1,1,2,1],LONIAN:[2,3,1,1,2,1,2],AEOPIAN:[4,2,1,2,1,1,1],RYGIAN:[2,1,2,1,1,1,4],EPYNIAN:[1,2,1,1,1,4,2],IONOGIAN:[2,1,1,1,4,2,1],KYDIAN:[1,1,1,4,2,1,2],GAPTIAN:[1,1,4,2,1,2,1],THARIAN:[1,4,2,1,2,1,1],EPYCRIAN:[4,2,1,1,1,2,1],GOCRIAN:[2,1,1,1,2,1,4],KATOLIAN:[1,1,1,2,1,4,2],THOPTIAN:[1,1,2,1,4,2,1],BAGIAN:[1,2,1,4,2,1,1],KYRIAN:[2,1,4,2,1,1,1],SONIAN:[1,4,2,1,1,1,2],PARIAN:[4,1,3,1,1,1,1],IONAPTIAN:[1,3,1,1,1,1,4],THYLIAN:[3,1,1,1,1,4,1],LOLIAN:[1,1,1,1,4,1,3],THAGIAN:[1,1,1,4,1,3,1],KOLIAN:[1,1,4,1,3,1,1],DYCRIAN:[1,4,1,3,1,1,1],STYGIAN:[4,1,2,1,2,1,1],AEOLYGIAN:[1,2,1,2,1,1,4],AEROGIAN:[2,1,2,1,1,4,1],DACRIAN:[1,2,1,1,4,1,2],BAPTIAN:[2,1,1,4,1,2,1],DAGIAN:[1,1,4,1,2,1,2],AEOLYDIAN:[1,4,1,2,1,2,1],STYTHIAN:[4,1,2,1,1,2,1],KOTHIAN:[1,2,1,1,2,1,4],PYGIAN:[2,1,1,2,1,4,1],RODIAN:[1,1,2,1,4,1,2],SORIAN:[1,2,1,4,1,2,1],MONIAN:[2,1,4,1,2,1,1],THALIAN:[1,4,1,2,1,1,2],ZORIAN:[4,1,2,1,1,1,2],AERAGIAN:[1,2,1,1,1,2,4],EPOTHIAN:[2,1,1,1,2,4,1],SALIAN:[1,1,1,2,4,1,2],LYPTIAN:[1,1,2,4,1,2,1],KATONIAN:[1,2,4,1,2,1,1],GYPHIAN:[2,4,1,2,1,1,1],THACRIAN:[4,1,1,2,2,1,1],DODIAN:[1,1,2,2,1,1,4],AEOLYPTIAN:[1,2,2,1,1,4,1],AEOLONIAN:[2,2,1,1,4,1,1],AERADIAN:[2,1,1,4,1,1,2],AEOLAGIAN:[1,1,4,1,1,2,2],ZYRIAN:[1,4,1,1,2,2,1],AEOLATHIAN:[4,1,1,2,1,2,1],BYTHIAN:[1,1,2,1,2,1,4],PADIAN:[1,2,1,2,1,4,1],ROLIAN:[2,1,2,1,4,1,1],PYDIAN:[1,2,1,4,1,1,2],THYGIAN:[2,1,4,1,1,2,1],KATALIAN:[1,4,1,1,2,1,2],SAPTIAN:[4,1,1,1,2,1,2],AERODIAN:[1,1,1,2,1,2,4],MACRIAN:[1,1,2,1,2,4,1],ROGIAN:[1,2,1,2,4,1,1],BOPTIAN:[2,1,2,4,1,1,1],STOGIAN:[1,2,4,1,1,1,2],THYNIAN:[2,4,1,1,1,2,1],THYCRIAN:[4,1,1,1,1,3,1],AEOLADIAN:[1,1,1,1,3,1,4],DYLIAN:[1,1,1,3,1,4,1],EPONIAN:[1,1,3,1,4,1,1],KATYGIAN:[1,3,1,4,1,1,1],STARIAN:[3,1,4,1,1,1,1],PHRATHIAN:[1,4,1,1,1,1,3],STALIAN:[3,3,1,1,2,1,1],STOPTIAN:[3,1,1,2,1,1,3],ZYGIAN:[1,1,2,1,1,3,3],KATAPTIAN:[1,2,1,1,3,3,1],AEOLAPTIAN:[2,1,1,3,3,1,1],POTHIAN:[1,1,3,3,1,1,2],BYGIAN:[1,3,3,1,1,2,1],MORIAN:[3,2,3,1,1,1,1],RYCRIAN:[2,3,1,1,1,1,3],RONIAN:[3,1,1,1,1,3,2],STYCRIAN:[1,1,1,1,3,2,3],KATORIAN:[1,1,1,3,2,3,1],EPYTHIAN:[1,1,3,2,3,1,1],KAPTIAN:[1,3,2,3,1,1,1],PHRAPTIAN:[3,2,2,2,1,1,1],BACRIAN:[2,2,2,1,1,1,3],KATYTHIAN:[2,2,1,1,1,3,2],MADIAN:[2,1,1,1,3,2,2],AERYGIAN:[1,1,1,3,2,2,2],PYLIAN:[1,1,3,2,2,2,1],IONATHIAN:[1,3,2,2,2,1,1],KATOCRIAN:[3,2,1,3,1,1,1],PHRYPTIAN:[2,1,3,1,1,1,3],KATYNIAN:[1,3,1,1,1,3,2],AERYCRIAN:[3,1,1,1,3,2,1],GANIAN:[1,1,1,3,2,1,3],EPARIAN:[1,1,3,2,1,3,1],LYRIAN:[1,3,2,1,3,1,1],IONOPIAN:[3,2,1,2,1,1,2],AEOLOGIAN:[2,1,2,1,1,2,3],ZADIAN:[1,2,1,1,2,3,2],SYGIAN:[2,1,1,2,3,2,1],PHRALIAN:[1,1,2,3,2,1,2],PHROGIAN:[1,2,3,2,1,2,1],RATHIAN:[2,3,2,1,2,1,1],RYTHIAN:[3,2,1,1,2,1,2],DONIAN:[2,1,1,2,1,2,3],AEOLOPTIAN:[1,1,2,1,2,3,2],PANIAN:[1,2,1,2,3,2,1],LODIAN:[2,1,2,3,2,1,1],SOLIAN:[1,2,3,2,1,1,2],IONOLIAN:[2,3,2,1,1,2,1],LAPTIAN:[3,2,1,1,1,3,1],LYGIAN:[2,1,1,1,3,1,3],LOGIAN:[1,1,1,3,1,3,2],LALIAN:[1,1,3,1,3,2,1],SOTHIAN:[1,3,1,3,2,1,1],PHROCRIAN:[3,1,3,2,1,1,1],THOGIAN:[1,3,2,1,1,1,3],KATATHIAN:[3,1,3,1,2,1,1],MODIAN:[1,3,1,2,1,1,3],BARIAN:[3,1,2,1,1,3,1],MIXOLOCRIAN:[1,2,1,1,3,1,3],SAGIAN:[2,1,1,3,1,3,1],AEOLOTHIAN:[1,1,3,1,3,1,2],SOCRIAN:[1,3,1,3,1,2,1],THOLIAN:[3,1,3,1,1,2,1],RALIAN:[1,3,1,1,2,1,3],SYRIAN:[3,1,1,2,1,3,1],STODIAN:[1,1,2,1,3,1,3],IONOCRIAN:[1,2,1,3,1,3,1],ZYCRIAN:[2,1,3,1,3,1,1],IONYGIAN:[1,3,1,3,1,1,2],ZARIAN:[3,1,3,1,1,1,2],PHRYTHIAN:[1,3,1,1,1,2,3],RORIAN:[3,1,1,1,2,3,1],BOLIAN:[1,1,1,2,3,1,3],BOTHIAN:[1,1,2,3,1,3,1],KATADIAN:[1,2,3,1,3,1,1],KODIAN:[2,3,1,3,1,1,1],RANIAN:[3,1,2,3,1,1,1],LADIAN:[1,2,3,1,1,1,3],PODIAN:[2,3,1,1,1,3,1],IONOTHIAN:[3,1,1,1,3,1,2],KANIAN:[1,1,1,3,1,2,3],ZYLIAN:[1,1,3,1,2,3,1],ZODIAN:[1,3,1,2,3,1,1],GOLIAN:[3,1,2,2,2,1,1],DYPTIAN:[1,2,2,2,1,1,3],RYPHIAN:[2,2,2,1,1,3,1],GYLIAN:[2,2,1,1,3,1,2],AEOLYCRIAN:[2,1,1,3,1,2,2],PYNIAN:[1,1,3,1,2,2,2],ZANIAN:[1,3,1,2,2,2,1],PALIAN:[3,1,2,2,1,2,1],STOTHIAN:[1,2,2,1,2,1,3],AERORIAN:r,KATAGIAN:[2,1,2,1,3,1,2],PHRONIAN:[1,2,1,3,1,2,2],BANIAN:[2,1,3,1,2,2,1],AERONIAN:[1,3,1,2,2,1,2],LOPTIAN:[3,1,2,1,3,1,1],IONODIAN:[1,2,1,3,1,1,3],BOGIAN:[2,1,3,1,1,3,1],MOGIAN:[1,3,1,1,3,1,2],DOCRIAN:[3,1,1,3,1,2,1],EPADIAN:[1,1,3,1,2,1,3],AERYNIAN:[1,3,1,2,1,3,1],BYCRIAN:[3,1,2,1,2,2,1],PATHIAN:[1,2,1,2,2,1,3],MYDIAN:t,THYPTIAN:[1,2,2,1,3,1,2],PHROTHIAN:[2,2,1,3,1,2,1],KATYCRIAN:[2,1,3,1,2,1,2],IONALIAN:[1,3,1,2,1,2,2],DOLIAN:[3,1,1,2,2,2,1],PORIAN:[1,1,2,2,2,1,3],AERYLIAN:f,"NEOPOLITAN MINOR":f,ZAGIAN:[2,2,2,1,3,1,1],LAGIAN:[2,2,1,3,1,1,2],TYRIAN:[2,1,3,1,1,2,2],MIXONORIAN:[1,3,1,1,2,2,2],PAGIAN:[3,1,1,1,2,2,2],AEOLYTHIAN:[1,1,1,2,2,2,3],MOLIAN:[1,1,2,2,2,3,1],STAPTIAN:[1,2,2,2,3,1,1],MOTHIAN:[2,2,2,3,1,1,1],AERANIAN:[2,2,3,1,1,1,2],RAGIAN:[2,3,1,1,1,2,2],LARIAN:[2,2,2,2,1,2,1],LYTHIAN:[2,2,2,1,2,1,2],STYDIAN:d,LORIAN:[2,1,2,1,2,2,2],IONADIAN:[1,2,1,2,2,2,2],BOCRIAN:u,MIXOLYTHIAN:[1,2,2,2,2,1,2],THADIAN:[4,3,1,1,1,1,1],SANIAN:[3,1,1,1,1,1,4],IONYDIAN:[1,1,1,1,1,4,3],EPYDIAN:[1,1,1,1,4,3,1],KATYDIAN:[1,1,1,4,3,1,1],MATHIAN:[1,1,4,3,1,1,1],AERYPTIAN:[1,4,3,1,1,1,1],PYTHIAN:[4,2,2,1,1,1,1],KATYLIAN:[2,2,1,1,1,1,4],BYDIAN:[2,1,1,1,1,4,2],BYNIAN:[1,1,1,1,4,2,2],GALIAN:[1,1,1,4,2,2,1],ZONIAN:[1,1,4,2,2,1,1],MYRIAN:[1,4,2,2,1,1,1],KATOGIAN:[4,2,1,1,2,1,1],STACRIAN:[2,1,1,2,1,1,4],STYRIAN:[1,1,2,1,1,4,2],IONYRIAN:[1,2,1,1,4,2,1],PHRODIAN:[2,1,1,4,2,1,1],PYCRIAN:[1,1,4,2,1,1,2],GYPTIAN:[1,4,2,1,1,2,1],KATACRIAN:[4,1,1,2,1,1,2],SODIAN:[1,1,2,1,1,2,4],BATHIAN:[1,2,1,1,2,4,1],MYLIAN:[2,1,1,2,4,1,1],GODIAN:[1,1,2,4,1,1,2],THORIAN:[1,2,4,1,1,2,1],ZOCRIAN:[2,4,1,1,2,1,1],STANIAN:[4,1,1,1,1,2,2],EPANIAN:[1,1,1,1,2,2,4],KONIAN:[1,1,1,2,2,4,1],STOCRIAN:[1,1,2,2,4,1,1],KALIAN:[1,2,2,4,1,1,1],PHROPTIAN:[2,2,4,1,1,1,1],DYDIAN:[2,4,1,1,1,1,2],KATYPTIAN:[4,1,1,1,1,1,3],EPODIAN:[1,1,1,1,1,3,4],MYGIAN:[1,1,1,1,3,4,1],PACRIAN:[1,1,1,3,4,1,1],AEROCRIAN:[1,1,3,4,1,1,1],AEOLARIAN:[1,3,4,1,1,1,1],KYTHIAN:[3,4,1,1,1,1,1],BONIAN:[3,3,2,1,1,1,1],BADIAN:[3,2,1,1,1,1,3],KATODIAN:[2,1,1,1,1,3,3],SADIAN:[1,1,1,1,3,3,2],DOTHIAN:[1,1,1,3,3,2,1],MOPTIAN:[1,1,3,3,2,1,1],AERYRIAN:[1,3,3,2,1,1,1],EPAGIAN:[3,3,1,2,1,1,1],RAPTIAN:[3,1,2,1,1,1,3],EPOLIAN:[1,2,1,1,1,3,3],SYTHIAN:[2,1,1,1,3,3,1],SYDIAN:[1,1,1,3,3,1,2],EPOCRIAN:[1,1,3,3,1,2,1],KYLIAN:[1,3,3,1,2,1,1],GACRIAN:[3,3,1,1,1,2,1],BORIAN:[3,1,1,1,2,1,3],SYCRIAN:[1,1,1,2,1,3,3],GADIAN:[1,1,2,1,3,3,1],AEOLOCRIAN:[1,2,1,3,3,1,1],MIXODORIAN:[2,1,3,3,1,1,1],DATHIAN:[1,3,3,1,1,1,2],KATOPTIAN:[3,3,1,1,1,1,2],PONIAN:[3,1,1,1,1,2,3],KADIAN:[1,1,1,1,2,3,3],GYNIAN:[1,1,1,2,3,3,1],THYPHIAN:[1,1,2,3,3,1,1],POLIAN:[1,2,3,3,1,1,1],THANIAN:[2,3,3,1,1,1,1],EPACRIAN:[3,2,2,1,1,2,1],SATHIAN:[2,2,1,1,2,1,3],LATHIAN:[2,1,1,2,1,3,2],AERALIAN:[1,1,2,1,3,2,2],KYNIAN:[1,2,1,3,2,2,1],STYNIAN:[2,1,3,2,2,1,1],EPYPHIAN:[1,3,2,2,1,1,2],POGIAN:[3,2,1,2,1,2,1],AERAPTIAN:[2,1,2,1,2,1,3],EPYLIAN:[1,2,1,2,1,3,2],GAMIAN:[2,1,2,1,3,2,1],KATHIAN:[1,2,1,3,2,1,2],LYLIAN:[2,1,3,2,1,2,1],EPALIAN:[1,3,2,1,2,1,2],EPORIAN:[3,2,1,1,2,2,1],RYLIAN:[2,1,1,2,2,1,3],EPAPTIAN:[1,1,2,2,1,3,2],BYRIAN:[1,2,2,1,3,2,1],KATANIAN:[2,2,1,3,2,1,1],KATYRIAN:[2,1,3,2,1,1,2],RYNIAN:[1,3,2,1,1,2,2],KORIAN:[3,1,2,2,1,1,2],LYNIAN:[1,2,2,1,1,2,3],MALIAN:[2,2,1,1,2,3,1],SYNIAN:[2,1,1,2,3,1,2],PHRAGIAN:[1,1,2,3,1,2,2],MANIAN:[1,2,3,1,2,2,1],MARIAN:[2,3,1,2,2,1,1],MYCRIAN:[3,1,2,1,2,1,2],IONORIAN:[1,2,1,2,1,2,3],PHRYDIAN:[2,1,2,1,2,3,1],ZYPTIAN:[1,2,1,2,3,1,2],KATOTHIAN:[2,1,2,3,1,2,1],PHRYLIAN:[1,2,3,1,2,1,2],KOCRIAN:[2,3,1,2,1,2,1],IONANIAN:[3,1,2,1,1,2,2],AEROTHIAN:[1,2,1,1,2,2,3],STAGIAN:[2,1,1,2,2,3,1],LOTHIAN:[1,1,2,2,3,1,2],PHRYCRIAN:[1,2,2,3,1,2,1],KYPTIAN:[2,2,3,1,2,1,1],IONYLIAN:[2,3,1,2,1,1,2],GYDIAN:[4,2,1,1,1,1,2],KOGIAN:[2,1,1,1,1,2,4],RARIAN:[1,1,1,1,2,4,2],AEROLIAN:[1,1,1,2,4,2,1],KARIAN:[1,1,2,4,2,1,1],MYPTIAN:[1,2,4,2,1,1,1],RYDIAN:[2,4,2,1,1,1,1],AEOLYNIAN:[2,2,2,2,2,1,1],AEROPTIAN:[2,2,2,2,1,1,2],PHRYRIAN:[2,2,2,1,1,2,2],GOTHIAN:[2,2,1,1,2,2,2],STORIAN:[2,1,1,2,2,2,2],PYPTIAN:[1,1,2,2,2,2,2],THYDIAN:m,"NEOPOLITAN MAJOR":m,AERYCRYLLIC:y,"DOMINANT BEBOP":y,"BEBOP DOMINANT":y,GADYLLIC:[2,1,2,2,1,1,1,2],SOLYLLIC:[1,2,2,1,1,1,2,2],ZYLYLLIC:[2,2,1,1,1,2,2,1],MIXODYLLIC:[2,1,1,1,2,2,1,2],SORYLLIC:[1,1,1,2,2,1,2,2],GODYLLIC:[1,1,2,2,1,2,2,1],EPIPHYLLIC:[1,2,2,1,2,2,1,1],PYNYLLIC:[4,1,1,1,2,1,1,1],BOCRYLLIC:[1,1,1,2,1,1,1,4],KOGYLLIC:[1,1,2,1,1,1,4,1],RARYLLIC:[1,2,1,1,1,4,1,1],ZYCRYLLIC:[2,1,1,1,4,1,1,1],MYCRYLLIC:[1,1,1,4,1,1,1,2],LAPTYLLIC:[1,1,4,1,1,1,2,1],PYLYLLIC:[1,4,1,1,1,2,1,1],POTHYLLIC:[3,2,1,1,1,2,1,1],PHRONYLLIC:[2,1,1,1,2,1,1,3],STYNYLLIC:[1,1,1,2,1,1,3,2],RATHYLLIC:[1,1,2,1,1,3,2,1],AERYPTYLLIC:[1,2,1,1,3,2,1,1],ZYDYLLIC:[2,1,1,3,2,1,1,1],KATOLYLLIC:[1,1,3,2,1,1,1,2],RYTHYLLIC:[1,3,2,1,1,1,2,1],LOCRYLLIC:[3,1,1,3,1,1,1,1],BYLYLLIC:[1,1,3,1,1,1,1,3],SOGYLLIC:[1,3,1,1,1,1,3,1],IONYCRYLLIC:[3,1,1,1,1,3,1,1],KOPTYLLIC:[1,1,1,1,3,1,1,3],EPYRYLLIC:[1,1,1,3,1,1,3,1],SOPTYLLIC:[1,1,3,1,1,3,1,1],AEOLYLYLLIC:[1,3,1,1,3,1,1,1],AERACRYLLIC:[3,1,1,2,2,1,1,1],EPYGYLLIC:[1,1,2,2,1,1,1,3],THONYLLIC:[1,2,2,1,1,1,3,1],LANYLLIC:[2,2,1,1,1,3,1,1],PHRYNYLLIC:[2,1,1,1,3,1,1,2],LYCRYLLIC:[1,1,1,3,1,1,2,2],IONYPTYLLIC:[1,1,3,1,1,2,2,1],EPATHYLLIC:[1,3,1,1,2,2,1,1],DYDYLLIC:[3,1,1,2,1,2,1,1],THOGYLLIC:[1,1,2,1,2,1,1,3],RYGYLLIC:[1,2,1,2,1,1,3,1],BYCRYLLIC:[2,1,2,1,1,3,1,1],ZACRYLLIC:[1,2,1,1,3,1,1,2],PANYLLIC:[2,1,1,3,1,1,2,1],DYRYLLIC:[1,1,3,1,1,2,1,2],ZATHYLLIC:[1,3,1,1,2,1,2,1],DAGYLLIC:[3,1,1,2,1,1,1,2],KATALYLLIC:[1,1,2,1,1,1,2,3],KATORYLLIC:[1,2,1,1,1,2,3,1],DODYLLIC:[2,1,1,1,2,3,1,1],ZOGYLLIC:[1,1,1,2,3,1,1,2],MADYLLIC:[1,1,2,3,1,1,2,1],DYCRYLLIC:[1,2,3,1,1,2,1,1],AEOLOGYLLIC:[2,3,1,1,2,1,1,1],SYDYLLIC:[3,1,1,1,3,1,1,1],KATOGYLLIC:[1,1,1,3,1,1,1,3],ZYGYLLIC:[1,1,3,1,1,1,3,1],AERALYLLIC:[1,3,1,1,1,3,1,1],BACRYLLIC:[3,1,1,1,2,2,1,1],AERYGYLLIC:[1,1,1,2,2,1,1,3],DATHYLLIC:[1,1,2,2,1,1,3,1],BOPTYLLIC:[1,2,2,1,1,3,1,1],BAGYLLIC:[2,2,1,1,3,1,1,1],MATHYLLIC:[2,1,1,3,1,1,1,2],STYPTYLLIC:[1,1,3,1,1,1,2,2],ZOLYLLIC:[1,3,1,1,1,2,2,1],ROCRYLLIC:[2,2,2,1,2,1,1,1],ZYRYLLIC:[2,2,1,2,1,1,1,2],SAGYLLIC:[2,1,2,1,1,1,2,2],EPINYLLIC:[1,2,1,1,1,2,2,2],KATAGYLLIC:[2,1,1,1,2,2,2,1],RAGYLLIC:[1,1,1,2,2,2,1,2],GOTHYLLIC:[1,1,2,2,2,1,2,1],LYTHYLLIC:[1,2,2,2,1,2,1,1],IONOCRYLLIC:[2,2,2,1,1,1,2,1],GOCRYLLIC:[2,2,1,1,1,2,1,2],EPIRYLLIC:[2,1,1,1,2,1,2,2],AERADYLLIC:[1,1,1,2,1,2,2,2],STAPTYLLIC:[1,1,2,1,2,2,2,1],DANYLLIC:[1,2,1,2,2,2,1,1],GOPTYLLIC:[2,1,2,2,2,1,1,1],EPOCRYLLIC:[1,2,2,2,1,1,1,2],IONOPTYLLIC:b,"MARJOR BEBOP":b,"BEBOP MAJOR":b,AEOLORYLLIC:[2,1,2,1,1,2,1,2],THYDYLLIC:[1,2,1,1,2,1,2,2],GYCRYLLIC:[2,1,1,2,1,2,2,1],LYRYLLIC:[1,1,2,1,2,2,1,2],MOGYLLIC:[1,2,1,2,2,1,2,1],KATODYLLIC:[2,1,2,2,1,2,1,1],MOPTYLLIC:[1,2,2,1,2,1,1,2],DOLYLLIC:[4,1,2,1,1,1,1,1],MORYLLIC:[1,2,1,1,1,1,1,4],BYDYLLIC:[2,1,1,1,1,1,4,1],POCRYLLIC:[1,1,1,1,1,4,1,2],PHRACRYLLIC:[1,1,1,1,4,1,2,1],GYRYLLIC:[1,1,1,4,1,2,1,1],PHRYGYLLIC:[1,1,4,1,2,1,1,1],DOGYLLIC:[1,4,1,2,1,1,1,1],THAGYLLIC:[4,1,1,2,1,1,1,1],THOPTYLLIC:[1,1,2,1,1,1,1,4],PHRAPTYLLIC:[1,2,1,1,1,1,4,1],GYLYLLIC:[2,1,1,1,1,4,1,1],PHRALYLLIC:[1,1,1,1,4,1,1,2],DYGYLLIC:[1,1,1,4,1,1,2,1],RONYLLIC:[1,1,4,1,1,2,1,1],EPOGYLLIC:[1,4,1,1,2,1,1,1],AEOLADYLLIC:[4,1,1,1,1,2,1,1],KOCRYLLIC:[1,1,1,1,2,1,1,4],LODYLLIC:[1,1,1,2,1,1,4,1],BYNYLLIC:[1,1,2,1,1,4,1,1],KYDYLLIC:[1,2,1,1,4,1,1,1],BYGYLLIC:[2,1,1,4,1,1,1,1],PHRYPTYLLIC:[1,1,4,1,1,1,1,2],IONAYLLIC:[1,4,1,1,1,1,2,1],PHRORYLLIC:[4,1,1,1,1,1,2,1],THYPHYLLIC:[1,1,1,1,1,2,1,4],POPTYLLIC:[1,1,1,1,2,1,4,1],MIXONYLLIC:[1,1,1,2,1,4,1,1],PAPTYLLIC:[1,1,2,1,4,1,1,1],STORYLLIC:[1,2,1,4,1,1,1,1],PHRYCRYLLIC:[2,1,4,1,1,1,1,1],PALYLLIC:[1,4,1,1,1,1,1,2],PHRANYLLIC:[3,2,2,1,1,1,1,1],STYDYLLIC:[2,2,1,1,1,1,1,3],ZADYLLIC:[2,1,1,1,1,1,3,2],ZALYLLIC:[1,1,1,1,1,3,2,2],ZOCRYLLIC:[1,1,1,1,3,2,2,1],KATOCRYLLIC:[1,1,1,3,2,2,1,1],AERATHYLLIC:[1,1,3,2,2,1,1,1],STOPTYLLIC:[1,3,2,2,1,1,1,1],LYDYLLIC:[3,2,1,2,1,1,1,1],RADYLLIC:[2,1,2,1,1,1,1,3],STAGYLLIC:[1,2,1,1,1,1,3,2],IONORYLLIC:[2,1,1,1,1,3,2,1],PHRODYLLIC:[1,1,1,1,3,2,1,2],AERAGYLLIC:[1,1,1,3,2,1,2,1],BANYLLIC:[1,1,3,2,1,2,1,1],EPOTHYLLIC:[1,3,2,1,2,1,1,1],ZORYLLIC:[3,2,1,1,2,1,1,1],PHROLYLLIC:[2,1,1,2,1,1,1,3],KOLYLLIC:[1,1,2,1,1,1,3,2],THODYLLIC:[1,2,1,1,1,3,2,1],SOCRYLLIC:[2,1,1,1,3,2,1,1],AEOLYLLIC:[1,1,1,3,2,1,1,2],ZYTHYLLIC:[1,1,3,2,1,1,2,1],AEORYLLIC:[1,3,2,1,1,2,1,1],MIXOLYDYLLIC:[3,2,1,1,1,1,1,2],MIXONYPHYLLIC:[2,1,1,1,1,1,2,3],AEOLANYLLIC:[1,1,1,1,1,2,3,2],THOCRYLLIC:[1,1,1,1,2,3,2,1],KYGYLLIC:[1,1,1,2,3,2,1,1],IONAGYLLIC:[1,1,2,3,2,1,1,1],GOGYLLIC:[1,2,3,2,1,1,1,1],PHRADYLLIC:[2,3,2,1,1,1,1,1],IONIPTYLLIC:[3,1,3,1,1,1,1,1],KYCRYLLIC:[1,3,1,1,1,1,1,3],AEOLAPTYLLIC:[3,1,1,1,1,1,3,1],RODYLLIC:[1,1,1,1,1,3,1,3],IONATHYLLIC:[1,1,1,1,3,1,3,1],PYTHYLLIC:[1,1,1,3,1,3,1,1],ZONYLLIC:[1,1,3,1,3,1,1,1],RYRYLLIC:[1,3,1,3,1,1,1,1],AEOLOTHYLLIC:[3,1,2,2,1,1,1,1],IONYRYLLIC:[1,2,2,1,1,1,1,3],RYDYLLIC:[2,2,1,1,1,1,3,1],GONYLLIC:[2,1,1,1,1,3,1,2],ROLYLLIC:[1,1,1,1,3,1,2,2],KATYDYLLIC:[1,1,1,3,1,2,2,1],ZYPTYLLIC:[1,1,3,1,2,2,1,1],MODYLLIC:[1,3,1,2,2,1,1,1],MAPTYLLIC:[3,1,2,1,2,1,1,1],AERAPTYLLIC:[1,2,1,2,1,1,1,3],KATADYLLIC:[2,1,2,1,1,1,3,1],MAGYLLIC:[1,2,1,1,1,3,1,2],PHRYLYLLIC:[2,1,1,1,3,1,2,1],EPIGYLLIC:[1,1,1,3,1,2,1,2],MOLYLLIC:[1,1,3,1,2,1,2,1],PONYLLIC:[1,3,1,2,1,2,1,1],THYPTYLLIC:[3,1,2,1,1,2,1,1],IONOGYLLIC:[1,2,1,1,2,1,1,3],AEOLARYLLIC:[2,1,1,2,1,1,3,1],KATYGYLLIC:[1,1,2,1,1,3,1,2],GANYLLIC:[1,2,1,1,3,1,2,1],KYPTYLLIC:[2,1,1,3,1,2,1,1],SALYLLIC:[1,1,3,1,2,1,1,2],SANYLLIC:[1,3,1,2,1,1,2,1],DOPTYLLIC:[3,1,2,1,1,1,2,1],IONILYLLIC:[1,2,1,1,1,2,1,3],MANYLLIC:[2,1,1,1,2,1,3,1],POLYLLIC:[1,1,1,2,1,3,1,2],STANYLLIC:[1,1,2,1,3,1,2,1],MIXOTHARYLLIC:[1,2,1,3,1,2,1,1],EPORYLLIC:[2,1,3,1,2,1,1,1],AERYNYLLIC:[1,3,1,2,1,1,1,2],LONYLLIC:[3,1,1,2,1,1,2,1],SATHYLLIC:[1,1,2,1,1,2,1,3],LAYLLIC:[1,2,1,1,2,1,3,1],SARYLLIC:[2,1,1,2,1,3,1,1],THACRYLLIC:[1,1,2,1,3,1,1,2],AEOLYNYLLIC:[1,2,1,3,1,1,2,1],THADYLLIC:[2,1,3,1,1,2,1,1],LYNYLLIC:[1,3,1,1,2,1,1,2],AEOLATHYLLIC:[3,1,1,1,2,1,2,1],AEOLOCRYLLIC:[1,1,1,2,1,2,1,3],PHROPTYLLIC:[1,1,2,1,2,1,3,1],KODYLLIC:[1,2,1,2,1,3,1,1],EPAPTYLLIC:[2,1,2,1,3,1,1,1],IONOYLLIC:[1,2,1,3,1,1,1,2],GYPTYLLIC:[2,1,3,1,1,1,2,1],AERYTHYLLIC:[1,3,1,1,1,2,1,2],ZAGYLLIC:[3,1,1,1,2,1,1,2],EPACRYLLIC:[1,1,1,2,1,1,2,3],THORCRYLLIC:[1,1,2,1,1,2,3,1],LOPTYLLIC:[1,2,1,1,2,3,1,1],KATYLYLLIC:[2,1,1,2,3,1,1,1],MALYLLIC:[1,1,2,3,1,1,1,2],MYDYLLIC:[1,2,3,1,1,1,2,1],THYCRYLLIC:[2,3,1,1,1,2,1,1],GYTHYLLIC:[3,1,1,1,1,2,2,1],PYRYLLIC:[1,1,1,1,2,2,1,3],RYCRYLLIC:[1,1,1,2,2,1,3,1],PHRATHYLLIC:[1,1,2,2,1,3,1,1],BADYLLIC:[1,2,2,1,3,1,1,1],PHROCRYLLIC:[2,2,1,3,1,1,1,1],STARYLLIC:[2,1,3,1,1,1,1,2],ZOTHYLLIC:[1,3,1,1,1,1,2,2],THARYLLIC:[3,1,1,1,1,2,1,2],SYLYLLIC:[1,1,1,1,2,1,2,3],LOTHYLLIC:[1,1,1,2,1,2,3,1],DARYLLIC:[1,1,2,1,2,3,1,1],MONYLLIC:[1,2,1,2,3,1,1,1],STYRYLLIC:[2,1,2,3,1,1,1,1],AEOLACRYLLIC:[1,2,3,1,1,1,1,2],RAPTYLLIC:[2,3,1,1,1,1,2,1],KATARYLLIC:[3,1,1,1,1,1,2,2],AEROCRYLLIC:[1,1,1,1,1,2,2,3],ZANYLLIC:[1,1,1,1,2,2,3,1],AEOLONYLLIC:[1,1,1,2,2,3,1,1],AEONYLLIC:[1,1,2,2,3,1,1,1],KYRYLLIC:[1,2,2,3,1,1,1,1],SYTHYLLIC:[2,2,3,1,1,1,1,1],KATYCRYLLIC:[2,3,1,1,1,1,1,2],STOGYLLIC:[2,2,1,2,1,2,1,1],IONIDYLLIC:[2,1,2,1,2,1,1,2],STONYLLIC:[1,2,1,2,1,1,2,2],STALYLLIC:[2,1,2,1,1,2,2,1],PORYLLIC:[1,2,1,1,2,2,1,2],MOCRYLLIC:[2,1,1,2,2,1,2,1],AEOLYRYLLIC:[1,1,2,2,1,2,1,2],BARYLLIC:[1,2,2,1,2,1,2,1],DALYLLIC:[2,2,1,1,2,1,2,1],IONYPHYLLIC:[2,1,1,2,1,2,1,2],ZAPTYLLIC:[1,1,2,1,2,1,2,2],GARYLLIC:[1,2,1,2,1,2,2,1],GATHYLLIC:[2,1,2,1,2,2,1,1],MIXOPYRYLLIC:[1,2,1,2,2,1,1,2],IONACRYLLIC:v,"BEBOP MINOR":v,"MINOR BEBOP":v,"DORIAN BEBOP":v,"BEBOP DORIAN":v,STYLYLLIC:[1,2,2,1,1,2,1,2],STYCRYLLIC:[4,2,1,1,1,1,1,1],IONOTHYLLIC:[2,1,1,1,1,1,1,4],MYTHYLLIC:[1,1,1,1,1,1,4,2],AERYLYLLIC:[1,1,1,1,1,4,2,1],BONYLLIC:[1,1,1,1,4,2,1,1],THOLYLLIC:[1,1,1,4,2,1,1,1],KATYRYLLIC:[1,1,4,2,1,1,1,1],SADYLLIC:[1,4,2,1,1,1,1,1],STOLYLLIC:[4,1,1,1,1,1,1,2],LOGYLLIC:[1,1,1,1,1,1,2,4],DACRYLLIC:[1,1,1,1,1,2,4,1],THYNYLLIC:[1,1,1,1,2,4,1,1],GYDYLLIC:[1,1,1,2,4,1,1,1],EPARYLLIC:[1,1,2,4,1,1,1,1],DYNYLLIC:[1,2,4,1,1,1,1,1],IONYLLIC:[2,4,1,1,1,1,1,1],ZARYLLIC:[3,3,1,1,1,1,1,1],DYTHYLLIC:[3,1,1,1,1,1,1,3],IONARYLLIC:[1,1,1,1,1,1,3,3],LARYLLIC:[1,1,1,1,1,3,3,1],KATAPTYLLIC:[1,1,1,1,3,3,1,1],SONYLLIC:[1,1,1,3,3,1,1,1],PATHYLLIC:[1,1,3,3,1,1,1,1],LORYLLIC:[1,3,3,1,1,1,1,1],AERONYLLIC:[3,2,1,1,1,1,2,1],PYCRYLLIC:[2,1,1,1,1,2,1,3],MYGYLLIC:[1,1,1,1,2,1,3,2],LYLYLLIC:[1,1,1,2,1,3,2,1],DAPTYLLIC:[1,1,2,1,3,2,1,1],IONINYLLIC:[1,2,1,3,2,1,1,1],EPAPHYLLIC:[2,1,3,2,1,1,1,1],LOLYLLIC:[1,3,2,1,1,1,1,2],STACRYLLIC:[3,1,2,1,1,1,1,2],DORYLLIC:[1,2,1,1,1,1,2,3],KADYLLIC:[2,1,1,1,1,2,3,1],RYNYLLIC:[1,1,1,1,2,3,1,2],AEROGYLLIC:[1,1,1,2,3,1,2,1],ROTHYLLIC:[1,1,2,3,1,2,1,1],KAGYLLIC:[1,2,3,1,2,1,1,1],STATHYLLIC:[2,3,1,2,1,1,1,1],THYRYLLIC:[2,2,2,2,1,1,1,1],GYGYLLIC:[2,2,2,1,1,1,1,2],SODYLLIC:[2,2,1,1,1,1,2,2],GORYLLIC:[2,1,1,1,1,2,2,2],BOTHYLLIC:[1,1,1,1,2,2,2,2],GYNYLLIC:[1,1,1,2,2,2,2,1],IONAPTYLLIC:[1,1,2,2,2,2,1,1],PHRYRYLLIC:[1,2,2,2,2,1,1,1],RACRYLLIC:[2,2,2,1,1,2,1,1],EPICRYLLIC:[2,2,1,1,2,1,1,2],STYGYLLIC:[2,1,1,2,1,1,2,2],SYRYLLIC:[1,1,2,1,1,2,2,2],STYTHYLLIC:[1,2,1,1,2,2,2,1],AEROTHYLLIC:[2,1,1,2,2,2,1,1],MIXORYLLIC:[1,1,2,2,2,1,1,2],THANYLLIC:[1,2,2,2,1,1,2,1],RORYLLIC:[2,2,1,1,2,2,1,1],EPOTYLLIC:[2,1,1,2,2,1,1,2],EPIDYLLIC:[1,1,2,2,1,1,2,2],KAPTYLLIC:[1,2,2,1,1,2,2,1],MAJORDIMIN:[2,1,2,1,2,1,2,1],MINORDIMIN:g,OCTATONIC:g,AERYCRYGIC:[2,2,1,1,1,2,1,1,1],GADYGIC:[2,1,1,1,2,1,1,1,2],SOLYGIC:[1,1,1,2,1,1,1,2,2],ZYLYGIC:[1,1,2,1,1,1,2,2,1],GARYGIC:[1,2,1,1,1,2,2,1,1],SORYGIC:[2,1,1,1,2,2,1,1,1],GODYGIC:[1,1,1,2,2,1,1,1,2],EPITHYGIC:[1,1,2,2,1,1,1,2,1],IONOPTYGIC:[1,2,2,1,1,1,2,1,1],KALYGIC:[3,1,1,2,1,1,1,1,1],IONODYGIC:[1,1,2,1,1,1,1,1,3],BYTHYGIC:[1,2,1,1,1,1,1,3,1],EPYGIC:[2,1,1,1,1,1,3,1,1],MARYGIC:[1,1,1,1,1,3,1,1,2],GAPTYGIC:[1,1,1,1,3,1,1,2,1],AEROPTYGIC:[1,1,1,3,1,1,2,1,1],MYLYGIC:[1,1,3,1,1,2,1,1,1],GALYGIC:[1,3,1,1,2,1,1,1,1],MIXOLYDYGIC:[3,1,1,1,2,1,1,1,1],IONYCRYGIC:[1,1,1,2,1,1,1,1,3],ZOPTYGIC:[1,1,2,1,1,1,1,3,1],PHRYGYGIC:[1,2,1,1,1,1,3,1,1],LOCRYGIC:[2,1,1,1,1,3,1,1,1],GONYGIC:[1,1,1,1,3,1,1,1,2],AERACRYGIC:[1,1,1,3,1,1,1,2,1],AERATHYGIC:[1,1,3,1,1,1,2,1,1],DORYGIC:[1,3,1,1,1,2,1,1,1],DYCRYGIC:[3,1,1,1,1,2,1,1,1],AEOLYGIC:[1,1,1,1,2,1,1,1,3],DYDYGIC:[1,1,1,2,1,1,1,3,1],THOLYGIC:[1,1,2,1,1,1,3,1,1],RYNYGIC:[1,2,1,1,1,3,1,1,1],BYCRYGIC:[2,1,1,1,3,1,1,1,1],ZACRYGIC:[1,1,1,3,1,1,1,1,2],PANYGIC:[1,1,3,1,1,1,1,2,1],DYRYGIC:[1,3,1,1,1,1,2,1,1],LOPTYGIC:[3,1,1,1,1,1,2,1,1],KATYLYGIC:[1,1,1,1,1,2,1,1,3],PHRADYGIC:[1,1,1,1,2,1,1,3,1],MIXODYGIC:[1,1,1,2,1,1,3,1,1],KATALYGIC:[1,1,2,1,1,3,1,1,1],KATORYGIC:[1,2,1,1,3,1,1,1,1],DOGYGIC:[2,1,1,3,1,1,1,1,1],ZODYGIC:[1,1,3,1,1,1,1,1,2],MADYGIC:[1,3,1,1,1,1,1,2,1],BAGYGIC:[2,2,1,2,1,1,1,1,1],MATHYGIC:[2,1,2,1,1,1,1,1,2],STYPTYGIC:[1,2,1,1,1,1,1,2,2],ZOLYGIC:[2,1,1,1,1,1,2,2,1],SYDYGIC:[1,1,1,1,1,2,2,1,2],KATYGIC:[1,1,1,1,2,2,1,2,1],ZYPHYGIC:[1,1,1,2,2,1,2,1,1],AERALYGIC:[1,1,2,2,1,2,1,1,1],RYPTYGIC:[1,2,2,1,2,1,1,1,1],APINYGIC:[2,2,1,1,1,1,1,2,1],KATAGYGIC:[2,1,1,1,1,1,2,1,2],RADYGIC:[1,1,1,1,1,2,1,2,2],GOTHYGIC:[1,1,1,1,2,1,2,2,1],LYTHYGIC:[1,1,1,2,1,2,2,1,1],BACRYGIC:[1,1,2,1,2,2,1,1,1],AERYGIC:[1,2,1,2,2,1,1,1,1],DATHYGIC:[2,1,2,2,1,1,1,1,1],BOPTYGIC:[1,2,2,1,1,1,1,1,2],EPYRYGIC:[2,1,2,1,1,2,1,1,1],AERADYGIC:[1,2,1,1,2,1,1,1,2],STAPTYGIC:[2,1,1,2,1,1,1,2,1],DANYGIC:[1,1,2,1,1,1,2,1,2],GOPTYGIC:[1,2,1,1,1,2,1,2,1],EPOCRYGIC:[2,1,1,1,2,1,2,1,1],ROCRYGIC:[1,1,1,2,1,2,1,1,2],ZYRYGIC:[1,1,2,1,2,1,1,2,1],SADYGIC:[1,2,1,2,1,1,2,1,1],AEOLORYGIC:[2,1,2,1,1,1,2,1,1],THYDYGIC:[1,2,1,1,1,2,1,1,2],GYCRYGIC:[2,1,1,1,2,1,1,2,1],LYRYGIC:[1,1,1,2,1,1,2,1,2],MODYGIC:[1,1,2,1,1,2,1,2,1],KATODYGIC:[1,2,1,1,2,1,2,1,1],MOPTYGIC:[2,1,1,2,1,2,1,1,1],IONOCRYGIC:[1,1,2,1,2,1,1,1,2],GOCRYGIC:[1,2,1,2,1,1,1,2,1],MANYGIC:[4,1,1,1,1,1,1,1,1],POLYGIC:[1,1,1,1,1,1,1,1,4],STANYGIC:[1,1,1,1,1,1,1,4,1],THAPTYGIC:[1,1,1,1,1,1,4,1,1],EPORYGIC:[1,1,1,1,1,4,1,1,1],AERYNYGIC:[1,1,1,1,4,1,1,1,1],THYPTYGIC:[1,1,1,4,1,1,1,1,1],IONOGYGIC:[1,1,4,1,1,1,1,1,1],AEOLARYGIC:[1,4,1,1,1,1,1,1,1],SATHYGIC:[3,2,1,1,1,1,1,1,1],LADYGIC:[2,1,1,1,1,1,1,1,3],SARYGIC:[1,1,1,1,1,1,1,3,2],THACRYGIC:[1,1,1,1,1,1,3,2,1],AEOLYNYGIC:[1,1,1,1,1,3,2,1,1],THADYGIC:[1,1,1,1,3,2,1,1,1],LYNYGIC:[1,1,1,3,2,1,1,1,1],DOPTYGIC:[1,1,3,2,1,1,1,1,1],IONILYGIC:[1,3,2,1,1,1,1,1,1],PHRYGIC:[3,1,2,1,1,1,1,1,1],AERANYGIC:[1,2,1,1,1,1,1,1,3],DOTHYGIC:[2,1,1,1,1,1,1,3,1],LYDYGIC:[1,1,1,1,1,1,3,1,2],STADYGIC:[1,1,1,1,1,3,1,2,1],BYPTYGIC:[1,1,1,1,3,1,2,1,1],STODYGIC:[1,1,1,3,1,2,1,1,1],ZYNYGIC:[1,1,3,1,2,1,1,1,1],LONYGIC:[1,3,1,2,1,1,1,1,1],ZOTHYGIC:[3,1,1,1,1,1,1,2,1],AEOLATHYGIC:[1,1,1,1,1,1,2,1,3],AEOLOCRYGIC:[1,1,1,1,1,2,1,3,1],PHROPTYGIC:[1,1,1,1,2,1,3,1,1],KODYGIC:[1,1,1,2,1,3,1,1,1],EPARYGIC:[1,1,2,1,3,1,1,1,1],IONYGIC:[1,2,1,3,1,1,1,1,1],GYPTYGIC:[2,1,3,1,1,1,1,1,1],AERYTHYGIC:[1,3,1,1,1,1,1,1,2],AEOLACRYGIC:[3,1,1,1,1,1,1,1,2],RAPTYGIC:[1,1,1,1,1,1,1,2,3],GYTHYGIC:[1,1,1,1,1,1,2,3,1],PYRYGIC:[1,1,1,1,1,2,3,1,1],RYCRYGIC:[1,1,1,1,2,3,1,1,1],PHRATHYGIC:[1,1,1,2,3,1,1,1,1],BADYGIC:[1,1,2,3,1,1,1,1,1],PHROCRYGIC:[1,2,3,1,1,1,1,1,1],STARYGIC:[2,3,1,1,1,1,1,1,1],KYRYGIC:[2,2,2,1,1,1,1,1,1],SYTHYGIC:[2,2,1,1,1,1,1,1,2],KATYCRYGIC:[2,1,1,1,1,1,1,2,2],THARYGIC:[1,1,1,1,1,1,2,2,2],SYLYGIC:[1,1,1,1,1,2,2,2,1],LOTHYGIC:[1,1,1,1,2,2,2,1,1],DARYGIC:[1,1,1,2,2,2,1,1,1],MONYGIC:[1,1,2,2,2,1,1,1,1],STYRYGIC:[1,2,2,2,1,1,1,1,1],PORYGIC:[2,2,1,1,2,1,1,1,1],MOCRYGIC:[2,1,1,2,1,1,1,1,2],AEOLYRYGIC:[1,1,2,1,1,1,1,2,2],BARYGIC:[1,2,1,1,1,1,2,2,1],KATARYGIC:[2,1,1,1,1,2,2,1,1],AEROCRYGIC:[1,1,1,1,2,2,1,1,2],ZANYGIC:[1,1,1,2,2,1,1,2,1],AEOLONYGIC:[1,1,2,2,1,1,2,1,1],AEOLANYGIC:[1,2,2,1,1,2,1,1,1],KAPTYGIC:[2,2,1,1,1,1,2,1,1],SACRYGIC:[2,1,1,1,1,2,1,1,2],PADYGIC:[1,1,1,1,2,1,1,2,2],EPILYGIC:[1,1,1,2,1,1,2,2,1],KYNYGIC:[1,1,2,1,1,2,2,1,1],STOPHYGIC:[1,2,1,1,2,2,1,1,1],IONIDYGIC:[2,1,1,2,2,1,1,1,1],STONYGIC:[1,1,2,2,1,1,1,1,2],STALYGIC:[1,2,2,1,1,1,1,2,1],KOPTYGIC:[2,1,2,1,2,1,1,1,1],RAPHYGIC:[1,2,1,2,1,1,1,1,2],ZYCRYGIC:[2,1,2,1,1,1,1,2,1],MYCRYGIC:[1,2,1,1,1,1,2,1,2],LAPTYGIC:[2,1,1,1,1,2,1,2,1],PYLYGIC:[1,1,1,1,2,1,2,1,2],RODYGIC:[1,1,1,2,1,2,1,2,1],EPOLYGIC:[1,1,2,1,2,1,2,1,1],EPIDYGIC:[1,2,1,2,1,2,1,1,1],PHRONYGIC:[2,1,1,2,1,1,2,1,1],STYNYGIC:[1,1,2,1,1,2,1,1,2],ZYDYGIC:[1,2,1,1,2,1,1,2,1],AERYCRYLLIAN:[2,1,1,1,2,1,1,1,1,1],GADYLLIAN:[1,1,1,2,1,1,1,1,1,2],SOLYLLIAN:[1,1,2,1,1,1,1,1,2,1],ZYPHYLLIAN:[1,2,1,1,1,1,1,2,1,1],GARYLLIAN:[2,1,1,1,1,1,2,1,1,1],SORYLLIAN:[1,1,1,1,1,2,1,1,1,2],GODYLLIAN:[1,1,1,1,2,1,1,1,2,1],EPITYLLIAN:[1,1,1,2,1,1,1,2,1,1],IONYLLIAN:[1,1,2,1,1,1,2,1,1,1],AEORYLLIAN:[1,2,1,1,1,2,1,1,1,1],KATORYLLIAN:[3,1,1,1,1,1,1,1,1,1],DODYLLIAN:[1,1,1,1,1,1,1,1,1,3],ZOGYLLIAN:[1,1,1,1,1,1,1,1,3,1],MADYLLIAN:[1,1,1,1,1,1,1,3,1,1],DYCRYLLIAN:[1,1,1,1,1,1,3,1,1,1],AEOGYLLIAN:[1,1,1,1,1,3,1,1,1,1],DYDYLLIAN:[1,1,1,1,3,1,1,1,1,1],THOGYLLIAN:[1,1,1,3,1,1,1,1,1,1],RYGYLLIAN:[1,1,3,1,1,1,1,1,1,1],BATHYLLIAN:[1,3,1,1,1,1,1,1,1,1],SYDYLLIAN:[2,2,1,1,1,1,1,1,1,1],KATOGYLLIAN:[2,1,1,1,1,1,1,1,1,2],MIXODYLLIAN:[1,1,1,1,1,1,1,1,2,2],AERADYLLIAN:[1,1,1,1,1,1,1,2,2,1],RYPTYLLIAN:[1,1,1,1,1,1,2,2,1,1],LOPTYLLIAN:[1,1,1,1,1,2,2,1,1,1],KATAPHYLLIAN:[1,1,1,1,2,2,1,1,1,1],PHRADYLLIAN:[1,1,1,2,2,1,1,1,1,1],DAGYLLIAN:[1,1,2,2,1,1,1,1,1,1],KATYLLIAN:[1,2,2,1,1,1,1,1,1,1],GOTHYLLIAN:[2,1,2,1,1,1,1,1,1,1],LYTHYLLIAN:[1,2,1,1,1,1,1,1,1,2],BACRYLLIAN:[2,1,1,1,1,1,1,1,2,1],AERYGYLLIAN:[1,1,1,1,1,1,1,2,1,2],DATHYLLIAN:[1,1,1,1,1,1,2,1,2,1],BOPTYLLIAN:[1,1,1,1,1,2,1,2,1,1],BAGYLLIAN:[1,1,1,1,2,1,2,1,1,1],MATHYLLIAN:[1,1,1,2,1,2,1,1,1,1],STYPTYLLIAN:[1,1,2,1,2,1,1,1,1,1],ZOLYLLIAN:[1,2,1,2,1,1,1,1,1,1],STAPTYLLIAN:[2,1,1,2,1,1,1,1,1,1],DANYLLIAN:[1,1,2,1,1,1,1,1,1,2],GOPTYLLIAN:[1,2,1,1,1,1,1,1,2,1],EPOCRYLLIAN:[2,1,1,1,1,1,1,2,1,1],ROCRYLLIAN:[1,1,1,1,1,1,2,1,1,2],ZYRYLLIAN:[1,1,1,1,1,2,1,1,2,1],SAGYLLIAN:[1,1,1,1,2,1,1,2,1,1],EPINYLLIAN:[1,1,1,2,1,1,2,1,1,1],KATAGYLLIAN:[1,1,2,1,1,2,1,1,1,1],RAGYLLIAN:[1,2,1,1,2,1,1,1,1,1],THYDYLLIAN:[2,1,1,1,1,2,1,1,1,1],EPIRYLLIAN:[1,1,1,1,2,1,1,1,1,2],LYRYLLIAN:[1,1,1,2,1,1,1,1,2,1],MOGYLLIAN:[1,1,2,1,1,1,1,2,1,1],KATODYLLIAN:[1,2,1,1,1,1,2,1,1,1],AERYCRATIC:[2,1,1,1,1,1,1,1,1,1,1],MONATIC:[1,1,1,1,1,1,1,1,1,1,2],SOLATIC:[1,1,1,1,1,1,1,1,1,2,1],ZYLATIC:[1,1,1,1,1,1,1,1,2,1,1],MIXOLATIC:[1,1,1,1,1,1,1,2,1,1,1],SORATIC:[1,1,1,1,1,1,2,1,1,1,1],GODATIC:[1,1,1,1,1,2,1,1,1,1,1],EPTATIC:[1,1,1,1,2,1,1,1,1,1,1],IONATIC:[1,1,1,2,1,1,1,1,1,1,1],AEOLATIC:[1,1,2,1,1,1,1,1,1,1,1],THYDATIC:[1,2,1,1,1,1,1,1,1,1,1],CHROMATIC:[1,1,1,1,1,1,1,1,1,1,1,1]}},yl=$k(),qk=()=>{const n=Object.keys(yl),e=n[Math.floor(Math.random()*n.length)];return yl[e]},Zi=n=>yl[n.toUpperCase()],Dm=n=>n.toUpperCase()in yl,Nh=(n="")=>{let e=0,t=0,r=0,i=0;function a(){const s=(e^e<<11)>>>0;return e=t,t=r,r=i,i^=(i>>>19^s^s>>>8)>>>0,(i>>>0)/4294967296}for(let s=0;sArray.isArray(n)?n.map(e=>Al(e)):n&&typeof n=="object"?Object.getOwnPropertyNames(n).reduce((e,t)=>(Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t)),e[t]=Al(n[t]),e),Object.create(Object.getPrototypeOf(n))):n,Vk=n=>{try{return new Function(`"use strict";return (${n})`)()}catch(e){throw new Error(`Error in eval: ${e}`)}},By=function(){function n(i,a){function s(){this.constructor=i}s.prototype=a.prototype,i.prototype=new s}function e(i,a,s,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=a,l.found=s,l.location=o,l.name="SyntaxError",l}n(e,Error);function t(i,a,s){return s=s||" ",i.length>a?i:(a-=i.length,s+=s.repeat(a),i+s.slice(0,a))}e.prototype.format=function(i){var a="Error: "+this.message;if(this.location){var s=null,o;for(o=0;o `+d+`
`+m+` |
`+u.line+" | "+g+`
`+m+" | "+t("",l.column-1," ")+t("",v,"^")}else a+=`
at `+d}return a},e.buildMessage=function(i,a){var s={literal:function(g){return'"'+l(g.text)+'"'},class:function(g){var b=g.parts.map(function(v){return Array.isArray(v)?u(v[0])+"-"+u(v[1]):u(v)});return"["+(g.inverted?"^":"")+b.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(g){return g.description}};function o(g){return g.charCodeAt(0).toString(16).toUpperCase()}function l(g){return 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(b){return"\\x0"+o(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+o(b)})}function u(g){return g.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(b){return"\\x0"+o(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+o(b)})}function d(g){return s[g.type](g)}function f(g){var b=g.map(d),v,y;if(b.sort(),b.length>0){for(v=1,y=1;v",X="[",p="+",E="*",O="%",A="&",D="|",M="<<",w=">>",B=/^[' '\t\r\n]/,re=/^[0-9]/,ie=en(["'"," ","'"," ","\r",`
-`],!1,!1),j=bt("(",!1),J=bt(",",!1),L=bt(")",!1),G=en([["0","9"]],!1,!1),Z=bt(".",!1),z=bt("-",!1),ce=bt("/",!1),ue=bt("\\",!1),Te=bt("<",!1),Pe=bt(">",!1),Ve=bt("[",!1),Re=bt("+",!1),Ie=bt("*",!1),le=bt("%",!1),Me=bt("&",!1),je=bt("|",!1),He=bt("<<",!1),rt=bt(">>",!1),ft=function(Y){return Zk(Y.filter(ee=>ee))},Ct=function(){},Vt=function(Y,ee){return Math.floor(Math.random()*(ee-Y+1)+Y)},ht=function(Y,ee){return Math.random()*(ee-Y)+Y},Nt=function(){return parseFloat(ot())},kt=function(){return parseInt(ot())},Qr=function(Y){return Fy(Y)},Fe=function(Y,ee){return Y/ee},Mr=function(Y,ee){return Math.pow(2,Y/ee)},st=function(Y,ee,se,fe){var Se=fe?se/fe:se;return Math.pow(Se,Y/ee)},$e=function(Y,ee){return parseFloat(Y.toString()+"."+ee.toString())},Pr=function(Y){return Y.filter(ee=>ee)},nr=function(Y){return Xk(Y)},mr=function(){return qk(ot())},V=0,he=0,ve=[{line:1,column:1}],Ce=0,Ke=[],Ee={},Gt;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');u=l[a.startRule]}function ot(){return i.substring(he,V)}function bt(Y,ee){return{type:"literal",text:Y,ignoreCase:ee}}function en(Y,ee,se){return{type:"class",parts:Y,inverted:ee,ignoreCase:se}}function lt(){return{type:"end"}}function Wt(Y){var ee=ve[Y],se;if(ee)return ee;for(se=Y-1;!ve[se];)se--;for(ee=ve[se],ee={line:ee.line,column:ee.column};seCe&&(Ce=V,Ke=[]),Ke.push(Y))}function H(Y,ee,se){return new e(e.buildMessage(Y,ee),Y,ee,se)}function Ot(){var Y,ee,se,fe=V*17+0,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=Tr(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt())))),se!==s)for(;se!==s;)ee.push(se),se=Tr(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt()))));else ee=s;return ee!==s&&(he=Y,ee=ft(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function nt(){var Y,ee,se=V*17+1,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,B.test(i.charAt(V))?(ee=i.charAt(V),V++):(ee=s,we(ie)),ee!==s&&(he=Y,ee=Ct()),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function Qt(){var Y,ee=V*17+2,se=Ee[ee];return se?(V=se.nextPos,se.result):(Y=Ge(),Y===s&&(Y=Dt(),Y===s&&(Y=cr(),Y===s&&(Y=ze()))),Ee[ee]={nextPos:V,result:Y},Y)}function cr(){var Y,ee,se,fe,Se,xe,ye=V*17+3,dt=Ee[ye];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Dt(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Dt(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=Vt(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[ye]={nextPos:V,result:Y},Y)}function ze(){var Y,ee,se,fe,Se,xe,ye=V*17+4,dt=Ee[ye];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Ge(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Ge(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=ht(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[ye]={nextPos:V,result:Y},Y)}function Ge(){var Y,ee,se,fe,Se,xe,ye,dt=V*17+5,_r=Ee[dt];if(_r)return V=_r.nextPos,_r.result;if(Y=V,ee=V,se=[],re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G)),fe!==s)for(;fe!==s;)se.push(fe),re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G));else se=s;if(se!==s?(i.charCodeAt(V)===46?(fe=g,V++):(fe=s,we(Z)),fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)):(V=ee,ee=s),ee===s){for(ee=V,i.charCodeAt(V)===45?(se=b,V++):(se=s,we(z)),se===s&&(se=null),fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));if(i.charCodeAt(V)===46?(Se=g,V++):(Se=s,we(Z)),Se!==s){if(xe=[],re.test(i.charAt(V))?(ye=i.charAt(V),V++):(ye=s,we(G)),ye!==s)for(;ye!==s;)xe.push(ye),re.test(i.charAt(V))?(ye=i.charAt(V),V++):(ye=s,we(G));else xe=s;xe!==s?(se=[se,fe,Se,xe],ee=se):(V=ee,ee=s)}else V=ee,ee=s;if(ee===s)if(ee=V,i.charCodeAt(V)===46?(se=g,V++):(se=s,we(Z)),se!==s){if(fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G)),Se!==s)for(;Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));else fe=s;fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)}else V=ee,ee=s}return ee!==s&&(he=Y,ee=Nt()),Y=ee,Ee[dt]={nextPos:V,result:Y},Y}function Dt(){var Y,ee,se,fe=V*17+6,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,i.charCodeAt(V)===45?V++:we(z),ee=[],re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G)),se!==s)for(;se!==s;)ee.push(se),re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G));else ee=s;return ee!==s?(he=Y,Y=kt()):(V=Y,Y=s),Ee[fe]={nextPos:V,result:Y},Y}function Tr(){var Y,ee,se=V*17+7,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,ee=$n(),ee===s&&(ee=vt(),ee===s&&(ee=yi(),ee===s&&(ee=tn()))),ee!==s&&(he=Y,ee=Qr(ee)),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function yi(){var Y,ee,se,fe,Se=V*17+8,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===47?(se=v,V++):(se=s,we(ce)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Fe(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function vt(){var Y,ee,se,fe,Se=V*17+9,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=y,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Mr(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $n(){var Y,ee,se,fe,Se,xe,ye,dt,_r=V*17+10,$r=Ee[_r];return $r?(V=$r.nextPos,$r.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=y,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(i.charCodeAt(V)===60?(Se=N,V++):(Se=s,we(Te)),Se!==s?(xe=Dt(),xe===s&&(xe=cr()),xe!==s?(i.charCodeAt(V)===47?V++:we(ce),ye=Dt(),ye===s&&(ye=cr()),ye===s&&(ye=null),i.charCodeAt(V)===62?(dt=F,V++):(dt=s,we(Pe)),dt!==s?(he=Y,Y=st(ee,fe,xe,ye)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[_r]={nextPos:V,result:Y},Y)}function tn(){var Y,ee,se,fe,Se=V*17+11,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee!==s?(i.charCodeAt(V)===44?(se=f,V++):(se=s,we(J)),se!==s?(fe=Dt(),fe!==s?(he=Y,Y=$e(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function qn(){var Y,ee,se,fe=V*17+12,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=Dt(),se===s&&(se=nt()),se!==s)for(;se!==s;)ee.push(se),se=Dt(),se===s&&(se=nt());else ee=s;return ee!==s&&(he=Y,ee=Pr(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function rn(){var Y,ee,se,fe,Se=V*17+13,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===91?(ee=X,V++):(ee=s,we(Ve)),ee!==s?(se=qn(),se!==s?(i.charCodeAt(V)===62?(fe=F,V++):(fe=s,we(Pe)),fe!==s?(he=Y,Y=nr(se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $t(){var Y,ee,se,fe,Se,xe,ye,dt,_r=V*17+14,$r=Ee[_r];if($r)return V=$r.nextPos,$r.result;if(Y=V,ee=Qt(),ee===s&&(ee=Tr(),ee===s&&(ee=rn(),ee===s)))for(ee=[],se=nt();se!==s;)ee.push(se),se=nt();if(ee!==s){if(se=[],fe=V,Se=We(),Se!==s){for(xe=[],ye=nt();ye!==s;)xe.push(ye),ye=nt();if(ye=Qt(),ye===s&&(ye=Tr(),ye===s&&(ye=rn(),ye===s&&(ye=ni(),ye===s&&(ye=$t(),ye===s)))))for(ye=[],dt=nt();dt!==s;)ye.push(dt),dt=nt();ye!==s?(Se=[Se,xe,ye],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;if(fe!==s)for(;fe!==s;)if(se.push(fe),fe=V,Se=We(),Se!==s){for(xe=[],ye=nt();ye!==s;)xe.push(ye),ye=nt();if(ye=Qt(),ye===s&&(ye=Tr(),ye===s&&(ye=rn(),ye===s&&(ye=ni(),ye===s&&(ye=$t(),ye===s)))))for(ye=[],dt=nt();dt!==s;)ye.push(dt),dt=nt();ye!==s?(Se=[Se,xe,ye],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;else se=s;se!==s?(he=Y,Y=mr()):(V=Y,Y=s)}else V=Y,Y=s;return Ee[_r]={nextPos:V,result:Y},Y}function We(){var Y,ee=V*17+15,se=Ee[ee];return se?(V=se.nextPos,se.result):(i.charCodeAt(V)===43?(Y=p,V++):(Y=s,we(Re)),Y===s&&(i.charCodeAt(V)===45?(Y=b,V++):(Y=s,we(z)),Y===s&&(i.charCodeAt(V)===42?(Y=E,V++):(Y=s,we(Ie)),Y===s&&(i.charCodeAt(V)===37?(Y=O,V++):(Y=s,we(le)),Y===s&&(i.charCodeAt(V)===38?(Y=A,V++):(Y=s,we(Me)),Y===s&&(i.charCodeAt(V)===124?(Y=D,V++):(Y=s,we(je)),Y===s&&(i.substr(V,2)===M?(Y=M,V+=2):(Y=s,we(He)),Y===s&&(i.substr(V,2)===w?(Y=w,V+=2):(Y=s,we(rt))))))))),Ee[ee]={nextPos:V,result:Y},Y)}function ni(){var Y,ee,se,fe,Se=V*17+16,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=$t(),se!==s?(i.charCodeAt(V)===41?(fe=m,V++):(fe=s,we(L)),fe!==s?(ee=[ee,se,fe],Y=ee):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}if(Gt=u(),Gt!==s&&V===i.length)return Gt;throw Gt!==s&&V{e=a&&e>0?e-1:e,n=typeof n=="string"?Vk(n):n;const s=typeof t=="string"?Zi(t):t,o=s.length;(e>=o||e<0)&&(r+=Math.floor(e/o),e=e<0?o-Math.abs(e)%o:e%o,e===o&&(e=0));let l=n+s.slice(0,e).reduce((u,d)=>u+d,0);return l=l+r*s.reduce((u,d)=>u+d,0)+i,Number.isInteger(l)?[l,void 0]:Uy(l)},Vk=n=>{const e=n.match(/^([a-gA-G])([#bs])?([1-9])?$/);if(e===null)return 60;const[,t,r,i]=e,a=i?parseInt(i,10):4,s=Gk[r]||0,o=Yk[t.toUpperCase()];return 12+a*12+o+s},Uy=(n,e=1)=>{let t=8192;if(n%1!==0){const r=n>Math.round(n)?n:Math.round(n),i=n>Math.round(n)?Math.round(n):n,a=Ps(r)/Ps(i),s=1200*Math.log2(a);t=t+Math.floor(8191*(s/(100*e)))}return[n,t]},Ps=n=>440/32*2**((n-9)/12),Hk=n=>12/Math.log(2)*Math.log(n/440)+69,Fy=n=>1200*Math.log2(n),zk=function*(){var t;const n={};let e=2;for(;;){if(!(e in n))yield e,n[e*e]=[e];else{for(const r of n[e])(n[t=r+e]||(n[t]=[])).push(r);delete n[e]}e++}},Wk=n=>{const e=zk();return Array.from({length:n},()=>e.next().value)},Xk=n=>{const e=n.length,t=Wk(e+1);let r=1;for(let i=0;i{n[0]!==0&&(n=[0,...n]);const e=[];for(let t=0;ttypeof n=="string"?Zi(n).length:n.length,jk=n=>((n<0||n>4095)&&(console.log("Input number must be odd and between 0 and 4095. Using major (2741) instead."),n=2741),n%2===0&&console.log("Odd number doesnt create real scale"),(n>>>0).toString(2).padStart(12,"0").split("").reduce((t,r,i)=>r==="1"?[11-i,...t]:t,[])),Jk=n=>{try{return wm(n)}catch{return[]}},eM=n=>{if(typeof n=="string"){if(Dm(n))return Zi(n);{const e=Jk(n);return e&&e.length>0?e:Zi("MAJOR")}}else if(typeof n=="number")return jk(n);return n},tM=["retrograde"];class Ji{constructor(e){I(this,"type");I(this,"text");I(this,"location");this.type=this.constructor.name,Object.assign(this,e)}clone(){return Al(this)}collect(e){return this[e]}refresh(){}evaluate(e={}){}}let Xl=class extends Ji{constructor(t){super(t);I(this,"duration");I(this,"_next");I(this,"_prev");I(this,"modifiedEvent");I(this,"globalOptions");Object.assign(this,t)}next(){return this._next}previous(){return this._prev}collect(t){return this[t]}sometimesBy(t,r){return Math.random()(Object.prototype.hasOwnProperty.call(this,a)&&(i[a]=this[a]),i),{})}};class Ki extends Xl{constructor(t){super(t);I(this,"pitch");I(this,"freq");I(this,"note");I(this,"octave");I(this,"bend");I(this,"key");I(this,"parsedScale");I(this,"scaleName");Object.assign(this,t)}static createTracked(t){const r={set(a,s,o){return a[s]!==o&&(a[s]=o,(s==="pitch"||s==="key"||s==="parsedScale"||s==="octave")&&(console.log(`${s} has changed to ${o}`),a.refresh())),!0}},i=new Ki(t);return new Proxy(i,r)}refresh(){this.evaluate()}evaluate(t={}){t.octave&&(this.octave=t.octave+(this.octave||0)),(t.duration||t.duration===0)&&(this.duration=t.duration),t.scale&&(this.parsedScale=eM(t.scale)),t.key&&(this.key=t.key);const[r,i]=xm(this.key,this.pitch,this.parsedScale,this.octave);return this.note=r,this.freq=Ps(this.note),i&&(this.bend=i),this}collect(t){return this[t]}scale(t){return this.scaleName!==t?(this.scaleName=t,this.parsedScale=Zi(t),this.evaluate()):this}randomScale(){return this.parsedScale=$k(),this.evaluate()}}class rM extends Xl{constructor(t){super(t);I(this,"pitches");Object.assign(this,t),this.duration=Math.max(...this.pitches.map(r=>r.duration))}evaluate(t={}){return this.pitches.map(r=>r.evaluate(t))}collect(t){return this.pitches.map(i=>i.collect(t))}scale(t){return this.pitches.forEach(r=>r.scale(t)),this}}let Dh=class extends Xl{constructor(e){super(e)}evaluate(e={}){return e.duration&&(this.duration=e.duration),this}};class FS extends Ki{constructor(t){super(t);I(this,"min");I(this,"max");I(this,"randomSeed");I(this,"seededRandom");I(this,"random");Object.assign(this,t),t.min||(this.min=0),t.max||(this.max=Kk(this.parsedScale)),this.seededRandom?this.random=this.seededRandom:this.random=Math.random}evaluate(t={}){const r=this.random();return this.pitch=Math.floor(r*(this.max-this.min+1))+this.min,new Ki(this).evaluate(t)}}class nM extends Ji{constructor(t){super(t);I(this,"octave");Object.assign(this,t)}evaluate(t={}){t.octave=this.octave+(t.octave||0)}}class iM extends Ji{constructor(t){super(t);I(this,"duration");Object.assign(this,t)}evaluate(t={}){t.duration=this.duration}}class aM extends Ji{constructor(t){super(t);I(this,"times");I(this,"item");Object.assign(this,t)}evaluate(t={}){return[...Array(this.times)].map(()=>this.item).flat(1/0).map(i=>i.evaluate(t))}}class sM extends Ji{constructor(t){super(t);I(this,"items");Object.assign(this,t)}evaluate(t={}){return this.items.map(r=>r.evaluate(t))}}class oM extends Ji{constructor(t){super(t);I(this,"left");I(this,"right");I(this,"operation");Object.assign(this,t)}evaluate(t={}){this.left.evaluate(t),this.right.evaluate(t);const r=Bk[this.operation];return this.right.items.flatMap(s=>this.left.items.map(o=>[s.clone(),o.clone()])).map(s=>(s[0].pitch=r(s[0].pitch,s[1].pitch),s[0].evaluate(t)))}}class Lm extends Xl{constructor(t){super(t);I(this,"items");I(this,"index");Object.assign(this,t),this.index=0}nextItem(t={}){let r=this.items[this.index%this.items.length];for(;r instanceof Lm;)r=r.nextItem(t);return this.index=this.index+1,r instanceof Ji?r.evaluate(t):r}evaluate(t={}){return this.nextItem(t)}}const Yy=function(){function n(i,a){function s(){this.constructor=i}s.prototype=a.prototype,i.prototype=new s}function e(i,a,s,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=a,l.found=s,l.location=o,l.name="SyntaxError",l}n(e,Error);function t(i,a,s){return s=s||" ",i.length>a?i:(a-=i.length,s+=s.repeat(a),i+s.slice(0,a))}e.prototype.format=function(i){var a="Error: "+this.message;if(this.location){var s=null,o;for(o=0;o",!1),Ve=bt("[",!1),Re=bt("+",!1),Ie=bt("*",!1),le=bt("%",!1),Me=bt("&",!1),je=bt("|",!1),He=bt("<<",!1),rt=bt(">>",!1),ft=function(Y){return Kk(Y.filter(ee=>ee))},Ct=function(){},Vt=function(Y,ee){return Math.floor(Math.random()*(ee-Y+1)+Y)},ht=function(Y,ee){return Math.random()*(ee-Y)+Y},Nt=function(){return parseFloat(ot())},kt=function(){return parseInt(ot())},Qr=function(Y){return Fy(Y)},Fe=function(Y,ee){return Y/ee},Mr=function(Y,ee){return Math.pow(2,Y/ee)},st=function(Y,ee,se,fe){var Se=fe?se/fe:se;return Math.pow(Se,Y/ee)},$e=function(Y,ee){return parseFloat(Y.toString()+"."+ee.toString())},Pr=function(Y){return Y.filter(ee=>ee)},nr=function(Y){return Zk(Y)},mr=function(){return Vk(ot())},V=0,he=0,ve=[{line:1,column:1}],Ce=0,Ke=[],Ee={},Gt;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');u=l[a.startRule]}function ot(){return i.substring(he,V)}function bt(Y,ee){return{type:"literal",text:Y,ignoreCase:ee}}function en(Y,ee,se){return{type:"class",parts:Y,inverted:ee,ignoreCase:se}}function lt(){return{type:"end"}}function Wt(Y){var ee=ve[Y],se;if(ee)return ee;for(se=Y-1;!ve[se];)se--;for(ee=ve[se],ee={line:ee.line,column:ee.column};seCe&&(Ce=V,Ke=[]),Ke.push(Y))}function H(Y,ee,se){return new e(e.buildMessage(Y,ee),Y,ee,se)}function Ot(){var Y,ee,se,fe=V*17+0,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=Tr(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt())))),se!==s)for(;se!==s;)ee.push(se),se=Tr(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt()))));else ee=s;return ee!==s&&(he=Y,ee=ft(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function nt(){var Y,ee,se=V*17+1,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,B.test(i.charAt(V))?(ee=i.charAt(V),V++):(ee=s,we(ie)),ee!==s&&(he=Y,ee=Ct()),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function Qt(){var Y,ee=V*17+2,se=Ee[ee];return se?(V=se.nextPos,se.result):(Y=Ge(),Y===s&&(Y=Dt(),Y===s&&(Y=cr(),Y===s&&(Y=ze()))),Ee[ee]={nextPos:V,result:Y},Y)}function cr(){var Y,ee,se,fe,Se,xe,ye=V*17+3,dt=Ee[ye];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Dt(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Dt(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=Vt(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[ye]={nextPos:V,result:Y},Y)}function ze(){var Y,ee,se,fe,Se,xe,ye=V*17+4,dt=Ee[ye];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Ge(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Ge(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=ht(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[ye]={nextPos:V,result:Y},Y)}function Ge(){var Y,ee,se,fe,Se,xe,ye,dt=V*17+5,_r=Ee[dt];if(_r)return V=_r.nextPos,_r.result;if(Y=V,ee=V,se=[],re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G)),fe!==s)for(;fe!==s;)se.push(fe),re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G));else se=s;if(se!==s?(i.charCodeAt(V)===46?(fe=g,V++):(fe=s,we(Z)),fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)):(V=ee,ee=s),ee===s){for(ee=V,i.charCodeAt(V)===45?(se=b,V++):(se=s,we(z)),se===s&&(se=null),fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));if(i.charCodeAt(V)===46?(Se=g,V++):(Se=s,we(Z)),Se!==s){if(xe=[],re.test(i.charAt(V))?(ye=i.charAt(V),V++):(ye=s,we(G)),ye!==s)for(;ye!==s;)xe.push(ye),re.test(i.charAt(V))?(ye=i.charAt(V),V++):(ye=s,we(G));else xe=s;xe!==s?(se=[se,fe,Se,xe],ee=se):(V=ee,ee=s)}else V=ee,ee=s;if(ee===s)if(ee=V,i.charCodeAt(V)===46?(se=g,V++):(se=s,we(Z)),se!==s){if(fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G)),Se!==s)for(;Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));else fe=s;fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)}else V=ee,ee=s}return ee!==s&&(he=Y,ee=Nt()),Y=ee,Ee[dt]={nextPos:V,result:Y},Y}function Dt(){var Y,ee,se,fe=V*17+6,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,i.charCodeAt(V)===45?V++:we(z),ee=[],re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G)),se!==s)for(;se!==s;)ee.push(se),re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G));else ee=s;return ee!==s?(he=Y,Y=kt()):(V=Y,Y=s),Ee[fe]={nextPos:V,result:Y},Y}function Tr(){var Y,ee,se=V*17+7,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,ee=$n(),ee===s&&(ee=vt(),ee===s&&(ee=yi(),ee===s&&(ee=tn()))),ee!==s&&(he=Y,ee=Qr(ee)),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function yi(){var Y,ee,se,fe,Se=V*17+8,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===47?(se=v,V++):(se=s,we(ce)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Fe(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function vt(){var Y,ee,se,fe,Se=V*17+9,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=y,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Mr(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $n(){var Y,ee,se,fe,Se,xe,ye,dt,_r=V*17+10,$r=Ee[_r];return $r?(V=$r.nextPos,$r.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=y,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(i.charCodeAt(V)===60?(Se=N,V++):(Se=s,we(Te)),Se!==s?(xe=Dt(),xe===s&&(xe=cr()),xe!==s?(i.charCodeAt(V)===47?V++:we(ce),ye=Dt(),ye===s&&(ye=cr()),ye===s&&(ye=null),i.charCodeAt(V)===62?(dt=F,V++):(dt=s,we(Pe)),dt!==s?(he=Y,Y=st(ee,fe,xe,ye)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[_r]={nextPos:V,result:Y},Y)}function tn(){var Y,ee,se,fe,Se=V*17+11,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee!==s?(i.charCodeAt(V)===44?(se=f,V++):(se=s,we(J)),se!==s?(fe=Dt(),fe!==s?(he=Y,Y=$e(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function qn(){var Y,ee,se,fe=V*17+12,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=Dt(),se===s&&(se=nt()),se!==s)for(;se!==s;)ee.push(se),se=Dt(),se===s&&(se=nt());else ee=s;return ee!==s&&(he=Y,ee=Pr(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function rn(){var Y,ee,se,fe,Se=V*17+13,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===91?(ee=X,V++):(ee=s,we(Ve)),ee!==s?(se=qn(),se!==s?(i.charCodeAt(V)===62?(fe=F,V++):(fe=s,we(Pe)),fe!==s?(he=Y,Y=nr(se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $t(){var Y,ee,se,fe,Se,xe,ye,dt,_r=V*17+14,$r=Ee[_r];if($r)return V=$r.nextPos,$r.result;if(Y=V,ee=Qt(),ee===s&&(ee=Tr(),ee===s&&(ee=rn(),ee===s)))for(ee=[],se=nt();se!==s;)ee.push(se),se=nt();if(ee!==s){if(se=[],fe=V,Se=We(),Se!==s){for(xe=[],ye=nt();ye!==s;)xe.push(ye),ye=nt();if(ye=Qt(),ye===s&&(ye=Tr(),ye===s&&(ye=rn(),ye===s&&(ye=ni(),ye===s&&(ye=$t(),ye===s)))))for(ye=[],dt=nt();dt!==s;)ye.push(dt),dt=nt();ye!==s?(Se=[Se,xe,ye],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;if(fe!==s)for(;fe!==s;)if(se.push(fe),fe=V,Se=We(),Se!==s){for(xe=[],ye=nt();ye!==s;)xe.push(ye),ye=nt();if(ye=Qt(),ye===s&&(ye=Tr(),ye===s&&(ye=rn(),ye===s&&(ye=ni(),ye===s&&(ye=$t(),ye===s)))))for(ye=[],dt=nt();dt!==s;)ye.push(dt),dt=nt();ye!==s?(Se=[Se,xe,ye],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;else se=s;se!==s?(he=Y,Y=mr()):(V=Y,Y=s)}else V=Y,Y=s;return Ee[_r]={nextPos:V,result:Y},Y}function We(){var Y,ee=V*17+15,se=Ee[ee];return se?(V=se.nextPos,se.result):(i.charCodeAt(V)===43?(Y=p,V++):(Y=s,we(Re)),Y===s&&(i.charCodeAt(V)===45?(Y=b,V++):(Y=s,we(z)),Y===s&&(i.charCodeAt(V)===42?(Y=E,V++):(Y=s,we(Ie)),Y===s&&(i.charCodeAt(V)===37?(Y=O,V++):(Y=s,we(le)),Y===s&&(i.charCodeAt(V)===38?(Y=A,V++):(Y=s,we(Me)),Y===s&&(i.charCodeAt(V)===124?(Y=D,V++):(Y=s,we(je)),Y===s&&(i.substr(V,2)===M?(Y=M,V+=2):(Y=s,we(He)),Y===s&&(i.substr(V,2)===w?(Y=w,V+=2):(Y=s,we(rt))))))))),Ee[ee]={nextPos:V,result:Y},Y)}function ni(){var Y,ee,se,fe,Se=V*17+16,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=$t(),se!==s?(i.charCodeAt(V)===41?(fe=m,V++):(fe=s,we(L)),fe!==s?(ee=[ee,se,fe],Y=ee):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}if(Gt=u(),Gt!==s&&V===i.length)return Gt;throw Gt!==s&&V{e=a&&e>0?e-1:e,n=typeof n=="string"?Hk(n):n;const s=typeof t=="string"?Zi(t):t,o=s.length;(e>=o||e<0)&&(r+=Math.floor(e/o),e=e<0?o-Math.abs(e)%o:e%o,e===o&&(e=0));let l=n+s.slice(0,e).reduce((u,d)=>u+d,0);return l=l+r*s.reduce((u,d)=>u+d,0)+i,Number.isInteger(l)?[l,void 0]:Uy(l)},Hk=n=>{const e=n.match(/^([a-gA-G])([#bs])?([1-9])?$/);if(e===null)return 60;const[,t,r,i]=e,a=i?parseInt(i,10):4,s=Qk[r]||0,o=Gk[t.toUpperCase()];return 12+a*12+o+s},Uy=(n,e=1)=>{let t=8192;if(n%1!==0){const r=n>Math.round(n)?n:Math.round(n),i=n>Math.round(n)?Math.round(n):n,a=Ps(r)/Ps(i),s=1200*Math.log2(a);t=t+Math.floor(8191*(s/(100*e)))}return[n,t]},Ps=n=>440/32*2**((n-9)/12),zk=n=>12/Math.log(2)*Math.log(n/440)+69,Fy=n=>1200*Math.log2(n),Wk=function*(){var t;const n={};let e=2;for(;;){if(!(e in n))yield e,n[e*e]=[e];else{for(const r of n[e])(n[t=r+e]||(n[t]=[])).push(r);delete n[e]}e++}},Xk=n=>{const e=Wk();return Array.from({length:n},()=>e.next().value)},Zk=n=>{const e=n.length,t=Xk(e+1);let r=1;for(let i=0;i{n[0]!==0&&(n=[0,...n]);const e=[];for(let t=0;ttypeof n=="string"?Zi(n).length:n.length,Jk=n=>((n<0||n>4095)&&(console.log("Input number must be odd and between 0 and 4095. Using major (2741) instead."),n=2741),n%2===0&&console.log("Odd number doesnt create real scale"),(n>>>0).toString(2).padStart(12,"0").split("").reduce((t,r,i)=>r==="1"?[11-i,...t]:t,[])),eM=n=>{try{return wm(n)}catch{return[]}},tM=n=>{if(typeof n=="string"){if(Dm(n))return Zi(n);{const e=eM(n);return e&&e.length>0?e:Zi("MAJOR")}}else if(typeof n=="number")return Jk(n);return n},rM=["retrograde"];class Ji{constructor(e){I(this,"type");I(this,"text");I(this,"location");this.type=this.constructor.name,Object.assign(this,e)}clone(){return Al(this)}collect(e){return this[e]}refresh(){}evaluate(e={}){}}let Xl=class extends Ji{constructor(t){super(t);I(this,"duration");I(this,"_next");I(this,"_prev");I(this,"modifiedEvent");I(this,"globalOptions");Object.assign(this,t)}next(){return this._next}previous(){return this._prev}collect(t){return this[t]}sometimesBy(t,r){return Math.random()(Object.prototype.hasOwnProperty.call(this,a)&&(i[a]=this[a]),i),{})}};class Ki extends Xl{constructor(t){super(t);I(this,"pitch");I(this,"freq");I(this,"note");I(this,"octave");I(this,"bend");I(this,"key");I(this,"parsedScale");I(this,"scaleName");Object.assign(this,t)}static createTracked(t){const r={set(a,s,o){return a[s]!==o&&(a[s]=o,(s==="pitch"||s==="key"||s==="parsedScale"||s==="octave")&&(console.log(`${s} has changed to ${o}`),a.refresh())),!0}},i=new Ki(t);return new Proxy(i,r)}refresh(){this.evaluate()}evaluate(t={}){t.octave&&(this.octave=t.octave+(this.octave||0)),(t.duration||t.duration===0)&&(this.duration=t.duration),t.scale&&(this.parsedScale=tM(t.scale)),t.key&&(this.key=t.key);const[r,i]=xm(this.key,this.pitch,this.parsedScale,this.octave);return this.note=r,this.freq=Ps(this.note),i&&(this.bend=i),this}collect(t){return this[t]}scale(t){return this.scaleName!==t?(this.scaleName=t,this.parsedScale=Zi(t),this.evaluate()):this}randomScale(){return this.parsedScale=qk(),this.evaluate()}}class nM extends Xl{constructor(t){super(t);I(this,"pitches");Object.assign(this,t),this.duration=Math.max(...this.pitches.map(r=>r.duration))}evaluate(t={}){return this.pitches.map(r=>r.evaluate(t))}collect(t){return this.pitches.map(i=>i.collect(t))}scale(t){return this.pitches.forEach(r=>r.scale(t)),this}}let Dh=class extends Xl{constructor(e){super(e)}evaluate(e={}){return e.duration&&(this.duration=e.duration),this}};class FS extends Ki{constructor(t){super(t);I(this,"min");I(this,"max");I(this,"randomSeed");I(this,"seededRandom");I(this,"random");Object.assign(this,t),t.min||(this.min=0),t.max||(this.max=jk(this.parsedScale)),this.seededRandom?this.random=this.seededRandom:this.random=Math.random}evaluate(t={}){const r=this.random();return this.pitch=Math.floor(r*(this.max-this.min+1))+this.min,new Ki(this).evaluate(t)}}class iM extends Ji{constructor(t){super(t);I(this,"octave");Object.assign(this,t)}evaluate(t={}){t.octave=this.octave+(t.octave||0)}}class aM extends Ji{constructor(t){super(t);I(this,"duration");Object.assign(this,t)}evaluate(t={}){t.duration=this.duration}}class sM extends Ji{constructor(t){super(t);I(this,"times");I(this,"item");Object.assign(this,t)}evaluate(t={}){return[...Array(this.times)].map(()=>this.item).flat(1/0).map(i=>i.evaluate(t))}}class oM extends Ji{constructor(t){super(t);I(this,"items");Object.assign(this,t)}evaluate(t={}){return this.items.map(r=>r.evaluate(t))}}class lM extends Ji{constructor(t){super(t);I(this,"left");I(this,"right");I(this,"operation");Object.assign(this,t)}evaluate(t={}){this.left.evaluate(t),this.right.evaluate(t);const r=Uk[this.operation];return this.right.items.flatMap(s=>this.left.items.map(o=>[s.clone(),o.clone()])).map(s=>(s[0].pitch=r(s[0].pitch,s[1].pitch),s[0].evaluate(t)))}}class Lm extends Xl{constructor(t){super(t);I(this,"items");I(this,"index");Object.assign(this,t),this.index=0}nextItem(t={}){let r=this.items[this.index%this.items.length];for(;r instanceof Lm;)r=r.nextItem(t);return this.index=this.index+1,r instanceof Ji?r.evaluate(t):r}evaluate(t={}){return this.nextItem(t)}}const Yy=function(){function n(i,a){function s(){this.constructor=i}s.prototype=a.prototype,i.prototype=new s}function e(i,a,s,o){var l=Error.call(this,i);return Object.setPrototypeOf&&Object.setPrototypeOf(l,e.prototype),l.expected=a,l.found=s,l.location=o,l.name="SyntaxError",l}n(e,Error);function t(i,a,s){return s=s||" ",i.length>a?i:(a-=i.length,s+=s.repeat(a),i+s.slice(0,a))}e.prototype.format=function(i){var a="Error: "+this.message;if(this.location){var s=null,o;for(o=0;o `+d+`
`+m+` |
`+u.line+" | "+g+`
`+m+" | "+t("",l.column-1," ")+t("",v,"^")}else a+=`
at `+d}return a},e.buildMessage=function(i,a){var s={literal:function(g){return'"'+l(g.text)+'"'},class:function(g){var b=g.parts.map(function(v){return Array.isArray(v)?u(v[0])+"-"+u(v[1]):u(v)});return"["+(g.inverted?"^":"")+b.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(g){return g.description}};function o(g){return g.charCodeAt(0).toString(16).toUpperCase()}function l(g){return 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(b){return"\\x0"+o(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+o(b)})}function u(g){return g.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(b){return"\\x0"+o(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+o(b)})}function d(g){return s[g.type](g)}function f(g){var b=g.map(d),v,y;if(b.sort(),b.length>0){for(v=1,y=1;v>",A="<<",D="<",M=">",w="_",B="?",re=":",ie="r",j=/^[0-9]/,J=/^[ \n\r\t]/,L=/^[mklpdcwyhnqaefsxtgujzo]/,G=vt("-",!1),Z=$n([["0","9"]],!1,!1),z=vt(".",!1),ce=qn("whitespace"),ue=$n([" ",`
-`,"\r"," "],!1,!1),Te=vt(",",!1),Pe=vt("|",!1),Ve=$n(["m","k","l","p","d","c","w","y","h","n","q","a","e","f","s","x","t","g","u","j","z","o"],!1,!1),Re=vt("(",!1),Ie=vt(")",!1),le=vt("+",!1),Me=vt("*",!1),je=vt("/",!1),He=vt("%",!1),rt=vt("^",!1),ft=vt("&",!1),Ct=vt(">>",!1),Vt=vt("<<",!1),ht=vt("<",!1),Nt=vt(">",!1),kt=vt("_",!1),Qr=vt("?",!1),Fe=vt(":",!1),Mr=vt("r",!1),st=function(U){return U.filter(K=>K)},$e=function(){return parseFloat(Tr())},Pr=function(){return parseInt(Tr())},nr=function(){},mr=function(){return Fk[Tr()]},V=function(U){return U.filter(K=>K)},he=function(U){return vr(sM,{items:U})},ve=function(U,K,ae){return vr(oM,{left:U,operation:K,right:ae})},Ce=function(U){return U},Ke=function(U){return vr(Lm,{items:U})},Ee=function(U){return vr(nM,{octave:U})},Gt=function(){return Tr().split("").reduce((U,K)=>U+(K==="^"?1:-1),0)},ot=function(){return vr(FS,{seededRandom:a.seededRandom})},bt=function(U,K){return vr(FS,{min:U,max:K,seededRandom:a.seededRandom})},en=function(U,K){return vr(aM,{item:U,times:K})},lt=function(U){return vr(iM,{duration:U})},Wt=function(U){return vr(Dh,{duration:U})},St=function(U,K,ae){const _e=U?a.nodeOptions.octave+U:a.nodeOptions.octave;return vr(Ki,{duration:K,pitch:ae,octave:_e})},we=function(U,K){return vr(rM,{pitches:[U].concat(K)})},H=0,Ot=0,nt=[{line:1,column:1}],Qt=0,cr=[],ze=0,Ge={},Dt;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');u=l[a.startRule]}function Tr(){return i.substring(Ot,H)}function yi(){return $t(Ot,H)}function vt(U,K){return{type:"literal",text:U,ignoreCase:K}}function $n(U,K,ae){return{type:"class",parts:U,inverted:K,ignoreCase:ae}}function tn(){return{type:"end"}}function qn(U){return{type:"other",description:U}}function rn(U){var K=nt[U],ae;if(K)return K;for(ae=U-1;!nt[ae];)ae--;for(K=nt[ae],K={line:K.line,column:K.column};aeQt&&(Qt=H,cr=[]),cr.push(U))}function ni(U,K,ae){return new e(e.buildMessage(U,K),U,K,ae)}function Y(){var U,K,ae=H*24+0,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=ye(),K!==s&&(Ot=U,K=st(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function ee(){var U,K,ae,_e,Le,Je,yr,An=H*24+1,Ri=Ge[An];if(Ri)return H=Ri.nextPos,Ri.result;for(U=H,K=H,i.charCodeAt(H)===45?(ae=d,H++):(ae=s,ze===0&&We(G)),ae===s&&(ae=null),_e=[],j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z));Le!==s;)_e.push(Le),j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z));if(i.charCodeAt(H)===46?(Le=f,H++):(Le=s,ze===0&&We(z)),Le!==s){if(Je=[],j.test(i.charAt(H))?(yr=i.charAt(H),H++):(yr=s,ze===0&&We(Z)),yr!==s)for(;yr!==s;)Je.push(yr),j.test(i.charAt(H))?(yr=i.charAt(H),H++):(yr=s,ze===0&&We(Z));else Je=s;Je!==s?(ae=[ae,_e,Le,Je],K=ae):(H=K,K=s)}else H=K,K=s;if(K===s)if(K=H,i.charCodeAt(H)===46?(ae=f,H++):(ae=s,ze===0&&We(z)),ae!==s){if(_e=[],j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z)),Le!==s)for(;Le!==s;)_e.push(Le),j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z));else _e=s;_e!==s?(ae=[ae,_e],K=ae):(H=K,K=s)}else H=K,K=s;return K!==s&&(Ot=U,K=$e()),U=K,Ge[An]={nextPos:H,result:U},U}function se(){var U,K,ae=H*24+2,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,i.charCodeAt(H)===45?H++:ze===0&&We(G),j.test(i.charAt(H))?(K=i.charAt(H),H++):(K=s,ze===0&&We(Z)),K!==s?(Ot=U,U=Pr()):(H=U,U=s),Ge[ae]={nextPos:H,result:U},U)}function fe(){var U,K,ae=H*24+3,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(ze++,U=H,J.test(i.charAt(H))?(K=i.charAt(H),H++):(K=s,ze===0&&We(ue)),K!==s&&(Ot=U,K=nr()),U=K,ze--,U===s&&(K=s,ze===0&&We(ce)),Ge[ae]={nextPos:H,result:U},U)}function Se(){var U,K,ae=H*24+7,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,L.test(i.charAt(H))?(K=i.charAt(H),H++):(K=s,ze===0&&We(Ve)),K!==s&&(Ot=U,K=mr()),U=K,Ge[ae]={nextPos:H,result:U},U)}function xe(){var U,K=H*24+8,ae=Ge[K];return ae?(H=ae.nextPos,ae.result):(U=Se(),U===s&&(U=ee()),Ge[K]={nextPos:H,result:U},U)}function ye(){var U,K,ae,_e=H*24+9,Le=Ge[_e];if(Le)return H=Le.nextPos,Le.result;if(U=H,K=[],ae=Ai(),ae===s&&(ae=_r(),ae===s&&(ae=dt(),ae===s&&(ae=ii(),ae===s&&(ae=ai())))),ae!==s)for(;ae!==s;)K.push(ae),ae=Ai(),ae===s&&(ae=_r(),ae===s&&(ae=dt(),ae===s&&(ae=ii(),ae===s&&(ae=ai()))));else K=s;return K!==s&&(Ot=U,K=V(K)),U=K,Ge[_e]={nextPos:H,result:U},U}function dt(){var U,K,ae,_e,Le=H*24+10,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,i.charCodeAt(H)===40?(K=b,H++):(K=s,ze===0&&We(Re)),K!==s?(ae=ye(),ae!==s?(i.charCodeAt(H)===41?(_e=v,H++):(_e=s,ze===0&&We(Ie)),_e!==s?(Ot=U,U=he(ae)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function _r(){var U,K,ae,_e,Le=H*24+11,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,K=dt(),K!==s?(ae=$r(),ae!==s?(_e=dt(),_e!==s?(Ot=U,U=ve(K,ae,_e)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function $r(){var U,K=H*24+12,ae=Ge[K];return ae?(H=ae.nextPos,ae.result):(i.charCodeAt(H)===43?(U=y,H++):(U=s,ze===0&&We(le)),U===s&&(i.charCodeAt(H)===45?(U=d,H++):(U=s,ze===0&&We(G)),U===s&&(i.charCodeAt(H)===42?(U=N,H++):(U=s,ze===0&&We(Me)),U===s&&(i.charCodeAt(H)===47?(U=F,H++):(U=s,ze===0&&We(je)),U===s&&(i.charCodeAt(H)===37?(U=X,H++):(U=s,ze===0&&We(He)),U===s&&(i.charCodeAt(H)===94?(U=p,H++):(U=s,ze===0&&We(rt)),U===s&&(i.charCodeAt(H)===124?(U=g,H++):(U=s,ze===0&&We(Pe)),U===s&&(i.charCodeAt(H)===38?(U=E,H++):(U=s,ze===0&&We(ft)),U===s&&(i.substr(H,2)===O?(U=O,H+=2):(U=s,ze===0&&We(Ct)),U===s&&(i.substr(H,2)===A?(U=A,H+=2):(U=s,ze===0&&We(Vt))))))))))),Ge[K]={nextPos:H,result:U},U)}function ii(){var U,K,ae=H*24+13,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=ra(),K===s&&(K=na(),K===s&&(K=si(),K===s&&(K=Va(),K===s&&(K=fe(),K===s&&(K=za(),K===s&&(K=Ha(),K===s&&(K=ta(),K===s&&(K=dt())))))))),K!==s&&(Ot=U,K=Ce(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function ai(){var U,K,ae,_e,Le=H*24+14,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,i.charCodeAt(H)===60?(K=D,H++):(K=s,ze===0&&We(ht)),K!==s?(ae=ye(),ae!==s?(i.charCodeAt(H)===62?(_e=M,H++):(_e=s,ze===0&&We(Nt)),_e!==s?(Ot=U,U=Ke(ae)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function Va(){var U,K,ae=H*24+15,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=Br(),K!==s&&(Ot=U,K=Ee(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function Br(){var U,K,ae,_e=H*24+16,Le=Ge[_e];if(Le)return H=Le.nextPos,Le.result;if(U=H,K=[],i.charCodeAt(H)===94?(ae=p,H++):(ae=s,ze===0&&We(rt)),ae===s&&(i.charCodeAt(H)===95?(ae=w,H++):(ae=s,ze===0&&We(kt))),ae!==s)for(;ae!==s;)K.push(ae),i.charCodeAt(H)===94?(ae=p,H++):(ae=s,ze===0&&We(rt)),ae===s&&(i.charCodeAt(H)===95?(ae=w,H++):(ae=s,ze===0&&We(kt)));else K=s;return K!==s&&(Ot=U,K=Gt()),U=K,Ge[_e]={nextPos:H,result:U},U}function Ha(){var U,K,ae=H*24+17,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,i.charCodeAt(H)===63?(K=B,H++):(K=s,ze===0&&We(Qr)),K!==s&&(Ot=U,K=ot()),U=K,Ge[ae]={nextPos:H,result:U},U)}function ta(){var U,K,ae,_e,Le,Je,yr=H*24+18,An=Ge[yr];return An?(H=An.nextPos,An.result):(U=H,i.charCodeAt(H)===40?(K=b,H++):(K=s,ze===0&&We(Re)),K!==s?(ae=se(),ae!==s?(i.charCodeAt(H)===44?(_e=m,H++):(_e=s,ze===0&&We(Te)),_e!==s?(Le=se(),Le!==s?(i.charCodeAt(H)===41?(Je=v,H++):(Je=s,ze===0&&We(Ie)),Je!==s?(Ot=U,U=bt(ae,Le)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[yr]={nextPos:H,result:U},U)}function Ai(){var U,K,ae,_e,Le=H*24+19,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,K=ii(),K!==s?(i.charCodeAt(H)===58?(ae=re,H++):(ae=s,ze===0&&We(Fe)),ae!==s?(_e=se(),_e!==s?(Ot=U,U=en(K,_e)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function za(){var U,K,ae=H*24+20,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=xe(),K!==s&&(Ot=U,K=lt(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function ra(){var U,K,ae,_e=H*24+21,Le=Ge[_e];return Le?(H=Le.nextPos,Le.result):(U=H,K=xe(),K===s&&(K=null),i.charCodeAt(H)===114?(ae=ie,H++):(ae=s,ze===0&&We(Mr)),ae!==s?(Ot=U,U=Wt(K)):(H=U,U=s),Ge[_e]={nextPos:H,result:U},U)}function si(){var U,K,ae,_e,Le=H*24+22,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,K=Br(),K===s&&(K=null),ae=xe(),ae===s&&(ae=null),_e=se(),_e!==s?(Ot=U,U=St(K,ae,_e)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function na(){var U,K,ae,_e,Le=H*24+23,Je=Ge[Le];if(Je)return H=Je.nextPos,Je.result;if(U=H,K=si(),K!==s){if(ae=[],_e=si(),_e!==s)for(;_e!==s;)ae.push(_e),_e=si();else ae=s;ae!==s?(Ot=U,U=we(K,ae)):(H=U,U=s)}else H=U,U=s;return Ge[Le]={nextPos:H,result:U},U}var Cr=a.nodeOptions||{};function vr(U,K){K.text=Tr(),K.location=yi();for(var ae in Cr)(K[ae]===void 0||K[ae]===null)&&(K[ae]=Cr[ae]);return new U(K)}if(Dt=u(),Dt!==s&&H===i.length)return Dt;throw Dt!==s&&He.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"))}retrograde(){return this.evaluated=this.evaluated.reverse(),this}scale(e){return this.isInOptions("scaleName",e)?this:(this.update({scale:e}),this)}key(e){return console.log("KEY?",this.isInOptions("key",e)),this.isInOptions("key",e)?this:(this.update({key:e}),this)}octave(e){return this.isInOptions("octave",e)?this:(this.update({octave:e}),this)}isInOptions(e,t){return this.options.nodeOptions&&this.options.nodeOptions[e]===t}next(){this.index++,this.counter++;const e=this.evaluated[this.index%this.evaluated.length];return this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.update(),this.index=0),e}applyTransformations(){var e;(e=this.globalOptions)!=null&&e.retrograde&&(this.evaluated=this.evaluated.reverse())}clone(){return Al(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=0}evaluate(e={}){const t=this.values.map(r=>r.evaluate(e)).flat(1/0).filter(r=>r!==void 0);return t.forEach((r,i)=>{r._next=i0?i-1:t.length-1}),t}}const uM=n=>{let e={};return tM.forEach(t=>{if(n[t]!==void 0){const r=n[t];e[t]=r,delete n[t]}}),e};class dM{constructor(){I(this,"midiAccess",null);I(this,"midiOutputs",[]);I(this,"currentOutputIndex",0);I(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."),this.currentOutputIndex=-1)}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndex0&&this.currentOutputIndex>=0&&this.currentOutputIndex=this.midiOutputs.length?(console.error(`Invalid MIDI output index. Index must be in the range 0-${this.midiOutputs.length-1}.`),this.currentOutputIndex):e;{const t=this.midiOutputs.findIndex(r=>r.name===e);return t!==-1?t:(console.error(`MIDI output "${e}" not found.`),this.currentOutputIndex)}}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,t)=>{console.log(`${t+1}. ${e.name}`)})}sendMidiNote(e,t,r,i,a=this.currentOutputIndex,s=void 0){typeof a=="string"&&(a=this.getMidiOutputIndex(a));const o=this.midiOutputs[a];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,r],u=[128+t,e,0];o.send(l),s&&this.sendPitchBend(s,t,a);const d=setTimeout(()=>{o.send(u),s&&this.sendPitchBend(8192,t,a),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=d}else console.error("MIDI output not available.")}sendSysExMessage(e){const t=this.midiOutputs[this.currentOutputIndex];t?t.send(e):console.error("MIDI output not available.")}sendPitchBend(e,t,r=this.currentOutputIndex){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(t<0||t>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15."),typeof r=="string"&&(r=this.getMidiOutputIndex(r));const i=this.midiOutputs[r];if(i){const a=e&127,s=e>>7&127;i.send([224|t,a,s])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const r=this.midiOutputs[this.currentOutputIndex];r?r.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,r){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+r,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const r=this.scheduledNotes[t];clearTimeout(r),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class pM{constructor(e,t,r){I(this,"min");I(this,"max");I(this,"wrap");I(this,"position");this.min=e,this.max=t,this.wrap=r,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 fM={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 hM(n,e="major",t=4){const r=fM[e];if(!r)throw new Error(`Unknown scale ${e}`);let i=n%r.length;i<0&&(i+=r.length);let a=Math.floor(n/r.length);return 60+(t+a)*12+r[i]}class km{constructor(e){I(this,"seedValue");I(this,"randomGen",Math.random);I(this,"app");I(this,"values",{});I(this,"odds",(e,t)=>this.randomGen()this.odds(.025,e));I(this,"rarely",e=>this.odds(.1,e));I(this,"scarcely",e=>this.odds(.25,e));I(this,"sometimes",e=>this.odds(.5,e));I(this,"often",e=>this.odds(.75,e));I(this,"frequently",e=>this.odds(.9,e));I(this,"almostAlways",e=>this.odds(.985,e));I(this,"modify",e=>e(this));I(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));I(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));I(this,"apply",e=>this.modify(e));I(this,"duration",e=>(this.values.duration=e,this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}class Gy extends km{constructor(t){super(t);I(this,"octave",t=>(this.values.octave=t,this.update(),this));I(this,"key",t=>(this.values.key=t,this.update(),this));I(this,"scale",t=>(Dm(t)?(this.values.scaleName=t,this.values.parsedScale=Zi(t)):this.values.parsedScale=wm(t),this.update(),this));I(this,"freq",t=>{this.values.freq=t;const r=Hk(t);return r%1!==0?(this.values.note=Math.floor(r),this.values.bend=Uy(r)[1]):this.values.note=r,this});I(this,"update",()=>{})}}const Ml=class Ml{constructor(){I(this,"_fallbackMethod",()=>this);I(this,"out",()=>{})}};I(Ml,"createRestProxy",()=>{const e=new Ml;return new Proxy(e,{get(t,r,i){return typeof t[r]>"u"?t._fallbackMethod:t[r]},set(t,r,i,a){return!1}})});let Rl=Ml,Nr=[],mM=(n,e)=>{let t,r=[],i={lc:0,l:e||0,value:n,set(a){i.value=a,i.notify()},get(){return i.lc||i.listen(()=>{})(),i.value},notify(a){t=r;let s=!Nr.length;for(let o=0;o{r===t&&(r=r.slice());let o=r.indexOf(a);~o&&(r.splice(o,2),i.lc--,i.lc||i.off())}},subscribe(a,s){let o=i.listen(a,s);return a(i.value),o},off(){}};return i},_M=(n={})=>{let e=mM(n);return e.setKey=function(t,r){typeof r>"u"?t in e.value&&(e.value={...e.value},delete e.value[t],e.notify(t)):e.value[t]!==r&&(e.value={...e.value,[t]:r},e.notify(t))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(t,r,i,a){super(t),r=Math.abs(r),this.delayTime.value=i;const s=t.createGain();s.gain.value=Math.min(Math.abs(a),.995),this.feedback=s.gain;const o=t.createGain();return o.gain.value=r,this.delayGain=o,this.connect(s),this.connect(o),s.connect(this),this.connect=l=>o.connect(l),this}start(t){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,t+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,t,r){return new n(this,e,t,r)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const t=this.sampleRate*n,r=this.createBuffer(e,t,this.sampleRate),i=r.getChannelData(0);for(let a=0;a(e.buffer=this.impulseResponse(t),e.duration=n,e),e.setDuration(n),e});var YS={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 n extends GainNode{constructor(t,r){if(super(t),!YS[r])throw new Error("vowel: unknown vowel "+r);const{gains:i,qs:a,freqs:s}=YS[r],o=t.createGain();for(let l=0;l<5;l++){const u=t.createGain();u.gain.value=i[l];const d=t.createBiquadFilter();d.type="bandpass",d.Q.value=a[l],d.frequency.value=s[l],this.connect(d),d.connect(u),u.connect(o)}return o.gain.value=8,this.connect=l=>o.connect(l),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}const gM=n=>{var i;if(typeof n!="string")return[];const[e,t="",r]=((i=n.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:i.slice(1))||[];return e?[e,t,r?Number(r):void 0]:[]},SM={c:0,d:2,e:4,f:5,g:7,a:9,b:11},OM={"#":1,b:-1,s:1,f:-1},Mm=(n,e=3)=>{const[t,r,i=e]=gM(n);if(!t)throw new Error('not a note: "'+n+'"');const a=SM[t.toLowerCase()],s=(r==null?void 0:r.split("").reduce((o,l)=>o+OM[l],0))||0;return(Number(i)+1)*12+a+s},EM=n=>Math.pow(2,(n-69)/12)*440,bM=(n,e,t)=>Math.min(Math.max(n,e),t),TM=n=>12*Math.log(n/440)/Math.LN2+69,CM=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:t,note:r}=n;if(typeof t=="number")return TM(t);if(typeof r=="string")return Mm(r);if(typeof r=="number")return r;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},vM="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function Il(n){const e=Gr().createGain();return e.gain.value=n,e}const yM=({s:n,freq:e,t})=>{const r=Gr().createOscillator();return r.type=n||"triangle",r.frequency.value=Number(e),r.start(t),{node:r,stop:i=>r.stop(i)}},Qy=(n,e,t,r,i,a)=>{const s=Gr().createGain();return s.gain.setValueAtTime(0,a),s.gain.linearRampToValueAtTime(i,a+n),s.gain.linearRampToValueAtTime(t*i,a+n+e),{node:s,stop:o=>{s.gain.setValueAtTime(t*i,o),s.gain.linearRampToValueAtTime(0,o+r)}}},Yc=(n,e,t)=>{const r=Gr().createBiquadFilter();return r.type=n,r.frequency.value=e,r.Q.value=t,r};let AM=n=>console.log(n);const Ya=(...n)=>AM(...n),Pm=_M();function $y(n,e,t={}){Pm.setKey(n,{onTrigger:e,data:t})}function GS(n){return Pm.get()[n]}let Gc;const Gr=()=>(Gc||(Gc=new AudioContext),Gc);let Io;const Bm=()=>{const n=Gr();return Io||(Io=n.createGain(),Io.connect(n.destination)),Io};let Qc;function RM(){return Qc||(Qc=Gr().audioWorklet.addModule(vM),Qc)}function $c(n,e,t){const r=new AudioWorkletNode(n,e);return Object.entries(t).forEach(([i,a])=>{r.parameters.get(i).value=a}),r}async function IM(n={}){const{disableWorklets:e=!1}=n;typeof window<"u"&&(await Gr().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await RM().catch(t=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",t)}))}async function NM(n){return new Promise(e=>{document.addEventListener("click",async function t(){await IM(n),e(),document.removeEventListener("click",t)})})}let xi={};function DM(n,e,t,r){var i;if(t=bM(t,0,.98),!xi[n]){const a=Gr().createFeedbackDelay(1,e,t);(i=a.start)==null||i.call(a,r),a.connect(Bm()),xi[n]=a}return xi[n].delayTime.value!==e&&xi[n].delayTime.setValueAtTime(e,r),xi[n].feedback.value!==t&&xi[n].feedback.setValueAtTime(t,r),xi[n]}let Li={};function wM(n,e=2){if(!Li[n]){const t=Gr().createReverb(e);t.connect(Bm()),Li[n]=t}return Li[n].duration!==e&&(Li[n]=Li[n].setDuration(e),Li[n].duration=e),Li[n]}function QS(n,e,t){const r=Il(t);return n.connect(r),r.connect(e),r}const xM=async(n,e,t)=>{const r=Gr();if(typeof n!="object")throw new Error(`expected hap.value to be an object, but got "${n}". Hint: append .note() or .s() to the end`,"error");let i=r.currentTime+e,{s:a="triangle",bank:s,source:o,gain:l=.8,cutoff:u,resonance:d=1,hcutoff:f,hresonance:m=1,bandf:g,bandq:b=1,coarse:v,crush:y,shape:N,pan:F,vowel:X,delay:p=0,delayfeedback:E=.5,delaytime:O=.25,orbit:A=1,room:D,size:M=2,velocity:w=1}=n;l*=w;let B=[];const re=()=>{B.forEach(Z=>Z==null?void 0:Z.disconnect())};s&&a&&(a=`${s}_${a}`);let ie;if(o)ie=o(i,n,t);else if(GS(a)){const{onTrigger:Z}=GS(a),z=await Z(i,n,re);z&&(ie=z.node,z.stop(i+t))}else throw new Error(`sound ${a} not found! Is it loaded?`);if(!ie)return;if(r.currentTime>i){Ya("[webaudio] skip hap: still loading",r.currentTime-i);return}const j=[];if(j.push(ie),j.push(Il(l)),u!==void 0&&j.push(Yc("lowpass",u,d)),f!==void 0&&j.push(Yc("highpass",f,m)),g!==void 0&&j.push(Yc("bandpass",g,b)),X!==void 0&&j.push(r.createVowelFilter(X)),v!==void 0&&j.push($c(r,"coarse-processor",{coarse:v})),y!==void 0&&j.push($c(r,"crush-processor",{crush:y})),N!==void 0&&j.push($c(r,"shape-processor",{shape:N})),F!==void 0){const Z=r.createStereoPanner();Z.pan.value=2*F-1,j.push(Z)}const J=Il(1);j.push(J),J.connect(Bm());let L;if(p>0&&O>0&&E>0){const Z=DM(A,O,E,i);L=QS(J,Z,p)}let G;if(D>0&&M>0){const Z=wM(A,M);G=QS(J,Z,D)}j.slice(1).reduce((Z,z)=>Z.connect(z),j[0]),B=j.concat([L,G])},qc={};function LM(n,e){var t=e?1e3:1024;if(n=t);return n.toFixed(1)+" "+r[i]}const kM=async(n,e,t,r,i,a,s)=>{let o=0;i!==void 0&&t!==void 0&&Ya("[sampler] hap has note and freq. ignoring note","warning");let l=CM({freq:i,note:t},36);o=l-36;const u=Gr();let d;if(Array.isArray(a))d=a[e%a.length];else{const b=y=>Mm(y)-l,v=Object.keys(a).filter(y=>!y.startsWith("_")).reduce((y,N,F)=>!y||Math.abs(b(N)){const i=t?`sound "${t}:${r}"`:"sample";if(!qc[n]){Ya(`[sampler] load ${i}..`,"load-sample",{url:n});const a=Date.now();qc[n]=fetch(n).then(s=>s.arrayBuffer()).then(async s=>{const o=Date.now()-a,l=LM(s.byteLength);return Ya(`[sampler] load ${i}... done! loaded ${l} in ${o}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(s)})}return qc[n]};function PM(n){const e=Gr(),t=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let r=0;rObject.entries(n).forEach(([r,i])=>{if(typeof i=="string"&&(i=[i]),typeof i!="object")throw new Error("wrong sample map format for "+r);t=i._base||t;const a=s=>(t+s).replace("github:","https://raw.githubusercontent.com/");Array.isArray(i)?i=i.map(a):i=Object.fromEntries(Object.entries(i).map(([s,o])=>[s,(typeof o=="string"?[o]:o).map(a)])),e(r,i)});let UM={};function FM(n){const e=Object.entries(UM).find(([t])=>n.startsWith(t));if(e)return e[1]}const Nl=async(n,e=n._base||"",t={})=>{if(typeof n=="string"){const a=FM(n);if(a)return a(n);if(n.startsWith("github:")){let[o,l]=n.split("github:");l=l.endsWith("/")?l.slice(0,-1):l,n=`https://raw.githubusercontent.com/${l}/strudel.json`}if(typeof fetch!="function")return;const s=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(o=>o.json()).then(o=>Nl(o,e||o._base||s,t)).catch(o=>{throw console.error(o),new Error(`error loading "${n}"`)})}const{prebake:r,tag:i}=t;BM(n,(a,s)=>$y(a,(o,l,u)=>YM(o,l,u,s),{type:"sample",samples:s,baseUrl:e,prebake:r,tag:i}),e)},$S=[];async function YM(n,e,t,r,i){const{s:a,freq:s,unit:o,nudge:l=0,cut:u,loop:d,clip:f=void 0,n:m=0,note:g,speed:b=1,begin:v=0,end:y=1}=e;if(b===0)return;const N=Gr(),{attack:F=.001,decay:X=.001,sustain:p=1,release:E=.001}=e,O=n+l,A=await kM(a,m,g,b,s,r,i);if(N.currentTime>n){Ya(`[sampler] still loading sound "${a}:${m}"`,"highlight");return}if(!A){Ya(`[sampler] could not load "${a}:${m}"`,"error");return}A.playbackRate.value=Math.abs(b)*A.playbackRate.value,o==="c"&&(A.playbackRate.value=A.playbackRate.value*A.buffer.duration*1);const D=v*A.buffer.duration;A.start(O,D);const M=A.buffer.duration/A.playbackRate.value,{node:w,stop:B}=Qy(F,X,p,E,1,n);A.connect(w);const re=N.createGain();w.connect(re),A.onended=function(){A.disconnect(),w.disconnect(),re.disconnect(),t()};const ie={node:re,bufferSource:A,stop:(j,J=f===void 0)=>{let L=j;J&&(L=n+(y-v)*M),A.stop(L+E),B(L)}};if(u!==void 0){const j=$S[u];j&&(j.node.gain.setValueAtTime(1,O),j.node.gain.linearRampToValueAtTime(0,O+.01)),$S[u]=ie}return ie}const GM=(n,e=1,t="sine")=>{const r=Gr(),i=r.createOscillator();i.type=t,i.frequency.value=n,i.start();const a=new GainNode(r,{gain:e});return i.connect(a),{node:a,stop:s=>i.stop(s)}},QM=(n,e,t,r="sine")=>{const i=n.frequency.value*e,a=i*t;return GM(i,a,r)};function $M(){["sine","square","triangle","sawtooth"].forEach(n=>{$y(n,(e,t,r)=>{const{attack:i=.001,decay:a=.05,sustain:s=.6,release:o=.01,fmh:l=1,fmi:u}=t;let{n:d,note:f,freq:m}=t;d=f||d||36,typeof d=="string"&&(d=Mm(d)),!m&&typeof d=="number"&&(m=EM(d));const{node:g,stop:b}=yM({t:e,s:n,freq:m});let v;if(u){const{node:X,stop:p}=QM(g,l,u);X.connect(g.frequency),v=p}const y=Il(.3),{node:N,stop:F}=Qy(i,a,s,o,1,e);return g.onended=()=>{g.disconnect(),y.disconnect(),r()},{node:g.connect(y).connect(N),stop:X=>{F(X);let p=X+o;b(p),v==null||v(p)}}},{type:"synth",prebake:!0})})}class qy extends Gy{constructor(t,r){super(r);I(this,"attack",t=>(this.values.attack=t,this));I(this,"atk",this.attack);I(this,"decay",t=>(this.values.decay=t,this));I(this,"dec",this.decay);I(this,"release",t=>(this.values.release=t,this));I(this,"rel",this.release);I(this,"unit",t=>(this.values.unit=t,this));I(this,"freq",t=>(this.values.freq=t,this));I(this,"fm",t=>{if(typeof t=="number")this.values.fmi=t;else{let r=t.split(":");this.values.fmi=parseFloat(r[0]),r.length>1&&(this.values.fmh=parseFloat(r[1]))}return this});I(this,"sound",t=>(this.values.s=t,this));I(this,"fmi",t=>(this.values.fmi=t,this));I(this,"fmh",t=>(this.values.fmh=t,this));I(this,"nudge",t=>(this.values.nudge=t,this));I(this,"cut",t=>(this.values.cut=t,this));I(this,"loop",t=>(this.values.loop=t,this));I(this,"clip",t=>(this.values.clip=t,this));I(this,"n",t=>(this.values.n=t,this));I(this,"note",t=>(this.values.note=t,this));I(this,"speed",t=>(this.values.speed=t,this));I(this,"begin",t=>(this.values.begin=t,this));I(this,"end",t=>(this.values.end=t,this));I(this,"gain",t=>(this.values.gain=t,this));I(this,"cutoff",t=>(this.values.cutoff=t,this));I(this,"resonance",t=>(this.values.resonance=t,this));I(this,"hcutoff",t=>(this.values.hcutoff=t,this));I(this,"hresonance",t=>(this.values.hresonance=t,this));I(this,"bandf",t=>(this.values.bandf=t,this));I(this,"bandq",t=>(this.values.bandq=t,this));I(this,"coarse",t=>(this.values.coarse=t,this));I(this,"crush",t=>(this.values.crush=t,this));I(this,"shape",t=>(this.values.shape=t,this));I(this,"pan",t=>(this.values.pan=t,this));I(this,"vowel",t=>(this.values.vowel=t,this));I(this,"delay",t=>(this.values.delay=t,this));I(this,"delayfeedback",t=>(this.values.delayfeedback=t,this));I(this,"delaytime",t=>(this.values.delaytime=t,this));I(this,"orbit",t=>(this.values.orbit=t,this));I(this,"room",t=>(this.values.room=t,this));I(this,"size",t=>(this.values.size=t,this));I(this,"velocity",t=>(this.values.velocity=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"sustain",t=>(this.values.dur=t,this));I(this,"update",()=>{if(this.values.key&&this.values.pitch&&this.values.parsedScale&&this.values.octave){const[t,r]=xm(this.values.key,this.values.pitch,this.values.parsedScale,this.values.octave);this.values.freq=Ps(t)}});I(this,"out",()=>xM(this.values,this.app.clock.pulse_duration,this.values.dur));this.app=r,typeof t=="string"?this.values={s:t,dur:.5}:this.values=t}}class Vy extends Gy{constructor(t,r){super(r);I(this,"midiConnection");I(this,"note",t=>(this.values.note=t,this));I(this,"sustain",t=>(this.values.sustain=t,this));I(this,"channel",t=>(this.values.channel=t,this));I(this,"port",t=>(this.values.port=this.midiConnection.getMidiOutputIndex(t),this));I(this,"add",t=>(this.values.note+=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"bend",t=>(this.values.bend=t,this));I(this,"random",(t=0,r=127)=>(t=Math.min(Math.max(t,0),127),r=Math.min(Math.max(r,0),127),this.values.note=Math.floor(this.randomGen()*(r-t+1))+t,this));I(this,"update",()=>{if(this.values.key&&this.values.pitch&&this.values.parsedScale&&this.values.octave){const[t,r]=xm(this.values.key,this.values.pitch,this.values.parsedScale,this.values.octave);this.values.note=t,this.values.freq=Ps(t),r&&(this.values.bend=r)}});I(this,"out",()=>{const t=this.values.note?this.values.note:60,r=this.values.channel?this.values.channel:0,i=this.values.velocity?this.values.velocity:100,a=this.values.sustain?this.values.sustain*this.app.clock.pulse_duration*this.app.api.ppqn():this.app.clock.pulse_duration*this.app.api.ppqn(),s=this.values.bend?this.values.bend:void 0,o=this.values.port?this.midiConnection.getMidiOutputIndex(this.values.port):this.midiConnection.getCurrentMidiPortIndex();this.midiConnection.sendMidiNote(t,r,i,a,o,s)});this.app=r,typeof t=="number"?this.values.note=t:this.values=t,this.midiConnection=r.api.MidiConnection}}const ss=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Hy=new Set,wh=typeof process=="object"&&process?process:{},zy=(n,e,t,r)=>{typeof wh.emitWarning=="function"?wh.emitWarning(n,e,t,r):console.error(`[${t}] ${e}: ${n}`)};let Dl=globalThis.AbortController,qS=globalThis.AbortSignal;var DT;if(typeof Dl>"u"){qS=class{constructor(){I(this,"onabort");I(this,"_onabort",[]);I(this,"reason");I(this,"aborted",!1)}addEventListener(r,i){this._onabort.push(i)}},Dl=class{constructor(){I(this,"signal",new qS);e()}abort(r){var i,a;if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(const s of this.signal._onabort)s(r);(a=(i=this.signal).onabort)==null||a.call(i,r)}}};let n=((DT=wh.env)==null?void 0:DT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{n&&(n=!1,zy("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 qM=n=>!Hy.has(n),ci=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),Wy=n=>ci(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Vo:null:null;class Vo extends Array{constructor(e){super(e),this.fill(0)}}var va;const Pi=class Pi{constructor(e,t){I(this,"heap");I(this,"length");if(!Q(Pi,va))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=Wy(e);if(!t)return[];Qe(Pi,va,!0);const r=new Pi(e,t);return Qe(Pi,va,!1),r}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};va=new WeakMap,tt(Pi,va,!1);let xh=Pi;var _n,Hr,gn,Sn,ya,Kt,On,jt,xt,et,Dr,zr,Sr,sr,En,or,Hn,zn,bn,Tn,mi,wr,Fs,kh,Gi,Wn,Ys,Wr,Pl,Xy,Qi,Aa,Gs,xn,ui,Ln,di,Qs,Mh,Ra,Ho,Ia,zo,At,Mt,$s,Ph,$i,fs;const Qm=class Qm{constructor(e){tt(this,Fs);tt(this,Pl);tt(this,xn);tt(this,Ln);tt(this,Qs);tt(this,Ra);tt(this,Ia);tt(this,At);tt(this,$s);tt(this,$i);tt(this,_n,void 0);tt(this,Hr,void 0);tt(this,gn,void 0);tt(this,Sn,void 0);tt(this,ya,void 0);I(this,"ttl");I(this,"ttlResolution");I(this,"ttlAutopurge");I(this,"updateAgeOnGet");I(this,"updateAgeOnHas");I(this,"allowStale");I(this,"noDisposeOnSet");I(this,"noUpdateTTL");I(this,"maxEntrySize");I(this,"sizeCalculation");I(this,"noDeleteOnFetchRejection");I(this,"noDeleteOnStaleGet");I(this,"allowStaleOnFetchAbort");I(this,"allowStaleOnFetchRejection");I(this,"ignoreFetchAbort");tt(this,Kt,void 0);tt(this,On,void 0);tt(this,jt,void 0);tt(this,xt,void 0);tt(this,et,void 0);tt(this,Dr,void 0);tt(this,zr,void 0);tt(this,Sr,void 0);tt(this,sr,void 0);tt(this,En,void 0);tt(this,or,void 0);tt(this,Hn,void 0);tt(this,zn,void 0);tt(this,bn,void 0);tt(this,Tn,void 0);tt(this,mi,void 0);tt(this,wr,void 0);tt(this,Gi,()=>{});tt(this,Wn,()=>{});tt(this,Ys,()=>{});tt(this,Wr,()=>!1);tt(this,Qi,e=>{});tt(this,Aa,(e,t,r)=>{});tt(this,Gs,(e,t,r,i)=>{if(r||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:r,ttlResolution:i=1,ttlAutopurge:a,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:l,dispose:u,disposeAfter:d,noDisposeOnSet:f,noUpdateTTL:m,maxSize:g=0,maxEntrySize:b=0,sizeCalculation:v,fetchMethod:y,noDeleteOnFetchRejection:N,noDeleteOnStaleGet:F,allowStaleOnFetchRejection:X,allowStaleOnFetchAbort:p,ignoreFetchAbort:E}=e;if(t!==0&&!ci(t))throw new TypeError("max option must be a nonnegative integer");const O=t?Wy(t):Array;if(!O)throw new Error("invalid max value: "+t);if(Qe(this,_n,t),Qe(this,Hr,g),this.maxEntrySize=b||Q(this,Hr),this.sizeCalculation=v,this.sizeCalculation){if(!Q(this,Hr)&&!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(Qe(this,ya,y),Qe(this,mi,!!y),Qe(this,jt,new Map),Qe(this,xt,new Array(t).fill(void 0)),Qe(this,et,new Array(t).fill(void 0)),Qe(this,Dr,new O(t)),Qe(this,zr,new O(t)),Qe(this,Sr,0),Qe(this,sr,0),Qe(this,En,xh.create(t)),Qe(this,Kt,0),Qe(this,On,0),typeof u=="function"&&Qe(this,gn,u),typeof d=="function"?(Qe(this,Sn,d),Qe(this,or,[])):(Qe(this,Sn,void 0),Qe(this,or,void 0)),Qe(this,Tn,!!Q(this,gn)),Qe(this,wr,!!Q(this,Sn)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!N,this.allowStaleOnFetchRejection=!!X,this.allowStaleOnFetchAbort=!!p,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(Q(this,Hr)!==0&&!ci(Q(this,Hr)))throw new TypeError("maxSize must be a positive integer if specified");if(!ci(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ue(this,Pl,Xy).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!F,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=ci(i)||i===0?i:1,this.ttlAutopurge=!!a,this.ttl=r||0,this.ttl){if(!ci(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ue(this,Fs,kh).call(this)}if(Q(this,_n)===0&&this.ttl===0&&Q(this,Hr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!Q(this,_n)&&!Q(this,Hr)){const A="LRU_CACHE_UNBOUNDED";qM(A)&&(Hy.add(A),zy("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",A,Qm))}}static unsafeExposeInternals(e){return{starts:Q(e,zn),ttls:Q(e,bn),sizes:Q(e,Hn),keyMap:Q(e,jt),keyList:Q(e,xt),valList:Q(e,et),next:Q(e,Dr),prev:Q(e,zr),get head(){return Q(e,Sr)},get tail(){return Q(e,sr)},free:Q(e,En),isBackgroundFetch:t=>{var r;return Ue(r=e,At,Mt).call(r,t)},backgroundFetch:(t,r,i,a)=>{var s;return Ue(s=e,Ia,zo).call(s,t,r,i,a)},moveToTail:t=>{var r;return Ue(r=e,$i,fs).call(r,t)},indexes:t=>{var r;return Ue(r=e,xn,ui).call(r,t)},rindexes:t=>{var r;return Ue(r=e,Ln,di).call(r,t)},isStale:t=>{var r;return Q(r=e,Wr).call(r,t)}}}get max(){return Q(this,_n)}get maxSize(){return Q(this,Hr)}get calculatedSize(){return Q(this,On)}get size(){return Q(this,Kt)}get fetchMethod(){return Q(this,ya)}get dispose(){return Q(this,gn)}get disposeAfter(){return Q(this,Sn)}getRemainingTTL(e){return Q(this,jt).has(e)?1/0:0}*entries(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*rentries(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*keys(){for(const e of Ue(this,xn,ui).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield t)}}*rkeys(){for(const e of Ue(this,Ln,di).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield t)}}*values(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}*rvalues(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;if(a!==void 0&&e(a,Q(this,xt)[r],this))return this.get(Q(this,xt)[r],t)}}forEach(e,t=this){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}rforEach(e,t=this){for(const r of Ue(this,Ln,di).call(this)){const i=Q(this,et)[r],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}purgeStale(){let e=!1;for(const t of Ue(this,Ln,di).call(this,{allowStale:!0}))Q(this,Wr).call(this,t)&&(this.delete(Q(this,xt)[t]),e=!0);return e}dump(){const e=[];for(const t of Ue(this,xn,ui).call(this,{allowStale:!0})){const r=Q(this,xt)[t],i=Q(this,et)[t],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;if(a===void 0||r===void 0)continue;const s={value:a};if(Q(this,bn)&&Q(this,zn)){s.ttl=Q(this,bn)[t];const o=ss.now()-Q(this,zn)[t];s.start=Math.floor(Date.now()-o)}Q(this,Hn)&&(s.size=Q(this,Hn)[t]),e.unshift([r,s])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const i=Date.now()-r.start;r.start=ss.now()-i}this.set(t,r.value,r)}}set(e,t,r={}){var m,g,b,v,y;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:a,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=r;let{noUpdateTTL:u=this.noUpdateTTL}=r;const d=Q(this,Gs).call(this,e,t,r.size||0,o);if(this.maxEntrySize&&d>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(e),this;let f=Q(this,Kt)===0?void 0:Q(this,jt).get(e);if(f===void 0)f=Q(this,Kt)===0?Q(this,sr):Q(this,En).length!==0?Q(this,En).pop():Q(this,Kt)===Q(this,_n)?Ue(this,Ra,Ho).call(this,!1):Q(this,Kt),Q(this,xt)[f]=e,Q(this,et)[f]=t,Q(this,jt).set(e,f),Q(this,Dr)[Q(this,sr)]=f,Q(this,zr)[f]=Q(this,sr),Qe(this,sr,f),io(this,Kt)._++,Q(this,Aa).call(this,f,d,l),l&&(l.set="add"),u=!1;else{Ue(this,$i,fs).call(this,f);const N=Q(this,et)[f];if(t!==N){if(Q(this,mi)&&Ue(this,At,Mt).call(this,N)){N.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:F}=N;F!==void 0&&!s&&(Q(this,Tn)&&((m=Q(this,gn))==null||m.call(this,F,e,"set")),Q(this,wr)&&((g=Q(this,or))==null||g.push([F,e,"set"])))}else s||(Q(this,Tn)&&((b=Q(this,gn))==null||b.call(this,N,e,"set")),Q(this,wr)&&((v=Q(this,or))==null||v.push([N,e,"set"])));if(Q(this,Qi).call(this,f),Q(this,Aa).call(this,f,d,l),Q(this,et)[f]=t,l){l.set="replace";const F=N&&Ue(this,At,Mt).call(this,N)?N.__staleWhileFetching:N;F!==void 0&&(l.oldValue=F)}}else l&&(l.set="update")}if(i!==0&&!Q(this,bn)&&Ue(this,Fs,kh).call(this),Q(this,bn)&&(u||Q(this,Ys).call(this,f,i,a),l&&Q(this,Wn).call(this,l,f)),!s&&Q(this,wr)&&Q(this,or)){const N=Q(this,or);let F;for(;F=N==null?void 0:N.shift();)(y=Q(this,Sn))==null||y.call(this,...F)}return this}pop(){var e;try{for(;Q(this,Kt);){const t=Q(this,et)[Q(this,Sr)];if(Ue(this,Ra,Ho).call(this,!0),Ue(this,At,Mt).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(Q(this,wr)&&Q(this,or)){const t=Q(this,or);let r;for(;r=t==null?void 0:t.shift();)(e=Q(this,Sn))==null||e.call(this,...r)}}}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:i}=t,a=Q(this,jt).get(e);if(a!==void 0){const s=Q(this,et)[a];if(Ue(this,At,Mt).call(this,s)&&s.__staleWhileFetching===void 0)return!1;if(Q(this,Wr).call(this,a))i&&(i.has="stale",Q(this,Wn).call(this,i,a));else return r&&Q(this,Gi).call(this,a),i&&(i.has="hit",Q(this,Wn).call(this,i,a)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,i=Q(this,jt).get(e);if(i!==void 0&&(r||!Q(this,Wr).call(this,i))){const a=Q(this,et)[i];return Ue(this,At,Mt).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:l=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:b=this.allowStaleOnFetchAbort,context:v,forceRefresh:y=!1,status:N,signal:F}=t;if(!Q(this,mi))return N&&(N.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,status:N});const X={allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,ttl:s,noDisposeOnSet:o,size:l,sizeCalculation:u,noUpdateTTL:d,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:b,ignoreFetchAbort:g,status:N,signal:F};let p=Q(this,jt).get(e);if(p===void 0){N&&(N.fetch="miss");const E=Ue(this,Ia,zo).call(this,e,p,X,v);return E.__returned=E}else{const E=Q(this,et)[p];if(Ue(this,At,Mt).call(this,E)){const w=r&&E.__staleWhileFetching!==void 0;return N&&(N.fetch="inflight",w&&(N.returnedStale=!0)),w?E.__staleWhileFetching:E.__returned=E}const O=Q(this,Wr).call(this,p);if(!y&&!O)return N&&(N.fetch="hit"),Ue(this,$i,fs).call(this,p),i&&Q(this,Gi).call(this,p),N&&Q(this,Wn).call(this,N,p),E;const A=Ue(this,Ia,zo).call(this,e,p,X,v),M=A.__staleWhileFetching!==void 0&&r;return N&&(N.fetch=O?"stale":"refresh",M&&O&&(N.returnedStale=!0)),M?A.__staleWhileFetching:A.__returned=A}}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:s}=t,o=Q(this,jt).get(e);if(o!==void 0){const l=Q(this,et)[o],u=Ue(this,At,Mt).call(this,l);return s&&Q(this,Wn).call(this,s,o),Q(this,Wr).call(this,o)?(s&&(s.get="stale"),u?(s&&r&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),r?l.__staleWhileFetching:void 0):(a||this.delete(e),s&&r&&(s.returnedStale=!0),r?l:void 0)):(s&&(s.get="hit"),u?l.__staleWhileFetching:(Ue(this,$i,fs).call(this,o),i&&Q(this,Gi).call(this,o),l))}else s&&(s.get="miss")}delete(e){var r,i,a,s;let t=!1;if(Q(this,Kt)!==0){const o=Q(this,jt).get(e);if(o!==void 0)if(t=!0,Q(this,Kt)===1)this.clear();else{Q(this,Qi).call(this,o);const l=Q(this,et)[o];Ue(this,At,Mt).call(this,l)?l.__abortController.abort(new Error("deleted")):(Q(this,Tn)||Q(this,wr))&&(Q(this,Tn)&&((r=Q(this,gn))==null||r.call(this,l,e,"delete")),Q(this,wr)&&((i=Q(this,or))==null||i.push([l,e,"delete"]))),Q(this,jt).delete(e),Q(this,xt)[o]=void 0,Q(this,et)[o]=void 0,o===Q(this,sr)?Qe(this,sr,Q(this,zr)[o]):o===Q(this,Sr)?Qe(this,Sr,Q(this,Dr)[o]):(Q(this,Dr)[Q(this,zr)[o]]=Q(this,Dr)[o],Q(this,zr)[Q(this,Dr)[o]]=Q(this,zr)[o]),io(this,Kt)._--,Q(this,En).push(o)}}if(Q(this,wr)&&((a=Q(this,or))!=null&&a.length)){const o=Q(this,or);let l;for(;l=o==null?void 0:o.shift();)(s=Q(this,Sn))==null||s.call(this,...l)}return t}clear(){var e,t,r;for(const i of Ue(this,Ln,di).call(this,{allowStale:!0})){const a=Q(this,et)[i];if(Ue(this,At,Mt).call(this,a))a.__abortController.abort(new Error("deleted"));else{const s=Q(this,xt)[i];Q(this,Tn)&&((e=Q(this,gn))==null||e.call(this,a,s,"delete")),Q(this,wr)&&((t=Q(this,or))==null||t.push([a,s,"delete"]))}}if(Q(this,jt).clear(),Q(this,et).fill(void 0),Q(this,xt).fill(void 0),Q(this,bn)&&Q(this,zn)&&(Q(this,bn).fill(0),Q(this,zn).fill(0)),Q(this,Hn)&&Q(this,Hn).fill(0),Qe(this,Sr,0),Qe(this,sr,0),Q(this,En).length=0,Qe(this,On,0),Qe(this,Kt,0),Q(this,wr)&&Q(this,or)){const i=Q(this,or);let a;for(;a=i==null?void 0:i.shift();)(r=Q(this,Sn))==null||r.call(this,...a)}}};_n=new WeakMap,Hr=new WeakMap,gn=new WeakMap,Sn=new WeakMap,ya=new WeakMap,Kt=new WeakMap,On=new WeakMap,jt=new WeakMap,xt=new WeakMap,et=new WeakMap,Dr=new WeakMap,zr=new WeakMap,Sr=new WeakMap,sr=new WeakMap,En=new WeakMap,or=new WeakMap,Hn=new WeakMap,zn=new WeakMap,bn=new WeakMap,Tn=new WeakMap,mi=new WeakMap,wr=new WeakMap,Fs=new WeakSet,kh=function(){const e=new Vo(Q(this,_n)),t=new Vo(Q(this,_n));Qe(this,bn,e),Qe(this,zn,t),Qe(this,Ys,(a,s,o=ss.now())=>{if(t[a]=s!==0?o:0,e[a]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{Q(this,Wr).call(this,a)&&this.delete(Q(this,xt)[a])},s+1);l.unref&&l.unref()}}),Qe(this,Gi,a=>{t[a]=e[a]!==0?ss.now():0}),Qe(this,Wn,(a,s)=>{if(e[s]){const o=e[s],l=t[s];a.ttl=o,a.start=l,a.now=r||i();const u=a.now-l;a.remainingTTL=o-u}});let r=0;const i=()=>{const a=ss.now();if(this.ttlResolution>0){r=a;const s=setTimeout(()=>r=0,this.ttlResolution);s.unref&&s.unref()}return a};this.getRemainingTTL=a=>{const s=Q(this,jt).get(a);if(s===void 0)return 0;const o=e[s],l=t[s];if(o===0||l===0)return 1/0;const u=(r||i())-l;return o-u},Qe(this,Wr,a=>e[a]!==0&&t[a]!==0&&(r||i())-t[a]>e[a])},Gi=new WeakMap,Wn=new WeakMap,Ys=new WeakMap,Wr=new WeakMap,Pl=new WeakSet,Xy=function(){const e=new Vo(Q(this,_n));Qe(this,On,0),Qe(this,Hn,e),Qe(this,Qi,t=>{Qe(this,On,Q(this,On)-e[t]),e[t]=0}),Qe(this,Gs,(t,r,i,a)=>{if(Ue(this,At,Mt).call(this,r))return 0;if(!ci(i))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(i=a(r,t),!ci(i))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 i}),Qe(this,Aa,(t,r,i)=>{if(e[t]=r,Q(this,Hr)){const a=Q(this,Hr)-e[t];for(;Q(this,On)>a;)Ue(this,Ra,Ho).call(this,!0)}Qe(this,On,Q(this,On)+e[t]),i&&(i.entrySize=r,i.totalCalculatedSize=Q(this,On))})},Qi=new WeakMap,Aa=new WeakMap,Gs=new WeakMap,xn=new WeakSet,ui=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,sr);!(!Ue(this,Qs,Mh).call(this,t)||((e||!Q(this,Wr).call(this,t))&&(yield t),t===Q(this,Sr)));)t=Q(this,zr)[t]},Ln=new WeakSet,di=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,Sr);!(!Ue(this,Qs,Mh).call(this,t)||((e||!Q(this,Wr).call(this,t))&&(yield t),t===Q(this,sr)));)t=Q(this,Dr)[t]},Qs=new WeakSet,Mh=function(e){return e!==void 0&&Q(this,jt).get(Q(this,xt)[e])===e},Ra=new WeakSet,Ho=function(e){var a,s;const t=Q(this,Sr),r=Q(this,xt)[t],i=Q(this,et)[t];return Q(this,mi)&&Ue(this,At,Mt).call(this,i)?i.__abortController.abort(new Error("evicted")):(Q(this,Tn)||Q(this,wr))&&(Q(this,Tn)&&((a=Q(this,gn))==null||a.call(this,i,r,"evict")),Q(this,wr)&&((s=Q(this,or))==null||s.push([i,r,"evict"]))),Q(this,Qi).call(this,t),e&&(Q(this,xt)[t]=void 0,Q(this,et)[t]=void 0,Q(this,En).push(t)),Q(this,Kt)===1?(Qe(this,Sr,Qe(this,sr,0)),Q(this,En).length=0):Qe(this,Sr,Q(this,Dr)[t]),Q(this,jt).delete(r),io(this,Kt)._--,t},Ia=new WeakSet,zo=function(e,t,r,i){const a=t===void 0?void 0:Q(this,et)[t];if(Ue(this,At,Mt).call(this,a))return a;const s=new Dl,{signal:o}=r;o==null||o.addEventListener("abort",()=>s.abort(o.reason),{signal:s.signal});const l={signal:s.signal,options:r,context:i},u=(v,y=!1)=>{const{aborted:N}=s.signal,F=r.ignoreFetchAbort&&v!==void 0;if(r.status&&(N&&!y?(r.status.fetchAborted=!0,r.status.fetchError=s.signal.reason,F&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),N&&!F&&!y)return f(s.signal.reason);const X=g;return Q(this,et)[t]===g&&(v===void 0?X.__staleWhileFetching?Q(this,et)[t]=X.__staleWhileFetching:this.delete(e):(r.status&&(r.status.fetchUpdated=!0),this.set(e,v,l.options))),v},d=v=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=v),f(v)),f=v=>{const{aborted:y}=s.signal,N=y&&r.allowStaleOnFetchAbort,F=N||r.allowStaleOnFetchRejection,X=F||r.noDeleteOnFetchRejection,p=g;if(Q(this,et)[t]===g&&(!X||p.__staleWhileFetching===void 0?this.delete(e):N||(Q(this,et)[t]=p.__staleWhileFetching)),F)return r.status&&p.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),p.__staleWhileFetching;if(p.__returned===p)throw v},m=(v,y)=>{var F;const N=(F=Q(this,ya))==null?void 0:F.call(this,e,a,l);N&&N instanceof Promise&&N.then(X=>v(X===void 0?void 0:X),y),s.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(v(void 0),r.allowStaleOnFetchAbort&&(v=X=>u(X,!0)))})};r.status&&(r.status.fetchDispatched=!0);const g=new Promise(m).then(u,d),b=Object.assign(g,{__abortController:s,__staleWhileFetching:a,__returned:void 0});return t===void 0?(this.set(e,b,{...l.options,status:void 0}),t=Q(this,jt).get(e)):Q(this,et)[t]=b,b},At=new WeakSet,Mt=function(e){if(!Q(this,mi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Dl},$s=new WeakSet,Ph=function(e,t){Q(this,zr)[t]=e,Q(this,Dr)[e]=t},$i=new WeakSet,fs=function(e){e!==Q(this,sr)&&(e===Q(this,Sr)?Qe(this,Sr,Q(this,Dr)[e]):Ue(this,$s,Ph).call(this,Q(this,zr)[e],Q(this,Dr)[e]),Ue(this,$s,Ph).call(this,Q(this,sr),e),Qe(this,sr,e))};let Lh=Qm;const Bl=class Bl extends km{constructor(t,r){super(r);I(this,"_fallbackMethod",()=>this);I(this,"out",()=>{});this.values.duration=t}};I(Bl,"createRestProxy",(t,r)=>{const i=new Bl(t,r);return new Proxy(i,{get(a,s,o){return typeof a[s]>"u"?a._fallbackMethod:a[s]},set(a,s,o,l){return!1}})});let wl=Bl;class VM extends km{constructor(t,r,i){super(i);I(this,"input");I(this,"ziffers");I(this,"callTime",0);I(this,"played",!1);I(this,"current");I(this,"retro",!1);I(this,"tick",0);I(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));I(this,"areWeThereYet",()=>{const t=this.ziffers.notStarted()||this.app.api.epulse()>this.callTime+this.current.duration*this.app.api.ppqn();return t?this.tick=0:this.tick++,t});I(this,"out",()=>{});this.app=i,this.input=t,this.ziffers=new cM(t,r)}sound(t){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki){const i=r.getExisting("freq","pitch","key","scale","octave");return new qy(i,this.app).sound(t)}else if(r instanceof Dh)return wl.createRestProxy(r.duration,this.app)}else return Rl.createRestProxy()}note(t=void 0){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki){const i=r.getExisting("note","pitch","bend","key","scale","octave"),a=new Vy(i,this.app);return t?a.note(t):a}else if(r instanceof Dh)return wl.createRestProxy(r.duration,this.app)}else return Rl.createRestProxy()}scale(t){return this.ziffers.scale(t),this}key(t){return this.ziffers.key(t),this}octave(t){return this.ziffers.octave(t),this}retrograde(){return this.tick===0&&this.ziffers.index===0&&this.ziffers.retrograde(),this}}Array.prototype.palindrome=function(n){let e=Array.from(this),t=Array.from(this.reverse());return e.concat(t)};Array.prototype.random=function(n){return this[Math.floor(Math.random()*this.length)]};Array.prototype.loop=function(n){return this[n%this.length]};Array.prototype.rand=Array.prototype.random;Array.prototype.in=function(n){return this.includes(n)};async function HM(){return Promise.all([NM(),Nl("github:Bubobubobubobubo/Topos-Samples/main"),Nl("github:tidalcycles/Dirt-Samples/master").then(()=>$M())])}HM();const zM=(...n)=>n.map(e=>JSON.stringify(e)).join(",");class WM{constructor(e){I(this,"variables",{});I(this,"counters",{});I(this,"_drunk",new pM(-100,100,!1));I(this,"randomGen",Math.random);I(this,"currentSeed");I(this,"localSeeds",new Map);I(this,"patternCache",new Lh({max:1e3,ttl:1e3*60*5}));I(this,"errorTimeoutID",0);I(this,"MidiConnection",new dM);I(this,"load");I(this,"_reportError",e=>{console.log(e),clearTimeout(this.errorTimeoutID),this.app.error_line.innerHTML=e,this.app.error_line.classList.remove("hidden"),this.errorTimeoutID=setTimeout(()=>this.app.error_line.classList.add("hidden"),2e3)});I(this,"time",()=>this.app.audioContext.currentTime);I(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.app.clock.start()});I(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.app.clock.pause()});I(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.app.clock.stop()});I(this,"silence",this.stop);I(this,"hush",this.stop);I(this,"mouseX",()=>this.app._mouseX);I(this,"mouseY",()=>this.app._mouseY);I(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));I(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));I(this,"script",(...e)=>{e.forEach(t=>{vl(this.app,this.app.universes[this.app.selected_universe].locals[t])})});I(this,"s",this.script);I(this,"clear_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});I(this,"cs",this.clear_script);I(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]=this.app.universes[this.app.selected_universe].locals[e]});I(this,"cps",this.copy_script);I(this,"midi_outputs",()=>(console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs));I(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});I(this,"note",(e=60)=>new Vy(e,this.app));I(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});I(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});I(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});I(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});I(this,"control_change",({control:e=20,value:t=0,channel:r=0})=>{this.MidiConnection.sendMidiControlChange(e,t,r)});I(this,"midi_panic",()=>{this.MidiConnection.panic()});I(this,"z",(e,t={})=>{const r=zM(e,t);let i;return this.app.api.patternCache.has(r)?i=this.app.api.patternCache.get(r):(i=new VM(e,t,this.app),this.app.api.patternCache.set(r,i)),(i&&i.ziffers.index===-1||i.played)&&(i.callTime=this.epulse(),i.played=!1),i});I(this,"counter",(e,t,r)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==r&&(this.counters[e].step=r??this.counters[e].step),this.counters[e].value+=this.counters[e].step,this.counters[e].limit!==void 0&&this.counters[e].value>this.counters[e].limit&&(this.counters[e].value=0)):this.counters[e]={value:0,step:r??1,limit:t},this.counters[e].value));I(this,"$",this.counter);I(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));I(this,"drunk_max",e=>{this._drunk.max=e});I(this,"drunk_min",e=>{this._drunk.min=e});I(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});I(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));I(this,"v",this.variable);I(this,"delete_variable",e=>{delete this.variables[e]});I(this,"dv",this.delete_variable);I(this,"clear_variables",()=>{this.variables={}});I(this,"cv",this.clear_variables);I(this,"div",e=>{const t=this.epulse();return Math.floor(t/Math.floor(e*this.ppqn()))%2===0});I(this,"divbar",e=>{const t=this.bar()-1;return Math.floor(t/e)%2===0});I(this,"divseq",(...e)=>{const t=e[0],r=e.slice(1),i=this.epulse(),a=Math.floor(i/Math.floor(t*this.ppqn()));return r[a%r.length]});I(this,"pick",(...e)=>e[Math.floor(this.randomGen()*e.length)]);I(this,"seqbeat",(...e)=>e[this.ebeat()%e.length]);I(this,"mel",(e,t)=>t[e%t.length]);I(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);I(this,"seqpulse",(...e)=>e[this.app.clock.time_position.pulse%e.length]);I(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);I(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);I(this,"irand",this.randI);I(this,"rI",this.randI);I(this,"r",this.rand);I(this,"ir",this.randI);I(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=Nh(e))});I(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=Nh(e);return this.localSeeds.set(e,t),t});I(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});I(this,"quantize",(e,t)=>{if(t.length===0)return e;let r=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),r));I(this,"cmp",this.clamp);I(this,"bpm",e=>e===void 0?this.app.clock.bpm:((e<1||e>500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e));I(this,"tempo",this.bpm);I(this,"bpb",e=>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));I(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));I(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});I(this,"odds",(e,t=15)=>this.randomGen()this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));I(this,"rarely",(e=15)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));I(this,"scarcely",(e=15)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));I(this,"sometimes",(e=15)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));I(this,"often",(e=15)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));I(this,"frequently",(e=15)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));I(this,"almostAlways",(e=15)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));I(this,"dice",e=>Math.floor(this.randomGen()*e)+1);I(this,"i",e=>e!==void 0?(this.app.universes[this.app.selected_universe].global.evaluations=e,this.app.universes[this.app.selected_universe]):this.app.universes[this.app.selected_universe].global.evaluations);I(this,"bar",()=>this.app.clock.time_position.bar);I(this,"tick",()=>this.app.clock.tick);I(this,"pulse",()=>this.app.clock.time_position.pulse);I(this,"beat",()=>this.app.clock.time_position.beat);I(this,"ebeat",()=>this.app.clock.beats_since_origin);I(this,"epulse",()=>this.app.clock.pulses_since_origin);I(this,"onbar",(e,...t)=>{const r=[...Array(e).keys()].map(i=>i+1);return console.log(t.some(i=>r.includes(i%e))),t.some(i=>r.includes(i%e))});I(this,"onbeat",(...e)=>{let t=[];return e.forEach(r=>{r=r%this.app.clock.time_signature[0]+1;let i=Math.floor(r),a=r-i;t.push(i===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===a*this.app.clock.ppqn)}),t.some(r=>r==!0)});I(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);I(this,"min",(...e)=>Math.min(...e));I(this,"max",(...e)=>Math.max(...e));I(this,"mean",(...e)=>e.reduce((r,i)=>r+i,0)/e.length);I(this,"limit",(e,t,r)=>Math.min(Math.max(e,t),r));I(this,"delay",(e,t)=>{setTimeout(t,e)});I(this,"delayr",(e,t,r)=>{[...Array(t).keys()].map(a=>e*a).forEach((a,s)=>{setTimeout(r,a)})});I(this,"mod",(...e)=>e.map(r=>this.epulse()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"modpulse",(...e)=>e.map(r=>this.epulse()%r===0).some(r=>r===!0));I(this,"pmod",this.modpulse);I(this,"modbar",(...e)=>e.map(r=>this.bar()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"bmod",this.modbar);I(this,"euclid",(e,t,r,i=0)=>this._euclidean_cycle(t,r,i)[e%r]);I(this,"ec",this.euclid);I(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(a=>a==="1");return i[e%i.length]});I(this,"line",(e,t,r=1)=>{const i=[];if(t>e&&r>0||tMath.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+t);I(this,"usine",(e=1,t=0)=>(this.sine(e,t)+1)/2);I(this,"saw",(e=1,t=0)=>this.app.clock.ctx.currentTime*e%1*2-1+t);I(this,"usaw",(e=1,t=0)=>(this.saw(e,t)+1)/2);I(this,"triangle",(e=1,t=0)=>Math.abs(this.saw(e,t))*2-1);I(this,"utriangle",(e=1,t=0)=>(this.triangle(e,t)+1)/2);I(this,"square",(e=1,t=0,r=.5)=>{const i=1/e;return(Date.now()/1e3+t)%i/i(this.square(e,t,r)+1)/2);I(this,"noise",()=>this.randomGen()*2-1);I(this,"abs",Math.abs);I(this,"sound",e=>new qy(e,this.app));I(this,"snd",this.sound);I(this,"samples",Nl);I(this,"soundMap",Pm);I(this,"log",console.log);I(this,"scale",hM);I(this,"rate",e=>{});this.app=e}_euclidean_cycle(e,t,r=0){if(e==t)return Array.from({length:t},()=>!0);function i(o,l){const u=o.length,d=(l+1)%u;return o[l]>o[d]}if(e>=t)return[!0];const a=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let s=a.map((o,l)=>i(a,l));return r!=0&&(s=s.slice(r).concat(s.slice(0,r))),s}}var Wo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zy(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ky={exports:{}};(function(n){(function(){function e(p){var E={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:`Remove only spaces, ' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids`,type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as
(GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex: foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(p===!1)return JSON.parse(JSON.stringify(E));var O={};for(var A in E)E.hasOwnProperty(A)&&(O[A]=E[A].defaultValue);return O}function t(){var p=e(!0),E={};for(var O in p)p.hasOwnProperty(O)&&(E[O]=!0);return E}var r={},i={},a={},s=e(!0),o="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:t()};r.helper={},r.extensions={},r.setOption=function(p,E){return s[p]=E,this},r.getOption=function(p){return s[p]},r.getOptions=function(){return s},r.resetOptions=function(){s=e(!0)},r.setFlavor=function(p){if(!l.hasOwnProperty(p))throw Error(p+" flavor was not found");r.resetOptions();var E=l[p];o=p;for(var O in E)E.hasOwnProperty(O)&&(s[O]=E[O])},r.getFlavor=function(){return o},r.getFlavorOptions=function(p){if(l.hasOwnProperty(p))return l[p]},r.getDefaultOptions=function(p){return e(p)},r.subParser=function(p,E){if(r.helper.isString(p))if(typeof E<"u")i[p]=E;else{if(i.hasOwnProperty(p))return i[p];throw Error("SubParser named "+p+" not registered!")}},r.extension=function(p,E){if(!r.helper.isString(p))throw Error("Extension 'name' must be a string");if(p=r.helper.stdExtName(p),r.helper.isUndefined(E)){if(!a.hasOwnProperty(p))throw Error("Extension named "+p+" is not registered!");return a[p]}else{typeof E=="function"&&(E=E()),r.helper.isArray(E)||(E=[E]);var O=u(E,p);if(O.valid)a[p]=E;else throw Error(O.error)}},r.getAllExtensions=function(){return a},r.removeExtension=function(p){delete a[p]},r.resetExtensions=function(){a={}};function u(p,E){var O=E?"Error in "+E+" extension->":"Error in unnamed extension",A={valid:!0,error:""};r.helper.isArray(p)||(p=[p]);for(var D=0;D"u"},r.helper.forEach=function(p,E){if(r.helper.isUndefined(p))throw new Error("obj param is required");if(r.helper.isUndefined(E))throw new Error("callback param is required");if(!r.helper.isFunction(E))throw new Error("callback param must be a function/closure");if(typeof p.forEach=="function")p.forEach(E);else if(r.helper.isArray(p))for(var O=0;O").replace(/&/g,"&")};var f=function(p,E,O,A){var D=A||"",M=D.indexOf("g")>-1,w=new RegExp(E+"|"+O,"g"+D.replace(/g/g,"")),B=new RegExp(E,D.replace(/g/g,"")),re=[],ie,j,J,L,G;do for(ie=0;J=w.exec(p);)if(B.test(J[0]))ie++||(j=w.lastIndex,L=j-J[0].length);else if(ie&&!--ie){G=J.index+J[0].length;var Z={left:{start:L,end:j},match:{start:j,end:J.index},right:{start:J.index,end:G},wholeMatch:{start:L,end:G}};if(re.push(Z),!M)return re}while(ie&&(w.lastIndex=j));return re};r.helper.matchRecursiveRegExp=function(p,E,O,A){for(var D=f(p,E,O,A),M=[],w=0;w0){var ie=[];w[0].wholeMatch.start!==0&&ie.push(p.slice(0,w[0].wholeMatch.start));for(var j=0;j=0?A+(O||0):A},r.helper.splitAtIndex=function(p,E){if(!r.helper.isString(p))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[p.substring(0,E),p.substring(E)]},r.helper.encodeEmailAddress=function(p){var E=[function(O){return""+O.charCodeAt(0)+";"},function(O){return""+O.charCodeAt(0).toString(16)+";"},function(O){return O}];return p=p.replace(/./g,function(O){if(O==="@")O=E[Math.floor(Math.random()*2)](O);else{var A=Math.random();O=A>.9?E[2](O):A>.45?E[1](O):E[0](O)}return O}),p},r.helper.padEnd=function(E,O,A){return O=O>>0,A=String(A||" "),E.length>O?String(E):(O=O-E.length,O>A.length&&(A+=A.repeat(O/A.length)),String(E)+A.slice(0,O))},typeof console>"u"&&(console={warn:function(p){alert(p)},log:function(p){alert(p)},error:function(p){throw p}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨❤️👨",couple_with_heart_woman_woman:"👩❤️👩",couplekiss_man_man:"👨❤️💋👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩❤️💋👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨👦",family_man_boy_boy:"👨👦👦",family_man_girl:"👨👧",family_man_girl_boy:"👨👧👦",family_man_girl_girl:"👨👧👧",family_man_man_boy:"👨👨👦",family_man_man_boy_boy:"👨👨👦👦",family_man_man_girl:"👨👨👧",family_man_man_girl_boy:"👨👨👧👦",family_man_man_girl_girl:"👨👨👧👧",family_man_woman_boy_boy:"👨👩👦👦",family_man_woman_girl:"👨👩👧",family_man_woman_girl_boy:"👨👩👧👦",family_man_woman_girl_girl:"👨👩👧👧",family_woman_boy:"👩👦",family_woman_boy_boy:"👩👦👦",family_woman_girl:"👩👧",family_woman_girl_boy:"👩👧👦",family_woman_girl_girl:"👩👧👧",family_woman_woman_boy:"👩👩👦",family_woman_woman_boy_boy:"👩👩👦👦",family_woman_woman_girl:"👩👩👧",family_woman_woman_girl_boy:"👩👩👧👦",family_woman_woman_girl_girl:"👩👩👧👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨🎨",man_astronaut:"👨🚀",man_cartwheeling:"🤸♂️",man_cook:"👨🍳",man_dancing:"🕺",man_facepalming:"🤦♂️",man_factory_worker:"👨🏭",man_farmer:"👨🌾",man_firefighter:"👨🚒",man_health_worker:"👨⚕️",man_in_tuxedo:"🤵",man_judge:"👨⚖️",man_juggling:"🤹♂️",man_mechanic:"👨🔧",man_office_worker:"👨💼",man_pilot:"👨✈️",man_playing_handball:"🤾♂️",man_playing_water_polo:"🤽♂️",man_scientist:"👨🔬",man_shrugging:"🤷♂️",man_singer:"👨🎤",man_student:"👨🎓",man_teacher:"👨🏫",man_technologist:"👨💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩🎨",woman_astronaut:"👩🚀",woman_cartwheeling:"🤸♀️",woman_cook:"👩🍳",woman_facepalming:"🤦♀️",woman_factory_worker:"👩🏭",woman_farmer:"👩🌾",woman_firefighter:"👩🚒",woman_health_worker:"👩⚕️",woman_judge:"👩⚖️",woman_juggling:"🤹♀️",woman_mechanic:"👩🔧",woman_office_worker:"👩💼",woman_pilot:"👩✈️",woman_playing_handball:"🤾♀️",woman_playing_water_polo:"🤽♀️",woman_scientist:"👩🔬",woman_shrugging:"🤷♀️",woman_singer:"👩🎤",woman_student:"👩🎓",woman_teacher:"👩🏫",woman_technologist:"👩💻",woman_with_turban:"👳♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'
',showdown:`S`},r.Converter=function(p){var E={},O=[],A=[],D={},M=o,w={parsed:{},raw:"",format:""};B();function B(){p=p||{};for(var L in s)s.hasOwnProperty(L)&&(E[L]=s[L]);if(typeof p=="object")for(var G in p)p.hasOwnProperty(G)&&(E[G]=p[G]);else throw Error("Converter expects the passed parameter to be an object, but "+typeof p+" was passed instead.");E.extensions&&r.helper.forEach(E.extensions,re)}function re(L,G){if(G=G||null,r.helper.isString(L))if(L=r.helper.stdExtName(L),G=L,r.extensions[L]){console.warn("DEPRECATION WARNING: "+L+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),ie(r.extensions[L],L);return}else if(!r.helper.isUndefined(a[L]))L=a[L];else throw Error('Extension "'+L+'" could not be loaded. It was either not found or is not a valid extension.');typeof L=="function"&&(L=L()),r.helper.isArray(L)||(L=[L]);var Z=u(L,G);if(!Z.valid)throw Error(Z.error);for(var z=0;z>",!1),Vt=vt("<<",!1),ht=vt("<",!1),Nt=vt(">",!1),kt=vt("_",!1),Qr=vt("?",!1),Fe=vt(":",!1),Mr=vt("r",!1),st=function(U){return U.filter(K=>K)},$e=function(){return parseFloat(Tr())},Pr=function(){return parseInt(Tr())},nr=function(){},mr=function(){return Yk[Tr()]},V=function(U){return U.filter(K=>K)},he=function(U){return vr(oM,{items:U})},ve=function(U,K,ae){return vr(lM,{left:U,operation:K,right:ae})},Ce=function(U){return U},Ke=function(U){return vr(Lm,{items:U})},Ee=function(U){return vr(iM,{octave:U})},Gt=function(){return Tr().split("").reduce((U,K)=>U+(K==="^"?1:-1),0)},ot=function(){return vr(FS,{seededRandom:a.seededRandom})},bt=function(U,K){return vr(FS,{min:U,max:K,seededRandom:a.seededRandom})},en=function(U,K){return vr(sM,{item:U,times:K})},lt=function(U){return vr(aM,{duration:U})},Wt=function(U){return vr(Dh,{duration:U})},St=function(U,K,ae){const _e=U?a.nodeOptions.octave+U:a.nodeOptions.octave;return vr(Ki,{duration:K,pitch:ae,octave:_e})},we=function(U,K){return vr(nM,{pitches:[U].concat(K)})},H=0,Ot=0,nt=[{line:1,column:1}],Qt=0,cr=[],ze=0,Ge={},Dt;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');u=l[a.startRule]}function Tr(){return i.substring(Ot,H)}function yi(){return $t(Ot,H)}function vt(U,K){return{type:"literal",text:U,ignoreCase:K}}function $n(U,K,ae){return{type:"class",parts:U,inverted:K,ignoreCase:ae}}function tn(){return{type:"end"}}function qn(U){return{type:"other",description:U}}function rn(U){var K=nt[U],ae;if(K)return K;for(ae=U-1;!nt[ae];)ae--;for(K=nt[ae],K={line:K.line,column:K.column};aeQt&&(Qt=H,cr=[]),cr.push(U))}function ni(U,K,ae){return new e(e.buildMessage(U,K),U,K,ae)}function Y(){var U,K,ae=H*24+0,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=ye(),K!==s&&(Ot=U,K=st(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function ee(){var U,K,ae,_e,Le,Je,yr,An=H*24+1,Ri=Ge[An];if(Ri)return H=Ri.nextPos,Ri.result;for(U=H,K=H,i.charCodeAt(H)===45?(ae=d,H++):(ae=s,ze===0&&We(G)),ae===s&&(ae=null),_e=[],j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z));Le!==s;)_e.push(Le),j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z));if(i.charCodeAt(H)===46?(Le=f,H++):(Le=s,ze===0&&We(z)),Le!==s){if(Je=[],j.test(i.charAt(H))?(yr=i.charAt(H),H++):(yr=s,ze===0&&We(Z)),yr!==s)for(;yr!==s;)Je.push(yr),j.test(i.charAt(H))?(yr=i.charAt(H),H++):(yr=s,ze===0&&We(Z));else Je=s;Je!==s?(ae=[ae,_e,Le,Je],K=ae):(H=K,K=s)}else H=K,K=s;if(K===s)if(K=H,i.charCodeAt(H)===46?(ae=f,H++):(ae=s,ze===0&&We(z)),ae!==s){if(_e=[],j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z)),Le!==s)for(;Le!==s;)_e.push(Le),j.test(i.charAt(H))?(Le=i.charAt(H),H++):(Le=s,ze===0&&We(Z));else _e=s;_e!==s?(ae=[ae,_e],K=ae):(H=K,K=s)}else H=K,K=s;return K!==s&&(Ot=U,K=$e()),U=K,Ge[An]={nextPos:H,result:U},U}function se(){var U,K,ae=H*24+2,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,i.charCodeAt(H)===45?H++:ze===0&&We(G),j.test(i.charAt(H))?(K=i.charAt(H),H++):(K=s,ze===0&&We(Z)),K!==s?(Ot=U,U=Pr()):(H=U,U=s),Ge[ae]={nextPos:H,result:U},U)}function fe(){var U,K,ae=H*24+3,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(ze++,U=H,J.test(i.charAt(H))?(K=i.charAt(H),H++):(K=s,ze===0&&We(ue)),K!==s&&(Ot=U,K=nr()),U=K,ze--,U===s&&(K=s,ze===0&&We(ce)),Ge[ae]={nextPos:H,result:U},U)}function Se(){var U,K,ae=H*24+7,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,L.test(i.charAt(H))?(K=i.charAt(H),H++):(K=s,ze===0&&We(Ve)),K!==s&&(Ot=U,K=mr()),U=K,Ge[ae]={nextPos:H,result:U},U)}function xe(){var U,K=H*24+8,ae=Ge[K];return ae?(H=ae.nextPos,ae.result):(U=Se(),U===s&&(U=ee()),Ge[K]={nextPos:H,result:U},U)}function ye(){var U,K,ae,_e=H*24+9,Le=Ge[_e];if(Le)return H=Le.nextPos,Le.result;if(U=H,K=[],ae=Ai(),ae===s&&(ae=_r(),ae===s&&(ae=dt(),ae===s&&(ae=ii(),ae===s&&(ae=ai())))),ae!==s)for(;ae!==s;)K.push(ae),ae=Ai(),ae===s&&(ae=_r(),ae===s&&(ae=dt(),ae===s&&(ae=ii(),ae===s&&(ae=ai()))));else K=s;return K!==s&&(Ot=U,K=V(K)),U=K,Ge[_e]={nextPos:H,result:U},U}function dt(){var U,K,ae,_e,Le=H*24+10,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,i.charCodeAt(H)===40?(K=b,H++):(K=s,ze===0&&We(Re)),K!==s?(ae=ye(),ae!==s?(i.charCodeAt(H)===41?(_e=v,H++):(_e=s,ze===0&&We(Ie)),_e!==s?(Ot=U,U=he(ae)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function _r(){var U,K,ae,_e,Le=H*24+11,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,K=dt(),K!==s?(ae=$r(),ae!==s?(_e=dt(),_e!==s?(Ot=U,U=ve(K,ae,_e)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function $r(){var U,K=H*24+12,ae=Ge[K];return ae?(H=ae.nextPos,ae.result):(i.charCodeAt(H)===43?(U=y,H++):(U=s,ze===0&&We(le)),U===s&&(i.charCodeAt(H)===45?(U=d,H++):(U=s,ze===0&&We(G)),U===s&&(i.charCodeAt(H)===42?(U=N,H++):(U=s,ze===0&&We(Me)),U===s&&(i.charCodeAt(H)===47?(U=F,H++):(U=s,ze===0&&We(je)),U===s&&(i.charCodeAt(H)===37?(U=X,H++):(U=s,ze===0&&We(He)),U===s&&(i.charCodeAt(H)===94?(U=p,H++):(U=s,ze===0&&We(rt)),U===s&&(i.charCodeAt(H)===124?(U=g,H++):(U=s,ze===0&&We(Pe)),U===s&&(i.charCodeAt(H)===38?(U=E,H++):(U=s,ze===0&&We(ft)),U===s&&(i.substr(H,2)===O?(U=O,H+=2):(U=s,ze===0&&We(Ct)),U===s&&(i.substr(H,2)===A?(U=A,H+=2):(U=s,ze===0&&We(Vt))))))))))),Ge[K]={nextPos:H,result:U},U)}function ii(){var U,K,ae=H*24+13,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=ra(),K===s&&(K=na(),K===s&&(K=si(),K===s&&(K=Va(),K===s&&(K=fe(),K===s&&(K=za(),K===s&&(K=Ha(),K===s&&(K=ta(),K===s&&(K=dt())))))))),K!==s&&(Ot=U,K=Ce(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function ai(){var U,K,ae,_e,Le=H*24+14,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,i.charCodeAt(H)===60?(K=D,H++):(K=s,ze===0&&We(ht)),K!==s?(ae=ye(),ae!==s?(i.charCodeAt(H)===62?(_e=M,H++):(_e=s,ze===0&&We(Nt)),_e!==s?(Ot=U,U=Ke(ae)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function Va(){var U,K,ae=H*24+15,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=Br(),K!==s&&(Ot=U,K=Ee(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function Br(){var U,K,ae,_e=H*24+16,Le=Ge[_e];if(Le)return H=Le.nextPos,Le.result;if(U=H,K=[],i.charCodeAt(H)===94?(ae=p,H++):(ae=s,ze===0&&We(rt)),ae===s&&(i.charCodeAt(H)===95?(ae=w,H++):(ae=s,ze===0&&We(kt))),ae!==s)for(;ae!==s;)K.push(ae),i.charCodeAt(H)===94?(ae=p,H++):(ae=s,ze===0&&We(rt)),ae===s&&(i.charCodeAt(H)===95?(ae=w,H++):(ae=s,ze===0&&We(kt)));else K=s;return K!==s&&(Ot=U,K=Gt()),U=K,Ge[_e]={nextPos:H,result:U},U}function Ha(){var U,K,ae=H*24+17,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,i.charCodeAt(H)===63?(K=B,H++):(K=s,ze===0&&We(Qr)),K!==s&&(Ot=U,K=ot()),U=K,Ge[ae]={nextPos:H,result:U},U)}function ta(){var U,K,ae,_e,Le,Je,yr=H*24+18,An=Ge[yr];return An?(H=An.nextPos,An.result):(U=H,i.charCodeAt(H)===40?(K=b,H++):(K=s,ze===0&&We(Re)),K!==s?(ae=se(),ae!==s?(i.charCodeAt(H)===44?(_e=m,H++):(_e=s,ze===0&&We(Te)),_e!==s?(Le=se(),Le!==s?(i.charCodeAt(H)===41?(Je=v,H++):(Je=s,ze===0&&We(Ie)),Je!==s?(Ot=U,U=bt(ae,Le)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[yr]={nextPos:H,result:U},U)}function Ai(){var U,K,ae,_e,Le=H*24+19,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,K=ii(),K!==s?(i.charCodeAt(H)===58?(ae=re,H++):(ae=s,ze===0&&We(Fe)),ae!==s?(_e=se(),_e!==s?(Ot=U,U=en(K,_e)):(H=U,U=s)):(H=U,U=s)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function za(){var U,K,ae=H*24+20,_e=Ge[ae];return _e?(H=_e.nextPos,_e.result):(U=H,K=xe(),K!==s&&(Ot=U,K=lt(K)),U=K,Ge[ae]={nextPos:H,result:U},U)}function ra(){var U,K,ae,_e=H*24+21,Le=Ge[_e];return Le?(H=Le.nextPos,Le.result):(U=H,K=xe(),K===s&&(K=null),i.charCodeAt(H)===114?(ae=ie,H++):(ae=s,ze===0&&We(Mr)),ae!==s?(Ot=U,U=Wt(K)):(H=U,U=s),Ge[_e]={nextPos:H,result:U},U)}function si(){var U,K,ae,_e,Le=H*24+22,Je=Ge[Le];return Je?(H=Je.nextPos,Je.result):(U=H,K=Br(),K===s&&(K=null),ae=xe(),ae===s&&(ae=null),_e=se(),_e!==s?(Ot=U,U=St(K,ae,_e)):(H=U,U=s),Ge[Le]={nextPos:H,result:U},U)}function na(){var U,K,ae,_e,Le=H*24+23,Je=Ge[Le];if(Je)return H=Je.nextPos,Je.result;if(U=H,K=si(),K!==s){if(ae=[],_e=si(),_e!==s)for(;_e!==s;)ae.push(_e),_e=si();else ae=s;ae!==s?(Ot=U,U=we(K,ae)):(H=U,U=s)}else H=U,U=s;return Ge[Le]={nextPos:H,result:U},U}var Cr=a.nodeOptions||{};function vr(U,K){K.text=Tr(),K.location=yi();for(var ae in Cr)(K[ae]===void 0||K[ae]===null)&&(K[ae]=Cr[ae]);return new U(K)}if(Dt=u(),Dt!==s&&H===i.length)return Dt;throw Dt!==s&&He.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"))}retrograde(){return this.evaluated=this.evaluated.reverse(),this}scale(e){return this.isInOptions("scaleName",e)?this:(this.update({scale:e}),this)}key(e){return console.log("KEY?",this.isInOptions("key",e)),this.isInOptions("key",e)?this:(this.update({key:e}),this)}octave(e){return this.isInOptions("octave",e)?this:(this.update({octave:e}),this)}isInOptions(e,t){return this.options.nodeOptions&&this.options.nodeOptions[e]===t}next(){this.index++,this.counter++;const e=this.evaluated[this.index%this.evaluated.length];return this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.update(),this.index=0),e}applyTransformations(){var e;(e=this.globalOptions)!=null&&e.retrograde&&(this.evaluated=this.evaluated.reverse())}clone(){return Al(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=0}evaluate(e={}){const t=this.values.map(r=>r.evaluate(e)).flat(1/0).filter(r=>r!==void 0);return t.forEach((r,i)=>{r._next=i0?i-1:t.length-1}),t}}const dM=n=>{let e={};return rM.forEach(t=>{if(n[t]!==void 0){const r=n[t];e[t]=r,delete n[t]}}),e};class pM{constructor(){I(this,"midiAccess",null);I(this,"midiOutputs",[]);I(this,"currentOutputIndex",0);I(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."),this.currentOutputIndex=-1)}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndex0&&this.currentOutputIndex>=0&&this.currentOutputIndex=this.midiOutputs.length?(console.error(`Invalid MIDI output index. Index must be in the range 0-${this.midiOutputs.length-1}.`),this.currentOutputIndex):e;{const t=this.midiOutputs.findIndex(r=>r.name===e);return t!==-1?t:(console.error(`MIDI output "${e}" not found.`),this.currentOutputIndex)}}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,t)=>{console.log(`${t+1}. ${e.name}`)})}sendMidiNote(e,t,r,i,a=this.currentOutputIndex,s=void 0){typeof a=="string"&&(a=this.getMidiOutputIndex(a));const o=this.midiOutputs[a];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,r],u=[128+t,e,0];o.send(l),s&&this.sendPitchBend(s,t,a);const d=setTimeout(()=>{o.send(u),s&&this.sendPitchBend(8192,t,a),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=d}else console.error("MIDI output not available.")}sendSysExMessage(e){const t=this.midiOutputs[this.currentOutputIndex];t?t.send(e):console.error("MIDI output not available.")}sendPitchBend(e,t,r=this.currentOutputIndex){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(t<0||t>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15."),typeof r=="string"&&(r=this.getMidiOutputIndex(r));const i=this.midiOutputs[r];if(i){const a=e&127,s=e>>7&127;i.send([224|t,a,s])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const r=this.midiOutputs[this.currentOutputIndex];r?r.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,r){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+r,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const r=this.scheduledNotes[t];clearTimeout(r),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class fM{constructor(e,t,r){I(this,"min");I(this,"max");I(this,"wrap");I(this,"position");this.min=e,this.max=t,this.wrap=r,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 hM={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 mM(n,e="major",t=4){const r=hM[e];if(!r)throw new Error(`Unknown scale ${e}`);let i=n%r.length;i<0&&(i+=r.length);let a=Math.floor(n/r.length);return 60+(t+a)*12+r[i]}class km{constructor(e){I(this,"seedValue");I(this,"randomGen",Math.random);I(this,"app");I(this,"values",{});I(this,"odds",(e,t)=>this.randomGen()this.odds(.025,e));I(this,"rarely",e=>this.odds(.1,e));I(this,"scarcely",e=>this.odds(.25,e));I(this,"sometimes",e=>this.odds(.5,e));I(this,"often",e=>this.odds(.75,e));I(this,"frequently",e=>this.odds(.9,e));I(this,"almostAlways",e=>this.odds(.985,e));I(this,"modify",e=>e(this));I(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));I(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));I(this,"apply",e=>this.modify(e));I(this,"duration",e=>(this.values.duration=e,this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}class Gy extends km{constructor(t){super(t);I(this,"octave",t=>(this.values.octave=t,this.update(),this));I(this,"key",t=>(this.values.key=t,this.update(),this));I(this,"scale",t=>(Dm(t)?(this.values.scaleName=t,this.values.parsedScale=Zi(t)):this.values.parsedScale=wm(t),this.update(),this));I(this,"freq",t=>{this.values.freq=t;const r=zk(t);return r%1!==0?(this.values.note=Math.floor(r),this.values.bend=Uy(r)[1]):this.values.note=r,this});I(this,"update",()=>{})}}const Ml=class Ml{constructor(){I(this,"_fallbackMethod",()=>this);I(this,"out",()=>{})}};I(Ml,"createRestProxy",()=>{const e=new Ml;return new Proxy(e,{get(t,r,i){return typeof t[r]>"u"?t._fallbackMethod:t[r]},set(t,r,i,a){return!1}})});let Rl=Ml,Nr=[],_M=(n,e)=>{let t,r=[],i={lc:0,l:e||0,value:n,set(a){i.value=a,i.notify()},get(){return i.lc||i.listen(()=>{})(),i.value},notify(a){t=r;let s=!Nr.length;for(let o=0;o{r===t&&(r=r.slice());let o=r.indexOf(a);~o&&(r.splice(o,2),i.lc--,i.lc||i.off())}},subscribe(a,s){let o=i.listen(a,s);return a(i.value),o},off(){}};return i},gM=(n={})=>{let e=_M(n);return e.setKey=function(t,r){typeof r>"u"?t in e.value&&(e.value={...e.value},delete e.value[t],e.notify(t)):e.value[t]!==r&&(e.value={...e.value,[t]:r},e.notify(t))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(t,r,i,a){super(t),r=Math.abs(r),this.delayTime.value=i;const s=t.createGain();s.gain.value=Math.min(Math.abs(a),.995),this.feedback=s.gain;const o=t.createGain();return o.gain.value=r,this.delayGain=o,this.connect(s),this.connect(o),s.connect(this),this.connect=l=>o.connect(l),this}start(t){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,t+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,t,r){return new n(this,e,t,r)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const t=this.sampleRate*n,r=this.createBuffer(e,t,this.sampleRate),i=r.getChannelData(0);for(let a=0;a(e.buffer=this.impulseResponse(t),e.duration=n,e),e.setDuration(n),e});var YS={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 n extends GainNode{constructor(t,r){if(super(t),!YS[r])throw new Error("vowel: unknown vowel "+r);const{gains:i,qs:a,freqs:s}=YS[r],o=t.createGain();for(let l=0;l<5;l++){const u=t.createGain();u.gain.value=i[l];const d=t.createBiquadFilter();d.type="bandpass",d.Q.value=a[l],d.frequency.value=s[l],this.connect(d),d.connect(u),u.connect(o)}return o.gain.value=8,this.connect=l=>o.connect(l),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}const SM=n=>{var i;if(typeof n!="string")return[];const[e,t="",r]=((i=n.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:i.slice(1))||[];return e?[e,t,r?Number(r):void 0]:[]},OM={c:0,d:2,e:4,f:5,g:7,a:9,b:11},EM={"#":1,b:-1,s:1,f:-1},Mm=(n,e=3)=>{const[t,r,i=e]=SM(n);if(!t)throw new Error('not a note: "'+n+'"');const a=OM[t.toLowerCase()],s=(r==null?void 0:r.split("").reduce((o,l)=>o+EM[l],0))||0;return(Number(i)+1)*12+a+s},bM=n=>Math.pow(2,(n-69)/12)*440,TM=(n,e,t)=>Math.min(Math.max(n,e),t),CM=n=>12*Math.log(n/440)/Math.LN2+69,vM=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:t,note:r}=n;if(typeof t=="number")return CM(t);if(typeof r=="string")return Mm(r);if(typeof r=="number")return r;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},yM="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function Il(n){const e=Gr().createGain();return e.gain.value=n,e}const AM=({s:n,freq:e,t})=>{const r=Gr().createOscillator();return r.type=n||"triangle",r.frequency.value=Number(e),r.start(t),{node:r,stop:i=>r.stop(i)}},Qy=(n,e,t,r,i,a)=>{const s=Gr().createGain();return s.gain.setValueAtTime(0,a),s.gain.linearRampToValueAtTime(i,a+n),s.gain.linearRampToValueAtTime(t*i,a+n+e),{node:s,stop:o=>{s.gain.setValueAtTime(t*i,o),s.gain.linearRampToValueAtTime(0,o+r)}}},Yc=(n,e,t)=>{const r=Gr().createBiquadFilter();return r.type=n,r.frequency.value=e,r.Q.value=t,r};let RM=n=>console.log(n);const Ya=(...n)=>RM(...n),Pm=gM();function $y(n,e,t={}){Pm.setKey(n,{onTrigger:e,data:t})}function GS(n){return Pm.get()[n]}let Gc;const Gr=()=>(Gc||(Gc=new AudioContext),Gc);let Io;const Bm=()=>{const n=Gr();return Io||(Io=n.createGain(),Io.connect(n.destination)),Io};let Qc;function IM(){return Qc||(Qc=Gr().audioWorklet.addModule(yM),Qc)}function $c(n,e,t){const r=new AudioWorkletNode(n,e);return Object.entries(t).forEach(([i,a])=>{r.parameters.get(i).value=a}),r}async function NM(n={}){const{disableWorklets:e=!1}=n;typeof window<"u"&&(await Gr().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await IM().catch(t=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",t)}))}async function DM(n){return new Promise(e=>{document.addEventListener("click",async function t(){await NM(n),e(),document.removeEventListener("click",t)})})}let xi={};function wM(n,e,t,r){var i;if(t=TM(t,0,.98),!xi[n]){const a=Gr().createFeedbackDelay(1,e,t);(i=a.start)==null||i.call(a,r),a.connect(Bm()),xi[n]=a}return xi[n].delayTime.value!==e&&xi[n].delayTime.setValueAtTime(e,r),xi[n].feedback.value!==t&&xi[n].feedback.setValueAtTime(t,r),xi[n]}let Li={};function xM(n,e=2){if(!Li[n]){const t=Gr().createReverb(e);t.connect(Bm()),Li[n]=t}return Li[n].duration!==e&&(Li[n]=Li[n].setDuration(e),Li[n].duration=e),Li[n]}function QS(n,e,t){const r=Il(t);return n.connect(r),r.connect(e),r}const LM=async(n,e,t)=>{const r=Gr();if(typeof n!="object")throw new Error(`expected hap.value to be an object, but got "${n}". Hint: append .note() or .s() to the end`,"error");let i=r.currentTime+e,{s:a="triangle",bank:s,source:o,gain:l=.8,cutoff:u,resonance:d=1,hcutoff:f,hresonance:m=1,bandf:g,bandq:b=1,coarse:v,crush:y,shape:N,pan:F,vowel:X,delay:p=0,delayfeedback:E=.5,delaytime:O=.25,orbit:A=1,room:D,size:M=2,velocity:w=1}=n;l*=w;let B=[];const re=()=>{B.forEach(Z=>Z==null?void 0:Z.disconnect())};s&&a&&(a=`${s}_${a}`);let ie;if(o)ie=o(i,n,t);else if(GS(a)){const{onTrigger:Z}=GS(a),z=await Z(i,n,re);z&&(ie=z.node,z.stop(i+t))}else throw new Error(`sound ${a} not found! Is it loaded?`);if(!ie)return;if(r.currentTime>i){Ya("[webaudio] skip hap: still loading",r.currentTime-i);return}const j=[];if(j.push(ie),j.push(Il(l)),u!==void 0&&j.push(Yc("lowpass",u,d)),f!==void 0&&j.push(Yc("highpass",f,m)),g!==void 0&&j.push(Yc("bandpass",g,b)),X!==void 0&&j.push(r.createVowelFilter(X)),v!==void 0&&j.push($c(r,"coarse-processor",{coarse:v})),y!==void 0&&j.push($c(r,"crush-processor",{crush:y})),N!==void 0&&j.push($c(r,"shape-processor",{shape:N})),F!==void 0){const Z=r.createStereoPanner();Z.pan.value=2*F-1,j.push(Z)}const J=Il(1);j.push(J),J.connect(Bm());let L;if(p>0&&O>0&&E>0){const Z=wM(A,O,E,i);L=QS(J,Z,p)}let G;if(D>0&&M>0){const Z=xM(A,M);G=QS(J,Z,D)}j.slice(1).reduce((Z,z)=>Z.connect(z),j[0]),B=j.concat([L,G])},qc={};function kM(n,e){var t=e?1e3:1024;if(n=t);return n.toFixed(1)+" "+r[i]}const MM=async(n,e,t,r,i,a,s)=>{let o=0;i!==void 0&&t!==void 0&&Ya("[sampler] hap has note and freq. ignoring note","warning");let l=vM({freq:i,note:t},36);o=l-36;const u=Gr();let d;if(Array.isArray(a))d=a[e%a.length];else{const b=y=>Mm(y)-l,v=Object.keys(a).filter(y=>!y.startsWith("_")).reduce((y,N,F)=>!y||Math.abs(b(N)){const i=t?`sound "${t}:${r}"`:"sample";if(!qc[n]){Ya(`[sampler] load ${i}..`,"load-sample",{url:n});const a=Date.now();qc[n]=fetch(n).then(s=>s.arrayBuffer()).then(async s=>{const o=Date.now()-a,l=kM(s.byteLength);return Ya(`[sampler] load ${i}... done! loaded ${l} in ${o}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(s)})}return qc[n]};function BM(n){const e=Gr(),t=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let r=0;rObject.entries(n).forEach(([r,i])=>{if(typeof i=="string"&&(i=[i]),typeof i!="object")throw new Error("wrong sample map format for "+r);t=i._base||t;const a=s=>(t+s).replace("github:","https://raw.githubusercontent.com/");Array.isArray(i)?i=i.map(a):i=Object.fromEntries(Object.entries(i).map(([s,o])=>[s,(typeof o=="string"?[o]:o).map(a)])),e(r,i)});let FM={};function YM(n){const e=Object.entries(FM).find(([t])=>n.startsWith(t));if(e)return e[1]}const Nl=async(n,e=n._base||"",t={})=>{if(typeof n=="string"){const a=YM(n);if(a)return a(n);if(n.startsWith("github:")){let[o,l]=n.split("github:");l=l.endsWith("/")?l.slice(0,-1):l,n=`https://raw.githubusercontent.com/${l}/strudel.json`}if(typeof fetch!="function")return;const s=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(o=>o.json()).then(o=>Nl(o,e||o._base||s,t)).catch(o=>{throw console.error(o),new Error(`error loading "${n}"`)})}const{prebake:r,tag:i}=t;UM(n,(a,s)=>$y(a,(o,l,u)=>GM(o,l,u,s),{type:"sample",samples:s,baseUrl:e,prebake:r,tag:i}),e)},$S=[];async function GM(n,e,t,r,i){const{s:a,freq:s,unit:o,nudge:l=0,cut:u,loop:d,clip:f=void 0,n:m=0,note:g,speed:b=1,begin:v=0,end:y=1}=e;if(b===0)return;const N=Gr(),{attack:F=.001,decay:X=.001,sustain:p=1,release:E=.001}=e,O=n+l,A=await MM(a,m,g,b,s,r,i);if(N.currentTime>n){Ya(`[sampler] still loading sound "${a}:${m}"`,"highlight");return}if(!A){Ya(`[sampler] could not load "${a}:${m}"`,"error");return}A.playbackRate.value=Math.abs(b)*A.playbackRate.value,o==="c"&&(A.playbackRate.value=A.playbackRate.value*A.buffer.duration*1);const D=v*A.buffer.duration;A.start(O,D);const M=A.buffer.duration/A.playbackRate.value,{node:w,stop:B}=Qy(F,X,p,E,1,n);A.connect(w);const re=N.createGain();w.connect(re),A.onended=function(){A.disconnect(),w.disconnect(),re.disconnect(),t()};const ie={node:re,bufferSource:A,stop:(j,J=f===void 0)=>{let L=j;J&&(L=n+(y-v)*M),A.stop(L+E),B(L)}};if(u!==void 0){const j=$S[u];j&&(j.node.gain.setValueAtTime(1,O),j.node.gain.linearRampToValueAtTime(0,O+.01)),$S[u]=ie}return ie}const QM=(n,e=1,t="sine")=>{const r=Gr(),i=r.createOscillator();i.type=t,i.frequency.value=n,i.start();const a=new GainNode(r,{gain:e});return i.connect(a),{node:a,stop:s=>i.stop(s)}},$M=(n,e,t,r="sine")=>{const i=n.frequency.value*e,a=i*t;return QM(i,a,r)};function qM(){["sine","square","triangle","sawtooth"].forEach(n=>{$y(n,(e,t,r)=>{const{attack:i=.001,decay:a=.05,sustain:s=.6,release:o=.01,fmh:l=1,fmi:u}=t;let{n:d,note:f,freq:m}=t;d=f||d||36,typeof d=="string"&&(d=Mm(d)),!m&&typeof d=="number"&&(m=bM(d));const{node:g,stop:b}=AM({t:e,s:n,freq:m});let v;if(u){const{node:X,stop:p}=$M(g,l,u);X.connect(g.frequency),v=p}const y=Il(.3),{node:N,stop:F}=Qy(i,a,s,o,1,e);return g.onended=()=>{g.disconnect(),y.disconnect(),r()},{node:g.connect(y).connect(N),stop:X=>{F(X);let p=X+o;b(p),v==null||v(p)}}},{type:"synth",prebake:!0})})}class qy extends Gy{constructor(t,r){super(r);I(this,"attack",t=>(this.values.attack=t,this));I(this,"atk",this.attack);I(this,"decay",t=>(this.values.decay=t,this));I(this,"dec",this.decay);I(this,"release",t=>(this.values.release=t,this));I(this,"rel",this.release);I(this,"unit",t=>(this.values.unit=t,this));I(this,"freq",t=>(this.values.freq=t,this));I(this,"fm",t=>{if(typeof t=="number")this.values.fmi=t;else{let r=t.split(":");this.values.fmi=parseFloat(r[0]),r.length>1&&(this.values.fmh=parseFloat(r[1]))}return this});I(this,"sound",t=>(this.values.s=t,this));I(this,"fmi",t=>(this.values.fmi=t,this));I(this,"fmh",t=>(this.values.fmh=t,this));I(this,"nudge",t=>(this.values.nudge=t,this));I(this,"cut",t=>(this.values.cut=t,this));I(this,"loop",t=>(this.values.loop=t,this));I(this,"clip",t=>(this.values.clip=t,this));I(this,"n",t=>(this.values.n=t,this));I(this,"note",t=>(this.values.note=t,this));I(this,"speed",t=>(this.values.speed=t,this));I(this,"begin",t=>(this.values.begin=t,this));I(this,"end",t=>(this.values.end=t,this));I(this,"gain",t=>(this.values.gain=t,this));I(this,"cutoff",t=>(this.values.cutoff=t,this));I(this,"resonance",t=>(this.values.resonance=t,this));I(this,"hcutoff",t=>(this.values.hcutoff=t,this));I(this,"hresonance",t=>(this.values.hresonance=t,this));I(this,"bandf",t=>(this.values.bandf=t,this));I(this,"bandq",t=>(this.values.bandq=t,this));I(this,"coarse",t=>(this.values.coarse=t,this));I(this,"crush",t=>(this.values.crush=t,this));I(this,"shape",t=>(this.values.shape=t,this));I(this,"pan",t=>(this.values.pan=t,this));I(this,"vowel",t=>(this.values.vowel=t,this));I(this,"delay",t=>(this.values.delay=t,this));I(this,"delayfeedback",t=>(this.values.delayfeedback=t,this));I(this,"delaytime",t=>(this.values.delaytime=t,this));I(this,"orbit",t=>(this.values.orbit=t,this));I(this,"room",t=>(this.values.room=t,this));I(this,"size",t=>(this.values.size=t,this));I(this,"velocity",t=>(this.values.velocity=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"sustain",t=>(this.values.dur=t,this));I(this,"sus",this.sustain);I(this,"update",()=>{if(this.values.key&&this.values.pitch&&this.values.parsedScale&&this.values.octave){const[t,r]=xm(this.values.key,this.values.pitch,this.values.parsedScale,this.values.octave);this.values.freq=Ps(t)}});I(this,"out",()=>LM(this.values,this.app.clock.pulse_duration,this.values.dur));this.app=r,typeof t=="string"?this.values={s:t,dur:.5}:this.values=t}}class Vy extends Gy{constructor(t,r){super(r);I(this,"midiConnection");I(this,"note",t=>(this.values.note=t,this));I(this,"sustain",t=>(this.values.sustain=t,this));I(this,"channel",t=>(this.values.channel=t,this));I(this,"port",t=>(this.values.port=this.midiConnection.getMidiOutputIndex(t),this));I(this,"add",t=>(this.values.note+=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"bend",t=>(this.values.bend=t,this));I(this,"random",(t=0,r=127)=>(t=Math.min(Math.max(t,0),127),r=Math.min(Math.max(r,0),127),this.values.note=Math.floor(this.randomGen()*(r-t+1))+t,this));I(this,"update",()=>{if(this.values.key&&this.values.pitch&&this.values.parsedScale&&this.values.octave){const[t,r]=xm(this.values.key,this.values.pitch,this.values.parsedScale,this.values.octave);this.values.note=t,this.values.freq=Ps(t),r&&(this.values.bend=r)}});I(this,"out",()=>{const t=this.values.note?this.values.note:60,r=this.values.channel?this.values.channel:0,i=this.values.velocity?this.values.velocity:100,a=this.values.sustain?this.values.sustain*this.app.clock.pulse_duration*this.app.api.ppqn():this.app.clock.pulse_duration*this.app.api.ppqn(),s=this.values.bend?this.values.bend:void 0,o=this.values.port?this.midiConnection.getMidiOutputIndex(this.values.port):this.midiConnection.getCurrentMidiPortIndex();this.midiConnection.sendMidiNote(t,r,i,a,o,s)});this.app=r,typeof t=="number"?this.values.note=t:this.values=t,this.midiConnection=r.api.MidiConnection}}const ss=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Hy=new Set,wh=typeof process=="object"&&process?process:{},zy=(n,e,t,r)=>{typeof wh.emitWarning=="function"?wh.emitWarning(n,e,t,r):console.error(`[${t}] ${e}: ${n}`)};let Dl=globalThis.AbortController,qS=globalThis.AbortSignal;var DT;if(typeof Dl>"u"){qS=class{constructor(){I(this,"onabort");I(this,"_onabort",[]);I(this,"reason");I(this,"aborted",!1)}addEventListener(r,i){this._onabort.push(i)}},Dl=class{constructor(){I(this,"signal",new qS);e()}abort(r){var i,a;if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(const s of this.signal._onabort)s(r);(a=(i=this.signal).onabort)==null||a.call(i,r)}}};let n=((DT=wh.env)==null?void 0:DT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{n&&(n=!1,zy("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 VM=n=>!Hy.has(n),ci=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),Wy=n=>ci(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Vo:null:null;class Vo extends Array{constructor(e){super(e),this.fill(0)}}var va;const Pi=class Pi{constructor(e,t){I(this,"heap");I(this,"length");if(!Q(Pi,va))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=Wy(e);if(!t)return[];Qe(Pi,va,!0);const r=new Pi(e,t);return Qe(Pi,va,!1),r}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};va=new WeakMap,tt(Pi,va,!1);let xh=Pi;var _n,Hr,gn,Sn,ya,Kt,On,jt,xt,et,Dr,zr,Sr,sr,En,or,Hn,zn,bn,Tn,mi,wr,Fs,kh,Gi,Wn,Ys,Wr,Pl,Xy,Qi,Aa,Gs,xn,ui,Ln,di,Qs,Mh,Ra,Ho,Ia,zo,At,Mt,$s,Ph,$i,fs;const Qm=class Qm{constructor(e){tt(this,Fs);tt(this,Pl);tt(this,xn);tt(this,Ln);tt(this,Qs);tt(this,Ra);tt(this,Ia);tt(this,At);tt(this,$s);tt(this,$i);tt(this,_n,void 0);tt(this,Hr,void 0);tt(this,gn,void 0);tt(this,Sn,void 0);tt(this,ya,void 0);I(this,"ttl");I(this,"ttlResolution");I(this,"ttlAutopurge");I(this,"updateAgeOnGet");I(this,"updateAgeOnHas");I(this,"allowStale");I(this,"noDisposeOnSet");I(this,"noUpdateTTL");I(this,"maxEntrySize");I(this,"sizeCalculation");I(this,"noDeleteOnFetchRejection");I(this,"noDeleteOnStaleGet");I(this,"allowStaleOnFetchAbort");I(this,"allowStaleOnFetchRejection");I(this,"ignoreFetchAbort");tt(this,Kt,void 0);tt(this,On,void 0);tt(this,jt,void 0);tt(this,xt,void 0);tt(this,et,void 0);tt(this,Dr,void 0);tt(this,zr,void 0);tt(this,Sr,void 0);tt(this,sr,void 0);tt(this,En,void 0);tt(this,or,void 0);tt(this,Hn,void 0);tt(this,zn,void 0);tt(this,bn,void 0);tt(this,Tn,void 0);tt(this,mi,void 0);tt(this,wr,void 0);tt(this,Gi,()=>{});tt(this,Wn,()=>{});tt(this,Ys,()=>{});tt(this,Wr,()=>!1);tt(this,Qi,e=>{});tt(this,Aa,(e,t,r)=>{});tt(this,Gs,(e,t,r,i)=>{if(r||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:r,ttlResolution:i=1,ttlAutopurge:a,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:l,dispose:u,disposeAfter:d,noDisposeOnSet:f,noUpdateTTL:m,maxSize:g=0,maxEntrySize:b=0,sizeCalculation:v,fetchMethod:y,noDeleteOnFetchRejection:N,noDeleteOnStaleGet:F,allowStaleOnFetchRejection:X,allowStaleOnFetchAbort:p,ignoreFetchAbort:E}=e;if(t!==0&&!ci(t))throw new TypeError("max option must be a nonnegative integer");const O=t?Wy(t):Array;if(!O)throw new Error("invalid max value: "+t);if(Qe(this,_n,t),Qe(this,Hr,g),this.maxEntrySize=b||Q(this,Hr),this.sizeCalculation=v,this.sizeCalculation){if(!Q(this,Hr)&&!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(Qe(this,ya,y),Qe(this,mi,!!y),Qe(this,jt,new Map),Qe(this,xt,new Array(t).fill(void 0)),Qe(this,et,new Array(t).fill(void 0)),Qe(this,Dr,new O(t)),Qe(this,zr,new O(t)),Qe(this,Sr,0),Qe(this,sr,0),Qe(this,En,xh.create(t)),Qe(this,Kt,0),Qe(this,On,0),typeof u=="function"&&Qe(this,gn,u),typeof d=="function"?(Qe(this,Sn,d),Qe(this,or,[])):(Qe(this,Sn,void 0),Qe(this,or,void 0)),Qe(this,Tn,!!Q(this,gn)),Qe(this,wr,!!Q(this,Sn)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!N,this.allowStaleOnFetchRejection=!!X,this.allowStaleOnFetchAbort=!!p,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(Q(this,Hr)!==0&&!ci(Q(this,Hr)))throw new TypeError("maxSize must be a positive integer if specified");if(!ci(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ue(this,Pl,Xy).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!F,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=ci(i)||i===0?i:1,this.ttlAutopurge=!!a,this.ttl=r||0,this.ttl){if(!ci(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ue(this,Fs,kh).call(this)}if(Q(this,_n)===0&&this.ttl===0&&Q(this,Hr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!Q(this,_n)&&!Q(this,Hr)){const A="LRU_CACHE_UNBOUNDED";VM(A)&&(Hy.add(A),zy("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",A,Qm))}}static unsafeExposeInternals(e){return{starts:Q(e,zn),ttls:Q(e,bn),sizes:Q(e,Hn),keyMap:Q(e,jt),keyList:Q(e,xt),valList:Q(e,et),next:Q(e,Dr),prev:Q(e,zr),get head(){return Q(e,Sr)},get tail(){return Q(e,sr)},free:Q(e,En),isBackgroundFetch:t=>{var r;return Ue(r=e,At,Mt).call(r,t)},backgroundFetch:(t,r,i,a)=>{var s;return Ue(s=e,Ia,zo).call(s,t,r,i,a)},moveToTail:t=>{var r;return Ue(r=e,$i,fs).call(r,t)},indexes:t=>{var r;return Ue(r=e,xn,ui).call(r,t)},rindexes:t=>{var r;return Ue(r=e,Ln,di).call(r,t)},isStale:t=>{var r;return Q(r=e,Wr).call(r,t)}}}get max(){return Q(this,_n)}get maxSize(){return Q(this,Hr)}get calculatedSize(){return Q(this,On)}get size(){return Q(this,Kt)}get fetchMethod(){return Q(this,ya)}get dispose(){return Q(this,gn)}get disposeAfter(){return Q(this,Sn)}getRemainingTTL(e){return Q(this,jt).has(e)?1/0:0}*entries(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*rentries(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*keys(){for(const e of Ue(this,xn,ui).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield t)}}*rkeys(){for(const e of Ue(this,Ln,di).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield t)}}*values(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}*rvalues(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&!Ue(this,At,Mt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;if(a!==void 0&&e(a,Q(this,xt)[r],this))return this.get(Q(this,xt)[r],t)}}forEach(e,t=this){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}rforEach(e,t=this){for(const r of Ue(this,Ln,di).call(this)){const i=Q(this,et)[r],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}purgeStale(){let e=!1;for(const t of Ue(this,Ln,di).call(this,{allowStale:!0}))Q(this,Wr).call(this,t)&&(this.delete(Q(this,xt)[t]),e=!0);return e}dump(){const e=[];for(const t of Ue(this,xn,ui).call(this,{allowStale:!0})){const r=Q(this,xt)[t],i=Q(this,et)[t],a=Ue(this,At,Mt).call(this,i)?i.__staleWhileFetching:i;if(a===void 0||r===void 0)continue;const s={value:a};if(Q(this,bn)&&Q(this,zn)){s.ttl=Q(this,bn)[t];const o=ss.now()-Q(this,zn)[t];s.start=Math.floor(Date.now()-o)}Q(this,Hn)&&(s.size=Q(this,Hn)[t]),e.unshift([r,s])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const i=Date.now()-r.start;r.start=ss.now()-i}this.set(t,r.value,r)}}set(e,t,r={}){var m,g,b,v,y;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:a,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=r;let{noUpdateTTL:u=this.noUpdateTTL}=r;const d=Q(this,Gs).call(this,e,t,r.size||0,o);if(this.maxEntrySize&&d>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(e),this;let f=Q(this,Kt)===0?void 0:Q(this,jt).get(e);if(f===void 0)f=Q(this,Kt)===0?Q(this,sr):Q(this,En).length!==0?Q(this,En).pop():Q(this,Kt)===Q(this,_n)?Ue(this,Ra,Ho).call(this,!1):Q(this,Kt),Q(this,xt)[f]=e,Q(this,et)[f]=t,Q(this,jt).set(e,f),Q(this,Dr)[Q(this,sr)]=f,Q(this,zr)[f]=Q(this,sr),Qe(this,sr,f),io(this,Kt)._++,Q(this,Aa).call(this,f,d,l),l&&(l.set="add"),u=!1;else{Ue(this,$i,fs).call(this,f);const N=Q(this,et)[f];if(t!==N){if(Q(this,mi)&&Ue(this,At,Mt).call(this,N)){N.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:F}=N;F!==void 0&&!s&&(Q(this,Tn)&&((m=Q(this,gn))==null||m.call(this,F,e,"set")),Q(this,wr)&&((g=Q(this,or))==null||g.push([F,e,"set"])))}else s||(Q(this,Tn)&&((b=Q(this,gn))==null||b.call(this,N,e,"set")),Q(this,wr)&&((v=Q(this,or))==null||v.push([N,e,"set"])));if(Q(this,Qi).call(this,f),Q(this,Aa).call(this,f,d,l),Q(this,et)[f]=t,l){l.set="replace";const F=N&&Ue(this,At,Mt).call(this,N)?N.__staleWhileFetching:N;F!==void 0&&(l.oldValue=F)}}else l&&(l.set="update")}if(i!==0&&!Q(this,bn)&&Ue(this,Fs,kh).call(this),Q(this,bn)&&(u||Q(this,Ys).call(this,f,i,a),l&&Q(this,Wn).call(this,l,f)),!s&&Q(this,wr)&&Q(this,or)){const N=Q(this,or);let F;for(;F=N==null?void 0:N.shift();)(y=Q(this,Sn))==null||y.call(this,...F)}return this}pop(){var e;try{for(;Q(this,Kt);){const t=Q(this,et)[Q(this,Sr)];if(Ue(this,Ra,Ho).call(this,!0),Ue(this,At,Mt).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(Q(this,wr)&&Q(this,or)){const t=Q(this,or);let r;for(;r=t==null?void 0:t.shift();)(e=Q(this,Sn))==null||e.call(this,...r)}}}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:i}=t,a=Q(this,jt).get(e);if(a!==void 0){const s=Q(this,et)[a];if(Ue(this,At,Mt).call(this,s)&&s.__staleWhileFetching===void 0)return!1;if(Q(this,Wr).call(this,a))i&&(i.has="stale",Q(this,Wn).call(this,i,a));else return r&&Q(this,Gi).call(this,a),i&&(i.has="hit",Q(this,Wn).call(this,i,a)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,i=Q(this,jt).get(e);if(i!==void 0&&(r||!Q(this,Wr).call(this,i))){const a=Q(this,et)[i];return Ue(this,At,Mt).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:l=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:b=this.allowStaleOnFetchAbort,context:v,forceRefresh:y=!1,status:N,signal:F}=t;if(!Q(this,mi))return N&&(N.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,status:N});const X={allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,ttl:s,noDisposeOnSet:o,size:l,sizeCalculation:u,noUpdateTTL:d,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:b,ignoreFetchAbort:g,status:N,signal:F};let p=Q(this,jt).get(e);if(p===void 0){N&&(N.fetch="miss");const E=Ue(this,Ia,zo).call(this,e,p,X,v);return E.__returned=E}else{const E=Q(this,et)[p];if(Ue(this,At,Mt).call(this,E)){const w=r&&E.__staleWhileFetching!==void 0;return N&&(N.fetch="inflight",w&&(N.returnedStale=!0)),w?E.__staleWhileFetching:E.__returned=E}const O=Q(this,Wr).call(this,p);if(!y&&!O)return N&&(N.fetch="hit"),Ue(this,$i,fs).call(this,p),i&&Q(this,Gi).call(this,p),N&&Q(this,Wn).call(this,N,p),E;const A=Ue(this,Ia,zo).call(this,e,p,X,v),M=A.__staleWhileFetching!==void 0&&r;return N&&(N.fetch=O?"stale":"refresh",M&&O&&(N.returnedStale=!0)),M?A.__staleWhileFetching:A.__returned=A}}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:s}=t,o=Q(this,jt).get(e);if(o!==void 0){const l=Q(this,et)[o],u=Ue(this,At,Mt).call(this,l);return s&&Q(this,Wn).call(this,s,o),Q(this,Wr).call(this,o)?(s&&(s.get="stale"),u?(s&&r&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),r?l.__staleWhileFetching:void 0):(a||this.delete(e),s&&r&&(s.returnedStale=!0),r?l:void 0)):(s&&(s.get="hit"),u?l.__staleWhileFetching:(Ue(this,$i,fs).call(this,o),i&&Q(this,Gi).call(this,o),l))}else s&&(s.get="miss")}delete(e){var r,i,a,s;let t=!1;if(Q(this,Kt)!==0){const o=Q(this,jt).get(e);if(o!==void 0)if(t=!0,Q(this,Kt)===1)this.clear();else{Q(this,Qi).call(this,o);const l=Q(this,et)[o];Ue(this,At,Mt).call(this,l)?l.__abortController.abort(new Error("deleted")):(Q(this,Tn)||Q(this,wr))&&(Q(this,Tn)&&((r=Q(this,gn))==null||r.call(this,l,e,"delete")),Q(this,wr)&&((i=Q(this,or))==null||i.push([l,e,"delete"]))),Q(this,jt).delete(e),Q(this,xt)[o]=void 0,Q(this,et)[o]=void 0,o===Q(this,sr)?Qe(this,sr,Q(this,zr)[o]):o===Q(this,Sr)?Qe(this,Sr,Q(this,Dr)[o]):(Q(this,Dr)[Q(this,zr)[o]]=Q(this,Dr)[o],Q(this,zr)[Q(this,Dr)[o]]=Q(this,zr)[o]),io(this,Kt)._--,Q(this,En).push(o)}}if(Q(this,wr)&&((a=Q(this,or))!=null&&a.length)){const o=Q(this,or);let l;for(;l=o==null?void 0:o.shift();)(s=Q(this,Sn))==null||s.call(this,...l)}return t}clear(){var e,t,r;for(const i of Ue(this,Ln,di).call(this,{allowStale:!0})){const a=Q(this,et)[i];if(Ue(this,At,Mt).call(this,a))a.__abortController.abort(new Error("deleted"));else{const s=Q(this,xt)[i];Q(this,Tn)&&((e=Q(this,gn))==null||e.call(this,a,s,"delete")),Q(this,wr)&&((t=Q(this,or))==null||t.push([a,s,"delete"]))}}if(Q(this,jt).clear(),Q(this,et).fill(void 0),Q(this,xt).fill(void 0),Q(this,bn)&&Q(this,zn)&&(Q(this,bn).fill(0),Q(this,zn).fill(0)),Q(this,Hn)&&Q(this,Hn).fill(0),Qe(this,Sr,0),Qe(this,sr,0),Q(this,En).length=0,Qe(this,On,0),Qe(this,Kt,0),Q(this,wr)&&Q(this,or)){const i=Q(this,or);let a;for(;a=i==null?void 0:i.shift();)(r=Q(this,Sn))==null||r.call(this,...a)}}};_n=new WeakMap,Hr=new WeakMap,gn=new WeakMap,Sn=new WeakMap,ya=new WeakMap,Kt=new WeakMap,On=new WeakMap,jt=new WeakMap,xt=new WeakMap,et=new WeakMap,Dr=new WeakMap,zr=new WeakMap,Sr=new WeakMap,sr=new WeakMap,En=new WeakMap,or=new WeakMap,Hn=new WeakMap,zn=new WeakMap,bn=new WeakMap,Tn=new WeakMap,mi=new WeakMap,wr=new WeakMap,Fs=new WeakSet,kh=function(){const e=new Vo(Q(this,_n)),t=new Vo(Q(this,_n));Qe(this,bn,e),Qe(this,zn,t),Qe(this,Ys,(a,s,o=ss.now())=>{if(t[a]=s!==0?o:0,e[a]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{Q(this,Wr).call(this,a)&&this.delete(Q(this,xt)[a])},s+1);l.unref&&l.unref()}}),Qe(this,Gi,a=>{t[a]=e[a]!==0?ss.now():0}),Qe(this,Wn,(a,s)=>{if(e[s]){const o=e[s],l=t[s];a.ttl=o,a.start=l,a.now=r||i();const u=a.now-l;a.remainingTTL=o-u}});let r=0;const i=()=>{const a=ss.now();if(this.ttlResolution>0){r=a;const s=setTimeout(()=>r=0,this.ttlResolution);s.unref&&s.unref()}return a};this.getRemainingTTL=a=>{const s=Q(this,jt).get(a);if(s===void 0)return 0;const o=e[s],l=t[s];if(o===0||l===0)return 1/0;const u=(r||i())-l;return o-u},Qe(this,Wr,a=>e[a]!==0&&t[a]!==0&&(r||i())-t[a]>e[a])},Gi=new WeakMap,Wn=new WeakMap,Ys=new WeakMap,Wr=new WeakMap,Pl=new WeakSet,Xy=function(){const e=new Vo(Q(this,_n));Qe(this,On,0),Qe(this,Hn,e),Qe(this,Qi,t=>{Qe(this,On,Q(this,On)-e[t]),e[t]=0}),Qe(this,Gs,(t,r,i,a)=>{if(Ue(this,At,Mt).call(this,r))return 0;if(!ci(i))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(i=a(r,t),!ci(i))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 i}),Qe(this,Aa,(t,r,i)=>{if(e[t]=r,Q(this,Hr)){const a=Q(this,Hr)-e[t];for(;Q(this,On)>a;)Ue(this,Ra,Ho).call(this,!0)}Qe(this,On,Q(this,On)+e[t]),i&&(i.entrySize=r,i.totalCalculatedSize=Q(this,On))})},Qi=new WeakMap,Aa=new WeakMap,Gs=new WeakMap,xn=new WeakSet,ui=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,sr);!(!Ue(this,Qs,Mh).call(this,t)||((e||!Q(this,Wr).call(this,t))&&(yield t),t===Q(this,Sr)));)t=Q(this,zr)[t]},Ln=new WeakSet,di=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,Sr);!(!Ue(this,Qs,Mh).call(this,t)||((e||!Q(this,Wr).call(this,t))&&(yield t),t===Q(this,sr)));)t=Q(this,Dr)[t]},Qs=new WeakSet,Mh=function(e){return e!==void 0&&Q(this,jt).get(Q(this,xt)[e])===e},Ra=new WeakSet,Ho=function(e){var a,s;const t=Q(this,Sr),r=Q(this,xt)[t],i=Q(this,et)[t];return Q(this,mi)&&Ue(this,At,Mt).call(this,i)?i.__abortController.abort(new Error("evicted")):(Q(this,Tn)||Q(this,wr))&&(Q(this,Tn)&&((a=Q(this,gn))==null||a.call(this,i,r,"evict")),Q(this,wr)&&((s=Q(this,or))==null||s.push([i,r,"evict"]))),Q(this,Qi).call(this,t),e&&(Q(this,xt)[t]=void 0,Q(this,et)[t]=void 0,Q(this,En).push(t)),Q(this,Kt)===1?(Qe(this,Sr,Qe(this,sr,0)),Q(this,En).length=0):Qe(this,Sr,Q(this,Dr)[t]),Q(this,jt).delete(r),io(this,Kt)._--,t},Ia=new WeakSet,zo=function(e,t,r,i){const a=t===void 0?void 0:Q(this,et)[t];if(Ue(this,At,Mt).call(this,a))return a;const s=new Dl,{signal:o}=r;o==null||o.addEventListener("abort",()=>s.abort(o.reason),{signal:s.signal});const l={signal:s.signal,options:r,context:i},u=(v,y=!1)=>{const{aborted:N}=s.signal,F=r.ignoreFetchAbort&&v!==void 0;if(r.status&&(N&&!y?(r.status.fetchAborted=!0,r.status.fetchError=s.signal.reason,F&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),N&&!F&&!y)return f(s.signal.reason);const X=g;return Q(this,et)[t]===g&&(v===void 0?X.__staleWhileFetching?Q(this,et)[t]=X.__staleWhileFetching:this.delete(e):(r.status&&(r.status.fetchUpdated=!0),this.set(e,v,l.options))),v},d=v=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=v),f(v)),f=v=>{const{aborted:y}=s.signal,N=y&&r.allowStaleOnFetchAbort,F=N||r.allowStaleOnFetchRejection,X=F||r.noDeleteOnFetchRejection,p=g;if(Q(this,et)[t]===g&&(!X||p.__staleWhileFetching===void 0?this.delete(e):N||(Q(this,et)[t]=p.__staleWhileFetching)),F)return r.status&&p.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),p.__staleWhileFetching;if(p.__returned===p)throw v},m=(v,y)=>{var F;const N=(F=Q(this,ya))==null?void 0:F.call(this,e,a,l);N&&N instanceof Promise&&N.then(X=>v(X===void 0?void 0:X),y),s.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(v(void 0),r.allowStaleOnFetchAbort&&(v=X=>u(X,!0)))})};r.status&&(r.status.fetchDispatched=!0);const g=new Promise(m).then(u,d),b=Object.assign(g,{__abortController:s,__staleWhileFetching:a,__returned:void 0});return t===void 0?(this.set(e,b,{...l.options,status:void 0}),t=Q(this,jt).get(e)):Q(this,et)[t]=b,b},At=new WeakSet,Mt=function(e){if(!Q(this,mi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Dl},$s=new WeakSet,Ph=function(e,t){Q(this,zr)[t]=e,Q(this,Dr)[e]=t},$i=new WeakSet,fs=function(e){e!==Q(this,sr)&&(e===Q(this,Sr)?Qe(this,Sr,Q(this,Dr)[e]):Ue(this,$s,Ph).call(this,Q(this,zr)[e],Q(this,Dr)[e]),Ue(this,$s,Ph).call(this,Q(this,sr),e),Qe(this,sr,e))};let Lh=Qm;const Bl=class Bl extends km{constructor(t,r){super(r);I(this,"_fallbackMethod",()=>this);I(this,"out",()=>{});this.values.duration=t}};I(Bl,"createRestProxy",(t,r)=>{const i=new Bl(t,r);return new Proxy(i,{get(a,s,o){return typeof a[s]>"u"?a._fallbackMethod:a[s]},set(a,s,o,l){return!1}})});let wl=Bl;class HM extends km{constructor(t,r,i){super(i);I(this,"input");I(this,"ziffers");I(this,"callTime",0);I(this,"played",!1);I(this,"current");I(this,"retro",!1);I(this,"tick",0);I(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));I(this,"areWeThereYet",()=>{const t=this.ziffers.notStarted()||this.app.api.epulse()>this.callTime+this.current.duration*this.app.api.ppqn();return t?this.tick=0:this.tick++,t});I(this,"out",()=>{});this.app=i,this.input=t,this.ziffers=new uM(t,r)}sound(t){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki){const i=r.getExisting("freq","pitch","key","scale","octave");return new qy(i,this.app).sound(t)}else if(r instanceof Dh)return wl.createRestProxy(r.duration,this.app)}else return Rl.createRestProxy()}note(t=void 0){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki){const i=r.getExisting("note","pitch","bend","key","scale","octave"),a=new Vy(i,this.app);return t?a.note(t):a}else if(r instanceof Dh)return wl.createRestProxy(r.duration,this.app)}else return Rl.createRestProxy()}scale(t){return this.ziffers.scale(t),this}key(t){return this.ziffers.key(t),this}octave(t){return this.ziffers.octave(t),this}retrograde(){return this.tick===0&&this.ziffers.index===0&&this.ziffers.retrograde(),this}}Array.prototype.palindrome=function(n){let e=Array.from(this),t=Array.from(this.reverse());return e.concat(t)};Array.prototype.random=function(n){return this[Math.floor(Math.random()*this.length)]};Array.prototype.loop=function(n){return this[n%this.length]};Array.prototype.rand=Array.prototype.random;Array.prototype.in=function(n){return this.includes(n)};async function zM(){return Promise.all([DM(),Nl("github:Bubobubobubobubo/Topos-Samples/main"),Nl("github:tidalcycles/Dirt-Samples/master").then(()=>qM())])}zM();const WM=(...n)=>n.map(e=>JSON.stringify(e)).join(",");class XM{constructor(e){I(this,"variables",{});I(this,"counters",{});I(this,"_drunk",new fM(-100,100,!1));I(this,"randomGen",Math.random);I(this,"currentSeed");I(this,"localSeeds",new Map);I(this,"patternCache",new Lh({max:1e3,ttl:1e3*60*5}));I(this,"errorTimeoutID",0);I(this,"MidiConnection",new pM);I(this,"load");I(this,"_reportError",e=>{console.log(e),clearTimeout(this.errorTimeoutID),this.app.error_line.innerHTML=e,this.app.error_line.classList.remove("hidden"),this.errorTimeoutID=setTimeout(()=>this.app.error_line.classList.add("hidden"),2e3)});I(this,"time",()=>this.app.audioContext.currentTime);I(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.app.clock.start()});I(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.app.clock.pause()});I(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.app.clock.stop()});I(this,"silence",this.stop);I(this,"hush",this.stop);I(this,"mouseX",()=>this.app._mouseX);I(this,"mouseY",()=>this.app._mouseY);I(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));I(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));I(this,"script",(...e)=>{e.forEach(t=>{vl(this.app,this.app.universes[this.app.selected_universe].locals[t])})});I(this,"s",this.script);I(this,"clear_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});I(this,"cs",this.clear_script);I(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]=this.app.universes[this.app.selected_universe].locals[e]});I(this,"cps",this.copy_script);I(this,"midi_outputs",()=>(console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs));I(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});I(this,"note",(e=60)=>new Vy(e,this.app));I(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});I(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});I(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});I(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});I(this,"control_change",({control:e=20,value:t=0,channel:r=0})=>{this.MidiConnection.sendMidiControlChange(e,t,r)});I(this,"midi_panic",()=>{this.MidiConnection.panic()});I(this,"z",(e,t={})=>{const r=WM(e,t);let i;return this.app.api.patternCache.has(r)?i=this.app.api.patternCache.get(r):(i=new HM(e,t,this.app),this.app.api.patternCache.set(r,i)),(i&&i.ziffers.index===-1||i.played)&&(i.callTime=this.epulse(),i.played=!1),i});I(this,"counter",(e,t,r)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==r&&(this.counters[e].step=r??this.counters[e].step),this.counters[e].value+=this.counters[e].step,this.counters[e].limit!==void 0&&this.counters[e].value>this.counters[e].limit&&(this.counters[e].value=0)):this.counters[e]={value:0,step:r??1,limit:t},this.counters[e].value));I(this,"$",this.counter);I(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));I(this,"drunk_max",e=>{this._drunk.max=e});I(this,"drunk_min",e=>{this._drunk.min=e});I(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});I(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));I(this,"v",this.variable);I(this,"delete_variable",e=>{delete this.variables[e]});I(this,"dv",this.delete_variable);I(this,"clear_variables",()=>{this.variables={}});I(this,"cv",this.clear_variables);I(this,"div",e=>{const t=this.epulse();return Math.floor(t/Math.floor(e*this.ppqn()))%2===0});I(this,"divbar",e=>{const t=this.bar()-1;return Math.floor(t/e)%2===0});I(this,"divseq",(...e)=>{const t=e[0],r=e.slice(1),i=this.epulse(),a=Math.floor(i/Math.floor(t*this.ppqn()));return r[a%r.length]});I(this,"pick",(...e)=>e[Math.floor(this.randomGen()*e.length)]);I(this,"seqbeat",(...e)=>e[this.ebeat()%e.length]);I(this,"mel",(e,t)=>t[e%t.length]);I(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);I(this,"seqpulse",(...e)=>e[this.app.clock.time_position.pulse%e.length]);I(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);I(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);I(this,"irand",this.randI);I(this,"rI",this.randI);I(this,"r",this.rand);I(this,"ir",this.randI);I(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=Nh(e))});I(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=Nh(e);return this.localSeeds.set(e,t),t});I(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});I(this,"quantize",(e,t)=>{if(t.length===0)return e;let r=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),r));I(this,"cmp",this.clamp);I(this,"bpm",e=>e===void 0?this.app.clock.bpm:((e<1||e>500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e));I(this,"tempo",this.bpm);I(this,"bpb",e=>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));I(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));I(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});I(this,"odds",(e,t=15)=>this.randomGen()this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));I(this,"rarely",(e=15)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));I(this,"scarcely",(e=15)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));I(this,"sometimes",(e=15)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));I(this,"often",(e=15)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));I(this,"frequently",(e=15)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));I(this,"almostAlways",(e=15)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));I(this,"dice",e=>Math.floor(this.randomGen()*e)+1);I(this,"i",e=>e!==void 0?(this.app.universes[this.app.selected_universe].global.evaluations=e,this.app.universes[this.app.selected_universe]):this.app.universes[this.app.selected_universe].global.evaluations);I(this,"bar",()=>this.app.clock.time_position.bar);I(this,"tick",()=>this.app.clock.tick);I(this,"pulse",()=>this.app.clock.time_position.pulse);I(this,"beat",()=>this.app.clock.time_position.beat);I(this,"ebeat",()=>this.app.clock.beats_since_origin);I(this,"epulse",()=>this.app.clock.pulses_since_origin);I(this,"onbar",(e,...t)=>{const r=[...Array(e).keys()].map(i=>i+1);return console.log(t.some(i=>r.includes(i%e))),t.some(i=>r.includes(i%e))});I(this,"onbeat",(...e)=>{let t=[];return e.forEach(r=>{r=r%this.app.clock.time_signature[0]+1;let i=Math.floor(r),a=r-i;t.push(i===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===a*this.app.clock.ppqn)}),t.some(r=>r==!0)});I(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);I(this,"min",(...e)=>Math.min(...e));I(this,"max",(...e)=>Math.max(...e));I(this,"mean",(...e)=>e.reduce((r,i)=>r+i,0)/e.length);I(this,"limit",(e,t,r)=>Math.min(Math.max(e,t),r));I(this,"delay",(e,t)=>{setTimeout(t,e)});I(this,"delayr",(e,t,r)=>{[...Array(t).keys()].map(a=>e*a).forEach((a,s)=>{setTimeout(r,a)})});I(this,"mod",(...e)=>e.map(r=>this.epulse()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"modpulse",(...e)=>e.map(r=>this.epulse()%r===0).some(r=>r===!0));I(this,"pmod",this.modpulse);I(this,"modbar",(...e)=>e.map(r=>this.bar()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"bmod",this.modbar);I(this,"euclid",(e,t,r,i=0)=>this._euclidean_cycle(t,r,i)[e%r]);I(this,"ec",this.euclid);I(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(a=>a==="1");return i[e%i.length]});I(this,"line",(e,t,r=1)=>{const i=[];if(t>e&&r>0||tMath.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+t);I(this,"usine",(e=1,t=0)=>(this.sine(e,t)+1)/2);I(this,"saw",(e=1,t=0)=>this.app.clock.ctx.currentTime*e%1*2-1+t);I(this,"usaw",(e=1,t=0)=>(this.saw(e,t)+1)/2);I(this,"triangle",(e=1,t=0)=>Math.abs(this.saw(e,t))*2-1);I(this,"utriangle",(e=1,t=0)=>(this.triangle(e,t)+1)/2);I(this,"square",(e=1,t=0,r=.5)=>{const i=1/e;return(Date.now()/1e3+t)%i/i(this.square(e,t,r)+1)/2);I(this,"noise",()=>this.randomGen()*2-1);I(this,"abs",Math.abs);I(this,"sound",e=>new qy(e,this.app));I(this,"snd",this.sound);I(this,"samples",Nl);I(this,"soundMap",Pm);I(this,"log",console.log);I(this,"scale",mM);I(this,"rate",e=>{});this.app=e}_euclidean_cycle(e,t,r=0){if(e==t)return Array.from({length:t},()=>!0);function i(o,l){const u=o.length,d=(l+1)%u;return o[l]>o[d]}if(e>=t)return[!0];const a=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let s=a.map((o,l)=>i(a,l));return r!=0&&(s=s.slice(r).concat(s.slice(0,r))),s}}var Wo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zy(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ky={exports:{}};(function(n){(function(){function e(p){var E={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:`Remove only spaces, ' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids`,type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as
(GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex: foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(p===!1)return JSON.parse(JSON.stringify(E));var O={};for(var A in E)E.hasOwnProperty(A)&&(O[A]=E[A].defaultValue);return O}function t(){var p=e(!0),E={};for(var O in p)p.hasOwnProperty(O)&&(E[O]=!0);return E}var r={},i={},a={},s=e(!0),o="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:t()};r.helper={},r.extensions={},r.setOption=function(p,E){return s[p]=E,this},r.getOption=function(p){return s[p]},r.getOptions=function(){return s},r.resetOptions=function(){s=e(!0)},r.setFlavor=function(p){if(!l.hasOwnProperty(p))throw Error(p+" flavor was not found");r.resetOptions();var E=l[p];o=p;for(var O in E)E.hasOwnProperty(O)&&(s[O]=E[O])},r.getFlavor=function(){return o},r.getFlavorOptions=function(p){if(l.hasOwnProperty(p))return l[p]},r.getDefaultOptions=function(p){return e(p)},r.subParser=function(p,E){if(r.helper.isString(p))if(typeof E<"u")i[p]=E;else{if(i.hasOwnProperty(p))return i[p];throw Error("SubParser named "+p+" not registered!")}},r.extension=function(p,E){if(!r.helper.isString(p))throw Error("Extension 'name' must be a string");if(p=r.helper.stdExtName(p),r.helper.isUndefined(E)){if(!a.hasOwnProperty(p))throw Error("Extension named "+p+" is not registered!");return a[p]}else{typeof E=="function"&&(E=E()),r.helper.isArray(E)||(E=[E]);var O=u(E,p);if(O.valid)a[p]=E;else throw Error(O.error)}},r.getAllExtensions=function(){return a},r.removeExtension=function(p){delete a[p]},r.resetExtensions=function(){a={}};function u(p,E){var O=E?"Error in "+E+" extension->":"Error in unnamed extension",A={valid:!0,error:""};r.helper.isArray(p)||(p=[p]);for(var D=0;D"u"},r.helper.forEach=function(p,E){if(r.helper.isUndefined(p))throw new Error("obj param is required");if(r.helper.isUndefined(E))throw new Error("callback param is required");if(!r.helper.isFunction(E))throw new Error("callback param must be a function/closure");if(typeof p.forEach=="function")p.forEach(E);else if(r.helper.isArray(p))for(var O=0;O").replace(/&/g,"&")};var f=function(p,E,O,A){var D=A||"",M=D.indexOf("g")>-1,w=new RegExp(E+"|"+O,"g"+D.replace(/g/g,"")),B=new RegExp(E,D.replace(/g/g,"")),re=[],ie,j,J,L,G;do for(ie=0;J=w.exec(p);)if(B.test(J[0]))ie++||(j=w.lastIndex,L=j-J[0].length);else if(ie&&!--ie){G=J.index+J[0].length;var Z={left:{start:L,end:j},match:{start:j,end:J.index},right:{start:J.index,end:G},wholeMatch:{start:L,end:G}};if(re.push(Z),!M)return re}while(ie&&(w.lastIndex=j));return re};r.helper.matchRecursiveRegExp=function(p,E,O,A){for(var D=f(p,E,O,A),M=[],w=0;w0){var ie=[];w[0].wholeMatch.start!==0&&ie.push(p.slice(0,w[0].wholeMatch.start));for(var j=0;j=0?A+(O||0):A},r.helper.splitAtIndex=function(p,E){if(!r.helper.isString(p))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[p.substring(0,E),p.substring(E)]},r.helper.encodeEmailAddress=function(p){var E=[function(O){return""+O.charCodeAt(0)+";"},function(O){return""+O.charCodeAt(0).toString(16)+";"},function(O){return O}];return p=p.replace(/./g,function(O){if(O==="@")O=E[Math.floor(Math.random()*2)](O);else{var A=Math.random();O=A>.9?E[2](O):A>.45?E[1](O):E[0](O)}return O}),p},r.helper.padEnd=function(E,O,A){return O=O>>0,A=String(A||" "),E.length>O?String(E):(O=O-E.length,O>A.length&&(A+=A.repeat(O/A.length)),String(E)+A.slice(0,O))},typeof console>"u"&&(console={warn:function(p){alert(p)},log:function(p){alert(p)},error:function(p){throw p}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨❤️👨",couple_with_heart_woman_woman:"👩❤️👩",couplekiss_man_man:"👨❤️💋👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩❤️💋👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨👦",family_man_boy_boy:"👨👦👦",family_man_girl:"👨👧",family_man_girl_boy:"👨👧👦",family_man_girl_girl:"👨👧👧",family_man_man_boy:"👨👨👦",family_man_man_boy_boy:"👨👨👦👦",family_man_man_girl:"👨👨👧",family_man_man_girl_boy:"👨👨👧👦",family_man_man_girl_girl:"👨👨👧👧",family_man_woman_boy_boy:"👨👩👦👦",family_man_woman_girl:"👨👩👧",family_man_woman_girl_boy:"👨👩👧👦",family_man_woman_girl_girl:"👨👩👧👧",family_woman_boy:"👩👦",family_woman_boy_boy:"👩👦👦",family_woman_girl:"👩👧",family_woman_girl_boy:"👩👧👦",family_woman_girl_girl:"👩👧👧",family_woman_woman_boy:"👩👩👦",family_woman_woman_boy_boy:"👩👩👦👦",family_woman_woman_girl:"👩👩👧",family_woman_woman_girl_boy:"👩👩👧👦",family_woman_woman_girl_girl:"👩👩👧👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨🎨",man_astronaut:"👨🚀",man_cartwheeling:"🤸♂️",man_cook:"👨🍳",man_dancing:"🕺",man_facepalming:"🤦♂️",man_factory_worker:"👨🏭",man_farmer:"👨🌾",man_firefighter:"👨🚒",man_health_worker:"👨⚕️",man_in_tuxedo:"🤵",man_judge:"👨⚖️",man_juggling:"🤹♂️",man_mechanic:"👨🔧",man_office_worker:"👨💼",man_pilot:"👨✈️",man_playing_handball:"🤾♂️",man_playing_water_polo:"🤽♂️",man_scientist:"👨🔬",man_shrugging:"🤷♂️",man_singer:"👨🎤",man_student:"👨🎓",man_teacher:"👨🏫",man_technologist:"👨💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩🎨",woman_astronaut:"👩🚀",woman_cartwheeling:"🤸♀️",woman_cook:"👩🍳",woman_facepalming:"🤦♀️",woman_factory_worker:"👩🏭",woman_farmer:"👩🌾",woman_firefighter:"👩🚒",woman_health_worker:"👩⚕️",woman_judge:"👩⚖️",woman_juggling:"🤹♀️",woman_mechanic:"👩🔧",woman_office_worker:"👩💼",woman_pilot:"👩✈️",woman_playing_handball:"🤾♀️",woman_playing_water_polo:"🤽♀️",woman_scientist:"👩🔬",woman_shrugging:"🤷♀️",woman_singer:"👩🎤",woman_student:"👩🎓",woman_teacher:"👩🏫",woman_technologist:"👩💻",woman_with_turban:"👳♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'
',showdown:`S`},r.Converter=function(p){var E={},O=[],A=[],D={},M=o,w={parsed:{},raw:"",format:""};B();function B(){p=p||{};for(var L in s)s.hasOwnProperty(L)&&(E[L]=s[L]);if(typeof p=="object")for(var G in p)p.hasOwnProperty(G)&&(E[G]=p[G]);else throw Error("Converter expects the passed parameter to be an object, but "+typeof p+" was passed instead.");E.extensions&&r.helper.forEach(E.extensions,re)}function re(L,G){if(G=G||null,r.helper.isString(L))if(L=r.helper.stdExtName(L),G=L,r.extensions[L]){console.warn("DEPRECATION WARNING: "+L+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),ie(r.extensions[L],L);return}else if(!r.helper.isUndefined(a[L]))L=a[L];else throw Error('Extension "'+L+'" could not be loaded. It was either not found or is not a valid extension.');typeof L=="function"&&(L=L()),r.helper.isArray(L)||(L=[L]);var Z=u(L,G);if(!Z.valid)throw Error(Z.error);for(var z=0;z"+E.preList[O]+""}),r.subParser("makeMarkdown.strikethrough",function(p,E){var O="";if(p.hasChildNodes()){O+="~~";for(var A=p.childNodes,D=A.length,M=0;Mtr>th"),M=p.querySelectorAll("tbody>tr"),w,B;for(w=0;wZ&&(Z=z)}for(w=0;w/g,"\\$1>"),E=E.replace(/^#/gm,"\\#"),E=E.replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3"),E=E.replace(/^( {0,3}\d+)\./gm,"$1\\."),E=E.replace(/^( {0,3})([+-])/gm,"$1\\$2"),E=E.replace(/]([\s]*)\(/g,"\\]$1\\("),E=E.replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:"),E});var X=this;n.exports?n.exports=r:X.showdown=r}).call(Wo)})(Ky);var jy=Ky.exports;const Jy=Zy(jy);function Vc(n){return n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}Vc.proto=function(){return RegExp.escape=Vc,Vc};var xl={exports:{}};/*! https://mths.be/he v1.2.0 by @mathias | MIT license */xl.exports;(function(n,e){(function(t){var r=e,i=n&&n.exports==r&&n,a=typeof Wo=="object"&&Wo;(a.global===a||a.window===a)&&(t=a);var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,o=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,u=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,d={"":"shy","":"zwnj","":"zwj","":"lrm","":"ic","":"it","":"af","":"rlm","":"ZeroWidthSpace","":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot"," ":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp"," ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr",ª:"ordf",á:"aacute",Á:"Aacute",à:"agrave",À:"Agrave",ă:"abreve",Ă:"Abreve",â:"acirc",Â:"Acirc",å:"aring",Å:"angst",ä:"auml",Ä:"Auml",ã:"atilde",Ã:"Atilde",ą:"aogon",Ą:"Aogon",ā:"amacr",Ā:"Amacr",æ:"aelig",Æ:"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf",ℬ:"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf",ℭ:"Cfr","𝒞":"Cscr",ℂ:"Copf",ć:"cacute",Ć:"Cacute",ĉ:"ccirc",Ĉ:"Ccirc",č:"ccaron",Č:"Ccaron",ċ:"cdot",Ċ:"Cdot",ç:"ccedil",Ç:"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf",ď:"dcaron",Ď:"Dcaron",đ:"dstrok",Đ:"Dstrok",ð:"eth",Ð:"ETH","ⅇ":"ee",ℯ:"escr","𝔢":"efr","𝕖":"eopf",ℰ:"Escr","𝔈":"Efr","𝔼":"Eopf",é:"eacute",É:"Eacute",è:"egrave",È:"Egrave",ê:"ecirc",Ê:"Ecirc",ě:"ecaron",Ě:"Ecaron",ë:"euml",Ë:"Euml",ė:"edot",Ė:"Edot",ę:"eogon",Ę:"Eogon",ē:"emacr",Ē:"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf",ℱ:"Fscr",ff:"fflig",ffi:"ffilig",ffl:"ffllig",fi:"filig",fj:"fjlig",fl:"fllig",ƒ:"fnof",ℊ:"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr",ǵ:"gacute",ğ:"gbreve",Ğ:"Gbreve",ĝ:"gcirc",Ĝ:"Gcirc",ġ:"gdot",Ġ:"Gdot",Ģ:"Gcedil","𝔥":"hfr",ℎ:"planckh","𝒽":"hscr","𝕙":"hopf",ℋ:"Hscr",ℌ:"Hfr",ℍ:"Hopf",ĥ:"hcirc",Ĥ:"Hcirc",ℏ:"hbar",ħ:"hstrok",Ħ:"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf",ℐ:"Iscr",ℑ:"Im",í:"iacute",Í:"Iacute",ì:"igrave",Ì:"Igrave",î:"icirc",Î:"Icirc",ï:"iuml",Ï:"Iuml",ĩ:"itilde",Ĩ:"Itilde",İ:"Idot",į:"iogon",Į:"Iogon",ī:"imacr",Ī:"Imacr",ij:"ijlig",IJ:"IJlig",ı:"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf",ĵ:"jcirc",Ĵ:"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr",ķ:"kcedil",Ķ:"Kcedil","𝔩":"lfr","𝓁":"lscr",ℓ:"ell","𝕝":"lopf",ℒ:"Lscr","𝔏":"Lfr","𝕃":"Lopf",ĺ:"lacute",Ĺ:"Lacute",ľ:"lcaron",Ľ:"Lcaron",ļ:"lcedil",Ļ:"Lcedil",ł:"lstrok",Ł:"Lstrok",ŀ:"lmidot",Ŀ:"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf",ℳ:"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr",ℕ:"Nopf","𝒩":"Nscr","𝔑":"Nfr",ń:"nacute",Ń:"Nacute",ň:"ncaron",Ň:"Ncaron",ñ:"ntilde",Ñ:"Ntilde",ņ:"ncedil",Ņ:"Ncedil","№":"numero",ŋ:"eng",Ŋ:"ENG","𝕠":"oopf","𝔬":"ofr",ℴ:"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf",º:"ordm",ó:"oacute",Ó:"Oacute",ò:"ograve",Ò:"Ograve",ô:"ocirc",Ô:"Ocirc",ö:"ouml",Ö:"Ouml",ő:"odblac",Ő:"Odblac",õ:"otilde",Õ:"Otilde",ø:"oslash",Ø:"Oslash",ō:"omacr",Ō:"Omacr",œ:"oelig",Œ:"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf",ℙ:"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr",ℚ:"Qopf",ĸ:"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr",ℛ:"Rscr",ℜ:"Re",ℝ:"Ropf",ŕ:"racute",Ŕ:"Racute",ř:"rcaron",Ř:"Rcaron",ŗ:"rcedil",Ŗ:"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS",ś:"sacute",Ś:"Sacute",ŝ:"scirc",Ŝ:"Scirc",š:"scaron",Š:"Scaron",ş:"scedil",Ş:"Scedil",ß:"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf",ť:"tcaron",Ť:"Tcaron",ţ:"tcedil",Ţ:"Tcedil","™":"trade",ŧ:"tstrok",Ŧ:"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr",ú:"uacute",Ú:"Uacute",ù:"ugrave",Ù:"Ugrave",ŭ:"ubreve",Ŭ:"Ubreve",û:"ucirc",Û:"Ucirc",ů:"uring",Ů:"Uring",ü:"uuml",Ü:"Uuml",ű:"udblac",Ű:"Udblac",ũ:"utilde",Ũ:"Utilde",ų:"uogon",Ų:"Uogon",ū:"umacr",Ū:"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr",ŵ:"wcirc",Ŵ:"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf",ý:"yacute",Ý:"Yacute",ŷ:"ycirc",Ŷ:"Ycirc",ÿ:"yuml",Ÿ:"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf",ℨ:"Zfr",ℤ:"Zopf","𝒵":"Zscr",ź:"zacute",Ź:"Zacute",ž:"zcaron",Ž:"Zcaron",ż:"zdot",Ż:"Zdot",Ƶ:"imped",þ:"thorn",Þ:"THORN",ʼn:"napos",α:"alpha",Α:"Alpha",β:"beta",Β:"Beta",γ:"gamma",Γ:"Gamma",δ:"delta",Δ:"Delta",ε:"epsi","ϵ":"epsiv",Ε:"Epsilon",ϝ:"gammad",Ϝ:"Gammad",ζ:"zeta",Ζ:"Zeta",η:"eta",Η:"Eta",θ:"theta",ϑ:"thetav",Θ:"Theta",ι:"iota",Ι:"Iota",κ:"kappa",ϰ:"kappav",Κ:"Kappa",λ:"lambda",Λ:"Lambda",μ:"mu",µ:"micro",Μ:"Mu",ν:"nu",Ν:"Nu",ξ:"xi",Ξ:"Xi",ο:"omicron",Ο:"Omicron",π:"pi",ϖ:"piv",Π:"Pi",ρ:"rho",ϱ:"rhov",Ρ:"Rho",σ:"sigma",Σ:"Sigma",ς:"sigmaf",τ:"tau",Τ:"Tau",υ:"upsi",Υ:"Upsilon",ϒ:"Upsi",φ:"phi",ϕ:"phiv",Φ:"Phi",χ:"chi",Χ:"Chi",ψ:"psi",Ψ:"Psi",ω:"omega",Ω:"ohm",а:"acy",А:"Acy",б:"bcy",Б:"Bcy",в:"vcy",В:"Vcy",г:"gcy",Г:"Gcy",ѓ:"gjcy",Ѓ:"GJcy",д:"dcy",Д:"Dcy",ђ:"djcy",Ђ:"DJcy",е:"iecy",Е:"IEcy",ё:"iocy",Ё:"IOcy",є:"jukcy",Є:"Jukcy",ж:"zhcy",Ж:"ZHcy",з:"zcy",З:"Zcy",ѕ:"dscy",Ѕ:"DScy",и:"icy",И:"Icy",і:"iukcy",І:"Iukcy",ї:"yicy",Ї:"YIcy",й:"jcy",Й:"Jcy",ј:"jsercy",Ј:"Jsercy",к:"kcy",К:"Kcy",ќ:"kjcy",Ќ:"KJcy",л:"lcy",Л:"Lcy",љ:"ljcy",Љ:"LJcy",м:"mcy",М:"Mcy",н:"ncy",Н:"Ncy",њ:"njcy",Њ:"NJcy",о:"ocy",О:"Ocy",п:"pcy",П:"Pcy",р:"rcy",Р:"Rcy",с:"scy",С:"Scy",т:"tcy",Т:"Tcy",ћ:"tshcy",Ћ:"TSHcy",у:"ucy",У:"Ucy",ў:"ubrcy",Ў:"Ubrcy",ф:"fcy",Ф:"Fcy",х:"khcy",Х:"KHcy",ц:"tscy",Ц:"TScy",ч:"chcy",Ч:"CHcy",џ:"dzcy",Џ:"DZcy",ш:"shcy",Ш:"SHcy",щ:"shchcy",Щ:"SHCHcy",ъ:"hardcy",Ъ:"HARDcy",ы:"ycy",Ы:"Ycy",ь:"softcy",Ь:"SOFTcy",э:"ecy",Э:"Ecy",ю:"yucy",Ю:"YUcy",я:"yacy",Я:"YAcy",ℵ:"aleph",ℶ:"beth",ℷ:"gimel",ℸ:"daleth"},f=/["&'<>`]/g,m={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},g=/(?:[xX][^a-fA-F0-9]|[^0-9xX])/,b=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,v=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|([0-9]+)(;?)|[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,y={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:`
-`,nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:" ",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"",zwnj:""},N={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},F={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},X=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],p=String.fromCharCode,E={},O=E.hasOwnProperty,A=function(z,ce){return O.call(z,ce)},D=function(z,ce){for(var ue=-1,Te=z.length;++ue=55296&&z<=57343||z>1114111?(ce&&ie("character reference outside the permissible Unicode range"),"�"):A(F,z)?(ce&&ie("disallowed character reference"),F[z]):(ce&&D(X,z)&&ie("disallowed character reference"),z>65535&&(z-=65536,ue+=p(z>>>10&1023|55296),z=56320|z&1023),ue+=p(z),ue)},B=function(z){return""+z.toString(16).toUpperCase()+";"},re=function(z){return""+z+";"},ie=function(z){throw Error("Parse error: "+z)},j=function(z,ce){ce=M(ce,j.options);var ue=ce.strict;ue&&b.test(z)&&ie("forbidden code point");var Te=ce.encodeEverything,Pe=ce.useNamedReferences,Ve=ce.allowUnsafeSymbols,Re=ce.decimal?re:B,Ie=function(le){return Re(le.charCodeAt(0))};return Te?(z=z.replace(o,function(le){return Pe&&A(d,le)?"&"+d[le]+";":Ie(le)}),Pe&&(z=z.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),Pe&&(z=z.replace(u,function(le){return"&"+d[le]+";"}))):Pe?(Ve||(z=z.replace(f,function(le){return"&"+d[le]+";"})),z=z.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒"),z=z.replace(u,function(le){return"&"+d[le]+";"})):Ve||(z=z.replace(f,Ie)),z.replace(s,function(le){var Me=le.charCodeAt(0),je=le.charCodeAt(1),He=(Me-55296)*1024+je-56320+65536;return Re(He)}).replace(l,Ie)};j.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var J=function(z,ce){ce=M(ce,J.options);var ue=ce.strict;return ue&&g.test(z)&&ie("malformed character reference"),z.replace(v,function(Te,Pe,Ve,Re,Ie,le,Me,je,He){var rt,ft,Ct,Vt,ht,Nt;return Pe?(ht=Pe,y[ht]):Ve?(ht=Ve,Nt=Re,Nt&&ce.isAttributeValue?(ue&&Nt=="="&&ie("`&` did not start a character reference"),Te):(ue&&ie("named character reference was not terminated by a semicolon"),N[ht]+(Nt||""))):Ie?(Ct=Ie,ft=le,ue&&!ft&&ie("character reference was not terminated by a semicolon"),rt=parseInt(Ct,10),w(rt,ue)):Me?(Vt=Me,ft=je,ue&&!ft&&ie("character reference was not terminated by a semicolon"),rt=parseInt(Vt,16),w(rt,ue)):(ue&&ie("named character reference was not terminated by a semicolon"),Te)})};J.options={isAttributeValue:!1,strict:!1};var L=function(z){return z.replace(f,function(ce){return m[ce]})},G={version:"1.2.0",encode:j,decode:J,escape:L,unescape:J};if(r&&!r.nodeType)if(i)i.exports=G;else for(var Z in G)A(G,Z)&&(r[Z]=G[Z]);else t.he=G})(Wo)})(xl,xl.exports);var XM=xl.exports,VS=XM,ZM={decode:function(e){return VS.decode(e)},encode:function(e){return VS.encode(e)}};function eA(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(e=>{const t=n[e],r=typeof t;(r==="object"||r==="function")&&!Object.isFrozen(t)&&eA(t)}),n}class HS{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function tA(n){return n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function gi(n,...e){const t=Object.create(null);for(const r in n)t[r]=n[r];return e.forEach(function(r){for(const i in r)t[i]=r[i]}),t}const KM="",zS=n=>!!n.scope,jM=(n,{prefix:e})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${e}${n}`};class JM{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=tA(e)}openNode(e){if(!zS(e))return;const t=jM(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){zS(e)&&(this.buffer+=KM)}value(){return this.buffer}span(e){this.buffer+=``}}const WS=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class Um{constructor(){this.rootNode=WS(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=WS({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(r=>this._walk(e,r)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{Um._collapse(t)}))}}class eP extends Um{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const r=e.root;t&&(r.scope=`language:${t}`),this.add(r)}toHTML(){return new JM(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Bs(n){return n?typeof n=="string"?n:n.source:null}function rA(n){return ea("(?=",n,")")}function tP(n){return ea("(?:",n,")*")}function rP(n){return ea("(?:",n,")?")}function ea(...n){return n.map(t=>Bs(t)).join("")}function nP(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function Fm(...n){return"("+(nP(n).capture?"":"?:")+n.map(r=>Bs(r)).join("|")+")"}function nA(n){return new RegExp(n.toString()+"|").exec("").length-1}function iP(n,e){const t=n&&n.exec(e);return t&&t.index===0}const aP=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Ym(n,{joinWith:e}){let t=0;return n.map(r=>{t+=1;const i=t;let a=Bs(r),s="";for(;a.length>0;){const o=aP.exec(a);if(!o){s+=a;break}s+=a.substring(0,o.index),a=a.substring(o.index+o[0].length),o[0][0]==="\\"&&o[1]?s+="\\"+String(Number(o[1])+i):(s+=o[0],o[0]==="("&&t++)}return s}).map(r=>`(${r})`).join(e)}const sP=/\b\B/,iA="[a-zA-Z]\\w*",Gm="[a-zA-Z_]\\w*",aA="\\b\\d+(\\.\\d+)?",sA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",oA="\\b(0b[01]+)",oP="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",lP=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=ea(e,/.*\b/,n.binary,/\b.*/)),gi({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,r)=>{t.index!==0&&r.ignoreMatch()}},n)},Us={begin:"\\\\[\\s\\S]",relevance:0},cP={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Us]},uP={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Us]},dP={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Zl=function(n,e,t={}){const r=gi({scope:"comment",begin:n,end:e,contains:[]},t);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=Fm("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:ea(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},pP=Zl("//","$"),fP=Zl("/\\*","\\*/"),hP=Zl("#","$"),mP={scope:"number",begin:aA,relevance:0},_P={scope:"number",begin:sA,relevance:0},gP={scope:"number",begin:oA,relevance:0},SP={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Us,{begin:/\[/,end:/\]/,relevance:0,contains:[Us]}]}]},OP={scope:"title",begin:iA,relevance:0},EP={scope:"title",begin:Gm,relevance:0},bP={begin:"\\.\\s*"+Gm,relevance:0},TP=function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var No=Object.freeze({__proto__:null,MATCH_NOTHING_RE:sP,IDENT_RE:iA,UNDERSCORE_IDENT_RE:Gm,NUMBER_RE:aA,C_NUMBER_RE:sA,BINARY_NUMBER_RE:oA,RE_STARTERS_RE:oP,SHEBANG:lP,BACKSLASH_ESCAPE:Us,APOS_STRING_MODE:cP,QUOTE_STRING_MODE:uP,PHRASAL_WORDS_MODE:dP,COMMENT:Zl,C_LINE_COMMENT_MODE:pP,C_BLOCK_COMMENT_MODE:fP,HASH_COMMENT_MODE:hP,NUMBER_MODE:mP,C_NUMBER_MODE:_P,BINARY_NUMBER_MODE:gP,REGEXP_MODE:SP,TITLE_MODE:OP,UNDERSCORE_TITLE_MODE:EP,METHOD_GUARD:bP,END_SAME_AS_BEGIN:TP});function CP(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function vP(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function yP(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=CP,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function AP(n,e){Array.isArray(n.illegal)&&(n.illegal=Fm(...n.illegal))}function RP(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function IP(n,e){n.relevance===void 0&&(n.relevance=1)}const NP=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(r=>{delete n[r]}),n.keywords=t.keywords,n.begin=ea(t.beforeMatch,rA(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},DP=["of","and","for","in","not","or","if","then","parent","list","value"],wP="keyword";function lA(n,e,t=wP){const r=Object.create(null);return typeof n=="string"?i(t,n.split(" ")):Array.isArray(n)?i(t,n):Object.keys(n).forEach(function(a){Object.assign(r,lA(n[a],e,a))}),r;function i(a,s){e&&(s=s.map(o=>o.toLowerCase())),s.forEach(function(o){const l=o.split("|");r[l[0]]=[a,xP(l[0],l[1])]})}}function xP(n,e){return e?Number(e):LP(n)?0:1}function LP(n){return DP.includes(n.toLowerCase())}const XS={},Vi=n=>{console.error(n)},ZS=(n,...e)=>{console.log(`WARN: ${n}`,...e)},ua=(n,e)=>{XS[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),XS[`${n}/${e}`]=!0)},Ll=new Error;function cA(n,e,{key:t}){let r=0;const i=n[t],a={},s={};for(let o=1;o<=e.length;o++)s[o+r]=i[o],a[o+r]=!0,r+=nA(e[o-1]);n[t]=s,n[t]._emit=a,n[t]._multi=!0}function kP(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Vi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ll;if(typeof n.beginScope!="object"||n.beginScope===null)throw Vi("beginScope must be object"),Ll;cA(n,n.begin,{key:"beginScope"}),n.begin=Ym(n.begin,{joinWith:""})}}function MP(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Vi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ll;if(typeof n.endScope!="object"||n.endScope===null)throw Vi("endScope must be object"),Ll;cA(n,n.end,{key:"endScope"}),n.end=Ym(n.end,{joinWith:""})}}function PP(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function BP(n){PP(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),kP(n),MP(n)}function UP(n){function e(s,o){return new RegExp(Bs(s),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(o?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(o,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,o]),this.matchAt+=nA(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(l=>l[1]);this.matcherRe=e(Ym(o,{joinWith:"|"}),!0),this.lastIndex=0}exec(o){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(o);if(!l)return null;const u=l.findIndex((f,m)=>m>0&&f!==void 0),d=this.matchIndexes[u];return l.splice(0,u),Object.assign(l,d)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(o){if(this.multiRegexes[o])return this.multiRegexes[o];const l=new t;return this.rules.slice(o).forEach(([u,d])=>l.addRule(u,d)),l.compile(),this.multiRegexes[o]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(o,l){this.rules.push([o,l]),l.type==="begin"&&this.count++}exec(o){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let u=l.exec(o);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,u=d.exec(o)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function i(s){const o=new r;return s.contains.forEach(l=>o.addRule(l.begin,{rule:l,type:"begin"})),s.terminatorEnd&&o.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&o.addRule(s.illegal,{type:"illegal"}),o}function a(s,o){const l=s;if(s.isCompiled)return l;[vP,RP,BP,NP].forEach(d=>d(s,o)),n.compilerExtensions.forEach(d=>d(s,o)),s.__beforeBegin=null,[yP,AP,IP].forEach(d=>d(s,o)),s.isCompiled=!0;let u=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),u=s.keywords.$pattern,delete s.keywords.$pattern),u=u||/\w+/,s.keywords&&(s.keywords=lA(s.keywords,n.case_insensitive)),l.keywordPatternRe=e(u,!0),o&&(s.begin||(s.begin=/\B|\b/),l.beginRe=e(l.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(l.endRe=e(l.end)),l.terminatorEnd=Bs(l.end)||"",s.endsWithParent&&o.terminatorEnd&&(l.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),s.illegal&&(l.illegalRe=e(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return FP(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,l)}),s.starts&&a(s.starts,o),l.matcher=i(l),l}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=gi(n.classNameAliases||{}),a(n)}function uA(n){return n?n.endsWithParent||uA(n.starts):!1}function FP(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return gi(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:uA(n)?gi(n,{starts:n.starts?gi(n.starts):null}):Object.isFrozen(n)?gi(n):n}var YP="11.8.0";class GP extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Hc=tA,KS=gi,jS=Symbol("nomatch"),QP=7,dA=function(n){const e=Object.create(null),t=Object.create(null),r=[];let i=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let o={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:eP};function l(G){return o.noHighlightRe.test(G)}function u(G){let Z=G.className+" ";Z+=G.parentNode?G.parentNode.className:"";const z=o.languageDetectRe.exec(Z);if(z){const ce=M(z[1]);return ce||(ZS(a.replace("{}",z[1])),ZS("Falling back to no-highlight mode for this block.",G)),ce?z[1]:"no-highlight"}return Z.split(/\s+/).find(ce=>l(ce)||M(ce))}function d(G,Z,z){let ce="",ue="";typeof Z=="object"?(ce=G,z=Z.ignoreIllegals,ue=Z.language):(ua("10.7.0","highlight(lang, code, ...args) has been deprecated."),ua("10.7.0",`Please use highlight(code, options) instead.
-https://github.com/highlightjs/highlight.js/issues/2277`),ue=G,ce=Z),z===void 0&&(z=!0);const Te={code:ce,language:ue};J("before:highlight",Te);const Pe=Te.result?Te.result:f(Te.language,Te.code,z);return Pe.code=Te.code,J("after:highlight",Pe),Pe}function f(G,Z,z,ce){const ue=Object.create(null);function Te(he,ve){return he.keywords[ve]}function Pe(){if(!Fe.keywords){st.addText($e);return}let he=0;Fe.keywordPatternRe.lastIndex=0;let ve=Fe.keywordPatternRe.exec($e),Ce="";for(;ve;){Ce+=$e.substring(he,ve.index);const Ke=Nt.case_insensitive?ve[0].toLowerCase():ve[0],Ee=Te(Fe,Ke);if(Ee){const[Gt,ot]=Ee;if(st.addText(Ce),Ce="",ue[Ke]=(ue[Ke]||0)+1,ue[Ke]<=QP&&(Pr+=ot),Gt.startsWith("_"))Ce+=ve[0];else{const bt=Nt.classNameAliases[Gt]||Gt;Ie(ve[0],bt)}}else Ce+=ve[0];he=Fe.keywordPatternRe.lastIndex,ve=Fe.keywordPatternRe.exec($e)}Ce+=$e.substring(he),st.addText(Ce)}function Ve(){if($e==="")return;let he=null;if(typeof Fe.subLanguage=="string"){if(!e[Fe.subLanguage]){st.addText($e);return}he=f(Fe.subLanguage,$e,!0,Mr[Fe.subLanguage]),Mr[Fe.subLanguage]=he._top}else he=g($e,Fe.subLanguage.length?Fe.subLanguage:null);Fe.relevance>0&&(Pr+=he.relevance),st.__addSublanguage(he._emitter,he.language)}function Re(){Fe.subLanguage!=null?Ve():Pe(),$e=""}function Ie(he,ve){he!==""&&(st.startScope(ve),st.addText(he),st.endScope())}function le(he,ve){let Ce=1;const Ke=ve.length-1;for(;Ce<=Ke;){if(!he._emit[Ce]){Ce++;continue}const Ee=Nt.classNameAliases[he[Ce]]||he[Ce],Gt=ve[Ce];Ee?Ie(Gt,Ee):($e=Gt,Pe(),$e=""),Ce++}}function Me(he,ve){return he.scope&&typeof he.scope=="string"&&st.openNode(Nt.classNameAliases[he.scope]||he.scope),he.beginScope&&(he.beginScope._wrap?(Ie($e,Nt.classNameAliases[he.beginScope._wrap]||he.beginScope._wrap),$e=""):he.beginScope._multi&&(le(he.beginScope,ve),$e="")),Fe=Object.create(he,{parent:{value:Fe}}),Fe}function je(he,ve,Ce){let Ke=iP(he.endRe,Ce);if(Ke){if(he["on:end"]){const Ee=new HS(he);he["on:end"](ve,Ee),Ee.isMatchIgnored&&(Ke=!1)}if(Ke){for(;he.endsParent&&he.parent;)he=he.parent;return he}}if(he.endsWithParent)return je(he.parent,ve,Ce)}function He(he){return Fe.matcher.regexIndex===0?($e+=he[0],1):(V=!0,0)}function rt(he){const ve=he[0],Ce=he.rule,Ke=new HS(Ce),Ee=[Ce.__beforeBegin,Ce["on:begin"]];for(const Gt of Ee)if(Gt&&(Gt(he,Ke),Ke.isMatchIgnored))return He(ve);return Ce.skip?$e+=ve:(Ce.excludeBegin&&($e+=ve),Re(),!Ce.returnBegin&&!Ce.excludeBegin&&($e=ve)),Me(Ce,he),Ce.returnBegin?0:ve.length}function ft(he){const ve=he[0],Ce=Z.substring(he.index),Ke=je(Fe,he,Ce);if(!Ke)return jS;const Ee=Fe;Fe.endScope&&Fe.endScope._wrap?(Re(),Ie(ve,Fe.endScope._wrap)):Fe.endScope&&Fe.endScope._multi?(Re(),le(Fe.endScope,he)):Ee.skip?$e+=ve:(Ee.returnEnd||Ee.excludeEnd||($e+=ve),Re(),Ee.excludeEnd&&($e=ve));do Fe.scope&&st.closeNode(),!Fe.skip&&!Fe.subLanguage&&(Pr+=Fe.relevance),Fe=Fe.parent;while(Fe!==Ke.parent);return Ke.starts&&Me(Ke.starts,he),Ee.returnEnd?0:ve.length}function Ct(){const he=[];for(let ve=Fe;ve!==Nt;ve=ve.parent)ve.scope&&he.unshift(ve.scope);he.forEach(ve=>st.openNode(ve))}let Vt={};function ht(he,ve){const Ce=ve&&ve[0];if($e+=he,Ce==null)return Re(),0;if(Vt.type==="begin"&&ve.type==="end"&&Vt.index===ve.index&&Ce===""){if($e+=Z.slice(ve.index,ve.index+1),!i){const Ke=new Error(`0 width match regex (${G})`);throw Ke.languageName=G,Ke.badRule=Vt.rule,Ke}return 1}if(Vt=ve,ve.type==="begin")return rt(ve);if(ve.type==="illegal"&&!z){const Ke=new Error('Illegal lexeme "'+Ce+'" for mode "'+(Fe.scope||"")+'"');throw Ke.mode=Fe,Ke}else if(ve.type==="end"){const Ke=ft(ve);if(Ke!==jS)return Ke}if(ve.type==="illegal"&&Ce==="")return 1;if(mr>1e5&&mr>ve.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $e+=Ce,Ce.length}const Nt=M(G);if(!Nt)throw Vi(a.replace("{}",G)),new Error('Unknown language: "'+G+'"');const kt=UP(Nt);let Qr="",Fe=ce||kt;const Mr={},st=new o.__emitter(o);Ct();let $e="",Pr=0,nr=0,mr=0,V=!1;try{if(Nt.__emitTokens)Nt.__emitTokens(Z,st);else{for(Fe.matcher.considerAll();;){mr++,V?V=!1:Fe.matcher.considerAll(),Fe.matcher.lastIndex=nr;const he=Fe.matcher.exec(Z);if(!he)break;const ve=Z.substring(nr,he.index),Ce=ht(ve,he);nr=he.index+Ce}ht(Z.substring(nr))}return st.finalize(),Qr=st.toHTML(),{language:G,value:Qr,relevance:Pr,illegal:!1,_emitter:st,_top:Fe}}catch(he){if(he.message&&he.message.includes("Illegal"))return{language:G,value:Hc(Z),illegal:!0,relevance:0,_illegalBy:{message:he.message,index:nr,context:Z.slice(nr-100,nr+100),mode:he.mode,resultSoFar:Qr},_emitter:st};if(i)return{language:G,value:Hc(Z),illegal:!1,relevance:0,errorRaised:he,_emitter:st,_top:Fe};throw he}}function m(G){const Z={value:Hc(G),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};return Z._emitter.addText(G),Z}function g(G,Z){Z=Z||o.languages||Object.keys(e);const z=m(G),ce=Z.filter(M).filter(B).map(Re=>f(Re,G,!1));ce.unshift(z);const ue=ce.sort((Re,Ie)=>{if(Re.relevance!==Ie.relevance)return Ie.relevance-Re.relevance;if(Re.language&&Ie.language){if(M(Re.language).supersetOf===Ie.language)return 1;if(M(Ie.language).supersetOf===Re.language)return-1}return 0}),[Te,Pe]=ue,Ve=Te;return Ve.secondBest=Pe,Ve}function b(G,Z,z){const ce=Z&&t[Z]||z;G.classList.add("hljs"),G.classList.add(`language-${ce}`)}function v(G){let Z=null;const z=u(G);if(l(z))return;if(J("before:highlightElement",{el:G,language:z}),G.children.length>0&&(o.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(G)),o.throwUnescapedHTML))throw new GP("One of your code blocks includes unescaped HTML.",G.innerHTML);Z=G;const ce=Z.textContent,ue=z?d(ce,{language:z,ignoreIllegals:!0}):g(ce);G.innerHTML=ue.value,b(G,z,ue.language),G.result={language:ue.language,re:ue.relevance,relevance:ue.relevance},ue.secondBest&&(G.secondBest={language:ue.secondBest.language,relevance:ue.secondBest.relevance}),J("after:highlightElement",{el:G,result:ue,text:ce})}function y(G){o=KS(o,G)}const N=()=>{p(),ua("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function F(){p(),ua("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let X=!1;function p(){if(document.readyState==="loading"){X=!0;return}document.querySelectorAll(o.cssSelector).forEach(v)}function E(){X&&p()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",E,!1);function O(G,Z){let z=null;try{z=Z(n)}catch(ce){if(Vi("Language definition for '{}' could not be registered.".replace("{}",G)),i)Vi(ce);else throw ce;z=s}z.name||(z.name=G),e[G]=z,z.rawDefinition=Z.bind(null,n),z.aliases&&w(z.aliases,{languageName:G})}function A(G){delete e[G];for(const Z of Object.keys(t))t[Z]===G&&delete t[Z]}function D(){return Object.keys(e)}function M(G){return G=(G||"").toLowerCase(),e[G]||e[t[G]]}function w(G,{languageName:Z}){typeof G=="string"&&(G=[G]),G.forEach(z=>{t[z.toLowerCase()]=Z})}function B(G){const Z=M(G);return Z&&!Z.disableAutodetect}function re(G){G["before:highlightBlock"]&&!G["before:highlightElement"]&&(G["before:highlightElement"]=Z=>{G["before:highlightBlock"](Object.assign({block:Z.el},Z))}),G["after:highlightBlock"]&&!G["after:highlightElement"]&&(G["after:highlightElement"]=Z=>{G["after:highlightBlock"](Object.assign({block:Z.el},Z))})}function ie(G){re(G),r.push(G)}function j(G){const Z=r.indexOf(G);Z!==-1&&r.splice(Z,1)}function J(G,Z){const z=G;r.forEach(function(ce){ce[z]&&ce[z](Z)})}function L(G){return ua("10.7.0","highlightBlock will be removed entirely in v12.0"),ua("10.7.0","Please use highlightElement now."),v(G)}Object.assign(n,{highlight:d,highlightAuto:g,highlightAll:p,highlightElement:v,highlightBlock:L,configure:y,initHighlighting:N,initHighlightingOnLoad:F,registerLanguage:O,unregisterLanguage:A,listLanguages:D,getLanguage:M,registerAliases:w,autoDetection:B,inherit:KS,addPlugin:ie,removePlugin:j}),n.debugMode=function(){i=!1},n.safeMode=function(){i=!0},n.versionString=YP,n.regex={concat:ea,lookahead:rA,either:Fm,optional:rP,anyNumberOfTimes:tP};for(const G in No)typeof No[G]=="object"&&eA(No[G]);return Object.assign(n,No),n},Ga=dA({});Ga.newInstance=()=>dA({});var $P=Ga;Ga.HighlightJS=Ga;Ga.default=Ga;var zc,JS;function qP(){if(JS)return zc;JS=1;function n(e){const t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",a="далее "+"возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",l="загрузитьизфайла "+"вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ",u="разделительстраниц разделительстрок символтабуляции ",d="ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ",f="acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ",m="wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",g=u+d+f+m,b="webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ",v="автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы ",y="виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ",N="авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ",F="использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ",X="отображениевремениэлементовпланировщика ",p="типфайлаформатированногодокумента ",E="обходрезультатазапроса типзаписизапроса ",O="видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ",A="доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ",D="типизмеренияпостроителязапроса ",M="видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ",w="wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson ",B="видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных ",re="важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения ",ie="режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ",j="расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии ",J="кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip ",L="звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ",G="направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ",Z="httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений ",z="важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",ce=b+v+y+N+F+X+p+E+O+A+D+M+w+B+re+ie+j+J+L+G+Z+z,Pe="comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных "+"comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",Ve="null истина ложь неопределено",Re=e.inherit(e.NUMBER_MODE),Ie={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},le={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},Me=e.inherit(e.C_LINE_COMMENT_MODE),je={className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:a+l},contains:[Me]},He={className:"symbol",begin:"~",end:";|:",excludeEnd:!0},rt={className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"знач",literal:Ve},contains:[Re,Ie,le]},Me]},e.inherit(e.TITLE_MODE,{begin:t})]};return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:a,built_in:g,class:ce,type:Pe,literal:Ve},contains:[je,rt,Me,He,Re,Ie,le]}}return zc=n,zc}var Wc,eO;function VP(){if(eO)return Wc;eO=1;function n(e){const t=e.regex,r=/^[a-zA-Z][a-zA-Z0-9-]*/,i=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],a=e.COMMENT(/;/,/$/),s={scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},o={scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},l={scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},u={scope:"symbol",match:/%[si](?=".*")/},d={scope:"attribute",match:t.concat(r,/(?=\s*=)/)};return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:i,contains:[{scope:"operator",match:/=\/?/},d,a,s,o,l,u,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}return Wc=n,Wc}var Xc,tO;function HP(){if(tO)return Xc;tO=1;function n(e){const t=e.regex,r=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:t.concat(/"/,t.either(...r)),end:/"/,keywords:r,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}return Xc=n,Xc}var Zc,rO;function zP(){if(rO)return Zc;rO=1;function n(e){const t=e.regex,r=/[a-zA-Z_$][a-zA-Z0-9_$]*/,i=t.concat(r,t.concat("(\\.",r,")*")),a=/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/,s={className:"rest_arg",begin:/[.]{3}/,end:r,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]},{begin:t.concat(/:\s*/,a)}]},e.METHOD_GUARD],illegal:/#/}}return Zc=n,Zc}var Kc,nO;function WP(){if(nO)return Kc;nO=1;function n(e){const t="\\d(_|\\d)*",r="[eE][-+]?"+t,i=t+"(\\."+t+")?("+r+")?",a="\\w+",o="\\b("+(t+"#"+a+"(\\."+a+")?#("+r+")?")+"|"+i+")",l="[A-Za-z](_?[A-Za-z0-9.])*",u=`[]\\{\\}%#'"`,d=e.COMMENT("--","$"),f={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:u,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:l,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[d,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:o,relevance:0},{className:"symbol",begin:"'"+l},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:u},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[d,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:u},f,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:u}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:u},f]}}return Kc=n,Kc}var jc,iO;function XP(){if(iO)return jc;iO=1;function n(e){const t={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},r={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword",begin:"<",end:">",contains:[t,r]};return t.contains=[i],r.contains=[i],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,r,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}return jc=n,jc}var Jc,aO;function ZP(){if(aO)return Jc;aO=1;function n(e){const t={className:"number",begin:/[$%]\d+/},r={className:"number",begin:/\b\d+/},i={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},a={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[i,a,e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",t]},i,r,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}return Jc=n,Jc}var eu,sO;function KP(){if(sO)return eu;sO=1;function n(e){const t=e.regex,r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,r]},a=e.COMMENT(/--/,/$/),s=e.COMMENT(/\(\*/,/\*\)/,{contains:["self",a]}),o=[a,s,e.HASH_COMMENT_MODE],l=[/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/],u=[/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[r,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(...u),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(...l),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,i]},...o],illegal:/\/\/|->|=>|\[\[/}}return eu=n,eu}var tu,oO;function jP(){if(oO)return tu;oO=1;function n(e){const t="[A-Za-z_][0-9A-Za-z_]*",r={keyword:["if","for","while","var","new","function","do","return","void","else","break"],literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"]},i={className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},a={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},s={className:"subst",begin:"\\$\\{",end:"\\}",keywords:r,contains:[]},o={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,s]};s.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,a,e.REGEXP_MODE];const l=s.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:r,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,contains:l}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:l}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}return tu=n,tu}var ru,lO;function JP(){if(lO)return ru;lO=1;function n(t){const r=t.regex,i=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",o="<[^<>]+>",l="(?!struct)("+a+"|"+r.optional(s)+"[a-zA-Z_]\\w*"+r.optional(o)+")",u={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",f={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+d+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},m={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},g={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(f,{className:"string"}),{className:"string",begin:/<.*?>/},i,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:r.optional(s)+t.IDENT_RE,relevance:0},v=r.optional(s)+t.IDENT_RE+"\\s*\\(",y=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],N=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],F=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],X=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],O={type:N,keyword:y,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:F},A={className:"function.dispatch",relevance:0,keywords:{_hint:X},begin:r.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,t.IDENT_RE,r.lookahead(/(<[^<>]+>|)\s*\(/))},D=[A,g,u,i,t.C_BLOCK_COMMENT_MODE,m,f],M={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:O,contains:D.concat([{begin:/\(/,end:/\)/,keywords:O,contains:D.concat(["self"]),relevance:0}]),relevance:0},w={className:"function",begin:"("+l+"[\\*&\\s]+)+"+v,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:O,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:O,relevance:0},{begin:v,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[f,m]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:[i,t.C_BLOCK_COMMENT_MODE,f,m,u,{begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:["self",i,t.C_BLOCK_COMMENT_MODE,f,m,u]}]},u,i,t.C_BLOCK_COMMENT_MODE,g]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:O,illegal:"",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(M,w,A,D,[g,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:O,contains:["self",u]},{begin:t.IDENT_RE+"::",keywords:O},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function e(t){const r={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},i=n(t),a=i.keywords;return a.type=[...a.type,...r.type],a.literal=[...a.literal,...r.literal],a.built_in=[...a.built_in,...r.built_in],a._hints=r._hints,i.name="Arduino",i.aliases=["ino"],i.supersetOf="cpp",i}return ru=e,ru}var nu,cO;function e3(){if(cO)return nu;cO=1;function n(e){const t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}return nu=n,nu}var iu,uO;function t3(){if(uO)return iu;uO=1;function n(e){const t=e.regex,r=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,a={className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:i,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,u,l,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,u,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/