@aquera/nile-elements 0.0.33 → 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.js +2 -2
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js +30 -13
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.d.ts +2 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js +28 -7
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/index.iife.js +58 -29
- package/dist/nile-code-editor/extensionSetup.cjs.js +1 -1
- package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +2 -2
- package/dist/nile-switcher/index.cjs.js +1 -1
- package/dist/nile-switcher/index.esm.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
- package/dist/nile-switcher/nile-switcher.css.cjs.js +1 -1
- package/dist/nile-switcher/nile-switcher.css.cjs.js.map +1 -1
- package/dist/nile-switcher/nile-switcher.css.esm.js +32 -15
- package/dist/nile-switcher/nile-switcher.esm.js +33 -21
- package/dist/src/nile-code-editor/nile-code-editor.js +2 -2
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-switcher/nile-switcher.css.js +30 -13
- package/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
- package/dist/src/nile-switcher/nile-switcher.d.ts +2 -0
- package/dist/src/nile-switcher/nile-switcher.js +28 -7
- package/dist/src/nile-switcher/nile-switcher.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/src/nile-code-editor/nile-code-editor.ts +8 -3
- package/src/nile-switcher/nile-switcher.css.ts +30 -13
- package/src/nile-switcher/nile-switcher.ts +30 -7
package/dist/index.iife.js
CHANGED
@@ -4718,22 +4718,24 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
4718
4718
|
box-sizing: border-box;
|
4719
4719
|
}
|
4720
4720
|
|
4721
|
-
.
|
4722
|
-
cursor: pointer;
|
4723
|
-
justify-content: center;
|
4721
|
+
.switcher__label {
|
4724
4722
|
display: flex;
|
4725
4723
|
align-items: center;
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4724
|
+
color: inherit;
|
4725
|
+
color: var(--nile-colors-dark-900);
|
4726
|
+
font-family: Colfax-regular;
|
4727
|
+
font-size: 14px;
|
4728
|
+
font-style: normal;
|
4729
|
+
font-weight: 400;
|
4730
|
+
line-height: 14px;
|
4731
|
+
letter-spacing: 0.2px;
|
4730
4732
|
}
|
4731
4733
|
|
4732
4734
|
.switcher-icon-container.current {
|
4733
4735
|
background: var(--nile-colors-blue-400);
|
4734
4736
|
}
|
4735
4737
|
|
4736
|
-
.switcher-
|
4738
|
+
.switcher-container {
|
4737
4739
|
display: flex;
|
4738
4740
|
}
|
4739
4741
|
|
@@ -4745,21 +4747,36 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
4745
4747
|
flex-direction: column;
|
4746
4748
|
}
|
4747
4749
|
|
4748
|
-
.switcher-block > :first-child {
|
4749
|
-
align-self: end;
|
4750
|
-
}
|
4751
|
-
|
4752
4750
|
.switcher-inline > :nth-child(2) {
|
4753
4751
|
flex: 1;
|
4754
4752
|
}
|
4755
4753
|
|
4756
|
-
.switcher-
|
4754
|
+
.switcher-icons-container {
|
4757
4755
|
display: flex;
|
4756
|
+
margin-left: auto;
|
4758
4757
|
gap: 0.5rem;
|
4759
4758
|
max-height: 38px;
|
4760
4759
|
align-items: center;
|
4761
4760
|
}
|
4762
4761
|
|
4762
|
+
.switcher-block > .switcher-icons-container {
|
4763
|
+
margin-left: auto;
|
4764
|
+
}
|
4765
|
+
|
4766
|
+
.label-container {
|
4767
|
+
display: flex;
|
4768
|
+
}
|
4769
|
+
|
4770
|
+
.switcher-icon-container {
|
4771
|
+
cursor: pointer;
|
4772
|
+
justify-content: center;
|
4773
|
+
display: flex;
|
4774
|
+
align-items: center;
|
4775
|
+
margin-bottom: 6px;
|
4776
|
+
height: 28px;
|
4777
|
+
width: 28px;
|
4778
|
+
border-radius: 4px;
|
4779
|
+
}
|
4763
4780
|
nile-radio {
|
4764
4781
|
display: inline-block;
|
4765
4782
|
padding-right: 10px;
|
@@ -4792,7 +4809,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
4792
4809
|
* @license
|
4793
4810
|
* Copyright 2021 Google LLC
|
4794
4811
|
* SPDX-License-Identifier: BSD-3-Clause
|
4795
|
-
*/,Kt=(M,i,t)=>{const e=new Map;for(let N=i;N<=t;N++)e.set(M[N],N);return e},Me=zM(class extends yM{constructor(M){if(super(M),M.type!==TM)throw Error("repeat() can only be used in text expressions")}ct(M,i,t){let e;void 0===t?t=i:void 0!==i&&(e=i);const N=[],s=[];let u=0;for(const i of M)N[u]=e?e(i,u):u,s[u]=t(i,u),u++;return{values:s,keys:N}}render(M,i,t){return this.ct(M,i,t).values}update(M,[i,t,e]){var N;const s=(M=>M._$AH)(M),{values:u,keys:D}=this.ct(i,t,e);if(!Array.isArray(s))return this.ut=D,u;const n=null!==(N=this.ut)&&void 0!==N?N:this.ut=[],j=[];let I,l,r=0,o=s.length-1,g=0,c=u.length-1;for(;r<=o&&g<=c;)if(null===s[r])r++;else if(null===s[o])o--;else if(n[r]===D[g])j[g]=$M(s[r],u[g]),r++,g++;else if(n[o]===D[c])j[c]=$M(s[o],u[c]),o--,c--;else if(n[r]===D[c])j[c]=$M(s[r],u[c]),HM(M,j[c+1],s[r]),r++,c--;else if(n[o]===D[g])j[g]=$M(s[o],u[g]),HM(M,s[r],s[o]),o--,g++;else if(void 0===I&&(I=Kt(D,g,c),l=Kt(n,r,o)),I.has(n[r]))if(I.has(n[o])){const i=l.get(D[g]),t=void 0!==i?s[i]:null;if(null===t){const i=HM(M,s[r]);$M(i,u[g]),j[g]=i}else j[g]=$M(t,u[g]),HM(M,s[r],t),s[i]=null;g++}else KM(s[o]),o--;else KM(s[r]),r++;for(;g<=c;){const i=HM(M,j[c+1]);$M(i,u[g]),j[g++]=i}for(;r<=o;){const M=s[r++];null!==M&&KM(M)}return this.ut=D,qM(M,j),v}});var ie,te,ee,Ne;!function(M){M.INLINE="inline",M.BLOCK="block"}(ie||(ie={})),function(M){M.DEFAULT="defaultInput",M.SWITCH="switchInput"}(te||(te={})),function(M){M.DROPDOWN="dropdown",M.TEXT="text",M.CHECKBOX="checkbox",M.TEXTAREA="text-area",M.RADIO="radio",M.CONTENTEDITOR="content-editor",M.OBJECT_MAPPER="object-mapper",M.CODE_EDITOR="code-editor"}(ee||(ee={})),function(M){M.CREATE="create",M.EDIT="edit"}(Ne||(Ne={})),M.NileSwitcher=class extends RM{constructor(){super(...arguments),this.current=0}connectedCallback(){super.connectedCallback(),this.
|
4812
|
+
*/,Kt=(M,i,t)=>{const e=new Map;for(let N=i;N<=t;N++)e.set(M[N],N);return e},Me=zM(class extends yM{constructor(M){if(super(M),M.type!==TM)throw Error("repeat() can only be used in text expressions")}ct(M,i,t){let e;void 0===t?t=i:void 0!==i&&(e=i);const N=[],s=[];let u=0;for(const i of M)N[u]=e?e(i,u):u,s[u]=t(i,u),u++;return{values:s,keys:N}}render(M,i,t){return this.ct(M,i,t).values}update(M,[i,t,e]){var N;const s=(M=>M._$AH)(M),{values:u,keys:D}=this.ct(i,t,e);if(!Array.isArray(s))return this.ut=D,u;const n=null!==(N=this.ut)&&void 0!==N?N:this.ut=[],j=[];let I,l,r=0,o=s.length-1,g=0,c=u.length-1;for(;r<=o&&g<=c;)if(null===s[r])r++;else if(null===s[o])o--;else if(n[r]===D[g])j[g]=$M(s[r],u[g]),r++,g++;else if(n[o]===D[c])j[c]=$M(s[o],u[c]),o--,c--;else if(n[r]===D[c])j[c]=$M(s[r],u[c]),HM(M,j[c+1],s[r]),r++,c--;else if(n[o]===D[g])j[g]=$M(s[o],u[g]),HM(M,s[r],s[o]),o--,g++;else if(void 0===I&&(I=Kt(D,g,c),l=Kt(n,r,o)),I.has(n[r]))if(I.has(n[o])){const i=l.get(D[g]),t=void 0!==i?s[i]:null;if(null===t){const i=HM(M,s[r]);$M(i,u[g]),j[g]=i}else j[g]=$M(t,u[g]),HM(M,s[r],t),s[i]=null;g++}else KM(s[o]),o--;else KM(s[r]),r++;for(;g<=c;){const i=HM(M,j[c+1]);$M(i,u[g]),j[g++]=i}for(;r<=o;){const M=s[r++];null!==M&&KM(M)}return this.ut=D,qM(M,j),v}});var ie,te,ee,Ne;!function(M){M.INLINE="inline",M.BLOCK="block"}(ie||(ie={})),function(M){M.DEFAULT="defaultInput",M.SWITCH="switchInput"}(te||(te={})),function(M){M.DROPDOWN="dropdown",M.TEXT="text",M.CHECKBOX="checkbox",M.TEXTAREA="text-area",M.RADIO="radio",M.CONTENTEDITOR="content-editor",M.OBJECT_MAPPER="object-mapper",M.CODE_EDITOR="code-editor"}(ee||(ee={})),function(M){M.CREATE="create",M.EDIT="edit"}(Ne||(Ne={})),M.NileSwitcher=class extends RM{constructor(){super(...arguments),this.hasSlotController=new ZM(this,"label"),this.current=0}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}handleSwitcherChange(){this.setCurrentInput()}setCurrentInput(){this.nileSwitchConfig?.inputs&&(this.currentInput=this.nileSwitchConfig.inputs.filter(((M,i)=>i===this.current))[0])}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}renderNileText(M){const{value:i,label:t,placeholder:e,disabled:N,required:s,error:u,errorMessage:D,inputType:n,noborder:j}=M;return V`<nile-input
|
4796
4813
|
class=${dM({"switcher-input":!0,"switcher-input--noborder":!!j})}
|
4797
4814
|
.value=${i}
|
4798
4815
|
.label=${t}
|
@@ -4862,7 +4879,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
4862
4879
|
size="16"
|
4863
4880
|
>
|
4864
4881
|
</nile-icon>
|
4865
|
-
</nile-input>`}renderCodeEditor(M){const{value:i,multiLine:t,
|
4882
|
+
</nile-input>`}renderCodeEditor(M){const{value:i,multiLine:t,customAutoCompletions:e,disabled:N,readonly:s,errorMessage:u,error:D,inputType:n,noborder:j}=M;return V`<nile-code-editor
|
4866
4883
|
class=${dM({"code-editor":!0,"code-editor__no-border":!!j})}
|
4867
4884
|
@nile-expand="${M=>this.handleExpand(M,ee.CODE_EDITOR)}"
|
4868
4885
|
@nile-change="${M=>this.handleChange(M,ee.CODE_EDITOR)}"
|
@@ -4871,7 +4888,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
4871
4888
|
.customOptions="${e}"
|
4872
4889
|
.showLineNumbers="false"
|
4873
4890
|
></nile-code-editor> `}handleExpand(M,i){this.currentInput.expand=M.detail.expand,this.emit("nile-change",{input:this.currentInput})}handleChange(M,i){switch(i){case ee.OBJECT_MAPPER:this.currentInput.value="clicked";break;case ee.CHECKBOX:this.currentInput.value=M.detail.checked;break;case ee.CODE_EDITOR:default:this.currentInput.value=M.detail.value}M.stopPropagation(),this.emit("nile-change",{input:this.currentInput})}renderIcon(){const M=this.nileSwitchConfig.inputs,i=this.nileSwitchConfig.align===ie.BLOCK?"top":"bottom";return V`
|
4874
|
-
<div class="switcher-icons-container">
|
4891
|
+
<div part="icons-container" class="switcher-icons-container">
|
4875
4892
|
${Me(M,((M,t)=>V` <nile-tooltip
|
4876
4893
|
class=${dM({"switcher-tooltip-container":!0})}
|
4877
4894
|
content=${M.helperText}
|
@@ -4889,12 +4906,24 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
4889
4906
|
|
4890
4907
|
</nile-tooltip>`))}
|
4891
4908
|
</div>
|
4892
|
-
`}toggleField(M,i){this.current=i,this.emit("nile-switch",{input:this.currentInput})}singleFieldSwitcher(){return V`
|
4909
|
+
`}toggleField(M,i){this.nileSwitchConfig.confirmation&&(this.current=i),this.emit("nile-switch",{input:this.currentInput})}singleFieldSwitcher(){return this.currentInput||this.setCurrentInput(),V`
|
4893
4910
|
${((M,i,t)=>{for(const t of i)if(t[0]===M)return(0,t[1])();return null==t?void 0:t()})(this.currentInput.inputType,[[ee.TEXT,()=>this.renderNileText(this.currentInput)],[ee.CHECKBOX,()=>this.renderNileCheckBox(this.currentInput)],[ee.TEXTAREA,()=>this.renderNileTextArea(this.currentInput)],[ee.RADIO,()=>this.renderNileRadio(this.currentInput)],[ee.DROPDOWN,()=>this.renderDropdown(this.currentInput)],[ee.CONTENTEDITOR,()=>this.renderContentEditor(this.currentInput)],[ee.OBJECT_MAPPER,()=>this.renderObjectMapper()],[ee.CODE_EDITOR,()=>this.renderCodeEditor(this.currentInput)]],(()=>this.renderNileText(this.currentInput)))}
|
4894
|
-
`}render(){const M=this.nileSwitchConfig.align;return V`<div
|
4895
|
-
class=${dM({"switcher-block":
|
4911
|
+
`}render(){const M=this.hasSlotController.test("label"),i=this.nileSwitchConfig.align;return V`<div
|
4912
|
+
class=${dM({"switcher-block":i===ie.BLOCK,"switcher-inline":i===ie.INLINE,"switcher-container":!0})}
|
4896
4913
|
>
|
4897
|
-
|
4914
|
+
<div class="label-container">
|
4915
|
+
${M?V`
|
4916
|
+
<label
|
4917
|
+
part="switcher-label"
|
4918
|
+
class="switcher__label"
|
4919
|
+
for="input"
|
4920
|
+
>
|
4921
|
+
<slot name="label"></slot>
|
4922
|
+
</label>
|
4923
|
+
</div> `:""}
|
4924
|
+
${this.renderIcon()}
|
4925
|
+
</div>
|
4926
|
+
${this.singleFieldSwitcher()}
|
4898
4927
|
</div>`}},M.NileSwitcher.styles=qt,i([rM({type:Object})],M.NileSwitcher.prototype,"nileSwitchConfig",void 0),i([rM({type:Number})],M.NileSwitcher.prototype,"current",void 0),i([rM({type:Object})],M.NileSwitcher.prototype,"currentInput",void 0),i([GM(["current"],{waitUntilFirstUpdate:!0})],M.NileSwitcher.prototype,"handleSwitcherChange",null),M.NileSwitcher=i([jM("nile-switcher")],M.NileSwitcher);const se=D`
|
4899
4928
|
:host {
|
4900
4929
|
box-sizing: border-box;
|
@@ -5670,7 +5699,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
5670
5699
|
.code-editor__icon__container {
|
5671
5700
|
padding-right: 5px;
|
5672
5701
|
}
|
5673
|
-
`;class Oe{lineAt(M){if(M<0||M>this.length)throw new RangeError(`Invalid position ${M} in document of length ${this.length}`);return this.lineInner(M,!1,1,0)}line(M){if(M<1||M>this.lines)throw new RangeError(`Invalid line number ${M} in ${this.lines}-line document`);return this.lineInner(M,!0,1,0)}replace(M,i,t){[M,i]=we(this,M,i);let e=[];return this.decompose(0,M,e,2),t.length&&t.decompose(0,t.length,e,3),this.decompose(i,this.length,e,1),Le.from(e,this.length-(i-M)+t.length)}append(M){return this.replace(this.length,this.length,M)}slice(M,i=this.length){[M,i]=we(this,M,i);let t=[];return this.decompose(M,i,t,0),Le.from(t,i-M)}eq(M){if(M==this)return!0;if(M.length!=this.length||M.lines!=this.lines)return!1;let i=this.scanIdentical(M,1),t=this.length-this.scanIdentical(M,-1),e=new ye(this),N=new ye(M);for(let M=i,s=i;;){if(e.next(M),N.next(M),M=0,e.lineBreak!=N.lineBreak||e.done!=N.done||e.value!=N.value)return!1;if(s+=e.value.length,e.done||s>=t)return!0}}iter(M=1){return new ye(this,M)}iterRange(M,i=this.length){return new de(this,M,i)}iterLines(M,i){let t;if(null==M)t=this.iter();else{null==i&&(i=this.lines+1);let e=this.line(M).from;t=this.iterRange(e,Math.max(e,i==this.lines+1?this.length:i<=1?0:this.line(i-1).to))}return new Ae(t)}toString(){return this.sliceString(0)}toJSON(){let M=[];return this.flatten(M),M}constructor(){}static of(M){if(0==M.length)throw new RangeError("A document must have at least one line");return 1!=M.length||M[0]?M.length<=32?new Te(M):Le.from(Te.split(M,[])):Oe.empty}}class Te extends Oe{constructor(M,i=function(M){let i=-1;for(let t of M)i+=t.length+1;return i}(M)){super(),this.text=M,this.length=i}get lines(){return this.text.length}get children(){return null}lineInner(M,i,t,e){for(let N=0;;N++){let s=this.text[N],u=e+s.length;if((i?t:u)>=M)return new xe(e,u,t,s);e=u+1,t++}}decompose(M,i,t,e){let N=M<=0&&i>=this.length?this:new Te(ze(this.text,M,i),Math.min(i,this.length)-Math.max(0,M));if(1&e){let M=t.pop(),i=he(N.text,M.text.slice(),0,N.length);if(i.length<=32)t.push(new Te(i,M.length+N.length));else{let M=i.length>>1;t.push(new Te(i.slice(0,M)),new Te(i.slice(M)))}}else t.push(N)}replace(M,i,t){if(!(t instanceof Te))return super.replace(M,i,t);[M,i]=we(this,M,i);let e=he(this.text,he(t.text,ze(this.text,0,M)),i),N=this.length+t.length-(i-M);return e.length<=32?new Te(e,N):Le.from(Te.split(e,[]),N)}sliceString(M,i=this.length,t="\n"){[M,i]=we(this,M,i);let e="";for(let N=0,s=0;N<=i&&s<this.text.length;s++){let u=this.text[s],D=N+u.length;N>M&&s&&(e+=t),M<D&&i>N&&(e+=u.slice(Math.max(0,M-N),i-N)),N=D+1}return e}flatten(M){for(let i of this.text)M.push(i)}scanIdentical(){return 0}static split(M,i){let t=[],e=-1;for(let N of M)t.push(N),e+=N.length+1,32==t.length&&(i.push(new Te(t,e)),t=[],e=-1);return e>-1&&i.push(new Te(t,e)),i}}class Le extends Oe{constructor(M,i){super(),this.children=M,this.length=i,this.lines=0;for(let i of M)this.lines+=i.lines}lineInner(M,i,t,e){for(let N=0;;N++){let s=this.children[N],u=e+s.length,D=t+s.lines-1;if((i?D:u)>=M)return s.lineInner(M,i,t,e);e=u+1,t=D+1}}decompose(M,i,t,e){for(let N=0,s=0;s<=i&&N<this.children.length;N++){let u=this.children[N],D=s+u.length;if(M<=D&&i>=s){let N=e&((s<=M?1:0)|(D>=i?2:0));s>=M&&D<=i&&!N?t.push(u):u.decompose(M-s,i-s,t,N)}s=D+1}}replace(M,i,t){if([M,i]=we(this,M,i),t.lines<this.lines)for(let e=0,N=0;e<this.children.length;e++){let s=this.children[e],u=N+s.length;if(M>=N&&i<=u){let D=s.replace(M-N,i-N,t),n=this.lines-s.lines+D.lines;if(D.lines<n>>4&&D.lines>n>>6){let N=this.children.slice();return N[e]=D,new Le(N,this.length-(i-M)+t.length)}return super.replace(N,u,D)}N=u+1}return super.replace(M,i,t)}sliceString(M,i=this.length,t="\n"){[M,i]=we(this,M,i);let e="";for(let N=0,s=0;N<this.children.length&&s<=i;N++){let u=this.children[N],D=s+u.length;s>M&&N&&(e+=t),M<D&&i>s&&(e+=u.sliceString(M-s,i-s,t)),s=D+1}return e}flatten(M){for(let i of this.children)i.flatten(M)}scanIdentical(M,i){if(!(M instanceof Le))return 0;let t=0,[e,N,s,u]=i>0?[0,0,this.children.length,M.children.length]:[this.children.length-1,M.children.length-1,-1,-1];for(;;e+=i,N+=i){if(e==s||N==u)return t;let D=this.children[e],n=M.children[N];if(D!=n)return t+D.scanIdentical(n,i);t+=D.length+1}}static from(M,i=M.reduce(((M,i)=>M+i.length+1),-1)){let t=0;for(let i of M)t+=i.lines;if(t<32){let t=[];for(let i of M)i.flatten(t);return new Te(t,i)}let e=Math.max(32,t>>5),N=e<<1,s=e>>1,u=[],D=0,n=-1,j=[];function I(M){let i;if(M.lines>N&&M instanceof Le)for(let i of M.children)I(i);else M.lines>s&&(D>s||!D)?(l(),u.push(M)):M instanceof Te&&D&&(i=j[j.length-1])instanceof Te&&M.lines+i.lines<=32?(D+=M.lines,n+=M.length+1,j[j.length-1]=new Te(i.text.concat(M.text),i.length+1+M.length)):(D+M.lines>e&&l(),D+=M.lines,n+=M.length+1,j.push(M))}function l(){0!=D&&(u.push(1==j.length?j[0]:Le.from(j,n)),n=-1,D=j.length=0)}for(let i of M)I(i);return l(),1==u.length?u[0]:new Le(u,i)}}function he(M,i,t=0,e=1e9){for(let N=0,s=0,u=!0;s<M.length&&N<=e;s++){let D=M[s],n=N+D.length;n>=t&&(n>e&&(D=D.slice(0,e-N)),N<t&&(D=D.slice(t-N)),u?(i[i.length-1]+=D,u=!1):i.push(D)),N=n+1}return i}function ze(M,i,t){return he(M,[""],i,t)}Oe.empty=new Te([""],0);class ye{constructor(M,i=1){this.dir=i,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[M],this.offsets=[i>0?1:(M instanceof Te?M.text.length:M.children.length)<<1]}nextInner(M,i){for(this.done=this.lineBreak=!1;;){let t=this.nodes.length-1,e=this.nodes[t],N=this.offsets[t],s=N>>1,u=e instanceof Te?e.text.length:e.children.length;if(s==(i>0?u:0)){if(0==t)return this.done=!0,this.value="",this;i>0&&this.offsets[t-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&N)==(i>0?0:1)){if(this.offsets[t]+=i,0==M)return this.lineBreak=!0,this.value="\n",this;M--}else if(e instanceof Te){let N=e.text[s+(i<0?-1:0)];if(this.offsets[t]+=i,N.length>Math.max(0,M))return this.value=0==M?N:i>0?N.slice(M):N.slice(0,N.length-M),this;M-=N.length}else{let N=e.children[s+(i<0?-1:0)];M>N.length?(M-=N.length,this.offsets[t]+=i):(i<0&&this.offsets[t]--,this.nodes.push(N),this.offsets.push(i>0?1:(N instanceof Te?N.text.length:N.children.length)<<1))}}}next(M=0){return M<0&&(this.nextInner(-M,-this.dir),M=this.value.length),this.nextInner(M,this.dir)}}class de{constructor(M,i,t){this.value="",this.done=!1,this.cursor=new ye(M,i>t?-1:1),this.pos=i>t?M.length:0,this.from=Math.min(i,t),this.to=Math.max(i,t)}nextInner(M,i){if(i<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;M+=Math.max(0,i<0?this.pos-this.to:this.from-this.pos);let t=i<0?this.pos-this.from:this.to-this.pos;M>t&&(M=t),t-=M;let{value:e}=this.cursor.next(M);return this.pos+=(e.length+M)*i,this.value=e.length<=t?e:i<0?e.slice(e.length-t):e.slice(0,t),this.done=!this.value,this}next(M=0){return M<0?M=Math.max(M,this.from-this.pos):M>0&&(M=Math.min(M,this.to-this.pos)),this.nextInner(M,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class Ae{constructor(M){this.inner=M,this.afterBreak=!0,this.value="",this.done=!1}next(M=0){let{done:i,lineBreak:t,value:e}=this.inner.next(M);return i&&this.afterBreak?(this.value="",this.afterBreak=!1):i?(this.done=!0,this.value=""):t?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=e,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(Oe.prototype[Symbol.iterator]=function(){return this.iter()},ye.prototype[Symbol.iterator]=de.prototype[Symbol.iterator]=Ae.prototype[Symbol.iterator]=function(){return this});class xe{constructor(M,i,t,e){this.from=M,this.to=i,this.number=t,this.text=e}get length(){return this.to-this.from}}function we(M,i,t){return[i=Math.max(0,Math.min(M.length,i)),Math.max(i,Math.min(M.length,t))]}let Se="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((M=>M?parseInt(M,36):1));for(let M=1;M<Se.length;M++)Se[M]+=Se[M-1];function Ee(M){for(let i=1;i<Se.length;i+=2)if(Se[i]>M)return Se[i-1]<=M;return!1}function Qe(M){return M>=127462&&M<=127487}const ke=8205;function Ce(M,i,t=!0,e=!0){return(t?pe:Ue)(M,i,e)}function pe(M,i,t){if(i==M.length)return i;i&&be(M.charCodeAt(i))&&Ze(M.charCodeAt(i-1))&&i--;let e=me(M,i);for(i+=fe(e);i<M.length;){let N=me(M,i);if(e==ke||N==ke||t&&Ee(N))i+=fe(N),e=N;else{if(!Qe(N))break;{let t=0,e=i-2;for(;e>=0&&Qe(me(M,e));)t++,e-=2;if(t%2==0)break;i+=2}}}return i}function Ue(M,i,t){for(;i>0;){let e=pe(M,i-2,t);if(e<i)return e;i--}return 0}function be(M){return M>=56320&&M<57344}function Ze(M){return M>=55296&&M<56320}function me(M,i){let t=M.charCodeAt(i);if(!Ze(t)||i+1==M.length)return t;let e=M.charCodeAt(i+1);return be(e)?e-56320+(t-55296<<10)+65536:t}function Ye(M){return M<=65535?String.fromCharCode(M):(M-=65536,String.fromCharCode(55296+(M>>10),56320+(1023&M)))}function fe(M){return M<65536?1:2}const We=/\r\n?|\n/;var Ve=function(M){return M[M.Simple=0]="Simple",M[M.TrackDel=1]="TrackDel",M[M.TrackBefore=2]="TrackBefore",M[M.TrackAfter=3]="TrackAfter",M}(Ve||(Ve={}));class ve{constructor(M){this.sections=M}get length(){let M=0;for(let i=0;i<this.sections.length;i+=2)M+=this.sections[i];return M}get newLength(){let M=0;for(let i=0;i<this.sections.length;i+=2){let t=this.sections[i+1];M+=t<0?this.sections[i]:t}return M}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(M){for(let i=0,t=0,e=0;i<this.sections.length;){let N=this.sections[i++],s=this.sections[i++];s<0?(M(t,e,N),e+=N):e+=s,t+=N}}iterChangedRanges(M,i=!1){Be(this,M,i)}get invertedDesc(){let M=[];for(let i=0;i<this.sections.length;){let t=this.sections[i++],e=this.sections[i++];e<0?M.push(t,e):M.push(e,t)}return new ve(M)}composeDesc(M){return this.empty?M:M.empty?this:Xe(this,M)}mapDesc(M,i=!1){return M.empty?this:Fe(this,M,i)}mapPos(M,i=-1,t=Ve.Simple){let e=0,N=0;for(let s=0;s<this.sections.length;){let u=this.sections[s++],D=this.sections[s++],n=e+u;if(D<0){if(n>M)return N+(M-e);N+=u}else{if(t!=Ve.Simple&&n>=M&&(t==Ve.TrackDel&&e<M&&n>M||t==Ve.TrackBefore&&e<M||t==Ve.TrackAfter&&n>M))return null;if(n>M||n==M&&i<0&&!u)return M==e||i<0?N:N+D;N+=D}e=n}if(M>e)throw new RangeError(`Position ${M} is out of range for changeset of length ${e}`);return N}touchesRange(M,i=M){for(let t=0,e=0;t<this.sections.length&&e<=i;){let N=e+this.sections[t++];if(this.sections[t++]>=0&&e<=i&&N>=M)return!(e<M&&N>i)||"cover";e=N}return!1}toString(){let M="";for(let i=0;i<this.sections.length;){let t=this.sections[i++],e=this.sections[i++];M+=(M?" ":"")+t+(e>=0?":"+e:"")}return M}toJSON(){return this.sections}static fromJSON(M){if(!Array.isArray(M)||M.length%2||M.some((M=>"number"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ve(M)}static create(M){return new ve(M)}}class Ge extends ve{constructor(M,i){super(M),this.inserted=i}apply(M){if(this.length!=M.length)throw new RangeError("Applying change set to a document with the wrong length");return Be(this,((i,t,e,N,s)=>M=M.replace(e,e+(t-i),s)),!1),M}mapDesc(M,i=!1){return Fe(this,M,i,!0)}invert(M){let i=this.sections.slice(),t=[];for(let e=0,N=0;e<i.length;e+=2){let s=i[e],u=i[e+1];if(u>=0){i[e]=u,i[e+1]=s;let D=e>>1;for(;t.length<D;)t.push(Oe.empty);t.push(s?M.slice(N,N+s):Oe.empty)}N+=s}return new Ge(i,t)}compose(M){return this.empty?M:M.empty?this:Xe(this,M,!0)}map(M,i=!1){return M.empty?this:Fe(this,M,i,!0)}iterChanges(M,i=!1){Be(this,M,i)}get desc(){return ve.create(this.sections)}filter(M){let i=[],t=[],e=[],N=new Je(this);M:for(let s=0,u=0;;){let D=s==M.length?1e9:M[s++];for(;u<D||u==D&&0==N.len;){if(N.done)break M;let M=Math.min(N.len,D-u);Pe(e,M,-1);let s=-1==N.ins?-1:0==N.off?N.ins:0;Pe(i,M,s),s>0&&Re(t,i,N.text),N.forward(M),u+=M}let n=M[s++];for(;u<n;){if(N.done)break M;let M=Math.min(N.len,n-u);Pe(i,M,-1),Pe(e,M,-1==N.ins?-1:0==N.off?N.ins:0),N.forward(M),u+=M}}return{changes:new Ge(i,t),filtered:ve.create(e)}}toJSON(){let M=[];for(let i=0;i<this.sections.length;i+=2){let t=this.sections[i],e=this.sections[i+1];e<0?M.push(t):0==e?M.push([t]):M.push([t].concat(this.inserted[i>>1].toJSON()))}return M}static of(M,i,t){let e=[],N=[],s=0,u=null;function D(M=!1){if(!M&&!e.length)return;s<i&&Pe(e,i-s,-1);let t=new Ge(e,N);u=u?u.compose(t.map(u)):t,e=[],N=[],s=0}return function M(n){if(Array.isArray(n))for(let i of n)M(i);else if(n instanceof Ge){if(n.length!=i)throw new RangeError(`Mismatched change set length (got ${n.length}, expected ${i})`);D(),u=u?u.compose(n.map(u)):n}else{let{from:M,to:u=M,insert:j}=n;if(M>u||M<0||u>i)throw new RangeError(`Invalid change range ${M} to ${u} (in doc of length ${i})`);let I=j?"string"==typeof j?Oe.of(j.split(t||We)):j:Oe.empty,l=I.length;if(M==u&&0==l)return;M<s&&D(),M>s&&Pe(e,M-s,-1),Pe(e,u-M,l),Re(N,e,I),s=u}}(M),D(!u),u}static empty(M){return new Ge(M?[M,-1]:[],[])}static fromJSON(M){if(!Array.isArray(M))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],t=[];for(let e=0;e<M.length;e++){let N=M[e];if("number"==typeof N)i.push(N,-1);else{if(!Array.isArray(N)||"number"!=typeof N[0]||N.some(((M,i)=>i&&"string"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==N.length)i.push(N[0],0);else{for(;t.length<e;)t.push(Oe.empty);t[e]=Oe.of(N.slice(1)),i.push(N[0],t[e].length)}}}return new Ge(i,t)}static createSet(M,i){return new Ge(M,i)}}function Pe(M,i,t,e=!1){if(0==i&&t<=0)return;let N=M.length-2;N>=0&&t<=0&&t==M[N+1]?M[N]+=i:0==i&&0==M[N]?M[N+1]+=t:e?(M[N]+=i,M[N+1]+=t):M.push(i,t)}function Re(M,i,t){if(0==t.length)return;let e=i.length-2>>1;if(e<M.length)M[M.length-1]=M[M.length-1].append(t);else{for(;M.length<e;)M.push(Oe.empty);M.push(t)}}function Be(M,i,t){let e=M.inserted;for(let N=0,s=0,u=0;u<M.sections.length;){let D=M.sections[u++],n=M.sections[u++];if(n<0)N+=D,s+=D;else{let j=N,I=s,l=Oe.empty;for(;j+=D,I+=n,n&&e&&(l=l.append(e[u-2>>1])),!(t||u==M.sections.length||M.sections[u+1]<0);)D=M.sections[u++],n=M.sections[u++];i(N,j,s,I,l),N=j,s=I}}}function Fe(M,i,t,e=!1){let N=[],s=e?[]:null,u=new Je(M),D=new Je(i);for(let M=-1;;)if(-1==u.ins&&-1==D.ins){let M=Math.min(u.len,D.len);Pe(N,M,-1),u.forward(M),D.forward(M)}else if(D.ins>=0&&(u.ins<0||M==u.i||0==u.off&&(D.len<u.len||D.len==u.len&&!t))){let i=D.len;for(Pe(N,D.ins,-1);i;){let t=Math.min(u.len,i);u.ins>=0&&M<u.i&&u.len<=t&&(Pe(N,0,u.ins),s&&Re(s,N,u.text),M=u.i),u.forward(t),i-=t}D.next()}else{if(!(u.ins>=0)){if(u.done&&D.done)return s?Ge.createSet(N,s):ve.create(N);throw new Error("Mismatched change set lengths")}{let i=0,t=u.len;for(;t;)if(-1==D.ins){let M=Math.min(t,D.len);i+=M,t-=M,D.forward(M)}else{if(!(0==D.ins&&D.len<t))break;t-=D.len,D.next()}Pe(N,i,M<u.i?u.ins:0),s&&M<u.i&&Re(s,N,u.text),M=u.i,u.forward(u.len-t)}}}function Xe(M,i,t=!1){let e=[],N=t?[]:null,s=new Je(M),u=new Je(i);for(let M=!1;;){if(s.done&&u.done)return N?Ge.createSet(e,N):ve.create(e);if(0==s.ins)Pe(e,s.len,0,M),s.next();else if(0!=u.len||u.done){if(s.done||u.done)throw new Error("Mismatched change set lengths");{let i=Math.min(s.len2,u.len),t=e.length;if(-1==s.ins){let t=-1==u.ins?-1:u.off?0:u.ins;Pe(e,i,t,M),N&&t&&Re(N,e,u.text)}else-1==u.ins?(Pe(e,s.off?0:s.len,i,M),N&&Re(N,e,s.textBit(i))):(Pe(e,s.off?0:s.len,u.off?0:u.ins,M),N&&!u.off&&Re(N,e,u.text));M=(s.ins>i||u.ins>=0&&u.len>i)&&(M||e.length>t),s.forward2(i),u.forward(i)}}else Pe(e,0,u.ins,M),N&&Re(N,e,u.text),u.next()}}class Je{constructor(M){this.set=M,this.i=0,this.next()}next(){let{sections:M}=this.set;this.i<M.length?(this.len=M[this.i++],this.ins=M[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return-2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:M}=this.set,i=this.i-2>>1;return i>=M.length?Oe.empty:M[i]}textBit(M){let{inserted:i}=this.set,t=this.i-2>>1;return t>=i.length&&!M?Oe.empty:i[t].slice(this.off,null==M?void 0:this.off+M)}forward(M){M==this.len?this.next():(this.len-=M,this.off+=M)}forward2(M){-1==this.ins?this.forward(M):M==this.ins?this.next():(this.ins-=M,this.off+=M)}}class He{constructor(M,i,t){this.from=M,this.to=i,this.flags=t}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let M=7&this.flags;return 7==M?null:M}get goalColumn(){let M=this.flags>>6;return 16777215==M?void 0:M}map(M,i=-1){let t,e;return this.empty?t=e=M.mapPos(this.from,i):(t=M.mapPos(this.from,1),e=M.mapPos(this.to,-1)),t==this.from&&e==this.to?this:new He(t,e,this.flags)}extend(M,i=M){if(M<=this.anchor&&i>=this.anchor)return $e.range(M,i);let t=Math.abs(M-this.anchor)>Math.abs(i-this.anchor)?M:i;return $e.range(this.anchor,t)}eq(M,i=!1){return!(this.anchor!=M.anchor||this.head!=M.head||i&&this.empty&&this.assoc!=M.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(M){if(!M||"number"!=typeof M.anchor||"number"!=typeof M.head)throw new RangeError("Invalid JSON representation for SelectionRange");return $e.range(M.anchor,M.head)}static create(M,i,t){return new He(M,i,t)}}class $e{constructor(M,i){this.ranges=M,this.mainIndex=i}map(M,i=-1){return M.empty?this:$e.create(this.ranges.map((t=>t.map(M,i))),this.mainIndex)}eq(M,i=!1){if(this.ranges.length!=M.ranges.length||this.mainIndex!=M.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(M.ranges[t],i))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new $e([this.main],0)}addRange(M,i=!0){return $e.create([M].concat(this.ranges),i?0:this.mainIndex+1)}replaceRange(M,i=this.mainIndex){let t=this.ranges.slice();return t[i]=M,$e.create(t,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((M=>M.toJSON())),main:this.mainIndex}}static fromJSON(M){if(!M||!Array.isArray(M.ranges)||"number"!=typeof M.main||M.main>=M.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new $e(M.ranges.map((M=>He.fromJSON(M))),M.main)}static single(M,i=M){return new $e([$e.range(M,i)],0)}static create(M,i=0){if(0==M.length)throw new RangeError("A selection needs at least one range");for(let t=0,e=0;e<M.length;e++){let N=M[e];if(N.empty?N.from<=t:N.from<t)return $e.normalized(M.slice(),i);t=N.to}return new $e(M,i)}static cursor(M,i=0,t,e){return He.create(M,M,(0==i?0:i<0?8:16)|(null==t?7:Math.min(6,t))|(null!=e?e:16777215)<<6)}static range(M,i,t,e){let N=(null!=t?t:16777215)<<6|(null==e?7:Math.min(6,e));return i<M?He.create(i,M,48|N):He.create(M,i,(i>M?8:0)|N)}static normalized(M,i=0){let t=M[i];M.sort(((M,i)=>M.from-i.from)),i=M.indexOf(t);for(let t=1;t<M.length;t++){let e=M[t],N=M[t-1];if(e.empty?e.from<=N.to:e.from<N.to){let s=N.from,u=Math.max(e.to,N.to);t<=i&&i--,M.splice(--t,2,e.anchor>e.head?$e.range(u,s):$e.range(s,u))}}return new $e(M,i)}}function _e(M,i){for(let t of M.ranges)if(t.to>i)throw new RangeError("Selection points outside of document")}let qe=0;class Ke{constructor(M,i,t,e,N){this.combine=M,this.compareInput=i,this.compare=t,this.isStatic=e,this.id=qe++,this.default=M([]),this.extensions="function"==typeof N?N(this):N}get reader(){return this}static define(M={}){return new Ke(M.combine||(M=>M),M.compareInput||((M,i)=>M===i),M.compare||(M.combine?(M,i)=>M===i:MN),!!M.static,M.enables)}of(M){return new iN([],this,0,M)}compute(M,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new iN(M,this,1,i)}computeN(M,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new iN(M,this,2,i)}from(M,i){return i||(i=M=>M),this.compute([M],(t=>i(t.field(M))))}}function MN(M,i){return M==i||M.length==i.length&&M.every(((M,t)=>M===i[t]))}class iN{constructor(M,i,t,e){this.dependencies=M,this.facet=i,this.type=t,this.value=e,this.id=qe++}dynamicSlot(M){var i;let t=this.value,e=this.facet.compareInput,N=this.id,s=M[N]>>1,u=2==this.type,D=!1,n=!1,j=[];for(let t of this.dependencies)"doc"==t?D=!0:"selection"==t?n=!0:0==(1&(null!==(i=M[t.id])&&void 0!==i?i:1))&&j.push(M[t.id]);return{create:M=>(M.values[s]=t(M),1),update(M,i){if(D&&i.docChanged||n&&(i.docChanged||i.selection)||eN(M,j)){let i=t(M);if(u?!tN(i,M.values[s],e):!e(i,M.values[s]))return M.values[s]=i,1}return 0},reconfigure:(M,i)=>{let D,n=i.config.address[N];if(null!=n){let N=TN(i,n);if(this.dependencies.every((t=>t instanceof Ke?i.facet(t)===M.facet(t):!(t instanceof uN)||i.field(t,!1)==M.field(t,!1)))||(u?tN(D=t(M),N,e):e(D=t(M),N)))return M.values[s]=N,0}else D=t(M);return M.values[s]=D,1}}}}function tN(M,i,t){if(M.length!=i.length)return!1;for(let e=0;e<M.length;e++)if(!t(M[e],i[e]))return!1;return!0}function eN(M,i){let t=!1;for(let e of i)1&ON(M,e)&&(t=!0);return t}function NN(M,i,t){let e=t.map((i=>M[i.id])),N=t.map((M=>M.type)),s=e.filter((M=>!(1&M))),u=M[i.id]>>1;function D(M){let t=[];for(let i=0;i<e.length;i++){let s=TN(M,e[i]);if(2==N[i])for(let M of s)t.push(M);else t.push(s)}return i.combine(t)}return{create(M){for(let i of e)ON(M,i);return M.values[u]=D(M),1},update(M,t){if(!eN(M,s))return 0;let e=D(M);return i.compare(e,M.values[u])?0:(M.values[u]=e,1)},reconfigure(M,N){let s=eN(M,e),n=N.config.facets[i.id],j=N.facet(i);if(n&&!s&&MN(t,n))return M.values[u]=j,0;let I=D(M);return i.compare(I,j)?(M.values[u]=j,0):(M.values[u]=I,1)}}}const sN=Ke.define({static:!0});class uN{constructor(M,i,t,e,N){this.id=M,this.createF=i,this.updateF=t,this.compareF=e,this.spec=N,this.provides=void 0}static define(M){let i=new uN(qe++,M.create,M.update,M.compare||((M,i)=>M===i),M);return M.provide&&(i.provides=M.provide(i)),i}create(M){let i=M.facet(sN).find((M=>M.field==this));return((null==i?void 0:i.create)||this.createF)(M)}slot(M){let i=M[this.id]>>1;return{create:M=>(M.values[i]=this.create(M),1),update:(M,t)=>{let e=M.values[i],N=this.updateF(e,t);return this.compareF(e,N)?0:(M.values[i]=N,1)},reconfigure:(M,t)=>null!=t.config.address[this.id]?(M.values[i]=t.field(this),0):(M.values[i]=this.create(M),1)}}init(M){return[this,sN.of({field:this,create:M})]}get extension(){return this}}const DN=4,nN=3,jN=2,IN=1;function lN(M){return i=>new oN(i,M)}const rN={highest:lN(0),high:lN(IN),default:lN(jN),low:lN(nN),lowest:lN(DN)};class oN{constructor(M,i){this.inner=M,this.prec=i}}class gN{of(M){return new cN(this,M)}reconfigure(M){return gN.reconfigure.of({compartment:this,extension:M})}get(M){return M.config.compartments.get(this)}}class cN{constructor(M,i){this.compartment=M,this.inner=i}}class aN{constructor(M,i,t,e,N,s){for(this.base=M,this.compartments=i,this.dynamicSlots=t,this.address=e,this.staticValues=N,this.facets=s,this.statusTemplate=[];this.statusTemplate.length<t.length;)this.statusTemplate.push(0)}staticFacet(M){let i=this.address[M.id];return null==i?M.default:this.staticValues[i>>1]}static resolve(M,i,t){let e=[],N=Object.create(null),s=new Map;for(let t of function(M,i,t){let e=[[],[],[],[],[]],N=new Map;function s(M,u){let D=N.get(M);if(null!=D){if(D<=u)return;let i=e[D].indexOf(M);i>-1&&e[D].splice(i,1),M instanceof cN&&t.delete(M.compartment)}if(N.set(M,u),Array.isArray(M))for(let i of M)s(i,u);else if(M instanceof cN){if(t.has(M.compartment))throw new RangeError("Duplicate use of compartment in extensions");let e=i.get(M.compartment)||M.inner;t.set(M.compartment,e),s(e,u)}else if(M instanceof oN)s(M.inner,M.prec);else if(M instanceof uN)e[u].push(M),M.provides&&s(M.provides,u);else if(M instanceof iN)e[u].push(M),M.facet.extensions&&s(M.facet.extensions,jN);else{let i=M.extension;if(!i)throw new Error(`Unrecognized extension value in extension set (${M}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(i,u)}}return s(M,jN),e.reduce(((M,i)=>M.concat(i)))}(M,i,s))t instanceof uN?e.push(t):(N[t.facet.id]||(N[t.facet.id]=[])).push(t);let u=Object.create(null),D=[],n=[];for(let M of e)u[M.id]=n.length<<1,n.push((i=>M.slot(i)));let j=null==t?void 0:t.config.facets;for(let M in N){let i=N[M],e=i[0].facet,s=j&&j[M]||[];if(i.every((M=>0==M.type)))if(u[e.id]=D.length<<1|1,MN(s,i))D.push(t.facet(e));else{let M=e.combine(i.map((M=>M.value)));D.push(t&&e.compare(M,t.facet(e))?t.facet(e):M)}else{for(let M of i)0==M.type?(u[M.id]=D.length<<1|1,D.push(M.value)):(u[M.id]=n.length<<1,n.push((i=>M.dynamicSlot(i))));u[e.id]=n.length<<1,n.push((M=>NN(M,e,i)))}}let I=n.map((M=>M(u)));return new aN(M,s,I,u,D,N)}}function ON(M,i){if(1&i)return 2;let t=i>>1,e=M.status[t];if(4==e)throw new Error("Cyclic dependency between fields and/or facets");if(2&e)return e;M.status[t]=4;let N=M.computeSlot(M,M.config.dynamicSlots[t]);return M.status[t]=2|N}function TN(M,i){return 1&i?M.config.staticValues[i>>1]:M.values[i>>1]}const LN=Ke.define(),hN=Ke.define({combine:M=>M.some((M=>M)),static:!0}),zN=Ke.define({combine:M=>M.length?M[0]:void 0,static:!0}),yN=Ke.define(),dN=Ke.define(),AN=Ke.define(),xN=Ke.define({combine:M=>!!M.length&&M[0]});class wN{constructor(M,i){this.type=M,this.value=i}static define(){return new SN}}class SN{of(M){return new wN(this,M)}}class EN{constructor(M){this.map=M}of(M){return new QN(this,M)}}class QN{constructor(M,i){this.type=M,this.value=i}map(M){let i=this.type.map(this.value,M);return void 0===i?void 0:i==this.value?this:new QN(this.type,i)}is(M){return this.type==M}static define(M={}){return new EN(M.map||(M=>M))}static mapEffects(M,i){if(!M.length)return M;let t=[];for(let e of M){let M=e.map(i);M&&t.push(M)}return t}}QN.reconfigure=QN.define(),QN.appendConfig=QN.define();class kN{constructor(M,i,t,e,N,s){this.startState=M,this.changes=i,this.selection=t,this.effects=e,this.annotations=N,this.scrollIntoView=s,this._doc=null,this._state=null,t&&_e(t,i.newLength),N.some((M=>M.type==kN.time))||(this.annotations=N.concat(kN.time.of(Date.now())))}static create(M,i,t,e,N,s){return new kN(M,i,t,e,N,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(M){for(let i of this.annotations)if(i.type==M)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(M){let i=this.annotation(kN.userEvent);return!(!i||!(i==M||i.length>M.length&&i.slice(0,M.length)==M&&"."==i[M.length]))}}function CN(M,i){let t=[];for(let e=0,N=0;;){let s,u;if(e<M.length&&(N==i.length||i[N]>=M[e]))s=M[e++],u=M[e++];else{if(!(N<i.length))return t;s=i[N++],u=i[N++]}!t.length||t[t.length-1]<s?t.push(s,u):t[t.length-1]<u&&(t[t.length-1]=u)}}function pN(M,i,t){var e;let N,s,u;return t?(N=i.changes,s=Ge.empty(i.changes.length),u=M.changes.compose(i.changes)):(N=i.changes.map(M.changes),s=M.changes.mapDesc(i.changes,!0),u=M.changes.compose(N)),{changes:u,selection:i.selection?i.selection.map(s):null===(e=M.selection)||void 0===e?void 0:e.map(N),effects:QN.mapEffects(M.effects,N).concat(QN.mapEffects(i.effects,s)),annotations:M.annotations.length?M.annotations.concat(i.annotations):i.annotations,scrollIntoView:M.scrollIntoView||i.scrollIntoView}}function UN(M,i,t){let e=i.selection,N=mN(i.annotations);return i.userEvent&&(N=N.concat(kN.userEvent.of(i.userEvent))),{changes:i.changes instanceof Ge?i.changes:Ge.of(i.changes||[],t,M.facet(zN)),selection:e&&(e instanceof $e?e:$e.single(e.anchor,e.head)),effects:mN(i.effects),annotations:N,scrollIntoView:!!i.scrollIntoView}}function bN(M,i,t){let e=UN(M,i.length?i[0]:{},M.doc.length);i.length&&!1===i[0].filter&&(t=!1);for(let N=1;N<i.length;N++){!1===i[N].filter&&(t=!1);let s=!!i[N].sequential;e=pN(e,UN(M,i[N],s?e.changes.newLength:M.doc.length),s)}let N=kN.create(M,e.changes,e.selection,e.effects,e.annotations,e.scrollIntoView);return function(M){let i=M.startState,t=i.facet(AN),e=M;for(let N=t.length-1;N>=0;N--){let s=t[N](M);s&&Object.keys(s).length&&(e=pN(e,UN(i,s,M.changes.newLength),!0))}return e==M?M:kN.create(i,M.changes,M.selection,e.effects,e.annotations,e.scrollIntoView)}(t?function(M){let i=M.startState,t=!0;for(let e of i.facet(yN)){let i=e(M);if(!1===i){t=!1;break}Array.isArray(i)&&(t=!0===t?i:CN(t,i))}if(!0!==t){let e,N;if(!1===t)N=M.changes.invertedDesc,e=Ge.empty(i.doc.length);else{let i=M.changes.filter(t);e=i.changes,N=i.filtered.mapDesc(i.changes).invertedDesc}M=kN.create(i,e,M.selection&&M.selection.map(N),QN.mapEffects(M.effects,N),M.annotations,M.scrollIntoView)}let e=i.facet(dN);for(let t=e.length-1;t>=0;t--){let N=e[t](M);M=N instanceof kN?N:Array.isArray(N)&&1==N.length&&N[0]instanceof kN?N[0]:bN(i,mN(N),!1)}return M}(N):N)}kN.time=wN.define(),kN.userEvent=wN.define(),kN.addToHistory=wN.define(),kN.remote=wN.define();const ZN=[];function mN(M){return null==M?ZN:Array.isArray(M)?M:[M]}var YN=function(M){return M[M.Word=0]="Word",M[M.Space=1]="Space",M[M.Other=2]="Other",M}(YN||(YN={}));const fN=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let WN;try{WN=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(b){}function VN(M){return i=>{if(!/\S/.test(i))return YN.Space;if(function(M){if(WN)return WN.test(M);for(let i=0;i<M.length;i++){let t=M[i];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||fN.test(t)))return!0}return!1}(i))return YN.Word;for(let t=0;t<M.length;t++)if(i.indexOf(M[t])>-1)return YN.Word;return YN.Other}}class vN{constructor(M,i,t,e,N,s){this.config=M,this.doc=i,this.selection=t,this.values=e,this.status=M.statusTemplate.slice(),this.computeSlot=N,s&&(s._state=this);for(let M=0;M<this.config.dynamicSlots.length;M++)ON(this,M<<1);this.computeSlot=null}field(M,i=!0){let t=this.config.address[M.id];if(null!=t)return ON(this,t),TN(this,t);if(i)throw new RangeError("Field is not present in this state")}update(...M){return bN(this,M,!0)}applyTransaction(M){let i,t=this.config,{base:e,compartments:N}=t;for(let i of M.effects)i.is(gN.reconfigure)?(t&&(N=new Map,t.compartments.forEach(((M,i)=>N.set(i,M))),t=null),N.set(i.value.compartment,i.value.extension)):i.is(QN.reconfigure)?(t=null,e=i.value):i.is(QN.appendConfig)&&(t=null,e=mN(e).concat(i.value));if(t)i=M.startState.values.slice();else{t=aN.resolve(e,N,this),i=new vN(t,this.doc,this.selection,t.dynamicSlots.map((()=>null)),((M,i)=>i.reconfigure(M,this)),null).values}let s=M.startState.facet(hN)?M.newSelection:M.newSelection.asSingle();new vN(t,M.newDoc,s,i,((i,t)=>t.update(i,M)),M)}replaceSelection(M){return"string"==typeof M&&(M=this.toText(M)),this.changeByRange((i=>({changes:{from:i.from,to:i.to,insert:M},range:$e.cursor(i.from+M.length)})))}changeByRange(M){let i=this.selection,t=M(i.ranges[0]),e=this.changes(t.changes),N=[t.range],s=mN(t.effects);for(let t=1;t<i.ranges.length;t++){let u=M(i.ranges[t]),D=this.changes(u.changes),n=D.map(e);for(let M=0;M<t;M++)N[M]=N[M].map(n);let j=e.mapDesc(D,!0);N.push(u.range.map(j)),e=e.compose(n),s=QN.mapEffects(s,n).concat(QN.mapEffects(mN(u.effects),j))}return{changes:e,selection:$e.create(N,i.mainIndex),effects:s}}changes(M=[]){return M instanceof Ge?M:Ge.of(M,this.doc.length,this.facet(vN.lineSeparator))}toText(M){return Oe.of(M.split(this.facet(vN.lineSeparator)||We))}sliceDoc(M=0,i=this.doc.length){return this.doc.sliceString(M,i,this.lineBreak)}facet(M){let i=this.config.address[M.id];return null==i?M.default:(ON(this,i),TN(this,i))}toJSON(M){let i={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(M)for(let t in M){let e=M[t];e instanceof uN&&null!=this.config.address[e.id]&&(i[t]=e.spec.toJSON(this.field(M[t]),this))}return i}static fromJSON(M,i={},t){if(!M||"string"!=typeof M.doc)throw new RangeError("Invalid JSON representation for EditorState");let e=[];if(t)for(let i in t)if(Object.prototype.hasOwnProperty.call(M,i)){let N=t[i],s=M[i];e.push(N.init((M=>N.spec.fromJSON(s,M))))}return vN.create({doc:M.doc,selection:$e.fromJSON(M.selection),extensions:i.extensions?e.concat([i.extensions]):e})}static create(M={}){let i=aN.resolve(M.extensions||[],new Map),t=M.doc instanceof Oe?M.doc:Oe.of((M.doc||"").split(i.staticFacet(vN.lineSeparator)||We)),e=M.selection?M.selection instanceof $e?M.selection:$e.single(M.selection.anchor,M.selection.head):$e.single(0);return _e(e,t.length),i.staticFacet(hN)||(e=e.asSingle()),new vN(i,t,e,i.dynamicSlots.map((()=>null)),((M,i)=>i.create(M)),null)}get tabSize(){return this.facet(vN.tabSize)}get lineBreak(){return this.facet(vN.lineSeparator)||"\n"}get readOnly(){return this.facet(xN)}phrase(M,...i){for(let i of this.facet(vN.phrases))if(Object.prototype.hasOwnProperty.call(i,M)){M=i[M];break}return i.length&&(M=M.replace(/\$(\$|\d*)/g,((M,t)=>{if("$"==t)return"$";let e=+(t||1);return!e||e>i.length?M:i[e-1]}))),M}languageDataAt(M,i,t=-1){let e=[];for(let N of this.facet(LN))for(let s of N(this,i,t))Object.prototype.hasOwnProperty.call(s,M)&&e.push(s[M]);return e}charCategorizer(M){return VN(this.languageDataAt("wordChars",M).join(""))}wordAt(M){let{text:i,from:t,length:e}=this.doc.lineAt(M),N=this.charCategorizer(M),s=M-t,u=M-t;for(;s>0;){let M=Ce(i,s,!1);if(N(i.slice(M,s))!=YN.Word)break;s=M}for(;u<e;){let M=Ce(i,u);if(N(i.slice(u,M))!=YN.Word)break;u=M}return s==u?null:$e.range(s+t,u+t)}}function GN(M,i,t={}){let e={};for(let i of M)for(let M of Object.keys(i)){let N=i[M],s=e[M];if(void 0===s)e[M]=N;else if(s===N||void 0===N);else{if(!Object.hasOwnProperty.call(t,M))throw new Error("Config merge conflict for field "+M);e[M]=t[M](s,N)}}for(let M in i)void 0===e[M]&&(e[M]=i[M]);return e}vN.allowMultipleSelections=hN,vN.tabSize=Ke.define({combine:M=>M.length?M[0]:4}),vN.lineSeparator=zN,vN.readOnly=xN,vN.phrases=Ke.define({compare(M,i){let t=Object.keys(M),e=Object.keys(i);return t.length==e.length&&t.every((t=>M[t]==i[t]))}}),vN.languageData=LN,vN.changeFilter=yN,vN.transactionFilter=dN,vN.transactionExtender=AN,gN.reconfigure=QN.define();class PN{eq(M){return this==M}range(M,i=M){return RN.create(M,i,this)}}PN.prototype.startSide=PN.prototype.endSide=0,PN.prototype.point=!1,PN.prototype.mapMode=Ve.TrackDel;let RN=class M{constructor(M,i,t){this.from=M,this.to=i,this.value=t}static create(i,t,e){return new M(i,t,e)}};function BN(M,i){return M.from-i.from||M.value.startSide-i.value.startSide}class FN{constructor(M,i,t,e){this.from=M,this.to=i,this.value=t,this.maxPoint=e}get length(){return this.to[this.to.length-1]}findIndex(M,i,t,e=0){let N=t?this.to:this.from;for(let s=e,u=N.length;;){if(s==u)return s;let e=s+u>>1,D=N[e]-M||(t?this.value[e].endSide:this.value[e].startSide)-i;if(e==s)return D>=0?s:u;D>=0?u=e:s=e+1}}between(M,i,t,e){for(let N=this.findIndex(i,-1e9,!0),s=this.findIndex(t,1e9,!1,N);N<s;N++)if(!1===e(this.from[N]+M,this.to[N]+M,this.value[N]))return!1}map(M,i){let t=[],e=[],N=[],s=-1,u=-1;for(let D=0;D<this.value.length;D++){let n,j,I=this.value[D],l=this.from[D]+M,r=this.to[D]+M;if(l==r){let M=i.mapPos(l,I.startSide,I.mapMode);if(null==M)continue;if(n=j=M,I.startSide!=I.endSide&&(j=i.mapPos(l,I.endSide),j<n))continue}else if(n=i.mapPos(l,I.startSide),j=i.mapPos(r,I.endSide),n>j||n==j&&I.startSide>0&&I.endSide<=0)continue;(j-n||I.endSide-I.startSide)<0||(s<0&&(s=n),I.point&&(u=Math.max(u,j-n)),t.push(I),e.push(n-s),N.push(j-s))}return{mapped:t.length?new FN(e,N,t,u):null,pos:s}}}class XN{constructor(M,i,t,e){this.chunkPos=M,this.chunk=i,this.nextLayer=t,this.maxPoint=e}static create(M,i,t,e){return new XN(M,i,t,e)}get length(){let M=this.chunk.length-1;return M<0?0:Math.max(this.chunkEnd(M),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let M=this.nextLayer.size;for(let i of this.chunk)M+=i.value.length;return M}chunkEnd(M){return this.chunkPos[M]+this.chunk[M].length}update(M){let{add:i=[],sort:t=!1,filterFrom:e=0,filterTo:N=this.length}=M,s=M.filter;if(0==i.length&&!s)return this;if(t&&(i=i.slice().sort(BN)),this.isEmpty)return i.length?XN.of(i):this;let u=new $N(this,null,-1).goto(0),D=0,n=[],j=new JN;for(;u.value||D<i.length;)if(D<i.length&&(u.from-i[D].from||u.startSide-i[D].value.startSide)>=0){let M=i[D++];j.addInner(M.from,M.to,M.value)||n.push(M)}else 1==u.rangeIndex&&u.chunkIndex<this.chunk.length&&(D==i.length||this.chunkEnd(u.chunkIndex)<i[D].from)&&(!s||e>this.chunkEnd(u.chunkIndex)||N<this.chunkPos[u.chunkIndex])&&j.addChunk(this.chunkPos[u.chunkIndex],this.chunk[u.chunkIndex])?u.nextChunk():((!s||e>u.to||N<u.from||s(u.from,u.to,u.value))&&(j.addInner(u.from,u.to,u.value)||n.push(RN.create(u.from,u.to,u.value))),u.next());return j.finishInner(this.nextLayer.isEmpty&&!n.length?XN.empty:this.nextLayer.update({add:n,filter:s,filterFrom:e,filterTo:N}))}map(M){if(M.empty||this.isEmpty)return this;let i=[],t=[],e=-1;for(let N=0;N<this.chunk.length;N++){let s=this.chunkPos[N],u=this.chunk[N],D=M.touchesRange(s,s+u.length);if(!1===D)e=Math.max(e,u.maxPoint),i.push(u),t.push(M.mapPos(s));else if(!0===D){let{mapped:N,pos:D}=u.map(s,M);N&&(e=Math.max(e,N.maxPoint),i.push(N),t.push(D))}}let N=this.nextLayer.map(M);return 0==i.length?N:new XN(t,i,N||XN.empty,e)}between(M,i,t){if(!this.isEmpty){for(let e=0;e<this.chunk.length;e++){let N=this.chunkPos[e],s=this.chunk[e];if(i>=N&&M<=N+s.length&&!1===s.between(N,M-N,i-N,t))return}this.nextLayer.between(M,i,t)}}iter(M=0){return _N.from([this]).goto(M)}get isEmpty(){return this.nextLayer==this}static iter(M,i=0){return _N.from(M).goto(i)}static compare(M,i,t,e,N=-1){let s=M.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=N)),u=i.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=N)),D=HN(s,u,t),n=new KN(s,D,N),j=new KN(u,D,N);t.iterGaps(((M,i,t)=>Ms(n,M,j,i,t,e))),t.empty&&0==t.length&&Ms(n,0,j,0,0,e)}static eq(M,i,t=0,e){null==e&&(e=999999999);let N=M.filter((M=>!M.isEmpty&&i.indexOf(M)<0)),s=i.filter((i=>!i.isEmpty&&M.indexOf(i)<0));if(N.length!=s.length)return!1;if(!N.length)return!0;let u=HN(N,s),D=new KN(N,u,0).goto(t),n=new KN(s,u,0).goto(t);for(;;){if(D.to!=n.to||!is(D.active,n.active)||D.point&&(!n.point||!D.point.eq(n.point)))return!1;if(D.to>e)return!0;D.next(),n.next()}}static spans(M,i,t,e,N=-1){let s=new KN(M,null,N).goto(i),u=i,D=s.openStart;for(;;){let M=Math.min(s.to,t);if(s.point){let t=s.activeForPoint(s.to),N=s.pointFrom<i?t.length+1:Math.min(t.length,D);e.point(u,M,s.point,t,N,s.pointRank),D=Math.min(s.openEnd(M),t.length)}else M>u&&(e.span(u,M,s.active,D),D=s.openEnd(M));if(s.to>t)return D+(s.point&&s.to>t?1:0);u=s.to,s.next()}}static of(M,i=!1){let t=new JN;for(let e of M instanceof RN?[M]:i?function(M){if(M.length>1)for(let i=M[0],t=1;t<M.length;t++){let e=M[t];if(BN(i,e)>0)return M.slice().sort(BN);i=e}return M}(M):M)t.add(e.from,e.to,e.value);return t.finish()}static join(M){if(!M.length)return XN.empty;let i=M[M.length-1];for(let t=M.length-2;t>=0;t--)for(let e=M[t];e!=XN.empty;e=e.nextLayer)i=new XN(e.chunkPos,e.chunk,i,Math.max(e.maxPoint,i.maxPoint));return i}}XN.empty=new XN([],[],null,-1),XN.empty.nextLayer=XN.empty;class JN{finishChunk(M){this.chunks.push(new FN(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,M&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(M,i,t){this.addInner(M,i,t)||(this.nextLayer||(this.nextLayer=new JN)).add(M,i,t)}addInner(M,i,t){let e=M-this.lastTo||t.startSide-this.last.endSide;if(e<=0&&(M-this.lastFrom||t.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(e<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=M),this.from.push(M-this.chunkStart),this.to.push(i-this.chunkStart),this.last=t,this.lastFrom=M,this.lastTo=i,this.value.push(t),t.point&&(this.maxPoint=Math.max(this.maxPoint,i-M)),!0)}addChunk(M,i){if((M-this.lastTo||i.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,i.maxPoint),this.chunks.push(i),this.chunkPos.push(M);let t=i.value.length-1;return this.last=i.value[t],this.lastFrom=i.from[t]+M,this.lastTo=i.to[t]+M,!0}finish(){return this.finishInner(XN.empty)}finishInner(M){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return M;let i=XN.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(M):M,this.setMaxPoint);return this.from=null,i}}function HN(M,i,t){let e=new Map;for(let i of M)for(let M=0;M<i.chunk.length;M++)i.chunk[M].maxPoint<=0&&e.set(i.chunk[M],i.chunkPos[M]);let N=new Set;for(let M of i)for(let i=0;i<M.chunk.length;i++){let s=e.get(M.chunk[i]);null==s||(t?t.mapPos(s):s)!=M.chunkPos[i]||(null==t?void 0:t.touchesRange(s,s+M.chunk[i].length))||N.add(M.chunk[i])}return N}class $N{constructor(M,i,t,e=0){this.layer=M,this.skip=i,this.minPoint=t,this.rank=e}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(M,i=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(M,i,!1),this}gotoInner(M,i,t){for(;this.chunkIndex<this.layer.chunk.length;){let i=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(i)||this.layer.chunkEnd(this.chunkIndex)<M||i.maxPoint<this.minPoint))break;this.chunkIndex++,t=!1}if(this.chunkIndex<this.layer.chunk.length){let e=this.layer.chunk[this.chunkIndex].findIndex(M-this.layer.chunkPos[this.chunkIndex],i,!0);(!t||this.rangeIndex<e)&&this.setRangeIndex(e)}this.next()}forward(M,i){(this.to-M||this.endSide-i)<0&&this.gotoInner(M,i,!0)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}{let M=this.layer.chunkPos[this.chunkIndex],i=this.layer.chunk[this.chunkIndex],t=M+i.from[this.rangeIndex];if(this.from=t,this.to=M+i.to[this.rangeIndex],this.value=i.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(M){if(M==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=M}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(M){return this.from-M.from||this.startSide-M.startSide||this.rank-M.rank||this.to-M.to||this.endSide-M.endSide}}class _N{constructor(M){this.heap=M}static from(M,i=null,t=-1){let e=[];for(let N=0;N<M.length;N++)for(let s=M[N];!s.isEmpty;s=s.nextLayer)s.maxPoint>=t&&e.push(new $N(s,i,t,N));return 1==e.length?e[0]:new _N(e)}get startSide(){return this.value?this.value.startSide:0}goto(M,i=-1e9){for(let t of this.heap)t.goto(M,i);for(let M=this.heap.length>>1;M>=0;M--)qN(this.heap,M);return this.next(),this}forward(M,i){for(let t of this.heap)t.forward(M,i);for(let M=this.heap.length>>1;M>=0;M--)qN(this.heap,M);(this.to-M||this.value.endSide-i)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let M=this.heap[0];this.from=M.from,this.to=M.to,this.value=M.value,this.rank=M.rank,M.value&&M.next(),qN(this.heap,0)}}}function qN(M,i){for(let t=M[i];;){let e=1+(i<<1);if(e>=M.length)break;let N=M[e];if(e+1<M.length&&N.compare(M[e+1])>=0&&(N=M[e+1],e++),t.compare(N)<0)break;M[e]=t,M[i]=N,i=e}}class KN{constructor(M,i,t){this.minPoint=t,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=_N.from(M,i,t)}goto(M,i=-1e9){return this.cursor.goto(M,i),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=M,this.endSide=i,this.openStart=-1,this.next(),this}forward(M,i){for(;this.minActive>-1&&(this.activeTo[this.minActive]-M||this.active[this.minActive].endSide-i)<0;)this.removeActive(this.minActive);this.cursor.forward(M,i)}removeActive(M){ts(this.active,M),ts(this.activeTo,M),ts(this.activeRank,M),this.minActive=Ns(this.active,this.activeTo)}addActive(M){let i=0,{value:t,to:e,rank:N}=this.cursor;for(;i<this.activeRank.length&&(N-this.activeRank[i]||e-this.activeTo[i])>0;)i++;es(this.active,i,t),es(this.activeTo,i,e),es(this.activeRank,i,N),M&&es(M,i,this.cursor.from),this.minActive=Ns(this.active,this.activeTo)}next(){let M=this.to,i=this.point;this.point=null;let t=this.openStart<0?[]:null;for(;;){let e=this.minActive;if(e>-1&&(this.activeTo[e]-this.cursor.from||this.active[e].endSide-this.cursor.startSide)<0){if(this.activeTo[e]>M){this.to=this.activeTo[e],this.endSide=this.active[e].endSide;break}this.removeActive(e),t&&ts(t,e)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>M){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let M=this.cursor.value;if(M.point){if(!(i&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)){this.point=M,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=M.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(t),this.cursor.next()}}}if(t){this.openStart=0;for(let i=t.length-1;i>=0&&t[i]<M;i--)this.openStart++}}activeForPoint(M){if(!this.active.length)return this.active;let i=[];for(let t=this.active.length-1;t>=0&&!(this.activeRank[t]<this.pointRank);t--)(this.activeTo[t]>M||this.activeTo[t]==M&&this.active[t].endSide>=this.point.endSide)&&i.push(this.active[t]);return i.reverse()}openEnd(M){let i=0;for(let t=this.activeTo.length-1;t>=0&&this.activeTo[t]>M;t--)i++;return i}}function Ms(M,i,t,e,N,s){M.goto(i),t.goto(e);let u=e+N,D=e,n=e-i;for(;;){let i=M.to+n-t.to||M.endSide-t.endSide,e=i<0?M.to+n:t.to,N=Math.min(e,u);if(M.point||t.point?M.point&&t.point&&(M.point==t.point||M.point.eq(t.point))&&is(M.activeForPoint(M.to),t.activeForPoint(t.to))||s.comparePoint(D,N,M.point,t.point):N>D&&!is(M.active,t.active)&&s.compareRange(D,N,M.active,t.active),e>u)break;D=e,i<=0&&M.next(),i>=0&&t.next()}}function is(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++)if(M[t]!=i[t]&&!M[t].eq(i[t]))return!1;return!0}function ts(M,i){for(let t=i,e=M.length-1;t<e;t++)M[t]=M[t+1];M.pop()}function es(M,i,t){for(let t=M.length-1;t>=i;t--)M[t+1]=M[t];M[i]=t}function Ns(M,i){let t=-1,e=1e9;for(let N=0;N<i.length;N++)(i[N]-e||M[N].endSide-M[t].endSide)<0&&(t=N,e=i[N]);return t}function ss(M,i,t=M.length){let e=0;for(let N=0;N<t;)9==M.charCodeAt(N)?(e+=i-e%i,N++):(e++,N=Ce(M,N));return e}function us(M,i,t,e){for(let e=0,N=0;;){if(N>=i)return e;if(e==M.length)break;N+=9==M.charCodeAt(e)?t-N%t:1,e=Ce(M,e)}return!0===e?-1:M.length}const Ds="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),ns="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),js="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class Is{constructor(M,i){this.rules=[];let{finish:t}=i||{};function e(M){return/^@/.test(M)?[M]:M.split(/,\s*/)}function N(M,i,s,u){let D=[],n=/^@(\w+)\b/.exec(M[0]),j=n&&"keyframes"==n[1];if(n&&null==i)return s.push(M[0]+";");for(let t in i){let u=i[t];if(/&/.test(t))N(t.split(/,\s*/).map((i=>M.map((M=>i.replace(/&/,M))))).reduce(((M,i)=>M.concat(i))),u,s);else if(u&&"object"==typeof u){if(!n)throw new RangeError("The value of a property ("+t+") should be a primitive value.");N(e(t),u,D,j)}else null!=u&&D.push(t.replace(/_.*/,"").replace(/[A-Z]/g,(M=>"-"+M.toLowerCase()))+": "+u+";")}(D.length||j)&&s.push((!t||n||u?M:M.map(t)).join(", ")+" {"+D.join(" ")+"}")}for(let i in M)N(e(i),M[i],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let M=js[Ds]||1;return js[Ds]=M+1,"ͼ"+M.toString(36)}static mount(M,i,t){let e=M[ns],N=t&&t.nonce;e?N&&e.setNonce(N):e=new rs(M,N),e.mount(Array.isArray(i)?i:[i])}}let ls=new Map;class rs{constructor(M,i){let t=M.ownerDocument||M,e=t.defaultView;if(!M.head&&M.adoptedStyleSheets&&e.CSSStyleSheet){let i=ls.get(t);if(i)return M.adoptedStyleSheets=[i.sheet,...M.adoptedStyleSheets],M[ns]=i;this.sheet=new e.CSSStyleSheet,M.adoptedStyleSheets=[this.sheet,...M.adoptedStyleSheets],ls.set(t,this)}else{this.styleTag=t.createElement("style"),i&&this.styleTag.setAttribute("nonce",i);let e=M.head||M;e.insertBefore(this.styleTag,e.firstChild)}this.modules=[],M[ns]=this}mount(M){let i=this.sheet,t=0,e=0;for(let N=0;N<M.length;N++){let s=M[N],u=this.modules.indexOf(s);if(u<e&&u>-1&&(this.modules.splice(u,1),e--,u=-1),-1==u){if(this.modules.splice(e++,0,s),i)for(let M=0;M<s.rules.length;M++)i.insertRule(s.rules[M],t++)}else{for(;e<u;)t+=this.modules[e++].rules.length;t+=s.rules.length,e++}}if(!i){let M="";for(let i=0;i<this.modules.length;i++)M+=this.modules[i].getRules()+"\n";this.styleTag.textContent=M}}setNonce(M){this.styleTag&&this.styleTag.getAttribute("nonce")!=M&&this.styleTag.setAttribute("nonce",M)}}for(var os={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},gs={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},cs="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),as="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Os=0;Os<10;Os++)os[48+Os]=os[96+Os]=String(Os);for(Os=1;Os<=24;Os++)os[Os+111]="F"+Os;for(Os=65;Os<=90;Os++)os[Os]=String.fromCharCode(Os+32),gs[Os]=String.fromCharCode(Os);for(var Ts in os)gs.hasOwnProperty(Ts)||(gs[Ts]=os[Ts]);function Ls(M){let i;return i=11==M.nodeType?M.getSelection?M:M.ownerDocument:M,i.getSelection()}function hs(M,i){return!!i&&(M==i||M.contains(1!=i.nodeType?i.parentNode:i))}function zs(M,i){if(!i.anchorNode)return!1;try{return hs(M,i.anchorNode)}catch(M){return!1}}function ys(M){return 3==M.nodeType?bs(M,0,M.nodeValue.length).getClientRects():1==M.nodeType?M.getClientRects():[]}function ds(M,i,t,e){return!!t&&(xs(M,i,t,e,-1)||xs(M,i,t,e,1))}function As(M){for(var i=0;;i++)if(!(M=M.previousSibling))return i}function xs(M,i,t,e,N){for(;;){if(M==t&&i==e)return!0;if(i==(N<0?0:ws(M))){if("DIV"==M.nodeName)return!1;let t=M.parentNode;if(!t||1!=t.nodeType)return!1;i=As(M)+(N<0?0:1),M=t}else{if(1!=M.nodeType)return!1;if(1==(M=M.childNodes[i+(N<0?-1:0)]).nodeType&&"false"==M.contentEditable)return!1;i=N<0?ws(M):0}}}function ws(M){return 3==M.nodeType?M.nodeValue.length:M.childNodes.length}function Ss(M,i){let t=i?M.left:M.right;return{left:t,right:t,top:M.top,bottom:M.bottom}}function Es(M){return{left:0,right:M.innerWidth,top:0,bottom:M.innerHeight}}function Qs(M,i){let t=i.width/M.offsetWidth,e=i.height/M.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(i.width-M.offsetWidth)<1)&&(t=1),(e>.995&&e<1.005||!isFinite(e)||Math.abs(i.height-M.offsetHeight)<1)&&(e=1),{scaleX:t,scaleY:e}}class ks{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(M){return this.anchorNode==M.anchorNode&&this.anchorOffset==M.anchorOffset&&this.focusNode==M.focusNode&&this.focusOffset==M.focusOffset}setRange(M){let{anchorNode:i,focusNode:t}=M;this.set(i,Math.min(M.anchorOffset,i?ws(i):0),t,Math.min(M.focusOffset,t?ws(t):0))}set(M,i,t,e){this.anchorNode=M,this.anchorOffset=i,this.focusNode=t,this.focusOffset=e}}let Cs,ps=null;function Us(M){if(M.setActive)return M.setActive();if(ps)return M.focus(ps);let i=[];for(let t=M;t&&(i.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(M.focus(null==ps?{get preventScroll(){return ps={preventScroll:!0},!0}}:void 0),!ps){ps=!1;for(let M=0;M<i.length;){let t=i[M++],e=i[M++],N=i[M++];t.scrollTop!=e&&(t.scrollTop=e),t.scrollLeft!=N&&(t.scrollLeft=N)}}}function bs(M,i,t=i){let e=Cs||(Cs=document.createRange());return e.setEnd(M,t),e.setStart(M,i),e}function Zs(M,i,t){let e={key:i,code:i,keyCode:t,which:t,cancelable:!0},N=new KeyboardEvent("keydown",e);N.synthetic=!0,M.dispatchEvent(N);let s=new KeyboardEvent("keyup",e);return s.synthetic=!0,M.dispatchEvent(s),N.defaultPrevented||s.defaultPrevented}function ms(M){for(;M.attributes.length;)M.removeAttributeNode(M.attributes[0])}function Ys(M){return M.scrollTop>Math.max(1,M.scrollHeight-M.clientHeight-4)}class fs{constructor(M,i,t=!0){this.node=M,this.offset=i,this.precise=t}static before(M,i){return new fs(M.parentNode,As(M),i)}static after(M,i){return new fs(M.parentNode,As(M)+1,i)}}const Ws=[];class Vs{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(M){let i=this.posAtStart;for(let t of this.children){if(t==M)return i;i+=t.length+t.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(M){return this.posBefore(M)+M.length}sync(M,i){if(2&this.flags){let t,e=this.dom,N=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(t=N?N.nextSibling:e.firstChild)){let M=Vs.get(t);(!M||!M.parent&&M.canReuseDOM(s))&&s.reuseDOM(t)}s.sync(M,i),s.flags&=-8}if(t=N?N.nextSibling:e.firstChild,i&&!i.written&&i.node==e&&t!=s.dom&&(i.written=!0),s.dom.parentNode==e)for(;t&&t!=s.dom;)t=vs(t);else e.insertBefore(s.dom,t);N=s.dom}for(t=N?N.nextSibling:e.firstChild,t&&i&&i.node==e&&(i.written=!0);t;)t=vs(t)}else if(1&this.flags)for(let t of this.children)7&t.flags&&(t.sync(M,i),t.flags&=-8)}reuseDOM(M){}localPosFromDOM(M,i){let t;if(M==this.dom)t=this.dom.childNodes[i];else{let e=0==ws(M)?0:0==i?-1:1;for(;;){let i=M.parentNode;if(i==this.dom)break;0==e&&i.firstChild!=i.lastChild&&(e=M==i.firstChild?-1:1),M=i}t=e<0?M:M.nextSibling}if(t==this.dom.firstChild)return 0;for(;t&&!Vs.get(t);)t=t.nextSibling;if(!t)return this.length;for(let M=0,i=0;;M++){let e=this.children[M];if(e.dom==t)return i;i+=e.length+e.breakAfter}}domBoundsAround(M,i,t=0){let e=-1,N=-1,s=-1,u=-1;for(let D=0,n=t,j=t;D<this.children.length;D++){let t=this.children[D],I=n+t.length;if(n<M&&I>i)return t.domBoundsAround(M,i,n);if(I>=M&&-1==e&&(e=D,N=n),n>i&&t.dom.parentNode==this.dom){s=D,u=j;break}j=I,n=I+t.breakAfter}return{from:N,to:u<0?t+this.length:u,startDOM:(e?this.children[e-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s<this.children.length&&s>=0?this.children[s].dom:null}}markDirty(M=!1){this.flags|=2,this.markParentsDirty(M)}markParentsDirty(M){for(let i=this.parent;i;i=i.parent){if(M&&(i.flags|=2),1&i.flags)return;i.flags|=1,M=!1}}setParent(M){this.parent!=M&&(this.parent=M,7&this.flags&&this.markParentsDirty(!0))}setDOM(M){this.dom!=M&&(this.dom&&(this.dom.cmView=null),this.dom=M,M.cmView=this)}get rootView(){for(let M=this;;){let i=M.parent;if(!i)return M;M=i}}replaceChildren(M,i,t=Ws){this.markDirty();for(let e=M;e<i;e++){let M=this.children[e];M.parent==this&&t.indexOf(M)<0&&M.destroy()}this.children.splice(M,i-M,...t);for(let M=0;M<t.length;M++)t[M].setParent(this)}ignoreMutation(M){return!1}ignoreEvent(M){return!1}childCursor(M=this.length){return new Gs(this.children,M,this.children.length)}childPos(M,i=1){return this.childCursor().findPos(M,i)}toString(){let M=this.constructor.name.replace("View","");return M+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==M?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(M){return M.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(M,i,t,e,N,s){return!1}become(M){return!1}canReuseDOM(M){return M.constructor==this.constructor&&!(8&(this.flags|M.flags))}getSide(){return 0}destroy(){for(let M of this.children)M.parent==this&&M.destroy();this.parent=null}}function vs(M){let i=M.nextSibling;return M.parentNode.removeChild(M),i}Vs.prototype.breakAfter=0;class Gs{constructor(M,i,t){this.children=M,this.pos=i,this.i=t,this.off=0}findPos(M,i=1){for(;;){if(M>this.pos||M==this.pos&&(i>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=M-this.pos,this;let t=this.children[--this.i];this.pos-=t.length+t.breakAfter}}}function Ps(M,i,t,e,N,s,u,D,n){let{children:j}=M,I=j.length?j[i]:null,l=s.length?s[s.length-1]:null,r=l?l.breakAfter:u;if(!(i==e&&I&&!u&&!r&&s.length<2&&I.merge(t,N,s.length?l:null,0==t,D,n))){if(e<j.length){let M=j[e];M&&(N<M.length||M.breakAfter&&(null==l?void 0:l.breakAfter))?(i==e&&(M=M.split(N),N=0),!r&&l&&M.merge(0,N,l,!0,0,n)?s[s.length-1]=M:((N||M.children.length&&!M.children[0].length)&&M.merge(0,N,null,!1,0,n),s.push(M))):(null==M?void 0:M.breakAfter)&&(l?l.breakAfter=1:u=1),e++}for(I&&(I.breakAfter=u,t>0&&(!u&&s.length&&I.merge(t,I.length,s[0],!1,D,0)?I.breakAfter=s.shift().breakAfter:(t<I.length||I.children.length&&0==I.children[I.children.length-1].length)&&I.merge(t,I.length,null,!1,D,0),i++));i<e&&s.length;)if(j[e-1].become(s[s.length-1]))e--,s.pop(),n=s.length?0:D;else{if(!j[i].become(s[0]))break;i++,s.shift(),D=s.length?0:n}!s.length&&i&&e<j.length&&!j[i-1].breakAfter&&j[e].merge(0,0,j[i-1],!1,D,n)&&i--,(i<e||s.length)&&M.replaceChildren(i,e,s)}}function Rs(M,i,t,e,N,s){let u=M.childCursor(),{i:D,off:n}=u.findPos(t,1),{i:j,off:I}=u.findPos(i,-1),l=i-t;for(let M of e)l+=M.length;M.length+=l,Ps(M,j,I,D,n,e,0,N,s)}let Bs="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},Fs="undefined"!=typeof document?document:{documentElement:{style:{}}};const Xs=/Edge\/(\d+)/.exec(Bs.userAgent),Js=/MSIE \d/.test(Bs.userAgent),Hs=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Bs.userAgent),$s=!!(Js||Hs||Xs),_s=!$s&&/gecko\/(\d+)/i.test(Bs.userAgent),qs=!$s&&/Chrome\/(\d+)/.exec(Bs.userAgent),Ks="webkitFontSmoothing"in Fs.documentElement.style,Mu=!$s&&/Apple Computer/.test(Bs.vendor),iu=Mu&&(/Mobile\/\w+/.test(Bs.userAgent)||Bs.maxTouchPoints>2);var tu={mac:iu||/Mac/.test(Bs.platform),windows:/Win/.test(Bs.platform),linux:/Linux|X11/.test(Bs.platform),ie:$s,ie_version:Js?Fs.documentMode||6:Hs?+Hs[1]:Xs?+Xs[1]:0,gecko:_s,gecko_version:_s?+(/Firefox\/(\d+)/.exec(Bs.userAgent)||[0,0])[1]:0,chrome:!!qs,chrome_version:qs?+qs[1]:0,ios:iu,android:/Android\b/.test(Bs.userAgent),webkit:Ks,safari:Mu,webkit_version:Ks?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=Fs.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class eu extends Vs{constructor(M){super(),this.text=M}get length(){return this.text.length}createDOM(M){this.setDOM(M||document.createTextNode(this.text))}sync(M,i){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(i&&i.node==this.dom&&(i.written=!0),this.dom.nodeValue=this.text)}reuseDOM(M){3==M.nodeType&&this.createDOM(M)}merge(M,i,t){return!(8&this.flags||t&&(!(t instanceof eu)||this.length-(i-M)+t.length>256||8&t.flags))&&(this.text=this.text.slice(0,M)+(t?t.text:"")+this.text.slice(i),this.markDirty(),!0)}split(M){let i=new eu(this.text.slice(M));return this.text=this.text.slice(0,M),this.markDirty(),i.flags|=8&this.flags,i}localPosFromDOM(M,i){return M==this.dom?i:i?this.text.length:0}domAtPos(M){return new fs(this.dom,M)}domBoundsAround(M,i,t){return{from:t,to:t+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(M,i){return function(M,i,t){let e=M.nodeValue.length;i>e&&(i=e);let N=i,s=i,u=0;0==i&&t<0||i==e&&t>=0?tu.chrome||tu.gecko||(i?(N--,u=1):s<e&&(s++,u=-1)):t<0?N--:s<e&&s++;let D=bs(M,N,s).getClientRects();if(!D.length)return null;let n=D[(u?u<0:t>=0)?0:D.length-1];tu.safari&&!u&&0==n.width&&(n=Array.prototype.find.call(D,(M=>M.width))||n);return u?Ss(n,u<0):n||null}(this.dom,M,i)}}class Nu extends Vs{constructor(M,i=[],t=0){super(),this.mark=M,this.children=i,this.length=t;for(let M of i)M.setParent(this)}setAttrs(M){if(ms(M),this.mark.class&&(M.className=this.mark.class),this.mark.attrs)for(let i in this.mark.attrs)M.setAttribute(i,this.mark.attrs[i]);return M}canReuseDOM(M){return super.canReuseDOM(M)&&!(8&(this.flags|M.flags))}reuseDOM(M){M.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(M),this.flags|=6)}sync(M,i){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(M,i)}merge(M,i,t,e,N,s){return(!t||!(!(t instanceof Nu&&t.mark.eq(this.mark))||M&&N<=0||i<this.length&&s<=0))&&(Rs(this,M,i,t?t.children.slice():[],N-1,s-1),this.markDirty(),!0)}split(M){let i=[],t=0,e=-1,N=0;for(let s of this.children){let u=t+s.length;u>M&&i.push(t<M?s.split(M-t):s),e<0&&t>=M&&(e=N),t=u,N++}let s=this.length-M;return this.length=M,e>-1&&(this.children.length=e,this.markDirty()),new Nu(this.mark,i,s)}domAtPos(M){return Du(this,M)}coordsAt(M,i){return ju(this,M,i)}}class su extends Vs{static create(M,i,t){return new su(M,i,t)}constructor(M,i,t){super(),this.widget=M,this.length=i,this.side=t,this.prevWidget=null}split(M){let i=su.create(this.widget,this.length-M,this.side);return this.length-=M,i}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(M,i,t,e,N,s){return!(t&&(!(t instanceof su&&this.widget.compare(t.widget))||M>0&&N<=0||i<this.length&&s<=0))&&(this.length=M+(t?t.length:0)+(this.length-i),!0)}become(M){return M instanceof su&&M.side==this.side&&this.widget.constructor==M.widget.constructor&&(this.widget.compare(M.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get overrideDOMText(){if(0==this.length)return Oe.empty;let M=this;for(;M.parent;)M=M.parent;let{view:i}=M,t=i&&i.state.doc,e=this.posAtStart;return t?t.slice(e,e+this.length):Oe.empty}domAtPos(M){return(this.length?0==M:this.side>0)?fs.before(this.dom):fs.after(this.dom,M==this.length)}domBoundsAround(){return null}coordsAt(M,i){let t=this.widget.coordsAt(this.dom,M,i);if(t)return t;let e=this.dom.getClientRects(),N=null;if(!e.length)return null;let s=this.side?this.side<0:M>0;for(let i=s?e.length-1:0;N=e[i],!(M>0?0==i:i==e.length-1||N.top<N.bottom);i+=s?-1:1);return Ss(N,!s)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class uu extends Vs{constructor(M){super(),this.side=M}get length(){return 0}merge(){return!1}become(M){return M instanceof uu&&M.side==this.side}split(){return new uu(this.side)}sync(){if(!this.dom){let M=document.createElement("img");M.className="cm-widgetBuffer",M.setAttribute("aria-hidden","true"),this.setDOM(M)}}getSide(){return this.side}domAtPos(M){return this.side>0?fs.before(this.dom):fs.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(M){return this.dom.getBoundingClientRect()}get overrideDOMText(){return Oe.empty}get isHidden(){return!0}}function Du(M,i){let t=M.dom,{children:e}=M,N=0;for(let M=0;N<e.length;N++){let s=e[N],u=M+s.length;if(!(u==M&&s.getSide()<=0)){if(i>M&&i<u&&s.dom.parentNode==t)return s.domAtPos(i-M);if(i<=M)break;M=u}}for(let M=N;M>0;M--){let i=e[M-1];if(i.dom.parentNode==t)return i.domAtPos(i.length)}for(let M=N;M<e.length;M++){let i=e[M];if(i.dom.parentNode==t)return i.domAtPos(0)}return new fs(t,0)}function nu(M,i,t){let e,{children:N}=M;t>0&&i instanceof Nu&&N.length&&(e=N[N.length-1])instanceof Nu&&e.mark.eq(i.mark)?nu(e,i.children[0],t-1):(N.push(i),i.setParent(M)),M.length+=i.length}function ju(M,i,t){let e=null,N=-1,s=null,u=-1;!function M(i,D){for(let n=0,j=0;n<i.children.length&&j<=D;n++){let I=i.children[n],l=j+I.length;l>=D&&(I.children.length?M(I,D-j):(!s||s.isHidden&&t>0)&&(l>D||j==l&&I.getSide()>0)?(s=I,u=D-j):(j<D||j==l&&I.getSide()<0&&!I.isHidden)&&(e=I,N=D-j)),j=l}}(M,i);let D=(t<0?e:s)||e||s;return D?D.coordsAt(Math.max(0,D==e?N:u),t):function(M){let i=M.dom.lastChild;if(!i)return M.dom.getBoundingClientRect();let t=ys(i);return t[t.length-1]||null}(M)}function Iu(M,i){for(let t in M)"class"==t&&i.class?i.class+=" "+M.class:"style"==t&&i.style?i.style+=";"+M.style:i[t]=M[t];return i}eu.prototype.children=su.prototype.children=uu.prototype.children=Ws;const lu=Object.create(null);function ru(M,i,t){if(M==i)return!0;M||(M=lu),i||(i=lu);let e=Object.keys(M),N=Object.keys(i);if(e.length-(t&&e.indexOf(t)>-1?1:0)!=N.length-(t&&N.indexOf(t)>-1?1:0))return!1;for(let s of e)if(s!=t&&(-1==N.indexOf(s)||M[s]!==i[s]))return!1;return!0}function ou(M,i,t){let e=!1;if(i)for(let N in i)t&&N in t||(e=!0,"style"==N?M.style.cssText="":M.removeAttribute(N));if(t)for(let N in t)i&&i[N]==t[N]||(e=!0,"style"==N?M.style.cssText=t[N]:M.setAttribute(N,t[N]));return e}function gu(M){let i=Object.create(null);for(let t=0;t<M.attributes.length;t++){let e=M.attributes[t];i[e.name]=e.value}return i}class cu extends Vs{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(M,i,t,e,N,s){if(t){if(!(t instanceof cu))return!1;this.dom||t.transferDOM(this)}return e&&this.setDeco(t?t.attrs:null),Rs(this,M,i,t?t.children.slice():[],N,s),!0}split(M){let i=new cu;if(i.breakAfter=this.breakAfter,0==this.length)return i;let{i:t,off:e}=this.childPos(M);e&&(i.append(this.children[t].split(e),0),this.children[t].merge(e,this.children[t].length,null,!1,0,0),t++);for(let M=t;M<this.children.length;M++)i.append(this.children[M],0);for(;t>0&&0==this.children[t-1].length;)this.children[--t].destroy();return this.children.length=t,this.markDirty(),this.length=M,i}transferDOM(M){this.dom&&(this.markDirty(),M.setDOM(this.dom),M.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(M){ru(this.attrs,M)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=M)}append(M,i){nu(this,M,i)}addLineDeco(M){let i=M.spec.attributes,t=M.spec.class;i&&(this.attrs=Iu(i,this.attrs||{})),t&&(this.attrs=Iu({class:t},this.attrs||{}))}domAtPos(M){return Du(this,M)}reuseDOM(M){"DIV"==M.nodeName&&(this.setDOM(M),this.flags|=6)}sync(M,i){var t;this.dom?4&this.flags&&(ms(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(ou(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(M,i);let e=this.dom.lastChild;for(;e&&Vs.get(e)instanceof Nu;)e=e.lastChild;if(!(e&&this.length&&("BR"==e.nodeName||0!=(null===(t=Vs.get(e))||void 0===t?void 0:t.isEditable)||tu.ios&&this.children.some((M=>M instanceof eu))))){let M=document.createElement("BR");M.cmIgnore=!0,this.dom.appendChild(M)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let M,i=0;for(let t of this.children){if(!(t instanceof eu)||/[^ -~]/.test(t.text))return null;let e=ys(t.dom);if(1!=e.length)return null;i+=e[0].width,M=e[0].height}return i?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:i/this.length,textHeight:M}:null}coordsAt(M,i){let t=ju(this,M,i);if(!this.children.length&&t&&this.parent){let{heightOracle:M}=this.parent.view.viewState,i=t.bottom-t.top;if(Math.abs(i-M.lineHeight)<2&&M.textHeight<i){let e=(i-M.textHeight)/2;return{top:t.top+e,bottom:t.bottom-e,left:t.left,right:t.left}}}return t}become(M){return!1}covers(){return!0}static find(M,i){for(let t=0,e=0;t<M.children.length;t++){let N=M.children[t],s=e+N.length;if(s>=i){if(N instanceof cu)return N;if(s>i)break}e=s+N.breakAfter}return null}}class au extends Vs{constructor(M,i,t){super(),this.widget=M,this.length=i,this.deco=t,this.breakAfter=0,this.prevWidget=null}merge(M,i,t,e,N,s){return!(t&&(!(t instanceof au&&this.widget.compare(t.widget))||M>0&&N<=0||i<this.length&&s<=0))&&(this.length=M+(t?t.length:0)+(this.length-i),!0)}domAtPos(M){return 0==M?fs.before(this.dom):fs.after(this.dom,M==this.length)}split(M){let i=this.length-M;this.length=M;let t=new au(this.widget,i,this.deco);return t.breakAfter=this.breakAfter,t}get children(){return Ws}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Oe.empty}domBoundsAround(){return null}become(M){return M instanceof au&&M.widget.constructor==this.widget.constructor&&(M.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,this.deco=M.deco,this.breakAfter=M.breakAfter,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(M,i){return this.widget.coordsAt(this.dom,M,i)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(M){let{startSide:i,endSide:t}=this.deco;return i!=t&&(M<0?i<0:t>0)}}class Ou{eq(M){return!1}updateDOM(M,i){return!1}compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(M){return!0}coordsAt(M,i,t){return null}get isHidden(){return!1}get editable(){return!1}destroy(M){}}var Tu=function(M){return M[M.Text=0]="Text",M[M.WidgetBefore=1]="WidgetBefore",M[M.WidgetAfter=2]="WidgetAfter",M[M.WidgetRange=3]="WidgetRange",M}(Tu||(Tu={}));class Lu extends PN{constructor(M,i,t,e){super(),this.startSide=M,this.endSide=i,this.widget=t,this.spec=e}get heightRelevant(){return!1}static mark(M){return new hu(M)}static widget(M){let i=Math.max(-1e4,Math.min(1e4,M.side||0)),t=!!M.block;return i+=t&&!M.inlineOrder?i>0?3e8:-4e8:i>0?1e8:-1e8,new yu(M,i,i,t,M.widget||null,!1)}static replace(M){let i,t,e=!!M.block;if(M.isBlockGap)i=-5e8,t=4e8;else{let{start:N,end:s}=du(M,e);i=(N?e?-3e8:-1:5e8)-1,t=1+(s?e?2e8:1:-6e8)}return new yu(M,i,t,e,M.widget||null,!0)}static line(M){return new zu(M)}static set(M,i=!1){return XN.of(M,i)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Lu.none=XN.empty;class hu extends Lu{constructor(M){let{start:i,end:t}=du(M);super(i?-1:5e8,t?1:-6e8,null,M),this.tagName=M.tagName||"span",this.class=M.class||"",this.attrs=M.attributes||null}eq(M){var i,t;return this==M||M instanceof hu&&this.tagName==M.tagName&&(this.class||(null===(i=this.attrs)||void 0===i?void 0:i.class))==(M.class||(null===(t=M.attrs)||void 0===t?void 0:t.class))&&ru(this.attrs,M.attrs,"class")}range(M,i=M){if(M>=i)throw new RangeError("Mark decorations may not be empty");return super.range(M,i)}}hu.prototype.point=!1;class zu extends Lu{constructor(M){super(-2e8,-2e8,null,M)}eq(M){return M instanceof zu&&this.spec.class==M.spec.class&&ru(this.spec.attributes,M.spec.attributes)}range(M,i=M){if(i!=M)throw new RangeError("Line decoration ranges must be zero-length");return super.range(M,i)}}zu.prototype.mapMode=Ve.TrackBefore,zu.prototype.point=!0;class yu extends Lu{constructor(M,i,t,e,N,s){super(i,t,N,M),this.block=e,this.isReplace=s,this.mapMode=e?i<=0?Ve.TrackBefore:Ve.TrackAfter:Ve.TrackDel}get type(){return this.startSide!=this.endSide?Tu.WidgetRange:this.startSide<=0?Tu.WidgetBefore:Tu.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(M){return M instanceof yu&&function(M,i){return M==i||!!(M&&i&&M.compare(i))}(this.widget,M.widget)&&this.block==M.block&&this.startSide==M.startSide&&this.endSide==M.endSide}range(M,i=M){if(this.isReplace&&(M>i||M==i&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&i!=M)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(M,i)}}function du(M,i=!1){let{inclusiveStart:t,inclusiveEnd:e}=M;return null==t&&(t=M.inclusive),null==e&&(e=M.inclusive),{start:null!=t?t:i,end:null!=e?e:i}}function Au(M,i,t,e=0){let N=t.length-1;N>=0&&t[N]+e>=M?t[N]=Math.max(t[N],i):t.push(M,i)}yu.prototype.point=!0;class xu{constructor(M,i,t,e){this.doc=M,this.pos=i,this.end=t,this.disallowBlockEffectsFor=e,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=M.iter(),this.skip=i}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let M=this.content[this.content.length-1];return!(M.breakAfter||M instanceof au&&M.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new cu),this.atCursorPos=!0),this.curLine}flushBuffer(M=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(wu(new uu(-1),M),M.length),this.pendingBuffer=0)}addBlockWidget(M){this.flushBuffer(),this.curLine=null,this.content.push(M)}finish(M){this.pendingBuffer&&M<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||M&&this.content.length&&this.content[this.content.length-1]instanceof au||this.getLine()}buildText(M,i,t){for(;M>0;){if(this.textOff==this.text.length){let{value:i,lineBreak:t,done:e}=this.cursor.next(this.skip);if(this.skip=0,e)throw new Error("Ran out of text content when drawing inline views");if(t){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,M--;continue}this.text=i,this.textOff=0}let e=Math.min(this.text.length-this.textOff,M,512);this.flushBuffer(i.slice(i.length-t)),this.getLine().append(wu(new eu(this.text.slice(this.textOff,this.textOff+e)),i),t),this.atCursorPos=!0,this.textOff+=e,M-=e,t=0}}span(M,i,t,e){this.buildText(i-M,t,e),this.pos=i,this.openStart<0&&(this.openStart=e)}point(M,i,t,e,N,s){if(this.disallowBlockEffectsFor[s]&&t instanceof yu){if(t.block)throw new RangeError("Block decorations may not be specified via plugins");if(i>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let u=i-M;if(t instanceof yu)if(t.block)t.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new au(t.widget||new Su("div"),u,t));else{let s=su.create(t.widget||new Su("span"),u,u?0:t.startSide),D=this.atCursorPos&&!s.isEditable&&N<=e.length&&(M<i||t.startSide>0),n=!s.isEditable&&(M<i||N>e.length||t.startSide<=0),j=this.getLine();2!=this.pendingBuffer||D||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(e),D&&(j.append(wu(new uu(1),e),N),N=e.length+Math.max(0,N-e.length)),j.append(wu(s,e),N),this.atCursorPos=n,this.pendingBuffer=n?M<i||N>e.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=e.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(t);u&&(this.textOff+u<=this.text.length?this.textOff+=u:(this.skip+=u-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=i),this.openStart<0&&(this.openStart=N)}static build(M,i,t,e,N){let s=new xu(M,i,t,N);return s.openEnd=XN.spans(e,i,t,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function wu(M,i){for(let t of i)M=new Nu(t,[M],M.length);return M}class Su extends Ou{constructor(M){super(),this.tag=M}eq(M){return M.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(M){return M.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}var Eu=function(M){return M[M.LTR=0]="LTR",M[M.RTL=1]="RTL",M}(Eu||(Eu={}));const Qu=Eu.LTR,ku=Eu.RTL;function Cu(M){let i=[];for(let t=0;t<M.length;t++)i.push(1<<+M[t]);return i}const pu=Cu("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Uu=Cu("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),bu=Object.create(null),Zu=[];for(let M of["()","[]","{}"]){let i=M.charCodeAt(0),t=M.charCodeAt(1);bu[i]=t,bu[t]=-i}function mu(M){return M<=247?pu[M]:1424<=M&&M<=1524?2:1536<=M&&M<=1785?Uu[M-1536]:1774<=M&&M<=2220?4:8192<=M&&M<=8204?256:64336<=M&&M<=65023?4:1}const Yu=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class fu{get dir(){return this.level%2?ku:Qu}constructor(M,i,t){this.from=M,this.to=i,this.level=t}side(M,i){return this.dir==i==M?this.to:this.from}forward(M,i){return M==(this.dir==i)}static find(M,i,t,e){let N=-1;for(let s=0;s<M.length;s++){let u=M[s];if(u.from<=i&&u.to>=i){if(u.level==t)return s;(N<0||(0!=e?e<0?u.from<i:u.to>i:M[N].level>u.level))&&(N=s)}}if(N<0)throw new RangeError("Index out of range");return N}}function Wu(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++){let e=M[t],N=i[t];if(e.from!=N.from||e.to!=N.to||e.direction!=N.direction||!Wu(e.inner,N.inner))return!1}return!0}const Vu=[];function vu(M,i,t,e,N,s,u){let D=e%2?2:1;if(e%2==N%2)for(let n=i,j=0;n<t;){let i=!0,I=!1;if(j==s.length||n<s[j].from){let M=Vu[n];M!=D&&(i=!1,I=16==M)}let l=i||1!=D?null:[],r=i?e:e+1,o=n;M:for(;;)if(j<s.length&&o==s[j].from){if(I)break M;let g=s[j];if(!i)for(let M=g.to,i=j+1;;){if(M==t)break M;if(!(i<s.length&&s[i].from==M)){if(Vu[M]==D)break M;break}M=s[i++].to}if(j++,l)l.push(g);else{g.from>n&&u.push(new fu(n,g.from,r)),Gu(M,g.direction==Qu!=!(r%2)?e+1:e,N,g.inner,g.from,g.to,u),n=g.to}o=g.to}else{if(o==t||(i?Vu[o]!=D:Vu[o]==D))break;o++}l?vu(M,n,o,e+1,N,l,u):n<o&&u.push(new fu(n,o,r)),n=o}else for(let n=t,j=s.length;n>i;){let t=!0,I=!1;if(!j||n>s[j-1].to){let M=Vu[n-1];M!=D&&(t=!1,I=16==M)}let l=t||1!=D?null:[],r=t?e:e+1,o=n;M:for(;;)if(j&&o==s[j-1].to){if(I)break M;let g=s[--j];if(!t)for(let M=g.from,t=j;;){if(M==i)break M;if(!t||s[t-1].to!=M){if(Vu[M-1]==D)break M;break}M=s[--t].from}if(l)l.push(g);else{g.to<n&&u.push(new fu(g.to,n,r)),Gu(M,g.direction==Qu!=!(r%2)?e+1:e,N,g.inner,g.from,g.to,u),n=g.from}o=g.from}else{if(o==i||(t?Vu[o-1]!=D:Vu[o-1]==D))break;o--}l?vu(M,o,n,e+1,N,l,u):o<n&&u.push(new fu(o,n,r)),n=o}}function Gu(M,i,t,e,N,s,u){let D=i%2?2:1;!function(M,i,t,e,N){for(let s=0;s<=e.length;s++){let u=s?e[s-1].to:i,D=s<e.length?e[s].from:t,n=s?256:N;for(let i=u,t=n,e=n;i<D;i++){let N=mu(M.charCodeAt(i));512==N?N=t:8==N&&4==e&&(N=16),Vu[i]=4==N?2:N,7&N&&(e=N),t=N}for(let M=u,i=n,e=n;M<D;M++){let N=Vu[M];if(128==N)M<D-1&&i==Vu[M+1]&&24&i?N=Vu[M]=i:Vu[M]=256;else if(64==N){let N=M+1;for(;N<D&&64==Vu[N];)N++;let s=M&&8==i||N<t&&8==Vu[N]?1==e?1:8:256;for(let i=M;i<N;i++)Vu[i]=s;M=N-1}else 8==N&&1==e&&(Vu[M]=1);i=N,7&N&&(e=N)}}}(M,N,s,e,D),function(M,i,t,e,N){let s=1==N?2:1;for(let u=0,D=0,n=0;u<=e.length;u++){let j=u?e[u-1].to:i,I=u<e.length?e[u].from:t;for(let i,t,e,u=j;u<I;u++)if(t=bu[i=M.charCodeAt(u)])if(t<0){for(let M=D-3;M>=0;M-=3)if(Zu[M+1]==-t){let i=Zu[M+2],t=2&i?N:4&i?1&i?s:N:0;t&&(Vu[u]=Vu[Zu[M]]=t),D=M;break}}else{if(189==Zu.length)break;Zu[D++]=u,Zu[D++]=i,Zu[D++]=n}else if(2==(e=Vu[u])||1==e){let M=e==N;n=M?0:1;for(let i=D-3;i>=0;i-=3){let t=Zu[i+2];if(2&t)break;if(M)Zu[i+2]|=2;else{if(4&t)break;Zu[i+2]|=4}}}}}(M,N,s,e,D),function(M,i,t,e){for(let N=0,s=e;N<=t.length;N++){let u=N?t[N-1].to:M,D=N<t.length?t[N].from:i;for(let n=u;n<D;){let u=Vu[n];if(256==u){let u=n+1;for(;;)if(u==D){if(N==t.length)break;u=t[N++].to,D=N<t.length?t[N].from:i}else{if(256!=Vu[u])break;u++}let j=1==s,I=j==(1==(u<i?Vu[u]:e))?j?1:2:e;for(let i=u,e=N,s=e?t[e-1].to:M;i>n;)i==s&&(i=t[--e].from,s=e?t[e-1].to:M),Vu[--i]=I;n=u}else s=u,n++}}}(N,s,e,D),vu(M,N,s,i,t,e,u)}function Pu(M){return[new fu(0,M,0)]}let Ru="";function Bu(M,i,t,e,N){var s;let u=e.head-M.from,D=fu.find(i,u,null!==(s=e.bidiLevel)&&void 0!==s?s:-1,e.assoc),n=i[D],j=n.side(N,t);if(u==j){let M=D+=N?1:-1;if(M<0||M>=i.length)return null;n=i[D=M],u=n.side(!N,t),j=n.side(N,t)}let I=Ce(M.text,u,n.forward(N,t));(I<n.from||I>n.to)&&(I=j),Ru=M.text.slice(Math.min(u,I),Math.max(u,I));let l=D==(N?i.length-1:0)?null:i[D+(N?1:-1)];return l&&I==j&&l.level+(N?0:1)<n.level?$e.cursor(l.side(!N,t)+M.from,l.forward(N,t)?1:-1,l.level):$e.cursor(I+M.from,n.forward(N,t)?-1:1,n.level)}function Fu(M,i,t){for(let e=i;e<t;e++){let i=mu(M.charCodeAt(e));if(1==i)return Qu;if(2==i||4==i)return ku}return Qu}const Xu=Ke.define(),Ju=Ke.define(),Hu=Ke.define(),$u=Ke.define(),_u=Ke.define(),qu=Ke.define(),Ku=Ke.define(),MD=Ke.define({combine:M=>M.some((M=>M))}),iD=Ke.define({combine:M=>M.some((M=>M))});class tD{constructor(M,i="nearest",t="nearest",e=5,N=5,s=!1){this.range=M,this.y=i,this.x=t,this.yMargin=e,this.xMargin=N,this.isSnapshot=s}map(M){return M.empty?this:new tD(this.range.map(M),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(M){return this.range.to<=M.doc.length?this:new tD($e.cursor(M.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const eD=QN.define({map:(M,i)=>M.map(i)});function ND(M,i,t){let e=M.facet($u);e.length?e[0](i):window.onerror?window.onerror(String(i),t,void 0,void 0,i):t?console.error(t+":",i):console.error(i)}const sD=Ke.define({combine:M=>!M.length||M[0]});let uD=0;const DD=Ke.define();class nD{constructor(M,i,t,e,N){this.id=M,this.create=i,this.domEventHandlers=t,this.domEventObservers=e,this.extension=N(this)}static define(M,i){const{eventHandlers:t,eventObservers:e,provide:N,decorations:s}=i||{};return new nD(uD++,M,t,e,(M=>{let i=[DD.of(M)];return s&&i.push(rD.of((i=>{let t=i.plugin(M);return t?s(t):Lu.none}))),N&&i.push(N(M)),i}))}static fromClass(M,i){return nD.define((i=>new M(i)),i)}}class jD{constructor(M){this.spec=M,this.mustUpdate=null,this.value=null}update(M){if(this.value){if(this.mustUpdate){let M=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(M)}catch(i){if(ND(M.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(M){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(M)}catch(i){ND(M.state,i,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(M){var i;if(null===(i=this.value)||void 0===i?void 0:i.destroy)try{this.value.destroy()}catch(i){ND(M.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const ID=Ke.define(),lD=Ke.define(),rD=Ke.define(),oD=Ke.define(),gD=Ke.define(),cD=Ke.define();function aD(M,i){let t=M.state.facet(cD);if(!t.length)return t;let e=t.map((i=>i instanceof Function?i(M):i)),N=[];return XN.spans(e,i.from,i.to,{point(){},span(M,t,e,s){let u=M-i.from,D=t-i.from,n=N;for(let M=e.length-1;M>=0;M--,s--){let t,N=e[M].spec.bidiIsolate;if(null==N&&(N=Fu(i.text,u,D)),s>0&&n.length&&(t=n[n.length-1]).to==u&&t.direction==N)t.to=D,n=t.inner;else{let M={from:u,to:D,direction:N,inner:[]};n.push(M),n=M.inner}}}}),N}const OD=Ke.define();function TD(M){let i=0,t=0,e=0,N=0;for(let s of M.state.facet(OD)){let u=s(M);u&&(null!=u.left&&(i=Math.max(i,u.left)),null!=u.right&&(t=Math.max(t,u.right)),null!=u.top&&(e=Math.max(e,u.top)),null!=u.bottom&&(N=Math.max(N,u.bottom)))}return{left:i,right:t,top:e,bottom:N}}const LD=Ke.define();class hD{constructor(M,i,t,e){this.fromA=M,this.toA=i,this.fromB=t,this.toB=e}join(M){return new hD(Math.min(this.fromA,M.fromA),Math.max(this.toA,M.toA),Math.min(this.fromB,M.fromB),Math.max(this.toB,M.toB))}addToSet(M){let i=M.length,t=this;for(;i>0;i--){let e=M[i-1];if(!(e.fromA>t.toA)){if(e.toA<t.fromA)break;t=t.join(e),M.splice(i-1,1)}}return M.splice(i,0,t),M}static extendWithRanges(M,i){if(0==i.length)return M;let t=[];for(let e=0,N=0,s=0,u=0;;e++){let D=e==M.length?null:M[e],n=s-u,j=D?D.fromB:1e9;for(;N<i.length&&i[N]<j;){let M=i[N],e=i[N+1],s=Math.max(u,M),D=Math.min(j,e);if(s<=D&&new hD(s+n,D+n,s,D).addToSet(t),e>j)break;N+=2}if(!D)return t;new hD(D.fromA,D.toA,D.fromB,D.toB).addToSet(t),s=D.toA,u=D.toB}}}class zD{constructor(M,i,t){this.view=M,this.state=i,this.transactions=t,this.flags=0,this.startState=M.state,this.changes=Ge.empty(this.startState.doc.length);for(let M of t)this.changes=this.changes.compose(M.changes);let e=[];this.changes.iterChangedRanges(((M,i,t,N)=>e.push(new hD(M,i,t,N)))),this.changedRanges=e}static create(M,i,t){return new zD(M,i,t)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((M=>M.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class yD extends Vs{get length(){return this.view.state.doc.length}constructor(M){super(),this.view=M,this.decorations=[],this.dynamicDecorationMap=[],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(M.contentDOM),this.children=[new cu],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new hD(0,0,0,M.state.doc.length)],0,null)}update(M){var i;let t=M.changedRanges;this.minWidth>0&&t.length&&(t.every((({fromA:M,toA:i})=>i<this.minWidthFrom||M>this.minWidthTo))?(this.minWidthFrom=M.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=M.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let e=-1;this.view.inputState.composing>=0&&((null===(i=this.domChanged)||void 0===i?void 0:i.newSel)?e=this.domChanged.newSel.head:function(M,i){let t=!1;i&&M.iterChangedRanges(((M,e)=>{M<i.to&&e>i.from&&(t=!0)}));return t}(M.changes,this.hasComposition)||M.selectionSet||(e=M.state.selection.main.head));let N=e>-1?function(M,i,t){let e=AD(M,t);if(!e)return null;let{node:N,from:s,to:u}=e,D=N.nodeValue;if(/[\n\r]/.test(D))return null;if(M.state.doc.sliceString(e.from,e.to)!=D)return null;let n=i.invertedDesc,j=new hD(n.mapPos(s),n.mapPos(u),s,u),I=[];for(let i=N.parentNode;;i=i.parentNode){let t=Vs.get(i);if(t instanceof Nu)I.push({node:i,deco:t.mark});else{if(t instanceof cu||"DIV"==i.nodeName&&i.parentNode==M.contentDOM)return{range:j,text:N,marks:I,line:i};if(i==M.contentDOM)return null;I.push({node:i,deco:new hu({inclusive:!0,attributes:gu(i),tagName:i.tagName.toLowerCase()})})}}}(this.view,M.changes,e):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:i,to:e}=this.hasComposition;t=new hD(i,e,M.changes.mapPos(i,-1),M.changes.mapPos(e,1)).addToSet(t.slice())}this.hasComposition=N?{from:N.range.fromB,to:N.range.toB}:null,(tu.ie||tu.chrome)&&!N&&M&&M.state.doc.lines!=M.startState.doc.lines&&(this.forceSelection=!0);let s=function(M,i,t){let e=new wD;return XN.compare(M,i,t,e),e.changes}(this.decorations,this.updateDeco(),M.changes);return t=hD.extendWithRanges(t,s),!!(7&this.flags||0!=t.length)&&(this.updateInner(t,M.startState.doc.length,N),M.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(M,i,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(M,i,t);let{observer:e}=this.view;e.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let M=tu.chrome||tu.ios?{node:e.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,M),this.flags&=-8,M&&(M.written||e.selectionRange.focusNode!=M.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((M=>M.flags&=-9));let N=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let M of this.children)M instanceof au&&M.widget instanceof dD&&N.push(M.dom);e.updateGaps(N)}updateChildren(M,i,t){let e=t?t.range.addToSet(M.slice()):M,N=this.childCursor(i);for(let M=e.length-1;;M--){let i=M>=0?e[M]:null;if(!i)break;let s,u,D,n,{fromA:j,toA:I,fromB:l,toB:r}=i;if(t&&t.range.fromB<r&&t.range.toB>l){let M=xu.build(this.view.state.doc,l,t.range.fromB,this.decorations,this.dynamicDecorationMap),i=xu.build(this.view.state.doc,t.range.toB,r,this.decorations,this.dynamicDecorationMap);u=M.breakAtStart,D=M.openStart,n=i.openEnd;let e=this.compositionView(t);i.breakAtStart?e.breakAfter=1:i.content.length&&e.merge(e.length,e.length,i.content[0],!1,i.openStart,0)&&(e.breakAfter=i.content[0].breakAfter,i.content.shift()),M.content.length&&e.merge(0,0,M.content[M.content.length-1],!0,0,M.openEnd)&&M.content.pop(),s=M.content.concat(e).concat(i.content)}else({content:s,breakAtStart:u,openStart:D,openEnd:n}=xu.build(this.view.state.doc,l,r,this.decorations,this.dynamicDecorationMap));let{i:o,off:g}=N.findPos(I,1),{i:c,off:a}=N.findPos(j,-1);Ps(this,c,a,o,g,s,u,D,n)}t&&this.fixCompositionDOM(t)}compositionView(M){let i=new eu(M.text.nodeValue);i.flags|=8;for(let{deco:t}of M.marks)i=new Nu(t,[i],i.length);let t=new cu;return t.append(i,0),t}fixCompositionDOM(M){let i=(M,i)=>{i.flags|=8|(i.children.some((M=>7&M.flags))?1:0),this.markedForComposition.add(i);let t=Vs.get(M);t&&t!=i&&(t.dom=null),i.setDOM(M)},t=this.childPos(M.range.fromB,1),e=this.children[t.i];i(M.line,e);for(let N=M.marks.length-1;N>=-1;N--)t=e.childPos(t.off,1),e=e.children[t.i],i(N>=0?M.marks[N].node:M.text,e)}updateSelection(M=!1,i=!1){!M&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let t=this.view.root.activeElement,e=t==this.dom,N=!e&&zs(this.dom,this.view.observer.selectionRange)&&!(t&&this.dom.contains(t));if(!(e||i||N))return;let s=this.forceSelection;this.forceSelection=!1;let u=this.view.state.selection.main,D=this.moveToLine(this.domAtPos(u.anchor)),n=u.empty?D:this.moveToLine(this.domAtPos(u.head));if(tu.gecko&&u.empty&&!this.hasComposition&&(1==(j=D).node.nodeType&&j.node.firstChild&&(0==j.offset||"false"==j.node.childNodes[j.offset-1].contentEditable)&&(j.offset==j.node.childNodes.length||"false"==j.node.childNodes[j.offset].contentEditable))){let M=document.createTextNode("");this.view.observer.ignore((()=>D.node.insertBefore(M,D.node.childNodes[D.offset]||null))),D=n=new fs(M,0),s=!0}var j;let I=this.view.observer.selectionRange;!s&&I.focusNode&&(ds(D.node,D.offset,I.anchorNode,I.anchorOffset)&&ds(n.node,n.offset,I.focusNode,I.focusOffset)||this.suppressWidgetCursorChange(I,u))||(this.view.observer.ignore((()=>{tu.android&&tu.chrome&&this.dom.contains(I.focusNode)&&function(M,i){for(let t=M;t&&t!=i;t=t.assignedSlot||t.parentNode)if(1==t.nodeType&&"false"==t.contentEditable)return!0;return!1}(I.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let M=Ls(this.view.root);if(M)if(u.empty){if(tu.gecko){let M=function(M,i){return 1!=M.nodeType?0:(i&&"false"==M.childNodes[i-1].contentEditable?1:0)|(i<M.childNodes.length&&"false"==M.childNodes[i].contentEditable?2:0)}(D.node,D.offset);if(M&&3!=M){let i=xD(D.node,D.offset,1==M?1:-1);i&&(D=new fs(i.node,i.offset))}}M.collapse(D.node,D.offset),null!=u.bidiLevel&&void 0!==M.caretBidiLevel&&(M.caretBidiLevel=u.bidiLevel)}else if(M.extend){M.collapse(D.node,D.offset);try{M.extend(n.node,n.offset)}catch(M){}}else{let i=document.createRange();u.anchor>u.head&&([D,n]=[n,D]),i.setEnd(n.node,n.offset),i.setStart(D.node,D.offset),M.removeAllRanges(),M.addRange(i)}else;N&&this.view.root.activeElement==this.dom&&(this.dom.blur(),t&&t.focus())})),this.view.observer.setSelectionRange(D,n)),this.impreciseAnchor=D.precise?null:new fs(I.anchorNode,I.anchorOffset),this.impreciseHead=n.precise?null:new fs(I.focusNode,I.focusOffset)}suppressWidgetCursorChange(M,i){return this.hasComposition&&i.empty&&ds(M.focusNode,M.focusOffset,M.anchorNode,M.anchorOffset)&&this.posFromDOM(M.focusNode,M.focusOffset)==i.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:M}=this,i=M.state.selection.main,t=Ls(M.root),{anchorNode:e,anchorOffset:N}=M.observer.selectionRange;if(!(t&&i.empty&&i.assoc&&t.modify))return;let s=cu.find(this,i.head);if(!s)return;let u=s.posAtStart;if(i.head==u||i.head==u+s.length)return;let D=this.coordsAt(i.head,-1),n=this.coordsAt(i.head,1);if(!D||!n||D.bottom>n.top)return;let j=this.domAtPos(i.head+i.assoc);t.collapse(j.node,j.offset),t.modify("move",i.assoc<0?"forward":"backward","lineboundary"),M.observer.readSelectionRange();let I=M.observer.selectionRange;M.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=i.from&&t.collapse(e,N)}moveToLine(M){let i,t=this.dom;if(M.node!=t)return M;for(let e=M.offset;!i&&e<t.childNodes.length;e++){let M=Vs.get(t.childNodes[e]);M instanceof cu&&(i=M.domAtPos(0))}for(let e=M.offset-1;!i&&e>=0;e--){let M=Vs.get(t.childNodes[e]);M instanceof cu&&(i=M.domAtPos(M.length))}return i?new fs(i.node,i.offset,!0):M}nearest(M){for(let i=M;i;){let M=Vs.get(i);if(M&&M.rootView==this)return M;i=i.parentNode}return null}posFromDOM(M,i){let t=this.nearest(M);if(!t)throw new RangeError("Trying to find position for a DOM position outside of the document");return t.localPosFromDOM(M,i)+t.posAtStart}domAtPos(M){let{i,off:t}=this.childCursor().findPos(M,-1);for(;i<this.children.length-1;){let M=this.children[i];if(t<M.length||M instanceof cu)break;i++,t=0}return this.children[i].domAtPos(t)}coordsAt(M,i){let t=null,e=0;for(let N=this.length,s=this.children.length-1;s>=0;s--){let u=this.children[s],D=N-u.breakAfter,n=D-u.length;if(D<M)break;n<=M&&(n<M||u.covers(-1))&&(D>M||u.covers(1))&&(!t||u instanceof cu&&!(t instanceof cu&&i>=0))&&(t=u,e=n),N=n}return t?t.coordsAt(M-e,i):null}coordsForChar(M){let{i,off:t}=this.childPos(M,1),e=this.children[i];if(!(e instanceof cu))return null;for(;e.children.length;){let{i:M,off:i}=e.childPos(t,1);for(;;M++){if(M==e.children.length)return null;if((e=e.children[M]).length)break}t=i}if(!(e instanceof eu))return null;let N=Ce(e.text,t);if(N==t)return null;let s=bs(e.dom,t,N).getClientRects();for(let M=0;M<s.length;M++){let i=s[M];if(M==s.length-1||i.top<i.bottom&&i.left<i.right)return i}return null}measureVisibleLineHeights(M){let i=[],{from:t,to:e}=M,N=this.view.contentDOM.clientWidth,s=N>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,u=-1,D=this.view.textDirection==Eu.LTR;for(let M=0,n=0;n<this.children.length;n++){let j=this.children[n],I=M+j.length;if(I>e)break;if(M>=t){let t=j.dom.getBoundingClientRect();if(i.push(t.height),s){let i=j.dom.lastChild,e=i?ys(i):[];if(e.length){let i=e[e.length-1],s=D?i.right-t.left:t.right-i.left;s>u&&(u=s,this.minWidth=N,this.minWidthFrom=M,this.minWidthTo=I)}}}M=I+j.breakAfter}return i}textDirectionAt(M){let{i}=this.childPos(M,1);return"rtl"==getComputedStyle(this.children[i].dom).direction?Eu.RTL:Eu.LTR}measureTextSize(){for(let M of this.children)if(M instanceof cu){let i=M.measureTextSize();if(i)return i}let M,i,t,e=document.createElement("div");return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(e);let N=ys(e.firstChild)[0];M=e.getBoundingClientRect().height,i=N?N.width/27:7,t=N?N.height:M,e.remove()})),{lineHeight:M,charWidth:i,textHeight:t}}childCursor(M=this.length){let i=this.children.length;return i&&(M-=this.children[--i].length),new Gs(this.children,M,i)}computeBlockGapDeco(){let M=[],i=this.view.viewState;for(let t=0,e=0;;e++){let N=e==i.viewports.length?null:i.viewports[e],s=N?N.from-1:this.length;if(s>t){let e=(i.lineBlockAt(s).bottom-i.lineBlockAt(t).top)/this.view.scaleY;M.push(Lu.replace({widget:new dD(e),block:!0,inclusive:!0,isBlockGap:!0}).range(t,s))}if(!N)break;t=N.to+1}return Lu.set(M)}updateDeco(){let M=this.view.state.facet(rD).map(((M,i)=>(this.dynamicDecorationMap[i]="function"==typeof M)?M(this.view):M)),i=!1,t=this.view.state.facet(oD).map(((M,t)=>{let e="function"==typeof M;return e&&(i=!0),e?M(this.view):M}));t.length&&(this.dynamicDecorationMap[M.length]=i,M.push(XN.join(t)));for(let i=M.length;i<M.length+3;i++)this.dynamicDecorationMap[i]=!1;return this.decorations=[...M,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(M){if(M.isSnapshot){let i=this.view.viewState.lineBlockAt(M.range.head);return this.view.scrollDOM.scrollTop=i.top-M.yMargin,void(this.view.scrollDOM.scrollLeft=M.xMargin)}let i,{range:t}=M,e=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1);if(!e)return;!t.empty&&(i=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(e={left:Math.min(e.left,i.left),top:Math.min(e.top,i.top),right:Math.max(e.right,i.right),bottom:Math.max(e.bottom,i.bottom)});let N=TD(this.view),s={left:e.left-N.left,top:e.top-N.top,right:e.right+N.right,bottom:e.bottom+N.bottom},{offsetWidth:u,offsetHeight:D}=this.view.scrollDOM;!function(M,i,t,e,N,s,u,D){let n=M.ownerDocument,j=n.defaultView||window;for(let I=M,l=!1;I&&!l;)if(1==I.nodeType){let M,r=I==n.body,o=1,g=1;if(r)M=Es(j);else{if(/^(fixed|sticky)$/.test(getComputedStyle(I).position)&&(l=!0),I.scrollHeight<=I.clientHeight&&I.scrollWidth<=I.clientWidth){I=I.assignedSlot||I.parentNode;continue}let i=I.getBoundingClientRect();({scaleX:o,scaleY:g}=Qs(I,i)),M={left:i.left,right:i.left+I.clientWidth*o,top:i.top,bottom:i.top+I.clientHeight*g}}let c=0,a=0;if("nearest"==N)i.top<M.top?(a=-(M.top-i.top+u),t>0&&i.bottom>M.bottom+a&&(a=i.bottom-M.bottom+a+u)):i.bottom>M.bottom&&(a=i.bottom-M.bottom+u,t<0&&i.top-a<M.top&&(a=-(M.top+a-i.top+u)));else{let e=i.bottom-i.top,s=M.bottom-M.top;a=("center"==N&&e<=s?i.top+e/2-s/2:"start"==N||"center"==N&&t<0?i.top-u:i.bottom-s+u)-M.top}if("nearest"==e?i.left<M.left?(c=-(M.left-i.left+s),t>0&&i.right>M.right+c&&(c=i.right-M.right+c+s)):i.right>M.right&&(c=i.right-M.right+s,t<0&&i.left<M.left+c&&(c=-(M.left+c-i.left+s))):c=("center"==e?i.left+(i.right-i.left)/2-(M.right-M.left)/2:"start"==e==D?i.left-s:i.right-(M.right-M.left)+s)-M.left,c||a)if(r)j.scrollBy(c,a);else{let M=0,t=0;if(a){let M=I.scrollTop;I.scrollTop+=a/g,t=(I.scrollTop-M)*g}if(c){let i=I.scrollLeft;I.scrollLeft+=c/o,M=(I.scrollLeft-i)*o}i={left:i.left-M,top:i.top-t,right:i.right-M,bottom:i.bottom-t},M&&Math.abs(M-c)<1&&(e="nearest"),t&&Math.abs(t-a)<1&&(N="nearest")}if(r)break;I=I.assignedSlot||I.parentNode}else{if(11!=I.nodeType)break;I=I.host}}(this.view.scrollDOM,s,t.head<t.anchor?-1:1,M.x,M.y,Math.max(Math.min(M.xMargin,u),-u),Math.max(Math.min(M.yMargin,D),-D),this.view.textDirection==Eu.LTR)}}class dD extends Ou{constructor(M){super(),this.height=M}toDOM(){let M=document.createElement("div");return M.className="cm-gap",this.updateDOM(M),M}eq(M){return M.height==this.height}updateDOM(M){return M.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}}function AD(M,i){let t=M.observer.selectionRange,e=t.focusNode&&xD(t.focusNode,t.focusOffset,0);if(!e)return null;let N=i-e.offset;return{from:N,to:N+e.node.nodeValue.length,node:e.node}}function xD(M,i,t){if(t<=0)for(let t=M,e=i;;){if(3==t.nodeType)return{node:t,offset:e};if(!(1==t.nodeType&&e>0))break;t=t.childNodes[e-1],e=ws(t)}if(t>=0)for(let e=M,N=i;;){if(3==e.nodeType)return{node:e,offset:N};if(!(1==e.nodeType&&N<e.childNodes.length&&t>=0))break;e=e.childNodes[N],N=0}return null}let wD=class{constructor(){this.changes=[]}compareRange(M,i){Au(M,i,this.changes)}comparePoint(M,i){Au(M,i,this.changes)}};function SD(M,i){return i.left>M?i.left-M:Math.max(0,M-i.right)}function ED(M,i){return i.top>M?i.top-M:Math.max(0,M-i.bottom)}function QD(M,i){return M.top<i.bottom-1&&M.bottom>i.top+1}function kD(M,i){return i<M.top?{top:i,left:M.left,right:M.right,bottom:M.bottom}:M}function CD(M,i){return i>M.bottom?{top:M.top,left:M.left,right:M.right,bottom:i}:M}function pD(M,i,t){let e,N,s,u,D,n,j,I,l=!1;for(let r=M.firstChild;r;r=r.nextSibling){let M=ys(r);for(let o=0;o<M.length;o++){let g=M[o];N&&QD(N,g)&&(g=kD(CD(g,N.bottom),N.top));let c=SD(i,g),a=ED(t,g);if(0==c&&0==a)return 3==r.nodeType?UD(r,i,t):pD(r,i,t);if(!e||u>a||u==a&&s>c){e=r,N=g,s=c,u=a;let D=a?t<g.top?-1:1:c?i<g.left?-1:1:0;l=!D||(D>0?o<M.length-1:o>0)}0==c?t>g.bottom&&(!j||j.bottom<g.bottom)?(D=r,j=g):t<g.top&&(!I||I.top>g.top)&&(n=r,I=g):j&&QD(j,g)?j=CD(j,g.bottom):I&&QD(I,g)&&(I=kD(I,g.top))}}if(j&&j.bottom>=t?(e=D,N=j):I&&I.top<=t&&(e=n,N=I),!e)return{node:M,offset:0};let r=Math.max(N.left,Math.min(N.right,i));return 3==e.nodeType?UD(e,r,t):l&&"false"!=e.contentEditable?pD(e,r,t):{node:M,offset:Array.prototype.indexOf.call(M.childNodes,e)+(i>=(N.left+N.right)/2?1:0)}}function UD(M,i,t){let e=M.nodeValue.length,N=-1,s=1e9,u=0;for(let D=0;D<e;D++){let e=bs(M,D,D+1).getClientRects();for(let n=0;n<e.length;n++){let j=e[n];if(j.top==j.bottom)continue;u||(u=i-j.left);let I=(j.top>t?j.top-t:t-j.bottom)-1;if(j.left-1<=i&&j.right+1>=i&&I<s){let t=i>=(j.left+j.right)/2,e=t;if(tu.chrome||tu.gecko){bs(M,D).getBoundingClientRect().left==j.right&&(e=!t)}if(I<=0)return{node:M,offset:D+(e?1:0)};N=D+(e?1:0),s=I}}}return{node:M,offset:N>-1?N:u>0?M.nodeValue.length:0}}function bD(M,i,t,e=-1){var N,s;let u,D=M.contentDOM.getBoundingClientRect(),n=D.top+M.viewState.paddingTop,{docHeight:j}=M.viewState,{x:I,y:l}=i,r=l-n;if(r<0)return 0;if(r>j)return M.state.doc.length;for(let i=M.viewState.heightOracle.textHeight/2,N=!1;u=M.elementAtHeight(r),u.type!=Tu.Text;)for(;r=e>0?u.bottom+i:u.top-i,!(r>=0&&r<=j);){if(N)return t?null:0;N=!0,e=-e}l=n+r;let o=u.from;if(o<M.viewport.from)return 0==M.viewport.from?0:t?null:ZD(M,D,u,I,l);if(o>M.viewport.to)return M.viewport.to==M.state.doc.length?M.state.doc.length:t?null:ZD(M,D,u,I,l);let g=M.dom.ownerDocument,c=M.root.elementFromPoint?M.root:g,a=c.elementFromPoint(I,l);a&&!M.contentDOM.contains(a)&&(a=null),a||(I=Math.max(D.left+1,Math.min(D.right-1,I)),a=c.elementFromPoint(I,l),a&&!M.contentDOM.contains(a)&&(a=null));let O,T=-1;if(a&&0!=(null===(N=M.docView.nearest(a))||void 0===N?void 0:N.isEditable))if(g.caretPositionFromPoint){let M=g.caretPositionFromPoint(I,l);M&&({offsetNode:O,offset:T}=M)}else if(g.caretRangeFromPoint){let i=g.caretRangeFromPoint(I,l);i&&(({startContainer:O,startOffset:T}=i),(!M.contentDOM.contains(O)||tu.safari&&function(M,i,t){let e;if(3!=M.nodeType||i!=(e=M.nodeValue.length))return!1;for(let i=M.nextSibling;i;i=i.nextSibling)if(1!=i.nodeType||"BR"!=i.nodeName)return!1;return bs(M,e-1,e).getBoundingClientRect().left>t}(O,T,I)||tu.chrome&&function(M,i,t){if(0!=i)return!1;for(let i=M;;){let M=i.parentNode;if(!M||1!=M.nodeType||M.firstChild!=i)return!1;if(M.classList.contains("cm-line"))break;i=M}let e=1==M.nodeType?M.getBoundingClientRect():bs(M,0,Math.max(M.nodeValue.length,1)).getBoundingClientRect();return t-e.left>5}(O,T,I))&&(O=void 0))}if(!O||!M.docView.dom.contains(O)){let i=cu.find(M.docView,o);if(!i)return r>u.top+u.height/2?u.to:u.from;({node:O,offset:T}=pD(i.dom,I,l))}let L=M.docView.nearest(O);if(!L)return null;if(L.isWidget&&1==(null===(s=L.dom)||void 0===s?void 0:s.nodeType)){let M=L.dom.getBoundingClientRect();return i.y<M.top||i.y<=M.bottom&&i.x<=(M.left+M.right)/2?L.posAtStart:L.posAtEnd}return L.localPosFromDOM(O,T)+L.posAtStart}function ZD(M,i,t,e,N){let s=Math.round((e-i.left)*M.defaultCharacterWidth);if(M.lineWrapping&&t.height>1.5*M.defaultLineHeight){let i=M.viewState.heightOracle.textHeight;s+=Math.floor((N-t.top-.5*(M.defaultLineHeight-i))/i)*M.viewState.heightOracle.lineLength}let u=M.state.sliceDoc(t.from,t.to);return t.from+us(u,s,M.state.tabSize)}function mD(M,i){let t=M.lineBlockAt(i);if(Array.isArray(t.type))for(let M of t.type)if(M.to>i||M.to==i&&(M.to==t.to||M.type==Tu.Text))return M;return t}function YD(M,i,t,e){let N=M.state.doc.lineAt(i.head),s=M.bidiSpans(N),u=M.textDirectionAt(N.from);for(let D=i,n=null;;){let i=Bu(N,s,u,D,t),j=Ru;if(!i){if(N.number==(t?M.state.doc.lines:1))return D;j="\n",N=M.state.doc.line(N.number+(t?1:-1)),s=M.bidiSpans(N),i=M.visualLineSide(N,!t)}if(n){if(!n(j))return D}else{if(!e)return i;n=e(j)}D=i}}function fD(M,i,t){for(;;){let e=0;for(let N of M)N.between(i-1,i+1,((M,N,s)=>{if(i>M&&i<N){let s=e||t||(i-M<N-i?-1:1);i=s<0?M:N,e=s}}));if(!e)return i}}function WD(M,i,t){let e=fD(M.state.facet(gD).map((i=>i(M))),t.from,i.head>t.from?-1:1);return e==t.from?t:$e.cursor(e,e<t.from?1:-1)}class VD{setSelectionOrigin(M){this.lastSelectionOrigin=M,this.lastSelectionTime=Date.now()}constructor(M){this.view=M,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=M.hasFocus,tu.safari&&M.contentDOM.addEventListener("input",(()=>null)),tu.gecko&&function(M){gn.has(M)||(gn.add(M),M.addEventListener("copy",(()=>{})),M.addEventListener("cut",(()=>{})))}(M.contentDOM.ownerDocument)}handleEvent(M){(function(M,i){if(!i.bubbles)return!0;if(i.defaultPrevented)return!1;for(let t,e=i.target;e!=M.contentDOM;e=e.parentNode)if(!e||11==e.nodeType||(t=Vs.get(e))&&t.ignoreEvent(i))return!1;return!0})(this.view,M)&&!this.ignoreDuringComposition(M)&&("keydown"==M.type&&this.keydown(M)||this.runHandlers(M.type,M))}runHandlers(M,i){let t=this.handlers[M];if(t){for(let M of t.observers)M(this.view,i);for(let M of t.handlers){if(i.defaultPrevented)break;if(M(this.view,i)){i.preventDefault();break}}}}ensureHandlers(M){let i=GD(M),t=this.handlers,e=this.view.contentDOM;for(let M in i)if("scroll"!=M){let N=!i[M].handlers.length,s=t[M];s&&N!=!s.handlers.length&&(e.removeEventListener(M,this.handleEvent),s=null),s||e.addEventListener(M,this.handleEvent,{passive:N})}for(let M in t)"scroll"==M||i[M]||e.removeEventListener(M,this.handleEvent);this.handlers=i}keydown(M){if(this.lastKeyCode=M.keyCode,this.lastKeyTime=Date.now(),9==M.keyCode&&Date.now()<this.lastEscPress+2e3)return!0;if(27!=M.keyCode&&BD.indexOf(M.keyCode)<0&&(this.view.inputState.lastEscPress=0),tu.android&&tu.chrome&&!M.synthetic&&(13==M.keyCode||8==M.keyCode))return this.view.observer.delayAndroidKey(M.key,M.keyCode),!0;let i;return!tu.ios||M.synthetic||M.altKey||M.metaKey||!((i=PD.find((i=>i.keyCode==M.keyCode)))&&!M.ctrlKey||RD.indexOf(M.key)>-1&&M.ctrlKey&&!M.shiftKey)?(229!=M.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=i||M,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(){let M=this.pendingIOSKey;return!!M&&(this.pendingIOSKey=void 0,Zs(this.view.contentDOM,M.key,M.keyCode))}ignoreDuringComposition(M){return!!/^key/.test(M.type)&&(this.composing>0||!!(tu.safari&&!tu.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(M){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=M}update(M){this.mouseSelection&&this.mouseSelection.update(M),this.draggedContent&&M.docChanged&&(this.draggedContent=this.draggedContent.map(M.changes)),M.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function vD(M,i){return(t,e)=>{try{return i.call(M,e,t)}catch(M){ND(t.state,M)}}}function GD(M){let i=Object.create(null);function t(M){return i[M]||(i[M]={observers:[],handlers:[]})}for(let i of M){let M=i.spec;if(M&&M.domEventHandlers)for(let e in M.domEventHandlers){let N=M.domEventHandlers[e];N&&t(e).handlers.push(vD(i.value,N))}if(M&&M.domEventObservers)for(let e in M.domEventObservers){let N=M.domEventObservers[e];N&&t(e).observers.push(vD(i.value,N))}}for(let M in JD)t(M).handlers.push(JD[M]);for(let M in HD)t(M).observers.push(HD[M]);return i}const PD=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],RD="dthko",BD=[16,17,18,20,91,92,224,225];function FD(M){return.7*Math.max(0,M)+8}class XD{constructor(M,i,t,e){this.view=M,this.startEvent=i,this.style=t,this.mustSelect=e,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=i,this.scrollParent=function(M){let i=M.ownerDocument;for(let t=M.parentNode;t&&t!=i.body;)if(1==t.nodeType){if(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else{if(11!=t.nodeType)break;t=t.host}return null}(M.contentDOM),this.atoms=M.state.facet(gD).map((i=>i(M)));let N=M.contentDOM.ownerDocument;N.addEventListener("mousemove",this.move=this.move.bind(this)),N.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=i.shiftKey,this.multiple=M.state.facet(vN.allowMultipleSelections)&&function(M,i){let t=M.state.facet(Xu);return t.length?t[0](i):tu.mac?i.metaKey:i.ctrlKey}(M,i),this.dragging=!(!function(M,i){let{main:t}=M.state.selection;if(t.empty)return!1;let e=Ls(M.root);if(!e||0==e.rangeCount)return!0;let N=e.getRangeAt(0).getClientRects();for(let M=0;M<N.length;M++){let t=N[M];if(t.left<=i.clientX&&t.right>=i.clientX&&t.top<=i.clientY&&t.bottom>=i.clientY)return!0}return!1}(M,i)||1!=nn(i))&&null}start(M){!1===this.dragging&&this.select(M)}move(M){var i;if(0==M.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(M,i){return Math.max(Math.abs(M.clientX-i.clientX),Math.abs(M.clientY-i.clientY))}(this.startEvent,M)<10)return;this.select(this.lastEvent=M);let t=0,e=0,N=(null===(i=this.scrollParent)||void 0===i?void 0:i.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},s=TD(this.view);M.clientX-s.left<=N.left+6?t=-FD(N.left-M.clientX):M.clientX+s.right>=N.right-6&&(t=FD(M.clientX-N.right)),M.clientY-s.top<=N.top+6?e=-FD(N.top-M.clientY):M.clientY+s.bottom>=N.bottom-6&&(e=FD(M.clientY-N.bottom)),this.setScrollSpeed(t,e)}up(M){null==this.dragging&&this.select(this.lastEvent),this.dragging||M.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let M=this.view.contentDOM.ownerDocument;M.removeEventListener("mousemove",this.move),M.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(M,i){this.scrollSpeed={x:M,y:i},M||i?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(M){let i=null;for(let t=0;t<M.ranges.length;t++){let e=M.ranges[t],N=null;if(e.empty){let M=fD(this.atoms,e.from,0);M!=e.from&&(N=$e.cursor(M,-1))}else{let M=fD(this.atoms,e.from,-1),i=fD(this.atoms,e.to,1);M==e.from&&i==e.to||(N=$e.range(e.from==e.anchor?M:i,e.from==e.head?M:i))}N&&(i||(i=M.ranges.slice()),i[t]=N)}return i?$e.create(i,M.mainIndex):M}select(M){let{view:i}=this,t=this.skipAtoms(this.style.get(M,this.extend,this.multiple));!this.mustSelect&&t.eq(i.state.selection,!1===this.dragging)||this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(M){this.style.update(M)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const JD=Object.create(null),HD=Object.create(null),$D=tu.ie&&tu.ie_version<15||tu.ios&&tu.webkit_version<604;function _D(M,i){let t,{state:e}=M,N=1,s=e.toText(i),u=s.lines==e.selection.ranges.length,D=null!=In&&e.selection.ranges.every((M=>M.empty))&&In==s.toString();if(D){let M=-1;t=e.changeByRange((t=>{let D=e.doc.lineAt(t.from);if(D.from==M)return{range:t};M=D.from;let n=e.toText((u?s.line(N++).text:i)+e.lineBreak);return{changes:{from:D.from,insert:n},range:$e.cursor(t.from+n.length)}}))}else t=u?e.changeByRange((M=>{let i=s.line(N++);return{changes:{from:M.from,to:M.to,insert:i.text},range:$e.cursor(M.from+i.length)}})):e.replaceSelection(s);M.dispatch(t,{userEvent:"input.paste",scrollIntoView:!0})}function qD(M,i,t,e){if(1==e)return $e.cursor(i,t);if(2==e)return function(M,i,t=1){let e=M.charCategorizer(i),N=M.doc.lineAt(i),s=i-N.from;if(0==N.length)return $e.cursor(i);0==s?t=1:s==N.length&&(t=-1);let u=s,D=s;t<0?u=Ce(N.text,s,!1):D=Ce(N.text,s);let n=e(N.text.slice(u,D));for(;u>0;){let M=Ce(N.text,u,!1);if(e(N.text.slice(M,u))!=n)break;u=M}for(;D<N.length;){let M=Ce(N.text,D);if(e(N.text.slice(D,M))!=n)break;D=M}return $e.range(u+N.from,D+N.from)}(M.state,i,t);{let t=cu.find(M.docView,i),e=M.state.doc.lineAt(t?t.posAtEnd:i),N=t?t.posAtStart:e.from,s=t?t.posAtEnd:e.to;return s<M.state.doc.length&&s==e.to&&s++,$e.range(N,s)}}HD.scroll=M=>{M.inputState.lastScrollTop=M.scrollDOM.scrollTop,M.inputState.lastScrollLeft=M.scrollDOM.scrollLeft},JD.keydown=(M,i)=>(M.inputState.setSelectionOrigin("select"),27==i.keyCode&&(M.inputState.lastEscPress=Date.now()),!1),HD.touchstart=(M,i)=>{M.inputState.lastTouchTime=Date.now(),M.inputState.setSelectionOrigin("select.pointer")},HD.touchmove=M=>{M.inputState.setSelectionOrigin("select.pointer")},JD.mousedown=(M,i)=>{if(M.observer.flush(),M.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let e of M.state.facet(Hu))if(t=e(M,i),t)break;if(t||0!=i.button||(t=function(M,i){let t=en(M,i),e=nn(i),N=M.state.selection;return{update(M){M.docChanged&&(t.pos=M.changes.mapPos(t.pos),N=N.map(M.changes))},get(i,s,u){let D,n=en(M,i),j=qD(M,n.pos,n.bias,e);if(t.pos!=n.pos&&!s){let i=qD(M,t.pos,t.bias,e),N=Math.min(i.from,j.from),s=Math.max(i.to,j.to);j=N<j.from?$e.range(N,s):$e.range(s,N)}return s?N.replaceRange(N.main.extend(j.from,j.to)):u&&1==e&&N.ranges.length>1&&(D=function(M,i){for(let t=0;t<M.ranges.length;t++){let{from:e,to:N}=M.ranges[t];if(e<=i&&N>=i)return $e.create(M.ranges.slice(0,t).concat(M.ranges.slice(t+1)),M.mainIndex==t?0:M.mainIndex-(M.mainIndex>t?1:0))}return null}(N,n.pos))?D:u?N.addRange(j):$e.create([j])}}}(M,i)),t){let e=!M.hasFocus;M.inputState.startMouseSelection(new XD(M,i,t,e)),e&&M.observer.ignore((()=>Us(M.contentDOM)));let N=M.inputState.mouseSelection;if(N)return N.start(i),!1===N.dragging}return!1};let KD=(M,i)=>M>=i.top&&M<=i.bottom,Mn=(M,i,t)=>KD(i,t)&&M>=t.left&&M<=t.right;function tn(M,i,t,e){let N=cu.find(M.docView,i);if(!N)return 1;let s=i-N.posAtStart;if(0==s)return 1;if(s==N.length)return-1;let u=N.coordsAt(s,-1);if(u&&Mn(t,e,u))return-1;let D=N.coordsAt(s,1);return D&&Mn(t,e,D)?1:u&&KD(e,u)?-1:1}function en(M,i){let t=M.posAtCoords({x:i.clientX,y:i.clientY},!1);return{pos:t,bias:tn(M,t,i.clientX,i.clientY)}}const Nn=tu.ie&&tu.ie_version<=11;let sn=null,un=0,Dn=0;function nn(M){if(!Nn)return M.detail;let i=sn,t=Dn;return sn=M,Dn=Date.now(),un=!i||t>Date.now()-400&&Math.abs(i.clientX-M.clientX)<2&&Math.abs(i.clientY-M.clientY)<2?(un+1)%3:1}function jn(M,i,t,e){if(!t)return;let N=M.posAtCoords({x:i.clientX,y:i.clientY},!1),{draggedContent:s}=M.inputState,u=e&&s&&function(M,i){let t=M.state.facet(Ju);return t.length?t[0](i):tu.mac?!i.altKey:!i.ctrlKey}(M,i)?{from:s.from,to:s.to}:null,D={from:N,insert:t},n=M.state.changes(u?[u,D]:D);M.focus(),M.dispatch({changes:n,selection:{anchor:n.mapPos(N,-1),head:n.mapPos(N,1)},userEvent:u?"move.drop":"input.drop"}),M.inputState.draggedContent=null}JD.dragstart=(M,i)=>{let{selection:{main:t}}=M.state;if(i.target.draggable){let e=M.docView.nearest(i.target);if(e&&e.isWidget){let M=e.posAtStart,i=M+e.length;(M>=t.to||i<=t.from)&&(t=$e.range(M,i))}}let{inputState:e}=M;return e.mouseSelection&&(e.mouseSelection.dragging=!0),e.draggedContent=t,i.dataTransfer&&(i.dataTransfer.setData("Text",M.state.sliceDoc(t.from,t.to)),i.dataTransfer.effectAllowed="copyMove"),!1},JD.dragend=M=>(M.inputState.draggedContent=null,!1),JD.drop=(M,i)=>{if(!i.dataTransfer)return!1;if(M.state.readOnly)return!0;let t=i.dataTransfer.files;if(t&&t.length){let e=Array(t.length),N=0,s=()=>{++N==t.length&&jn(M,i,e.filter((M=>null!=M)).join(M.state.lineBreak),!1)};for(let M=0;M<t.length;M++){let i=new FileReader;i.onerror=s,i.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(i.result)||(e[M]=i.result),s()},i.readAsText(t[M])}return!0}{let t=i.dataTransfer.getData("Text");if(t)return jn(M,i,t,!0),!0}return!1},JD.paste=(M,i)=>{if(M.state.readOnly)return!0;M.observer.flush();let t=$D?null:i.clipboardData;return t?(_D(M,t.getData("text/plain")||t.getData("text/uri-text")),!0):(function(M){let i=M.dom.parentNode;if(!i)return;let t=i.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout((()=>{M.focus(),t.remove(),_D(M,t.value)}),50)}(M),!1)};let In=null;JD.copy=JD.cut=(M,i)=>{let{text:t,ranges:e,linewise:N}=function(M){let i=[],t=[],e=!1;for(let e of M.selection.ranges)e.empty||(i.push(M.sliceDoc(e.from,e.to)),t.push(e));if(!i.length){let N=-1;for(let{from:e}of M.selection.ranges){let s=M.doc.lineAt(e);s.number>N&&(i.push(s.text),t.push({from:s.from,to:Math.min(M.doc.length,s.to+1)})),N=s.number}e=!0}return{text:i.join(M.lineBreak),ranges:t,linewise:e}}(M.state);if(!t&&!N)return!1;In=N?t:null,"cut"!=i.type||M.state.readOnly||M.dispatch({changes:e,scrollIntoView:!0,userEvent:"delete.cut"});let s=$D?null:i.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(function(M,i){let t=M.dom.parentNode;if(!t)return;let e=t.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.value=i,e.focus(),e.selectionEnd=i.length,e.selectionStart=0,setTimeout((()=>{e.remove(),M.focus()}),50)}(M,t),!1)};const ln=wN.define();function rn(M,i){let t=[];for(let e of M.facet(Ku)){let N=e(M,i);N&&t.push(N)}return t?M.update({effects:t,annotations:ln.of(!0)}):null}function on(M){setTimeout((()=>{let i=M.hasFocus;if(i!=M.inputState.notifiedFocused){let t=rn(M.state,i);t?M.dispatch(t):M.update([])}}),10)}HD.focus=M=>{M.inputState.lastFocusTime=Date.now(),M.scrollDOM.scrollTop||!M.inputState.lastScrollTop&&!M.inputState.lastScrollLeft||(M.scrollDOM.scrollTop=M.inputState.lastScrollTop,M.scrollDOM.scrollLeft=M.inputState.lastScrollLeft),on(M)},HD.blur=M=>{M.observer.clearSelectionRange(),on(M)},HD.compositionstart=HD.compositionupdate=M=>{null==M.inputState.compositionFirstChange&&(M.inputState.compositionFirstChange=!0),M.inputState.composing<0&&(M.inputState.composing=0)},HD.compositionend=M=>{M.inputState.composing=-1,M.inputState.compositionEndedAt=Date.now(),M.inputState.compositionPendingKey=!0,M.inputState.compositionPendingChange=M.observer.pendingRecords().length>0,M.inputState.compositionFirstChange=null,tu.chrome&&tu.android?M.observer.flushSoon():M.inputState.compositionPendingChange?Promise.resolve().then((()=>M.observer.flush())):setTimeout((()=>{M.inputState.composing<0&&M.docView.hasComposition&&M.update([])}),50)},HD.contextmenu=M=>{M.inputState.lastContextMenu=Date.now()},JD.beforeinput=(M,i)=>{var t;let e;if(tu.chrome&&tu.android&&(e=PD.find((M=>M.inputType==i.inputType)))&&(M.observer.delayAndroidKey(e.key,e.keyCode),"Backspace"==e.key||"Delete"==e.key)){let i=(null===(t=window.visualViewport)||void 0===t?void 0:t.height)||0;setTimeout((()=>{var t;((null===(t=window.visualViewport)||void 0===t?void 0:t.height)||0)>i+10&&M.hasFocus&&(M.contentDOM.blur(),M.focus())}),100)}return!1};const gn=new Set;const cn=["pre-wrap","normal","pre-line","break-spaces"];class an{constructor(M){this.lineWrapping=M,this.doc=Oe.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(M,i){let t=this.doc.lineAt(i).number-this.doc.lineAt(M).number+1;return this.lineWrapping&&(t+=Math.max(0,Math.ceil((i-M-t*this.lineLength*.5)/this.lineLength))),this.lineHeight*t}heightForLine(M){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((M-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(M){return this.doc=M,this}mustRefreshForWrapping(M){return cn.indexOf(M)>-1!=this.lineWrapping}mustRefreshForHeights(M){let i=!1;for(let t=0;t<M.length;t++){let e=M[t];e<0?t++:this.heightSamples[Math.floor(10*e)]||(i=!0,this.heightSamples[Math.floor(10*e)]=!0)}return i}refresh(M,i,t,e,N,s){let u=cn.indexOf(M)>-1,D=Math.round(i)!=Math.round(this.lineHeight)||this.lineWrapping!=u;if(this.lineWrapping=u,this.lineHeight=i,this.charWidth=t,this.textHeight=e,this.lineLength=N,D){this.heightSamples={};for(let M=0;M<s.length;M++){let i=s[M];i<0?M++:this.heightSamples[Math.floor(10*i)]=!0}}return D}}class On{constructor(M,i){this.from=M,this.heights=i,this.index=0}get more(){return this.index<this.heights.length}}class Tn{constructor(M,i,t,e,N){this.from=M,this.length=i,this.top=t,this.height=e,this._content=N}get type(){return"number"==typeof this._content?Tu.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof yu?this._content.widget:null}get widgetLineBreaks(){return"number"==typeof this._content?this._content:0}join(M){let i=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(M._content)?M._content:[M]);return new Tn(this.from,this.length+M.length,this.top,this.height+M.height,i)}}var Ln=function(M){return M[M.ByPos=0]="ByPos",M[M.ByHeight=1]="ByHeight",M[M.ByPosNoHeight=2]="ByPosNoHeight",M}(Ln||(Ln={}));const hn=.001;class zn{constructor(M,i,t=2){this.length=M,this.height=i,this.flags=t}get outdated(){return(2&this.flags)>0}set outdated(M){this.flags=(M?2:0)|-3&this.flags}setHeight(M,i){this.height!=i&&(Math.abs(this.height-i)>hn&&(M.heightChanged=!0),this.height=i)}replace(M,i,t){return zn.of(t)}decomposeLeft(M,i){i.push(this)}decomposeRight(M,i){i.push(this)}applyChanges(M,i,t,e){let N=this,s=t.doc;for(let u=e.length-1;u>=0;u--){let{fromA:D,toA:n,fromB:j,toB:I}=e[u],l=N.lineAt(D,Ln.ByPosNoHeight,t.setDoc(i),0,0),r=l.to>=n?l:N.lineAt(n,Ln.ByPosNoHeight,t,0,0);for(I+=r.to-n,n=r.to;u>0&&l.from<=e[u-1].toA;)D=e[u-1].fromA,j=e[u-1].fromB,u--,D<l.from&&(l=N.lineAt(D,Ln.ByPosNoHeight,t,0,0));j+=l.from-D,D=l.from;let o=Sn.build(t.setDoc(s),M,j,I);N=N.replace(D,n,o)}return N.updateHeight(t,0)}static empty(){return new dn(0,0)}static of(M){if(1==M.length)return M[0];let i=0,t=M.length,e=0,N=0;for(;;)if(i==t)if(e>2*N){let N=M[i-1];N.break?M.splice(--i,1,N.left,null,N.right):M.splice(--i,1,N.left,N.right),t+=1+N.break,e-=N.size}else{if(!(N>2*e))break;{let i=M[t];i.break?M.splice(t,1,i.left,null,i.right):M.splice(t,1,i.left,i.right),t+=2+i.break,N-=i.size}}else if(e<N){let t=M[i++];t&&(e+=t.size)}else{let i=M[--t];i&&(N+=i.size)}let s=0;return null==M[i-1]?(s=1,i--):null==M[i]&&(s=1,t++),new xn(zn.of(M.slice(0,i)),s,zn.of(M.slice(t)))}}zn.prototype.size=1;class yn extends zn{constructor(M,i,t){super(M,i),this.deco=t}blockAt(M,i,t,e){return new Tn(e,this.length,t,this.height,this.deco||0)}lineAt(M,i,t,e,N){return this.blockAt(0,t,e,N)}forEachLine(M,i,t,e,N,s){M<=N+this.length&&i>=N&&s(this.blockAt(0,t,e,N))}updateHeight(M,i=0,t=!1,e){return e&&e.from<=i&&e.more&&this.setHeight(M,e.heights[e.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class dn extends yn{constructor(M,i){super(M,i,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(M,i,t,e){return new Tn(e,this.length,t,this.height,this.breaks)}replace(M,i,t){let e=t[0];return 1==t.length&&(e instanceof dn||e instanceof An&&4&e.flags)&&Math.abs(this.length-e.length)<10?(e instanceof An?e=new dn(e.length,this.height):e.height=this.height,this.outdated||(e.outdated=!1),e):zn.of(t)}updateHeight(M,i=0,t=!1,e){return e&&e.from<=i&&e.more?this.setHeight(M,e.heights[e.index++]):(t||this.outdated)&&this.setHeight(M,Math.max(this.widgetHeight,M.heightForLine(this.length-this.collapsed))+this.breaks*M.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class An extends zn{constructor(M){super(M,0)}heightMetrics(M,i){let t,e=M.doc.lineAt(i).number,N=M.doc.lineAt(i+this.length).number,s=N-e+1,u=0;if(M.lineWrapping){let i=Math.min(this.height,M.lineHeight*s);t=i/s,this.length>s+1&&(u=(this.height-i)/(this.length-s-1))}else t=this.height/s;return{firstLine:e,lastLine:N,perLine:t,perChar:u}}blockAt(M,i,t,e){let{firstLine:N,lastLine:s,perLine:u,perChar:D}=this.heightMetrics(i,e);if(i.lineWrapping){let N=e+Math.round(Math.max(0,Math.min(1,(M-t)/this.height))*this.length),s=i.doc.lineAt(N),n=u+s.length*D,j=Math.max(t,M-n/2);return new Tn(s.from,s.length,j,n,0)}{let e=Math.max(0,Math.min(s-N,Math.floor((M-t)/u))),{from:D,length:n}=i.doc.line(N+e);return new Tn(D,n,t+u*e,u,0)}}lineAt(M,i,t,e,N){if(i==Ln.ByHeight)return this.blockAt(M,t,e,N);if(i==Ln.ByPosNoHeight){let{from:i,to:e}=t.doc.lineAt(M);return new Tn(i,e-i,0,0,0)}let{firstLine:s,perLine:u,perChar:D}=this.heightMetrics(t,N),n=t.doc.lineAt(M),j=u+n.length*D,I=n.number-s,l=e+u*I+D*(n.from-N-I);return new Tn(n.from,n.length,Math.max(e,Math.min(l,e+this.height-j)),j,0)}forEachLine(M,i,t,e,N,s){M=Math.max(M,N),i=Math.min(i,N+this.length);let{firstLine:u,perLine:D,perChar:n}=this.heightMetrics(t,N);for(let j=M,I=e;j<=i;){let i=t.doc.lineAt(j);if(j==M){let t=i.number-u;I+=D*t+n*(M-N-t)}let e=D+n*i.length;s(new Tn(i.from,i.length,I,e,0)),I+=e,j=i.to+1}}replace(M,i,t){let e=this.length-i;if(e>0){let M=t[t.length-1];M instanceof An?t[t.length-1]=new An(M.length+e):t.push(null,new An(e-1))}if(M>0){let i=t[0];i instanceof An?t[0]=new An(M+i.length):t.unshift(new An(M-1),null)}return zn.of(t)}decomposeLeft(M,i){i.push(new An(M-1),null)}decomposeRight(M,i){i.push(null,new An(this.length-M-1))}updateHeight(M,i=0,t=!1,e){let N=i+this.length;if(e&&e.from<=i+this.length&&e.more){let t=[],s=Math.max(i,e.from),u=-1;for(e.from>i&&t.push(new An(e.from-i-1).updateHeight(M,i));s<=N&&e.more;){let i=M.doc.lineAt(s).length;t.length&&t.push(null);let N=e.heights[e.index++];-1==u?u=N:Math.abs(N-u)>=hn&&(u=-2);let D=new dn(i,N);D.outdated=!1,t.push(D),s+=i+1}s<=N&&t.push(null,new An(N-s).updateHeight(M,s));let D=zn.of(t);return(u<0||Math.abs(D.height-this.height)>=hn||Math.abs(u-this.heightMetrics(M,i).perLine)>=hn)&&(M.heightChanged=!0),D}return(t||this.outdated)&&(this.setHeight(M,M.heightForGap(i,i+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class xn extends zn{constructor(M,i,t){super(M.length+i+t.length,M.height+t.height,i|(M.outdated||t.outdated?2:0)),this.left=M,this.right=t,this.size=M.size+t.size}get break(){return 1&this.flags}blockAt(M,i,t,e){let N=t+this.left.height;return M<N?this.left.blockAt(M,i,t,e):this.right.blockAt(M,i,N,e+this.left.length+this.break)}lineAt(M,i,t,e,N){let s=e+this.left.height,u=N+this.left.length+this.break,D=i==Ln.ByHeight?M<s:M<u,n=D?this.left.lineAt(M,i,t,e,N):this.right.lineAt(M,i,t,s,u);if(this.break||(D?n.to<u:n.from>u))return n;let j=i==Ln.ByPosNoHeight?Ln.ByPosNoHeight:Ln.ByPos;return D?n.join(this.right.lineAt(u,j,t,s,u)):this.left.lineAt(u,j,t,e,N).join(n)}forEachLine(M,i,t,e,N,s){let u=e+this.left.height,D=N+this.left.length+this.break;if(this.break)M<D&&this.left.forEachLine(M,i,t,e,N,s),i>=D&&this.right.forEachLine(M,i,t,u,D,s);else{let n=this.lineAt(D,Ln.ByPos,t,e,N);M<n.from&&this.left.forEachLine(M,n.from-1,t,e,N,s),n.to>=M&&n.from<=i&&s(n),i>n.to&&this.right.forEachLine(n.to+1,i,t,u,D,s)}}replace(M,i,t){let e=this.left.length+this.break;if(i<e)return this.balanced(this.left.replace(M,i,t),this.right);if(M>this.left.length)return this.balanced(this.left,this.right.replace(M-e,i-e,t));let N=[];M>0&&this.decomposeLeft(M,N);let s=N.length;for(let M of t)N.push(M);if(M>0&&wn(N,s-1),i<this.length){let M=N.length;this.decomposeRight(i,N),wn(N,M)}return zn.of(N)}decomposeLeft(M,i){let t=this.left.length;if(M<=t)return this.left.decomposeLeft(M,i);i.push(this.left),this.break&&(t++,M>=t&&i.push(null)),M>t&&this.right.decomposeLeft(M-t,i)}decomposeRight(M,i){let t=this.left.length,e=t+this.break;if(M>=e)return this.right.decomposeRight(M-e,i);M<t&&this.left.decomposeRight(M,i),this.break&&M<e&&i.push(null),i.push(this.right)}balanced(M,i){return M.size>2*i.size||i.size>2*M.size?zn.of(this.break?[M,null,i]:[M,i]):(this.left=M,this.right=i,this.height=M.height+i.height,this.outdated=M.outdated||i.outdated,this.size=M.size+i.size,this.length=M.length+this.break+i.length,this)}updateHeight(M,i=0,t=!1,e){let{left:N,right:s}=this,u=i+N.length+this.break,D=null;return e&&e.from<=i+N.length&&e.more?D=N=N.updateHeight(M,i,t,e):N.updateHeight(M,i,t),e&&e.from<=u+s.length&&e.more?D=s=s.updateHeight(M,u,t,e):s.updateHeight(M,u,t),D?this.balanced(N,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function wn(M,i){let t,e;null==M[i]&&(t=M[i-1])instanceof An&&(e=M[i+1])instanceof An&&M.splice(i-1,3,new An(t.length+1+e.length))}class Sn{constructor(M,i){this.pos=M,this.oracle=i,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=M}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(M,i){if(this.lineStart>-1){let M=Math.min(i,this.lineEnd),t=this.nodes[this.nodes.length-1];t instanceof dn?t.length+=M-this.pos:(M>this.pos||!this.isCovered)&&this.nodes.push(new dn(M-this.pos,-1)),this.writtenTo=M,i>M&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=i}point(M,i,t){if(M<i||t.heightRelevant){let e=t.widget?t.widget.estimatedHeight:0,N=t.widget?t.widget.lineBreaks:0;e<0&&(e=this.oracle.lineHeight);let s=i-M;t.block?this.addBlock(new yn(s,e,t)):(s||N||e>=5)&&this.addLineDeco(e,N,s)}else i>M&&this.span(M,i);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:M,to:i}=this.oracle.doc.lineAt(this.pos);this.lineStart=M,this.lineEnd=i,this.writtenTo<M&&((this.writtenTo<M-1||null==this.nodes[this.nodes.length-1])&&this.nodes.push(this.blankContent(this.writtenTo,M-1)),this.nodes.push(null)),this.pos>M&&this.nodes.push(new dn(this.pos-M,-1)),this.writtenTo=this.pos}blankContent(M,i){let t=new An(i-M);return this.oracle.doc.lineAt(M).to==i&&(t.flags|=4),t}ensureLine(){this.enterLine();let M=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(M instanceof dn)return M;let i=new dn(0,-1);return this.nodes.push(i),i}addBlock(M){this.enterLine();let i=M.deco;i&&i.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(M),this.writtenTo=this.pos=this.pos+M.length,i&&i.endSide>0&&(this.covering=M)}addLineDeco(M,i,t){let e=this.ensureLine();e.length+=t,e.collapsed+=t,e.widgetHeight=Math.max(e.widgetHeight,M),e.breaks+=i,this.writtenTo=this.pos=this.pos+t}finish(M){let i=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||i instanceof dn||this.isCovered?(this.writtenTo<this.pos||null==i)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new dn(0,-1));let t=M;for(let M of this.nodes)M instanceof dn&&M.updateHeight(this.oracle,t),t+=M?M.length:1;return this.nodes}static build(M,i,t,e){let N=new Sn(t,M);return XN.spans(i,t,e,N,0),N.finish(t)}}class En{constructor(){this.changes=[]}compareRange(){}comparePoint(M,i,t,e){(M<i||t&&t.heightRelevant||e&&e.heightRelevant)&&Au(M,i,this.changes,5)}}function Qn(M,i){let t=M.getBoundingClientRect(),e=M.ownerDocument,N=e.defaultView||window,s=Math.max(0,t.left),u=Math.min(N.innerWidth,t.right),D=Math.max(0,t.top),n=Math.min(N.innerHeight,t.bottom);for(let i=M.parentNode;i&&i!=e.body;)if(1==i.nodeType){let t=i,e=window.getComputedStyle(t);if((t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)&&"visible"!=e.overflow){let e=t.getBoundingClientRect();s=Math.max(s,e.left),u=Math.min(u,e.right),D=Math.max(D,e.top),n=i==M.parentNode?e.bottom:Math.min(n,e.bottom)}i="absolute"==e.position||"fixed"==e.position?t.offsetParent:t.parentNode}else{if(11!=i.nodeType)break;i=i.host}return{left:s-t.left,right:Math.max(s,u)-t.left,top:D-(t.top+i),bottom:Math.max(D,n)-(t.top+i)}}function kn(M,i){let t=M.getBoundingClientRect();return{left:0,right:t.right-t.left,top:i,bottom:t.bottom-(t.top+i)}}class Cn{constructor(M,i,t){this.from=M,this.to=i,this.size=t}static same(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++){let e=M[t],N=i[t];if(e.from!=N.from||e.to!=N.to||e.size!=N.size)return!1}return!0}draw(M,i){return Lu.replace({widget:new pn(this.size*(i?M.scaleY:M.scaleX),i)}).range(this.from,this.to)}}class pn extends Ou{constructor(M,i){super(),this.size=M,this.vertical=i}eq(M){return M.size==this.size&&M.vertical==this.vertical}toDOM(){let M=document.createElement("div");return this.vertical?M.style.height=this.size+"px":(M.style.width=this.size+"px",M.style.height="2px",M.style.display="inline-block"),M}get estimatedHeight(){return this.vertical?this.size:-1}}class Un{constructor(M){this.state=M,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!0,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=fn,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Eu.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let i=M.facet(lD).some((M=>"function"!=typeof M&&"cm-lineWrapping"==M.class));this.heightOracle=new an(i),this.stateDeco=M.facet(rD).filter((M=>"function"!=typeof M)),this.heightMap=zn.empty().applyChanges(this.stateDeco,Oe.empty,this.heightOracle.setDoc(M.doc),[new hD(0,0,0,M.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Lu.set(this.lineGaps.map((M=>M.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let M=[this.viewport],{main:i}=this.state.selection;for(let t=0;t<=1;t++){let e=t?i.head:i.anchor;if(!M.some((({from:M,to:i})=>e>=M&&e<=i))){let{from:i,to:t}=this.lineBlockAt(e);M.push(new bn(i,t))}}this.viewports=M.sort(((M,i)=>M.from-i.from)),this.scaler=this.heightMap.height<=7e6?fn:new Wn(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(M=>{this.viewportLines.push(1==this.scaler.scale?M:Vn(M,this.scaler))}))}update(M,i=null){this.state=M.state;let t=this.stateDeco;this.stateDeco=this.state.facet(rD).filter((M=>"function"!=typeof M));let e=M.changedRanges,N=hD.extendWithRanges(e,function(M,i,t){let e=new En;return XN.compare(M,i,t,e,0),e.changes}(t,this.stateDeco,M?M.changes:Ge.empty(this.state.doc.length))),s=this.heightMap.height,u=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,M.startState.doc,this.heightOracle.setDoc(this.state.doc),N),this.heightMap.height!=s&&(M.flags|=2),u?(this.scrollAnchorPos=M.changes.mapPos(u.from,-1),this.scrollAnchorHeight=u.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let D=N.length?this.mapViewport(this.viewport,M.changes):this.viewport;(i&&(i.range.head<D.from||i.range.head>D.to)||!this.viewportIsAppropriate(D))&&(D=this.getViewport(0,i));let n=!M.changes.empty||2&M.flags||D.from!=this.viewport.from||D.to!=this.viewport.to;this.viewport=D,this.updateForViewport(),n&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,M.changes))),M.flags|=this.computeVisibleRanges(),i&&(this.scrollTarget=i),!this.mustEnforceCursorAssoc&&M.selectionSet&&M.view.lineWrapping&&M.state.selection.main.empty&&M.state.selection.main.assoc&&!M.state.facet(iD)&&(this.mustEnforceCursorAssoc=!0)}measure(M){let i=M.contentDOM,t=window.getComputedStyle(i),e=this.heightOracle,N=t.whiteSpace;this.defaultTextDirection="rtl"==t.direction?Eu.RTL:Eu.LTR;let s=this.heightOracle.mustRefreshForWrapping(N),u=i.getBoundingClientRect(),D=s||this.mustMeasureContent||this.contentDOMHeight!=u.height;this.contentDOMHeight=u.height,this.mustMeasureContent=!1;let n=0,j=0;if(u.width&&u.height){let{scaleX:M,scaleY:t}=Qs(i,u);this.scaleX==M&&this.scaleY==t||(this.scaleX=M,this.scaleY=t,n|=8,s=D=!0)}let I=(parseInt(t.paddingTop)||0)*this.scaleY,l=(parseInt(t.paddingBottom)||0)*this.scaleY;this.paddingTop==I&&this.paddingBottom==l||(this.paddingTop=I,this.paddingBottom=l,n|=10),this.editorWidth!=M.scrollDOM.clientWidth&&(e.lineWrapping&&(D=!0),this.editorWidth=M.scrollDOM.clientWidth,n|=8);let r=M.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=r&&(this.scrollAnchorHeight=-1,this.scrollTop=r),this.scrolledToBottom=Ys(M.scrollDOM);let o=(this.printing?kn:Qn)(i,this.paddingTop),g=o.top-this.pixelViewport.top,c=o.bottom-this.pixelViewport.bottom;this.pixelViewport=o;let a=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(a!=this.inView&&(this.inView=a,a&&(D=!0)),!this.inView&&!this.scrollTarget)return 0;let O=u.width;if(this.contentDOMWidth==O&&this.editorHeight==M.scrollDOM.clientHeight||(this.contentDOMWidth=u.width,this.editorHeight=M.scrollDOM.clientHeight,n|=8),D){let i=M.docView.measureVisibleLineHeights(this.viewport);if(e.mustRefreshForHeights(i)&&(s=!0),s||e.lineWrapping&&Math.abs(O-this.contentDOMWidth)>e.charWidth){let{lineHeight:t,charWidth:u,textHeight:D}=M.docView.measureTextSize();s=t>0&&e.refresh(N,t,u,D,O/u,i),s&&(M.docView.minWidth=0,n|=8)}g>0&&c>0?j=Math.max(g,c):g<0&&c<0&&(j=Math.min(g,c)),e.heightChanged=!1;for(let t of this.viewports){let N=t.from==this.viewport.from?i:M.docView.measureVisibleLineHeights(t);this.heightMap=(s?zn.empty().applyChanges(this.stateDeco,Oe.empty,this.heightOracle,[new hD(0,0,0,M.state.doc.length)]):this.heightMap).updateHeight(e,0,s,new On(t.from,N))}e.heightChanged&&(n|=2)}let T=!this.viewportIsAppropriate(this.viewport,j)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return T&&(this.viewport=this.getViewport(j,this.scrollTarget)),this.updateForViewport(),(2&n||T)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,M)),n|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,M.docView.enforceCursorAssoc()),n}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(M,i){let t=.5-Math.max(-.5,Math.min(.5,M/1e3/2)),e=this.heightMap,N=this.heightOracle,{visibleTop:s,visibleBottom:u}=this,D=new bn(e.lineAt(s-1e3*t,Ln.ByHeight,N,0,0).from,e.lineAt(u+1e3*(1-t),Ln.ByHeight,N,0,0).to);if(i){let{head:M}=i.range;if(M<D.from||M>D.to){let t,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=e.lineAt(M,Ln.ByPos,N,0,0);t="center"==i.y?(u.top+u.bottom)/2-s/2:"start"==i.y||"nearest"==i.y&&M<D.from?u.top:u.bottom-s,D=new bn(e.lineAt(t-500,Ln.ByHeight,N,0,0).from,e.lineAt(t+s+500,Ln.ByHeight,N,0,0).to)}}return D}mapViewport(M,i){let t=i.mapPos(M.from,-1),e=i.mapPos(M.to,1);return new bn(this.heightMap.lineAt(t,Ln.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(e,Ln.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:M,to:i},t=0){if(!this.inView)return!0;let{top:e}=this.heightMap.lineAt(M,Ln.ByPos,this.heightOracle,0,0),{bottom:N}=this.heightMap.lineAt(i,Ln.ByPos,this.heightOracle,0,0),{visibleTop:s,visibleBottom:u}=this;return(0==M||e<=s-Math.max(10,Math.min(-t,250)))&&(i==this.state.doc.length||N>=u+Math.max(10,Math.min(t,250)))&&e>s-2e3&&N<u+2e3}mapLineGaps(M,i){if(!M.length||i.empty)return M;let t=[];for(let e of M)i.touchesRange(e.from,e.to)||t.push(new Cn(i.mapPos(e.from),i.mapPos(e.to),e.size));return t}ensureLineGaps(M,i){let t=this.heightOracle.lineWrapping,e=t?1e4:2e3,N=e>>1,s=e<<1;if(this.defaultTextDirection!=Eu.LTR&&!t)return[];let u=[],D=(e,s,n,j)=>{if(s-e<N)return;let I=this.state.selection.main,l=[I.from];I.empty||l.push(I.to);for(let M of l)if(M>e&&M<s)return D(e,M-10,n,j),void D(M+10,s,n,j);let r=function(M,i){for(let t of M)if(i(t))return t;return}(M,(M=>M.from>=n.from&&M.to<=n.to&&Math.abs(M.from-e)<N&&Math.abs(M.to-s)<N&&!l.some((i=>M.from<i&&M.to>i))));if(!r){if(s<n.to&&i&&t&&i.visibleRanges.some((M=>M.from<=s&&M.to>=s))){let M=i.moveToLineBoundary($e.cursor(s),!1,!0).head;M>e&&(s=M)}r=new Cn(e,s,this.gapSize(n,e,s,j))}u.push(r)};for(let M of this.viewportLines){if(M.length<s)continue;let i=Zn(M.from,M.to,this.stateDeco);if(i.total<s)continue;let N,u,n=this.scrollTarget?this.scrollTarget.range.head:null;if(t){let t,s,D=e/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=n){let e=Yn(i,n),N=((this.visibleBottom-this.visibleTop)/2+D)/M.height;t=e-N,s=e+N}else t=(this.visibleTop-M.top-D)/M.height,s=(this.visibleBottom-M.top+D)/M.height;N=mn(i,t),u=mn(i,s)}else{let M,t,s=i.total*this.heightOracle.charWidth,D=e*this.heightOracle.charWidth;if(null!=n){let e=Yn(i,n),N=((this.pixelViewport.right-this.pixelViewport.left)/2+D)/s;M=e-N,t=e+N}else M=(this.pixelViewport.left-D)/s,t=(this.pixelViewport.right+D)/s;N=mn(i,M),u=mn(i,t)}N>M.from&&D(M.from,N,M,i),u<M.to&&D(u,M.to,M,i)}return u}gapSize(M,i,t,e){let N=Yn(e,t)-Yn(e,i);return this.heightOracle.lineWrapping?M.height*N:e.total*this.heightOracle.charWidth*N}updateLineGaps(M){Cn.same(M,this.lineGaps)||(this.lineGaps=M,this.lineGapDeco=Lu.set(M.map((M=>M.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let M=this.stateDeco;this.lineGaps.length&&(M=M.concat(this.lineGapDeco));let i=[];XN.spans(M,this.viewport.from,this.viewport.to,{span(M,t){i.push({from:M,to:t})},point(){}},20);let t=i.length!=this.visibleRanges.length||this.visibleRanges.some(((M,t)=>M.from!=i[t].from||M.to!=i[t].to));return this.visibleRanges=i,t?4:0}lineBlockAt(M){return M>=this.viewport.from&&M<=this.viewport.to&&this.viewportLines.find((i=>i.from<=M&&i.to>=M))||Vn(this.heightMap.lineAt(M,Ln.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(M){return Vn(this.heightMap.lineAt(this.scaler.fromDOM(M),Ln.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(M){let i=this.lineBlockAtHeight(M+8);return i.from>=this.viewport.from||this.viewportLines[0].top-M>200?i:this.viewportLines[0]}elementAtHeight(M){return Vn(this.heightMap.blockAt(this.scaler.fromDOM(M),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class bn{constructor(M,i){this.from=M,this.to=i}}function Zn(M,i,t){let e=[],N=M,s=0;return XN.spans(t,M,i,{span(){},point(M,i){M>N&&(e.push({from:N,to:M}),s+=M-N),N=i}},20),N<i&&(e.push({from:N,to:i}),s+=i-N),{total:s,ranges:e}}function mn({total:M,ranges:i},t){if(t<=0)return i[0].from;if(t>=1)return i[i.length-1].to;let e=Math.floor(M*t);for(let M=0;;M++){let{from:t,to:N}=i[M],s=N-t;if(e<=s)return t+e;e-=s}}function Yn(M,i){let t=0;for(let{from:e,to:N}of M.ranges){if(i<=N){t+=i-e;break}t+=N-e}return t/M.total}const fn={toDOM:M=>M,fromDOM:M=>M,scale:1};class Wn{constructor(M,i,t){let e=0,N=0,s=0;this.viewports=t.map((({from:t,to:N})=>{let s=i.lineAt(t,Ln.ByPos,M,0,0).top,u=i.lineAt(N,Ln.ByPos,M,0,0).bottom;return e+=u-s,{from:t,to:N,top:s,bottom:u,domTop:0,domBottom:0}})),this.scale=(7e6-e)/(i.height-e);for(let M of this.viewports)M.domTop=s+(M.top-N)*this.scale,s=M.domBottom=M.domTop+(M.bottom-M.top),N=M.bottom}toDOM(M){for(let i=0,t=0,e=0;;i++){let N=i<this.viewports.length?this.viewports[i]:null;if(!N||M<N.top)return e+(M-t)*this.scale;if(M<=N.bottom)return N.domTop+(M-N.top);t=N.bottom,e=N.domBottom}}fromDOM(M){for(let i=0,t=0,e=0;;i++){let N=i<this.viewports.length?this.viewports[i]:null;if(!N||M<N.domTop)return t+(M-e)/this.scale;if(M<=N.domBottom)return N.top+(M-N.domTop);t=N.bottom,e=N.domBottom}}}function Vn(M,i){if(1==i.scale)return M;let t=i.toDOM(M.top),e=i.toDOM(M.bottom);return new Tn(M.from,M.length,t,e-t,Array.isArray(M._content)?M._content.map((M=>Vn(M,i))):M._content)}const vn=Ke.define({combine:M=>M.join(" ")}),Gn=Ke.define({combine:M=>M.indexOf(!0)>-1}),Pn=Is.newName(),Rn=Is.newName(),Bn=Is.newName(),Fn={"&light":"."+Rn,"&dark":"."+Bn};function Xn(M,i,t){return new Is(i,{finish:i=>/&/.test(i)?i.replace(/&\w*/,(i=>{if("&"==i)return M;if(!t||!t[i])throw new RangeError(`Unsupported selector: ${i}`);return t[i]})):M+" "+i})}const Jn=Xn("."+Pn,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Fn),Hn="";class $n{constructor(M,i){this.points=M,this.text="",this.lineSeparator=i.facet(vN.lineSeparator)}append(M){this.text+=M}lineBreak(){this.text+=Hn}readRange(M,i){if(!M)return this;let t=M.parentNode;for(let e=M;;){this.findPointBefore(t,e);let M=this.text.length;this.readNode(e);let N=e.nextSibling;if(N==i)break;let s=Vs.get(e),u=Vs.get(N);(s&&u?s.breakAfter:(s?s.breakAfter:qn(e))||qn(N)&&("BR"!=e.nodeName||e.cmIgnore)&&this.text.length>M)&&this.lineBreak(),e=N}return this.findPointBefore(t,i),this}readTextNode(M){let i=M.nodeValue;for(let t of this.points)t.node==M&&(t.pos=this.text.length+Math.min(t.offset,i.length));for(let t=0,e=this.lineSeparator?null:/\r\n?|\n/g;;){let N,s=-1,u=1;if(this.lineSeparator?(s=i.indexOf(this.lineSeparator,t),u=this.lineSeparator.length):(N=e.exec(i))&&(s=N.index,u=N[0].length),this.append(i.slice(t,s<0?i.length:s)),s<0)break;if(this.lineBreak(),u>1)for(let i of this.points)i.node==M&&i.pos>this.text.length&&(i.pos-=u-1);t=s+u}}readNode(M){if(M.cmIgnore)return;let i=Vs.get(M),t=i&&i.overrideDOMText;if(null!=t){this.findPointInside(M,t.length);for(let M=t.iter();!M.next().done;)M.lineBreak?this.lineBreak():this.append(M.value)}else 3==M.nodeType?this.readTextNode(M):"BR"==M.nodeName?M.nextSibling&&this.lineBreak():1==M.nodeType&&this.readRange(M.firstChild,null)}findPointBefore(M,i){for(let t of this.points)t.node==M&&M.childNodes[t.offset]==i&&(t.pos=this.text.length)}findPointInside(M,i){for(let t of this.points)(3==M.nodeType?t.node==M:M.contains(t.node))&&(t.pos=this.text.length+(_n(M,t.node,t.offset)?i:0))}}function _n(M,i,t){for(;;){if(!i||t<ws(i))return!1;if(i==M)return!0;t=As(i)+1,i=i.parentNode}}function qn(M){return 1==M.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(M.nodeName)}class Kn{constructor(M,i){this.node=M,this.offset=i,this.pos=-1}}class Mj{constructor(M,i,t,e){this.typeOver=e,this.bounds=null,this.text="";let{impreciseHead:N,impreciseAnchor:s}=M.docView;if(M.state.readOnly&&i>-1)this.newSel=null;else if(i>-1&&(this.bounds=M.docView.domBoundsAround(i,t,0))){let i=N||s?[]:function(M){let i=[];if(M.root.activeElement!=M.contentDOM)return i;let{anchorNode:t,anchorOffset:e,focusNode:N,focusOffset:s}=M.observer.selectionRange;t&&(i.push(new Kn(t,e)),N==t&&s==e||i.push(new Kn(N,s)));return i}(M),t=new $n(i,M.state);t.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=t.text,this.newSel=function(M,i){if(0==M.length)return null;let t=M[0].pos,e=2==M.length?M[1].pos:t;return t>-1&&e>-1?$e.single(t+i,e+i):null}(i,this.bounds.from)}else{let i=M.observer.selectionRange,t=N&&N.node==i.focusNode&&N.offset==i.focusOffset||!hs(M.contentDOM,i.focusNode)?M.state.selection.main.head:M.docView.posFromDOM(i.focusNode,i.focusOffset),e=s&&s.node==i.anchorNode&&s.offset==i.anchorOffset||!hs(M.contentDOM,i.anchorNode)?M.state.selection.main.anchor:M.docView.posFromDOM(i.anchorNode,i.anchorOffset),u=M.viewport;if(tu.ios&&M.state.selection.main.empty&&t!=e&&(u.from>0||u.to<M.state.doc.length)){let i=u.from-Math.min(t,e),N=u.to-Math.max(t,e);0!=i&&1!=i||0!=N&&-1!=N||(t=0,e=M.state.doc.length)}this.newSel=$e.single(e,t)}}}function ij(M,i){let t,{newSel:e}=i,N=M.state.selection.main,s=M.inputState.lastKeyTime>Date.now()-100?M.inputState.lastKeyCode:-1;if(i.bounds){let{from:e,to:u}=i.bounds,D=N.from,n=null;(8===s||tu.android&&i.text.length<u-e)&&(D=N.to,n="end");let j=function(M,i,t,e){let N=Math.min(M.length,i.length),s=0;for(;s<N&&M.charCodeAt(s)==i.charCodeAt(s);)s++;if(s==N&&M.length==i.length)return null;let u=M.length,D=i.length;for(;u>0&&D>0&&M.charCodeAt(u-1)==i.charCodeAt(D-1);)u--,D--;if("end"==e){t-=u+Math.max(0,s-Math.min(u,D))-s}if(u<s&&M.length<i.length){s-=t<=s&&t>=u?s-t:0,D=s+(D-u),u=s}else if(D<s){s-=t<=s&&t>=D?s-t:0,u=s+(u-D),D=s}return{from:s,toA:u,toB:D}}(M.state.doc.sliceString(e,u,Hn),i.text,D-e,n);j&&(tu.chrome&&13==s&&j.toB==j.from+2&&i.text.slice(j.from,j.toB)==Hn+Hn&&j.toB--,t={from:e+j.from,to:e+j.toA,insert:Oe.of(i.text.slice(j.from,j.toB).split(Hn))})}else e&&(!M.hasFocus&&M.state.facet(sD)||e.main.eq(N))&&(e=null);if(!t&&!e)return!1;if(!t&&i.typeOver&&!N.empty&&e&&e.main.empty?t={from:N.from,to:N.to,insert:M.state.doc.slice(N.from,N.to)}:t&&t.from>=N.from&&t.to<=N.to&&(t.from!=N.from||t.to!=N.to)&&N.to-N.from-(t.to-t.from)<=4?t={from:N.from,to:N.to,insert:M.state.doc.slice(N.from,t.from).append(t.insert).append(M.state.doc.slice(t.to,N.to))}:(tu.mac||tu.android)&&t&&t.from==t.to&&t.from==N.head-1&&/^\. ?$/.test(t.insert.toString())&&"off"==M.contentDOM.getAttribute("autocorrect")?(e&&2==t.insert.length&&(e=$e.single(e.main.anchor-1,e.main.head-1)),t={from:N.from,to:N.to,insert:Oe.of([" "])}):tu.chrome&&t&&t.from==t.to&&t.from==N.head&&"\n "==t.insert.toString()&&M.lineWrapping&&(e&&(e=$e.single(e.main.anchor-1,e.main.head-1)),t={from:N.from,to:N.to,insert:Oe.of([" "])}),t){if(tu.ios&&M.inputState.flushIOSKey())return!0;if(tu.android&&(t.from==N.from&&t.to==N.to&&1==t.insert.length&&2==t.insert.lines&&Zs(M.contentDOM,"Enter",13)||(t.from==N.from-1&&t.to==N.to&&0==t.insert.length||8==s&&t.insert.length<t.to-t.from&&t.to>N.head)&&Zs(M.contentDOM,"Backspace",8)||t.from==N.from&&t.to==N.to+1&&0==t.insert.length&&Zs(M.contentDOM,"Delete",46)))return!0;let i,u=t.insert.toString();M.inputState.composing>=0&&M.inputState.composing++;let D=()=>i||(i=function(M,i,t){let e,N=M.state,s=N.selection.main;if(i.from>=s.from&&i.to<=s.to&&i.to-i.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==i.from+i.insert.length)&&M.inputState.composing<0){let t=s.from<i.from?N.sliceDoc(s.from,i.from):"",u=s.to>i.to?N.sliceDoc(i.to,s.to):"";e=N.replaceSelection(M.state.toText(t+i.insert.sliceString(0,void 0,M.state.lineBreak)+u))}else{let u=N.changes(i),D=t&&t.main.to<=u.newLength?t.main:void 0;if(N.selection.ranges.length>1&&M.inputState.composing>=0&&i.to<=s.to&&i.to>=s.to-10){let n,j=M.state.sliceDoc(i.from,i.to),I=t&&AD(M,t.main.head);if(I){let M=i.insert.length-(i.to-i.from);n={from:I.from,to:I.to-M}}else n=M.state.doc.lineAt(s.head);let l=s.to-i.to,r=s.to-s.from;e=N.changeByRange((t=>{if(t.from==s.from&&t.to==s.to)return{changes:u,range:D||t.map(u)};let e=t.to-l,I=e-j.length;if(t.to-t.from!=r||M.state.sliceDoc(I,e)!=j||t.to>=n.from&&t.from<=n.to)return{range:t};let o=N.changes({from:I,to:e,insert:i.insert}),g=t.to-s.to;return{changes:o,range:D?$e.range(Math.max(0,D.anchor+g),Math.max(0,D.head+g)):t.map(o)}}))}else e={changes:u,selection:D&&N.selection.replaceRange(D)}}let u="input.type";(M.composing||M.inputState.compositionPendingChange&&M.inputState.compositionEndedAt>Date.now()-50)&&(M.inputState.compositionPendingChange=!1,u+=".compose",M.inputState.compositionFirstChange&&(u+=".start",M.inputState.compositionFirstChange=!1));return N.update(e,{userEvent:u,scrollIntoView:!0})}(M,t,e));return M.state.facet(qu).some((i=>i(M,t.from,t.to,u,D)))||M.dispatch(D()),!0}if(e&&!e.main.eq(N)){let i=!1,t="select";return M.inputState.lastSelectionTime>Date.now()-50&&("select"==M.inputState.lastSelectionOrigin&&(i=!0),t=M.inputState.lastSelectionOrigin),M.dispatch({selection:e,scrollIntoView:i,userEvent:t}),!0}return!1}const tj={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ej=tu.ie&&tu.ie_version<=11;class Nj{constructor(M){this.view=M,this.active=!1,this.selectionRange=new ks,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=M.contentDOM,this.observer=new MutationObserver((i=>{for(let M of i)this.queue.push(M);(tu.ie&&tu.ie_version<=11||tu.ios&&M.composing)&&i.some((M=>"childList"==M.type&&M.removedNodes.length||"characterData"==M.type&&M.oldValue.length>M.target.nodeValue.length))?this.flushSoon():this.flush()})),ej&&(this.onCharData=M=>{this.queue.push({target:M.target,type:"characterData",oldValue:M.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var M;(null===(M=this.view.docView)||void 0===M?void 0:M.lastUpdate)<Date.now()-75&&this.onResize()})),this.resizeScroll.observe(M.scrollDOM)),this.addWindowListeners(this.win=M.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((M=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),M.length>0&&M[M.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((M=>{M.length>0&&M[M.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(M){this.view.inputState.runHandlers("scroll",M),this.intersecting&&this.view.measure()}onScroll(M){this.intersecting&&this.flush(!1),this.onScrollChanged(M)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500)}updateGaps(M){if(this.gapIntersection&&(M.length!=this.gaps.length||this.gaps.some(((i,t)=>i!=M[t])))){this.gapIntersection.disconnect();for(let i of M)this.gapIntersection.observe(i);this.gaps=M}}onSelectionChange(M){let i=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:t}=this,e=this.selectionRange;if(t.state.facet(sD)?t.root.activeElement!=this.dom:!zs(t.dom,e))return;let N=e.anchorNode&&t.docView.nearest(e.anchorNode);N&&N.ignoreEvent(M)?i||(this.selectionChanged=!1):(tu.ie&&tu.ie_version<=11||tu.android&&tu.chrome)&&!t.state.selection.main.empty&&e.focusNode&&ds(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:M}=this,i=tu.safari&&11==M.root.nodeType&&function(M){let i=M.activeElement;for(;i&&i.shadowRoot;)i=i.shadowRoot.activeElement;return i}(this.dom.ownerDocument)==this.dom&&function(M){let i=null;function t(M){M.preventDefault(),M.stopImmediatePropagation(),i=M.getTargetRanges()[0]}if(M.contentDOM.addEventListener("beforeinput",t,!0),M.dom.ownerDocument.execCommand("indent"),M.contentDOM.removeEventListener("beforeinput",t,!0),!i)return null;let e=i.startContainer,N=i.startOffset,s=i.endContainer,u=i.endOffset,D=M.docView.domAtPos(M.state.selection.main.anchor);ds(D.node,D.offset,s,u)&&([e,N,s,u]=[s,u,e,N]);return{anchorNode:e,anchorOffset:N,focusNode:s,focusOffset:u}}(this.view)||Ls(M.root);if(!i||this.selectionRange.eq(i))return!1;let t=zs(this.dom,i);return t&&!this.selectionChanged&&M.inputState.lastFocusTime>Date.now()-200&&M.inputState.lastTouchTime<Date.now()-300&&function(M,i){let t=i.focusNode,e=i.focusOffset;if(!t||i.anchorNode!=t||i.anchorOffset!=e)return!1;for(e=Math.min(e,ws(t));;)if(e){if(1!=t.nodeType)return!1;let M=t.childNodes[e-1];"false"==M.contentEditable?e--:(t=M,e=ws(t))}else{if(t==M)return!0;e=As(t),t=t.parentNode}}(this.dom,i)?(this.view.inputState.lastFocusTime=0,M.docView.updateSelection(),!1):(this.selectionRange.setRange(i),t&&(this.selectionChanged=!0),!0)}setSelectionRange(M,i){this.selectionRange.set(M.node,M.offset,i.node,i.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let M=0,i=null;for(let t=this.dom;t;)if(1==t.nodeType)!i&&M<this.scrollTargets.length&&this.scrollTargets[M]==t?M++:i||(i=this.scrollTargets.slice(0,M)),i&&i.push(t),t=t.assignedSlot||t.parentNode;else{if(11!=t.nodeType)break;t=t.host}if(M<this.scrollTargets.length&&!i&&(i=this.scrollTargets.slice(0,M)),i){for(let M of this.scrollTargets)M.removeEventListener("scroll",this.onScroll);for(let M of this.scrollTargets=i)M.addEventListener("scroll",this.onScroll)}}ignore(M){if(!this.active)return M();try{return this.stop(),M()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,tj),ej&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),ej&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(M,i){var t;if(!this.delayedAndroidKey){let M=()=>{let M=this.delayedAndroidKey;if(M){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=M.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&M.force&&Zs(this.dom,M.key,M.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(M)}this.delayedAndroidKey&&"Enter"!=M||(this.delayedAndroidKey={key:M,keyCode:i,force:this.lastChange<Date.now()-50||!!(null===(t=this.delayedAndroidKey)||void 0===t?void 0:t.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame((()=>{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let M of this.observer.takeRecords())this.queue.push(M);return this.queue}processRecords(){let M=this.pendingRecords();M.length&&(this.queue=[]);let i=-1,t=-1,e=!1;for(let N of M){let M=this.readMutation(N);M&&(M.typeOver&&(e=!0),-1==i?({from:i,to:t}=M):(i=Math.min(M.from,i),t=Math.max(M.to,t)))}return{from:i,to:t,typeOver:e}}readChange(){let{from:M,to:i,typeOver:t}=this.processRecords(),e=this.selectionChanged&&zs(this.dom,this.selectionRange);if(M<0&&!e)return null;M>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let N=new Mj(this.view,M,i,t);return this.view.docView.domChanged={newSel:N.newSel?N.newSel.main:null},N}flush(M=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;M&&this.readSelectionRange();let i=this.readChange();if(!i)return this.view.requestMeasure(),!1;let t=this.view.state,e=ij(this.view,i);return this.view.state==t&&this.view.update([]),e}readMutation(M){let i=this.view.docView.nearest(M.target);if(!i||i.ignoreMutation(M))return null;if(i.markDirty("attributes"==M.type),"attributes"==M.type&&(i.flags|=4),"childList"==M.type){let t=sj(i,M.previousSibling||M.target.previousSibling,-1),e=sj(i,M.nextSibling||M.target.nextSibling,1);return{from:t?i.posAfter(t):i.posAtStart,to:e?i.posBefore(e):i.posAtEnd,typeOver:!1}}return"characterData"==M.type?{from:i.posAtStart,to:i.posAtEnd,typeOver:M.target.nodeValue==M.oldValue}:null}setWindow(M){M!=this.win&&(this.removeWindowListeners(this.win),this.win=M,this.addWindowListeners(this.win))}addWindowListeners(M){M.addEventListener("resize",this.onResize),M.addEventListener("beforeprint",this.onPrint),M.addEventListener("scroll",this.onScroll),M.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(M){M.removeEventListener("scroll",this.onScroll),M.removeEventListener("resize",this.onResize),M.removeEventListener("beforeprint",this.onPrint),M.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var M,i,t;this.stop(),null===(M=this.intersection)||void 0===M||M.disconnect(),null===(i=this.gapIntersection)||void 0===i||i.disconnect(),null===(t=this.resizeScroll)||void 0===t||t.disconnect();for(let M of this.scrollTargets)M.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function sj(M,i,t){for(;i;){let e=Vs.get(i);if(e&&e.parent==M)return e;let N=i.parentNode;i=N!=M.dom?N:t>0?i.nextSibling:i.previousSibling}return null}class uj{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(M={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),M.parent&&M.parent.appendChild(this.dom);let{dispatch:i}=M;this.dispatchTransactions=M.dispatchTransactions||i&&(M=>M.forEach((M=>i(M,this))))||(M=>this.update(M)),this.dispatch=this.dispatch.bind(this),this._root=M.root||function(M){for(;M;){if(M&&(9==M.nodeType||11==M.nodeType&&M.host))return M;M=M.assignedSlot||M.parentNode}return null}(M.parent)||document,this.viewState=new Un(M.state||vN.create(M)),M.scrollTo&&M.scrollTo.is(eD)&&(this.viewState.scrollTarget=M.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(DD).map((M=>new jD(M)));for(let M of this.plugins)M.update(this);this.observer=new Nj(this),this.inputState=new VD(this),this.inputState.ensureHandlers(this.plugins),this.docView=new yD(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...M){let i=1==M.length&&M[0]instanceof kN?M:1==M.length&&Array.isArray(M[0])?M[0]:[this.state.update(...M)];this.dispatchTransactions(i,this)}update(M){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i,t=!1,e=!1,N=this.state;for(let i of M){if(i.startState!=N)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");N=i.state}if(this.destroyed)return void(this.viewState.state=N);let s=this.hasFocus,u=0,D=null;M.some((M=>M.annotation(ln)))?(this.inputState.notifiedFocused=s,u=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,D=rn(N,s),D||(u=1));let n=this.observer.delayedAndroidKey,j=null;if(n?(this.observer.clearDelayedAndroidKey(),j=this.observer.readChange(),(j&&!this.state.doc.eq(N.doc)||!this.state.selection.eq(N.selection))&&(j=null)):this.observer.clear(),N.facet(vN.phrases)!=this.state.facet(vN.phrases))return this.setState(N);i=zD.create(this,N,M),i.flags|=u;let I=this.viewState.scrollTarget;try{this.updateState=2;for(let i of M){if(I&&(I=I.map(i.changes)),i.scrollIntoView){let{main:M}=i.state.selection;I=new tD(M.empty?M:$e.cursor(M.head,M.head>M.anchor?-1:1))}for(let M of i.effects)M.is(eD)&&(I=M.value.clip(this.state))}this.viewState.update(i,I),this.bidiCache=jj.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(LD)!=this.styleModules&&this.mountStyles(),e=this.updateAttrs(),this.showAnnouncements(M),this.docView.updateSelection(t,M.some((M=>M.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(i.startState.facet(vn)!=i.state.facet(vn)&&(this.viewState.mustMeasureContent=!0),(t||e||I||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!i.empty)for(let M of this.state.facet(_u))try{M(i)}catch(M){ND(this.state,M,"update listener")}(D||j)&&Promise.resolve().then((()=>{D&&this.state==D.startState&&this.dispatch(D),j&&!ij(this,j)&&n.force&&Zs(this.contentDOM,n.key,n.keyCode)}))}setState(M){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=M);this.updateState=2;let i=this.hasFocus;try{for(let M of this.plugins)M.destroy(this);this.viewState=new Un(M),this.plugins=M.facet(DD).map((M=>new jD(M))),this.pluginMap.clear();for(let M of this.plugins)M.update(this);this.docView.destroy(),this.docView=new yD(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(M){let i=M.startState.facet(DD),t=M.state.facet(DD);if(i!=t){let e=[];for(let N of t){let t=i.indexOf(N);if(t<0)e.push(new jD(N));else{let i=this.plugins[t];i.mustUpdate=M,e.push(i)}}for(let i of this.plugins)i.mustUpdate!=M&&i.destroy(this);this.plugins=e,this.pluginMap.clear()}else for(let i of this.plugins)i.mustUpdate=M;for(let M=0;M<this.plugins.length;M++)this.plugins[M].update(this);i!=t&&this.inputState.ensureHandlers(this.plugins)}measure(M=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,M&&this.observer.forceFlush();let i=null,t=this.scrollDOM,e=t.scrollTop*this.scaleY,{scrollAnchorPos:N,scrollAnchorHeight:s}=this.viewState;Math.abs(e-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let M=0;;M++){if(s<0)if(Ys(t))N=-1,s=this.viewState.heightMap.height;else{let M=this.viewState.scrollAnchorAt(e);N=M.from,s=M.top}this.updateState=1;let u=this.viewState.measure(this);if(!u&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(M>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let D=[];4&u||([this.measureRequests,D]=[D,this.measureRequests]);let n=D.map((M=>{try{return M.read(this)}catch(M){return ND(this.state,M),nj}})),j=zD.create(this,this.state,[]),I=!1;j.flags|=u,i?i.flags|=u:i=j,this.updateState=2,j.empty||(this.updatePlugins(j),this.inputState.update(j),this.updateAttrs(),I=this.docView.update(j));for(let M=0;M<D.length;M++)if(n[M]!=nj)try{let i=D[M];i.write&&i.write(n[M],this)}catch(M){ND(this.state,M)}if(I&&this.docView.updateSelection(!0),!j.viewportChanged&&0==this.measureRequests.length){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,s=-1;continue}{let M=(N<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(N).top)-s;if(M>1||M<-1){e+=M,t.scrollTop=e/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let M of this.state.facet(_u))M(i)}get themeClasses(){return Pn+" "+(this.state.facet(Gn)?Bn:Rn)+" "+this.state.facet(vn)}updateAttrs(){let M=Ij(this,ID,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(sD)?"true":"false",class:"cm-content",style:`${tu.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),Ij(this,lD,i);let t=this.observer.ignore((()=>{let t=ou(this.contentDOM,this.contentAttrs,i),e=ou(this.dom,this.editorAttrs,M);return t||e}));return this.editorAttrs=M,this.contentAttrs=i,t}showAnnouncements(M){let i=!0;for(let t of M)for(let M of t.effects)if(M.is(uj.announce)){i&&(this.announceDOM.textContent=""),i=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=M.value}}mountStyles(){this.styleModules=this.state.facet(LD);let M=this.state.facet(uj.cspNonce);Is.mount(this.root,this.styleModules.concat(Jn).reverse(),M?{nonce:M}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(M){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),M){if(this.measureRequests.indexOf(M)>-1)return;if(null!=M.key)for(let i=0;i<this.measureRequests.length;i++)if(this.measureRequests[i].key===M.key)return void(this.measureRequests[i]=M);this.measureRequests.push(M)}}plugin(M){let i=this.pluginMap.get(M);return(void 0===i||i&&i.spec!=M)&&this.pluginMap.set(M,i=this.plugins.find((i=>i.spec==M))||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(M){return this.readMeasured(),this.viewState.elementAtHeight(M)}lineBlockAtHeight(M){return this.readMeasured(),this.viewState.lineBlockAtHeight(M)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(M){return this.viewState.lineBlockAt(M)}get contentHeight(){return this.viewState.contentHeight}moveByChar(M,i,t){return WD(this,M,YD(this,M,i,t))}moveByGroup(M,i){return WD(this,M,YD(this,M,i,(i=>function(M,i,t){let e=M.state.charCategorizer(i),N=e(t);return M=>{let i=e(M);return N==YN.Space&&(N=i),N==i}}(this,M.head,i))))}visualLineSide(M,i){let t=this.bidiSpans(M),e=this.textDirectionAt(M.from),N=t[i?t.length-1:0];return $e.cursor(N.side(i,e)+M.from,N.forward(!i,e)?1:-1)}moveToLineBoundary(M,i,t=!0){return function(M,i,t,e){let N=mD(M,i.head),s=e&&N.type==Tu.Text&&(M.lineWrapping||N.widgetLineBreaks)?M.coordsAtPos(i.assoc<0&&i.head>N.from?i.head-1:i.head):null;if(s){let i=M.dom.getBoundingClientRect(),e=M.textDirectionAt(N.from),u=M.posAtCoords({x:t==(e==Eu.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(null!=u)return $e.cursor(u,t?-1:1)}return $e.cursor(t?N.to:N.from,t?-1:1)}(this,M,i,t)}moveVertically(M,i,t){return WD(this,M,function(M,i,t,e){let N=i.head,s=t?1:-1;if(N==(t?M.state.doc.length:0))return $e.cursor(N,i.assoc);let u,D=i.goalColumn,n=M.contentDOM.getBoundingClientRect(),j=M.coordsAtPos(N,i.assoc||-1),I=M.documentTop;if(j)null==D&&(D=j.left-n.left),u=s<0?j.top:j.bottom;else{let i=M.viewState.lineBlockAt(N);null==D&&(D=Math.min(n.right-n.left,M.defaultCharacterWidth*(N-i.from))),u=(s<0?i.top:i.bottom)+I}let l=n.left+D,r=null!=e?e:M.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let t=u+(r+i)*s,e=bD(M,{x:l,y:t},!1,s);if(t<n.top||t>n.bottom||(s<0?e<N:e>N)){let i=M.docView.coordsForChar(e),N=!i||t<i.top?-1:1;return $e.cursor(e,N,void 0,D)}}}(this,M,i,t))}domAtPos(M){return this.docView.domAtPos(M)}posAtDOM(M,i=0){return this.docView.posFromDOM(M,i)}posAtCoords(M,i=!0){return this.readMeasured(),bD(this,M,i)}coordsAtPos(M,i=1){this.readMeasured();let t=this.docView.coordsAt(M,i);if(!t||t.left==t.right)return t;let e=this.state.doc.lineAt(M),N=this.bidiSpans(e);return Ss(t,N[fu.find(N,M-e.from,-1,i)].dir==Eu.LTR==i>0)}coordsForChar(M){return this.readMeasured(),this.docView.coordsForChar(M)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(M){return!this.state.facet(MD)||M<this.viewport.from||M>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(M))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(M){if(M.length>Dj)return Pu(M.length);let i,t=this.textDirectionAt(M.from);for(let e of this.bidiCache)if(e.from==M.from&&e.dir==t&&(e.fresh||Wu(e.isolates,i=aD(this,M))))return e.order;i||(i=aD(this,M));let e=function(M,i,t){if(!M)return[new fu(0,0,i==ku?1:0)];if(i==Qu&&!t.length&&!Yu.test(M))return Pu(M.length);if(t.length)for(;M.length>Vu.length;)Vu[Vu.length]=256;let e=[],N=i==Qu?0:1;return Gu(M,N,N,t,0,M.length,e),e}(M.text,t,i);return this.bidiCache.push(new jj(M.from,M.to,t,i,!0,e)),e}get hasFocus(){var M;return(this.dom.ownerDocument.hasFocus()||tu.safari&&(null===(M=this.inputState)||void 0===M?void 0:M.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{Us(this.contentDOM),this.docView.updateSelection()}))}setRoot(M){this._root!=M&&(this._root=M,this.observer.setWindow((9==M.nodeType?M:M.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let M of this.plugins)M.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(M,i={}){return eD.of(new tD("number"==typeof M?$e.cursor(M):M,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:M,scrollLeft:i}=this.scrollDOM,t=this.viewState.scrollAnchorAt(M);return eD.of(new tD($e.cursor(t.from),"start","start",t.top-M,i,!0))}static domEventHandlers(M){return nD.define((()=>({})),{eventHandlers:M})}static domEventObservers(M){return nD.define((()=>({})),{eventObservers:M})}static theme(M,i){let t=Is.newName(),e=[vn.of(t),LD.of(Xn(`.${t}`,M))];return i&&i.dark&&e.push(Gn.of(!0)),e}static baseTheme(M){return rN.lowest(LD.of(Xn("."+Pn,M,Fn)))}static findFromDOM(M){var i;let t=M.querySelector(".cm-content"),e=t&&Vs.get(t)||Vs.get(M);return(null===(i=null==e?void 0:e.rootView)||void 0===i?void 0:i.view)||null}}uj.styleModule=LD,uj.inputHandler=qu,uj.focusChangeEffect=Ku,uj.perLineTextDirection=MD,uj.exceptionSink=$u,uj.updateListener=_u,uj.editable=sD,uj.mouseSelectionStyle=Hu,uj.dragMovesSelection=Ju,uj.clickAddsSelectionRange=Xu,uj.decorations=rD,uj.outerDecorations=oD,uj.atomicRanges=gD,uj.bidiIsolatedRanges=cD,uj.scrollMargins=OD,uj.darkTheme=Gn,uj.cspNonce=Ke.define({combine:M=>M.length?M[0]:""}),uj.contentAttributes=lD,uj.editorAttributes=ID,uj.lineWrapping=uj.contentAttributes.of({class:"cm-lineWrapping"}),uj.announce=QN.define();const Dj=4096,nj={};class jj{constructor(M,i,t,e,N,s){this.from=M,this.to=i,this.dir=t,this.isolates=e,this.fresh=N,this.order=s}static update(M,i){if(i.empty&&!M.some((M=>M.fresh)))return M;let t=[],e=M.length?M[M.length-1].dir:Eu.LTR;for(let N=Math.max(0,M.length-10);N<M.length;N++){let s=M[N];s.dir!=e||i.touchesRange(s.from,s.to)||t.push(new jj(i.mapPos(s.from,1),i.mapPos(s.to,-1),s.dir,s.isolates,!1,s.order))}return t}}function Ij(M,i,t){for(let e=M.state.facet(i),N=e.length-1;N>=0;N--){let i=e[N],s="function"==typeof i?i(M):i;s&&Iu(s,t)}return t}const lj=tu.mac?"mac":tu.windows?"win":tu.linux?"linux":"key";function rj(M,i,t){return i.altKey&&(M="Alt-"+M),i.ctrlKey&&(M="Ctrl-"+M),i.metaKey&&(M="Meta-"+M),!1!==t&&i.shiftKey&&(M="Shift-"+M),M}const oj=rN.default(uj.domEventHandlers({keydown:(M,i)=>Lj(aj(i.state),M,i,"editor")})),gj=Ke.define({enables:oj}),cj=new WeakMap;function aj(M){let i=M.facet(gj),t=cj.get(i);return t||cj.set(i,t=function(M,i=lj){let t=Object.create(null),e=Object.create(null),N=(M,i)=>{let t=e[M];if(null==t)e[M]=i;else if(t!=i)throw new Error("Key binding "+M+" is used both as a regular binding and as a multi-stroke prefix")},s=(M,e,s,u,D)=>{var n,j;let I=t[M]||(t[M]=Object.create(null)),l=e.split(/ (?!$)/).map((M=>function(M,i){const t=M.split(/-(?!$)/);let e,N,s,u,D=t[t.length-1];"Space"==D&&(D=" ");for(let M=0;M<t.length-1;++M){const D=t[M];if(/^(cmd|meta|m)$/i.test(D))u=!0;else if(/^a(lt)?$/i.test(D))e=!0;else if(/^(c|ctrl|control)$/i.test(D))N=!0;else if(/^s(hift)?$/i.test(D))s=!0;else{if(!/^mod$/i.test(D))throw new Error("Unrecognized modifier name: "+D);"mac"==i?u=!0:N=!0}}return e&&(D="Alt-"+D),N&&(D="Ctrl-"+D),u&&(D="Meta-"+D),s&&(D="Shift-"+D),D}(M,i)));for(let i=1;i<l.length;i++){let t=l.slice(0,i).join(" ");N(t,!0),I[t]||(I[t]={preventDefault:!0,stopPropagation:!1,run:[i=>{let e=Oj={view:i,prefix:t,scope:M};return setTimeout((()=>{Oj==e&&(Oj=null)}),Tj),!0}]})}let r=l.join(" ");N(r,!1);let o=I[r]||(I[r]={preventDefault:!1,stopPropagation:!1,run:(null===(j=null===(n=I._any)||void 0===n?void 0:n.run)||void 0===j?void 0:j.slice())||[]});s&&o.run.push(s),u&&(o.preventDefault=!0),D&&(o.stopPropagation=!0)};for(let e of M){let M=e.scope?e.scope.split(" "):["editor"];if(e.any)for(let i of M){let M=t[i]||(t[i]=Object.create(null));M._any||(M._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let i in M)M[i].run.push(e.any)}let N=e[i]||e.key;if(N)for(let i of M)s(i,N,e.run,e.preventDefault,e.stopPropagation),e.shift&&s(i,"Shift-"+N,e.shift,e.preventDefault,e.stopPropagation)}return t}(i.reduce(((M,i)=>M.concat(i)),[]))),t}let Oj=null;const Tj=4e3;function Lj(M,i,t,e){let N=function(M){var i=!(cs&&M.metaKey&&M.shiftKey&&!M.ctrlKey&&!M.altKey||as&&M.shiftKey&&M.key&&1==M.key.length||"Unidentified"==M.key)&&M.key||(M.shiftKey?gs:os)[M.keyCode]||M.key||"Unidentified";return"Esc"==i&&(i="Escape"),"Del"==i&&(i="Delete"),"Left"==i&&(i="ArrowLeft"),"Up"==i&&(i="ArrowUp"),"Right"==i&&(i="ArrowRight"),"Down"==i&&(i="ArrowDown"),i}(i),s=fe(me(N,0))==N.length&&" "!=N,u="",D=!1,n=!1,j=!1;Oj&&Oj.view==t&&Oj.scope==e&&(u=Oj.prefix+" ",BD.indexOf(i.keyCode)<0&&(n=!0,Oj=null));let I,l,r=new Set,o=M=>{if(M){for(let e of M.run)if(!r.has(e)&&(r.add(e),e(t,i)))return M.stopPropagation&&(j=!0),!0;M.preventDefault&&(M.stopPropagation&&(j=!0),n=!0)}return!1},g=M[e];return g&&(o(g[u+rj(N,i,!s)])?D=!0:s&&(i.altKey||i.metaKey||i.ctrlKey)&&!(tu.windows&&i.ctrlKey&&i.altKey)&&(I=os[i.keyCode])&&I!=N?(o(g[u+rj(I,i,!0)])||i.shiftKey&&(l=gs[i.keyCode])!=N&&l!=I&&o(g[u+rj(l,i,!1)]))&&(D=!0):s&&i.shiftKey&&o(g[u+rj(N,i,!0)])&&(D=!0),!D&&o(g._any)&&(D=!0)),n&&(D=!0),D&&j&&i.stopPropagation(),D}class hj{constructor(M,i,t,e,N){this.className=M,this.left=i,this.top=t,this.width=e,this.height=N}draw(){let M=document.createElement("div");return M.className=this.className,this.adjust(M),M}update(M,i){return i.className==this.className&&(this.adjust(M),!0)}adjust(M){M.style.left=this.left+"px",M.style.top=this.top+"px",null!=this.width&&(M.style.width=this.width+"px"),M.style.height=this.height+"px"}eq(M){return this.left==M.left&&this.top==M.top&&this.width==M.width&&this.height==M.height&&this.className==M.className}static forRange(M,i,t){if(t.empty){let e=M.coordsAtPos(t.head,t.assoc||1);if(!e)return[];let N=zj(M);return[new hj(i,e.left-N.left,e.top-N.top,null,e.bottom-e.top)]}return function(M,i,t){if(t.to<=M.viewport.from||t.from>=M.viewport.to)return[];let e=Math.max(t.from,M.viewport.from),N=Math.min(t.to,M.viewport.to),s=M.textDirection==Eu.LTR,u=M.contentDOM,D=u.getBoundingClientRect(),n=zj(M),j=u.querySelector(".cm-line"),I=j&&window.getComputedStyle(j),l=D.left+(I?parseInt(I.paddingLeft)+Math.min(0,parseInt(I.textIndent)):0),r=D.right-(I?parseInt(I.paddingRight):0),o=mD(M,e),g=mD(M,N),c=o.type==Tu.Text?o:null,a=g.type==Tu.Text?g:null;c&&(M.lineWrapping||o.widgetLineBreaks)&&(c=yj(M,e,c));a&&(M.lineWrapping||g.widgetLineBreaks)&&(a=yj(M,N,a));if(c&&a&&c.from==a.from)return T(L(t.from,t.to,c));{let i=c?L(t.from,null,c):h(o,!1),e=a?L(null,t.to,a):h(g,!0),N=[];return(c||o).to<(a||g).from-(c&&a?1:0)||o.widgetLineBreaks>1&&i.bottom+M.defaultLineHeight/2<e.top?N.push(O(l,i.bottom,r,e.top)):i.bottom<e.top&&M.elementAtHeight((i.bottom+e.top)/2).type==Tu.Text&&(i.bottom=e.top=(i.bottom+e.top)/2),T(i).concat(N).concat(T(e))}function O(M,t,e,N){return new hj(i,M-n.left,t-n.top-.01,e-M,N-t+.01)}function T({top:M,bottom:i,horizontal:t}){let e=[];for(let N=0;N<t.length;N+=2)e.push(O(t[N],M,t[N+1],i));return e}function L(i,t,e){let N=1e9,u=-1e9,D=[];function n(i,t,n,j,I){let o=M.coordsAtPos(i,i==e.to?-2:2),g=M.coordsAtPos(n,n==e.from?2:-2);o&&g&&(N=Math.min(o.top,g.top,N),u=Math.max(o.bottom,g.bottom,u),I==Eu.LTR?D.push(s&&t?l:o.left,s&&j?r:g.right):D.push(!s&&j?l:g.left,!s&&t?r:o.right))}let j=null!=i?i:e.from,I=null!=t?t:e.to;for(let e of M.visibleRanges)if(e.to>j&&e.from<I)for(let N=Math.max(e.from,j),s=Math.min(e.to,I);;){let e=M.state.doc.lineAt(N);for(let u of M.bidiSpans(e)){let M=u.from+e.from,D=u.to+e.from;if(M>=s)break;D>N&&n(Math.max(M,N),null==i&&M<=j,Math.min(D,s),null==t&&D>=I,u.dir)}if(N=e.to+1,N>=s)break}return 0==D.length&&n(j,null==i,I,null==t,M.textDirection),{top:N,bottom:u,horizontal:D}}function h(M,i){let t=D.top+(i?M.top:M.bottom);return{top:t,bottom:t,horizontal:[]}}}(M,i,t)}}function zj(M){let i=M.scrollDOM.getBoundingClientRect();return{left:(M.textDirection==Eu.LTR?i.left:i.right-M.scrollDOM.clientWidth*M.scaleX)-M.scrollDOM.scrollLeft*M.scaleX,top:i.top-M.scrollDOM.scrollTop*M.scaleY}}function yj(M,i,t){let e=$e.cursor(i);return{from:Math.max(t.from,M.moveToLineBoundary(e,!1,!0).from),to:Math.min(t.to,M.moveToLineBoundary(e,!0,!0).from),type:Tu.Text}}class dj{constructor(M,i){this.view=M,this.layer=i,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=M.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),i.above&&this.dom.classList.add("cm-layer-above"),i.class&&this.dom.classList.add(i.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(M.state),M.requestMeasure(this.measureReq),i.mount&&i.mount(this.dom,M)}update(M){M.startState.facet(Aj)!=M.state.facet(Aj)&&this.setOrder(M.state),(this.layer.update(M,this.dom)||M.geometryChanged)&&(this.scale(),M.view.requestMeasure(this.measureReq))}setOrder(M){let i=0,t=M.facet(Aj);for(;i<t.length&&t[i]!=this.layer;)i++;this.dom.style.zIndex=String((this.layer.above?150:-1)-i)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:M,scaleY:i}=this.view;M==this.scaleX&&i==this.scaleY||(this.scaleX=M,this.scaleY=i,this.dom.style.transform=`scale(${1/M}, ${1/i})`)}draw(M){if(M.length!=this.drawn.length||M.some(((M,i)=>!function(M,i){return M.constructor==i.constructor&&M.eq(i)}(M,this.drawn[i])))){let i=this.dom.firstChild,t=0;for(let e of M)e.update&&i&&e.constructor&&this.drawn[t].constructor&&e.update(i,this.drawn[t])?(i=i.nextSibling,t++):this.dom.insertBefore(e.draw(),i);for(;i;){let M=i.nextSibling;i.remove(),i=M}this.drawn=M}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Aj=Ke.define();function xj(M){return[nD.define((i=>new dj(i,M))),Aj.of(M)]}const wj=!tu.ios,Sj=Ke.define({combine:M=>GN(M,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(M,i)=>Math.min(M,i),drawRangeCursor:(M,i)=>M||i})});function Ej(M){return M.startState.facet(Sj)!=M.state.facet(Sj)}const Qj=xj({above:!0,markers(M){let{state:i}=M,t=i.facet(Sj),e=[];for(let N of i.selection.ranges){let s=N==i.selection.main;if(N.empty?!s||wj:t.drawRangeCursor){let i=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",t=N.empty?N:$e.cursor(N.head,N.head>N.anchor?-1:1);for(let N of hj.forRange(M,i,t))e.push(N)}}return e},update(M,i){M.transactions.some((M=>M.selection))&&(i.style.animationName="cm-blink"==i.style.animationName?"cm-blink2":"cm-blink");let t=Ej(M);return t&&kj(M.state,i),M.docChanged||M.selectionSet||t},mount(M,i){kj(i.state,M)},class:"cm-cursorLayer"});function kj(M,i){i.style.animationDuration=M.facet(Sj).cursorBlinkRate+"ms"}const Cj=xj({above:!1,markers:M=>M.state.selection.ranges.map((i=>i.empty?[]:hj.forRange(M,"cm-selectionBackground",i))).reduce(((M,i)=>M.concat(i))),update:(M,i)=>M.docChanged||M.selectionSet||M.viewportChanged||Ej(M),class:"cm-selectionLayer"}),pj={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};wj&&(pj[".cm-line"].caretColor="transparent !important",pj[".cm-content"]={caretColor:"transparent !important"});const Uj=rN.highest(uj.theme(pj)),bj=QN.define({map:(M,i)=>null==M?null:i.mapPos(M)}),Zj=uN.define({create:()=>null,update:(M,i)=>(null!=M&&(M=i.changes.mapPos(M)),i.effects.reduce(((M,i)=>i.is(bj)?i.value:M),M))}),mj=nD.fromClass(class{constructor(M){this.view=M,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(M){var i;let t=M.state.field(Zj);null==t?null!=this.cursor&&(null===(i=this.cursor)||void 0===i||i.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(M.startState.field(Zj)!=t||M.docChanged||M.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:M}=this,i=M.state.field(Zj),t=null!=i&&M.coordsAtPos(i);if(!t)return null;let e=M.scrollDOM.getBoundingClientRect();return{left:t.left-e.left+M.scrollDOM.scrollLeft*M.scaleX,top:t.top-e.top+M.scrollDOM.scrollTop*M.scaleY,height:t.bottom-t.top}}drawCursor(M){if(this.cursor){let{scaleX:i,scaleY:t}=this.view;M?(this.cursor.style.left=M.left/i+"px",this.cursor.style.top=M.top/t+"px",this.cursor.style.height=M.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(M){this.view.state.field(Zj)!=M&&this.view.dispatch({effects:bj.of(M)})}},{eventObservers:{dragover(M){this.setDropPos(this.view.posAtCoords({x:M.clientX,y:M.clientY}))},dragleave(M){M.target!=this.view.contentDOM&&this.view.contentDOM.contains(M.relatedTarget)||this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Yj(M,i,t,e,N){i.lastIndex=0;for(let s,u=M.iterRange(t,e),D=t;!u.next().done;D+=u.value.length)if(!u.lineBreak)for(;s=i.exec(u.value);)N(D+s.index,s)}class fj{constructor(M){const{regexp:i,decoration:t,decorate:e,boundary:N,maxLength:s=1e3}=M;if(!i.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=i,e)this.addMatch=(M,i,t,N)=>e(N,t,t+M[0].length,M,i);else if("function"==typeof t)this.addMatch=(M,i,e,N)=>{let s=t(M,i,e);s&&N(e,e+M[0].length,s)};else{if(!t)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(M,i,e,N)=>N(e,e+M[0].length,t)}this.boundary=N,this.maxLength=s}createDeco(M){let i=new JN,t=i.add.bind(i);for(let{from:i,to:e}of function(M,i){let t=M.visibleRanges;if(1==t.length&&t[0].from==M.viewport.from&&t[0].to==M.viewport.to)return t;let e=[];for(let{from:N,to:s}of t)N=Math.max(M.state.doc.lineAt(N).from,N-i),s=Math.min(M.state.doc.lineAt(s).to,s+i),e.length&&e[e.length-1].to>=N?e[e.length-1].to=s:e.push({from:N,to:s});return e}(M,this.maxLength))Yj(M.state.doc,this.regexp,i,e,((i,e)=>this.addMatch(e,M,i,t)));return i.finish()}updateDeco(M,i){let t=1e9,e=-1;return M.docChanged&&M.changes.iterChanges(((i,N,s,u)=>{u>M.view.viewport.from&&s<M.view.viewport.to&&(t=Math.min(s,t),e=Math.max(u,e))})),M.viewportChanged||e-t>1e3?this.createDeco(M.view):e>-1?this.updateRange(M.view,i.map(M.changes),t,e):i}updateRange(M,i,t,e){for(let N of M.visibleRanges){let s=Math.max(N.from,t),u=Math.min(N.to,e);if(u>s){let t=M.state.doc.lineAt(s),e=t.to<u?M.state.doc.lineAt(u):t,D=Math.max(N.from,t.from),n=Math.min(N.to,e.to);if(this.boundary){for(;s>t.from;s--)if(this.boundary.test(t.text[s-1-t.from])){D=s;break}for(;u<e.to;u++)if(this.boundary.test(e.text[u-e.from])){n=u;break}}let j,I=[],l=(M,i,t)=>I.push(t.range(M,i));if(t==e)for(this.regexp.lastIndex=D-t.from;(j=this.regexp.exec(t.text))&&j.index<n-t.from;)this.addMatch(j,M,j.index+t.from,l);else Yj(M.state.doc,this.regexp,D,n,((i,t)=>this.addMatch(t,M,i,l)));i=i.update({filterFrom:D,filterTo:n,filter:(M,i)=>M<D||i>n,add:I})}}return i}}const Wj=null!=/x/.unicode?"gu":"g",Vj=new RegExp("[\0-\b\n--\u2028\u2029\ufeff-]",Wj),vj={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Gj=null;const Pj=Ke.define({combine(M){let i=GN(M,{render:null,specialChars:Vj,addSpecialChars:null});return(i.replaceTabs=!function(){var M;if(null==Gj&&"undefined"!=typeof document&&document.body){let i=document.body.style;Gj=null!=(null!==(M=i.tabSize)&&void 0!==M?M:i.MozTabSize)}return Gj||!1}())&&(i.specialChars=new RegExp("\t|"+i.specialChars.source,Wj)),i.addSpecialChars&&(i.specialChars=new RegExp(i.specialChars.source+"|"+i.addSpecialChars.source,Wj)),i}});let Rj=null;class Bj extends Ou{constructor(M,i){super(),this.options=M,this.code=i}eq(M){return M.code==this.code}toDOM(M){let i=function(M){return M>=32?"•":10==M?"":String.fromCharCode(9216+M)}(this.code),t=M.state.phrase("Control character")+" "+(vj[this.code]||"0x"+this.code.toString(16)),e=this.options.render&&this.options.render(this.code,t,i);if(e)return e;let N=document.createElement("span");return N.textContent=i,N.title=t,N.setAttribute("aria-label",t),N.className="cm-specialChar",N}ignoreEvent(){return!1}}class Fj extends Ou{constructor(M){super(),this.width=M}eq(M){return M.width==this.width}toDOM(){let M=document.createElement("span");return M.textContent="\t",M.className="cm-tab",M.style.width=this.width+"px",M}ignoreEvent(){return!1}}const Xj=Lu.line({class:"cm-activeLine"}),Jj=nD.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.docChanged||M.selectionSet)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let i=-1,t=[];for(let e of M.state.selection.ranges){let N=M.lineBlockAt(e.head);N.from>i&&(t.push(Xj.range(N.from)),i=N.from)}return Lu.set(t)}},{decorations:M=>M.decorations}),Hj=2e3;function $j(M,i){let t=M.posAtCoords({x:i.clientX,y:i.clientY},!1),e=M.state.doc.lineAt(t),N=t-e.from,s=N>Hj?-1:N==e.length?function(M,i){let t=M.coordsAtPos(M.viewport.from);return t?Math.round(Math.abs((t.left-i)/M.defaultCharacterWidth)):-1}(M,i.clientX):ss(e.text,M.state.tabSize,t-e.from);return{line:e.number,col:s,off:N}}function _j(M,i){let t=$j(M,i),e=M.state.selection;return t?{update(M){if(M.docChanged){let i=M.changes.mapPos(M.startState.doc.line(t.line).from),N=M.state.doc.lineAt(i);t={line:N.number,col:t.col,off:Math.min(t.off,N.length)},e=e.map(M.changes)}},get(i,N,s){let u=$j(M,i);if(!u)return e;let D=function(M,i,t){let e=Math.min(i.line,t.line),N=Math.max(i.line,t.line),s=[];if(i.off>Hj||t.off>Hj||i.col<0||t.col<0){let u=Math.min(i.off,t.off),D=Math.max(i.off,t.off);for(let i=e;i<=N;i++){let t=M.doc.line(i);t.length<=D&&s.push($e.range(t.from+u,t.to+D))}}else{let u=Math.min(i.col,t.col),D=Math.max(i.col,t.col);for(let i=e;i<=N;i++){let t=M.doc.line(i),e=us(t.text,u,M.tabSize,!0);if(e<0)s.push($e.cursor(t.to));else{let i=us(t.text,D,M.tabSize);s.push($e.range(t.from+e,t.from+i))}}}return s}(M.state,t,u);return D.length?s?$e.create(D.concat(e.ranges)):$e.create(D):e}}:null}const qj={Alt:[18,M=>!!M.altKey],Control:[17,M=>!!M.ctrlKey],Shift:[16,M=>!!M.shiftKey],Meta:[91,M=>!!M.metaKey]},Kj={style:"cursor: crosshair"};const MI="-10000px";class iI{constructor(M,i,t){this.facet=i,this.createTooltipView=t,this.input=M.state.facet(i),this.tooltips=this.input.filter((M=>M)),this.tooltipViews=this.tooltips.map(t)}update(M,i){var t;let e=M.state.facet(this.facet),N=e.filter((M=>M));if(e===this.input){for(let i of this.tooltipViews)i.update&&i.update(M);return!1}let s=[],u=i?[]:null;for(let t=0;t<N.length;t++){let e=N[t],D=-1;if(e){for(let M=0;M<this.tooltips.length;M++){let i=this.tooltips[M];i&&i.create==e.create&&(D=M)}if(D<0)s[t]=this.createTooltipView(e),u&&(u[t]=!!e.above);else{let e=s[t]=this.tooltipViews[D];u&&(u[t]=i[D]),e.update&&e.update(M)}}}for(let M of this.tooltipViews)s.indexOf(M)<0&&(M.dom.remove(),null===(t=M.destroy)||void 0===t||t.call(M));return i&&(u.forEach(((M,t)=>i[t]=M)),i.length=u.length),this.input=e,this.tooltips=N,this.tooltipViews=s,!0}}function tI(M){let{win:i}=M;return{top:0,left:0,bottom:i.innerHeight,right:i.innerWidth}}const eI=Ke.define({combine:M=>{var i,t,e;return{position:tu.ios?"absolute":(null===(i=M.find((M=>M.position)))||void 0===i?void 0:i.position)||"fixed",parent:(null===(t=M.find((M=>M.parent)))||void 0===t?void 0:t.parent)||null,tooltipSpace:(null===(e=M.find((M=>M.tooltipSpace)))||void 0===e?void 0:e.tooltipSpace)||tI}}}),NI=new WeakMap,sI=nD.fromClass(class{constructor(M){this.view=M,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let i=M.state.facet(eI);this.position=i.position,this.parent=i.parent,this.classes=M.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new iI(M,nI,(M=>this.createTooltip(M))),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((M=>{Date.now()>this.lastTransaction-50&&M.length>0&&M[M.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),M.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let M of this.manager.tooltipViews)this.intersectionObserver.observe(M.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(M){M.transactions.length&&(this.lastTransaction=Date.now());let i=this.manager.update(M,this.above);i&&this.observeIntersection();let t=i||M.geometryChanged,e=M.state.facet(eI);if(e.position!=this.position&&!this.madeAbsolute){this.position=e.position;for(let M of this.manager.tooltipViews)M.dom.style.position=this.position;t=!0}if(e.parent!=this.parent){this.parent&&this.container.remove(),this.parent=e.parent,this.createContainer();for(let M of this.manager.tooltipViews)this.container.appendChild(M.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(M){let i=M.create(this.view);if(i.dom.classList.add("cm-tooltip"),M.arrow&&!i.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let M=document.createElement("div");M.className="cm-tooltip-arrow",i.dom.appendChild(M)}return i.dom.style.position=this.position,i.dom.style.top=MI,i.dom.style.left="0px",this.container.appendChild(i.dom),i.mount&&i.mount(this.view),i}destroy(){var M,i;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),null===(M=i.destroy)||void 0===M||M.call(i);this.parent&&this.container.remove(),null===(i=this.intersectionObserver)||void 0===i||i.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let M=this.view.dom.getBoundingClientRect(),i=1,t=1,e=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:M}=this.manager.tooltipViews[0];if(tu.gecko)e=M.offsetParent!=this.container.ownerDocument.body;else if(M.style.top==MI&&"0px"==M.style.left){let i=M.getBoundingClientRect();e=Math.abs(i.top+1e4)>1||Math.abs(i.left)>1}}if(e||"absolute"==this.position)if(this.parent){let M=this.parent.getBoundingClientRect();M.width&&M.height&&(i=M.width/this.parent.offsetWidth,t=M.height/this.parent.offsetHeight)}else({scaleX:i,scaleY:t}=this.view.viewState);return{editor:M,parent:this.parent?this.container.getBoundingClientRect():M,pos:this.manager.tooltips.map(((M,i)=>{let t=this.manager.tooltipViews[i];return t.getCoords?t.getCoords(M.pos):this.view.coordsAtPos(M.pos)})),size:this.manager.tooltipViews.map((({dom:M})=>M.getBoundingClientRect())),space:this.view.state.facet(eI).tooltipSpace(this.view),scaleX:i,scaleY:t,makeAbsolute:e}}writeMeasure(M){var i;if(M.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let M of this.manager.tooltipViews)M.dom.style.position="absolute"}let{editor:t,space:e,scaleX:N,scaleY:s}=M,u=[];for(let D=0;D<this.manager.tooltips.length;D++){let n=this.manager.tooltips[D],j=this.manager.tooltipViews[D],{dom:I}=j,l=M.pos[D],r=M.size[D];if(!l||l.bottom<=Math.max(t.top,e.top)||l.top>=Math.min(t.bottom,e.bottom)||l.right<Math.max(t.left,e.left)-.1||l.left>Math.min(t.right,e.right)+.1){I.style.top=MI;continue}let o=n.arrow?j.dom.querySelector(".cm-tooltip-arrow"):null,g=o?7:0,c=r.right-r.left,a=null!==(i=NI.get(j))&&void 0!==i?i:r.bottom-r.top,O=j.offset||DI,T=this.view.textDirection==Eu.LTR,L=r.width>e.right-e.left?T?e.left:e.right-r.width:T?Math.min(l.left-(o?14:0)+O.x,e.right-c):Math.max(e.left,l.left-c+(o?14:0)-O.x),h=this.above[D];!n.strictSide&&(h?l.top-(r.bottom-r.top)-O.y<e.top:l.bottom+(r.bottom-r.top)+O.y>e.bottom)&&h==e.bottom-l.bottom>l.top-e.top&&(h=this.above[D]=!h);let z=(h?l.top-e.top:e.bottom-l.bottom)-g;if(z<a&&!1!==j.resize){if(z<this.view.defaultLineHeight){I.style.top=MI;continue}NI.set(j,a),I.style.height=(a=z)/s+"px"}else I.style.height&&(I.style.height="");let y=h?l.top-a-g-O.y:l.bottom+g+O.y,d=L+c;if(!0!==j.overlap)for(let M of u)M.left<d&&M.right>L&&M.top<y+a&&M.bottom>y&&(y=h?M.top-a-2-g:M.bottom+g+2);if("absolute"==this.position?(I.style.top=(y-M.parent.top)/s+"px",I.style.left=(L-M.parent.left)/N+"px"):(I.style.top=y/s+"px",I.style.left=L/N+"px"),o){let M=l.left+(T?O.x:-O.x)-(L+14-7);o.style.left=M/N+"px"}!0!==j.overlap&&u.push({left:L,top:y,right:d,bottom:y+a}),I.classList.toggle("cm-tooltip-above",h),I.classList.toggle("cm-tooltip-below",!h),j.positioned&&j.positioned(M.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let M of this.manager.tooltipViews)M.dom.style.top=MI}},{eventObservers:{scroll(){this.maybeMeasure()}}}),uI=uj.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),DI={x:0,y:0},nI=Ke.define({enables:[sI,uI]}),jI=Ke.define();class II{static create(M){return new II(M)}constructor(M){this.view=M,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new iI(M,jI,(M=>this.createHostedView(M)))}createHostedView(M){let i=M.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(i.dom),this.mounted&&i.mount&&i.mount(this.view),i}mount(M){for(let i of this.manager.tooltipViews)i.mount&&i.mount(M);this.mounted=!0}positioned(M){for(let i of this.manager.tooltipViews)i.positioned&&i.positioned(M)}update(M){this.manager.update(M)}destroy(){var M;for(let i of this.manager.tooltipViews)null===(M=i.destroy)||void 0===M||M.call(i)}passProp(M){let i;for(let t of this.manager.tooltipViews){let e=t[M];if(void 0!==e)if(void 0===i)i=e;else if(i!==e)return}return i}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const lI=nI.compute([jI],(M=>{let i=M.facet(jI).filter((M=>M));return 0===i.length?null:{pos:Math.min(...i.map((M=>M.pos))),end:Math.max(...i.map((M=>{var i;return null!==(i=M.end)&&void 0!==i?i:M.pos}))),create:II.create,above:i[0].above,arrow:i.some((M=>M.arrow))}}));class rI{constructor(M,i,t,e,N){this.view=M,this.source=i,this.field=t,this.setHover=e,this.hoverTime=N,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:M.dom,time:0},this.checkHover=this.checkHover.bind(this),M.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),M.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((()=>this.startHover()),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let M=Date.now()-this.lastMove.time;M<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-M):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:M,lastMove:i}=this,t=M.docView.nearest(i.target);if(!t)return;let e,N=1;if(t instanceof su)e=t.posAtStart;else{if(e=M.posAtCoords(i),null==e)return;let t=M.coordsAtPos(e);if(!t||i.y<t.top||i.y>t.bottom||i.x<t.left-M.defaultCharacterWidth||i.x>t.right+M.defaultCharacterWidth)return;let s=M.bidiSpans(M.state.doc.lineAt(e)).find((M=>M.from<=e&&M.to>=e)),u=s&&s.dir==Eu.RTL?-1:1;N=i.x<t.left?-u:u}let s=this.source(M,e,N);if(null==s?void 0:s.then){let i=this.pending={pos:e};s.then((t=>{this.pending==i&&(this.pending=null,t&&M.dispatch({effects:this.setHover.of(t)}))}),(i=>ND(M.state,i,"hover tooltip")))}else s&&M.dispatch({effects:this.setHover.of(s)})}get tooltip(){let M=this.view.plugin(sI),i=M?M.manager.tooltips.findIndex((M=>M.create==II.create)):-1;return i>-1?M.manager.tooltipViews[i]:null}mousemove(M){var i;this.lastMove={x:M.clientX,y:M.clientY,target:M.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:t,tooltip:e}=this;if(t&&e&&!function(M,i){let t=M.getBoundingClientRect();return i.clientX>=t.left-oI&&i.clientX<=t.right+oI&&i.clientY>=t.top-oI&&i.clientY<=t.bottom+oI}(e.dom,M)||this.pending){let{pos:e}=t||this.pending,N=null!==(i=null==t?void 0:t.end)&&void 0!==i?i:e;(e==N?this.view.posAtCoords(this.lastMove)==e:function(M,i,t,e,N,s){let u=M.scrollDOM.getBoundingClientRect(),D=M.documentTop+M.documentPadding.top+M.contentHeight;if(u.left>e||u.right<e||u.top>N||Math.min(u.bottom,D)<N)return!1;let n=M.posAtCoords({x:e,y:N},!1);return n>=i&&n<=t}(this.view,e,N,M.clientX,M.clientY))||(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(M){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:i}=this;if(i){let{tooltip:i}=this;i&&i.dom.contains(M.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of(null)})}}watchTooltipLeave(M){let i=t=>{M.removeEventListener("mouseleave",i),this.active&&!this.view.dom.contains(t.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})};M.addEventListener("mouseleave",i)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const oI=4;function gI(M,i={}){let t=QN.define(),e=uN.define({create:()=>null,update(M,e){if(M&&(i.hideOnChange&&(e.docChanged||e.selection)||i.hideOn&&i.hideOn(e,M)))return null;if(M&&e.docChanged){let i=e.changes.mapPos(M.pos,-1,Ve.TrackDel);if(null==i)return null;let t=Object.assign(Object.create(null),M);t.pos=i,null!=M.end&&(t.end=e.changes.mapPos(M.end)),M=t}for(let i of e.effects)i.is(t)&&(M=i.value),i.is(aI)&&(M=null);return M},provide:M=>jI.from(M)});return[e,nD.define((N=>new rI(N,M,e,t,i.hoverTime||300))),lI]}function cI(M,i){let t=M.plugin(sI);if(!t)return null;let e=t.manager.tooltips.indexOf(i);return e<0?null:t.manager.tooltipViews[e]}const aI=QN.define(),OI=Ke.define({combine(M){let i,t;for(let e of M)i=i||e.topContainer,t=t||e.bottomContainer;return{topContainer:i,bottomContainer:t}}});function TI(M,i){let t=M.plugin(LI),e=t?t.specs.indexOf(i):-1;return e>-1?t.panels[e]:null}const LI=nD.fromClass(class{constructor(M){this.input=M.state.facet(yI),this.specs=this.input.filter((M=>M)),this.panels=this.specs.map((i=>i(M)));let i=M.state.facet(OI);this.top=new hI(M,!0,i.topContainer),this.bottom=new hI(M,!1,i.bottomContainer),this.top.sync(this.panels.filter((M=>M.top))),this.bottom.sync(this.panels.filter((M=>!M.top)));for(let M of this.panels)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}update(M){let i=M.state.facet(OI);this.top.container!=i.topContainer&&(this.top.sync([]),this.top=new hI(M.view,!0,i.topContainer)),this.bottom.container!=i.bottomContainer&&(this.bottom.sync([]),this.bottom=new hI(M.view,!1,i.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=M.state.facet(yI);if(t!=this.input){let i=t.filter((M=>M)),e=[],N=[],s=[],u=[];for(let t of i){let i,D=this.specs.indexOf(t);D<0?(i=t(M.view),u.push(i)):(i=this.panels[D],i.update&&i.update(M)),e.push(i),(i.top?N:s).push(i)}this.specs=i,this.panels=e,this.top.sync(N),this.bottom.sync(s);for(let M of u)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}else for(let i of this.panels)i.update&&i.update(M)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:M=>uj.scrollMargins.of((i=>{let t=i.plugin(M);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}}))});class hI{constructor(M,i,t){this.view=M,this.top=i,this.container=t,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(M){for(let i of this.panels)i.destroy&&M.indexOf(i)<0&&i.destroy();this.panels=M,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let M=this.container||this.view.dom;M.insertBefore(this.dom,this.top?M.firstChild:null)}let M=this.dom.firstChild;for(let i of this.panels)if(i.dom.parentNode==this.dom){for(;M!=i.dom;)M=zI(M);M=M.nextSibling}else this.dom.insertBefore(i.dom,M);for(;M;)M=zI(M)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let M of this.classes.split(" "))M&&this.container.classList.remove(M);for(let M of(this.classes=this.view.themeClasses).split(" "))M&&this.container.classList.add(M)}}}function zI(M){let i=M.nextSibling;return M.remove(),i}const yI=Ke.define({enables:LI});class dI extends PN{compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}eq(M){return!1}destroy(M){}}dI.prototype.elementClass="",dI.prototype.toDOM=void 0,dI.prototype.mapMode=Ve.TrackBefore,dI.prototype.startSide=dI.prototype.endSide=-1,dI.prototype.point=!0;const AI=Ke.define(),xI={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>XN.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},wI=Ke.define();function SI(M){return[QI(),wI.of(Object.assign(Object.assign({},xI),M))]}const EI=Ke.define({combine:M=>M.some((M=>M))});function QI(M){let i=[kI];return M&&!1===M.fixed&&i.push(EI.of(!0)),i}const kI=nD.fromClass(class{constructor(M){this.view=M,this.prevViewport=M.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=M.state.facet(wI).map((i=>new bI(M,i)));for(let M of this.gutters)this.dom.appendChild(M.dom);this.fixed=!M.state.facet(EI),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),M.scrollDOM.insertBefore(this.dom,M.contentDOM)}update(M){if(this.updateGutters(M)){let i=this.prevViewport,t=M.view.viewport,e=Math.min(i.to,t.to)-Math.max(i.from,t.from);this.syncGutters(e<.8*(t.to-t.from))}M.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(EI)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=M.view.viewport}syncGutters(M){let i=this.dom.nextSibling;M&&this.dom.remove();let t=XN.iter(this.view.state.facet(AI),this.view.viewport.from),e=[],N=this.gutters.map((M=>new UI(M,this.view.viewport,-this.view.documentPadding.top)));for(let M of this.view.viewportLineBlocks)if(e.length&&(e=[]),Array.isArray(M.type)){let i=!0;for(let s of M.type)if(s.type==Tu.Text&&i){pI(t,e,s.from);for(let M of N)M.line(this.view,s,e);i=!1}else if(s.widget)for(let M of N)M.widget(this.view,s)}else if(M.type==Tu.Text){pI(t,e,M.from);for(let i of N)i.line(this.view,M,e)}else if(M.widget)for(let i of N)i.widget(this.view,M);for(let M of N)M.finish();M&&this.view.scrollDOM.insertBefore(this.dom,i)}updateGutters(M){let i=M.startState.facet(wI),t=M.state.facet(wI),e=M.docChanged||M.heightChanged||M.viewportChanged||!XN.eq(M.startState.facet(AI),M.state.facet(AI),M.view.viewport.from,M.view.viewport.to);if(i==t)for(let i of this.gutters)i.update(M)&&(e=!0);else{e=!0;let N=[];for(let e of t){let t=i.indexOf(e);t<0?N.push(new bI(this.view,e)):(this.gutters[t].update(M),N.push(this.gutters[t]))}for(let M of this.gutters)M.dom.remove(),N.indexOf(M)<0&&M.destroy();for(let M of N)this.dom.appendChild(M.dom);this.gutters=N}return e}destroy(){for(let M of this.gutters)M.destroy();this.dom.remove()}},{provide:M=>uj.scrollMargins.of((i=>{let t=i.plugin(M);return t&&0!=t.gutters.length&&t.fixed?i.textDirection==Eu.LTR?{left:t.dom.offsetWidth*i.scaleX}:{right:t.dom.offsetWidth*i.scaleX}:null}))});function CI(M){return Array.isArray(M)?M:[M]}function pI(M,i,t){for(;M.value&&M.from<=t;)M.from==t&&i.push(M.value),M.next()}class UI{constructor(M,i,t){this.gutter=M,this.height=t,this.i=0,this.cursor=XN.iter(M.markers,i.from)}addElement(M,i,t){let{gutter:e}=this,N=(i.top-this.height)/M.scaleY,s=i.height/M.scaleY;if(this.i==e.elements.length){let i=new ZI(M,s,N,t);e.elements.push(i),e.dom.appendChild(i.dom)}else e.elements[this.i].update(M,s,N,t);this.height=i.bottom,this.i++}line(M,i,t){let e=[];pI(this.cursor,e,i.from),t.length&&(e=e.concat(t));let N=this.gutter.config.lineMarker(M,i,e);N&&e.unshift(N);let s=this.gutter;(0!=e.length||s.config.renderEmptyElements)&&this.addElement(M,i,e)}widget(M,i){let t=this.gutter.config.widgetMarker(M,i.widget,i);t&&this.addElement(M,i,[t])}finish(){let M=this.gutter;for(;M.elements.length>this.i;){let i=M.elements.pop();M.dom.removeChild(i.dom),i.destroy()}}}class bI{constructor(M,i){this.view=M,this.config=i,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let t in i.domEventHandlers)this.dom.addEventListener(t,(e=>{let N,s=e.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let M=s.getBoundingClientRect();N=(M.top+M.bottom)/2}else N=e.clientY;let u=M.lineBlockAtHeight(N-M.documentTop);i.domEventHandlers[t](M,u,e)&&e.preventDefault()}));this.markers=CI(i.markers(M)),i.initialSpacer&&(this.spacer=new ZI(M,0,0,[i.initialSpacer(M)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(M){let i=this.markers;if(this.markers=CI(this.config.markers(M.view)),this.spacer&&this.config.updateSpacer){let i=this.config.updateSpacer(this.spacer.markers[0],M);i!=this.spacer.markers[0]&&this.spacer.update(M.view,0,0,[i])}let t=M.view.viewport;return!XN.eq(this.markers,i,t.from,t.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(M)}destroy(){for(let M of this.elements)M.destroy()}}class ZI{constructor(M,i,t,e){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(M,i,t,e)}update(M,i,t,e){this.height!=i&&(this.height=i,this.dom.style.height=i+"px"),this.above!=t&&(this.dom.style.marginTop=(this.above=t)?t+"px":""),function(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++)if(!M[t].compare(i[t]))return!1;return!0}(this.markers,e)||this.setMarkers(M,e)}setMarkers(M,i){let t="cm-gutterElement",e=this.dom.firstChild;for(let N=0,s=0;;){let u=s,D=N<i.length?i[N++]:null,n=!1;if(D){let M=D.elementClass;M&&(t+=" "+M);for(let M=s;M<this.markers.length;M++)if(this.markers[M].compare(D)){u=M,n=!0;break}}else u=this.markers.length;for(;s<u;){let M=this.markers[s++];if(M.toDOM){M.destroy(e);let i=e.nextSibling;e.remove(),e=i}}if(!D)break;D.toDOM&&(n?e=e.nextSibling:this.dom.insertBefore(D.toDOM(M),e)),n&&s++}this.dom.className=t,this.markers=i}destroy(){this.setMarkers(null,[])}}const mI=Ke.define(),YI=Ke.define({combine:M=>GN(M,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(M,i){let t=Object.assign({},M);for(let M in i){let e=t[M],N=i[M];t[M]=e?(M,i,t)=>e(M,i,t)||N(M,i,t):N}return t}})});class fI extends dI{constructor(M){super(),this.number=M}eq(M){return this.number==M.number}toDOM(){return document.createTextNode(this.number)}}function WI(M,i){return M.state.facet(YI).formatNumber(i,M.state)}const VI=wI.compute([YI],(M=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:M=>M.state.facet(mI),lineMarker:(M,i,t)=>t.some((M=>M.toDOM))?null:new fI(WI(M,M.state.doc.lineAt(i.from).number)),widgetMarker:()=>null,lineMarkerChange:M=>M.startState.facet(YI)!=M.state.facet(YI),initialSpacer:M=>new fI(WI(M,vI(M.state.doc.lines))),updateSpacer(M,i){let t=WI(i.view,vI(i.view.state.doc.lines));return t==M.number?M:new fI(t)},domEventHandlers:M.facet(YI).domEventHandlers})));function vI(M){let i=9;for(;i<M;)i=10*i+9;return i}const GI=new class extends dI{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},PI=AI.compute(["selection"],(M=>{let i=[],t=-1;for(let e of M.selection.ranges){let N=M.doc.lineAt(e.head).from;N>t&&(t=N,i.push(GI.range(N)))}return XN.of(i)}));const RI=1024;let BI=0;class FI{constructor(M,i){this.from=M,this.to=i}}class XI{constructor(M={}){this.id=BI++,this.perNode=!!M.perNode,this.deserialize=M.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(M){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof M&&(M=$I.match(M)),i=>{let t=M(i);return void 0===t?null:[this,t]}}}XI.closedBy=new XI({deserialize:M=>M.split(" ")}),XI.openedBy=new XI({deserialize:M=>M.split(" ")}),XI.group=new XI({deserialize:M=>M.split(" ")}),XI.isolate=new XI({deserialize:M=>{if(M&&"rtl"!=M&&"ltr"!=M&&"auto"!=M)throw new RangeError("Invalid value for isolate: "+M);return M||"auto"}}),XI.contextHash=new XI({perNode:!0}),XI.lookAhead=new XI({perNode:!0}),XI.mounted=new XI({perNode:!0});class JI{constructor(M,i,t){this.tree=M,this.overlay=i,this.parser=t}static get(M){return M&&M.props&&M.props[XI.mounted.id]}}const HI=Object.create(null);class $I{constructor(M,i,t,e=0){this.name=M,this.props=i,this.id=t,this.flags=e}static define(M){let i=M.props&&M.props.length?Object.create(null):HI,t=(M.top?1:0)|(M.skipped?2:0)|(M.error?4:0)|(null==M.name?8:0),e=new $I(M.name||"",i,M.id,t);if(M.props)for(let t of M.props)if(Array.isArray(t)||(t=t(e)),t){if(t[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");i[t[0].id]=t[1]}return e}prop(M){return this.props[M.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(M){if("string"==typeof M){if(this.name==M)return!0;let i=this.prop(XI.group);return!!i&&i.indexOf(M)>-1}return this.id==M}static match(M){let i=Object.create(null);for(let t in M)for(let e of t.split(" "))i[e]=M[t];return M=>{for(let t=M.prop(XI.group),e=-1;e<(t?t.length:0);e++){let N=i[e<0?M.name:t[e]];if(N)return N}}}}$I.none=new $I("",Object.create(null),0,8);class _I{constructor(M){this.types=M;for(let i=0;i<M.length;i++)if(M[i].id!=i)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...M){let i=[];for(let t of this.types){let e=null;for(let i of M){let M=i(t);M&&(e||(e=Object.assign({},t.props)),e[M[0].id]=M[1])}i.push(e?new $I(t.name,e,t.id,t.flags):t)}return new _I(i)}}const qI=new WeakMap,KI=new WeakMap;var Ml;!function(M){M[M.ExcludeBuffers=1]="ExcludeBuffers",M[M.IncludeAnonymous=2]="IncludeAnonymous",M[M.IgnoreMounts=4]="IgnoreMounts",M[M.IgnoreOverlays=8]="IgnoreOverlays"}(Ml||(Ml={}));class il{constructor(M,i,t,e,N){if(this.type=M,this.children=i,this.positions=t,this.length=e,this.props=null,N&&N.length){this.props=Object.create(null);for(let[M,i]of N)this.props["number"==typeof M?M:M.id]=i}}toString(){let M=JI.get(this);if(M&&!M.overlay)return M.tree.toString();let i="";for(let M of this.children){let t=M.toString();t&&(i&&(i+=","),i+=t)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(i.length?"("+i+")":""):i}cursor(M=0){return new gl(this.topNode,M)}cursorAt(M,i=0,t=0){let e=qI.get(this)||this.topNode,N=new gl(e);return N.moveTo(M,i),qI.set(this,N._tree),N}get topNode(){return new Dl(this,0,0,null)}resolve(M,i=0){let t=sl(qI.get(this)||this.topNode,M,i,!1);return qI.set(this,t),t}resolveInner(M,i=0){let t=sl(KI.get(this)||this.topNode,M,i,!0);return KI.set(this,t),t}resolveStack(M,i=0){return function(M,i,t){let e=M.resolveInner(i,t),N=null;for(let M=e instanceof Dl?e:e.context.parent;M;M=M.parent)if(M.index<0){let s=M.parent;(N||(N=[e])).push(s.resolve(i,t)),M=s}else{let s=JI.get(M.tree);if(s&&s.overlay&&s.overlay[0].from<=i&&s.overlay[s.overlay.length-1].to>=i){let u=new Dl(s.tree,s.overlay[0].from+M.from,-1,M);(N||(N=[e])).push(sl(u,i,t,!1))}}return N?rl(N):e}(this,M,i)}iterate(M){let{enter:i,leave:t,from:e=0,to:N=this.length}=M,s=M.mode||0,u=(s&Ml.IncludeAnonymous)>0;for(let M=this.cursor(s|Ml.IncludeAnonymous);;){let s=!1;if(M.from<=N&&M.to>=e&&(!u&&M.type.isAnonymous||!1!==i(M))){if(M.firstChild())continue;s=!0}for(;s&&t&&(u||!M.type.isAnonymous)&&t(M),!M.nextSibling();){if(!M.parent())return;s=!0}}}prop(M){return M.perNode?this.props?this.props[M.id]:void 0:this.type.prop(M)}get propValues(){let M=[];if(this.props)for(let i in this.props)M.push([+i,this.props[i]]);return M}balance(M={}){return this.children.length<=8?this:Tl($I.none,this.children,this.positions,0,this.children.length,0,this.length,((M,i,t)=>new il(this.type,M,i,t,this.propValues)),M.makeTree||((M,i,t)=>new il($I.none,M,i,t)))}static build(M){return function(M){var i;let{buffer:t,nodeSet:e,maxBufferLength:N=RI,reused:s=[],minRepeatType:u=e.types.length}=M,D=Array.isArray(t)?new tl(t,t.length):t,n=e.types,j=0,I=0;function l(M,i,t,T,L,h){let{id:z,start:y,end:d,size:A}=D,x=I;for(;A<0;){if(D.next(),-1==A){let i=s[z];return t.push(i),void T.push(y-M)}if(-3==A)return void(j=z);if(-4==A)return void(I=z);throw new RangeError(`Unrecognized record size: ${A}`)}let w,S,E=n[z],Q=y-M;if(d-y<=N&&(S=a(D.pos-i,L))){let i=new Uint16Array(S.size-S.skip),t=D.pos-S.size,N=i.length;for(;D.pos>t;)N=O(S.start,i,N);w=new el(i,d-S.start,e),Q=S.start-M}else{let M=D.pos-A;D.next();let i=[],t=[],e=z>=u?z:-1,s=0,n=d;for(;D.pos>M;)e>=0&&D.id==e&&D.size>=0?(D.end<=n-N&&(g(i,t,y,s,D.end,n,e,x),s=i.length,n=D.end),D.next()):h>2500?r(y,M,i,t):l(y,M,i,t,e,h+1);if(e>=0&&s>0&&s<i.length&&g(i,t,y,s,y,n,e,x),i.reverse(),t.reverse(),e>-1&&s>0){let M=o(E);w=Tl(E,i,t,0,i.length,0,d-y,M,M)}else w=c(E,i,t,d-y,x-d)}t.push(w),T.push(Q)}function r(M,i,t,s){let u=[],n=0,j=-1;for(;D.pos>i;){let{id:M,start:i,end:t,size:e}=D;if(e>4)D.next();else{if(j>-1&&i<j)break;j<0&&(j=t-N),u.push(M,i,t),n++,D.next()}}if(n){let i=new Uint16Array(4*n),N=u[u.length-2];for(let M=u.length-3,t=0;M>=0;M-=3)i[t++]=u[M],i[t++]=u[M+1]-N,i[t++]=u[M+2]-N,i[t++]=t;t.push(new el(i,u[2]-N,e)),s.push(N-M)}}function o(M){return(i,t,e)=>{let N,s,u=0,D=i.length-1;if(D>=0&&(N=i[D])instanceof il){if(!D&&N.type==M&&N.length==e)return N;(s=N.prop(XI.lookAhead))&&(u=t[D]+N.length+s)}return c(M,i,t,e,u)}}function g(M,i,t,N,s,u,D,n){let j=[],I=[];for(;M.length>N;)j.push(M.pop()),I.push(i.pop()+t-s);M.push(c(e.types[D],j,I,u-s,n-u)),i.push(s-t)}function c(M,i,t,e,N=0,s){if(j){let M=[XI.contextHash,j];s=s?[M].concat(s):[M]}if(N>25){let M=[XI.lookAhead,N];s=s?[M].concat(s):[M]}return new il(M,i,t,e,s)}function a(M,i){let t=D.fork(),e=0,s=0,n=0,j=t.end-N,I={size:0,start:0,skip:0};M:for(let N=t.pos-M;t.pos>N;){let M=t.size;if(t.id==i&&M>=0){I.size=e,I.start=s,I.skip=n,n+=4,e+=4,t.next();continue}let D=t.pos-M;if(M<0||D<N||t.start<j)break;let l=t.id>=u?4:0,r=t.start;for(t.next();t.pos>D;){if(t.size<0){if(-3!=t.size)break M;l+=4}else t.id>=u&&(l+=4);t.next()}s=r,e+=M,n+=l}return(i<0||e==M)&&(I.size=e,I.start=s,I.skip=n),I.size>4?I:void 0}function O(M,i,t){let{id:e,start:N,end:s,size:n}=D;if(D.next(),n>=0&&e<u){let u=t;if(n>4){let e=D.pos-(n-4);for(;D.pos>e;)t=O(M,i,t)}i[--t]=u,i[--t]=s-M,i[--t]=N-M,i[--t]=e}else-3==n?j=e:-4==n&&(I=e);return t}let T=[],L=[];for(;D.pos>0;)l(M.start||0,M.bufferStart||0,T,L,-1,0);let h=null!==(i=M.length)&&void 0!==i?i:T.length?L[0]+T[0].length:0;return new il(n[M.topID],T.reverse(),L.reverse(),h)}(M)}}il.empty=new il($I.none,[],[],0);class tl{constructor(M,i){this.buffer=M,this.index=i}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new tl(this.buffer,this.index)}}class el{constructor(M,i,t){this.buffer=M,this.length=i,this.set=t}get type(){return $I.none}toString(){let M=[];for(let i=0;i<this.buffer.length;)M.push(this.childString(i)),i=this.buffer[i+3];return M.join(",")}childString(M){let i=this.buffer[M],t=this.buffer[M+3],e=this.set.types[i],N=e.name;if(/\W/.test(N)&&!e.isError&&(N=JSON.stringify(N)),t==(M+=4))return N;let s=[];for(;M<t;)s.push(this.childString(M)),M=this.buffer[M+3];return N+"("+s.join(",")+")"}findChild(M,i,t,e,N){let{buffer:s}=this,u=-1;for(let D=M;D!=i&&!(Nl(N,e,s[D+1],s[D+2])&&(u=D,t>0));D=s[D+3]);return u}slice(M,i,t){let e=this.buffer,N=new Uint16Array(i-M),s=0;for(let u=M,D=0;u<i;){N[D++]=e[u++],N[D++]=e[u++]-t;let i=N[D++]=e[u++]-t;N[D++]=e[u++]-M,s=Math.max(s,i)}return new el(N,s,this.set)}}function Nl(M,i,t,e){switch(M){case-2:return t<i;case-1:return e>=i&&t<i;case 0:return t<i&&e>i;case 1:return t<=i&&e>i;case 2:return e>i;case 4:return!0}}function sl(M,i,t,e){for(var N;M.from==M.to||(t<1?M.from>=i:M.from>i)||(t>-1?M.to<=i:M.to<i);){let i=!e&&M instanceof Dl&&M.index<0?null:M.parent;if(!i)return M;M=i}let s=e?0:Ml.IgnoreOverlays;if(e)for(let e=M,u=e.parent;u;e=u,u=e.parent)e instanceof Dl&&e.index<0&&(null===(N=u.enter(i,t,s))||void 0===N?void 0:N.from)!=e.from&&(M=u);for(;;){let e=M.enter(i,t,s);if(!e)return M;M=e}}class ul{cursor(M=0){return new gl(this,M)}getChild(M,i=null,t=null){let e=nl(this,M,i,t);return e.length?e[0]:null}getChildren(M,i=null,t=null){return nl(this,M,i,t)}resolve(M,i=0){return sl(this,M,i,!1)}resolveInner(M,i=0){return sl(this,M,i,!0)}matchContext(M){return jl(this,M)}enterUnfinishedNodesBefore(M){let i=this.childBefore(M),t=this;for(;i;){let M=i.lastChild;if(!M||M.to!=i.to)break;M.type.isError&&M.from==M.to?(t=i,i=M.prevSibling):i=M}return t}get node(){return this}get next(){return this.parent}}class Dl extends ul{constructor(M,i,t,e){super(),this._tree=M,this.from=i,this.index=t,this._parent=e}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(M,i,t,e,N=0){for(let s=this;;){for(let{children:u,positions:D}=s._tree,n=i>0?u.length:-1;M!=n;M+=i){let n=u[M],j=D[M]+s.from;if(Nl(e,t,j,j+n.length))if(n instanceof el){if(N&Ml.ExcludeBuffers)continue;let u=n.findChild(0,n.buffer.length,i,t-j,e);if(u>-1)return new ll(new Il(s,n,M,j),null,u)}else if(N&Ml.IncludeAnonymous||!n.type.isAnonymous||cl(n)){let u;if(!(N&Ml.IgnoreMounts)&&(u=JI.get(n))&&!u.overlay)return new Dl(u.tree,j,M,s);let D=new Dl(n,j,M,s);return N&Ml.IncludeAnonymous||!D.type.isAnonymous?D:D.nextChild(i<0?n.children.length-1:0,i,t,e)}}if(N&Ml.IncludeAnonymous||!s.type.isAnonymous)return null;if(M=s.index>=0?s.index+i:i<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(M){return this.nextChild(0,1,M,2)}childBefore(M){return this.nextChild(this._tree.children.length-1,-1,M,-2)}enter(M,i,t=0){let e;if(!(t&Ml.IgnoreOverlays)&&(e=JI.get(this._tree))&&e.overlay){let t=M-this.from;for(let{from:M,to:N}of e.overlay)if((i>0?M<=t:M<t)&&(i<0?N>=t:N>t))return new Dl(e.tree,e.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,M,i,t)}nextSignificantParent(){let M=this;for(;M.type.isAnonymous&&M._parent;)M=M._parent;return M}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function nl(M,i,t,e){let N=M.cursor(),s=[];if(!N.firstChild())return s;if(null!=t)for(let M=!1;!M;)if(M=N.type.is(t),!N.nextSibling())return s;for(;;){if(null!=e&&N.type.is(e))return s;if(N.type.is(i)&&s.push(N.node),!N.nextSibling())return null==e?s:[]}}function jl(M,i,t=i.length-1){for(let e=M.parent;t>=0;e=e.parent){if(!e)return!1;if(!e.type.isAnonymous){if(i[t]&&i[t]!=e.name)return!1;t--}}return!0}class Il{constructor(M,i,t,e){this.parent=M,this.buffer=i,this.index=t,this.start=e}}class ll extends ul{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(M,i,t){super(),this.context=M,this._parent=i,this.index=t,this.type=M.buffer.set.types[M.buffer.buffer[t]]}child(M,i,t){let{buffer:e}=this.context,N=e.findChild(this.index+4,e.buffer[this.index+3],M,i-this.context.start,t);return N<0?null:new ll(this.context,this,N)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(M){return this.child(1,M,2)}childBefore(M){return this.child(-1,M,-2)}enter(M,i,t=0){if(t&Ml.ExcludeBuffers)return null;let{buffer:e}=this.context,N=e.findChild(this.index+4,e.buffer[this.index+3],i>0?1:-1,M-this.context.start,i);return N<0?null:new ll(this.context,this,N)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(M){return this._parent?null:this.context.parent.nextChild(this.context.index+M,M,0,4)}get nextSibling(){let{buffer:M}=this.context,i=M.buffer[this.index+3];return i<(this._parent?M.buffer[this._parent.index+3]:M.buffer.length)?new ll(this.context,this._parent,i):this.externalSibling(1)}get prevSibling(){let{buffer:M}=this.context,i=this._parent?this._parent.index+4:0;return this.index==i?this.externalSibling(-1):new ll(this.context,this._parent,M.findChild(i,this.index,-1,0,4))}get tree(){return null}toTree(){let M=[],i=[],{buffer:t}=this.context,e=this.index+4,N=t.buffer[this.index+3];if(N>e){let s=t.buffer[this.index+1];M.push(t.slice(e,N,s)),i.push(0)}return new il(this.type,M,i,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function rl(M){if(!M.length)return null;let i=0,t=M[0];for(let e=1;e<M.length;e++){let N=M[e];(N.from>t.from||N.to<t.to)&&(t=N,i=e)}let e=t instanceof Dl&&t.index<0?null:t.parent,N=M.slice();return e?N[i]=e:N.splice(i,1),new ol(N,t)}class ol{constructor(M,i){this.heads=M,this.node=i}get next(){return rl(this.heads)}}class gl{get name(){return this.type.name}constructor(M,i=0){if(this.mode=i,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,M instanceof Dl)this.yieldNode(M);else{this._tree=M.context.parent,this.buffer=M.context;for(let i=M._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=M,this.yieldBuf(M.index)}}yieldNode(M){return!!M&&(this._tree=M,this.type=M.type,this.from=M.from,this.to=M.to,!0)}yieldBuf(M,i){this.index=M;let{start:t,buffer:e}=this.buffer;return this.type=i||e.set.types[e.buffer[M]],this.from=t+e.buffer[M+1],this.to=t+e.buffer[M+2],!0}yield(M){return!!M&&(M instanceof Dl?(this.buffer=null,this.yieldNode(M)):(this.buffer=M.context,this.yieldBuf(M.index,M.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(M,i,t){if(!this.buffer)return this.yield(this._tree.nextChild(M<0?this._tree._tree.children.length-1:0,M,i,t,this.mode));let{buffer:e}=this.buffer,N=e.findChild(this.index+4,e.buffer[this.index+3],M,i-this.buffer.start,t);return!(N<0)&&(this.stack.push(this.index),this.yieldBuf(N))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(M){return this.enterChild(1,M,2)}childBefore(M){return this.enterChild(-1,M,-2)}enter(M,i,t=this.mode){return this.buffer?!(t&Ml.ExcludeBuffers)&&this.enterChild(1,M,i):this.yield(this._tree.enter(M,i,t))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ml.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let M=this.mode&Ml.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(M)}sibling(M){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+M,M,0,4,this.mode));let{buffer:i}=this.buffer,t=this.stack.length-1;if(M<0){let M=t<0?0:this.stack[t]+4;if(this.index!=M)return this.yieldBuf(i.findChild(M,this.index,-1,0,4))}else{let M=i.buffer[this.index+3];if(M<(t<0?i.buffer.length:i.buffer[this.stack[t]+3]))return this.yieldBuf(M)}return t<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+M,M,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(M){let i,t,{buffer:e}=this;if(e){if(M>0){if(this.index<e.buffer.buffer.length)return!1}else for(let M=0;M<this.index;M++)if(e.buffer.buffer[M+3]<this.index)return!1;({index:i,parent:t}=e)}else({index:i,_parent:t}=this._tree);for(;t;({index:i,_parent:t}=t))if(i>-1)for(let e=i+M,N=M<0?-1:t._tree.children.length;e!=N;e+=M){let M=t._tree.children[e];if(this.mode&Ml.IncludeAnonymous||M instanceof el||!M.type.isAnonymous||cl(M))return!1}return!0}move(M,i){if(i&&this.enterChild(M,0,4))return!0;for(;;){if(this.sibling(M))return!0;if(this.atLastNode(M)||!this.parent())return!1}}next(M=!0){return this.move(1,M)}prev(M=!0){return this.move(-1,M)}moveTo(M,i=0){for(;(this.from==this.to||(i<1?this.from>=M:this.from>M)||(i>-1?this.to<=M:this.to<M))&&this.parent(););for(;this.enterChild(1,M,i););return this}get node(){if(!this.buffer)return this._tree;let M=this.bufferNode,i=null,t=0;if(M&&M.context==this.buffer)M:for(let e=this.index,N=this.stack.length;N>=0;){for(let s=M;s;s=s._parent)if(s.index==e){if(e==this.index)return s;i=s,t=N+1;break M}e=this.stack[--N]}for(let M=t;M<this.stack.length;M++)i=new ll(this.buffer,i,this.stack[M]);return this.bufferNode=new ll(this.buffer,i,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(M,i){for(let t=0;;){let e=!1;if(this.type.isAnonymous||!1!==M(this)){if(this.firstChild()){t++;continue}this.type.isAnonymous||(e=!0)}for(;e&&i&&i(this),e=this.type.isAnonymous,!this.nextSibling();){if(!t)return;this.parent(),t--,e=!0}}}matchContext(M){if(!this.buffer)return jl(this.node,M);let{buffer:i}=this.buffer,{types:t}=i.set;for(let e=M.length-1,N=this.stack.length-1;e>=0;N--){if(N<0)return jl(this.node,M,e);let s=t[i.buffer[this.stack[N]]];if(!s.isAnonymous){if(M[e]&&M[e]!=s.name)return!1;e--}}return!0}}function cl(M){return M.children.some((M=>M instanceof el||!M.type.isAnonymous||cl(M)))}const al=new WeakMap;function Ol(M,i){if(!M.isAnonymous||i instanceof el||i.type!=M)return 1;let t=al.get(i);if(null==t){t=1;for(let e of i.children){if(e.type!=M||!(e instanceof il)){t=1;break}t+=Ol(M,e)}al.set(i,t)}return t}function Tl(M,i,t,e,N,s,u,D,n){let j=0;for(let t=e;t<N;t++)j+=Ol(M,i[t]);let I=Math.ceil(1.5*j/8),l=[],r=[];return function i(t,e,N,u,D){for(let j=N;j<u;){let N=j,o=e[j],g=Ol(M,t[j]);for(j++;j<u;j++){let i=Ol(M,t[j]);if(g+i>=I)break;g+=i}if(j==N+1){if(g>I){let M=t[N];i(M.children,M.positions,0,M.children.length,e[N]+D);continue}l.push(t[N])}else{let i=e[j-1]+t[j-1].length-o;l.push(Tl(M,t,e,N,j,o,i,null,n))}r.push(o+D-s)}}(i,t,e,N,0),(D||n)(l,r,u)}class Ll{constructor(){this.map=new WeakMap}setBuffer(M,i,t){let e=this.map.get(M);e||this.map.set(M,e=new Map),e.set(i,t)}getBuffer(M,i){let t=this.map.get(M);return t&&t.get(i)}set(M,i){M instanceof ll?this.setBuffer(M.context.buffer,M.index,i):M instanceof Dl&&this.map.set(M.tree,i)}get(M){return M instanceof ll?this.getBuffer(M.context.buffer,M.index):M instanceof Dl?this.map.get(M.tree):void 0}cursorSet(M,i){M.buffer?this.setBuffer(M.buffer.buffer,M.index,i):this.map.set(M.tree,i)}cursorGet(M){return M.buffer?this.getBuffer(M.buffer.buffer,M.index):this.map.get(M.tree)}}class hl{constructor(M,i,t,e,N=!1,s=!1){this.from=M,this.to=i,this.tree=t,this.offset=e,this.open=(N?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(M,i=[],t=!1){let e=[new hl(0,M.length,M,0,!1,t)];for(let t of i)t.to>M.length&&e.push(t);return e}static applyChanges(M,i,t=128){if(!i.length)return M;let e=[],N=1,s=M.length?M[0]:null;for(let u=0,D=0,n=0;;u++){let j=u<i.length?i[u]:null,I=j?j.fromA:1e9;if(I-D>=t)for(;s&&s.from<I;){let i=s;if(D>=i.from||I<=i.to||n){let M=Math.max(i.from,D)-n,t=Math.min(i.to,I)-n;i=M>=t?null:new hl(M,t,i.tree,i.offset+n,u>0,!!j)}if(i&&e.push(i),s.to>I)break;s=N<M.length?M[N++]:null}if(!j)break;D=j.toA,n=j.toA-j.toB}return e}}class zl{startParse(M,i,t){return"string"==typeof M&&(M=new yl(M)),t=t?t.length?t.map((M=>new FI(M.from,M.to))):[new FI(0,0)]:[new FI(0,M.length)],this.createParse(M,i||[],t)}parse(M,i,t){let e=this.startParse(M,i,t);for(;;){let M=e.advance();if(M)return M}}}class yl{constructor(M){this.string=M}get length(){return this.string.length}chunk(M){return this.string.slice(M)}get lineChunks(){return!1}read(M,i){return this.string.slice(M,i)}}new XI({perNode:!0});let dl=0;class Al{constructor(M,i,t){this.set=M,this.base=i,this.modified=t,this.id=dl++}static define(M){if(null==M?void 0:M.base)throw new Error("Can not derive from a modified tag");let i=new Al([],null,[]);if(i.set.push(i),M)for(let t of M.set)i.set.push(t);return i}static defineModifier(){let M=new wl;return i=>i.modified.indexOf(M)>-1?i:wl.get(i.base||i,i.modified.concat(M).sort(((M,i)=>M.id-i.id)))}}let xl=0;class wl{constructor(){this.instances=[],this.id=xl++}static get(M,i){if(!i.length)return M;let t=i[0].instances.find((t=>t.base==M&&function(M,i){return M.length==i.length&&M.every(((M,t)=>M==i[t]))}(i,t.modified)));if(t)return t;let e=[],N=new Al(e,M,i);for(let M of i)M.instances.push(N);let s=function(M){let i=[[]];for(let t=0;t<M.length;t++)for(let e=0,N=i.length;e<N;e++)i.push(i[e].concat(M[t]));return i.sort(((M,i)=>i.length-M.length))}(i);for(let i of M.set)if(!i.modified.length)for(let M of s)e.push(wl.get(i,M));return N}}function Sl(M){let i=Object.create(null);for(let t in M){let e=M[t];Array.isArray(e)||(e=[e]);for(let M of t.split(" "))if(M){let t=[],N=2,s=M;for(let i=0;;){if("..."==s&&i>0&&i+3==M.length){N=1;break}let e=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!e)throw new RangeError("Invalid path: "+M);if(t.push("*"==e[0]?"":'"'==e[0][0]?JSON.parse(e[0]):e[0]),i+=e[0].length,i==M.length)break;let u=M[i++];if(i==M.length&&"!"==u){N=0;break}if("/"!=u)throw new RangeError("Invalid path: "+M);s=M.slice(i)}let u=t.length-1,D=t[u];if(!D)throw new RangeError("Invalid path: "+M);let n=new Ql(e,N,u>0?t.slice(0,u):null);i[D]=n.sort(i[D])}}return El.add(i)}const El=new XI;class Ql{constructor(M,i,t,e){this.tags=M,this.mode=i,this.context=t,this.next=e}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(M){return!M||M.depth<this.depth?(this.next=M,this):(M.next=this.sort(M.next),M)}get depth(){return this.context?this.context.length:0}}function kl(M,i){let t=Object.create(null);for(let i of M)if(Array.isArray(i.tag))for(let M of i.tag)t[M.id]=i.class;else t[i.tag.id]=i.class;let{scope:e,all:N=null}=i||{};return{style:M=>{let i=N;for(let e of M)for(let M of e.set){let e=t[M.id];if(e){i=i?i+" "+e:e;break}}return i},scope:e}}function Cl(M,i,t,e=0,N=M.length){let s=new pl(e,Array.isArray(i)?i:[i],t);s.highlightRange(M.cursor(),e,N,"",s.highlighters),s.flush(N)}Ql.empty=new Ql([],2,null);class pl{constructor(M,i,t){this.at=M,this.highlighters=i,this.span=t,this.class=""}startSpan(M,i){i!=this.class&&(this.flush(M),M>this.at&&(this.at=M),this.class=i)}flush(M){M>this.at&&this.class&&this.span(this.at,M,this.class)}highlightRange(M,i,t,e,N){let{type:s,from:u,to:D}=M;if(u>=t||D<=i)return;s.isTop&&(N=this.highlighters.filter((M=>!M.scope||M.scope(s))));let n=e,j=function(M){let i=M.type.prop(El);for(;i&&i.context&&!M.matchContext(i.context);)i=i.next;return i||null}(M)||Ql.empty,I=function(M,i){let t=null;for(let e of M){let M=e.style(i);M&&(t=t?t+" "+M:M)}return t}(N,j.tags);if(I&&(n&&(n+=" "),n+=I,1==j.mode&&(e+=(e?" ":"")+I)),this.startSpan(Math.max(i,u),n),j.opaque)return;let l=M.tree&&M.tree.prop(XI.mounted);if(l&&l.overlay){let s=M.node.enter(l.overlay[0].from+u,1),j=this.highlighters.filter((M=>!M.scope||M.scope(l.tree.type))),I=M.firstChild();for(let r=0,o=u;;r++){let g=r<l.overlay.length?l.overlay[r]:null,c=g?g.from+u:D,a=Math.max(i,o),O=Math.min(t,c);if(a<O&&I)for(;M.from<O&&(this.highlightRange(M,a,O,e,N),this.startSpan(Math.min(O,M.to),n),!(M.to>=c)&&M.nextSibling()););if(!g||c>t)break;o=g.to+u,o>i&&(this.highlightRange(s.cursor(),Math.max(i,g.from+u),Math.min(t,o),"",j),this.startSpan(Math.min(t,o),n))}I&&M.parent()}else if(M.firstChild()){l&&(e="");do{if(!(M.to<=i)){if(M.from>=t)break;this.highlightRange(M,i,t,e,N),this.startSpan(Math.min(t,M.to),n)}}while(M.nextSibling());M.parent()}}}const Ul=Al.define,bl=Ul(),Zl=Ul(),ml=Ul(Zl),Yl=Ul(Zl),fl=Ul(),Wl=Ul(fl),Vl=Ul(fl),vl=Ul(),Gl=Ul(vl),Pl=Ul(),Rl=Ul(),Bl=Ul(),Fl=Ul(Bl),Xl=Ul(),Jl={comment:bl,lineComment:Ul(bl),blockComment:Ul(bl),docComment:Ul(bl),name:Zl,variableName:Ul(Zl),typeName:ml,tagName:Ul(ml),propertyName:Yl,attributeName:Ul(Yl),className:Ul(Zl),labelName:Ul(Zl),namespace:Ul(Zl),macroName:Ul(Zl),literal:fl,string:Wl,docString:Ul(Wl),character:Ul(Wl),attributeValue:Ul(Wl),number:Vl,integer:Ul(Vl),float:Ul(Vl),bool:Ul(fl),regexp:Ul(fl),escape:Ul(fl),color:Ul(fl),url:Ul(fl),keyword:Pl,self:Ul(Pl),null:Ul(Pl),atom:Ul(Pl),unit:Ul(Pl),modifier:Ul(Pl),operatorKeyword:Ul(Pl),controlKeyword:Ul(Pl),definitionKeyword:Ul(Pl),moduleKeyword:Ul(Pl),operator:Rl,derefOperator:Ul(Rl),arithmeticOperator:Ul(Rl),logicOperator:Ul(Rl),bitwiseOperator:Ul(Rl),compareOperator:Ul(Rl),updateOperator:Ul(Rl),definitionOperator:Ul(Rl),typeOperator:Ul(Rl),controlOperator:Ul(Rl),punctuation:Bl,separator:Ul(Bl),bracket:Fl,angleBracket:Ul(Fl),squareBracket:Ul(Fl),paren:Ul(Fl),brace:Ul(Fl),content:vl,heading:Gl,heading1:Ul(Gl),heading2:Ul(Gl),heading3:Ul(Gl),heading4:Ul(Gl),heading5:Ul(Gl),heading6:Ul(Gl),contentSeparator:Ul(vl),list:Ul(vl),quote:Ul(vl),emphasis:Ul(vl),strong:Ul(vl),link:Ul(vl),monospace:Ul(vl),strikethrough:Ul(vl),inserted:Ul(),deleted:Ul(),changed:Ul(),invalid:Ul(),meta:Xl,documentMeta:Ul(Xl),annotation:Ul(Xl),processingInstruction:Ul(Xl),definition:Al.defineModifier(),constant:Al.defineModifier(),function:Al.defineModifier(),standard:Al.defineModifier(),local:Al.defineModifier(),special:Al.defineModifier()};var Hl;kl([{tag:Jl.link,class:"tok-link"},{tag:Jl.heading,class:"tok-heading"},{tag:Jl.emphasis,class:"tok-emphasis"},{tag:Jl.strong,class:"tok-strong"},{tag:Jl.keyword,class:"tok-keyword"},{tag:Jl.atom,class:"tok-atom"},{tag:Jl.bool,class:"tok-bool"},{tag:Jl.url,class:"tok-url"},{tag:Jl.labelName,class:"tok-labelName"},{tag:Jl.inserted,class:"tok-inserted"},{tag:Jl.deleted,class:"tok-deleted"},{tag:Jl.literal,class:"tok-literal"},{tag:Jl.string,class:"tok-string"},{tag:Jl.number,class:"tok-number"},{tag:[Jl.regexp,Jl.escape,Jl.special(Jl.string)],class:"tok-string2"},{tag:Jl.variableName,class:"tok-variableName"},{tag:Jl.local(Jl.variableName),class:"tok-variableName tok-local"},{tag:Jl.definition(Jl.variableName),class:"tok-variableName tok-definition"},{tag:Jl.special(Jl.variableName),class:"tok-variableName2"},{tag:Jl.definition(Jl.propertyName),class:"tok-propertyName tok-definition"},{tag:Jl.typeName,class:"tok-typeName"},{tag:Jl.namespace,class:"tok-namespace"},{tag:Jl.className,class:"tok-className"},{tag:Jl.macroName,class:"tok-macroName"},{tag:Jl.propertyName,class:"tok-propertyName"},{tag:Jl.operator,class:"tok-operator"},{tag:Jl.comment,class:"tok-comment"},{tag:Jl.meta,class:"tok-meta"},{tag:Jl.invalid,class:"tok-invalid"},{tag:Jl.punctuation,class:"tok-punctuation"}]);const $l=new XI;function _l(M){return Ke.define({combine:M?i=>i.concat(M):void 0})}const ql=new XI;class Kl{constructor(M,i,t=[],e=""){this.data=M,this.name=e,vN.prototype.hasOwnProperty("tree")||Object.defineProperty(vN.prototype,"tree",{get(){return tr(this)}}),this.parser=i,this.extension=[lr.of(this),vN.languageData.of(((M,i,t)=>{let e=Mr(M,i,t),N=e.type.prop($l);if(!N)return[];let s=M.facet(N),u=e.type.prop(ql);if(u){let N=e.resolve(i-e.from,t);for(let i of u)if(i.test(N,M)){let t=M.facet(i.facet);return"replace"==i.type?t:t.concat(s)}}return s}))].concat(t)}isActiveAt(M,i,t=-1){return Mr(M,i,t).type.prop($l)==this.data}findRegions(M){let i=M.facet(lr);if((null==i?void 0:i.data)==this.data)return[{from:0,to:M.doc.length}];if(!i||!i.allowsNesting)return[];let t=[],e=(M,i)=>{if(M.prop($l)==this.data)return void t.push({from:i,to:i+M.length});let N=M.prop(XI.mounted);if(N){if(N.tree.prop($l)==this.data){if(N.overlay)for(let M of N.overlay)t.push({from:M.from+i,to:M.to+i});else t.push({from:i,to:i+M.length});return}if(N.overlay){let M=t.length;if(e(N.tree,N.overlay[0].from+i),t.length>M)return}}for(let t=0;t<M.children.length;t++){let N=M.children[t];N instanceof il&&e(N,M.positions[t]+i)}};return e(tr(M),0),t}get allowsNesting(){return!0}}function Mr(M,i,t){let e=M.facet(lr),N=tr(M).topNode;if(!e||e.allowsNesting)for(let M=N;M;M=M.enter(i,t,Ml.ExcludeBuffers))M.type.isTop&&(N=M);return N}Kl.setState=QN.define();class ir extends Kl{constructor(M,i,t){super(M,i,[],t),this.parser=i}static define(M){let i=_l(M.languageData);return new ir(i,M.parser.configure({props:[$l.add((M=>M.isTop?i:void 0))]}),M.name)}configure(M,i){return new ir(this.data,this.parser.configure(M),i||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function tr(M){let i=M.field(Kl.state,!1);return i?i.tree:il.empty}class er{constructor(M){this.doc=M,this.cursorPos=0,this.string="",this.cursor=M.iter()}get length(){return this.doc.length}syncTo(M){return this.string=this.cursor.next(M-this.cursorPos).value,this.cursorPos=M+this.string.length,this.cursorPos-this.string.length}chunk(M){return this.syncTo(M),this.string}get lineChunks(){return!0}read(M,i){let t=this.cursorPos-this.string.length;return M<t||i>=this.cursorPos?this.doc.sliceString(M,i):this.string.slice(M-t,i-t)}}let Nr=null;class sr{constructor(M,i,t=[],e,N,s,u,D){this.parser=M,this.state=i,this.fragments=t,this.tree=e,this.treeLen=N,this.viewport=s,this.skipped=u,this.scheduleOn=D,this.parse=null,this.tempSkipped=[]}static create(M,i,t){return new sr(M,i,[],il.empty,0,t,[],null)}startParse(){return this.parser.startParse(new er(this.state.doc),this.fragments)}work(M,i){return null!=i&&i>=this.state.doc.length&&(i=void 0),this.tree!=il.empty&&this.isDone(null!=i?i:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var t;if("number"==typeof M){let i=Date.now()+M;M=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),null!=i&&(null==this.parse.stoppedAt||this.parse.stoppedAt>i)&&i<this.state.doc.length&&this.parse.stopAt(i);;){let e=this.parse.advance();if(e){if(this.fragments=this.withoutTempSkipped(hl.addTree(e,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(t=this.parse.stoppedAt)&&void 0!==t?t:this.state.doc.length,this.tree=e,this.parse=null,!(this.treeLen<(null!=i?i:this.state.doc.length)))return!0;this.parse=this.startParse()}if(M())return!1}}))}takeTree(){let M,i;this.parse&&(M=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>M)&&this.parse.stopAt(M),this.withContext((()=>{for(;!(i=this.parse.advance()););})),this.treeLen=M,this.tree=i,this.fragments=this.withoutTempSkipped(hl.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(M){let i=Nr;Nr=this;try{return M()}finally{Nr=i}}withoutTempSkipped(M){for(let i;i=this.tempSkipped.pop();)M=ur(M,i.from,i.to);return M}changes(M,i){let{fragments:t,tree:e,treeLen:N,viewport:s,skipped:u}=this;if(this.takeTree(),!M.empty){let i=[];if(M.iterChangedRanges(((M,t,e,N)=>i.push({fromA:M,toA:t,fromB:e,toB:N}))),t=hl.applyChanges(t,i),e=il.empty,N=0,s={from:M.mapPos(s.from,-1),to:M.mapPos(s.to,1)},this.skipped.length){u=[];for(let i of this.skipped){let t=M.mapPos(i.from,1),e=M.mapPos(i.to,-1);t<e&&u.push({from:t,to:e})}}}return new sr(this.parser,i,t,e,N,s,u,this.scheduleOn)}updateViewport(M){if(this.viewport.from==M.from&&this.viewport.to==M.to)return!1;this.viewport=M;let i=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:t,to:e}=this.skipped[i];t<M.to&&e>M.from&&(this.fragments=ur(this.fragments,t,e),this.skipped.splice(i--,1))}return!(this.skipped.length>=i)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(M,i){this.skipped.push({from:M,to:i})}static getSkippingParser(M){return new class extends zl{createParse(i,t,e){let N=e[0].from,s=e[e.length-1].to,u={parsedPos:N,advance(){let i=Nr;if(i){for(let M of e)i.tempSkipped.push(M);M&&(i.scheduleOn=i.scheduleOn?Promise.all([i.scheduleOn,M]):M)}return this.parsedPos=s,new il($I.none,[],[],s-N)},stoppedAt:null,stopAt(){}};return u}}}isDone(M){M=Math.min(M,this.state.doc.length);let i=this.fragments;return this.treeLen>=M&&i.length&&0==i[0].from&&i[0].to>=M}static get(){return Nr}}function ur(M,i,t){return hl.applyChanges(M,[{fromA:i,toA:t,fromB:i,toB:t}])}class Dr{constructor(M){this.context=M,this.tree=M.tree}apply(M){if(!M.docChanged&&this.tree==this.context.tree)return this;let i=this.context.changes(M.changes,M.state),t=this.context.treeLen==M.startState.doc.length?void 0:Math.max(M.changes.mapPos(this.context.treeLen),i.viewport.to);return i.work(20,t)||i.takeTree(),new Dr(i)}static init(M){let i=Math.min(3e3,M.doc.length),t=sr.create(M.facet(lr).parser,M,{from:0,to:i});return t.work(20,i)||t.takeTree(),new Dr(t)}}Kl.state=uN.define({create:Dr.init,update(M,i){for(let M of i.effects)if(M.is(Kl.setState))return M.value;return i.startState.facet(lr)!=i.state.facet(lr)?Dr.init(i.state):M.apply(i)}});let nr=M=>{let i=setTimeout((()=>M()),500);return()=>clearTimeout(i)};"undefined"!=typeof requestIdleCallback&&(nr=M=>{let i=-1,t=setTimeout((()=>{i=requestIdleCallback(M,{timeout:400})}),100);return()=>i<0?clearTimeout(t):cancelIdleCallback(i)});const jr="undefined"!=typeof navigator&&(null===(Hl=navigator.scheduling)||void 0===Hl?void 0:Hl.isInputPending)?()=>navigator.scheduling.isInputPending():null,Ir=nD.fromClass(class{constructor(M){this.view=M,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(M){let i=this.view.state.field(Kl.state).context;(i.updateViewport(M.view.viewport)||this.view.viewport.to>i.treeLen)&&this.scheduleWork(),(M.docChanged||M.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(i)}scheduleWork(){if(this.working)return;let{state:M}=this.view,i=M.field(Kl.state);i.tree==i.context.tree&&i.context.isDone(M.doc.length)||(this.working=nr(this.work))}work(M){this.working=null;let i=Date.now();if(this.chunkEnd<i&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=i+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:t,viewport:{to:e}}=this.view,N=t.field(Kl.state);if(N.tree==N.context.tree&&N.context.isDone(e+1e5))return;let s=Date.now()+Math.min(this.chunkBudget,100,M&&!jr?Math.max(25,M.timeRemaining()-5):1e9),u=N.context.treeLen<e&&t.doc.length>e+1e3,D=N.context.work((()=>jr&&jr()||Date.now()>s),e+(u?0:1e5));this.chunkBudget-=Date.now()-i,(D||this.chunkBudget<=0)&&(N.context.takeTree(),this.view.dispatch({effects:Kl.setState.of(new Dr(N.context))})),this.chunkBudget>0&&(!D||u)&&this.scheduleWork(),this.checkAsyncSchedule(N.context)}checkAsyncSchedule(M){M.scheduleOn&&(this.workScheduled++,M.scheduleOn.then((()=>this.scheduleWork())).catch((M=>ND(this.view.state,M))).then((()=>this.workScheduled--)),M.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),lr=Ke.define({combine:M=>M.length?M[0]:null,enables:M=>[Kl.state,Ir,uj.contentAttributes.compute([M],(i=>{let t=i.facet(M);return t&&t.name?{"data-language":t.name}:{}}))]});class rr{constructor(M,i=[]){this.language=M,this.support=i,this.extension=[M,i]}}const or=Ke.define(),gr=Ke.define({combine:M=>{if(!M.length)return" ";let i=M[0];if(!i||/\S/.test(i)||Array.from(i).some((M=>M!=i[0])))throw new Error("Invalid indent unit: "+JSON.stringify(M[0]));return i}});function cr(M){let i=M.facet(gr);return 9==i.charCodeAt(0)?M.tabSize*i.length:i.length}function ar(M,i){let t="",e=M.tabSize,N=M.facet(gr)[0];if("\t"==N){for(;i>=e;)t+="\t",i-=e;N=" "}for(let M=0;M<i;M++)t+=N;return t}function Or(M,i){M instanceof vN&&(M=new Tr(M));for(let t of M.state.facet(or)){let e=t(M,i);if(void 0!==e)return e}let t=tr(M.state);return t.length>=i?function(M,i,t){let e=i.resolveStack(t),N=e.node.enterUnfinishedNodesBefore(t);if(N!=e.node){let M=[];for(let i=N;i!=e.node;i=i.parent)M.push(i);for(let i=M.length-1;i>=0;i--)e={node:M[i],next:e}}return hr(e,M,t)}(M,t,i):null}class Tr{constructor(M,i={}){this.state=M,this.options=i,this.unit=cr(M)}lineAt(M,i=1){let t=this.state.doc.lineAt(M),{simulateBreak:e,simulateDoubleBreak:N}=this.options;return null!=e&&e>=t.from&&e<=t.to?N&&e==M?{text:"",from:M}:(i<0?e<M:e<=M)?{text:t.text.slice(e-t.from),from:e}:{text:t.text.slice(0,e-t.from),from:t.from}:t}textAfterPos(M,i=1){if(this.options.simulateDoubleBreak&&M==this.options.simulateBreak)return"";let{text:t,from:e}=this.lineAt(M,i);return t.slice(M-e,Math.min(t.length,M+100-e))}column(M,i=1){let{text:t,from:e}=this.lineAt(M,i),N=this.countColumn(t,M-e),s=this.options.overrideIndentation?this.options.overrideIndentation(e):-1;return s>-1&&(N+=s-this.countColumn(t,t.search(/\S|$/))),N}countColumn(M,i=M.length){return ss(M,this.state.tabSize,i)}lineIndent(M,i=1){let{text:t,from:e}=this.lineAt(M,i),N=this.options.overrideIndentation;if(N){let M=N(e);if(M>-1)return M}return this.countColumn(t,t.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Lr=new XI;function hr(M,i,t){for(let e=M;e;e=e.next){let M=zr(e.node);if(M)return M(dr.create(i,t,e))}return 0}function zr(M){let i=M.type.prop(Lr);if(i)return i;let t,e=M.firstChild;if(e&&(t=e.type.prop(XI.closedBy))){let i=M.lastChild,e=i&&t.indexOf(i.name)>-1;return M=>wr(M,!0,1,void 0,e&&!function(M){return M.pos==M.options.simulateBreak&&M.options.simulateDoubleBreak}(M)?i.from:void 0)}return null==M.parent?yr:null}function yr(){return 0}class dr extends Tr{constructor(M,i,t){super(M.state,M.options),this.base=M,this.pos=i,this.context=t}get node(){return this.context.node}static create(M,i,t){return new dr(M,i,t)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(M){let i=this.state.doc.lineAt(M.from);for(;;){let t=M.resolve(i.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(Ar(t,M))break;i=this.state.doc.lineAt(t.from)}return this.lineIndent(i.from)}continue(){return hr(this.context.next,this.base,this.pos)}}function Ar(M,i){for(let t=i;t;t=t.parent)if(M==t)return!0;return!1}function xr({closing:M,align:i=!0,units:t=1}){return e=>wr(e,i,t,M)}function wr(M,i,t,e,N){let s=M.textAfter,u=s.match(/^\s*/)[0].length,D=e&&s.slice(u,u+e.length)==e||N==M.pos+u,n=i?function(M){let i=M.node,t=i.childAfter(i.from),e=i.lastChild;if(!t)return null;let N=M.options.simulateBreak,s=M.state.doc.lineAt(t.from),u=null==N||N<=s.from?s.to:Math.min(s.to,N);for(let M=t.to;;){let N=i.childAfter(M);if(!N||N==e)return null;if(!N.type.isSkipped)return N.from<u?t:null;M=N.to}}(M):null;return n?D?M.column(n.from):M.column(n.to):M.baseIndent+(D?0:M.unit*t)}function Sr({except:M,units:i=1}={}){return t=>{let e=M&&M.test(t.textAfter);return t.baseIndent+(e?0:i*t.unit)}}const Er=Ke.define(),Qr=new XI;function kr(M){let i=M.lastChild;return i&&i.to==M.to&&i.type.isError}function Cr(M,i,t){for(let e of M.facet(Er)){let N=e(M,i,t);if(N)return N}return function(M,i,t){let e=tr(M);if(e.length<t)return null;let N=null;for(let s=e.resolveStack(t,1);s;s=s.next){let u=s.node;if(u.to<=t||u.from>t)continue;if(N&&u.from<i)break;let D=u.type.prop(Qr);if(D&&(u.to<e.length-50||e.length==M.doc.length||!kr(u))){let e=D(u,M);e&&e.from<=t&&e.from>=i&&e.to>t&&(N=e)}}return N}(M,i,t)}function pr(M,i){let t=i.mapPos(M.from,1),e=i.mapPos(M.to,-1);return t>=e?void 0:{from:t,to:e}}const Ur=QN.define({map:pr}),br=QN.define({map:pr});function Zr(M){let i=[];for(let{head:t}of M.state.selection.ranges)i.some((M=>M.from<=t&&M.to>=t))||i.push(M.lineBlockAt(t));return i}const mr=uN.define({create:()=>Lu.none,update(M,i){M=M.map(i.changes);for(let t of i.effects)if(t.is(Ur)&&!fr(M,t.value.from,t.value.to)){let{preparePlaceholder:e}=i.state.facet(Pr),N=e?Lu.replace({widget:new Xr(e(i.state,t.value))}):Fr;M=M.update({add:[N.range(t.value.from,t.value.to)]})}else t.is(br)&&(M=M.update({filter:(M,i)=>t.value.from!=M||t.value.to!=i,filterFrom:t.value.from,filterTo:t.value.to}));if(i.selection){let t=!1,{head:e}=i.selection.main;M.between(e,e,((M,i)=>{M<e&&i>e&&(t=!0)})),t&&(M=M.update({filterFrom:e,filterTo:e,filter:(M,i)=>i<=e||M>=e}))}return M},provide:M=>uj.decorations.from(M),toJSON(M,i){let t=[];return M.between(0,i.doc.length,((M,i)=>{t.push(M,i)})),t},fromJSON(M){if(!Array.isArray(M)||M.length%2)throw new RangeError("Invalid JSON for fold state");let i=[];for(let t=0;t<M.length;){let e=M[t++],N=M[t++];if("number"!=typeof e||"number"!=typeof N)throw new RangeError("Invalid JSON for fold state");i.push(Fr.range(e,N))}return Lu.set(i,!0)}});function Yr(M,i,t){var e;let N=null;return null===(e=M.field(mr,!1))||void 0===e||e.between(i,t,((M,i)=>{(!N||N.from>M)&&(N={from:M,to:i})})),N}function fr(M,i,t){let e=!1;return M.between(i,i,((M,N)=>{M==i&&N==t&&(e=!0)})),e}function Wr(M,i){return M.field(mr,!1)?i:i.concat(QN.appendConfig.of(Rr()))}function Vr(M,i,t=!0){let e=M.state.doc.lineAt(i.from).number,N=M.state.doc.lineAt(i.to).number;return uj.announce.of(`${M.state.phrase(t?"Folded lines":"Unfolded lines")} ${e} ${M.state.phrase("to")} ${N}.`)}const vr=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:M=>{for(let i of Zr(M)){let t=Cr(M.state,i.from,i.to);if(t)return M.dispatch({effects:Wr(M.state,[Ur.of(t),Vr(M,t)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:M=>{if(!M.state.field(mr,!1))return!1;let i=[];for(let t of Zr(M)){let e=Yr(M.state,t.from,t.to);e&&i.push(br.of(e),Vr(M,e,!1))}return i.length&&M.dispatch({effects:i}),i.length>0}},{key:"Ctrl-Alt-[",run:M=>{let{state:i}=M,t=[];for(let e=0;e<i.doc.length;){let N=M.lineBlockAt(e),s=Cr(i,N.from,N.to);s&&t.push(Ur.of(s)),e=(s?M.lineBlockAt(s.to):N).to+1}return t.length&&M.dispatch({effects:Wr(M.state,t)}),!!t.length}},{key:"Ctrl-Alt-]",run:M=>{let i=M.state.field(mr,!1);if(!i||!i.size)return!1;let t=[];return i.between(0,M.state.doc.length,((M,i)=>{t.push(br.of({from:M,to:i}))})),M.dispatch({effects:t}),!0}}],Gr={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Pr=Ke.define({combine:M=>GN(M,Gr)});function Rr(M){let i=[mr,$r];return M&&i.push(Pr.of(M)),i}function Br(M,i){let{state:t}=M,e=t.facet(Pr),N=i=>{let t=M.lineBlockAt(M.posAtDOM(i.target)),e=Yr(M.state,t.from,t.to);e&&M.dispatch({effects:br.of(e)}),i.preventDefault()};if(e.placeholderDOM)return e.placeholderDOM(M,N,i);let s=document.createElement("span");return s.textContent=e.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=N,s}const Fr=Lu.replace({widget:new class extends Ou{toDOM(M){return Br(M,null)}}});class Xr extends Ou{constructor(M){super(),this.value=M}eq(M){return this.value==M.value}toDOM(M){return Br(M,this.value)}}const Jr={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Hr extends dI{constructor(M,i){super(),this.config=M,this.open=i}eq(M){return this.config==M.config&&this.open==M.open}toDOM(M){if(this.config.markerDOM)return this.config.markerDOM(this.open);let i=document.createElement("span");return i.textContent=this.open?this.config.openText:this.config.closedText,i.title=M.state.phrase(this.open?"Fold line":"Unfold line"),i}}const $r=uj.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class _r{constructor(M,i){let t;function e(M){let i=Is.newName();return(t||(t=Object.create(null)))["."+i]=M,i}this.specs=M;const N="string"==typeof i.all?i.all:i.all?e(i.all):void 0,s=i.scope;this.scope=s instanceof Kl?M=>M.prop($l)==s.data:s?M=>M==s:void 0,this.style=kl(M.map((M=>({tag:M.tag,class:M.class||e(Object.assign({},M,{tag:null}))}))),{all:N}).style,this.module=t?new Is(t):null,this.themeType=i.themeType}static define(M,i){return new _r(M,i||{})}}const qr=Ke.define(),Kr=Ke.define({combine:M=>M.length?[M[0]]:null});function Mo(M){let i=M.facet(qr);return i.length?i:M.facet(Kr)}class io{constructor(M){this.markCache=Object.create(null),this.tree=tr(M.state),this.decorations=this.buildDeco(M,Mo(M.state))}update(M){let i=tr(M.state),t=Mo(M.state),e=t!=Mo(M.startState);i.length<M.view.viewport.to&&!e&&i.type==this.tree.type?this.decorations=this.decorations.map(M.changes):(i!=this.tree||M.viewportChanged||e)&&(this.tree=i,this.decorations=this.buildDeco(M.view,t))}buildDeco(M,i){if(!i||!this.tree.length)return Lu.none;let t=new JN;for(let{from:e,to:N}of M.visibleRanges)Cl(this.tree,i,((M,i,e)=>{t.add(M,i,this.markCache[e]||(this.markCache[e]=Lu.mark({class:e})))}),e,N);return t.finish()}}const to=rN.high(nD.fromClass(io,{decorations:M=>M.decorations})),eo=_r.define([{tag:Jl.meta,color:"#404740"},{tag:Jl.link,textDecoration:"underline"},{tag:Jl.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Jl.emphasis,fontStyle:"italic"},{tag:Jl.strong,fontWeight:"bold"},{tag:Jl.strikethrough,textDecoration:"line-through"},{tag:Jl.keyword,color:"#708"},{tag:[Jl.atom,Jl.bool,Jl.url,Jl.contentSeparator,Jl.labelName],color:"#219"},{tag:[Jl.literal,Jl.inserted],color:"#164"},{tag:[Jl.string,Jl.deleted],color:"#a11"},{tag:[Jl.regexp,Jl.escape,Jl.special(Jl.string)],color:"#e40"},{tag:Jl.definition(Jl.variableName),color:"#00f"},{tag:Jl.local(Jl.variableName),color:"#30a"},{tag:[Jl.typeName,Jl.namespace],color:"#085"},{tag:Jl.className,color:"#167"},{tag:[Jl.special(Jl.variableName),Jl.macroName],color:"#256"},{tag:Jl.definition(Jl.propertyName),color:"#00c"},{tag:Jl.comment,color:"#940"},{tag:Jl.invalid,color:"#f00"}]),No=uj.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),so=1e4,uo="()[]{}",Do=Ke.define({combine:M=>GN(M,{afterCursor:!0,brackets:uo,maxScanDistance:so,renderMatch:Io})}),no=Lu.mark({class:"cm-matchingBracket"}),jo=Lu.mark({class:"cm-nonmatchingBracket"});function Io(M){let i=[],t=M.matched?no:jo;return i.push(t.range(M.start.from,M.start.to)),M.end&&i.push(t.range(M.end.from,M.end.to)),i}const lo=uN.define({create:()=>Lu.none,update(M,i){if(!i.docChanged&&!i.selection)return M;let t=[],e=i.state.facet(Do);for(let M of i.state.selection.ranges){if(!M.empty)continue;let N=ao(i.state,M.head,-1,e)||M.head>0&&ao(i.state,M.head-1,1,e)||e.afterCursor&&(ao(i.state,M.head,1,e)||M.head<i.state.doc.length&&ao(i.state,M.head+1,-1,e));N&&(t=t.concat(e.renderMatch(N,i.state)))}return Lu.set(t,!0)},provide:M=>uj.decorations.from(M)}),ro=[lo,No];const oo=new XI;function go(M,i,t){let e=M.prop(i<0?XI.openedBy:XI.closedBy);if(e)return e;if(1==M.name.length){let e=t.indexOf(M.name);if(e>-1&&e%2==(i<0?1:0))return[t[e+i]]}return null}function co(M){let i=M.type.prop(oo);return i?i(M.node):M}function ao(M,i,t,e={}){let N=e.maxScanDistance||so,s=e.brackets||uo,u=tr(M),D=u.resolveInner(i,t);for(let e=D;e;e=e.parent){let N=go(e.type,t,s);if(N&&e.from<e.to){let u=co(e);if(u&&(t>0?i>=u.from&&i<u.to:i>u.from&&i<=u.to))return Oo(M,i,t,e,u,N,s)}}return function(M,i,t,e,N,s,u){let D=t<0?M.sliceDoc(i-1,i):M.sliceDoc(i,i+1),n=u.indexOf(D);if(n<0||n%2==0!=t>0)return null;let j={from:t<0?i-1:i,to:t>0?i+1:i},I=M.doc.iterRange(i,t>0?M.doc.length:0),l=0;for(let M=0;!I.next().done&&M<=s;){let s=I.value;t<0&&(M+=s.length);let D=i+M*t;for(let M=t>0?0:s.length-1,i=t>0?s.length:-1;M!=i;M+=t){let i=u.indexOf(s[M]);if(!(i<0||e.resolveInner(D+M,1).type!=N))if(i%2==0==t>0)l++;else{if(1==l)return{start:j,end:{from:D+M,to:D+M+1},matched:i>>1==n>>1};l--}}t>0&&(M+=s.length)}return I.done?{start:j,matched:!1}:null}(M,i,t,u,D.type,N,s)}function Oo(M,i,t,e,N,s,u){let D=e.parent,n={from:N.from,to:N.to},j=0,I=null==D?void 0:D.cursor();if(I&&(t<0?I.childBefore(e.from):I.childAfter(e.to)))do{if(t<0?I.to<=e.from:I.from>=e.to){if(0==j&&s.indexOf(I.type.name)>-1&&I.from<I.to){let M=co(I);return{start:n,end:M?{from:M.from,to:M.to}:void 0,matched:!0}}if(go(I.type,t,u))j++;else if(go(I.type,-t,u)){if(0==j){let M=co(I);return{start:n,end:M&&M.from<M.to?{from:M.from,to:M.to}:void 0,matched:!1}}j--}}}while(t<0?I.prevSibling():I.nextSibling());return{start:n,matched:!1}}const To=Object.create(null),Lo=[$I.none],ho=[],zo=Object.create(null),yo=Object.create(null);for(let[M,i]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])yo[M]=xo(To,i);function Ao(M,i){ho.indexOf(M)>-1||(ho.push(M),console.warn(i))}function xo(M,i){let t=[];for(let e of i.split(" ")){let i=[];for(let t of e.split(".")){let e=M[t]||Jl[t];e?"function"==typeof e?i.length?i=i.map(e):Ao(t,`Modifier ${t} used at start of tag`):i.length?Ao(t,`Tag ${t} used as modifier`):i=Array.isArray(e)?e:[e]:Ao(t,`Unknown highlighting tag ${t}`)}for(let M of i)t.push(M)}if(!t.length)return 0;let e=i.replace(/ /g,"_"),N=e+" "+t.map((M=>M.id)),s=zo[N];if(s)return s.id;let u=zo[N]=$I.define({id:Lo.length,name:e,props:[Sl({[e]:t})]});return Lo.push(u),u.id}Eu.RTL,Eu.LTR;function wo(M,i){return({state:t,dispatch:e})=>{if(t.readOnly)return!1;let N=M(i,t);return!!N&&(e(t.update(N)),!0)}}const So=wo(Uo,0),Eo=wo(po,0),Qo=wo(((M,i)=>po(M,i,function(M){let i=[];for(let t of M.selection.ranges){let e=M.doc.lineAt(t.from),N=t.to<=e.to?e:M.doc.lineAt(t.to),s=i.length-1;s>=0&&i[s].to>e.from?i[s].to=N.to:i.push({from:e.from+/^\s*/.exec(e.text)[0].length,to:N.to})}return i}(i))),0);function ko(M,i){let t=M.languageDataAt("commentTokens",i);return t.length?t[0]:{}}const Co=50;function po(M,i,t=i.selection.ranges){let e=t.map((M=>ko(i,M.from).block));if(!e.every((M=>M)))return null;let N=t.map(((M,t)=>function(M,{open:i,close:t},e,N){let s,u,D=M.sliceDoc(e-Co,e),n=M.sliceDoc(N,N+Co),j=/\s*$/.exec(D)[0].length,I=/^\s*/.exec(n)[0].length,l=D.length-j;if(D.slice(l-i.length,l)==i&&n.slice(I,I+t.length)==t)return{open:{pos:e-j,margin:j&&1},close:{pos:N+I,margin:I&&1}};N-e<=2*Co?s=u=M.sliceDoc(e,N):(s=M.sliceDoc(e,e+Co),u=M.sliceDoc(N-Co,N));let r=/^\s*/.exec(s)[0].length,o=/\s*$/.exec(u)[0].length,g=u.length-o-t.length;return s.slice(r,r+i.length)==i&&u.slice(g,g+t.length)==t?{open:{pos:e+r+i.length,margin:/\s/.test(s.charAt(r+i.length))?1:0},close:{pos:N-o-t.length,margin:/\s/.test(u.charAt(g-1))?1:0}}:null}(i,e[t],M.from,M.to)));if(2!=M&&!N.every((M=>M)))return{changes:i.changes(t.map(((M,i)=>N[i]?[]:[{from:M.from,insert:e[i].open+" "},{from:M.to,insert:" "+e[i].close}])))};if(1!=M&&N.some((M=>M))){let M=[];for(let i,t=0;t<N.length;t++)if(i=N[t]){let N=e[t],{open:s,close:u}=i;M.push({from:s.pos-N.open.length,to:s.pos+s.margin},{from:u.pos-u.margin,to:u.pos+N.close.length})}return{changes:M}}return null}function Uo(M,i,t=i.selection.ranges){let e=[],N=-1;for(let{from:M,to:s}of t){let t=e.length,u=1e9,D=ko(i,M).line;if(D){for(let t=M;t<=s;){let n=i.doc.lineAt(t);if(n.from>N&&(M==s||s>n.from)){N=n.from;let M=/^\s*/.exec(n.text)[0].length,i=M==n.length,t=n.text.slice(M,M+D.length)==D?M:-1;M<n.text.length&&M<u&&(u=M),e.push({line:n,comment:t,token:D,indent:M,empty:i,single:!1})}t=n.to+1}if(u<1e9)for(let M=t;M<e.length;M++)e[M].indent<e[M].line.text.length&&(e[M].indent=u);e.length==t+1&&(e[t].single=!0)}}if(2!=M&&e.some((M=>M.comment<0&&(!M.empty||M.single)))){let M=[];for(let{line:i,token:t,indent:N,empty:s,single:u}of e)!u&&s||M.push({from:i.from+N,insert:t+" "});let t=i.changes(M);return{changes:t,selection:i.selection.map(t,1)}}if(1!=M&&e.some((M=>M.comment>=0))){let M=[];for(let{line:i,comment:t,token:N}of e)if(t>=0){let e=i.from+t,s=e+N.length;" "==i.text[s-i.from]&&s++,M.push({from:e,to:s})}return{changes:M}}return null}const bo=wN.define(),Zo=wN.define(),mo=Ke.define(),Yo=Ke.define({combine:M=>GN(M,{minDepth:100,newGroupDelay:500,joinToEvent:(M,i)=>i},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(M,i)=>(t,e)=>M(t,e)||i(t,e)})}),fo=uN.define({create:()=>Mg.empty,update(M,i){let t=i.state.facet(Yo),e=i.annotation(bo);if(e){let N=Ro.fromTransaction(i,e.selection),s=e.side,u=0==s?M.undone:M.done;return u=N?Bo(u,u.length,t.minDepth,N):Ho(u,i.startState.selection),new Mg(0==s?e.rest:u,0==s?u:e.rest)}let N=i.annotation(Zo);if("full"!=N&&"before"!=N||(M=M.isolate()),!1===i.annotation(kN.addToHistory))return i.changes.empty?M:M.addMapping(i.changes.desc);let s=Ro.fromTransaction(i),u=i.annotation(kN.time),D=i.annotation(kN.userEvent);return s?M=M.addChanges(s,u,D,t,i):i.selection&&(M=M.addSelection(i.startState.selection,u,D,t.newGroupDelay)),"full"!=N&&"after"!=N||(M=M.isolate()),M},toJSON:M=>({done:M.done.map((M=>M.toJSON())),undone:M.undone.map((M=>M.toJSON()))}),fromJSON:M=>new Mg(M.done.map(Ro.fromJSON),M.undone.map(Ro.fromJSON))});function Wo(M,i){return function({state:t,dispatch:e}){if(!i&&t.readOnly)return!1;let N=t.field(fo,!1);if(!N)return!1;let s=N.pop(M,t,i);return!!s&&(e(s),!0)}}const Vo=Wo(0,!1),vo=Wo(1,!1),Go=Wo(0,!0),Po=Wo(1,!0);class Ro{constructor(M,i,t,e,N){this.changes=M,this.effects=i,this.mapped=t,this.startSelection=e,this.selectionsAfter=N}setSelAfter(M){return new Ro(this.changes,this.effects,this.mapped,this.startSelection,M)}toJSON(){var M,i,t;return{changes:null===(M=this.changes)||void 0===M?void 0:M.toJSON(),mapped:null===(i=this.mapped)||void 0===i?void 0:i.toJSON(),startSelection:null===(t=this.startSelection)||void 0===t?void 0:t.toJSON(),selectionsAfter:this.selectionsAfter.map((M=>M.toJSON()))}}static fromJSON(M){return new Ro(M.changes&&Ge.fromJSON(M.changes),[],M.mapped&&ve.fromJSON(M.mapped),M.startSelection&&$e.fromJSON(M.startSelection),M.selectionsAfter.map($e.fromJSON))}static fromTransaction(M,i){let t=Xo;for(let i of M.startState.facet(mo)){let e=i(M);e.length&&(t=t.concat(e))}return!t.length&&M.changes.empty?null:new Ro(M.changes.invert(M.startState.doc),t,void 0,i||M.startState.selection,Xo)}static selection(M){return new Ro(void 0,Xo,void 0,void 0,M)}}function Bo(M,i,t,e){let N=i+1>t+20?i-t-1:0,s=M.slice(N,i);return s.push(e),s}function Fo(M,i){return M.length?i.length?M.concat(i):M:i}const Xo=[],Jo=200;function Ho(M,i){if(M.length){let t=M[M.length-1],e=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Jo));return e.length&&e[e.length-1].eq(i)?M:(e.push(i),Bo(M,M.length-1,1e9,t.setSelAfter(e)))}return[Ro.selection([i])]}function $o(M){let i=M[M.length-1],t=M.slice();return t[M.length-1]=i.setSelAfter(i.selectionsAfter.slice(0,i.selectionsAfter.length-1)),t}function _o(M,i){if(!M.length)return M;let t=M.length,e=Xo;for(;t;){let N=qo(M[t-1],i,e);if(N.changes&&!N.changes.empty||N.effects.length){let i=M.slice(0,t);return i[t-1]=N,i}i=N.mapped,t--,e=N.selectionsAfter}return e.length?[Ro.selection(e)]:Xo}function qo(M,i,t){let e=Fo(M.selectionsAfter.length?M.selectionsAfter.map((M=>M.map(i))):Xo,t);if(!M.changes)return Ro.selection(e);let N=M.changes.map(i),s=i.mapDesc(M.changes,!0),u=M.mapped?M.mapped.composeDesc(s):s;return new Ro(N,QN.mapEffects(M.effects,i),u,M.startSelection.map(s),e)}const Ko=/^(input\.type|delete)($|\.)/;class Mg{constructor(M,i,t=0,e=void 0){this.done=M,this.undone=i,this.prevTime=t,this.prevUserEvent=e}isolate(){return this.prevTime?new Mg(this.done,this.undone):this}addChanges(M,i,t,e,N){let s=this.done,u=s[s.length-1];return s=u&&u.changes&&!u.changes.empty&&M.changes&&(!t||Ko.test(t))&&(!u.selectionsAfter.length&&i-this.prevTime<e.newGroupDelay&&e.joinToEvent(N,function(M,i){let t=[],e=!1;return M.iterChangedRanges(((M,i)=>t.push(M,i))),i.iterChangedRanges(((M,i,N,s)=>{for(let M=0;M<t.length;){let i=t[M++],u=t[M++];s>=i&&N<=u&&(e=!0)}})),e}(u.changes,M.changes))||"input.type.compose"==t)?Bo(s,s.length-1,e.minDepth,new Ro(M.changes.compose(u.changes),Fo(M.effects,u.effects),u.mapped,u.startSelection,Xo)):Bo(s,s.length,e.minDepth,M),new Mg(s,Xo,i,t)}addSelection(M,i,t,e){let N=this.done.length?this.done[this.done.length-1].selectionsAfter:Xo;return N.length>0&&i-this.prevTime<e&&t==this.prevUserEvent&&t&&/^select($|\.)/.test(t)&&function(M,i){return M.ranges.length==i.ranges.length&&0===M.ranges.filter(((M,t)=>M.empty!=i.ranges[t].empty)).length}(N[N.length-1],M)?this:new Mg(Ho(this.done,M),this.undone,i,t)}addMapping(M){return new Mg(_o(this.done,M),_o(this.undone,M),this.prevTime,this.prevUserEvent)}pop(M,i,t){let e=0==M?this.done:this.undone;if(0==e.length)return null;let N=e[e.length-1],s=N.selectionsAfter[0]||i.selection;if(t&&N.selectionsAfter.length)return i.update({selection:N.selectionsAfter[N.selectionsAfter.length-1],annotations:bo.of({side:M,rest:$o(e),selection:s}),userEvent:0==M?"select.undo":"select.redo",scrollIntoView:!0});if(N.changes){let t=1==e.length?Xo:e.slice(0,e.length-1);return N.mapped&&(t=_o(t,N.mapped)),i.update({changes:N.changes,selection:N.startSelection,effects:N.effects,annotations:bo.of({side:M,rest:t,selection:s}),filter:!1,userEvent:0==M?"undo":"redo",scrollIntoView:!0})}return null}}Mg.empty=new Mg(Xo,Xo);const ig=[{key:"Mod-z",run:Vo,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:vo,preventDefault:!0},{linux:"Ctrl-Shift-z",run:vo,preventDefault:!0},{key:"Mod-u",run:Go,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Po,preventDefault:!0}];function tg(M,i){return $e.create(M.ranges.map(i),M.mainIndex)}function eg(M,i){return M.update({selection:i,scrollIntoView:!0,userEvent:"select"})}function Ng({state:M,dispatch:i},t){let e=tg(M.selection,t);return!e.eq(M.selection,!0)&&(i(eg(M,e)),!0)}function sg(M,i){return $e.cursor(i?M.to:M.from)}function ug(M,i){return Ng(M,(t=>t.empty?M.moveByChar(t,i):sg(t,i)))}function Dg(M){return M.textDirectionAt(M.state.selection.main.head)==Eu.LTR}const ng=M=>ug(M,!Dg(M)),jg=M=>ug(M,Dg(M));function Ig(M,i){return Ng(M,(t=>t.empty?M.moveByGroup(t,i):sg(t,i)))}function lg(M,i,t){if(i.type.prop(t))return!0;let e=i.to-i.from;return e&&(e>2||/[^\s,.;:]/.test(M.sliceDoc(i.from,i.to)))||i.firstChild}function rg(M,i,t){let e,N,s=tr(M).resolveInner(i.head),u=t?XI.closedBy:XI.openedBy;for(let e=i.head;;){let i=t?s.childAfter(e):s.childBefore(e);if(!i)break;lg(M,i,u)?s=i:e=t?i.to:i.from}return N=s.type.prop(u)&&(e=t?ao(M,s.from,1):ao(M,s.to,-1))&&e.matched?t?e.end.to:e.end.from:t?s.to:s.from,$e.cursor(N,t?-1:1)}function og(M,i){return Ng(M,(t=>{if(!t.empty)return sg(t,i);let e=M.moveVertically(t,i);return e.head!=t.head?e:M.moveToLineBoundary(t,i)}))}const gg=M=>og(M,!1),cg=M=>og(M,!0);function ag(M){let i,t=M.scrollDOM.clientHeight<M.scrollDOM.scrollHeight-2,e=0,N=0;if(t){for(let i of M.state.facet(uj.scrollMargins)){let t=i(M);(null==t?void 0:t.top)&&(e=Math.max(null==t?void 0:t.top,e)),(null==t?void 0:t.bottom)&&(N=Math.max(null==t?void 0:t.bottom,N))}i=M.scrollDOM.clientHeight-e-N}else i=(M.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:e,marginBottom:N,selfScroll:t,height:Math.max(M.defaultLineHeight,i-5)}}function Og(M,i){let t,e=ag(M),{state:N}=M,s=tg(N.selection,(t=>t.empty?M.moveVertically(t,i,e.height):sg(t,i)));if(s.eq(N.selection))return!1;if(e.selfScroll){let i=M.coordsAtPos(N.selection.main.head),u=M.scrollDOM.getBoundingClientRect(),D=u.top+e.marginTop,n=u.bottom-e.marginBottom;i&&i.top>D&&i.bottom<n&&(t=uj.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-D}))}return M.dispatch(eg(N,s),{effects:t}),!0}const Tg=M=>Og(M,!1),Lg=M=>Og(M,!0);function hg(M,i,t){let e=M.lineBlockAt(i.head),N=M.moveToLineBoundary(i,t);if(N.head==i.head&&N.head!=(t?e.to:e.from)&&(N=M.moveToLineBoundary(i,t,!1)),!t&&N.head==e.from&&e.length){let t=/^\s*/.exec(M.state.sliceDoc(e.from,Math.min(e.from+100,e.to)))[0].length;t&&i.head!=e.from+t&&(N=$e.cursor(e.from+t))}return N}function zg(M,i){let t=tg(M.state.selection,(M=>{let t=i(M);return $e.range(M.anchor,t.head,t.goalColumn,t.bidiLevel||void 0)}));return!t.eq(M.state.selection)&&(M.dispatch(eg(M.state,t)),!0)}function yg(M,i){return zg(M,(t=>M.moveByChar(t,i)))}const dg=M=>yg(M,!Dg(M)),Ag=M=>yg(M,Dg(M));function xg(M,i){return zg(M,(t=>M.moveByGroup(t,i)))}function wg(M,i){return zg(M,(t=>M.moveVertically(t,i)))}const Sg=M=>wg(M,!1),Eg=M=>wg(M,!0);function Qg(M,i){return zg(M,(t=>M.moveVertically(t,i,ag(M).height)))}const kg=M=>Qg(M,!1),Cg=M=>Qg(M,!0),pg=({state:M,dispatch:i})=>(i(eg(M,{anchor:0})),!0),Ug=({state:M,dispatch:i})=>(i(eg(M,{anchor:M.doc.length})),!0),bg=({state:M,dispatch:i})=>(i(eg(M,{anchor:M.selection.main.anchor,head:0})),!0),Zg=({state:M,dispatch:i})=>(i(eg(M,{anchor:M.selection.main.anchor,head:M.doc.length})),!0);function mg(M,i){if(M.state.readOnly)return!1;let t="delete.selection",{state:e}=M,N=e.changeByRange((e=>{let{from:N,to:s}=e;if(N==s){let u=i(e);u<N?(t="delete.backward",u=Yg(M,u,!1)):u>N&&(t="delete.forward",u=Yg(M,u,!0)),N=Math.min(N,u),s=Math.max(s,u)}else N=Yg(M,N,!1),s=Yg(M,s,!0);return N==s?{range:e}:{changes:{from:N,to:s},range:$e.cursor(N,N<e.head?-1:1)}}));return!N.changes.empty&&(M.dispatch(e.update(N,{scrollIntoView:!0,userEvent:t,effects:"delete.selection"==t?uj.announce.of(e.phrase("Selection deleted")):void 0})),!0)}function Yg(M,i,t){if(M instanceof uj)for(let e of M.state.facet(uj.atomicRanges).map((i=>i(M))))e.between(i,i,((M,e)=>{M<i&&e>i&&(i=t?e:M)}));return i}const fg=(M,i)=>mg(M,(t=>{let e,N,s=t.from,{state:u}=M,D=u.doc.lineAt(s);if(!i&&s>D.from&&s<D.from+200&&!/[^ \t]/.test(e=D.text.slice(0,s-D.from))){if("\t"==e[e.length-1])return s-1;let M=ss(e,u.tabSize)%cr(u)||cr(u);for(let i=0;i<M&&" "==e[e.length-1-i];i++)s--;N=s}else N=Ce(D.text,s-D.from,i,i)+D.from,N==s&&D.number!=(i?u.doc.lines:1)?N+=i?1:-1:!i&&/[\ufe00-\ufe0f]/.test(D.text.slice(N-D.from,s-D.from))&&(N=Ce(D.text,N-D.from,!1,!1)+D.from);return N})),Wg=M=>fg(M,!1),Vg=M=>fg(M,!0),vg=(M,i)=>mg(M,(t=>{let e=t.head,{state:N}=M,s=N.doc.lineAt(e),u=N.charCategorizer(e);for(let M=null;;){if(e==(i?s.to:s.from)){e==t.head&&s.number!=(i?N.doc.lines:1)&&(e+=i?1:-1);break}let D=Ce(s.text,e-s.from,i)+s.from,n=s.text.slice(Math.min(e,D)-s.from,Math.max(e,D)-s.from),j=u(n);if(null!=M&&j!=M)break;" "==n&&e==t.head||(M=j),e=D}return e})),Gg=M=>vg(M,!1);function Pg(M){let i=[],t=-1;for(let e of M.selection.ranges){let N=M.doc.lineAt(e.from),s=M.doc.lineAt(e.to);if(e.empty||e.to!=s.from||(s=M.doc.lineAt(e.to-1)),t>=N.number){let M=i[i.length-1];M.to=s.to,M.ranges.push(e)}else i.push({from:N.from,to:s.to,ranges:[e]});t=s.number+1}return i}function Rg(M,i,t){if(M.readOnly)return!1;let e=[],N=[];for(let i of Pg(M)){if(t?i.to==M.doc.length:0==i.from)continue;let s=M.doc.lineAt(t?i.to+1:i.from-1),u=s.length+1;if(t){e.push({from:i.to,to:s.to},{from:i.from,insert:s.text+M.lineBreak});for(let t of i.ranges)N.push($e.range(Math.min(M.doc.length,t.anchor+u),Math.min(M.doc.length,t.head+u)))}else{e.push({from:s.from,to:i.from},{from:i.to,insert:M.lineBreak+s.text});for(let M of i.ranges)N.push($e.range(M.anchor-u,M.head-u))}}return!!e.length&&(i(M.update({changes:e,scrollIntoView:!0,selection:$e.create(N,M.selection.mainIndex),userEvent:"move.line"})),!0)}function Bg(M,i,t){if(M.readOnly)return!1;let e=[];for(let i of Pg(M))t?e.push({from:i.from,insert:M.doc.slice(i.from,i.to)+M.lineBreak}):e.push({from:i.to,insert:M.lineBreak+M.doc.slice(i.from,i.to)});return i(M.update({changes:e,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Fg=Jg(!1),Xg=Jg(!0);function Jg(M){return({state:i,dispatch:t})=>{if(i.readOnly)return!1;let e=i.changeByRange((t=>{let{from:e,to:N}=t,s=i.doc.lineAt(e),u=!M&&e==N&&function(M,i){if(/\(\)|\[\]|\{\}/.test(M.sliceDoc(i-1,i+1)))return{from:i,to:i};let t,e=tr(M).resolveInner(i),N=e.childBefore(i),s=e.childAfter(i);return N&&s&&N.to<=i&&s.from>=i&&(t=N.type.prop(XI.closedBy))&&t.indexOf(s.name)>-1&&M.doc.lineAt(N.to).from==M.doc.lineAt(s.from).from&&!/\S/.test(M.sliceDoc(N.to,s.from))?{from:N.to,to:s.from}:null}(i,e);M&&(e=N=(N<=s.to?s:i.doc.lineAt(N)).to);let D=new Tr(i,{simulateBreak:e,simulateDoubleBreak:!!u}),n=Or(D,e);for(null==n&&(n=ss(/^\s*/.exec(i.doc.lineAt(e).text)[0],i.tabSize));N<s.to&&/\s/.test(s.text[N-s.from]);)N++;u?({from:e,to:N}=u):e>s.from&&e<s.from+100&&!/\S/.test(s.text.slice(0,e))&&(e=s.from);let j=["",ar(i,n)];return u&&j.push(ar(i,D.lineIndent(s.from,-1))),{changes:{from:e,to:N,insert:Oe.of(j)},range:$e.cursor(e+1+j[1].length)}}));return t(i.update(e,{scrollIntoView:!0,userEvent:"input"})),!0}}function Hg(M,i){let t=-1;return M.changeByRange((e=>{let N=[];for(let s=e.from;s<=e.to;){let u=M.doc.lineAt(s);u.number>t&&(e.empty||e.to>u.from)&&(i(u,N,e),t=u.number),s=u.to+1}let s=M.changes(N);return{changes:N,range:$e.range(s.mapPos(e.anchor,1),s.mapPos(e.head,1))}}))}const $g=[{key:"Ctrl-b",run:ng,shift:dg,preventDefault:!0},{key:"Ctrl-f",run:jg,shift:Ag},{key:"Ctrl-p",run:gg,shift:Sg},{key:"Ctrl-n",run:cg,shift:Eg},{key:"Ctrl-a",run:M=>Ng(M,(i=>$e.cursor(M.lineBlockAt(i.head).from,1))),shift:M=>zg(M,(i=>$e.cursor(M.lineBlockAt(i.head).from)))},{key:"Ctrl-e",run:M=>Ng(M,(i=>$e.cursor(M.lineBlockAt(i.head).to,-1))),shift:M=>zg(M,(i=>$e.cursor(M.lineBlockAt(i.head).to)))},{key:"Ctrl-d",run:Vg},{key:"Ctrl-h",run:Wg},{key:"Ctrl-k",run:M=>mg(M,(i=>{let t=M.lineBlockAt(i.head).to;return i.head<t?t:Math.min(M.state.doc.length,i.head+1)}))},{key:"Ctrl-Alt-h",run:Gg},{key:"Ctrl-o",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=M.changeByRange((M=>({changes:{from:M.from,to:M.to,insert:Oe.of(["",""])},range:$e.cursor(M.from)})));return i(M.update(t,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=M.changeByRange((i=>{if(!i.empty||0==i.from||i.from==M.doc.length)return{range:i};let t=i.from,e=M.doc.lineAt(t),N=t==e.from?t-1:Ce(e.text,t-e.from,!1)+e.from,s=t==e.to?t+1:Ce(e.text,t-e.from,!0)+e.from;return{changes:{from:N,to:s,insert:M.doc.slice(t,s).append(M.doc.slice(N,t))},range:$e.cursor(s)}}));return!t.changes.empty&&(i(M.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Lg}],_g=[{key:"ArrowLeft",run:ng,shift:dg,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:M=>Ig(M,!Dg(M)),shift:M=>xg(M,!Dg(M)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:M=>Ng(M,(i=>hg(M,i,!Dg(M)))),shift:M=>zg(M,(i=>hg(M,i,!Dg(M)))),preventDefault:!0},{key:"ArrowRight",run:jg,shift:Ag,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M=>Ig(M,Dg(M)),shift:M=>xg(M,Dg(M)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:M=>Ng(M,(i=>hg(M,i,Dg(M)))),shift:M=>zg(M,(i=>hg(M,i,Dg(M)))),preventDefault:!0},{key:"ArrowUp",run:gg,shift:Sg,preventDefault:!0},{mac:"Cmd-ArrowUp",run:pg,shift:bg},{mac:"Ctrl-ArrowUp",run:Tg,shift:kg},{key:"ArrowDown",run:cg,shift:Eg,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Ug,shift:Zg},{mac:"Ctrl-ArrowDown",run:Lg,shift:Cg},{key:"PageUp",run:Tg,shift:kg},{key:"PageDown",run:Lg,shift:Cg},{key:"Home",run:M=>Ng(M,(i=>hg(M,i,!1))),shift:M=>zg(M,(i=>hg(M,i,!1))),preventDefault:!0},{key:"Mod-Home",run:pg,shift:bg},{key:"End",run:M=>Ng(M,(i=>hg(M,i,!0))),shift:M=>zg(M,(i=>hg(M,i,!0))),preventDefault:!0},{key:"Mod-End",run:Ug,shift:Zg},{key:"Enter",run:Fg},{key:"Mod-a",run:({state:M,dispatch:i})=>(i(M.update({selection:{anchor:0,head:M.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Wg,shift:Wg},{key:"Delete",run:Vg},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Gg},{key:"Mod-Delete",mac:"Alt-Delete",run:M=>vg(M,!0)},{mac:"Mod-Backspace",run:M=>mg(M,(i=>{let t=M.moveToLineBoundary(i,!1).head;return i.head>t?t:Math.max(0,i.head-1)}))},{mac:"Mod-Delete",run:M=>mg(M,(i=>{let t=M.moveToLineBoundary(i,!0).head;return i.head<t?t:Math.min(M.state.doc.length,i.head+1)}))}].concat($g.map((M=>({mac:M.key,run:M.run,shift:M.shift})))),qg=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:M=>Ng(M,(i=>rg(M.state,i,!Dg(M)))),shift:M=>zg(M,(i=>rg(M.state,i,!Dg(M))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:M=>Ng(M,(i=>rg(M.state,i,Dg(M)))),shift:M=>zg(M,(i=>rg(M.state,i,Dg(M))))},{key:"Alt-ArrowUp",run:({state:M,dispatch:i})=>Rg(M,i,!1)},{key:"Shift-Alt-ArrowUp",run:({state:M,dispatch:i})=>Bg(M,i,!1)},{key:"Alt-ArrowDown",run:({state:M,dispatch:i})=>Rg(M,i,!0)},{key:"Shift-Alt-ArrowDown",run:({state:M,dispatch:i})=>Bg(M,i,!0)},{key:"Escape",run:({state:M,dispatch:i})=>{let t=M.selection,e=null;return t.ranges.length>1?e=$e.create([t.main]):t.main.empty||(e=$e.create([$e.cursor(t.main.head)])),!!e&&(i(eg(M,e)),!0)}},{key:"Mod-Enter",run:Xg},{key:"Alt-l",mac:"Ctrl-l",run:({state:M,dispatch:i})=>{let t=Pg(M).map((({from:i,to:t})=>$e.range(i,Math.min(t+1,M.doc.length))));return i(M.update({selection:$e.create(t),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:M,dispatch:i})=>{let t=tg(M.selection,(i=>{var t;for(let e=tr(M).resolveStack(i.from,1);e;e=e.next){let{node:M}=e;if((M.from<i.from&&M.to>=i.to||M.to>i.to&&M.from<=i.from)&&(null===(t=M.parent)||void 0===t?void 0:t.parent))return $e.range(M.to,M.from)}return i}));return i(eg(M,t)),!0},preventDefault:!0},{key:"Mod-[",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update(Hg(M,((i,t)=>{let e=/^\s*/.exec(i.text)[0];if(!e)return;let N=ss(e,M.tabSize),s=0,u=ar(M,Math.max(0,N-cr(M)));for(;s<e.length&&s<u.length&&e.charCodeAt(s)==u.charCodeAt(s);)s++;t.push({from:i.from+s,to:i.from+e.length,insert:u.slice(s)})})),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update(Hg(M,((i,t)=>{t.push({from:i.from,insert:M.facet(gr)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=Object.create(null),e=new Tr(M,{overrideIndentation:M=>{let i=t[M];return null==i?-1:i}}),N=Hg(M,((i,N,s)=>{let u=Or(e,i.from);if(null==u)return;/\S/.test(i.text)||(u=0);let D=/^\s*/.exec(i.text)[0],n=ar(M,u);(D!=n||s.from<i.from+D.length)&&(t[i.from]=u,N.push({from:i.from,to:i.from+D.length,insert:n}))}));return N.changes.empty||i(M.update(N,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:M=>{if(M.state.readOnly)return!1;let{state:i}=M,t=i.changes(Pg(i).map((({from:M,to:t})=>(M>0?M--:t<i.doc.length&&t++,{from:M,to:t})))),e=tg(i.selection,(i=>M.moveVertically(i,!0))).map(t);return M.dispatch({changes:t,selection:e,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:M,dispatch:i})=>function(M,i,t){let e=!1,N=tg(M.selection,(i=>{let N=ao(M,i.head,-1)||ao(M,i.head,1)||i.head>0&&ao(M,i.head-1,1)||i.head<M.doc.length&&ao(M,i.head+1,-1);if(!N||!N.end)return i;e=!0;let s=N.start.from==i.head?N.end.to:N.end.from;return t?$e.range(i.anchor,s):$e.cursor(s)}));return!!e&&(i(eg(M,N)),!0)}(M,i,!1)},{key:"Mod-/",run:M=>{let{state:i}=M,t=i.doc.lineAt(i.selection.main.from),e=ko(M.state,t.from);return e.line?So(M):!!e.block&&Qo(M)}},{key:"Alt-A",run:Eo}].concat(_g);function Kg(){var M=arguments[0];"string"==typeof M&&(M=document.createElement(M));var i=1,t=arguments[1];if(t&&"object"==typeof t&&null==t.nodeType&&!Array.isArray(t)){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var N=t[e];"string"==typeof N?M.setAttribute(e,N):null!=N&&(M[e]=N)}i++}for(;i<arguments.length;i++)Mc(M,arguments[i]);return M}function Mc(M,i){if("string"==typeof i)M.appendChild(document.createTextNode(i));else if(null==i);else if(null!=i.nodeType)M.appendChild(i);else{if(!Array.isArray(i))throw new RangeError("Unsupported child node: "+i);for(var t=0;t<i.length;t++)Mc(M,i[t])}}const ic="function"==typeof String.prototype.normalize?M=>M.normalize("NFKD"):M=>M;class tc{constructor(M,i,t=0,e=M.length,N,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=M.iterRange(t,e),this.bufferStart=t,this.normalize=N?M=>N(ic(M)):ic,this.query=this.normalize(i)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return me(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let M=this.peek();if(M<0)return this.done=!0,this;let i=Ye(M),t=this.bufferStart+this.bufferPos;this.bufferPos+=fe(M);let e=this.normalize(i);for(let M=0,N=t;;M++){let s=e.charCodeAt(M),u=this.match(s,N);if(M==e.length-1){if(u)return this.value=u,this;break}N==t&&M<i.length&&i.charCodeAt(M)==s&&N++}}}match(M,i){let t=null;for(let e=0;e<this.matches.length;e+=2){let N=this.matches[e],s=!1;this.query.charCodeAt(N)==M&&(N==this.query.length-1?t={from:this.matches[e+1],to:i+1}:(this.matches[e]++,s=!0)),s||(this.matches.splice(e,2),e-=2)}return this.query.charCodeAt(0)==M&&(1==this.query.length?t={from:i,to:i+1}:this.matches.push(1,i)),t&&this.test&&!this.test(t.from,t.to,this.buffer,this.bufferStart)&&(t=null),t}}"undefined"!=typeof Symbol&&(tc.prototype[Symbol.iterator]=function(){return this});const ec={from:-1,to:-1,match:/.*/.exec("")},Nc="gm"+(null==/x/.unicode?"":"u");class sc{constructor(M,i,t,e=0,N=M.length){if(this.text=M,this.to=N,this.curLine="",this.done=!1,this.value=ec,/\\[sWDnr]|\n|\r|\[\^/.test(i))return new nc(M,i,t,e,N);this.re=new RegExp(i,Nc+((null==t?void 0:t.ignoreCase)?"i":"")),this.test=null==t?void 0:t.test,this.iter=M.iter();let s=M.lineAt(e);this.curLineStart=s.from,this.matchPos=jc(M,e),this.getLine(this.curLineStart)}getLine(M){this.iter.next(M),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let M=this.matchPos-this.curLineStart;;){this.re.lastIndex=M;let i=this.matchPos<=this.to&&this.re.exec(this.curLine);if(i){let t=this.curLineStart+i.index,e=t+i[0].length;if(this.matchPos=jc(this.text,e+(t==e?1:0)),t==this.curLineStart+this.curLine.length&&this.nextLine(),(t<e||t>this.value.to)&&(!this.test||this.test(t,e,i)))return this.value={from:t,to:e,match:i},this;M=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),M=0}}}}const uc=new WeakMap;class Dc{constructor(M,i){this.from=M,this.text=i}get to(){return this.from+this.text.length}static get(M,i,t){let e=uc.get(M);if(!e||e.from>=t||e.to<=i){let e=new Dc(i,M.sliceString(i,t));return uc.set(M,e),e}if(e.from==i&&e.to==t)return e;let{text:N,from:s}=e;return s>i&&(N=M.sliceString(i,s)+N,s=i),e.to<t&&(N+=M.sliceString(e.to,t)),uc.set(M,new Dc(s,N)),new Dc(i,N.slice(i-s,t-s))}}class nc{constructor(M,i,t,e,N){this.text=M,this.to=N,this.done=!1,this.value=ec,this.matchPos=jc(M,e),this.re=new RegExp(i,Nc+((null==t?void 0:t.ignoreCase)?"i":"")),this.test=null==t?void 0:t.test,this.flat=Dc.get(M,e,this.chunkEnd(e+5e3))}chunkEnd(M){return M>=this.to?this.to:this.text.lineAt(M).to}next(){for(;;){let M=this.re.lastIndex=this.matchPos-this.flat.from,i=this.re.exec(this.flat.text);if(i&&!i[0]&&i.index==M&&(this.re.lastIndex=M+1,i=this.re.exec(this.flat.text)),i){let M=this.flat.from+i.index,t=M+i[0].length;if((this.flat.to>=this.to||i.index+i[0].length<=this.flat.text.length-10)&&(!this.test||this.test(M,t,i)))return this.value={from:M,to:t,match:i},this.matchPos=jc(this.text,t+(M==t?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Dc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function jc(M,i){if(i>=M.length)return i;let t,e=M.lineAt(i);for(;i<e.to&&(t=e.text.charCodeAt(i-e.from))>=56320&&t<57344;)i++;return i}function Ic(M){let i=Kg("input",{class:"cm-textfield",name:"line",value:String(M.state.doc.lineAt(M.state.selection.main.head).number)}),t=Kg("form",{class:"cm-gotoLine",onkeydown:i=>{27==i.keyCode?(i.preventDefault(),M.dispatch({effects:lc.of(!1)}),M.focus()):13==i.keyCode&&(i.preventDefault(),e())},onsubmit:M=>{M.preventDefault(),e()}},Kg("label",M.state.phrase("Go to line"),": ",i)," ",Kg("button",{class:"cm-button",type:"submit"},M.state.phrase("go")));function e(){let t=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.value);if(!t)return;let{state:e}=M,N=e.doc.lineAt(e.selection.main.head),[,s,u,D,n]=t,j=D?+D.slice(1):0,I=u?+u:N.number;if(u&&n){let M=I/100;s&&(M=M*("-"==s?-1:1)+N.number/e.doc.lines),I=Math.round(e.doc.lines*M)}else u&&s&&(I=I*("-"==s?-1:1)+N.number);let l=e.doc.line(Math.max(1,Math.min(e.doc.lines,I))),r=$e.cursor(l.from+Math.max(0,Math.min(j,l.length)));M.dispatch({effects:[lc.of(!1),uj.scrollIntoView(r.from,{y:"center"})],selection:r}),M.focus()}return{dom:t}}"undefined"!=typeof Symbol&&(sc.prototype[Symbol.iterator]=nc.prototype[Symbol.iterator]=function(){return this});const lc=QN.define(),rc=uN.define({create:()=>!0,update(M,i){for(let t of i.effects)t.is(lc)&&(M=t.value);return M},provide:M=>yI.from(M,(M=>M?Ic:null))}),oc=uj.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),gc={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},cc=Ke.define({combine:M=>GN(M,gc,{highlightWordAroundCursor:(M,i)=>M||i,minSelectionLength:Math.min,maxMatches:Math.min})});const ac=Lu.mark({class:"cm-selectionMatch"}),Oc=Lu.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Tc(M,i,t,e){return!(0!=t&&M(i.sliceDoc(t-1,t))==YN.Word||e!=i.doc.length&&M(i.sliceDoc(e,e+1))==YN.Word)}const Lc=nD.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.selectionSet||M.docChanged||M.viewportChanged)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let i=M.state.facet(cc),{state:t}=M,e=t.selection;if(e.ranges.length>1)return Lu.none;let N,s=e.main,u=null;if(s.empty){if(!i.highlightWordAroundCursor)return Lu.none;let M=t.wordAt(s.head);if(!M)return Lu.none;u=t.charCategorizer(s.head),N=t.sliceDoc(M.from,M.to)}else{let M=s.to-s.from;if(M<i.minSelectionLength||M>200)return Lu.none;if(i.wholeWords){if(N=t.sliceDoc(s.from,s.to),u=t.charCategorizer(s.head),!Tc(u,t,s.from,s.to)||!function(M,i,t,e){return M(i.sliceDoc(t,t+1))==YN.Word&&M(i.sliceDoc(e-1,e))==YN.Word}(u,t,s.from,s.to))return Lu.none}else if(N=t.sliceDoc(s.from,s.to).trim(),!N)return Lu.none}let D=[];for(let e of M.visibleRanges){let M=new tc(t.doc,N,e.from,e.to);for(;!M.next().done;){let{from:e,to:N}=M.value;if((!u||Tc(u,t,e,N))&&(s.empty&&e<=s.from&&N>=s.to?D.push(Oc.range(e,N)):(e>=s.to||N<=s.from)&&D.push(ac.range(e,N)),D.length>i.maxMatches))return Lu.none}}return Lu.set(D)}},{decorations:M=>M.decorations}),hc=uj.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const zc=Ke.define({combine:M=>GN(M,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:M=>new $c(M),scrollToMatch:M=>uj.scrollIntoView(M)})});class yc{constructor(M){this.search=M.search,this.caseSensitive=!!M.caseSensitive,this.literal=!!M.literal,this.regexp=!!M.regexp,this.replace=M.replace||"",this.valid=!!this.search&&(!this.regexp||function(M){try{return new RegExp(M,Nc),!0}catch(M){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!M.wholeWord}unquote(M){return this.literal?M:M.replace(/\\([nrt\\])/g,((M,i)=>"n"==i?"\n":"r"==i?"\r":"t"==i?"\t":"\\"))}eq(M){return this.search==M.search&&this.replace==M.replace&&this.caseSensitive==M.caseSensitive&&this.regexp==M.regexp&&this.wholeWord==M.wholeWord}create(){return this.regexp?new Qc(this):new xc(this)}getCursor(M,i=0,t){let e=M.doc?M:vN.create({doc:M});return null==t&&(t=e.doc.length),this.regexp?wc(this,e,i,t):Ac(this,e,i,t)}}class dc{constructor(M){this.spec=M}}function Ac(M,i,t,e){return new tc(i.doc,M.unquoted,t,e,M.caseSensitive?void 0:M=>M.toLowerCase(),M.wholeWord?function(M,i){return(t,e,N,s)=>((s>t||s+N.length<e)&&(s=Math.max(0,t-2),N=M.sliceString(s,Math.min(M.length,e+2))),!(i(Sc(N,t-s))==YN.Word&&i(Ec(N,t-s))==YN.Word||i(Ec(N,e-s))==YN.Word&&i(Sc(N,e-s))==YN.Word))}(i.doc,i.charCategorizer(i.selection.main.head)):void 0)}class xc extends dc{constructor(M){super(M)}nextMatch(M,i,t){let e=Ac(this.spec,M,t,M.doc.length).nextOverlapping();return e.done&&(e=Ac(this.spec,M,0,i).nextOverlapping()),e.done?null:e.value}prevMatchInRange(M,i,t){for(let e=t;;){let t=Math.max(i,e-1e4-this.spec.unquoted.length),N=Ac(this.spec,M,t,e),s=null;for(;!N.nextOverlapping().done;)s=N.value;if(s)return s;if(t==i)return null;e-=1e4}}prevMatch(M,i,t){return this.prevMatchInRange(M,0,i)||this.prevMatchInRange(M,t,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace)}matchAll(M,i){let t=Ac(this.spec,M,0,M.doc.length),e=[];for(;!t.next().done;){if(e.length>=i)return null;e.push(t.value)}return e}highlight(M,i,t,e){let N=Ac(this.spec,M,Math.max(0,i-this.spec.unquoted.length),Math.min(t+this.spec.unquoted.length,M.doc.length));for(;!N.next().done;)e(N.value.from,N.value.to)}}function wc(M,i,t,e){return new sc(i.doc,M.search,{ignoreCase:!M.caseSensitive,test:M.wholeWord?(N=i.charCategorizer(i.selection.main.head),(M,i,t)=>!t[0].length||(N(Sc(t.input,t.index))!=YN.Word||N(Ec(t.input,t.index))!=YN.Word)&&(N(Ec(t.input,t.index+t[0].length))!=YN.Word||N(Sc(t.input,t.index+t[0].length))!=YN.Word)):void 0},t,e);var N}function Sc(M,i){return M.slice(Ce(M,i,!1),i)}function Ec(M,i){return M.slice(i,Ce(M,i))}class Qc extends dc{nextMatch(M,i,t){let e=wc(this.spec,M,t,M.doc.length).next();return e.done&&(e=wc(this.spec,M,0,i).next()),e.done?null:e.value}prevMatchInRange(M,i,t){for(let e=1;;e++){let N=Math.max(i,t-1e4*e),s=wc(this.spec,M,N,t),u=null;for(;!s.next().done;)u=s.value;if(u&&(N==i||u.from>N+10))return u;if(N==i)return null}}prevMatch(M,i,t){return this.prevMatchInRange(M,0,i)||this.prevMatchInRange(M,t,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((i,t)=>"$"==t?"$":"&"==t?M.match[0]:"0"!=t&&+t<M.match.length?M.match[t]:i))}matchAll(M,i){let t=wc(this.spec,M,0,M.doc.length),e=[];for(;!t.next().done;){if(e.length>=i)return null;e.push(t.value)}return e}highlight(M,i,t,e){let N=wc(this.spec,M,Math.max(0,i-250),Math.min(t+250,M.doc.length));for(;!N.next().done;)e(N.value.from,N.value.to)}}const kc=QN.define(),Cc=QN.define(),pc=uN.define({create:M=>new Uc(Rc(M).create(),null),update(M,i){for(let t of i.effects)t.is(kc)?M=new Uc(t.value.create(),M.panel):t.is(Cc)&&(M=new Uc(M.query,t.value?Pc:null));return M},provide:M=>yI.from(M,(M=>M.panel))});class Uc{constructor(M,i){this.query=M,this.panel=i}}const bc=Lu.mark({class:"cm-searchMatch"}),Zc=Lu.mark({class:"cm-searchMatch cm-searchMatch-selected"}),mc=nD.fromClass(class{constructor(M){this.view=M,this.decorations=this.highlight(M.state.field(pc))}update(M){let i=M.state.field(pc);(i!=M.startState.field(pc)||M.docChanged||M.selectionSet||M.viewportChanged)&&(this.decorations=this.highlight(i))}highlight({query:M,panel:i}){if(!i||!M.spec.valid)return Lu.none;let{view:t}=this,e=new JN;for(let i=0,N=t.visibleRanges,s=N.length;i<s;i++){let{from:u,to:D}=N[i];for(;i<s-1&&D>N[i+1].from-500;)D=N[++i].to;M.highlight(t.state,u,D,((M,i)=>{let N=t.state.selection.ranges.some((t=>t.from==M&&t.to==i));e.add(M,i,N?Zc:bc)}))}return e.finish()}},{decorations:M=>M.decorations});function Yc(M){return i=>{let t=i.state.field(pc,!1);return t&&t.query.spec.valid?M(i,t):Xc(i)}}const fc=Yc(((M,{query:i})=>{let{to:t}=M.state.selection.main,e=i.nextMatch(M.state,t,t);if(!e)return!1;let N=$e.single(e.from,e.to),s=M.state.facet(zc);return M.dispatch({selection:N,effects:[Ma(M,e),s.scrollToMatch(N.main,M)],userEvent:"select.search"}),Fc(M),!0})),Wc=Yc(((M,{query:i})=>{let{state:t}=M,{from:e}=t.selection.main,N=i.prevMatch(t,e,e);if(!N)return!1;let s=$e.single(N.from,N.to),u=M.state.facet(zc);return M.dispatch({selection:s,effects:[Ma(M,N),u.scrollToMatch(s.main,M)],userEvent:"select.search"}),Fc(M),!0})),Vc=Yc(((M,{query:i})=>{let t=i.matchAll(M.state,1e3);return!(!t||!t.length)&&(M.dispatch({selection:$e.create(t.map((M=>$e.range(M.from,M.to)))),userEvent:"select.search.matches"}),!0)})),vc=Yc(((M,{query:i})=>{let{state:t}=M,{from:e,to:N}=t.selection.main;if(t.readOnly)return!1;let s=i.nextMatch(t,e,e);if(!s)return!1;let u,D,n=[],j=[];if(s.from==e&&s.to==N&&(D=t.toText(i.getReplacement(s)),n.push({from:s.from,to:s.to,insert:D}),s=i.nextMatch(t,s.from,s.to),j.push(uj.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(e).number)+"."))),s){let i=0==n.length||n[0].from>=s.to?0:s.to-s.from-D.length;u=$e.single(s.from-i,s.to-i),j.push(Ma(M,s)),j.push(t.facet(zc).scrollToMatch(u.main,M))}return M.dispatch({changes:n,selection:u,effects:j,userEvent:"input.replace"}),!0})),Gc=Yc(((M,{query:i})=>{if(M.state.readOnly)return!1;let t=i.matchAll(M.state,1e9).map((M=>{let{from:t,to:e}=M;return{from:t,to:e,insert:i.getReplacement(M)}}));if(!t.length)return!1;let e=M.state.phrase("replaced $ matches",t.length)+".";return M.dispatch({changes:t,effects:uj.announce.of(e),userEvent:"input.replace.all"}),!0}));function Pc(M){return M.state.facet(zc).createPanel(M)}function Rc(M,i){var t,e,N,s,u;let D=M.selection.main,n=D.empty||D.to>D.from+100?"":M.sliceDoc(D.from,D.to);if(i&&!n)return i;let j=M.facet(zc);return new yc({search:(null!==(t=null==i?void 0:i.literal)&&void 0!==t?t:j.literal)?n:n.replace(/\n/g,"\\n"),caseSensitive:null!==(e=null==i?void 0:i.caseSensitive)&&void 0!==e?e:j.caseSensitive,literal:null!==(N=null==i?void 0:i.literal)&&void 0!==N?N:j.literal,regexp:null!==(s=null==i?void 0:i.regexp)&&void 0!==s?s:j.regexp,wholeWord:null!==(u=null==i?void 0:i.wholeWord)&&void 0!==u?u:j.wholeWord})}function Bc(M){let i=TI(M,Pc);return i&&i.dom.querySelector("[main-field]")}function Fc(M){let i=Bc(M);i&&i==M.root.activeElement&&i.select()}const Xc=M=>{let i=M.state.field(pc,!1);if(i&&i.panel){let t=Bc(M);if(t&&t!=M.root.activeElement){let e=Rc(M.state,i.query.spec);e.valid&&M.dispatch({effects:kc.of(e)}),t.focus(),t.select()}}else M.dispatch({effects:[Cc.of(!0),i?kc.of(Rc(M.state,i.query.spec)):QN.appendConfig.of(ta)]});return!0},Jc=M=>{let i=M.state.field(pc,!1);if(!i||!i.panel)return!1;let t=TI(M,Pc);return t&&t.dom.contains(M.root.activeElement)&&M.focus(),M.dispatch({effects:Cc.of(!1)}),!0},Hc=[{key:"Mod-f",run:Xc,scope:"editor search-panel"},{key:"F3",run:fc,shift:Wc,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:fc,shift:Wc,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Jc,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:M,dispatch:i})=>{let t=M.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:e,to:N}=t.main,s=[],u=0;for(let i=new tc(M.doc,M.sliceDoc(e,N));!i.next().done;){if(s.length>1e3)return!1;i.value.from==e&&(u=s.length),s.push($e.range(i.value.from,i.value.to))}return i(M.update({selection:$e.create(s,u),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:M=>{let i=TI(M,Ic);if(!i){let t=[lc.of(!0)];null==M.state.field(rc,!1)&&t.push(QN.appendConfig.of([rc,oc])),M.dispatch({effects:t}),i=TI(M,Ic)}return i&&i.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:M,dispatch:i})=>{let{ranges:t}=M.selection;if(t.some((M=>M.from===M.to)))return(({state:M,dispatch:i})=>{let{selection:t}=M,e=$e.create(t.ranges.map((i=>M.wordAt(i.head)||$e.cursor(i.head))),t.mainIndex);return!e.eq(t)&&(i(M.update({selection:e})),!0)})({state:M,dispatch:i});let e=M.sliceDoc(t[0].from,t[0].to);if(M.selection.ranges.some((i=>M.sliceDoc(i.from,i.to)!=e)))return!1;let N=function(M,i){let{main:t,ranges:e}=M.selection,N=M.wordAt(t.head),s=N&&N.from==t.from&&N.to==t.to;for(let t=!1,N=new tc(M.doc,i,e[e.length-1].to);;){if(N.next(),!N.done){if(t&&e.some((M=>M.from==N.value.from)))continue;if(s){let i=M.wordAt(N.value.from);if(!i||i.from!=N.value.from||i.to!=N.value.to)continue}return N.value}if(t)return null;N=new tc(M.doc,i,0,Math.max(0,e[e.length-1].from-1)),t=!0}}(M,e);return!!N&&(i(M.update({selection:M.selection.addRange($e.range(N.from,N.to),!1),effects:uj.scrollIntoView(N.to)})),!0)},preventDefault:!0}];class $c{constructor(M){this.view=M;let i=this.query=M.state.field(pc).query.spec;function t(M,i,t){return Kg("button",{class:"cm-button",name:M,onclick:i,type:"button"},t)}this.commit=this.commit.bind(this),this.searchField=Kg("input",{value:i.search,placeholder:_c(M,"Find"),"aria-label":_c(M,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Kg("input",{value:i.replace,placeholder:_c(M,"Replace"),"aria-label":_c(M,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Kg("input",{type:"checkbox",name:"case",form:"",checked:i.caseSensitive,onchange:this.commit}),this.reField=Kg("input",{type:"checkbox",name:"re",form:"",checked:i.regexp,onchange:this.commit}),this.wordField=Kg("input",{type:"checkbox",name:"word",form:"",checked:i.wholeWord,onchange:this.commit}),this.dom=Kg("div",{onkeydown:M=>this.keydown(M),class:"cm-search"},[this.searchField,t("next",(()=>fc(M)),[_c(M,"next")]),t("prev",(()=>Wc(M)),[_c(M,"previous")]),t("select",(()=>Vc(M)),[_c(M,"all")]),Kg("label",null,[this.caseField,_c(M,"match case")]),Kg("label",null,[this.reField,_c(M,"regexp")]),Kg("label",null,[this.wordField,_c(M,"by word")]),...M.state.readOnly?[]:[Kg("br"),this.replaceField,t("replace",(()=>vc(M)),[_c(M,"replace")]),t("replaceAll",(()=>Gc(M)),[_c(M,"replace all")])],Kg("button",{name:"close",onclick:()=>Jc(M),"aria-label":_c(M,"close"),type:"button"},["×"])])}commit(){let M=new yc({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});M.eq(this.query)||(this.query=M,this.view.dispatch({effects:kc.of(M)}))}keydown(M){!function(M,i,t){return Lj(aj(M.state),i,M,t)}(this.view,M,"search-panel")?13==M.keyCode&&M.target==this.searchField?(M.preventDefault(),(M.shiftKey?Wc:fc)(this.view)):13==M.keyCode&&M.target==this.replaceField&&(M.preventDefault(),vc(this.view)):M.preventDefault()}update(M){for(let i of M.transactions)for(let M of i.effects)M.is(kc)&&!M.value.eq(this.query)&&this.setQuery(M.value)}setQuery(M){this.query=M,this.searchField.value=M.search,this.replaceField.value=M.replace,this.caseField.checked=M.caseSensitive,this.reField.checked=M.regexp,this.wordField.checked=M.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(zc).top}}function _c(M,i){return M.state.phrase(i)}const qc=30,Kc=/[\s\.,:;?!]/;function Ma(M,{from:i,to:t}){let e=M.state.doc.lineAt(i),N=M.state.doc.lineAt(t).to,s=Math.max(e.from,i-qc),u=Math.min(N,t+qc),D=M.state.sliceDoc(s,u);if(s!=e.from)for(let M=0;M<qc;M++)if(!Kc.test(D[M+1])&&Kc.test(D[M])){D=D.slice(M);break}if(u!=N)for(let M=D.length-1;M>D.length-qc;M--)if(!Kc.test(D[M-1])&&Kc.test(D[M])){D=D.slice(0,M);break}return uj.announce.of(`${M.state.phrase("current match")}. ${D} ${M.state.phrase("on line")} ${e.number}.`)}const ia=uj.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),ta=[pc,rN.low(mc),ia];class ea{constructor(M,i,t){this.state=M,this.pos=i,this.explicit=t,this.abortListeners=[]}tokenBefore(M){let i=tr(this.state).resolveInner(this.pos,-1);for(;i&&M.indexOf(i.name)<0;)i=i.parent;return i?{from:i.from,to:this.pos,text:this.state.sliceDoc(i.from,this.pos),type:i.type}:null}matchBefore(M){let i=this.state.doc.lineAt(this.pos),t=Math.max(i.from,this.pos-250),e=i.text.slice(t-i.from,this.pos-i.from),N=e.search(na(M,!1));return N<0?null:{from:t+N,to:this.pos,text:e.slice(N)}}get aborted(){return null==this.abortListeners}addEventListener(M,i){"abort"==M&&this.abortListeners&&this.abortListeners.push(i)}}function Na(M){let i=Object.keys(M).join(""),t=/\w/.test(i);return t&&(i=i.replace(/\w/g,"")),`[${t?"\\w":""}${i.replace(/[^\w\s]/g,"\\$&")}]`}function sa(M){let i=M.map((M=>"string"==typeof M?{label:M}:M)),[t,e]=i.every((M=>/^\w+$/.test(M.label)))?[/\w*$/,/\w+$/]:function(M){let i=Object.create(null),t=Object.create(null);for(let{label:e}of M){i[e[0]]=!0;for(let M=1;M<e.length;M++)t[e[M]]=!0}let e=Na(i)+Na(t)+"*$";return[new RegExp("^"+e),new RegExp(e)]}(i);return M=>{let N=M.matchBefore(e);return N||M.explicit?{from:N?N.from:M.pos,options:i,validFor:t}:null}}class ua{constructor(M,i,t,e){this.completion=M,this.source=i,this.match=t,this.score=e}}function Da(M){return M.selection.main.from}function na(M,i){var t;let{source:e}=M,N=i&&"^"!=e[0],s="$"!=e[e.length-1];return N||s?new RegExp(`${N?"^":""}(?:${e})${s?"$":""}`,null!==(t=M.flags)&&void 0!==t?t:M.ignoreCase?"i":""):M}const ja=wN.define();const Ia=new WeakMap;function la(M){if(!Array.isArray(M))return M;let i=Ia.get(M);return i||Ia.set(M,i=sa(M)),i}const ra=QN.define(),oa=QN.define();class ga{constructor(M){this.pattern=M,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let i=0;i<M.length;){let t=me(M,i),e=fe(t);this.chars.push(t);let N=M.slice(i,i+e),s=N.toUpperCase();this.folded.push(me(s==N?N.toLowerCase():s,0)),i+=e}this.astral=M.length!=this.chars.length}ret(M,i){return this.score=M,this.matched=i,!0}match(M){if(0==this.pattern.length)return this.ret(-100,[]);if(M.length<this.pattern.length)return!1;let{chars:i,folded:t,any:e,precise:N,byWord:s}=this;if(1==i.length){let e=me(M,0),N=fe(e),s=N==M.length?0:-100;if(e==i[0]);else{if(e!=t[0])return!1;s+=-200}return this.ret(s,[0,N])}let u=M.indexOf(this.pattern);if(0==u)return this.ret(M.length==this.pattern.length?0:-100,[0,this.pattern.length]);let D=i.length,n=0;if(u<0){for(let N=0,s=Math.min(M.length,200);N<s&&n<D;){let s=me(M,N);s!=i[n]&&s!=t[n]||(e[n++]=N),N+=fe(s)}if(n<D)return!1}let j=0,I=0,l=!1,r=0,o=-1,g=-1,c=/[a-z]/.test(M),a=!0;for(let e=0,n=Math.min(M.length,200),O=0;e<n&&I<D;){let n=me(M,e);u<0&&(j<D&&n==i[j]&&(N[j++]=e),r<D&&(n==i[r]||n==t[r]?(0==r&&(o=e),g=e+1,r++):r=0));let T,L=n<255?n>=48&&n<=57||n>=97&&n<=122?2:n>=65&&n<=90?1:0:(T=Ye(n))!=T.toLowerCase()?1:T!=T.toUpperCase()?2:0;(!e||1==L&&c||0==O&&0!=L)&&(i[I]==n||t[I]==n&&(l=!0)?s[I++]=e:s.length&&(a=!1)),O=L,e+=fe(n)}return I==D&&0==s[0]&&a?this.result((l?-200:0)-100,s,M):r==D&&0==o?this.ret(-200-M.length+(g==M.length?0:-100),[0,g]):u>-1?this.ret(-700-M.length,[u,u+this.pattern.length]):r==D?this.ret(-900-M.length,[o,g]):I==D?this.result((l?-200:0)-100-700+(a?0:-1100),s,M):2!=i.length&&this.result((e[0]?-700:0)-200-1100,e,M)}result(M,i,t){let e=[],N=0;for(let M of i){let i=M+(this.astral?fe(me(t,M)):1);N&&e[N-1]==M?e[N-1]=i:(e[N++]=M,e[N++]=i)}return this.ret(M-t.length,e)}}const ca=Ke.define({combine:M=>GN(M,{activateOnTyping:!0,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Oa,compareCompletions:(M,i)=>M.label.localeCompare(i.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(M,i)=>M&&i,closeOnBlur:(M,i)=>M&&i,icons:(M,i)=>M&&i,tooltipClass:(M,i)=>t=>aa(M(t),i(t)),optionClass:(M,i)=>t=>aa(M(t),i(t)),addToOptions:(M,i)=>M.concat(i)})});function aa(M,i){return M?i?M+" "+i:M:i}function Oa(M,i,t,e,N,s){let u,D,n=M.textDirection==Eu.RTL,j=n,I=!1,l="top",r=i.left-N.left,o=N.right-i.right,g=e.right-e.left,c=e.bottom-e.top;if(j&&r<Math.min(g,o)?j=!1:!j&&o<Math.min(g,r)&&(j=!0),g<=(j?r:o))u=Math.max(N.top,Math.min(t.top,N.bottom-c))-i.top,D=Math.min(400,j?r:o);else{I=!0,D=Math.min(400,(n?i.right:N.right-i.left)-30);let M=N.bottom-i.bottom;M>=c||M>i.top?u=t.bottom-i.top:(l="bottom",u=i.bottom-t.top)}return{style:`${l}: ${u/((i.bottom-i.top)/s.offsetHeight)}px; max-width: ${D/((i.right-i.left)/s.offsetWidth)}px`,class:"cm-completionInfo-"+(I?n?"left-narrow":"right-narrow":j?"left":"right")}}function Ta(M,i,t){if(M<=t)return{from:0,to:M};if(i<0&&(i=0),i<=M>>1){let M=Math.floor(i/t);return{from:M*t,to:(M+1)*t}}let e=Math.floor((M-i)/t);return{from:M-(e+1)*t,to:M-e*t}}class La{constructor(M,i,t){this.view=M,this.stateField=i,this.applyCompletion=t,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:M=>this.placeInfo(M),key:this},this.space=null,this.currentClass="";let e=M.state.field(i),{options:N,selected:s}=e.open,u=M.state.facet(ca);this.optionContent=function(M){let i=M.addToOptions.slice();return M.icons&&i.push({render(M){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),M.type&&i.classList.add(...M.type.split(/\s+/g).map((M=>"cm-completionIcon-"+M))),i.setAttribute("aria-hidden","true"),i},position:20}),i.push({render(M,i,t,e){let N=document.createElement("span");N.className="cm-completionLabel";let s=M.displayLabel||M.label,u=0;for(let M=0;M<e.length;){let i=e[M++],t=e[M++];i>u&&N.appendChild(document.createTextNode(s.slice(u,i)));let D=N.appendChild(document.createElement("span"));D.appendChild(document.createTextNode(s.slice(i,t))),D.className="cm-completionMatchedText",u=t}return u<s.length&&N.appendChild(document.createTextNode(s.slice(u))),N},position:50},{render(M){if(!M.detail)return null;let i=document.createElement("span");return i.className="cm-completionDetail",i.textContent=M.detail,i},position:80}),i.sort(((M,i)=>M.position-i.position)).map((M=>M.render))}(u),this.optionClass=u.optionClass,this.tooltipClass=u.tooltipClass,this.range=Ta(N.length,s,u.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(M.state),this.dom.addEventListener("mousedown",(t=>{let{options:e}=M.state.field(i).open;for(let i,N=t.target;N&&N!=this.dom;N=N.parentNode)if("LI"==N.nodeName&&(i=/-(\d+)$/.exec(N.id))&&+i[1]<e.length)return this.applyCompletion(M,e[+i[1]]),void t.preventDefault()})),this.dom.addEventListener("focusout",(i=>{let t=M.state.field(this.stateField,!1);t&&t.tooltip&&M.state.facet(ca).closeOnBlur&&i.relatedTarget!=M.contentDOM&&M.dispatch({effects:oa.of(null)})})),this.showOptions(N,e.id)}mount(){this.updateSel()}showOptions(M,i){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(M,i,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(M){var i;let t=M.state.field(this.stateField),e=M.startState.field(this.stateField);if(this.updateTooltipClass(M.state),t!=e){let{options:N,selected:s,disabled:u}=t.open;e.open&&e.open.options==N||(this.range=Ta(N.length,s,M.state.facet(ca).maxRenderedOptions),this.showOptions(N,t.id)),this.updateSel(),u!=(null===(i=e.open)||void 0===i?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!u)}}updateTooltipClass(M){let i=this.tooltipClass(M);if(i!=this.currentClass){for(let M of this.currentClass.split(" "))M&&this.dom.classList.remove(M);for(let M of i.split(" "))M&&this.dom.classList.add(M);this.currentClass=i}}positioned(M){this.space=M,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let M=this.view.state.field(this.stateField),i=M.open;if((i.selected>-1&&i.selected<this.range.from||i.selected>=this.range.to)&&(this.range=Ta(i.options.length,i.selected,this.view.state.facet(ca).maxRenderedOptions),this.showOptions(i.options,M.id)),this.updateSelectedOption(i.selected)){this.destroyInfo();let{completion:t}=i.options[i.selected],{info:e}=t;if(!e)return;let N="string"==typeof e?document.createTextNode(e):e(t);if(!N)return;"then"in N?N.then((i=>{i&&this.view.state.field(this.stateField,!1)==M&&this.addInfoPane(i,t)})).catch((M=>ND(this.view.state,M,"completion info"))):this.addInfoPane(N,t)}}addInfoPane(M,i){this.destroyInfo();let t=this.info=document.createElement("div");if(t.className="cm-tooltip cm-completionInfo",null!=M.nodeType)t.appendChild(M),this.infoDestroy=null;else{let{dom:i,destroy:e}=M;t.appendChild(i),this.infoDestroy=e||null}this.dom.appendChild(t),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(M){let i=null;for(let t=this.list.firstChild,e=this.range.from;t;t=t.nextSibling,e++)"LI"==t.nodeName&&t.id?e==M?t.hasAttribute("aria-selected")||(t.setAttribute("aria-selected","true"),i=t):t.hasAttribute("aria-selected")&&t.removeAttribute("aria-selected"):e--;return i&&function(M,i){let t=M.getBoundingClientRect(),e=i.getBoundingClientRect(),N=t.height/M.offsetHeight;e.top<t.top?M.scrollTop-=(t.top-e.top)/N:e.bottom>t.bottom&&(M.scrollTop+=(e.bottom-t.bottom)/N)}(this.list,i),i}measureInfo(){let M=this.dom.querySelector("[aria-selected]");if(!M||!this.info)return null;let i=this.dom.getBoundingClientRect(),t=this.info.getBoundingClientRect(),e=M.getBoundingClientRect(),N=this.space;if(!N){let M=this.dom.ownerDocument.defaultView||window;N={left:0,top:0,right:M.innerWidth,bottom:M.innerHeight}}return e.top>Math.min(N.bottom,i.bottom)-10||e.bottom<Math.max(N.top,i.top)+10?null:this.view.state.facet(ca).positionInfo(this.view,i,e,t,N,this.dom)}placeInfo(M){this.info&&(M?(M.style&&(this.info.style.cssText=M.style),this.info.className="cm-tooltip cm-completionInfo "+(M.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(M,i,t){const e=document.createElement("ul");e.id=i,e.setAttribute("role","listbox"),e.setAttribute("aria-expanded","true"),e.setAttribute("aria-label",this.view.state.phrase("Completions"));let N=null;for(let s=t.from;s<t.to;s++){let{completion:u,match:D}=M[s],{section:n}=u;if(n){let M="string"==typeof n?n:n.name;if(M!=N&&(s>t.from||0==t.from))if(N=M,"string"!=typeof n&&n.header)e.appendChild(n.header(n));else{e.appendChild(document.createElement("completion-section")).textContent=M}}const j=e.appendChild(document.createElement("li"));j.id=i+"-"+s,j.setAttribute("role","option");let I=this.optionClass(u);I&&(j.className=I);for(let M of this.optionContent){let i=M(u,this.view.state,this.view,D);i&&j.appendChild(i)}}return t.from&&e.classList.add("cm-completionListIncompleteTop"),t.to<M.length&&e.classList.add("cm-completionListIncompleteBottom"),e}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function ha(M,i){return t=>new La(t,M,i)}function za(M){return 100*(M.boost||0)+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}class ya{constructor(M,i,t,e,N,s){this.options=M,this.attrs=i,this.tooltip=t,this.timestamp=e,this.selected=N,this.disabled=s}setSelected(M,i){return M==this.selected||M>=this.options.length?this:new ya(this.options,xa(i,M),this.tooltip,this.timestamp,M,this.disabled)}static build(M,i,t,e,N){let s=function(M,i){let t=[],e=null,N=M=>{t.push(M);let{section:i}=M.completion;if(i){e||(e=[]);let M="string"==typeof i?i:i.name;e.some((i=>i.name==M))||e.push("string"==typeof i?{name:M}:i)}};for(let e of M)if(e.hasResult()){let M=e.result.getMatch;if(!1===e.result.filter)for(let i of e.result.options)N(new ua(i,e.source,M?M(i):[],1e9-t.length));else{let t=new ga(i.sliceDoc(e.from,e.to));for(let i of e.result.options)if(t.match(i.label)){let s=i.displayLabel?M?M(i,t.matched):[]:t.matched;N(new ua(i,e.source,s,t.score+(i.boost||0)))}}}if(e){let M=Object.create(null),i=0,N=(M,i)=>{var t,e;return(null!==(t=M.rank)&&void 0!==t?t:1e9)-(null!==(e=i.rank)&&void 0!==e?e:1e9)||(M.name<i.name?-1:1)};for(let t of e.sort(N))i-=1e5,M[t.name]=i;for(let i of t){let{section:t}=i.completion;t&&(i.score+=M["string"==typeof t?t:t.name])}}let s=[],u=null,D=i.facet(ca).compareCompletions;for(let M of t.sort(((M,i)=>i.score-M.score||D(M.completion,i.completion)))){let i=M.completion;!u||u.label!=i.label||u.detail!=i.detail||null!=u.type&&null!=i.type&&u.type!=i.type||u.apply!=i.apply||u.boost!=i.boost?s.push(M):za(M.completion)>za(u)&&(s[s.length-1]=M),u=M.completion}return s}(M,i);if(!s.length)return e&&M.some((M=>1==M.state))?new ya(e.options,e.attrs,e.tooltip,e.timestamp,e.selected,!0):null;let u=i.facet(ca).selectOnOpen?0:-1;if(e&&e.selected!=u&&-1!=e.selected){let M=e.options[e.selected].completion;for(let i=0;i<s.length;i++)if(s[i].completion==M){u=i;break}}return new ya(s,xa(t,u),{pos:M.reduce(((M,i)=>i.hasResult()?Math.min(M,i.from):M),1e8),create:ba,above:N.aboveCursor},e?e.timestamp:Date.now(),u,!1)}map(M){return new ya(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:M.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class da{constructor(M,i,t){this.active=M,this.id=i,this.open=t}static start(){return new da(wa,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(M){let{state:i}=M,t=i.facet(ca),e=(t.override||i.languageDataAt("autocomplete",Da(i)).map(la)).map((i=>{let e=this.active.find((M=>M.source==i))||new Ea(i,this.active.some((M=>0!=M.state))?1:0);return e.update(M,t)}));e.length==this.active.length&&e.every(((M,i)=>M==this.active[i]))&&(e=this.active);let N=this.open;N&&M.docChanged&&(N=N.map(M.changes)),M.selection||e.some((i=>i.hasResult()&&M.changes.touchesRange(i.from,i.to)))||!function(M,i){if(M==i)return!0;for(let t=0,e=0;;){for(;t<M.length&&!M[t].hasResult;)t++;for(;e<i.length&&!i[e].hasResult;)e++;let N=t==M.length,s=e==i.length;if(N||s)return N==s;if(M[t++].result!=i[e++].result)return!1}}(e,this.active)?N=ya.build(e,i,this.id,N,t):N&&N.disabled&&!e.some((M=>1==M.state))&&(N=null),!N&&e.every((M=>1!=M.state))&&e.some((M=>M.hasResult()))&&(e=e.map((M=>M.hasResult()?new Ea(M.source,0):M)));for(let i of M.effects)i.is(Ca)&&(N=N&&N.setSelected(i.value,this.id));return e==this.active&&N==this.open?this:new da(e,this.id,N)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:Aa}}const Aa={"aria-autocomplete":"list"};function xa(M,i){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":M};return i>-1&&(t["aria-activedescendant"]=M+"-"+i),t}const wa=[];function Sa(M){return M.isUserEvent("input.type")?"input":M.isUserEvent("delete.backward")?"delete":null}class Ea{constructor(M,i,t=-1){this.source=M,this.state=i,this.explicitPos=t}hasResult(){return!1}update(M,i){let t=Sa(M),e=this;t?e=e.handleUserEvent(M,t,i):M.docChanged?e=e.handleChange(M):M.selection&&0!=e.state&&(e=new Ea(e.source,0));for(let i of M.effects)if(i.is(ra))e=new Ea(e.source,1,i.value?Da(M.state):-1);else if(i.is(oa))e=new Ea(e.source,0);else if(i.is(ka))for(let M of i.value)M.source==e.source&&(e=M);return e}handleUserEvent(M,i,t){return"delete"!=i&&t.activateOnTyping?new Ea(this.source,1):this.map(M.changes)}handleChange(M){return M.changes.touchesRange(Da(M.startState))?new Ea(this.source,0):this.map(M.changes)}map(M){return M.empty||this.explicitPos<0?this:new Ea(this.source,this.state,M.mapPos(this.explicitPos))}}class Qa extends Ea{constructor(M,i,t,e,N){super(M,2,i),this.result=t,this.from=e,this.to=N}hasResult(){return!0}handleUserEvent(M,i,t){var e;let N=M.changes.mapPos(this.from),s=M.changes.mapPos(this.to,1),u=Da(M.state);if((this.explicitPos<0?u<=N:u<this.from)||u>s||"delete"==i&&Da(M.startState)==this.from)return new Ea(this.source,"input"==i&&t.activateOnTyping?1:0);let D,n=this.explicitPos<0?-1:M.changes.mapPos(this.explicitPos);return function(M,i,t,e){if(!M)return!1;let N=i.sliceDoc(t,e);return"function"==typeof M?M(N,t,e,i):na(M,!0).test(N)}(this.result.validFor,M.state,N,s)?new Qa(this.source,n,this.result,N,s):this.result.update&&(D=this.result.update(this.result,N,s,new ea(M.state,u,n>=0)))?new Qa(this.source,n,D,D.from,null!==(e=D.to)&&void 0!==e?e:Da(M.state)):new Ea(this.source,1,n)}handleChange(M){return M.changes.touchesRange(this.from,this.to)?new Ea(this.source,0):this.map(M.changes)}map(M){return M.empty?this:new Qa(this.source,this.explicitPos<0?-1:M.mapPos(this.explicitPos),this.result,M.mapPos(this.from),M.mapPos(this.to,1))}}const ka=QN.define({map:(M,i)=>M.map((M=>M.map(i)))}),Ca=QN.define(),pa=uN.define({create:()=>da.start(),update:(M,i)=>M.update(i),provide:M=>[nI.from(M,(M=>M.tooltip)),uj.contentAttributes.from(M,(M=>M.attrs))]});function Ua(M,i){const t=i.completion.apply||i.completion.label;let e=M.state.field(pa).active.find((M=>M.source==i.source));return e instanceof Qa&&("string"==typeof t?M.dispatch(Object.assign(Object.assign({},function(M,i,t,e){let{main:N}=M.selection,s=t-N.from,u=e-N.from;return Object.assign(Object.assign({},M.changeByRange((D=>D!=N&&t!=e&&M.sliceDoc(D.from+s,D.from+u)!=M.sliceDoc(t,e)?{range:D}:{changes:{from:D.from+s,to:e==N.from?D.to:D.from+u,insert:i},range:$e.cursor(D.from+s+i.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(M.state,t,e.from,e.to)),{annotations:ja.of(i.completion)})):t(M,i.completion,e.from,e.to),!0)}const ba=ha(pa,Ua);function Za(M,i="option"){return t=>{let e=t.state.field(pa,!1);if(!e||!e.open||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(ca).interactionDelay)return!1;let N,s=1;"page"==i&&(N=cI(t,e.open.tooltip))&&(s=Math.max(2,Math.floor(N.dom.offsetHeight/N.dom.querySelector("li").offsetHeight)-1));let{length:u}=e.open.options,D=e.open.selected>-1?e.open.selected+s*(M?1:-1):M?0:u-1;return D<0?D="page"==i?0:u-1:D>=u&&(D="page"==i?u-1:0),t.dispatch({effects:Ca.of(D)}),!0}}class ma{constructor(M,i){this.active=M,this.context=i,this.time=Date.now(),this.updates=[],this.done=void 0}}const Ya=nD.fromClass(class{constructor(M){this.view=M,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let i of M.state.field(pa).active)1==i.state&&this.startQuery(i)}update(M){let i=M.state.field(pa);if(!M.selectionSet&&!M.docChanged&&M.startState.field(pa)==i)return;let t=M.transactions.some((M=>(M.selection||M.docChanged)&&!Sa(M)));for(let i=0;i<this.running.length;i++){let e=this.running[i];if(t||e.updates.length+M.transactions.length>50&&Date.now()-e.time>1e3){for(let M of e.context.abortListeners)try{M()}catch(M){ND(this.view.state,M)}e.context.abortListeners=null,this.running.splice(i--,1)}else e.updates.push(...M.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),M.transactions.some((M=>M.effects.some((M=>M.is(ra)))))&&(this.pendingStart=!0);let e=this.pendingStart?50:M.state.facet(ca).activateOnTypingDelay;if(this.debounceUpdate=i.active.some((M=>1==M.state&&!this.running.some((i=>i.active.source==M.source))))?setTimeout((()=>this.startUpdate()),e):-1,0!=this.composing)for(let i of M.transactions)"input"==Sa(i)?this.composing=2:2==this.composing&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:M}=this.view,i=M.field(pa);for(let M of i.active)1!=M.state||this.running.some((i=>i.active.source==M.source))||this.startQuery(M)}startQuery(M){let{state:i}=this.view,t=Da(i),e=new ea(i,t,M.explicitPos==t),N=new ma(M,e);this.running.push(N),Promise.resolve(M.source(e)).then((M=>{N.context.aborted||(N.done=M||null,this.scheduleAccept())}),(M=>{this.view.dispatch({effects:oa.of(null)}),ND(this.view.state,M)}))}scheduleAccept(){this.running.every((M=>void 0!==M.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(ca).updateSyncTime))}accept(){var M;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let i=[],t=this.view.state.facet(ca);for(let e=0;e<this.running.length;e++){let N=this.running[e];if(void 0===N.done)continue;if(this.running.splice(e--,1),N.done){let e=new Qa(N.active.source,N.active.explicitPos,N.done,N.done.from,null!==(M=N.done.to)&&void 0!==M?M:Da(N.updates.length?N.updates[0].startState:this.view.state));for(let M of N.updates)e=e.update(M,t);if(e.hasResult()){i.push(e);continue}}let s=this.view.state.field(pa).active.find((M=>M.source==N.active.source));if(s&&1==s.state)if(null==N.done){let M=new Ea(N.active.source,0);for(let i of N.updates)M=M.update(i,t);1!=M.state&&i.push(M)}else this.startQuery(s)}i.length&&this.view.dispatch({effects:ka.of(i)})}},{eventHandlers:{blur(M){let i=this.view.state.field(pa,!1);if(i&&i.tooltip&&this.view.state.facet(ca).closeOnBlur){let t=i.open&&cI(this.view,i.open.tooltip);t&&t.dom.contains(M.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:oa.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:ra.of(!1)})),20),this.composing=0}}}),fa=uj.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class Wa{constructor(M,i,t,e){this.field=M,this.line=i,this.from=t,this.to=e}}class Va{constructor(M,i,t){this.field=M,this.from=i,this.to=t}map(M){let i=M.mapPos(this.from,-1,Ve.TrackDel),t=M.mapPos(this.to,1,Ve.TrackDel);return null==i||null==t?null:new Va(this.field,i,t)}}class va{constructor(M,i){this.lines=M,this.fieldPositions=i}instantiate(M,i){let t=[],e=[i],N=M.doc.lineAt(i),s=/^\s*/.exec(N.text)[0];for(let N of this.lines){if(t.length){let t=s,u=/^\t*/.exec(N)[0].length;for(let i=0;i<u;i++)t+=M.facet(gr);e.push(i+t.length-u),N=t+N.slice(u)}t.push(N),i+=N.length+1}let u=this.fieldPositions.map((M=>new Va(M.field,e[M.line]+M.from,e[M.line]+M.to)));return{text:t,ranges:u}}static parse(M){let i,t=[],e=[],N=[];for(let s of M.split(/\r\n?|\n/)){for(;i=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(s);){let M=i[1]?+i[1]:null,u=i[2]||i[3]||"",D=-1;for(let i=0;i<t.length;i++)(null!=M?t[i].seq==M:u&&t[i].name==u)&&(D=i);if(D<0){let i=0;for(;i<t.length&&(null==M||null!=t[i].seq&&t[i].seq<M);)i++;t.splice(i,0,{seq:M,name:u}),D=i;for(let M of N)M.field>=D&&M.field++}N.push(new Wa(D,e.length,i.index,i.index+u.length)),s=s.slice(0,i.index)+u+s.slice(i.index+i[0].length)}for(let M;M=/\\([{}])/.exec(s);){s=s.slice(0,M.index)+M[1]+s.slice(M.index+M[0].length);for(let i of N)i.line==e.length&&i.from>M.index&&(i.from--,i.to--)}e.push(s)}return new va(e,N)}}let Ga=Lu.widget({widget:new class extends Ou{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),Pa=Lu.mark({class:"cm-snippetField"});class Ra{constructor(M,i){this.ranges=M,this.active=i,this.deco=Lu.set(M.map((M=>(M.from==M.to?Ga:Pa).range(M.from,M.to))))}map(M){let i=[];for(let t of this.ranges){let e=t.map(M);if(!e)return null;i.push(e)}return new Ra(i,this.active)}selectionInsideField(M){return M.ranges.every((M=>this.ranges.some((i=>i.field==this.active&&i.from<=M.from&&i.to>=M.to))))}}const Ba=QN.define({map:(M,i)=>M&&M.map(i)}),Fa=QN.define(),Xa=uN.define({create:()=>null,update(M,i){for(let t of i.effects){if(t.is(Ba))return t.value;if(t.is(Fa)&&M)return new Ra(M.ranges,t.value)}return M&&i.docChanged&&(M=M.map(i.changes)),M&&i.selection&&!M.selectionInsideField(i.selection)&&(M=null),M},provide:M=>uj.decorations.from(M,(M=>M?M.deco:Lu.none))});function Ja(M,i){return $e.create(M.filter((M=>M.field==i)).map((M=>$e.range(M.from,M.to))))}function Ha(M){let i=va.parse(M);return(M,t,e,N)=>{let{text:s,ranges:u}=i.instantiate(M.state,e),D={changes:{from:e,to:N,insert:Oe.of(s)},scrollIntoView:!0,annotations:t?[ja.of(t),kN.userEvent.of("input.complete")]:void 0};if(u.length&&(D.selection=Ja(u,0)),u.some((M=>M.field>0))){let i=new Ra(u,0),t=D.effects=[Ba.of(i)];void 0===M.state.field(Xa,!1)&&t.push(QN.appendConfig.of([Xa,Ka,iO,fa]))}M.dispatch(M.state.update(D))}}function $a(M){return({state:i,dispatch:t})=>{let e=i.field(Xa,!1);if(!e||M<0&&0==e.active)return!1;let N=e.active+M,s=M>0&&!e.ranges.some((i=>i.field==N+M));return t(i.update({selection:Ja(e.ranges,N),effects:Ba.of(s?null:new Ra(e.ranges,N)),scrollIntoView:!0})),!0}}const _a=[{key:"Tab",run:$a(1),shift:$a(-1)},{key:"Escape",run:({state:M,dispatch:i})=>!!M.field(Xa,!1)&&(i(M.update({effects:Ba.of(null)})),!0)}],qa=Ke.define({combine:M=>M.length?M[0]:_a}),Ka=rN.highest(gj.compute([qa],(M=>M.facet(qa))));function MO(M,i){return Object.assign(Object.assign({},i),{apply:Ha(M)})}const iO=uj.domEventHandlers({mousedown(M,i){let t,e=i.state.field(Xa,!1);if(!e||null==(t=i.posAtCoords({x:M.clientX,y:M.clientY})))return!1;let N=e.ranges.find((M=>M.from<=t&&M.to>=t));return!(!N||N.field==e.active)&&(i.dispatch({selection:Ja(e.ranges,N.field),effects:Ba.of(e.ranges.some((M=>M.field>N.field))?new Ra(e.ranges,N.field):null),scrollIntoView:!0}),!0)}}),tO={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},eO=QN.define({map(M,i){let t=i.mapPos(M,-1,Ve.TrackAfter);return null==t?void 0:t}}),NO=new class extends PN{};NO.startSide=1,NO.endSide=-1;const sO=uN.define({create:()=>XN.empty,update(M,i){if(M=M.map(i.changes),i.selection){let t=i.state.doc.lineAt(i.selection.main.head);M=M.update({filter:M=>M>=t.from&&M<=t.to})}for(let t of i.effects)t.is(eO)&&(M=M.update({add:[NO.range(t.value,t.value+1)]}));return M}});const uO="()[]{}<>";function DO(M){for(let i=0;i<uO.length;i+=2)if(uO.charCodeAt(i)==M)return uO.charAt(i+1);return Ye(M<128?M:M+1)}function nO(M,i){return M.languageDataAt("closeBrackets",i)[0]||tO}const jO="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),IO=uj.inputHandler.of(((M,i,t,e)=>{if((jO?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let N=M.state.selection.main;if(e.length>2||2==e.length&&1==fe(me(e,0))||i!=N.from||t!=N.to)return!1;let s=function(M,i){let t=nO(M,M.selection.main.head),e=t.brackets||tO.brackets;for(let N of e){let s=DO(me(N,0));if(i==N)return s==N?aO(M,N,e.indexOf(N+N+N)>-1,t):gO(M,N,s,t.before||tO.before);if(i==s&&rO(M,M.selection.main.from))return cO(M,N,s)}return null}(M.state,e);return!!s&&(M.dispatch(s),!0)})),lO=[{key:"Backspace",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=nO(M,M.selection.main.head).brackets||tO.brackets,e=null,N=M.changeByRange((i=>{if(i.empty){let e=function(M,i){let t=M.sliceString(i-2,i);return fe(me(t,0))==t.length?t:t.slice(1)}(M.doc,i.head);for(let N of t)if(N==e&&oO(M.doc,i.head)==DO(me(N,0)))return{changes:{from:i.head-N.length,to:i.head+N.length},range:$e.cursor(i.head-N.length)}}return{range:e=i}}));return e||i(M.update(N,{scrollIntoView:!0,userEvent:"delete.backward"})),!e}}];function rO(M,i){let t=!1;return M.field(sO).between(0,M.doc.length,(M=>{M==i&&(t=!0)})),t}function oO(M,i){let t=M.sliceString(i,i+2);return t.slice(0,fe(me(t,0)))}function gO(M,i,t,e){let N=null,s=M.changeByRange((s=>{if(!s.empty)return{changes:[{insert:i,from:s.from},{insert:t,from:s.to}],effects:eO.of(s.to+i.length),range:$e.range(s.anchor+i.length,s.head+i.length)};let u=oO(M.doc,s.head);return!u||/\s/.test(u)||e.indexOf(u)>-1?{changes:{insert:i+t,from:s.head},effects:eO.of(s.head+i.length),range:$e.cursor(s.head+i.length)}:{range:N=s}}));return N?null:M.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function cO(M,i,t){let e=null,N=M.changeByRange((i=>i.empty&&oO(M.doc,i.head)==t?{changes:{from:i.head,to:i.head+t.length,insert:t},range:$e.cursor(i.head+t.length)}:e={range:i}));return e?null:M.update(N,{scrollIntoView:!0,userEvent:"input.type"})}function aO(M,i,t,e){let N=e.stringPrefixes||tO.stringPrefixes,s=null,u=M.changeByRange((e=>{if(!e.empty)return{changes:[{insert:i,from:e.from},{insert:i,from:e.to}],effects:eO.of(e.to+i.length),range:$e.range(e.anchor+i.length,e.head+i.length)};let u,D=e.head,n=oO(M.doc,D);if(n==i){if(OO(M,D))return{changes:{insert:i+i,from:D},effects:eO.of(D+i.length),range:$e.cursor(D+i.length)};if(rO(M,D)){let e=t&&M.sliceDoc(D,D+3*i.length)==i+i+i?i+i+i:i;return{changes:{from:D,to:D+e.length,insert:e},range:$e.cursor(D+e.length)}}}else{if(t&&M.sliceDoc(D-2*i.length,D)==i+i&&(u=TO(M,D-2*i.length,N))>-1&&OO(M,u))return{changes:{insert:i+i+i+i,from:D},effects:eO.of(D+i.length),range:$e.cursor(D+i.length)};if(M.charCategorizer(D)(n)!=YN.Word&&TO(M,D,N)>-1&&!function(M,i,t,e){let N=tr(M).resolveInner(i,-1),s=e.reduce(((M,i)=>Math.max(M,i.length)),0);for(let u=0;u<5;u++){let u=M.sliceDoc(N.from,Math.min(N.to,N.from+t.length+s)),D=u.indexOf(t);if(!D||D>-1&&e.indexOf(u.slice(0,D))>-1){let i=N.firstChild;for(;i&&i.from==N.from&&i.to-i.from>t.length+D;){if(M.sliceDoc(i.to-t.length,i.to)==t)return!1;i=i.firstChild}return!0}let n=N.to==i&&N.parent;if(!n)break;N=n}return!1}(M,D,i,N))return{changes:{insert:i+i,from:D},effects:eO.of(D+i.length),range:$e.cursor(D+i.length)}}return{range:s=e}}));return s?null:M.update(u,{scrollIntoView:!0,userEvent:"input.type"})}function OO(M,i){let t=tr(M).resolveInner(i+1);return t.parent&&t.from==i}function TO(M,i,t){let e=M.charCategorizer(i);if(e(M.sliceDoc(i-1,i))!=YN.Word)return i;for(let N of t){let t=i-N.length;if(M.sliceDoc(t,i)==N&&e(M.sliceDoc(t-1,t))!=YN.Word)return t}return-1}function LO(M={}){return[pa,ca.of(M),Ya,zO,fa]}const hO=[{key:"Ctrl-Space",run:M=>!!M.state.field(pa,!1)&&(M.dispatch({effects:ra.of(!0)}),!0)},{key:"Escape",run:M=>{let i=M.state.field(pa,!1);return!(!i||!i.active.some((M=>0!=M.state)))&&(M.dispatch({effects:oa.of(null)}),!0)}},{key:"ArrowDown",run:Za(!0)},{key:"ArrowUp",run:Za(!1)},{key:"PageDown",run:Za(!0,"page")},{key:"PageUp",run:Za(!1,"page")},{key:"Enter",run:M=>{let i=M.state.field(pa,!1);return!(M.state.readOnly||!i||!i.open||i.open.selected<0||i.open.disabled||Date.now()-i.open.timestamp<M.state.facet(ca).interactionDelay)&&Ua(M,i.open.options[i.open.selected])}}],zO=rN.highest(gj.computeN([ca],(M=>M.facet(ca).defaultKeymap?[hO]:[])));class yO{constructor(M,i,t){this.from=M,this.to=i,this.diagnostic=t}}class dO{constructor(M,i,t){this.diagnostics=M,this.panel=i,this.selected=t}static init(M,i,t){let e=M,N=t.facet(bO).markerFilter;N&&(e=N(e));let s=Lu.set(e.map((M=>M.from==M.to||M.from==M.to-1&&t.doc.lineAt(M.from).to==M.from?Lu.widget({widget:new YO(M),diagnostic:M}).range(M.from):Lu.mark({attributes:{class:"cm-lintRange cm-lintRange-"+M.severity+(M.markClass?" "+M.markClass:"")},diagnostic:M}).range(M.from,M.to))),!0);return new dO(s,i,AO(s))}}function AO(M,i=null,t=0){let e=null;return M.between(t,1e9,((M,t,{spec:N})=>{if(!i||N.diagnostic==i)return e=new yO(M,t,N.diagnostic),!1})),e}const xO=QN.define(),wO=QN.define(),SO=QN.define(),EO=uN.define({create:()=>new dO(Lu.none,null,null),update(M,i){if(i.docChanged){let t=M.diagnostics.map(i.changes),e=null;if(M.selected){let N=i.changes.mapPos(M.selected.from,1);e=AO(t,M.selected.diagnostic,N)||AO(t,null,N)}M=new dO(t,M.panel,e)}for(let t of i.effects)t.is(xO)?M=dO.init(t.value,M.panel,i.state):t.is(wO)?M=new dO(M.diagnostics,t.value?WO.open:null,M.selected):t.is(SO)&&(M=new dO(M.diagnostics,M.panel,t.value));return M},provide:M=>[yI.from(M,(M=>M.panel)),uj.decorations.from(M,(M=>M.diagnostics))]}),QO=Lu.mark({class:"cm-lintRange cm-lintRange-active"});function kO(M,i,t){let{diagnostics:e}=M.state.field(EO),N=[],s=2e8,u=0;e.between(i-(t<0?1:0),i+(t>0?1:0),((M,e,{spec:D})=>{i>=M&&i<=e&&(M==e||(i>M||t>0)&&(i<e||t<0))&&(N.push(D.diagnostic),s=Math.min(M,s),u=Math.max(e,u))}));let D=M.state.facet(bO).tooltipFilter;return D&&(N=D(N)),N.length?{pos:s,end:u,above:M.state.doc.lineAt(s).to<u,create:()=>({dom:CO(M,N)})}:null}function CO(M,i){return Kg("ul",{class:"cm-tooltip-lint"},i.map((i=>mO(M,i,!1))))}const pO=M=>{let i=M.state.field(EO,!1);return!(!i||!i.panel)&&(M.dispatch({effects:wO.of(!1)}),!0)},UO=[{key:"Mod-Shift-m",run:M=>{let i=M.state.field(EO,!1);var t,e;i&&i.panel||M.dispatch({effects:(t=M.state,e=[wO.of(!0)],t.field(EO,!1)?e:e.concat(QN.appendConfig.of(GO)))});let N=TI(M,WO.open);return N&&N.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:M=>{let i=M.state.field(EO,!1);if(!i)return!1;let t=M.state.selection.main,e=i.diagnostics.iter(t.to+1);return!(!e.value&&(e=i.diagnostics.iter(0),!e.value||e.from==t.from&&e.to==t.to))&&(M.dispatch({selection:{anchor:e.from,head:e.to},scrollIntoView:!0}),!0)}}],bO=Ke.define({combine:M=>Object.assign({sources:M.map((M=>M.source))},GN(M.map((M=>M.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(M,i)=>M?i?t=>M(t)||i(t):M:i}))});function ZO(M){let i=[];if(M)M:for(let{name:t}of M){for(let M=0;M<t.length;M++){let e=t[M];if(/[a-zA-Z]/.test(e)&&!i.some((M=>M.toLowerCase()==e.toLowerCase()))){i.push(e);continue M}}i.push("")}return i}function mO(M,i,t){var e;let N=t?ZO(i.actions):[];return Kg("li",{class:"cm-diagnostic cm-diagnostic-"+i.severity},Kg("span",{class:"cm-diagnosticText"},i.renderMessage?i.renderMessage():i.message),null===(e=i.actions)||void 0===e?void 0:e.map(((t,e)=>{let s=!1,u=e=>{if(e.preventDefault(),s)return;s=!0;let N=AO(M.state.field(EO).diagnostics,i);N&&t.apply(M,N.from,N.to)},{name:D}=t,n=N[e]?D.indexOf(N[e]):-1,j=n<0?D:[D.slice(0,n),Kg("u",D.slice(n,n+1)),D.slice(n+1)];return Kg("button",{type:"button",class:"cm-diagnosticAction",onclick:u,onmousedown:u,"aria-label":` Action: ${D}${n<0?"":` (access key "${N[e]})"`}.`},j)})),i.source&&Kg("div",{class:"cm-diagnosticSource"},i.source))}class YO extends Ou{constructor(M){super(),this.diagnostic=M}eq(M){return M.diagnostic==this.diagnostic}toDOM(){return Kg("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class fO{constructor(M,i){this.diagnostic=i,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=mO(M,i,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class WO{constructor(M){this.view=M,this.items=[];this.list=Kg("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:i=>{if(27==i.keyCode)pO(this.view),this.view.focus();else if(38==i.keyCode||33==i.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==i.keyCode||34==i.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==i.keyCode)this.moveSelection(0);else if(35==i.keyCode)this.moveSelection(this.items.length-1);else if(13==i.keyCode)this.view.focus();else{if(!(i.keyCode>=65&&i.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:t}=this.items[this.selectedIndex],e=ZO(t.actions);for(let N=0;N<e.length;N++)if(e[N].toUpperCase().charCodeAt(0)==i.keyCode){let i=AO(this.view.state.field(EO).diagnostics,t);i&&t.actions[N].apply(M,i.from,i.to)}}}i.preventDefault()},onclick:M=>{for(let i=0;i<this.items.length;i++)this.items[i].dom.contains(M.target)&&this.moveSelection(i)}}),this.dom=Kg("div",{class:"cm-panel-lint"},this.list,Kg("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>pO(this.view)},"×")),this.update()}get selectedIndex(){let M=this.view.state.field(EO).selected;if(!M)return-1;for(let i=0;i<this.items.length;i++)if(this.items[i].diagnostic==M.diagnostic)return i;return-1}update(){let{diagnostics:M,selected:i}=this.view.state.field(EO),t=0,e=!1,N=null;for(M.between(0,this.view.state.doc.length,((M,s,{spec:u})=>{let D,n=-1;for(let M=t;M<this.items.length;M++)if(this.items[M].diagnostic==u.diagnostic){n=M;break}n<0?(D=new fO(this.view,u.diagnostic),this.items.splice(t,0,D),e=!0):(D=this.items[n],n>t&&(this.items.splice(t,n-t),e=!0)),i&&D.diagnostic==i.diagnostic?D.dom.hasAttribute("aria-selected")||(D.dom.setAttribute("aria-selected","true"),N=D):D.dom.hasAttribute("aria-selected")&&D.dom.removeAttribute("aria-selected"),t++}));t<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)e=!0,this.items.pop();0==this.items.length&&(this.items.push(new fO(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),e=!0),N?(this.list.setAttribute("aria-activedescendant",N.id),this.view.requestMeasure({key:this,read:()=>({sel:N.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:M,panel:i})=>{let t=i.height/this.list.offsetHeight;M.top<i.top?this.list.scrollTop-=(i.top-M.top)/t:M.bottom>i.bottom&&(this.list.scrollTop+=(M.bottom-i.bottom)/t)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),e&&this.sync()}sync(){let M=this.list.firstChild;function i(){let i=M;M=i.nextSibling,i.remove()}for(let t of this.items)if(t.dom.parentNode==this.list){for(;M!=t.dom;)i();M=t.dom.nextSibling}else this.list.insertBefore(t.dom,M);for(;M;)i()}moveSelection(M){if(this.selectedIndex<0)return;let i=AO(this.view.state.field(EO).diagnostics,this.items[M].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:SO.of(i)})}static open(M){return new WO(M)}}function VO(M){return function(M,i='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${i}>${encodeURIComponent(M)}</svg>')`}(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${M}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const vO=uj.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:VO("#d11")},".cm-lintRange-warning":{backgroundImage:VO("orange")},".cm-lintRange-info":{backgroundImage:VO("#999")},".cm-lintRange-hint":{backgroundImage:VO("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),GO=[EO,uj.decorations.compute([EO],(M=>{let{selected:i,panel:t}=M.field(EO);return i&&t&&i.from!=i.to?Lu.set([QO.range(i.from,i.to)]):Lu.none})),gI(kO,{hideOn:function(M,i){let t=M.startState.doc.lineAt(i.pos);return!(!M.effects.some((M=>M.is(xO)))&&!M.changes.touchesRange(t.from,t.to))}}),vO];class PO{constructor(M,i,t,e,N,s,u,D,n,j=0,I){this.p=M,this.stack=i,this.state=t,this.reducePos=e,this.pos=N,this.score=s,this.buffer=u,this.bufferBase=D,this.curContext=n,this.lookAhead=j,this.parent=I}toString(){return`[${this.stack.filter(((M,i)=>i%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(M,i,t=0){let e=M.parser.context;return new PO(M,[],i,t,t,0,[],0,e?new RO(e,e.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(M,i){this.stack.push(this.state,i,this.bufferBase+this.buffer.length),this.state=M}reduce(M){var i;let t=M>>19,e=65535&M,{parser:N}=this.p,s=N.dynamicPrecedence(e);if(s&&(this.score+=s),0==t)return this.pushState(N.getGoto(this.state,e,!0),this.reducePos),e<N.minRepeatTerm&&this.storeNode(e,this.reducePos,this.reducePos,4,!0),void this.reduceContext(e,this.reducePos);let u=this.stack.length-3*(t-1)-(262144&M?6:0),D=u?this.stack[u-2]:this.p.ranges[0].from,n=this.reducePos-D;n>=2e3&&!(null===(i=this.p.parser.nodeSet.types[e])||void 0===i?void 0:i.isAnonymous)&&(D==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=n):this.p.lastBigReductionSize<n&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=D,this.p.lastBigReductionSize=n));let j=u?this.stack[u-1]:0,I=this.bufferBase+this.buffer.length-j;if(e<N.minRepeatTerm||131072&M){let M=N.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(e,D,M,I+4,!0)}if(262144&M)this.state=this.stack[u];else{let M=this.stack[u-3];this.state=N.getGoto(M,e,!0)}for(;this.stack.length>u;)this.stack.pop();this.reduceContext(e,D)}storeNode(M,i,t,e=4,N=!1){if(0==M&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let M=this,e=this.buffer.length;if(0==e&&M.parent&&(e=M.bufferBase-M.parent.bufferBase,M=M.parent),e>0&&0==M.buffer[e-4]&&M.buffer[e-1]>-1){if(i==t)return;if(M.buffer[e-2]>=i)return void(M.buffer[e-2]=t)}}if(N&&this.pos!=t){let N=this.buffer.length;if(N>0&&0!=this.buffer[N-4])for(;N>0&&this.buffer[N-2]>t;)this.buffer[N]=this.buffer[N-4],this.buffer[N+1]=this.buffer[N-3],this.buffer[N+2]=this.buffer[N-2],this.buffer[N+3]=this.buffer[N-1],N-=4,e>4&&(e-=4);this.buffer[N]=M,this.buffer[N+1]=i,this.buffer[N+2]=t,this.buffer[N+3]=e}else this.buffer.push(M,i,t,e)}shift(M,i,t,e){if(131072&M)this.pushState(65535&M,this.pos);else if(0==(262144&M)){let N=M,{parser:s}=this.p;(e>this.pos||i<=s.maxNode)&&(this.pos=e,s.stateFlag(N,1)||(this.reducePos=e)),this.pushState(N,t),this.shiftContext(i,t),i<=s.maxNode&&this.buffer.push(i,t,e,4)}else this.pos=e,this.shiftContext(i,t),i<=this.p.parser.maxNode&&this.buffer.push(i,t,e,4)}apply(M,i,t,e){65536&M?this.reduce(M):this.shift(M,i,t,e)}useNode(M,i){let t=this.p.reused.length-1;(t<0||this.p.reused[t]!=M)&&(this.p.reused.push(M),t++);let e=this.pos;this.reducePos=this.pos=e+M.length,this.pushState(i,e),this.buffer.push(t,e,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,M,this,this.p.stream.reset(this.pos-M.length)))}split(){let M=this,i=M.buffer.length;for(;i>0&&M.buffer[i-2]>M.reducePos;)i-=4;let t=M.buffer.slice(i),e=M.bufferBase+i;for(;M&&e==M.bufferBase;)M=M.parent;return new PO(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,t,e,this.curContext,this.lookAhead,M)}recoverByDelete(M,i){let t=M<=this.p.parser.maxNode;t&&this.storeNode(M,this.pos,i,4),this.storeNode(0,this.pos,i,t?8:4),this.pos=this.reducePos=i,this.score-=190}canShift(M){for(let i=new BO(this);;){let t=this.p.parser.stateSlot(i.state,4)||this.p.parser.hasAction(i.state,M);if(0==t)return!1;if(0==(65536&t))return!0;i.reduce(t)}}recoverByInsert(M){if(this.stack.length>=300)return[];let i=this.p.parser.nextStates(this.state);if(i.length>8||this.stack.length>=120){let t=[];for(let e,N=0;N<i.length;N+=2)(e=i[N+1])!=this.state&&this.p.parser.hasAction(e,M)&&t.push(i[N],e);if(this.stack.length<120)for(let M=0;t.length<8&&M<i.length;M+=2){let e=i[M+1];t.some(((M,i)=>1&i&&M==e))||t.push(i[M],e)}i=t}let t=[];for(let M=0;M<i.length&&t.length<4;M+=2){let e=i[M+1];if(e==this.state)continue;let N=this.split();N.pushState(e,this.pos),N.storeNode(0,N.pos,N.pos,4,!0),N.shiftContext(i[M],this.pos),N.reducePos=this.pos,N.score-=200,t.push(N)}return t}forceReduce(){let{parser:M}=this.p,i=M.stateSlot(this.state,5);if(0==(65536&i))return!1;if(!M.validAction(this.state,i)){let t=i>>19,e=65535&i,N=this.stack.length-3*t;if(N<0||M.getGoto(this.stack[N],e,!1)<0){let M=this.findForcedReduction();if(null==M)return!1;i=M}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(i),!0}findForcedReduction(){let{parser:M}=this.p,i=[],t=(e,N)=>{if(!i.includes(e))return i.push(e),M.allActions(e,(i=>{if(393216&i);else if(65536&i){let t=(i>>19)-N;if(t>1){let e=65535&i,N=this.stack.length-3*t;if(N>=0&&M.getGoto(this.stack[N],e,!1)>=0)return t<<19|65536|e}}else{let M=t(i,N+1);if(null!=M)return M}}))};return t(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:M}=this.p;return 65535==M.data[M.stateSlot(this.state,1)]&&!M.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(M){if(this.state!=M.state||this.stack.length!=M.stack.length)return!1;for(let i=0;i<this.stack.length;i+=3)if(this.stack[i]!=M.stack[i])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(M){return this.p.parser.dialect.flags[M]}shiftContext(M,i){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,M,this,this.p.stream.reset(i)))}reduceContext(M,i){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,M,this,this.p.stream.reset(i)))}emitContext(){let M=this.buffer.length-1;(M<0||-3!=this.buffer[M])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let M=this.buffer.length-1;(M<0||-4!=this.buffer[M])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(M){if(M!=this.curContext.context){let i=new RO(this.curContext.tracker,M);i.hash!=this.curContext.hash&&this.emitContext(),this.curContext=i}}setLookAhead(M){M>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=M)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class RO{constructor(M,i){this.tracker=M,this.context=i,this.hash=M.strict?M.hash(i):0}}class BO{constructor(M){this.start=M,this.state=M.state,this.stack=M.stack,this.base=this.stack.length}reduce(M){let i=65535&M,t=M>>19;0==t?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(t-1);let e=this.start.p.parser.getGoto(this.stack[this.base-3],i,!0);this.state=e}}class FO{constructor(M,i,t){this.stack=M,this.pos=i,this.index=t,this.buffer=M.buffer,0==this.index&&this.maybeNext()}static create(M,i=M.bufferBase+M.buffer.length){return new FO(M,i,i-M.bufferBase)}maybeNext(){let M=this.stack.parent;null!=M&&(this.index=this.stack.bufferBase-M.bufferBase,this.stack=M,this.buffer=M.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new FO(this.stack,this.pos,this.index)}}function XO(M,i=Uint16Array){if("string"!=typeof M)return M;let t=null;for(let e=0,N=0;e<M.length;){let s=0;for(;;){let i=M.charCodeAt(e++),t=!1;if(126==i){s=65535;break}i>=92&&i--,i>=34&&i--;let N=i-32;if(N>=46&&(N-=46,t=!0),s+=N,t)break;s*=46}t?t[N++]=s:t=new i(s)}return t}class JO{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const HO=new JO;class $O{constructor(M,i){this.input=M,this.ranges=i,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=HO,this.rangeIndex=0,this.pos=this.chunkPos=i[0].from,this.range=i[0],this.end=i[i.length-1].to,this.readNext()}resolveOffset(M,i){let t=this.range,e=this.rangeIndex,N=this.pos+M;for(;N<t.from;){if(!e)return null;let M=this.ranges[--e];N-=t.from-M.to,t=M}for(;i<0?N>t.to:N>=t.to;){if(e==this.ranges.length-1)return null;let M=this.ranges[++e];N+=M.from-t.to,t=M}return N}clipPos(M){if(M>=this.range.from&&M<this.range.to)return M;for(let i of this.ranges)if(i.to>M)return Math.max(M,i.from);return this.end}peek(M){let i,t,e=this.chunkOff+M;if(e>=0&&e<this.chunk.length)i=this.pos+M,t=this.chunk.charCodeAt(e);else{let e=this.resolveOffset(M,1);if(null==e)return-1;if(i=e,i>=this.chunk2Pos&&i<this.chunk2Pos+this.chunk2.length)t=this.chunk2.charCodeAt(i-this.chunk2Pos);else{let M=this.rangeIndex,e=this.range;for(;e.to<=i;)e=this.ranges[++M];this.chunk2=this.input.chunk(this.chunk2Pos=i),i+this.chunk2.length>e.to&&(this.chunk2=this.chunk2.slice(0,e.to-i)),t=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),t}acceptToken(M,i=0){let t=i?this.resolveOffset(i,-1):this.pos;if(null==t||t<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=M,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:M,chunkPos:i}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=M,this.chunk2Pos=i,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let M=this.input.chunk(this.pos),i=this.pos+M.length;this.chunk=i>this.range.to?M.slice(0,this.range.to-this.pos):M,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(M=1){for(this.chunkOff+=M;this.pos+M>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();M-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=M,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(M,i){if(i?(this.token=i,i.start=M,i.lookAhead=M+1,i.value=i.extended=-1):this.token=HO,this.pos!=M){if(this.pos=M,M==this.end)return this.setDone(),this;for(;M<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;M>=this.range.to;)this.range=this.ranges[++this.rangeIndex];M>=this.chunkPos&&M<this.chunkPos+this.chunk.length?this.chunkOff=M-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(M,i){if(M>=this.chunkPos&&i<=this.chunkPos+this.chunk.length)return this.chunk.slice(M-this.chunkPos,i-this.chunkPos);if(M>=this.chunk2Pos&&i<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(M-this.chunk2Pos,i-this.chunk2Pos);if(M>=this.range.from&&i<=this.range.to)return this.input.read(M,i);let t="";for(let e of this.ranges){if(e.from>=i)break;e.to>M&&(t+=this.input.read(Math.max(e.from,M),Math.min(e.to,i)))}return t}}class _O{constructor(M,i){this.data=M,this.id=i}token(M,i){let{parser:t}=i.p;MT(this.data,M,i,this.id,t.data,t.tokenPrecTable)}}_O.prototype.contextual=_O.prototype.fallback=_O.prototype.extend=!1;class qO{constructor(M,i,t){this.precTable=i,this.elseToken=t,this.data="string"==typeof M?XO(M):M}token(M,i){let t=M.pos,e=0;for(;;){let t=M.next<0,N=M.resolveOffset(1,1);if(MT(this.data,M,i,0,this.data,this.precTable),M.token.value>-1)break;if(null==this.elseToken)return;if(t||e++,null==N)break;M.reset(N,M.token)}e&&(M.reset(t,M.token),M.acceptToken(this.elseToken,e))}}qO.prototype.contextual=_O.prototype.fallback=_O.prototype.extend=!1;class KO{constructor(M,i={}){this.token=M,this.contextual=!!i.contextual,this.fallback=!!i.fallback,this.extend=!!i.extend}}function MT(M,i,t,e,N,s){let u=0,D=1<<e,{dialect:n}=t.p.parser;M:for(;0!=(D&M[u]);){let t=M[u+1];for(let e=u+3;e<t;e+=2)if((M[e+1]&D)>0){let t=M[e];if(n.allows(t)&&(-1==i.token.value||i.token.value==t||tT(t,i.token.value,N,s))){i.acceptToken(t);break}}let e=i.next,j=0,I=M[u+2];if(!(i.next<0&&I>j&&65535==M[t+3*I-3])){for(;j<I;){let N=j+I>>1,s=t+N+(N<<1),D=M[s],n=M[s+1]||65536;if(e<D)I=N;else{if(!(e>=n)){u=M[s+2],i.advance();continue M}j=N+1}}break}u=M[t+3*I-1]}}function iT(M,i,t){for(let e,N=i;65535!=(e=M[N]);N++)if(e==t)return N-i;return-1}function tT(M,i,t,e){let N=iT(t,e,i);return N<0||iT(t,e,M)<N}const eT="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let NT=null;function sT(M,i,t){let e=M.cursor(Ml.IncludeAnonymous);for(e.moveTo(i);;)if(!(t<0?e.childBefore(i):e.childAfter(i)))for(;;){if((t<0?e.to<i:e.from>i)&&!e.type.isError)return t<0?Math.max(0,Math.min(e.to-1,i-25)):Math.min(M.length,Math.max(e.from+1,i+25));if(t<0?e.prevSibling():e.nextSibling())break;if(!e.parent())return t<0?0:M.length}}class uT{constructor(M,i){this.fragments=M,this.nodeSet=i,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let M=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(M){for(this.safeFrom=M.openStart?sT(M.tree,M.from+M.offset,1)-M.offset:M.from,this.safeTo=M.openEnd?sT(M.tree,M.to+M.offset,-1)-M.offset:M.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(M.tree),this.start.push(-M.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(M){if(M<this.nextStart)return null;for(;this.fragment&&this.safeTo<=M;)this.nextFragment();if(!this.fragment)return null;for(;;){let i=this.trees.length-1;if(i<0)return this.nextFragment(),null;let t=this.trees[i],e=this.index[i];if(e==t.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let N=t.children[e],s=this.start[i]+t.positions[e];if(s>M)return this.nextStart=s,null;if(N instanceof il){if(s==M){if(s<this.safeFrom)return null;let M=s+N.length;if(M<=this.safeTo){let i=N.prop(XI.lookAhead);if(!i||M+i<this.fragment.to)return N}}this.index[i]++,s+N.length>=Math.max(this.safeFrom,M)&&(this.trees.push(N),this.start.push(s),this.index.push(0))}else this.index[i]++,this.nextStart=s+N.length}}}class DT{constructor(M,i){this.stream=i,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=M.tokenizers.map((M=>new JO))}getActions(M){let i=0,t=null,{parser:e}=M.p,{tokenizers:N}=e,s=e.stateSlot(M.state,3),u=M.curContext?M.curContext.hash:0,D=0;for(let e=0;e<N.length;e++){if(0==(1<<e&s))continue;let n=N[e],j=this.tokens[e];if((!t||n.fallback)&&((n.contextual||j.start!=M.pos||j.mask!=s||j.context!=u)&&(this.updateCachedToken(j,n,M),j.mask=s,j.context=u),j.lookAhead>j.end+25&&(D=Math.max(j.lookAhead,D)),0!=j.value)){let e=i;if(j.extended>-1&&(i=this.addActions(M,j.extended,j.end,i)),i=this.addActions(M,j.value,j.end,i),!n.extend&&(t=j,i>e))break}}for(;this.actions.length>i;)this.actions.pop();return D&&M.setLookAhead(D),t||M.pos!=this.stream.end||(t=new JO,t.value=M.p.parser.eofTerm,t.start=t.end=M.pos,i=this.addActions(M,t.value,t.end,i)),this.mainToken=t,this.actions}getMainToken(M){if(this.mainToken)return this.mainToken;let i=new JO,{pos:t,p:e}=M;return i.start=t,i.end=Math.min(t+1,e.stream.end),i.value=t==e.stream.end?e.parser.eofTerm:0,i}updateCachedToken(M,i,t){let e=this.stream.clipPos(t.pos);if(i.token(this.stream.reset(e,M),t),M.value>-1){let{parser:i}=t.p;for(let e=0;e<i.specialized.length;e++)if(i.specialized[e]==M.value){let N=i.specializers[e](this.stream.read(M.start,M.end),t);if(N>=0&&t.p.parser.dialect.allows(N>>1)){0==(1&N)?M.value=N>>1:M.extended=N>>1;break}}}else M.value=0,M.end=this.stream.clipPos(e+1)}putAction(M,i,t,e){for(let i=0;i<e;i+=3)if(this.actions[i]==M)return e;return this.actions[e++]=M,this.actions[e++]=i,this.actions[e++]=t,e}addActions(M,i,t,e){let{state:N}=M,{parser:s}=M.p,{data:u}=s;for(let M=0;M<2;M++)for(let D=s.stateSlot(N,M?2:1);;D+=3){if(65535==u[D]){if(1!=u[D+1]){0==e&&2==u[D+1]&&(e=this.putAction(oT(u,D+2),i,t,e));break}D=oT(u,D+2)}u[D]==i&&(e=this.putAction(oT(u,D+1),i,t,e))}return e}}class nT{constructor(M,i,t,e){this.parser=M,this.input=i,this.ranges=e,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new $O(i,e),this.tokens=new DT(M,this.stream),this.topTerm=M.top[1];let{from:N}=e[0];this.stacks=[PO.start(this,M.top[0],N)],this.fragments=t.length&&this.stream.end-N>4*M.bufferLength?new uT(t,M.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let M,i,t=this.stacks,e=this.minStackPos,N=this.stacks=[];if(this.bigReductionCount>300&&1==t.length){let[M]=t;for(;M.forceReduce()&&M.stack.length&&M.stack[M.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;s<t.length;s++){let u=t[s];for(;;){if(this.tokens.mainToken=null,u.pos>e)N.push(u);else{if(this.advanceStack(u,N,t))continue;{M||(M=[],i=[]),M.push(u);let t=this.tokens.getMainToken(u);i.push(t.value,t.end)}}break}}if(!N.length){let i=M&&function(M){let i=null;for(let t of M){let M=t.p.stoppedAt;(t.pos==t.p.stream.end||null!=M&&t.pos>M)&&t.p.parser.stateFlag(t.state,2)&&(!i||i.score<t.score)&&(i=t)}return i}(M);if(i)return eT&&console.log("Finish with "+this.stackID(i)),this.stackToTree(i);if(this.parser.strict)throw eT&&M&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&M){let t=null!=this.stoppedAt&&M[0].pos>this.stoppedAt?M[0]:this.runRecovery(M,i,N);if(t)return eT&&console.log("Force-finish "+this.stackID(t)),this.stackToTree(t.forceAll())}if(this.recovering){let M=1==this.recovering?1:3*this.recovering;if(N.length>M)for(N.sort(((M,i)=>i.score-M.score));N.length>M;)N.pop();N.some((M=>M.reducePos>e))&&this.recovering--}else if(N.length>1){M:for(let M=0;M<N.length-1;M++){let i=N[M];for(let t=M+1;t<N.length;t++){let e=N[t];if(i.sameState(e)||i.buffer.length>500&&e.buffer.length>500){if(!((i.score-e.score||i.buffer.length-e.buffer.length)>0)){N.splice(M--,1);continue M}N.splice(t--,1)}}}N.length>12&&N.splice(12,N.length-12)}this.minStackPos=N[0].pos;for(let M=1;M<N.length;M++)N[M].pos<this.minStackPos&&(this.minStackPos=N[M].pos);return null}stopAt(M){if(null!=this.stoppedAt&&this.stoppedAt<M)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=M}advanceStack(M,i,t){let e=M.pos,{parser:N}=this,s=eT?this.stackID(M)+" -> ":"";if(null!=this.stoppedAt&&e>this.stoppedAt)return M.forceReduce()?M:null;if(this.fragments){let i=M.curContext&&M.curContext.tracker.strict,t=i?M.curContext.hash:0;for(let u=this.fragments.nodeAt(e);u;){let e=this.parser.nodeSet.types[u.type.id]==u.type?N.getGoto(M.state,u.type.id):-1;if(e>-1&&u.length&&(!i||(u.prop(XI.contextHash)||0)==t))return M.useNode(u,e),eT&&console.log(s+this.stackID(M)+` (via reuse of ${N.getName(u.type.id)})`),!0;if(!(u instanceof il)||0==u.children.length||u.positions[0]>0)break;let D=u.children[0];if(!(D instanceof il&&0==u.positions[0]))break;u=D}}let u=N.stateSlot(M.state,4);if(u>0)return M.reduce(u),eT&&console.log(s+this.stackID(M)+` (via always-reduce ${N.getName(65535&u)})`),!0;if(M.stack.length>=8400)for(;M.stack.length>6e3&&M.forceReduce(););let D=this.tokens.getActions(M);for(let u=0;u<D.length;){let n=D[u++],j=D[u++],I=D[u++],l=u==D.length||!t,r=l?M:M.split(),o=this.tokens.mainToken;if(r.apply(n,j,o?o.start:r.pos,I),eT&&console.log(s+this.stackID(r)+` (via ${0==(65536&n)?"shift":`reduce of ${N.getName(65535&n)}`} for ${N.getName(j)} @ ${e}${r==M?"":", split"})`),l)return!0;r.pos>e?i.push(r):t.push(r)}return!1}advanceFully(M,i){let t=M.pos;for(;;){if(!this.advanceStack(M,null,null))return!1;if(M.pos>t)return jT(M,i),!0}}runRecovery(M,i,t){let e=null,N=!1;for(let s=0;s<M.length;s++){let u=M[s],D=i[s<<1],n=i[1+(s<<1)],j=eT?this.stackID(u)+" -> ":"";if(u.deadEnd){if(N)continue;if(N=!0,u.restart(),eT&&console.log(j+this.stackID(u)+" (restarted)"),this.advanceFully(u,t))continue}let I=u.split(),l=j;for(let M=0;I.forceReduce()&&M<10;M++){if(eT&&console.log(l+this.stackID(I)+" (via force-reduce)"),this.advanceFully(I,t))break;eT&&(l=this.stackID(I)+" -> ")}for(let M of u.recoverByInsert(D))eT&&console.log(j+this.stackID(M)+" (via recover-insert)"),this.advanceFully(M,t);this.stream.end>u.pos?(n==u.pos&&(n++,D=0),u.recoverByDelete(D,n),eT&&console.log(j+this.stackID(u)+` (via recover-delete ${this.parser.getName(D)})`),jT(u,t)):(!e||e.score<u.score)&&(e=u)}return e}stackToTree(M){return M.close(),il.build({buffer:FO.create(M),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:M.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(M){let i=(NT||(NT=new WeakMap)).get(M);return i||NT.set(M,i=String.fromCodePoint(this.nextStackID++)),i+M}}function jT(M,i){for(let t=0;t<i.length;t++){let e=i[t];if(e.pos==M.pos&&e.sameState(M))return void(i[t].score<M.score&&(i[t]=M))}i.push(M)}class IT{constructor(M,i,t){this.source=M,this.flags=i,this.disabled=t}allows(M){return!this.disabled||0==this.disabled[M]}}const lT=M=>M;class rT extends zl{constructor(M){if(super(),this.wrappers=[],14!=M.version)throw new RangeError(`Parser version (${M.version}) doesn't match runtime version (14)`);let i=M.nodeNames.split(" ");this.minRepeatTerm=i.length;for(let t=0;t<M.repeatNodeCount;t++)i.push("");let t=Object.keys(M.topRules).map((i=>M.topRules[i][1])),e=[];for(let M=0;M<i.length;M++)e.push([]);function N(M,i,t){e[M].push([i,i.deserialize(String(t))])}if(M.nodeProps)for(let i of M.nodeProps){let M=i[0];"string"==typeof M&&(M=XI[M]);for(let t=1;t<i.length;){let e=i[t++];if(e>=0)N(e,M,i[t++]);else{let s=i[t+-e];for(let u=-e;u>0;u--)N(i[t++],M,s);t++}}}this.nodeSet=new _I(i.map(((i,N)=>$I.define({name:N>=this.minRepeatTerm?void 0:i,id:N,props:e[N],top:t.indexOf(N)>-1,error:0==N,skipped:M.skippedNodes&&M.skippedNodes.indexOf(N)>-1})))),M.propSources&&(this.nodeSet=this.nodeSet.extend(...M.propSources)),this.strict=!1,this.bufferLength=RI;let s=XO(M.tokenData);this.context=M.context,this.specializerSpecs=M.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let M=0;M<this.specializerSpecs.length;M++)this.specialized[M]=this.specializerSpecs[M].term;this.specializers=this.specializerSpecs.map(gT),this.states=XO(M.states,Uint32Array),this.data=XO(M.stateData),this.goto=XO(M.goto),this.maxTerm=M.maxTerm,this.tokenizers=M.tokenizers.map((M=>"number"==typeof M?new _O(s,M):M)),this.topRules=M.topRules,this.dialects=M.dialects||{},this.dynamicPrecedences=M.dynamicPrecedences||null,this.tokenPrecTable=M.tokenPrec,this.termNames=M.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(M,i,t){let e=new nT(this,M,i,t);for(let N of this.wrappers)e=N(e,M,i,t);return e}getGoto(M,i,t=!1){let e=this.goto;if(i>=e[0])return-1;for(let N=e[i+1];;){let i=e[N++],s=1&i,u=e[N++];if(s&&t)return u;for(let t=N+(i>>1);N<t;N++)if(e[N]==M)return u;if(s)return-1}}hasAction(M,i){let t=this.data;for(let e=0;e<2;e++)for(let N,s=this.stateSlot(M,e?2:1);;s+=3){if(65535==(N=t[s])){if(1!=t[s+1]){if(2==t[s+1])return oT(t,s+2);break}N=t[s=oT(t,s+2)]}if(N==i||0==N)return oT(t,s+1)}return 0}stateSlot(M,i){return this.states[6*M+i]}stateFlag(M,i){return(this.stateSlot(M,0)&i)>0}validAction(M,i){return!!this.allActions(M,(M=>M==i||null))}allActions(M,i){let t=this.stateSlot(M,4),e=t?i(t):void 0;for(let t=this.stateSlot(M,1);null==e;t+=3){if(65535==this.data[t]){if(1!=this.data[t+1])break;t=oT(this.data,t+2)}e=i(oT(this.data,t+1))}return e}nextStates(M){let i=[];for(let t=this.stateSlot(M,1);;t+=3){if(65535==this.data[t]){if(1!=this.data[t+1])break;t=oT(this.data,t+2)}if(0==(1&this.data[t+2])){let M=this.data[t+1];i.some(((i,t)=>1&t&&i==M))||i.push(this.data[t],M)}}return i}configure(M){let i=Object.assign(Object.create(rT.prototype),this);if(M.props&&(i.nodeSet=this.nodeSet.extend(...M.props)),M.top){let t=this.topRules[M.top];if(!t)throw new RangeError(`Invalid top rule name ${M.top}`);i.top=t}return M.tokenizers&&(i.tokenizers=this.tokenizers.map((i=>{let t=M.tokenizers.find((M=>M.from==i));return t?t.to:i}))),M.specializers&&(i.specializers=this.specializers.slice(),i.specializerSpecs=this.specializerSpecs.map(((t,e)=>{let N=M.specializers.find((M=>M.from==t.external));if(!N)return t;let s=Object.assign(Object.assign({},t),{external:N.to});return i.specializers[e]=gT(s),s}))),M.contextTracker&&(i.context=M.contextTracker),M.dialect&&(i.dialect=this.parseDialect(M.dialect)),null!=M.strict&&(i.strict=M.strict),M.wrap&&(i.wrappers=i.wrappers.concat(M.wrap)),null!=M.bufferLength&&(i.bufferLength=M.bufferLength),i}hasWrappers(){return this.wrappers.length>0}getName(M){return this.termNames?this.termNames[M]:String(M<=this.maxNode&&this.nodeSet.types[M].name||M)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(M){let i=this.dynamicPrecedences;return null==i?0:i[M]||0}parseDialect(M){let i=Object.keys(this.dialects),t=i.map((()=>!1));if(M)for(let e of M.split(" ")){let M=i.indexOf(e);M>=0&&(t[M]=!0)}let e=null;for(let M=0;M<i.length;M++)if(!t[M])for(let t,N=this.dialects[i[M]];65535!=(t=this.data[N++]);)(e||(e=new Uint8Array(this.maxTerm+1)))[t]=1;return new IT(M,t,e)}static deserialize(M){return new rT(M)}}function oT(M,i){return M[i]|M[i+1]<<16}function gT(M){if(M.external){let i=M.extend?1:0;return(t,e)=>M.external(t,e)<<1|i}return M.get}const cT=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],aT=new class{constructor(M){this.start=M.start,this.shift=M.shift||lT,this.reduce=M.reduce||lT,this.reuse=M.reuse||lT,this.hash=M.hash||(()=>0),this.strict=!1!==M.strict}}({start:!1,shift:(M,i)=>4==i||5==i||312==i?M:313==i,strict:!1}),OT=new KO(((M,i)=>{let{next:t}=M;(125==t||-1==t||i.context)&&M.acceptToken(310)}),{contextual:!0,fallback:!0}),TT=new KO(((M,i)=>{let t,{next:e}=M;cT.indexOf(e)>-1||(47!=e||47!=(t=M.peek(1))&&42!=t)&&(125==e||59==e||-1==e||i.context||M.acceptToken(309))}),{contextual:!0}),LT=new KO(((M,i)=>{let{next:t}=M;if((43==t||45==t)&&(M.advance(),t==M.next)){M.advance();let t=!i.context&&i.canShift(1);M.acceptToken(t?1:2)}}),{contextual:!0});function hT(M,i){return M>=65&&M<=90||M>=97&&M<=122||95==M||M>=192||!i&&M>=48&&M<=57}const zT=new KO(((M,i)=>{if(60!=M.next||!i.dialectEnabled(0))return;if(M.advance(),47==M.next)return;let t=0;for(;cT.indexOf(M.next)>-1;)M.advance(),t++;if(hT(M.next,!0)){for(M.advance(),t++;hT(M.next,!1);)M.advance(),t++;for(;cT.indexOf(M.next)>-1;)M.advance(),t++;if(44==M.next)return;for(let i=0;;i++){if(7==i){if(!hT(M.next,!0))return;break}if(M.next!="extends".charCodeAt(i))break;M.advance(),t++}}M.acceptToken(3,-t)})),yT=Sl({"get set async static":Jl.modifier,"for while do if else switch try catch finally return throw break continue default case":Jl.controlKeyword,"in of await yield void typeof delete instanceof":Jl.operatorKeyword,"let var const using function class extends":Jl.definitionKeyword,"import export from":Jl.moduleKeyword,"with debugger as new":Jl.keyword,TemplateString:Jl.special(Jl.string),super:Jl.atom,BooleanLiteral:Jl.bool,this:Jl.self,null:Jl.null,Star:Jl.modifier,VariableName:Jl.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Jl.function(Jl.variableName),VariableDefinition:Jl.definition(Jl.variableName),Label:Jl.labelName,PropertyName:Jl.propertyName,PrivatePropertyName:Jl.special(Jl.propertyName),"CallExpression/MemberExpression/PropertyName":Jl.function(Jl.propertyName),"FunctionDeclaration/VariableDefinition":Jl.function(Jl.definition(Jl.variableName)),"ClassDeclaration/VariableDefinition":Jl.definition(Jl.className),PropertyDefinition:Jl.definition(Jl.propertyName),PrivatePropertyDefinition:Jl.definition(Jl.special(Jl.propertyName)),UpdateOp:Jl.updateOperator,"LineComment Hashbang":Jl.lineComment,BlockComment:Jl.blockComment,Number:Jl.number,String:Jl.string,Escape:Jl.escape,ArithOp:Jl.arithmeticOperator,LogicOp:Jl.logicOperator,BitOp:Jl.bitwiseOperator,CompareOp:Jl.compareOperator,RegExp:Jl.regexp,Equals:Jl.definitionOperator,Arrow:Jl.function(Jl.punctuation),": Spread":Jl.punctuation,"( )":Jl.paren,"[ ]":Jl.squareBracket,"{ }":Jl.brace,"InterpolationStart InterpolationEnd":Jl.special(Jl.brace),".":Jl.derefOperator,", ;":Jl.separator,"@":Jl.meta,TypeName:Jl.typeName,TypeDefinition:Jl.definition(Jl.typeName),"type enum interface implements namespace module declare":Jl.definitionKeyword,"abstract global Privacy readonly override":Jl.modifier,"is keyof unique infer":Jl.operatorKeyword,JSXAttributeValue:Jl.attributeValue,JSXText:Jl.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Jl.angleBracket,"JSXIdentifier JSXNameSpacedName":Jl.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Jl.attributeName,"JSXBuiltin/JSXIdentifier":Jl.standard(Jl.tagName)}),dT={__proto__:null,export:18,as:23,from:31,default:34,async:39,function:40,extends:52,this:56,true:64,false:64,null:76,void:80,typeof:84,super:102,new:136,delete:152,yield:161,await:165,class:170,public:227,private:227,protected:227,readonly:229,instanceof:248,satisfies:251,in:252,const:254,import:286,keyof:339,unique:343,infer:349,is:385,abstract:405,implements:407,type:409,let:412,var:414,using:417,interface:423,enum:427,namespace:433,module:435,declare:439,global:443,for:462,of:471,while:474,with:478,do:482,if:486,else:488,switch:492,case:498,try:504,catch:508,finally:512,return:516,throw:520,break:524,continue:528,debugger:532},AT={__proto__:null,async:123,get:125,set:127,declare:187,public:189,private:189,protected:189,static:191,abstract:193,override:195,readonly:201,accessor:203,new:389},xT={__proto__:null,"<":143},wT=rT.deserialize({version:14,states:"$<UO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ08SO'#ChO+RO!bO'#CiO+aO#tO'#CiO+oO?MpO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DyO0fQ^O'#EROOQ07b'#EZ'#EZO1PQWO'#EWOOQO'#El'#ElOOQO'#Ie'#IeO1XQWO'#GmO1dQWO'#EkO1iQWO'#EkO3kQ08SO'#JiO6[Q08SO'#JjO6xQWO'#FZO6}Q&jO'#FqOOQ07b'#Fc'#FcO7YO,YO'#FcO7hQ7[O'#FxO9UQWO'#FwOOQ07b'#Jj'#JjOOQ07`'#Ji'#JiO9ZQWO'#GqOOQU'#KU'#KUO9fQWO'#IRO9kQ07hO'#ISOOQU'#JW'#JWOOQU'#IW'#IWQ`Q^OOO`Q^OOO%[Q^O'#DqO9sQ^O'#D}O9zQ^O'#EPO9aQWO'#GmO:RQ7[O'#CnO:aQWO'#EjO:lQWO'#EuO:qQ7[O'#FbO;`QWO'#GmOOQO'#KV'#KVO;eQWO'#KVO;sQWO'#GuO;sQWO'#GvO;sQWO'#GxO9aQWO'#G{O<jQWO'#HOO>RQWO'#CdO>cQWO'#H[O>kQWO'#HbO>kQWO'#HdO`Q^O'#HfO>kQWO'#HhO>kQWO'#HkO>pQWO'#HqO>uQ07iO'#HwO%[Q^O'#HyO?QQ07iO'#H{O?]Q07iO'#H}O9kQ07hO'#IPO?hQ08SO'#ChO@jQ`O'#DiQOQWOOO%[Q^O'#EPOAQQWO'#ESO:RQ7[O'#EjOA]QWO'#EjOAhQpO'#FbOOQU'#Cf'#CfOOQ07`'#Dn'#DnOOQ07`'#Jm'#JmO%[Q^O'#JmOOQO'#Jq'#JqOOQO'#Ib'#IbOBhQ`O'#EcOOQ07`'#Eb'#EbOCdQ07pO'#EcOCnQ`O'#EVOOQO'#Jp'#JpODSQ`O'#JqOEaQ`O'#EVOCnQ`O'#EcPEnO!0LbO'#CaPOOO)CDu)CDuOOOO'#IX'#IXOEyO!bO,59TOOQ07b,59T,59TOOOO'#IY'#IYOFXO#tO,59TO%[Q^O'#D`OOOO'#I['#I[OFgO?MpO,59xOOQ07b,59x,59xOFuQ^O'#I]OGYQWO'#JkOI[QrO'#JkO+}Q^O'#JkOIcQWO,5:OOIyQWO'#ElOJWQWO'#JyOJcQWO'#JxOJcQWO'#JxOJkQWO,5;YOJpQWO'#JwOOQ07f,5:Z,5:ZOJwQ^O,5:ZOLxQ08SO,5:eOMiQWO,5:mONSQ07hO'#JvONZQWO'#JuO9ZQWO'#JuONoQWO'#JuONwQWO,5;XON|QWO'#JuO!#UQrO'#JjOOQ07b'#Ch'#ChO%[Q^O'#ERO!#tQpO,5:rOOQO'#Jr'#JrOOQO-E<c-E<cO9aQWO,5=XO!$[QWO,5=XO!$aQ^O,5;VO!&dQ7[O'#EgO!'}QWO,5;VO!)mQ7[O'#DsO!)tQ^O'#DxO!*OQ`O,5;`O!*WQ`O,5;`O%[Q^O,5;`OOQU'#FR'#FROOQU'#FT'#FTO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aOOQU'#FX'#FXO!*fQ^O,5;rOOQ07b,5;w,5;wOOQ07b,5;x,5;xO!,iQWO,5;xOOQ07b,5;y,5;yO%[Q^O'#IiO!,qQ07hO,5<eO!&dQ7[O,5;aO!-`Q7[O,5;aO%[Q^O,5;uO!-gQ&jO'#FgO!.dQ&jO'#J}O!.OQ&jO'#J}O!.kQ&jO'#J}OOQO'#J}'#J}O!/PQ&jO,5<POOOS,5<],5<]O!/bQ^O'#FsOOOS'#Ih'#IhO7YO,YO,5;}O!/iQ&jO'#FuOOQ07b,5;},5;}O!0YQMhO'#CuOOQ07b'#Cy'#CyO!0mQWO'#CyO!0rO?MpO'#C}O!1`Q7[O,5<bO!1gQWO,5<dO!3SQ!LQO'#GSO!3aQWO'#GTO!3fQWO'#GTO!3kQ!LQO'#GXO!4jQ`O'#G]OOQO'#Gh'#GhO!(SQ7[O'#GgOOQO'#Gj'#GjO!(SQ7[O'#GiO!5]QMhO'#JdOOQ07b'#Jd'#JdO!5gQWO'#JcO!5uQWO'#JbO!5}QWO'#CtOOQ07b'#Cw'#CwOOQ07b'#DR'#DROOQ07b'#DT'#DTO1SQWO'#DVO!(SQ7[O'#FzO!(SQ7[O'#F|O!6VQWO'#GOO!6[QWO'#GPO!3fQWO'#GVO!(SQ7[O'#G[O!6aQWO'#EmO!7OQWO,5<cOOQ07`'#Cq'#CqO!7WQWO'#EnO!8QQ`O'#EoOOQ07`'#Jw'#JwO!8XQ07hO'#KWO9kQ07hO,5=]O`Q^O,5>mOOQU'#J`'#J`OOQU,5>n,5>nOOQU-E<U-E<UO!:ZQ08SO,5:]O!<wQ08SO,5:iO%[Q^O,5:iO!?bQ08SO,5:kOOQO,5@q,5@qO!@RQ7[O,5=XO!@aQ07hO'#JaO9UQWO'#JaO!@rQ07hO,59YO!@}Q`O,59YO!AVQ7[O,59YO:RQ7[O,59YO!AbQWO,5;VO!AjQWO'#HZO!BOQWO'#KZO%[Q^O,5;zO!7{Q`O,5;|O!BWQWO,5=tO!B]QWO,5=tO!BbQWO,5=tO9kQ07hO,5=tO;sQWO,5=dOOQO'#Cu'#CuO!BpQ`O,5=aO!BxQ7[O,5=bO!CTQWO,5=dO!CYQpO,5=gO!CbQWO'#KVO>pQWO'#HQO9aQWO'#HSO!CgQWO'#HSO:RQ7[O'#HUO!ClQWO'#HUOOQU,5=j,5=jO!CqQWO'#HVO!DSQWO'#CnO!DXQWO,59OO!DcQWO,59OO!FhQ^O,59OOOQU,59O,59OO!FxQ07hO,59OO%[Q^O,59OO!ITQ^O'#H^OOQU'#H_'#H_OOQU'#H`'#H`O`Q^O,5=vO!IkQWO,5=vO`Q^O,5=|O`Q^O,5>OO!IpQWO,5>QO`Q^O,5>SO!IuQWO,5>VO!IzQ^O,5>]OOQU,5>c,5>cO%[Q^O,5>cO9kQ07hO,5>eOOQU,5>g,5>gO!NUQWO,5>gOOQU,5>i,5>iO!NUQWO,5>iOOQU,5>k,5>kO!NZQ`O'#D[O%[Q^O'#JmO!NxQ`O'#JmO# gQ`O'#DjO# xQ`O'#DjO#$ZQ^O'#DjO#$bQWO'#JlO#$jQWO,5:TO#$oQWO'#EpO#$}QWO'#JzO#%VQWO,5;ZO#%[Q`O'#DjO#%iQ`O'#EUOOQ07b,5:n,5:nO%[Q^O,5:nO#%pQWO,5:nO>pQWO,5;UO!@}Q`O,5;UO!AVQ7[O,5;UO:RQ7[O,5;UO#%xQWO,5@XO#%}Q$ISO,5:rOOQO-E<`-E<`O#'TQ07pO,5:}OCnQ`O,5:qO#'_Q`O,5:qOCnQ`O,5:}O!@rQ07hO,5:qOOQ07`'#Ef'#EfOOQO,5:},5:}O%[Q^O,5:}O#'lQ07hO,5:}O#'wQ07hO,5:}O!@}Q`O,5:qOOQO,5;T,5;TO#(VQ07hO,5:}POOO'#IV'#IVP#(kO!0LbO,58{POOO,58{,58{OOOO-E<V-E<VOOQ07b1G.o1G.oOOOO-E<W-E<WO#(vQpO,59zOOOO-E<Y-E<YOOQ07b1G/d1G/dO#({QrO,5>wO+}Q^O,5>wOOQO,5>},5>}O#)VQ^O'#I]OOQO-E<Z-E<ZO#)dQWO,5@VO#)lQrO,5@VO#)sQWO,5@dOOQ07b1G/j1G/jO%[Q^O,5@eO#){QWO'#IcOOQO-E<a-E<aO#)sQWO,5@dOOQ07`1G0t1G0tOOQ07f1G/u1G/uOOQ07f1G0X1G0XO%[Q^O,5@bO#*aQ07hO,5@bO#*rQ07hO,5@bO#*yQWO,5@aO9ZQWO,5@aO#+RQWO,5@aO#+aQWO'#IfO#*yQWO,5@aOOQ07`1G0s1G0sO!*OQ`O,5:tO!*ZQ`O,5:tOOQO,5:v,5:vO#,RQWO,5:vO#,ZQ7[O1G2sO9aQWO1G2sOOQ07b1G0q1G0qO#,iQ08SO1G0qO#-nQ08QO,5;ROOQ07b'#GR'#GRO#.[Q08SO'#JdO!$aQ^O1G0qO#0dQ7[O'#JnO#0nQWO,5:_O#0sQrO'#JoO%[Q^O'#JoO#0}QWO,5:dOOQ07b'#D['#D[OOQ07b1G0z1G0zO%[Q^O1G0zOOQ07b1G1d1G1dO#1SQWO1G0zO#3kQ08SO1G0{O#3rQ08SO1G0{O#6]Q08SO1G0{O#6dQ08SO1G0{O#8nQ08SO1G0{O#9UQ08SO1G0{O#<OQ08SO1G0{O#<VQ08SO1G0{O#>jQ08SO1G0{O#>wQ08SO1G0{O#@uQ08SO1G0{O#CuQ(CYO'#ChO#EsQ(CYO1G1^O#EzQ(CYO'#JjO!,lQWO1G1dO#F[Q08SO,5?TOOQ07`-E<g-E<gO#GOQ08SO1G0{OOQ07b1G0{1G0{O#IZQ08SO1G1aO#I}Q&jO,5<TO#JVQ&jO,5<UO#J_Q&jO'#FlO#JvQWO'#FkOOQO'#KO'#KOOOQO'#Ig'#IgO#J{Q&jO1G1kOOQ07b1G1k1G1kOOOS1G1v1G1vO#K^Q(CYO'#JiO#KhQWO,5<_O!*fQ^O,5<_OOOS-E<f-E<fOOQ07b1G1i1G1iO#KmQ`O'#J}OOQ07b,5<a,5<aO#KuQ`O,5<aOOQ07b,59e,59eO!&dQ7[O'#DPOOOO'#IZ'#IZO#KzO?MpO,59iOOQ07b,59i,59iO%[Q^O1G1|O!6[QWO'#IkO#LVQ7[O,5<uOOQ07b,5<r,5<rO!(SQ7[O'#InO#LuQ7[O,5=RO!(SQ7[O'#IpO#MhQ7[O,5=TO!&dQ7[O,5=VOOQO1G2O1G2OO#MrQpO'#CqO#NVQpO,5<nO#N^QWO'#KRO9aQWO'#KRO#NlQWO,5<pO!(SQ7[O,5<oO#NqQWO'#GUO#N|QWO,5<oO$ RQpO'#GRO$ `QpO'#KSO$ jQWO'#KSO!&dQ7[O'#KSO$ oQWO,5<sO$ tQ`O'#G^O!4eQ`O'#G^O$!VQWO'#G`O$![QWO'#GbO!3fQWO'#GeO$!aQ07hO'#ImO$!lQ`O,5<wOOQ07f,5<w,5<wO$!sQ`O'#G^O$#RQ`O'#G_O$#ZQ`O'#G_O$#`Q7[O,5=RO$#pQ7[O,5=TOOQ07b,5=W,5=WO!(SQ7[O,5?}O!(SQ7[O,5?}O$$QQWO'#IrO$$]QWO,5?|O$$eQWO,59`O$%UQ7[O,59qOOQ07b,59q,59qO$%wQ7[O,5<fO$&jQ7[O,5<hO@bQWO,5<jOOQ07b,5<k,5<kO$&tQWO,5<qO$&yQ7[O,5<vO$'ZQWO'#JuO!$aQ^O1G1}O$'`QWO1G1}O9ZQWO'#JxO9ZQWO'#EpO%[Q^O'#EpO9ZQWO'#ItO$'eQ07hO,5@rOOQU1G2w1G2wOOQU1G4X1G4XOOQ07b1G/w1G/wO!,iQWO1G/wO$)jQ08SO1G0TOOQU1G2s1G2sO!&dQ7[O1G2sO%[Q^O1G2sO#,^QWO1G2sO$+nQ7[O'#EgOOQ07`,5?{,5?{O$+xQ07hO,5?{OOQU1G.t1G.tO!@rQ07hO1G.tO!@}Q`O1G.tO!AVQ7[O1G.tO$,ZQWO1G0qO$,`QWO'#ChO$,kQWO'#K[O$,sQWO,5=uO$,xQWO'#K[O$,}QWO'#K[O$-]QWO'#IzO$-kQWO,5@uO$-sQrO1G1fOOQ07b1G1h1G1hO9aQWO1G3`O@bQWO1G3`O$-zQWO1G3`O$.PQWO1G3`OOQU1G3`1G3`O!CTQWO1G3OO!&dQ7[O1G2{O$.UQWO1G2{OOQU1G2|1G2|O!&dQ7[O1G2|O$.ZQWO1G2|O$.cQ`O'#GzOOQU1G3O1G3OO!4eQ`O'#IvO!CYQpO1G3ROOQU1G3R1G3ROOQU,5=l,5=lO$.kQ7[O,5=nO9aQWO,5=nO$![QWO,5=pO9UQWO,5=pO!@}Q`O,5=pO!AVQ7[O,5=pO:RQ7[O,5=pO$.yQWO'#KYO$/UQWO,5=qOOQU1G.j1G.jO$/ZQ07hO1G.jO@bQWO1G.jO$/fQWO1G.jO9kQ07hO1G.jO$1kQrO,5@wO$1{QWO,5@wO9ZQWO,5@wO$2WQ^O,5=xO$2_QWO,5=xOOQU1G3b1G3bO`Q^O1G3bOOQU1G3h1G3hOOQU1G3j1G3jO>kQWO1G3lO$2dQ^O1G3nO$6hQ^O'#HmOOQU1G3q1G3qO$6uQWO'#HsO>pQWO'#HuOOQU1G3w1G3wO$6}Q^O1G3wO9kQ07hO1G3}OOQU1G4P1G4POOQ07`'#GY'#GYO9kQ07hO1G4RO9kQ07hO1G4TO$;UQWO,5@XO!*fQ^O,5;[O9ZQWO,5;[O>pQWO,5:UO!*fQ^O,5:UO!@}Q`O,5:UO$;ZQ(CYO,5:UOOQO,5;[,5;[O$;eQ`O'#I^O$;{QWO,5@WOOQ07b1G/o1G/oO$<TQ`O'#IdO$<_QWO,5@fOOQ07`1G0u1G0uO# xQ`O,5:UOOQO'#Ia'#IaO$<gQ`O,5:pOOQ07f,5:p,5:pO#%sQWO1G0YOOQ07b1G0Y1G0YO%[Q^O1G0YOOQ07b1G0p1G0pO>pQWO1G0pO!@}Q`O1G0pO!AVQ7[O1G0pOOQ07`1G5s1G5sO!@rQ07hO1G0]OOQO1G0i1G0iO%[Q^O1G0iO$<nQ07hO1G0iO$<yQ07hO1G0iO!@}Q`O1G0]OCnQ`O1G0]O$=XQ07hO1G0iOOQO1G0]1G0]O$=mQ08SO1G0iPOOO-E<T-E<TPOOO1G.g1G.gOOOO1G/f1G/fO$=wQpO,5<eO$>PQrO1G4cOOQO1G4i1G4iO%[Q^O,5>wO$>ZQWO1G5qO$>cQWO1G6OO$>kQrO1G6PO9ZQWO,5>}O$>uQ08SO1G5|O%[Q^O1G5|O$?VQ07hO1G5|O$?hQWO1G5{O$?hQWO1G5{O9ZQWO1G5{O$?pQWO,5?QO9ZQWO,5?QOOQO,5?Q,5?QO$@UQWO,5?QO$'ZQWO,5?QOOQO-E<d-E<dOOQO1G0`1G0`OOQO1G0b1G0bO!,lQWO1G0bOOQU7+(_7+(_O!&dQ7[O7+(_O%[Q^O7+(_O$@dQWO7+(_O$@oQ7[O7+(_O$@}Q08SO,5=RO$CYQ08SO,5=TO$EeQ08SO,5=RO$GvQ08SO,5=TO$JXQ08SO,59qO$LaQ08SO,5<fO$NlQ08SO,5<hO%!wQ08SO,5<vOOQ07b7+&]7+&]O%%YQ08SO7+&]O%%|Q7[O'#I_O%&WQWO,5@YOOQ07b1G/y1G/yO%&`Q^O'#I`O%&mQWO,5@ZO%&uQrO,5@ZOOQ07b1G0O1G0OO%'PQWO7+&fOOQ07b7+&f7+&fO%'UQ(CYO,5:eO%[Q^O7+&xO%'`Q(CYO,5:]O%'mQ(CYO,5:iO%'wQ(CYO,5:kOOQ07b7+'O7+'OOOQO1G1o1G1oOOQO1G1p1G1pO%(RQtO,5<WO!*fQ^O,5<VOOQO-E<e-E<eOOQ07b7+'V7+'VOOOS7+'b7+'bOOOS1G1y1G1yO%(^QWO1G1yOOQ07b1G1{1G1{O%(cQpO,59kOOOO-E<X-E<XOOQ07b1G/T1G/TO%(jQ08SO7+'hOOQ07b,5?V,5?VO%)^QpO,5?VOOQ07b1G2a1G2aP!&dQ7[O'#IkPOQ07b-E<i-E<iO%)|Q7[O,5?YOOQ07b-E<l-E<lO%*oQ7[O,5?[OOQ07b-E<n-E<nO%*yQpO1G2qOOQ07b1G2Y1G2YO%+QQWO'#IjO%+`QWO,5@mO%+`QWO,5@mO%+hQWO,5@mO%+sQWO,5@mOOQO1G2[1G2[O%,RQ7[O1G2ZO!(SQ7[O1G2ZO%,cQ!LQO'#IlO%,sQWO,5@nO!&dQ7[O,5@nO%,{QpO,5@nOOQ07b1G2_1G2_OOQ07`,5<x,5<xOOQ07`,5<y,5<yO$'ZQWO,5<yOC_QWO,5<yO!@}Q`O,5<xOOQO'#Ga'#GaO%-VQWO,5<zOOQ07`,5<|,5<|O$'ZQWO,5=POOQO,5?X,5?XOOQO-E<k-E<kOOQ07f1G2c1G2cO!4eQ`O,5<xO%-_QWO,5<yO$!VQWO,5<zO!4eQ`O,5<yO!(SQ7[O'#InO%.RQ7[O1G2mO!(SQ7[O'#IpO%.tQ7[O1G2oO%/OQ7[O1G5iO%/YQ7[O1G5iOOQO,5?^,5?^OOQO-E<p-E<pOOQO1G.z1G.zO!7{Q`O,59sO%[Q^O,59sO%/gQWO1G2UO!(SQ7[O1G2]O%/lQ08SO7+'iOOQ07b7+'i7+'iO!$aQ^O7+'iO%0`QWO,5;[OOQ07`,5?`,5?`OOQ07`-E<r-E<rOOQ07b7+%c7+%cO%0eQpO'#KTO#%sQWO7+(_O%0oQrO7+(_O$@gQWO7+(_O%0vQ08QO'#ChO%1ZQ08QO,5<}O%1{QWO,5<}OOQ07`1G5g1G5gOOQU7+$`7+$`O!@rQ07hO7+$`O!@}Q`O7+$`O!$aQ^O7+&]O%2QQWO'#IyO%2iQWO,5@vOOQO1G3a1G3aO9aQWO,5@vO%2iQWO,5@vO%2qQWO,5@vOOQO,5?f,5?fOOQO-E<x-E<xOOQ07b7+'Q7+'QO%2vQWO7+(zO9kQ07hO7+(zO9aQWO7+(zO@bQWO7+(zOOQU7+(j7+(jO%2{Q08QO7+(gO!&dQ7[O7+(gO%3VQpO7+(hOOQU7+(h7+(hO!&dQ7[O7+(hO%3^QWO'#KXO%3iQWO,5=fOOQO,5?b,5?bOOQO-E<t-E<tOOQU7+(m7+(mO%4xQ`O'#HTOOQU1G3Y1G3YO!&dQ7[O1G3YO%[Q^O1G3YO%5PQWO1G3YO%5[Q7[O1G3YO9kQ07hO1G3[O$![QWO1G3[O9UQWO1G3[O!@}Q`O1G3[O!AVQ7[O1G3[O%5jQWO'#IxO%6OQWO,5@tO%6WQ`O,5@tOOQ07`1G3]1G3]OOQU7+$U7+$UO@bQWO7+$UO9kQ07hO7+$UO%6cQWO7+$UO%[Q^O1G6cO%[Q^O1G6dO%6hQ07hO1G6cO%6rQ^O1G3dO%6yQWO1G3dO%7OQ^O1G3dOOQU7+(|7+(|O9kQ07hO7+)WO`Q^O7+)YOOQU'#K_'#K_OOQU'#I{'#I{O%7VQ^O,5>XOOQU,5>X,5>XO%[Q^O'#HnO%7dQWO'#HpOOQU,5>_,5>_O9ZQWO,5>_OOQU,5>a,5>aOOQU7+)c7+)cOOQU7+)i7+)iOOQU7+)m7+)mOOQU7+)o7+)oO%7iQ`O1G5sO%7}Q(CYO1G0vO%8XQWO1G0vOOQO1G/p1G/pO%8dQ(CYO1G/pO>pQWO1G/pO!*fQ^O'#DjOOQO,5>x,5>xOOQO-E<[-E<[OOQO,5?O,5?OOOQO-E<b-E<bO!@}Q`O1G/pOOQO-E<_-E<_OOQ07f1G0[1G0[OOQ07b7+%t7+%tO#%sQWO7+%tOOQ07b7+&[7+&[O>pQWO7+&[O!@}Q`O7+&[OOQO7+%w7+%wO$=mQ08SO7+&TOOQO7+&T7+&TO%[Q^O7+&TO%8nQ07hO7+&TO!@rQ07hO7+%wO!@}Q`O7+%wO%8yQ07hO7+&TO%9XQ08SO7++hO%[Q^O7++hO%9iQWO7++gO%9iQWO7++gOOQO1G4l1G4lO9ZQWO1G4lO%9qQWO1G4lOOQO7+%|7+%|O#%sQWO<<KyO%0oQrO<<KyO%:PQWO<<KyOOQU<<Ky<<KyO!&dQ7[O<<KyO%[Q^O<<KyO%:XQWO<<KyO%:dQ08SO,5?YO%<oQ08SO,5?[O%>zQ08SO1G2ZO%A]Q08SO1G2mO%ChQ08SO1G2oO%EsQ7[O,5>yOOQO-E<]-E<]O%E}QrO,5>zO%[Q^O,5>zOOQO-E<^-E<^O%FXQWO1G5uOOQ07b<<JQ<<JQO%FaQ(CYO1G0qO%HkQ(CYO1G0{O%HrQ(CYO1G0{O%JvQ(CYO1G0{O%J}Q(CYO1G0{O%LrQ(CYO1G0{O%MYQ(CYO1G0{O& mQ(CYO1G0{O& tQ(CYO1G0{O&#rQ(CYO1G0{O&$PQ(CYO1G0{O&%}Q(CYO1G0{O&&bQ08SO<<JdO&'gQ(CYO1G0{O&)]Q(CYO'#JdO&+`Q(CYO1G1aO&+mQ(CYO1G0TO!*fQ^O'#FnOOQO'#KP'#KPOOQO1G1r1G1rO&+wQWO1G1qO&+|Q(CYO,5?TOOOS7+'e7+'eOOOO1G/V1G/VOOQ07b1G4q1G4qO!(SQ7[O7+(]O&,WQWO,5?UO9aQWO,5?UOOQO-E<h-E<hO&,fQWO1G6XO&,fQWO1G6XO&,nQWO1G6XO&,yQ7[O7+'uO&-ZQpO,5?WO&-eQWO,5?WO!&dQ7[O,5?WOOQO-E<j-E<jO&-jQpO1G6YO&-tQWO1G6YOOQ07`1G2e1G2eO$'ZQWO1G2eOOQ07`1G2d1G2dO&-|QWO1G2fO!&dQ7[O1G2fOOQ07`1G2k1G2kO!@}Q`O1G2dOC_QWO1G2eO&.RQWO1G2fO&.ZQWO1G2eO&.}Q7[O,5?YOOQ07b-E<m-E<mO&/pQ7[O,5?[OOQ07b-E<o-E<oO!(SQ7[O7++TOOQ07b1G/_1G/_O&/zQWO1G/_OOQ07b7+'p7+'pO&0PQ7[O7+'wO&0aQ08SO<<KTOOQ07b<<KT<<KTO&1TQWO1G0vO!&dQ7[O'#IsO&1YQWO,5@oO!&dQ7[O1G2iOOQU<<Gz<<GzO!@rQ07hO<<GzO&1bQ08SO<<IwOOQ07b<<Iw<<IwOOQO,5?e,5?eO&2UQWO,5?eO&2ZQWO,5?eOOQO-E<w-E<wO&2iQWO1G6bO&2iQWO1G6bO9aQWO1G6bO@bQWO<<LfOOQU<<Lf<<LfO&2qQWO<<LfO9kQ07hO<<LfOOQU<<LR<<LRO%2{Q08QO<<LROOQU<<LS<<LSO%3VQpO<<LSO&2vQ`O'#IuO&3RQWO,5@sO!*fQ^O,5@sOOQU1G3Q1G3QO&3ZQ^O'#JmOOQO'#Iw'#IwO9kQ07hO'#IwO&3eQ`O,5=oOOQU,5=o,5=oO&3lQ`O'#EcO&4QQWO7+(tO&4VQWO7+(tOOQU7+(t7+(tO!&dQ7[O7+(tO%[Q^O7+(tO&4_QWO7+(tOOQU7+(v7+(vO9kQ07hO7+(vO$![QWO7+(vO9UQWO7+(vO!@}Q`O7+(vO&4jQWO,5?dOOQO-E<v-E<vOOQO'#HW'#HWO&4uQWO1G6`O9kQ07hO<<GpOOQU<<Gp<<GpO@bQWO<<GpO&4}QWO7++}O&5SQWO7+,OO%[Q^O7++}O%[Q^O7+,OOOQU7+)O7+)OO&5XQWO7+)OO&5^Q^O7+)OO&5eQWO7+)OOOQU<<Lr<<LrOOQU<<Lt<<LtOOQU-E<y-E<yOOQU1G3s1G3sO&5jQWO,5>YOOQU,5>[,5>[O&5oQWO1G3yO9ZQWO7+&bO!*fQ^O7+&bOOQO7+%[7+%[O&5tQ(CYO1G6PO>pQWO7+%[OOQ07b<<I`<<I`OOQ07b<<Iv<<IvO>pQWO<<IvOOQO<<Io<<IoO$=mQ08SO<<IoO%[Q^O<<IoOOQO<<Ic<<IcO!@rQ07hO<<IcO&6OQ07hO<<IoO&6ZQ08SO<= SO&6kQWO<= ROOQO7+*W7+*WO9ZQWO7+*WOOQUANAeANAeO&6sQWOANAeO!&dQ7[OANAeO#%sQWOANAeO%0oQrOANAeO%[Q^OANAeO&6{Q08SO7+'uO&9^Q08SO,5?YO&;iQ08SO,5?[O&=tQ08SO7+'wO&@VQrO1G4fO&@aQ(CYO7+&]O&BeQ(CYO,5=RO&DlQ(CYO,5=TO&D|Q(CYO,5=RO&E^Q(CYO,5=TO&EnQ(CYO,59qO&GqQ(CYO,5<fO&ItQ(CYO,5<hO&KwQ(CYO,5<vO&MmQ(CYO7+'hO&MzQ(CYO7+'iO&NXQWO,5<YOOQO7+']7+']O&N^Q7[O<<KwOOQO1G4p1G4pO&NeQWO1G4pO&NpQWO1G4pO' OQWO7++sO' OQWO7++sO!&dQ7[O1G4rO' WQpO1G4rO' bQWO7++tOOQ07`7+(P7+(PO$'ZQWO7+(QO' jQpO7+(QOOQ07`7+(O7+(OO$'ZQWO7+(PO' qQWO7+(QO!&dQ7[O7+(QOC_QWO7+(PO' vQ7[O<<NoOOQ07b7+$y7+$yO'!QQpO,5?_OOQO-E<q-E<qO'![Q08QO7+(TOOQUAN=fAN=fO9aQWO1G5POOQO1G5P1G5PO'!lQWO1G5PO'!qQWO7++|O'!qQWO7++|O9kQ07hOANBQO@bQWOANBQOOQUANBQANBQOOQUANAmANAmOOQUANAnANAnO'!yQWO,5?aOOQO-E<s-E<sO'#UQ(CYO1G6_O'%fQrO'#ChOOQO,5?c,5?cOOQO-E<u-E<uOOQU1G3Z1G3ZO&3ZQ^O,5<zOOQU<<L`<<L`O!&dQ7[O<<L`O&4QQWO<<L`O'%pQWO<<L`O%[Q^O<<L`OOQU<<Lb<<LbO9kQ07hO<<LbO$![QWO<<LbO9UQWO<<LbO'%xQ`O1G5OO'&TQWO7++zOOQUAN=[AN=[O9kQ07hOAN=[OOQU<= i<= iOOQU<= j<= jO'&]QWO<= iO'&bQWO<= jOOQU<<Lj<<LjO'&gQWO<<LjO'&lQ^O<<LjOOQU1G3t1G3tO>pQWO7+)eO'&sQWO<<I|O''OQ(CYO<<I|OOQO<<Hv<<HvOOQ07bAN?bAN?bOOQOAN?ZAN?ZO$=mQ08SOAN?ZOOQOAN>}AN>}O%[Q^OAN?ZOOQO<<Mr<<MrOOQUG27PG27PO!&dQ7[OG27PO#%sQWOG27PO''YQWOG27PO%0oQrOG27PO''bQ(CYO<<JdO''oQ(CYO1G2ZO')eQ(CYO,5?YO'+hQ(CYO,5?[O'-kQ(CYO1G2mO'/nQ(CYO1G2oO'1qQ(CYO<<KTO'2OQ(CYO<<IwOOQO1G1t1G1tO!(SQ7[OANAcOOQO7+*[7+*[O'2]QWO7+*[O'2hQWO<= _O'2pQpO7+*^OOQ07`<<Kl<<KlO$'ZQWO<<KlOOQ07`<<Kk<<KkO'2zQpO<<KlO$'ZQWO<<KkOOQO7+*k7+*kO9aQWO7+*kO'3RQWO<= hOOQUG27lG27lO9kQ07hOG27lO!*fQ^O1G4{O'3ZQWO7++yO&4QQWOANAzOOQUANAzANAzO!&dQ7[OANAzO'3cQWOANAzOOQUANA|ANA|O9kQ07hOANA|O$![QWOANA|OOQO'#HX'#HXOOQO7+*j7+*jOOQUG22vG22vOOQUANETANETOOQUANEUANEUOOQUANBUANBUO'3kQWOANBUOOQU<<MP<<MPO!*fQ^OAN?hOOQOG24uG24uO$=mQ08SOG24uO#%sQWOLD,kOOQULD,kLD,kO!&dQ7[OLD,kO'3pQWOLD,kO'3xQ(CYO7+'uO'5nQ(CYO,5?YO'7qQ(CYO,5?[O'9tQ(CYO7+'wO';jQ7[OG26}OOQO<<Mv<<MvOOQ07`ANAWANAWO$'ZQWOANAWOOQ07`ANAVANAVOOQO<<NV<<NVOOQULD-WLD-WO';zQ(CYO7+*gOOQUG27fG27fO&4QQWOG27fO!&dQ7[OG27fOOQUG27hG27hO9kQ07hOG27hOOQUG27pG27pO'<UQ(CYOG25SOOQOLD*aLD*aOOQU!$(!V!$(!VO#%sQWO!$(!VO!&dQ7[O!$(!VO'<`Q08SOG26}OOQ07`G26rG26rOOQULD-QLD-QO&4QQWOLD-QOOQULD-SLD-SOOQU!)9Eq!)9EqO#%sQWO!)9EqOOQU!$(!l!$(!lOOQU!.K;]!.K;]O'>qQ(CYOG26}O!*fQ^O'#DyO1PQWO'#EWO'@gQrO'#JiO!*fQ^O'#DqO'@nQ^O'#D}O'@uQrO'#ChO'C]QrO'#ChO!*fQ^O'#EPO'CmQ^O,5;VO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O'#IiO'EpQWO,5<eO'ExQ7[O,5;aO'GcQ7[O,5;aO!*fQ^O,5;uO!&dQ7[O'#GgO'ExQ7[O'#GgO!&dQ7[O'#GiO'ExQ7[O'#GiO1SQWO'#DVO1SQWO'#DVO!&dQ7[O'#FzO'ExQ7[O'#FzO!&dQ7[O'#F|O'ExQ7[O'#F|O!&dQ7[O'#G[O'ExQ7[O'#G[O!*fQ^O,5:iO!*fQ^O,5@eO'CmQ^O1G0qO'GjQ(CYO'#ChO!*fQ^O1G1|O!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O,5<oO'ExQ7[O,5<oO'CmQ^O1G1}O!*fQ^O7+&xO!&dQ7[O1G2ZO'ExQ7[O1G2ZO!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O1G2]O'ExQ7[O1G2]O'CmQ^O7+'iO'CmQ^O7+&]O!&dQ7[OANAcO'ExQ7[OANAcO'GtQWO'#EkO'GyQWO'#EkO'HRQWO'#FZO'HWQWO'#EuO'H]QWO'#JyO'HhQWO'#JwO'HsQWO,5;VO'HxQ7[O,5<bO'IPQWO'#GTO'IUQWO'#GTO'IZQWO,5<cO'IcQWO,5;VO'IkQ(CYO1G1^O'IrQWO,5<oO'IwQWO,5<oO'I|QWO,5<qO'JRQWO,5<qO'JWQWO1G1}O'J]QWO1G0qO'JbQ7[O<<KwO'JiQ7[O<<KwO7hQ7[O'#FxO9UQWO'#FwOA]QWO'#EjO!*fQ^O,5;rO!3fQWO'#GTO!3fQWO'#GTO!3fQWO'#GVO!3fQWO'#GVO!(SQ7[O7+(]O!(SQ7[O7+(]O%*yQpO1G2qO%*yQpO1G2qO!&dQ7[O,5=VO!&dQ7[O,5=V",stateData:"'Km~O'tOS'uOSSOS'vRQ~OPYOQYORfOX!VO`qOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!twO!wxO!{]O#s!PO$T|O%b}O%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO&P!WO&V!XO&X!YO&Z!ZO&]![O&`!]O&f!^O&l!_O&n!`O&p!aO&r!bO&t!cO'{SO'}TO(QUO(XVO(g[O(tiO~OVtO~P`OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`!vOo!nO!P!oO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!wO#S!pO#T!pO#W!yO#X!yO'|!lO'}TO(QUO([!mO(g!sO~O'v!zO~OP[XZ[X`[Xn[X|[X}[X!P[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X'r[X(X[X(h[X(o[X(p[X~O!d$|X~P(qO^!|O'}#OO(O!|O(P#OO~O^#PO(P#OO(Q#OO(R#PO~Ot#RO!R#SO(Y#SO(Z#UO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{:hO'}TO(QUO(XVO(g[O(tiO~O!X#YO!Y#VO!V(_P!V(lP~P+}O!Z#bO~P`OPYOQYORfOc!jOd!iOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'}TO(QUO(XVO(g[O(tiO~Ol#lO!X#hO!{]O#e#kO#f#hO'{:iO!j(iP~P.iO!k#nO'{#mO~O!w#rO!{]O%b#sO~O#g#tO~O!d#uO#g#tO~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y$aO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`(]X'r(]X'p(]X!j(]X!V(]X![(]X%c(]X!d(]X~P1qO#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X![(^X%c(^X~O`(^X!i(^X'r(^X'p(^X!V(^X!j(^Xr(^X!d(^X~P4XO#[$eO~O$Y$gO$[$fO$c$lO~ORfO![$mO$f$nO$h$pO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{$rO'}TO(QUO(X$uO(o$}O(p%POf(UP~O!k%bO~O!P%eO![%fO'{%dO~O!d%jO~O`%kO'r%kO~O'|!lO~P%[O%h%rO~P%[Og%VO!k%bO'{%dO'|!lO~Od%yO!k%bO'{%dO~O#r$SO~O|&OO![%{O!k%}O%d&RO'{%dO'|!lO'}TO(QUO_(}P~O!w#rO~O%m&TO!P(yX![(yX'{(yX~O'{&UO~O!t&ZO#s!PO%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO~Oc&`Od&_O!w&]O%b&^O%u&[O~P;xOc&cOdyO![&bO!t&ZO!wxO!{]O#s!PO%b}O%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO~Oa&fO#[&iO%d&dO'|!lO~P<}O!k&jO!t&nO~O!k#nO~O![XO~O`%kO'q&vO'r%kO~O`%kO'q&yO'r%kO~O`%kO'q&{O'r%kO~O'p[X!V[Xr[X!j[X&T[X![[X%c[X!d[X~P(qO!_'YO!`'RO!a'RO'|!lO'}TO(QUO~Oo'PO!P'OO!X'SO([&}O!Z(`P!Z(nP~P@UOj']O!['ZO'{%dO~Od'bO!k%bO'{%dO~O|&OO!k%}O~Oo!nO!P!oO!{:dO#P!pO#Q!pO#S!pO#T!pO'|!lO'}TO(QUO([!mO(g!sO~O!_'hO!`'gO!a'gO#R!pO#W'iO#X'iO~PApO`%kOg%VO!d#uO!k%bO'r%kO(h'kO~O!o'oO#['mO~PCOOo!nO!P!oO'}TO(QUO([!mO(g!sO~O![XOo(eX!P(eX!_(eX!`(eX!a(eX!{(eX#P(eX#Q(eX#R(eX#S(eX#T(eX#W(eX#X(eX'|(eX'}(eX(Q(eX([(eX(g(eX~O!`'gO!a'gO'|!lO~PCnO'w'sO'x'sO'y'uO~O^!|O'}'wO(O!|O(P'wO~O^#PO(P'wO(Q'wO(R#PO~Ot#RO!R#SO(Y#SO(Z'{O~O!X'}O!V'PX!V'VX!Y'PX!Y'VX~P+}O!Y(PO!V(_X~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y(PO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O!V(_X~PGbO!V(UO~O!V(kX!Y(kX!d(kX!j(kX(h(kX~O#[(kX#g#`X!Z(kX~PIhO#[(VO!V(mX!Y(mX~O!Y(WO!V(lX~O!V(ZO~O#[$eO~PIhO!Z([O~P`O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!maZ!man!ma!Y!ma!h!ma!o!ma#j!ma#k!ma#l!ma#m!ma#n!ma#o!ma#p!ma#q!ma#r!ma#t!ma#v!ma#x!ma#y!ma(h!ma(o!ma(p!ma~O`!ma'r!ma'p!ma!V!ma!j!mar!ma![!ma%c!ma!d!ma~PKOO!j(]O~O!d#uO#[(^O(h'kO!Y(jX`(jX'r(jX~O!j(jX~PMnO!P%eO![%fO!{]O#e(cO#f(bO'{%dO~O!Y(dO!j(iX~O!j(fO~O!P%eO![%fO#f(bO'{%dO~OP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!i(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O!d#uO!j(^X~P! [O|(gO}(hO!i#wO!k#xO!{!za!P!za~O!w!za%b!za![!za#e!za#f!za'{!za~P!#`O!w(lO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#g(rO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~Of(bP~P!(SO!X(vO!j(cP~P%[O([(xO(g[O~O!P(zO!k#xO([(xO(g[O~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O})]O!k#xO~O!Y$aO`$ma'r$ma'p$ma!j$ma!V$ma![$ma%c$ma!d$ma~O#s)aO~P!&dO|)dO!d)cO![$ZX$W$ZX$Y$ZX$[$ZX$c$ZX~O!d)cO![(qX$W(qX$Y(qX$[(qX$c(qX~O|)dO~P!.OO|)dO![(qX$W(qX$Y(qX$[(qX$c(qX~O![)fO$W)jO$Y)eO$[)eO$c)kO~O!X)nO~P!*fO$Y$gO$[$fO$c)rO~Oj$uX|$uX!P$uX!i$uX(o$uX(p$uX~OfiXf$uXjiX!YiX#[iX~P!/tOo)tO~Ot)uO(Y)vO(Z)xO~Oj*RO|)zO!P){O(o$}O(p%PO~Of)yO~P!0}Of*SO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~O!X*WO'{*TO!j(uP~P!1lO#g*YO~O!k*ZO~O!X*`O'{*]O!V(vP~P!1lOn*lO!P*dO!_*jO!`*cO!a*cO!k*ZO#W*kO%Y*fO'|!lO([!mO~O!Z*iO~P!3xO!i#wOj(WX|(WX!P(WX(o(WX(p(WX!Y(WX#[(WX~Of(WX#|(WX~P!4qOj*qO#[*pOf(VX!Y(VX~O!Y*rOf(UX~O'{&UOf(UP~O!k*yO~O'{(pO~Ol*}O!P%eO!X#hO![%fO!{]O#e#kO#f#hO'{%dO!j(iP~O!d#uO#g+OO~O!P%eO!X+QO!Y(WO![%fO'{%dO!V(lP~Oo'VO!P+SO!X+RO'}TO(QUO([(xO~O!Z(nP~P!7lO!Y+TO`(zX'r(zX~OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`!ea!Y!ea'r!ea'p!ea!V!ea!j!ear!ea![!ea%c!ea!d!ea~P!8dO|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qaZ!qan!qa!Y!qa!h!qa!o!qa#j!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#t!qa#v!qa#x!qa#y!qa(h!qa(o!qa(p!qa~O`!qa'r!qa'p!qa!V!qa!j!qar!qa![!qa%c!qa!d!qa~P!:}O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!saZ!san!sa!Y!sa!h!sa!o!sa#j!sa#k!sa#l!sa#m!sa#n!sa#o!sa#p!sa#q!sa#r!sa#t!sa#v!sa#x!sa#y!sa(h!sa(o!sa(p!sa~O`!sa'r!sa'p!sa!V!sa!j!sar!sa![!sa%c!sa!d!sa~P!=hOg%VOj+^O!['ZO%c+]O~O!d+`O`(TX![(TX'r(TX!Y(TX~O`%kO![XO'r%kO~Og%VO!k%bO~Og%VO!k%bO'{%dO~O!d#uO#g(rO~Oa+kO%d+lO'{+hO'}TO(QUO!Z)OP~O!Y+mO_(}X~OZ+qO~O_+rO~O![%{O'{%dO'|!lO_(}P~Og%VO#[+wO~Og%VOj+zO![$|O~O![+|O~O|,OO![XO~O%h%rO~O!w,TO~Od,YO~Oa,ZO'{#mO'}TO(QUO!Z(|P~Od%yO~O%d!QO'{&UO~P<}OZ,`O_,_O~OPYOQYORfOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO!fuO!kZO!nYO!oYO!pYO!rvO!wxO!{]O%b}O'}TO(QUO(XVO(g[O(tiO~O![!eO!t!gO$T!kO'{!dO~P!DkO_,_O`%kO'r%kO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`,eO!twO#s!OO%f!OO%g!OO%h!OO~P!GTO!k&jO~O&V,kO~O![,mO~O&h,oO&j,pOP&eaQ&eaR&eaX&ea`&eac&ead&eal&ean&eao&eap&eav&eax&eaz&ea!P&ea!T&ea!U&ea![&ea!f&ea!k&ea!n&ea!o&ea!p&ea!r&ea!t&ea!w&ea!{&ea#s&ea$T&ea%b&ea%d&ea%f&ea%g&ea%h&ea%k&ea%m&ea%p&ea%q&ea%s&ea&P&ea&V&ea&X&ea&Z&ea&]&ea&`&ea&f&ea&l&ea&n&ea&p&ea&r&ea&t&ea'p&ea'{&ea'}&ea(Q&ea(X&ea(g&ea(t&ea!Z&ea&^&eaa&ea&c&ea~O'{,uO~Og!bX!Y!OX!Y!bX!Z!OX!Z!bX!d!OX!d!bX!k!bX#[!OX~O!d,zO#[,yOg(aX!Y#dX!Y(aX!Z#dX!Z(aX!d(aX!k(aX~Og%VO!d,|O!k%bO!Y!^X!Z!^X~Oo!nO!P!oO'}TO(QUO([!mO~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'}TO(QUO(XVO(g[O(t<YO~O'{;]O~P#!ZO!Y-QO!Z(`X~O!Z-SO~O!d,zO#[,yO!Y#dX!Z#dX~O!Y-TO!Z(nX~O!Z-VO~O!`-WO!a-WO'|!lO~P# xO!Z-ZO~P'_Oj-^O!['ZO~O!V-cO~Oo!za!_!za!`!za!a!za#P!za#Q!za#R!za#S!za#T!za#W!za#X!za'|!za'}!za(Q!za([!za(g!za~P!#`O!o-hO#[-fO~PCOO!`-jO!a-jO'|!lO~PCnO`%kO#[-fO'r%kO~O`%kO!d#uO#[-fO'r%kO~O`%kO!d#uO!o-hO#[-fO'r%kO(h'kO~O'w'sO'x'sO'y-oO~Or-pO~O!V'Pa!Y'Pa~P!8dO!X-tO!V'PX!Y'PX~P%[O!Y(PO!V(_a~O!V(_a~PGbO!Y(WO!V(la~O!P%eO!X-xO![%fO'{%dO!V'VX!Y'VX~O#[-zO!Y(ja!j(ja`(ja'r(ja~O!d#uO~P#*aO!Y(dO!j(ia~O!P%eO![%fO#f.OO'{%dO~Ol.TO!P%eO!X.QO![%fO!{]O#e.SO#f.QO'{%dO!Y'YX!j'YX~O}.XO!k#xO~Og%VOj.[O!['ZO%c.ZO~O`#_i!Y#_i'r#_i'p#_i!V#_i!j#_ir#_i![#_i%c#_i!d#_i~P!8dOj<fO|)zO!P){O(o$}O(p%PO~O#g#Za`#Za#[#Za'r#Za!Y#Za!j#Za![#Za!V#Za~P#-]O#g(WXP(WXZ(WX`(WXn(WX}(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX'r(WX(X(WX(h(WX!j(WX!V(WX'p(WXr(WX![(WX%c(WX!d(WX~P!4qO!Y.iOf(bX~P!0}Of.kO~O!Y.lO!j(cX~P!8dO!j.oO~O!V.qO~OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#ii`#iin#ii!Y#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#j#ii~P#1XO#j$OO~P#1XOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO(XVOZ#ii`#ii!Y#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~On#ii~P#3yOn$QO~P#3yOP$]On$QO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO(XVO`#ii!Y#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P#6kOZ$dO!h$SO#o$SO#p$SO#q$cO#r$SO~P#6kOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO(p#}O`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii(o#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v$VO~P#9lO#v#ii~P#9lOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v#ii(o#ii(p#ii~P#<^O#v$VO(o#|O(p#}O~P#<^OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO(XVO(o#|O(p#}O~O`#ii!Y#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#?UOP[XZ[Xn[X|[X}[X!P[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X!Y[X!Z[X~O#|[X~P#AoOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO#y:vO(XVO(h$ZO(o#|O(p#}O~O#|.sO~P#C|O#[:{O$O:{O#|(^X!Z(^X~P! [O`']a!Y']a'r']a'p']a!j']a!V']ar']a![']a%c']a!d']a~P!8dOP#iiZ#ii`#iin#ii}#ii!Y#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(X#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#-]O`#}i!Y#}i'r#}i'p#}i!V#}i!j#}ir#}i![#}i%c#}i!d#}i~P!8dO$Y.xO$[.xO~O$Y.yO$[.yO~O!d)cO#[.zO![$`X$W$`X$Y$`X$[$`X$c$`X~O!X.{O~O![)fO$W.}O$Y)eO$[)eO$c/OO~O!Y:wO!Z(]X~P#C|O!Z/PO~O!d)cO$c(qX~O$c/RO~Ot)uO(Y)vO(Z/UO~O!V/YO~P!&dO(o$}Oj%Za|%Za!P%Za(p%Za!Y%Za#[%Za~Of%Za#|%Za~P#L^O(p%POj%]a|%]a!P%]a(o%]a!Y%]a#[%]a~Of%]a#|%]a~P#MPO!YeX!deX!jeX!j$uX(heX~P!/tO!j/bO~P#-]O!Y/cO!d#uO(h'kO!j(uX~O!j/hO~O!X*WO'{%dO!j(uP~O#g/jO~O!V$uX!Y$uX!d$|X~P!/tO!Y/kO!V(vX~P#-]O!d/mO~O!V/oO~Og%VOn/sO!d#uO!k%bO(h'kO~O'{/uO~O!d+`O~O`%kO!Y/yO'r%kO~O!Z/{O~P!3xO!`/|O!a/|O'|!lO([!mO~O!P0OO([!mO~O#W0PO~Of%Za!Y%Za#[%Za#|%Za~P!0}Of%]a!Y%]a#[%]a#|%]a~P!0}O'{&UOf'fX!Y'fX~O!Y*rOf(Ua~Of0YO~O|0ZO}0ZO!P0[Ojya(oya(pya!Yya#[ya~Ofya#|ya~P$$jO|)zO!P){Oj$na(o$na(p$na!Y$na#[$na~Of$na#|$na~P$%`O|)zO!P){Oj$pa(o$pa(p$pa!Y$pa#[$pa~Of$pa#|$pa~P$&RO#g0^O~Of%Oa!Y%Oa#[%Oa#|%Oa~P!0}O!d#uO~O#g0aO~O!Y+TO`(za'r(za~O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qiZ!qin!qi!Y!qi!h!qi!o!qi#j!qi#k!qi#l!qi#m!qi#n!qi#o!qi#p!qi#q!qi#r!qi#t!qi#v!qi#x!qi#y!qi(h!qi(o!qi(p!qi~O`!qi'r!qi'p!qi!V!qi!j!qir!qi![!qi%c!qi!d!qi~P$'pOg%VOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~Ol0kO'{0jO~P$*ZO!d+`O`(Ta![(Ta'r(Ta!Y(Ta~O#g0qO~OZ[X!YeX!ZeX~O!Y0rO!Z)OX~O!Z0tO~OZ0uO~Oa0wO'{+hO'}TO(QUO~O![%{O'{%dO_'nX!Y'nX~O!Y+mO_(}a~O!j0zO~P!8dOZ0}O~O_1OO~O#[1RO~Oj1UO![$|O~O([(xO!Z({P~Og%VOj1_O![1[O%c1^O~OZ1iO!Y1gO!Z(|X~O!Z1jO~O_1lO`%kO'r%kO~O'{#mO'}TO(QUO~O#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O#r1oO&T1pO`(^X!i(^X~P$/qO#[$eO#r1oO&T1pO~O`1rO~P%[O`1tO~O&^1wOP&[iQ&[iR&[iX&[i`&[ic&[id&[il&[in&[io&[ip&[iv&[ix&[iz&[i!P&[i!T&[i!U&[i![&[i!f&[i!k&[i!n&[i!o&[i!p&[i!r&[i!t&[i!w&[i!{&[i#s&[i$T&[i%b&[i%d&[i%f&[i%g&[i%h&[i%k&[i%m&[i%p&[i%q&[i%s&[i&P&[i&V&[i&X&[i&Z&[i&]&[i&`&[i&f&[i&l&[i&n&[i&p&[i&r&[i&t&[i'p&[i'{&[i'}&[i(Q&[i(X&[i(g&[i(t&[i!Z&[ia&[i&c&[i~Oa1}O!Z1{O&c1|O~P`O![XO!k2PO~O&j,pOP&eiQ&eiR&eiX&ei`&eic&eid&eil&ein&eio&eip&eiv&eix&eiz&ei!P&ei!T&ei!U&ei![&ei!f&ei!k&ei!n&ei!o&ei!p&ei!r&ei!t&ei!w&ei!{&ei#s&ei$T&ei%b&ei%d&ei%f&ei%g&ei%h&ei%k&ei%m&ei%p&ei%q&ei%s&ei&P&ei&V&ei&X&ei&Z&ei&]&ei&`&ei&f&ei&l&ei&n&ei&p&ei&r&ei&t&ei'p&ei'{&ei'}&ei(Q&ei(X&ei(g&ei(t&ei!Z&ei&^&eia&ei&c&ei~O!V2VO~O!Y!^a!Z!^a~P#C|Oo!nO!P!oO!X2]O([!mO!Y'QX!Z'QX~P@UO!Y-QO!Z(`a~O!Y'WX!Z'WX~P!7lO!Y-TO!Z(na~O!Z2dO~P'_O`%kO#[2mO'r%kO~O`%kO!d#uO#[2mO'r%kO~O`%kO!d#uO!o2qO#[2mO'r%kO(h'kO~O`%kO'r%kO~P!8dO!Y$aOr$ma~O!V'Pi!Y'Pi~P!8dO!Y(PO!V(_i~O!Y(WO!V(li~O!V(mi!Y(mi~P!8dO!Y(ji!j(ji`(ji'r(ji~P!8dO#[2sO!Y(ji!j(ji`(ji'r(ji~O!Y(dO!j(ii~O!P%eO![%fO!{]O#e2xO#f2wO'{%dO~O!P%eO![%fO#f2wO'{%dO~Oj3PO!['ZO%c3OO~Og%VOj3PO!['ZO%c3OO~O#g%ZaP%ZaZ%Za`%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Zar%Za![%Za%c%Za!d%Za~P#L^O#g%]aP%]aZ%]a`%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]ar%]a![%]a%c%]a!d%]a~P#MPO#g%ZaP%ZaZ%Za`%Zan%Za}%Za!Y%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Za#[%Zar%Za![%Za%c%Za!d%Za~P#-]O#g%]aP%]aZ%]a`%]an%]a}%]a!Y%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]a#[%]ar%]a![%]a%c%]a!d%]a~P#-]O#gyaPyaZya`yanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya'rya(Xya(hya!jya!Vya'pyarya![ya%cya!dya~P$$jO#g$naP$naZ$na`$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na'r$na(X$na(h$na!j$na!V$na'p$nar$na![$na%c$na!d$na~P$%`O#g$paP$paZ$pa`$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa'r$pa(X$pa(h$pa!j$pa!V$pa'p$par$pa![$pa%c$pa!d$pa~P$&RO#g%OaP%OaZ%Oa`%Oan%Oa}%Oa!Y%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa'r%Oa(X%Oa(h%Oa!j%Oa!V%Oa'p%Oa#[%Oar%Oa![%Oa%c%Oa!d%Oa~P#-]O`#_q!Y#_q'r#_q'p#_q!V#_q!j#_qr#_q![#_q%c#_q!d#_q~P!8dOf'RX!Y'RX~P!(SO!Y.iOf(ba~O!X3ZO!Y'SX!j'SX~P%[O!Y.lO!j(ca~O!Y.lO!j(ca~P!8dO!V3^O~O#|!ma!Z!ma~PKOO#|!ea!Y!ea!Z!ea~P#C|O#|!qa!Z!qa~P!:}O#|!sa!Z!sa~P!=hORfO![3pO$a3qO~O!Z3uO~Or3vO~P#-]O`$jq!Y$jq'r$jq'p$jq!V$jq!j$jqr$jq![$jq%c$jq!d$jq~P!8dO!V3wO~P#-]O|)zO!P){O(p%POj'ba(o'ba!Y'ba#['ba~Of'ba#|'ba~P%)eO|)zO!P){Oj'da(o'da(p'da!Y'da#['da~Of'da#|'da~P%*WO(h$ZO~P#-]O!X3zO'{%dO!Y'^X!j'^X~O!Y/cO!j(ua~O!Y/cO!d#uO!j(ua~O!Y/cO!d#uO(h'kO!j(ua~Of$wi!Y$wi#[$wi#|$wi~P!0}O!X4SO'{*]O!V'`X!Y'`X~P!1lO!Y/kO!V(va~O!Y/kO!V(va~P#-]O!d#uO#r4[O~On4_O!d#uO(h'kO~O(o$}Oj%Zi|%Zi!P%Zi(p%Zi!Y%Zi#[%Zi~Of%Zi#|%Zi~P%-jO(p%POj%]i|%]i!P%]i(o%]i!Y%]i#[%]i~Of%]i#|%]i~P%.]Of(Vi!Y(Vi~P!0}O#[4fOf(Vi!Y(Vi~P!0}O!j4iO~O`$kq!Y$kq'r$kq'p$kq!V$kq!j$kqr$kq![$kq%c$kq!d$kq~P!8dO!V4mO~O!Y4nO![(wX~P#-]O!i#wO~P4XO`$uX![$uX%W[X'r$uX!Y$uX~P!/tO%W4pO`kXjkX|kX!PkX![kX'rkX(okX(pkX!YkX~O%W4pO~Oa4vO%d4wO'{+hO'}TO(QUO!Y'mX!Z'mX~O!Y0rO!Z)Oa~OZ4{O~O_4|O~O`%kO'r%kO~P#-]O![$|O~P#-]O!Y5UO#[5WO!Z({X~O!Z5XO~Oo!nO!P5YO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!pO#S!pO#T!pO#W5_O#X!yO'|!lO'}TO(QUO([!mO(g!sO~O!Z5^O~P%3nOj5dO![1[O%c5cO~Og%VOj5dO![1[O%c5cO~Oa5kO'{#mO'}TO(QUO!Y'lX!Z'lX~O!Y1gO!Z(|a~O'}TO(QUO([5mO~O_5qO~O#r5tO&T5uO~PMnO!j5vO~P%[O`5xO~O`5xO~P%[Oa1}O!Z5}O&c1|O~P`O!d6PO~O!d6ROg(ai!Y(ai!Z(ai!d(ai!k(ai~O!Y#di!Z#di~P#C|O#[6SO!Y#di!Z#di~O!Y!^i!Z!^i~P#C|O`%kO#[6]O'r%kO~O`%kO!d#uO#[6]O'r%kO~O!Y(jq!j(jq`(jq'r(jq~P!8dO!Y(dO!j(iq~O!P%eO![%fO#f6dO'{%dO~O!['ZO%c6gO~Oj6jO!['ZO%c6gO~O#g'baP'baZ'ba`'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba'r'ba(X'ba(h'ba!j'ba!V'ba'p'bar'ba!['ba%c'ba!d'ba~P%)eO#g'daP'daZ'da`'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da'r'da(X'da(h'da!j'da!V'da'p'dar'da!['da%c'da!d'da~P%*WO#g$wiP$wiZ$wi`$win$wi}$wi!Y$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi'r$wi(X$wi(h$wi!j$wi!V$wi'p$wi#[$wir$wi![$wi%c$wi!d$wi~P#-]O#g%ZiP%ZiZ%Zi`%Zin%Zi}%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi'r%Zi(X%Zi(h%Zi!j%Zi!V%Zi'p%Zir%Zi![%Zi%c%Zi!d%Zi~P%-jO#g%]iP%]iZ%]i`%]in%]i}%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i'r%]i(X%]i(h%]i!j%]i!V%]i'p%]ir%]i![%]i%c%]i!d%]i~P%.]Of'Ra!Y'Ra~P!0}O!Y'Sa!j'Sa~P!8dO!Y.lO!j(ci~O#|#_i!Y#_i!Z#_i~P#C|OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#iin#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~O#j#ii~P%FnO#j:lO~P%FnOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO(XVOZ#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~On#ii~P%HyOn:nO~P%HyOP$]On:nO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO(XVO#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P%KUOZ:zO!h:pO#o:pO#p:pO#q:yO#r:pO~P%KUOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO(p#}O#x#ii#y#ii#|#ii(h#ii(o#ii!Y#ii!Z#ii~O#v:sO~P%MpO#v#ii~P%MpOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO#x#ii#y#ii#|#ii(h#ii!Y#ii!Z#ii~O#v#ii(o#ii(p#ii~P& {O#v:sO(o#|O(p#}O~P& {OP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO(XVO(o#|O(p#}O~O#y#ii#|#ii(h#ii!Y#ii!Z#ii~P&$^O`#zy!Y#zy'r#zy'p#zy!V#zy!j#zyr#zy![#zy%c#zy!d#zy~P!8dOj<gO|)zO!P){O(o$}O(p%PO~OP#iiZ#iin#ii}#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(X#ii(h#ii!Y#ii!Z#ii~P&'UO!i#wOP(WXZ(WXj(WXn(WX|(WX}(WX!P(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX#|(WX(X(WX(h(WX(o(WX(p(WX!Y(WX!Z(WX~O#|#}i!Y#}i!Z#}i~P#C|O#|!qi!Z!qi~P$'pO!Z6|O~O!Y']a!Z']a~P#C|O!d#uO(h'kO!Y'^a!j'^a~O!Y/cO!j(ui~O!Y/cO!d#uO!j(ui~Of$wq!Y$wq#[$wq#|$wq~P!0}O!V'`a!Y'`a~P#-]O!d7TO~O!Y/kO!V(vi~P#-]O!Y/kO!V(vi~O!V7XO~O!d#uO#r7^O~On7_O!d#uO(h'kO~O|)zO!P){O(p%POj'ca(o'ca!Y'ca#['ca~Of'ca#|'ca~P&.fO|)zO!P){Oj'ea(o'ea(p'ea!Y'ea#['ea~Of'ea#|'ea~P&/XO!V7aO~Of$yq!Y$yq#[$yq#|$yq~P!0}O`$ky!Y$ky'r$ky'p$ky!V$ky!j$kyr$ky![$ky%c$ky!d$ky~P!8dO!d6RO~O!Y4nO![(wa~O`#_y!Y#_y'r#_y'p#_y!V#_y!j#_yr#_y![#_y%c#_y!d#_y~P!8dOZ7fO~Oa7hO'{+hO'}TO(QUO~O!Y0rO!Z)Oi~O_7lO~O([(xO!Y'iX!Z'iX~O!Y5UO!Z({a~OlkO'{7sO~P.iO!Z7vO~P%3nOo!nO!P7wO'}TO(QUO([!mO(g!sO~O![1[O~O![1[O%c7yO~Oj7|O![1[O%c7yO~OZ8RO!Y'la!Z'la~O!Y1gO!Z(|i~O!j8VO~O!j8WO~O!j8ZO~O!j8ZO~P%[O`8]O~O!d8^O~O!j8_O~O!Y(mi!Z(mi~P#C|O`%kO#[8gO'r%kO~O!Y(jy!j(jy`(jy'r(jy~P!8dO!Y(dO!j(iy~O!['ZO%c8jO~O#g$wqP$wqZ$wq`$wqn$wq}$wq!Y$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq'r$wq(X$wq(h$wq!j$wq!V$wq'p$wq#[$wqr$wq![$wq%c$wq!d$wq~P#-]O#g'caP'caZ'ca`'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca'r'ca(X'ca(h'ca!j'ca!V'ca'p'car'ca!['ca%c'ca!d'ca~P&.fO#g'eaP'eaZ'ea`'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea'r'ea(X'ea(h'ea!j'ea!V'ea'p'ear'ea!['ea%c'ea!d'ea~P&/XO#g$yqP$yqZ$yq`$yqn$yq}$yq!Y$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq'r$yq(X$yq(h$yq!j$yq!V$yq'p$yq#[$yqr$yq![$yq%c$yq!d$yq~P#-]O!Y'Si!j'Si~P!8dO#|#_q!Y#_q!Z#_q~P#C|O(o$}OP%ZaZ%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za#|%Za(X%Za(h%Za!Y%Za!Z%Za~Oj%Za|%Za!P%Za(p%Za~P&@nO(p%POP%]aZ%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a#|%]a(X%]a(h%]a!Y%]a!Z%]a~Oj%]a|%]a!P%]a(o%]a~P&BuOj<gO|)zO!P){O(p%PO~P&@nOj<gO|)zO!P){O(o$}O~P&BuO|0ZO}0ZO!P0[OPyaZyajyanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya#|ya(Xya(hya(oya(pya!Yya!Zya~O|)zO!P){OP$naZ$naj$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na#|$na(X$na(h$na(o$na(p$na!Y$na!Z$na~O|)zO!P){OP$paZ$paj$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa#|$pa(X$pa(h$pa(o$pa(p$pa!Y$pa!Z$pa~OP%OaZ%Oan%Oa}%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa#|%Oa(X%Oa(h%Oa!Y%Oa!Z%Oa~P&'UO#|$jq!Y$jq!Z$jq~P#C|O#|$kq!Y$kq!Z$kq~P#C|O!Z8vO~O#|8wO~P!0}O!d#uO!Y'^i!j'^i~O!d#uO(h'kO!Y'^i!j'^i~O!Y/cO!j(uq~O!V'`i!Y'`i~P#-]O!Y/kO!V(vq~O!V8}O~P#-]O!V8}O~Of(Vy!Y(Vy~P!0}O!Y'ga!['ga~P#-]O`%Vq![%Vq'r%Vq!Y%Vq~P#-]OZ9SO~O!Y0rO!Z)Oq~O#[9WO!Y'ia!Z'ia~O!Y5UO!Z({i~P#C|OP[XZ[Xn[X|[X}[X!P[X!V[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!d%TX#r%TX~P'#`O![1[O%c9[O~O'}TO(QUO([9aO~O!Y1gO!Z(|q~O!j9dO~O!j9eO~O!j9fO~O!j9fO~P%[O#[9iO!Y#dy!Z#dy~O!Y#dy!Z#dy~P#C|O!['ZO%c9nO~O#|#zy!Y#zy!Z#zy~P#C|OP$wiZ$win$wi}$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi#|$wi(X$wi(h$wi!Y$wi!Z$wi~P&'UO|)zO!P){O(p%POP'baZ'baj'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba#|'ba(X'ba(h'ba(o'ba!Y'ba!Z'ba~O|)zO!P){OP'daZ'daj'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da#|'da(X'da(h'da(o'da(p'da!Y'da!Z'da~O(o$}OP%ZiZ%Zij%Zin%Zi|%Zi}%Zi!P%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi#|%Zi(X%Zi(h%Zi(p%Zi!Y%Zi!Z%Zi~O(p%POP%]iZ%]ij%]in%]i|%]i}%]i!P%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i#|%]i(X%]i(h%]i(o%]i!Y%]i!Z%]i~O#|$ky!Y$ky!Z$ky~P#C|O#|#_y!Y#_y!Z#_y~P#C|O!d#uO!Y'^q!j'^q~O!Y/cO!j(uy~O!V'`q!Y'`q~P#-]O!V9wO~P#-]O!Y0rO!Z)Oy~O!Y5UO!Z({q~O![1[O%c:OO~O!j:RO~O!['ZO%c:WO~OP$wqZ$wqn$wq}$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq#|$wq(X$wq(h$wq!Y$wq!Z$wq~P&'UO|)zO!P){O(p%POP'caZ'caj'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca#|'ca(X'ca(h'ca(o'ca!Y'ca!Z'ca~O|)zO!P){OP'eaZ'eaj'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea#|'ea(X'ea(h'ea(o'ea(p'ea!Y'ea!Z'ea~OP$yqZ$yqn$yq}$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq#|$yq(X$yq(h$yq!Y$yq!Z$yq~P&'UOf%_!Z!Y%_!Z#[%_!Z#|%_!Z~P!0}O!Y'iq!Z'iq~P#C|O!Y#d!Z!Z#d!Z~P#C|O#g%_!ZP%_!ZZ%_!Z`%_!Zn%_!Z}%_!Z!Y%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z'r%_!Z(X%_!Z(h%_!Z!j%_!Z!V%_!Z'p%_!Z#[%_!Zr%_!Z![%_!Z%c%_!Z!d%_!Z~P#-]OP%_!ZZ%_!Zn%_!Z}%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z#|%_!Z(X%_!Z(h%_!Z!Y%_!Z!Z%_!Z~P&'UOr(]X~P1qO'|!lO~P!*fO!VeX!YeX#[eX~P'#`OP[XZ[Xn[X|[X}[X!P[X!Y[X!YeX!h[X!i[X!k[X!o[X#[[X#[eX#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!deX!j[X!jeX(heX~P'ASOP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![XO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O!Y:wO!Z$ma~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;RO!P${O![$|O!f<aO!k$xO#f;XO$T%^O$o;TO$q;VO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#s)aO~P'ExO!Z[X!ZeX~P'ASO#g:kO~O!d#uO#g:kO~O#[:{O~O#r:pO~O#[;ZO!Y(mX!Z(mX~O#[:{O!Y(kX!Z(kX~O#g;[O~Of;^O~P!0}O#g;cO~O#g;dO~O!d#uO#g;eO~O!d#uO#g;[O~O#|;fO~P#C|O#g;gO~O#g;hO~O#g;mO~O#g;nO~O#g;oO~O#g;pO~O#|;qO~P!0}O#|;rO~P!0}O!i#P#Q#S#T#W#e#f#q(t$o$q$t%W%b%c%d%k%m%p%q%s%u~'vS#k!U't'|#lo#j#mn|'u$Y'u'{$[([~",goto:"$2p)SPPPPP)TPP)WP)iP*x.|PPPP5pPP6WPP<S?gP?zP?zPPP?zPAxP?zP?zP?zPA|PPBRPBlPGdPPPGhPPPPGhJiPPPJoKjPGhPMxPPPP!!WGhPPPGhPGhP!$fGhP!'z!(|!)VP!)y!)}!)yPPPPP!-Y!(|PP!-v!.pP!1dGhGh!1i!4s!9Y!9Y!=OPPP!=VGhPPPPPPPPPPP!@dP!AqPPGh!CSPGhPGhGhGhGhPGh!DfP!GnP!JrP!Jv!KQ!KU!KUP!GkP!KY!KYP!N^P!NbGhGh!Nh##k?zP?zP?z?zP#$v?z?z#'O?z#)k?z#+m?z?z#,[#.f#.f#.j#.r#.f#.zP#.fP?z#/d?z#3R?z?z5pPPP#6vPPP#7a#7aP#7aP#7w#7aPP#7}P#7tP#7t#8b#7t#8|#9S5m)W#9V)WP#9^#9^#9^P)WP)WP)WP)WPP)WP#9d#9gP#9g)WP#9kP#9nP)WP)WP)WP)WP)WP)W)WPP#9t#9z#:V#:]#:c#:i#:o#:}#;T#;Z#;e#;k#;u#<U#<[#<|#=`#=f#=l#=z#>a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#Ip#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ&S|Q'P!eS'V%f-TQ+k%{Q,Z&bQ0]*yQ0w+lQ0|+rQ1m,_Q1n,`Q4v0rQ5P1OQ5k1gQ5n1iQ5o1lQ7h4wQ7k4|Q8U5qQ9V7lR9b8RrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR,]&f&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O']'m(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<[<][#[WZ#V#Y'S'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ%sxQ%wyS%||&RQ&Y!TQ'^!hQ'`!iQ(k#rS*V$x*ZS+e%x%yQ+i%{Q,S&]Q,W&_S-a'a'bQ.^(lQ/g*WQ0p+fQ0v+lQ0x+mQ0{+qQ1a,TS1e,X,YQ2i-bQ3y/cQ4u0rQ4y0uQ5O0}Q5j1fQ7Q3zQ7g4wQ7j4{Q9R7fR9y9S!O$zi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c!S%uy!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^Q+_%sQ+x&VQ+{&WQ,V&_Q.](kQ1`,SU1d,W,X,YQ3Q.^Q5e1aS5i1e1fQ8Q5j#W<^#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go<_:y:z:};P;T;V;X;`;b;d;h;j;l;n;rW%Ti%V*r<YS&V!Q&dQ&W!RQ&X!SR+v&T$w%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gT)v$u)wV*v%Z;Q;RU'V!e%f-TS(y#y#zQ+p&OS.V(g(hQ1V+|Q4g0ZR7p5U&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]$i$`c#X#d%n%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.t.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q'T!eR2^-Qv!nQ!e!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_S*b$|*hS/t*c*jQ/}*kQ1X,OQ4^/|R4a0PnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&t!^Q'q!wS(m#t:kQ+c%vQ,Q&YQ,R&[Q-_'_Q-l'jS.g(r;[S0`+O;eQ0n+dQ1Z,PQ2O,oQ2Q,pQ2Y,{Q2g-`Q2j-dS4l0a;oQ4q0oS4t0q;pQ6T2[Q6X2hQ6^2oQ7e4rQ8b6VQ8c6YQ8f6_R9h8_$d$_c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(j#o'dU*o%R(q3mS+Y%n.tQ2|0hQ6f2{Q8l6iR9o8m$d$^c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(i#o'dS({#z$_S+X%n.tS.W(h(jQ.w)]Q0e+YR2y.X&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S#p]:dQ&o!XQ&p!YQ&r![Q&s!]R1v,kQ'[!hQ+[%sQ-]'^S.Y(k+_Q2e-[W2}.].^0g0iQ6W2fU6e2z2|3QS8i6f6hS9m8k8lS:U9l9oQ:^:VR:a:_U!vQ'Z-YT5Z1[5]!Q_OXZ`st!V!Z#c#g%b%j&d&f&m&o&p&r(d,h,m.P1w1z]!pQ!r'Z-Y1[5]T#p]:d%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS(y#y#zS.V(g(h!s;v$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Y!tQ'Z-Y1[5]Q'f!rS'p!u!xS'r!y5_S-i'g'hQ-k'iR2p-jQ'o!tS(`#f1qS-h'f'rQ/f*VQ/r*bQ2q-kQ4O/gS4X/s/}Q7P3yS7[4_4aQ8y7QR9Q7_Q#vbQ'n!tS(_#f1qS(a#l*}Q+P%cQ+a%tQ+g%zU-g'f'o'rQ-{(`Q/e*VQ/q*bQ/w*eQ0m+bQ1b,US2n-h-kQ2v.TS3}/f/gS4W/r/}Q4Z/vQ4]/xQ5g1cQ6`2qQ7O3yQ7S4OS7W4X4aQ7]4`Q8O5hS8x7P7QQ8|7XQ9O7[Q9_8PQ9u8yQ9v8}Q9x9QQ:Q9`Q:Y9wQ;y;tQ<U;}R<V<OV!vQ'Z-Y%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS#vz!j!r;s$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;y<[%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gQ%cj!S%ty!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^S%zz!jQ+b%uQ,U&_W1c,V,W,X,YU5h1d1e1fS8P5i5jQ9`8Q!r;t$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q;}<ZR<O<[$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gY#aWZ#V#Y'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ,c&j!p;u$[$m)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;x'SS'W!e%fR2`-T%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8g!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q,b&jQ0h+^Q2{.[Q6i3PR8m6j!b$Uc#X%n'|(S(n(u)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!P:r)Z)l-O.t2W2Z3_3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!f$Wc#X%n'|(S(n(u)T)U)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!T:t)Z)l-O.t2W2Z3_3f3g3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!^$[c#X%n'|(S(n(u)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:eQ3x/az<])Z)l-O.t2W2Z3_3n3t6U6p6y6z7r8a8n8t8u9{:S<PQ<b<dR<c<e&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S$nh$oR3q.z'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$jf$pQ$hfS)e$k)iR)q$pT$if$pT)g$k)i'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$nh$oQ$qhR)p$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8g!s<Z$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]#clOPXZst!Z!`!o#R#c#n#{$m%j&f&i&j&m&o&p&r&v'O'](z)n+S+^,e,h,m-^.[.{0[1_1o1p1r1t1w1z1|3P3p5Y5d5t5u5x6j7w7|8]!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gQ*z%_Q/W)zo3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!O$yi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cQ*[$zS*e$|*hQ*{%`Q/x*f#W;{#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;|:y:z:};P;T;V;X;`;b;d;h;j;l;n;rQ<Q<^Q<R<_Q<S<`R<T<a!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;rnoOXst!Z#c%j&m&o&p&r,h,m1w1zQ*_${Q,v&yQ,w&{R4R/k$v%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ+y&WQ1T+{Q5S1SR7o5TT*g$|*hS*g$|*hT5[1[5]S/v*d5YT4`0O7wQ+a%tQ/w*eQ0m+bQ1b,UQ5g1cQ8O5hQ9_8PR:Q9`!O%Oi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cr)}$v(s*O*n*|/i0U0V3W4P4j6}7`9t;z<W<XS0Q*m0R#W:|#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn:}:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!^;_(o)`*U*^._.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<e`;`3l6q6t6x8o9p9s:bS;i.a3UT;j6s8r!O%Qi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cv*P$v(s*Q*m*|/]/i0U0V3W4P4b4j6}7`9t;z<W<XS0S*n0T#W;O#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;P:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!b;a(o)`*U*^.`.a.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<ed;b3l6r6s6x8o8p9p9q9s:bS;k.b3VT;l6t8srnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ&a!UR,e&jrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR&a!UQ+}&XR1P+vsnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ1],SS5b1`1aU7x5`5a5eS9Z7z7{S9|9Y9]Q:Z9}R:`:[Q&h!VR,^&dR5n1iS%||&RR0x+mQ&m!WR,h&nR,n&sT1x,m1zR,r&tQ,q&tR2R,rQ't!zR-n'tSsOtQ#cXT%ms#cQ!}TR'v!}Q#QUR'x#QQ)w$uR/T)wQ#TVR'z#TQ#WWU(Q#W(R-uQ(R#XR-u(SQ-R'TR2_-RQ.j(sR3X.jQ.m(uS3[.m3]R3].nQ-Y'ZR2c-YY!rQ'Z-Y1[5]R'e!rS#^W%eU(X#^(Y-vQ(Y#_R-v(TQ-U'WR2a-Ut`OXst!V!Z#c%j&d&f&m&o&p&r,h,m1w1zS#gZ%bU#q`#g.PR.P(dQ(e#iQ-|(aW.U(e-|2t6bQ2t-}R6b2uQ)i$kR.|)iQ$ohR)o$oQ$bcU)_$b-q:xQ-q:eR:x)lQ/d*VW3{/d3|7R8zU3|/e/f/gS7R3}4OR8z7S$X)|$v(o(s)`*U*^*m*n*w*x*|.a.b.d.e.f/S/X/]/_/a/i/n0U0V0f1Q1S3R3S3T3W3l4P4Q4U4b4d4j5R5T6k6l6m6n6s6t6v6w6x6}7U7Y7`7b7d8o8p8q8{9P9p9q9r9s9t:X:b;z<W<X<d<eQ/l*^U4T/l4V7VQ4V/nR7V4UQ*h$|R/z*hr*O$v(s*m*n*|/i0U0V3W4P4j6}7`9t;z<W<X!^._(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<eU/^*O._6qa6q3l6s6t6x8o9p9s:bQ0R*mQ3U.aU4c0R3U8rR8r6sv*Q$v(s*m*n*|/]/i0U0V3W4P4b4j6}7`9t;z<W<X!b.`(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<eU/`*Q.`6re6r3l6s6t6x8o8p9p9q9s:bQ0T*nQ3V.bU4e0T3V8sR8s6tQ*s%UR0X*sQ4o0fR7c4oQ+U%hR0d+UQ5V1VS7q5V9XR9X7rQ,P&YR1Y,PQ5]1[R7u5]Q1h,ZS5l1h8SR8S5nQ0s+iW4x0s4z7i9TQ4z0vQ7i4yR9T7jQ+n%|R0y+nQ1z,mR5|1zYrOXst#cQ&q!ZQ+W%jQ,g&mQ,i&oQ,j&pQ,l&rQ1u,hS1x,m1zR5{1wQ%lpQ&u!_Q&x!aQ&z!bQ&|!cQ'l!tQ+V%iQ+c%vQ+u&SQ,]&hQ,t&wW-e'f'n'o'rQ-l'jQ/y*gQ0n+dS1k,^,aQ2S,sQ2T,vQ2U,wQ2j-dW2l-g-h-k-mQ4q0oQ4}0|Q5Q1QQ5f1bQ5p1mQ5z1vU6Z2k2n2qQ6^2oQ7e4rQ7m5PQ7n5RQ7t5[Q7}5gQ8T5oS8d6[6`Q8f6_Q9U7kQ9^8OQ9c8UQ9j8eQ9z9VQ:P9_Q:T9kR:]:QQ%vyQ'_!iQ'j!tU+d%w%x%yQ,{'QU-`'`'a'bS-d'f'pQ/p*bS0o+e+fQ2[,}S2h-a-bQ2o-iQ4Y/tQ4r0pQ6V2bQ6Y2iQ6_2pR7Z4^S$wi<YR*t%VU%Ui%V<YR0W*rQ$viS(o#u+`Q(s#wS)`$c$dQ*U$xQ*^${Q*m%OQ*n%QQ*w%[Q*x%]Q*|%aQ.a:|Q.b;OQ.d;SQ.e;UQ.f;WQ/S)uS/X){/ZQ/])}Q/_*PQ/a*RQ/i*YQ/n*`Q0U*pQ0V*qh0f+].Z1^3O5c6g7y8j9[9n:O:WQ1Q+wQ1S+zQ3R;_Q3S;aQ3T;cQ3W.iS3l:y:zQ4P/jQ4Q/kQ4U/mQ4b0QQ4d0SQ4j0^Q5R1RQ5T1UQ6k;gQ6l;iQ6m;kQ6n;mQ6s:}Q6t;PQ6v;TQ6w;VQ6x;XQ6}3xQ7U4SQ7Y4[Q7`4fQ7b4nQ7d4pQ8o;dQ8p;`Q8q;bQ8{7TQ9P7^Q9p;hQ9q;jQ9r;lQ9s;nQ9t8wQ:X;qQ:b;rQ;z<YQ<W<bQ<X<cQ<d<fR<e<gnpOXst!Z#c%j&m&o&p&r,h,m1w1zQ!fPS#eZ#nQ&w!`U'c!o5Y7wQ'y#RQ(|#{Q)m$mS,a&f&iQ,f&jQ,s&vQ,x'OQ-[']Q.p(zQ/Q)nQ0b+SQ0i+^Q1s,eQ2f-^Q2|.[Q3s.{Q4h0[Q5a1_Q5r1oQ5s1pQ5w1rQ5y1tQ6O1|Q6f3PQ6{3pQ7{5dQ8X5tQ8Y5uQ8[5xQ8l6jQ9]7|R9g8]#WcOPXZst!Z!`!o#c#n#{%j&f&i&j&m&o&p&r&v'O'](z+S+^,e,h,m-^.[0[1_1o1p1r1t1w1z1|3P5Y5d5t5u5x6j7w7|8]Q#XWQ#dYQ%nuQ%ovS%qw!gS'|#V(PQ(S#YQ(n#tQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)^$aQ)b$eW)l$m)n.{3pQ+Z%pQ+o%}S-O'S2]Q-m'mS-r'}-tQ-w(VQ-y(^Q.h(rQ.n(vQ.r:cQ.t:fQ.u:gQ.v:jQ/V)yQ0_+OQ2W,yQ2Z,|Q2k-fQ2r-zQ3Y.lQ3_:kQ3`:lQ3a:mQ3b:nQ3c:oQ3d:pQ3e:qQ3f:rQ3g:sQ3h:tQ3i:uQ3j:vQ3k.sQ3n:{Q3o;YQ3t:wQ4k0aQ4s0qQ6U;ZQ6[2mQ6a2sQ6o3ZQ6p;[Q6y;^Q6z;eQ7r5WQ8a6SQ8e6]Q8n;fQ8t;oQ8u;pQ9k8gQ9{9WQ:S9iQ:e#RR<P<]R#ZWR'U!eY!tQ'Z-Y1[5]S'Q!e-QQ'f!rS'p!u!xS'r!y5_S,}'R'YS-i'g'hQ-k'iQ2b-WR2p-jR(t#wR(w#xQ!fQT-X'Z-Y]!qQ!r'Z-Y1[5]Q#o]R'd:dT#jZ%bS#iZ%bS%hm,dU(a#g#h#kS-}(b(cQ.R(dQ0c+TQ2u.OU2v.P.Q.SS6c2w2xR8h6d`#]W#V#Y%e'}(W+Q-xr#fZm#g#h#k%b(b(c(d+T.O.P.Q.S2w2x6dQ1q,dQ2X,zQ6Q2PQ8`6RT;w'S+RT#`W%eS#_W%eS(O#V(WS(T#Y+QS-P'S+RT-s'}-xT'X!e%fQ$kfR)s$pT)h$k)iR3r.zT*X$x*ZR*a${Q0g+]Q2z.ZQ5`1^Q6h3OQ7z5cQ8k6gQ9Y7yQ9l8jQ9}9[Q:V9nQ:[:OR:_:WnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&g!VR,]&dtmOXst!U!V!Z#c%j&d&m&o&p&r,h,m1w1zR,d&jT%im,dR1W+|R,[&bQ&Q|R+t&RR+j%{T&k!W&nT&l!W&nT1y,m1z",nodeNames:"⚠ ArithOp ArithOp JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:371,context:aT,nodeProps:[["isolate",-8,4,5,13,33,35,48,50,52,""],["group",-26,8,16,18,65,201,205,209,210,212,215,218,228,230,236,238,240,242,245,251,257,259,261,263,265,267,268,"Statement",-32,12,13,28,31,32,38,48,51,52,54,59,67,75,79,81,83,84,106,107,116,117,134,137,139,140,141,142,144,145,164,165,167,"Expression",-23,27,29,33,37,39,41,168,170,172,173,175,176,177,179,180,181,183,184,185,195,197,199,200,"Type",-3,87,99,105,"ClassItem"],["openedBy",22,"<",34,"InterpolationStart",53,"[",57,"{",72,"(",157,"JSXStartCloseTag"],["closedBy",23,">",36,"InterpolationEnd",47,"]",58,"}",73,")",162,"JSXEndTag"]],propSources:[yT],skippedNodes:[0,4,5,271],repeatNodeCount:37,tokenData:"$Fj(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Ns!`!a$#_!a!b$(l!b!c$,k!c!}Er!}#O$-u#O#P$/P#P#Q$4h#Q#R$5r#R#SEr#S#T$7P#T#o$8Z#o#p$<k#p#q$=a#q#r$>q#r#s$?}#s$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$I|Er$I|$I}$Dd$I}$JO$Dd$JO$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(n%d_$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$f&j(Op(R!b't(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(P#S$f&j'u(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$f&j(Op(R!b'u(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$f&j!o$Ip(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|3l_'}$(n$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$f&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$a`$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$a``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$a`$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(R!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$a`(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k#%|:hh$f&j(Op(R!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__VS$f&j(Op(R!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]VS$f&j(R!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXVS$f&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSVSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWVS(R!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]VS$f&j(OpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWVS(OpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYVS(Op(R!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S#%|C}i$f&j(g!L^(Op(R!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr#%|EoP;=`<%lCr(CSFRk$f&j(Op(R!b$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$f&j(Op(R!b$Y#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv(CSJPP;=`<%lEr%#SJ_`$f&j(Op(R!b#l$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SKl_$f&j$O$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&COLva(p&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SNW`$f&j#x$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|! c_(Q$)`$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$f&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$a`$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(OpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$a`(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b(*Q!'t_!k(!b$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l!)O_!jM|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!*[b$f&j(Op(R!b'|#)d#m$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!+o`$f&j(Op(R!b#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!,|`$f&j(Op(R!bn&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!.Z_!Y&;l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!/ec$f&j(Op(R!b|'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!0ya$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!2Z_!XMt$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!3eg$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!5Vg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!6wc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!8_c$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!9uf$f&j(Op(R!b#k$IdOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpxz!;Zz{#,f{!P!;Z!P!Q#-{!Q!^!;Z!^!_#'Z!_!`#5k!`!a#7Q!a!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(r!;fb$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(Q!<w`$f&j(R!b!USOY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eb!Q!^!<n!^!_!GY!_!}!<n!}#O!Ja#O#P!Dj#P#o!<n#o#p!GY#p;'S!<n;'S;=`!Kj<%lO!<n&n!>Q^$f&j!USOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$f&j!USO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!USOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!US#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$f&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$f&j(R!b!USOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(R!b!USOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(R!b!USOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(R!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$f&j(R!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!<n#Q#o!Ja#o#p!Ic#p;'S!Ja;'S;=`!Kd<%lO!Ja(Q!KgP;=`<%l!Ja(Q!KmP;=`<%l!<n'`!Ky`$f&j(Op!USOY!KpYZ&cZr!Kprs!=ys!P!Kp!P!Q!L{!Q!^!Kp!^!_!Ns!_!}!Kp!}#O##z#O#P!Dj#P#o!Kp#o#p!Ns#p;'S!Kp;'S;=`#%T<%lO!Kp'`!MUi$f&j(Op!USOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!L{#[#](r#]#^!L{#^#a(r#a#b!L{#b#g(r#g#h!L{#h#i(r#i#j!L{#j#m(r#m#n!L{#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!NzZ(Op!USOY!NsZr!Nsrs!@Ys!P!Ns!P!Q# m!Q!}!Ns!}#O#!|#O#P!Bb#P;'S!Ns;'S;=`##t<%lO!Nst# tb(Op!USOY)rZr)rs#O)r#P#Z)r#Z#[# m#[#])r#]#^# m#^#a)r#a#b# m#b#g)r#g#h# m#h#i)r#i#j# m#j#m)r#m#n# m#n;'S)r;'S;=`*Z<%lO)rt##RX(OpOY#!|Zr#!|rs!Acs#O#!|#O#P!A{#P#Q!Ns#Q;'S#!|;'S;=`##n<%lO#!|t##qP;=`<%l#!|t##wP;=`<%l!Ns'`#$R^$f&j(OpOY##zYZ&cZr##zrs!Bws!^##z!^!_#!|!_#O##z#O#P!Cr#P#Q!Kp#Q#o##z#o#p#!|#p;'S##z;'S;=`#$}<%lO##z'`#%QP;=`<%l##z'`#%WP;=`<%l!Kp(r#%fk$f&j(Op(R!b!USOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[#%Z#[#]%Z#]#^#%Z#^#a%Z#a#b#%Z#b#g%Z#g#h#%Z#h#i%Z#i#j#%Z#j#m%Z#m#n#%Z#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W#'d](Op(R!b!USOY#'ZZr#'Zrs!GYsw#'Zwx!Nsx!P#'Z!P!Q#(]!Q!}#'Z!}#O#)w#O#P!Bb#P;'S#'Z;'S;=`#*w<%lO#'Z#W#(fe(Op(R!b!USOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[#(]#[#]*g#]#^#(]#^#a*g#a#b#(]#b#g*g#g#h#(]#h#i*g#i#j#(]#j#m*g#m#n#(]#n;'S*g;'S;=`+Z<%lO*g#W#*OZ(Op(R!bOY#)wZr#)wrs!Icsw#)wwx#!|x#O#)w#O#P!A{#P#Q#'Z#Q;'S#)w;'S;=`#*q<%lO#)w#W#*tP;=`<%l#)w#W#*zP;=`<%l#'Z(r#+W`$f&j(Op(R!bOY#*}YZ&cZr#*}rs!Jasw#*}wx##zx!^#*}!^!_#)w!_#O#*}#O#P!Cr#P#Q!;Z#Q#o#*}#o#p#)w#p;'S#*};'S;=`#,Y<%lO#*}(r#,]P;=`<%l#*}(r#,cP;=`<%l!;Z(CS#,sb$f&j(Op(R!b'v(;d!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(CS#.W_$f&j(Op(R!bS(;dOY#-{YZ&cZr#-{rs#/Vsw#-{wx#2gx!^#-{!^!_#4f!_#O#-{#O#P#0X#P#o#-{#o#p#4f#p;'S#-{;'S;=`#5e<%lO#-{(Bb#/`]$f&j(R!bS(;dOY#/VYZ&cZw#/Vwx#0Xx!^#/V!^!_#1j!_#O#/V#O#P#0X#P#o#/V#o#p#1j#p;'S#/V;'S;=`#2a<%lO#/V(AO#0`X$f&jS(;dOY#0XYZ&cZ!^#0X!^!_#0{!_#o#0X#o#p#0{#p;'S#0X;'S;=`#1d<%lO#0X(;d#1QSS(;dOY#0{Z;'S#0{;'S;=`#1^<%lO#0{(;d#1aP;=`<%l#0{(AO#1gP;=`<%l#0X(<v#1qW(R!bS(;dOY#1jZw#1jwx#0{x#O#1j#O#P#0{#P;'S#1j;'S;=`#2Z<%lO#1j(<v#2^P;=`<%l#1j(Bb#2dP;=`<%l#/V(Ap#2p]$f&j(OpS(;dOY#2gYZ&cZr#2grs#0Xs!^#2g!^!_#3i!_#O#2g#O#P#0X#P#o#2g#o#p#3i#p;'S#2g;'S;=`#4`<%lO#2g(<U#3pW(OpS(;dOY#3iZr#3irs#0{s#O#3i#O#P#0{#P;'S#3i;'S;=`#4Y<%lO#3i(<U#4]P;=`<%l#3i(Ap#4cP;=`<%l#2g(=h#4oY(Op(R!bS(;dOY#4fZr#4frs#1jsw#4fwx#3ix#O#4f#O#P#0{#P;'S#4f;'S;=`#5_<%lO#4f(=h#5bP;=`<%l#4f(CS#5hP;=`<%l#-{%#W#5xb$f&j$O$Id(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z+h#7_b$W#t$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z$/l#8rp$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#U%Z#U#V#>Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#d#AY#d#l%Z#l#m#D[#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;Rk$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#=R_$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>Zd$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Acc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Bye$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Deg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#FXi$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#HT_!d$b$f&j#|%<f(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#I__`l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^#Jk^g!*v!h'.r(Op(R!b(tSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Kg!Q!^*g!^!_#L]!_!`#M}!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#KpX$h&j(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#LfZ#n$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#MX!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#MbX$O$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#NWX#o$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh$ Oa#[%?x$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$!T!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W$!`_#g$Ih$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh$#nafBf#o$Id$c#|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$$s!`!a$%}!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$%O_#o$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$&Ya#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$'_!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$'j`#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$(wc(h$Ip$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$*S!P!^%Z!^!_*g!_!a%Z!a!b$+^!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$*__}'#p$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$+i`$f&j#y$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$,v_!{!Ln$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$.Q_!P(8n$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/UZ$f&jO!^$/w!^!_$0_!_#i$/w#i#j$0d#j#l$/w#l#m$2V#m#o$/w#o#p$0_#p;'S$/w;'S;=`$4b<%lO$/w(n$0OT^#S$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0dO^#S(n$0i[$f&jO!Q&c!Q![$1_![!^&c!_!c&c!c!i$1_!i#T&c#T#Z$1_#Z#o&c#o#p$3u#p;'S&c;'S;=`&w<%lO&c(n$1dZ$f&jO!Q&c!Q![$2V![!^&c!_!c&c!c!i$2V!i#T&c#T#Z$2V#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2[Z$f&jO!Q&c!Q![$2}![!^&c!_!c&c!c!i$2}!i#T&c#T#Z$2}#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3SZ$f&jO!Q&c!Q![$/w![!^&c!_!c&c!c!i$/w!i#T&c#T#Z$/w#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$3xR!Q![$4R!c!i$4R#T#Z$4R#S$4US!Q![$4R!c!i$4R#T#Z$4R#q#r$0_(n$4eP;=`<%l$/w!2r$4s_!V!+S$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$5}`#v$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$7[_$f&j(Op(R!b(X&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$8jk$f&j(Op(R!b'{&;d$[#t([!LYOY%ZYZ&cZr%Zrs&}st%Ztu$8Zuw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$8Z![!^%Z!^!_*g!_!c%Z!c!}$8Z!}#O%Z#O#P&c#P#R%Z#R#S$8Z#S#T%Z#T#o$8Z#o#p*g#p$g%Z$g;'S$8Z;'S;=`$<e<%lO$8Z+d$:jk$f&j(Op(R!b$[#tOY%ZYZ&cZr%Zrs&}st%Ztu$:_uw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$:_![!^%Z!^!_*g!_!c%Z!c!}$:_!}#O%Z#O#P&c#P#R%Z#R#S$:_#S#T%Z#T#o$:_#o#p*g#p$g%Z$g;'S$:_;'S;=`$<_<%lO$:_+d$<bP;=`<%l$:_(CS$<hP;=`<%l$8Z!5p$<tX![!3l(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g&CO$=la(o&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+^#q;'S%Z;'S;=`+a<%lO%Z%#`$?O_!Z$I`r`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$@Y_!pS$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$Aj|$f&j(Op(R!b't(;d$Y#t'{&;d([!LYOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(CS$Duk$f&j(Op(R!b'u(;d$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[TT,LT,zT,2,3,4,5,6,7,8,9,10,11,12,13,OT,new qO("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOt~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(Z~~",141,332),new qO("j~RQYZXz{^~^O'x~~aP!P!Qd~iO'y~~",25,315)],topRules:{Script:[0,6],SingleExpression:[1,269],SingleClassItem:[2,270]},dialects:{jsx:0,ts:14614},dynamicPrecedences:{69:1,79:1,81:1,165:1,193:1},specialized:[{term:319,get:M=>dT[M]||-1},{term:334,get:M=>AT[M]||-1},{term:70,get:M=>xT[M]||-1}],tokenPrec:14638}),ST=[MO("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),MO("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),MO("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),MO("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),MO("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),MO("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),MO("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),MO("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),MO("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),MO('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),MO('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],ET=ST.concat([MO("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),MO("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),MO("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),QT=new Ll,kT=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function CT(M){return(i,t)=>{let e=i.node.getChild("VariableDefinition");return e&&t(e,M),!0}}const pT=["FunctionDeclaration"],UT={FunctionDeclaration:CT("function"),ClassDeclaration:CT("class"),ClassExpression:()=>!0,EnumDeclaration:CT("constant"),TypeAliasDeclaration:CT("type"),NamespaceDeclaration:CT("namespace"),VariableDefinition(M,i){M.matchContext(pT)||i(M,"variable")},TypeDefinition(M,i){i(M,"type")},__proto__:null};function bT(M,i){let t=QT.get(i);if(t)return t;let e=[],N=!0;function s(i,t){let N=M.sliceString(i.from,i.to);e.push({label:N,type:t})}return i.cursor(Ml.IncludeAnonymous).iterate((i=>{if(N)N=!1;else if(i.name){let M=UT[i.name];if(M&&M(i,s)||kT.has(i.name))return!1}else if(i.to-i.from>8192){for(let t of bT(M,i.node))e.push(t);return!1}})),QT.set(i,e),e}const ZT=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,mT=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function YT(M){let i=tr(M.state).resolveInner(M.pos,-1);if(mT.indexOf(i.name)>-1)return null;let t="VariableName"==i.name||i.to-i.from<20&&ZT.test(M.state.sliceDoc(i.from,i.to));if(!t&&!M.explicit)return null;let e=[];for(let t=i;t;t=t.parent)kT.has(t.name)&&(e=e.concat(bT(M.state.doc,t)));return{options:e,from:t?i.from:M.pos,validFor:ZT}}const fT=ir.define({name:"javascript",parser:wT.configure({props:[Lr.add({IfStatement:Sr({except:/^\s*({|else\b)/}),TryStatement:Sr({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:M=>M.baseIndent,SwitchBody:M=>{let i=M.textAfter,t=/^\s*\}/.test(i),e=/^\s*(case|default)\b/.test(i);return M.baseIndent+(t?0:e?1:2)*M.unit},Block:xr({closing:"}"}),ArrowFunction:M=>M.baseIndent+M.unit,"TemplateString BlockComment":()=>null,"Statement Property":Sr({except:/^{/}),JSXElement(M){let i=/^\s*<\//.test(M.textAfter);return M.lineIndent(M.node.from)+(i?0:M.unit)},JSXEscape(M){let i=/\s*\}/.test(M.textAfter);return M.lineIndent(M.node.from)+(i?0:M.unit)},"JSXOpenTag JSXSelfClosingTag":M=>M.column(M.node.from)+M.unit}),Qr.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":function(M){let i=M.firstChild,t=M.lastChild;return i&&i.to<t.from?{from:i.to,to:t.type.isError?M.to:t.from}:null},BlockComment:M=>({from:M.from+2,to:M.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),WT={test:M=>/^JSX/.test(M.name),facet:_l({commentTokens:{block:{open:"{/*",close:"*/}"}}})},VT=fT.configure({dialect:"ts"},"typescript"),vT=fT.configure({dialect:"jsx",props:[ql.add((M=>M.isTop?[WT]:void 0))]}),GT=fT.configure({dialect:"jsx ts",props:[ql.add((M=>M.isTop?[WT]:void 0))]},"typescript");let PT=M=>({label:M,type:"keyword"});const RT="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(PT),BT=RT.concat(["declare","implements","private","protected","public"].map(PT));function FT(M={}){let i=M.jsx?M.typescript?GT:vT:M.typescript?VT:fT,t=M.typescript?ET.concat(BT):ST.concat(RT);return new rr(i,[fT.data.of({autocomplete:(e=mT,N=sa(t),M=>{for(let i=tr(M.state).resolveInner(M.pos,-1);i;i=i.parent){if(e.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return N(M)})}),fT.data.of({autocomplete:YT}),M.jsx?HT:[]]);var e,N}function XT(M,i,t=M.length){for(let e=null==i?void 0:i.firstChild;e;e=e.nextSibling)if("JSXIdentifier"==e.name||"JSXBuiltin"==e.name||"JSXNamespacedName"==e.name||"JSXMemberExpression"==e.name)return M.sliceString(e.from,Math.min(e.to,t));return""}const JT="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),HT=uj.inputHandler.of(((M,i,t,e,N)=>{if((JT?M.composing:M.compositionStarted)||M.state.readOnly||i!=t||">"!=e&&"/"!=e||!fT.isActiveAt(M.state,i,-1))return!1;let s=N(),{state:u}=s,D=u.changeByRange((M=>{var i;let t,{head:N}=M,s=tr(u).resolveInner(N-1,-1);if("JSXStartTag"==s.name&&(s=s.parent),u.doc.sliceString(N-1,N)!=e||"JSXAttributeValue"==s.name&&s.to>N);else{if(">"==e&&"JSXFragmentTag"==s.name)return{range:M,changes:{from:N,insert:"</>"}};if("/"==e&&"JSXStartCloseTag"==s.name){let M=s.parent,e=M.parent;if(e&&M.from==N-2&&((t=XT(u.doc,e.firstChild,N))||"JSXFragmentTag"==(null===(i=e.firstChild)||void 0===i?void 0:i.name))){let M=`${t}>`;return{range:$e.cursor(N+M.length,-1),changes:{from:N,insert:M}}}}else if(">"==e){let i=function(M){for(;;){if("JSXOpenTag"==M.name||"JSXSelfClosingTag"==M.name||"JSXFragmentTag"==M.name)return M;if("JSXEscape"==M.name||!M.parent)return null;M=M.parent}}(s);if(i&&!/^\/?>|^<\//.test(u.doc.sliceString(N,N+2))&&(t=XT(u.doc,i,N)))return{range:M,changes:{from:N,insert:`</${t}>`}}}}return{range:M}}));return!D.changes.empty&&(M.dispatch([s,u.update(D,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),$T=M=>void 0===M||M,_T=(M={})=>{let i=[];$T(M.defaultKeymap)&&i.push(...qg),$T(M.closeBracketsKeymap)&&i.push(...lO),$T(M.searchKeymap)&&i.push(...Hc),$T(M.historyKeymap)&&i.push(...ig),$T(M.foldKeymap)&&i.push(...vr),$T(M.lintKeymap)&&i.push(...UO);const t=[];return $T(M.lineNumbers)&&t.push(function(M={}){return[YI.of(M),QI(),VI]}()),$T(M.highlightActiveLineGutter)&&t.push(PI),$T(M.highlightSpecialChars)&&t.push(function(M={}){return[Pj.of(M),Rj||(Rj=nD.fromClass(class{constructor(M){this.view=M,this.decorations=Lu.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(M.state.facet(Pj)),this.decorations=this.decorator.createDeco(M)}makeDecorator(M){return new fj({regexp:M.specialChars,decoration:(i,t,e)=>{let{doc:N}=t.state,s=me(i[0],0);if(9==s){let M=N.lineAt(e),i=t.state.tabSize,s=ss(M.text,i,e-M.from);return Lu.replace({widget:new Fj((i-s%i)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=Lu.replace({widget:new Bj(M,s)}))},boundary:M.replaceTabs?void 0:/[^]/})}update(M){let i=M.state.facet(Pj);M.startState.facet(Pj)!=i?(this.decorator=this.makeDecorator(i),this.decorations=this.decorator.createDeco(M.view)):this.decorations=this.decorator.updateDeco(M,this.decorations)}},{decorations:M=>M.decorations}))]}()),$T(M.history)&&t.push(function(M={}){return[fo,Yo.of(M),uj.domEventHandlers({beforeinput(M,i){let t="historyUndo"==M.inputType?Vo:"historyRedo"==M.inputType?vo:null;return!!t&&(M.preventDefault(),t(i))}})]}()),$T(M.foldGutter)&&t.push(function(M={}){let i=Object.assign(Object.assign({},Jr),M),t=new Hr(i,!0),e=new Hr(i,!1),N=nD.fromClass(class{constructor(M){this.from=M.viewport.from,this.markers=this.buildMarkers(M)}update(M){(M.docChanged||M.viewportChanged||M.startState.facet(lr)!=M.state.facet(lr)||M.startState.field(mr,!1)!=M.state.field(mr,!1)||tr(M.startState)!=tr(M.state)||i.foldingChanged(M))&&(this.markers=this.buildMarkers(M.view))}buildMarkers(M){let i=new JN;for(let N of M.viewportLineBlocks){let s=Yr(M.state,N.from,N.to)?e:Cr(M.state,N.from,N.to)?t:null;s&&i.add(N.from,N.from,s)}return i.finish()}}),{domEventHandlers:s}=i;return[N,SI({class:"cm-foldGutter",markers(M){var i;return(null===(i=M.plugin(N))||void 0===i?void 0:i.markers)||XN.empty},initialSpacer:()=>new Hr(i,!1),domEventHandlers:Object.assign(Object.assign({},s),{click:(M,i,t)=>{if(s.click&&s.click(M,i,t))return!0;let e=Yr(M.state,i.from,i.to);if(e)return M.dispatch({effects:br.of(e)}),!0;let N=Cr(M.state,i.from,i.to);return!!N&&(M.dispatch({effects:Ur.of(N)}),!0)}})}),Rr()]}()),$T(M.drawSelection)&&t.push(function(M={}){return[Sj.of(M),Qj,Cj,Uj,iD.of(!0)]}()),$T(M.dropCursor)&&t.push([Zj,mj]),$T(M.allowMultipleSelections)&&t.push(vN.allowMultipleSelections.of(!0)),$T(M.indentOnInput)&&t.push(vN.transactionFilter.of((M=>{if(!M.docChanged||!M.isUserEvent("input.type")&&!M.isUserEvent("input.complete"))return M;let i=M.startState.languageDataAt("indentOnInput",M.startState.selection.main.head);if(!i.length)return M;let t=M.newDoc,{head:e}=M.newSelection.main,N=t.lineAt(e);if(e>N.from+200)return M;let s=t.sliceString(N.from,e);if(!i.some((M=>M.test(s))))return M;let{state:u}=M,D=-1,n=[];for(let{head:M}of u.selection.ranges){let i=u.doc.lineAt(M);if(i.from==D)continue;D=i.from;let t=Or(u,i.from);if(null==t)continue;let e=/^\s*/.exec(i.text)[0],N=ar(u,t);e!=N&&n.push({from:i.from,to:i.from+e.length,insert:N})}return n.length?[M,{changes:n,sequential:!0}]:M}))),$T(M.syntaxHighlighting)&&t.push(function(M,i){let t,e=[to];return M instanceof _r&&(M.module&&e.push(uj.styleModule.of(M.module)),t=M.themeType),(null==i?void 0:i.fallback)?e.push(Kr.of(M)):t?e.push(qr.computeN([uj.darkTheme],(i=>i.facet(uj.darkTheme)==("dark"==t)?[M]:[]))):e.push(qr.of(M)),e}(eo,{fallback:!0})),$T(M.bracketMatching)&&t.push(function(M={}){return[Do.of(M),ro]}()),$T(M.closeBrackets)&&t.push([IO,sO]),$T(M.autocompletion)&&t.push(LO()),$T(M.rectangularSelection)&&t.push(function(M){let i=(null==M?void 0:M.eventFilter)||(M=>M.altKey&&0==M.button);return uj.mouseSelectionStyle.of(((M,t)=>i(t)?_j(M,t):null))}()),$T(M.crosshairCursor)&&t.push(function(M={}){let[i,t]=qj[M.key||"Alt"],e=nD.fromClass(class{constructor(M){this.view=M,this.isDown=!1}set(M){this.isDown!=M&&(this.isDown=M,this.view.update([]))}},{eventObservers:{keydown(M){this.set(M.keyCode==i||t(M))},keyup(M){M.keyCode!=i&&t(M)||this.set(!1)},mousemove(M){this.set(t(M))}}});return[e,uj.contentAttributes.of((M=>{var i;return(null===(i=M.plugin(e))||void 0===i?void 0:i.isDown)?Kj:null}))]}()),$T(M.highlightActiveLine)&&t.push(Jj),$T(M.highlightSelectionMatches)&&t.push(function(M){let i=[hc,Lc];return M&&i.push(cc.of(M)),i}()),M.tabSize&&"number"==typeof M.tabSize&&t.push(gr.of(" ".repeat(M.tabSize))),t.concat([gj.of(i.flat())]).filter(Boolean)};M.NileCodeEditor=class extends RM{constructor(){super(...arguments),this.lineNumbersComp=new gN}static get styles(){return[ae]}connectedCallback(){super.connectedCallback()}convertToSingleLine(M){return M.replace(/\s+/g," ").trim()}updated(){const M=fT.data.of({autocomplete:this.customOptions});let i=vN.create({doc:this.multiline?this.value:this.convertToSingleLine(this.value),extensions:[_T({lineNumbers:!!this.showLineNumbers,foldGutter:!!this.multiline}),M,LO(),FT(),this.multiline?[]:this.restrictSingleLine(),uj.updateListener.of((M=>{M.docChanged&&this.emitValues(this.view.state.doc.toString())}))]});this.view=new uj({state:i,parent:this.codeEditor})}emitValues(M){this.emit("nile-change",{value:M})}expandCodeEditor(){this.emit("nile-expand",{expand:!0})}restrictSingleLine(){return vN.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}render(){return V`<div class="code-mirror">
|
5702
|
+
`;class Oe{lineAt(M){if(M<0||M>this.length)throw new RangeError(`Invalid position ${M} in document of length ${this.length}`);return this.lineInner(M,!1,1,0)}line(M){if(M<1||M>this.lines)throw new RangeError(`Invalid line number ${M} in ${this.lines}-line document`);return this.lineInner(M,!0,1,0)}replace(M,i,t){[M,i]=we(this,M,i);let e=[];return this.decompose(0,M,e,2),t.length&&t.decompose(0,t.length,e,3),this.decompose(i,this.length,e,1),Le.from(e,this.length-(i-M)+t.length)}append(M){return this.replace(this.length,this.length,M)}slice(M,i=this.length){[M,i]=we(this,M,i);let t=[];return this.decompose(M,i,t,0),Le.from(t,i-M)}eq(M){if(M==this)return!0;if(M.length!=this.length||M.lines!=this.lines)return!1;let i=this.scanIdentical(M,1),t=this.length-this.scanIdentical(M,-1),e=new ye(this),N=new ye(M);for(let M=i,s=i;;){if(e.next(M),N.next(M),M=0,e.lineBreak!=N.lineBreak||e.done!=N.done||e.value!=N.value)return!1;if(s+=e.value.length,e.done||s>=t)return!0}}iter(M=1){return new ye(this,M)}iterRange(M,i=this.length){return new de(this,M,i)}iterLines(M,i){let t;if(null==M)t=this.iter();else{null==i&&(i=this.lines+1);let e=this.line(M).from;t=this.iterRange(e,Math.max(e,i==this.lines+1?this.length:i<=1?0:this.line(i-1).to))}return new Ae(t)}toString(){return this.sliceString(0)}toJSON(){let M=[];return this.flatten(M),M}constructor(){}static of(M){if(0==M.length)throw new RangeError("A document must have at least one line");return 1!=M.length||M[0]?M.length<=32?new Te(M):Le.from(Te.split(M,[])):Oe.empty}}class Te extends Oe{constructor(M,i=function(M){let i=-1;for(let t of M)i+=t.length+1;return i}(M)){super(),this.text=M,this.length=i}get lines(){return this.text.length}get children(){return null}lineInner(M,i,t,e){for(let N=0;;N++){let s=this.text[N],u=e+s.length;if((i?t:u)>=M)return new xe(e,u,t,s);e=u+1,t++}}decompose(M,i,t,e){let N=M<=0&&i>=this.length?this:new Te(ze(this.text,M,i),Math.min(i,this.length)-Math.max(0,M));if(1&e){let M=t.pop(),i=he(N.text,M.text.slice(),0,N.length);if(i.length<=32)t.push(new Te(i,M.length+N.length));else{let M=i.length>>1;t.push(new Te(i.slice(0,M)),new Te(i.slice(M)))}}else t.push(N)}replace(M,i,t){if(!(t instanceof Te))return super.replace(M,i,t);[M,i]=we(this,M,i);let e=he(this.text,he(t.text,ze(this.text,0,M)),i),N=this.length+t.length-(i-M);return e.length<=32?new Te(e,N):Le.from(Te.split(e,[]),N)}sliceString(M,i=this.length,t="\n"){[M,i]=we(this,M,i);let e="";for(let N=0,s=0;N<=i&&s<this.text.length;s++){let u=this.text[s],D=N+u.length;N>M&&s&&(e+=t),M<D&&i>N&&(e+=u.slice(Math.max(0,M-N),i-N)),N=D+1}return e}flatten(M){for(let i of this.text)M.push(i)}scanIdentical(){return 0}static split(M,i){let t=[],e=-1;for(let N of M)t.push(N),e+=N.length+1,32==t.length&&(i.push(new Te(t,e)),t=[],e=-1);return e>-1&&i.push(new Te(t,e)),i}}class Le extends Oe{constructor(M,i){super(),this.children=M,this.length=i,this.lines=0;for(let i of M)this.lines+=i.lines}lineInner(M,i,t,e){for(let N=0;;N++){let s=this.children[N],u=e+s.length,D=t+s.lines-1;if((i?D:u)>=M)return s.lineInner(M,i,t,e);e=u+1,t=D+1}}decompose(M,i,t,e){for(let N=0,s=0;s<=i&&N<this.children.length;N++){let u=this.children[N],D=s+u.length;if(M<=D&&i>=s){let N=e&((s<=M?1:0)|(D>=i?2:0));s>=M&&D<=i&&!N?t.push(u):u.decompose(M-s,i-s,t,N)}s=D+1}}replace(M,i,t){if([M,i]=we(this,M,i),t.lines<this.lines)for(let e=0,N=0;e<this.children.length;e++){let s=this.children[e],u=N+s.length;if(M>=N&&i<=u){let D=s.replace(M-N,i-N,t),n=this.lines-s.lines+D.lines;if(D.lines<n>>4&&D.lines>n>>6){let N=this.children.slice();return N[e]=D,new Le(N,this.length-(i-M)+t.length)}return super.replace(N,u,D)}N=u+1}return super.replace(M,i,t)}sliceString(M,i=this.length,t="\n"){[M,i]=we(this,M,i);let e="";for(let N=0,s=0;N<this.children.length&&s<=i;N++){let u=this.children[N],D=s+u.length;s>M&&N&&(e+=t),M<D&&i>s&&(e+=u.sliceString(M-s,i-s,t)),s=D+1}return e}flatten(M){for(let i of this.children)i.flatten(M)}scanIdentical(M,i){if(!(M instanceof Le))return 0;let t=0,[e,N,s,u]=i>0?[0,0,this.children.length,M.children.length]:[this.children.length-1,M.children.length-1,-1,-1];for(;;e+=i,N+=i){if(e==s||N==u)return t;let D=this.children[e],n=M.children[N];if(D!=n)return t+D.scanIdentical(n,i);t+=D.length+1}}static from(M,i=M.reduce(((M,i)=>M+i.length+1),-1)){let t=0;for(let i of M)t+=i.lines;if(t<32){let t=[];for(let i of M)i.flatten(t);return new Te(t,i)}let e=Math.max(32,t>>5),N=e<<1,s=e>>1,u=[],D=0,n=-1,j=[];function I(M){let i;if(M.lines>N&&M instanceof Le)for(let i of M.children)I(i);else M.lines>s&&(D>s||!D)?(l(),u.push(M)):M instanceof Te&&D&&(i=j[j.length-1])instanceof Te&&M.lines+i.lines<=32?(D+=M.lines,n+=M.length+1,j[j.length-1]=new Te(i.text.concat(M.text),i.length+1+M.length)):(D+M.lines>e&&l(),D+=M.lines,n+=M.length+1,j.push(M))}function l(){0!=D&&(u.push(1==j.length?j[0]:Le.from(j,n)),n=-1,D=j.length=0)}for(let i of M)I(i);return l(),1==u.length?u[0]:new Le(u,i)}}function he(M,i,t=0,e=1e9){for(let N=0,s=0,u=!0;s<M.length&&N<=e;s++){let D=M[s],n=N+D.length;n>=t&&(n>e&&(D=D.slice(0,e-N)),N<t&&(D=D.slice(t-N)),u?(i[i.length-1]+=D,u=!1):i.push(D)),N=n+1}return i}function ze(M,i,t){return he(M,[""],i,t)}Oe.empty=new Te([""],0);class ye{constructor(M,i=1){this.dir=i,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[M],this.offsets=[i>0?1:(M instanceof Te?M.text.length:M.children.length)<<1]}nextInner(M,i){for(this.done=this.lineBreak=!1;;){let t=this.nodes.length-1,e=this.nodes[t],N=this.offsets[t],s=N>>1,u=e instanceof Te?e.text.length:e.children.length;if(s==(i>0?u:0)){if(0==t)return this.done=!0,this.value="",this;i>0&&this.offsets[t-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&N)==(i>0?0:1)){if(this.offsets[t]+=i,0==M)return this.lineBreak=!0,this.value="\n",this;M--}else if(e instanceof Te){let N=e.text[s+(i<0?-1:0)];if(this.offsets[t]+=i,N.length>Math.max(0,M))return this.value=0==M?N:i>0?N.slice(M):N.slice(0,N.length-M),this;M-=N.length}else{let N=e.children[s+(i<0?-1:0)];M>N.length?(M-=N.length,this.offsets[t]+=i):(i<0&&this.offsets[t]--,this.nodes.push(N),this.offsets.push(i>0?1:(N instanceof Te?N.text.length:N.children.length)<<1))}}}next(M=0){return M<0&&(this.nextInner(-M,-this.dir),M=this.value.length),this.nextInner(M,this.dir)}}class de{constructor(M,i,t){this.value="",this.done=!1,this.cursor=new ye(M,i>t?-1:1),this.pos=i>t?M.length:0,this.from=Math.min(i,t),this.to=Math.max(i,t)}nextInner(M,i){if(i<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;M+=Math.max(0,i<0?this.pos-this.to:this.from-this.pos);let t=i<0?this.pos-this.from:this.to-this.pos;M>t&&(M=t),t-=M;let{value:e}=this.cursor.next(M);return this.pos+=(e.length+M)*i,this.value=e.length<=t?e:i<0?e.slice(e.length-t):e.slice(0,t),this.done=!this.value,this}next(M=0){return M<0?M=Math.max(M,this.from-this.pos):M>0&&(M=Math.min(M,this.to-this.pos)),this.nextInner(M,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class Ae{constructor(M){this.inner=M,this.afterBreak=!0,this.value="",this.done=!1}next(M=0){let{done:i,lineBreak:t,value:e}=this.inner.next(M);return i&&this.afterBreak?(this.value="",this.afterBreak=!1):i?(this.done=!0,this.value=""):t?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=e,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(Oe.prototype[Symbol.iterator]=function(){return this.iter()},ye.prototype[Symbol.iterator]=de.prototype[Symbol.iterator]=Ae.prototype[Symbol.iterator]=function(){return this});class xe{constructor(M,i,t,e){this.from=M,this.to=i,this.number=t,this.text=e}get length(){return this.to-this.from}}function we(M,i,t){return[i=Math.max(0,Math.min(M.length,i)),Math.max(i,Math.min(M.length,t))]}let Se="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((M=>M?parseInt(M,36):1));for(let M=1;M<Se.length;M++)Se[M]+=Se[M-1];function Ee(M){for(let i=1;i<Se.length;i+=2)if(Se[i]>M)return Se[i-1]<=M;return!1}function Qe(M){return M>=127462&&M<=127487}const ke=8205;function Ce(M,i,t=!0,e=!0){return(t?pe:Ue)(M,i,e)}function pe(M,i,t){if(i==M.length)return i;i&&be(M.charCodeAt(i))&&Ze(M.charCodeAt(i-1))&&i--;let e=me(M,i);for(i+=fe(e);i<M.length;){let N=me(M,i);if(e==ke||N==ke||t&&Ee(N))i+=fe(N),e=N;else{if(!Qe(N))break;{let t=0,e=i-2;for(;e>=0&&Qe(me(M,e));)t++,e-=2;if(t%2==0)break;i+=2}}}return i}function Ue(M,i,t){for(;i>0;){let e=pe(M,i-2,t);if(e<i)return e;i--}return 0}function be(M){return M>=56320&&M<57344}function Ze(M){return M>=55296&&M<56320}function me(M,i){let t=M.charCodeAt(i);if(!Ze(t)||i+1==M.length)return t;let e=M.charCodeAt(i+1);return be(e)?e-56320+(t-55296<<10)+65536:t}function Ye(M){return M<=65535?String.fromCharCode(M):(M-=65536,String.fromCharCode(55296+(M>>10),56320+(1023&M)))}function fe(M){return M<65536?1:2}const We=/\r\n?|\n/;var Ve=function(M){return M[M.Simple=0]="Simple",M[M.TrackDel=1]="TrackDel",M[M.TrackBefore=2]="TrackBefore",M[M.TrackAfter=3]="TrackAfter",M}(Ve||(Ve={}));class ve{constructor(M){this.sections=M}get length(){let M=0;for(let i=0;i<this.sections.length;i+=2)M+=this.sections[i];return M}get newLength(){let M=0;for(let i=0;i<this.sections.length;i+=2){let t=this.sections[i+1];M+=t<0?this.sections[i]:t}return M}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(M){for(let i=0,t=0,e=0;i<this.sections.length;){let N=this.sections[i++],s=this.sections[i++];s<0?(M(t,e,N),e+=N):e+=s,t+=N}}iterChangedRanges(M,i=!1){Be(this,M,i)}get invertedDesc(){let M=[];for(let i=0;i<this.sections.length;){let t=this.sections[i++],e=this.sections[i++];e<0?M.push(t,e):M.push(e,t)}return new ve(M)}composeDesc(M){return this.empty?M:M.empty?this:Xe(this,M)}mapDesc(M,i=!1){return M.empty?this:Fe(this,M,i)}mapPos(M,i=-1,t=Ve.Simple){let e=0,N=0;for(let s=0;s<this.sections.length;){let u=this.sections[s++],D=this.sections[s++],n=e+u;if(D<0){if(n>M)return N+(M-e);N+=u}else{if(t!=Ve.Simple&&n>=M&&(t==Ve.TrackDel&&e<M&&n>M||t==Ve.TrackBefore&&e<M||t==Ve.TrackAfter&&n>M))return null;if(n>M||n==M&&i<0&&!u)return M==e||i<0?N:N+D;N+=D}e=n}if(M>e)throw new RangeError(`Position ${M} is out of range for changeset of length ${e}`);return N}touchesRange(M,i=M){for(let t=0,e=0;t<this.sections.length&&e<=i;){let N=e+this.sections[t++];if(this.sections[t++]>=0&&e<=i&&N>=M)return!(e<M&&N>i)||"cover";e=N}return!1}toString(){let M="";for(let i=0;i<this.sections.length;){let t=this.sections[i++],e=this.sections[i++];M+=(M?" ":"")+t+(e>=0?":"+e:"")}return M}toJSON(){return this.sections}static fromJSON(M){if(!Array.isArray(M)||M.length%2||M.some((M=>"number"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ve(M)}static create(M){return new ve(M)}}class Ge extends ve{constructor(M,i){super(M),this.inserted=i}apply(M){if(this.length!=M.length)throw new RangeError("Applying change set to a document with the wrong length");return Be(this,((i,t,e,N,s)=>M=M.replace(e,e+(t-i),s)),!1),M}mapDesc(M,i=!1){return Fe(this,M,i,!0)}invert(M){let i=this.sections.slice(),t=[];for(let e=0,N=0;e<i.length;e+=2){let s=i[e],u=i[e+1];if(u>=0){i[e]=u,i[e+1]=s;let D=e>>1;for(;t.length<D;)t.push(Oe.empty);t.push(s?M.slice(N,N+s):Oe.empty)}N+=s}return new Ge(i,t)}compose(M){return this.empty?M:M.empty?this:Xe(this,M,!0)}map(M,i=!1){return M.empty?this:Fe(this,M,i,!0)}iterChanges(M,i=!1){Be(this,M,i)}get desc(){return ve.create(this.sections)}filter(M){let i=[],t=[],e=[],N=new Je(this);M:for(let s=0,u=0;;){let D=s==M.length?1e9:M[s++];for(;u<D||u==D&&0==N.len;){if(N.done)break M;let M=Math.min(N.len,D-u);Pe(e,M,-1);let s=-1==N.ins?-1:0==N.off?N.ins:0;Pe(i,M,s),s>0&&Re(t,i,N.text),N.forward(M),u+=M}let n=M[s++];for(;u<n;){if(N.done)break M;let M=Math.min(N.len,n-u);Pe(i,M,-1),Pe(e,M,-1==N.ins?-1:0==N.off?N.ins:0),N.forward(M),u+=M}}return{changes:new Ge(i,t),filtered:ve.create(e)}}toJSON(){let M=[];for(let i=0;i<this.sections.length;i+=2){let t=this.sections[i],e=this.sections[i+1];e<0?M.push(t):0==e?M.push([t]):M.push([t].concat(this.inserted[i>>1].toJSON()))}return M}static of(M,i,t){let e=[],N=[],s=0,u=null;function D(M=!1){if(!M&&!e.length)return;s<i&&Pe(e,i-s,-1);let t=new Ge(e,N);u=u?u.compose(t.map(u)):t,e=[],N=[],s=0}return function M(n){if(Array.isArray(n))for(let i of n)M(i);else if(n instanceof Ge){if(n.length!=i)throw new RangeError(`Mismatched change set length (got ${n.length}, expected ${i})`);D(),u=u?u.compose(n.map(u)):n}else{let{from:M,to:u=M,insert:j}=n;if(M>u||M<0||u>i)throw new RangeError(`Invalid change range ${M} to ${u} (in doc of length ${i})`);let I=j?"string"==typeof j?Oe.of(j.split(t||We)):j:Oe.empty,l=I.length;if(M==u&&0==l)return;M<s&&D(),M>s&&Pe(e,M-s,-1),Pe(e,u-M,l),Re(N,e,I),s=u}}(M),D(!u),u}static empty(M){return new Ge(M?[M,-1]:[],[])}static fromJSON(M){if(!Array.isArray(M))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],t=[];for(let e=0;e<M.length;e++){let N=M[e];if("number"==typeof N)i.push(N,-1);else{if(!Array.isArray(N)||"number"!=typeof N[0]||N.some(((M,i)=>i&&"string"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==N.length)i.push(N[0],0);else{for(;t.length<e;)t.push(Oe.empty);t[e]=Oe.of(N.slice(1)),i.push(N[0],t[e].length)}}}return new Ge(i,t)}static createSet(M,i){return new Ge(M,i)}}function Pe(M,i,t,e=!1){if(0==i&&t<=0)return;let N=M.length-2;N>=0&&t<=0&&t==M[N+1]?M[N]+=i:0==i&&0==M[N]?M[N+1]+=t:e?(M[N]+=i,M[N+1]+=t):M.push(i,t)}function Re(M,i,t){if(0==t.length)return;let e=i.length-2>>1;if(e<M.length)M[M.length-1]=M[M.length-1].append(t);else{for(;M.length<e;)M.push(Oe.empty);M.push(t)}}function Be(M,i,t){let e=M.inserted;for(let N=0,s=0,u=0;u<M.sections.length;){let D=M.sections[u++],n=M.sections[u++];if(n<0)N+=D,s+=D;else{let j=N,I=s,l=Oe.empty;for(;j+=D,I+=n,n&&e&&(l=l.append(e[u-2>>1])),!(t||u==M.sections.length||M.sections[u+1]<0);)D=M.sections[u++],n=M.sections[u++];i(N,j,s,I,l),N=j,s=I}}}function Fe(M,i,t,e=!1){let N=[],s=e?[]:null,u=new Je(M),D=new Je(i);for(let M=-1;;)if(-1==u.ins&&-1==D.ins){let M=Math.min(u.len,D.len);Pe(N,M,-1),u.forward(M),D.forward(M)}else if(D.ins>=0&&(u.ins<0||M==u.i||0==u.off&&(D.len<u.len||D.len==u.len&&!t))){let i=D.len;for(Pe(N,D.ins,-1);i;){let t=Math.min(u.len,i);u.ins>=0&&M<u.i&&u.len<=t&&(Pe(N,0,u.ins),s&&Re(s,N,u.text),M=u.i),u.forward(t),i-=t}D.next()}else{if(!(u.ins>=0)){if(u.done&&D.done)return s?Ge.createSet(N,s):ve.create(N);throw new Error("Mismatched change set lengths")}{let i=0,t=u.len;for(;t;)if(-1==D.ins){let M=Math.min(t,D.len);i+=M,t-=M,D.forward(M)}else{if(!(0==D.ins&&D.len<t))break;t-=D.len,D.next()}Pe(N,i,M<u.i?u.ins:0),s&&M<u.i&&Re(s,N,u.text),M=u.i,u.forward(u.len-t)}}}function Xe(M,i,t=!1){let e=[],N=t?[]:null,s=new Je(M),u=new Je(i);for(let M=!1;;){if(s.done&&u.done)return N?Ge.createSet(e,N):ve.create(e);if(0==s.ins)Pe(e,s.len,0,M),s.next();else if(0!=u.len||u.done){if(s.done||u.done)throw new Error("Mismatched change set lengths");{let i=Math.min(s.len2,u.len),t=e.length;if(-1==s.ins){let t=-1==u.ins?-1:u.off?0:u.ins;Pe(e,i,t,M),N&&t&&Re(N,e,u.text)}else-1==u.ins?(Pe(e,s.off?0:s.len,i,M),N&&Re(N,e,s.textBit(i))):(Pe(e,s.off?0:s.len,u.off?0:u.ins,M),N&&!u.off&&Re(N,e,u.text));M=(s.ins>i||u.ins>=0&&u.len>i)&&(M||e.length>t),s.forward2(i),u.forward(i)}}else Pe(e,0,u.ins,M),N&&Re(N,e,u.text),u.next()}}class Je{constructor(M){this.set=M,this.i=0,this.next()}next(){let{sections:M}=this.set;this.i<M.length?(this.len=M[this.i++],this.ins=M[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return-2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:M}=this.set,i=this.i-2>>1;return i>=M.length?Oe.empty:M[i]}textBit(M){let{inserted:i}=this.set,t=this.i-2>>1;return t>=i.length&&!M?Oe.empty:i[t].slice(this.off,null==M?void 0:this.off+M)}forward(M){M==this.len?this.next():(this.len-=M,this.off+=M)}forward2(M){-1==this.ins?this.forward(M):M==this.ins?this.next():(this.ins-=M,this.off+=M)}}class He{constructor(M,i,t){this.from=M,this.to=i,this.flags=t}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let M=7&this.flags;return 7==M?null:M}get goalColumn(){let M=this.flags>>6;return 16777215==M?void 0:M}map(M,i=-1){let t,e;return this.empty?t=e=M.mapPos(this.from,i):(t=M.mapPos(this.from,1),e=M.mapPos(this.to,-1)),t==this.from&&e==this.to?this:new He(t,e,this.flags)}extend(M,i=M){if(M<=this.anchor&&i>=this.anchor)return $e.range(M,i);let t=Math.abs(M-this.anchor)>Math.abs(i-this.anchor)?M:i;return $e.range(this.anchor,t)}eq(M,i=!1){return!(this.anchor!=M.anchor||this.head!=M.head||i&&this.empty&&this.assoc!=M.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(M){if(!M||"number"!=typeof M.anchor||"number"!=typeof M.head)throw new RangeError("Invalid JSON representation for SelectionRange");return $e.range(M.anchor,M.head)}static create(M,i,t){return new He(M,i,t)}}class $e{constructor(M,i){this.ranges=M,this.mainIndex=i}map(M,i=-1){return M.empty?this:$e.create(this.ranges.map((t=>t.map(M,i))),this.mainIndex)}eq(M,i=!1){if(this.ranges.length!=M.ranges.length||this.mainIndex!=M.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(M.ranges[t],i))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new $e([this.main],0)}addRange(M,i=!0){return $e.create([M].concat(this.ranges),i?0:this.mainIndex+1)}replaceRange(M,i=this.mainIndex){let t=this.ranges.slice();return t[i]=M,$e.create(t,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((M=>M.toJSON())),main:this.mainIndex}}static fromJSON(M){if(!M||!Array.isArray(M.ranges)||"number"!=typeof M.main||M.main>=M.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new $e(M.ranges.map((M=>He.fromJSON(M))),M.main)}static single(M,i=M){return new $e([$e.range(M,i)],0)}static create(M,i=0){if(0==M.length)throw new RangeError("A selection needs at least one range");for(let t=0,e=0;e<M.length;e++){let N=M[e];if(N.empty?N.from<=t:N.from<t)return $e.normalized(M.slice(),i);t=N.to}return new $e(M,i)}static cursor(M,i=0,t,e){return He.create(M,M,(0==i?0:i<0?8:16)|(null==t?7:Math.min(6,t))|(null!=e?e:16777215)<<6)}static range(M,i,t,e){let N=(null!=t?t:16777215)<<6|(null==e?7:Math.min(6,e));return i<M?He.create(i,M,48|N):He.create(M,i,(i>M?8:0)|N)}static normalized(M,i=0){let t=M[i];M.sort(((M,i)=>M.from-i.from)),i=M.indexOf(t);for(let t=1;t<M.length;t++){let e=M[t],N=M[t-1];if(e.empty?e.from<=N.to:e.from<N.to){let s=N.from,u=Math.max(e.to,N.to);t<=i&&i--,M.splice(--t,2,e.anchor>e.head?$e.range(u,s):$e.range(s,u))}}return new $e(M,i)}}function _e(M,i){for(let t of M.ranges)if(t.to>i)throw new RangeError("Selection points outside of document")}let qe=0;class Ke{constructor(M,i,t,e,N){this.combine=M,this.compareInput=i,this.compare=t,this.isStatic=e,this.id=qe++,this.default=M([]),this.extensions="function"==typeof N?N(this):N}get reader(){return this}static define(M={}){return new Ke(M.combine||(M=>M),M.compareInput||((M,i)=>M===i),M.compare||(M.combine?(M,i)=>M===i:MN),!!M.static,M.enables)}of(M){return new iN([],this,0,M)}compute(M,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new iN(M,this,1,i)}computeN(M,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new iN(M,this,2,i)}from(M,i){return i||(i=M=>M),this.compute([M],(t=>i(t.field(M))))}}function MN(M,i){return M==i||M.length==i.length&&M.every(((M,t)=>M===i[t]))}class iN{constructor(M,i,t,e){this.dependencies=M,this.facet=i,this.type=t,this.value=e,this.id=qe++}dynamicSlot(M){var i;let t=this.value,e=this.facet.compareInput,N=this.id,s=M[N]>>1,u=2==this.type,D=!1,n=!1,j=[];for(let t of this.dependencies)"doc"==t?D=!0:"selection"==t?n=!0:0==(1&(null!==(i=M[t.id])&&void 0!==i?i:1))&&j.push(M[t.id]);return{create:M=>(M.values[s]=t(M),1),update(M,i){if(D&&i.docChanged||n&&(i.docChanged||i.selection)||eN(M,j)){let i=t(M);if(u?!tN(i,M.values[s],e):!e(i,M.values[s]))return M.values[s]=i,1}return 0},reconfigure:(M,i)=>{let D,n=i.config.address[N];if(null!=n){let N=TN(i,n);if(this.dependencies.every((t=>t instanceof Ke?i.facet(t)===M.facet(t):!(t instanceof uN)||i.field(t,!1)==M.field(t,!1)))||(u?tN(D=t(M),N,e):e(D=t(M),N)))return M.values[s]=N,0}else D=t(M);return M.values[s]=D,1}}}}function tN(M,i,t){if(M.length!=i.length)return!1;for(let e=0;e<M.length;e++)if(!t(M[e],i[e]))return!1;return!0}function eN(M,i){let t=!1;for(let e of i)1&ON(M,e)&&(t=!0);return t}function NN(M,i,t){let e=t.map((i=>M[i.id])),N=t.map((M=>M.type)),s=e.filter((M=>!(1&M))),u=M[i.id]>>1;function D(M){let t=[];for(let i=0;i<e.length;i++){let s=TN(M,e[i]);if(2==N[i])for(let M of s)t.push(M);else t.push(s)}return i.combine(t)}return{create(M){for(let i of e)ON(M,i);return M.values[u]=D(M),1},update(M,t){if(!eN(M,s))return 0;let e=D(M);return i.compare(e,M.values[u])?0:(M.values[u]=e,1)},reconfigure(M,N){let s=eN(M,e),n=N.config.facets[i.id],j=N.facet(i);if(n&&!s&&MN(t,n))return M.values[u]=j,0;let I=D(M);return i.compare(I,j)?(M.values[u]=j,0):(M.values[u]=I,1)}}}const sN=Ke.define({static:!0});class uN{constructor(M,i,t,e,N){this.id=M,this.createF=i,this.updateF=t,this.compareF=e,this.spec=N,this.provides=void 0}static define(M){let i=new uN(qe++,M.create,M.update,M.compare||((M,i)=>M===i),M);return M.provide&&(i.provides=M.provide(i)),i}create(M){let i=M.facet(sN).find((M=>M.field==this));return((null==i?void 0:i.create)||this.createF)(M)}slot(M){let i=M[this.id]>>1;return{create:M=>(M.values[i]=this.create(M),1),update:(M,t)=>{let e=M.values[i],N=this.updateF(e,t);return this.compareF(e,N)?0:(M.values[i]=N,1)},reconfigure:(M,t)=>null!=t.config.address[this.id]?(M.values[i]=t.field(this),0):(M.values[i]=this.create(M),1)}}init(M){return[this,sN.of({field:this,create:M})]}get extension(){return this}}const DN=4,nN=3,jN=2,IN=1;function lN(M){return i=>new oN(i,M)}const rN={highest:lN(0),high:lN(IN),default:lN(jN),low:lN(nN),lowest:lN(DN)};class oN{constructor(M,i){this.inner=M,this.prec=i}}class gN{of(M){return new cN(this,M)}reconfigure(M){return gN.reconfigure.of({compartment:this,extension:M})}get(M){return M.config.compartments.get(this)}}class cN{constructor(M,i){this.compartment=M,this.inner=i}}class aN{constructor(M,i,t,e,N,s){for(this.base=M,this.compartments=i,this.dynamicSlots=t,this.address=e,this.staticValues=N,this.facets=s,this.statusTemplate=[];this.statusTemplate.length<t.length;)this.statusTemplate.push(0)}staticFacet(M){let i=this.address[M.id];return null==i?M.default:this.staticValues[i>>1]}static resolve(M,i,t){let e=[],N=Object.create(null),s=new Map;for(let t of function(M,i,t){let e=[[],[],[],[],[]],N=new Map;function s(M,u){let D=N.get(M);if(null!=D){if(D<=u)return;let i=e[D].indexOf(M);i>-1&&e[D].splice(i,1),M instanceof cN&&t.delete(M.compartment)}if(N.set(M,u),Array.isArray(M))for(let i of M)s(i,u);else if(M instanceof cN){if(t.has(M.compartment))throw new RangeError("Duplicate use of compartment in extensions");let e=i.get(M.compartment)||M.inner;t.set(M.compartment,e),s(e,u)}else if(M instanceof oN)s(M.inner,M.prec);else if(M instanceof uN)e[u].push(M),M.provides&&s(M.provides,u);else if(M instanceof iN)e[u].push(M),M.facet.extensions&&s(M.facet.extensions,jN);else{let i=M.extension;if(!i)throw new Error(`Unrecognized extension value in extension set (${M}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(i,u)}}return s(M,jN),e.reduce(((M,i)=>M.concat(i)))}(M,i,s))t instanceof uN?e.push(t):(N[t.facet.id]||(N[t.facet.id]=[])).push(t);let u=Object.create(null),D=[],n=[];for(let M of e)u[M.id]=n.length<<1,n.push((i=>M.slot(i)));let j=null==t?void 0:t.config.facets;for(let M in N){let i=N[M],e=i[0].facet,s=j&&j[M]||[];if(i.every((M=>0==M.type)))if(u[e.id]=D.length<<1|1,MN(s,i))D.push(t.facet(e));else{let M=e.combine(i.map((M=>M.value)));D.push(t&&e.compare(M,t.facet(e))?t.facet(e):M)}else{for(let M of i)0==M.type?(u[M.id]=D.length<<1|1,D.push(M.value)):(u[M.id]=n.length<<1,n.push((i=>M.dynamicSlot(i))));u[e.id]=n.length<<1,n.push((M=>NN(M,e,i)))}}let I=n.map((M=>M(u)));return new aN(M,s,I,u,D,N)}}function ON(M,i){if(1&i)return 2;let t=i>>1,e=M.status[t];if(4==e)throw new Error("Cyclic dependency between fields and/or facets");if(2&e)return e;M.status[t]=4;let N=M.computeSlot(M,M.config.dynamicSlots[t]);return M.status[t]=2|N}function TN(M,i){return 1&i?M.config.staticValues[i>>1]:M.values[i>>1]}const LN=Ke.define(),hN=Ke.define({combine:M=>M.some((M=>M)),static:!0}),zN=Ke.define({combine:M=>M.length?M[0]:void 0,static:!0}),yN=Ke.define(),dN=Ke.define(),AN=Ke.define(),xN=Ke.define({combine:M=>!!M.length&&M[0]});class wN{constructor(M,i){this.type=M,this.value=i}static define(){return new SN}}class SN{of(M){return new wN(this,M)}}class EN{constructor(M){this.map=M}of(M){return new QN(this,M)}}class QN{constructor(M,i){this.type=M,this.value=i}map(M){let i=this.type.map(this.value,M);return void 0===i?void 0:i==this.value?this:new QN(this.type,i)}is(M){return this.type==M}static define(M={}){return new EN(M.map||(M=>M))}static mapEffects(M,i){if(!M.length)return M;let t=[];for(let e of M){let M=e.map(i);M&&t.push(M)}return t}}QN.reconfigure=QN.define(),QN.appendConfig=QN.define();class kN{constructor(M,i,t,e,N,s){this.startState=M,this.changes=i,this.selection=t,this.effects=e,this.annotations=N,this.scrollIntoView=s,this._doc=null,this._state=null,t&&_e(t,i.newLength),N.some((M=>M.type==kN.time))||(this.annotations=N.concat(kN.time.of(Date.now())))}static create(M,i,t,e,N,s){return new kN(M,i,t,e,N,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(M){for(let i of this.annotations)if(i.type==M)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(M){let i=this.annotation(kN.userEvent);return!(!i||!(i==M||i.length>M.length&&i.slice(0,M.length)==M&&"."==i[M.length]))}}function CN(M,i){let t=[];for(let e=0,N=0;;){let s,u;if(e<M.length&&(N==i.length||i[N]>=M[e]))s=M[e++],u=M[e++];else{if(!(N<i.length))return t;s=i[N++],u=i[N++]}!t.length||t[t.length-1]<s?t.push(s,u):t[t.length-1]<u&&(t[t.length-1]=u)}}function pN(M,i,t){var e;let N,s,u;return t?(N=i.changes,s=Ge.empty(i.changes.length),u=M.changes.compose(i.changes)):(N=i.changes.map(M.changes),s=M.changes.mapDesc(i.changes,!0),u=M.changes.compose(N)),{changes:u,selection:i.selection?i.selection.map(s):null===(e=M.selection)||void 0===e?void 0:e.map(N),effects:QN.mapEffects(M.effects,N).concat(QN.mapEffects(i.effects,s)),annotations:M.annotations.length?M.annotations.concat(i.annotations):i.annotations,scrollIntoView:M.scrollIntoView||i.scrollIntoView}}function UN(M,i,t){let e=i.selection,N=mN(i.annotations);return i.userEvent&&(N=N.concat(kN.userEvent.of(i.userEvent))),{changes:i.changes instanceof Ge?i.changes:Ge.of(i.changes||[],t,M.facet(zN)),selection:e&&(e instanceof $e?e:$e.single(e.anchor,e.head)),effects:mN(i.effects),annotations:N,scrollIntoView:!!i.scrollIntoView}}function bN(M,i,t){let e=UN(M,i.length?i[0]:{},M.doc.length);i.length&&!1===i[0].filter&&(t=!1);for(let N=1;N<i.length;N++){!1===i[N].filter&&(t=!1);let s=!!i[N].sequential;e=pN(e,UN(M,i[N],s?e.changes.newLength:M.doc.length),s)}let N=kN.create(M,e.changes,e.selection,e.effects,e.annotations,e.scrollIntoView);return function(M){let i=M.startState,t=i.facet(AN),e=M;for(let N=t.length-1;N>=0;N--){let s=t[N](M);s&&Object.keys(s).length&&(e=pN(e,UN(i,s,M.changes.newLength),!0))}return e==M?M:kN.create(i,M.changes,M.selection,e.effects,e.annotations,e.scrollIntoView)}(t?function(M){let i=M.startState,t=!0;for(let e of i.facet(yN)){let i=e(M);if(!1===i){t=!1;break}Array.isArray(i)&&(t=!0===t?i:CN(t,i))}if(!0!==t){let e,N;if(!1===t)N=M.changes.invertedDesc,e=Ge.empty(i.doc.length);else{let i=M.changes.filter(t);e=i.changes,N=i.filtered.mapDesc(i.changes).invertedDesc}M=kN.create(i,e,M.selection&&M.selection.map(N),QN.mapEffects(M.effects,N),M.annotations,M.scrollIntoView)}let e=i.facet(dN);for(let t=e.length-1;t>=0;t--){let N=e[t](M);M=N instanceof kN?N:Array.isArray(N)&&1==N.length&&N[0]instanceof kN?N[0]:bN(i,mN(N),!1)}return M}(N):N)}kN.time=wN.define(),kN.userEvent=wN.define(),kN.addToHistory=wN.define(),kN.remote=wN.define();const ZN=[];function mN(M){return null==M?ZN:Array.isArray(M)?M:[M]}var YN=function(M){return M[M.Word=0]="Word",M[M.Space=1]="Space",M[M.Other=2]="Other",M}(YN||(YN={}));const fN=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let WN;try{WN=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(b){}function VN(M){return i=>{if(!/\S/.test(i))return YN.Space;if(function(M){if(WN)return WN.test(M);for(let i=0;i<M.length;i++){let t=M[i];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||fN.test(t)))return!0}return!1}(i))return YN.Word;for(let t=0;t<M.length;t++)if(i.indexOf(M[t])>-1)return YN.Word;return YN.Other}}class vN{constructor(M,i,t,e,N,s){this.config=M,this.doc=i,this.selection=t,this.values=e,this.status=M.statusTemplate.slice(),this.computeSlot=N,s&&(s._state=this);for(let M=0;M<this.config.dynamicSlots.length;M++)ON(this,M<<1);this.computeSlot=null}field(M,i=!0){let t=this.config.address[M.id];if(null!=t)return ON(this,t),TN(this,t);if(i)throw new RangeError("Field is not present in this state")}update(...M){return bN(this,M,!0)}applyTransaction(M){let i,t=this.config,{base:e,compartments:N}=t;for(let i of M.effects)i.is(gN.reconfigure)?(t&&(N=new Map,t.compartments.forEach(((M,i)=>N.set(i,M))),t=null),N.set(i.value.compartment,i.value.extension)):i.is(QN.reconfigure)?(t=null,e=i.value):i.is(QN.appendConfig)&&(t=null,e=mN(e).concat(i.value));if(t)i=M.startState.values.slice();else{t=aN.resolve(e,N,this),i=new vN(t,this.doc,this.selection,t.dynamicSlots.map((()=>null)),((M,i)=>i.reconfigure(M,this)),null).values}let s=M.startState.facet(hN)?M.newSelection:M.newSelection.asSingle();new vN(t,M.newDoc,s,i,((i,t)=>t.update(i,M)),M)}replaceSelection(M){return"string"==typeof M&&(M=this.toText(M)),this.changeByRange((i=>({changes:{from:i.from,to:i.to,insert:M},range:$e.cursor(i.from+M.length)})))}changeByRange(M){let i=this.selection,t=M(i.ranges[0]),e=this.changes(t.changes),N=[t.range],s=mN(t.effects);for(let t=1;t<i.ranges.length;t++){let u=M(i.ranges[t]),D=this.changes(u.changes),n=D.map(e);for(let M=0;M<t;M++)N[M]=N[M].map(n);let j=e.mapDesc(D,!0);N.push(u.range.map(j)),e=e.compose(n),s=QN.mapEffects(s,n).concat(QN.mapEffects(mN(u.effects),j))}return{changes:e,selection:$e.create(N,i.mainIndex),effects:s}}changes(M=[]){return M instanceof Ge?M:Ge.of(M,this.doc.length,this.facet(vN.lineSeparator))}toText(M){return Oe.of(M.split(this.facet(vN.lineSeparator)||We))}sliceDoc(M=0,i=this.doc.length){return this.doc.sliceString(M,i,this.lineBreak)}facet(M){let i=this.config.address[M.id];return null==i?M.default:(ON(this,i),TN(this,i))}toJSON(M){let i={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(M)for(let t in M){let e=M[t];e instanceof uN&&null!=this.config.address[e.id]&&(i[t]=e.spec.toJSON(this.field(M[t]),this))}return i}static fromJSON(M,i={},t){if(!M||"string"!=typeof M.doc)throw new RangeError("Invalid JSON representation for EditorState");let e=[];if(t)for(let i in t)if(Object.prototype.hasOwnProperty.call(M,i)){let N=t[i],s=M[i];e.push(N.init((M=>N.spec.fromJSON(s,M))))}return vN.create({doc:M.doc,selection:$e.fromJSON(M.selection),extensions:i.extensions?e.concat([i.extensions]):e})}static create(M={}){let i=aN.resolve(M.extensions||[],new Map),t=M.doc instanceof Oe?M.doc:Oe.of((M.doc||"").split(i.staticFacet(vN.lineSeparator)||We)),e=M.selection?M.selection instanceof $e?M.selection:$e.single(M.selection.anchor,M.selection.head):$e.single(0);return _e(e,t.length),i.staticFacet(hN)||(e=e.asSingle()),new vN(i,t,e,i.dynamicSlots.map((()=>null)),((M,i)=>i.create(M)),null)}get tabSize(){return this.facet(vN.tabSize)}get lineBreak(){return this.facet(vN.lineSeparator)||"\n"}get readOnly(){return this.facet(xN)}phrase(M,...i){for(let i of this.facet(vN.phrases))if(Object.prototype.hasOwnProperty.call(i,M)){M=i[M];break}return i.length&&(M=M.replace(/\$(\$|\d*)/g,((M,t)=>{if("$"==t)return"$";let e=+(t||1);return!e||e>i.length?M:i[e-1]}))),M}languageDataAt(M,i,t=-1){let e=[];for(let N of this.facet(LN))for(let s of N(this,i,t))Object.prototype.hasOwnProperty.call(s,M)&&e.push(s[M]);return e}charCategorizer(M){return VN(this.languageDataAt("wordChars",M).join(""))}wordAt(M){let{text:i,from:t,length:e}=this.doc.lineAt(M),N=this.charCategorizer(M),s=M-t,u=M-t;for(;s>0;){let M=Ce(i,s,!1);if(N(i.slice(M,s))!=YN.Word)break;s=M}for(;u<e;){let M=Ce(i,u);if(N(i.slice(u,M))!=YN.Word)break;u=M}return s==u?null:$e.range(s+t,u+t)}}function GN(M,i,t={}){let e={};for(let i of M)for(let M of Object.keys(i)){let N=i[M],s=e[M];if(void 0===s)e[M]=N;else if(s===N||void 0===N);else{if(!Object.hasOwnProperty.call(t,M))throw new Error("Config merge conflict for field "+M);e[M]=t[M](s,N)}}for(let M in i)void 0===e[M]&&(e[M]=i[M]);return e}vN.allowMultipleSelections=hN,vN.tabSize=Ke.define({combine:M=>M.length?M[0]:4}),vN.lineSeparator=zN,vN.readOnly=xN,vN.phrases=Ke.define({compare(M,i){let t=Object.keys(M),e=Object.keys(i);return t.length==e.length&&t.every((t=>M[t]==i[t]))}}),vN.languageData=LN,vN.changeFilter=yN,vN.transactionFilter=dN,vN.transactionExtender=AN,gN.reconfigure=QN.define();class PN{eq(M){return this==M}range(M,i=M){return RN.create(M,i,this)}}PN.prototype.startSide=PN.prototype.endSide=0,PN.prototype.point=!1,PN.prototype.mapMode=Ve.TrackDel;let RN=class M{constructor(M,i,t){this.from=M,this.to=i,this.value=t}static create(i,t,e){return new M(i,t,e)}};function BN(M,i){return M.from-i.from||M.value.startSide-i.value.startSide}class FN{constructor(M,i,t,e){this.from=M,this.to=i,this.value=t,this.maxPoint=e}get length(){return this.to[this.to.length-1]}findIndex(M,i,t,e=0){let N=t?this.to:this.from;for(let s=e,u=N.length;;){if(s==u)return s;let e=s+u>>1,D=N[e]-M||(t?this.value[e].endSide:this.value[e].startSide)-i;if(e==s)return D>=0?s:u;D>=0?u=e:s=e+1}}between(M,i,t,e){for(let N=this.findIndex(i,-1e9,!0),s=this.findIndex(t,1e9,!1,N);N<s;N++)if(!1===e(this.from[N]+M,this.to[N]+M,this.value[N]))return!1}map(M,i){let t=[],e=[],N=[],s=-1,u=-1;for(let D=0;D<this.value.length;D++){let n,j,I=this.value[D],l=this.from[D]+M,r=this.to[D]+M;if(l==r){let M=i.mapPos(l,I.startSide,I.mapMode);if(null==M)continue;if(n=j=M,I.startSide!=I.endSide&&(j=i.mapPos(l,I.endSide),j<n))continue}else if(n=i.mapPos(l,I.startSide),j=i.mapPos(r,I.endSide),n>j||n==j&&I.startSide>0&&I.endSide<=0)continue;(j-n||I.endSide-I.startSide)<0||(s<0&&(s=n),I.point&&(u=Math.max(u,j-n)),t.push(I),e.push(n-s),N.push(j-s))}return{mapped:t.length?new FN(e,N,t,u):null,pos:s}}}class XN{constructor(M,i,t,e){this.chunkPos=M,this.chunk=i,this.nextLayer=t,this.maxPoint=e}static create(M,i,t,e){return new XN(M,i,t,e)}get length(){let M=this.chunk.length-1;return M<0?0:Math.max(this.chunkEnd(M),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let M=this.nextLayer.size;for(let i of this.chunk)M+=i.value.length;return M}chunkEnd(M){return this.chunkPos[M]+this.chunk[M].length}update(M){let{add:i=[],sort:t=!1,filterFrom:e=0,filterTo:N=this.length}=M,s=M.filter;if(0==i.length&&!s)return this;if(t&&(i=i.slice().sort(BN)),this.isEmpty)return i.length?XN.of(i):this;let u=new $N(this,null,-1).goto(0),D=0,n=[],j=new JN;for(;u.value||D<i.length;)if(D<i.length&&(u.from-i[D].from||u.startSide-i[D].value.startSide)>=0){let M=i[D++];j.addInner(M.from,M.to,M.value)||n.push(M)}else 1==u.rangeIndex&&u.chunkIndex<this.chunk.length&&(D==i.length||this.chunkEnd(u.chunkIndex)<i[D].from)&&(!s||e>this.chunkEnd(u.chunkIndex)||N<this.chunkPos[u.chunkIndex])&&j.addChunk(this.chunkPos[u.chunkIndex],this.chunk[u.chunkIndex])?u.nextChunk():((!s||e>u.to||N<u.from||s(u.from,u.to,u.value))&&(j.addInner(u.from,u.to,u.value)||n.push(RN.create(u.from,u.to,u.value))),u.next());return j.finishInner(this.nextLayer.isEmpty&&!n.length?XN.empty:this.nextLayer.update({add:n,filter:s,filterFrom:e,filterTo:N}))}map(M){if(M.empty||this.isEmpty)return this;let i=[],t=[],e=-1;for(let N=0;N<this.chunk.length;N++){let s=this.chunkPos[N],u=this.chunk[N],D=M.touchesRange(s,s+u.length);if(!1===D)e=Math.max(e,u.maxPoint),i.push(u),t.push(M.mapPos(s));else if(!0===D){let{mapped:N,pos:D}=u.map(s,M);N&&(e=Math.max(e,N.maxPoint),i.push(N),t.push(D))}}let N=this.nextLayer.map(M);return 0==i.length?N:new XN(t,i,N||XN.empty,e)}between(M,i,t){if(!this.isEmpty){for(let e=0;e<this.chunk.length;e++){let N=this.chunkPos[e],s=this.chunk[e];if(i>=N&&M<=N+s.length&&!1===s.between(N,M-N,i-N,t))return}this.nextLayer.between(M,i,t)}}iter(M=0){return _N.from([this]).goto(M)}get isEmpty(){return this.nextLayer==this}static iter(M,i=0){return _N.from(M).goto(i)}static compare(M,i,t,e,N=-1){let s=M.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=N)),u=i.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=N)),D=HN(s,u,t),n=new KN(s,D,N),j=new KN(u,D,N);t.iterGaps(((M,i,t)=>Ms(n,M,j,i,t,e))),t.empty&&0==t.length&&Ms(n,0,j,0,0,e)}static eq(M,i,t=0,e){null==e&&(e=999999999);let N=M.filter((M=>!M.isEmpty&&i.indexOf(M)<0)),s=i.filter((i=>!i.isEmpty&&M.indexOf(i)<0));if(N.length!=s.length)return!1;if(!N.length)return!0;let u=HN(N,s),D=new KN(N,u,0).goto(t),n=new KN(s,u,0).goto(t);for(;;){if(D.to!=n.to||!is(D.active,n.active)||D.point&&(!n.point||!D.point.eq(n.point)))return!1;if(D.to>e)return!0;D.next(),n.next()}}static spans(M,i,t,e,N=-1){let s=new KN(M,null,N).goto(i),u=i,D=s.openStart;for(;;){let M=Math.min(s.to,t);if(s.point){let t=s.activeForPoint(s.to),N=s.pointFrom<i?t.length+1:Math.min(t.length,D);e.point(u,M,s.point,t,N,s.pointRank),D=Math.min(s.openEnd(M),t.length)}else M>u&&(e.span(u,M,s.active,D),D=s.openEnd(M));if(s.to>t)return D+(s.point&&s.to>t?1:0);u=s.to,s.next()}}static of(M,i=!1){let t=new JN;for(let e of M instanceof RN?[M]:i?function(M){if(M.length>1)for(let i=M[0],t=1;t<M.length;t++){let e=M[t];if(BN(i,e)>0)return M.slice().sort(BN);i=e}return M}(M):M)t.add(e.from,e.to,e.value);return t.finish()}static join(M){if(!M.length)return XN.empty;let i=M[M.length-1];for(let t=M.length-2;t>=0;t--)for(let e=M[t];e!=XN.empty;e=e.nextLayer)i=new XN(e.chunkPos,e.chunk,i,Math.max(e.maxPoint,i.maxPoint));return i}}XN.empty=new XN([],[],null,-1),XN.empty.nextLayer=XN.empty;class JN{finishChunk(M){this.chunks.push(new FN(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,M&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(M,i,t){this.addInner(M,i,t)||(this.nextLayer||(this.nextLayer=new JN)).add(M,i,t)}addInner(M,i,t){let e=M-this.lastTo||t.startSide-this.last.endSide;if(e<=0&&(M-this.lastFrom||t.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(e<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=M),this.from.push(M-this.chunkStart),this.to.push(i-this.chunkStart),this.last=t,this.lastFrom=M,this.lastTo=i,this.value.push(t),t.point&&(this.maxPoint=Math.max(this.maxPoint,i-M)),!0)}addChunk(M,i){if((M-this.lastTo||i.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,i.maxPoint),this.chunks.push(i),this.chunkPos.push(M);let t=i.value.length-1;return this.last=i.value[t],this.lastFrom=i.from[t]+M,this.lastTo=i.to[t]+M,!0}finish(){return this.finishInner(XN.empty)}finishInner(M){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return M;let i=XN.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(M):M,this.setMaxPoint);return this.from=null,i}}function HN(M,i,t){let e=new Map;for(let i of M)for(let M=0;M<i.chunk.length;M++)i.chunk[M].maxPoint<=0&&e.set(i.chunk[M],i.chunkPos[M]);let N=new Set;for(let M of i)for(let i=0;i<M.chunk.length;i++){let s=e.get(M.chunk[i]);null==s||(t?t.mapPos(s):s)!=M.chunkPos[i]||(null==t?void 0:t.touchesRange(s,s+M.chunk[i].length))||N.add(M.chunk[i])}return N}class $N{constructor(M,i,t,e=0){this.layer=M,this.skip=i,this.minPoint=t,this.rank=e}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(M,i=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(M,i,!1),this}gotoInner(M,i,t){for(;this.chunkIndex<this.layer.chunk.length;){let i=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(i)||this.layer.chunkEnd(this.chunkIndex)<M||i.maxPoint<this.minPoint))break;this.chunkIndex++,t=!1}if(this.chunkIndex<this.layer.chunk.length){let e=this.layer.chunk[this.chunkIndex].findIndex(M-this.layer.chunkPos[this.chunkIndex],i,!0);(!t||this.rangeIndex<e)&&this.setRangeIndex(e)}this.next()}forward(M,i){(this.to-M||this.endSide-i)<0&&this.gotoInner(M,i,!0)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}{let M=this.layer.chunkPos[this.chunkIndex],i=this.layer.chunk[this.chunkIndex],t=M+i.from[this.rangeIndex];if(this.from=t,this.to=M+i.to[this.rangeIndex],this.value=i.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(M){if(M==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=M}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(M){return this.from-M.from||this.startSide-M.startSide||this.rank-M.rank||this.to-M.to||this.endSide-M.endSide}}class _N{constructor(M){this.heap=M}static from(M,i=null,t=-1){let e=[];for(let N=0;N<M.length;N++)for(let s=M[N];!s.isEmpty;s=s.nextLayer)s.maxPoint>=t&&e.push(new $N(s,i,t,N));return 1==e.length?e[0]:new _N(e)}get startSide(){return this.value?this.value.startSide:0}goto(M,i=-1e9){for(let t of this.heap)t.goto(M,i);for(let M=this.heap.length>>1;M>=0;M--)qN(this.heap,M);return this.next(),this}forward(M,i){for(let t of this.heap)t.forward(M,i);for(let M=this.heap.length>>1;M>=0;M--)qN(this.heap,M);(this.to-M||this.value.endSide-i)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let M=this.heap[0];this.from=M.from,this.to=M.to,this.value=M.value,this.rank=M.rank,M.value&&M.next(),qN(this.heap,0)}}}function qN(M,i){for(let t=M[i];;){let e=1+(i<<1);if(e>=M.length)break;let N=M[e];if(e+1<M.length&&N.compare(M[e+1])>=0&&(N=M[e+1],e++),t.compare(N)<0)break;M[e]=t,M[i]=N,i=e}}class KN{constructor(M,i,t){this.minPoint=t,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=_N.from(M,i,t)}goto(M,i=-1e9){return this.cursor.goto(M,i),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=M,this.endSide=i,this.openStart=-1,this.next(),this}forward(M,i){for(;this.minActive>-1&&(this.activeTo[this.minActive]-M||this.active[this.minActive].endSide-i)<0;)this.removeActive(this.minActive);this.cursor.forward(M,i)}removeActive(M){ts(this.active,M),ts(this.activeTo,M),ts(this.activeRank,M),this.minActive=Ns(this.active,this.activeTo)}addActive(M){let i=0,{value:t,to:e,rank:N}=this.cursor;for(;i<this.activeRank.length&&(N-this.activeRank[i]||e-this.activeTo[i])>0;)i++;es(this.active,i,t),es(this.activeTo,i,e),es(this.activeRank,i,N),M&&es(M,i,this.cursor.from),this.minActive=Ns(this.active,this.activeTo)}next(){let M=this.to,i=this.point;this.point=null;let t=this.openStart<0?[]:null;for(;;){let e=this.minActive;if(e>-1&&(this.activeTo[e]-this.cursor.from||this.active[e].endSide-this.cursor.startSide)<0){if(this.activeTo[e]>M){this.to=this.activeTo[e],this.endSide=this.active[e].endSide;break}this.removeActive(e),t&&ts(t,e)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>M){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let M=this.cursor.value;if(M.point){if(!(i&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)){this.point=M,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=M.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(t),this.cursor.next()}}}if(t){this.openStart=0;for(let i=t.length-1;i>=0&&t[i]<M;i--)this.openStart++}}activeForPoint(M){if(!this.active.length)return this.active;let i=[];for(let t=this.active.length-1;t>=0&&!(this.activeRank[t]<this.pointRank);t--)(this.activeTo[t]>M||this.activeTo[t]==M&&this.active[t].endSide>=this.point.endSide)&&i.push(this.active[t]);return i.reverse()}openEnd(M){let i=0;for(let t=this.activeTo.length-1;t>=0&&this.activeTo[t]>M;t--)i++;return i}}function Ms(M,i,t,e,N,s){M.goto(i),t.goto(e);let u=e+N,D=e,n=e-i;for(;;){let i=M.to+n-t.to||M.endSide-t.endSide,e=i<0?M.to+n:t.to,N=Math.min(e,u);if(M.point||t.point?M.point&&t.point&&(M.point==t.point||M.point.eq(t.point))&&is(M.activeForPoint(M.to),t.activeForPoint(t.to))||s.comparePoint(D,N,M.point,t.point):N>D&&!is(M.active,t.active)&&s.compareRange(D,N,M.active,t.active),e>u)break;D=e,i<=0&&M.next(),i>=0&&t.next()}}function is(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++)if(M[t]!=i[t]&&!M[t].eq(i[t]))return!1;return!0}function ts(M,i){for(let t=i,e=M.length-1;t<e;t++)M[t]=M[t+1];M.pop()}function es(M,i,t){for(let t=M.length-1;t>=i;t--)M[t+1]=M[t];M[i]=t}function Ns(M,i){let t=-1,e=1e9;for(let N=0;N<i.length;N++)(i[N]-e||M[N].endSide-M[t].endSide)<0&&(t=N,e=i[N]);return t}function ss(M,i,t=M.length){let e=0;for(let N=0;N<t;)9==M.charCodeAt(N)?(e+=i-e%i,N++):(e++,N=Ce(M,N));return e}function us(M,i,t,e){for(let e=0,N=0;;){if(N>=i)return e;if(e==M.length)break;N+=9==M.charCodeAt(e)?t-N%t:1,e=Ce(M,e)}return!0===e?-1:M.length}const Ds="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),ns="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),js="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class Is{constructor(M,i){this.rules=[];let{finish:t}=i||{};function e(M){return/^@/.test(M)?[M]:M.split(/,\s*/)}function N(M,i,s,u){let D=[],n=/^@(\w+)\b/.exec(M[0]),j=n&&"keyframes"==n[1];if(n&&null==i)return s.push(M[0]+";");for(let t in i){let u=i[t];if(/&/.test(t))N(t.split(/,\s*/).map((i=>M.map((M=>i.replace(/&/,M))))).reduce(((M,i)=>M.concat(i))),u,s);else if(u&&"object"==typeof u){if(!n)throw new RangeError("The value of a property ("+t+") should be a primitive value.");N(e(t),u,D,j)}else null!=u&&D.push(t.replace(/_.*/,"").replace(/[A-Z]/g,(M=>"-"+M.toLowerCase()))+": "+u+";")}(D.length||j)&&s.push((!t||n||u?M:M.map(t)).join(", ")+" {"+D.join(" ")+"}")}for(let i in M)N(e(i),M[i],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let M=js[Ds]||1;return js[Ds]=M+1,"ͼ"+M.toString(36)}static mount(M,i,t){let e=M[ns],N=t&&t.nonce;e?N&&e.setNonce(N):e=new rs(M,N),e.mount(Array.isArray(i)?i:[i])}}let ls=new Map;class rs{constructor(M,i){let t=M.ownerDocument||M,e=t.defaultView;if(!M.head&&M.adoptedStyleSheets&&e.CSSStyleSheet){let i=ls.get(t);if(i)return M.adoptedStyleSheets=[i.sheet,...M.adoptedStyleSheets],M[ns]=i;this.sheet=new e.CSSStyleSheet,M.adoptedStyleSheets=[this.sheet,...M.adoptedStyleSheets],ls.set(t,this)}else{this.styleTag=t.createElement("style"),i&&this.styleTag.setAttribute("nonce",i);let e=M.head||M;e.insertBefore(this.styleTag,e.firstChild)}this.modules=[],M[ns]=this}mount(M){let i=this.sheet,t=0,e=0;for(let N=0;N<M.length;N++){let s=M[N],u=this.modules.indexOf(s);if(u<e&&u>-1&&(this.modules.splice(u,1),e--,u=-1),-1==u){if(this.modules.splice(e++,0,s),i)for(let M=0;M<s.rules.length;M++)i.insertRule(s.rules[M],t++)}else{for(;e<u;)t+=this.modules[e++].rules.length;t+=s.rules.length,e++}}if(!i){let M="";for(let i=0;i<this.modules.length;i++)M+=this.modules[i].getRules()+"\n";this.styleTag.textContent=M}}setNonce(M){this.styleTag&&this.styleTag.getAttribute("nonce")!=M&&this.styleTag.setAttribute("nonce",M)}}for(var os={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},gs={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},cs="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),as="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Os=0;Os<10;Os++)os[48+Os]=os[96+Os]=String(Os);for(Os=1;Os<=24;Os++)os[Os+111]="F"+Os;for(Os=65;Os<=90;Os++)os[Os]=String.fromCharCode(Os+32),gs[Os]=String.fromCharCode(Os);for(var Ts in os)gs.hasOwnProperty(Ts)||(gs[Ts]=os[Ts]);function Ls(M){let i;return i=11==M.nodeType?M.getSelection?M:M.ownerDocument:M,i.getSelection()}function hs(M,i){return!!i&&(M==i||M.contains(1!=i.nodeType?i.parentNode:i))}function zs(M,i){if(!i.anchorNode)return!1;try{return hs(M,i.anchorNode)}catch(M){return!1}}function ys(M){return 3==M.nodeType?bs(M,0,M.nodeValue.length).getClientRects():1==M.nodeType?M.getClientRects():[]}function ds(M,i,t,e){return!!t&&(xs(M,i,t,e,-1)||xs(M,i,t,e,1))}function As(M){for(var i=0;;i++)if(!(M=M.previousSibling))return i}function xs(M,i,t,e,N){for(;;){if(M==t&&i==e)return!0;if(i==(N<0?0:ws(M))){if("DIV"==M.nodeName)return!1;let t=M.parentNode;if(!t||1!=t.nodeType)return!1;i=As(M)+(N<0?0:1),M=t}else{if(1!=M.nodeType)return!1;if(1==(M=M.childNodes[i+(N<0?-1:0)]).nodeType&&"false"==M.contentEditable)return!1;i=N<0?ws(M):0}}}function ws(M){return 3==M.nodeType?M.nodeValue.length:M.childNodes.length}function Ss(M,i){let t=i?M.left:M.right;return{left:t,right:t,top:M.top,bottom:M.bottom}}function Es(M){return{left:0,right:M.innerWidth,top:0,bottom:M.innerHeight}}function Qs(M,i){let t=i.width/M.offsetWidth,e=i.height/M.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(i.width-M.offsetWidth)<1)&&(t=1),(e>.995&&e<1.005||!isFinite(e)||Math.abs(i.height-M.offsetHeight)<1)&&(e=1),{scaleX:t,scaleY:e}}class ks{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(M){return this.anchorNode==M.anchorNode&&this.anchorOffset==M.anchorOffset&&this.focusNode==M.focusNode&&this.focusOffset==M.focusOffset}setRange(M){let{anchorNode:i,focusNode:t}=M;this.set(i,Math.min(M.anchorOffset,i?ws(i):0),t,Math.min(M.focusOffset,t?ws(t):0))}set(M,i,t,e){this.anchorNode=M,this.anchorOffset=i,this.focusNode=t,this.focusOffset=e}}let Cs,ps=null;function Us(M){if(M.setActive)return M.setActive();if(ps)return M.focus(ps);let i=[];for(let t=M;t&&(i.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(M.focus(null==ps?{get preventScroll(){return ps={preventScroll:!0},!0}}:void 0),!ps){ps=!1;for(let M=0;M<i.length;){let t=i[M++],e=i[M++],N=i[M++];t.scrollTop!=e&&(t.scrollTop=e),t.scrollLeft!=N&&(t.scrollLeft=N)}}}function bs(M,i,t=i){let e=Cs||(Cs=document.createRange());return e.setEnd(M,t),e.setStart(M,i),e}function Zs(M,i,t){let e={key:i,code:i,keyCode:t,which:t,cancelable:!0},N=new KeyboardEvent("keydown",e);N.synthetic=!0,M.dispatchEvent(N);let s=new KeyboardEvent("keyup",e);return s.synthetic=!0,M.dispatchEvent(s),N.defaultPrevented||s.defaultPrevented}function ms(M){for(;M.attributes.length;)M.removeAttributeNode(M.attributes[0])}function Ys(M){return M.scrollTop>Math.max(1,M.scrollHeight-M.clientHeight-4)}class fs{constructor(M,i,t=!0){this.node=M,this.offset=i,this.precise=t}static before(M,i){return new fs(M.parentNode,As(M),i)}static after(M,i){return new fs(M.parentNode,As(M)+1,i)}}const Ws=[];class Vs{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(M){let i=this.posAtStart;for(let t of this.children){if(t==M)return i;i+=t.length+t.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(M){return this.posBefore(M)+M.length}sync(M,i){if(2&this.flags){let t,e=this.dom,N=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(t=N?N.nextSibling:e.firstChild)){let M=Vs.get(t);(!M||!M.parent&&M.canReuseDOM(s))&&s.reuseDOM(t)}s.sync(M,i),s.flags&=-8}if(t=N?N.nextSibling:e.firstChild,i&&!i.written&&i.node==e&&t!=s.dom&&(i.written=!0),s.dom.parentNode==e)for(;t&&t!=s.dom;)t=vs(t);else e.insertBefore(s.dom,t);N=s.dom}for(t=N?N.nextSibling:e.firstChild,t&&i&&i.node==e&&(i.written=!0);t;)t=vs(t)}else if(1&this.flags)for(let t of this.children)7&t.flags&&(t.sync(M,i),t.flags&=-8)}reuseDOM(M){}localPosFromDOM(M,i){let t;if(M==this.dom)t=this.dom.childNodes[i];else{let e=0==ws(M)?0:0==i?-1:1;for(;;){let i=M.parentNode;if(i==this.dom)break;0==e&&i.firstChild!=i.lastChild&&(e=M==i.firstChild?-1:1),M=i}t=e<0?M:M.nextSibling}if(t==this.dom.firstChild)return 0;for(;t&&!Vs.get(t);)t=t.nextSibling;if(!t)return this.length;for(let M=0,i=0;;M++){let e=this.children[M];if(e.dom==t)return i;i+=e.length+e.breakAfter}}domBoundsAround(M,i,t=0){let e=-1,N=-1,s=-1,u=-1;for(let D=0,n=t,j=t;D<this.children.length;D++){let t=this.children[D],I=n+t.length;if(n<M&&I>i)return t.domBoundsAround(M,i,n);if(I>=M&&-1==e&&(e=D,N=n),n>i&&t.dom.parentNode==this.dom){s=D,u=j;break}j=I,n=I+t.breakAfter}return{from:N,to:u<0?t+this.length:u,startDOM:(e?this.children[e-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s<this.children.length&&s>=0?this.children[s].dom:null}}markDirty(M=!1){this.flags|=2,this.markParentsDirty(M)}markParentsDirty(M){for(let i=this.parent;i;i=i.parent){if(M&&(i.flags|=2),1&i.flags)return;i.flags|=1,M=!1}}setParent(M){this.parent!=M&&(this.parent=M,7&this.flags&&this.markParentsDirty(!0))}setDOM(M){this.dom!=M&&(this.dom&&(this.dom.cmView=null),this.dom=M,M.cmView=this)}get rootView(){for(let M=this;;){let i=M.parent;if(!i)return M;M=i}}replaceChildren(M,i,t=Ws){this.markDirty();for(let e=M;e<i;e++){let M=this.children[e];M.parent==this&&t.indexOf(M)<0&&M.destroy()}this.children.splice(M,i-M,...t);for(let M=0;M<t.length;M++)t[M].setParent(this)}ignoreMutation(M){return!1}ignoreEvent(M){return!1}childCursor(M=this.length){return new Gs(this.children,M,this.children.length)}childPos(M,i=1){return this.childCursor().findPos(M,i)}toString(){let M=this.constructor.name.replace("View","");return M+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==M?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(M){return M.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(M,i,t,e,N,s){return!1}become(M){return!1}canReuseDOM(M){return M.constructor==this.constructor&&!(8&(this.flags|M.flags))}getSide(){return 0}destroy(){for(let M of this.children)M.parent==this&&M.destroy();this.parent=null}}function vs(M){let i=M.nextSibling;return M.parentNode.removeChild(M),i}Vs.prototype.breakAfter=0;class Gs{constructor(M,i,t){this.children=M,this.pos=i,this.i=t,this.off=0}findPos(M,i=1){for(;;){if(M>this.pos||M==this.pos&&(i>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=M-this.pos,this;let t=this.children[--this.i];this.pos-=t.length+t.breakAfter}}}function Ps(M,i,t,e,N,s,u,D,n){let{children:j}=M,I=j.length?j[i]:null,l=s.length?s[s.length-1]:null,r=l?l.breakAfter:u;if(!(i==e&&I&&!u&&!r&&s.length<2&&I.merge(t,N,s.length?l:null,0==t,D,n))){if(e<j.length){let M=j[e];M&&(N<M.length||M.breakAfter&&(null==l?void 0:l.breakAfter))?(i==e&&(M=M.split(N),N=0),!r&&l&&M.merge(0,N,l,!0,0,n)?s[s.length-1]=M:((N||M.children.length&&!M.children[0].length)&&M.merge(0,N,null,!1,0,n),s.push(M))):(null==M?void 0:M.breakAfter)&&(l?l.breakAfter=1:u=1),e++}for(I&&(I.breakAfter=u,t>0&&(!u&&s.length&&I.merge(t,I.length,s[0],!1,D,0)?I.breakAfter=s.shift().breakAfter:(t<I.length||I.children.length&&0==I.children[I.children.length-1].length)&&I.merge(t,I.length,null,!1,D,0),i++));i<e&&s.length;)if(j[e-1].become(s[s.length-1]))e--,s.pop(),n=s.length?0:D;else{if(!j[i].become(s[0]))break;i++,s.shift(),D=s.length?0:n}!s.length&&i&&e<j.length&&!j[i-1].breakAfter&&j[e].merge(0,0,j[i-1],!1,D,n)&&i--,(i<e||s.length)&&M.replaceChildren(i,e,s)}}function Rs(M,i,t,e,N,s){let u=M.childCursor(),{i:D,off:n}=u.findPos(t,1),{i:j,off:I}=u.findPos(i,-1),l=i-t;for(let M of e)l+=M.length;M.length+=l,Ps(M,j,I,D,n,e,0,N,s)}let Bs="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},Fs="undefined"!=typeof document?document:{documentElement:{style:{}}};const Xs=/Edge\/(\d+)/.exec(Bs.userAgent),Js=/MSIE \d/.test(Bs.userAgent),Hs=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Bs.userAgent),$s=!!(Js||Hs||Xs),_s=!$s&&/gecko\/(\d+)/i.test(Bs.userAgent),qs=!$s&&/Chrome\/(\d+)/.exec(Bs.userAgent),Ks="webkitFontSmoothing"in Fs.documentElement.style,Mu=!$s&&/Apple Computer/.test(Bs.vendor),iu=Mu&&(/Mobile\/\w+/.test(Bs.userAgent)||Bs.maxTouchPoints>2);var tu={mac:iu||/Mac/.test(Bs.platform),windows:/Win/.test(Bs.platform),linux:/Linux|X11/.test(Bs.platform),ie:$s,ie_version:Js?Fs.documentMode||6:Hs?+Hs[1]:Xs?+Xs[1]:0,gecko:_s,gecko_version:_s?+(/Firefox\/(\d+)/.exec(Bs.userAgent)||[0,0])[1]:0,chrome:!!qs,chrome_version:qs?+qs[1]:0,ios:iu,android:/Android\b/.test(Bs.userAgent),webkit:Ks,safari:Mu,webkit_version:Ks?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=Fs.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class eu extends Vs{constructor(M){super(),this.text=M}get length(){return this.text.length}createDOM(M){this.setDOM(M||document.createTextNode(this.text))}sync(M,i){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(i&&i.node==this.dom&&(i.written=!0),this.dom.nodeValue=this.text)}reuseDOM(M){3==M.nodeType&&this.createDOM(M)}merge(M,i,t){return!(8&this.flags||t&&(!(t instanceof eu)||this.length-(i-M)+t.length>256||8&t.flags))&&(this.text=this.text.slice(0,M)+(t?t.text:"")+this.text.slice(i),this.markDirty(),!0)}split(M){let i=new eu(this.text.slice(M));return this.text=this.text.slice(0,M),this.markDirty(),i.flags|=8&this.flags,i}localPosFromDOM(M,i){return M==this.dom?i:i?this.text.length:0}domAtPos(M){return new fs(this.dom,M)}domBoundsAround(M,i,t){return{from:t,to:t+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(M,i){return function(M,i,t){let e=M.nodeValue.length;i>e&&(i=e);let N=i,s=i,u=0;0==i&&t<0||i==e&&t>=0?tu.chrome||tu.gecko||(i?(N--,u=1):s<e&&(s++,u=-1)):t<0?N--:s<e&&s++;let D=bs(M,N,s).getClientRects();if(!D.length)return null;let n=D[(u?u<0:t>=0)?0:D.length-1];tu.safari&&!u&&0==n.width&&(n=Array.prototype.find.call(D,(M=>M.width))||n);return u?Ss(n,u<0):n||null}(this.dom,M,i)}}class Nu extends Vs{constructor(M,i=[],t=0){super(),this.mark=M,this.children=i,this.length=t;for(let M of i)M.setParent(this)}setAttrs(M){if(ms(M),this.mark.class&&(M.className=this.mark.class),this.mark.attrs)for(let i in this.mark.attrs)M.setAttribute(i,this.mark.attrs[i]);return M}canReuseDOM(M){return super.canReuseDOM(M)&&!(8&(this.flags|M.flags))}reuseDOM(M){M.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(M),this.flags|=6)}sync(M,i){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(M,i)}merge(M,i,t,e,N,s){return(!t||!(!(t instanceof Nu&&t.mark.eq(this.mark))||M&&N<=0||i<this.length&&s<=0))&&(Rs(this,M,i,t?t.children.slice():[],N-1,s-1),this.markDirty(),!0)}split(M){let i=[],t=0,e=-1,N=0;for(let s of this.children){let u=t+s.length;u>M&&i.push(t<M?s.split(M-t):s),e<0&&t>=M&&(e=N),t=u,N++}let s=this.length-M;return this.length=M,e>-1&&(this.children.length=e,this.markDirty()),new Nu(this.mark,i,s)}domAtPos(M){return Du(this,M)}coordsAt(M,i){return ju(this,M,i)}}class su extends Vs{static create(M,i,t){return new su(M,i,t)}constructor(M,i,t){super(),this.widget=M,this.length=i,this.side=t,this.prevWidget=null}split(M){let i=su.create(this.widget,this.length-M,this.side);return this.length-=M,i}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(M,i,t,e,N,s){return!(t&&(!(t instanceof su&&this.widget.compare(t.widget))||M>0&&N<=0||i<this.length&&s<=0))&&(this.length=M+(t?t.length:0)+(this.length-i),!0)}become(M){return M instanceof su&&M.side==this.side&&this.widget.constructor==M.widget.constructor&&(this.widget.compare(M.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get overrideDOMText(){if(0==this.length)return Oe.empty;let M=this;for(;M.parent;)M=M.parent;let{view:i}=M,t=i&&i.state.doc,e=this.posAtStart;return t?t.slice(e,e+this.length):Oe.empty}domAtPos(M){return(this.length?0==M:this.side>0)?fs.before(this.dom):fs.after(this.dom,M==this.length)}domBoundsAround(){return null}coordsAt(M,i){let t=this.widget.coordsAt(this.dom,M,i);if(t)return t;let e=this.dom.getClientRects(),N=null;if(!e.length)return null;let s=this.side?this.side<0:M>0;for(let i=s?e.length-1:0;N=e[i],!(M>0?0==i:i==e.length-1||N.top<N.bottom);i+=s?-1:1);return Ss(N,!s)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class uu extends Vs{constructor(M){super(),this.side=M}get length(){return 0}merge(){return!1}become(M){return M instanceof uu&&M.side==this.side}split(){return new uu(this.side)}sync(){if(!this.dom){let M=document.createElement("img");M.className="cm-widgetBuffer",M.setAttribute("aria-hidden","true"),this.setDOM(M)}}getSide(){return this.side}domAtPos(M){return this.side>0?fs.before(this.dom):fs.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(M){return this.dom.getBoundingClientRect()}get overrideDOMText(){return Oe.empty}get isHidden(){return!0}}function Du(M,i){let t=M.dom,{children:e}=M,N=0;for(let M=0;N<e.length;N++){let s=e[N],u=M+s.length;if(!(u==M&&s.getSide()<=0)){if(i>M&&i<u&&s.dom.parentNode==t)return s.domAtPos(i-M);if(i<=M)break;M=u}}for(let M=N;M>0;M--){let i=e[M-1];if(i.dom.parentNode==t)return i.domAtPos(i.length)}for(let M=N;M<e.length;M++){let i=e[M];if(i.dom.parentNode==t)return i.domAtPos(0)}return new fs(t,0)}function nu(M,i,t){let e,{children:N}=M;t>0&&i instanceof Nu&&N.length&&(e=N[N.length-1])instanceof Nu&&e.mark.eq(i.mark)?nu(e,i.children[0],t-1):(N.push(i),i.setParent(M)),M.length+=i.length}function ju(M,i,t){let e=null,N=-1,s=null,u=-1;!function M(i,D){for(let n=0,j=0;n<i.children.length&&j<=D;n++){let I=i.children[n],l=j+I.length;l>=D&&(I.children.length?M(I,D-j):(!s||s.isHidden&&t>0)&&(l>D||j==l&&I.getSide()>0)?(s=I,u=D-j):(j<D||j==l&&I.getSide()<0&&!I.isHidden)&&(e=I,N=D-j)),j=l}}(M,i);let D=(t<0?e:s)||e||s;return D?D.coordsAt(Math.max(0,D==e?N:u),t):function(M){let i=M.dom.lastChild;if(!i)return M.dom.getBoundingClientRect();let t=ys(i);return t[t.length-1]||null}(M)}function Iu(M,i){for(let t in M)"class"==t&&i.class?i.class+=" "+M.class:"style"==t&&i.style?i.style+=";"+M.style:i[t]=M[t];return i}eu.prototype.children=su.prototype.children=uu.prototype.children=Ws;const lu=Object.create(null);function ru(M,i,t){if(M==i)return!0;M||(M=lu),i||(i=lu);let e=Object.keys(M),N=Object.keys(i);if(e.length-(t&&e.indexOf(t)>-1?1:0)!=N.length-(t&&N.indexOf(t)>-1?1:0))return!1;for(let s of e)if(s!=t&&(-1==N.indexOf(s)||M[s]!==i[s]))return!1;return!0}function ou(M,i,t){let e=!1;if(i)for(let N in i)t&&N in t||(e=!0,"style"==N?M.style.cssText="":M.removeAttribute(N));if(t)for(let N in t)i&&i[N]==t[N]||(e=!0,"style"==N?M.style.cssText=t[N]:M.setAttribute(N,t[N]));return e}function gu(M){let i=Object.create(null);for(let t=0;t<M.attributes.length;t++){let e=M.attributes[t];i[e.name]=e.value}return i}class cu extends Vs{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(M,i,t,e,N,s){if(t){if(!(t instanceof cu))return!1;this.dom||t.transferDOM(this)}return e&&this.setDeco(t?t.attrs:null),Rs(this,M,i,t?t.children.slice():[],N,s),!0}split(M){let i=new cu;if(i.breakAfter=this.breakAfter,0==this.length)return i;let{i:t,off:e}=this.childPos(M);e&&(i.append(this.children[t].split(e),0),this.children[t].merge(e,this.children[t].length,null,!1,0,0),t++);for(let M=t;M<this.children.length;M++)i.append(this.children[M],0);for(;t>0&&0==this.children[t-1].length;)this.children[--t].destroy();return this.children.length=t,this.markDirty(),this.length=M,i}transferDOM(M){this.dom&&(this.markDirty(),M.setDOM(this.dom),M.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(M){ru(this.attrs,M)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=M)}append(M,i){nu(this,M,i)}addLineDeco(M){let i=M.spec.attributes,t=M.spec.class;i&&(this.attrs=Iu(i,this.attrs||{})),t&&(this.attrs=Iu({class:t},this.attrs||{}))}domAtPos(M){return Du(this,M)}reuseDOM(M){"DIV"==M.nodeName&&(this.setDOM(M),this.flags|=6)}sync(M,i){var t;this.dom?4&this.flags&&(ms(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(ou(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(M,i);let e=this.dom.lastChild;for(;e&&Vs.get(e)instanceof Nu;)e=e.lastChild;if(!(e&&this.length&&("BR"==e.nodeName||0!=(null===(t=Vs.get(e))||void 0===t?void 0:t.isEditable)||tu.ios&&this.children.some((M=>M instanceof eu))))){let M=document.createElement("BR");M.cmIgnore=!0,this.dom.appendChild(M)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let M,i=0;for(let t of this.children){if(!(t instanceof eu)||/[^ -~]/.test(t.text))return null;let e=ys(t.dom);if(1!=e.length)return null;i+=e[0].width,M=e[0].height}return i?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:i/this.length,textHeight:M}:null}coordsAt(M,i){let t=ju(this,M,i);if(!this.children.length&&t&&this.parent){let{heightOracle:M}=this.parent.view.viewState,i=t.bottom-t.top;if(Math.abs(i-M.lineHeight)<2&&M.textHeight<i){let e=(i-M.textHeight)/2;return{top:t.top+e,bottom:t.bottom-e,left:t.left,right:t.left}}}return t}become(M){return!1}covers(){return!0}static find(M,i){for(let t=0,e=0;t<M.children.length;t++){let N=M.children[t],s=e+N.length;if(s>=i){if(N instanceof cu)return N;if(s>i)break}e=s+N.breakAfter}return null}}class au extends Vs{constructor(M,i,t){super(),this.widget=M,this.length=i,this.deco=t,this.breakAfter=0,this.prevWidget=null}merge(M,i,t,e,N,s){return!(t&&(!(t instanceof au&&this.widget.compare(t.widget))||M>0&&N<=0||i<this.length&&s<=0))&&(this.length=M+(t?t.length:0)+(this.length-i),!0)}domAtPos(M){return 0==M?fs.before(this.dom):fs.after(this.dom,M==this.length)}split(M){let i=this.length-M;this.length=M;let t=new au(this.widget,i,this.deco);return t.breakAfter=this.breakAfter,t}get children(){return Ws}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Oe.empty}domBoundsAround(){return null}become(M){return M instanceof au&&M.widget.constructor==this.widget.constructor&&(M.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,this.deco=M.deco,this.breakAfter=M.breakAfter,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(M,i){return this.widget.coordsAt(this.dom,M,i)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(M){let{startSide:i,endSide:t}=this.deco;return i!=t&&(M<0?i<0:t>0)}}class Ou{eq(M){return!1}updateDOM(M,i){return!1}compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(M){return!0}coordsAt(M,i,t){return null}get isHidden(){return!1}get editable(){return!1}destroy(M){}}var Tu=function(M){return M[M.Text=0]="Text",M[M.WidgetBefore=1]="WidgetBefore",M[M.WidgetAfter=2]="WidgetAfter",M[M.WidgetRange=3]="WidgetRange",M}(Tu||(Tu={}));class Lu extends PN{constructor(M,i,t,e){super(),this.startSide=M,this.endSide=i,this.widget=t,this.spec=e}get heightRelevant(){return!1}static mark(M){return new hu(M)}static widget(M){let i=Math.max(-1e4,Math.min(1e4,M.side||0)),t=!!M.block;return i+=t&&!M.inlineOrder?i>0?3e8:-4e8:i>0?1e8:-1e8,new yu(M,i,i,t,M.widget||null,!1)}static replace(M){let i,t,e=!!M.block;if(M.isBlockGap)i=-5e8,t=4e8;else{let{start:N,end:s}=du(M,e);i=(N?e?-3e8:-1:5e8)-1,t=1+(s?e?2e8:1:-6e8)}return new yu(M,i,t,e,M.widget||null,!0)}static line(M){return new zu(M)}static set(M,i=!1){return XN.of(M,i)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Lu.none=XN.empty;class hu extends Lu{constructor(M){let{start:i,end:t}=du(M);super(i?-1:5e8,t?1:-6e8,null,M),this.tagName=M.tagName||"span",this.class=M.class||"",this.attrs=M.attributes||null}eq(M){var i,t;return this==M||M instanceof hu&&this.tagName==M.tagName&&(this.class||(null===(i=this.attrs)||void 0===i?void 0:i.class))==(M.class||(null===(t=M.attrs)||void 0===t?void 0:t.class))&&ru(this.attrs,M.attrs,"class")}range(M,i=M){if(M>=i)throw new RangeError("Mark decorations may not be empty");return super.range(M,i)}}hu.prototype.point=!1;class zu extends Lu{constructor(M){super(-2e8,-2e8,null,M)}eq(M){return M instanceof zu&&this.spec.class==M.spec.class&&ru(this.spec.attributes,M.spec.attributes)}range(M,i=M){if(i!=M)throw new RangeError("Line decoration ranges must be zero-length");return super.range(M,i)}}zu.prototype.mapMode=Ve.TrackBefore,zu.prototype.point=!0;class yu extends Lu{constructor(M,i,t,e,N,s){super(i,t,N,M),this.block=e,this.isReplace=s,this.mapMode=e?i<=0?Ve.TrackBefore:Ve.TrackAfter:Ve.TrackDel}get type(){return this.startSide!=this.endSide?Tu.WidgetRange:this.startSide<=0?Tu.WidgetBefore:Tu.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(M){return M instanceof yu&&function(M,i){return M==i||!!(M&&i&&M.compare(i))}(this.widget,M.widget)&&this.block==M.block&&this.startSide==M.startSide&&this.endSide==M.endSide}range(M,i=M){if(this.isReplace&&(M>i||M==i&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&i!=M)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(M,i)}}function du(M,i=!1){let{inclusiveStart:t,inclusiveEnd:e}=M;return null==t&&(t=M.inclusive),null==e&&(e=M.inclusive),{start:null!=t?t:i,end:null!=e?e:i}}function Au(M,i,t,e=0){let N=t.length-1;N>=0&&t[N]+e>=M?t[N]=Math.max(t[N],i):t.push(M,i)}yu.prototype.point=!0;class xu{constructor(M,i,t,e){this.doc=M,this.pos=i,this.end=t,this.disallowBlockEffectsFor=e,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=M.iter(),this.skip=i}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let M=this.content[this.content.length-1];return!(M.breakAfter||M instanceof au&&M.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new cu),this.atCursorPos=!0),this.curLine}flushBuffer(M=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(wu(new uu(-1),M),M.length),this.pendingBuffer=0)}addBlockWidget(M){this.flushBuffer(),this.curLine=null,this.content.push(M)}finish(M){this.pendingBuffer&&M<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||M&&this.content.length&&this.content[this.content.length-1]instanceof au||this.getLine()}buildText(M,i,t){for(;M>0;){if(this.textOff==this.text.length){let{value:i,lineBreak:t,done:e}=this.cursor.next(this.skip);if(this.skip=0,e)throw new Error("Ran out of text content when drawing inline views");if(t){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,M--;continue}this.text=i,this.textOff=0}let e=Math.min(this.text.length-this.textOff,M,512);this.flushBuffer(i.slice(i.length-t)),this.getLine().append(wu(new eu(this.text.slice(this.textOff,this.textOff+e)),i),t),this.atCursorPos=!0,this.textOff+=e,M-=e,t=0}}span(M,i,t,e){this.buildText(i-M,t,e),this.pos=i,this.openStart<0&&(this.openStart=e)}point(M,i,t,e,N,s){if(this.disallowBlockEffectsFor[s]&&t instanceof yu){if(t.block)throw new RangeError("Block decorations may not be specified via plugins");if(i>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let u=i-M;if(t instanceof yu)if(t.block)t.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new au(t.widget||new Su("div"),u,t));else{let s=su.create(t.widget||new Su("span"),u,u?0:t.startSide),D=this.atCursorPos&&!s.isEditable&&N<=e.length&&(M<i||t.startSide>0),n=!s.isEditable&&(M<i||N>e.length||t.startSide<=0),j=this.getLine();2!=this.pendingBuffer||D||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(e),D&&(j.append(wu(new uu(1),e),N),N=e.length+Math.max(0,N-e.length)),j.append(wu(s,e),N),this.atCursorPos=n,this.pendingBuffer=n?M<i||N>e.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=e.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(t);u&&(this.textOff+u<=this.text.length?this.textOff+=u:(this.skip+=u-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=i),this.openStart<0&&(this.openStart=N)}static build(M,i,t,e,N){let s=new xu(M,i,t,N);return s.openEnd=XN.spans(e,i,t,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function wu(M,i){for(let t of i)M=new Nu(t,[M],M.length);return M}class Su extends Ou{constructor(M){super(),this.tag=M}eq(M){return M.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(M){return M.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}var Eu=function(M){return M[M.LTR=0]="LTR",M[M.RTL=1]="RTL",M}(Eu||(Eu={}));const Qu=Eu.LTR,ku=Eu.RTL;function Cu(M){let i=[];for(let t=0;t<M.length;t++)i.push(1<<+M[t]);return i}const pu=Cu("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Uu=Cu("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),bu=Object.create(null),Zu=[];for(let M of["()","[]","{}"]){let i=M.charCodeAt(0),t=M.charCodeAt(1);bu[i]=t,bu[t]=-i}function mu(M){return M<=247?pu[M]:1424<=M&&M<=1524?2:1536<=M&&M<=1785?Uu[M-1536]:1774<=M&&M<=2220?4:8192<=M&&M<=8204?256:64336<=M&&M<=65023?4:1}const Yu=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class fu{get dir(){return this.level%2?ku:Qu}constructor(M,i,t){this.from=M,this.to=i,this.level=t}side(M,i){return this.dir==i==M?this.to:this.from}forward(M,i){return M==(this.dir==i)}static find(M,i,t,e){let N=-1;for(let s=0;s<M.length;s++){let u=M[s];if(u.from<=i&&u.to>=i){if(u.level==t)return s;(N<0||(0!=e?e<0?u.from<i:u.to>i:M[N].level>u.level))&&(N=s)}}if(N<0)throw new RangeError("Index out of range");return N}}function Wu(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++){let e=M[t],N=i[t];if(e.from!=N.from||e.to!=N.to||e.direction!=N.direction||!Wu(e.inner,N.inner))return!1}return!0}const Vu=[];function vu(M,i,t,e,N,s,u){let D=e%2?2:1;if(e%2==N%2)for(let n=i,j=0;n<t;){let i=!0,I=!1;if(j==s.length||n<s[j].from){let M=Vu[n];M!=D&&(i=!1,I=16==M)}let l=i||1!=D?null:[],r=i?e:e+1,o=n;M:for(;;)if(j<s.length&&o==s[j].from){if(I)break M;let g=s[j];if(!i)for(let M=g.to,i=j+1;;){if(M==t)break M;if(!(i<s.length&&s[i].from==M)){if(Vu[M]==D)break M;break}M=s[i++].to}if(j++,l)l.push(g);else{g.from>n&&u.push(new fu(n,g.from,r)),Gu(M,g.direction==Qu!=!(r%2)?e+1:e,N,g.inner,g.from,g.to,u),n=g.to}o=g.to}else{if(o==t||(i?Vu[o]!=D:Vu[o]==D))break;o++}l?vu(M,n,o,e+1,N,l,u):n<o&&u.push(new fu(n,o,r)),n=o}else for(let n=t,j=s.length;n>i;){let t=!0,I=!1;if(!j||n>s[j-1].to){let M=Vu[n-1];M!=D&&(t=!1,I=16==M)}let l=t||1!=D?null:[],r=t?e:e+1,o=n;M:for(;;)if(j&&o==s[j-1].to){if(I)break M;let g=s[--j];if(!t)for(let M=g.from,t=j;;){if(M==i)break M;if(!t||s[t-1].to!=M){if(Vu[M-1]==D)break M;break}M=s[--t].from}if(l)l.push(g);else{g.to<n&&u.push(new fu(g.to,n,r)),Gu(M,g.direction==Qu!=!(r%2)?e+1:e,N,g.inner,g.from,g.to,u),n=g.from}o=g.from}else{if(o==i||(t?Vu[o-1]!=D:Vu[o-1]==D))break;o--}l?vu(M,o,n,e+1,N,l,u):o<n&&u.push(new fu(o,n,r)),n=o}}function Gu(M,i,t,e,N,s,u){let D=i%2?2:1;!function(M,i,t,e,N){for(let s=0;s<=e.length;s++){let u=s?e[s-1].to:i,D=s<e.length?e[s].from:t,n=s?256:N;for(let i=u,t=n,e=n;i<D;i++){let N=mu(M.charCodeAt(i));512==N?N=t:8==N&&4==e&&(N=16),Vu[i]=4==N?2:N,7&N&&(e=N),t=N}for(let M=u,i=n,e=n;M<D;M++){let N=Vu[M];if(128==N)M<D-1&&i==Vu[M+1]&&24&i?N=Vu[M]=i:Vu[M]=256;else if(64==N){let N=M+1;for(;N<D&&64==Vu[N];)N++;let s=M&&8==i||N<t&&8==Vu[N]?1==e?1:8:256;for(let i=M;i<N;i++)Vu[i]=s;M=N-1}else 8==N&&1==e&&(Vu[M]=1);i=N,7&N&&(e=N)}}}(M,N,s,e,D),function(M,i,t,e,N){let s=1==N?2:1;for(let u=0,D=0,n=0;u<=e.length;u++){let j=u?e[u-1].to:i,I=u<e.length?e[u].from:t;for(let i,t,e,u=j;u<I;u++)if(t=bu[i=M.charCodeAt(u)])if(t<0){for(let M=D-3;M>=0;M-=3)if(Zu[M+1]==-t){let i=Zu[M+2],t=2&i?N:4&i?1&i?s:N:0;t&&(Vu[u]=Vu[Zu[M]]=t),D=M;break}}else{if(189==Zu.length)break;Zu[D++]=u,Zu[D++]=i,Zu[D++]=n}else if(2==(e=Vu[u])||1==e){let M=e==N;n=M?0:1;for(let i=D-3;i>=0;i-=3){let t=Zu[i+2];if(2&t)break;if(M)Zu[i+2]|=2;else{if(4&t)break;Zu[i+2]|=4}}}}}(M,N,s,e,D),function(M,i,t,e){for(let N=0,s=e;N<=t.length;N++){let u=N?t[N-1].to:M,D=N<t.length?t[N].from:i;for(let n=u;n<D;){let u=Vu[n];if(256==u){let u=n+1;for(;;)if(u==D){if(N==t.length)break;u=t[N++].to,D=N<t.length?t[N].from:i}else{if(256!=Vu[u])break;u++}let j=1==s,I=j==(1==(u<i?Vu[u]:e))?j?1:2:e;for(let i=u,e=N,s=e?t[e-1].to:M;i>n;)i==s&&(i=t[--e].from,s=e?t[e-1].to:M),Vu[--i]=I;n=u}else s=u,n++}}}(N,s,e,D),vu(M,N,s,i,t,e,u)}function Pu(M){return[new fu(0,M,0)]}let Ru="";function Bu(M,i,t,e,N){var s;let u=e.head-M.from,D=fu.find(i,u,null!==(s=e.bidiLevel)&&void 0!==s?s:-1,e.assoc),n=i[D],j=n.side(N,t);if(u==j){let M=D+=N?1:-1;if(M<0||M>=i.length)return null;n=i[D=M],u=n.side(!N,t),j=n.side(N,t)}let I=Ce(M.text,u,n.forward(N,t));(I<n.from||I>n.to)&&(I=j),Ru=M.text.slice(Math.min(u,I),Math.max(u,I));let l=D==(N?i.length-1:0)?null:i[D+(N?1:-1)];return l&&I==j&&l.level+(N?0:1)<n.level?$e.cursor(l.side(!N,t)+M.from,l.forward(N,t)?1:-1,l.level):$e.cursor(I+M.from,n.forward(N,t)?-1:1,n.level)}function Fu(M,i,t){for(let e=i;e<t;e++){let i=mu(M.charCodeAt(e));if(1==i)return Qu;if(2==i||4==i)return ku}return Qu}const Xu=Ke.define(),Ju=Ke.define(),Hu=Ke.define(),$u=Ke.define(),_u=Ke.define(),qu=Ke.define(),Ku=Ke.define(),MD=Ke.define({combine:M=>M.some((M=>M))}),iD=Ke.define({combine:M=>M.some((M=>M))});class tD{constructor(M,i="nearest",t="nearest",e=5,N=5,s=!1){this.range=M,this.y=i,this.x=t,this.yMargin=e,this.xMargin=N,this.isSnapshot=s}map(M){return M.empty?this:new tD(this.range.map(M),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(M){return this.range.to<=M.doc.length?this:new tD($e.cursor(M.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const eD=QN.define({map:(M,i)=>M.map(i)});function ND(M,i,t){let e=M.facet($u);e.length?e[0](i):window.onerror?window.onerror(String(i),t,void 0,void 0,i):t?console.error(t+":",i):console.error(i)}const sD=Ke.define({combine:M=>!M.length||M[0]});let uD=0;const DD=Ke.define();class nD{constructor(M,i,t,e,N){this.id=M,this.create=i,this.domEventHandlers=t,this.domEventObservers=e,this.extension=N(this)}static define(M,i){const{eventHandlers:t,eventObservers:e,provide:N,decorations:s}=i||{};return new nD(uD++,M,t,e,(M=>{let i=[DD.of(M)];return s&&i.push(rD.of((i=>{let t=i.plugin(M);return t?s(t):Lu.none}))),N&&i.push(N(M)),i}))}static fromClass(M,i){return nD.define((i=>new M(i)),i)}}class jD{constructor(M){this.spec=M,this.mustUpdate=null,this.value=null}update(M){if(this.value){if(this.mustUpdate){let M=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(M)}catch(i){if(ND(M.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(M){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(M)}catch(i){ND(M.state,i,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(M){var i;if(null===(i=this.value)||void 0===i?void 0:i.destroy)try{this.value.destroy()}catch(i){ND(M.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const ID=Ke.define(),lD=Ke.define(),rD=Ke.define(),oD=Ke.define(),gD=Ke.define(),cD=Ke.define();function aD(M,i){let t=M.state.facet(cD);if(!t.length)return t;let e=t.map((i=>i instanceof Function?i(M):i)),N=[];return XN.spans(e,i.from,i.to,{point(){},span(M,t,e,s){let u=M-i.from,D=t-i.from,n=N;for(let M=e.length-1;M>=0;M--,s--){let t,N=e[M].spec.bidiIsolate;if(null==N&&(N=Fu(i.text,u,D)),s>0&&n.length&&(t=n[n.length-1]).to==u&&t.direction==N)t.to=D,n=t.inner;else{let M={from:u,to:D,direction:N,inner:[]};n.push(M),n=M.inner}}}}),N}const OD=Ke.define();function TD(M){let i=0,t=0,e=0,N=0;for(let s of M.state.facet(OD)){let u=s(M);u&&(null!=u.left&&(i=Math.max(i,u.left)),null!=u.right&&(t=Math.max(t,u.right)),null!=u.top&&(e=Math.max(e,u.top)),null!=u.bottom&&(N=Math.max(N,u.bottom)))}return{left:i,right:t,top:e,bottom:N}}const LD=Ke.define();class hD{constructor(M,i,t,e){this.fromA=M,this.toA=i,this.fromB=t,this.toB=e}join(M){return new hD(Math.min(this.fromA,M.fromA),Math.max(this.toA,M.toA),Math.min(this.fromB,M.fromB),Math.max(this.toB,M.toB))}addToSet(M){let i=M.length,t=this;for(;i>0;i--){let e=M[i-1];if(!(e.fromA>t.toA)){if(e.toA<t.fromA)break;t=t.join(e),M.splice(i-1,1)}}return M.splice(i,0,t),M}static extendWithRanges(M,i){if(0==i.length)return M;let t=[];for(let e=0,N=0,s=0,u=0;;e++){let D=e==M.length?null:M[e],n=s-u,j=D?D.fromB:1e9;for(;N<i.length&&i[N]<j;){let M=i[N],e=i[N+1],s=Math.max(u,M),D=Math.min(j,e);if(s<=D&&new hD(s+n,D+n,s,D).addToSet(t),e>j)break;N+=2}if(!D)return t;new hD(D.fromA,D.toA,D.fromB,D.toB).addToSet(t),s=D.toA,u=D.toB}}}class zD{constructor(M,i,t){this.view=M,this.state=i,this.transactions=t,this.flags=0,this.startState=M.state,this.changes=Ge.empty(this.startState.doc.length);for(let M of t)this.changes=this.changes.compose(M.changes);let e=[];this.changes.iterChangedRanges(((M,i,t,N)=>e.push(new hD(M,i,t,N)))),this.changedRanges=e}static create(M,i,t){return new zD(M,i,t)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((M=>M.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class yD extends Vs{get length(){return this.view.state.doc.length}constructor(M){super(),this.view=M,this.decorations=[],this.dynamicDecorationMap=[],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(M.contentDOM),this.children=[new cu],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new hD(0,0,0,M.state.doc.length)],0,null)}update(M){var i;let t=M.changedRanges;this.minWidth>0&&t.length&&(t.every((({fromA:M,toA:i})=>i<this.minWidthFrom||M>this.minWidthTo))?(this.minWidthFrom=M.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=M.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let e=-1;this.view.inputState.composing>=0&&((null===(i=this.domChanged)||void 0===i?void 0:i.newSel)?e=this.domChanged.newSel.head:function(M,i){let t=!1;i&&M.iterChangedRanges(((M,e)=>{M<i.to&&e>i.from&&(t=!0)}));return t}(M.changes,this.hasComposition)||M.selectionSet||(e=M.state.selection.main.head));let N=e>-1?function(M,i,t){let e=AD(M,t);if(!e)return null;let{node:N,from:s,to:u}=e,D=N.nodeValue;if(/[\n\r]/.test(D))return null;if(M.state.doc.sliceString(e.from,e.to)!=D)return null;let n=i.invertedDesc,j=new hD(n.mapPos(s),n.mapPos(u),s,u),I=[];for(let i=N.parentNode;;i=i.parentNode){let t=Vs.get(i);if(t instanceof Nu)I.push({node:i,deco:t.mark});else{if(t instanceof cu||"DIV"==i.nodeName&&i.parentNode==M.contentDOM)return{range:j,text:N,marks:I,line:i};if(i==M.contentDOM)return null;I.push({node:i,deco:new hu({inclusive:!0,attributes:gu(i),tagName:i.tagName.toLowerCase()})})}}}(this.view,M.changes,e):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:i,to:e}=this.hasComposition;t=new hD(i,e,M.changes.mapPos(i,-1),M.changes.mapPos(e,1)).addToSet(t.slice())}this.hasComposition=N?{from:N.range.fromB,to:N.range.toB}:null,(tu.ie||tu.chrome)&&!N&&M&&M.state.doc.lines!=M.startState.doc.lines&&(this.forceSelection=!0);let s=function(M,i,t){let e=new wD;return XN.compare(M,i,t,e),e.changes}(this.decorations,this.updateDeco(),M.changes);return t=hD.extendWithRanges(t,s),!!(7&this.flags||0!=t.length)&&(this.updateInner(t,M.startState.doc.length,N),M.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(M,i,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(M,i,t);let{observer:e}=this.view;e.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let M=tu.chrome||tu.ios?{node:e.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,M),this.flags&=-8,M&&(M.written||e.selectionRange.focusNode!=M.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((M=>M.flags&=-9));let N=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let M of this.children)M instanceof au&&M.widget instanceof dD&&N.push(M.dom);e.updateGaps(N)}updateChildren(M,i,t){let e=t?t.range.addToSet(M.slice()):M,N=this.childCursor(i);for(let M=e.length-1;;M--){let i=M>=0?e[M]:null;if(!i)break;let s,u,D,n,{fromA:j,toA:I,fromB:l,toB:r}=i;if(t&&t.range.fromB<r&&t.range.toB>l){let M=xu.build(this.view.state.doc,l,t.range.fromB,this.decorations,this.dynamicDecorationMap),i=xu.build(this.view.state.doc,t.range.toB,r,this.decorations,this.dynamicDecorationMap);u=M.breakAtStart,D=M.openStart,n=i.openEnd;let e=this.compositionView(t);i.breakAtStart?e.breakAfter=1:i.content.length&&e.merge(e.length,e.length,i.content[0],!1,i.openStart,0)&&(e.breakAfter=i.content[0].breakAfter,i.content.shift()),M.content.length&&e.merge(0,0,M.content[M.content.length-1],!0,0,M.openEnd)&&M.content.pop(),s=M.content.concat(e).concat(i.content)}else({content:s,breakAtStart:u,openStart:D,openEnd:n}=xu.build(this.view.state.doc,l,r,this.decorations,this.dynamicDecorationMap));let{i:o,off:g}=N.findPos(I,1),{i:c,off:a}=N.findPos(j,-1);Ps(this,c,a,o,g,s,u,D,n)}t&&this.fixCompositionDOM(t)}compositionView(M){let i=new eu(M.text.nodeValue);i.flags|=8;for(let{deco:t}of M.marks)i=new Nu(t,[i],i.length);let t=new cu;return t.append(i,0),t}fixCompositionDOM(M){let i=(M,i)=>{i.flags|=8|(i.children.some((M=>7&M.flags))?1:0),this.markedForComposition.add(i);let t=Vs.get(M);t&&t!=i&&(t.dom=null),i.setDOM(M)},t=this.childPos(M.range.fromB,1),e=this.children[t.i];i(M.line,e);for(let N=M.marks.length-1;N>=-1;N--)t=e.childPos(t.off,1),e=e.children[t.i],i(N>=0?M.marks[N].node:M.text,e)}updateSelection(M=!1,i=!1){!M&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let t=this.view.root.activeElement,e=t==this.dom,N=!e&&zs(this.dom,this.view.observer.selectionRange)&&!(t&&this.dom.contains(t));if(!(e||i||N))return;let s=this.forceSelection;this.forceSelection=!1;let u=this.view.state.selection.main,D=this.moveToLine(this.domAtPos(u.anchor)),n=u.empty?D:this.moveToLine(this.domAtPos(u.head));if(tu.gecko&&u.empty&&!this.hasComposition&&(1==(j=D).node.nodeType&&j.node.firstChild&&(0==j.offset||"false"==j.node.childNodes[j.offset-1].contentEditable)&&(j.offset==j.node.childNodes.length||"false"==j.node.childNodes[j.offset].contentEditable))){let M=document.createTextNode("");this.view.observer.ignore((()=>D.node.insertBefore(M,D.node.childNodes[D.offset]||null))),D=n=new fs(M,0),s=!0}var j;let I=this.view.observer.selectionRange;!s&&I.focusNode&&(ds(D.node,D.offset,I.anchorNode,I.anchorOffset)&&ds(n.node,n.offset,I.focusNode,I.focusOffset)||this.suppressWidgetCursorChange(I,u))||(this.view.observer.ignore((()=>{tu.android&&tu.chrome&&this.dom.contains(I.focusNode)&&function(M,i){for(let t=M;t&&t!=i;t=t.assignedSlot||t.parentNode)if(1==t.nodeType&&"false"==t.contentEditable)return!0;return!1}(I.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let M=Ls(this.view.root);if(M)if(u.empty){if(tu.gecko){let M=function(M,i){return 1!=M.nodeType?0:(i&&"false"==M.childNodes[i-1].contentEditable?1:0)|(i<M.childNodes.length&&"false"==M.childNodes[i].contentEditable?2:0)}(D.node,D.offset);if(M&&3!=M){let i=xD(D.node,D.offset,1==M?1:-1);i&&(D=new fs(i.node,i.offset))}}M.collapse(D.node,D.offset),null!=u.bidiLevel&&void 0!==M.caretBidiLevel&&(M.caretBidiLevel=u.bidiLevel)}else if(M.extend){M.collapse(D.node,D.offset);try{M.extend(n.node,n.offset)}catch(M){}}else{let i=document.createRange();u.anchor>u.head&&([D,n]=[n,D]),i.setEnd(n.node,n.offset),i.setStart(D.node,D.offset),M.removeAllRanges(),M.addRange(i)}else;N&&this.view.root.activeElement==this.dom&&(this.dom.blur(),t&&t.focus())})),this.view.observer.setSelectionRange(D,n)),this.impreciseAnchor=D.precise?null:new fs(I.anchorNode,I.anchorOffset),this.impreciseHead=n.precise?null:new fs(I.focusNode,I.focusOffset)}suppressWidgetCursorChange(M,i){return this.hasComposition&&i.empty&&ds(M.focusNode,M.focusOffset,M.anchorNode,M.anchorOffset)&&this.posFromDOM(M.focusNode,M.focusOffset)==i.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:M}=this,i=M.state.selection.main,t=Ls(M.root),{anchorNode:e,anchorOffset:N}=M.observer.selectionRange;if(!(t&&i.empty&&i.assoc&&t.modify))return;let s=cu.find(this,i.head);if(!s)return;let u=s.posAtStart;if(i.head==u||i.head==u+s.length)return;let D=this.coordsAt(i.head,-1),n=this.coordsAt(i.head,1);if(!D||!n||D.bottom>n.top)return;let j=this.domAtPos(i.head+i.assoc);t.collapse(j.node,j.offset),t.modify("move",i.assoc<0?"forward":"backward","lineboundary"),M.observer.readSelectionRange();let I=M.observer.selectionRange;M.docView.posFromDOM(I.anchorNode,I.anchorOffset)!=i.from&&t.collapse(e,N)}moveToLine(M){let i,t=this.dom;if(M.node!=t)return M;for(let e=M.offset;!i&&e<t.childNodes.length;e++){let M=Vs.get(t.childNodes[e]);M instanceof cu&&(i=M.domAtPos(0))}for(let e=M.offset-1;!i&&e>=0;e--){let M=Vs.get(t.childNodes[e]);M instanceof cu&&(i=M.domAtPos(M.length))}return i?new fs(i.node,i.offset,!0):M}nearest(M){for(let i=M;i;){let M=Vs.get(i);if(M&&M.rootView==this)return M;i=i.parentNode}return null}posFromDOM(M,i){let t=this.nearest(M);if(!t)throw new RangeError("Trying to find position for a DOM position outside of the document");return t.localPosFromDOM(M,i)+t.posAtStart}domAtPos(M){let{i,off:t}=this.childCursor().findPos(M,-1);for(;i<this.children.length-1;){let M=this.children[i];if(t<M.length||M instanceof cu)break;i++,t=0}return this.children[i].domAtPos(t)}coordsAt(M,i){let t=null,e=0;for(let N=this.length,s=this.children.length-1;s>=0;s--){let u=this.children[s],D=N-u.breakAfter,n=D-u.length;if(D<M)break;n<=M&&(n<M||u.covers(-1))&&(D>M||u.covers(1))&&(!t||u instanceof cu&&!(t instanceof cu&&i>=0))&&(t=u,e=n),N=n}return t?t.coordsAt(M-e,i):null}coordsForChar(M){let{i,off:t}=this.childPos(M,1),e=this.children[i];if(!(e instanceof cu))return null;for(;e.children.length;){let{i:M,off:i}=e.childPos(t,1);for(;;M++){if(M==e.children.length)return null;if((e=e.children[M]).length)break}t=i}if(!(e instanceof eu))return null;let N=Ce(e.text,t);if(N==t)return null;let s=bs(e.dom,t,N).getClientRects();for(let M=0;M<s.length;M++){let i=s[M];if(M==s.length-1||i.top<i.bottom&&i.left<i.right)return i}return null}measureVisibleLineHeights(M){let i=[],{from:t,to:e}=M,N=this.view.contentDOM.clientWidth,s=N>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,u=-1,D=this.view.textDirection==Eu.LTR;for(let M=0,n=0;n<this.children.length;n++){let j=this.children[n],I=M+j.length;if(I>e)break;if(M>=t){let t=j.dom.getBoundingClientRect();if(i.push(t.height),s){let i=j.dom.lastChild,e=i?ys(i):[];if(e.length){let i=e[e.length-1],s=D?i.right-t.left:t.right-i.left;s>u&&(u=s,this.minWidth=N,this.minWidthFrom=M,this.minWidthTo=I)}}}M=I+j.breakAfter}return i}textDirectionAt(M){let{i}=this.childPos(M,1);return"rtl"==getComputedStyle(this.children[i].dom).direction?Eu.RTL:Eu.LTR}measureTextSize(){for(let M of this.children)if(M instanceof cu){let i=M.measureTextSize();if(i)return i}let M,i,t,e=document.createElement("div");return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(e);let N=ys(e.firstChild)[0];M=e.getBoundingClientRect().height,i=N?N.width/27:7,t=N?N.height:M,e.remove()})),{lineHeight:M,charWidth:i,textHeight:t}}childCursor(M=this.length){let i=this.children.length;return i&&(M-=this.children[--i].length),new Gs(this.children,M,i)}computeBlockGapDeco(){let M=[],i=this.view.viewState;for(let t=0,e=0;;e++){let N=e==i.viewports.length?null:i.viewports[e],s=N?N.from-1:this.length;if(s>t){let e=(i.lineBlockAt(s).bottom-i.lineBlockAt(t).top)/this.view.scaleY;M.push(Lu.replace({widget:new dD(e),block:!0,inclusive:!0,isBlockGap:!0}).range(t,s))}if(!N)break;t=N.to+1}return Lu.set(M)}updateDeco(){let M=this.view.state.facet(rD).map(((M,i)=>(this.dynamicDecorationMap[i]="function"==typeof M)?M(this.view):M)),i=!1,t=this.view.state.facet(oD).map(((M,t)=>{let e="function"==typeof M;return e&&(i=!0),e?M(this.view):M}));t.length&&(this.dynamicDecorationMap[M.length]=i,M.push(XN.join(t)));for(let i=M.length;i<M.length+3;i++)this.dynamicDecorationMap[i]=!1;return this.decorations=[...M,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(M){if(M.isSnapshot){let i=this.view.viewState.lineBlockAt(M.range.head);return this.view.scrollDOM.scrollTop=i.top-M.yMargin,void(this.view.scrollDOM.scrollLeft=M.xMargin)}let i,{range:t}=M,e=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1);if(!e)return;!t.empty&&(i=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(e={left:Math.min(e.left,i.left),top:Math.min(e.top,i.top),right:Math.max(e.right,i.right),bottom:Math.max(e.bottom,i.bottom)});let N=TD(this.view),s={left:e.left-N.left,top:e.top-N.top,right:e.right+N.right,bottom:e.bottom+N.bottom},{offsetWidth:u,offsetHeight:D}=this.view.scrollDOM;!function(M,i,t,e,N,s,u,D){let n=M.ownerDocument,j=n.defaultView||window;for(let I=M,l=!1;I&&!l;)if(1==I.nodeType){let M,r=I==n.body,o=1,g=1;if(r)M=Es(j);else{if(/^(fixed|sticky)$/.test(getComputedStyle(I).position)&&(l=!0),I.scrollHeight<=I.clientHeight&&I.scrollWidth<=I.clientWidth){I=I.assignedSlot||I.parentNode;continue}let i=I.getBoundingClientRect();({scaleX:o,scaleY:g}=Qs(I,i)),M={left:i.left,right:i.left+I.clientWidth*o,top:i.top,bottom:i.top+I.clientHeight*g}}let c=0,a=0;if("nearest"==N)i.top<M.top?(a=-(M.top-i.top+u),t>0&&i.bottom>M.bottom+a&&(a=i.bottom-M.bottom+a+u)):i.bottom>M.bottom&&(a=i.bottom-M.bottom+u,t<0&&i.top-a<M.top&&(a=-(M.top+a-i.top+u)));else{let e=i.bottom-i.top,s=M.bottom-M.top;a=("center"==N&&e<=s?i.top+e/2-s/2:"start"==N||"center"==N&&t<0?i.top-u:i.bottom-s+u)-M.top}if("nearest"==e?i.left<M.left?(c=-(M.left-i.left+s),t>0&&i.right>M.right+c&&(c=i.right-M.right+c+s)):i.right>M.right&&(c=i.right-M.right+s,t<0&&i.left<M.left+c&&(c=-(M.left+c-i.left+s))):c=("center"==e?i.left+(i.right-i.left)/2-(M.right-M.left)/2:"start"==e==D?i.left-s:i.right-(M.right-M.left)+s)-M.left,c||a)if(r)j.scrollBy(c,a);else{let M=0,t=0;if(a){let M=I.scrollTop;I.scrollTop+=a/g,t=(I.scrollTop-M)*g}if(c){let i=I.scrollLeft;I.scrollLeft+=c/o,M=(I.scrollLeft-i)*o}i={left:i.left-M,top:i.top-t,right:i.right-M,bottom:i.bottom-t},M&&Math.abs(M-c)<1&&(e="nearest"),t&&Math.abs(t-a)<1&&(N="nearest")}if(r)break;I=I.assignedSlot||I.parentNode}else{if(11!=I.nodeType)break;I=I.host}}(this.view.scrollDOM,s,t.head<t.anchor?-1:1,M.x,M.y,Math.max(Math.min(M.xMargin,u),-u),Math.max(Math.min(M.yMargin,D),-D),this.view.textDirection==Eu.LTR)}}class dD extends Ou{constructor(M){super(),this.height=M}toDOM(){let M=document.createElement("div");return M.className="cm-gap",this.updateDOM(M),M}eq(M){return M.height==this.height}updateDOM(M){return M.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}}function AD(M,i){let t=M.observer.selectionRange,e=t.focusNode&&xD(t.focusNode,t.focusOffset,0);if(!e)return null;let N=i-e.offset;return{from:N,to:N+e.node.nodeValue.length,node:e.node}}function xD(M,i,t){if(t<=0)for(let t=M,e=i;;){if(3==t.nodeType)return{node:t,offset:e};if(!(1==t.nodeType&&e>0))break;t=t.childNodes[e-1],e=ws(t)}if(t>=0)for(let e=M,N=i;;){if(3==e.nodeType)return{node:e,offset:N};if(!(1==e.nodeType&&N<e.childNodes.length&&t>=0))break;e=e.childNodes[N],N=0}return null}let wD=class{constructor(){this.changes=[]}compareRange(M,i){Au(M,i,this.changes)}comparePoint(M,i){Au(M,i,this.changes)}};function SD(M,i){return i.left>M?i.left-M:Math.max(0,M-i.right)}function ED(M,i){return i.top>M?i.top-M:Math.max(0,M-i.bottom)}function QD(M,i){return M.top<i.bottom-1&&M.bottom>i.top+1}function kD(M,i){return i<M.top?{top:i,left:M.left,right:M.right,bottom:M.bottom}:M}function CD(M,i){return i>M.bottom?{top:M.top,left:M.left,right:M.right,bottom:i}:M}function pD(M,i,t){let e,N,s,u,D,n,j,I,l=!1;for(let r=M.firstChild;r;r=r.nextSibling){let M=ys(r);for(let o=0;o<M.length;o++){let g=M[o];N&&QD(N,g)&&(g=kD(CD(g,N.bottom),N.top));let c=SD(i,g),a=ED(t,g);if(0==c&&0==a)return 3==r.nodeType?UD(r,i,t):pD(r,i,t);if(!e||u>a||u==a&&s>c){e=r,N=g,s=c,u=a;let D=a?t<g.top?-1:1:c?i<g.left?-1:1:0;l=!D||(D>0?o<M.length-1:o>0)}0==c?t>g.bottom&&(!j||j.bottom<g.bottom)?(D=r,j=g):t<g.top&&(!I||I.top>g.top)&&(n=r,I=g):j&&QD(j,g)?j=CD(j,g.bottom):I&&QD(I,g)&&(I=kD(I,g.top))}}if(j&&j.bottom>=t?(e=D,N=j):I&&I.top<=t&&(e=n,N=I),!e)return{node:M,offset:0};let r=Math.max(N.left,Math.min(N.right,i));return 3==e.nodeType?UD(e,r,t):l&&"false"!=e.contentEditable?pD(e,r,t):{node:M,offset:Array.prototype.indexOf.call(M.childNodes,e)+(i>=(N.left+N.right)/2?1:0)}}function UD(M,i,t){let e=M.nodeValue.length,N=-1,s=1e9,u=0;for(let D=0;D<e;D++){let e=bs(M,D,D+1).getClientRects();for(let n=0;n<e.length;n++){let j=e[n];if(j.top==j.bottom)continue;u||(u=i-j.left);let I=(j.top>t?j.top-t:t-j.bottom)-1;if(j.left-1<=i&&j.right+1>=i&&I<s){let t=i>=(j.left+j.right)/2,e=t;if(tu.chrome||tu.gecko){bs(M,D).getBoundingClientRect().left==j.right&&(e=!t)}if(I<=0)return{node:M,offset:D+(e?1:0)};N=D+(e?1:0),s=I}}}return{node:M,offset:N>-1?N:u>0?M.nodeValue.length:0}}function bD(M,i,t,e=-1){var N,s;let u,D=M.contentDOM.getBoundingClientRect(),n=D.top+M.viewState.paddingTop,{docHeight:j}=M.viewState,{x:I,y:l}=i,r=l-n;if(r<0)return 0;if(r>j)return M.state.doc.length;for(let i=M.viewState.heightOracle.textHeight/2,N=!1;u=M.elementAtHeight(r),u.type!=Tu.Text;)for(;r=e>0?u.bottom+i:u.top-i,!(r>=0&&r<=j);){if(N)return t?null:0;N=!0,e=-e}l=n+r;let o=u.from;if(o<M.viewport.from)return 0==M.viewport.from?0:t?null:ZD(M,D,u,I,l);if(o>M.viewport.to)return M.viewport.to==M.state.doc.length?M.state.doc.length:t?null:ZD(M,D,u,I,l);let g=M.dom.ownerDocument,c=M.root.elementFromPoint?M.root:g,a=c.elementFromPoint(I,l);a&&!M.contentDOM.contains(a)&&(a=null),a||(I=Math.max(D.left+1,Math.min(D.right-1,I)),a=c.elementFromPoint(I,l),a&&!M.contentDOM.contains(a)&&(a=null));let O,T=-1;if(a&&0!=(null===(N=M.docView.nearest(a))||void 0===N?void 0:N.isEditable))if(g.caretPositionFromPoint){let M=g.caretPositionFromPoint(I,l);M&&({offsetNode:O,offset:T}=M)}else if(g.caretRangeFromPoint){let i=g.caretRangeFromPoint(I,l);i&&(({startContainer:O,startOffset:T}=i),(!M.contentDOM.contains(O)||tu.safari&&function(M,i,t){let e;if(3!=M.nodeType||i!=(e=M.nodeValue.length))return!1;for(let i=M.nextSibling;i;i=i.nextSibling)if(1!=i.nodeType||"BR"!=i.nodeName)return!1;return bs(M,e-1,e).getBoundingClientRect().left>t}(O,T,I)||tu.chrome&&function(M,i,t){if(0!=i)return!1;for(let i=M;;){let M=i.parentNode;if(!M||1!=M.nodeType||M.firstChild!=i)return!1;if(M.classList.contains("cm-line"))break;i=M}let e=1==M.nodeType?M.getBoundingClientRect():bs(M,0,Math.max(M.nodeValue.length,1)).getBoundingClientRect();return t-e.left>5}(O,T,I))&&(O=void 0))}if(!O||!M.docView.dom.contains(O)){let i=cu.find(M.docView,o);if(!i)return r>u.top+u.height/2?u.to:u.from;({node:O,offset:T}=pD(i.dom,I,l))}let L=M.docView.nearest(O);if(!L)return null;if(L.isWidget&&1==(null===(s=L.dom)||void 0===s?void 0:s.nodeType)){let M=L.dom.getBoundingClientRect();return i.y<M.top||i.y<=M.bottom&&i.x<=(M.left+M.right)/2?L.posAtStart:L.posAtEnd}return L.localPosFromDOM(O,T)+L.posAtStart}function ZD(M,i,t,e,N){let s=Math.round((e-i.left)*M.defaultCharacterWidth);if(M.lineWrapping&&t.height>1.5*M.defaultLineHeight){let i=M.viewState.heightOracle.textHeight;s+=Math.floor((N-t.top-.5*(M.defaultLineHeight-i))/i)*M.viewState.heightOracle.lineLength}let u=M.state.sliceDoc(t.from,t.to);return t.from+us(u,s,M.state.tabSize)}function mD(M,i){let t=M.lineBlockAt(i);if(Array.isArray(t.type))for(let M of t.type)if(M.to>i||M.to==i&&(M.to==t.to||M.type==Tu.Text))return M;return t}function YD(M,i,t,e){let N=M.state.doc.lineAt(i.head),s=M.bidiSpans(N),u=M.textDirectionAt(N.from);for(let D=i,n=null;;){let i=Bu(N,s,u,D,t),j=Ru;if(!i){if(N.number==(t?M.state.doc.lines:1))return D;j="\n",N=M.state.doc.line(N.number+(t?1:-1)),s=M.bidiSpans(N),i=M.visualLineSide(N,!t)}if(n){if(!n(j))return D}else{if(!e)return i;n=e(j)}D=i}}function fD(M,i,t){for(;;){let e=0;for(let N of M)N.between(i-1,i+1,((M,N,s)=>{if(i>M&&i<N){let s=e||t||(i-M<N-i?-1:1);i=s<0?M:N,e=s}}));if(!e)return i}}function WD(M,i,t){let e=fD(M.state.facet(gD).map((i=>i(M))),t.from,i.head>t.from?-1:1);return e==t.from?t:$e.cursor(e,e<t.from?1:-1)}class VD{setSelectionOrigin(M){this.lastSelectionOrigin=M,this.lastSelectionTime=Date.now()}constructor(M){this.view=M,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=M.hasFocus,tu.safari&&M.contentDOM.addEventListener("input",(()=>null)),tu.gecko&&function(M){gn.has(M)||(gn.add(M),M.addEventListener("copy",(()=>{})),M.addEventListener("cut",(()=>{})))}(M.contentDOM.ownerDocument)}handleEvent(M){(function(M,i){if(!i.bubbles)return!0;if(i.defaultPrevented)return!1;for(let t,e=i.target;e!=M.contentDOM;e=e.parentNode)if(!e||11==e.nodeType||(t=Vs.get(e))&&t.ignoreEvent(i))return!1;return!0})(this.view,M)&&!this.ignoreDuringComposition(M)&&("keydown"==M.type&&this.keydown(M)||this.runHandlers(M.type,M))}runHandlers(M,i){let t=this.handlers[M];if(t){for(let M of t.observers)M(this.view,i);for(let M of t.handlers){if(i.defaultPrevented)break;if(M(this.view,i)){i.preventDefault();break}}}}ensureHandlers(M){let i=GD(M),t=this.handlers,e=this.view.contentDOM;for(let M in i)if("scroll"!=M){let N=!i[M].handlers.length,s=t[M];s&&N!=!s.handlers.length&&(e.removeEventListener(M,this.handleEvent),s=null),s||e.addEventListener(M,this.handleEvent,{passive:N})}for(let M in t)"scroll"==M||i[M]||e.removeEventListener(M,this.handleEvent);this.handlers=i}keydown(M){if(this.lastKeyCode=M.keyCode,this.lastKeyTime=Date.now(),9==M.keyCode&&Date.now()<this.lastEscPress+2e3)return!0;if(27!=M.keyCode&&BD.indexOf(M.keyCode)<0&&(this.view.inputState.lastEscPress=0),tu.android&&tu.chrome&&!M.synthetic&&(13==M.keyCode||8==M.keyCode))return this.view.observer.delayAndroidKey(M.key,M.keyCode),!0;let i;return!tu.ios||M.synthetic||M.altKey||M.metaKey||!((i=PD.find((i=>i.keyCode==M.keyCode)))&&!M.ctrlKey||RD.indexOf(M.key)>-1&&M.ctrlKey&&!M.shiftKey)?(229!=M.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=i||M,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(){let M=this.pendingIOSKey;return!!M&&(this.pendingIOSKey=void 0,Zs(this.view.contentDOM,M.key,M.keyCode))}ignoreDuringComposition(M){return!!/^key/.test(M.type)&&(this.composing>0||!!(tu.safari&&!tu.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(M){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=M}update(M){this.mouseSelection&&this.mouseSelection.update(M),this.draggedContent&&M.docChanged&&(this.draggedContent=this.draggedContent.map(M.changes)),M.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function vD(M,i){return(t,e)=>{try{return i.call(M,e,t)}catch(M){ND(t.state,M)}}}function GD(M){let i=Object.create(null);function t(M){return i[M]||(i[M]={observers:[],handlers:[]})}for(let i of M){let M=i.spec;if(M&&M.domEventHandlers)for(let e in M.domEventHandlers){let N=M.domEventHandlers[e];N&&t(e).handlers.push(vD(i.value,N))}if(M&&M.domEventObservers)for(let e in M.domEventObservers){let N=M.domEventObservers[e];N&&t(e).observers.push(vD(i.value,N))}}for(let M in JD)t(M).handlers.push(JD[M]);for(let M in HD)t(M).observers.push(HD[M]);return i}const PD=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],RD="dthko",BD=[16,17,18,20,91,92,224,225];function FD(M){return.7*Math.max(0,M)+8}class XD{constructor(M,i,t,e){this.view=M,this.startEvent=i,this.style=t,this.mustSelect=e,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=i,this.scrollParent=function(M){let i=M.ownerDocument;for(let t=M.parentNode;t&&t!=i.body;)if(1==t.nodeType){if(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else{if(11!=t.nodeType)break;t=t.host}return null}(M.contentDOM),this.atoms=M.state.facet(gD).map((i=>i(M)));let N=M.contentDOM.ownerDocument;N.addEventListener("mousemove",this.move=this.move.bind(this)),N.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=i.shiftKey,this.multiple=M.state.facet(vN.allowMultipleSelections)&&function(M,i){let t=M.state.facet(Xu);return t.length?t[0](i):tu.mac?i.metaKey:i.ctrlKey}(M,i),this.dragging=!(!function(M,i){let{main:t}=M.state.selection;if(t.empty)return!1;let e=Ls(M.root);if(!e||0==e.rangeCount)return!0;let N=e.getRangeAt(0).getClientRects();for(let M=0;M<N.length;M++){let t=N[M];if(t.left<=i.clientX&&t.right>=i.clientX&&t.top<=i.clientY&&t.bottom>=i.clientY)return!0}return!1}(M,i)||1!=nn(i))&&null}start(M){!1===this.dragging&&this.select(M)}move(M){var i;if(0==M.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(M,i){return Math.max(Math.abs(M.clientX-i.clientX),Math.abs(M.clientY-i.clientY))}(this.startEvent,M)<10)return;this.select(this.lastEvent=M);let t=0,e=0,N=(null===(i=this.scrollParent)||void 0===i?void 0:i.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},s=TD(this.view);M.clientX-s.left<=N.left+6?t=-FD(N.left-M.clientX):M.clientX+s.right>=N.right-6&&(t=FD(M.clientX-N.right)),M.clientY-s.top<=N.top+6?e=-FD(N.top-M.clientY):M.clientY+s.bottom>=N.bottom-6&&(e=FD(M.clientY-N.bottom)),this.setScrollSpeed(t,e)}up(M){null==this.dragging&&this.select(this.lastEvent),this.dragging||M.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let M=this.view.contentDOM.ownerDocument;M.removeEventListener("mousemove",this.move),M.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(M,i){this.scrollSpeed={x:M,y:i},M||i?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(M){let i=null;for(let t=0;t<M.ranges.length;t++){let e=M.ranges[t],N=null;if(e.empty){let M=fD(this.atoms,e.from,0);M!=e.from&&(N=$e.cursor(M,-1))}else{let M=fD(this.atoms,e.from,-1),i=fD(this.atoms,e.to,1);M==e.from&&i==e.to||(N=$e.range(e.from==e.anchor?M:i,e.from==e.head?M:i))}N&&(i||(i=M.ranges.slice()),i[t]=N)}return i?$e.create(i,M.mainIndex):M}select(M){let{view:i}=this,t=this.skipAtoms(this.style.get(M,this.extend,this.multiple));!this.mustSelect&&t.eq(i.state.selection,!1===this.dragging)||this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(M){this.style.update(M)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const JD=Object.create(null),HD=Object.create(null),$D=tu.ie&&tu.ie_version<15||tu.ios&&tu.webkit_version<604;function _D(M,i){let t,{state:e}=M,N=1,s=e.toText(i),u=s.lines==e.selection.ranges.length,D=null!=In&&e.selection.ranges.every((M=>M.empty))&&In==s.toString();if(D){let M=-1;t=e.changeByRange((t=>{let D=e.doc.lineAt(t.from);if(D.from==M)return{range:t};M=D.from;let n=e.toText((u?s.line(N++).text:i)+e.lineBreak);return{changes:{from:D.from,insert:n},range:$e.cursor(t.from+n.length)}}))}else t=u?e.changeByRange((M=>{let i=s.line(N++);return{changes:{from:M.from,to:M.to,insert:i.text},range:$e.cursor(M.from+i.length)}})):e.replaceSelection(s);M.dispatch(t,{userEvent:"input.paste",scrollIntoView:!0})}function qD(M,i,t,e){if(1==e)return $e.cursor(i,t);if(2==e)return function(M,i,t=1){let e=M.charCategorizer(i),N=M.doc.lineAt(i),s=i-N.from;if(0==N.length)return $e.cursor(i);0==s?t=1:s==N.length&&(t=-1);let u=s,D=s;t<0?u=Ce(N.text,s,!1):D=Ce(N.text,s);let n=e(N.text.slice(u,D));for(;u>0;){let M=Ce(N.text,u,!1);if(e(N.text.slice(M,u))!=n)break;u=M}for(;D<N.length;){let M=Ce(N.text,D);if(e(N.text.slice(D,M))!=n)break;D=M}return $e.range(u+N.from,D+N.from)}(M.state,i,t);{let t=cu.find(M.docView,i),e=M.state.doc.lineAt(t?t.posAtEnd:i),N=t?t.posAtStart:e.from,s=t?t.posAtEnd:e.to;return s<M.state.doc.length&&s==e.to&&s++,$e.range(N,s)}}HD.scroll=M=>{M.inputState.lastScrollTop=M.scrollDOM.scrollTop,M.inputState.lastScrollLeft=M.scrollDOM.scrollLeft},JD.keydown=(M,i)=>(M.inputState.setSelectionOrigin("select"),27==i.keyCode&&(M.inputState.lastEscPress=Date.now()),!1),HD.touchstart=(M,i)=>{M.inputState.lastTouchTime=Date.now(),M.inputState.setSelectionOrigin("select.pointer")},HD.touchmove=M=>{M.inputState.setSelectionOrigin("select.pointer")},JD.mousedown=(M,i)=>{if(M.observer.flush(),M.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let e of M.state.facet(Hu))if(t=e(M,i),t)break;if(t||0!=i.button||(t=function(M,i){let t=en(M,i),e=nn(i),N=M.state.selection;return{update(M){M.docChanged&&(t.pos=M.changes.mapPos(t.pos),N=N.map(M.changes))},get(i,s,u){let D,n=en(M,i),j=qD(M,n.pos,n.bias,e);if(t.pos!=n.pos&&!s){let i=qD(M,t.pos,t.bias,e),N=Math.min(i.from,j.from),s=Math.max(i.to,j.to);j=N<j.from?$e.range(N,s):$e.range(s,N)}return s?N.replaceRange(N.main.extend(j.from,j.to)):u&&1==e&&N.ranges.length>1&&(D=function(M,i){for(let t=0;t<M.ranges.length;t++){let{from:e,to:N}=M.ranges[t];if(e<=i&&N>=i)return $e.create(M.ranges.slice(0,t).concat(M.ranges.slice(t+1)),M.mainIndex==t?0:M.mainIndex-(M.mainIndex>t?1:0))}return null}(N,n.pos))?D:u?N.addRange(j):$e.create([j])}}}(M,i)),t){let e=!M.hasFocus;M.inputState.startMouseSelection(new XD(M,i,t,e)),e&&M.observer.ignore((()=>Us(M.contentDOM)));let N=M.inputState.mouseSelection;if(N)return N.start(i),!1===N.dragging}return!1};let KD=(M,i)=>M>=i.top&&M<=i.bottom,Mn=(M,i,t)=>KD(i,t)&&M>=t.left&&M<=t.right;function tn(M,i,t,e){let N=cu.find(M.docView,i);if(!N)return 1;let s=i-N.posAtStart;if(0==s)return 1;if(s==N.length)return-1;let u=N.coordsAt(s,-1);if(u&&Mn(t,e,u))return-1;let D=N.coordsAt(s,1);return D&&Mn(t,e,D)?1:u&&KD(e,u)?-1:1}function en(M,i){let t=M.posAtCoords({x:i.clientX,y:i.clientY},!1);return{pos:t,bias:tn(M,t,i.clientX,i.clientY)}}const Nn=tu.ie&&tu.ie_version<=11;let sn=null,un=0,Dn=0;function nn(M){if(!Nn)return M.detail;let i=sn,t=Dn;return sn=M,Dn=Date.now(),un=!i||t>Date.now()-400&&Math.abs(i.clientX-M.clientX)<2&&Math.abs(i.clientY-M.clientY)<2?(un+1)%3:1}function jn(M,i,t,e){if(!t)return;let N=M.posAtCoords({x:i.clientX,y:i.clientY},!1),{draggedContent:s}=M.inputState,u=e&&s&&function(M,i){let t=M.state.facet(Ju);return t.length?t[0](i):tu.mac?!i.altKey:!i.ctrlKey}(M,i)?{from:s.from,to:s.to}:null,D={from:N,insert:t},n=M.state.changes(u?[u,D]:D);M.focus(),M.dispatch({changes:n,selection:{anchor:n.mapPos(N,-1),head:n.mapPos(N,1)},userEvent:u?"move.drop":"input.drop"}),M.inputState.draggedContent=null}JD.dragstart=(M,i)=>{let{selection:{main:t}}=M.state;if(i.target.draggable){let e=M.docView.nearest(i.target);if(e&&e.isWidget){let M=e.posAtStart,i=M+e.length;(M>=t.to||i<=t.from)&&(t=$e.range(M,i))}}let{inputState:e}=M;return e.mouseSelection&&(e.mouseSelection.dragging=!0),e.draggedContent=t,i.dataTransfer&&(i.dataTransfer.setData("Text",M.state.sliceDoc(t.from,t.to)),i.dataTransfer.effectAllowed="copyMove"),!1},JD.dragend=M=>(M.inputState.draggedContent=null,!1),JD.drop=(M,i)=>{if(!i.dataTransfer)return!1;if(M.state.readOnly)return!0;let t=i.dataTransfer.files;if(t&&t.length){let e=Array(t.length),N=0,s=()=>{++N==t.length&&jn(M,i,e.filter((M=>null!=M)).join(M.state.lineBreak),!1)};for(let M=0;M<t.length;M++){let i=new FileReader;i.onerror=s,i.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(i.result)||(e[M]=i.result),s()},i.readAsText(t[M])}return!0}{let t=i.dataTransfer.getData("Text");if(t)return jn(M,i,t,!0),!0}return!1},JD.paste=(M,i)=>{if(M.state.readOnly)return!0;M.observer.flush();let t=$D?null:i.clipboardData;return t?(_D(M,t.getData("text/plain")||t.getData("text/uri-text")),!0):(function(M){let i=M.dom.parentNode;if(!i)return;let t=i.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout((()=>{M.focus(),t.remove(),_D(M,t.value)}),50)}(M),!1)};let In=null;JD.copy=JD.cut=(M,i)=>{let{text:t,ranges:e,linewise:N}=function(M){let i=[],t=[],e=!1;for(let e of M.selection.ranges)e.empty||(i.push(M.sliceDoc(e.from,e.to)),t.push(e));if(!i.length){let N=-1;for(let{from:e}of M.selection.ranges){let s=M.doc.lineAt(e);s.number>N&&(i.push(s.text),t.push({from:s.from,to:Math.min(M.doc.length,s.to+1)})),N=s.number}e=!0}return{text:i.join(M.lineBreak),ranges:t,linewise:e}}(M.state);if(!t&&!N)return!1;In=N?t:null,"cut"!=i.type||M.state.readOnly||M.dispatch({changes:e,scrollIntoView:!0,userEvent:"delete.cut"});let s=$D?null:i.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(function(M,i){let t=M.dom.parentNode;if(!t)return;let e=t.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.value=i,e.focus(),e.selectionEnd=i.length,e.selectionStart=0,setTimeout((()=>{e.remove(),M.focus()}),50)}(M,t),!1)};const ln=wN.define();function rn(M,i){let t=[];for(let e of M.facet(Ku)){let N=e(M,i);N&&t.push(N)}return t?M.update({effects:t,annotations:ln.of(!0)}):null}function on(M){setTimeout((()=>{let i=M.hasFocus;if(i!=M.inputState.notifiedFocused){let t=rn(M.state,i);t?M.dispatch(t):M.update([])}}),10)}HD.focus=M=>{M.inputState.lastFocusTime=Date.now(),M.scrollDOM.scrollTop||!M.inputState.lastScrollTop&&!M.inputState.lastScrollLeft||(M.scrollDOM.scrollTop=M.inputState.lastScrollTop,M.scrollDOM.scrollLeft=M.inputState.lastScrollLeft),on(M)},HD.blur=M=>{M.observer.clearSelectionRange(),on(M)},HD.compositionstart=HD.compositionupdate=M=>{null==M.inputState.compositionFirstChange&&(M.inputState.compositionFirstChange=!0),M.inputState.composing<0&&(M.inputState.composing=0)},HD.compositionend=M=>{M.inputState.composing=-1,M.inputState.compositionEndedAt=Date.now(),M.inputState.compositionPendingKey=!0,M.inputState.compositionPendingChange=M.observer.pendingRecords().length>0,M.inputState.compositionFirstChange=null,tu.chrome&&tu.android?M.observer.flushSoon():M.inputState.compositionPendingChange?Promise.resolve().then((()=>M.observer.flush())):setTimeout((()=>{M.inputState.composing<0&&M.docView.hasComposition&&M.update([])}),50)},HD.contextmenu=M=>{M.inputState.lastContextMenu=Date.now()},JD.beforeinput=(M,i)=>{var t;let e;if(tu.chrome&&tu.android&&(e=PD.find((M=>M.inputType==i.inputType)))&&(M.observer.delayAndroidKey(e.key,e.keyCode),"Backspace"==e.key||"Delete"==e.key)){let i=(null===(t=window.visualViewport)||void 0===t?void 0:t.height)||0;setTimeout((()=>{var t;((null===(t=window.visualViewport)||void 0===t?void 0:t.height)||0)>i+10&&M.hasFocus&&(M.contentDOM.blur(),M.focus())}),100)}return!1};const gn=new Set;const cn=["pre-wrap","normal","pre-line","break-spaces"];class an{constructor(M){this.lineWrapping=M,this.doc=Oe.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(M,i){let t=this.doc.lineAt(i).number-this.doc.lineAt(M).number+1;return this.lineWrapping&&(t+=Math.max(0,Math.ceil((i-M-t*this.lineLength*.5)/this.lineLength))),this.lineHeight*t}heightForLine(M){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((M-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(M){return this.doc=M,this}mustRefreshForWrapping(M){return cn.indexOf(M)>-1!=this.lineWrapping}mustRefreshForHeights(M){let i=!1;for(let t=0;t<M.length;t++){let e=M[t];e<0?t++:this.heightSamples[Math.floor(10*e)]||(i=!0,this.heightSamples[Math.floor(10*e)]=!0)}return i}refresh(M,i,t,e,N,s){let u=cn.indexOf(M)>-1,D=Math.round(i)!=Math.round(this.lineHeight)||this.lineWrapping!=u;if(this.lineWrapping=u,this.lineHeight=i,this.charWidth=t,this.textHeight=e,this.lineLength=N,D){this.heightSamples={};for(let M=0;M<s.length;M++){let i=s[M];i<0?M++:this.heightSamples[Math.floor(10*i)]=!0}}return D}}class On{constructor(M,i){this.from=M,this.heights=i,this.index=0}get more(){return this.index<this.heights.length}}class Tn{constructor(M,i,t,e,N){this.from=M,this.length=i,this.top=t,this.height=e,this._content=N}get type(){return"number"==typeof this._content?Tu.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof yu?this._content.widget:null}get widgetLineBreaks(){return"number"==typeof this._content?this._content:0}join(M){let i=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(M._content)?M._content:[M]);return new Tn(this.from,this.length+M.length,this.top,this.height+M.height,i)}}var Ln=function(M){return M[M.ByPos=0]="ByPos",M[M.ByHeight=1]="ByHeight",M[M.ByPosNoHeight=2]="ByPosNoHeight",M}(Ln||(Ln={}));const hn=.001;class zn{constructor(M,i,t=2){this.length=M,this.height=i,this.flags=t}get outdated(){return(2&this.flags)>0}set outdated(M){this.flags=(M?2:0)|-3&this.flags}setHeight(M,i){this.height!=i&&(Math.abs(this.height-i)>hn&&(M.heightChanged=!0),this.height=i)}replace(M,i,t){return zn.of(t)}decomposeLeft(M,i){i.push(this)}decomposeRight(M,i){i.push(this)}applyChanges(M,i,t,e){let N=this,s=t.doc;for(let u=e.length-1;u>=0;u--){let{fromA:D,toA:n,fromB:j,toB:I}=e[u],l=N.lineAt(D,Ln.ByPosNoHeight,t.setDoc(i),0,0),r=l.to>=n?l:N.lineAt(n,Ln.ByPosNoHeight,t,0,0);for(I+=r.to-n,n=r.to;u>0&&l.from<=e[u-1].toA;)D=e[u-1].fromA,j=e[u-1].fromB,u--,D<l.from&&(l=N.lineAt(D,Ln.ByPosNoHeight,t,0,0));j+=l.from-D,D=l.from;let o=Sn.build(t.setDoc(s),M,j,I);N=N.replace(D,n,o)}return N.updateHeight(t,0)}static empty(){return new dn(0,0)}static of(M){if(1==M.length)return M[0];let i=0,t=M.length,e=0,N=0;for(;;)if(i==t)if(e>2*N){let N=M[i-1];N.break?M.splice(--i,1,N.left,null,N.right):M.splice(--i,1,N.left,N.right),t+=1+N.break,e-=N.size}else{if(!(N>2*e))break;{let i=M[t];i.break?M.splice(t,1,i.left,null,i.right):M.splice(t,1,i.left,i.right),t+=2+i.break,N-=i.size}}else if(e<N){let t=M[i++];t&&(e+=t.size)}else{let i=M[--t];i&&(N+=i.size)}let s=0;return null==M[i-1]?(s=1,i--):null==M[i]&&(s=1,t++),new xn(zn.of(M.slice(0,i)),s,zn.of(M.slice(t)))}}zn.prototype.size=1;class yn extends zn{constructor(M,i,t){super(M,i),this.deco=t}blockAt(M,i,t,e){return new Tn(e,this.length,t,this.height,this.deco||0)}lineAt(M,i,t,e,N){return this.blockAt(0,t,e,N)}forEachLine(M,i,t,e,N,s){M<=N+this.length&&i>=N&&s(this.blockAt(0,t,e,N))}updateHeight(M,i=0,t=!1,e){return e&&e.from<=i&&e.more&&this.setHeight(M,e.heights[e.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class dn extends yn{constructor(M,i){super(M,i,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(M,i,t,e){return new Tn(e,this.length,t,this.height,this.breaks)}replace(M,i,t){let e=t[0];return 1==t.length&&(e instanceof dn||e instanceof An&&4&e.flags)&&Math.abs(this.length-e.length)<10?(e instanceof An?e=new dn(e.length,this.height):e.height=this.height,this.outdated||(e.outdated=!1),e):zn.of(t)}updateHeight(M,i=0,t=!1,e){return e&&e.from<=i&&e.more?this.setHeight(M,e.heights[e.index++]):(t||this.outdated)&&this.setHeight(M,Math.max(this.widgetHeight,M.heightForLine(this.length-this.collapsed))+this.breaks*M.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class An extends zn{constructor(M){super(M,0)}heightMetrics(M,i){let t,e=M.doc.lineAt(i).number,N=M.doc.lineAt(i+this.length).number,s=N-e+1,u=0;if(M.lineWrapping){let i=Math.min(this.height,M.lineHeight*s);t=i/s,this.length>s+1&&(u=(this.height-i)/(this.length-s-1))}else t=this.height/s;return{firstLine:e,lastLine:N,perLine:t,perChar:u}}blockAt(M,i,t,e){let{firstLine:N,lastLine:s,perLine:u,perChar:D}=this.heightMetrics(i,e);if(i.lineWrapping){let N=e+Math.round(Math.max(0,Math.min(1,(M-t)/this.height))*this.length),s=i.doc.lineAt(N),n=u+s.length*D,j=Math.max(t,M-n/2);return new Tn(s.from,s.length,j,n,0)}{let e=Math.max(0,Math.min(s-N,Math.floor((M-t)/u))),{from:D,length:n}=i.doc.line(N+e);return new Tn(D,n,t+u*e,u,0)}}lineAt(M,i,t,e,N){if(i==Ln.ByHeight)return this.blockAt(M,t,e,N);if(i==Ln.ByPosNoHeight){let{from:i,to:e}=t.doc.lineAt(M);return new Tn(i,e-i,0,0,0)}let{firstLine:s,perLine:u,perChar:D}=this.heightMetrics(t,N),n=t.doc.lineAt(M),j=u+n.length*D,I=n.number-s,l=e+u*I+D*(n.from-N-I);return new Tn(n.from,n.length,Math.max(e,Math.min(l,e+this.height-j)),j,0)}forEachLine(M,i,t,e,N,s){M=Math.max(M,N),i=Math.min(i,N+this.length);let{firstLine:u,perLine:D,perChar:n}=this.heightMetrics(t,N);for(let j=M,I=e;j<=i;){let i=t.doc.lineAt(j);if(j==M){let t=i.number-u;I+=D*t+n*(M-N-t)}let e=D+n*i.length;s(new Tn(i.from,i.length,I,e,0)),I+=e,j=i.to+1}}replace(M,i,t){let e=this.length-i;if(e>0){let M=t[t.length-1];M instanceof An?t[t.length-1]=new An(M.length+e):t.push(null,new An(e-1))}if(M>0){let i=t[0];i instanceof An?t[0]=new An(M+i.length):t.unshift(new An(M-1),null)}return zn.of(t)}decomposeLeft(M,i){i.push(new An(M-1),null)}decomposeRight(M,i){i.push(null,new An(this.length-M-1))}updateHeight(M,i=0,t=!1,e){let N=i+this.length;if(e&&e.from<=i+this.length&&e.more){let t=[],s=Math.max(i,e.from),u=-1;for(e.from>i&&t.push(new An(e.from-i-1).updateHeight(M,i));s<=N&&e.more;){let i=M.doc.lineAt(s).length;t.length&&t.push(null);let N=e.heights[e.index++];-1==u?u=N:Math.abs(N-u)>=hn&&(u=-2);let D=new dn(i,N);D.outdated=!1,t.push(D),s+=i+1}s<=N&&t.push(null,new An(N-s).updateHeight(M,s));let D=zn.of(t);return(u<0||Math.abs(D.height-this.height)>=hn||Math.abs(u-this.heightMetrics(M,i).perLine)>=hn)&&(M.heightChanged=!0),D}return(t||this.outdated)&&(this.setHeight(M,M.heightForGap(i,i+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class xn extends zn{constructor(M,i,t){super(M.length+i+t.length,M.height+t.height,i|(M.outdated||t.outdated?2:0)),this.left=M,this.right=t,this.size=M.size+t.size}get break(){return 1&this.flags}blockAt(M,i,t,e){let N=t+this.left.height;return M<N?this.left.blockAt(M,i,t,e):this.right.blockAt(M,i,N,e+this.left.length+this.break)}lineAt(M,i,t,e,N){let s=e+this.left.height,u=N+this.left.length+this.break,D=i==Ln.ByHeight?M<s:M<u,n=D?this.left.lineAt(M,i,t,e,N):this.right.lineAt(M,i,t,s,u);if(this.break||(D?n.to<u:n.from>u))return n;let j=i==Ln.ByPosNoHeight?Ln.ByPosNoHeight:Ln.ByPos;return D?n.join(this.right.lineAt(u,j,t,s,u)):this.left.lineAt(u,j,t,e,N).join(n)}forEachLine(M,i,t,e,N,s){let u=e+this.left.height,D=N+this.left.length+this.break;if(this.break)M<D&&this.left.forEachLine(M,i,t,e,N,s),i>=D&&this.right.forEachLine(M,i,t,u,D,s);else{let n=this.lineAt(D,Ln.ByPos,t,e,N);M<n.from&&this.left.forEachLine(M,n.from-1,t,e,N,s),n.to>=M&&n.from<=i&&s(n),i>n.to&&this.right.forEachLine(n.to+1,i,t,u,D,s)}}replace(M,i,t){let e=this.left.length+this.break;if(i<e)return this.balanced(this.left.replace(M,i,t),this.right);if(M>this.left.length)return this.balanced(this.left,this.right.replace(M-e,i-e,t));let N=[];M>0&&this.decomposeLeft(M,N);let s=N.length;for(let M of t)N.push(M);if(M>0&&wn(N,s-1),i<this.length){let M=N.length;this.decomposeRight(i,N),wn(N,M)}return zn.of(N)}decomposeLeft(M,i){let t=this.left.length;if(M<=t)return this.left.decomposeLeft(M,i);i.push(this.left),this.break&&(t++,M>=t&&i.push(null)),M>t&&this.right.decomposeLeft(M-t,i)}decomposeRight(M,i){let t=this.left.length,e=t+this.break;if(M>=e)return this.right.decomposeRight(M-e,i);M<t&&this.left.decomposeRight(M,i),this.break&&M<e&&i.push(null),i.push(this.right)}balanced(M,i){return M.size>2*i.size||i.size>2*M.size?zn.of(this.break?[M,null,i]:[M,i]):(this.left=M,this.right=i,this.height=M.height+i.height,this.outdated=M.outdated||i.outdated,this.size=M.size+i.size,this.length=M.length+this.break+i.length,this)}updateHeight(M,i=0,t=!1,e){let{left:N,right:s}=this,u=i+N.length+this.break,D=null;return e&&e.from<=i+N.length&&e.more?D=N=N.updateHeight(M,i,t,e):N.updateHeight(M,i,t),e&&e.from<=u+s.length&&e.more?D=s=s.updateHeight(M,u,t,e):s.updateHeight(M,u,t),D?this.balanced(N,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function wn(M,i){let t,e;null==M[i]&&(t=M[i-1])instanceof An&&(e=M[i+1])instanceof An&&M.splice(i-1,3,new An(t.length+1+e.length))}class Sn{constructor(M,i){this.pos=M,this.oracle=i,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=M}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(M,i){if(this.lineStart>-1){let M=Math.min(i,this.lineEnd),t=this.nodes[this.nodes.length-1];t instanceof dn?t.length+=M-this.pos:(M>this.pos||!this.isCovered)&&this.nodes.push(new dn(M-this.pos,-1)),this.writtenTo=M,i>M&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=i}point(M,i,t){if(M<i||t.heightRelevant){let e=t.widget?t.widget.estimatedHeight:0,N=t.widget?t.widget.lineBreaks:0;e<0&&(e=this.oracle.lineHeight);let s=i-M;t.block?this.addBlock(new yn(s,e,t)):(s||N||e>=5)&&this.addLineDeco(e,N,s)}else i>M&&this.span(M,i);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:M,to:i}=this.oracle.doc.lineAt(this.pos);this.lineStart=M,this.lineEnd=i,this.writtenTo<M&&((this.writtenTo<M-1||null==this.nodes[this.nodes.length-1])&&this.nodes.push(this.blankContent(this.writtenTo,M-1)),this.nodes.push(null)),this.pos>M&&this.nodes.push(new dn(this.pos-M,-1)),this.writtenTo=this.pos}blankContent(M,i){let t=new An(i-M);return this.oracle.doc.lineAt(M).to==i&&(t.flags|=4),t}ensureLine(){this.enterLine();let M=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(M instanceof dn)return M;let i=new dn(0,-1);return this.nodes.push(i),i}addBlock(M){this.enterLine();let i=M.deco;i&&i.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(M),this.writtenTo=this.pos=this.pos+M.length,i&&i.endSide>0&&(this.covering=M)}addLineDeco(M,i,t){let e=this.ensureLine();e.length+=t,e.collapsed+=t,e.widgetHeight=Math.max(e.widgetHeight,M),e.breaks+=i,this.writtenTo=this.pos=this.pos+t}finish(M){let i=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||i instanceof dn||this.isCovered?(this.writtenTo<this.pos||null==i)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new dn(0,-1));let t=M;for(let M of this.nodes)M instanceof dn&&M.updateHeight(this.oracle,t),t+=M?M.length:1;return this.nodes}static build(M,i,t,e){let N=new Sn(t,M);return XN.spans(i,t,e,N,0),N.finish(t)}}class En{constructor(){this.changes=[]}compareRange(){}comparePoint(M,i,t,e){(M<i||t&&t.heightRelevant||e&&e.heightRelevant)&&Au(M,i,this.changes,5)}}function Qn(M,i){let t=M.getBoundingClientRect(),e=M.ownerDocument,N=e.defaultView||window,s=Math.max(0,t.left),u=Math.min(N.innerWidth,t.right),D=Math.max(0,t.top),n=Math.min(N.innerHeight,t.bottom);for(let i=M.parentNode;i&&i!=e.body;)if(1==i.nodeType){let t=i,e=window.getComputedStyle(t);if((t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)&&"visible"!=e.overflow){let e=t.getBoundingClientRect();s=Math.max(s,e.left),u=Math.min(u,e.right),D=Math.max(D,e.top),n=i==M.parentNode?e.bottom:Math.min(n,e.bottom)}i="absolute"==e.position||"fixed"==e.position?t.offsetParent:t.parentNode}else{if(11!=i.nodeType)break;i=i.host}return{left:s-t.left,right:Math.max(s,u)-t.left,top:D-(t.top+i),bottom:Math.max(D,n)-(t.top+i)}}function kn(M,i){let t=M.getBoundingClientRect();return{left:0,right:t.right-t.left,top:i,bottom:t.bottom-(t.top+i)}}class Cn{constructor(M,i,t){this.from=M,this.to=i,this.size=t}static same(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++){let e=M[t],N=i[t];if(e.from!=N.from||e.to!=N.to||e.size!=N.size)return!1}return!0}draw(M,i){return Lu.replace({widget:new pn(this.size*(i?M.scaleY:M.scaleX),i)}).range(this.from,this.to)}}class pn extends Ou{constructor(M,i){super(),this.size=M,this.vertical=i}eq(M){return M.size==this.size&&M.vertical==this.vertical}toDOM(){let M=document.createElement("div");return this.vertical?M.style.height=this.size+"px":(M.style.width=this.size+"px",M.style.height="2px",M.style.display="inline-block"),M}get estimatedHeight(){return this.vertical?this.size:-1}}class Un{constructor(M){this.state=M,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!0,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=fn,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Eu.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let i=M.facet(lD).some((M=>"function"!=typeof M&&"cm-lineWrapping"==M.class));this.heightOracle=new an(i),this.stateDeco=M.facet(rD).filter((M=>"function"!=typeof M)),this.heightMap=zn.empty().applyChanges(this.stateDeco,Oe.empty,this.heightOracle.setDoc(M.doc),[new hD(0,0,0,M.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Lu.set(this.lineGaps.map((M=>M.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let M=[this.viewport],{main:i}=this.state.selection;for(let t=0;t<=1;t++){let e=t?i.head:i.anchor;if(!M.some((({from:M,to:i})=>e>=M&&e<=i))){let{from:i,to:t}=this.lineBlockAt(e);M.push(new bn(i,t))}}this.viewports=M.sort(((M,i)=>M.from-i.from)),this.scaler=this.heightMap.height<=7e6?fn:new Wn(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(M=>{this.viewportLines.push(1==this.scaler.scale?M:Vn(M,this.scaler))}))}update(M,i=null){this.state=M.state;let t=this.stateDeco;this.stateDeco=this.state.facet(rD).filter((M=>"function"!=typeof M));let e=M.changedRanges,N=hD.extendWithRanges(e,function(M,i,t){let e=new En;return XN.compare(M,i,t,e,0),e.changes}(t,this.stateDeco,M?M.changes:Ge.empty(this.state.doc.length))),s=this.heightMap.height,u=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,M.startState.doc,this.heightOracle.setDoc(this.state.doc),N),this.heightMap.height!=s&&(M.flags|=2),u?(this.scrollAnchorPos=M.changes.mapPos(u.from,-1),this.scrollAnchorHeight=u.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let D=N.length?this.mapViewport(this.viewport,M.changes):this.viewport;(i&&(i.range.head<D.from||i.range.head>D.to)||!this.viewportIsAppropriate(D))&&(D=this.getViewport(0,i));let n=!M.changes.empty||2&M.flags||D.from!=this.viewport.from||D.to!=this.viewport.to;this.viewport=D,this.updateForViewport(),n&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,M.changes))),M.flags|=this.computeVisibleRanges(),i&&(this.scrollTarget=i),!this.mustEnforceCursorAssoc&&M.selectionSet&&M.view.lineWrapping&&M.state.selection.main.empty&&M.state.selection.main.assoc&&!M.state.facet(iD)&&(this.mustEnforceCursorAssoc=!0)}measure(M){let i=M.contentDOM,t=window.getComputedStyle(i),e=this.heightOracle,N=t.whiteSpace;this.defaultTextDirection="rtl"==t.direction?Eu.RTL:Eu.LTR;let s=this.heightOracle.mustRefreshForWrapping(N),u=i.getBoundingClientRect(),D=s||this.mustMeasureContent||this.contentDOMHeight!=u.height;this.contentDOMHeight=u.height,this.mustMeasureContent=!1;let n=0,j=0;if(u.width&&u.height){let{scaleX:M,scaleY:t}=Qs(i,u);this.scaleX==M&&this.scaleY==t||(this.scaleX=M,this.scaleY=t,n|=8,s=D=!0)}let I=(parseInt(t.paddingTop)||0)*this.scaleY,l=(parseInt(t.paddingBottom)||0)*this.scaleY;this.paddingTop==I&&this.paddingBottom==l||(this.paddingTop=I,this.paddingBottom=l,n|=10),this.editorWidth!=M.scrollDOM.clientWidth&&(e.lineWrapping&&(D=!0),this.editorWidth=M.scrollDOM.clientWidth,n|=8);let r=M.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=r&&(this.scrollAnchorHeight=-1,this.scrollTop=r),this.scrolledToBottom=Ys(M.scrollDOM);let o=(this.printing?kn:Qn)(i,this.paddingTop),g=o.top-this.pixelViewport.top,c=o.bottom-this.pixelViewport.bottom;this.pixelViewport=o;let a=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(a!=this.inView&&(this.inView=a,a&&(D=!0)),!this.inView&&!this.scrollTarget)return 0;let O=u.width;if(this.contentDOMWidth==O&&this.editorHeight==M.scrollDOM.clientHeight||(this.contentDOMWidth=u.width,this.editorHeight=M.scrollDOM.clientHeight,n|=8),D){let i=M.docView.measureVisibleLineHeights(this.viewport);if(e.mustRefreshForHeights(i)&&(s=!0),s||e.lineWrapping&&Math.abs(O-this.contentDOMWidth)>e.charWidth){let{lineHeight:t,charWidth:u,textHeight:D}=M.docView.measureTextSize();s=t>0&&e.refresh(N,t,u,D,O/u,i),s&&(M.docView.minWidth=0,n|=8)}g>0&&c>0?j=Math.max(g,c):g<0&&c<0&&(j=Math.min(g,c)),e.heightChanged=!1;for(let t of this.viewports){let N=t.from==this.viewport.from?i:M.docView.measureVisibleLineHeights(t);this.heightMap=(s?zn.empty().applyChanges(this.stateDeco,Oe.empty,this.heightOracle,[new hD(0,0,0,M.state.doc.length)]):this.heightMap).updateHeight(e,0,s,new On(t.from,N))}e.heightChanged&&(n|=2)}let T=!this.viewportIsAppropriate(this.viewport,j)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return T&&(this.viewport=this.getViewport(j,this.scrollTarget)),this.updateForViewport(),(2&n||T)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,M)),n|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,M.docView.enforceCursorAssoc()),n}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(M,i){let t=.5-Math.max(-.5,Math.min(.5,M/1e3/2)),e=this.heightMap,N=this.heightOracle,{visibleTop:s,visibleBottom:u}=this,D=new bn(e.lineAt(s-1e3*t,Ln.ByHeight,N,0,0).from,e.lineAt(u+1e3*(1-t),Ln.ByHeight,N,0,0).to);if(i){let{head:M}=i.range;if(M<D.from||M>D.to){let t,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=e.lineAt(M,Ln.ByPos,N,0,0);t="center"==i.y?(u.top+u.bottom)/2-s/2:"start"==i.y||"nearest"==i.y&&M<D.from?u.top:u.bottom-s,D=new bn(e.lineAt(t-500,Ln.ByHeight,N,0,0).from,e.lineAt(t+s+500,Ln.ByHeight,N,0,0).to)}}return D}mapViewport(M,i){let t=i.mapPos(M.from,-1),e=i.mapPos(M.to,1);return new bn(this.heightMap.lineAt(t,Ln.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(e,Ln.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:M,to:i},t=0){if(!this.inView)return!0;let{top:e}=this.heightMap.lineAt(M,Ln.ByPos,this.heightOracle,0,0),{bottom:N}=this.heightMap.lineAt(i,Ln.ByPos,this.heightOracle,0,0),{visibleTop:s,visibleBottom:u}=this;return(0==M||e<=s-Math.max(10,Math.min(-t,250)))&&(i==this.state.doc.length||N>=u+Math.max(10,Math.min(t,250)))&&e>s-2e3&&N<u+2e3}mapLineGaps(M,i){if(!M.length||i.empty)return M;let t=[];for(let e of M)i.touchesRange(e.from,e.to)||t.push(new Cn(i.mapPos(e.from),i.mapPos(e.to),e.size));return t}ensureLineGaps(M,i){let t=this.heightOracle.lineWrapping,e=t?1e4:2e3,N=e>>1,s=e<<1;if(this.defaultTextDirection!=Eu.LTR&&!t)return[];let u=[],D=(e,s,n,j)=>{if(s-e<N)return;let I=this.state.selection.main,l=[I.from];I.empty||l.push(I.to);for(let M of l)if(M>e&&M<s)return D(e,M-10,n,j),void D(M+10,s,n,j);let r=function(M,i){for(let t of M)if(i(t))return t;return}(M,(M=>M.from>=n.from&&M.to<=n.to&&Math.abs(M.from-e)<N&&Math.abs(M.to-s)<N&&!l.some((i=>M.from<i&&M.to>i))));if(!r){if(s<n.to&&i&&t&&i.visibleRanges.some((M=>M.from<=s&&M.to>=s))){let M=i.moveToLineBoundary($e.cursor(s),!1,!0).head;M>e&&(s=M)}r=new Cn(e,s,this.gapSize(n,e,s,j))}u.push(r)};for(let M of this.viewportLines){if(M.length<s)continue;let i=Zn(M.from,M.to,this.stateDeco);if(i.total<s)continue;let N,u,n=this.scrollTarget?this.scrollTarget.range.head:null;if(t){let t,s,D=e/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=n){let e=Yn(i,n),N=((this.visibleBottom-this.visibleTop)/2+D)/M.height;t=e-N,s=e+N}else t=(this.visibleTop-M.top-D)/M.height,s=(this.visibleBottom-M.top+D)/M.height;N=mn(i,t),u=mn(i,s)}else{let M,t,s=i.total*this.heightOracle.charWidth,D=e*this.heightOracle.charWidth;if(null!=n){let e=Yn(i,n),N=((this.pixelViewport.right-this.pixelViewport.left)/2+D)/s;M=e-N,t=e+N}else M=(this.pixelViewport.left-D)/s,t=(this.pixelViewport.right+D)/s;N=mn(i,M),u=mn(i,t)}N>M.from&&D(M.from,N,M,i),u<M.to&&D(u,M.to,M,i)}return u}gapSize(M,i,t,e){let N=Yn(e,t)-Yn(e,i);return this.heightOracle.lineWrapping?M.height*N:e.total*this.heightOracle.charWidth*N}updateLineGaps(M){Cn.same(M,this.lineGaps)||(this.lineGaps=M,this.lineGapDeco=Lu.set(M.map((M=>M.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let M=this.stateDeco;this.lineGaps.length&&(M=M.concat(this.lineGapDeco));let i=[];XN.spans(M,this.viewport.from,this.viewport.to,{span(M,t){i.push({from:M,to:t})},point(){}},20);let t=i.length!=this.visibleRanges.length||this.visibleRanges.some(((M,t)=>M.from!=i[t].from||M.to!=i[t].to));return this.visibleRanges=i,t?4:0}lineBlockAt(M){return M>=this.viewport.from&&M<=this.viewport.to&&this.viewportLines.find((i=>i.from<=M&&i.to>=M))||Vn(this.heightMap.lineAt(M,Ln.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(M){return Vn(this.heightMap.lineAt(this.scaler.fromDOM(M),Ln.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(M){let i=this.lineBlockAtHeight(M+8);return i.from>=this.viewport.from||this.viewportLines[0].top-M>200?i:this.viewportLines[0]}elementAtHeight(M){return Vn(this.heightMap.blockAt(this.scaler.fromDOM(M),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class bn{constructor(M,i){this.from=M,this.to=i}}function Zn(M,i,t){let e=[],N=M,s=0;return XN.spans(t,M,i,{span(){},point(M,i){M>N&&(e.push({from:N,to:M}),s+=M-N),N=i}},20),N<i&&(e.push({from:N,to:i}),s+=i-N),{total:s,ranges:e}}function mn({total:M,ranges:i},t){if(t<=0)return i[0].from;if(t>=1)return i[i.length-1].to;let e=Math.floor(M*t);for(let M=0;;M++){let{from:t,to:N}=i[M],s=N-t;if(e<=s)return t+e;e-=s}}function Yn(M,i){let t=0;for(let{from:e,to:N}of M.ranges){if(i<=N){t+=i-e;break}t+=N-e}return t/M.total}const fn={toDOM:M=>M,fromDOM:M=>M,scale:1};class Wn{constructor(M,i,t){let e=0,N=0,s=0;this.viewports=t.map((({from:t,to:N})=>{let s=i.lineAt(t,Ln.ByPos,M,0,0).top,u=i.lineAt(N,Ln.ByPos,M,0,0).bottom;return e+=u-s,{from:t,to:N,top:s,bottom:u,domTop:0,domBottom:0}})),this.scale=(7e6-e)/(i.height-e);for(let M of this.viewports)M.domTop=s+(M.top-N)*this.scale,s=M.domBottom=M.domTop+(M.bottom-M.top),N=M.bottom}toDOM(M){for(let i=0,t=0,e=0;;i++){let N=i<this.viewports.length?this.viewports[i]:null;if(!N||M<N.top)return e+(M-t)*this.scale;if(M<=N.bottom)return N.domTop+(M-N.top);t=N.bottom,e=N.domBottom}}fromDOM(M){for(let i=0,t=0,e=0;;i++){let N=i<this.viewports.length?this.viewports[i]:null;if(!N||M<N.domTop)return t+(M-e)/this.scale;if(M<=N.domBottom)return N.top+(M-N.domTop);t=N.bottom,e=N.domBottom}}}function Vn(M,i){if(1==i.scale)return M;let t=i.toDOM(M.top),e=i.toDOM(M.bottom);return new Tn(M.from,M.length,t,e-t,Array.isArray(M._content)?M._content.map((M=>Vn(M,i))):M._content)}const vn=Ke.define({combine:M=>M.join(" ")}),Gn=Ke.define({combine:M=>M.indexOf(!0)>-1}),Pn=Is.newName(),Rn=Is.newName(),Bn=Is.newName(),Fn={"&light":"."+Rn,"&dark":"."+Bn};function Xn(M,i,t){return new Is(i,{finish:i=>/&/.test(i)?i.replace(/&\w*/,(i=>{if("&"==i)return M;if(!t||!t[i])throw new RangeError(`Unsupported selector: ${i}`);return t[i]})):M+" "+i})}const Jn=Xn("."+Pn,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Fn),Hn="";class $n{constructor(M,i){this.points=M,this.text="",this.lineSeparator=i.facet(vN.lineSeparator)}append(M){this.text+=M}lineBreak(){this.text+=Hn}readRange(M,i){if(!M)return this;let t=M.parentNode;for(let e=M;;){this.findPointBefore(t,e);let M=this.text.length;this.readNode(e);let N=e.nextSibling;if(N==i)break;let s=Vs.get(e),u=Vs.get(N);(s&&u?s.breakAfter:(s?s.breakAfter:qn(e))||qn(N)&&("BR"!=e.nodeName||e.cmIgnore)&&this.text.length>M)&&this.lineBreak(),e=N}return this.findPointBefore(t,i),this}readTextNode(M){let i=M.nodeValue;for(let t of this.points)t.node==M&&(t.pos=this.text.length+Math.min(t.offset,i.length));for(let t=0,e=this.lineSeparator?null:/\r\n?|\n/g;;){let N,s=-1,u=1;if(this.lineSeparator?(s=i.indexOf(this.lineSeparator,t),u=this.lineSeparator.length):(N=e.exec(i))&&(s=N.index,u=N[0].length),this.append(i.slice(t,s<0?i.length:s)),s<0)break;if(this.lineBreak(),u>1)for(let i of this.points)i.node==M&&i.pos>this.text.length&&(i.pos-=u-1);t=s+u}}readNode(M){if(M.cmIgnore)return;let i=Vs.get(M),t=i&&i.overrideDOMText;if(null!=t){this.findPointInside(M,t.length);for(let M=t.iter();!M.next().done;)M.lineBreak?this.lineBreak():this.append(M.value)}else 3==M.nodeType?this.readTextNode(M):"BR"==M.nodeName?M.nextSibling&&this.lineBreak():1==M.nodeType&&this.readRange(M.firstChild,null)}findPointBefore(M,i){for(let t of this.points)t.node==M&&M.childNodes[t.offset]==i&&(t.pos=this.text.length)}findPointInside(M,i){for(let t of this.points)(3==M.nodeType?t.node==M:M.contains(t.node))&&(t.pos=this.text.length+(_n(M,t.node,t.offset)?i:0))}}function _n(M,i,t){for(;;){if(!i||t<ws(i))return!1;if(i==M)return!0;t=As(i)+1,i=i.parentNode}}function qn(M){return 1==M.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(M.nodeName)}class Kn{constructor(M,i){this.node=M,this.offset=i,this.pos=-1}}class Mj{constructor(M,i,t,e){this.typeOver=e,this.bounds=null,this.text="";let{impreciseHead:N,impreciseAnchor:s}=M.docView;if(M.state.readOnly&&i>-1)this.newSel=null;else if(i>-1&&(this.bounds=M.docView.domBoundsAround(i,t,0))){let i=N||s?[]:function(M){let i=[];if(M.root.activeElement!=M.contentDOM)return i;let{anchorNode:t,anchorOffset:e,focusNode:N,focusOffset:s}=M.observer.selectionRange;t&&(i.push(new Kn(t,e)),N==t&&s==e||i.push(new Kn(N,s)));return i}(M),t=new $n(i,M.state);t.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=t.text,this.newSel=function(M,i){if(0==M.length)return null;let t=M[0].pos,e=2==M.length?M[1].pos:t;return t>-1&&e>-1?$e.single(t+i,e+i):null}(i,this.bounds.from)}else{let i=M.observer.selectionRange,t=N&&N.node==i.focusNode&&N.offset==i.focusOffset||!hs(M.contentDOM,i.focusNode)?M.state.selection.main.head:M.docView.posFromDOM(i.focusNode,i.focusOffset),e=s&&s.node==i.anchorNode&&s.offset==i.anchorOffset||!hs(M.contentDOM,i.anchorNode)?M.state.selection.main.anchor:M.docView.posFromDOM(i.anchorNode,i.anchorOffset),u=M.viewport;if(tu.ios&&M.state.selection.main.empty&&t!=e&&(u.from>0||u.to<M.state.doc.length)){let i=u.from-Math.min(t,e),N=u.to-Math.max(t,e);0!=i&&1!=i||0!=N&&-1!=N||(t=0,e=M.state.doc.length)}this.newSel=$e.single(e,t)}}}function ij(M,i){let t,{newSel:e}=i,N=M.state.selection.main,s=M.inputState.lastKeyTime>Date.now()-100?M.inputState.lastKeyCode:-1;if(i.bounds){let{from:e,to:u}=i.bounds,D=N.from,n=null;(8===s||tu.android&&i.text.length<u-e)&&(D=N.to,n="end");let j=function(M,i,t,e){let N=Math.min(M.length,i.length),s=0;for(;s<N&&M.charCodeAt(s)==i.charCodeAt(s);)s++;if(s==N&&M.length==i.length)return null;let u=M.length,D=i.length;for(;u>0&&D>0&&M.charCodeAt(u-1)==i.charCodeAt(D-1);)u--,D--;if("end"==e){t-=u+Math.max(0,s-Math.min(u,D))-s}if(u<s&&M.length<i.length){s-=t<=s&&t>=u?s-t:0,D=s+(D-u),u=s}else if(D<s){s-=t<=s&&t>=D?s-t:0,u=s+(u-D),D=s}return{from:s,toA:u,toB:D}}(M.state.doc.sliceString(e,u,Hn),i.text,D-e,n);j&&(tu.chrome&&13==s&&j.toB==j.from+2&&i.text.slice(j.from,j.toB)==Hn+Hn&&j.toB--,t={from:e+j.from,to:e+j.toA,insert:Oe.of(i.text.slice(j.from,j.toB).split(Hn))})}else e&&(!M.hasFocus&&M.state.facet(sD)||e.main.eq(N))&&(e=null);if(!t&&!e)return!1;if(!t&&i.typeOver&&!N.empty&&e&&e.main.empty?t={from:N.from,to:N.to,insert:M.state.doc.slice(N.from,N.to)}:t&&t.from>=N.from&&t.to<=N.to&&(t.from!=N.from||t.to!=N.to)&&N.to-N.from-(t.to-t.from)<=4?t={from:N.from,to:N.to,insert:M.state.doc.slice(N.from,t.from).append(t.insert).append(M.state.doc.slice(t.to,N.to))}:(tu.mac||tu.android)&&t&&t.from==t.to&&t.from==N.head-1&&/^\. ?$/.test(t.insert.toString())&&"off"==M.contentDOM.getAttribute("autocorrect")?(e&&2==t.insert.length&&(e=$e.single(e.main.anchor-1,e.main.head-1)),t={from:N.from,to:N.to,insert:Oe.of([" "])}):tu.chrome&&t&&t.from==t.to&&t.from==N.head&&"\n "==t.insert.toString()&&M.lineWrapping&&(e&&(e=$e.single(e.main.anchor-1,e.main.head-1)),t={from:N.from,to:N.to,insert:Oe.of([" "])}),t){if(tu.ios&&M.inputState.flushIOSKey())return!0;if(tu.android&&(t.from==N.from&&t.to==N.to&&1==t.insert.length&&2==t.insert.lines&&Zs(M.contentDOM,"Enter",13)||(t.from==N.from-1&&t.to==N.to&&0==t.insert.length||8==s&&t.insert.length<t.to-t.from&&t.to>N.head)&&Zs(M.contentDOM,"Backspace",8)||t.from==N.from&&t.to==N.to+1&&0==t.insert.length&&Zs(M.contentDOM,"Delete",46)))return!0;let i,u=t.insert.toString();M.inputState.composing>=0&&M.inputState.composing++;let D=()=>i||(i=function(M,i,t){let e,N=M.state,s=N.selection.main;if(i.from>=s.from&&i.to<=s.to&&i.to-i.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==i.from+i.insert.length)&&M.inputState.composing<0){let t=s.from<i.from?N.sliceDoc(s.from,i.from):"",u=s.to>i.to?N.sliceDoc(i.to,s.to):"";e=N.replaceSelection(M.state.toText(t+i.insert.sliceString(0,void 0,M.state.lineBreak)+u))}else{let u=N.changes(i),D=t&&t.main.to<=u.newLength?t.main:void 0;if(N.selection.ranges.length>1&&M.inputState.composing>=0&&i.to<=s.to&&i.to>=s.to-10){let n,j=M.state.sliceDoc(i.from,i.to),I=t&&AD(M,t.main.head);if(I){let M=i.insert.length-(i.to-i.from);n={from:I.from,to:I.to-M}}else n=M.state.doc.lineAt(s.head);let l=s.to-i.to,r=s.to-s.from;e=N.changeByRange((t=>{if(t.from==s.from&&t.to==s.to)return{changes:u,range:D||t.map(u)};let e=t.to-l,I=e-j.length;if(t.to-t.from!=r||M.state.sliceDoc(I,e)!=j||t.to>=n.from&&t.from<=n.to)return{range:t};let o=N.changes({from:I,to:e,insert:i.insert}),g=t.to-s.to;return{changes:o,range:D?$e.range(Math.max(0,D.anchor+g),Math.max(0,D.head+g)):t.map(o)}}))}else e={changes:u,selection:D&&N.selection.replaceRange(D)}}let u="input.type";(M.composing||M.inputState.compositionPendingChange&&M.inputState.compositionEndedAt>Date.now()-50)&&(M.inputState.compositionPendingChange=!1,u+=".compose",M.inputState.compositionFirstChange&&(u+=".start",M.inputState.compositionFirstChange=!1));return N.update(e,{userEvent:u,scrollIntoView:!0})}(M,t,e));return M.state.facet(qu).some((i=>i(M,t.from,t.to,u,D)))||M.dispatch(D()),!0}if(e&&!e.main.eq(N)){let i=!1,t="select";return M.inputState.lastSelectionTime>Date.now()-50&&("select"==M.inputState.lastSelectionOrigin&&(i=!0),t=M.inputState.lastSelectionOrigin),M.dispatch({selection:e,scrollIntoView:i,userEvent:t}),!0}return!1}const tj={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ej=tu.ie&&tu.ie_version<=11;class Nj{constructor(M){this.view=M,this.active=!1,this.selectionRange=new ks,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=M.contentDOM,this.observer=new MutationObserver((i=>{for(let M of i)this.queue.push(M);(tu.ie&&tu.ie_version<=11||tu.ios&&M.composing)&&i.some((M=>"childList"==M.type&&M.removedNodes.length||"characterData"==M.type&&M.oldValue.length>M.target.nodeValue.length))?this.flushSoon():this.flush()})),ej&&(this.onCharData=M=>{this.queue.push({target:M.target,type:"characterData",oldValue:M.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var M;(null===(M=this.view.docView)||void 0===M?void 0:M.lastUpdate)<Date.now()-75&&this.onResize()})),this.resizeScroll.observe(M.scrollDOM)),this.addWindowListeners(this.win=M.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((M=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),M.length>0&&M[M.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((M=>{M.length>0&&M[M.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(M){this.view.inputState.runHandlers("scroll",M),this.intersecting&&this.view.measure()}onScroll(M){this.intersecting&&this.flush(!1),this.onScrollChanged(M)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500)}updateGaps(M){if(this.gapIntersection&&(M.length!=this.gaps.length||this.gaps.some(((i,t)=>i!=M[t])))){this.gapIntersection.disconnect();for(let i of M)this.gapIntersection.observe(i);this.gaps=M}}onSelectionChange(M){let i=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:t}=this,e=this.selectionRange;if(t.state.facet(sD)?t.root.activeElement!=this.dom:!zs(t.dom,e))return;let N=e.anchorNode&&t.docView.nearest(e.anchorNode);N&&N.ignoreEvent(M)?i||(this.selectionChanged=!1):(tu.ie&&tu.ie_version<=11||tu.android&&tu.chrome)&&!t.state.selection.main.empty&&e.focusNode&&ds(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:M}=this,i=tu.safari&&11==M.root.nodeType&&function(M){let i=M.activeElement;for(;i&&i.shadowRoot;)i=i.shadowRoot.activeElement;return i}(this.dom.ownerDocument)==this.dom&&function(M){let i=null;function t(M){M.preventDefault(),M.stopImmediatePropagation(),i=M.getTargetRanges()[0]}if(M.contentDOM.addEventListener("beforeinput",t,!0),M.dom.ownerDocument.execCommand("indent"),M.contentDOM.removeEventListener("beforeinput",t,!0),!i)return null;let e=i.startContainer,N=i.startOffset,s=i.endContainer,u=i.endOffset,D=M.docView.domAtPos(M.state.selection.main.anchor);ds(D.node,D.offset,s,u)&&([e,N,s,u]=[s,u,e,N]);return{anchorNode:e,anchorOffset:N,focusNode:s,focusOffset:u}}(this.view)||Ls(M.root);if(!i||this.selectionRange.eq(i))return!1;let t=zs(this.dom,i);return t&&!this.selectionChanged&&M.inputState.lastFocusTime>Date.now()-200&&M.inputState.lastTouchTime<Date.now()-300&&function(M,i){let t=i.focusNode,e=i.focusOffset;if(!t||i.anchorNode!=t||i.anchorOffset!=e)return!1;for(e=Math.min(e,ws(t));;)if(e){if(1!=t.nodeType)return!1;let M=t.childNodes[e-1];"false"==M.contentEditable?e--:(t=M,e=ws(t))}else{if(t==M)return!0;e=As(t),t=t.parentNode}}(this.dom,i)?(this.view.inputState.lastFocusTime=0,M.docView.updateSelection(),!1):(this.selectionRange.setRange(i),t&&(this.selectionChanged=!0),!0)}setSelectionRange(M,i){this.selectionRange.set(M.node,M.offset,i.node,i.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let M=0,i=null;for(let t=this.dom;t;)if(1==t.nodeType)!i&&M<this.scrollTargets.length&&this.scrollTargets[M]==t?M++:i||(i=this.scrollTargets.slice(0,M)),i&&i.push(t),t=t.assignedSlot||t.parentNode;else{if(11!=t.nodeType)break;t=t.host}if(M<this.scrollTargets.length&&!i&&(i=this.scrollTargets.slice(0,M)),i){for(let M of this.scrollTargets)M.removeEventListener("scroll",this.onScroll);for(let M of this.scrollTargets=i)M.addEventListener("scroll",this.onScroll)}}ignore(M){if(!this.active)return M();try{return this.stop(),M()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,tj),ej&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),ej&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(M,i){var t;if(!this.delayedAndroidKey){let M=()=>{let M=this.delayedAndroidKey;if(M){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=M.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&M.force&&Zs(this.dom,M.key,M.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(M)}this.delayedAndroidKey&&"Enter"!=M||(this.delayedAndroidKey={key:M,keyCode:i,force:this.lastChange<Date.now()-50||!!(null===(t=this.delayedAndroidKey)||void 0===t?void 0:t.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame((()=>{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let M of this.observer.takeRecords())this.queue.push(M);return this.queue}processRecords(){let M=this.pendingRecords();M.length&&(this.queue=[]);let i=-1,t=-1,e=!1;for(let N of M){let M=this.readMutation(N);M&&(M.typeOver&&(e=!0),-1==i?({from:i,to:t}=M):(i=Math.min(M.from,i),t=Math.max(M.to,t)))}return{from:i,to:t,typeOver:e}}readChange(){let{from:M,to:i,typeOver:t}=this.processRecords(),e=this.selectionChanged&&zs(this.dom,this.selectionRange);if(M<0&&!e)return null;M>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let N=new Mj(this.view,M,i,t);return this.view.docView.domChanged={newSel:N.newSel?N.newSel.main:null},N}flush(M=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;M&&this.readSelectionRange();let i=this.readChange();if(!i)return this.view.requestMeasure(),!1;let t=this.view.state,e=ij(this.view,i);return this.view.state==t&&this.view.update([]),e}readMutation(M){let i=this.view.docView.nearest(M.target);if(!i||i.ignoreMutation(M))return null;if(i.markDirty("attributes"==M.type),"attributes"==M.type&&(i.flags|=4),"childList"==M.type){let t=sj(i,M.previousSibling||M.target.previousSibling,-1),e=sj(i,M.nextSibling||M.target.nextSibling,1);return{from:t?i.posAfter(t):i.posAtStart,to:e?i.posBefore(e):i.posAtEnd,typeOver:!1}}return"characterData"==M.type?{from:i.posAtStart,to:i.posAtEnd,typeOver:M.target.nodeValue==M.oldValue}:null}setWindow(M){M!=this.win&&(this.removeWindowListeners(this.win),this.win=M,this.addWindowListeners(this.win))}addWindowListeners(M){M.addEventListener("resize",this.onResize),M.addEventListener("beforeprint",this.onPrint),M.addEventListener("scroll",this.onScroll),M.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(M){M.removeEventListener("scroll",this.onScroll),M.removeEventListener("resize",this.onResize),M.removeEventListener("beforeprint",this.onPrint),M.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var M,i,t;this.stop(),null===(M=this.intersection)||void 0===M||M.disconnect(),null===(i=this.gapIntersection)||void 0===i||i.disconnect(),null===(t=this.resizeScroll)||void 0===t||t.disconnect();for(let M of this.scrollTargets)M.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function sj(M,i,t){for(;i;){let e=Vs.get(i);if(e&&e.parent==M)return e;let N=i.parentNode;i=N!=M.dom?N:t>0?i.nextSibling:i.previousSibling}return null}class uj{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(M={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),M.parent&&M.parent.appendChild(this.dom);let{dispatch:i}=M;this.dispatchTransactions=M.dispatchTransactions||i&&(M=>M.forEach((M=>i(M,this))))||(M=>this.update(M)),this.dispatch=this.dispatch.bind(this),this._root=M.root||function(M){for(;M;){if(M&&(9==M.nodeType||11==M.nodeType&&M.host))return M;M=M.assignedSlot||M.parentNode}return null}(M.parent)||document,this.viewState=new Un(M.state||vN.create(M)),M.scrollTo&&M.scrollTo.is(eD)&&(this.viewState.scrollTarget=M.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(DD).map((M=>new jD(M)));for(let M of this.plugins)M.update(this);this.observer=new Nj(this),this.inputState=new VD(this),this.inputState.ensureHandlers(this.plugins),this.docView=new yD(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...M){let i=1==M.length&&M[0]instanceof kN?M:1==M.length&&Array.isArray(M[0])?M[0]:[this.state.update(...M)];this.dispatchTransactions(i,this)}update(M){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i,t=!1,e=!1,N=this.state;for(let i of M){if(i.startState!=N)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");N=i.state}if(this.destroyed)return void(this.viewState.state=N);let s=this.hasFocus,u=0,D=null;M.some((M=>M.annotation(ln)))?(this.inputState.notifiedFocused=s,u=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,D=rn(N,s),D||(u=1));let n=this.observer.delayedAndroidKey,j=null;if(n?(this.observer.clearDelayedAndroidKey(),j=this.observer.readChange(),(j&&!this.state.doc.eq(N.doc)||!this.state.selection.eq(N.selection))&&(j=null)):this.observer.clear(),N.facet(vN.phrases)!=this.state.facet(vN.phrases))return this.setState(N);i=zD.create(this,N,M),i.flags|=u;let I=this.viewState.scrollTarget;try{this.updateState=2;for(let i of M){if(I&&(I=I.map(i.changes)),i.scrollIntoView){let{main:M}=i.state.selection;I=new tD(M.empty?M:$e.cursor(M.head,M.head>M.anchor?-1:1))}for(let M of i.effects)M.is(eD)&&(I=M.value.clip(this.state))}this.viewState.update(i,I),this.bidiCache=jj.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(LD)!=this.styleModules&&this.mountStyles(),e=this.updateAttrs(),this.showAnnouncements(M),this.docView.updateSelection(t,M.some((M=>M.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(i.startState.facet(vn)!=i.state.facet(vn)&&(this.viewState.mustMeasureContent=!0),(t||e||I||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!i.empty)for(let M of this.state.facet(_u))try{M(i)}catch(M){ND(this.state,M,"update listener")}(D||j)&&Promise.resolve().then((()=>{D&&this.state==D.startState&&this.dispatch(D),j&&!ij(this,j)&&n.force&&Zs(this.contentDOM,n.key,n.keyCode)}))}setState(M){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=M);this.updateState=2;let i=this.hasFocus;try{for(let M of this.plugins)M.destroy(this);this.viewState=new Un(M),this.plugins=M.facet(DD).map((M=>new jD(M))),this.pluginMap.clear();for(let M of this.plugins)M.update(this);this.docView.destroy(),this.docView=new yD(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(M){let i=M.startState.facet(DD),t=M.state.facet(DD);if(i!=t){let e=[];for(let N of t){let t=i.indexOf(N);if(t<0)e.push(new jD(N));else{let i=this.plugins[t];i.mustUpdate=M,e.push(i)}}for(let i of this.plugins)i.mustUpdate!=M&&i.destroy(this);this.plugins=e,this.pluginMap.clear()}else for(let i of this.plugins)i.mustUpdate=M;for(let M=0;M<this.plugins.length;M++)this.plugins[M].update(this);i!=t&&this.inputState.ensureHandlers(this.plugins)}measure(M=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,M&&this.observer.forceFlush();let i=null,t=this.scrollDOM,e=t.scrollTop*this.scaleY,{scrollAnchorPos:N,scrollAnchorHeight:s}=this.viewState;Math.abs(e-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let M=0;;M++){if(s<0)if(Ys(t))N=-1,s=this.viewState.heightMap.height;else{let M=this.viewState.scrollAnchorAt(e);N=M.from,s=M.top}this.updateState=1;let u=this.viewState.measure(this);if(!u&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(M>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let D=[];4&u||([this.measureRequests,D]=[D,this.measureRequests]);let n=D.map((M=>{try{return M.read(this)}catch(M){return ND(this.state,M),nj}})),j=zD.create(this,this.state,[]),I=!1;j.flags|=u,i?i.flags|=u:i=j,this.updateState=2,j.empty||(this.updatePlugins(j),this.inputState.update(j),this.updateAttrs(),I=this.docView.update(j));for(let M=0;M<D.length;M++)if(n[M]!=nj)try{let i=D[M];i.write&&i.write(n[M],this)}catch(M){ND(this.state,M)}if(I&&this.docView.updateSelection(!0),!j.viewportChanged&&0==this.measureRequests.length){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,s=-1;continue}{let M=(N<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(N).top)-s;if(M>1||M<-1){e+=M,t.scrollTop=e/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let M of this.state.facet(_u))M(i)}get themeClasses(){return Pn+" "+(this.state.facet(Gn)?Bn:Rn)+" "+this.state.facet(vn)}updateAttrs(){let M=Ij(this,ID,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(sD)?"true":"false",class:"cm-content",style:`${tu.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),Ij(this,lD,i);let t=this.observer.ignore((()=>{let t=ou(this.contentDOM,this.contentAttrs,i),e=ou(this.dom,this.editorAttrs,M);return t||e}));return this.editorAttrs=M,this.contentAttrs=i,t}showAnnouncements(M){let i=!0;for(let t of M)for(let M of t.effects)if(M.is(uj.announce)){i&&(this.announceDOM.textContent=""),i=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=M.value}}mountStyles(){this.styleModules=this.state.facet(LD);let M=this.state.facet(uj.cspNonce);Is.mount(this.root,this.styleModules.concat(Jn).reverse(),M?{nonce:M}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(M){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),M){if(this.measureRequests.indexOf(M)>-1)return;if(null!=M.key)for(let i=0;i<this.measureRequests.length;i++)if(this.measureRequests[i].key===M.key)return void(this.measureRequests[i]=M);this.measureRequests.push(M)}}plugin(M){let i=this.pluginMap.get(M);return(void 0===i||i&&i.spec!=M)&&this.pluginMap.set(M,i=this.plugins.find((i=>i.spec==M))||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(M){return this.readMeasured(),this.viewState.elementAtHeight(M)}lineBlockAtHeight(M){return this.readMeasured(),this.viewState.lineBlockAtHeight(M)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(M){return this.viewState.lineBlockAt(M)}get contentHeight(){return this.viewState.contentHeight}moveByChar(M,i,t){return WD(this,M,YD(this,M,i,t))}moveByGroup(M,i){return WD(this,M,YD(this,M,i,(i=>function(M,i,t){let e=M.state.charCategorizer(i),N=e(t);return M=>{let i=e(M);return N==YN.Space&&(N=i),N==i}}(this,M.head,i))))}visualLineSide(M,i){let t=this.bidiSpans(M),e=this.textDirectionAt(M.from),N=t[i?t.length-1:0];return $e.cursor(N.side(i,e)+M.from,N.forward(!i,e)?1:-1)}moveToLineBoundary(M,i,t=!0){return function(M,i,t,e){let N=mD(M,i.head),s=e&&N.type==Tu.Text&&(M.lineWrapping||N.widgetLineBreaks)?M.coordsAtPos(i.assoc<0&&i.head>N.from?i.head-1:i.head):null;if(s){let i=M.dom.getBoundingClientRect(),e=M.textDirectionAt(N.from),u=M.posAtCoords({x:t==(e==Eu.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(null!=u)return $e.cursor(u,t?-1:1)}return $e.cursor(t?N.to:N.from,t?-1:1)}(this,M,i,t)}moveVertically(M,i,t){return WD(this,M,function(M,i,t,e){let N=i.head,s=t?1:-1;if(N==(t?M.state.doc.length:0))return $e.cursor(N,i.assoc);let u,D=i.goalColumn,n=M.contentDOM.getBoundingClientRect(),j=M.coordsAtPos(N,i.assoc||-1),I=M.documentTop;if(j)null==D&&(D=j.left-n.left),u=s<0?j.top:j.bottom;else{let i=M.viewState.lineBlockAt(N);null==D&&(D=Math.min(n.right-n.left,M.defaultCharacterWidth*(N-i.from))),u=(s<0?i.top:i.bottom)+I}let l=n.left+D,r=null!=e?e:M.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let t=u+(r+i)*s,e=bD(M,{x:l,y:t},!1,s);if(t<n.top||t>n.bottom||(s<0?e<N:e>N)){let i=M.docView.coordsForChar(e),N=!i||t<i.top?-1:1;return $e.cursor(e,N,void 0,D)}}}(this,M,i,t))}domAtPos(M){return this.docView.domAtPos(M)}posAtDOM(M,i=0){return this.docView.posFromDOM(M,i)}posAtCoords(M,i=!0){return this.readMeasured(),bD(this,M,i)}coordsAtPos(M,i=1){this.readMeasured();let t=this.docView.coordsAt(M,i);if(!t||t.left==t.right)return t;let e=this.state.doc.lineAt(M),N=this.bidiSpans(e);return Ss(t,N[fu.find(N,M-e.from,-1,i)].dir==Eu.LTR==i>0)}coordsForChar(M){return this.readMeasured(),this.docView.coordsForChar(M)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(M){return!this.state.facet(MD)||M<this.viewport.from||M>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(M))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(M){if(M.length>Dj)return Pu(M.length);let i,t=this.textDirectionAt(M.from);for(let e of this.bidiCache)if(e.from==M.from&&e.dir==t&&(e.fresh||Wu(e.isolates,i=aD(this,M))))return e.order;i||(i=aD(this,M));let e=function(M,i,t){if(!M)return[new fu(0,0,i==ku?1:0)];if(i==Qu&&!t.length&&!Yu.test(M))return Pu(M.length);if(t.length)for(;M.length>Vu.length;)Vu[Vu.length]=256;let e=[],N=i==Qu?0:1;return Gu(M,N,N,t,0,M.length,e),e}(M.text,t,i);return this.bidiCache.push(new jj(M.from,M.to,t,i,!0,e)),e}get hasFocus(){var M;return(this.dom.ownerDocument.hasFocus()||tu.safari&&(null===(M=this.inputState)||void 0===M?void 0:M.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{Us(this.contentDOM),this.docView.updateSelection()}))}setRoot(M){this._root!=M&&(this._root=M,this.observer.setWindow((9==M.nodeType?M:M.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let M of this.plugins)M.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(M,i={}){return eD.of(new tD("number"==typeof M?$e.cursor(M):M,i.y,i.x,i.yMargin,i.xMargin))}scrollSnapshot(){let{scrollTop:M,scrollLeft:i}=this.scrollDOM,t=this.viewState.scrollAnchorAt(M);return eD.of(new tD($e.cursor(t.from),"start","start",t.top-M,i,!0))}static domEventHandlers(M){return nD.define((()=>({})),{eventHandlers:M})}static domEventObservers(M){return nD.define((()=>({})),{eventObservers:M})}static theme(M,i){let t=Is.newName(),e=[vn.of(t),LD.of(Xn(`.${t}`,M))];return i&&i.dark&&e.push(Gn.of(!0)),e}static baseTheme(M){return rN.lowest(LD.of(Xn("."+Pn,M,Fn)))}static findFromDOM(M){var i;let t=M.querySelector(".cm-content"),e=t&&Vs.get(t)||Vs.get(M);return(null===(i=null==e?void 0:e.rootView)||void 0===i?void 0:i.view)||null}}uj.styleModule=LD,uj.inputHandler=qu,uj.focusChangeEffect=Ku,uj.perLineTextDirection=MD,uj.exceptionSink=$u,uj.updateListener=_u,uj.editable=sD,uj.mouseSelectionStyle=Hu,uj.dragMovesSelection=Ju,uj.clickAddsSelectionRange=Xu,uj.decorations=rD,uj.outerDecorations=oD,uj.atomicRanges=gD,uj.bidiIsolatedRanges=cD,uj.scrollMargins=OD,uj.darkTheme=Gn,uj.cspNonce=Ke.define({combine:M=>M.length?M[0]:""}),uj.contentAttributes=lD,uj.editorAttributes=ID,uj.lineWrapping=uj.contentAttributes.of({class:"cm-lineWrapping"}),uj.announce=QN.define();const Dj=4096,nj={};class jj{constructor(M,i,t,e,N,s){this.from=M,this.to=i,this.dir=t,this.isolates=e,this.fresh=N,this.order=s}static update(M,i){if(i.empty&&!M.some((M=>M.fresh)))return M;let t=[],e=M.length?M[M.length-1].dir:Eu.LTR;for(let N=Math.max(0,M.length-10);N<M.length;N++){let s=M[N];s.dir!=e||i.touchesRange(s.from,s.to)||t.push(new jj(i.mapPos(s.from,1),i.mapPos(s.to,-1),s.dir,s.isolates,!1,s.order))}return t}}function Ij(M,i,t){for(let e=M.state.facet(i),N=e.length-1;N>=0;N--){let i=e[N],s="function"==typeof i?i(M):i;s&&Iu(s,t)}return t}const lj=tu.mac?"mac":tu.windows?"win":tu.linux?"linux":"key";function rj(M,i,t){return i.altKey&&(M="Alt-"+M),i.ctrlKey&&(M="Ctrl-"+M),i.metaKey&&(M="Meta-"+M),!1!==t&&i.shiftKey&&(M="Shift-"+M),M}const oj=rN.default(uj.domEventHandlers({keydown:(M,i)=>Lj(aj(i.state),M,i,"editor")})),gj=Ke.define({enables:oj}),cj=new WeakMap;function aj(M){let i=M.facet(gj),t=cj.get(i);return t||cj.set(i,t=function(M,i=lj){let t=Object.create(null),e=Object.create(null),N=(M,i)=>{let t=e[M];if(null==t)e[M]=i;else if(t!=i)throw new Error("Key binding "+M+" is used both as a regular binding and as a multi-stroke prefix")},s=(M,e,s,u,D)=>{var n,j;let I=t[M]||(t[M]=Object.create(null)),l=e.split(/ (?!$)/).map((M=>function(M,i){const t=M.split(/-(?!$)/);let e,N,s,u,D=t[t.length-1];"Space"==D&&(D=" ");for(let M=0;M<t.length-1;++M){const D=t[M];if(/^(cmd|meta|m)$/i.test(D))u=!0;else if(/^a(lt)?$/i.test(D))e=!0;else if(/^(c|ctrl|control)$/i.test(D))N=!0;else if(/^s(hift)?$/i.test(D))s=!0;else{if(!/^mod$/i.test(D))throw new Error("Unrecognized modifier name: "+D);"mac"==i?u=!0:N=!0}}return e&&(D="Alt-"+D),N&&(D="Ctrl-"+D),u&&(D="Meta-"+D),s&&(D="Shift-"+D),D}(M,i)));for(let i=1;i<l.length;i++){let t=l.slice(0,i).join(" ");N(t,!0),I[t]||(I[t]={preventDefault:!0,stopPropagation:!1,run:[i=>{let e=Oj={view:i,prefix:t,scope:M};return setTimeout((()=>{Oj==e&&(Oj=null)}),Tj),!0}]})}let r=l.join(" ");N(r,!1);let o=I[r]||(I[r]={preventDefault:!1,stopPropagation:!1,run:(null===(j=null===(n=I._any)||void 0===n?void 0:n.run)||void 0===j?void 0:j.slice())||[]});s&&o.run.push(s),u&&(o.preventDefault=!0),D&&(o.stopPropagation=!0)};for(let e of M){let M=e.scope?e.scope.split(" "):["editor"];if(e.any)for(let i of M){let M=t[i]||(t[i]=Object.create(null));M._any||(M._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let i in M)M[i].run.push(e.any)}let N=e[i]||e.key;if(N)for(let i of M)s(i,N,e.run,e.preventDefault,e.stopPropagation),e.shift&&s(i,"Shift-"+N,e.shift,e.preventDefault,e.stopPropagation)}return t}(i.reduce(((M,i)=>M.concat(i)),[]))),t}let Oj=null;const Tj=4e3;function Lj(M,i,t,e){let N=function(M){var i=!(cs&&M.metaKey&&M.shiftKey&&!M.ctrlKey&&!M.altKey||as&&M.shiftKey&&M.key&&1==M.key.length||"Unidentified"==M.key)&&M.key||(M.shiftKey?gs:os)[M.keyCode]||M.key||"Unidentified";return"Esc"==i&&(i="Escape"),"Del"==i&&(i="Delete"),"Left"==i&&(i="ArrowLeft"),"Up"==i&&(i="ArrowUp"),"Right"==i&&(i="ArrowRight"),"Down"==i&&(i="ArrowDown"),i}(i),s=fe(me(N,0))==N.length&&" "!=N,u="",D=!1,n=!1,j=!1;Oj&&Oj.view==t&&Oj.scope==e&&(u=Oj.prefix+" ",BD.indexOf(i.keyCode)<0&&(n=!0,Oj=null));let I,l,r=new Set,o=M=>{if(M){for(let e of M.run)if(!r.has(e)&&(r.add(e),e(t,i)))return M.stopPropagation&&(j=!0),!0;M.preventDefault&&(M.stopPropagation&&(j=!0),n=!0)}return!1},g=M[e];return g&&(o(g[u+rj(N,i,!s)])?D=!0:s&&(i.altKey||i.metaKey||i.ctrlKey)&&!(tu.windows&&i.ctrlKey&&i.altKey)&&(I=os[i.keyCode])&&I!=N?(o(g[u+rj(I,i,!0)])||i.shiftKey&&(l=gs[i.keyCode])!=N&&l!=I&&o(g[u+rj(l,i,!1)]))&&(D=!0):s&&i.shiftKey&&o(g[u+rj(N,i,!0)])&&(D=!0),!D&&o(g._any)&&(D=!0)),n&&(D=!0),D&&j&&i.stopPropagation(),D}class hj{constructor(M,i,t,e,N){this.className=M,this.left=i,this.top=t,this.width=e,this.height=N}draw(){let M=document.createElement("div");return M.className=this.className,this.adjust(M),M}update(M,i){return i.className==this.className&&(this.adjust(M),!0)}adjust(M){M.style.left=this.left+"px",M.style.top=this.top+"px",null!=this.width&&(M.style.width=this.width+"px"),M.style.height=this.height+"px"}eq(M){return this.left==M.left&&this.top==M.top&&this.width==M.width&&this.height==M.height&&this.className==M.className}static forRange(M,i,t){if(t.empty){let e=M.coordsAtPos(t.head,t.assoc||1);if(!e)return[];let N=zj(M);return[new hj(i,e.left-N.left,e.top-N.top,null,e.bottom-e.top)]}return function(M,i,t){if(t.to<=M.viewport.from||t.from>=M.viewport.to)return[];let e=Math.max(t.from,M.viewport.from),N=Math.min(t.to,M.viewport.to),s=M.textDirection==Eu.LTR,u=M.contentDOM,D=u.getBoundingClientRect(),n=zj(M),j=u.querySelector(".cm-line"),I=j&&window.getComputedStyle(j),l=D.left+(I?parseInt(I.paddingLeft)+Math.min(0,parseInt(I.textIndent)):0),r=D.right-(I?parseInt(I.paddingRight):0),o=mD(M,e),g=mD(M,N),c=o.type==Tu.Text?o:null,a=g.type==Tu.Text?g:null;c&&(M.lineWrapping||o.widgetLineBreaks)&&(c=yj(M,e,c));a&&(M.lineWrapping||g.widgetLineBreaks)&&(a=yj(M,N,a));if(c&&a&&c.from==a.from)return T(L(t.from,t.to,c));{let i=c?L(t.from,null,c):h(o,!1),e=a?L(null,t.to,a):h(g,!0),N=[];return(c||o).to<(a||g).from-(c&&a?1:0)||o.widgetLineBreaks>1&&i.bottom+M.defaultLineHeight/2<e.top?N.push(O(l,i.bottom,r,e.top)):i.bottom<e.top&&M.elementAtHeight((i.bottom+e.top)/2).type==Tu.Text&&(i.bottom=e.top=(i.bottom+e.top)/2),T(i).concat(N).concat(T(e))}function O(M,t,e,N){return new hj(i,M-n.left,t-n.top-.01,e-M,N-t+.01)}function T({top:M,bottom:i,horizontal:t}){let e=[];for(let N=0;N<t.length;N+=2)e.push(O(t[N],M,t[N+1],i));return e}function L(i,t,e){let N=1e9,u=-1e9,D=[];function n(i,t,n,j,I){let o=M.coordsAtPos(i,i==e.to?-2:2),g=M.coordsAtPos(n,n==e.from?2:-2);o&&g&&(N=Math.min(o.top,g.top,N),u=Math.max(o.bottom,g.bottom,u),I==Eu.LTR?D.push(s&&t?l:o.left,s&&j?r:g.right):D.push(!s&&j?l:g.left,!s&&t?r:o.right))}let j=null!=i?i:e.from,I=null!=t?t:e.to;for(let e of M.visibleRanges)if(e.to>j&&e.from<I)for(let N=Math.max(e.from,j),s=Math.min(e.to,I);;){let e=M.state.doc.lineAt(N);for(let u of M.bidiSpans(e)){let M=u.from+e.from,D=u.to+e.from;if(M>=s)break;D>N&&n(Math.max(M,N),null==i&&M<=j,Math.min(D,s),null==t&&D>=I,u.dir)}if(N=e.to+1,N>=s)break}return 0==D.length&&n(j,null==i,I,null==t,M.textDirection),{top:N,bottom:u,horizontal:D}}function h(M,i){let t=D.top+(i?M.top:M.bottom);return{top:t,bottom:t,horizontal:[]}}}(M,i,t)}}function zj(M){let i=M.scrollDOM.getBoundingClientRect();return{left:(M.textDirection==Eu.LTR?i.left:i.right-M.scrollDOM.clientWidth*M.scaleX)-M.scrollDOM.scrollLeft*M.scaleX,top:i.top-M.scrollDOM.scrollTop*M.scaleY}}function yj(M,i,t){let e=$e.cursor(i);return{from:Math.max(t.from,M.moveToLineBoundary(e,!1,!0).from),to:Math.min(t.to,M.moveToLineBoundary(e,!0,!0).from),type:Tu.Text}}class dj{constructor(M,i){this.view=M,this.layer=i,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=M.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),i.above&&this.dom.classList.add("cm-layer-above"),i.class&&this.dom.classList.add(i.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(M.state),M.requestMeasure(this.measureReq),i.mount&&i.mount(this.dom,M)}update(M){M.startState.facet(Aj)!=M.state.facet(Aj)&&this.setOrder(M.state),(this.layer.update(M,this.dom)||M.geometryChanged)&&(this.scale(),M.view.requestMeasure(this.measureReq))}setOrder(M){let i=0,t=M.facet(Aj);for(;i<t.length&&t[i]!=this.layer;)i++;this.dom.style.zIndex=String((this.layer.above?150:-1)-i)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:M,scaleY:i}=this.view;M==this.scaleX&&i==this.scaleY||(this.scaleX=M,this.scaleY=i,this.dom.style.transform=`scale(${1/M}, ${1/i})`)}draw(M){if(M.length!=this.drawn.length||M.some(((M,i)=>!function(M,i){return M.constructor==i.constructor&&M.eq(i)}(M,this.drawn[i])))){let i=this.dom.firstChild,t=0;for(let e of M)e.update&&i&&e.constructor&&this.drawn[t].constructor&&e.update(i,this.drawn[t])?(i=i.nextSibling,t++):this.dom.insertBefore(e.draw(),i);for(;i;){let M=i.nextSibling;i.remove(),i=M}this.drawn=M}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Aj=Ke.define();function xj(M){return[nD.define((i=>new dj(i,M))),Aj.of(M)]}const wj=!tu.ios,Sj=Ke.define({combine:M=>GN(M,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(M,i)=>Math.min(M,i),drawRangeCursor:(M,i)=>M||i})});function Ej(M){return M.startState.facet(Sj)!=M.state.facet(Sj)}const Qj=xj({above:!0,markers(M){let{state:i}=M,t=i.facet(Sj),e=[];for(let N of i.selection.ranges){let s=N==i.selection.main;if(N.empty?!s||wj:t.drawRangeCursor){let i=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",t=N.empty?N:$e.cursor(N.head,N.head>N.anchor?-1:1);for(let N of hj.forRange(M,i,t))e.push(N)}}return e},update(M,i){M.transactions.some((M=>M.selection))&&(i.style.animationName="cm-blink"==i.style.animationName?"cm-blink2":"cm-blink");let t=Ej(M);return t&&kj(M.state,i),M.docChanged||M.selectionSet||t},mount(M,i){kj(i.state,M)},class:"cm-cursorLayer"});function kj(M,i){i.style.animationDuration=M.facet(Sj).cursorBlinkRate+"ms"}const Cj=xj({above:!1,markers:M=>M.state.selection.ranges.map((i=>i.empty?[]:hj.forRange(M,"cm-selectionBackground",i))).reduce(((M,i)=>M.concat(i))),update:(M,i)=>M.docChanged||M.selectionSet||M.viewportChanged||Ej(M),class:"cm-selectionLayer"}),pj={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};wj&&(pj[".cm-line"].caretColor="transparent !important",pj[".cm-content"]={caretColor:"transparent !important"});const Uj=rN.highest(uj.theme(pj)),bj=QN.define({map:(M,i)=>null==M?null:i.mapPos(M)}),Zj=uN.define({create:()=>null,update:(M,i)=>(null!=M&&(M=i.changes.mapPos(M)),i.effects.reduce(((M,i)=>i.is(bj)?i.value:M),M))}),mj=nD.fromClass(class{constructor(M){this.view=M,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(M){var i;let t=M.state.field(Zj);null==t?null!=this.cursor&&(null===(i=this.cursor)||void 0===i||i.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(M.startState.field(Zj)!=t||M.docChanged||M.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:M}=this,i=M.state.field(Zj),t=null!=i&&M.coordsAtPos(i);if(!t)return null;let e=M.scrollDOM.getBoundingClientRect();return{left:t.left-e.left+M.scrollDOM.scrollLeft*M.scaleX,top:t.top-e.top+M.scrollDOM.scrollTop*M.scaleY,height:t.bottom-t.top}}drawCursor(M){if(this.cursor){let{scaleX:i,scaleY:t}=this.view;M?(this.cursor.style.left=M.left/i+"px",this.cursor.style.top=M.top/t+"px",this.cursor.style.height=M.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(M){this.view.state.field(Zj)!=M&&this.view.dispatch({effects:bj.of(M)})}},{eventObservers:{dragover(M){this.setDropPos(this.view.posAtCoords({x:M.clientX,y:M.clientY}))},dragleave(M){M.target!=this.view.contentDOM&&this.view.contentDOM.contains(M.relatedTarget)||this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Yj(M,i,t,e,N){i.lastIndex=0;for(let s,u=M.iterRange(t,e),D=t;!u.next().done;D+=u.value.length)if(!u.lineBreak)for(;s=i.exec(u.value);)N(D+s.index,s)}class fj{constructor(M){const{regexp:i,decoration:t,decorate:e,boundary:N,maxLength:s=1e3}=M;if(!i.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=i,e)this.addMatch=(M,i,t,N)=>e(N,t,t+M[0].length,M,i);else if("function"==typeof t)this.addMatch=(M,i,e,N)=>{let s=t(M,i,e);s&&N(e,e+M[0].length,s)};else{if(!t)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(M,i,e,N)=>N(e,e+M[0].length,t)}this.boundary=N,this.maxLength=s}createDeco(M){let i=new JN,t=i.add.bind(i);for(let{from:i,to:e}of function(M,i){let t=M.visibleRanges;if(1==t.length&&t[0].from==M.viewport.from&&t[0].to==M.viewport.to)return t;let e=[];for(let{from:N,to:s}of t)N=Math.max(M.state.doc.lineAt(N).from,N-i),s=Math.min(M.state.doc.lineAt(s).to,s+i),e.length&&e[e.length-1].to>=N?e[e.length-1].to=s:e.push({from:N,to:s});return e}(M,this.maxLength))Yj(M.state.doc,this.regexp,i,e,((i,e)=>this.addMatch(e,M,i,t)));return i.finish()}updateDeco(M,i){let t=1e9,e=-1;return M.docChanged&&M.changes.iterChanges(((i,N,s,u)=>{u>M.view.viewport.from&&s<M.view.viewport.to&&(t=Math.min(s,t),e=Math.max(u,e))})),M.viewportChanged||e-t>1e3?this.createDeco(M.view):e>-1?this.updateRange(M.view,i.map(M.changes),t,e):i}updateRange(M,i,t,e){for(let N of M.visibleRanges){let s=Math.max(N.from,t),u=Math.min(N.to,e);if(u>s){let t=M.state.doc.lineAt(s),e=t.to<u?M.state.doc.lineAt(u):t,D=Math.max(N.from,t.from),n=Math.min(N.to,e.to);if(this.boundary){for(;s>t.from;s--)if(this.boundary.test(t.text[s-1-t.from])){D=s;break}for(;u<e.to;u++)if(this.boundary.test(e.text[u-e.from])){n=u;break}}let j,I=[],l=(M,i,t)=>I.push(t.range(M,i));if(t==e)for(this.regexp.lastIndex=D-t.from;(j=this.regexp.exec(t.text))&&j.index<n-t.from;)this.addMatch(j,M,j.index+t.from,l);else Yj(M.state.doc,this.regexp,D,n,((i,t)=>this.addMatch(t,M,i,l)));i=i.update({filterFrom:D,filterTo:n,filter:(M,i)=>M<D||i>n,add:I})}}return i}}const Wj=null!=/x/.unicode?"gu":"g",Vj=new RegExp("[\0-\b\n--\u2028\u2029\ufeff-]",Wj),vj={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Gj=null;const Pj=Ke.define({combine(M){let i=GN(M,{render:null,specialChars:Vj,addSpecialChars:null});return(i.replaceTabs=!function(){var M;if(null==Gj&&"undefined"!=typeof document&&document.body){let i=document.body.style;Gj=null!=(null!==(M=i.tabSize)&&void 0!==M?M:i.MozTabSize)}return Gj||!1}())&&(i.specialChars=new RegExp("\t|"+i.specialChars.source,Wj)),i.addSpecialChars&&(i.specialChars=new RegExp(i.specialChars.source+"|"+i.addSpecialChars.source,Wj)),i}});let Rj=null;class Bj extends Ou{constructor(M,i){super(),this.options=M,this.code=i}eq(M){return M.code==this.code}toDOM(M){let i=function(M){return M>=32?"•":10==M?"":String.fromCharCode(9216+M)}(this.code),t=M.state.phrase("Control character")+" "+(vj[this.code]||"0x"+this.code.toString(16)),e=this.options.render&&this.options.render(this.code,t,i);if(e)return e;let N=document.createElement("span");return N.textContent=i,N.title=t,N.setAttribute("aria-label",t),N.className="cm-specialChar",N}ignoreEvent(){return!1}}class Fj extends Ou{constructor(M){super(),this.width=M}eq(M){return M.width==this.width}toDOM(){let M=document.createElement("span");return M.textContent="\t",M.className="cm-tab",M.style.width=this.width+"px",M}ignoreEvent(){return!1}}const Xj=Lu.line({class:"cm-activeLine"}),Jj=nD.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.docChanged||M.selectionSet)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let i=-1,t=[];for(let e of M.state.selection.ranges){let N=M.lineBlockAt(e.head);N.from>i&&(t.push(Xj.range(N.from)),i=N.from)}return Lu.set(t)}},{decorations:M=>M.decorations}),Hj=2e3;function $j(M,i){let t=M.posAtCoords({x:i.clientX,y:i.clientY},!1),e=M.state.doc.lineAt(t),N=t-e.from,s=N>Hj?-1:N==e.length?function(M,i){let t=M.coordsAtPos(M.viewport.from);return t?Math.round(Math.abs((t.left-i)/M.defaultCharacterWidth)):-1}(M,i.clientX):ss(e.text,M.state.tabSize,t-e.from);return{line:e.number,col:s,off:N}}function _j(M,i){let t=$j(M,i),e=M.state.selection;return t?{update(M){if(M.docChanged){let i=M.changes.mapPos(M.startState.doc.line(t.line).from),N=M.state.doc.lineAt(i);t={line:N.number,col:t.col,off:Math.min(t.off,N.length)},e=e.map(M.changes)}},get(i,N,s){let u=$j(M,i);if(!u)return e;let D=function(M,i,t){let e=Math.min(i.line,t.line),N=Math.max(i.line,t.line),s=[];if(i.off>Hj||t.off>Hj||i.col<0||t.col<0){let u=Math.min(i.off,t.off),D=Math.max(i.off,t.off);for(let i=e;i<=N;i++){let t=M.doc.line(i);t.length<=D&&s.push($e.range(t.from+u,t.to+D))}}else{let u=Math.min(i.col,t.col),D=Math.max(i.col,t.col);for(let i=e;i<=N;i++){let t=M.doc.line(i),e=us(t.text,u,M.tabSize,!0);if(e<0)s.push($e.cursor(t.to));else{let i=us(t.text,D,M.tabSize);s.push($e.range(t.from+e,t.from+i))}}}return s}(M.state,t,u);return D.length?s?$e.create(D.concat(e.ranges)):$e.create(D):e}}:null}const qj={Alt:[18,M=>!!M.altKey],Control:[17,M=>!!M.ctrlKey],Shift:[16,M=>!!M.shiftKey],Meta:[91,M=>!!M.metaKey]},Kj={style:"cursor: crosshair"};const MI="-10000px";class iI{constructor(M,i,t,e){this.facet=i,this.createTooltipView=t,this.removeTooltipView=e,this.input=M.state.facet(i),this.tooltips=this.input.filter((M=>M)),this.tooltipViews=this.tooltips.map(t)}update(M,i){var t;let e=M.state.facet(this.facet),N=e.filter((M=>M));if(e===this.input){for(let i of this.tooltipViews)i.update&&i.update(M);return!1}let s=[],u=i?[]:null;for(let t=0;t<N.length;t++){let e=N[t],D=-1;if(e){for(let M=0;M<this.tooltips.length;M++){let i=this.tooltips[M];i&&i.create==e.create&&(D=M)}if(D<0)s[t]=this.createTooltipView(e),u&&(u[t]=!!e.above);else{let e=s[t]=this.tooltipViews[D];u&&(u[t]=i[D]),e.update&&e.update(M)}}}for(let M of this.tooltipViews)s.indexOf(M)<0&&(this.removeTooltipView(M),null===(t=M.destroy)||void 0===t||t.call(M));return i&&(u.forEach(((M,t)=>i[t]=M)),i.length=u.length),this.input=e,this.tooltips=N,this.tooltipViews=s,!0}}function tI(M){let{win:i}=M;return{top:0,left:0,bottom:i.innerHeight,right:i.innerWidth}}const eI=Ke.define({combine:M=>{var i,t,e;return{position:tu.ios?"absolute":(null===(i=M.find((M=>M.position)))||void 0===i?void 0:i.position)||"fixed",parent:(null===(t=M.find((M=>M.parent)))||void 0===t?void 0:t.parent)||null,tooltipSpace:(null===(e=M.find((M=>M.tooltipSpace)))||void 0===e?void 0:e.tooltipSpace)||tI}}}),NI=new WeakMap,sI=nD.fromClass(class{constructor(M){this.view=M,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let i=M.state.facet(eI);this.position=i.position,this.parent=i.parent,this.classes=M.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new iI(M,nI,(M=>this.createTooltip(M)),(M=>{this.resizeObserver&&this.resizeObserver.unobserve(M.dom),M.dom.remove()})),this.above=this.manager.tooltips.map((M=>!!M.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((M=>{Date.now()>this.lastTransaction-50&&M.length>0&&M[M.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),M.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let M of this.manager.tooltipViews)this.intersectionObserver.observe(M.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(M){M.transactions.length&&(this.lastTransaction=Date.now());let i=this.manager.update(M,this.above);i&&this.observeIntersection();let t=i||M.geometryChanged,e=M.state.facet(eI);if(e.position!=this.position&&!this.madeAbsolute){this.position=e.position;for(let M of this.manager.tooltipViews)M.dom.style.position=this.position;t=!0}if(e.parent!=this.parent){this.parent&&this.container.remove(),this.parent=e.parent,this.createContainer();for(let M of this.manager.tooltipViews)this.container.appendChild(M.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(M){let i=M.create(this.view);if(i.dom.classList.add("cm-tooltip"),M.arrow&&!i.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let M=document.createElement("div");M.className="cm-tooltip-arrow",i.dom.appendChild(M)}return i.dom.style.position=this.position,i.dom.style.top=MI,i.dom.style.left="0px",this.container.appendChild(i.dom),i.mount&&i.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(i.dom),i}destroy(){var M,i,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),null===(M=i.destroy)||void 0===M||M.call(i);this.parent&&this.container.remove(),null===(i=this.resizeObserver)||void 0===i||i.disconnect(),null===(t=this.intersectionObserver)||void 0===t||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let M=this.view.dom.getBoundingClientRect(),i=1,t=1,e=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:M}=this.manager.tooltipViews[0];if(tu.gecko)e=M.offsetParent!=this.container.ownerDocument.body;else if(M.style.top==MI&&"0px"==M.style.left){let i=M.getBoundingClientRect();e=Math.abs(i.top+1e4)>1||Math.abs(i.left)>1}}if(e||"absolute"==this.position)if(this.parent){let M=this.parent.getBoundingClientRect();M.width&&M.height&&(i=M.width/this.parent.offsetWidth,t=M.height/this.parent.offsetHeight)}else({scaleX:i,scaleY:t}=this.view.viewState);return{editor:M,parent:this.parent?this.container.getBoundingClientRect():M,pos:this.manager.tooltips.map(((M,i)=>{let t=this.manager.tooltipViews[i];return t.getCoords?t.getCoords(M.pos):this.view.coordsAtPos(M.pos)})),size:this.manager.tooltipViews.map((({dom:M})=>M.getBoundingClientRect())),space:this.view.state.facet(eI).tooltipSpace(this.view),scaleX:i,scaleY:t,makeAbsolute:e}}writeMeasure(M){var i;if(M.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let M of this.manager.tooltipViews)M.dom.style.position="absolute"}let{editor:t,space:e,scaleX:N,scaleY:s}=M,u=[];for(let D=0;D<this.manager.tooltips.length;D++){let n=this.manager.tooltips[D],j=this.manager.tooltipViews[D],{dom:I}=j,l=M.pos[D],r=M.size[D];if(!l||l.bottom<=Math.max(t.top,e.top)||l.top>=Math.min(t.bottom,e.bottom)||l.right<Math.max(t.left,e.left)-.1||l.left>Math.min(t.right,e.right)+.1){I.style.top=MI;continue}let o=n.arrow?j.dom.querySelector(".cm-tooltip-arrow"):null,g=o?7:0,c=r.right-r.left,a=null!==(i=NI.get(j))&&void 0!==i?i:r.bottom-r.top,O=j.offset||DI,T=this.view.textDirection==Eu.LTR,L=r.width>e.right-e.left?T?e.left:e.right-r.width:T?Math.min(l.left-(o?14:0)+O.x,e.right-c):Math.max(e.left,l.left-c+(o?14:0)-O.x),h=this.above[D];!n.strictSide&&(h?l.top-(r.bottom-r.top)-O.y<e.top:l.bottom+(r.bottom-r.top)+O.y>e.bottom)&&h==e.bottom-l.bottom>l.top-e.top&&(h=this.above[D]=!h);let z=(h?l.top-e.top:e.bottom-l.bottom)-g;if(z<a&&!1!==j.resize){if(z<this.view.defaultLineHeight){I.style.top=MI;continue}NI.set(j,a),I.style.height=(a=z)/s+"px"}else I.style.height&&(I.style.height="");let y=h?l.top-a-g-O.y:l.bottom+g+O.y,d=L+c;if(!0!==j.overlap)for(let M of u)M.left<d&&M.right>L&&M.top<y+a&&M.bottom>y&&(y=h?M.top-a-2-g:M.bottom+g+2);if("absolute"==this.position?(I.style.top=(y-M.parent.top)/s+"px",I.style.left=(L-M.parent.left)/N+"px"):(I.style.top=y/s+"px",I.style.left=L/N+"px"),o){let M=l.left+(T?O.x:-O.x)-(L+14-7);o.style.left=M/N+"px"}!0!==j.overlap&&u.push({left:L,top:y,right:d,bottom:y+a}),I.classList.toggle("cm-tooltip-above",h),I.classList.toggle("cm-tooltip-below",!h),j.positioned&&j.positioned(M.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let M of this.manager.tooltipViews)M.dom.style.top=MI}},{eventObservers:{scroll(){this.maybeMeasure()}}}),uI=uj.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),DI={x:0,y:0},nI=Ke.define({enables:[sI,uI]}),jI=Ke.define();class II{static create(M){return new II(M)}constructor(M){this.view=M,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new iI(M,jI,(M=>this.createHostedView(M)),(M=>M.dom.remove()))}createHostedView(M){let i=M.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(i.dom),this.mounted&&i.mount&&i.mount(this.view),i}mount(M){for(let i of this.manager.tooltipViews)i.mount&&i.mount(M);this.mounted=!0}positioned(M){for(let i of this.manager.tooltipViews)i.positioned&&i.positioned(M)}update(M){this.manager.update(M)}destroy(){var M;for(let i of this.manager.tooltipViews)null===(M=i.destroy)||void 0===M||M.call(i)}passProp(M){let i;for(let t of this.manager.tooltipViews){let e=t[M];if(void 0!==e)if(void 0===i)i=e;else if(i!==e)return}return i}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const lI=nI.compute([jI],(M=>{let i=M.facet(jI).filter((M=>M));return 0===i.length?null:{pos:Math.min(...i.map((M=>M.pos))),end:Math.max(...i.map((M=>{var i;return null!==(i=M.end)&&void 0!==i?i:M.pos}))),create:II.create,above:i[0].above,arrow:i.some((M=>M.arrow))}}));class rI{constructor(M,i,t,e,N){this.view=M,this.source=i,this.field=t,this.setHover=e,this.hoverTime=N,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:M.dom,time:0},this.checkHover=this.checkHover.bind(this),M.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),M.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((()=>this.startHover()),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let M=Date.now()-this.lastMove.time;M<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-M):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:M,lastMove:i}=this,t=M.docView.nearest(i.target);if(!t)return;let e,N=1;if(t instanceof su)e=t.posAtStart;else{if(e=M.posAtCoords(i),null==e)return;let t=M.coordsAtPos(e);if(!t||i.y<t.top||i.y>t.bottom||i.x<t.left-M.defaultCharacterWidth||i.x>t.right+M.defaultCharacterWidth)return;let s=M.bidiSpans(M.state.doc.lineAt(e)).find((M=>M.from<=e&&M.to>=e)),u=s&&s.dir==Eu.RTL?-1:1;N=i.x<t.left?-u:u}let s=this.source(M,e,N);if(null==s?void 0:s.then){let i=this.pending={pos:e};s.then((t=>{this.pending==i&&(this.pending=null,t&&M.dispatch({effects:this.setHover.of(t)}))}),(i=>ND(M.state,i,"hover tooltip")))}else s&&M.dispatch({effects:this.setHover.of(s)})}get tooltip(){let M=this.view.plugin(sI),i=M?M.manager.tooltips.findIndex((M=>M.create==II.create)):-1;return i>-1?M.manager.tooltipViews[i]:null}mousemove(M){var i;this.lastMove={x:M.clientX,y:M.clientY,target:M.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:t,tooltip:e}=this;if(t&&e&&!function(M,i){let t=M.getBoundingClientRect();return i.clientX>=t.left-oI&&i.clientX<=t.right+oI&&i.clientY>=t.top-oI&&i.clientY<=t.bottom+oI}(e.dom,M)||this.pending){let{pos:e}=t||this.pending,N=null!==(i=null==t?void 0:t.end)&&void 0!==i?i:e;(e==N?this.view.posAtCoords(this.lastMove)==e:function(M,i,t,e,N,s){let u=M.scrollDOM.getBoundingClientRect(),D=M.documentTop+M.documentPadding.top+M.contentHeight;if(u.left>e||u.right<e||u.top>N||Math.min(u.bottom,D)<N)return!1;let n=M.posAtCoords({x:e,y:N},!1);return n>=i&&n<=t}(this.view,e,N,M.clientX,M.clientY))||(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(M){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:i}=this;if(i){let{tooltip:i}=this;i&&i.dom.contains(M.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of(null)})}}watchTooltipLeave(M){let i=t=>{M.removeEventListener("mouseleave",i),this.active&&!this.view.dom.contains(t.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})};M.addEventListener("mouseleave",i)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const oI=4;function gI(M,i={}){let t=QN.define(),e=uN.define({create:()=>null,update(M,e){if(M&&(i.hideOnChange&&(e.docChanged||e.selection)||i.hideOn&&i.hideOn(e,M)))return null;if(M&&e.docChanged){let i=e.changes.mapPos(M.pos,-1,Ve.TrackDel);if(null==i)return null;let t=Object.assign(Object.create(null),M);t.pos=i,null!=M.end&&(t.end=e.changes.mapPos(M.end)),M=t}for(let i of e.effects)i.is(t)&&(M=i.value),i.is(aI)&&(M=null);return M},provide:M=>jI.from(M)});return[e,nD.define((N=>new rI(N,M,e,t,i.hoverTime||300))),lI]}function cI(M,i){let t=M.plugin(sI);if(!t)return null;let e=t.manager.tooltips.indexOf(i);return e<0?null:t.manager.tooltipViews[e]}const aI=QN.define(),OI=Ke.define({combine(M){let i,t;for(let e of M)i=i||e.topContainer,t=t||e.bottomContainer;return{topContainer:i,bottomContainer:t}}});function TI(M,i){let t=M.plugin(LI),e=t?t.specs.indexOf(i):-1;return e>-1?t.panels[e]:null}const LI=nD.fromClass(class{constructor(M){this.input=M.state.facet(yI),this.specs=this.input.filter((M=>M)),this.panels=this.specs.map((i=>i(M)));let i=M.state.facet(OI);this.top=new hI(M,!0,i.topContainer),this.bottom=new hI(M,!1,i.bottomContainer),this.top.sync(this.panels.filter((M=>M.top))),this.bottom.sync(this.panels.filter((M=>!M.top)));for(let M of this.panels)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}update(M){let i=M.state.facet(OI);this.top.container!=i.topContainer&&(this.top.sync([]),this.top=new hI(M.view,!0,i.topContainer)),this.bottom.container!=i.bottomContainer&&(this.bottom.sync([]),this.bottom=new hI(M.view,!1,i.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=M.state.facet(yI);if(t!=this.input){let i=t.filter((M=>M)),e=[],N=[],s=[],u=[];for(let t of i){let i,D=this.specs.indexOf(t);D<0?(i=t(M.view),u.push(i)):(i=this.panels[D],i.update&&i.update(M)),e.push(i),(i.top?N:s).push(i)}this.specs=i,this.panels=e,this.top.sync(N),this.bottom.sync(s);for(let M of u)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}else for(let i of this.panels)i.update&&i.update(M)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:M=>uj.scrollMargins.of((i=>{let t=i.plugin(M);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}}))});class hI{constructor(M,i,t){this.view=M,this.top=i,this.container=t,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(M){for(let i of this.panels)i.destroy&&M.indexOf(i)<0&&i.destroy();this.panels=M,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let M=this.container||this.view.dom;M.insertBefore(this.dom,this.top?M.firstChild:null)}let M=this.dom.firstChild;for(let i of this.panels)if(i.dom.parentNode==this.dom){for(;M!=i.dom;)M=zI(M);M=M.nextSibling}else this.dom.insertBefore(i.dom,M);for(;M;)M=zI(M)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let M of this.classes.split(" "))M&&this.container.classList.remove(M);for(let M of(this.classes=this.view.themeClasses).split(" "))M&&this.container.classList.add(M)}}}function zI(M){let i=M.nextSibling;return M.remove(),i}const yI=Ke.define({enables:LI});class dI extends PN{compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}eq(M){return!1}destroy(M){}}dI.prototype.elementClass="",dI.prototype.toDOM=void 0,dI.prototype.mapMode=Ve.TrackBefore,dI.prototype.startSide=dI.prototype.endSide=-1,dI.prototype.point=!0;const AI=Ke.define(),xI={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>XN.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},wI=Ke.define();function SI(M){return[QI(),wI.of(Object.assign(Object.assign({},xI),M))]}const EI=Ke.define({combine:M=>M.some((M=>M))});function QI(M){let i=[kI];return M&&!1===M.fixed&&i.push(EI.of(!0)),i}const kI=nD.fromClass(class{constructor(M){this.view=M,this.prevViewport=M.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=M.state.facet(wI).map((i=>new bI(M,i)));for(let M of this.gutters)this.dom.appendChild(M.dom);this.fixed=!M.state.facet(EI),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),M.scrollDOM.insertBefore(this.dom,M.contentDOM)}update(M){if(this.updateGutters(M)){let i=this.prevViewport,t=M.view.viewport,e=Math.min(i.to,t.to)-Math.max(i.from,t.from);this.syncGutters(e<.8*(t.to-t.from))}M.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(EI)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=M.view.viewport}syncGutters(M){let i=this.dom.nextSibling;M&&this.dom.remove();let t=XN.iter(this.view.state.facet(AI),this.view.viewport.from),e=[],N=this.gutters.map((M=>new UI(M,this.view.viewport,-this.view.documentPadding.top)));for(let M of this.view.viewportLineBlocks)if(e.length&&(e=[]),Array.isArray(M.type)){let i=!0;for(let s of M.type)if(s.type==Tu.Text&&i){pI(t,e,s.from);for(let M of N)M.line(this.view,s,e);i=!1}else if(s.widget)for(let M of N)M.widget(this.view,s)}else if(M.type==Tu.Text){pI(t,e,M.from);for(let i of N)i.line(this.view,M,e)}else if(M.widget)for(let i of N)i.widget(this.view,M);for(let M of N)M.finish();M&&this.view.scrollDOM.insertBefore(this.dom,i)}updateGutters(M){let i=M.startState.facet(wI),t=M.state.facet(wI),e=M.docChanged||M.heightChanged||M.viewportChanged||!XN.eq(M.startState.facet(AI),M.state.facet(AI),M.view.viewport.from,M.view.viewport.to);if(i==t)for(let i of this.gutters)i.update(M)&&(e=!0);else{e=!0;let N=[];for(let e of t){let t=i.indexOf(e);t<0?N.push(new bI(this.view,e)):(this.gutters[t].update(M),N.push(this.gutters[t]))}for(let M of this.gutters)M.dom.remove(),N.indexOf(M)<0&&M.destroy();for(let M of N)this.dom.appendChild(M.dom);this.gutters=N}return e}destroy(){for(let M of this.gutters)M.destroy();this.dom.remove()}},{provide:M=>uj.scrollMargins.of((i=>{let t=i.plugin(M);return t&&0!=t.gutters.length&&t.fixed?i.textDirection==Eu.LTR?{left:t.dom.offsetWidth*i.scaleX}:{right:t.dom.offsetWidth*i.scaleX}:null}))});function CI(M){return Array.isArray(M)?M:[M]}function pI(M,i,t){for(;M.value&&M.from<=t;)M.from==t&&i.push(M.value),M.next()}class UI{constructor(M,i,t){this.gutter=M,this.height=t,this.i=0,this.cursor=XN.iter(M.markers,i.from)}addElement(M,i,t){let{gutter:e}=this,N=(i.top-this.height)/M.scaleY,s=i.height/M.scaleY;if(this.i==e.elements.length){let i=new ZI(M,s,N,t);e.elements.push(i),e.dom.appendChild(i.dom)}else e.elements[this.i].update(M,s,N,t);this.height=i.bottom,this.i++}line(M,i,t){let e=[];pI(this.cursor,e,i.from),t.length&&(e=e.concat(t));let N=this.gutter.config.lineMarker(M,i,e);N&&e.unshift(N);let s=this.gutter;(0!=e.length||s.config.renderEmptyElements)&&this.addElement(M,i,e)}widget(M,i){let t=this.gutter.config.widgetMarker(M,i.widget,i);t&&this.addElement(M,i,[t])}finish(){let M=this.gutter;for(;M.elements.length>this.i;){let i=M.elements.pop();M.dom.removeChild(i.dom),i.destroy()}}}class bI{constructor(M,i){this.view=M,this.config=i,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let t in i.domEventHandlers)this.dom.addEventListener(t,(e=>{let N,s=e.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let M=s.getBoundingClientRect();N=(M.top+M.bottom)/2}else N=e.clientY;let u=M.lineBlockAtHeight(N-M.documentTop);i.domEventHandlers[t](M,u,e)&&e.preventDefault()}));this.markers=CI(i.markers(M)),i.initialSpacer&&(this.spacer=new ZI(M,0,0,[i.initialSpacer(M)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(M){let i=this.markers;if(this.markers=CI(this.config.markers(M.view)),this.spacer&&this.config.updateSpacer){let i=this.config.updateSpacer(this.spacer.markers[0],M);i!=this.spacer.markers[0]&&this.spacer.update(M.view,0,0,[i])}let t=M.view.viewport;return!XN.eq(this.markers,i,t.from,t.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(M)}destroy(){for(let M of this.elements)M.destroy()}}class ZI{constructor(M,i,t,e){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(M,i,t,e)}update(M,i,t,e){this.height!=i&&(this.height=i,this.dom.style.height=i+"px"),this.above!=t&&(this.dom.style.marginTop=(this.above=t)?t+"px":""),function(M,i){if(M.length!=i.length)return!1;for(let t=0;t<M.length;t++)if(!M[t].compare(i[t]))return!1;return!0}(this.markers,e)||this.setMarkers(M,e)}setMarkers(M,i){let t="cm-gutterElement",e=this.dom.firstChild;for(let N=0,s=0;;){let u=s,D=N<i.length?i[N++]:null,n=!1;if(D){let M=D.elementClass;M&&(t+=" "+M);for(let M=s;M<this.markers.length;M++)if(this.markers[M].compare(D)){u=M,n=!0;break}}else u=this.markers.length;for(;s<u;){let M=this.markers[s++];if(M.toDOM){M.destroy(e);let i=e.nextSibling;e.remove(),e=i}}if(!D)break;D.toDOM&&(n?e=e.nextSibling:this.dom.insertBefore(D.toDOM(M),e)),n&&s++}this.dom.className=t,this.markers=i}destroy(){this.setMarkers(null,[])}}const mI=Ke.define(),YI=Ke.define({combine:M=>GN(M,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(M,i){let t=Object.assign({},M);for(let M in i){let e=t[M],N=i[M];t[M]=e?(M,i,t)=>e(M,i,t)||N(M,i,t):N}return t}})});class fI extends dI{constructor(M){super(),this.number=M}eq(M){return this.number==M.number}toDOM(){return document.createTextNode(this.number)}}function WI(M,i){return M.state.facet(YI).formatNumber(i,M.state)}const VI=wI.compute([YI],(M=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:M=>M.state.facet(mI),lineMarker:(M,i,t)=>t.some((M=>M.toDOM))?null:new fI(WI(M,M.state.doc.lineAt(i.from).number)),widgetMarker:()=>null,lineMarkerChange:M=>M.startState.facet(YI)!=M.state.facet(YI),initialSpacer:M=>new fI(WI(M,vI(M.state.doc.lines))),updateSpacer(M,i){let t=WI(i.view,vI(i.view.state.doc.lines));return t==M.number?M:new fI(t)},domEventHandlers:M.facet(YI).domEventHandlers})));function vI(M){let i=9;for(;i<M;)i=10*i+9;return i}const GI=new class extends dI{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},PI=AI.compute(["selection"],(M=>{let i=[],t=-1;for(let e of M.selection.ranges){let N=M.doc.lineAt(e.head).from;N>t&&(t=N,i.push(GI.range(N)))}return XN.of(i)}));const RI=1024;let BI=0;class FI{constructor(M,i){this.from=M,this.to=i}}class XI{constructor(M={}){this.id=BI++,this.perNode=!!M.perNode,this.deserialize=M.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(M){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof M&&(M=$I.match(M)),i=>{let t=M(i);return void 0===t?null:[this,t]}}}XI.closedBy=new XI({deserialize:M=>M.split(" ")}),XI.openedBy=new XI({deserialize:M=>M.split(" ")}),XI.group=new XI({deserialize:M=>M.split(" ")}),XI.isolate=new XI({deserialize:M=>{if(M&&"rtl"!=M&&"ltr"!=M&&"auto"!=M)throw new RangeError("Invalid value for isolate: "+M);return M||"auto"}}),XI.contextHash=new XI({perNode:!0}),XI.lookAhead=new XI({perNode:!0}),XI.mounted=new XI({perNode:!0});class JI{constructor(M,i,t){this.tree=M,this.overlay=i,this.parser=t}static get(M){return M&&M.props&&M.props[XI.mounted.id]}}const HI=Object.create(null);class $I{constructor(M,i,t,e=0){this.name=M,this.props=i,this.id=t,this.flags=e}static define(M){let i=M.props&&M.props.length?Object.create(null):HI,t=(M.top?1:0)|(M.skipped?2:0)|(M.error?4:0)|(null==M.name?8:0),e=new $I(M.name||"",i,M.id,t);if(M.props)for(let t of M.props)if(Array.isArray(t)||(t=t(e)),t){if(t[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");i[t[0].id]=t[1]}return e}prop(M){return this.props[M.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(M){if("string"==typeof M){if(this.name==M)return!0;let i=this.prop(XI.group);return!!i&&i.indexOf(M)>-1}return this.id==M}static match(M){let i=Object.create(null);for(let t in M)for(let e of t.split(" "))i[e]=M[t];return M=>{for(let t=M.prop(XI.group),e=-1;e<(t?t.length:0);e++){let N=i[e<0?M.name:t[e]];if(N)return N}}}}$I.none=new $I("",Object.create(null),0,8);class _I{constructor(M){this.types=M;for(let i=0;i<M.length;i++)if(M[i].id!=i)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...M){let i=[];for(let t of this.types){let e=null;for(let i of M){let M=i(t);M&&(e||(e=Object.assign({},t.props)),e[M[0].id]=M[1])}i.push(e?new $I(t.name,e,t.id,t.flags):t)}return new _I(i)}}const qI=new WeakMap,KI=new WeakMap;var Ml;!function(M){M[M.ExcludeBuffers=1]="ExcludeBuffers",M[M.IncludeAnonymous=2]="IncludeAnonymous",M[M.IgnoreMounts=4]="IgnoreMounts",M[M.IgnoreOverlays=8]="IgnoreOverlays"}(Ml||(Ml={}));class il{constructor(M,i,t,e,N){if(this.type=M,this.children=i,this.positions=t,this.length=e,this.props=null,N&&N.length){this.props=Object.create(null);for(let[M,i]of N)this.props["number"==typeof M?M:M.id]=i}}toString(){let M=JI.get(this);if(M&&!M.overlay)return M.tree.toString();let i="";for(let M of this.children){let t=M.toString();t&&(i&&(i+=","),i+=t)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(i.length?"("+i+")":""):i}cursor(M=0){return new gl(this.topNode,M)}cursorAt(M,i=0,t=0){let e=qI.get(this)||this.topNode,N=new gl(e);return N.moveTo(M,i),qI.set(this,N._tree),N}get topNode(){return new Dl(this,0,0,null)}resolve(M,i=0){let t=sl(qI.get(this)||this.topNode,M,i,!1);return qI.set(this,t),t}resolveInner(M,i=0){let t=sl(KI.get(this)||this.topNode,M,i,!0);return KI.set(this,t),t}resolveStack(M,i=0){return function(M,i,t){let e=M.resolveInner(i,t),N=null;for(let M=e instanceof Dl?e:e.context.parent;M;M=M.parent)if(M.index<0){let s=M.parent;(N||(N=[e])).push(s.resolve(i,t)),M=s}else{let s=JI.get(M.tree);if(s&&s.overlay&&s.overlay[0].from<=i&&s.overlay[s.overlay.length-1].to>=i){let u=new Dl(s.tree,s.overlay[0].from+M.from,-1,M);(N||(N=[e])).push(sl(u,i,t,!1))}}return N?rl(N):e}(this,M,i)}iterate(M){let{enter:i,leave:t,from:e=0,to:N=this.length}=M,s=M.mode||0,u=(s&Ml.IncludeAnonymous)>0;for(let M=this.cursor(s|Ml.IncludeAnonymous);;){let s=!1;if(M.from<=N&&M.to>=e&&(!u&&M.type.isAnonymous||!1!==i(M))){if(M.firstChild())continue;s=!0}for(;s&&t&&(u||!M.type.isAnonymous)&&t(M),!M.nextSibling();){if(!M.parent())return;s=!0}}}prop(M){return M.perNode?this.props?this.props[M.id]:void 0:this.type.prop(M)}get propValues(){let M=[];if(this.props)for(let i in this.props)M.push([+i,this.props[i]]);return M}balance(M={}){return this.children.length<=8?this:Tl($I.none,this.children,this.positions,0,this.children.length,0,this.length,((M,i,t)=>new il(this.type,M,i,t,this.propValues)),M.makeTree||((M,i,t)=>new il($I.none,M,i,t)))}static build(M){return function(M){var i;let{buffer:t,nodeSet:e,maxBufferLength:N=RI,reused:s=[],minRepeatType:u=e.types.length}=M,D=Array.isArray(t)?new tl(t,t.length):t,n=e.types,j=0,I=0;function l(M,i,t,T,L,h){let{id:z,start:y,end:d,size:A}=D,x=I;for(;A<0;){if(D.next(),-1==A){let i=s[z];return t.push(i),void T.push(y-M)}if(-3==A)return void(j=z);if(-4==A)return void(I=z);throw new RangeError(`Unrecognized record size: ${A}`)}let w,S,E=n[z],Q=y-M;if(d-y<=N&&(S=a(D.pos-i,L))){let i=new Uint16Array(S.size-S.skip),t=D.pos-S.size,N=i.length;for(;D.pos>t;)N=O(S.start,i,N);w=new el(i,d-S.start,e),Q=S.start-M}else{let M=D.pos-A;D.next();let i=[],t=[],e=z>=u?z:-1,s=0,n=d;for(;D.pos>M;)e>=0&&D.id==e&&D.size>=0?(D.end<=n-N&&(g(i,t,y,s,D.end,n,e,x),s=i.length,n=D.end),D.next()):h>2500?r(y,M,i,t):l(y,M,i,t,e,h+1);if(e>=0&&s>0&&s<i.length&&g(i,t,y,s,y,n,e,x),i.reverse(),t.reverse(),e>-1&&s>0){let M=o(E);w=Tl(E,i,t,0,i.length,0,d-y,M,M)}else w=c(E,i,t,d-y,x-d)}t.push(w),T.push(Q)}function r(M,i,t,s){let u=[],n=0,j=-1;for(;D.pos>i;){let{id:M,start:i,end:t,size:e}=D;if(e>4)D.next();else{if(j>-1&&i<j)break;j<0&&(j=t-N),u.push(M,i,t),n++,D.next()}}if(n){let i=new Uint16Array(4*n),N=u[u.length-2];for(let M=u.length-3,t=0;M>=0;M-=3)i[t++]=u[M],i[t++]=u[M+1]-N,i[t++]=u[M+2]-N,i[t++]=t;t.push(new el(i,u[2]-N,e)),s.push(N-M)}}function o(M){return(i,t,e)=>{let N,s,u=0,D=i.length-1;if(D>=0&&(N=i[D])instanceof il){if(!D&&N.type==M&&N.length==e)return N;(s=N.prop(XI.lookAhead))&&(u=t[D]+N.length+s)}return c(M,i,t,e,u)}}function g(M,i,t,N,s,u,D,n){let j=[],I=[];for(;M.length>N;)j.push(M.pop()),I.push(i.pop()+t-s);M.push(c(e.types[D],j,I,u-s,n-u)),i.push(s-t)}function c(M,i,t,e,N=0,s){if(j){let M=[XI.contextHash,j];s=s?[M].concat(s):[M]}if(N>25){let M=[XI.lookAhead,N];s=s?[M].concat(s):[M]}return new il(M,i,t,e,s)}function a(M,i){let t=D.fork(),e=0,s=0,n=0,j=t.end-N,I={size:0,start:0,skip:0};M:for(let N=t.pos-M;t.pos>N;){let M=t.size;if(t.id==i&&M>=0){I.size=e,I.start=s,I.skip=n,n+=4,e+=4,t.next();continue}let D=t.pos-M;if(M<0||D<N||t.start<j)break;let l=t.id>=u?4:0,r=t.start;for(t.next();t.pos>D;){if(t.size<0){if(-3!=t.size)break M;l+=4}else t.id>=u&&(l+=4);t.next()}s=r,e+=M,n+=l}return(i<0||e==M)&&(I.size=e,I.start=s,I.skip=n),I.size>4?I:void 0}function O(M,i,t){let{id:e,start:N,end:s,size:n}=D;if(D.next(),n>=0&&e<u){let u=t;if(n>4){let e=D.pos-(n-4);for(;D.pos>e;)t=O(M,i,t)}i[--t]=u,i[--t]=s-M,i[--t]=N-M,i[--t]=e}else-3==n?j=e:-4==n&&(I=e);return t}let T=[],L=[];for(;D.pos>0;)l(M.start||0,M.bufferStart||0,T,L,-1,0);let h=null!==(i=M.length)&&void 0!==i?i:T.length?L[0]+T[0].length:0;return new il(n[M.topID],T.reverse(),L.reverse(),h)}(M)}}il.empty=new il($I.none,[],[],0);class tl{constructor(M,i){this.buffer=M,this.index=i}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new tl(this.buffer,this.index)}}class el{constructor(M,i,t){this.buffer=M,this.length=i,this.set=t}get type(){return $I.none}toString(){let M=[];for(let i=0;i<this.buffer.length;)M.push(this.childString(i)),i=this.buffer[i+3];return M.join(",")}childString(M){let i=this.buffer[M],t=this.buffer[M+3],e=this.set.types[i],N=e.name;if(/\W/.test(N)&&!e.isError&&(N=JSON.stringify(N)),t==(M+=4))return N;let s=[];for(;M<t;)s.push(this.childString(M)),M=this.buffer[M+3];return N+"("+s.join(",")+")"}findChild(M,i,t,e,N){let{buffer:s}=this,u=-1;for(let D=M;D!=i&&!(Nl(N,e,s[D+1],s[D+2])&&(u=D,t>0));D=s[D+3]);return u}slice(M,i,t){let e=this.buffer,N=new Uint16Array(i-M),s=0;for(let u=M,D=0;u<i;){N[D++]=e[u++],N[D++]=e[u++]-t;let i=N[D++]=e[u++]-t;N[D++]=e[u++]-M,s=Math.max(s,i)}return new el(N,s,this.set)}}function Nl(M,i,t,e){switch(M){case-2:return t<i;case-1:return e>=i&&t<i;case 0:return t<i&&e>i;case 1:return t<=i&&e>i;case 2:return e>i;case 4:return!0}}function sl(M,i,t,e){for(var N;M.from==M.to||(t<1?M.from>=i:M.from>i)||(t>-1?M.to<=i:M.to<i);){let i=!e&&M instanceof Dl&&M.index<0?null:M.parent;if(!i)return M;M=i}let s=e?0:Ml.IgnoreOverlays;if(e)for(let e=M,u=e.parent;u;e=u,u=e.parent)e instanceof Dl&&e.index<0&&(null===(N=u.enter(i,t,s))||void 0===N?void 0:N.from)!=e.from&&(M=u);for(;;){let e=M.enter(i,t,s);if(!e)return M;M=e}}class ul{cursor(M=0){return new gl(this,M)}getChild(M,i=null,t=null){let e=nl(this,M,i,t);return e.length?e[0]:null}getChildren(M,i=null,t=null){return nl(this,M,i,t)}resolve(M,i=0){return sl(this,M,i,!1)}resolveInner(M,i=0){return sl(this,M,i,!0)}matchContext(M){return jl(this,M)}enterUnfinishedNodesBefore(M){let i=this.childBefore(M),t=this;for(;i;){let M=i.lastChild;if(!M||M.to!=i.to)break;M.type.isError&&M.from==M.to?(t=i,i=M.prevSibling):i=M}return t}get node(){return this}get next(){return this.parent}}class Dl extends ul{constructor(M,i,t,e){super(),this._tree=M,this.from=i,this.index=t,this._parent=e}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(M,i,t,e,N=0){for(let s=this;;){for(let{children:u,positions:D}=s._tree,n=i>0?u.length:-1;M!=n;M+=i){let n=u[M],j=D[M]+s.from;if(Nl(e,t,j,j+n.length))if(n instanceof el){if(N&Ml.ExcludeBuffers)continue;let u=n.findChild(0,n.buffer.length,i,t-j,e);if(u>-1)return new ll(new Il(s,n,M,j),null,u)}else if(N&Ml.IncludeAnonymous||!n.type.isAnonymous||cl(n)){let u;if(!(N&Ml.IgnoreMounts)&&(u=JI.get(n))&&!u.overlay)return new Dl(u.tree,j,M,s);let D=new Dl(n,j,M,s);return N&Ml.IncludeAnonymous||!D.type.isAnonymous?D:D.nextChild(i<0?n.children.length-1:0,i,t,e)}}if(N&Ml.IncludeAnonymous||!s.type.isAnonymous)return null;if(M=s.index>=0?s.index+i:i<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(M){return this.nextChild(0,1,M,2)}childBefore(M){return this.nextChild(this._tree.children.length-1,-1,M,-2)}enter(M,i,t=0){let e;if(!(t&Ml.IgnoreOverlays)&&(e=JI.get(this._tree))&&e.overlay){let t=M-this.from;for(let{from:M,to:N}of e.overlay)if((i>0?M<=t:M<t)&&(i<0?N>=t:N>t))return new Dl(e.tree,e.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,M,i,t)}nextSignificantParent(){let M=this;for(;M.type.isAnonymous&&M._parent;)M=M._parent;return M}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function nl(M,i,t,e){let N=M.cursor(),s=[];if(!N.firstChild())return s;if(null!=t)for(let M=!1;!M;)if(M=N.type.is(t),!N.nextSibling())return s;for(;;){if(null!=e&&N.type.is(e))return s;if(N.type.is(i)&&s.push(N.node),!N.nextSibling())return null==e?s:[]}}function jl(M,i,t=i.length-1){for(let e=M.parent;t>=0;e=e.parent){if(!e)return!1;if(!e.type.isAnonymous){if(i[t]&&i[t]!=e.name)return!1;t--}}return!0}class Il{constructor(M,i,t,e){this.parent=M,this.buffer=i,this.index=t,this.start=e}}class ll extends ul{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(M,i,t){super(),this.context=M,this._parent=i,this.index=t,this.type=M.buffer.set.types[M.buffer.buffer[t]]}child(M,i,t){let{buffer:e}=this.context,N=e.findChild(this.index+4,e.buffer[this.index+3],M,i-this.context.start,t);return N<0?null:new ll(this.context,this,N)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(M){return this.child(1,M,2)}childBefore(M){return this.child(-1,M,-2)}enter(M,i,t=0){if(t&Ml.ExcludeBuffers)return null;let{buffer:e}=this.context,N=e.findChild(this.index+4,e.buffer[this.index+3],i>0?1:-1,M-this.context.start,i);return N<0?null:new ll(this.context,this,N)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(M){return this._parent?null:this.context.parent.nextChild(this.context.index+M,M,0,4)}get nextSibling(){let{buffer:M}=this.context,i=M.buffer[this.index+3];return i<(this._parent?M.buffer[this._parent.index+3]:M.buffer.length)?new ll(this.context,this._parent,i):this.externalSibling(1)}get prevSibling(){let{buffer:M}=this.context,i=this._parent?this._parent.index+4:0;return this.index==i?this.externalSibling(-1):new ll(this.context,this._parent,M.findChild(i,this.index,-1,0,4))}get tree(){return null}toTree(){let M=[],i=[],{buffer:t}=this.context,e=this.index+4,N=t.buffer[this.index+3];if(N>e){let s=t.buffer[this.index+1];M.push(t.slice(e,N,s)),i.push(0)}return new il(this.type,M,i,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function rl(M){if(!M.length)return null;let i=0,t=M[0];for(let e=1;e<M.length;e++){let N=M[e];(N.from>t.from||N.to<t.to)&&(t=N,i=e)}let e=t instanceof Dl&&t.index<0?null:t.parent,N=M.slice();return e?N[i]=e:N.splice(i,1),new ol(N,t)}class ol{constructor(M,i){this.heads=M,this.node=i}get next(){return rl(this.heads)}}class gl{get name(){return this.type.name}constructor(M,i=0){if(this.mode=i,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,M instanceof Dl)this.yieldNode(M);else{this._tree=M.context.parent,this.buffer=M.context;for(let i=M._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=M,this.yieldBuf(M.index)}}yieldNode(M){return!!M&&(this._tree=M,this.type=M.type,this.from=M.from,this.to=M.to,!0)}yieldBuf(M,i){this.index=M;let{start:t,buffer:e}=this.buffer;return this.type=i||e.set.types[e.buffer[M]],this.from=t+e.buffer[M+1],this.to=t+e.buffer[M+2],!0}yield(M){return!!M&&(M instanceof Dl?(this.buffer=null,this.yieldNode(M)):(this.buffer=M.context,this.yieldBuf(M.index,M.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(M,i,t){if(!this.buffer)return this.yield(this._tree.nextChild(M<0?this._tree._tree.children.length-1:0,M,i,t,this.mode));let{buffer:e}=this.buffer,N=e.findChild(this.index+4,e.buffer[this.index+3],M,i-this.buffer.start,t);return!(N<0)&&(this.stack.push(this.index),this.yieldBuf(N))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(M){return this.enterChild(1,M,2)}childBefore(M){return this.enterChild(-1,M,-2)}enter(M,i,t=this.mode){return this.buffer?!(t&Ml.ExcludeBuffers)&&this.enterChild(1,M,i):this.yield(this._tree.enter(M,i,t))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ml.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let M=this.mode&Ml.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(M)}sibling(M){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+M,M,0,4,this.mode));let{buffer:i}=this.buffer,t=this.stack.length-1;if(M<0){let M=t<0?0:this.stack[t]+4;if(this.index!=M)return this.yieldBuf(i.findChild(M,this.index,-1,0,4))}else{let M=i.buffer[this.index+3];if(M<(t<0?i.buffer.length:i.buffer[this.stack[t]+3]))return this.yieldBuf(M)}return t<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+M,M,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(M){let i,t,{buffer:e}=this;if(e){if(M>0){if(this.index<e.buffer.buffer.length)return!1}else for(let M=0;M<this.index;M++)if(e.buffer.buffer[M+3]<this.index)return!1;({index:i,parent:t}=e)}else({index:i,_parent:t}=this._tree);for(;t;({index:i,_parent:t}=t))if(i>-1)for(let e=i+M,N=M<0?-1:t._tree.children.length;e!=N;e+=M){let M=t._tree.children[e];if(this.mode&Ml.IncludeAnonymous||M instanceof el||!M.type.isAnonymous||cl(M))return!1}return!0}move(M,i){if(i&&this.enterChild(M,0,4))return!0;for(;;){if(this.sibling(M))return!0;if(this.atLastNode(M)||!this.parent())return!1}}next(M=!0){return this.move(1,M)}prev(M=!0){return this.move(-1,M)}moveTo(M,i=0){for(;(this.from==this.to||(i<1?this.from>=M:this.from>M)||(i>-1?this.to<=M:this.to<M))&&this.parent(););for(;this.enterChild(1,M,i););return this}get node(){if(!this.buffer)return this._tree;let M=this.bufferNode,i=null,t=0;if(M&&M.context==this.buffer)M:for(let e=this.index,N=this.stack.length;N>=0;){for(let s=M;s;s=s._parent)if(s.index==e){if(e==this.index)return s;i=s,t=N+1;break M}e=this.stack[--N]}for(let M=t;M<this.stack.length;M++)i=new ll(this.buffer,i,this.stack[M]);return this.bufferNode=new ll(this.buffer,i,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(M,i){for(let t=0;;){let e=!1;if(this.type.isAnonymous||!1!==M(this)){if(this.firstChild()){t++;continue}this.type.isAnonymous||(e=!0)}for(;e&&i&&i(this),e=this.type.isAnonymous,!this.nextSibling();){if(!t)return;this.parent(),t--,e=!0}}}matchContext(M){if(!this.buffer)return jl(this.node,M);let{buffer:i}=this.buffer,{types:t}=i.set;for(let e=M.length-1,N=this.stack.length-1;e>=0;N--){if(N<0)return jl(this.node,M,e);let s=t[i.buffer[this.stack[N]]];if(!s.isAnonymous){if(M[e]&&M[e]!=s.name)return!1;e--}}return!0}}function cl(M){return M.children.some((M=>M instanceof el||!M.type.isAnonymous||cl(M)))}const al=new WeakMap;function Ol(M,i){if(!M.isAnonymous||i instanceof el||i.type!=M)return 1;let t=al.get(i);if(null==t){t=1;for(let e of i.children){if(e.type!=M||!(e instanceof il)){t=1;break}t+=Ol(M,e)}al.set(i,t)}return t}function Tl(M,i,t,e,N,s,u,D,n){let j=0;for(let t=e;t<N;t++)j+=Ol(M,i[t]);let I=Math.ceil(1.5*j/8),l=[],r=[];return function i(t,e,N,u,D){for(let j=N;j<u;){let N=j,o=e[j],g=Ol(M,t[j]);for(j++;j<u;j++){let i=Ol(M,t[j]);if(g+i>=I)break;g+=i}if(j==N+1){if(g>I){let M=t[N];i(M.children,M.positions,0,M.children.length,e[N]+D);continue}l.push(t[N])}else{let i=e[j-1]+t[j-1].length-o;l.push(Tl(M,t,e,N,j,o,i,null,n))}r.push(o+D-s)}}(i,t,e,N,0),(D||n)(l,r,u)}class Ll{constructor(){this.map=new WeakMap}setBuffer(M,i,t){let e=this.map.get(M);e||this.map.set(M,e=new Map),e.set(i,t)}getBuffer(M,i){let t=this.map.get(M);return t&&t.get(i)}set(M,i){M instanceof ll?this.setBuffer(M.context.buffer,M.index,i):M instanceof Dl&&this.map.set(M.tree,i)}get(M){return M instanceof ll?this.getBuffer(M.context.buffer,M.index):M instanceof Dl?this.map.get(M.tree):void 0}cursorSet(M,i){M.buffer?this.setBuffer(M.buffer.buffer,M.index,i):this.map.set(M.tree,i)}cursorGet(M){return M.buffer?this.getBuffer(M.buffer.buffer,M.index):this.map.get(M.tree)}}class hl{constructor(M,i,t,e,N=!1,s=!1){this.from=M,this.to=i,this.tree=t,this.offset=e,this.open=(N?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(M,i=[],t=!1){let e=[new hl(0,M.length,M,0,!1,t)];for(let t of i)t.to>M.length&&e.push(t);return e}static applyChanges(M,i,t=128){if(!i.length)return M;let e=[],N=1,s=M.length?M[0]:null;for(let u=0,D=0,n=0;;u++){let j=u<i.length?i[u]:null,I=j?j.fromA:1e9;if(I-D>=t)for(;s&&s.from<I;){let i=s;if(D>=i.from||I<=i.to||n){let M=Math.max(i.from,D)-n,t=Math.min(i.to,I)-n;i=M>=t?null:new hl(M,t,i.tree,i.offset+n,u>0,!!j)}if(i&&e.push(i),s.to>I)break;s=N<M.length?M[N++]:null}if(!j)break;D=j.toA,n=j.toA-j.toB}return e}}class zl{startParse(M,i,t){return"string"==typeof M&&(M=new yl(M)),t=t?t.length?t.map((M=>new FI(M.from,M.to))):[new FI(0,0)]:[new FI(0,M.length)],this.createParse(M,i||[],t)}parse(M,i,t){let e=this.startParse(M,i,t);for(;;){let M=e.advance();if(M)return M}}}class yl{constructor(M){this.string=M}get length(){return this.string.length}chunk(M){return this.string.slice(M)}get lineChunks(){return!1}read(M,i){return this.string.slice(M,i)}}new XI({perNode:!0});let dl=0;class Al{constructor(M,i,t){this.set=M,this.base=i,this.modified=t,this.id=dl++}static define(M){if(null==M?void 0:M.base)throw new Error("Can not derive from a modified tag");let i=new Al([],null,[]);if(i.set.push(i),M)for(let t of M.set)i.set.push(t);return i}static defineModifier(){let M=new wl;return i=>i.modified.indexOf(M)>-1?i:wl.get(i.base||i,i.modified.concat(M).sort(((M,i)=>M.id-i.id)))}}let xl=0;class wl{constructor(){this.instances=[],this.id=xl++}static get(M,i){if(!i.length)return M;let t=i[0].instances.find((t=>t.base==M&&function(M,i){return M.length==i.length&&M.every(((M,t)=>M==i[t]))}(i,t.modified)));if(t)return t;let e=[],N=new Al(e,M,i);for(let M of i)M.instances.push(N);let s=function(M){let i=[[]];for(let t=0;t<M.length;t++)for(let e=0,N=i.length;e<N;e++)i.push(i[e].concat(M[t]));return i.sort(((M,i)=>i.length-M.length))}(i);for(let i of M.set)if(!i.modified.length)for(let M of s)e.push(wl.get(i,M));return N}}function Sl(M){let i=Object.create(null);for(let t in M){let e=M[t];Array.isArray(e)||(e=[e]);for(let M of t.split(" "))if(M){let t=[],N=2,s=M;for(let i=0;;){if("..."==s&&i>0&&i+3==M.length){N=1;break}let e=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!e)throw new RangeError("Invalid path: "+M);if(t.push("*"==e[0]?"":'"'==e[0][0]?JSON.parse(e[0]):e[0]),i+=e[0].length,i==M.length)break;let u=M[i++];if(i==M.length&&"!"==u){N=0;break}if("/"!=u)throw new RangeError("Invalid path: "+M);s=M.slice(i)}let u=t.length-1,D=t[u];if(!D)throw new RangeError("Invalid path: "+M);let n=new Ql(e,N,u>0?t.slice(0,u):null);i[D]=n.sort(i[D])}}return El.add(i)}const El=new XI;class Ql{constructor(M,i,t,e){this.tags=M,this.mode=i,this.context=t,this.next=e}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(M){return!M||M.depth<this.depth?(this.next=M,this):(M.next=this.sort(M.next),M)}get depth(){return this.context?this.context.length:0}}function kl(M,i){let t=Object.create(null);for(let i of M)if(Array.isArray(i.tag))for(let M of i.tag)t[M.id]=i.class;else t[i.tag.id]=i.class;let{scope:e,all:N=null}=i||{};return{style:M=>{let i=N;for(let e of M)for(let M of e.set){let e=t[M.id];if(e){i=i?i+" "+e:e;break}}return i},scope:e}}function Cl(M,i,t,e=0,N=M.length){let s=new pl(e,Array.isArray(i)?i:[i],t);s.highlightRange(M.cursor(),e,N,"",s.highlighters),s.flush(N)}Ql.empty=new Ql([],2,null);class pl{constructor(M,i,t){this.at=M,this.highlighters=i,this.span=t,this.class=""}startSpan(M,i){i!=this.class&&(this.flush(M),M>this.at&&(this.at=M),this.class=i)}flush(M){M>this.at&&this.class&&this.span(this.at,M,this.class)}highlightRange(M,i,t,e,N){let{type:s,from:u,to:D}=M;if(u>=t||D<=i)return;s.isTop&&(N=this.highlighters.filter((M=>!M.scope||M.scope(s))));let n=e,j=function(M){let i=M.type.prop(El);for(;i&&i.context&&!M.matchContext(i.context);)i=i.next;return i||null}(M)||Ql.empty,I=function(M,i){let t=null;for(let e of M){let M=e.style(i);M&&(t=t?t+" "+M:M)}return t}(N,j.tags);if(I&&(n&&(n+=" "),n+=I,1==j.mode&&(e+=(e?" ":"")+I)),this.startSpan(Math.max(i,u),n),j.opaque)return;let l=M.tree&&M.tree.prop(XI.mounted);if(l&&l.overlay){let s=M.node.enter(l.overlay[0].from+u,1),j=this.highlighters.filter((M=>!M.scope||M.scope(l.tree.type))),I=M.firstChild();for(let r=0,o=u;;r++){let g=r<l.overlay.length?l.overlay[r]:null,c=g?g.from+u:D,a=Math.max(i,o),O=Math.min(t,c);if(a<O&&I)for(;M.from<O&&(this.highlightRange(M,a,O,e,N),this.startSpan(Math.min(O,M.to),n),!(M.to>=c)&&M.nextSibling()););if(!g||c>t)break;o=g.to+u,o>i&&(this.highlightRange(s.cursor(),Math.max(i,g.from+u),Math.min(t,o),"",j),this.startSpan(Math.min(t,o),n))}I&&M.parent()}else if(M.firstChild()){l&&(e="");do{if(!(M.to<=i)){if(M.from>=t)break;this.highlightRange(M,i,t,e,N),this.startSpan(Math.min(t,M.to),n)}}while(M.nextSibling());M.parent()}}}const Ul=Al.define,bl=Ul(),Zl=Ul(),ml=Ul(Zl),Yl=Ul(Zl),fl=Ul(),Wl=Ul(fl),Vl=Ul(fl),vl=Ul(),Gl=Ul(vl),Pl=Ul(),Rl=Ul(),Bl=Ul(),Fl=Ul(Bl),Xl=Ul(),Jl={comment:bl,lineComment:Ul(bl),blockComment:Ul(bl),docComment:Ul(bl),name:Zl,variableName:Ul(Zl),typeName:ml,tagName:Ul(ml),propertyName:Yl,attributeName:Ul(Yl),className:Ul(Zl),labelName:Ul(Zl),namespace:Ul(Zl),macroName:Ul(Zl),literal:fl,string:Wl,docString:Ul(Wl),character:Ul(Wl),attributeValue:Ul(Wl),number:Vl,integer:Ul(Vl),float:Ul(Vl),bool:Ul(fl),regexp:Ul(fl),escape:Ul(fl),color:Ul(fl),url:Ul(fl),keyword:Pl,self:Ul(Pl),null:Ul(Pl),atom:Ul(Pl),unit:Ul(Pl),modifier:Ul(Pl),operatorKeyword:Ul(Pl),controlKeyword:Ul(Pl),definitionKeyword:Ul(Pl),moduleKeyword:Ul(Pl),operator:Rl,derefOperator:Ul(Rl),arithmeticOperator:Ul(Rl),logicOperator:Ul(Rl),bitwiseOperator:Ul(Rl),compareOperator:Ul(Rl),updateOperator:Ul(Rl),definitionOperator:Ul(Rl),typeOperator:Ul(Rl),controlOperator:Ul(Rl),punctuation:Bl,separator:Ul(Bl),bracket:Fl,angleBracket:Ul(Fl),squareBracket:Ul(Fl),paren:Ul(Fl),brace:Ul(Fl),content:vl,heading:Gl,heading1:Ul(Gl),heading2:Ul(Gl),heading3:Ul(Gl),heading4:Ul(Gl),heading5:Ul(Gl),heading6:Ul(Gl),contentSeparator:Ul(vl),list:Ul(vl),quote:Ul(vl),emphasis:Ul(vl),strong:Ul(vl),link:Ul(vl),monospace:Ul(vl),strikethrough:Ul(vl),inserted:Ul(),deleted:Ul(),changed:Ul(),invalid:Ul(),meta:Xl,documentMeta:Ul(Xl),annotation:Ul(Xl),processingInstruction:Ul(Xl),definition:Al.defineModifier(),constant:Al.defineModifier(),function:Al.defineModifier(),standard:Al.defineModifier(),local:Al.defineModifier(),special:Al.defineModifier()};var Hl;kl([{tag:Jl.link,class:"tok-link"},{tag:Jl.heading,class:"tok-heading"},{tag:Jl.emphasis,class:"tok-emphasis"},{tag:Jl.strong,class:"tok-strong"},{tag:Jl.keyword,class:"tok-keyword"},{tag:Jl.atom,class:"tok-atom"},{tag:Jl.bool,class:"tok-bool"},{tag:Jl.url,class:"tok-url"},{tag:Jl.labelName,class:"tok-labelName"},{tag:Jl.inserted,class:"tok-inserted"},{tag:Jl.deleted,class:"tok-deleted"},{tag:Jl.literal,class:"tok-literal"},{tag:Jl.string,class:"tok-string"},{tag:Jl.number,class:"tok-number"},{tag:[Jl.regexp,Jl.escape,Jl.special(Jl.string)],class:"tok-string2"},{tag:Jl.variableName,class:"tok-variableName"},{tag:Jl.local(Jl.variableName),class:"tok-variableName tok-local"},{tag:Jl.definition(Jl.variableName),class:"tok-variableName tok-definition"},{tag:Jl.special(Jl.variableName),class:"tok-variableName2"},{tag:Jl.definition(Jl.propertyName),class:"tok-propertyName tok-definition"},{tag:Jl.typeName,class:"tok-typeName"},{tag:Jl.namespace,class:"tok-namespace"},{tag:Jl.className,class:"tok-className"},{tag:Jl.macroName,class:"tok-macroName"},{tag:Jl.propertyName,class:"tok-propertyName"},{tag:Jl.operator,class:"tok-operator"},{tag:Jl.comment,class:"tok-comment"},{tag:Jl.meta,class:"tok-meta"},{tag:Jl.invalid,class:"tok-invalid"},{tag:Jl.punctuation,class:"tok-punctuation"}]);const $l=new XI;function _l(M){return Ke.define({combine:M?i=>i.concat(M):void 0})}const ql=new XI;class Kl{constructor(M,i,t=[],e=""){this.data=M,this.name=e,vN.prototype.hasOwnProperty("tree")||Object.defineProperty(vN.prototype,"tree",{get(){return tr(this)}}),this.parser=i,this.extension=[lr.of(this),vN.languageData.of(((M,i,t)=>{let e=Mr(M,i,t),N=e.type.prop($l);if(!N)return[];let s=M.facet(N),u=e.type.prop(ql);if(u){let N=e.resolve(i-e.from,t);for(let i of u)if(i.test(N,M)){let t=M.facet(i.facet);return"replace"==i.type?t:t.concat(s)}}return s}))].concat(t)}isActiveAt(M,i,t=-1){return Mr(M,i,t).type.prop($l)==this.data}findRegions(M){let i=M.facet(lr);if((null==i?void 0:i.data)==this.data)return[{from:0,to:M.doc.length}];if(!i||!i.allowsNesting)return[];let t=[],e=(M,i)=>{if(M.prop($l)==this.data)return void t.push({from:i,to:i+M.length});let N=M.prop(XI.mounted);if(N){if(N.tree.prop($l)==this.data){if(N.overlay)for(let M of N.overlay)t.push({from:M.from+i,to:M.to+i});else t.push({from:i,to:i+M.length});return}if(N.overlay){let M=t.length;if(e(N.tree,N.overlay[0].from+i),t.length>M)return}}for(let t=0;t<M.children.length;t++){let N=M.children[t];N instanceof il&&e(N,M.positions[t]+i)}};return e(tr(M),0),t}get allowsNesting(){return!0}}function Mr(M,i,t){let e=M.facet(lr),N=tr(M).topNode;if(!e||e.allowsNesting)for(let M=N;M;M=M.enter(i,t,Ml.ExcludeBuffers))M.type.isTop&&(N=M);return N}Kl.setState=QN.define();class ir extends Kl{constructor(M,i,t){super(M,i,[],t),this.parser=i}static define(M){let i=_l(M.languageData);return new ir(i,M.parser.configure({props:[$l.add((M=>M.isTop?i:void 0))]}),M.name)}configure(M,i){return new ir(this.data,this.parser.configure(M),i||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function tr(M){let i=M.field(Kl.state,!1);return i?i.tree:il.empty}class er{constructor(M){this.doc=M,this.cursorPos=0,this.string="",this.cursor=M.iter()}get length(){return this.doc.length}syncTo(M){return this.string=this.cursor.next(M-this.cursorPos).value,this.cursorPos=M+this.string.length,this.cursorPos-this.string.length}chunk(M){return this.syncTo(M),this.string}get lineChunks(){return!0}read(M,i){let t=this.cursorPos-this.string.length;return M<t||i>=this.cursorPos?this.doc.sliceString(M,i):this.string.slice(M-t,i-t)}}let Nr=null;class sr{constructor(M,i,t=[],e,N,s,u,D){this.parser=M,this.state=i,this.fragments=t,this.tree=e,this.treeLen=N,this.viewport=s,this.skipped=u,this.scheduleOn=D,this.parse=null,this.tempSkipped=[]}static create(M,i,t){return new sr(M,i,[],il.empty,0,t,[],null)}startParse(){return this.parser.startParse(new er(this.state.doc),this.fragments)}work(M,i){return null!=i&&i>=this.state.doc.length&&(i=void 0),this.tree!=il.empty&&this.isDone(null!=i?i:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var t;if("number"==typeof M){let i=Date.now()+M;M=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),null!=i&&(null==this.parse.stoppedAt||this.parse.stoppedAt>i)&&i<this.state.doc.length&&this.parse.stopAt(i);;){let e=this.parse.advance();if(e){if(this.fragments=this.withoutTempSkipped(hl.addTree(e,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(t=this.parse.stoppedAt)&&void 0!==t?t:this.state.doc.length,this.tree=e,this.parse=null,!(this.treeLen<(null!=i?i:this.state.doc.length)))return!0;this.parse=this.startParse()}if(M())return!1}}))}takeTree(){let M,i;this.parse&&(M=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>M)&&this.parse.stopAt(M),this.withContext((()=>{for(;!(i=this.parse.advance()););})),this.treeLen=M,this.tree=i,this.fragments=this.withoutTempSkipped(hl.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(M){let i=Nr;Nr=this;try{return M()}finally{Nr=i}}withoutTempSkipped(M){for(let i;i=this.tempSkipped.pop();)M=ur(M,i.from,i.to);return M}changes(M,i){let{fragments:t,tree:e,treeLen:N,viewport:s,skipped:u}=this;if(this.takeTree(),!M.empty){let i=[];if(M.iterChangedRanges(((M,t,e,N)=>i.push({fromA:M,toA:t,fromB:e,toB:N}))),t=hl.applyChanges(t,i),e=il.empty,N=0,s={from:M.mapPos(s.from,-1),to:M.mapPos(s.to,1)},this.skipped.length){u=[];for(let i of this.skipped){let t=M.mapPos(i.from,1),e=M.mapPos(i.to,-1);t<e&&u.push({from:t,to:e})}}}return new sr(this.parser,i,t,e,N,s,u,this.scheduleOn)}updateViewport(M){if(this.viewport.from==M.from&&this.viewport.to==M.to)return!1;this.viewport=M;let i=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:t,to:e}=this.skipped[i];t<M.to&&e>M.from&&(this.fragments=ur(this.fragments,t,e),this.skipped.splice(i--,1))}return!(this.skipped.length>=i)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(M,i){this.skipped.push({from:M,to:i})}static getSkippingParser(M){return new class extends zl{createParse(i,t,e){let N=e[0].from,s=e[e.length-1].to,u={parsedPos:N,advance(){let i=Nr;if(i){for(let M of e)i.tempSkipped.push(M);M&&(i.scheduleOn=i.scheduleOn?Promise.all([i.scheduleOn,M]):M)}return this.parsedPos=s,new il($I.none,[],[],s-N)},stoppedAt:null,stopAt(){}};return u}}}isDone(M){M=Math.min(M,this.state.doc.length);let i=this.fragments;return this.treeLen>=M&&i.length&&0==i[0].from&&i[0].to>=M}static get(){return Nr}}function ur(M,i,t){return hl.applyChanges(M,[{fromA:i,toA:t,fromB:i,toB:t}])}class Dr{constructor(M){this.context=M,this.tree=M.tree}apply(M){if(!M.docChanged&&this.tree==this.context.tree)return this;let i=this.context.changes(M.changes,M.state),t=this.context.treeLen==M.startState.doc.length?void 0:Math.max(M.changes.mapPos(this.context.treeLen),i.viewport.to);return i.work(20,t)||i.takeTree(),new Dr(i)}static init(M){let i=Math.min(3e3,M.doc.length),t=sr.create(M.facet(lr).parser,M,{from:0,to:i});return t.work(20,i)||t.takeTree(),new Dr(t)}}Kl.state=uN.define({create:Dr.init,update(M,i){for(let M of i.effects)if(M.is(Kl.setState))return M.value;return i.startState.facet(lr)!=i.state.facet(lr)?Dr.init(i.state):M.apply(i)}});let nr=M=>{let i=setTimeout((()=>M()),500);return()=>clearTimeout(i)};"undefined"!=typeof requestIdleCallback&&(nr=M=>{let i=-1,t=setTimeout((()=>{i=requestIdleCallback(M,{timeout:400})}),100);return()=>i<0?clearTimeout(t):cancelIdleCallback(i)});const jr="undefined"!=typeof navigator&&(null===(Hl=navigator.scheduling)||void 0===Hl?void 0:Hl.isInputPending)?()=>navigator.scheduling.isInputPending():null,Ir=nD.fromClass(class{constructor(M){this.view=M,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(M){let i=this.view.state.field(Kl.state).context;(i.updateViewport(M.view.viewport)||this.view.viewport.to>i.treeLen)&&this.scheduleWork(),(M.docChanged||M.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(i)}scheduleWork(){if(this.working)return;let{state:M}=this.view,i=M.field(Kl.state);i.tree==i.context.tree&&i.context.isDone(M.doc.length)||(this.working=nr(this.work))}work(M){this.working=null;let i=Date.now();if(this.chunkEnd<i&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=i+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:t,viewport:{to:e}}=this.view,N=t.field(Kl.state);if(N.tree==N.context.tree&&N.context.isDone(e+1e5))return;let s=Date.now()+Math.min(this.chunkBudget,100,M&&!jr?Math.max(25,M.timeRemaining()-5):1e9),u=N.context.treeLen<e&&t.doc.length>e+1e3,D=N.context.work((()=>jr&&jr()||Date.now()>s),e+(u?0:1e5));this.chunkBudget-=Date.now()-i,(D||this.chunkBudget<=0)&&(N.context.takeTree(),this.view.dispatch({effects:Kl.setState.of(new Dr(N.context))})),this.chunkBudget>0&&(!D||u)&&this.scheduleWork(),this.checkAsyncSchedule(N.context)}checkAsyncSchedule(M){M.scheduleOn&&(this.workScheduled++,M.scheduleOn.then((()=>this.scheduleWork())).catch((M=>ND(this.view.state,M))).then((()=>this.workScheduled--)),M.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),lr=Ke.define({combine:M=>M.length?M[0]:null,enables:M=>[Kl.state,Ir,uj.contentAttributes.compute([M],(i=>{let t=i.facet(M);return t&&t.name?{"data-language":t.name}:{}}))]});class rr{constructor(M,i=[]){this.language=M,this.support=i,this.extension=[M,i]}}const or=Ke.define(),gr=Ke.define({combine:M=>{if(!M.length)return" ";let i=M[0];if(!i||/\S/.test(i)||Array.from(i).some((M=>M!=i[0])))throw new Error("Invalid indent unit: "+JSON.stringify(M[0]));return i}});function cr(M){let i=M.facet(gr);return 9==i.charCodeAt(0)?M.tabSize*i.length:i.length}function ar(M,i){let t="",e=M.tabSize,N=M.facet(gr)[0];if("\t"==N){for(;i>=e;)t+="\t",i-=e;N=" "}for(let M=0;M<i;M++)t+=N;return t}function Or(M,i){M instanceof vN&&(M=new Tr(M));for(let t of M.state.facet(or)){let e=t(M,i);if(void 0!==e)return e}let t=tr(M.state);return t.length>=i?function(M,i,t){let e=i.resolveStack(t),N=e.node.enterUnfinishedNodesBefore(t);if(N!=e.node){let M=[];for(let i=N;i!=e.node;i=i.parent)M.push(i);for(let i=M.length-1;i>=0;i--)e={node:M[i],next:e}}return hr(e,M,t)}(M,t,i):null}class Tr{constructor(M,i={}){this.state=M,this.options=i,this.unit=cr(M)}lineAt(M,i=1){let t=this.state.doc.lineAt(M),{simulateBreak:e,simulateDoubleBreak:N}=this.options;return null!=e&&e>=t.from&&e<=t.to?N&&e==M?{text:"",from:M}:(i<0?e<M:e<=M)?{text:t.text.slice(e-t.from),from:e}:{text:t.text.slice(0,e-t.from),from:t.from}:t}textAfterPos(M,i=1){if(this.options.simulateDoubleBreak&&M==this.options.simulateBreak)return"";let{text:t,from:e}=this.lineAt(M,i);return t.slice(M-e,Math.min(t.length,M+100-e))}column(M,i=1){let{text:t,from:e}=this.lineAt(M,i),N=this.countColumn(t,M-e),s=this.options.overrideIndentation?this.options.overrideIndentation(e):-1;return s>-1&&(N+=s-this.countColumn(t,t.search(/\S|$/))),N}countColumn(M,i=M.length){return ss(M,this.state.tabSize,i)}lineIndent(M,i=1){let{text:t,from:e}=this.lineAt(M,i),N=this.options.overrideIndentation;if(N){let M=N(e);if(M>-1)return M}return this.countColumn(t,t.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Lr=new XI;function hr(M,i,t){for(let e=M;e;e=e.next){let M=zr(e.node);if(M)return M(dr.create(i,t,e))}return 0}function zr(M){let i=M.type.prop(Lr);if(i)return i;let t,e=M.firstChild;if(e&&(t=e.type.prop(XI.closedBy))){let i=M.lastChild,e=i&&t.indexOf(i.name)>-1;return M=>wr(M,!0,1,void 0,e&&!function(M){return M.pos==M.options.simulateBreak&&M.options.simulateDoubleBreak}(M)?i.from:void 0)}return null==M.parent?yr:null}function yr(){return 0}class dr extends Tr{constructor(M,i,t){super(M.state,M.options),this.base=M,this.pos=i,this.context=t}get node(){return this.context.node}static create(M,i,t){return new dr(M,i,t)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(M){let i=this.state.doc.lineAt(M.from);for(;;){let t=M.resolve(i.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(Ar(t,M))break;i=this.state.doc.lineAt(t.from)}return this.lineIndent(i.from)}continue(){return hr(this.context.next,this.base,this.pos)}}function Ar(M,i){for(let t=i;t;t=t.parent)if(M==t)return!0;return!1}function xr({closing:M,align:i=!0,units:t=1}){return e=>wr(e,i,t,M)}function wr(M,i,t,e,N){let s=M.textAfter,u=s.match(/^\s*/)[0].length,D=e&&s.slice(u,u+e.length)==e||N==M.pos+u,n=i?function(M){let i=M.node,t=i.childAfter(i.from),e=i.lastChild;if(!t)return null;let N=M.options.simulateBreak,s=M.state.doc.lineAt(t.from),u=null==N||N<=s.from?s.to:Math.min(s.to,N);for(let M=t.to;;){let N=i.childAfter(M);if(!N||N==e)return null;if(!N.type.isSkipped)return N.from<u?t:null;M=N.to}}(M):null;return n?D?M.column(n.from):M.column(n.to):M.baseIndent+(D?0:M.unit*t)}function Sr({except:M,units:i=1}={}){return t=>{let e=M&&M.test(t.textAfter);return t.baseIndent+(e?0:i*t.unit)}}const Er=Ke.define(),Qr=new XI;function kr(M){let i=M.lastChild;return i&&i.to==M.to&&i.type.isError}function Cr(M,i,t){for(let e of M.facet(Er)){let N=e(M,i,t);if(N)return N}return function(M,i,t){let e=tr(M);if(e.length<t)return null;let N=null;for(let s=e.resolveStack(t,1);s;s=s.next){let u=s.node;if(u.to<=t||u.from>t)continue;if(N&&u.from<i)break;let D=u.type.prop(Qr);if(D&&(u.to<e.length-50||e.length==M.doc.length||!kr(u))){let e=D(u,M);e&&e.from<=t&&e.from>=i&&e.to>t&&(N=e)}}return N}(M,i,t)}function pr(M,i){let t=i.mapPos(M.from,1),e=i.mapPos(M.to,-1);return t>=e?void 0:{from:t,to:e}}const Ur=QN.define({map:pr}),br=QN.define({map:pr});function Zr(M){let i=[];for(let{head:t}of M.state.selection.ranges)i.some((M=>M.from<=t&&M.to>=t))||i.push(M.lineBlockAt(t));return i}const mr=uN.define({create:()=>Lu.none,update(M,i){M=M.map(i.changes);for(let t of i.effects)if(t.is(Ur)&&!fr(M,t.value.from,t.value.to)){let{preparePlaceholder:e}=i.state.facet(Pr),N=e?Lu.replace({widget:new Xr(e(i.state,t.value))}):Fr;M=M.update({add:[N.range(t.value.from,t.value.to)]})}else t.is(br)&&(M=M.update({filter:(M,i)=>t.value.from!=M||t.value.to!=i,filterFrom:t.value.from,filterTo:t.value.to}));if(i.selection){let t=!1,{head:e}=i.selection.main;M.between(e,e,((M,i)=>{M<e&&i>e&&(t=!0)})),t&&(M=M.update({filterFrom:e,filterTo:e,filter:(M,i)=>i<=e||M>=e}))}return M},provide:M=>uj.decorations.from(M),toJSON(M,i){let t=[];return M.between(0,i.doc.length,((M,i)=>{t.push(M,i)})),t},fromJSON(M){if(!Array.isArray(M)||M.length%2)throw new RangeError("Invalid JSON for fold state");let i=[];for(let t=0;t<M.length;){let e=M[t++],N=M[t++];if("number"!=typeof e||"number"!=typeof N)throw new RangeError("Invalid JSON for fold state");i.push(Fr.range(e,N))}return Lu.set(i,!0)}});function Yr(M,i,t){var e;let N=null;return null===(e=M.field(mr,!1))||void 0===e||e.between(i,t,((M,i)=>{(!N||N.from>M)&&(N={from:M,to:i})})),N}function fr(M,i,t){let e=!1;return M.between(i,i,((M,N)=>{M==i&&N==t&&(e=!0)})),e}function Wr(M,i){return M.field(mr,!1)?i:i.concat(QN.appendConfig.of(Rr()))}function Vr(M,i,t=!0){let e=M.state.doc.lineAt(i.from).number,N=M.state.doc.lineAt(i.to).number;return uj.announce.of(`${M.state.phrase(t?"Folded lines":"Unfolded lines")} ${e} ${M.state.phrase("to")} ${N}.`)}const vr=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:M=>{for(let i of Zr(M)){let t=Cr(M.state,i.from,i.to);if(t)return M.dispatch({effects:Wr(M.state,[Ur.of(t),Vr(M,t)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:M=>{if(!M.state.field(mr,!1))return!1;let i=[];for(let t of Zr(M)){let e=Yr(M.state,t.from,t.to);e&&i.push(br.of(e),Vr(M,e,!1))}return i.length&&M.dispatch({effects:i}),i.length>0}},{key:"Ctrl-Alt-[",run:M=>{let{state:i}=M,t=[];for(let e=0;e<i.doc.length;){let N=M.lineBlockAt(e),s=Cr(i,N.from,N.to);s&&t.push(Ur.of(s)),e=(s?M.lineBlockAt(s.to):N).to+1}return t.length&&M.dispatch({effects:Wr(M.state,t)}),!!t.length}},{key:"Ctrl-Alt-]",run:M=>{let i=M.state.field(mr,!1);if(!i||!i.size)return!1;let t=[];return i.between(0,M.state.doc.length,((M,i)=>{t.push(br.of({from:M,to:i}))})),M.dispatch({effects:t}),!0}}],Gr={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Pr=Ke.define({combine:M=>GN(M,Gr)});function Rr(M){let i=[mr,$r];return M&&i.push(Pr.of(M)),i}function Br(M,i){let{state:t}=M,e=t.facet(Pr),N=i=>{let t=M.lineBlockAt(M.posAtDOM(i.target)),e=Yr(M.state,t.from,t.to);e&&M.dispatch({effects:br.of(e)}),i.preventDefault()};if(e.placeholderDOM)return e.placeholderDOM(M,N,i);let s=document.createElement("span");return s.textContent=e.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=N,s}const Fr=Lu.replace({widget:new class extends Ou{toDOM(M){return Br(M,null)}}});class Xr extends Ou{constructor(M){super(),this.value=M}eq(M){return this.value==M.value}toDOM(M){return Br(M,this.value)}}const Jr={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Hr extends dI{constructor(M,i){super(),this.config=M,this.open=i}eq(M){return this.config==M.config&&this.open==M.open}toDOM(M){if(this.config.markerDOM)return this.config.markerDOM(this.open);let i=document.createElement("span");return i.textContent=this.open?this.config.openText:this.config.closedText,i.title=M.state.phrase(this.open?"Fold line":"Unfold line"),i}}const $r=uj.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class _r{constructor(M,i){let t;function e(M){let i=Is.newName();return(t||(t=Object.create(null)))["."+i]=M,i}this.specs=M;const N="string"==typeof i.all?i.all:i.all?e(i.all):void 0,s=i.scope;this.scope=s instanceof Kl?M=>M.prop($l)==s.data:s?M=>M==s:void 0,this.style=kl(M.map((M=>({tag:M.tag,class:M.class||e(Object.assign({},M,{tag:null}))}))),{all:N}).style,this.module=t?new Is(t):null,this.themeType=i.themeType}static define(M,i){return new _r(M,i||{})}}const qr=Ke.define(),Kr=Ke.define({combine:M=>M.length?[M[0]]:null});function Mo(M){let i=M.facet(qr);return i.length?i:M.facet(Kr)}class io{constructor(M){this.markCache=Object.create(null),this.tree=tr(M.state),this.decorations=this.buildDeco(M,Mo(M.state))}update(M){let i=tr(M.state),t=Mo(M.state),e=t!=Mo(M.startState);i.length<M.view.viewport.to&&!e&&i.type==this.tree.type?this.decorations=this.decorations.map(M.changes):(i!=this.tree||M.viewportChanged||e)&&(this.tree=i,this.decorations=this.buildDeco(M.view,t))}buildDeco(M,i){if(!i||!this.tree.length)return Lu.none;let t=new JN;for(let{from:e,to:N}of M.visibleRanges)Cl(this.tree,i,((M,i,e)=>{t.add(M,i,this.markCache[e]||(this.markCache[e]=Lu.mark({class:e})))}),e,N);return t.finish()}}const to=rN.high(nD.fromClass(io,{decorations:M=>M.decorations})),eo=_r.define([{tag:Jl.meta,color:"#404740"},{tag:Jl.link,textDecoration:"underline"},{tag:Jl.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Jl.emphasis,fontStyle:"italic"},{tag:Jl.strong,fontWeight:"bold"},{tag:Jl.strikethrough,textDecoration:"line-through"},{tag:Jl.keyword,color:"#708"},{tag:[Jl.atom,Jl.bool,Jl.url,Jl.contentSeparator,Jl.labelName],color:"#219"},{tag:[Jl.literal,Jl.inserted],color:"#164"},{tag:[Jl.string,Jl.deleted],color:"#a11"},{tag:[Jl.regexp,Jl.escape,Jl.special(Jl.string)],color:"#e40"},{tag:Jl.definition(Jl.variableName),color:"#00f"},{tag:Jl.local(Jl.variableName),color:"#30a"},{tag:[Jl.typeName,Jl.namespace],color:"#085"},{tag:Jl.className,color:"#167"},{tag:[Jl.special(Jl.variableName),Jl.macroName],color:"#256"},{tag:Jl.definition(Jl.propertyName),color:"#00c"},{tag:Jl.comment,color:"#940"},{tag:Jl.invalid,color:"#f00"}]),No=uj.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),so=1e4,uo="()[]{}",Do=Ke.define({combine:M=>GN(M,{afterCursor:!0,brackets:uo,maxScanDistance:so,renderMatch:Io})}),no=Lu.mark({class:"cm-matchingBracket"}),jo=Lu.mark({class:"cm-nonmatchingBracket"});function Io(M){let i=[],t=M.matched?no:jo;return i.push(t.range(M.start.from,M.start.to)),M.end&&i.push(t.range(M.end.from,M.end.to)),i}const lo=uN.define({create:()=>Lu.none,update(M,i){if(!i.docChanged&&!i.selection)return M;let t=[],e=i.state.facet(Do);for(let M of i.state.selection.ranges){if(!M.empty)continue;let N=ao(i.state,M.head,-1,e)||M.head>0&&ao(i.state,M.head-1,1,e)||e.afterCursor&&(ao(i.state,M.head,1,e)||M.head<i.state.doc.length&&ao(i.state,M.head+1,-1,e));N&&(t=t.concat(e.renderMatch(N,i.state)))}return Lu.set(t,!0)},provide:M=>uj.decorations.from(M)}),ro=[lo,No];const oo=new XI;function go(M,i,t){let e=M.prop(i<0?XI.openedBy:XI.closedBy);if(e)return e;if(1==M.name.length){let e=t.indexOf(M.name);if(e>-1&&e%2==(i<0?1:0))return[t[e+i]]}return null}function co(M){let i=M.type.prop(oo);return i?i(M.node):M}function ao(M,i,t,e={}){let N=e.maxScanDistance||so,s=e.brackets||uo,u=tr(M),D=u.resolveInner(i,t);for(let e=D;e;e=e.parent){let N=go(e.type,t,s);if(N&&e.from<e.to){let u=co(e);if(u&&(t>0?i>=u.from&&i<u.to:i>u.from&&i<=u.to))return Oo(M,i,t,e,u,N,s)}}return function(M,i,t,e,N,s,u){let D=t<0?M.sliceDoc(i-1,i):M.sliceDoc(i,i+1),n=u.indexOf(D);if(n<0||n%2==0!=t>0)return null;let j={from:t<0?i-1:i,to:t>0?i+1:i},I=M.doc.iterRange(i,t>0?M.doc.length:0),l=0;for(let M=0;!I.next().done&&M<=s;){let s=I.value;t<0&&(M+=s.length);let D=i+M*t;for(let M=t>0?0:s.length-1,i=t>0?s.length:-1;M!=i;M+=t){let i=u.indexOf(s[M]);if(!(i<0||e.resolveInner(D+M,1).type!=N))if(i%2==0==t>0)l++;else{if(1==l)return{start:j,end:{from:D+M,to:D+M+1},matched:i>>1==n>>1};l--}}t>0&&(M+=s.length)}return I.done?{start:j,matched:!1}:null}(M,i,t,u,D.type,N,s)}function Oo(M,i,t,e,N,s,u){let D=e.parent,n={from:N.from,to:N.to},j=0,I=null==D?void 0:D.cursor();if(I&&(t<0?I.childBefore(e.from):I.childAfter(e.to)))do{if(t<0?I.to<=e.from:I.from>=e.to){if(0==j&&s.indexOf(I.type.name)>-1&&I.from<I.to){let M=co(I);return{start:n,end:M?{from:M.from,to:M.to}:void 0,matched:!0}}if(go(I.type,t,u))j++;else if(go(I.type,-t,u)){if(0==j){let M=co(I);return{start:n,end:M&&M.from<M.to?{from:M.from,to:M.to}:void 0,matched:!1}}j--}}}while(t<0?I.prevSibling():I.nextSibling());return{start:n,matched:!1}}const To=Object.create(null),Lo=[$I.none],ho=[],zo=Object.create(null),yo=Object.create(null);for(let[M,i]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])yo[M]=xo(To,i);function Ao(M,i){ho.indexOf(M)>-1||(ho.push(M),console.warn(i))}function xo(M,i){let t=[];for(let e of i.split(" ")){let i=[];for(let t of e.split(".")){let e=M[t]||Jl[t];e?"function"==typeof e?i.length?i=i.map(e):Ao(t,`Modifier ${t} used at start of tag`):i.length?Ao(t,`Tag ${t} used as modifier`):i=Array.isArray(e)?e:[e]:Ao(t,`Unknown highlighting tag ${t}`)}for(let M of i)t.push(M)}if(!t.length)return 0;let e=i.replace(/ /g,"_"),N=e+" "+t.map((M=>M.id)),s=zo[N];if(s)return s.id;let u=zo[N]=$I.define({id:Lo.length,name:e,props:[Sl({[e]:t})]});return Lo.push(u),u.id}Eu.RTL,Eu.LTR;function wo(M,i){return({state:t,dispatch:e})=>{if(t.readOnly)return!1;let N=M(i,t);return!!N&&(e(t.update(N)),!0)}}const So=wo(Uo,0),Eo=wo(po,0),Qo=wo(((M,i)=>po(M,i,function(M){let i=[];for(let t of M.selection.ranges){let e=M.doc.lineAt(t.from),N=t.to<=e.to?e:M.doc.lineAt(t.to),s=i.length-1;s>=0&&i[s].to>e.from?i[s].to=N.to:i.push({from:e.from+/^\s*/.exec(e.text)[0].length,to:N.to})}return i}(i))),0);function ko(M,i){let t=M.languageDataAt("commentTokens",i);return t.length?t[0]:{}}const Co=50;function po(M,i,t=i.selection.ranges){let e=t.map((M=>ko(i,M.from).block));if(!e.every((M=>M)))return null;let N=t.map(((M,t)=>function(M,{open:i,close:t},e,N){let s,u,D=M.sliceDoc(e-Co,e),n=M.sliceDoc(N,N+Co),j=/\s*$/.exec(D)[0].length,I=/^\s*/.exec(n)[0].length,l=D.length-j;if(D.slice(l-i.length,l)==i&&n.slice(I,I+t.length)==t)return{open:{pos:e-j,margin:j&&1},close:{pos:N+I,margin:I&&1}};N-e<=2*Co?s=u=M.sliceDoc(e,N):(s=M.sliceDoc(e,e+Co),u=M.sliceDoc(N-Co,N));let r=/^\s*/.exec(s)[0].length,o=/\s*$/.exec(u)[0].length,g=u.length-o-t.length;return s.slice(r,r+i.length)==i&&u.slice(g,g+t.length)==t?{open:{pos:e+r+i.length,margin:/\s/.test(s.charAt(r+i.length))?1:0},close:{pos:N-o-t.length,margin:/\s/.test(u.charAt(g-1))?1:0}}:null}(i,e[t],M.from,M.to)));if(2!=M&&!N.every((M=>M)))return{changes:i.changes(t.map(((M,i)=>N[i]?[]:[{from:M.from,insert:e[i].open+" "},{from:M.to,insert:" "+e[i].close}])))};if(1!=M&&N.some((M=>M))){let M=[];for(let i,t=0;t<N.length;t++)if(i=N[t]){let N=e[t],{open:s,close:u}=i;M.push({from:s.pos-N.open.length,to:s.pos+s.margin},{from:u.pos-u.margin,to:u.pos+N.close.length})}return{changes:M}}return null}function Uo(M,i,t=i.selection.ranges){let e=[],N=-1;for(let{from:M,to:s}of t){let t=e.length,u=1e9,D=ko(i,M).line;if(D){for(let t=M;t<=s;){let n=i.doc.lineAt(t);if(n.from>N&&(M==s||s>n.from)){N=n.from;let M=/^\s*/.exec(n.text)[0].length,i=M==n.length,t=n.text.slice(M,M+D.length)==D?M:-1;M<n.text.length&&M<u&&(u=M),e.push({line:n,comment:t,token:D,indent:M,empty:i,single:!1})}t=n.to+1}if(u<1e9)for(let M=t;M<e.length;M++)e[M].indent<e[M].line.text.length&&(e[M].indent=u);e.length==t+1&&(e[t].single=!0)}}if(2!=M&&e.some((M=>M.comment<0&&(!M.empty||M.single)))){let M=[];for(let{line:i,token:t,indent:N,empty:s,single:u}of e)!u&&s||M.push({from:i.from+N,insert:t+" "});let t=i.changes(M);return{changes:t,selection:i.selection.map(t,1)}}if(1!=M&&e.some((M=>M.comment>=0))){let M=[];for(let{line:i,comment:t,token:N}of e)if(t>=0){let e=i.from+t,s=e+N.length;" "==i.text[s-i.from]&&s++,M.push({from:e,to:s})}return{changes:M}}return null}const bo=wN.define(),Zo=wN.define(),mo=Ke.define(),Yo=Ke.define({combine:M=>GN(M,{minDepth:100,newGroupDelay:500,joinToEvent:(M,i)=>i},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(M,i)=>(t,e)=>M(t,e)||i(t,e)})}),fo=uN.define({create:()=>Mg.empty,update(M,i){let t=i.state.facet(Yo),e=i.annotation(bo);if(e){let N=Ro.fromTransaction(i,e.selection),s=e.side,u=0==s?M.undone:M.done;return u=N?Bo(u,u.length,t.minDepth,N):Ho(u,i.startState.selection),new Mg(0==s?e.rest:u,0==s?u:e.rest)}let N=i.annotation(Zo);if("full"!=N&&"before"!=N||(M=M.isolate()),!1===i.annotation(kN.addToHistory))return i.changes.empty?M:M.addMapping(i.changes.desc);let s=Ro.fromTransaction(i),u=i.annotation(kN.time),D=i.annotation(kN.userEvent);return s?M=M.addChanges(s,u,D,t,i):i.selection&&(M=M.addSelection(i.startState.selection,u,D,t.newGroupDelay)),"full"!=N&&"after"!=N||(M=M.isolate()),M},toJSON:M=>({done:M.done.map((M=>M.toJSON())),undone:M.undone.map((M=>M.toJSON()))}),fromJSON:M=>new Mg(M.done.map(Ro.fromJSON),M.undone.map(Ro.fromJSON))});function Wo(M,i){return function({state:t,dispatch:e}){if(!i&&t.readOnly)return!1;let N=t.field(fo,!1);if(!N)return!1;let s=N.pop(M,t,i);return!!s&&(e(s),!0)}}const Vo=Wo(0,!1),vo=Wo(1,!1),Go=Wo(0,!0),Po=Wo(1,!0);class Ro{constructor(M,i,t,e,N){this.changes=M,this.effects=i,this.mapped=t,this.startSelection=e,this.selectionsAfter=N}setSelAfter(M){return new Ro(this.changes,this.effects,this.mapped,this.startSelection,M)}toJSON(){var M,i,t;return{changes:null===(M=this.changes)||void 0===M?void 0:M.toJSON(),mapped:null===(i=this.mapped)||void 0===i?void 0:i.toJSON(),startSelection:null===(t=this.startSelection)||void 0===t?void 0:t.toJSON(),selectionsAfter:this.selectionsAfter.map((M=>M.toJSON()))}}static fromJSON(M){return new Ro(M.changes&&Ge.fromJSON(M.changes),[],M.mapped&&ve.fromJSON(M.mapped),M.startSelection&&$e.fromJSON(M.startSelection),M.selectionsAfter.map($e.fromJSON))}static fromTransaction(M,i){let t=Xo;for(let i of M.startState.facet(mo)){let e=i(M);e.length&&(t=t.concat(e))}return!t.length&&M.changes.empty?null:new Ro(M.changes.invert(M.startState.doc),t,void 0,i||M.startState.selection,Xo)}static selection(M){return new Ro(void 0,Xo,void 0,void 0,M)}}function Bo(M,i,t,e){let N=i+1>t+20?i-t-1:0,s=M.slice(N,i);return s.push(e),s}function Fo(M,i){return M.length?i.length?M.concat(i):M:i}const Xo=[],Jo=200;function Ho(M,i){if(M.length){let t=M[M.length-1],e=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Jo));return e.length&&e[e.length-1].eq(i)?M:(e.push(i),Bo(M,M.length-1,1e9,t.setSelAfter(e)))}return[Ro.selection([i])]}function $o(M){let i=M[M.length-1],t=M.slice();return t[M.length-1]=i.setSelAfter(i.selectionsAfter.slice(0,i.selectionsAfter.length-1)),t}function _o(M,i){if(!M.length)return M;let t=M.length,e=Xo;for(;t;){let N=qo(M[t-1],i,e);if(N.changes&&!N.changes.empty||N.effects.length){let i=M.slice(0,t);return i[t-1]=N,i}i=N.mapped,t--,e=N.selectionsAfter}return e.length?[Ro.selection(e)]:Xo}function qo(M,i,t){let e=Fo(M.selectionsAfter.length?M.selectionsAfter.map((M=>M.map(i))):Xo,t);if(!M.changes)return Ro.selection(e);let N=M.changes.map(i),s=i.mapDesc(M.changes,!0),u=M.mapped?M.mapped.composeDesc(s):s;return new Ro(N,QN.mapEffects(M.effects,i),u,M.startSelection.map(s),e)}const Ko=/^(input\.type|delete)($|\.)/;class Mg{constructor(M,i,t=0,e=void 0){this.done=M,this.undone=i,this.prevTime=t,this.prevUserEvent=e}isolate(){return this.prevTime?new Mg(this.done,this.undone):this}addChanges(M,i,t,e,N){let s=this.done,u=s[s.length-1];return s=u&&u.changes&&!u.changes.empty&&M.changes&&(!t||Ko.test(t))&&(!u.selectionsAfter.length&&i-this.prevTime<e.newGroupDelay&&e.joinToEvent(N,function(M,i){let t=[],e=!1;return M.iterChangedRanges(((M,i)=>t.push(M,i))),i.iterChangedRanges(((M,i,N,s)=>{for(let M=0;M<t.length;){let i=t[M++],u=t[M++];s>=i&&N<=u&&(e=!0)}})),e}(u.changes,M.changes))||"input.type.compose"==t)?Bo(s,s.length-1,e.minDepth,new Ro(M.changes.compose(u.changes),Fo(M.effects,u.effects),u.mapped,u.startSelection,Xo)):Bo(s,s.length,e.minDepth,M),new Mg(s,Xo,i,t)}addSelection(M,i,t,e){let N=this.done.length?this.done[this.done.length-1].selectionsAfter:Xo;return N.length>0&&i-this.prevTime<e&&t==this.prevUserEvent&&t&&/^select($|\.)/.test(t)&&function(M,i){return M.ranges.length==i.ranges.length&&0===M.ranges.filter(((M,t)=>M.empty!=i.ranges[t].empty)).length}(N[N.length-1],M)?this:new Mg(Ho(this.done,M),this.undone,i,t)}addMapping(M){return new Mg(_o(this.done,M),_o(this.undone,M),this.prevTime,this.prevUserEvent)}pop(M,i,t){let e=0==M?this.done:this.undone;if(0==e.length)return null;let N=e[e.length-1],s=N.selectionsAfter[0]||i.selection;if(t&&N.selectionsAfter.length)return i.update({selection:N.selectionsAfter[N.selectionsAfter.length-1],annotations:bo.of({side:M,rest:$o(e),selection:s}),userEvent:0==M?"select.undo":"select.redo",scrollIntoView:!0});if(N.changes){let t=1==e.length?Xo:e.slice(0,e.length-1);return N.mapped&&(t=_o(t,N.mapped)),i.update({changes:N.changes,selection:N.startSelection,effects:N.effects,annotations:bo.of({side:M,rest:t,selection:s}),filter:!1,userEvent:0==M?"undo":"redo",scrollIntoView:!0})}return null}}Mg.empty=new Mg(Xo,Xo);const ig=[{key:"Mod-z",run:Vo,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:vo,preventDefault:!0},{linux:"Ctrl-Shift-z",run:vo,preventDefault:!0},{key:"Mod-u",run:Go,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Po,preventDefault:!0}];function tg(M,i){return $e.create(M.ranges.map(i),M.mainIndex)}function eg(M,i){return M.update({selection:i,scrollIntoView:!0,userEvent:"select"})}function Ng({state:M,dispatch:i},t){let e=tg(M.selection,t);return!e.eq(M.selection,!0)&&(i(eg(M,e)),!0)}function sg(M,i){return $e.cursor(i?M.to:M.from)}function ug(M,i){return Ng(M,(t=>t.empty?M.moveByChar(t,i):sg(t,i)))}function Dg(M){return M.textDirectionAt(M.state.selection.main.head)==Eu.LTR}const ng=M=>ug(M,!Dg(M)),jg=M=>ug(M,Dg(M));function Ig(M,i){return Ng(M,(t=>t.empty?M.moveByGroup(t,i):sg(t,i)))}function lg(M,i,t){if(i.type.prop(t))return!0;let e=i.to-i.from;return e&&(e>2||/[^\s,.;:]/.test(M.sliceDoc(i.from,i.to)))||i.firstChild}function rg(M,i,t){let e,N,s=tr(M).resolveInner(i.head),u=t?XI.closedBy:XI.openedBy;for(let e=i.head;;){let i=t?s.childAfter(e):s.childBefore(e);if(!i)break;lg(M,i,u)?s=i:e=t?i.to:i.from}return N=s.type.prop(u)&&(e=t?ao(M,s.from,1):ao(M,s.to,-1))&&e.matched?t?e.end.to:e.end.from:t?s.to:s.from,$e.cursor(N,t?-1:1)}function og(M,i){return Ng(M,(t=>{if(!t.empty)return sg(t,i);let e=M.moveVertically(t,i);return e.head!=t.head?e:M.moveToLineBoundary(t,i)}))}const gg=M=>og(M,!1),cg=M=>og(M,!0);function ag(M){let i,t=M.scrollDOM.clientHeight<M.scrollDOM.scrollHeight-2,e=0,N=0;if(t){for(let i of M.state.facet(uj.scrollMargins)){let t=i(M);(null==t?void 0:t.top)&&(e=Math.max(null==t?void 0:t.top,e)),(null==t?void 0:t.bottom)&&(N=Math.max(null==t?void 0:t.bottom,N))}i=M.scrollDOM.clientHeight-e-N}else i=(M.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:e,marginBottom:N,selfScroll:t,height:Math.max(M.defaultLineHeight,i-5)}}function Og(M,i){let t,e=ag(M),{state:N}=M,s=tg(N.selection,(t=>t.empty?M.moveVertically(t,i,e.height):sg(t,i)));if(s.eq(N.selection))return!1;if(e.selfScroll){let i=M.coordsAtPos(N.selection.main.head),u=M.scrollDOM.getBoundingClientRect(),D=u.top+e.marginTop,n=u.bottom-e.marginBottom;i&&i.top>D&&i.bottom<n&&(t=uj.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-D}))}return M.dispatch(eg(N,s),{effects:t}),!0}const Tg=M=>Og(M,!1),Lg=M=>Og(M,!0);function hg(M,i,t){let e=M.lineBlockAt(i.head),N=M.moveToLineBoundary(i,t);if(N.head==i.head&&N.head!=(t?e.to:e.from)&&(N=M.moveToLineBoundary(i,t,!1)),!t&&N.head==e.from&&e.length){let t=/^\s*/.exec(M.state.sliceDoc(e.from,Math.min(e.from+100,e.to)))[0].length;t&&i.head!=e.from+t&&(N=$e.cursor(e.from+t))}return N}function zg(M,i){let t=tg(M.state.selection,(M=>{let t=i(M);return $e.range(M.anchor,t.head,t.goalColumn,t.bidiLevel||void 0)}));return!t.eq(M.state.selection)&&(M.dispatch(eg(M.state,t)),!0)}function yg(M,i){return zg(M,(t=>M.moveByChar(t,i)))}const dg=M=>yg(M,!Dg(M)),Ag=M=>yg(M,Dg(M));function xg(M,i){return zg(M,(t=>M.moveByGroup(t,i)))}function wg(M,i){return zg(M,(t=>M.moveVertically(t,i)))}const Sg=M=>wg(M,!1),Eg=M=>wg(M,!0);function Qg(M,i){return zg(M,(t=>M.moveVertically(t,i,ag(M).height)))}const kg=M=>Qg(M,!1),Cg=M=>Qg(M,!0),pg=({state:M,dispatch:i})=>(i(eg(M,{anchor:0})),!0),Ug=({state:M,dispatch:i})=>(i(eg(M,{anchor:M.doc.length})),!0),bg=({state:M,dispatch:i})=>(i(eg(M,{anchor:M.selection.main.anchor,head:0})),!0),Zg=({state:M,dispatch:i})=>(i(eg(M,{anchor:M.selection.main.anchor,head:M.doc.length})),!0);function mg(M,i){if(M.state.readOnly)return!1;let t="delete.selection",{state:e}=M,N=e.changeByRange((e=>{let{from:N,to:s}=e;if(N==s){let u=i(e);u<N?(t="delete.backward",u=Yg(M,u,!1)):u>N&&(t="delete.forward",u=Yg(M,u,!0)),N=Math.min(N,u),s=Math.max(s,u)}else N=Yg(M,N,!1),s=Yg(M,s,!0);return N==s?{range:e}:{changes:{from:N,to:s},range:$e.cursor(N,N<e.head?-1:1)}}));return!N.changes.empty&&(M.dispatch(e.update(N,{scrollIntoView:!0,userEvent:t,effects:"delete.selection"==t?uj.announce.of(e.phrase("Selection deleted")):void 0})),!0)}function Yg(M,i,t){if(M instanceof uj)for(let e of M.state.facet(uj.atomicRanges).map((i=>i(M))))e.between(i,i,((M,e)=>{M<i&&e>i&&(i=t?e:M)}));return i}const fg=(M,i)=>mg(M,(t=>{let e,N,s=t.from,{state:u}=M,D=u.doc.lineAt(s);if(!i&&s>D.from&&s<D.from+200&&!/[^ \t]/.test(e=D.text.slice(0,s-D.from))){if("\t"==e[e.length-1])return s-1;let M=ss(e,u.tabSize)%cr(u)||cr(u);for(let i=0;i<M&&" "==e[e.length-1-i];i++)s--;N=s}else N=Ce(D.text,s-D.from,i,i)+D.from,N==s&&D.number!=(i?u.doc.lines:1)?N+=i?1:-1:!i&&/[\ufe00-\ufe0f]/.test(D.text.slice(N-D.from,s-D.from))&&(N=Ce(D.text,N-D.from,!1,!1)+D.from);return N})),Wg=M=>fg(M,!1),Vg=M=>fg(M,!0),vg=(M,i)=>mg(M,(t=>{let e=t.head,{state:N}=M,s=N.doc.lineAt(e),u=N.charCategorizer(e);for(let M=null;;){if(e==(i?s.to:s.from)){e==t.head&&s.number!=(i?N.doc.lines:1)&&(e+=i?1:-1);break}let D=Ce(s.text,e-s.from,i)+s.from,n=s.text.slice(Math.min(e,D)-s.from,Math.max(e,D)-s.from),j=u(n);if(null!=M&&j!=M)break;" "==n&&e==t.head||(M=j),e=D}return e})),Gg=M=>vg(M,!1);function Pg(M){let i=[],t=-1;for(let e of M.selection.ranges){let N=M.doc.lineAt(e.from),s=M.doc.lineAt(e.to);if(e.empty||e.to!=s.from||(s=M.doc.lineAt(e.to-1)),t>=N.number){let M=i[i.length-1];M.to=s.to,M.ranges.push(e)}else i.push({from:N.from,to:s.to,ranges:[e]});t=s.number+1}return i}function Rg(M,i,t){if(M.readOnly)return!1;let e=[],N=[];for(let i of Pg(M)){if(t?i.to==M.doc.length:0==i.from)continue;let s=M.doc.lineAt(t?i.to+1:i.from-1),u=s.length+1;if(t){e.push({from:i.to,to:s.to},{from:i.from,insert:s.text+M.lineBreak});for(let t of i.ranges)N.push($e.range(Math.min(M.doc.length,t.anchor+u),Math.min(M.doc.length,t.head+u)))}else{e.push({from:s.from,to:i.from},{from:i.to,insert:M.lineBreak+s.text});for(let M of i.ranges)N.push($e.range(M.anchor-u,M.head-u))}}return!!e.length&&(i(M.update({changes:e,scrollIntoView:!0,selection:$e.create(N,M.selection.mainIndex),userEvent:"move.line"})),!0)}function Bg(M,i,t){if(M.readOnly)return!1;let e=[];for(let i of Pg(M))t?e.push({from:i.from,insert:M.doc.slice(i.from,i.to)+M.lineBreak}):e.push({from:i.to,insert:M.lineBreak+M.doc.slice(i.from,i.to)});return i(M.update({changes:e,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Fg=Jg(!1),Xg=Jg(!0);function Jg(M){return({state:i,dispatch:t})=>{if(i.readOnly)return!1;let e=i.changeByRange((t=>{let{from:e,to:N}=t,s=i.doc.lineAt(e),u=!M&&e==N&&function(M,i){if(/\(\)|\[\]|\{\}/.test(M.sliceDoc(i-1,i+1)))return{from:i,to:i};let t,e=tr(M).resolveInner(i),N=e.childBefore(i),s=e.childAfter(i);return N&&s&&N.to<=i&&s.from>=i&&(t=N.type.prop(XI.closedBy))&&t.indexOf(s.name)>-1&&M.doc.lineAt(N.to).from==M.doc.lineAt(s.from).from&&!/\S/.test(M.sliceDoc(N.to,s.from))?{from:N.to,to:s.from}:null}(i,e);M&&(e=N=(N<=s.to?s:i.doc.lineAt(N)).to);let D=new Tr(i,{simulateBreak:e,simulateDoubleBreak:!!u}),n=Or(D,e);for(null==n&&(n=ss(/^\s*/.exec(i.doc.lineAt(e).text)[0],i.tabSize));N<s.to&&/\s/.test(s.text[N-s.from]);)N++;u?({from:e,to:N}=u):e>s.from&&e<s.from+100&&!/\S/.test(s.text.slice(0,e))&&(e=s.from);let j=["",ar(i,n)];return u&&j.push(ar(i,D.lineIndent(s.from,-1))),{changes:{from:e,to:N,insert:Oe.of(j)},range:$e.cursor(e+1+j[1].length)}}));return t(i.update(e,{scrollIntoView:!0,userEvent:"input"})),!0}}function Hg(M,i){let t=-1;return M.changeByRange((e=>{let N=[];for(let s=e.from;s<=e.to;){let u=M.doc.lineAt(s);u.number>t&&(e.empty||e.to>u.from)&&(i(u,N,e),t=u.number),s=u.to+1}let s=M.changes(N);return{changes:N,range:$e.range(s.mapPos(e.anchor,1),s.mapPos(e.head,1))}}))}const $g=[{key:"Ctrl-b",run:ng,shift:dg,preventDefault:!0},{key:"Ctrl-f",run:jg,shift:Ag},{key:"Ctrl-p",run:gg,shift:Sg},{key:"Ctrl-n",run:cg,shift:Eg},{key:"Ctrl-a",run:M=>Ng(M,(i=>$e.cursor(M.lineBlockAt(i.head).from,1))),shift:M=>zg(M,(i=>$e.cursor(M.lineBlockAt(i.head).from)))},{key:"Ctrl-e",run:M=>Ng(M,(i=>$e.cursor(M.lineBlockAt(i.head).to,-1))),shift:M=>zg(M,(i=>$e.cursor(M.lineBlockAt(i.head).to)))},{key:"Ctrl-d",run:Vg},{key:"Ctrl-h",run:Wg},{key:"Ctrl-k",run:M=>mg(M,(i=>{let t=M.lineBlockAt(i.head).to;return i.head<t?t:Math.min(M.state.doc.length,i.head+1)}))},{key:"Ctrl-Alt-h",run:Gg},{key:"Ctrl-o",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=M.changeByRange((M=>({changes:{from:M.from,to:M.to,insert:Oe.of(["",""])},range:$e.cursor(M.from)})));return i(M.update(t,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=M.changeByRange((i=>{if(!i.empty||0==i.from||i.from==M.doc.length)return{range:i};let t=i.from,e=M.doc.lineAt(t),N=t==e.from?t-1:Ce(e.text,t-e.from,!1)+e.from,s=t==e.to?t+1:Ce(e.text,t-e.from,!0)+e.from;return{changes:{from:N,to:s,insert:M.doc.slice(t,s).append(M.doc.slice(N,t))},range:$e.cursor(s)}}));return!t.changes.empty&&(i(M.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Lg}],_g=[{key:"ArrowLeft",run:ng,shift:dg,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:M=>Ig(M,!Dg(M)),shift:M=>xg(M,!Dg(M)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:M=>Ng(M,(i=>hg(M,i,!Dg(M)))),shift:M=>zg(M,(i=>hg(M,i,!Dg(M)))),preventDefault:!0},{key:"ArrowRight",run:jg,shift:Ag,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M=>Ig(M,Dg(M)),shift:M=>xg(M,Dg(M)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:M=>Ng(M,(i=>hg(M,i,Dg(M)))),shift:M=>zg(M,(i=>hg(M,i,Dg(M)))),preventDefault:!0},{key:"ArrowUp",run:gg,shift:Sg,preventDefault:!0},{mac:"Cmd-ArrowUp",run:pg,shift:bg},{mac:"Ctrl-ArrowUp",run:Tg,shift:kg},{key:"ArrowDown",run:cg,shift:Eg,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Ug,shift:Zg},{mac:"Ctrl-ArrowDown",run:Lg,shift:Cg},{key:"PageUp",run:Tg,shift:kg},{key:"PageDown",run:Lg,shift:Cg},{key:"Home",run:M=>Ng(M,(i=>hg(M,i,!1))),shift:M=>zg(M,(i=>hg(M,i,!1))),preventDefault:!0},{key:"Mod-Home",run:pg,shift:bg},{key:"End",run:M=>Ng(M,(i=>hg(M,i,!0))),shift:M=>zg(M,(i=>hg(M,i,!0))),preventDefault:!0},{key:"Mod-End",run:Ug,shift:Zg},{key:"Enter",run:Fg},{key:"Mod-a",run:({state:M,dispatch:i})=>(i(M.update({selection:{anchor:0,head:M.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Wg,shift:Wg},{key:"Delete",run:Vg},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Gg},{key:"Mod-Delete",mac:"Alt-Delete",run:M=>vg(M,!0)},{mac:"Mod-Backspace",run:M=>mg(M,(i=>{let t=M.moveToLineBoundary(i,!1).head;return i.head>t?t:Math.max(0,i.head-1)}))},{mac:"Mod-Delete",run:M=>mg(M,(i=>{let t=M.moveToLineBoundary(i,!0).head;return i.head<t?t:Math.min(M.state.doc.length,i.head+1)}))}].concat($g.map((M=>({mac:M.key,run:M.run,shift:M.shift})))),qg=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:M=>Ng(M,(i=>rg(M.state,i,!Dg(M)))),shift:M=>zg(M,(i=>rg(M.state,i,!Dg(M))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:M=>Ng(M,(i=>rg(M.state,i,Dg(M)))),shift:M=>zg(M,(i=>rg(M.state,i,Dg(M))))},{key:"Alt-ArrowUp",run:({state:M,dispatch:i})=>Rg(M,i,!1)},{key:"Shift-Alt-ArrowUp",run:({state:M,dispatch:i})=>Bg(M,i,!1)},{key:"Alt-ArrowDown",run:({state:M,dispatch:i})=>Rg(M,i,!0)},{key:"Shift-Alt-ArrowDown",run:({state:M,dispatch:i})=>Bg(M,i,!0)},{key:"Escape",run:({state:M,dispatch:i})=>{let t=M.selection,e=null;return t.ranges.length>1?e=$e.create([t.main]):t.main.empty||(e=$e.create([$e.cursor(t.main.head)])),!!e&&(i(eg(M,e)),!0)}},{key:"Mod-Enter",run:Xg},{key:"Alt-l",mac:"Ctrl-l",run:({state:M,dispatch:i})=>{let t=Pg(M).map((({from:i,to:t})=>$e.range(i,Math.min(t+1,M.doc.length))));return i(M.update({selection:$e.create(t),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:M,dispatch:i})=>{let t=tg(M.selection,(i=>{var t;for(let e=tr(M).resolveStack(i.from,1);e;e=e.next){let{node:M}=e;if((M.from<i.from&&M.to>=i.to||M.to>i.to&&M.from<=i.from)&&(null===(t=M.parent)||void 0===t?void 0:t.parent))return $e.range(M.to,M.from)}return i}));return i(eg(M,t)),!0},preventDefault:!0},{key:"Mod-[",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update(Hg(M,((i,t)=>{let e=/^\s*/.exec(i.text)[0];if(!e)return;let N=ss(e,M.tabSize),s=0,u=ar(M,Math.max(0,N-cr(M)));for(;s<e.length&&s<u.length&&e.charCodeAt(s)==u.charCodeAt(s);)s++;t.push({from:i.from+s,to:i.from+e.length,insert:u.slice(s)})})),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update(Hg(M,((i,t)=>{t.push({from:i.from,insert:M.facet(gr)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=Object.create(null),e=new Tr(M,{overrideIndentation:M=>{let i=t[M];return null==i?-1:i}}),N=Hg(M,((i,N,s)=>{let u=Or(e,i.from);if(null==u)return;/\S/.test(i.text)||(u=0);let D=/^\s*/.exec(i.text)[0],n=ar(M,u);(D!=n||s.from<i.from+D.length)&&(t[i.from]=u,N.push({from:i.from,to:i.from+D.length,insert:n}))}));return N.changes.empty||i(M.update(N,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:M=>{if(M.state.readOnly)return!1;let{state:i}=M,t=i.changes(Pg(i).map((({from:M,to:t})=>(M>0?M--:t<i.doc.length&&t++,{from:M,to:t})))),e=tg(i.selection,(i=>M.moveVertically(i,!0))).map(t);return M.dispatch({changes:t,selection:e,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:M,dispatch:i})=>function(M,i,t){let e=!1,N=tg(M.selection,(i=>{let N=ao(M,i.head,-1)||ao(M,i.head,1)||i.head>0&&ao(M,i.head-1,1)||i.head<M.doc.length&&ao(M,i.head+1,-1);if(!N||!N.end)return i;e=!0;let s=N.start.from==i.head?N.end.to:N.end.from;return t?$e.range(i.anchor,s):$e.cursor(s)}));return!!e&&(i(eg(M,N)),!0)}(M,i,!1)},{key:"Mod-/",run:M=>{let{state:i}=M,t=i.doc.lineAt(i.selection.main.from),e=ko(M.state,t.from);return e.line?So(M):!!e.block&&Qo(M)}},{key:"Alt-A",run:Eo}].concat(_g);function Kg(){var M=arguments[0];"string"==typeof M&&(M=document.createElement(M));var i=1,t=arguments[1];if(t&&"object"==typeof t&&null==t.nodeType&&!Array.isArray(t)){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var N=t[e];"string"==typeof N?M.setAttribute(e,N):null!=N&&(M[e]=N)}i++}for(;i<arguments.length;i++)Mc(M,arguments[i]);return M}function Mc(M,i){if("string"==typeof i)M.appendChild(document.createTextNode(i));else if(null==i);else if(null!=i.nodeType)M.appendChild(i);else{if(!Array.isArray(i))throw new RangeError("Unsupported child node: "+i);for(var t=0;t<i.length;t++)Mc(M,i[t])}}const ic="function"==typeof String.prototype.normalize?M=>M.normalize("NFKD"):M=>M;class tc{constructor(M,i,t=0,e=M.length,N,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=M.iterRange(t,e),this.bufferStart=t,this.normalize=N?M=>N(ic(M)):ic,this.query=this.normalize(i)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return me(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let M=this.peek();if(M<0)return this.done=!0,this;let i=Ye(M),t=this.bufferStart+this.bufferPos;this.bufferPos+=fe(M);let e=this.normalize(i);for(let M=0,N=t;;M++){let s=e.charCodeAt(M),u=this.match(s,N);if(M==e.length-1){if(u)return this.value=u,this;break}N==t&&M<i.length&&i.charCodeAt(M)==s&&N++}}}match(M,i){let t=null;for(let e=0;e<this.matches.length;e+=2){let N=this.matches[e],s=!1;this.query.charCodeAt(N)==M&&(N==this.query.length-1?t={from:this.matches[e+1],to:i+1}:(this.matches[e]++,s=!0)),s||(this.matches.splice(e,2),e-=2)}return this.query.charCodeAt(0)==M&&(1==this.query.length?t={from:i,to:i+1}:this.matches.push(1,i)),t&&this.test&&!this.test(t.from,t.to,this.buffer,this.bufferStart)&&(t=null),t}}"undefined"!=typeof Symbol&&(tc.prototype[Symbol.iterator]=function(){return this});const ec={from:-1,to:-1,match:/.*/.exec("")},Nc="gm"+(null==/x/.unicode?"":"u");class sc{constructor(M,i,t,e=0,N=M.length){if(this.text=M,this.to=N,this.curLine="",this.done=!1,this.value=ec,/\\[sWDnr]|\n|\r|\[\^/.test(i))return new nc(M,i,t,e,N);this.re=new RegExp(i,Nc+((null==t?void 0:t.ignoreCase)?"i":"")),this.test=null==t?void 0:t.test,this.iter=M.iter();let s=M.lineAt(e);this.curLineStart=s.from,this.matchPos=jc(M,e),this.getLine(this.curLineStart)}getLine(M){this.iter.next(M),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let M=this.matchPos-this.curLineStart;;){this.re.lastIndex=M;let i=this.matchPos<=this.to&&this.re.exec(this.curLine);if(i){let t=this.curLineStart+i.index,e=t+i[0].length;if(this.matchPos=jc(this.text,e+(t==e?1:0)),t==this.curLineStart+this.curLine.length&&this.nextLine(),(t<e||t>this.value.to)&&(!this.test||this.test(t,e,i)))return this.value={from:t,to:e,match:i},this;M=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),M=0}}}}const uc=new WeakMap;class Dc{constructor(M,i){this.from=M,this.text=i}get to(){return this.from+this.text.length}static get(M,i,t){let e=uc.get(M);if(!e||e.from>=t||e.to<=i){let e=new Dc(i,M.sliceString(i,t));return uc.set(M,e),e}if(e.from==i&&e.to==t)return e;let{text:N,from:s}=e;return s>i&&(N=M.sliceString(i,s)+N,s=i),e.to<t&&(N+=M.sliceString(e.to,t)),uc.set(M,new Dc(s,N)),new Dc(i,N.slice(i-s,t-s))}}class nc{constructor(M,i,t,e,N){this.text=M,this.to=N,this.done=!1,this.value=ec,this.matchPos=jc(M,e),this.re=new RegExp(i,Nc+((null==t?void 0:t.ignoreCase)?"i":"")),this.test=null==t?void 0:t.test,this.flat=Dc.get(M,e,this.chunkEnd(e+5e3))}chunkEnd(M){return M>=this.to?this.to:this.text.lineAt(M).to}next(){for(;;){let M=this.re.lastIndex=this.matchPos-this.flat.from,i=this.re.exec(this.flat.text);if(i&&!i[0]&&i.index==M&&(this.re.lastIndex=M+1,i=this.re.exec(this.flat.text)),i){let M=this.flat.from+i.index,t=M+i[0].length;if((this.flat.to>=this.to||i.index+i[0].length<=this.flat.text.length-10)&&(!this.test||this.test(M,t,i)))return this.value={from:M,to:t,match:i},this.matchPos=jc(this.text,t+(M==t?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Dc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function jc(M,i){if(i>=M.length)return i;let t,e=M.lineAt(i);for(;i<e.to&&(t=e.text.charCodeAt(i-e.from))>=56320&&t<57344;)i++;return i}function Ic(M){let i=Kg("input",{class:"cm-textfield",name:"line",value:String(M.state.doc.lineAt(M.state.selection.main.head).number)}),t=Kg("form",{class:"cm-gotoLine",onkeydown:i=>{27==i.keyCode?(i.preventDefault(),M.dispatch({effects:lc.of(!1)}),M.focus()):13==i.keyCode&&(i.preventDefault(),e())},onsubmit:M=>{M.preventDefault(),e()}},Kg("label",M.state.phrase("Go to line"),": ",i)," ",Kg("button",{class:"cm-button",type:"submit"},M.state.phrase("go")));function e(){let t=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.value);if(!t)return;let{state:e}=M,N=e.doc.lineAt(e.selection.main.head),[,s,u,D,n]=t,j=D?+D.slice(1):0,I=u?+u:N.number;if(u&&n){let M=I/100;s&&(M=M*("-"==s?-1:1)+N.number/e.doc.lines),I=Math.round(e.doc.lines*M)}else u&&s&&(I=I*("-"==s?-1:1)+N.number);let l=e.doc.line(Math.max(1,Math.min(e.doc.lines,I))),r=$e.cursor(l.from+Math.max(0,Math.min(j,l.length)));M.dispatch({effects:[lc.of(!1),uj.scrollIntoView(r.from,{y:"center"})],selection:r}),M.focus()}return{dom:t}}"undefined"!=typeof Symbol&&(sc.prototype[Symbol.iterator]=nc.prototype[Symbol.iterator]=function(){return this});const lc=QN.define(),rc=uN.define({create:()=>!0,update(M,i){for(let t of i.effects)t.is(lc)&&(M=t.value);return M},provide:M=>yI.from(M,(M=>M?Ic:null))}),oc=uj.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),gc={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},cc=Ke.define({combine:M=>GN(M,gc,{highlightWordAroundCursor:(M,i)=>M||i,minSelectionLength:Math.min,maxMatches:Math.min})});const ac=Lu.mark({class:"cm-selectionMatch"}),Oc=Lu.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Tc(M,i,t,e){return!(0!=t&&M(i.sliceDoc(t-1,t))==YN.Word||e!=i.doc.length&&M(i.sliceDoc(e,e+1))==YN.Word)}const Lc=nD.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.selectionSet||M.docChanged||M.viewportChanged)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let i=M.state.facet(cc),{state:t}=M,e=t.selection;if(e.ranges.length>1)return Lu.none;let N,s=e.main,u=null;if(s.empty){if(!i.highlightWordAroundCursor)return Lu.none;let M=t.wordAt(s.head);if(!M)return Lu.none;u=t.charCategorizer(s.head),N=t.sliceDoc(M.from,M.to)}else{let M=s.to-s.from;if(M<i.minSelectionLength||M>200)return Lu.none;if(i.wholeWords){if(N=t.sliceDoc(s.from,s.to),u=t.charCategorizer(s.head),!Tc(u,t,s.from,s.to)||!function(M,i,t,e){return M(i.sliceDoc(t,t+1))==YN.Word&&M(i.sliceDoc(e-1,e))==YN.Word}(u,t,s.from,s.to))return Lu.none}else if(N=t.sliceDoc(s.from,s.to).trim(),!N)return Lu.none}let D=[];for(let e of M.visibleRanges){let M=new tc(t.doc,N,e.from,e.to);for(;!M.next().done;){let{from:e,to:N}=M.value;if((!u||Tc(u,t,e,N))&&(s.empty&&e<=s.from&&N>=s.to?D.push(Oc.range(e,N)):(e>=s.to||N<=s.from)&&D.push(ac.range(e,N)),D.length>i.maxMatches))return Lu.none}}return Lu.set(D)}},{decorations:M=>M.decorations}),hc=uj.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const zc=Ke.define({combine:M=>GN(M,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:M=>new $c(M),scrollToMatch:M=>uj.scrollIntoView(M)})});class yc{constructor(M){this.search=M.search,this.caseSensitive=!!M.caseSensitive,this.literal=!!M.literal,this.regexp=!!M.regexp,this.replace=M.replace||"",this.valid=!!this.search&&(!this.regexp||function(M){try{return new RegExp(M,Nc),!0}catch(M){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!M.wholeWord}unquote(M){return this.literal?M:M.replace(/\\([nrt\\])/g,((M,i)=>"n"==i?"\n":"r"==i?"\r":"t"==i?"\t":"\\"))}eq(M){return this.search==M.search&&this.replace==M.replace&&this.caseSensitive==M.caseSensitive&&this.regexp==M.regexp&&this.wholeWord==M.wholeWord}create(){return this.regexp?new Qc(this):new xc(this)}getCursor(M,i=0,t){let e=M.doc?M:vN.create({doc:M});return null==t&&(t=e.doc.length),this.regexp?wc(this,e,i,t):Ac(this,e,i,t)}}class dc{constructor(M){this.spec=M}}function Ac(M,i,t,e){return new tc(i.doc,M.unquoted,t,e,M.caseSensitive?void 0:M=>M.toLowerCase(),M.wholeWord?function(M,i){return(t,e,N,s)=>((s>t||s+N.length<e)&&(s=Math.max(0,t-2),N=M.sliceString(s,Math.min(M.length,e+2))),!(i(Sc(N,t-s))==YN.Word&&i(Ec(N,t-s))==YN.Word||i(Ec(N,e-s))==YN.Word&&i(Sc(N,e-s))==YN.Word))}(i.doc,i.charCategorizer(i.selection.main.head)):void 0)}class xc extends dc{constructor(M){super(M)}nextMatch(M,i,t){let e=Ac(this.spec,M,t,M.doc.length).nextOverlapping();return e.done&&(e=Ac(this.spec,M,0,i).nextOverlapping()),e.done?null:e.value}prevMatchInRange(M,i,t){for(let e=t;;){let t=Math.max(i,e-1e4-this.spec.unquoted.length),N=Ac(this.spec,M,t,e),s=null;for(;!N.nextOverlapping().done;)s=N.value;if(s)return s;if(t==i)return null;e-=1e4}}prevMatch(M,i,t){return this.prevMatchInRange(M,0,i)||this.prevMatchInRange(M,t,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace)}matchAll(M,i){let t=Ac(this.spec,M,0,M.doc.length),e=[];for(;!t.next().done;){if(e.length>=i)return null;e.push(t.value)}return e}highlight(M,i,t,e){let N=Ac(this.spec,M,Math.max(0,i-this.spec.unquoted.length),Math.min(t+this.spec.unquoted.length,M.doc.length));for(;!N.next().done;)e(N.value.from,N.value.to)}}function wc(M,i,t,e){return new sc(i.doc,M.search,{ignoreCase:!M.caseSensitive,test:M.wholeWord?(N=i.charCategorizer(i.selection.main.head),(M,i,t)=>!t[0].length||(N(Sc(t.input,t.index))!=YN.Word||N(Ec(t.input,t.index))!=YN.Word)&&(N(Ec(t.input,t.index+t[0].length))!=YN.Word||N(Sc(t.input,t.index+t[0].length))!=YN.Word)):void 0},t,e);var N}function Sc(M,i){return M.slice(Ce(M,i,!1),i)}function Ec(M,i){return M.slice(i,Ce(M,i))}class Qc extends dc{nextMatch(M,i,t){let e=wc(this.spec,M,t,M.doc.length).next();return e.done&&(e=wc(this.spec,M,0,i).next()),e.done?null:e.value}prevMatchInRange(M,i,t){for(let e=1;;e++){let N=Math.max(i,t-1e4*e),s=wc(this.spec,M,N,t),u=null;for(;!s.next().done;)u=s.value;if(u&&(N==i||u.from>N+10))return u;if(N==i)return null}}prevMatch(M,i,t){return this.prevMatchInRange(M,0,i)||this.prevMatchInRange(M,t,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((i,t)=>"$"==t?"$":"&"==t?M.match[0]:"0"!=t&&+t<M.match.length?M.match[t]:i))}matchAll(M,i){let t=wc(this.spec,M,0,M.doc.length),e=[];for(;!t.next().done;){if(e.length>=i)return null;e.push(t.value)}return e}highlight(M,i,t,e){let N=wc(this.spec,M,Math.max(0,i-250),Math.min(t+250,M.doc.length));for(;!N.next().done;)e(N.value.from,N.value.to)}}const kc=QN.define(),Cc=QN.define(),pc=uN.define({create:M=>new Uc(Rc(M).create(),null),update(M,i){for(let t of i.effects)t.is(kc)?M=new Uc(t.value.create(),M.panel):t.is(Cc)&&(M=new Uc(M.query,t.value?Pc:null));return M},provide:M=>yI.from(M,(M=>M.panel))});class Uc{constructor(M,i){this.query=M,this.panel=i}}const bc=Lu.mark({class:"cm-searchMatch"}),Zc=Lu.mark({class:"cm-searchMatch cm-searchMatch-selected"}),mc=nD.fromClass(class{constructor(M){this.view=M,this.decorations=this.highlight(M.state.field(pc))}update(M){let i=M.state.field(pc);(i!=M.startState.field(pc)||M.docChanged||M.selectionSet||M.viewportChanged)&&(this.decorations=this.highlight(i))}highlight({query:M,panel:i}){if(!i||!M.spec.valid)return Lu.none;let{view:t}=this,e=new JN;for(let i=0,N=t.visibleRanges,s=N.length;i<s;i++){let{from:u,to:D}=N[i];for(;i<s-1&&D>N[i+1].from-500;)D=N[++i].to;M.highlight(t.state,u,D,((M,i)=>{let N=t.state.selection.ranges.some((t=>t.from==M&&t.to==i));e.add(M,i,N?Zc:bc)}))}return e.finish()}},{decorations:M=>M.decorations});function Yc(M){return i=>{let t=i.state.field(pc,!1);return t&&t.query.spec.valid?M(i,t):Xc(i)}}const fc=Yc(((M,{query:i})=>{let{to:t}=M.state.selection.main,e=i.nextMatch(M.state,t,t);if(!e)return!1;let N=$e.single(e.from,e.to),s=M.state.facet(zc);return M.dispatch({selection:N,effects:[Ma(M,e),s.scrollToMatch(N.main,M)],userEvent:"select.search"}),Fc(M),!0})),Wc=Yc(((M,{query:i})=>{let{state:t}=M,{from:e}=t.selection.main,N=i.prevMatch(t,e,e);if(!N)return!1;let s=$e.single(N.from,N.to),u=M.state.facet(zc);return M.dispatch({selection:s,effects:[Ma(M,N),u.scrollToMatch(s.main,M)],userEvent:"select.search"}),Fc(M),!0})),Vc=Yc(((M,{query:i})=>{let t=i.matchAll(M.state,1e3);return!(!t||!t.length)&&(M.dispatch({selection:$e.create(t.map((M=>$e.range(M.from,M.to)))),userEvent:"select.search.matches"}),!0)})),vc=Yc(((M,{query:i})=>{let{state:t}=M,{from:e,to:N}=t.selection.main;if(t.readOnly)return!1;let s=i.nextMatch(t,e,e);if(!s)return!1;let u,D,n=[],j=[];if(s.from==e&&s.to==N&&(D=t.toText(i.getReplacement(s)),n.push({from:s.from,to:s.to,insert:D}),s=i.nextMatch(t,s.from,s.to),j.push(uj.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(e).number)+"."))),s){let i=0==n.length||n[0].from>=s.to?0:s.to-s.from-D.length;u=$e.single(s.from-i,s.to-i),j.push(Ma(M,s)),j.push(t.facet(zc).scrollToMatch(u.main,M))}return M.dispatch({changes:n,selection:u,effects:j,userEvent:"input.replace"}),!0})),Gc=Yc(((M,{query:i})=>{if(M.state.readOnly)return!1;let t=i.matchAll(M.state,1e9).map((M=>{let{from:t,to:e}=M;return{from:t,to:e,insert:i.getReplacement(M)}}));if(!t.length)return!1;let e=M.state.phrase("replaced $ matches",t.length)+".";return M.dispatch({changes:t,effects:uj.announce.of(e),userEvent:"input.replace.all"}),!0}));function Pc(M){return M.state.facet(zc).createPanel(M)}function Rc(M,i){var t,e,N,s,u;let D=M.selection.main,n=D.empty||D.to>D.from+100?"":M.sliceDoc(D.from,D.to);if(i&&!n)return i;let j=M.facet(zc);return new yc({search:(null!==(t=null==i?void 0:i.literal)&&void 0!==t?t:j.literal)?n:n.replace(/\n/g,"\\n"),caseSensitive:null!==(e=null==i?void 0:i.caseSensitive)&&void 0!==e?e:j.caseSensitive,literal:null!==(N=null==i?void 0:i.literal)&&void 0!==N?N:j.literal,regexp:null!==(s=null==i?void 0:i.regexp)&&void 0!==s?s:j.regexp,wholeWord:null!==(u=null==i?void 0:i.wholeWord)&&void 0!==u?u:j.wholeWord})}function Bc(M){let i=TI(M,Pc);return i&&i.dom.querySelector("[main-field]")}function Fc(M){let i=Bc(M);i&&i==M.root.activeElement&&i.select()}const Xc=M=>{let i=M.state.field(pc,!1);if(i&&i.panel){let t=Bc(M);if(t&&t!=M.root.activeElement){let e=Rc(M.state,i.query.spec);e.valid&&M.dispatch({effects:kc.of(e)}),t.focus(),t.select()}}else M.dispatch({effects:[Cc.of(!0),i?kc.of(Rc(M.state,i.query.spec)):QN.appendConfig.of(ta)]});return!0},Jc=M=>{let i=M.state.field(pc,!1);if(!i||!i.panel)return!1;let t=TI(M,Pc);return t&&t.dom.contains(M.root.activeElement)&&M.focus(),M.dispatch({effects:Cc.of(!1)}),!0},Hc=[{key:"Mod-f",run:Xc,scope:"editor search-panel"},{key:"F3",run:fc,shift:Wc,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:fc,shift:Wc,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Jc,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:M,dispatch:i})=>{let t=M.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:e,to:N}=t.main,s=[],u=0;for(let i=new tc(M.doc,M.sliceDoc(e,N));!i.next().done;){if(s.length>1e3)return!1;i.value.from==e&&(u=s.length),s.push($e.range(i.value.from,i.value.to))}return i(M.update({selection:$e.create(s,u),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:M=>{let i=TI(M,Ic);if(!i){let t=[lc.of(!0)];null==M.state.field(rc,!1)&&t.push(QN.appendConfig.of([rc,oc])),M.dispatch({effects:t}),i=TI(M,Ic)}return i&&i.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:M,dispatch:i})=>{let{ranges:t}=M.selection;if(t.some((M=>M.from===M.to)))return(({state:M,dispatch:i})=>{let{selection:t}=M,e=$e.create(t.ranges.map((i=>M.wordAt(i.head)||$e.cursor(i.head))),t.mainIndex);return!e.eq(t)&&(i(M.update({selection:e})),!0)})({state:M,dispatch:i});let e=M.sliceDoc(t[0].from,t[0].to);if(M.selection.ranges.some((i=>M.sliceDoc(i.from,i.to)!=e)))return!1;let N=function(M,i){let{main:t,ranges:e}=M.selection,N=M.wordAt(t.head),s=N&&N.from==t.from&&N.to==t.to;for(let t=!1,N=new tc(M.doc,i,e[e.length-1].to);;){if(N.next(),!N.done){if(t&&e.some((M=>M.from==N.value.from)))continue;if(s){let i=M.wordAt(N.value.from);if(!i||i.from!=N.value.from||i.to!=N.value.to)continue}return N.value}if(t)return null;N=new tc(M.doc,i,0,Math.max(0,e[e.length-1].from-1)),t=!0}}(M,e);return!!N&&(i(M.update({selection:M.selection.addRange($e.range(N.from,N.to),!1),effects:uj.scrollIntoView(N.to)})),!0)},preventDefault:!0}];class $c{constructor(M){this.view=M;let i=this.query=M.state.field(pc).query.spec;function t(M,i,t){return Kg("button",{class:"cm-button",name:M,onclick:i,type:"button"},t)}this.commit=this.commit.bind(this),this.searchField=Kg("input",{value:i.search,placeholder:_c(M,"Find"),"aria-label":_c(M,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Kg("input",{value:i.replace,placeholder:_c(M,"Replace"),"aria-label":_c(M,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Kg("input",{type:"checkbox",name:"case",form:"",checked:i.caseSensitive,onchange:this.commit}),this.reField=Kg("input",{type:"checkbox",name:"re",form:"",checked:i.regexp,onchange:this.commit}),this.wordField=Kg("input",{type:"checkbox",name:"word",form:"",checked:i.wholeWord,onchange:this.commit}),this.dom=Kg("div",{onkeydown:M=>this.keydown(M),class:"cm-search"},[this.searchField,t("next",(()=>fc(M)),[_c(M,"next")]),t("prev",(()=>Wc(M)),[_c(M,"previous")]),t("select",(()=>Vc(M)),[_c(M,"all")]),Kg("label",null,[this.caseField,_c(M,"match case")]),Kg("label",null,[this.reField,_c(M,"regexp")]),Kg("label",null,[this.wordField,_c(M,"by word")]),...M.state.readOnly?[]:[Kg("br"),this.replaceField,t("replace",(()=>vc(M)),[_c(M,"replace")]),t("replaceAll",(()=>Gc(M)),[_c(M,"replace all")])],Kg("button",{name:"close",onclick:()=>Jc(M),"aria-label":_c(M,"close"),type:"button"},["×"])])}commit(){let M=new yc({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});M.eq(this.query)||(this.query=M,this.view.dispatch({effects:kc.of(M)}))}keydown(M){!function(M,i,t){return Lj(aj(M.state),i,M,t)}(this.view,M,"search-panel")?13==M.keyCode&&M.target==this.searchField?(M.preventDefault(),(M.shiftKey?Wc:fc)(this.view)):13==M.keyCode&&M.target==this.replaceField&&(M.preventDefault(),vc(this.view)):M.preventDefault()}update(M){for(let i of M.transactions)for(let M of i.effects)M.is(kc)&&!M.value.eq(this.query)&&this.setQuery(M.value)}setQuery(M){this.query=M,this.searchField.value=M.search,this.replaceField.value=M.replace,this.caseField.checked=M.caseSensitive,this.reField.checked=M.regexp,this.wordField.checked=M.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(zc).top}}function _c(M,i){return M.state.phrase(i)}const qc=30,Kc=/[\s\.,:;?!]/;function Ma(M,{from:i,to:t}){let e=M.state.doc.lineAt(i),N=M.state.doc.lineAt(t).to,s=Math.max(e.from,i-qc),u=Math.min(N,t+qc),D=M.state.sliceDoc(s,u);if(s!=e.from)for(let M=0;M<qc;M++)if(!Kc.test(D[M+1])&&Kc.test(D[M])){D=D.slice(M);break}if(u!=N)for(let M=D.length-1;M>D.length-qc;M--)if(!Kc.test(D[M-1])&&Kc.test(D[M])){D=D.slice(0,M);break}return uj.announce.of(`${M.state.phrase("current match")}. ${D} ${M.state.phrase("on line")} ${e.number}.`)}const ia=uj.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),ta=[pc,rN.low(mc),ia];class ea{constructor(M,i,t){this.state=M,this.pos=i,this.explicit=t,this.abortListeners=[]}tokenBefore(M){let i=tr(this.state).resolveInner(this.pos,-1);for(;i&&M.indexOf(i.name)<0;)i=i.parent;return i?{from:i.from,to:this.pos,text:this.state.sliceDoc(i.from,this.pos),type:i.type}:null}matchBefore(M){let i=this.state.doc.lineAt(this.pos),t=Math.max(i.from,this.pos-250),e=i.text.slice(t-i.from,this.pos-i.from),N=e.search(na(M,!1));return N<0?null:{from:t+N,to:this.pos,text:e.slice(N)}}get aborted(){return null==this.abortListeners}addEventListener(M,i){"abort"==M&&this.abortListeners&&this.abortListeners.push(i)}}function Na(M){let i=Object.keys(M).join(""),t=/\w/.test(i);return t&&(i=i.replace(/\w/g,"")),`[${t?"\\w":""}${i.replace(/[^\w\s]/g,"\\$&")}]`}function sa(M){let i=M.map((M=>"string"==typeof M?{label:M}:M)),[t,e]=i.every((M=>/^\w+$/.test(M.label)))?[/\w*$/,/\w+$/]:function(M){let i=Object.create(null),t=Object.create(null);for(let{label:e}of M){i[e[0]]=!0;for(let M=1;M<e.length;M++)t[e[M]]=!0}let e=Na(i)+Na(t)+"*$";return[new RegExp("^"+e),new RegExp(e)]}(i);return M=>{let N=M.matchBefore(e);return N||M.explicit?{from:N?N.from:M.pos,options:i,validFor:t}:null}}class ua{constructor(M,i,t,e){this.completion=M,this.source=i,this.match=t,this.score=e}}function Da(M){return M.selection.main.from}function na(M,i){var t;let{source:e}=M,N=i&&"^"!=e[0],s="$"!=e[e.length-1];return N||s?new RegExp(`${N?"^":""}(?:${e})${s?"$":""}`,null!==(t=M.flags)&&void 0!==t?t:M.ignoreCase?"i":""):M}const ja=wN.define();const Ia=new WeakMap;function la(M){if(!Array.isArray(M))return M;let i=Ia.get(M);return i||Ia.set(M,i=sa(M)),i}const ra=QN.define(),oa=QN.define();class ga{constructor(M){this.pattern=M,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let i=0;i<M.length;){let t=me(M,i),e=fe(t);this.chars.push(t);let N=M.slice(i,i+e),s=N.toUpperCase();this.folded.push(me(s==N?N.toLowerCase():s,0)),i+=e}this.astral=M.length!=this.chars.length}ret(M,i){return this.score=M,this.matched=i,!0}match(M){if(0==this.pattern.length)return this.ret(-100,[]);if(M.length<this.pattern.length)return!1;let{chars:i,folded:t,any:e,precise:N,byWord:s}=this;if(1==i.length){let e=me(M,0),N=fe(e),s=N==M.length?0:-100;if(e==i[0]);else{if(e!=t[0])return!1;s+=-200}return this.ret(s,[0,N])}let u=M.indexOf(this.pattern);if(0==u)return this.ret(M.length==this.pattern.length?0:-100,[0,this.pattern.length]);let D=i.length,n=0;if(u<0){for(let N=0,s=Math.min(M.length,200);N<s&&n<D;){let s=me(M,N);s!=i[n]&&s!=t[n]||(e[n++]=N),N+=fe(s)}if(n<D)return!1}let j=0,I=0,l=!1,r=0,o=-1,g=-1,c=/[a-z]/.test(M),a=!0;for(let e=0,n=Math.min(M.length,200),O=0;e<n&&I<D;){let n=me(M,e);u<0&&(j<D&&n==i[j]&&(N[j++]=e),r<D&&(n==i[r]||n==t[r]?(0==r&&(o=e),g=e+1,r++):r=0));let T,L=n<255?n>=48&&n<=57||n>=97&&n<=122?2:n>=65&&n<=90?1:0:(T=Ye(n))!=T.toLowerCase()?1:T!=T.toUpperCase()?2:0;(!e||1==L&&c||0==O&&0!=L)&&(i[I]==n||t[I]==n&&(l=!0)?s[I++]=e:s.length&&(a=!1)),O=L,e+=fe(n)}return I==D&&0==s[0]&&a?this.result((l?-200:0)-100,s,M):r==D&&0==o?this.ret(-200-M.length+(g==M.length?0:-100),[0,g]):u>-1?this.ret(-700-M.length,[u,u+this.pattern.length]):r==D?this.ret(-900-M.length,[o,g]):I==D?this.result((l?-200:0)-100-700+(a?0:-1100),s,M):2!=i.length&&this.result((e[0]?-700:0)-200-1100,e,M)}result(M,i,t){let e=[],N=0;for(let M of i){let i=M+(this.astral?fe(me(t,M)):1);N&&e[N-1]==M?e[N-1]=i:(e[N++]=M,e[N++]=i)}return this.ret(M-t.length,e)}}const ca=Ke.define({combine:M=>GN(M,{activateOnTyping:!0,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Oa,compareCompletions:(M,i)=>M.label.localeCompare(i.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(M,i)=>M&&i,closeOnBlur:(M,i)=>M&&i,icons:(M,i)=>M&&i,tooltipClass:(M,i)=>t=>aa(M(t),i(t)),optionClass:(M,i)=>t=>aa(M(t),i(t)),addToOptions:(M,i)=>M.concat(i)})});function aa(M,i){return M?i?M+" "+i:M:i}function Oa(M,i,t,e,N,s){let u,D,n=M.textDirection==Eu.RTL,j=n,I=!1,l="top",r=i.left-N.left,o=N.right-i.right,g=e.right-e.left,c=e.bottom-e.top;if(j&&r<Math.min(g,o)?j=!1:!j&&o<Math.min(g,r)&&(j=!0),g<=(j?r:o))u=Math.max(N.top,Math.min(t.top,N.bottom-c))-i.top,D=Math.min(400,j?r:o);else{I=!0,D=Math.min(400,(n?i.right:N.right-i.left)-30);let M=N.bottom-i.bottom;M>=c||M>i.top?u=t.bottom-i.top:(l="bottom",u=i.bottom-t.top)}return{style:`${l}: ${u/((i.bottom-i.top)/s.offsetHeight)}px; max-width: ${D/((i.right-i.left)/s.offsetWidth)}px`,class:"cm-completionInfo-"+(I?n?"left-narrow":"right-narrow":j?"left":"right")}}function Ta(M,i,t){if(M<=t)return{from:0,to:M};if(i<0&&(i=0),i<=M>>1){let M=Math.floor(i/t);return{from:M*t,to:(M+1)*t}}let e=Math.floor((M-i)/t);return{from:M-(e+1)*t,to:M-e*t}}class La{constructor(M,i,t){this.view=M,this.stateField=i,this.applyCompletion=t,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:M=>this.placeInfo(M),key:this},this.space=null,this.currentClass="";let e=M.state.field(i),{options:N,selected:s}=e.open,u=M.state.facet(ca);this.optionContent=function(M){let i=M.addToOptions.slice();return M.icons&&i.push({render(M){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),M.type&&i.classList.add(...M.type.split(/\s+/g).map((M=>"cm-completionIcon-"+M))),i.setAttribute("aria-hidden","true"),i},position:20}),i.push({render(M,i,t,e){let N=document.createElement("span");N.className="cm-completionLabel";let s=M.displayLabel||M.label,u=0;for(let M=0;M<e.length;){let i=e[M++],t=e[M++];i>u&&N.appendChild(document.createTextNode(s.slice(u,i)));let D=N.appendChild(document.createElement("span"));D.appendChild(document.createTextNode(s.slice(i,t))),D.className="cm-completionMatchedText",u=t}return u<s.length&&N.appendChild(document.createTextNode(s.slice(u))),N},position:50},{render(M){if(!M.detail)return null;let i=document.createElement("span");return i.className="cm-completionDetail",i.textContent=M.detail,i},position:80}),i.sort(((M,i)=>M.position-i.position)).map((M=>M.render))}(u),this.optionClass=u.optionClass,this.tooltipClass=u.tooltipClass,this.range=Ta(N.length,s,u.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(M.state),this.dom.addEventListener("mousedown",(t=>{let{options:e}=M.state.field(i).open;for(let i,N=t.target;N&&N!=this.dom;N=N.parentNode)if("LI"==N.nodeName&&(i=/-(\d+)$/.exec(N.id))&&+i[1]<e.length)return this.applyCompletion(M,e[+i[1]]),void t.preventDefault()})),this.dom.addEventListener("focusout",(i=>{let t=M.state.field(this.stateField,!1);t&&t.tooltip&&M.state.facet(ca).closeOnBlur&&i.relatedTarget!=M.contentDOM&&M.dispatch({effects:oa.of(null)})})),this.showOptions(N,e.id)}mount(){this.updateSel()}showOptions(M,i){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(M,i,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(M){var i;let t=M.state.field(this.stateField),e=M.startState.field(this.stateField);if(this.updateTooltipClass(M.state),t!=e){let{options:N,selected:s,disabled:u}=t.open;e.open&&e.open.options==N||(this.range=Ta(N.length,s,M.state.facet(ca).maxRenderedOptions),this.showOptions(N,t.id)),this.updateSel(),u!=(null===(i=e.open)||void 0===i?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!u)}}updateTooltipClass(M){let i=this.tooltipClass(M);if(i!=this.currentClass){for(let M of this.currentClass.split(" "))M&&this.dom.classList.remove(M);for(let M of i.split(" "))M&&this.dom.classList.add(M);this.currentClass=i}}positioned(M){this.space=M,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let M=this.view.state.field(this.stateField),i=M.open;if((i.selected>-1&&i.selected<this.range.from||i.selected>=this.range.to)&&(this.range=Ta(i.options.length,i.selected,this.view.state.facet(ca).maxRenderedOptions),this.showOptions(i.options,M.id)),this.updateSelectedOption(i.selected)){this.destroyInfo();let{completion:t}=i.options[i.selected],{info:e}=t;if(!e)return;let N="string"==typeof e?document.createTextNode(e):e(t);if(!N)return;"then"in N?N.then((i=>{i&&this.view.state.field(this.stateField,!1)==M&&this.addInfoPane(i,t)})).catch((M=>ND(this.view.state,M,"completion info"))):this.addInfoPane(N,t)}}addInfoPane(M,i){this.destroyInfo();let t=this.info=document.createElement("div");if(t.className="cm-tooltip cm-completionInfo",null!=M.nodeType)t.appendChild(M),this.infoDestroy=null;else{let{dom:i,destroy:e}=M;t.appendChild(i),this.infoDestroy=e||null}this.dom.appendChild(t),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(M){let i=null;for(let t=this.list.firstChild,e=this.range.from;t;t=t.nextSibling,e++)"LI"==t.nodeName&&t.id?e==M?t.hasAttribute("aria-selected")||(t.setAttribute("aria-selected","true"),i=t):t.hasAttribute("aria-selected")&&t.removeAttribute("aria-selected"):e--;return i&&function(M,i){let t=M.getBoundingClientRect(),e=i.getBoundingClientRect(),N=t.height/M.offsetHeight;e.top<t.top?M.scrollTop-=(t.top-e.top)/N:e.bottom>t.bottom&&(M.scrollTop+=(e.bottom-t.bottom)/N)}(this.list,i),i}measureInfo(){let M=this.dom.querySelector("[aria-selected]");if(!M||!this.info)return null;let i=this.dom.getBoundingClientRect(),t=this.info.getBoundingClientRect(),e=M.getBoundingClientRect(),N=this.space;if(!N){let M=this.dom.ownerDocument.defaultView||window;N={left:0,top:0,right:M.innerWidth,bottom:M.innerHeight}}return e.top>Math.min(N.bottom,i.bottom)-10||e.bottom<Math.max(N.top,i.top)+10?null:this.view.state.facet(ca).positionInfo(this.view,i,e,t,N,this.dom)}placeInfo(M){this.info&&(M?(M.style&&(this.info.style.cssText=M.style),this.info.className="cm-tooltip cm-completionInfo "+(M.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(M,i,t){const e=document.createElement("ul");e.id=i,e.setAttribute("role","listbox"),e.setAttribute("aria-expanded","true"),e.setAttribute("aria-label",this.view.state.phrase("Completions"));let N=null;for(let s=t.from;s<t.to;s++){let{completion:u,match:D}=M[s],{section:n}=u;if(n){let M="string"==typeof n?n:n.name;if(M!=N&&(s>t.from||0==t.from))if(N=M,"string"!=typeof n&&n.header)e.appendChild(n.header(n));else{e.appendChild(document.createElement("completion-section")).textContent=M}}const j=e.appendChild(document.createElement("li"));j.id=i+"-"+s,j.setAttribute("role","option");let I=this.optionClass(u);I&&(j.className=I);for(let M of this.optionContent){let i=M(u,this.view.state,this.view,D);i&&j.appendChild(i)}}return t.from&&e.classList.add("cm-completionListIncompleteTop"),t.to<M.length&&e.classList.add("cm-completionListIncompleteBottom"),e}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function ha(M,i){return t=>new La(t,M,i)}function za(M){return 100*(M.boost||0)+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}class ya{constructor(M,i,t,e,N,s){this.options=M,this.attrs=i,this.tooltip=t,this.timestamp=e,this.selected=N,this.disabled=s}setSelected(M,i){return M==this.selected||M>=this.options.length?this:new ya(this.options,xa(i,M),this.tooltip,this.timestamp,M,this.disabled)}static build(M,i,t,e,N){let s=function(M,i){let t=[],e=null,N=M=>{t.push(M);let{section:i}=M.completion;if(i){e||(e=[]);let M="string"==typeof i?i:i.name;e.some((i=>i.name==M))||e.push("string"==typeof i?{name:M}:i)}};for(let e of M)if(e.hasResult()){let M=e.result.getMatch;if(!1===e.result.filter)for(let i of e.result.options)N(new ua(i,e.source,M?M(i):[],1e9-t.length));else{let t=new ga(i.sliceDoc(e.from,e.to));for(let i of e.result.options)if(t.match(i.label)){let s=i.displayLabel?M?M(i,t.matched):[]:t.matched;N(new ua(i,e.source,s,t.score+(i.boost||0)))}}}if(e){let M=Object.create(null),i=0,N=(M,i)=>{var t,e;return(null!==(t=M.rank)&&void 0!==t?t:1e9)-(null!==(e=i.rank)&&void 0!==e?e:1e9)||(M.name<i.name?-1:1)};for(let t of e.sort(N))i-=1e5,M[t.name]=i;for(let i of t){let{section:t}=i.completion;t&&(i.score+=M["string"==typeof t?t:t.name])}}let s=[],u=null,D=i.facet(ca).compareCompletions;for(let M of t.sort(((M,i)=>i.score-M.score||D(M.completion,i.completion)))){let i=M.completion;!u||u.label!=i.label||u.detail!=i.detail||null!=u.type&&null!=i.type&&u.type!=i.type||u.apply!=i.apply||u.boost!=i.boost?s.push(M):za(M.completion)>za(u)&&(s[s.length-1]=M),u=M.completion}return s}(M,i);if(!s.length)return e&&M.some((M=>1==M.state))?new ya(e.options,e.attrs,e.tooltip,e.timestamp,e.selected,!0):null;let u=i.facet(ca).selectOnOpen?0:-1;if(e&&e.selected!=u&&-1!=e.selected){let M=e.options[e.selected].completion;for(let i=0;i<s.length;i++)if(s[i].completion==M){u=i;break}}return new ya(s,xa(t,u),{pos:M.reduce(((M,i)=>i.hasResult()?Math.min(M,i.from):M),1e8),create:ba,above:N.aboveCursor},e?e.timestamp:Date.now(),u,!1)}map(M){return new ya(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:M.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class da{constructor(M,i,t){this.active=M,this.id=i,this.open=t}static start(){return new da(wa,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(M){let{state:i}=M,t=i.facet(ca),e=(t.override||i.languageDataAt("autocomplete",Da(i)).map(la)).map((i=>{let e=this.active.find((M=>M.source==i))||new Ea(i,this.active.some((M=>0!=M.state))?1:0);return e.update(M,t)}));e.length==this.active.length&&e.every(((M,i)=>M==this.active[i]))&&(e=this.active);let N=this.open;N&&M.docChanged&&(N=N.map(M.changes)),M.selection||e.some((i=>i.hasResult()&&M.changes.touchesRange(i.from,i.to)))||!function(M,i){if(M==i)return!0;for(let t=0,e=0;;){for(;t<M.length&&!M[t].hasResult;)t++;for(;e<i.length&&!i[e].hasResult;)e++;let N=t==M.length,s=e==i.length;if(N||s)return N==s;if(M[t++].result!=i[e++].result)return!1}}(e,this.active)?N=ya.build(e,i,this.id,N,t):N&&N.disabled&&!e.some((M=>1==M.state))&&(N=null),!N&&e.every((M=>1!=M.state))&&e.some((M=>M.hasResult()))&&(e=e.map((M=>M.hasResult()?new Ea(M.source,0):M)));for(let i of M.effects)i.is(Ca)&&(N=N&&N.setSelected(i.value,this.id));return e==this.active&&N==this.open?this:new da(e,this.id,N)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:Aa}}const Aa={"aria-autocomplete":"list"};function xa(M,i){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":M};return i>-1&&(t["aria-activedescendant"]=M+"-"+i),t}const wa=[];function Sa(M){return M.isUserEvent("input.type")?"input":M.isUserEvent("delete.backward")?"delete":null}class Ea{constructor(M,i,t=-1){this.source=M,this.state=i,this.explicitPos=t}hasResult(){return!1}update(M,i){let t=Sa(M),e=this;t?e=e.handleUserEvent(M,t,i):M.docChanged?e=e.handleChange(M):M.selection&&0!=e.state&&(e=new Ea(e.source,0));for(let i of M.effects)if(i.is(ra))e=new Ea(e.source,1,i.value?Da(M.state):-1);else if(i.is(oa))e=new Ea(e.source,0);else if(i.is(ka))for(let M of i.value)M.source==e.source&&(e=M);return e}handleUserEvent(M,i,t){return"delete"!=i&&t.activateOnTyping?new Ea(this.source,1):this.map(M.changes)}handleChange(M){return M.changes.touchesRange(Da(M.startState))?new Ea(this.source,0):this.map(M.changes)}map(M){return M.empty||this.explicitPos<0?this:new Ea(this.source,this.state,M.mapPos(this.explicitPos))}}class Qa extends Ea{constructor(M,i,t,e,N){super(M,2,i),this.result=t,this.from=e,this.to=N}hasResult(){return!0}handleUserEvent(M,i,t){var e;let N=M.changes.mapPos(this.from),s=M.changes.mapPos(this.to,1),u=Da(M.state);if((this.explicitPos<0?u<=N:u<this.from)||u>s||"delete"==i&&Da(M.startState)==this.from)return new Ea(this.source,"input"==i&&t.activateOnTyping?1:0);let D,n=this.explicitPos<0?-1:M.changes.mapPos(this.explicitPos);return function(M,i,t,e){if(!M)return!1;let N=i.sliceDoc(t,e);return"function"==typeof M?M(N,t,e,i):na(M,!0).test(N)}(this.result.validFor,M.state,N,s)?new Qa(this.source,n,this.result,N,s):this.result.update&&(D=this.result.update(this.result,N,s,new ea(M.state,u,n>=0)))?new Qa(this.source,n,D,D.from,null!==(e=D.to)&&void 0!==e?e:Da(M.state)):new Ea(this.source,1,n)}handleChange(M){return M.changes.touchesRange(this.from,this.to)?new Ea(this.source,0):this.map(M.changes)}map(M){return M.empty?this:new Qa(this.source,this.explicitPos<0?-1:M.mapPos(this.explicitPos),this.result,M.mapPos(this.from),M.mapPos(this.to,1))}}const ka=QN.define({map:(M,i)=>M.map((M=>M.map(i)))}),Ca=QN.define(),pa=uN.define({create:()=>da.start(),update:(M,i)=>M.update(i),provide:M=>[nI.from(M,(M=>M.tooltip)),uj.contentAttributes.from(M,(M=>M.attrs))]});function Ua(M,i){const t=i.completion.apply||i.completion.label;let e=M.state.field(pa).active.find((M=>M.source==i.source));return e instanceof Qa&&("string"==typeof t?M.dispatch(Object.assign(Object.assign({},function(M,i,t,e){let{main:N}=M.selection,s=t-N.from,u=e-N.from;return Object.assign(Object.assign({},M.changeByRange((D=>D!=N&&t!=e&&M.sliceDoc(D.from+s,D.from+u)!=M.sliceDoc(t,e)?{range:D}:{changes:{from:D.from+s,to:e==N.from?D.to:D.from+u,insert:i},range:$e.cursor(D.from+s+i.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(M.state,t,e.from,e.to)),{annotations:ja.of(i.completion)})):t(M,i.completion,e.from,e.to),!0)}const ba=ha(pa,Ua);function Za(M,i="option"){return t=>{let e=t.state.field(pa,!1);if(!e||!e.open||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(ca).interactionDelay)return!1;let N,s=1;"page"==i&&(N=cI(t,e.open.tooltip))&&(s=Math.max(2,Math.floor(N.dom.offsetHeight/N.dom.querySelector("li").offsetHeight)-1));let{length:u}=e.open.options,D=e.open.selected>-1?e.open.selected+s*(M?1:-1):M?0:u-1;return D<0?D="page"==i?0:u-1:D>=u&&(D="page"==i?u-1:0),t.dispatch({effects:Ca.of(D)}),!0}}class ma{constructor(M,i){this.active=M,this.context=i,this.time=Date.now(),this.updates=[],this.done=void 0}}const Ya=nD.fromClass(class{constructor(M){this.view=M,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let i of M.state.field(pa).active)1==i.state&&this.startQuery(i)}update(M){let i=M.state.field(pa);if(!M.selectionSet&&!M.docChanged&&M.startState.field(pa)==i)return;let t=M.transactions.some((M=>(M.selection||M.docChanged)&&!Sa(M)));for(let i=0;i<this.running.length;i++){let e=this.running[i];if(t||e.updates.length+M.transactions.length>50&&Date.now()-e.time>1e3){for(let M of e.context.abortListeners)try{M()}catch(M){ND(this.view.state,M)}e.context.abortListeners=null,this.running.splice(i--,1)}else e.updates.push(...M.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),M.transactions.some((M=>M.effects.some((M=>M.is(ra)))))&&(this.pendingStart=!0);let e=this.pendingStart?50:M.state.facet(ca).activateOnTypingDelay;if(this.debounceUpdate=i.active.some((M=>1==M.state&&!this.running.some((i=>i.active.source==M.source))))?setTimeout((()=>this.startUpdate()),e):-1,0!=this.composing)for(let i of M.transactions)"input"==Sa(i)?this.composing=2:2==this.composing&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:M}=this.view,i=M.field(pa);for(let M of i.active)1!=M.state||this.running.some((i=>i.active.source==M.source))||this.startQuery(M)}startQuery(M){let{state:i}=this.view,t=Da(i),e=new ea(i,t,M.explicitPos==t),N=new ma(M,e);this.running.push(N),Promise.resolve(M.source(e)).then((M=>{N.context.aborted||(N.done=M||null,this.scheduleAccept())}),(M=>{this.view.dispatch({effects:oa.of(null)}),ND(this.view.state,M)}))}scheduleAccept(){this.running.every((M=>void 0!==M.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(ca).updateSyncTime))}accept(){var M;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let i=[],t=this.view.state.facet(ca);for(let e=0;e<this.running.length;e++){let N=this.running[e];if(void 0===N.done)continue;if(this.running.splice(e--,1),N.done){let e=new Qa(N.active.source,N.active.explicitPos,N.done,N.done.from,null!==(M=N.done.to)&&void 0!==M?M:Da(N.updates.length?N.updates[0].startState:this.view.state));for(let M of N.updates)e=e.update(M,t);if(e.hasResult()){i.push(e);continue}}let s=this.view.state.field(pa).active.find((M=>M.source==N.active.source));if(s&&1==s.state)if(null==N.done){let M=new Ea(N.active.source,0);for(let i of N.updates)M=M.update(i,t);1!=M.state&&i.push(M)}else this.startQuery(s)}i.length&&this.view.dispatch({effects:ka.of(i)})}},{eventHandlers:{blur(M){let i=this.view.state.field(pa,!1);if(i&&i.tooltip&&this.view.state.facet(ca).closeOnBlur){let t=i.open&&cI(this.view,i.open.tooltip);t&&t.dom.contains(M.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:oa.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:ra.of(!1)})),20),this.composing=0}}}),fa=uj.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class Wa{constructor(M,i,t,e){this.field=M,this.line=i,this.from=t,this.to=e}}class Va{constructor(M,i,t){this.field=M,this.from=i,this.to=t}map(M){let i=M.mapPos(this.from,-1,Ve.TrackDel),t=M.mapPos(this.to,1,Ve.TrackDel);return null==i||null==t?null:new Va(this.field,i,t)}}class va{constructor(M,i){this.lines=M,this.fieldPositions=i}instantiate(M,i){let t=[],e=[i],N=M.doc.lineAt(i),s=/^\s*/.exec(N.text)[0];for(let N of this.lines){if(t.length){let t=s,u=/^\t*/.exec(N)[0].length;for(let i=0;i<u;i++)t+=M.facet(gr);e.push(i+t.length-u),N=t+N.slice(u)}t.push(N),i+=N.length+1}let u=this.fieldPositions.map((M=>new Va(M.field,e[M.line]+M.from,e[M.line]+M.to)));return{text:t,ranges:u}}static parse(M){let i,t=[],e=[],N=[];for(let s of M.split(/\r\n?|\n/)){for(;i=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(s);){let M=i[1]?+i[1]:null,u=i[2]||i[3]||"",D=-1;for(let i=0;i<t.length;i++)(null!=M?t[i].seq==M:u&&t[i].name==u)&&(D=i);if(D<0){let i=0;for(;i<t.length&&(null==M||null!=t[i].seq&&t[i].seq<M);)i++;t.splice(i,0,{seq:M,name:u}),D=i;for(let M of N)M.field>=D&&M.field++}N.push(new Wa(D,e.length,i.index,i.index+u.length)),s=s.slice(0,i.index)+u+s.slice(i.index+i[0].length)}for(let M;M=/\\([{}])/.exec(s);){s=s.slice(0,M.index)+M[1]+s.slice(M.index+M[0].length);for(let i of N)i.line==e.length&&i.from>M.index&&(i.from--,i.to--)}e.push(s)}return new va(e,N)}}let Ga=Lu.widget({widget:new class extends Ou{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),Pa=Lu.mark({class:"cm-snippetField"});class Ra{constructor(M,i){this.ranges=M,this.active=i,this.deco=Lu.set(M.map((M=>(M.from==M.to?Ga:Pa).range(M.from,M.to))))}map(M){let i=[];for(let t of this.ranges){let e=t.map(M);if(!e)return null;i.push(e)}return new Ra(i,this.active)}selectionInsideField(M){return M.ranges.every((M=>this.ranges.some((i=>i.field==this.active&&i.from<=M.from&&i.to>=M.to))))}}const Ba=QN.define({map:(M,i)=>M&&M.map(i)}),Fa=QN.define(),Xa=uN.define({create:()=>null,update(M,i){for(let t of i.effects){if(t.is(Ba))return t.value;if(t.is(Fa)&&M)return new Ra(M.ranges,t.value)}return M&&i.docChanged&&(M=M.map(i.changes)),M&&i.selection&&!M.selectionInsideField(i.selection)&&(M=null),M},provide:M=>uj.decorations.from(M,(M=>M?M.deco:Lu.none))});function Ja(M,i){return $e.create(M.filter((M=>M.field==i)).map((M=>$e.range(M.from,M.to))))}function Ha(M){let i=va.parse(M);return(M,t,e,N)=>{let{text:s,ranges:u}=i.instantiate(M.state,e),D={changes:{from:e,to:N,insert:Oe.of(s)},scrollIntoView:!0,annotations:t?[ja.of(t),kN.userEvent.of("input.complete")]:void 0};if(u.length&&(D.selection=Ja(u,0)),u.some((M=>M.field>0))){let i=new Ra(u,0),t=D.effects=[Ba.of(i)];void 0===M.state.field(Xa,!1)&&t.push(QN.appendConfig.of([Xa,Ka,iO,fa]))}M.dispatch(M.state.update(D))}}function $a(M){return({state:i,dispatch:t})=>{let e=i.field(Xa,!1);if(!e||M<0&&0==e.active)return!1;let N=e.active+M,s=M>0&&!e.ranges.some((i=>i.field==N+M));return t(i.update({selection:Ja(e.ranges,N),effects:Ba.of(s?null:new Ra(e.ranges,N)),scrollIntoView:!0})),!0}}const _a=[{key:"Tab",run:$a(1),shift:$a(-1)},{key:"Escape",run:({state:M,dispatch:i})=>!!M.field(Xa,!1)&&(i(M.update({effects:Ba.of(null)})),!0)}],qa=Ke.define({combine:M=>M.length?M[0]:_a}),Ka=rN.highest(gj.compute([qa],(M=>M.facet(qa))));function MO(M,i){return Object.assign(Object.assign({},i),{apply:Ha(M)})}const iO=uj.domEventHandlers({mousedown(M,i){let t,e=i.state.field(Xa,!1);if(!e||null==(t=i.posAtCoords({x:M.clientX,y:M.clientY})))return!1;let N=e.ranges.find((M=>M.from<=t&&M.to>=t));return!(!N||N.field==e.active)&&(i.dispatch({selection:Ja(e.ranges,N.field),effects:Ba.of(e.ranges.some((M=>M.field>N.field))?new Ra(e.ranges,N.field):null),scrollIntoView:!0}),!0)}}),tO={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},eO=QN.define({map(M,i){let t=i.mapPos(M,-1,Ve.TrackAfter);return null==t?void 0:t}}),NO=new class extends PN{};NO.startSide=1,NO.endSide=-1;const sO=uN.define({create:()=>XN.empty,update(M,i){if(M=M.map(i.changes),i.selection){let t=i.state.doc.lineAt(i.selection.main.head);M=M.update({filter:M=>M>=t.from&&M<=t.to})}for(let t of i.effects)t.is(eO)&&(M=M.update({add:[NO.range(t.value,t.value+1)]}));return M}});const uO="()[]{}<>";function DO(M){for(let i=0;i<uO.length;i+=2)if(uO.charCodeAt(i)==M)return uO.charAt(i+1);return Ye(M<128?M:M+1)}function nO(M,i){return M.languageDataAt("closeBrackets",i)[0]||tO}const jO="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),IO=uj.inputHandler.of(((M,i,t,e)=>{if((jO?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let N=M.state.selection.main;if(e.length>2||2==e.length&&1==fe(me(e,0))||i!=N.from||t!=N.to)return!1;let s=function(M,i){let t=nO(M,M.selection.main.head),e=t.brackets||tO.brackets;for(let N of e){let s=DO(me(N,0));if(i==N)return s==N?aO(M,N,e.indexOf(N+N+N)>-1,t):gO(M,N,s,t.before||tO.before);if(i==s&&rO(M,M.selection.main.from))return cO(M,N,s)}return null}(M.state,e);return!!s&&(M.dispatch(s),!0)})),lO=[{key:"Backspace",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=nO(M,M.selection.main.head).brackets||tO.brackets,e=null,N=M.changeByRange((i=>{if(i.empty){let e=function(M,i){let t=M.sliceString(i-2,i);return fe(me(t,0))==t.length?t:t.slice(1)}(M.doc,i.head);for(let N of t)if(N==e&&oO(M.doc,i.head)==DO(me(N,0)))return{changes:{from:i.head-N.length,to:i.head+N.length},range:$e.cursor(i.head-N.length)}}return{range:e=i}}));return e||i(M.update(N,{scrollIntoView:!0,userEvent:"delete.backward"})),!e}}];function rO(M,i){let t=!1;return M.field(sO).between(0,M.doc.length,(M=>{M==i&&(t=!0)})),t}function oO(M,i){let t=M.sliceString(i,i+2);return t.slice(0,fe(me(t,0)))}function gO(M,i,t,e){let N=null,s=M.changeByRange((s=>{if(!s.empty)return{changes:[{insert:i,from:s.from},{insert:t,from:s.to}],effects:eO.of(s.to+i.length),range:$e.range(s.anchor+i.length,s.head+i.length)};let u=oO(M.doc,s.head);return!u||/\s/.test(u)||e.indexOf(u)>-1?{changes:{insert:i+t,from:s.head},effects:eO.of(s.head+i.length),range:$e.cursor(s.head+i.length)}:{range:N=s}}));return N?null:M.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function cO(M,i,t){let e=null,N=M.changeByRange((i=>i.empty&&oO(M.doc,i.head)==t?{changes:{from:i.head,to:i.head+t.length,insert:t},range:$e.cursor(i.head+t.length)}:e={range:i}));return e?null:M.update(N,{scrollIntoView:!0,userEvent:"input.type"})}function aO(M,i,t,e){let N=e.stringPrefixes||tO.stringPrefixes,s=null,u=M.changeByRange((e=>{if(!e.empty)return{changes:[{insert:i,from:e.from},{insert:i,from:e.to}],effects:eO.of(e.to+i.length),range:$e.range(e.anchor+i.length,e.head+i.length)};let u,D=e.head,n=oO(M.doc,D);if(n==i){if(OO(M,D))return{changes:{insert:i+i,from:D},effects:eO.of(D+i.length),range:$e.cursor(D+i.length)};if(rO(M,D)){let e=t&&M.sliceDoc(D,D+3*i.length)==i+i+i?i+i+i:i;return{changes:{from:D,to:D+e.length,insert:e},range:$e.cursor(D+e.length)}}}else{if(t&&M.sliceDoc(D-2*i.length,D)==i+i&&(u=TO(M,D-2*i.length,N))>-1&&OO(M,u))return{changes:{insert:i+i+i+i,from:D},effects:eO.of(D+i.length),range:$e.cursor(D+i.length)};if(M.charCategorizer(D)(n)!=YN.Word&&TO(M,D,N)>-1&&!function(M,i,t,e){let N=tr(M).resolveInner(i,-1),s=e.reduce(((M,i)=>Math.max(M,i.length)),0);for(let u=0;u<5;u++){let u=M.sliceDoc(N.from,Math.min(N.to,N.from+t.length+s)),D=u.indexOf(t);if(!D||D>-1&&e.indexOf(u.slice(0,D))>-1){let i=N.firstChild;for(;i&&i.from==N.from&&i.to-i.from>t.length+D;){if(M.sliceDoc(i.to-t.length,i.to)==t)return!1;i=i.firstChild}return!0}let n=N.to==i&&N.parent;if(!n)break;N=n}return!1}(M,D,i,N))return{changes:{insert:i+i,from:D},effects:eO.of(D+i.length),range:$e.cursor(D+i.length)}}return{range:s=e}}));return s?null:M.update(u,{scrollIntoView:!0,userEvent:"input.type"})}function OO(M,i){let t=tr(M).resolveInner(i+1);return t.parent&&t.from==i}function TO(M,i,t){let e=M.charCategorizer(i);if(e(M.sliceDoc(i-1,i))!=YN.Word)return i;for(let N of t){let t=i-N.length;if(M.sliceDoc(t,i)==N&&e(M.sliceDoc(t-1,t))!=YN.Word)return t}return-1}function LO(M={}){return[pa,ca.of(M),Ya,zO,fa]}const hO=[{key:"Ctrl-Space",run:M=>!!M.state.field(pa,!1)&&(M.dispatch({effects:ra.of(!0)}),!0)},{key:"Escape",run:M=>{let i=M.state.field(pa,!1);return!(!i||!i.active.some((M=>0!=M.state)))&&(M.dispatch({effects:oa.of(null)}),!0)}},{key:"ArrowDown",run:Za(!0)},{key:"ArrowUp",run:Za(!1)},{key:"PageDown",run:Za(!0,"page")},{key:"PageUp",run:Za(!1,"page")},{key:"Enter",run:M=>{let i=M.state.field(pa,!1);return!(M.state.readOnly||!i||!i.open||i.open.selected<0||i.open.disabled||Date.now()-i.open.timestamp<M.state.facet(ca).interactionDelay)&&Ua(M,i.open.options[i.open.selected])}}],zO=rN.highest(gj.computeN([ca],(M=>M.facet(ca).defaultKeymap?[hO]:[])));class yO{constructor(M,i,t){this.from=M,this.to=i,this.diagnostic=t}}class dO{constructor(M,i,t){this.diagnostics=M,this.panel=i,this.selected=t}static init(M,i,t){let e=M,N=t.facet(bO).markerFilter;N&&(e=N(e));let s=Lu.set(e.map((M=>M.from==M.to||M.from==M.to-1&&t.doc.lineAt(M.from).to==M.from?Lu.widget({widget:new YO(M),diagnostic:M}).range(M.from):Lu.mark({attributes:{class:"cm-lintRange cm-lintRange-"+M.severity+(M.markClass?" "+M.markClass:"")},diagnostic:M}).range(M.from,M.to))),!0);return new dO(s,i,AO(s))}}function AO(M,i=null,t=0){let e=null;return M.between(t,1e9,((M,t,{spec:N})=>{if(!i||N.diagnostic==i)return e=new yO(M,t,N.diagnostic),!1})),e}const xO=QN.define(),wO=QN.define(),SO=QN.define(),EO=uN.define({create:()=>new dO(Lu.none,null,null),update(M,i){if(i.docChanged){let t=M.diagnostics.map(i.changes),e=null;if(M.selected){let N=i.changes.mapPos(M.selected.from,1);e=AO(t,M.selected.diagnostic,N)||AO(t,null,N)}M=new dO(t,M.panel,e)}for(let t of i.effects)t.is(xO)?M=dO.init(t.value,M.panel,i.state):t.is(wO)?M=new dO(M.diagnostics,t.value?WO.open:null,M.selected):t.is(SO)&&(M=new dO(M.diagnostics,M.panel,t.value));return M},provide:M=>[yI.from(M,(M=>M.panel)),uj.decorations.from(M,(M=>M.diagnostics))]}),QO=Lu.mark({class:"cm-lintRange cm-lintRange-active"});function kO(M,i,t){let{diagnostics:e}=M.state.field(EO),N=[],s=2e8,u=0;e.between(i-(t<0?1:0),i+(t>0?1:0),((M,e,{spec:D})=>{i>=M&&i<=e&&(M==e||(i>M||t>0)&&(i<e||t<0))&&(N.push(D.diagnostic),s=Math.min(M,s),u=Math.max(e,u))}));let D=M.state.facet(bO).tooltipFilter;return D&&(N=D(N)),N.length?{pos:s,end:u,above:M.state.doc.lineAt(s).to<u,create:()=>({dom:CO(M,N)})}:null}function CO(M,i){return Kg("ul",{class:"cm-tooltip-lint"},i.map((i=>mO(M,i,!1))))}const pO=M=>{let i=M.state.field(EO,!1);return!(!i||!i.panel)&&(M.dispatch({effects:wO.of(!1)}),!0)},UO=[{key:"Mod-Shift-m",run:M=>{let i=M.state.field(EO,!1);var t,e;i&&i.panel||M.dispatch({effects:(t=M.state,e=[wO.of(!0)],t.field(EO,!1)?e:e.concat(QN.appendConfig.of(GO)))});let N=TI(M,WO.open);return N&&N.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:M=>{let i=M.state.field(EO,!1);if(!i)return!1;let t=M.state.selection.main,e=i.diagnostics.iter(t.to+1);return!(!e.value&&(e=i.diagnostics.iter(0),!e.value||e.from==t.from&&e.to==t.to))&&(M.dispatch({selection:{anchor:e.from,head:e.to},scrollIntoView:!0}),!0)}}],bO=Ke.define({combine:M=>Object.assign({sources:M.map((M=>M.source))},GN(M.map((M=>M.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(M,i)=>M?i?t=>M(t)||i(t):M:i}))});function ZO(M){let i=[];if(M)M:for(let{name:t}of M){for(let M=0;M<t.length;M++){let e=t[M];if(/[a-zA-Z]/.test(e)&&!i.some((M=>M.toLowerCase()==e.toLowerCase()))){i.push(e);continue M}}i.push("")}return i}function mO(M,i,t){var e;let N=t?ZO(i.actions):[];return Kg("li",{class:"cm-diagnostic cm-diagnostic-"+i.severity},Kg("span",{class:"cm-diagnosticText"},i.renderMessage?i.renderMessage():i.message),null===(e=i.actions)||void 0===e?void 0:e.map(((t,e)=>{let s=!1,u=e=>{if(e.preventDefault(),s)return;s=!0;let N=AO(M.state.field(EO).diagnostics,i);N&&t.apply(M,N.from,N.to)},{name:D}=t,n=N[e]?D.indexOf(N[e]):-1,j=n<0?D:[D.slice(0,n),Kg("u",D.slice(n,n+1)),D.slice(n+1)];return Kg("button",{type:"button",class:"cm-diagnosticAction",onclick:u,onmousedown:u,"aria-label":` Action: ${D}${n<0?"":` (access key "${N[e]})"`}.`},j)})),i.source&&Kg("div",{class:"cm-diagnosticSource"},i.source))}class YO extends Ou{constructor(M){super(),this.diagnostic=M}eq(M){return M.diagnostic==this.diagnostic}toDOM(){return Kg("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class fO{constructor(M,i){this.diagnostic=i,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=mO(M,i,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class WO{constructor(M){this.view=M,this.items=[];this.list=Kg("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:i=>{if(27==i.keyCode)pO(this.view),this.view.focus();else if(38==i.keyCode||33==i.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==i.keyCode||34==i.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==i.keyCode)this.moveSelection(0);else if(35==i.keyCode)this.moveSelection(this.items.length-1);else if(13==i.keyCode)this.view.focus();else{if(!(i.keyCode>=65&&i.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:t}=this.items[this.selectedIndex],e=ZO(t.actions);for(let N=0;N<e.length;N++)if(e[N].toUpperCase().charCodeAt(0)==i.keyCode){let i=AO(this.view.state.field(EO).diagnostics,t);i&&t.actions[N].apply(M,i.from,i.to)}}}i.preventDefault()},onclick:M=>{for(let i=0;i<this.items.length;i++)this.items[i].dom.contains(M.target)&&this.moveSelection(i)}}),this.dom=Kg("div",{class:"cm-panel-lint"},this.list,Kg("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>pO(this.view)},"×")),this.update()}get selectedIndex(){let M=this.view.state.field(EO).selected;if(!M)return-1;for(let i=0;i<this.items.length;i++)if(this.items[i].diagnostic==M.diagnostic)return i;return-1}update(){let{diagnostics:M,selected:i}=this.view.state.field(EO),t=0,e=!1,N=null;for(M.between(0,this.view.state.doc.length,((M,s,{spec:u})=>{let D,n=-1;for(let M=t;M<this.items.length;M++)if(this.items[M].diagnostic==u.diagnostic){n=M;break}n<0?(D=new fO(this.view,u.diagnostic),this.items.splice(t,0,D),e=!0):(D=this.items[n],n>t&&(this.items.splice(t,n-t),e=!0)),i&&D.diagnostic==i.diagnostic?D.dom.hasAttribute("aria-selected")||(D.dom.setAttribute("aria-selected","true"),N=D):D.dom.hasAttribute("aria-selected")&&D.dom.removeAttribute("aria-selected"),t++}));t<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)e=!0,this.items.pop();0==this.items.length&&(this.items.push(new fO(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),e=!0),N?(this.list.setAttribute("aria-activedescendant",N.id),this.view.requestMeasure({key:this,read:()=>({sel:N.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:M,panel:i})=>{let t=i.height/this.list.offsetHeight;M.top<i.top?this.list.scrollTop-=(i.top-M.top)/t:M.bottom>i.bottom&&(this.list.scrollTop+=(M.bottom-i.bottom)/t)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),e&&this.sync()}sync(){let M=this.list.firstChild;function i(){let i=M;M=i.nextSibling,i.remove()}for(let t of this.items)if(t.dom.parentNode==this.list){for(;M!=t.dom;)i();M=t.dom.nextSibling}else this.list.insertBefore(t.dom,M);for(;M;)i()}moveSelection(M){if(this.selectedIndex<0)return;let i=AO(this.view.state.field(EO).diagnostics,this.items[M].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:SO.of(i)})}static open(M){return new WO(M)}}function VO(M){return function(M,i='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${i}>${encodeURIComponent(M)}</svg>')`}(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${M}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const vO=uj.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:VO("#d11")},".cm-lintRange-warning":{backgroundImage:VO("orange")},".cm-lintRange-info":{backgroundImage:VO("#999")},".cm-lintRange-hint":{backgroundImage:VO("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),GO=[EO,uj.decorations.compute([EO],(M=>{let{selected:i,panel:t}=M.field(EO);return i&&t&&i.from!=i.to?Lu.set([QO.range(i.from,i.to)]):Lu.none})),gI(kO,{hideOn:function(M,i){let t=M.startState.doc.lineAt(i.pos);return!(!M.effects.some((M=>M.is(xO)))&&!M.changes.touchesRange(t.from,t.to))}}),vO];class PO{constructor(M,i,t,e,N,s,u,D,n,j=0,I){this.p=M,this.stack=i,this.state=t,this.reducePos=e,this.pos=N,this.score=s,this.buffer=u,this.bufferBase=D,this.curContext=n,this.lookAhead=j,this.parent=I}toString(){return`[${this.stack.filter(((M,i)=>i%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(M,i,t=0){let e=M.parser.context;return new PO(M,[],i,t,t,0,[],0,e?new RO(e,e.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(M,i){this.stack.push(this.state,i,this.bufferBase+this.buffer.length),this.state=M}reduce(M){var i;let t=M>>19,e=65535&M,{parser:N}=this.p,s=N.dynamicPrecedence(e);if(s&&(this.score+=s),0==t)return this.pushState(N.getGoto(this.state,e,!0),this.reducePos),e<N.minRepeatTerm&&this.storeNode(e,this.reducePos,this.reducePos,4,!0),void this.reduceContext(e,this.reducePos);let u=this.stack.length-3*(t-1)-(262144&M?6:0),D=u?this.stack[u-2]:this.p.ranges[0].from,n=this.reducePos-D;n>=2e3&&!(null===(i=this.p.parser.nodeSet.types[e])||void 0===i?void 0:i.isAnonymous)&&(D==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=n):this.p.lastBigReductionSize<n&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=D,this.p.lastBigReductionSize=n));let j=u?this.stack[u-1]:0,I=this.bufferBase+this.buffer.length-j;if(e<N.minRepeatTerm||131072&M){let M=N.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(e,D,M,I+4,!0)}if(262144&M)this.state=this.stack[u];else{let M=this.stack[u-3];this.state=N.getGoto(M,e,!0)}for(;this.stack.length>u;)this.stack.pop();this.reduceContext(e,D)}storeNode(M,i,t,e=4,N=!1){if(0==M&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let M=this,e=this.buffer.length;if(0==e&&M.parent&&(e=M.bufferBase-M.parent.bufferBase,M=M.parent),e>0&&0==M.buffer[e-4]&&M.buffer[e-1]>-1){if(i==t)return;if(M.buffer[e-2]>=i)return void(M.buffer[e-2]=t)}}if(N&&this.pos!=t){let N=this.buffer.length;if(N>0&&0!=this.buffer[N-4])for(;N>0&&this.buffer[N-2]>t;)this.buffer[N]=this.buffer[N-4],this.buffer[N+1]=this.buffer[N-3],this.buffer[N+2]=this.buffer[N-2],this.buffer[N+3]=this.buffer[N-1],N-=4,e>4&&(e-=4);this.buffer[N]=M,this.buffer[N+1]=i,this.buffer[N+2]=t,this.buffer[N+3]=e}else this.buffer.push(M,i,t,e)}shift(M,i,t,e){if(131072&M)this.pushState(65535&M,this.pos);else if(0==(262144&M)){let N=M,{parser:s}=this.p;(e>this.pos||i<=s.maxNode)&&(this.pos=e,s.stateFlag(N,1)||(this.reducePos=e)),this.pushState(N,t),this.shiftContext(i,t),i<=s.maxNode&&this.buffer.push(i,t,e,4)}else this.pos=e,this.shiftContext(i,t),i<=this.p.parser.maxNode&&this.buffer.push(i,t,e,4)}apply(M,i,t,e){65536&M?this.reduce(M):this.shift(M,i,t,e)}useNode(M,i){let t=this.p.reused.length-1;(t<0||this.p.reused[t]!=M)&&(this.p.reused.push(M),t++);let e=this.pos;this.reducePos=this.pos=e+M.length,this.pushState(i,e),this.buffer.push(t,e,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,M,this,this.p.stream.reset(this.pos-M.length)))}split(){let M=this,i=M.buffer.length;for(;i>0&&M.buffer[i-2]>M.reducePos;)i-=4;let t=M.buffer.slice(i),e=M.bufferBase+i;for(;M&&e==M.bufferBase;)M=M.parent;return new PO(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,t,e,this.curContext,this.lookAhead,M)}recoverByDelete(M,i){let t=M<=this.p.parser.maxNode;t&&this.storeNode(M,this.pos,i,4),this.storeNode(0,this.pos,i,t?8:4),this.pos=this.reducePos=i,this.score-=190}canShift(M){for(let i=new BO(this);;){let t=this.p.parser.stateSlot(i.state,4)||this.p.parser.hasAction(i.state,M);if(0==t)return!1;if(0==(65536&t))return!0;i.reduce(t)}}recoverByInsert(M){if(this.stack.length>=300)return[];let i=this.p.parser.nextStates(this.state);if(i.length>8||this.stack.length>=120){let t=[];for(let e,N=0;N<i.length;N+=2)(e=i[N+1])!=this.state&&this.p.parser.hasAction(e,M)&&t.push(i[N],e);if(this.stack.length<120)for(let M=0;t.length<8&&M<i.length;M+=2){let e=i[M+1];t.some(((M,i)=>1&i&&M==e))||t.push(i[M],e)}i=t}let t=[];for(let M=0;M<i.length&&t.length<4;M+=2){let e=i[M+1];if(e==this.state)continue;let N=this.split();N.pushState(e,this.pos),N.storeNode(0,N.pos,N.pos,4,!0),N.shiftContext(i[M],this.pos),N.reducePos=this.pos,N.score-=200,t.push(N)}return t}forceReduce(){let{parser:M}=this.p,i=M.stateSlot(this.state,5);if(0==(65536&i))return!1;if(!M.validAction(this.state,i)){let t=i>>19,e=65535&i,N=this.stack.length-3*t;if(N<0||M.getGoto(this.stack[N],e,!1)<0){let M=this.findForcedReduction();if(null==M)return!1;i=M}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(i),!0}findForcedReduction(){let{parser:M}=this.p,i=[],t=(e,N)=>{if(!i.includes(e))return i.push(e),M.allActions(e,(i=>{if(393216&i);else if(65536&i){let t=(i>>19)-N;if(t>1){let e=65535&i,N=this.stack.length-3*t;if(N>=0&&M.getGoto(this.stack[N],e,!1)>=0)return t<<19|65536|e}}else{let M=t(i,N+1);if(null!=M)return M}}))};return t(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:M}=this.p;return 65535==M.data[M.stateSlot(this.state,1)]&&!M.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(M){if(this.state!=M.state||this.stack.length!=M.stack.length)return!1;for(let i=0;i<this.stack.length;i+=3)if(this.stack[i]!=M.stack[i])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(M){return this.p.parser.dialect.flags[M]}shiftContext(M,i){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,M,this,this.p.stream.reset(i)))}reduceContext(M,i){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,M,this,this.p.stream.reset(i)))}emitContext(){let M=this.buffer.length-1;(M<0||-3!=this.buffer[M])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let M=this.buffer.length-1;(M<0||-4!=this.buffer[M])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(M){if(M!=this.curContext.context){let i=new RO(this.curContext.tracker,M);i.hash!=this.curContext.hash&&this.emitContext(),this.curContext=i}}setLookAhead(M){M>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=M)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class RO{constructor(M,i){this.tracker=M,this.context=i,this.hash=M.strict?M.hash(i):0}}class BO{constructor(M){this.start=M,this.state=M.state,this.stack=M.stack,this.base=this.stack.length}reduce(M){let i=65535&M,t=M>>19;0==t?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(t-1);let e=this.start.p.parser.getGoto(this.stack[this.base-3],i,!0);this.state=e}}class FO{constructor(M,i,t){this.stack=M,this.pos=i,this.index=t,this.buffer=M.buffer,0==this.index&&this.maybeNext()}static create(M,i=M.bufferBase+M.buffer.length){return new FO(M,i,i-M.bufferBase)}maybeNext(){let M=this.stack.parent;null!=M&&(this.index=this.stack.bufferBase-M.bufferBase,this.stack=M,this.buffer=M.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new FO(this.stack,this.pos,this.index)}}function XO(M,i=Uint16Array){if("string"!=typeof M)return M;let t=null;for(let e=0,N=0;e<M.length;){let s=0;for(;;){let i=M.charCodeAt(e++),t=!1;if(126==i){s=65535;break}i>=92&&i--,i>=34&&i--;let N=i-32;if(N>=46&&(N-=46,t=!0),s+=N,t)break;s*=46}t?t[N++]=s:t=new i(s)}return t}class JO{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const HO=new JO;class $O{constructor(M,i){this.input=M,this.ranges=i,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=HO,this.rangeIndex=0,this.pos=this.chunkPos=i[0].from,this.range=i[0],this.end=i[i.length-1].to,this.readNext()}resolveOffset(M,i){let t=this.range,e=this.rangeIndex,N=this.pos+M;for(;N<t.from;){if(!e)return null;let M=this.ranges[--e];N-=t.from-M.to,t=M}for(;i<0?N>t.to:N>=t.to;){if(e==this.ranges.length-1)return null;let M=this.ranges[++e];N+=M.from-t.to,t=M}return N}clipPos(M){if(M>=this.range.from&&M<this.range.to)return M;for(let i of this.ranges)if(i.to>M)return Math.max(M,i.from);return this.end}peek(M){let i,t,e=this.chunkOff+M;if(e>=0&&e<this.chunk.length)i=this.pos+M,t=this.chunk.charCodeAt(e);else{let e=this.resolveOffset(M,1);if(null==e)return-1;if(i=e,i>=this.chunk2Pos&&i<this.chunk2Pos+this.chunk2.length)t=this.chunk2.charCodeAt(i-this.chunk2Pos);else{let M=this.rangeIndex,e=this.range;for(;e.to<=i;)e=this.ranges[++M];this.chunk2=this.input.chunk(this.chunk2Pos=i),i+this.chunk2.length>e.to&&(this.chunk2=this.chunk2.slice(0,e.to-i)),t=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),t}acceptToken(M,i=0){let t=i?this.resolveOffset(i,-1):this.pos;if(null==t||t<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=M,this.token.end=t}acceptTokenTo(M,i){this.token.value=M,this.token.end=i}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:M,chunkPos:i}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=M,this.chunk2Pos=i,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let M=this.input.chunk(this.pos),i=this.pos+M.length;this.chunk=i>this.range.to?M.slice(0,this.range.to-this.pos):M,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(M=1){for(this.chunkOff+=M;this.pos+M>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();M-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=M,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(M,i){if(i?(this.token=i,i.start=M,i.lookAhead=M+1,i.value=i.extended=-1):this.token=HO,this.pos!=M){if(this.pos=M,M==this.end)return this.setDone(),this;for(;M<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;M>=this.range.to;)this.range=this.ranges[++this.rangeIndex];M>=this.chunkPos&&M<this.chunkPos+this.chunk.length?this.chunkOff=M-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(M,i){if(M>=this.chunkPos&&i<=this.chunkPos+this.chunk.length)return this.chunk.slice(M-this.chunkPos,i-this.chunkPos);if(M>=this.chunk2Pos&&i<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(M-this.chunk2Pos,i-this.chunk2Pos);if(M>=this.range.from&&i<=this.range.to)return this.input.read(M,i);let t="";for(let e of this.ranges){if(e.from>=i)break;e.to>M&&(t+=this.input.read(Math.max(e.from,M),Math.min(e.to,i)))}return t}}class _O{constructor(M,i){this.data=M,this.id=i}token(M,i){let{parser:t}=i.p;MT(this.data,M,i,this.id,t.data,t.tokenPrecTable)}}_O.prototype.contextual=_O.prototype.fallback=_O.prototype.extend=!1;class qO{constructor(M,i,t){this.precTable=i,this.elseToken=t,this.data="string"==typeof M?XO(M):M}token(M,i){let t=M.pos,e=0;for(;;){let t=M.next<0,N=M.resolveOffset(1,1);if(MT(this.data,M,i,0,this.data,this.precTable),M.token.value>-1)break;if(null==this.elseToken)return;if(t||e++,null==N)break;M.reset(N,M.token)}e&&(M.reset(t,M.token),M.acceptToken(this.elseToken,e))}}qO.prototype.contextual=_O.prototype.fallback=_O.prototype.extend=!1;class KO{constructor(M,i={}){this.token=M,this.contextual=!!i.contextual,this.fallback=!!i.fallback,this.extend=!!i.extend}}function MT(M,i,t,e,N,s){let u=0,D=1<<e,{dialect:n}=t.p.parser;M:for(;0!=(D&M[u]);){let t=M[u+1];for(let e=u+3;e<t;e+=2)if((M[e+1]&D)>0){let t=M[e];if(n.allows(t)&&(-1==i.token.value||i.token.value==t||tT(t,i.token.value,N,s))){i.acceptToken(t);break}}let e=i.next,j=0,I=M[u+2];if(!(i.next<0&&I>j&&65535==M[t+3*I-3])){for(;j<I;){let N=j+I>>1,s=t+N+(N<<1),D=M[s],n=M[s+1]||65536;if(e<D)I=N;else{if(!(e>=n)){u=M[s+2],i.advance();continue M}j=N+1}}break}u=M[t+3*I-1]}}function iT(M,i,t){for(let e,N=i;65535!=(e=M[N]);N++)if(e==t)return N-i;return-1}function tT(M,i,t,e){let N=iT(t,e,i);return N<0||iT(t,e,M)<N}const eT="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let NT=null;function sT(M,i,t){let e=M.cursor(Ml.IncludeAnonymous);for(e.moveTo(i);;)if(!(t<0?e.childBefore(i):e.childAfter(i)))for(;;){if((t<0?e.to<i:e.from>i)&&!e.type.isError)return t<0?Math.max(0,Math.min(e.to-1,i-25)):Math.min(M.length,Math.max(e.from+1,i+25));if(t<0?e.prevSibling():e.nextSibling())break;if(!e.parent())return t<0?0:M.length}}class uT{constructor(M,i){this.fragments=M,this.nodeSet=i,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let M=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(M){for(this.safeFrom=M.openStart?sT(M.tree,M.from+M.offset,1)-M.offset:M.from,this.safeTo=M.openEnd?sT(M.tree,M.to+M.offset,-1)-M.offset:M.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(M.tree),this.start.push(-M.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(M){if(M<this.nextStart)return null;for(;this.fragment&&this.safeTo<=M;)this.nextFragment();if(!this.fragment)return null;for(;;){let i=this.trees.length-1;if(i<0)return this.nextFragment(),null;let t=this.trees[i],e=this.index[i];if(e==t.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let N=t.children[e],s=this.start[i]+t.positions[e];if(s>M)return this.nextStart=s,null;if(N instanceof il){if(s==M){if(s<this.safeFrom)return null;let M=s+N.length;if(M<=this.safeTo){let i=N.prop(XI.lookAhead);if(!i||M+i<this.fragment.to)return N}}this.index[i]++,s+N.length>=Math.max(this.safeFrom,M)&&(this.trees.push(N),this.start.push(s),this.index.push(0))}else this.index[i]++,this.nextStart=s+N.length}}}class DT{constructor(M,i){this.stream=i,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=M.tokenizers.map((M=>new JO))}getActions(M){let i=0,t=null,{parser:e}=M.p,{tokenizers:N}=e,s=e.stateSlot(M.state,3),u=M.curContext?M.curContext.hash:0,D=0;for(let e=0;e<N.length;e++){if(0==(1<<e&s))continue;let n=N[e],j=this.tokens[e];if((!t||n.fallback)&&((n.contextual||j.start!=M.pos||j.mask!=s||j.context!=u)&&(this.updateCachedToken(j,n,M),j.mask=s,j.context=u),j.lookAhead>j.end+25&&(D=Math.max(j.lookAhead,D)),0!=j.value)){let e=i;if(j.extended>-1&&(i=this.addActions(M,j.extended,j.end,i)),i=this.addActions(M,j.value,j.end,i),!n.extend&&(t=j,i>e))break}}for(;this.actions.length>i;)this.actions.pop();return D&&M.setLookAhead(D),t||M.pos!=this.stream.end||(t=new JO,t.value=M.p.parser.eofTerm,t.start=t.end=M.pos,i=this.addActions(M,t.value,t.end,i)),this.mainToken=t,this.actions}getMainToken(M){if(this.mainToken)return this.mainToken;let i=new JO,{pos:t,p:e}=M;return i.start=t,i.end=Math.min(t+1,e.stream.end),i.value=t==e.stream.end?e.parser.eofTerm:0,i}updateCachedToken(M,i,t){let e=this.stream.clipPos(t.pos);if(i.token(this.stream.reset(e,M),t),M.value>-1){let{parser:i}=t.p;for(let e=0;e<i.specialized.length;e++)if(i.specialized[e]==M.value){let N=i.specializers[e](this.stream.read(M.start,M.end),t);if(N>=0&&t.p.parser.dialect.allows(N>>1)){0==(1&N)?M.value=N>>1:M.extended=N>>1;break}}}else M.value=0,M.end=this.stream.clipPos(e+1)}putAction(M,i,t,e){for(let i=0;i<e;i+=3)if(this.actions[i]==M)return e;return this.actions[e++]=M,this.actions[e++]=i,this.actions[e++]=t,e}addActions(M,i,t,e){let{state:N}=M,{parser:s}=M.p,{data:u}=s;for(let M=0;M<2;M++)for(let D=s.stateSlot(N,M?2:1);;D+=3){if(65535==u[D]){if(1!=u[D+1]){0==e&&2==u[D+1]&&(e=this.putAction(oT(u,D+2),i,t,e));break}D=oT(u,D+2)}u[D]==i&&(e=this.putAction(oT(u,D+1),i,t,e))}return e}}class nT{constructor(M,i,t,e){this.parser=M,this.input=i,this.ranges=e,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new $O(i,e),this.tokens=new DT(M,this.stream),this.topTerm=M.top[1];let{from:N}=e[0];this.stacks=[PO.start(this,M.top[0],N)],this.fragments=t.length&&this.stream.end-N>4*M.bufferLength?new uT(t,M.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let M,i,t=this.stacks,e=this.minStackPos,N=this.stacks=[];if(this.bigReductionCount>300&&1==t.length){let[M]=t;for(;M.forceReduce()&&M.stack.length&&M.stack[M.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;s<t.length;s++){let u=t[s];for(;;){if(this.tokens.mainToken=null,u.pos>e)N.push(u);else{if(this.advanceStack(u,N,t))continue;{M||(M=[],i=[]),M.push(u);let t=this.tokens.getMainToken(u);i.push(t.value,t.end)}}break}}if(!N.length){let i=M&&function(M){let i=null;for(let t of M){let M=t.p.stoppedAt;(t.pos==t.p.stream.end||null!=M&&t.pos>M)&&t.p.parser.stateFlag(t.state,2)&&(!i||i.score<t.score)&&(i=t)}return i}(M);if(i)return eT&&console.log("Finish with "+this.stackID(i)),this.stackToTree(i);if(this.parser.strict)throw eT&&M&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&M){let t=null!=this.stoppedAt&&M[0].pos>this.stoppedAt?M[0]:this.runRecovery(M,i,N);if(t)return eT&&console.log("Force-finish "+this.stackID(t)),this.stackToTree(t.forceAll())}if(this.recovering){let M=1==this.recovering?1:3*this.recovering;if(N.length>M)for(N.sort(((M,i)=>i.score-M.score));N.length>M;)N.pop();N.some((M=>M.reducePos>e))&&this.recovering--}else if(N.length>1){M:for(let M=0;M<N.length-1;M++){let i=N[M];for(let t=M+1;t<N.length;t++){let e=N[t];if(i.sameState(e)||i.buffer.length>500&&e.buffer.length>500){if(!((i.score-e.score||i.buffer.length-e.buffer.length)>0)){N.splice(M--,1);continue M}N.splice(t--,1)}}}N.length>12&&N.splice(12,N.length-12)}this.minStackPos=N[0].pos;for(let M=1;M<N.length;M++)N[M].pos<this.minStackPos&&(this.minStackPos=N[M].pos);return null}stopAt(M){if(null!=this.stoppedAt&&this.stoppedAt<M)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=M}advanceStack(M,i,t){let e=M.pos,{parser:N}=this,s=eT?this.stackID(M)+" -> ":"";if(null!=this.stoppedAt&&e>this.stoppedAt)return M.forceReduce()?M:null;if(this.fragments){let i=M.curContext&&M.curContext.tracker.strict,t=i?M.curContext.hash:0;for(let u=this.fragments.nodeAt(e);u;){let e=this.parser.nodeSet.types[u.type.id]==u.type?N.getGoto(M.state,u.type.id):-1;if(e>-1&&u.length&&(!i||(u.prop(XI.contextHash)||0)==t))return M.useNode(u,e),eT&&console.log(s+this.stackID(M)+` (via reuse of ${N.getName(u.type.id)})`),!0;if(!(u instanceof il)||0==u.children.length||u.positions[0]>0)break;let D=u.children[0];if(!(D instanceof il&&0==u.positions[0]))break;u=D}}let u=N.stateSlot(M.state,4);if(u>0)return M.reduce(u),eT&&console.log(s+this.stackID(M)+` (via always-reduce ${N.getName(65535&u)})`),!0;if(M.stack.length>=8400)for(;M.stack.length>6e3&&M.forceReduce(););let D=this.tokens.getActions(M);for(let u=0;u<D.length;){let n=D[u++],j=D[u++],I=D[u++],l=u==D.length||!t,r=l?M:M.split(),o=this.tokens.mainToken;if(r.apply(n,j,o?o.start:r.pos,I),eT&&console.log(s+this.stackID(r)+` (via ${0==(65536&n)?"shift":`reduce of ${N.getName(65535&n)}`} for ${N.getName(j)} @ ${e}${r==M?"":", split"})`),l)return!0;r.pos>e?i.push(r):t.push(r)}return!1}advanceFully(M,i){let t=M.pos;for(;;){if(!this.advanceStack(M,null,null))return!1;if(M.pos>t)return jT(M,i),!0}}runRecovery(M,i,t){let e=null,N=!1;for(let s=0;s<M.length;s++){let u=M[s],D=i[s<<1],n=i[1+(s<<1)],j=eT?this.stackID(u)+" -> ":"";if(u.deadEnd){if(N)continue;if(N=!0,u.restart(),eT&&console.log(j+this.stackID(u)+" (restarted)"),this.advanceFully(u,t))continue}let I=u.split(),l=j;for(let M=0;I.forceReduce()&&M<10;M++){if(eT&&console.log(l+this.stackID(I)+" (via force-reduce)"),this.advanceFully(I,t))break;eT&&(l=this.stackID(I)+" -> ")}for(let M of u.recoverByInsert(D))eT&&console.log(j+this.stackID(M)+" (via recover-insert)"),this.advanceFully(M,t);this.stream.end>u.pos?(n==u.pos&&(n++,D=0),u.recoverByDelete(D,n),eT&&console.log(j+this.stackID(u)+` (via recover-delete ${this.parser.getName(D)})`),jT(u,t)):(!e||e.score<u.score)&&(e=u)}return e}stackToTree(M){return M.close(),il.build({buffer:FO.create(M),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:M.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(M){let i=(NT||(NT=new WeakMap)).get(M);return i||NT.set(M,i=String.fromCodePoint(this.nextStackID++)),i+M}}function jT(M,i){for(let t=0;t<i.length;t++){let e=i[t];if(e.pos==M.pos&&e.sameState(M))return void(i[t].score<M.score&&(i[t]=M))}i.push(M)}class IT{constructor(M,i,t){this.source=M,this.flags=i,this.disabled=t}allows(M){return!this.disabled||0==this.disabled[M]}}const lT=M=>M;class rT extends zl{constructor(M){if(super(),this.wrappers=[],14!=M.version)throw new RangeError(`Parser version (${M.version}) doesn't match runtime version (14)`);let i=M.nodeNames.split(" ");this.minRepeatTerm=i.length;for(let t=0;t<M.repeatNodeCount;t++)i.push("");let t=Object.keys(M.topRules).map((i=>M.topRules[i][1])),e=[];for(let M=0;M<i.length;M++)e.push([]);function N(M,i,t){e[M].push([i,i.deserialize(String(t))])}if(M.nodeProps)for(let i of M.nodeProps){let M=i[0];"string"==typeof M&&(M=XI[M]);for(let t=1;t<i.length;){let e=i[t++];if(e>=0)N(e,M,i[t++]);else{let s=i[t+-e];for(let u=-e;u>0;u--)N(i[t++],M,s);t++}}}this.nodeSet=new _I(i.map(((i,N)=>$I.define({name:N>=this.minRepeatTerm?void 0:i,id:N,props:e[N],top:t.indexOf(N)>-1,error:0==N,skipped:M.skippedNodes&&M.skippedNodes.indexOf(N)>-1})))),M.propSources&&(this.nodeSet=this.nodeSet.extend(...M.propSources)),this.strict=!1,this.bufferLength=RI;let s=XO(M.tokenData);this.context=M.context,this.specializerSpecs=M.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let M=0;M<this.specializerSpecs.length;M++)this.specialized[M]=this.specializerSpecs[M].term;this.specializers=this.specializerSpecs.map(gT),this.states=XO(M.states,Uint32Array),this.data=XO(M.stateData),this.goto=XO(M.goto),this.maxTerm=M.maxTerm,this.tokenizers=M.tokenizers.map((M=>"number"==typeof M?new _O(s,M):M)),this.topRules=M.topRules,this.dialects=M.dialects||{},this.dynamicPrecedences=M.dynamicPrecedences||null,this.tokenPrecTable=M.tokenPrec,this.termNames=M.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(M,i,t){let e=new nT(this,M,i,t);for(let N of this.wrappers)e=N(e,M,i,t);return e}getGoto(M,i,t=!1){let e=this.goto;if(i>=e[0])return-1;for(let N=e[i+1];;){let i=e[N++],s=1&i,u=e[N++];if(s&&t)return u;for(let t=N+(i>>1);N<t;N++)if(e[N]==M)return u;if(s)return-1}}hasAction(M,i){let t=this.data;for(let e=0;e<2;e++)for(let N,s=this.stateSlot(M,e?2:1);;s+=3){if(65535==(N=t[s])){if(1!=t[s+1]){if(2==t[s+1])return oT(t,s+2);break}N=t[s=oT(t,s+2)]}if(N==i||0==N)return oT(t,s+1)}return 0}stateSlot(M,i){return this.states[6*M+i]}stateFlag(M,i){return(this.stateSlot(M,0)&i)>0}validAction(M,i){return!!this.allActions(M,(M=>M==i||null))}allActions(M,i){let t=this.stateSlot(M,4),e=t?i(t):void 0;for(let t=this.stateSlot(M,1);null==e;t+=3){if(65535==this.data[t]){if(1!=this.data[t+1])break;t=oT(this.data,t+2)}e=i(oT(this.data,t+1))}return e}nextStates(M){let i=[];for(let t=this.stateSlot(M,1);;t+=3){if(65535==this.data[t]){if(1!=this.data[t+1])break;t=oT(this.data,t+2)}if(0==(1&this.data[t+2])){let M=this.data[t+1];i.some(((i,t)=>1&t&&i==M))||i.push(this.data[t],M)}}return i}configure(M){let i=Object.assign(Object.create(rT.prototype),this);if(M.props&&(i.nodeSet=this.nodeSet.extend(...M.props)),M.top){let t=this.topRules[M.top];if(!t)throw new RangeError(`Invalid top rule name ${M.top}`);i.top=t}return M.tokenizers&&(i.tokenizers=this.tokenizers.map((i=>{let t=M.tokenizers.find((M=>M.from==i));return t?t.to:i}))),M.specializers&&(i.specializers=this.specializers.slice(),i.specializerSpecs=this.specializerSpecs.map(((t,e)=>{let N=M.specializers.find((M=>M.from==t.external));if(!N)return t;let s=Object.assign(Object.assign({},t),{external:N.to});return i.specializers[e]=gT(s),s}))),M.contextTracker&&(i.context=M.contextTracker),M.dialect&&(i.dialect=this.parseDialect(M.dialect)),null!=M.strict&&(i.strict=M.strict),M.wrap&&(i.wrappers=i.wrappers.concat(M.wrap)),null!=M.bufferLength&&(i.bufferLength=M.bufferLength),i}hasWrappers(){return this.wrappers.length>0}getName(M){return this.termNames?this.termNames[M]:String(M<=this.maxNode&&this.nodeSet.types[M].name||M)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(M){let i=this.dynamicPrecedences;return null==i?0:i[M]||0}parseDialect(M){let i=Object.keys(this.dialects),t=i.map((()=>!1));if(M)for(let e of M.split(" ")){let M=i.indexOf(e);M>=0&&(t[M]=!0)}let e=null;for(let M=0;M<i.length;M++)if(!t[M])for(let t,N=this.dialects[i[M]];65535!=(t=this.data[N++]);)(e||(e=new Uint8Array(this.maxTerm+1)))[t]=1;return new IT(M,t,e)}static deserialize(M){return new rT(M)}}function oT(M,i){return M[i]|M[i+1]<<16}function gT(M){if(M.external){let i=M.extend?1:0;return(t,e)=>M.external(t,e)<<1|i}return M.get}const cT=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],aT=new class{constructor(M){this.start=M.start,this.shift=M.shift||lT,this.reduce=M.reduce||lT,this.reuse=M.reuse||lT,this.hash=M.hash||(()=>0),this.strict=!1!==M.strict}}({start:!1,shift:(M,i)=>4==i||5==i||312==i?M:313==i,strict:!1}),OT=new KO(((M,i)=>{let{next:t}=M;(125==t||-1==t||i.context)&&M.acceptToken(310)}),{contextual:!0,fallback:!0}),TT=new KO(((M,i)=>{let t,{next:e}=M;cT.indexOf(e)>-1||(47!=e||47!=(t=M.peek(1))&&42!=t)&&(125==e||59==e||-1==e||i.context||M.acceptToken(309))}),{contextual:!0}),LT=new KO(((M,i)=>{let{next:t}=M;if((43==t||45==t)&&(M.advance(),t==M.next)){M.advance();let t=!i.context&&i.canShift(1);M.acceptToken(t?1:2)}}),{contextual:!0});function hT(M,i){return M>=65&&M<=90||M>=97&&M<=122||95==M||M>=192||!i&&M>=48&&M<=57}const zT=new KO(((M,i)=>{if(60!=M.next||!i.dialectEnabled(0))return;if(M.advance(),47==M.next)return;let t=0;for(;cT.indexOf(M.next)>-1;)M.advance(),t++;if(hT(M.next,!0)){for(M.advance(),t++;hT(M.next,!1);)M.advance(),t++;for(;cT.indexOf(M.next)>-1;)M.advance(),t++;if(44==M.next)return;for(let i=0;;i++){if(7==i){if(!hT(M.next,!0))return;break}if(M.next!="extends".charCodeAt(i))break;M.advance(),t++}}M.acceptToken(3,-t)})),yT=Sl({"get set async static":Jl.modifier,"for while do if else switch try catch finally return throw break continue default case":Jl.controlKeyword,"in of await yield void typeof delete instanceof":Jl.operatorKeyword,"let var const using function class extends":Jl.definitionKeyword,"import export from":Jl.moduleKeyword,"with debugger as new":Jl.keyword,TemplateString:Jl.special(Jl.string),super:Jl.atom,BooleanLiteral:Jl.bool,this:Jl.self,null:Jl.null,Star:Jl.modifier,VariableName:Jl.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Jl.function(Jl.variableName),VariableDefinition:Jl.definition(Jl.variableName),Label:Jl.labelName,PropertyName:Jl.propertyName,PrivatePropertyName:Jl.special(Jl.propertyName),"CallExpression/MemberExpression/PropertyName":Jl.function(Jl.propertyName),"FunctionDeclaration/VariableDefinition":Jl.function(Jl.definition(Jl.variableName)),"ClassDeclaration/VariableDefinition":Jl.definition(Jl.className),PropertyDefinition:Jl.definition(Jl.propertyName),PrivatePropertyDefinition:Jl.definition(Jl.special(Jl.propertyName)),UpdateOp:Jl.updateOperator,"LineComment Hashbang":Jl.lineComment,BlockComment:Jl.blockComment,Number:Jl.number,String:Jl.string,Escape:Jl.escape,ArithOp:Jl.arithmeticOperator,LogicOp:Jl.logicOperator,BitOp:Jl.bitwiseOperator,CompareOp:Jl.compareOperator,RegExp:Jl.regexp,Equals:Jl.definitionOperator,Arrow:Jl.function(Jl.punctuation),": Spread":Jl.punctuation,"( )":Jl.paren,"[ ]":Jl.squareBracket,"{ }":Jl.brace,"InterpolationStart InterpolationEnd":Jl.special(Jl.brace),".":Jl.derefOperator,", ;":Jl.separator,"@":Jl.meta,TypeName:Jl.typeName,TypeDefinition:Jl.definition(Jl.typeName),"type enum interface implements namespace module declare":Jl.definitionKeyword,"abstract global Privacy readonly override":Jl.modifier,"is keyof unique infer":Jl.operatorKeyword,JSXAttributeValue:Jl.attributeValue,JSXText:Jl.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Jl.angleBracket,"JSXIdentifier JSXNameSpacedName":Jl.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Jl.attributeName,"JSXBuiltin/JSXIdentifier":Jl.standard(Jl.tagName)}),dT={__proto__:null,export:18,as:23,from:31,default:34,async:39,function:40,extends:52,this:56,true:64,false:64,null:76,void:80,typeof:84,super:102,new:136,delete:152,yield:161,await:165,class:170,public:227,private:227,protected:227,readonly:229,instanceof:248,satisfies:251,in:252,const:254,import:286,keyof:339,unique:343,infer:349,is:385,abstract:405,implements:407,type:409,let:412,var:414,using:417,interface:423,enum:427,namespace:433,module:435,declare:439,global:443,for:462,of:471,while:474,with:478,do:482,if:486,else:488,switch:492,case:498,try:504,catch:508,finally:512,return:516,throw:520,break:524,continue:528,debugger:532},AT={__proto__:null,async:123,get:125,set:127,declare:187,public:189,private:189,protected:189,static:191,abstract:193,override:195,readonly:201,accessor:203,new:389},xT={__proto__:null,"<":143},wT=rT.deserialize({version:14,states:"$<UO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ08SO'#ChO+RO!bO'#CiO+aO#tO'#CiO+oO?MpO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DyO0fQ^O'#EROOQ07b'#EZ'#EZO1PQWO'#EWOOQO'#El'#ElOOQO'#Ie'#IeO1XQWO'#GmO1dQWO'#EkO1iQWO'#EkO3kQ08SO'#JiO6[Q08SO'#JjO6xQWO'#FZO6}Q&jO'#FqOOQ07b'#Fc'#FcO7YO,YO'#FcO7hQ7[O'#FxO9UQWO'#FwOOQ07b'#Jj'#JjOOQ07`'#Ji'#JiO9ZQWO'#GqOOQU'#KU'#KUO9fQWO'#IRO9kQ07hO'#ISOOQU'#JW'#JWOOQU'#IW'#IWQ`Q^OOO`Q^OOO%[Q^O'#DqO9sQ^O'#D}O9zQ^O'#EPO9aQWO'#GmO:RQ7[O'#CnO:aQWO'#EjO:lQWO'#EuO:qQ7[O'#FbO;`QWO'#GmOOQO'#KV'#KVO;eQWO'#KVO;sQWO'#GuO;sQWO'#GvO;sQWO'#GxO9aQWO'#G{O<jQWO'#HOO>RQWO'#CdO>cQWO'#H[O>kQWO'#HbO>kQWO'#HdO`Q^O'#HfO>kQWO'#HhO>kQWO'#HkO>pQWO'#HqO>uQ07iO'#HwO%[Q^O'#HyO?QQ07iO'#H{O?]Q07iO'#H}O9kQ07hO'#IPO?hQ08SO'#ChO@jQ`O'#DiQOQWOOO%[Q^O'#EPOAQQWO'#ESO:RQ7[O'#EjOA]QWO'#EjOAhQpO'#FbOOQU'#Cf'#CfOOQ07`'#Dn'#DnOOQ07`'#Jm'#JmO%[Q^O'#JmOOQO'#Jq'#JqOOQO'#Ib'#IbOBhQ`O'#EcOOQ07`'#Eb'#EbOCdQ07pO'#EcOCnQ`O'#EVOOQO'#Jp'#JpODSQ`O'#JqOEaQ`O'#EVOCnQ`O'#EcPEnO!0LbO'#CaPOOO)CDu)CDuOOOO'#IX'#IXOEyO!bO,59TOOQ07b,59T,59TOOOO'#IY'#IYOFXO#tO,59TO%[Q^O'#D`OOOO'#I['#I[OFgO?MpO,59xOOQ07b,59x,59xOFuQ^O'#I]OGYQWO'#JkOI[QrO'#JkO+}Q^O'#JkOIcQWO,5:OOIyQWO'#ElOJWQWO'#JyOJcQWO'#JxOJcQWO'#JxOJkQWO,5;YOJpQWO'#JwOOQ07f,5:Z,5:ZOJwQ^O,5:ZOLxQ08SO,5:eOMiQWO,5:mONSQ07hO'#JvONZQWO'#JuO9ZQWO'#JuONoQWO'#JuONwQWO,5;XON|QWO'#JuO!#UQrO'#JjOOQ07b'#Ch'#ChO%[Q^O'#ERO!#tQpO,5:rOOQO'#Jr'#JrOOQO-E<c-E<cO9aQWO,5=XO!$[QWO,5=XO!$aQ^O,5;VO!&dQ7[O'#EgO!'}QWO,5;VO!)mQ7[O'#DsO!)tQ^O'#DxO!*OQ`O,5;`O!*WQ`O,5;`O%[Q^O,5;`OOQU'#FR'#FROOQU'#FT'#FTO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aOOQU'#FX'#FXO!*fQ^O,5;rOOQ07b,5;w,5;wOOQ07b,5;x,5;xO!,iQWO,5;xOOQ07b,5;y,5;yO%[Q^O'#IiO!,qQ07hO,5<eO!&dQ7[O,5;aO!-`Q7[O,5;aO%[Q^O,5;uO!-gQ&jO'#FgO!.dQ&jO'#J}O!.OQ&jO'#J}O!.kQ&jO'#J}OOQO'#J}'#J}O!/PQ&jO,5<POOOS,5<],5<]O!/bQ^O'#FsOOOS'#Ih'#IhO7YO,YO,5;}O!/iQ&jO'#FuOOQ07b,5;},5;}O!0YQMhO'#CuOOQ07b'#Cy'#CyO!0mQWO'#CyO!0rO?MpO'#C}O!1`Q7[O,5<bO!1gQWO,5<dO!3SQ!LQO'#GSO!3aQWO'#GTO!3fQWO'#GTO!3kQ!LQO'#GXO!4jQ`O'#G]OOQO'#Gh'#GhO!(SQ7[O'#GgOOQO'#Gj'#GjO!(SQ7[O'#GiO!5]QMhO'#JdOOQ07b'#Jd'#JdO!5gQWO'#JcO!5uQWO'#JbO!5}QWO'#CtOOQ07b'#Cw'#CwOOQ07b'#DR'#DROOQ07b'#DT'#DTO1SQWO'#DVO!(SQ7[O'#FzO!(SQ7[O'#F|O!6VQWO'#GOO!6[QWO'#GPO!3fQWO'#GVO!(SQ7[O'#G[O!6aQWO'#EmO!7OQWO,5<cOOQ07`'#Cq'#CqO!7WQWO'#EnO!8QQ`O'#EoOOQ07`'#Jw'#JwO!8XQ07hO'#KWO9kQ07hO,5=]O`Q^O,5>mOOQU'#J`'#J`OOQU,5>n,5>nOOQU-E<U-E<UO!:ZQ08SO,5:]O!<wQ08SO,5:iO%[Q^O,5:iO!?bQ08SO,5:kOOQO,5@q,5@qO!@RQ7[O,5=XO!@aQ07hO'#JaO9UQWO'#JaO!@rQ07hO,59YO!@}Q`O,59YO!AVQ7[O,59YO:RQ7[O,59YO!AbQWO,5;VO!AjQWO'#HZO!BOQWO'#KZO%[Q^O,5;zO!7{Q`O,5;|O!BWQWO,5=tO!B]QWO,5=tO!BbQWO,5=tO9kQ07hO,5=tO;sQWO,5=dOOQO'#Cu'#CuO!BpQ`O,5=aO!BxQ7[O,5=bO!CTQWO,5=dO!CYQpO,5=gO!CbQWO'#KVO>pQWO'#HQO9aQWO'#HSO!CgQWO'#HSO:RQ7[O'#HUO!ClQWO'#HUOOQU,5=j,5=jO!CqQWO'#HVO!DSQWO'#CnO!DXQWO,59OO!DcQWO,59OO!FhQ^O,59OOOQU,59O,59OO!FxQ07hO,59OO%[Q^O,59OO!ITQ^O'#H^OOQU'#H_'#H_OOQU'#H`'#H`O`Q^O,5=vO!IkQWO,5=vO`Q^O,5=|O`Q^O,5>OO!IpQWO,5>QO`Q^O,5>SO!IuQWO,5>VO!IzQ^O,5>]OOQU,5>c,5>cO%[Q^O,5>cO9kQ07hO,5>eOOQU,5>g,5>gO!NUQWO,5>gOOQU,5>i,5>iO!NUQWO,5>iOOQU,5>k,5>kO!NZQ`O'#D[O%[Q^O'#JmO!NxQ`O'#JmO# gQ`O'#DjO# xQ`O'#DjO#$ZQ^O'#DjO#$bQWO'#JlO#$jQWO,5:TO#$oQWO'#EpO#$}QWO'#JzO#%VQWO,5;ZO#%[Q`O'#DjO#%iQ`O'#EUOOQ07b,5:n,5:nO%[Q^O,5:nO#%pQWO,5:nO>pQWO,5;UO!@}Q`O,5;UO!AVQ7[O,5;UO:RQ7[O,5;UO#%xQWO,5@XO#%}Q$ISO,5:rOOQO-E<`-E<`O#'TQ07pO,5:}OCnQ`O,5:qO#'_Q`O,5:qOCnQ`O,5:}O!@rQ07hO,5:qOOQ07`'#Ef'#EfOOQO,5:},5:}O%[Q^O,5:}O#'lQ07hO,5:}O#'wQ07hO,5:}O!@}Q`O,5:qOOQO,5;T,5;TO#(VQ07hO,5:}POOO'#IV'#IVP#(kO!0LbO,58{POOO,58{,58{OOOO-E<V-E<VOOQ07b1G.o1G.oOOOO-E<W-E<WO#(vQpO,59zOOOO-E<Y-E<YOOQ07b1G/d1G/dO#({QrO,5>wO+}Q^O,5>wOOQO,5>},5>}O#)VQ^O'#I]OOQO-E<Z-E<ZO#)dQWO,5@VO#)lQrO,5@VO#)sQWO,5@dOOQ07b1G/j1G/jO%[Q^O,5@eO#){QWO'#IcOOQO-E<a-E<aO#)sQWO,5@dOOQ07`1G0t1G0tOOQ07f1G/u1G/uOOQ07f1G0X1G0XO%[Q^O,5@bO#*aQ07hO,5@bO#*rQ07hO,5@bO#*yQWO,5@aO9ZQWO,5@aO#+RQWO,5@aO#+aQWO'#IfO#*yQWO,5@aOOQ07`1G0s1G0sO!*OQ`O,5:tO!*ZQ`O,5:tOOQO,5:v,5:vO#,RQWO,5:vO#,ZQ7[O1G2sO9aQWO1G2sOOQ07b1G0q1G0qO#,iQ08SO1G0qO#-nQ08QO,5;ROOQ07b'#GR'#GRO#.[Q08SO'#JdO!$aQ^O1G0qO#0dQ7[O'#JnO#0nQWO,5:_O#0sQrO'#JoO%[Q^O'#JoO#0}QWO,5:dOOQ07b'#D['#D[OOQ07b1G0z1G0zO%[Q^O1G0zOOQ07b1G1d1G1dO#1SQWO1G0zO#3kQ08SO1G0{O#3rQ08SO1G0{O#6]Q08SO1G0{O#6dQ08SO1G0{O#8nQ08SO1G0{O#9UQ08SO1G0{O#<OQ08SO1G0{O#<VQ08SO1G0{O#>jQ08SO1G0{O#>wQ08SO1G0{O#@uQ08SO1G0{O#CuQ(CYO'#ChO#EsQ(CYO1G1^O#EzQ(CYO'#JjO!,lQWO1G1dO#F[Q08SO,5?TOOQ07`-E<g-E<gO#GOQ08SO1G0{OOQ07b1G0{1G0{O#IZQ08SO1G1aO#I}Q&jO,5<TO#JVQ&jO,5<UO#J_Q&jO'#FlO#JvQWO'#FkOOQO'#KO'#KOOOQO'#Ig'#IgO#J{Q&jO1G1kOOQ07b1G1k1G1kOOOS1G1v1G1vO#K^Q(CYO'#JiO#KhQWO,5<_O!*fQ^O,5<_OOOS-E<f-E<fOOQ07b1G1i1G1iO#KmQ`O'#J}OOQ07b,5<a,5<aO#KuQ`O,5<aOOQ07b,59e,59eO!&dQ7[O'#DPOOOO'#IZ'#IZO#KzO?MpO,59iOOQ07b,59i,59iO%[Q^O1G1|O!6[QWO'#IkO#LVQ7[O,5<uOOQ07b,5<r,5<rO!(SQ7[O'#InO#LuQ7[O,5=RO!(SQ7[O'#IpO#MhQ7[O,5=TO!&dQ7[O,5=VOOQO1G2O1G2OO#MrQpO'#CqO#NVQpO,5<nO#N^QWO'#KRO9aQWO'#KRO#NlQWO,5<pO!(SQ7[O,5<oO#NqQWO'#GUO#N|QWO,5<oO$ RQpO'#GRO$ `QpO'#KSO$ jQWO'#KSO!&dQ7[O'#KSO$ oQWO,5<sO$ tQ`O'#G^O!4eQ`O'#G^O$!VQWO'#G`O$![QWO'#GbO!3fQWO'#GeO$!aQ07hO'#ImO$!lQ`O,5<wOOQ07f,5<w,5<wO$!sQ`O'#G^O$#RQ`O'#G_O$#ZQ`O'#G_O$#`Q7[O,5=RO$#pQ7[O,5=TOOQ07b,5=W,5=WO!(SQ7[O,5?}O!(SQ7[O,5?}O$$QQWO'#IrO$$]QWO,5?|O$$eQWO,59`O$%UQ7[O,59qOOQ07b,59q,59qO$%wQ7[O,5<fO$&jQ7[O,5<hO@bQWO,5<jOOQ07b,5<k,5<kO$&tQWO,5<qO$&yQ7[O,5<vO$'ZQWO'#JuO!$aQ^O1G1}O$'`QWO1G1}O9ZQWO'#JxO9ZQWO'#EpO%[Q^O'#EpO9ZQWO'#ItO$'eQ07hO,5@rOOQU1G2w1G2wOOQU1G4X1G4XOOQ07b1G/w1G/wO!,iQWO1G/wO$)jQ08SO1G0TOOQU1G2s1G2sO!&dQ7[O1G2sO%[Q^O1G2sO#,^QWO1G2sO$+nQ7[O'#EgOOQ07`,5?{,5?{O$+xQ07hO,5?{OOQU1G.t1G.tO!@rQ07hO1G.tO!@}Q`O1G.tO!AVQ7[O1G.tO$,ZQWO1G0qO$,`QWO'#ChO$,kQWO'#K[O$,sQWO,5=uO$,xQWO'#K[O$,}QWO'#K[O$-]QWO'#IzO$-kQWO,5@uO$-sQrO1G1fOOQ07b1G1h1G1hO9aQWO1G3`O@bQWO1G3`O$-zQWO1G3`O$.PQWO1G3`OOQU1G3`1G3`O!CTQWO1G3OO!&dQ7[O1G2{O$.UQWO1G2{OOQU1G2|1G2|O!&dQ7[O1G2|O$.ZQWO1G2|O$.cQ`O'#GzOOQU1G3O1G3OO!4eQ`O'#IvO!CYQpO1G3ROOQU1G3R1G3ROOQU,5=l,5=lO$.kQ7[O,5=nO9aQWO,5=nO$![QWO,5=pO9UQWO,5=pO!@}Q`O,5=pO!AVQ7[O,5=pO:RQ7[O,5=pO$.yQWO'#KYO$/UQWO,5=qOOQU1G.j1G.jO$/ZQ07hO1G.jO@bQWO1G.jO$/fQWO1G.jO9kQ07hO1G.jO$1kQrO,5@wO$1{QWO,5@wO9ZQWO,5@wO$2WQ^O,5=xO$2_QWO,5=xOOQU1G3b1G3bO`Q^O1G3bOOQU1G3h1G3hOOQU1G3j1G3jO>kQWO1G3lO$2dQ^O1G3nO$6hQ^O'#HmOOQU1G3q1G3qO$6uQWO'#HsO>pQWO'#HuOOQU1G3w1G3wO$6}Q^O1G3wO9kQ07hO1G3}OOQU1G4P1G4POOQ07`'#GY'#GYO9kQ07hO1G4RO9kQ07hO1G4TO$;UQWO,5@XO!*fQ^O,5;[O9ZQWO,5;[O>pQWO,5:UO!*fQ^O,5:UO!@}Q`O,5:UO$;ZQ(CYO,5:UOOQO,5;[,5;[O$;eQ`O'#I^O$;{QWO,5@WOOQ07b1G/o1G/oO$<TQ`O'#IdO$<_QWO,5@fOOQ07`1G0u1G0uO# xQ`O,5:UOOQO'#Ia'#IaO$<gQ`O,5:pOOQ07f,5:p,5:pO#%sQWO1G0YOOQ07b1G0Y1G0YO%[Q^O1G0YOOQ07b1G0p1G0pO>pQWO1G0pO!@}Q`O1G0pO!AVQ7[O1G0pOOQ07`1G5s1G5sO!@rQ07hO1G0]OOQO1G0i1G0iO%[Q^O1G0iO$<nQ07hO1G0iO$<yQ07hO1G0iO!@}Q`O1G0]OCnQ`O1G0]O$=XQ07hO1G0iOOQO1G0]1G0]O$=mQ08SO1G0iPOOO-E<T-E<TPOOO1G.g1G.gOOOO1G/f1G/fO$=wQpO,5<eO$>PQrO1G4cOOQO1G4i1G4iO%[Q^O,5>wO$>ZQWO1G5qO$>cQWO1G6OO$>kQrO1G6PO9ZQWO,5>}O$>uQ08SO1G5|O%[Q^O1G5|O$?VQ07hO1G5|O$?hQWO1G5{O$?hQWO1G5{O9ZQWO1G5{O$?pQWO,5?QO9ZQWO,5?QOOQO,5?Q,5?QO$@UQWO,5?QO$'ZQWO,5?QOOQO-E<d-E<dOOQO1G0`1G0`OOQO1G0b1G0bO!,lQWO1G0bOOQU7+(_7+(_O!&dQ7[O7+(_O%[Q^O7+(_O$@dQWO7+(_O$@oQ7[O7+(_O$@}Q08SO,5=RO$CYQ08SO,5=TO$EeQ08SO,5=RO$GvQ08SO,5=TO$JXQ08SO,59qO$LaQ08SO,5<fO$NlQ08SO,5<hO%!wQ08SO,5<vOOQ07b7+&]7+&]O%%YQ08SO7+&]O%%|Q7[O'#I_O%&WQWO,5@YOOQ07b1G/y1G/yO%&`Q^O'#I`O%&mQWO,5@ZO%&uQrO,5@ZOOQ07b1G0O1G0OO%'PQWO7+&fOOQ07b7+&f7+&fO%'UQ(CYO,5:eO%[Q^O7+&xO%'`Q(CYO,5:]O%'mQ(CYO,5:iO%'wQ(CYO,5:kOOQ07b7+'O7+'OOOQO1G1o1G1oOOQO1G1p1G1pO%(RQtO,5<WO!*fQ^O,5<VOOQO-E<e-E<eOOQ07b7+'V7+'VOOOS7+'b7+'bOOOS1G1y1G1yO%(^QWO1G1yOOQ07b1G1{1G1{O%(cQpO,59kOOOO-E<X-E<XOOQ07b1G/T1G/TO%(jQ08SO7+'hOOQ07b,5?V,5?VO%)^QpO,5?VOOQ07b1G2a1G2aP!&dQ7[O'#IkPOQ07b-E<i-E<iO%)|Q7[O,5?YOOQ07b-E<l-E<lO%*oQ7[O,5?[OOQ07b-E<n-E<nO%*yQpO1G2qOOQ07b1G2Y1G2YO%+QQWO'#IjO%+`QWO,5@mO%+`QWO,5@mO%+hQWO,5@mO%+sQWO,5@mOOQO1G2[1G2[O%,RQ7[O1G2ZO!(SQ7[O1G2ZO%,cQ!LQO'#IlO%,sQWO,5@nO!&dQ7[O,5@nO%,{QpO,5@nOOQ07b1G2_1G2_OOQ07`,5<x,5<xOOQ07`,5<y,5<yO$'ZQWO,5<yOC_QWO,5<yO!@}Q`O,5<xOOQO'#Ga'#GaO%-VQWO,5<zOOQ07`,5<|,5<|O$'ZQWO,5=POOQO,5?X,5?XOOQO-E<k-E<kOOQ07f1G2c1G2cO!4eQ`O,5<xO%-_QWO,5<yO$!VQWO,5<zO!4eQ`O,5<yO!(SQ7[O'#InO%.RQ7[O1G2mO!(SQ7[O'#IpO%.tQ7[O1G2oO%/OQ7[O1G5iO%/YQ7[O1G5iOOQO,5?^,5?^OOQO-E<p-E<pOOQO1G.z1G.zO!7{Q`O,59sO%[Q^O,59sO%/gQWO1G2UO!(SQ7[O1G2]O%/lQ08SO7+'iOOQ07b7+'i7+'iO!$aQ^O7+'iO%0`QWO,5;[OOQ07`,5?`,5?`OOQ07`-E<r-E<rOOQ07b7+%c7+%cO%0eQpO'#KTO#%sQWO7+(_O%0oQrO7+(_O$@gQWO7+(_O%0vQ08QO'#ChO%1ZQ08QO,5<}O%1{QWO,5<}OOQ07`1G5g1G5gOOQU7+$`7+$`O!@rQ07hO7+$`O!@}Q`O7+$`O!$aQ^O7+&]O%2QQWO'#IyO%2iQWO,5@vOOQO1G3a1G3aO9aQWO,5@vO%2iQWO,5@vO%2qQWO,5@vOOQO,5?f,5?fOOQO-E<x-E<xOOQ07b7+'Q7+'QO%2vQWO7+(zO9kQ07hO7+(zO9aQWO7+(zO@bQWO7+(zOOQU7+(j7+(jO%2{Q08QO7+(gO!&dQ7[O7+(gO%3VQpO7+(hOOQU7+(h7+(hO!&dQ7[O7+(hO%3^QWO'#KXO%3iQWO,5=fOOQO,5?b,5?bOOQO-E<t-E<tOOQU7+(m7+(mO%4xQ`O'#HTOOQU1G3Y1G3YO!&dQ7[O1G3YO%[Q^O1G3YO%5PQWO1G3YO%5[Q7[O1G3YO9kQ07hO1G3[O$![QWO1G3[O9UQWO1G3[O!@}Q`O1G3[O!AVQ7[O1G3[O%5jQWO'#IxO%6OQWO,5@tO%6WQ`O,5@tOOQ07`1G3]1G3]OOQU7+$U7+$UO@bQWO7+$UO9kQ07hO7+$UO%6cQWO7+$UO%[Q^O1G6cO%[Q^O1G6dO%6hQ07hO1G6cO%6rQ^O1G3dO%6yQWO1G3dO%7OQ^O1G3dOOQU7+(|7+(|O9kQ07hO7+)WO`Q^O7+)YOOQU'#K_'#K_OOQU'#I{'#I{O%7VQ^O,5>XOOQU,5>X,5>XO%[Q^O'#HnO%7dQWO'#HpOOQU,5>_,5>_O9ZQWO,5>_OOQU,5>a,5>aOOQU7+)c7+)cOOQU7+)i7+)iOOQU7+)m7+)mOOQU7+)o7+)oO%7iQ`O1G5sO%7}Q(CYO1G0vO%8XQWO1G0vOOQO1G/p1G/pO%8dQ(CYO1G/pO>pQWO1G/pO!*fQ^O'#DjOOQO,5>x,5>xOOQO-E<[-E<[OOQO,5?O,5?OOOQO-E<b-E<bO!@}Q`O1G/pOOQO-E<_-E<_OOQ07f1G0[1G0[OOQ07b7+%t7+%tO#%sQWO7+%tOOQ07b7+&[7+&[O>pQWO7+&[O!@}Q`O7+&[OOQO7+%w7+%wO$=mQ08SO7+&TOOQO7+&T7+&TO%[Q^O7+&TO%8nQ07hO7+&TO!@rQ07hO7+%wO!@}Q`O7+%wO%8yQ07hO7+&TO%9XQ08SO7++hO%[Q^O7++hO%9iQWO7++gO%9iQWO7++gOOQO1G4l1G4lO9ZQWO1G4lO%9qQWO1G4lOOQO7+%|7+%|O#%sQWO<<KyO%0oQrO<<KyO%:PQWO<<KyOOQU<<Ky<<KyO!&dQ7[O<<KyO%[Q^O<<KyO%:XQWO<<KyO%:dQ08SO,5?YO%<oQ08SO,5?[O%>zQ08SO1G2ZO%A]Q08SO1G2mO%ChQ08SO1G2oO%EsQ7[O,5>yOOQO-E<]-E<]O%E}QrO,5>zO%[Q^O,5>zOOQO-E<^-E<^O%FXQWO1G5uOOQ07b<<JQ<<JQO%FaQ(CYO1G0qO%HkQ(CYO1G0{O%HrQ(CYO1G0{O%JvQ(CYO1G0{O%J}Q(CYO1G0{O%LrQ(CYO1G0{O%MYQ(CYO1G0{O& mQ(CYO1G0{O& tQ(CYO1G0{O&#rQ(CYO1G0{O&$PQ(CYO1G0{O&%}Q(CYO1G0{O&&bQ08SO<<JdO&'gQ(CYO1G0{O&)]Q(CYO'#JdO&+`Q(CYO1G1aO&+mQ(CYO1G0TO!*fQ^O'#FnOOQO'#KP'#KPOOQO1G1r1G1rO&+wQWO1G1qO&+|Q(CYO,5?TOOOS7+'e7+'eOOOO1G/V1G/VOOQ07b1G4q1G4qO!(SQ7[O7+(]O&,WQWO,5?UO9aQWO,5?UOOQO-E<h-E<hO&,fQWO1G6XO&,fQWO1G6XO&,nQWO1G6XO&,yQ7[O7+'uO&-ZQpO,5?WO&-eQWO,5?WO!&dQ7[O,5?WOOQO-E<j-E<jO&-jQpO1G6YO&-tQWO1G6YOOQ07`1G2e1G2eO$'ZQWO1G2eOOQ07`1G2d1G2dO&-|QWO1G2fO!&dQ7[O1G2fOOQ07`1G2k1G2kO!@}Q`O1G2dOC_QWO1G2eO&.RQWO1G2fO&.ZQWO1G2eO&.}Q7[O,5?YOOQ07b-E<m-E<mO&/pQ7[O,5?[OOQ07b-E<o-E<oO!(SQ7[O7++TOOQ07b1G/_1G/_O&/zQWO1G/_OOQ07b7+'p7+'pO&0PQ7[O7+'wO&0aQ08SO<<KTOOQ07b<<KT<<KTO&1TQWO1G0vO!&dQ7[O'#IsO&1YQWO,5@oO!&dQ7[O1G2iOOQU<<Gz<<GzO!@rQ07hO<<GzO&1bQ08SO<<IwOOQ07b<<Iw<<IwOOQO,5?e,5?eO&2UQWO,5?eO&2ZQWO,5?eOOQO-E<w-E<wO&2iQWO1G6bO&2iQWO1G6bO9aQWO1G6bO@bQWO<<LfOOQU<<Lf<<LfO&2qQWO<<LfO9kQ07hO<<LfOOQU<<LR<<LRO%2{Q08QO<<LROOQU<<LS<<LSO%3VQpO<<LSO&2vQ`O'#IuO&3RQWO,5@sO!*fQ^O,5@sOOQU1G3Q1G3QO&3ZQ^O'#JmOOQO'#Iw'#IwO9kQ07hO'#IwO&3eQ`O,5=oOOQU,5=o,5=oO&3lQ`O'#EcO&4QQWO7+(tO&4VQWO7+(tOOQU7+(t7+(tO!&dQ7[O7+(tO%[Q^O7+(tO&4_QWO7+(tOOQU7+(v7+(vO9kQ07hO7+(vO$![QWO7+(vO9UQWO7+(vO!@}Q`O7+(vO&4jQWO,5?dOOQO-E<v-E<vOOQO'#HW'#HWO&4uQWO1G6`O9kQ07hO<<GpOOQU<<Gp<<GpO@bQWO<<GpO&4}QWO7++}O&5SQWO7+,OO%[Q^O7++}O%[Q^O7+,OOOQU7+)O7+)OO&5XQWO7+)OO&5^Q^O7+)OO&5eQWO7+)OOOQU<<Lr<<LrOOQU<<Lt<<LtOOQU-E<y-E<yOOQU1G3s1G3sO&5jQWO,5>YOOQU,5>[,5>[O&5oQWO1G3yO9ZQWO7+&bO!*fQ^O7+&bOOQO7+%[7+%[O&5tQ(CYO1G6PO>pQWO7+%[OOQ07b<<I`<<I`OOQ07b<<Iv<<IvO>pQWO<<IvOOQO<<Io<<IoO$=mQ08SO<<IoO%[Q^O<<IoOOQO<<Ic<<IcO!@rQ07hO<<IcO&6OQ07hO<<IoO&6ZQ08SO<= SO&6kQWO<= ROOQO7+*W7+*WO9ZQWO7+*WOOQUANAeANAeO&6sQWOANAeO!&dQ7[OANAeO#%sQWOANAeO%0oQrOANAeO%[Q^OANAeO&6{Q08SO7+'uO&9^Q08SO,5?YO&;iQ08SO,5?[O&=tQ08SO7+'wO&@VQrO1G4fO&@aQ(CYO7+&]O&BeQ(CYO,5=RO&DlQ(CYO,5=TO&D|Q(CYO,5=RO&E^Q(CYO,5=TO&EnQ(CYO,59qO&GqQ(CYO,5<fO&ItQ(CYO,5<hO&KwQ(CYO,5<vO&MmQ(CYO7+'hO&MzQ(CYO7+'iO&NXQWO,5<YOOQO7+']7+']O&N^Q7[O<<KwOOQO1G4p1G4pO&NeQWO1G4pO&NpQWO1G4pO' OQWO7++sO' OQWO7++sO!&dQ7[O1G4rO' WQpO1G4rO' bQWO7++tOOQ07`7+(P7+(PO$'ZQWO7+(QO' jQpO7+(QOOQ07`7+(O7+(OO$'ZQWO7+(PO' qQWO7+(QO!&dQ7[O7+(QOC_QWO7+(PO' vQ7[O<<NoOOQ07b7+$y7+$yO'!QQpO,5?_OOQO-E<q-E<qO'![Q08QO7+(TOOQUAN=fAN=fO9aQWO1G5POOQO1G5P1G5PO'!lQWO1G5PO'!qQWO7++|O'!qQWO7++|O9kQ07hOANBQO@bQWOANBQOOQUANBQANBQOOQUANAmANAmOOQUANAnANAnO'!yQWO,5?aOOQO-E<s-E<sO'#UQ(CYO1G6_O'%fQrO'#ChOOQO,5?c,5?cOOQO-E<u-E<uOOQU1G3Z1G3ZO&3ZQ^O,5<zOOQU<<L`<<L`O!&dQ7[O<<L`O&4QQWO<<L`O'%pQWO<<L`O%[Q^O<<L`OOQU<<Lb<<LbO9kQ07hO<<LbO$![QWO<<LbO9UQWO<<LbO'%xQ`O1G5OO'&TQWO7++zOOQUAN=[AN=[O9kQ07hOAN=[OOQU<= i<= iOOQU<= j<= jO'&]QWO<= iO'&bQWO<= jOOQU<<Lj<<LjO'&gQWO<<LjO'&lQ^O<<LjOOQU1G3t1G3tO>pQWO7+)eO'&sQWO<<I|O''OQ(CYO<<I|OOQO<<Hv<<HvOOQ07bAN?bAN?bOOQOAN?ZAN?ZO$=mQ08SOAN?ZOOQOAN>}AN>}O%[Q^OAN?ZOOQO<<Mr<<MrOOQUG27PG27PO!&dQ7[OG27PO#%sQWOG27PO''YQWOG27PO%0oQrOG27PO''bQ(CYO<<JdO''oQ(CYO1G2ZO')eQ(CYO,5?YO'+hQ(CYO,5?[O'-kQ(CYO1G2mO'/nQ(CYO1G2oO'1qQ(CYO<<KTO'2OQ(CYO<<IwOOQO1G1t1G1tO!(SQ7[OANAcOOQO7+*[7+*[O'2]QWO7+*[O'2hQWO<= _O'2pQpO7+*^OOQ07`<<Kl<<KlO$'ZQWO<<KlOOQ07`<<Kk<<KkO'2zQpO<<KlO$'ZQWO<<KkOOQO7+*k7+*kO9aQWO7+*kO'3RQWO<= hOOQUG27lG27lO9kQ07hOG27lO!*fQ^O1G4{O'3ZQWO7++yO&4QQWOANAzOOQUANAzANAzO!&dQ7[OANAzO'3cQWOANAzOOQUANA|ANA|O9kQ07hOANA|O$![QWOANA|OOQO'#HX'#HXOOQO7+*j7+*jOOQUG22vG22vOOQUANETANETOOQUANEUANEUOOQUANBUANBUO'3kQWOANBUOOQU<<MP<<MPO!*fQ^OAN?hOOQOG24uG24uO$=mQ08SOG24uO#%sQWOLD,kOOQULD,kLD,kO!&dQ7[OLD,kO'3pQWOLD,kO'3xQ(CYO7+'uO'5nQ(CYO,5?YO'7qQ(CYO,5?[O'9tQ(CYO7+'wO';jQ7[OG26}OOQO<<Mv<<MvOOQ07`ANAWANAWO$'ZQWOANAWOOQ07`ANAVANAVOOQO<<NV<<NVOOQULD-WLD-WO';zQ(CYO7+*gOOQUG27fG27fO&4QQWOG27fO!&dQ7[OG27fOOQUG27hG27hO9kQ07hOG27hOOQUG27pG27pO'<UQ(CYOG25SOOQOLD*aLD*aOOQU!$(!V!$(!VO#%sQWO!$(!VO!&dQ7[O!$(!VO'<`Q08SOG26}OOQ07`G26rG26rOOQULD-QLD-QO&4QQWOLD-QOOQULD-SLD-SOOQU!)9Eq!)9EqO#%sQWO!)9EqOOQU!$(!l!$(!lOOQU!.K;]!.K;]O'>qQ(CYOG26}O!*fQ^O'#DyO1PQWO'#EWO'@gQrO'#JiO!*fQ^O'#DqO'@nQ^O'#D}O'@uQrO'#ChO'C]QrO'#ChO!*fQ^O'#EPO'CmQ^O,5;VO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O'#IiO'EpQWO,5<eO'ExQ7[O,5;aO'GcQ7[O,5;aO!*fQ^O,5;uO!&dQ7[O'#GgO'ExQ7[O'#GgO!&dQ7[O'#GiO'ExQ7[O'#GiO1SQWO'#DVO1SQWO'#DVO!&dQ7[O'#FzO'ExQ7[O'#FzO!&dQ7[O'#F|O'ExQ7[O'#F|O!&dQ7[O'#G[O'ExQ7[O'#G[O!*fQ^O,5:iO!*fQ^O,5@eO'CmQ^O1G0qO'GjQ(CYO'#ChO!*fQ^O1G1|O!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O,5<oO'ExQ7[O,5<oO'CmQ^O1G1}O!*fQ^O7+&xO!&dQ7[O1G2ZO'ExQ7[O1G2ZO!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O1G2]O'ExQ7[O1G2]O'CmQ^O7+'iO'CmQ^O7+&]O!&dQ7[OANAcO'ExQ7[OANAcO'GtQWO'#EkO'GyQWO'#EkO'HRQWO'#FZO'HWQWO'#EuO'H]QWO'#JyO'HhQWO'#JwO'HsQWO,5;VO'HxQ7[O,5<bO'IPQWO'#GTO'IUQWO'#GTO'IZQWO,5<cO'IcQWO,5;VO'IkQ(CYO1G1^O'IrQWO,5<oO'IwQWO,5<oO'I|QWO,5<qO'JRQWO,5<qO'JWQWO1G1}O'J]QWO1G0qO'JbQ7[O<<KwO'JiQ7[O<<KwO7hQ7[O'#FxO9UQWO'#FwOA]QWO'#EjO!*fQ^O,5;rO!3fQWO'#GTO!3fQWO'#GTO!3fQWO'#GVO!3fQWO'#GVO!(SQ7[O7+(]O!(SQ7[O7+(]O%*yQpO1G2qO%*yQpO1G2qO!&dQ7[O,5=VO!&dQ7[O,5=V",stateData:"'Km~O'tOS'uOSSOS'vRQ~OPYOQYORfOX!VO`qOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!twO!wxO!{]O#s!PO$T|O%b}O%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO&P!WO&V!XO&X!YO&Z!ZO&]![O&`!]O&f!^O&l!_O&n!`O&p!aO&r!bO&t!cO'{SO'}TO(QUO(XVO(g[O(tiO~OVtO~P`OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`!vOo!nO!P!oO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!wO#S!pO#T!pO#W!yO#X!yO'|!lO'}TO(QUO([!mO(g!sO~O'v!zO~OP[XZ[X`[Xn[X|[X}[X!P[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X'r[X(X[X(h[X(o[X(p[X~O!d$|X~P(qO^!|O'}#OO(O!|O(P#OO~O^#PO(P#OO(Q#OO(R#PO~Ot#RO!R#SO(Y#SO(Z#UO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{:hO'}TO(QUO(XVO(g[O(tiO~O!X#YO!Y#VO!V(_P!V(lP~P+}O!Z#bO~P`OPYOQYORfOc!jOd!iOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'}TO(QUO(XVO(g[O(tiO~Ol#lO!X#hO!{]O#e#kO#f#hO'{:iO!j(iP~P.iO!k#nO'{#mO~O!w#rO!{]O%b#sO~O#g#tO~O!d#uO#g#tO~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y$aO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`(]X'r(]X'p(]X!j(]X!V(]X![(]X%c(]X!d(]X~P1qO#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X![(^X%c(^X~O`(^X!i(^X'r(^X'p(^X!V(^X!j(^Xr(^X!d(^X~P4XO#[$eO~O$Y$gO$[$fO$c$lO~ORfO![$mO$f$nO$h$pO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{$rO'}TO(QUO(X$uO(o$}O(p%POf(UP~O!k%bO~O!P%eO![%fO'{%dO~O!d%jO~O`%kO'r%kO~O'|!lO~P%[O%h%rO~P%[Og%VO!k%bO'{%dO'|!lO~Od%yO!k%bO'{%dO~O#r$SO~O|&OO![%{O!k%}O%d&RO'{%dO'|!lO'}TO(QUO_(}P~O!w#rO~O%m&TO!P(yX![(yX'{(yX~O'{&UO~O!t&ZO#s!PO%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO~Oc&`Od&_O!w&]O%b&^O%u&[O~P;xOc&cOdyO![&bO!t&ZO!wxO!{]O#s!PO%b}O%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO~Oa&fO#[&iO%d&dO'|!lO~P<}O!k&jO!t&nO~O!k#nO~O![XO~O`%kO'q&vO'r%kO~O`%kO'q&yO'r%kO~O`%kO'q&{O'r%kO~O'p[X!V[Xr[X!j[X&T[X![[X%c[X!d[X~P(qO!_'YO!`'RO!a'RO'|!lO'}TO(QUO~Oo'PO!P'OO!X'SO([&}O!Z(`P!Z(nP~P@UOj']O!['ZO'{%dO~Od'bO!k%bO'{%dO~O|&OO!k%}O~Oo!nO!P!oO!{:dO#P!pO#Q!pO#S!pO#T!pO'|!lO'}TO(QUO([!mO(g!sO~O!_'hO!`'gO!a'gO#R!pO#W'iO#X'iO~PApO`%kOg%VO!d#uO!k%bO'r%kO(h'kO~O!o'oO#['mO~PCOOo!nO!P!oO'}TO(QUO([!mO(g!sO~O![XOo(eX!P(eX!_(eX!`(eX!a(eX!{(eX#P(eX#Q(eX#R(eX#S(eX#T(eX#W(eX#X(eX'|(eX'}(eX(Q(eX([(eX(g(eX~O!`'gO!a'gO'|!lO~PCnO'w'sO'x'sO'y'uO~O^!|O'}'wO(O!|O(P'wO~O^#PO(P'wO(Q'wO(R#PO~Ot#RO!R#SO(Y#SO(Z'{O~O!X'}O!V'PX!V'VX!Y'PX!Y'VX~P+}O!Y(PO!V(_X~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y(PO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O!V(_X~PGbO!V(UO~O!V(kX!Y(kX!d(kX!j(kX(h(kX~O#[(kX#g#`X!Z(kX~PIhO#[(VO!V(mX!Y(mX~O!Y(WO!V(lX~O!V(ZO~O#[$eO~PIhO!Z([O~P`O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!maZ!man!ma!Y!ma!h!ma!o!ma#j!ma#k!ma#l!ma#m!ma#n!ma#o!ma#p!ma#q!ma#r!ma#t!ma#v!ma#x!ma#y!ma(h!ma(o!ma(p!ma~O`!ma'r!ma'p!ma!V!ma!j!mar!ma![!ma%c!ma!d!ma~PKOO!j(]O~O!d#uO#[(^O(h'kO!Y(jX`(jX'r(jX~O!j(jX~PMnO!P%eO![%fO!{]O#e(cO#f(bO'{%dO~O!Y(dO!j(iX~O!j(fO~O!P%eO![%fO#f(bO'{%dO~OP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!i(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O!d#uO!j(^X~P! [O|(gO}(hO!i#wO!k#xO!{!za!P!za~O!w!za%b!za![!za#e!za#f!za'{!za~P!#`O!w(lO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#g(rO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~Of(bP~P!(SO!X(vO!j(cP~P%[O([(xO(g[O~O!P(zO!k#xO([(xO(g[O~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O})]O!k#xO~O!Y$aO`$ma'r$ma'p$ma!j$ma!V$ma![$ma%c$ma!d$ma~O#s)aO~P!&dO|)dO!d)cO![$ZX$W$ZX$Y$ZX$[$ZX$c$ZX~O!d)cO![(qX$W(qX$Y(qX$[(qX$c(qX~O|)dO~P!.OO|)dO![(qX$W(qX$Y(qX$[(qX$c(qX~O![)fO$W)jO$Y)eO$[)eO$c)kO~O!X)nO~P!*fO$Y$gO$[$fO$c)rO~Oj$uX|$uX!P$uX!i$uX(o$uX(p$uX~OfiXf$uXjiX!YiX#[iX~P!/tOo)tO~Ot)uO(Y)vO(Z)xO~Oj*RO|)zO!P){O(o$}O(p%PO~Of)yO~P!0}Of*SO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~O!X*WO'{*TO!j(uP~P!1lO#g*YO~O!k*ZO~O!X*`O'{*]O!V(vP~P!1lOn*lO!P*dO!_*jO!`*cO!a*cO!k*ZO#W*kO%Y*fO'|!lO([!mO~O!Z*iO~P!3xO!i#wOj(WX|(WX!P(WX(o(WX(p(WX!Y(WX#[(WX~Of(WX#|(WX~P!4qOj*qO#[*pOf(VX!Y(VX~O!Y*rOf(UX~O'{&UOf(UP~O!k*yO~O'{(pO~Ol*}O!P%eO!X#hO![%fO!{]O#e#kO#f#hO'{%dO!j(iP~O!d#uO#g+OO~O!P%eO!X+QO!Y(WO![%fO'{%dO!V(lP~Oo'VO!P+SO!X+RO'}TO(QUO([(xO~O!Z(nP~P!7lO!Y+TO`(zX'r(zX~OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`!ea!Y!ea'r!ea'p!ea!V!ea!j!ear!ea![!ea%c!ea!d!ea~P!8dO|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qaZ!qan!qa!Y!qa!h!qa!o!qa#j!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#t!qa#v!qa#x!qa#y!qa(h!qa(o!qa(p!qa~O`!qa'r!qa'p!qa!V!qa!j!qar!qa![!qa%c!qa!d!qa~P!:}O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!saZ!san!sa!Y!sa!h!sa!o!sa#j!sa#k!sa#l!sa#m!sa#n!sa#o!sa#p!sa#q!sa#r!sa#t!sa#v!sa#x!sa#y!sa(h!sa(o!sa(p!sa~O`!sa'r!sa'p!sa!V!sa!j!sar!sa![!sa%c!sa!d!sa~P!=hOg%VOj+^O!['ZO%c+]O~O!d+`O`(TX![(TX'r(TX!Y(TX~O`%kO![XO'r%kO~Og%VO!k%bO~Og%VO!k%bO'{%dO~O!d#uO#g(rO~Oa+kO%d+lO'{+hO'}TO(QUO!Z)OP~O!Y+mO_(}X~OZ+qO~O_+rO~O![%{O'{%dO'|!lO_(}P~Og%VO#[+wO~Og%VOj+zO![$|O~O![+|O~O|,OO![XO~O%h%rO~O!w,TO~Od,YO~Oa,ZO'{#mO'}TO(QUO!Z(|P~Od%yO~O%d!QO'{&UO~P<}OZ,`O_,_O~OPYOQYORfOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO!fuO!kZO!nYO!oYO!pYO!rvO!wxO!{]O%b}O'}TO(QUO(XVO(g[O(tiO~O![!eO!t!gO$T!kO'{!dO~P!DkO_,_O`%kO'r%kO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`,eO!twO#s!OO%f!OO%g!OO%h!OO~P!GTO!k&jO~O&V,kO~O![,mO~O&h,oO&j,pOP&eaQ&eaR&eaX&ea`&eac&ead&eal&ean&eao&eap&eav&eax&eaz&ea!P&ea!T&ea!U&ea![&ea!f&ea!k&ea!n&ea!o&ea!p&ea!r&ea!t&ea!w&ea!{&ea#s&ea$T&ea%b&ea%d&ea%f&ea%g&ea%h&ea%k&ea%m&ea%p&ea%q&ea%s&ea&P&ea&V&ea&X&ea&Z&ea&]&ea&`&ea&f&ea&l&ea&n&ea&p&ea&r&ea&t&ea'p&ea'{&ea'}&ea(Q&ea(X&ea(g&ea(t&ea!Z&ea&^&eaa&ea&c&ea~O'{,uO~Og!bX!Y!OX!Y!bX!Z!OX!Z!bX!d!OX!d!bX!k!bX#[!OX~O!d,zO#[,yOg(aX!Y#dX!Y(aX!Z#dX!Z(aX!d(aX!k(aX~Og%VO!d,|O!k%bO!Y!^X!Z!^X~Oo!nO!P!oO'}TO(QUO([!mO~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'}TO(QUO(XVO(g[O(t<YO~O'{;]O~P#!ZO!Y-QO!Z(`X~O!Z-SO~O!d,zO#[,yO!Y#dX!Z#dX~O!Y-TO!Z(nX~O!Z-VO~O!`-WO!a-WO'|!lO~P# xO!Z-ZO~P'_Oj-^O!['ZO~O!V-cO~Oo!za!_!za!`!za!a!za#P!za#Q!za#R!za#S!za#T!za#W!za#X!za'|!za'}!za(Q!za([!za(g!za~P!#`O!o-hO#[-fO~PCOO!`-jO!a-jO'|!lO~PCnO`%kO#[-fO'r%kO~O`%kO!d#uO#[-fO'r%kO~O`%kO!d#uO!o-hO#[-fO'r%kO(h'kO~O'w'sO'x'sO'y-oO~Or-pO~O!V'Pa!Y'Pa~P!8dO!X-tO!V'PX!Y'PX~P%[O!Y(PO!V(_a~O!V(_a~PGbO!Y(WO!V(la~O!P%eO!X-xO![%fO'{%dO!V'VX!Y'VX~O#[-zO!Y(ja!j(ja`(ja'r(ja~O!d#uO~P#*aO!Y(dO!j(ia~O!P%eO![%fO#f.OO'{%dO~Ol.TO!P%eO!X.QO![%fO!{]O#e.SO#f.QO'{%dO!Y'YX!j'YX~O}.XO!k#xO~Og%VOj.[O!['ZO%c.ZO~O`#_i!Y#_i'r#_i'p#_i!V#_i!j#_ir#_i![#_i%c#_i!d#_i~P!8dOj<fO|)zO!P){O(o$}O(p%PO~O#g#Za`#Za#[#Za'r#Za!Y#Za!j#Za![#Za!V#Za~P#-]O#g(WXP(WXZ(WX`(WXn(WX}(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX'r(WX(X(WX(h(WX!j(WX!V(WX'p(WXr(WX![(WX%c(WX!d(WX~P!4qO!Y.iOf(bX~P!0}Of.kO~O!Y.lO!j(cX~P!8dO!j.oO~O!V.qO~OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#ii`#iin#ii!Y#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#j#ii~P#1XO#j$OO~P#1XOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO(XVOZ#ii`#ii!Y#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~On#ii~P#3yOn$QO~P#3yOP$]On$QO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO(XVO`#ii!Y#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P#6kOZ$dO!h$SO#o$SO#p$SO#q$cO#r$SO~P#6kOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO(p#}O`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii(o#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v$VO~P#9lO#v#ii~P#9lOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v#ii(o#ii(p#ii~P#<^O#v$VO(o#|O(p#}O~P#<^OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO(XVO(o#|O(p#}O~O`#ii!Y#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#?UOP[XZ[Xn[X|[X}[X!P[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X!Y[X!Z[X~O#|[X~P#AoOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO#y:vO(XVO(h$ZO(o#|O(p#}O~O#|.sO~P#C|O#[:{O$O:{O#|(^X!Z(^X~P! [O`']a!Y']a'r']a'p']a!j']a!V']ar']a![']a%c']a!d']a~P!8dOP#iiZ#ii`#iin#ii}#ii!Y#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(X#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#-]O`#}i!Y#}i'r#}i'p#}i!V#}i!j#}ir#}i![#}i%c#}i!d#}i~P!8dO$Y.xO$[.xO~O$Y.yO$[.yO~O!d)cO#[.zO![$`X$W$`X$Y$`X$[$`X$c$`X~O!X.{O~O![)fO$W.}O$Y)eO$[)eO$c/OO~O!Y:wO!Z(]X~P#C|O!Z/PO~O!d)cO$c(qX~O$c/RO~Ot)uO(Y)vO(Z/UO~O!V/YO~P!&dO(o$}Oj%Za|%Za!P%Za(p%Za!Y%Za#[%Za~Of%Za#|%Za~P#L^O(p%POj%]a|%]a!P%]a(o%]a!Y%]a#[%]a~Of%]a#|%]a~P#MPO!YeX!deX!jeX!j$uX(heX~P!/tO!j/bO~P#-]O!Y/cO!d#uO(h'kO!j(uX~O!j/hO~O!X*WO'{%dO!j(uP~O#g/jO~O!V$uX!Y$uX!d$|X~P!/tO!Y/kO!V(vX~P#-]O!d/mO~O!V/oO~Og%VOn/sO!d#uO!k%bO(h'kO~O'{/uO~O!d+`O~O`%kO!Y/yO'r%kO~O!Z/{O~P!3xO!`/|O!a/|O'|!lO([!mO~O!P0OO([!mO~O#W0PO~Of%Za!Y%Za#[%Za#|%Za~P!0}Of%]a!Y%]a#[%]a#|%]a~P!0}O'{&UOf'fX!Y'fX~O!Y*rOf(Ua~Of0YO~O|0ZO}0ZO!P0[Ojya(oya(pya!Yya#[ya~Ofya#|ya~P$$jO|)zO!P){Oj$na(o$na(p$na!Y$na#[$na~Of$na#|$na~P$%`O|)zO!P){Oj$pa(o$pa(p$pa!Y$pa#[$pa~Of$pa#|$pa~P$&RO#g0^O~Of%Oa!Y%Oa#[%Oa#|%Oa~P!0}O!d#uO~O#g0aO~O!Y+TO`(za'r(za~O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qiZ!qin!qi!Y!qi!h!qi!o!qi#j!qi#k!qi#l!qi#m!qi#n!qi#o!qi#p!qi#q!qi#r!qi#t!qi#v!qi#x!qi#y!qi(h!qi(o!qi(p!qi~O`!qi'r!qi'p!qi!V!qi!j!qir!qi![!qi%c!qi!d!qi~P$'pOg%VOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~Ol0kO'{0jO~P$*ZO!d+`O`(Ta![(Ta'r(Ta!Y(Ta~O#g0qO~OZ[X!YeX!ZeX~O!Y0rO!Z)OX~O!Z0tO~OZ0uO~Oa0wO'{+hO'}TO(QUO~O![%{O'{%dO_'nX!Y'nX~O!Y+mO_(}a~O!j0zO~P!8dOZ0}O~O_1OO~O#[1RO~Oj1UO![$|O~O([(xO!Z({P~Og%VOj1_O![1[O%c1^O~OZ1iO!Y1gO!Z(|X~O!Z1jO~O_1lO`%kO'r%kO~O'{#mO'}TO(QUO~O#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O#r1oO&T1pO`(^X!i(^X~P$/qO#[$eO#r1oO&T1pO~O`1rO~P%[O`1tO~O&^1wOP&[iQ&[iR&[iX&[i`&[ic&[id&[il&[in&[io&[ip&[iv&[ix&[iz&[i!P&[i!T&[i!U&[i![&[i!f&[i!k&[i!n&[i!o&[i!p&[i!r&[i!t&[i!w&[i!{&[i#s&[i$T&[i%b&[i%d&[i%f&[i%g&[i%h&[i%k&[i%m&[i%p&[i%q&[i%s&[i&P&[i&V&[i&X&[i&Z&[i&]&[i&`&[i&f&[i&l&[i&n&[i&p&[i&r&[i&t&[i'p&[i'{&[i'}&[i(Q&[i(X&[i(g&[i(t&[i!Z&[ia&[i&c&[i~Oa1}O!Z1{O&c1|O~P`O![XO!k2PO~O&j,pOP&eiQ&eiR&eiX&ei`&eic&eid&eil&ein&eio&eip&eiv&eix&eiz&ei!P&ei!T&ei!U&ei![&ei!f&ei!k&ei!n&ei!o&ei!p&ei!r&ei!t&ei!w&ei!{&ei#s&ei$T&ei%b&ei%d&ei%f&ei%g&ei%h&ei%k&ei%m&ei%p&ei%q&ei%s&ei&P&ei&V&ei&X&ei&Z&ei&]&ei&`&ei&f&ei&l&ei&n&ei&p&ei&r&ei&t&ei'p&ei'{&ei'}&ei(Q&ei(X&ei(g&ei(t&ei!Z&ei&^&eia&ei&c&ei~O!V2VO~O!Y!^a!Z!^a~P#C|Oo!nO!P!oO!X2]O([!mO!Y'QX!Z'QX~P@UO!Y-QO!Z(`a~O!Y'WX!Z'WX~P!7lO!Y-TO!Z(na~O!Z2dO~P'_O`%kO#[2mO'r%kO~O`%kO!d#uO#[2mO'r%kO~O`%kO!d#uO!o2qO#[2mO'r%kO(h'kO~O`%kO'r%kO~P!8dO!Y$aOr$ma~O!V'Pi!Y'Pi~P!8dO!Y(PO!V(_i~O!Y(WO!V(li~O!V(mi!Y(mi~P!8dO!Y(ji!j(ji`(ji'r(ji~P!8dO#[2sO!Y(ji!j(ji`(ji'r(ji~O!Y(dO!j(ii~O!P%eO![%fO!{]O#e2xO#f2wO'{%dO~O!P%eO![%fO#f2wO'{%dO~Oj3PO!['ZO%c3OO~Og%VOj3PO!['ZO%c3OO~O#g%ZaP%ZaZ%Za`%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Zar%Za![%Za%c%Za!d%Za~P#L^O#g%]aP%]aZ%]a`%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]ar%]a![%]a%c%]a!d%]a~P#MPO#g%ZaP%ZaZ%Za`%Zan%Za}%Za!Y%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Za#[%Zar%Za![%Za%c%Za!d%Za~P#-]O#g%]aP%]aZ%]a`%]an%]a}%]a!Y%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]a#[%]ar%]a![%]a%c%]a!d%]a~P#-]O#gyaPyaZya`yanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya'rya(Xya(hya!jya!Vya'pyarya![ya%cya!dya~P$$jO#g$naP$naZ$na`$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na'r$na(X$na(h$na!j$na!V$na'p$nar$na![$na%c$na!d$na~P$%`O#g$paP$paZ$pa`$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa'r$pa(X$pa(h$pa!j$pa!V$pa'p$par$pa![$pa%c$pa!d$pa~P$&RO#g%OaP%OaZ%Oa`%Oan%Oa}%Oa!Y%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa'r%Oa(X%Oa(h%Oa!j%Oa!V%Oa'p%Oa#[%Oar%Oa![%Oa%c%Oa!d%Oa~P#-]O`#_q!Y#_q'r#_q'p#_q!V#_q!j#_qr#_q![#_q%c#_q!d#_q~P!8dOf'RX!Y'RX~P!(SO!Y.iOf(ba~O!X3ZO!Y'SX!j'SX~P%[O!Y.lO!j(ca~O!Y.lO!j(ca~P!8dO!V3^O~O#|!ma!Z!ma~PKOO#|!ea!Y!ea!Z!ea~P#C|O#|!qa!Z!qa~P!:}O#|!sa!Z!sa~P!=hORfO![3pO$a3qO~O!Z3uO~Or3vO~P#-]O`$jq!Y$jq'r$jq'p$jq!V$jq!j$jqr$jq![$jq%c$jq!d$jq~P!8dO!V3wO~P#-]O|)zO!P){O(p%POj'ba(o'ba!Y'ba#['ba~Of'ba#|'ba~P%)eO|)zO!P){Oj'da(o'da(p'da!Y'da#['da~Of'da#|'da~P%*WO(h$ZO~P#-]O!X3zO'{%dO!Y'^X!j'^X~O!Y/cO!j(ua~O!Y/cO!d#uO!j(ua~O!Y/cO!d#uO(h'kO!j(ua~Of$wi!Y$wi#[$wi#|$wi~P!0}O!X4SO'{*]O!V'`X!Y'`X~P!1lO!Y/kO!V(va~O!Y/kO!V(va~P#-]O!d#uO#r4[O~On4_O!d#uO(h'kO~O(o$}Oj%Zi|%Zi!P%Zi(p%Zi!Y%Zi#[%Zi~Of%Zi#|%Zi~P%-jO(p%POj%]i|%]i!P%]i(o%]i!Y%]i#[%]i~Of%]i#|%]i~P%.]Of(Vi!Y(Vi~P!0}O#[4fOf(Vi!Y(Vi~P!0}O!j4iO~O`$kq!Y$kq'r$kq'p$kq!V$kq!j$kqr$kq![$kq%c$kq!d$kq~P!8dO!V4mO~O!Y4nO![(wX~P#-]O!i#wO~P4XO`$uX![$uX%W[X'r$uX!Y$uX~P!/tO%W4pO`kXjkX|kX!PkX![kX'rkX(okX(pkX!YkX~O%W4pO~Oa4vO%d4wO'{+hO'}TO(QUO!Y'mX!Z'mX~O!Y0rO!Z)Oa~OZ4{O~O_4|O~O`%kO'r%kO~P#-]O![$|O~P#-]O!Y5UO#[5WO!Z({X~O!Z5XO~Oo!nO!P5YO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!pO#S!pO#T!pO#W5_O#X!yO'|!lO'}TO(QUO([!mO(g!sO~O!Z5^O~P%3nOj5dO![1[O%c5cO~Og%VOj5dO![1[O%c5cO~Oa5kO'{#mO'}TO(QUO!Y'lX!Z'lX~O!Y1gO!Z(|a~O'}TO(QUO([5mO~O_5qO~O#r5tO&T5uO~PMnO!j5vO~P%[O`5xO~O`5xO~P%[Oa1}O!Z5}O&c1|O~P`O!d6PO~O!d6ROg(ai!Y(ai!Z(ai!d(ai!k(ai~O!Y#di!Z#di~P#C|O#[6SO!Y#di!Z#di~O!Y!^i!Z!^i~P#C|O`%kO#[6]O'r%kO~O`%kO!d#uO#[6]O'r%kO~O!Y(jq!j(jq`(jq'r(jq~P!8dO!Y(dO!j(iq~O!P%eO![%fO#f6dO'{%dO~O!['ZO%c6gO~Oj6jO!['ZO%c6gO~O#g'baP'baZ'ba`'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba'r'ba(X'ba(h'ba!j'ba!V'ba'p'bar'ba!['ba%c'ba!d'ba~P%)eO#g'daP'daZ'da`'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da'r'da(X'da(h'da!j'da!V'da'p'dar'da!['da%c'da!d'da~P%*WO#g$wiP$wiZ$wi`$win$wi}$wi!Y$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi'r$wi(X$wi(h$wi!j$wi!V$wi'p$wi#[$wir$wi![$wi%c$wi!d$wi~P#-]O#g%ZiP%ZiZ%Zi`%Zin%Zi}%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi'r%Zi(X%Zi(h%Zi!j%Zi!V%Zi'p%Zir%Zi![%Zi%c%Zi!d%Zi~P%-jO#g%]iP%]iZ%]i`%]in%]i}%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i'r%]i(X%]i(h%]i!j%]i!V%]i'p%]ir%]i![%]i%c%]i!d%]i~P%.]Of'Ra!Y'Ra~P!0}O!Y'Sa!j'Sa~P!8dO!Y.lO!j(ci~O#|#_i!Y#_i!Z#_i~P#C|OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#iin#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~O#j#ii~P%FnO#j:lO~P%FnOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO(XVOZ#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~On#ii~P%HyOn:nO~P%HyOP$]On:nO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO(XVO#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P%KUOZ:zO!h:pO#o:pO#p:pO#q:yO#r:pO~P%KUOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO(p#}O#x#ii#y#ii#|#ii(h#ii(o#ii!Y#ii!Z#ii~O#v:sO~P%MpO#v#ii~P%MpOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO#x#ii#y#ii#|#ii(h#ii!Y#ii!Z#ii~O#v#ii(o#ii(p#ii~P& {O#v:sO(o#|O(p#}O~P& {OP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO(XVO(o#|O(p#}O~O#y#ii#|#ii(h#ii!Y#ii!Z#ii~P&$^O`#zy!Y#zy'r#zy'p#zy!V#zy!j#zyr#zy![#zy%c#zy!d#zy~P!8dOj<gO|)zO!P){O(o$}O(p%PO~OP#iiZ#iin#ii}#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(X#ii(h#ii!Y#ii!Z#ii~P&'UO!i#wOP(WXZ(WXj(WXn(WX|(WX}(WX!P(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX#|(WX(X(WX(h(WX(o(WX(p(WX!Y(WX!Z(WX~O#|#}i!Y#}i!Z#}i~P#C|O#|!qi!Z!qi~P$'pO!Z6|O~O!Y']a!Z']a~P#C|O!d#uO(h'kO!Y'^a!j'^a~O!Y/cO!j(ui~O!Y/cO!d#uO!j(ui~Of$wq!Y$wq#[$wq#|$wq~P!0}O!V'`a!Y'`a~P#-]O!d7TO~O!Y/kO!V(vi~P#-]O!Y/kO!V(vi~O!V7XO~O!d#uO#r7^O~On7_O!d#uO(h'kO~O|)zO!P){O(p%POj'ca(o'ca!Y'ca#['ca~Of'ca#|'ca~P&.fO|)zO!P){Oj'ea(o'ea(p'ea!Y'ea#['ea~Of'ea#|'ea~P&/XO!V7aO~Of$yq!Y$yq#[$yq#|$yq~P!0}O`$ky!Y$ky'r$ky'p$ky!V$ky!j$kyr$ky![$ky%c$ky!d$ky~P!8dO!d6RO~O!Y4nO![(wa~O`#_y!Y#_y'r#_y'p#_y!V#_y!j#_yr#_y![#_y%c#_y!d#_y~P!8dOZ7fO~Oa7hO'{+hO'}TO(QUO~O!Y0rO!Z)Oi~O_7lO~O([(xO!Y'iX!Z'iX~O!Y5UO!Z({a~OlkO'{7sO~P.iO!Z7vO~P%3nOo!nO!P7wO'}TO(QUO([!mO(g!sO~O![1[O~O![1[O%c7yO~Oj7|O![1[O%c7yO~OZ8RO!Y'la!Z'la~O!Y1gO!Z(|i~O!j8VO~O!j8WO~O!j8ZO~O!j8ZO~P%[O`8]O~O!d8^O~O!j8_O~O!Y(mi!Z(mi~P#C|O`%kO#[8gO'r%kO~O!Y(jy!j(jy`(jy'r(jy~P!8dO!Y(dO!j(iy~O!['ZO%c8jO~O#g$wqP$wqZ$wq`$wqn$wq}$wq!Y$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq'r$wq(X$wq(h$wq!j$wq!V$wq'p$wq#[$wqr$wq![$wq%c$wq!d$wq~P#-]O#g'caP'caZ'ca`'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca'r'ca(X'ca(h'ca!j'ca!V'ca'p'car'ca!['ca%c'ca!d'ca~P&.fO#g'eaP'eaZ'ea`'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea'r'ea(X'ea(h'ea!j'ea!V'ea'p'ear'ea!['ea%c'ea!d'ea~P&/XO#g$yqP$yqZ$yq`$yqn$yq}$yq!Y$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq'r$yq(X$yq(h$yq!j$yq!V$yq'p$yq#[$yqr$yq![$yq%c$yq!d$yq~P#-]O!Y'Si!j'Si~P!8dO#|#_q!Y#_q!Z#_q~P#C|O(o$}OP%ZaZ%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za#|%Za(X%Za(h%Za!Y%Za!Z%Za~Oj%Za|%Za!P%Za(p%Za~P&@nO(p%POP%]aZ%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a#|%]a(X%]a(h%]a!Y%]a!Z%]a~Oj%]a|%]a!P%]a(o%]a~P&BuOj<gO|)zO!P){O(p%PO~P&@nOj<gO|)zO!P){O(o$}O~P&BuO|0ZO}0ZO!P0[OPyaZyajyanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya#|ya(Xya(hya(oya(pya!Yya!Zya~O|)zO!P){OP$naZ$naj$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na#|$na(X$na(h$na(o$na(p$na!Y$na!Z$na~O|)zO!P){OP$paZ$paj$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa#|$pa(X$pa(h$pa(o$pa(p$pa!Y$pa!Z$pa~OP%OaZ%Oan%Oa}%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa#|%Oa(X%Oa(h%Oa!Y%Oa!Z%Oa~P&'UO#|$jq!Y$jq!Z$jq~P#C|O#|$kq!Y$kq!Z$kq~P#C|O!Z8vO~O#|8wO~P!0}O!d#uO!Y'^i!j'^i~O!d#uO(h'kO!Y'^i!j'^i~O!Y/cO!j(uq~O!V'`i!Y'`i~P#-]O!Y/kO!V(vq~O!V8}O~P#-]O!V8}O~Of(Vy!Y(Vy~P!0}O!Y'ga!['ga~P#-]O`%Vq![%Vq'r%Vq!Y%Vq~P#-]OZ9SO~O!Y0rO!Z)Oq~O#[9WO!Y'ia!Z'ia~O!Y5UO!Z({i~P#C|OP[XZ[Xn[X|[X}[X!P[X!V[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!d%TX#r%TX~P'#`O![1[O%c9[O~O'}TO(QUO([9aO~O!Y1gO!Z(|q~O!j9dO~O!j9eO~O!j9fO~O!j9fO~P%[O#[9iO!Y#dy!Z#dy~O!Y#dy!Z#dy~P#C|O!['ZO%c9nO~O#|#zy!Y#zy!Z#zy~P#C|OP$wiZ$win$wi}$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi#|$wi(X$wi(h$wi!Y$wi!Z$wi~P&'UO|)zO!P){O(p%POP'baZ'baj'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba#|'ba(X'ba(h'ba(o'ba!Y'ba!Z'ba~O|)zO!P){OP'daZ'daj'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da#|'da(X'da(h'da(o'da(p'da!Y'da!Z'da~O(o$}OP%ZiZ%Zij%Zin%Zi|%Zi}%Zi!P%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi#|%Zi(X%Zi(h%Zi(p%Zi!Y%Zi!Z%Zi~O(p%POP%]iZ%]ij%]in%]i|%]i}%]i!P%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i#|%]i(X%]i(h%]i(o%]i!Y%]i!Z%]i~O#|$ky!Y$ky!Z$ky~P#C|O#|#_y!Y#_y!Z#_y~P#C|O!d#uO!Y'^q!j'^q~O!Y/cO!j(uy~O!V'`q!Y'`q~P#-]O!V9wO~P#-]O!Y0rO!Z)Oy~O!Y5UO!Z({q~O![1[O%c:OO~O!j:RO~O!['ZO%c:WO~OP$wqZ$wqn$wq}$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq#|$wq(X$wq(h$wq!Y$wq!Z$wq~P&'UO|)zO!P){O(p%POP'caZ'caj'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca#|'ca(X'ca(h'ca(o'ca!Y'ca!Z'ca~O|)zO!P){OP'eaZ'eaj'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea#|'ea(X'ea(h'ea(o'ea(p'ea!Y'ea!Z'ea~OP$yqZ$yqn$yq}$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq#|$yq(X$yq(h$yq!Y$yq!Z$yq~P&'UOf%_!Z!Y%_!Z#[%_!Z#|%_!Z~P!0}O!Y'iq!Z'iq~P#C|O!Y#d!Z!Z#d!Z~P#C|O#g%_!ZP%_!ZZ%_!Z`%_!Zn%_!Z}%_!Z!Y%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z'r%_!Z(X%_!Z(h%_!Z!j%_!Z!V%_!Z'p%_!Z#[%_!Zr%_!Z![%_!Z%c%_!Z!d%_!Z~P#-]OP%_!ZZ%_!Zn%_!Z}%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z#|%_!Z(X%_!Z(h%_!Z!Y%_!Z!Z%_!Z~P&'UOr(]X~P1qO'|!lO~P!*fO!VeX!YeX#[eX~P'#`OP[XZ[Xn[X|[X}[X!P[X!Y[X!YeX!h[X!i[X!k[X!o[X#[[X#[eX#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!deX!j[X!jeX(heX~P'ASOP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![XO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O!Y:wO!Z$ma~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;RO!P${O![$|O!f<aO!k$xO#f;XO$T%^O$o;TO$q;VO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#s)aO~P'ExO!Z[X!ZeX~P'ASO#g:kO~O!d#uO#g:kO~O#[:{O~O#r:pO~O#[;ZO!Y(mX!Z(mX~O#[:{O!Y(kX!Z(kX~O#g;[O~Of;^O~P!0}O#g;cO~O#g;dO~O!d#uO#g;eO~O!d#uO#g;[O~O#|;fO~P#C|O#g;gO~O#g;hO~O#g;mO~O#g;nO~O#g;oO~O#g;pO~O#|;qO~P!0}O#|;rO~P!0}O!i#P#Q#S#T#W#e#f#q(t$o$q$t%W%b%c%d%k%m%p%q%s%u~'vS#k!U't'|#lo#j#mn|'u$Y'u'{$[([~",goto:"$2p)SPPPPP)TPP)WP)iP*x.|PPPP5pPP6WPP<S?gP?zP?zPPP?zPAxP?zP?zP?zPA|PPBRPBlPGdPPPGhPPPPGhJiPPPJoKjPGhPMxPPPP!!WGhPPPGhPGhP!$fGhP!'z!(|!)VP!)y!)}!)yPPPPP!-Y!(|PP!-v!.pP!1dGhGh!1i!4s!9Y!9Y!=OPPP!=VGhPPPPPPPPPPP!@dP!AqPPGh!CSPGhPGhGhGhGhPGh!DfP!GnP!JrP!Jv!KQ!KU!KUP!GkP!KY!KYP!N^P!NbGhGh!Nh##k?zP?zP?z?zP#$v?z?z#'O?z#)k?z#+m?z?z#,[#.f#.f#.j#.r#.f#.zP#.fP?z#/d?z#3R?z?z5pPPP#6vPPP#7a#7aP#7aP#7w#7aPP#7}P#7tP#7t#8b#7t#8|#9S5m)W#9V)WP#9^#9^#9^P)WP)WP)WP)WPP)WP#9d#9gP#9g)WP#9kP#9nP)WP)WP)WP)WP)WP)W)WPP#9t#9z#:V#:]#:c#:i#:o#:}#;T#;Z#;e#;k#;u#<U#<[#<|#=`#=f#=l#=z#>a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#Ip#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ&S|Q'P!eS'V%f-TQ+k%{Q,Z&bQ0]*yQ0w+lQ0|+rQ1m,_Q1n,`Q4v0rQ5P1OQ5k1gQ5n1iQ5o1lQ7h4wQ7k4|Q8U5qQ9V7lR9b8RrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR,]&f&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O']'m(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<[<][#[WZ#V#Y'S'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ%sxQ%wyS%||&RQ&Y!TQ'^!hQ'`!iQ(k#rS*V$x*ZS+e%x%yQ+i%{Q,S&]Q,W&_S-a'a'bQ.^(lQ/g*WQ0p+fQ0v+lQ0x+mQ0{+qQ1a,TS1e,X,YQ2i-bQ3y/cQ4u0rQ4y0uQ5O0}Q5j1fQ7Q3zQ7g4wQ7j4{Q9R7fR9y9S!O$zi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c!S%uy!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^Q+_%sQ+x&VQ+{&WQ,V&_Q.](kQ1`,SU1d,W,X,YQ3Q.^Q5e1aS5i1e1fQ8Q5j#W<^#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go<_:y:z:};P;T;V;X;`;b;d;h;j;l;n;rW%Ti%V*r<YS&V!Q&dQ&W!RQ&X!SR+v&T$w%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gT)v$u)wV*v%Z;Q;RU'V!e%f-TS(y#y#zQ+p&OS.V(g(hQ1V+|Q4g0ZR7p5U&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]$i$`c#X#d%n%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.t.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q'T!eR2^-Qv!nQ!e!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_S*b$|*hS/t*c*jQ/}*kQ1X,OQ4^/|R4a0PnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&t!^Q'q!wS(m#t:kQ+c%vQ,Q&YQ,R&[Q-_'_Q-l'jS.g(r;[S0`+O;eQ0n+dQ1Z,PQ2O,oQ2Q,pQ2Y,{Q2g-`Q2j-dS4l0a;oQ4q0oS4t0q;pQ6T2[Q6X2hQ6^2oQ7e4rQ8b6VQ8c6YQ8f6_R9h8_$d$_c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(j#o'dU*o%R(q3mS+Y%n.tQ2|0hQ6f2{Q8l6iR9o8m$d$^c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(i#o'dS({#z$_S+X%n.tS.W(h(jQ.w)]Q0e+YR2y.X&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S#p]:dQ&o!XQ&p!YQ&r![Q&s!]R1v,kQ'[!hQ+[%sQ-]'^S.Y(k+_Q2e-[W2}.].^0g0iQ6W2fU6e2z2|3QS8i6f6hS9m8k8lS:U9l9oQ:^:VR:a:_U!vQ'Z-YT5Z1[5]!Q_OXZ`st!V!Z#c#g%b%j&d&f&m&o&p&r(d,h,m.P1w1z]!pQ!r'Z-Y1[5]T#p]:d%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS(y#y#zS.V(g(h!s;v$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Y!tQ'Z-Y1[5]Q'f!rS'p!u!xS'r!y5_S-i'g'hQ-k'iR2p-jQ'o!tS(`#f1qS-h'f'rQ/f*VQ/r*bQ2q-kQ4O/gS4X/s/}Q7P3yS7[4_4aQ8y7QR9Q7_Q#vbQ'n!tS(_#f1qS(a#l*}Q+P%cQ+a%tQ+g%zU-g'f'o'rQ-{(`Q/e*VQ/q*bQ/w*eQ0m+bQ1b,US2n-h-kQ2v.TS3}/f/gS4W/r/}Q4Z/vQ4]/xQ5g1cQ6`2qQ7O3yQ7S4OS7W4X4aQ7]4`Q8O5hS8x7P7QQ8|7XQ9O7[Q9_8PQ9u8yQ9v8}Q9x9QQ:Q9`Q:Y9wQ;y;tQ<U;}R<V<OV!vQ'Z-Y%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS#vz!j!r;s$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;y<[%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gQ%cj!S%ty!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^S%zz!jQ+b%uQ,U&_W1c,V,W,X,YU5h1d1e1fS8P5i5jQ9`8Q!r;t$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q;}<ZR<O<[$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gY#aWZ#V#Y'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ,c&j!p;u$[$m)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;x'SS'W!e%fR2`-T%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8g!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q,b&jQ0h+^Q2{.[Q6i3PR8m6j!b$Uc#X%n'|(S(n(u)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!P:r)Z)l-O.t2W2Z3_3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!f$Wc#X%n'|(S(n(u)T)U)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!T:t)Z)l-O.t2W2Z3_3f3g3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!^$[c#X%n'|(S(n(u)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:eQ3x/az<])Z)l-O.t2W2Z3_3n3t6U6p6y6z7r8a8n8t8u9{:S<PQ<b<dR<c<e&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S$nh$oR3q.z'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$jf$pQ$hfS)e$k)iR)q$pT$if$pT)g$k)i'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$nh$oQ$qhR)p$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8g!s<Z$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]#clOPXZst!Z!`!o#R#c#n#{$m%j&f&i&j&m&o&p&r&v'O'](z)n+S+^,e,h,m-^.[.{0[1_1o1p1r1t1w1z1|3P3p5Y5d5t5u5x6j7w7|8]!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gQ*z%_Q/W)zo3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!O$yi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cQ*[$zS*e$|*hQ*{%`Q/x*f#W;{#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;|:y:z:};P;T;V;X;`;b;d;h;j;l;n;rQ<Q<^Q<R<_Q<S<`R<T<a!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;rnoOXst!Z#c%j&m&o&p&r,h,m1w1zQ*_${Q,v&yQ,w&{R4R/k$v%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ+y&WQ1T+{Q5S1SR7o5TT*g$|*hS*g$|*hT5[1[5]S/v*d5YT4`0O7wQ+a%tQ/w*eQ0m+bQ1b,UQ5g1cQ8O5hQ9_8PR:Q9`!O%Oi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cr)}$v(s*O*n*|/i0U0V3W4P4j6}7`9t;z<W<XS0Q*m0R#W:|#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn:}:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!^;_(o)`*U*^._.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<e`;`3l6q6t6x8o9p9s:bS;i.a3UT;j6s8r!O%Qi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cv*P$v(s*Q*m*|/]/i0U0V3W4P4b4j6}7`9t;z<W<XS0S*n0T#W;O#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;P:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!b;a(o)`*U*^.`.a.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<ed;b3l6r6s6x8o8p9p9q9s:bS;k.b3VT;l6t8srnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ&a!UR,e&jrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR&a!UQ+}&XR1P+vsnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ1],SS5b1`1aU7x5`5a5eS9Z7z7{S9|9Y9]Q:Z9}R:`:[Q&h!VR,^&dR5n1iS%||&RR0x+mQ&m!WR,h&nR,n&sT1x,m1zR,r&tQ,q&tR2R,rQ't!zR-n'tSsOtQ#cXT%ms#cQ!}TR'v!}Q#QUR'x#QQ)w$uR/T)wQ#TVR'z#TQ#WWU(Q#W(R-uQ(R#XR-u(SQ-R'TR2_-RQ.j(sR3X.jQ.m(uS3[.m3]R3].nQ-Y'ZR2c-YY!rQ'Z-Y1[5]R'e!rS#^W%eU(X#^(Y-vQ(Y#_R-v(TQ-U'WR2a-Ut`OXst!V!Z#c%j&d&f&m&o&p&r,h,m1w1zS#gZ%bU#q`#g.PR.P(dQ(e#iQ-|(aW.U(e-|2t6bQ2t-}R6b2uQ)i$kR.|)iQ$ohR)o$oQ$bcU)_$b-q:xQ-q:eR:x)lQ/d*VW3{/d3|7R8zU3|/e/f/gS7R3}4OR8z7S$X)|$v(o(s)`*U*^*m*n*w*x*|.a.b.d.e.f/S/X/]/_/a/i/n0U0V0f1Q1S3R3S3T3W3l4P4Q4U4b4d4j5R5T6k6l6m6n6s6t6v6w6x6}7U7Y7`7b7d8o8p8q8{9P9p9q9r9s9t:X:b;z<W<X<d<eQ/l*^U4T/l4V7VQ4V/nR7V4UQ*h$|R/z*hr*O$v(s*m*n*|/i0U0V3W4P4j6}7`9t;z<W<X!^._(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<eU/^*O._6qa6q3l6s6t6x8o9p9s:bQ0R*mQ3U.aU4c0R3U8rR8r6sv*Q$v(s*m*n*|/]/i0U0V3W4P4b4j6}7`9t;z<W<X!b.`(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<eU/`*Q.`6re6r3l6s6t6x8o8p9p9q9s:bQ0T*nQ3V.bU4e0T3V8sR8s6tQ*s%UR0X*sQ4o0fR7c4oQ+U%hR0d+UQ5V1VS7q5V9XR9X7rQ,P&YR1Y,PQ5]1[R7u5]Q1h,ZS5l1h8SR8S5nQ0s+iW4x0s4z7i9TQ4z0vQ7i4yR9T7jQ+n%|R0y+nQ1z,mR5|1zYrOXst#cQ&q!ZQ+W%jQ,g&mQ,i&oQ,j&pQ,l&rQ1u,hS1x,m1zR5{1wQ%lpQ&u!_Q&x!aQ&z!bQ&|!cQ'l!tQ+V%iQ+c%vQ+u&SQ,]&hQ,t&wW-e'f'n'o'rQ-l'jQ/y*gQ0n+dS1k,^,aQ2S,sQ2T,vQ2U,wQ2j-dW2l-g-h-k-mQ4q0oQ4}0|Q5Q1QQ5f1bQ5p1mQ5z1vU6Z2k2n2qQ6^2oQ7e4rQ7m5PQ7n5RQ7t5[Q7}5gQ8T5oS8d6[6`Q8f6_Q9U7kQ9^8OQ9c8UQ9j8eQ9z9VQ:P9_Q:T9kR:]:QQ%vyQ'_!iQ'j!tU+d%w%x%yQ,{'QU-`'`'a'bS-d'f'pQ/p*bS0o+e+fQ2[,}S2h-a-bQ2o-iQ4Y/tQ4r0pQ6V2bQ6Y2iQ6_2pR7Z4^S$wi<YR*t%VU%Ui%V<YR0W*rQ$viS(o#u+`Q(s#wS)`$c$dQ*U$xQ*^${Q*m%OQ*n%QQ*w%[Q*x%]Q*|%aQ.a:|Q.b;OQ.d;SQ.e;UQ.f;WQ/S)uS/X){/ZQ/])}Q/_*PQ/a*RQ/i*YQ/n*`Q0U*pQ0V*qh0f+].Z1^3O5c6g7y8j9[9n:O:WQ1Q+wQ1S+zQ3R;_Q3S;aQ3T;cQ3W.iS3l:y:zQ4P/jQ4Q/kQ4U/mQ4b0QQ4d0SQ4j0^Q5R1RQ5T1UQ6k;gQ6l;iQ6m;kQ6n;mQ6s:}Q6t;PQ6v;TQ6w;VQ6x;XQ6}3xQ7U4SQ7Y4[Q7`4fQ7b4nQ7d4pQ8o;dQ8p;`Q8q;bQ8{7TQ9P7^Q9p;hQ9q;jQ9r;lQ9s;nQ9t8wQ:X;qQ:b;rQ;z<YQ<W<bQ<X<cQ<d<fR<e<gnpOXst!Z#c%j&m&o&p&r,h,m1w1zQ!fPS#eZ#nQ&w!`U'c!o5Y7wQ'y#RQ(|#{Q)m$mS,a&f&iQ,f&jQ,s&vQ,x'OQ-[']Q.p(zQ/Q)nQ0b+SQ0i+^Q1s,eQ2f-^Q2|.[Q3s.{Q4h0[Q5a1_Q5r1oQ5s1pQ5w1rQ5y1tQ6O1|Q6f3PQ6{3pQ7{5dQ8X5tQ8Y5uQ8[5xQ8l6jQ9]7|R9g8]#WcOPXZst!Z!`!o#c#n#{%j&f&i&j&m&o&p&r&v'O'](z+S+^,e,h,m-^.[0[1_1o1p1r1t1w1z1|3P5Y5d5t5u5x6j7w7|8]Q#XWQ#dYQ%nuQ%ovS%qw!gS'|#V(PQ(S#YQ(n#tQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)^$aQ)b$eW)l$m)n.{3pQ+Z%pQ+o%}S-O'S2]Q-m'mS-r'}-tQ-w(VQ-y(^Q.h(rQ.n(vQ.r:cQ.t:fQ.u:gQ.v:jQ/V)yQ0_+OQ2W,yQ2Z,|Q2k-fQ2r-zQ3Y.lQ3_:kQ3`:lQ3a:mQ3b:nQ3c:oQ3d:pQ3e:qQ3f:rQ3g:sQ3h:tQ3i:uQ3j:vQ3k.sQ3n:{Q3o;YQ3t:wQ4k0aQ4s0qQ6U;ZQ6[2mQ6a2sQ6o3ZQ6p;[Q6y;^Q6z;eQ7r5WQ8a6SQ8e6]Q8n;fQ8t;oQ8u;pQ9k8gQ9{9WQ:S9iQ:e#RR<P<]R#ZWR'U!eY!tQ'Z-Y1[5]S'Q!e-QQ'f!rS'p!u!xS'r!y5_S,}'R'YS-i'g'hQ-k'iQ2b-WR2p-jR(t#wR(w#xQ!fQT-X'Z-Y]!qQ!r'Z-Y1[5]Q#o]R'd:dT#jZ%bS#iZ%bS%hm,dU(a#g#h#kS-}(b(cQ.R(dQ0c+TQ2u.OU2v.P.Q.SS6c2w2xR8h6d`#]W#V#Y%e'}(W+Q-xr#fZm#g#h#k%b(b(c(d+T.O.P.Q.S2w2x6dQ1q,dQ2X,zQ6Q2PQ8`6RT;w'S+RT#`W%eS#_W%eS(O#V(WS(T#Y+QS-P'S+RT-s'}-xT'X!e%fQ$kfR)s$pT)h$k)iR3r.zT*X$x*ZR*a${Q0g+]Q2z.ZQ5`1^Q6h3OQ7z5cQ8k6gQ9Y7yQ9l8jQ9}9[Q:V9nQ:[:OR:_:WnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&g!VR,]&dtmOXst!U!V!Z#c%j&d&m&o&p&r,h,m1w1zR,d&jT%im,dR1W+|R,[&bQ&Q|R+t&RR+j%{T&k!W&nT&l!W&nT1y,m1z",nodeNames:"⚠ ArithOp ArithOp JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:371,context:aT,nodeProps:[["isolate",-8,4,5,13,33,35,48,50,52,""],["group",-26,8,16,18,65,201,205,209,210,212,215,218,228,230,236,238,240,242,245,251,257,259,261,263,265,267,268,"Statement",-32,12,13,28,31,32,38,48,51,52,54,59,67,75,79,81,83,84,106,107,116,117,134,137,139,140,141,142,144,145,164,165,167,"Expression",-23,27,29,33,37,39,41,168,170,172,173,175,176,177,179,180,181,183,184,185,195,197,199,200,"Type",-3,87,99,105,"ClassItem"],["openedBy",22,"<",34,"InterpolationStart",53,"[",57,"{",72,"(",157,"JSXStartCloseTag"],["closedBy",23,">",36,"InterpolationEnd",47,"]",58,"}",73,")",162,"JSXEndTag"]],propSources:[yT],skippedNodes:[0,4,5,271],repeatNodeCount:37,tokenData:"$Fj(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Ns!`!a$#_!a!b$(l!b!c$,k!c!}Er!}#O$-u#O#P$/P#P#Q$4h#Q#R$5r#R#SEr#S#T$7P#T#o$8Z#o#p$<k#p#q$=a#q#r$>q#r#s$?}#s$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$I|Er$I|$I}$Dd$I}$JO$Dd$JO$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(n%d_$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$f&j(Op(R!b't(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(P#S$f&j'u(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$f&j(Op(R!b'u(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$f&j!o$Ip(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|3l_'}$(n$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$f&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$a`$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$a``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$a`$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(R!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$a`(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k#%|:hh$f&j(Op(R!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__VS$f&j(Op(R!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]VS$f&j(R!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXVS$f&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSVSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWVS(R!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]VS$f&j(OpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWVS(OpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYVS(Op(R!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S#%|C}i$f&j(g!L^(Op(R!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr#%|EoP;=`<%lCr(CSFRk$f&j(Op(R!b$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$f&j(Op(R!b$Y#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv(CSJPP;=`<%lEr%#SJ_`$f&j(Op(R!b#l$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SKl_$f&j$O$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&COLva(p&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SNW`$f&j#x$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|! c_(Q$)`$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$f&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$a`$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(OpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$a`(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b(*Q!'t_!k(!b$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l!)O_!jM|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!*[b$f&j(Op(R!b'|#)d#m$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!+o`$f&j(Op(R!b#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!,|`$f&j(Op(R!bn&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!.Z_!Y&;l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!/ec$f&j(Op(R!b|'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!0ya$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!2Z_!XMt$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!3eg$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!5Vg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!6wc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!8_c$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!9uf$f&j(Op(R!b#k$IdOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpxz!;Zz{#,f{!P!;Z!P!Q#-{!Q!^!;Z!^!_#'Z!_!`#5k!`!a#7Q!a!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(r!;fb$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(Q!<w`$f&j(R!b!USOY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eb!Q!^!<n!^!_!GY!_!}!<n!}#O!Ja#O#P!Dj#P#o!<n#o#p!GY#p;'S!<n;'S;=`!Kj<%lO!<n&n!>Q^$f&j!USOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$f&j!USO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!USOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!US#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$f&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$f&j(R!b!USOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(R!b!USOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(R!b!USOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(R!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$f&j(R!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!<n#Q#o!Ja#o#p!Ic#p;'S!Ja;'S;=`!Kd<%lO!Ja(Q!KgP;=`<%l!Ja(Q!KmP;=`<%l!<n'`!Ky`$f&j(Op!USOY!KpYZ&cZr!Kprs!=ys!P!Kp!P!Q!L{!Q!^!Kp!^!_!Ns!_!}!Kp!}#O##z#O#P!Dj#P#o!Kp#o#p!Ns#p;'S!Kp;'S;=`#%T<%lO!Kp'`!MUi$f&j(Op!USOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!L{#[#](r#]#^!L{#^#a(r#a#b!L{#b#g(r#g#h!L{#h#i(r#i#j!L{#j#m(r#m#n!L{#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!NzZ(Op!USOY!NsZr!Nsrs!@Ys!P!Ns!P!Q# m!Q!}!Ns!}#O#!|#O#P!Bb#P;'S!Ns;'S;=`##t<%lO!Nst# tb(Op!USOY)rZr)rs#O)r#P#Z)r#Z#[# m#[#])r#]#^# m#^#a)r#a#b# m#b#g)r#g#h# m#h#i)r#i#j# m#j#m)r#m#n# m#n;'S)r;'S;=`*Z<%lO)rt##RX(OpOY#!|Zr#!|rs!Acs#O#!|#O#P!A{#P#Q!Ns#Q;'S#!|;'S;=`##n<%lO#!|t##qP;=`<%l#!|t##wP;=`<%l!Ns'`#$R^$f&j(OpOY##zYZ&cZr##zrs!Bws!^##z!^!_#!|!_#O##z#O#P!Cr#P#Q!Kp#Q#o##z#o#p#!|#p;'S##z;'S;=`#$}<%lO##z'`#%QP;=`<%l##z'`#%WP;=`<%l!Kp(r#%fk$f&j(Op(R!b!USOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[#%Z#[#]%Z#]#^#%Z#^#a%Z#a#b#%Z#b#g%Z#g#h#%Z#h#i%Z#i#j#%Z#j#m%Z#m#n#%Z#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W#'d](Op(R!b!USOY#'ZZr#'Zrs!GYsw#'Zwx!Nsx!P#'Z!P!Q#(]!Q!}#'Z!}#O#)w#O#P!Bb#P;'S#'Z;'S;=`#*w<%lO#'Z#W#(fe(Op(R!b!USOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[#(]#[#]*g#]#^#(]#^#a*g#a#b#(]#b#g*g#g#h#(]#h#i*g#i#j#(]#j#m*g#m#n#(]#n;'S*g;'S;=`+Z<%lO*g#W#*OZ(Op(R!bOY#)wZr#)wrs!Icsw#)wwx#!|x#O#)w#O#P!A{#P#Q#'Z#Q;'S#)w;'S;=`#*q<%lO#)w#W#*tP;=`<%l#)w#W#*zP;=`<%l#'Z(r#+W`$f&j(Op(R!bOY#*}YZ&cZr#*}rs!Jasw#*}wx##zx!^#*}!^!_#)w!_#O#*}#O#P!Cr#P#Q!;Z#Q#o#*}#o#p#)w#p;'S#*};'S;=`#,Y<%lO#*}(r#,]P;=`<%l#*}(r#,cP;=`<%l!;Z(CS#,sb$f&j(Op(R!b'v(;d!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(CS#.W_$f&j(Op(R!bS(;dOY#-{YZ&cZr#-{rs#/Vsw#-{wx#2gx!^#-{!^!_#4f!_#O#-{#O#P#0X#P#o#-{#o#p#4f#p;'S#-{;'S;=`#5e<%lO#-{(Bb#/`]$f&j(R!bS(;dOY#/VYZ&cZw#/Vwx#0Xx!^#/V!^!_#1j!_#O#/V#O#P#0X#P#o#/V#o#p#1j#p;'S#/V;'S;=`#2a<%lO#/V(AO#0`X$f&jS(;dOY#0XYZ&cZ!^#0X!^!_#0{!_#o#0X#o#p#0{#p;'S#0X;'S;=`#1d<%lO#0X(;d#1QSS(;dOY#0{Z;'S#0{;'S;=`#1^<%lO#0{(;d#1aP;=`<%l#0{(AO#1gP;=`<%l#0X(<v#1qW(R!bS(;dOY#1jZw#1jwx#0{x#O#1j#O#P#0{#P;'S#1j;'S;=`#2Z<%lO#1j(<v#2^P;=`<%l#1j(Bb#2dP;=`<%l#/V(Ap#2p]$f&j(OpS(;dOY#2gYZ&cZr#2grs#0Xs!^#2g!^!_#3i!_#O#2g#O#P#0X#P#o#2g#o#p#3i#p;'S#2g;'S;=`#4`<%lO#2g(<U#3pW(OpS(;dOY#3iZr#3irs#0{s#O#3i#O#P#0{#P;'S#3i;'S;=`#4Y<%lO#3i(<U#4]P;=`<%l#3i(Ap#4cP;=`<%l#2g(=h#4oY(Op(R!bS(;dOY#4fZr#4frs#1jsw#4fwx#3ix#O#4f#O#P#0{#P;'S#4f;'S;=`#5_<%lO#4f(=h#5bP;=`<%l#4f(CS#5hP;=`<%l#-{%#W#5xb$f&j$O$Id(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z+h#7_b$W#t$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z$/l#8rp$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#U%Z#U#V#>Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#d#AY#d#l%Z#l#m#D[#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;Rk$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#=R_$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>Zd$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Acc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Bye$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Deg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#FXi$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#HT_!d$b$f&j#|%<f(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#I__`l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^#Jk^g!*v!h'.r(Op(R!b(tSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Kg!Q!^*g!^!_#L]!_!`#M}!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#KpX$h&j(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#LfZ#n$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#MX!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#MbX$O$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#NWX#o$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh$ Oa#[%?x$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$!T!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W$!`_#g$Ih$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh$#nafBf#o$Id$c#|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$$s!`!a$%}!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$%O_#o$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$&Ya#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$'_!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$'j`#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$(wc(h$Ip$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$*S!P!^%Z!^!_*g!_!a%Z!a!b$+^!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$*__}'#p$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$+i`$f&j#y$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$,v_!{!Ln$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$.Q_!P(8n$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/UZ$f&jO!^$/w!^!_$0_!_#i$/w#i#j$0d#j#l$/w#l#m$2V#m#o$/w#o#p$0_#p;'S$/w;'S;=`$4b<%lO$/w(n$0OT^#S$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0dO^#S(n$0i[$f&jO!Q&c!Q![$1_![!^&c!_!c&c!c!i$1_!i#T&c#T#Z$1_#Z#o&c#o#p$3u#p;'S&c;'S;=`&w<%lO&c(n$1dZ$f&jO!Q&c!Q![$2V![!^&c!_!c&c!c!i$2V!i#T&c#T#Z$2V#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2[Z$f&jO!Q&c!Q![$2}![!^&c!_!c&c!c!i$2}!i#T&c#T#Z$2}#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3SZ$f&jO!Q&c!Q![$/w![!^&c!_!c&c!c!i$/w!i#T&c#T#Z$/w#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$3xR!Q![$4R!c!i$4R#T#Z$4R#S$4US!Q![$4R!c!i$4R#T#Z$4R#q#r$0_(n$4eP;=`<%l$/w!2r$4s_!V!+S$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$5}`#v$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$7[_$f&j(Op(R!b(X&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$8jk$f&j(Op(R!b'{&;d$[#t([!LYOY%ZYZ&cZr%Zrs&}st%Ztu$8Zuw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$8Z![!^%Z!^!_*g!_!c%Z!c!}$8Z!}#O%Z#O#P&c#P#R%Z#R#S$8Z#S#T%Z#T#o$8Z#o#p*g#p$g%Z$g;'S$8Z;'S;=`$<e<%lO$8Z+d$:jk$f&j(Op(R!b$[#tOY%ZYZ&cZr%Zrs&}st%Ztu$:_uw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$:_![!^%Z!^!_*g!_!c%Z!c!}$:_!}#O%Z#O#P&c#P#R%Z#R#S$:_#S#T%Z#T#o$:_#o#p*g#p$g%Z$g;'S$:_;'S;=`$<_<%lO$:_+d$<bP;=`<%l$:_(CS$<hP;=`<%l$8Z!5p$<tX![!3l(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g&CO$=la(o&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+^#q;'S%Z;'S;=`+a<%lO%Z%#`$?O_!Z$I`r`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$@Y_!pS$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$Aj|$f&j(Op(R!b't(;d$Y#t'{&;d([!LYOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(CS$Duk$f&j(Op(R!b'u(;d$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[TT,LT,zT,2,3,4,5,6,7,8,9,10,11,12,13,OT,new qO("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOt~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(Z~~",141,332),new qO("j~RQYZXz{^~^O'x~~aP!P!Qd~iO'y~~",25,315)],topRules:{Script:[0,6],SingleExpression:[1,269],SingleClassItem:[2,270]},dialects:{jsx:0,ts:14614},dynamicPrecedences:{69:1,79:1,81:1,165:1,193:1},specialized:[{term:319,get:M=>dT[M]||-1},{term:334,get:M=>AT[M]||-1},{term:70,get:M=>xT[M]||-1}],tokenPrec:14638}),ST=[MO("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),MO("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),MO("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),MO("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),MO("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),MO("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),MO("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),MO("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),MO("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),MO('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),MO('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],ET=ST.concat([MO("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),MO("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),MO("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),QT=new Ll,kT=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function CT(M){return(i,t)=>{let e=i.node.getChild("VariableDefinition");return e&&t(e,M),!0}}const pT=["FunctionDeclaration"],UT={FunctionDeclaration:CT("function"),ClassDeclaration:CT("class"),ClassExpression:()=>!0,EnumDeclaration:CT("constant"),TypeAliasDeclaration:CT("type"),NamespaceDeclaration:CT("namespace"),VariableDefinition(M,i){M.matchContext(pT)||i(M,"variable")},TypeDefinition(M,i){i(M,"type")},__proto__:null};function bT(M,i){let t=QT.get(i);if(t)return t;let e=[],N=!0;function s(i,t){let N=M.sliceString(i.from,i.to);e.push({label:N,type:t})}return i.cursor(Ml.IncludeAnonymous).iterate((i=>{if(N)N=!1;else if(i.name){let M=UT[i.name];if(M&&M(i,s)||kT.has(i.name))return!1}else if(i.to-i.from>8192){for(let t of bT(M,i.node))e.push(t);return!1}})),QT.set(i,e),e}const ZT=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,mT=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function YT(M){let i=tr(M.state).resolveInner(M.pos,-1);if(mT.indexOf(i.name)>-1)return null;let t="VariableName"==i.name||i.to-i.from<20&&ZT.test(M.state.sliceDoc(i.from,i.to));if(!t&&!M.explicit)return null;let e=[];for(let t=i;t;t=t.parent)kT.has(t.name)&&(e=e.concat(bT(M.state.doc,t)));return{options:e,from:t?i.from:M.pos,validFor:ZT}}function fT(M,i,t){var e;let N=[];for(;;){let s,u=i.firstChild;if("VariableName"==(null==u?void 0:u.name))return N.push(M(u)),{path:N.reverse(),name:t};if("MemberExpression"!=(null==u?void 0:u.name)||"PropertyName"!=(null===(e=s=u.lastChild)||void 0===e?void 0:e.name))return null;N.push(M(s)),i=u}}function WT(M){let i=new Map;return t=>{let e=function(M){let i=i=>M.state.doc.sliceString(i.from,i.to),t=tr(M.state).resolveInner(M.pos,-1);return"PropertyName"==t.name?fT(i,t.parent,i(t)):"."!=t.name&&"?."!=t.name||"MemberExpression"!=t.parent.name?mT.indexOf(t.name)>-1?null:"VariableName"==t.name||t.to-t.from<20&&ZT.test(i(t))?{path:[],name:i(t)}:"MemberExpression"==t.name?fT(i,t,""):M.explicit?{path:[],name:""}:null:fT(i,t.parent,"")}(t);if(!e)return null;let N=M;for(let M of e.path)if(N=N[M],!N)return null;let s=i.get(N);return s||i.set(N,s=function(M,i){let t=[],e=new Set;for(let N=0;;N++){for(let s of(Object.getOwnPropertyNames||Object.keys)(M)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(s)||e.has(s))continue;let u;e.add(s);try{u=M[s]}catch(M){continue}t.push({label:s,type:"function"==typeof u?/^[A-Z]/.test(s)?"class":i?"function":"method":i?"variable":"property",boost:-N})}let s=Object.getPrototypeOf(M);if(!s)return t;M=s}}(N,!e.path.length)),{from:t.pos-e.name.length,options:s,validFor:ZT}}}const VT=ir.define({name:"javascript",parser:wT.configure({props:[Lr.add({IfStatement:Sr({except:/^\s*({|else\b)/}),TryStatement:Sr({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:M=>M.baseIndent,SwitchBody:M=>{let i=M.textAfter,t=/^\s*\}/.test(i),e=/^\s*(case|default)\b/.test(i);return M.baseIndent+(t?0:e?1:2)*M.unit},Block:xr({closing:"}"}),ArrowFunction:M=>M.baseIndent+M.unit,"TemplateString BlockComment":()=>null,"Statement Property":Sr({except:/^{/}),JSXElement(M){let i=/^\s*<\//.test(M.textAfter);return M.lineIndent(M.node.from)+(i?0:M.unit)},JSXEscape(M){let i=/\s*\}/.test(M.textAfter);return M.lineIndent(M.node.from)+(i?0:M.unit)},"JSXOpenTag JSXSelfClosingTag":M=>M.column(M.node.from)+M.unit}),Qr.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":function(M){let i=M.firstChild,t=M.lastChild;return i&&i.to<t.from?{from:i.to,to:t.type.isError?M.to:t.from}:null},BlockComment:M=>({from:M.from+2,to:M.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),vT={test:M=>/^JSX/.test(M.name),facet:_l({commentTokens:{block:{open:"{/*",close:"*/}"}}})},GT=VT.configure({dialect:"ts"},"typescript"),PT=VT.configure({dialect:"jsx",props:[ql.add((M=>M.isTop?[vT]:void 0))]}),RT=VT.configure({dialect:"jsx ts",props:[ql.add((M=>M.isTop?[vT]:void 0))]},"typescript");let BT=M=>({label:M,type:"keyword"});const FT="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(BT),XT=FT.concat(["declare","implements","private","protected","public"].map(BT));function JT(M={}){let i=M.jsx?M.typescript?RT:PT:M.typescript?GT:VT,t=M.typescript?ET.concat(XT):ST.concat(FT);return new rr(i,[VT.data.of({autocomplete:(e=mT,N=sa(t),M=>{for(let i=tr(M.state).resolveInner(M.pos,-1);i;i=i.parent){if(e.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return N(M)})}),VT.data.of({autocomplete:YT}),M.jsx?_T:[]]);var e,N}function HT(M,i,t=M.length){for(let e=null==i?void 0:i.firstChild;e;e=e.nextSibling)if("JSXIdentifier"==e.name||"JSXBuiltin"==e.name||"JSXNamespacedName"==e.name||"JSXMemberExpression"==e.name)return M.sliceString(e.from,Math.min(e.to,t));return""}const $T="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),_T=uj.inputHandler.of(((M,i,t,e,N)=>{if(($T?M.composing:M.compositionStarted)||M.state.readOnly||i!=t||">"!=e&&"/"!=e||!VT.isActiveAt(M.state,i,-1))return!1;let s=N(),{state:u}=s,D=u.changeByRange((M=>{var i;let t,{head:N}=M,s=tr(u).resolveInner(N-1,-1);if("JSXStartTag"==s.name&&(s=s.parent),u.doc.sliceString(N-1,N)!=e||"JSXAttributeValue"==s.name&&s.to>N);else{if(">"==e&&"JSXFragmentTag"==s.name)return{range:M,changes:{from:N,insert:"</>"}};if("/"==e&&"JSXStartCloseTag"==s.name){let M=s.parent,e=M.parent;if(e&&M.from==N-2&&((t=HT(u.doc,e.firstChild,N))||"JSXFragmentTag"==(null===(i=e.firstChild)||void 0===i?void 0:i.name))){let M=`${t}>`;return{range:$e.cursor(N+M.length,-1),changes:{from:N,insert:M}}}}else if(">"==e){let i=function(M){for(;;){if("JSXOpenTag"==M.name||"JSXSelfClosingTag"==M.name||"JSXFragmentTag"==M.name)return M;if("JSXEscape"==M.name||!M.parent)return null;M=M.parent}}(s);if(i&&!/^\/?>|^<\//.test(u.doc.sliceString(N,N+2))&&(t=HT(u.doc,i,N)))return{range:M,changes:{from:N,insert:`</${t}>`}}}}return{range:M}}));return!D.changes.empty&&(M.dispatch([s,u.update(D,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),qT=M=>void 0===M||M,KT=(M={})=>{let i=[];qT(M.defaultKeymap)&&i.push(...qg),qT(M.closeBracketsKeymap)&&i.push(...lO),qT(M.searchKeymap)&&i.push(...Hc),qT(M.historyKeymap)&&i.push(...ig),qT(M.foldKeymap)&&i.push(...vr),qT(M.lintKeymap)&&i.push(...UO);const t=[];return qT(M.lineNumbers)&&t.push(function(M={}){return[YI.of(M),QI(),VI]}()),qT(M.highlightActiveLineGutter)&&t.push(PI),qT(M.highlightSpecialChars)&&t.push(function(M={}){return[Pj.of(M),Rj||(Rj=nD.fromClass(class{constructor(M){this.view=M,this.decorations=Lu.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(M.state.facet(Pj)),this.decorations=this.decorator.createDeco(M)}makeDecorator(M){return new fj({regexp:M.specialChars,decoration:(i,t,e)=>{let{doc:N}=t.state,s=me(i[0],0);if(9==s){let M=N.lineAt(e),i=t.state.tabSize,s=ss(M.text,i,e-M.from);return Lu.replace({widget:new Fj((i-s%i)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=Lu.replace({widget:new Bj(M,s)}))},boundary:M.replaceTabs?void 0:/[^]/})}update(M){let i=M.state.facet(Pj);M.startState.facet(Pj)!=i?(this.decorator=this.makeDecorator(i),this.decorations=this.decorator.createDeco(M.view)):this.decorations=this.decorator.updateDeco(M,this.decorations)}},{decorations:M=>M.decorations}))]}()),qT(M.history)&&t.push(function(M={}){return[fo,Yo.of(M),uj.domEventHandlers({beforeinput(M,i){let t="historyUndo"==M.inputType?Vo:"historyRedo"==M.inputType?vo:null;return!!t&&(M.preventDefault(),t(i))}})]}()),qT(M.foldGutter)&&t.push(function(M={}){let i=Object.assign(Object.assign({},Jr),M),t=new Hr(i,!0),e=new Hr(i,!1),N=nD.fromClass(class{constructor(M){this.from=M.viewport.from,this.markers=this.buildMarkers(M)}update(M){(M.docChanged||M.viewportChanged||M.startState.facet(lr)!=M.state.facet(lr)||M.startState.field(mr,!1)!=M.state.field(mr,!1)||tr(M.startState)!=tr(M.state)||i.foldingChanged(M))&&(this.markers=this.buildMarkers(M.view))}buildMarkers(M){let i=new JN;for(let N of M.viewportLineBlocks){let s=Yr(M.state,N.from,N.to)?e:Cr(M.state,N.from,N.to)?t:null;s&&i.add(N.from,N.from,s)}return i.finish()}}),{domEventHandlers:s}=i;return[N,SI({class:"cm-foldGutter",markers(M){var i;return(null===(i=M.plugin(N))||void 0===i?void 0:i.markers)||XN.empty},initialSpacer:()=>new Hr(i,!1),domEventHandlers:Object.assign(Object.assign({},s),{click:(M,i,t)=>{if(s.click&&s.click(M,i,t))return!0;let e=Yr(M.state,i.from,i.to);if(e)return M.dispatch({effects:br.of(e)}),!0;let N=Cr(M.state,i.from,i.to);return!!N&&(M.dispatch({effects:Ur.of(N)}),!0)}})}),Rr()]}()),qT(M.drawSelection)&&t.push(function(M={}){return[Sj.of(M),Qj,Cj,Uj,iD.of(!0)]}()),qT(M.dropCursor)&&t.push([Zj,mj]),qT(M.allowMultipleSelections)&&t.push(vN.allowMultipleSelections.of(!0)),qT(M.indentOnInput)&&t.push(vN.transactionFilter.of((M=>{if(!M.docChanged||!M.isUserEvent("input.type")&&!M.isUserEvent("input.complete"))return M;let i=M.startState.languageDataAt("indentOnInput",M.startState.selection.main.head);if(!i.length)return M;let t=M.newDoc,{head:e}=M.newSelection.main,N=t.lineAt(e);if(e>N.from+200)return M;let s=t.sliceString(N.from,e);if(!i.some((M=>M.test(s))))return M;let{state:u}=M,D=-1,n=[];for(let{head:M}of u.selection.ranges){let i=u.doc.lineAt(M);if(i.from==D)continue;D=i.from;let t=Or(u,i.from);if(null==t)continue;let e=/^\s*/.exec(i.text)[0],N=ar(u,t);e!=N&&n.push({from:i.from,to:i.from+e.length,insert:N})}return n.length?[M,{changes:n,sequential:!0}]:M}))),qT(M.syntaxHighlighting)&&t.push(function(M,i){let t,e=[to];return M instanceof _r&&(M.module&&e.push(uj.styleModule.of(M.module)),t=M.themeType),(null==i?void 0:i.fallback)?e.push(Kr.of(M)):t?e.push(qr.computeN([uj.darkTheme],(i=>i.facet(uj.darkTheme)==("dark"==t)?[M]:[]))):e.push(qr.of(M)),e}(eo,{fallback:!0})),qT(M.bracketMatching)&&t.push(function(M={}){return[Do.of(M),ro]}()),qT(M.closeBrackets)&&t.push([IO,sO]),qT(M.autocompletion)&&t.push(LO()),qT(M.rectangularSelection)&&t.push(function(M){let i=(null==M?void 0:M.eventFilter)||(M=>M.altKey&&0==M.button);return uj.mouseSelectionStyle.of(((M,t)=>i(t)?_j(M,t):null))}()),qT(M.crosshairCursor)&&t.push(function(M={}){let[i,t]=qj[M.key||"Alt"],e=nD.fromClass(class{constructor(M){this.view=M,this.isDown=!1}set(M){this.isDown!=M&&(this.isDown=M,this.view.update([]))}},{eventObservers:{keydown(M){this.set(M.keyCode==i||t(M))},keyup(M){M.keyCode!=i&&t(M)||this.set(!1)},mousemove(M){this.set(t(M))}}});return[e,uj.contentAttributes.of((M=>{var i;return(null===(i=M.plugin(e))||void 0===i?void 0:i.isDown)?Kj:null}))]}()),qT(M.highlightActiveLine)&&t.push(Jj),qT(M.highlightSelectionMatches)&&t.push(function(M){let i=[hc,Lc];return M&&i.push(cc.of(M)),i}()),M.tabSize&&"number"==typeof M.tabSize&&t.push(gr.of(" ".repeat(M.tabSize))),t.concat([gj.of(i.flat())]).filter(Boolean)};M.NileCodeEditor=class extends RM{constructor(){super(...arguments),this.lineNumbersComp=new gN}static get styles(){return[ae]}connectedCallback(){super.connectedCallback()}convertToSingleLine(M){return M.replace(/\s+/g," ").trim()}updated(){const M=VT.data.of({autocomplete:WT(this.customOptions)});let i=vN.create({doc:this.multiline?this.value:this.convertToSingleLine(this.value),extensions:[KT({lineNumbers:!!this.showLineNumbers,foldGutter:!!this.multiline}),M,LO(),JT(),this.multiline?[]:this.restrictSingleLine(),uj.updateListener.of((M=>{M.docChanged&&this.emitValues(this.view.state.doc.toString())}))]});this.view=new uj({state:i,parent:this.codeEditor})}emitValues(M){this.emit("nile-change",{value:M})}expandCodeEditor(){this.emit("nile-expand",{expand:!0})}restrictSingleLine(){return vN.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}render(){return V`<div class="code-mirror">
|
5674
5703
|
${this.multiline?"":V`<nile-icon
|
5675
5704
|
name="fullscreenshrink"
|
5676
5705
|
class="code-editor__icon__container"
|
@@ -5678,7 +5707,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
5678
5707
|
color="black"
|
5679
5708
|
@click="${M=>this.expandCodeEditor()}"
|
5680
5709
|
></nile-icon>`}
|
5681
|
-
</div>`}},i([cM(".code-mirror")],M.NileCodeEditor.prototype,"codeEditor",void 0),i([rM({type:Boolean})],M.NileCodeEditor.prototype,"multiline",void 0),i([rM({type:String})],M.NileCodeEditor.prototype,"value",void 0),i([rM({type:String})],M.NileCodeEditor.prototype,"customOptions",void 0),i([rM({type:String})],M.NileCodeEditor.prototype,"showLineNumbers",void 0),M.NileCodeEditor=i([jM("nile-code-editor")],M.NileCodeEditor);const
|
5710
|
+
</div>`}},i([cM(".code-mirror")],M.NileCodeEditor.prototype,"codeEditor",void 0),i([rM({type:Boolean})],M.NileCodeEditor.prototype,"multiline",void 0),i([rM({type:String})],M.NileCodeEditor.prototype,"value",void 0),i([rM({type:String})],M.NileCodeEditor.prototype,"customOptions",void 0),i([rM({type:String})],M.NileCodeEditor.prototype,"showLineNumbers",void 0),M.NileCodeEditor=i([jM("nile-code-editor")],M.NileCodeEditor);const ML=D`
|
5682
5711
|
:host {
|
5683
5712
|
display: contents;
|
5684
5713
|
|
@@ -5839,7 +5868,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
5839
5868
|
[hidden] {
|
5840
5869
|
display: none;
|
5841
5870
|
}
|
5842
|
-
`,
|
5871
|
+
`,iL=Object.assign(document.createElement("div"),{className:"nile-toast-stack"});M.NileToast=class extends RM{constructor(){super(...arguments),this.hasSlotController=new ZM(this,"icon","suffix"),this.open=!1,this.noIcon=!1,this.closable=!1,this.hasSlottedContent=!1,this.hasSlottedIcon=!1,this.prefixImageUrl="",this.variant="success",this.duration=1/0,this.title="",this.content="",this.tags=[]}firstUpdated(){this.base.hidden=!this.open}restartAutoHide(){clearTimeout(this.autoHideTimeout),this.open&&this.duration<1/0&&(this.autoHideTimeout=window.setTimeout((()=>this.hide()),this.duration))}handleCloseClick(){this.hide()}handleMouseMove(){this.restartAutoHide()}async handleOpenChange(){if(this.open){this.emit("nile-show"),this.duration<1/0&&this.restartAutoHide(),await at(this.base),this.base.hidden=!1;const{keyframes:M,options:i}=zt(this,"alert.show",{dir:"ltr"});await ot(this.base,M,i),this.emit("nile-after-show")}else{this.emit("nile-hide"),clearTimeout(this.autoHideTimeout),await at(this.base);const{keyframes:M,options:i}=zt(this,"alert.hide",{dir:"ltr"});await ot(this.base,M,i),this.base.hidden=!0,this.emit("nile-after-hide")}}handleDurationChange(){this.restartAutoHide()}async show(){if(!this.open)return this.open=!0,yt(this,"nile-after-show")}async hide(){if(this.open)return this.open=!1,yt(this,"nile-after-hide")}getIconNameByVariant(){switch(this.variant){case"success":default:return"tick";case"info":return"helpsupport";case"warning":return"info-icon";case"error":return"cancel"}}handleSlotChange(M){const i=M.target;if(i.assignedNodes({flatten:!0}),"message"===i.name){const M=i.assignedNodes({flatten:!0});this.hasSlottedContent=M.length>0}if("icon"===i.name){const M=i.assignedNodes({flatten:!0});this.hasSlottedIcon=M.length>0}}async toast(){return new Promise((M=>{null===iL.parentElement&&document.body.append(iL),iL.appendChild(this),requestAnimationFrame((()=>{this.clientWidth,this.show()})),this.addEventListener("nile-after-hide",(()=>{iL.removeChild(this),M(),null===iL.querySelector("nile-alert")&&iL.remove()}),{once:!0})}))}toastTags(M,i){return V`
|
5843
5872
|
<div class="alert__tag">
|
5844
5873
|
<img class="alert__tag-image" src="${i}" />
|
5845
5874
|
<span class="alert__tag-content"> ${M} </span>
|
@@ -5912,17 +5941,17 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
5912
5941
|
></nile-icon-button>
|
5913
5942
|
`:""}
|
5914
5943
|
</div>
|
5915
|
-
`}},M.NileToast.styles=
|
5944
|
+
`}},M.NileToast.styles=ML,i([cM('[part~="base"]')],M.NileToast.prototype,"base",void 0),i([rM({type:Boolean,reflect:!0})],M.NileToast.prototype,"open",void 0),i([rM({type:Boolean,reflect:!0})],M.NileToast.prototype,"noIcon",void 0),i([rM({type:Boolean,reflect:!0})],M.NileToast.prototype,"closable",void 0),i([rM({type:Boolean,reflect:!0})],M.NileToast.prototype,"hasSlottedContent",void 0),i([rM({type:Boolean,reflect:!0})],M.NileToast.prototype,"hasSlottedIcon",void 0),i([rM({type:String,reflect:!0})],M.NileToast.prototype,"prefixImageUrl",void 0),i([rM({reflect:!0})],M.NileToast.prototype,"variant",void 0),i([rM({type:Number})],M.NileToast.prototype,"duration",void 0),i([rM({type:String})],M.NileToast.prototype,"title",void 0),i([rM({type:String})],M.NileToast.prototype,"content",void 0),i([rM({type:Array,reflect:!0})],M.NileToast.prototype,"tags",void 0),i([GM("open",{waitUntilFirstUpdate:!0})],M.NileToast.prototype,"handleOpenChange",null),i([GM("duration")],M.NileToast.prototype,"handleDurationChange",null),M.NileToast=i([jM("nile-toast")],M.NileToast),ht("alert.show",{keyframes:[{opacity:0,scale:.8},{opacity:1,scale:1}],options:{duration:250,easing:"ease"}}),ht("alert.hide",{keyframes:[{opacity:1,scale:1},{opacity:0,scale:.8}],options:{duration:250,easing:"ease"}});const tL=D`
|
5916
5945
|
:host {
|
5917
5946
|
display: flex;
|
5918
5947
|
align-items: center;
|
5919
5948
|
}
|
5920
|
-
`;M.NileBreadcrumb=class extends RM{static get styles(){return[
|
5949
|
+
`;M.NileBreadcrumb=class extends RM{static get styles(){return[tL]}connectedCallback(){super.connectedCallback(),this.updateComplete.then((()=>{this.changeLastItem()}))}changeLastItem(){const M=[...this.querySelectorAll("nile-breadcrumb-item")];M[M.length-1].isLast=!0}handleRemoveClick(M){this.emit("nile-click",{value:M.target.innerText})}render(){return V`
|
5921
5950
|
<slot
|
5922
5951
|
@nile-click-item=${this.handleRemoveClick}
|
5923
5952
|
class="breadcrumb"
|
5924
5953
|
></slot>
|
5925
|
-
`}},M.NileBreadcrumb=i([jM("nile-breadcrumb")],M.NileBreadcrumb);const
|
5954
|
+
`}},M.NileBreadcrumb=i([jM("nile-breadcrumb")],M.NileBreadcrumb);const eL=D`
|
5926
5955
|
:host {
|
5927
5956
|
display: flex;
|
5928
5957
|
align-items: center;
|
@@ -5956,7 +5985,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
5956
5985
|
.nile-breadcrumb-item__last-slot-text {
|
5957
5986
|
color: #026e78;
|
5958
5987
|
}
|
5959
|
-
`;M.NileBreadcrumbItem=class extends RM{constructor(){super(...arguments),this.isLast=!1}static get styles(){return[
|
5988
|
+
`;M.NileBreadcrumbItem=class extends RM{constructor(){super(...arguments),this.isLast=!1}static get styles(){return[eL]}handleClick(){this.isLast||this.emit("nile-click-item")}render(){return V`
|
5960
5989
|
<slot
|
5961
5990
|
class=${dM({"nile-breadcrumb-item__slot-text":!this.isLast,"nile-breadcrumb-item__last-slot-text":this.isLast})}
|
5962
5991
|
@click=${this.handleClick}
|
@@ -5968,7 +5997,7 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
5968
5997
|
class=${dM({"nile-breadcrumb-item__arrow":!0,"nile-breadcrumb-item__arrow-hidden":this.isLast})}
|
5969
5998
|
size="14"
|
5970
5999
|
></nile-icon>
|
5971
|
-
`}},i([oM()],M.NileBreadcrumbItem.prototype,"isLast",void 0),M.NileBreadcrumbItem=i([jM("nile-breadcrumb-item")],M.NileBreadcrumbItem);const
|
6000
|
+
`}},i([oM()],M.NileBreadcrumbItem.prototype,"isLast",void 0),M.NileBreadcrumbItem=i([jM("nile-breadcrumb-item")],M.NileBreadcrumbItem);const NL=D`
|
5972
6001
|
|
5973
6002
|
:host {
|
5974
6003
|
box-sizing: border-box;
|
@@ -6034,4 +6063,4 @@ const mM=Symbol.for(""),YM=M=>{if((null==M?void 0:M.r)===mM)return null==M?void
|
|
6034
6063
|
<slot part="body" class="card__body"></slot>
|
6035
6064
|
</div>
|
6036
6065
|
<slot name="footer" part="footer" ?hidden="${!this.hasSlotController.test("footer")}" class="card__footer"></slot>
|
6037
|
-
`}},M.NileCard.styles=
|
6066
|
+
`}},M.NileCard.styles=NL,M.NileCard=i([jM("nile-card")],M.NileCard)}({});
|