@aquera/nile-elements 0.0.42-1 → 0.0.42-2
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.d.ts +9 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.js +84 -46
- 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/tsconfig.tsbuildinfo +1 -1
- package/dist/index.iife.js +14 -14
- package/dist/nile-code-editor/extensionSetup.cjs.js +5 -5
- 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 +3 -3
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +9 -0
- package/dist/src/nile-code-editor/nile-code-editor.js +84 -46
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/nile-code-editor/nile-code-editor.ts +91 -39
package/dist/index.iife.js
CHANGED
@@ -5787,7 +5787,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
5787
5787
|
align-self: start;
|
5788
5788
|
padding: 5px 5px 0px 0px;
|
5789
5789
|
}
|
5790
|
-
`;class Te{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 he(this),N=new he(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 he(this,M)}iterRange(M,i=this.length){return new Ae(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 xe(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 Oe(M):Le.from(Oe.split(M,[])):Te.empty}}class Oe extends Te{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],D=e+s.length;if((i?t:D)>=M)return new de(e,D,t,s);e=D+1,t++}}decompose(M,i,t,e){let N=M<=0&&i>=this.length?this:new Oe(ye(this.text,M,i),Math.min(i,this.length)-Math.max(0,M));if(1&e){let M=t.pop(),i=ze(N.text,M.text.slice(),0,N.length);if(i.length<=32)t.push(new Oe(i,M.length+N.length));else{let M=i.length>>1;t.push(new Oe(i.slice(0,M)),new Oe(i.slice(M)))}}else t.push(N)}replace(M,i,t){if(!(t instanceof Oe))return super.replace(M,i,t);[M,i]=we(this,M,i);let e=ze(this.text,ze(t.text,ye(this.text,0,M)),i),N=this.length+t.length-(i-M);return e.length<=32?new Oe(e,N):Le.from(Oe.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 D=this.text[s],j=N+D.length;N>M&&s&&(e+=t),M<j&&i>N&&(e+=D.slice(Math.max(0,M-N),i-N)),N=j+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 Oe(t,e)),t=[],e=-1);return e>-1&&i.push(new Oe(t,e)),i}}class Le extends Te{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],D=e+s.length,j=t+s.lines-1;if((i?j:D)>=M)return s.lineInner(M,i,t,e);e=D+1,t=j+1}}decompose(M,i,t,e){for(let N=0,s=0;s<=i&&N<this.children.length;N++){let D=this.children[N],j=s+D.length;if(M<=j&&i>=s){let N=e&((s<=M?1:0)|(j>=i?2:0));s>=M&&j<=i&&!N?t.push(D):D.decompose(M-s,i-s,t,N)}s=j+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],D=N+s.length;if(M>=N&&i<=D){let j=s.replace(M-N,i-N,t),u=this.lines-s.lines+j.lines;if(j.lines<u>>4&&j.lines>u>>6){let N=this.children.slice();return N[e]=j,new Le(N,this.length-(i-M)+t.length)}return super.replace(N,D,j)}N=D+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 D=this.children[N],j=s+D.length;s>M&&N&&(e+=t),M<j&&i>s&&(e+=D.sliceString(M-s,i-s,t)),s=j+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,D]=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==D)return t;let j=this.children[e],u=M.children[N];if(j!=u)return t+j.scanIdentical(u,i);t+=j.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 Oe(t,i)}let e=Math.max(32,t>>5),N=e<<1,s=e>>1,D=[],j=0,u=-1,I=[];function g(M){let i;if(M.lines>N&&M instanceof Le)for(let i of M.children)g(i);else M.lines>s&&(j>s||!j)?(n(),D.push(M)):M instanceof Oe&&j&&(i=I[I.length-1])instanceof Oe&&M.lines+i.lines<=32?(j+=M.lines,u+=M.length+1,I[I.length-1]=new Oe(i.text.concat(M.text),i.length+1+M.length)):(j+M.lines>e&&n(),j+=M.lines,u+=M.length+1,I.push(M))}function n(){0!=j&&(D.push(1==I.length?I[0]:Le.from(I,u)),u=-1,j=I.length=0)}for(let i of M)g(i);return n(),1==D.length?D[0]:new Le(D,i)}}function ze(M,i,t=0,e=1e9){for(let N=0,s=0,D=!0;s<M.length&&N<=e;s++){let j=M[s],u=N+j.length;u>=t&&(u>e&&(j=j.slice(0,e-N)),N<t&&(j=j.slice(t-N)),D?(i[i.length-1]+=j,D=!1):i.push(j)),N=u+1}return i}function ye(M,i,t){return ze(M,[""],i,t)}Te.empty=new Oe([""],0);class he{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 Oe?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,D=e instanceof Oe?e.text.length:e.children.length;if(s==(i>0?D: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 Oe){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 Oe?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 Ae{constructor(M,i,t){this.value="",this.done=!1,this.cursor=new he(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 xe{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&&(Te.prototype[Symbol.iterator]=function(){return this.iter()},he.prototype[Symbol.iterator]=Ae.prototype[Symbol.iterator]=xe.prototype[Symbol.iterator]=function(){return this});class de{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?Ue:be)(M,i,e)}function Ue(M,i,t){if(i==M.length)return i;i&&pe(M.charCodeAt(i))&&Ze(M.charCodeAt(i-1))&&i--;let e=Ye(M,i);for(i+=fe(e);i<M.length;){let N=Ye(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(Ye(M,e));)t++,e-=2;if(t%2==0)break;i+=2}}}return i}function be(M,i,t){for(;i>0;){let e=Ue(M,i-2,t);if(e<i)return e;i--}return 0}function pe(M){return M>=56320&&M<57344}function Ze(M){return M>=55296&&M<56320}function Ye(M,i){let t=M.charCodeAt(i);if(!Ze(t)||i+1==M.length)return t;let e=M.charCodeAt(i+1);return pe(e)?e-56320+(t-55296<<10)+65536:t}function me(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:Je(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 D=this.sections[s++],j=this.sections[s++],u=e+D;if(j<0){if(u>M)return N+(M-e);N+=D}else{if(t!=Ve.Simple&&u>=M&&(t==Ve.TrackDel&&e<M&&u>M||t==Ve.TrackBefore&&e<M||t==Ve.TrackAfter&&u>M))return null;if(u>M||u==M&&i<0&&!D)return M==e||i<0?N:N+j;N+=j}e=u}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],D=i[e+1];if(D>=0){i[e]=D,i[e+1]=s;let j=e>>1;for(;t.length<j;)t.push(Te.empty);t.push(s?M.slice(N,N+s):Te.empty)}N+=s}return new Ge(i,t)}compose(M){return this.empty?M:M.empty?this:Je(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 Xe(this);M:for(let s=0,D=0;;){let j=s==M.length?1e9:M[s++];for(;D<j||D==j&&0==N.len;){if(N.done)break M;let M=Math.min(N.len,j-D);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),D+=M}let u=M[s++];for(;D<u;){if(N.done)break M;let M=Math.min(N.len,u-D);Pe(i,M,-1),Pe(e,M,-1==N.ins?-1:0==N.off?N.ins:0),N.forward(M),D+=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,D=null;function j(M=!1){if(!M&&!e.length)return;s<i&&Pe(e,i-s,-1);let t=new Ge(e,N);D=D?D.compose(t.map(D)):t,e=[],N=[],s=0}return function M(u){if(Array.isArray(u))for(let i of u)M(i);else if(u instanceof Ge){if(u.length!=i)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${i})`);j(),D=D?D.compose(u.map(D)):u}else{let{from:M,to:D=M,insert:I}=u;if(M>D||M<0||D>i)throw new RangeError(`Invalid change range ${M} to ${D} (in doc of length ${i})`);let g=I?"string"==typeof I?Te.of(I.split(t||We)):I:Te.empty,n=g.length;if(M==D&&0==n)return;M<s&&j(),M>s&&Pe(e,M-s,-1),Pe(e,D-M,n),Re(N,e,g),s=D}}(M),j(!D),D}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(Te.empty);t[e]=Te.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(Te.empty);M.push(t)}}function Be(M,i,t){let e=M.inserted;for(let N=0,s=0,D=0;D<M.sections.length;){let j=M.sections[D++],u=M.sections[D++];if(u<0)N+=j,s+=j;else{let I=N,g=s,n=Te.empty;for(;I+=j,g+=u,u&&e&&(n=n.append(e[D-2>>1])),!(t||D==M.sections.length||M.sections[D+1]<0);)j=M.sections[D++],u=M.sections[D++];i(N,I,s,g,n),N=I,s=g}}}function Fe(M,i,t,e=!1){let N=[],s=e?[]:null,D=new Xe(M),j=new Xe(i);for(let M=-1;;)if(-1==D.ins&&-1==j.ins){let M=Math.min(D.len,j.len);Pe(N,M,-1),D.forward(M),j.forward(M)}else if(j.ins>=0&&(D.ins<0||M==D.i||0==D.off&&(j.len<D.len||j.len==D.len&&!t))){let i=j.len;for(Pe(N,j.ins,-1);i;){let t=Math.min(D.len,i);D.ins>=0&&M<D.i&&D.len<=t&&(Pe(N,0,D.ins),s&&Re(s,N,D.text),M=D.i),D.forward(t),i-=t}j.next()}else{if(!(D.ins>=0)){if(D.done&&j.done)return s?Ge.createSet(N,s):ve.create(N);throw new Error("Mismatched change set lengths")}{let i=0,t=D.len;for(;t;)if(-1==j.ins){let M=Math.min(t,j.len);i+=M,t-=M,j.forward(M)}else{if(!(0==j.ins&&j.len<t))break;t-=j.len,j.next()}Pe(N,i,M<D.i?D.ins:0),s&&M<D.i&&Re(s,N,D.text),M=D.i,D.forward(D.len-t)}}}function Je(M,i,t=!1){let e=[],N=t?[]:null,s=new Xe(M),D=new Xe(i);for(let M=!1;;){if(s.done&&D.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!=D.len||D.done){if(s.done||D.done)throw new Error("Mismatched change set lengths");{let i=Math.min(s.len2,D.len),t=e.length;if(-1==s.ins){let t=-1==D.ins?-1:D.off?0:D.ins;Pe(e,i,t,M),N&&t&&Re(N,e,D.text)}else-1==D.ins?(Pe(e,s.off?0:s.len,i,M),N&&Re(N,e,s.textBit(i))):(Pe(e,s.off?0:s.len,D.off?0:D.ins,M),N&&!D.off&&Re(N,e,D.text));M=(s.ins>i||D.ins>=0&&D.len>i)&&(M||e.length>t),s.forward2(i),D.forward(i)}}else Pe(e,0,D.ins,M),N&&Re(N,e,D.text),D.next()}}class Xe{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?Te.empty:M[i]}textBit(M){let{inserted:i}=this.set,t=this.i-2>>1;return t>=i.length&&!M?Te.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,D=Math.max(e.to,N.to);t<=i&&i--,M.splice(--t,2,e.anchor>e.head?$e.range(D,s):$e.range(s,D))}}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,D=2==this.type,j=!1,u=!1,I=[];for(let t of this.dependencies)"doc"==t?j=!0:"selection"==t?u=!0:0==(1&(null!==(i=M[t.id])&&void 0!==i?i:1))&&I.push(M[t.id]);return{create:M=>(M.values[s]=t(M),1),update(M,i){if(j&&i.docChanged||u&&(i.docChanged||i.selection)||eN(M,I)){let i=t(M);if(D?!tN(i,M.values[s],e):!e(i,M.values[s]))return M.values[s]=i,1}return 0},reconfigure:(M,i)=>{let j,u=i.config.address[N];if(null!=u){let N=ON(i,u);if(this.dependencies.every((t=>t instanceof Ke?i.facet(t)===M.facet(t):!(t instanceof DN)||i.field(t,!1)==M.field(t,!1)))||(D?tN(j=t(M),N,e):e(j=t(M),N)))return M.values[s]=N,0}else j=t(M);return M.values[s]=j,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&TN(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))),D=M[i.id]>>1;function j(M){let t=[];for(let i=0;i<e.length;i++){let s=ON(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)TN(M,i);return M.values[D]=j(M),1},update(M,t){if(!eN(M,s))return 0;let e=j(M);return i.compare(e,M.values[D])?0:(M.values[D]=e,1)},reconfigure(M,N){let s=eN(M,e),u=N.config.facets[i.id],I=N.facet(i);if(u&&!s&&MN(t,u))return M.values[D]=I,0;let g=j(M);return i.compare(g,I)?(M.values[D]=I,0):(M.values[D]=g,1)}}}const sN=Ke.define({static:!0});class DN{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 DN(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 jN=4,uN=3,IN=2,gN=1;function nN(M){return i=>new rN(i,M)}const lN={highest:nN(0),high:nN(gN),default:nN(IN),low:nN(uN),lowest:nN(jN)};class rN{constructor(M,i){this.inner=M,this.prec=i}}class oN{of(M){return new cN(this,M)}reconfigure(M){return oN.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,D){let j=N.get(M);if(null!=j){if(j<=D)return;let i=e[j].indexOf(M);i>-1&&e[j].splice(i,1),M instanceof cN&&t.delete(M.compartment)}if(N.set(M,D),Array.isArray(M))for(let i of M)s(i,D);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,D)}else if(M instanceof rN)s(M.inner,M.prec);else if(M instanceof DN)e[D].push(M),M.provides&&s(M.provides,D);else if(M instanceof iN)e[D].push(M),M.facet.extensions&&s(M.facet.extensions,IN);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,D)}}return s(M,IN),e.reduce(((M,i)=>M.concat(i)))}(M,i,s))t instanceof DN?e.push(t):(N[t.facet.id]||(N[t.facet.id]=[])).push(t);let D=Object.create(null),j=[],u=[];for(let M of e)D[M.id]=u.length<<1,u.push((i=>M.slot(i)));let I=null==t?void 0:t.config.facets;for(let M in N){let i=N[M],e=i[0].facet,s=I&&I[M]||[];if(i.every((M=>0==M.type)))if(D[e.id]=j.length<<1|1,MN(s,i))j.push(t.facet(e));else{let M=e.combine(i.map((M=>M.value)));j.push(t&&e.compare(M,t.facet(e))?t.facet(e):M)}else{for(let M of i)0==M.type?(D[M.id]=j.length<<1|1,j.push(M.value)):(D[M.id]=u.length<<1,u.push((i=>M.dynamicSlot(i))));D[e.id]=u.length<<1,u.push((M=>NN(M,e,i)))}}let g=u.map((M=>M(D)));return new aN(M,s,g,D,j,N)}}function TN(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 ON(M,i){return 1&i?M.config.staticValues[i>>1]:M.values[i>>1]}const LN=Ke.define(),zN=Ke.define({combine:M=>M.some((M=>M)),static:!0}),yN=Ke.define({combine:M=>M.length?M[0]:void 0,static:!0}),hN=Ke.define(),AN=Ke.define(),xN=Ke.define(),dN=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,D;if(e<M.length&&(N==i.length||i[N]>=M[e]))s=M[e++],D=M[e++];else{if(!(N<i.length))return t;s=i[N++],D=i[N++]}!t.length||t[t.length-1]<s?t.push(s,D):t[t.length-1]<D&&(t[t.length-1]=D)}}function UN(M,i,t){var e;let N,s,D;return t?(N=i.changes,s=Ge.empty(i.changes.length),D=M.changes.compose(i.changes)):(N=i.changes.map(M.changes),s=M.changes.mapDesc(i.changes,!0),D=M.changes.compose(N)),{changes:D,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 bN(M,i,t){let e=i.selection,N=YN(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(yN)),selection:e&&(e instanceof $e?e:$e.single(e.anchor,e.head)),effects:YN(i.effects),annotations:N,scrollIntoView:!!i.scrollIntoView}}function pN(M,i,t){let e=bN(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=UN(e,bN(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(xN),e=M;for(let N=t.length-1;N>=0;N--){let s=t[N](M);s&&Object.keys(s).length&&(e=UN(e,bN(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(hN)){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(AN);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]:pN(i,YN(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 YN(M){return null==M?ZN:Array.isArray(M)?M:[M]}var mN=function(M){return M[M.Word=0]="Word",M[M.Space=1]="Space",M[M.Other=2]="Other",M}(mN||(mN={}));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(p){}function VN(M){return i=>{if(!/\S/.test(i))return mN.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 mN.Word;for(let t=0;t<M.length;t++)if(i.indexOf(M[t])>-1)return mN.Word;return mN.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++)TN(this,M<<1);this.computeSlot=null}field(M,i=!0){let t=this.config.address[M.id];if(null!=t)return TN(this,t),ON(this,t);if(i)throw new RangeError("Field is not present in this state")}update(...M){return pN(this,M,!0)}applyTransaction(M){let i,t=this.config,{base:e,compartments:N}=t;for(let i of M.effects)i.is(oN.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=YN(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(zN)?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=YN(t.effects);for(let t=1;t<i.ranges.length;t++){let D=M(i.ranges[t]),j=this.changes(D.changes),u=j.map(e);for(let M=0;M<t;M++)N[M]=N[M].map(u);let I=e.mapDesc(j,!0);N.push(D.range.map(I)),e=e.compose(u),s=QN.mapEffects(s,u).concat(QN.mapEffects(YN(D.effects),I))}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 Te.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:(TN(this,i),ON(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 DN&&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 Te?M.doc:Te.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(zN)||(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(dN)}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,D=M-t;for(;s>0;){let M=Ce(i,s,!1);if(N(i.slice(M,s))!=mN.Word)break;s=M}for(;D<e;){let M=Ce(i,D);if(N(i.slice(D,M))!=mN.Word)break;D=M}return s==D?null:$e.range(s+t,D+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=zN,vN.tabSize=Ke.define({combine:M=>M.length?M[0]:4}),vN.lineSeparator=yN,vN.readOnly=dN,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=hN,vN.transactionFilter=AN,vN.transactionExtender=xN,oN.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,D=N.length;;){if(s==D)return s;let e=s+D>>1,j=N[e]-M||(t?this.value[e].endSide:this.value[e].startSide)-i;if(e==s)return j>=0?s:D;j>=0?D=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,D=-1;for(let j=0;j<this.value.length;j++){let u,I,g=this.value[j],n=this.from[j]+M,l=this.to[j]+M;if(n==l){let M=i.mapPos(n,g.startSide,g.mapMode);if(null==M)continue;if(u=I=M,g.startSide!=g.endSide&&(I=i.mapPos(n,g.endSide),I<u))continue}else if(u=i.mapPos(n,g.startSide),I=i.mapPos(l,g.endSide),u>I||u==I&&g.startSide>0&&g.endSide<=0)continue;(I-u||g.endSide-g.startSide)<0||(s<0&&(s=u),g.point&&(D=Math.max(D,I-u)),t.push(g),e.push(u-s),N.push(I-s))}return{mapped:t.length?new FN(e,N,t,D):null,pos:s}}}class JN{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 JN(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?JN.of(i):this;let D=new $N(this,null,-1).goto(0),j=0,u=[],I=new XN;for(;D.value||j<i.length;)if(j<i.length&&(D.from-i[j].from||D.startSide-i[j].value.startSide)>=0){let M=i[j++];I.addInner(M.from,M.to,M.value)||u.push(M)}else 1==D.rangeIndex&&D.chunkIndex<this.chunk.length&&(j==i.length||this.chunkEnd(D.chunkIndex)<i[j].from)&&(!s||e>this.chunkEnd(D.chunkIndex)||N<this.chunkPos[D.chunkIndex])&&I.addChunk(this.chunkPos[D.chunkIndex],this.chunk[D.chunkIndex])?D.nextChunk():((!s||e>D.to||N<D.from||s(D.from,D.to,D.value))&&(I.addInner(D.from,D.to,D.value)||u.push(RN.create(D.from,D.to,D.value))),D.next());return I.finishInner(this.nextLayer.isEmpty&&!u.length?JN.empty:this.nextLayer.update({add:u,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],D=this.chunk[N],j=M.touchesRange(s,s+D.length);if(!1===j)e=Math.max(e,D.maxPoint),i.push(D),t.push(M.mapPos(s));else if(!0===j){let{mapped:N,pos:j}=D.map(s,M);N&&(e=Math.max(e,N.maxPoint),i.push(N),t.push(j))}}let N=this.nextLayer.map(M);return 0==i.length?N:new JN(t,i,N||JN.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)),D=i.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=N)),j=HN(s,D,t),u=new KN(s,j,N),I=new KN(D,j,N);t.iterGaps(((M,i,t)=>Ms(u,M,I,i,t,e))),t.empty&&0==t.length&&Ms(u,0,I,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 D=HN(N,s),j=new KN(N,D,0).goto(t),u=new KN(s,D,0).goto(t);for(;;){if(j.to!=u.to||!is(j.active,u.active)||j.point&&(!u.point||!j.point.eq(u.point)))return!1;if(j.to>e)return!0;j.next(),u.next()}}static spans(M,i,t,e,N=-1){let s=new KN(M,null,N).goto(i),D=i,j=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,j);e.point(D,M,s.point,t,N,s.pointRank),j=Math.min(s.openEnd(M),t.length)}else M>D&&(e.span(D,M,s.active,j),j=s.openEnd(M));if(s.to>t)return j+(s.point&&s.to>t?1:0);D=s.to,s.next()}}static of(M,i=!1){let t=new XN;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 JN.empty;let i=M[M.length-1];for(let t=M.length-2;t>=0;t--)for(let e=M[t];e!=JN.empty;e=e.nextLayer)i=new JN(e.chunkPos,e.chunk,i,Math.max(e.maxPoint,i.maxPoint));return i}}JN.empty=new JN([],[],null,-1),JN.empty.nextLayer=JN.empty;class XN{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 XN)).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(JN.empty)}finishInner(M){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return M;let i=JN.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 D=e+N,j=e,u=e-i;for(;;){let i=M.to+u-t.to||M.endSide-t.endSide,e=i<0?M.to+u:t.to,N=Math.min(e,D);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(j,N,M.point,t.point):N>j&&!is(M.active,t.active)&&s.compareRange(j,N,M.active,t.active),e>D)break;j=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 Ds(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 js="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),us="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),Is="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class gs{constructor(M,i){this.rules=[];let{finish:t}=i||{};function e(M){return/^@/.test(M)?[M]:M.split(/,\s*/)}function N(M,i,s,D){let j=[],u=/^@(\w+)\b/.exec(M[0]),I=u&&"keyframes"==u[1];if(u&&null==i)return s.push(M[0]+";");for(let t in i){let D=i[t];if(/&/.test(t))N(t.split(/,\s*/).map((i=>M.map((M=>i.replace(/&/,M))))).reduce(((M,i)=>M.concat(i))),D,s);else if(D&&"object"==typeof D){if(!u)throw new RangeError("The value of a property ("+t+") should be a primitive value.");N(e(t),D,j,I)}else null!=D&&j.push(t.replace(/_.*/,"").replace(/[A-Z]/g,(M=>"-"+M.toLowerCase()))+": "+D+";")}(j.length||I)&&s.push((!t||u||D?M:M.map(t)).join(", ")+" {"+j.join(" ")+"}")}for(let i in M)N(e(i),M[i],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let M=Is[js]||1;return Is[js]=M+1,"ͼ"+M.toString(36)}static mount(M,i,t){let e=M[us],N=t&&t.nonce;e?N&&e.setNonce(N):e=new ls(M,N),e.mount(Array.isArray(i)?i:[i])}}let ns=new Map;class ls{constructor(M,i){let t=M.ownerDocument||M,e=t.defaultView;if(!M.head&&M.adoptedStyleSheets&&e.CSSStyleSheet){let i=ns.get(t);if(i)return M.adoptedStyleSheets=[i.sheet,...M.adoptedStyleSheets],M[us]=i;this.sheet=new e.CSSStyleSheet,M.adoptedStyleSheets=[this.sheet,...M.adoptedStyleSheets],ns.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[us]=this}mount(M){let i=this.sheet,t=0,e=0;for(let N=0;N<M.length;N++){let s=M[N],D=this.modules.indexOf(s);if(D<e&&D>-1&&(this.modules.splice(D,1),e--,D=-1),-1==D){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<D;)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 rs={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:"'"},os={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),Ts=0;Ts<10;Ts++)rs[48+Ts]=rs[96+Ts]=String(Ts);for(Ts=1;Ts<=24;Ts++)rs[Ts+111]="F"+Ts;for(Ts=65;Ts<=90;Ts++)rs[Ts]=String.fromCharCode(Ts+32),os[Ts]=String.fromCharCode(Ts);for(var Os in rs)os.hasOwnProperty(Os)||(os[Os]=rs[Os]);function Ls(M){let i;return i=11==M.nodeType?M.getSelection?M:M.ownerDocument:M,i.getSelection()}function zs(M,i){return!!i&&(M==i||M.contains(1!=i.nodeType?i.parentNode:i))}function ys(M,i){if(!i.anchorNode)return!1;try{return zs(M,i.anchorNode)}catch(M){return!1}}function hs(M){return 3==M.nodeType?ps(M,0,M.nodeValue.length).getClientRects():1==M.nodeType?M.getClientRects():[]}function As(M,i,t,e){return!!t&&(ds(M,i,t,e,-1)||ds(M,i,t,e,1))}function xs(M){for(var i=0;;i++)if(!(M=M.previousSibling))return i}function ds(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=xs(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,Us=null;function bs(M){if(M.setActive)return M.setActive();if(Us)return M.focus(Us);let i=[];for(let t=M;t&&(i.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(M.focus(null==Us?{get preventScroll(){return Us={preventScroll:!0},!0}}:void 0),!Us){Us=!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 ps(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 Ys(M){for(;M.attributes.length;)M.removeAttributeNode(M.attributes[0])}function ms(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,xs(M),i)}static after(M,i){return new fs(M.parentNode,xs(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,D=-1;for(let j=0,u=t,I=t;j<this.children.length;j++){let t=this.children[j],g=u+t.length;if(u<M&&g>i)return t.domBoundsAround(M,i,u);if(g>=M&&-1==e&&(e=j,N=u),u>i&&t.dom.parentNode==this.dom){s=j,D=I;break}I=g,u=g+t.breakAfter}return{from:N,to:D<0?t+this.length:D,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,D,j,u){let{children:I}=M,g=I.length?I[i]:null,n=s.length?s[s.length-1]:null,l=n?n.breakAfter:D;if(!(i==e&&g&&!D&&!l&&s.length<2&&g.merge(t,N,s.length?n:null,0==t,j,u))){if(e<I.length){let M=I[e];M&&(N<M.length||M.breakAfter&&(null==n?void 0:n.breakAfter))?(i==e&&(M=M.split(N),N=0),!l&&n&&M.merge(0,N,n,!0,0,u)?s[s.length-1]=M:((N||M.children.length&&!M.children[0].length)&&M.merge(0,N,null,!1,0,u),s.push(M))):(null==M?void 0:M.breakAfter)&&(n?n.breakAfter=1:D=1),e++}for(g&&(g.breakAfter=D,t>0&&(!D&&s.length&&g.merge(t,g.length,s[0],!1,j,0)?g.breakAfter=s.shift().breakAfter:(t<g.length||g.children.length&&0==g.children[g.children.length-1].length)&&g.merge(t,g.length,null,!1,j,0),i++));i<e&&s.length;)if(I[e-1].become(s[s.length-1]))e--,s.pop(),u=s.length?0:j;else{if(!I[i].become(s[0]))break;i++,s.shift(),j=s.length?0:u}!s.length&&i&&e<I.length&&!I[i-1].breakAfter&&I[e].merge(0,0,I[i-1],!1,j,u)&&i--,(i<e||s.length)&&M.replaceChildren(i,e,s)}}function Rs(M,i,t,e,N,s){let D=M.childCursor(),{i:j,off:u}=D.findPos(t,1),{i:I,off:g}=D.findPos(i,-1),n=i-t;for(let M of e)n+=M.length;M.length+=n,Ps(M,I,g,j,u,e,0,N,s)}let Bs="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},Fs="undefined"!=typeof document?document:{documentElement:{style:{}}};const Js=/Edge\/(\d+)/.exec(Bs.userAgent),Xs=/MSIE \d/.test(Bs.userAgent),Hs=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Bs.userAgent),$s=!!(Xs||Hs||Js),_s=!$s&&/gecko\/(\d+)/i.test(Bs.userAgent),qs=!$s&&/Chrome\/(\d+)/.exec(Bs.userAgent),Ks="webkitFontSmoothing"in Fs.documentElement.style,MD=!$s&&/Apple Computer/.test(Bs.vendor),iD=MD&&(/Mobile\/\w+/.test(Bs.userAgent)||Bs.maxTouchPoints>2);var tD={mac:iD||/Mac/.test(Bs.platform),windows:/Win/.test(Bs.platform),linux:/Linux|X11/.test(Bs.platform),ie:$s,ie_version:Xs?Fs.documentMode||6:Hs?+Hs[1]:Js?+Js[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:iD,android:/Android\b/.test(Bs.userAgent),webkit:Ks,safari:MD,webkit_version:Ks?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=Fs.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class eD 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 eD)||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 eD(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,D=0;0==i&&t<0||i==e&&t>=0?tD.chrome||tD.gecko||(i?(N--,D=1):s<e&&(s++,D=-1)):t<0?N--:s<e&&s++;let j=ps(M,N,s).getClientRects();if(!j.length)return null;let u=j[(D?D<0:t>=0)?0:j.length-1];tD.safari&&!D&&0==u.width&&(u=Array.prototype.find.call(j,(M=>M.width))||u);return D?Ss(u,D<0):u||null}(this.dom,M,i)}}class ND 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(Ys(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 ND&&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 D=t+s.length;D>M&&i.push(t<M?s.split(M-t):s),e<0&&t>=M&&(e=N),t=D,N++}let s=this.length-M;return this.length=M,e>-1&&(this.children.length=e,this.markDirty()),new ND(this.mark,i,s)}domAtPos(M){return jD(this,M)}coordsAt(M,i){return ID(this,M,i)}}class sD extends Vs{static create(M,i,t){return new sD(M,i,t)}constructor(M,i,t){super(),this.widget=M,this.length=i,this.side=t,this.prevWidget=null}split(M){let i=sD.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 sD&&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 sD&&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 Te.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):Te.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 DD extends Vs{constructor(M){super(),this.side=M}get length(){return 0}merge(){return!1}become(M){return M instanceof DD&&M.side==this.side}split(){return new DD(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 Te.empty}get isHidden(){return!0}}function jD(M,i){let t=M.dom,{children:e}=M,N=0;for(let M=0;N<e.length;N++){let s=e[N],D=M+s.length;if(!(D==M&&s.getSide()<=0)){if(i>M&&i<D&&s.dom.parentNode==t)return s.domAtPos(i-M);if(i<=M)break;M=D}}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 uD(M,i,t){let e,{children:N}=M;t>0&&i instanceof ND&&N.length&&(e=N[N.length-1])instanceof ND&&e.mark.eq(i.mark)?uD(e,i.children[0],t-1):(N.push(i),i.setParent(M)),M.length+=i.length}function ID(M,i,t){let e=null,N=-1,s=null,D=-1;!function M(i,j){for(let u=0,I=0;u<i.children.length&&I<=j;u++){let g=i.children[u],n=I+g.length;n>=j&&(g.children.length?M(g,j-I):(!s||s.isHidden&&t>0)&&(n>j||I==n&&g.getSide()>0)?(s=g,D=j-I):(I<j||I==n&&g.getSide()<0&&!g.isHidden)&&(e=g,N=j-I)),I=n}}(M,i);let j=(t<0?e:s)||e||s;return j?j.coordsAt(Math.max(0,j==e?N:D),t):function(M){let i=M.dom.lastChild;if(!i)return M.dom.getBoundingClientRect();let t=hs(i);return t[t.length-1]||null}(M)}function gD(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}eD.prototype.children=sD.prototype.children=DD.prototype.children=Ws;const nD=Object.create(null);function lD(M,i,t){if(M==i)return!0;M||(M=nD),i||(i=nD);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 rD(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 oD(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 cD 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 cD))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 cD;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){lD(this.attrs,M)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=M)}append(M,i){uD(this,M,i)}addLineDeco(M){let i=M.spec.attributes,t=M.spec.class;i&&(this.attrs=gD(i,this.attrs||{})),t&&(this.attrs=gD({class:t},this.attrs||{}))}domAtPos(M){return jD(this,M)}reuseDOM(M){"DIV"==M.nodeName&&(this.setDOM(M),this.flags|=6)}sync(M,i){var t;this.dom?4&this.flags&&(Ys(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&&(rD(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 ND;)e=e.lastChild;if(!(e&&this.length&&("BR"==e.nodeName||0!=(null===(t=Vs.get(e))||void 0===t?void 0:t.isEditable)||tD.ios&&this.children.some((M=>M instanceof eD))))){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 eD)||/[^ -~]/.test(t.text))return null;let e=hs(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=ID(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 cD)return N;if(s>i)break}e=s+N.breakAfter}return null}}class aD 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 aD&&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 aD(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):Te.empty}domBoundsAround(){return null}become(M){return M instanceof aD&&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 TD{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 OD=function(M){return M[M.Text=0]="Text",M[M.WidgetBefore=1]="WidgetBefore",M[M.WidgetAfter=2]="WidgetAfter",M[M.WidgetRange=3]="WidgetRange",M}(OD||(OD={}));class LD 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 zD(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 hD(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}=AD(M,e);i=(N?e?-3e8:-1:5e8)-1,t=1+(s?e?2e8:1:-6e8)}return new hD(M,i,t,e,M.widget||null,!0)}static line(M){return new yD(M)}static set(M,i=!1){return JN.of(M,i)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}LD.none=JN.empty;class zD extends LD{constructor(M){let{start:i,end:t}=AD(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 zD&&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))&&lD(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)}}zD.prototype.point=!1;class yD extends LD{constructor(M){super(-2e8,-2e8,null,M)}eq(M){return M instanceof yD&&this.spec.class==M.spec.class&&lD(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)}}yD.prototype.mapMode=Ve.TrackBefore,yD.prototype.point=!0;class hD extends LD{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?OD.WidgetRange:this.startSide<=0?OD.WidgetBefore:OD.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(M){return M instanceof hD&&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 AD(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 xD(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)}hD.prototype.point=!0;class dD{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 aD&&M.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new cD),this.atCursorPos=!0),this.curLine}flushBuffer(M=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(wD(new DD(-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 aD||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(wD(new eD(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 hD){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 D=i-M;if(t instanceof hD)if(t.block)t.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new aD(t.widget||new SD("div"),D,t));else{let s=sD.create(t.widget||new SD("span"),D,D?0:t.startSide),j=this.atCursorPos&&!s.isEditable&&N<=e.length&&(M<i||t.startSide>0),u=!s.isEditable&&(M<i||N>e.length||t.startSide<=0),I=this.getLine();2!=this.pendingBuffer||j||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(e),j&&(I.append(wD(new DD(1),e),N),N=e.length+Math.max(0,N-e.length)),I.append(wD(s,e),N),this.atCursorPos=u,this.pendingBuffer=u?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);D&&(this.textOff+D<=this.text.length?this.textOff+=D:(this.skip+=D-(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 dD(M,i,t,N);return s.openEnd=JN.spans(e,i,t,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function wD(M,i){for(let t of i)M=new ND(t,[M],M.length);return M}class SD extends TD{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 ED=function(M){return M[M.LTR=0]="LTR",M[M.RTL=1]="RTL",M}(ED||(ED={}));const QD=ED.LTR,kD=ED.RTL;function CD(M){let i=[];for(let t=0;t<M.length;t++)i.push(1<<+M[t]);return i}const UD=CD("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),bD=CD("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),pD=Object.create(null),ZD=[];for(let M of["()","[]","{}"]){let i=M.charCodeAt(0),t=M.charCodeAt(1);pD[i]=t,pD[t]=-i}function YD(M){return M<=247?UD[M]:1424<=M&&M<=1524?2:1536<=M&&M<=1785?bD[M-1536]:1774<=M&&M<=2220?4:8192<=M&&M<=8204?256:64336<=M&&M<=65023?4:1}const mD=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class fD{get dir(){return this.level%2?kD:QD}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 D=M[s];if(D.from<=i&&D.to>=i){if(D.level==t)return s;(N<0||(0!=e?e<0?D.from<i:D.to>i:M[N].level>D.level))&&(N=s)}}if(N<0)throw new RangeError("Index out of range");return N}}function WD(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||!WD(e.inner,N.inner))return!1}return!0}const VD=[];function vD(M,i,t,e,N,s,D){let j=e%2?2:1;if(e%2==N%2)for(let u=i,I=0;u<t;){let i=!0,g=!1;if(I==s.length||u<s[I].from){let M=VD[u];M!=j&&(i=!1,g=16==M)}let n=i||1!=j?null:[],l=i?e:e+1,r=u;M:for(;;)if(I<s.length&&r==s[I].from){if(g)break M;let o=s[I];if(!i)for(let M=o.to,i=I+1;;){if(M==t)break M;if(!(i<s.length&&s[i].from==M)){if(VD[M]==j)break M;break}M=s[i++].to}if(I++,n)n.push(o);else{o.from>u&&D.push(new fD(u,o.from,l)),GD(M,o.direction==QD!=!(l%2)?e+1:e,N,o.inner,o.from,o.to,D),u=o.to}r=o.to}else{if(r==t||(i?VD[r]!=j:VD[r]==j))break;r++}n?vD(M,u,r,e+1,N,n,D):u<r&&D.push(new fD(u,r,l)),u=r}else for(let u=t,I=s.length;u>i;){let t=!0,g=!1;if(!I||u>s[I-1].to){let M=VD[u-1];M!=j&&(t=!1,g=16==M)}let n=t||1!=j?null:[],l=t?e:e+1,r=u;M:for(;;)if(I&&r==s[I-1].to){if(g)break M;let o=s[--I];if(!t)for(let M=o.from,t=I;;){if(M==i)break M;if(!t||s[t-1].to!=M){if(VD[M-1]==j)break M;break}M=s[--t].from}if(n)n.push(o);else{o.to<u&&D.push(new fD(o.to,u,l)),GD(M,o.direction==QD!=!(l%2)?e+1:e,N,o.inner,o.from,o.to,D),u=o.from}r=o.from}else{if(r==i||(t?VD[r-1]!=j:VD[r-1]==j))break;r--}n?vD(M,r,u,e+1,N,n,D):r<u&&D.push(new fD(r,u,l)),u=r}}function GD(M,i,t,e,N,s,D){let j=i%2?2:1;!function(M,i,t,e,N){for(let s=0;s<=e.length;s++){let D=s?e[s-1].to:i,j=s<e.length?e[s].from:t,u=s?256:N;for(let i=D,t=u,e=u;i<j;i++){let N=YD(M.charCodeAt(i));512==N?N=t:8==N&&4==e&&(N=16),VD[i]=4==N?2:N,7&N&&(e=N),t=N}for(let M=D,i=u,e=u;M<j;M++){let N=VD[M];if(128==N)M<j-1&&i==VD[M+1]&&24&i?N=VD[M]=i:VD[M]=256;else if(64==N){let N=M+1;for(;N<j&&64==VD[N];)N++;let s=M&&8==i||N<t&&8==VD[N]?1==e?1:8:256;for(let i=M;i<N;i++)VD[i]=s;M=N-1}else 8==N&&1==e&&(VD[M]=1);i=N,7&N&&(e=N)}}}(M,N,s,e,j),function(M,i,t,e,N){let s=1==N?2:1;for(let D=0,j=0,u=0;D<=e.length;D++){let I=D?e[D-1].to:i,g=D<e.length?e[D].from:t;for(let i,t,e,D=I;D<g;D++)if(t=pD[i=M.charCodeAt(D)])if(t<0){for(let M=j-3;M>=0;M-=3)if(ZD[M+1]==-t){let i=ZD[M+2],t=2&i?N:4&i?1&i?s:N:0;t&&(VD[D]=VD[ZD[M]]=t),j=M;break}}else{if(189==ZD.length)break;ZD[j++]=D,ZD[j++]=i,ZD[j++]=u}else if(2==(e=VD[D])||1==e){let M=e==N;u=M?0:1;for(let i=j-3;i>=0;i-=3){let t=ZD[i+2];if(2&t)break;if(M)ZD[i+2]|=2;else{if(4&t)break;ZD[i+2]|=4}}}}}(M,N,s,e,j),function(M,i,t,e){for(let N=0,s=e;N<=t.length;N++){let D=N?t[N-1].to:M,j=N<t.length?t[N].from:i;for(let u=D;u<j;){let D=VD[u];if(256==D){let D=u+1;for(;;)if(D==j){if(N==t.length)break;D=t[N++].to,j=N<t.length?t[N].from:i}else{if(256!=VD[D])break;D++}let I=1==s,g=I==(1==(D<i?VD[D]:e))?I?1:2:e;for(let i=D,e=N,s=e?t[e-1].to:M;i>u;)i==s&&(i=t[--e].from,s=e?t[e-1].to:M),VD[--i]=g;u=D}else s=D,u++}}}(N,s,e,j),vD(M,N,s,i,t,e,D)}function PD(M){return[new fD(0,M,0)]}let RD="";function BD(M,i,t,e,N){var s;let D=e.head-M.from,j=fD.find(i,D,null!==(s=e.bidiLevel)&&void 0!==s?s:-1,e.assoc),u=i[j],I=u.side(N,t);if(D==I){let M=j+=N?1:-1;if(M<0||M>=i.length)return null;u=i[j=M],D=u.side(!N,t),I=u.side(N,t)}let g=Ce(M.text,D,u.forward(N,t));(g<u.from||g>u.to)&&(g=I),RD=M.text.slice(Math.min(D,g),Math.max(D,g));let n=j==(N?i.length-1:0)?null:i[j+(N?1:-1)];return n&&g==I&&n.level+(N?0:1)<u.level?$e.cursor(n.side(!N,t)+M.from,n.forward(N,t)?1:-1,n.level):$e.cursor(g+M.from,u.forward(N,t)?-1:1,u.level)}function FD(M,i,t){for(let e=i;e<t;e++){let i=YD(M.charCodeAt(e));if(1==i)return QD;if(2==i||4==i)return kD}return QD}const JD=Ke.define(),XD=Ke.define(),HD=Ke.define(),$D=Ke.define(),_D=Ke.define(),qD=Ke.define(),KD=Ke.define(),Mj=Ke.define({combine:M=>M.some((M=>M))}),ij=Ke.define({combine:M=>M.some((M=>M))});class tj{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 tj(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 tj($e.cursor(M.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const ej=QN.define({map:(M,i)=>M.map(i)});function Nj(M,i,t){let e=M.facet($D);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 sj=Ke.define({combine:M=>!M.length||M[0]});let Dj=0;const jj=Ke.define();class uj{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 uj(Dj++,M,t,e,(M=>{let i=[jj.of(M)];return s&&i.push(lj.of((i=>{let t=i.plugin(M);return t?s(t):LD.none}))),N&&i.push(N(M)),i}))}static fromClass(M,i){return uj.define((i=>new M(i)),i)}}class Ij{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(Nj(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){Nj(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){Nj(M.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const gj=Ke.define(),nj=Ke.define(),lj=Ke.define(),rj=Ke.define(),oj=Ke.define(),cj=Ke.define();function aj(M,i){let t=M.state.facet(cj);if(!t.length)return t;let e=t.map((i=>i instanceof Function?i(M):i)),N=[];return JN.spans(e,i.from,i.to,{point(){},span(M,t,e,s){let D=M-i.from,j=t-i.from,u=N;for(let M=e.length-1;M>=0;M--,s--){let t,N=e[M].spec.bidiIsolate;if(null==N&&(N=FD(i.text,D,j)),s>0&&u.length&&(t=u[u.length-1]).to==D&&t.direction==N)t.to=j,u=t.inner;else{let M={from:D,to:j,direction:N,inner:[]};u.push(M),u=M.inner}}}}),N}const Tj=Ke.define();function Oj(M){let i=0,t=0,e=0,N=0;for(let s of M.state.facet(Tj)){let D=s(M);D&&(null!=D.left&&(i=Math.max(i,D.left)),null!=D.right&&(t=Math.max(t,D.right)),null!=D.top&&(e=Math.max(e,D.top)),null!=D.bottom&&(N=Math.max(N,D.bottom)))}return{left:i,right:t,top:e,bottom:N}}const Lj=Ke.define();class zj{constructor(M,i,t,e){this.fromA=M,this.toA=i,this.fromB=t,this.toB=e}join(M){return new zj(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,D=0;;e++){let j=e==M.length?null:M[e],u=s-D,I=j?j.fromB:1e9;for(;N<i.length&&i[N]<I;){let M=i[N],e=i[N+1],s=Math.max(D,M),j=Math.min(I,e);if(s<=j&&new zj(s+u,j+u,s,j).addToSet(t),e>I)break;N+=2}if(!j)return t;new zj(j.fromA,j.toA,j.fromB,j.toB).addToSet(t),s=j.toA,D=j.toB}}}class yj{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 zj(M,i,t,N)))),this.changedRanges=e}static create(M,i,t){return new yj(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 hj 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 cD],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new zj(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=xj(M,t);if(!e)return null;let{node:N,from:s,to:D}=e,j=N.nodeValue;if(/[\n\r]/.test(j))return null;if(M.state.doc.sliceString(e.from,e.to)!=j)return null;let u=i.invertedDesc,I=new zj(u.mapPos(s),u.mapPos(D),s,D),g=[];for(let i=N.parentNode;;i=i.parentNode){let t=Vs.get(i);if(t instanceof ND)g.push({node:i,deco:t.mark});else{if(t instanceof cD||"DIV"==i.nodeName&&i.parentNode==M.contentDOM)return{range:I,text:N,marks:g,line:i};if(i==M.contentDOM)return null;g.push({node:i,deco:new zD({inclusive:!0,attributes:oD(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 zj(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,(tD.ie||tD.chrome)&&!N&&M&&M.state.doc.lines!=M.startState.doc.lines&&(this.forceSelection=!0);let s=function(M,i,t){let e=new wj;return JN.compare(M,i,t,e),e.changes}(this.decorations,this.updateDeco(),M.changes);return t=zj.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=tD.chrome||tD.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 aD&&M.widget instanceof Aj&&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,D,j,u,{fromA:I,toA:g,fromB:n,toB:l}=i;if(t&&t.range.fromB<l&&t.range.toB>n){let M=dD.build(this.view.state.doc,n,t.range.fromB,this.decorations,this.dynamicDecorationMap),i=dD.build(this.view.state.doc,t.range.toB,l,this.decorations,this.dynamicDecorationMap);D=M.breakAtStart,j=M.openStart,u=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:D,openStart:j,openEnd:u}=dD.build(this.view.state.doc,n,l,this.decorations,this.dynamicDecorationMap));let{i:r,off:o}=N.findPos(g,1),{i:c,off:a}=N.findPos(I,-1);Ps(this,c,a,r,o,s,D,j,u)}t&&this.fixCompositionDOM(t)}compositionView(M){let i=new eD(M.text.nodeValue);i.flags|=8;for(let{deco:t}of M.marks)i=new ND(t,[i],i.length);let t=new cD;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&&ys(this.dom,this.view.observer.selectionRange)&&!(t&&this.dom.contains(t));if(!(e||i||N))return;let s=this.forceSelection;this.forceSelection=!1;let D=this.view.state.selection.main,j=this.moveToLine(this.domAtPos(D.anchor)),u=D.empty?j:this.moveToLine(this.domAtPos(D.head));if(tD.gecko&&D.empty&&!this.hasComposition&&(1==(I=j).node.nodeType&&I.node.firstChild&&(0==I.offset||"false"==I.node.childNodes[I.offset-1].contentEditable)&&(I.offset==I.node.childNodes.length||"false"==I.node.childNodes[I.offset].contentEditable))){let M=document.createTextNode("");this.view.observer.ignore((()=>j.node.insertBefore(M,j.node.childNodes[j.offset]||null))),j=u=new fs(M,0),s=!0}var I;let g=this.view.observer.selectionRange;!s&&g.focusNode&&(As(j.node,j.offset,g.anchorNode,g.anchorOffset)&&As(u.node,u.offset,g.focusNode,g.focusOffset)||this.suppressWidgetCursorChange(g,D))||(this.view.observer.ignore((()=>{tD.android&&tD.chrome&&this.dom.contains(g.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}(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let M=Ls(this.view.root);if(M)if(D.empty){if(tD.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)}(j.node,j.offset);if(M&&3!=M){let i=dj(j.node,j.offset,1==M?1:-1);i&&(j=new fs(i.node,i.offset))}}M.collapse(j.node,j.offset),null!=D.bidiLevel&&void 0!==M.caretBidiLevel&&(M.caretBidiLevel=D.bidiLevel)}else if(M.extend){M.collapse(j.node,j.offset);try{M.extend(u.node,u.offset)}catch(M){}}else{let i=document.createRange();D.anchor>D.head&&([j,u]=[u,j]),i.setEnd(u.node,u.offset),i.setStart(j.node,j.offset),M.removeAllRanges(),M.addRange(i)}else;N&&this.view.root.activeElement==this.dom&&(this.dom.blur(),t&&t.focus())})),this.view.observer.setSelectionRange(j,u)),this.impreciseAnchor=j.precise?null:new fs(g.anchorNode,g.anchorOffset),this.impreciseHead=u.precise?null:new fs(g.focusNode,g.focusOffset)}suppressWidgetCursorChange(M,i){return this.hasComposition&&i.empty&&As(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=cD.find(this,i.head);if(!s)return;let D=s.posAtStart;if(i.head==D||i.head==D+s.length)return;let j=this.coordsAt(i.head,-1),u=this.coordsAt(i.head,1);if(!j||!u||j.bottom>u.top)return;let I=this.domAtPos(i.head+i.assoc);t.collapse(I.node,I.offset),t.modify("move",i.assoc<0?"forward":"backward","lineboundary"),M.observer.readSelectionRange();let g=M.observer.selectionRange;M.docView.posFromDOM(g.anchorNode,g.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 cD&&(i=M.domAtPos(0))}for(let e=M.offset-1;!i&&e>=0;e--){let M=Vs.get(t.childNodes[e]);M instanceof cD&&(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 cD)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 D=this.children[s],j=N-D.breakAfter,u=j-D.length;if(j<M)break;u<=M&&(u<M||D.covers(-1))&&(j>M||D.covers(1))&&(!t||D instanceof cD&&!(t instanceof cD&&i>=0))&&(t=D,e=u),N=u}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 cD))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 eD))return null;let N=Ce(e.text,t);if(N==t)return null;let s=ps(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,D=-1,j=this.view.textDirection==ED.LTR;for(let M=0,u=0;u<this.children.length;u++){let I=this.children[u],g=M+I.length;if(g>e)break;if(M>=t){let t=I.dom.getBoundingClientRect();if(i.push(t.height),s){let i=I.dom.lastChild,e=i?hs(i):[];if(e.length){let i=e[e.length-1],s=j?i.right-t.left:t.right-i.left;s>D&&(D=s,this.minWidth=N,this.minWidthFrom=M,this.minWidthTo=g)}}}M=g+I.breakAfter}return i}textDirectionAt(M){let{i}=this.childPos(M,1);return"rtl"==getComputedStyle(this.children[i].dom).direction?ED.RTL:ED.LTR}measureTextSize(){for(let M of this.children)if(M instanceof cD){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=hs(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(LD.replace({widget:new Aj(e),block:!0,inclusive:!0,isBlockGap:!0}).range(t,s))}if(!N)break;t=N.to+1}return LD.set(M)}updateDeco(){let M=this.view.state.facet(lj).map(((M,i)=>(this.dynamicDecorationMap[i]="function"==typeof M)?M(this.view):M)),i=!1,t=this.view.state.facet(rj).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(JN.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=Oj(this.view),s={left:e.left-N.left,top:e.top-N.top,right:e.right+N.right,bottom:e.bottom+N.bottom},{offsetWidth:D,offsetHeight:j}=this.view.scrollDOM;!function(M,i,t,e,N,s,D,j){let u=M.ownerDocument,I=u.defaultView||window;for(let g=M,n=!1;g&&!n;)if(1==g.nodeType){let M,l=g==u.body,r=1,o=1;if(l)M=Es(I);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(n=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let i=g.getBoundingClientRect();({scaleX:r,scaleY:o}=Qs(g,i)),M={left:i.left,right:i.left+g.clientWidth*r,top:i.top,bottom:i.top+g.clientHeight*o}}let c=0,a=0;if("nearest"==N)i.top<M.top?(a=-(M.top-i.top+D),t>0&&i.bottom>M.bottom+a&&(a=i.bottom-M.bottom+a+D)):i.bottom>M.bottom&&(a=i.bottom-M.bottom+D,t<0&&i.top-a<M.top&&(a=-(M.top+a-i.top+D)));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-D:i.bottom-s+D)-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==j?i.left-s:i.right-(M.right-M.left)+s)-M.left,c||a)if(l)I.scrollBy(c,a);else{let M=0,t=0;if(a){let M=g.scrollTop;g.scrollTop+=a/o,t=(g.scrollTop-M)*o}if(c){let i=g.scrollLeft;g.scrollLeft+=c/r,M=(g.scrollLeft-i)*r}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(l)break;g=g.assignedSlot||g.parentNode}else{if(11!=g.nodeType)break;g=g.host}}(this.view.scrollDOM,s,t.head<t.anchor?-1:1,M.x,M.y,Math.max(Math.min(M.xMargin,D),-D),Math.max(Math.min(M.yMargin,j),-j),this.view.textDirection==ED.LTR)}}class Aj extends TD{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 xj(M,i){let t=M.observer.selectionRange,e=t.focusNode&&dj(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 dj(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 wj=class{constructor(){this.changes=[]}compareRange(M,i){xD(M,i,this.changes)}comparePoint(M,i){xD(M,i,this.changes)}};function Sj(M,i){return i.left>M?i.left-M:Math.max(0,M-i.right)}function Ej(M,i){return i.top>M?i.top-M:Math.max(0,M-i.bottom)}function Qj(M,i){return M.top<i.bottom-1&&M.bottom>i.top+1}function kj(M,i){return i<M.top?{top:i,left:M.left,right:M.right,bottom:M.bottom}:M}function Cj(M,i){return i>M.bottom?{top:M.top,left:M.left,right:M.right,bottom:i}:M}function Uj(M,i,t){let e,N,s,D,j,u,I,g,n=!1;for(let l=M.firstChild;l;l=l.nextSibling){let M=hs(l);for(let r=0;r<M.length;r++){let o=M[r];N&&Qj(N,o)&&(o=kj(Cj(o,N.bottom),N.top));let c=Sj(i,o),a=Ej(t,o);if(0==c&&0==a)return 3==l.nodeType?bj(l,i,t):Uj(l,i,t);if(!e||D>a||D==a&&s>c){e=l,N=o,s=c,D=a;let j=a?t<o.top?-1:1:c?i<o.left?-1:1:0;n=!j||(j>0?r<M.length-1:r>0)}0==c?t>o.bottom&&(!I||I.bottom<o.bottom)?(j=l,I=o):t<o.top&&(!g||g.top>o.top)&&(u=l,g=o):I&&Qj(I,o)?I=Cj(I,o.bottom):g&&Qj(g,o)&&(g=kj(g,o.top))}}if(I&&I.bottom>=t?(e=j,N=I):g&&g.top<=t&&(e=u,N=g),!e)return{node:M,offset:0};let l=Math.max(N.left,Math.min(N.right,i));return 3==e.nodeType?bj(e,l,t):n&&"false"!=e.contentEditable?Uj(e,l,t):{node:M,offset:Array.prototype.indexOf.call(M.childNodes,e)+(i>=(N.left+N.right)/2?1:0)}}function bj(M,i,t){let e=M.nodeValue.length,N=-1,s=1e9,D=0;for(let j=0;j<e;j++){let e=ps(M,j,j+1).getClientRects();for(let u=0;u<e.length;u++){let I=e[u];if(I.top==I.bottom)continue;D||(D=i-I.left);let g=(I.top>t?I.top-t:t-I.bottom)-1;if(I.left-1<=i&&I.right+1>=i&&g<s){let t=i>=(I.left+I.right)/2,e=t;if(tD.chrome||tD.gecko){ps(M,j).getBoundingClientRect().left==I.right&&(e=!t)}if(g<=0)return{node:M,offset:j+(e?1:0)};N=j+(e?1:0),s=g}}}return{node:M,offset:N>-1?N:D>0?M.nodeValue.length:0}}function pj(M,i,t,e=-1){var N,s;let D,j=M.contentDOM.getBoundingClientRect(),u=j.top+M.viewState.paddingTop,{docHeight:I}=M.viewState,{x:g,y:n}=i,l=n-u;if(l<0)return 0;if(l>I)return M.state.doc.length;for(let i=M.viewState.heightOracle.textHeight/2,N=!1;D=M.elementAtHeight(l),D.type!=OD.Text;)for(;l=e>0?D.bottom+i:D.top-i,!(l>=0&&l<=I);){if(N)return t?null:0;N=!0,e=-e}n=u+l;let r=D.from;if(r<M.viewport.from)return 0==M.viewport.from?0:t?null:Zj(M,j,D,g,n);if(r>M.viewport.to)return M.viewport.to==M.state.doc.length?M.state.doc.length:t?null:Zj(M,j,D,g,n);let o=M.dom.ownerDocument,c=M.root.elementFromPoint?M.root:o,a=c.elementFromPoint(g,n);a&&!M.contentDOM.contains(a)&&(a=null),a||(g=Math.max(j.left+1,Math.min(j.right-1,g)),a=c.elementFromPoint(g,n),a&&!M.contentDOM.contains(a)&&(a=null));let T,O=-1;if(a&&0!=(null===(N=M.docView.nearest(a))||void 0===N?void 0:N.isEditable))if(o.caretPositionFromPoint){let M=o.caretPositionFromPoint(g,n);M&&({offsetNode:T,offset:O}=M)}else if(o.caretRangeFromPoint){let i=o.caretRangeFromPoint(g,n);i&&(({startContainer:T,startOffset:O}=i),(!M.contentDOM.contains(T)||tD.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 ps(M,e-1,e).getBoundingClientRect().left>t}(T,O,g)||tD.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():ps(M,0,Math.max(M.nodeValue.length,1)).getBoundingClientRect();return t-e.left>5}(T,O,g))&&(T=void 0))}if(!T||!M.docView.dom.contains(T)){let i=cD.find(M.docView,r);if(!i)return l>D.top+D.height/2?D.to:D.from;({node:T,offset:O}=Uj(i.dom,g,n))}let L=M.docView.nearest(T);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(T,O)+L.posAtStart}function Zj(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 D=M.state.sliceDoc(t.from,t.to);return t.from+Ds(D,s,M.state.tabSize)}function Yj(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==OD.Text))return M;return t}function mj(M,i,t,e){let N=M.state.doc.lineAt(i.head),s=M.bidiSpans(N),D=M.textDirectionAt(N.from);for(let j=i,u=null;;){let i=BD(N,s,D,j,t),I=RD;if(!i){if(N.number==(t?M.state.doc.lines:1))return j;I="\n",N=M.state.doc.line(N.number+(t?1:-1)),s=M.bidiSpans(N),i=M.visualLineSide(N,!t)}if(u){if(!u(I))return j}else{if(!e)return i;u=e(I)}j=i}}function fj(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 Wj(M,i,t){let e=fj(M.state.facet(oj).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 Vj{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,tD.safari&&M.contentDOM.addEventListener("input",(()=>null)),tD.gecko&&function(M){ru.has(M)||(ru.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=Gj(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&&Bj.indexOf(M.keyCode)<0&&(this.view.inputState.lastEscPress=0),tD.android&&tD.chrome&&!M.synthetic&&(13==M.keyCode||8==M.keyCode))return this.view.observer.delayAndroidKey(M.key,M.keyCode),!0;let i;return!tD.ios||M.synthetic||M.altKey||M.metaKey||!((i=Pj.find((i=>i.keyCode==M.keyCode)))&&!M.ctrlKey||Rj.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||!!(tD.safari&&!tD.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 vj(M,i){return(t,e)=>{try{return i.call(M,e,t)}catch(M){Nj(t.state,M)}}}function Gj(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(vj(i.value,N))}if(M&&M.domEventObservers)for(let e in M.domEventObservers){let N=M.domEventObservers[e];N&&t(e).observers.push(vj(i.value,N))}}for(let M in Xj)t(M).handlers.push(Xj[M]);for(let M in Hj)t(M).observers.push(Hj[M]);return i}const Pj=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Rj="dthko",Bj=[16,17,18,20,91,92,224,225];function Fj(M){return.7*Math.max(0,M)+8}class Jj{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(oj).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(JD);return t.length?t[0](i):tD.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!=ju(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=Oj(this.view);M.clientX-s.left<=N.left+6?t=-Fj(N.left-M.clientX):M.clientX+s.right>=N.right-6&&(t=Fj(M.clientX-N.right)),M.clientY-s.top<=N.top+6?e=-Fj(N.top-M.clientY):M.clientY+s.bottom>=N.bottom-6&&(e=Fj(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=fj(this.atoms,e.from,0);M!=e.from&&(N=$e.cursor(M,-1))}else{let M=fj(this.atoms,e.from,-1),i=fj(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 Xj=Object.create(null),Hj=Object.create(null),$j=tD.ie&&tD.ie_version<15||tD.ios&&tD.webkit_version<604;function _j(M,i){let t,{state:e}=M,N=1,s=e.toText(i),D=s.lines==e.selection.ranges.length,j=null!=Iu&&e.selection.ranges.every((M=>M.empty))&&Iu==s.toString();if(j){let M=-1;t=e.changeByRange((t=>{let j=e.doc.lineAt(t.from);if(j.from==M)return{range:t};M=j.from;let u=e.toText((D?s.line(N++).text:i)+e.lineBreak);return{changes:{from:j.from,insert:u},range:$e.cursor(t.from+u.length)}}))}else t=D?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 qj(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 D=s,j=s;t<0?D=Ce(N.text,s,!1):j=Ce(N.text,s);let u=e(N.text.slice(D,j));for(;D>0;){let M=Ce(N.text,D,!1);if(e(N.text.slice(M,D))!=u)break;D=M}for(;j<N.length;){let M=Ce(N.text,j);if(e(N.text.slice(j,M))!=u)break;j=M}return $e.range(D+N.from,j+N.from)}(M.state,i,t);{let t=cD.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)}}Hj.scroll=M=>{M.inputState.lastScrollTop=M.scrollDOM.scrollTop,M.inputState.lastScrollLeft=M.scrollDOM.scrollLeft},Xj.keydown=(M,i)=>(M.inputState.setSelectionOrigin("select"),27==i.keyCode&&(M.inputState.lastEscPress=Date.now()),!1),Hj.touchstart=(M,i)=>{M.inputState.lastTouchTime=Date.now(),M.inputState.setSelectionOrigin("select.pointer")},Hj.touchmove=M=>{M.inputState.setSelectionOrigin("select.pointer")},Xj.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(HD))if(t=e(M,i),t)break;if(t||0!=i.button||(t=function(M,i){let t=tu(M,i),e=ju(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,D){let j,u=tu(M,i),I=qj(M,u.pos,u.bias,e);if(t.pos!=u.pos&&!s){let i=qj(M,t.pos,t.bias,e),N=Math.min(i.from,I.from),s=Math.max(i.to,I.to);I=N<I.from?$e.range(N,s):$e.range(s,N)}return s?N.replaceRange(N.main.extend(I.from,I.to)):D&&1==e&&N.ranges.length>1&&(j=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,u.pos))?j:D?N.addRange(I):$e.create([I])}}}(M,i)),t){let e=!M.hasFocus;M.inputState.startMouseSelection(new Jj(M,i,t,e)),e&&M.observer.ignore((()=>bs(M.contentDOM)));let N=M.inputState.mouseSelection;if(N)return N.start(i),!1===N.dragging}return!1};let Kj=(M,i)=>M>=i.top&&M<=i.bottom,Mu=(M,i,t)=>Kj(i,t)&&M>=t.left&&M<=t.right;function iu(M,i,t,e){let N=cD.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 D=N.coordsAt(s,-1);if(D&&Mu(t,e,D))return-1;let j=N.coordsAt(s,1);return j&&Mu(t,e,j)?1:D&&Kj(e,D)?-1:1}function tu(M,i){let t=M.posAtCoords({x:i.clientX,y:i.clientY},!1);return{pos:t,bias:iu(M,t,i.clientX,i.clientY)}}const eu=tD.ie&&tD.ie_version<=11;let Nu=null,su=0,Du=0;function ju(M){if(!eu)return M.detail;let i=Nu,t=Du;return Nu=M,Du=Date.now(),su=!i||t>Date.now()-400&&Math.abs(i.clientX-M.clientX)<2&&Math.abs(i.clientY-M.clientY)<2?(su+1)%3:1}function uu(M,i,t,e){if(!t)return;let N=M.posAtCoords({x:i.clientX,y:i.clientY},!1),{draggedContent:s}=M.inputState,D=e&&s&&function(M,i){let t=M.state.facet(XD);return t.length?t[0](i):tD.mac?!i.altKey:!i.ctrlKey}(M,i)?{from:s.from,to:s.to}:null,j={from:N,insert:t},u=M.state.changes(D?[D,j]:j);M.focus(),M.dispatch({changes:u,selection:{anchor:u.mapPos(N,-1),head:u.mapPos(N,1)},userEvent:D?"move.drop":"input.drop"}),M.inputState.draggedContent=null}Xj.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},Xj.dragend=M=>(M.inputState.draggedContent=null,!1),Xj.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&&uu(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 uu(M,i,t,!0),!0}return!1},Xj.paste=(M,i)=>{if(M.state.readOnly)return!0;M.observer.flush();let t=$j?null:i.clipboardData;return t?(_j(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(),_j(M,t.value)}),50)}(M),!1)};let Iu=null;Xj.copy=Xj.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;Iu=N?t:null,"cut"!=i.type||M.state.readOnly||M.dispatch({changes:e,scrollIntoView:!0,userEvent:"delete.cut"});let s=$j?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 gu=wN.define();function nu(M,i){let t=[];for(let e of M.facet(KD)){let N=e(M,i);N&&t.push(N)}return t?M.update({effects:t,annotations:gu.of(!0)}):null}function lu(M){setTimeout((()=>{let i=M.hasFocus;if(i!=M.inputState.notifiedFocused){let t=nu(M.state,i);t?M.dispatch(t):M.update([])}}),10)}Hj.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),lu(M)},Hj.blur=M=>{M.observer.clearSelectionRange(),lu(M)},Hj.compositionstart=Hj.compositionupdate=M=>{null==M.inputState.compositionFirstChange&&(M.inputState.compositionFirstChange=!0),M.inputState.composing<0&&(M.inputState.composing=0)},Hj.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,tD.chrome&&tD.android?M.observer.flushSoon():M.inputState.compositionPendingChange?Promise.resolve().then((()=>M.observer.flush())):setTimeout((()=>{M.inputState.composing<0&&M.docView.hasComposition&&M.update([])}),50)},Hj.contextmenu=M=>{M.inputState.lastContextMenu=Date.now()},Xj.beforeinput=(M,i)=>{var t;let e;if(tD.chrome&&tD.android&&(e=Pj.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 ru=new Set;const ou=["pre-wrap","normal","pre-line","break-spaces"];class cu{constructor(M){this.lineWrapping=M,this.doc=Te.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 ou.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 D=ou.indexOf(M)>-1,j=Math.round(i)!=Math.round(this.lineHeight)||this.lineWrapping!=D;if(this.lineWrapping=D,this.lineHeight=i,this.charWidth=t,this.textHeight=e,this.lineLength=N,j){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 j}}class au{constructor(M,i){this.from=M,this.heights=i,this.index=0}get more(){return this.index<this.heights.length}}class Tu{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?OD.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 hD?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 Tu(this.from,this.length+M.length,this.top,this.height+M.height,i)}}var Ou=function(M){return M[M.ByPos=0]="ByPos",M[M.ByHeight=1]="ByHeight",M[M.ByPosNoHeight=2]="ByPosNoHeight",M}(Ou||(Ou={}));const Lu=.001;class zu{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)>Lu&&(M.heightChanged=!0),this.height=i)}replace(M,i,t){return zu.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 D=e.length-1;D>=0;D--){let{fromA:j,toA:u,fromB:I,toB:g}=e[D],n=N.lineAt(j,Ou.ByPosNoHeight,t.setDoc(i),0,0),l=n.to>=u?n:N.lineAt(u,Ou.ByPosNoHeight,t,0,0);for(g+=l.to-u,u=l.to;D>0&&n.from<=e[D-1].toA;)j=e[D-1].fromA,I=e[D-1].fromB,D--,j<n.from&&(n=N.lineAt(j,Ou.ByPosNoHeight,t,0,0));I+=n.from-j,j=n.from;let r=wu.build(t.setDoc(s),M,I,g);N=N.replace(j,u,r)}return N.updateHeight(t,0)}static empty(){return new hu(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 xu(zu.of(M.slice(0,i)),s,zu.of(M.slice(t)))}}zu.prototype.size=1;class yu extends zu{constructor(M,i,t){super(M,i),this.deco=t}blockAt(M,i,t,e){return new Tu(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 hu extends yu{constructor(M,i){super(M,i,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(M,i,t,e){return new Tu(e,this.length,t,this.height,this.breaks)}replace(M,i,t){let e=t[0];return 1==t.length&&(e instanceof hu||e instanceof Au&&4&e.flags)&&Math.abs(this.length-e.length)<10?(e instanceof Au?e=new hu(e.length,this.height):e.height=this.height,this.outdated||(e.outdated=!1),e):zu.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 Au extends zu{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,D=0;if(M.lineWrapping){let i=Math.min(this.height,M.lineHeight*s);t=i/s,this.length>s+1&&(D=(this.height-i)/(this.length-s-1))}else t=this.height/s;return{firstLine:e,lastLine:N,perLine:t,perChar:D}}blockAt(M,i,t,e){let{firstLine:N,lastLine:s,perLine:D,perChar:j}=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),u=D+s.length*j,I=Math.max(t,M-u/2);return new Tu(s.from,s.length,I,u,0)}{let e=Math.max(0,Math.min(s-N,Math.floor((M-t)/D))),{from:j,length:u}=i.doc.line(N+e);return new Tu(j,u,t+D*e,D,0)}}lineAt(M,i,t,e,N){if(i==Ou.ByHeight)return this.blockAt(M,t,e,N);if(i==Ou.ByPosNoHeight){let{from:i,to:e}=t.doc.lineAt(M);return new Tu(i,e-i,0,0,0)}let{firstLine:s,perLine:D,perChar:j}=this.heightMetrics(t,N),u=t.doc.lineAt(M),I=D+u.length*j,g=u.number-s,n=e+D*g+j*(u.from-N-g);return new Tu(u.from,u.length,Math.max(e,Math.min(n,e+this.height-I)),I,0)}forEachLine(M,i,t,e,N,s){M=Math.max(M,N),i=Math.min(i,N+this.length);let{firstLine:D,perLine:j,perChar:u}=this.heightMetrics(t,N);for(let I=M,g=e;I<=i;){let i=t.doc.lineAt(I);if(I==M){let t=i.number-D;g+=j*t+u*(M-N-t)}let e=j+u*i.length;s(new Tu(i.from,i.length,g,e,0)),g+=e,I=i.to+1}}replace(M,i,t){let e=this.length-i;if(e>0){let M=t[t.length-1];M instanceof Au?t[t.length-1]=new Au(M.length+e):t.push(null,new Au(e-1))}if(M>0){let i=t[0];i instanceof Au?t[0]=new Au(M+i.length):t.unshift(new Au(M-1),null)}return zu.of(t)}decomposeLeft(M,i){i.push(new Au(M-1),null)}decomposeRight(M,i){i.push(null,new Au(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),D=-1;for(e.from>i&&t.push(new Au(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==D?D=N:Math.abs(N-D)>=Lu&&(D=-2);let j=new hu(i,N);j.outdated=!1,t.push(j),s+=i+1}s<=N&&t.push(null,new Au(N-s).updateHeight(M,s));let j=zu.of(t);return(D<0||Math.abs(j.height-this.height)>=Lu||Math.abs(D-this.heightMetrics(M,i).perLine)>=Lu)&&(M.heightChanged=!0),j}return(t||this.outdated)&&(this.setHeight(M,M.heightForGap(i,i+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class xu extends zu{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,D=N+this.left.length+this.break,j=i==Ou.ByHeight?M<s:M<D,u=j?this.left.lineAt(M,i,t,e,N):this.right.lineAt(M,i,t,s,D);if(this.break||(j?u.to<D:u.from>D))return u;let I=i==Ou.ByPosNoHeight?Ou.ByPosNoHeight:Ou.ByPos;return j?u.join(this.right.lineAt(D,I,t,s,D)):this.left.lineAt(D,I,t,e,N).join(u)}forEachLine(M,i,t,e,N,s){let D=e+this.left.height,j=N+this.left.length+this.break;if(this.break)M<j&&this.left.forEachLine(M,i,t,e,N,s),i>=j&&this.right.forEachLine(M,i,t,D,j,s);else{let u=this.lineAt(j,Ou.ByPos,t,e,N);M<u.from&&this.left.forEachLine(M,u.from-1,t,e,N,s),u.to>=M&&u.from<=i&&s(u),i>u.to&&this.right.forEachLine(u.to+1,i,t,D,j,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&&du(N,s-1),i<this.length){let M=N.length;this.decomposeRight(i,N),du(N,M)}return zu.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?zu.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,D=i+N.length+this.break,j=null;return e&&e.from<=i+N.length&&e.more?j=N=N.updateHeight(M,i,t,e):N.updateHeight(M,i,t),e&&e.from<=D+s.length&&e.more?j=s=s.updateHeight(M,D,t,e):s.updateHeight(M,D,t),j?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 du(M,i){let t,e;null==M[i]&&(t=M[i-1])instanceof Au&&(e=M[i+1])instanceof Au&&M.splice(i-1,3,new Au(t.length+1+e.length))}class wu{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 hu?t.length+=M-this.pos:(M>this.pos||!this.isCovered)&&this.nodes.push(new hu(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 yu(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 hu(this.pos-M,-1)),this.writtenTo=this.pos}blankContent(M,i){let t=new Au(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 hu)return M;let i=new hu(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 hu||this.isCovered?(this.writtenTo<this.pos||null==i)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new hu(0,-1));let t=M;for(let M of this.nodes)M instanceof hu&&M.updateHeight(this.oracle,t),t+=M?M.length:1;return this.nodes}static build(M,i,t,e){let N=new wu(t,M);return JN.spans(i,t,e,N,0),N.finish(t)}}class Su{constructor(){this.changes=[]}compareRange(){}comparePoint(M,i,t,e){(M<i||t&&t.heightRelevant||e&&e.heightRelevant)&&xD(M,i,this.changes,5)}}function Eu(M,i){let t=M.getBoundingClientRect(),e=M.ownerDocument,N=e.defaultView||window,s=Math.max(0,t.left),D=Math.min(N.innerWidth,t.right),j=Math.max(0,t.top),u=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),D=Math.min(D,e.right),j=Math.max(j,e.top),u=i==M.parentNode?e.bottom:Math.min(u,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,D)-t.left,top:j-(t.top+i),bottom:Math.max(j,u)-(t.top+i)}}function Qu(M,i){let t=M.getBoundingClientRect();return{left:0,right:t.right-t.left,top:i,bottom:t.bottom-(t.top+i)}}class ku{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 LD.replace({widget:new Cu(this.size*(i?M.scaleY:M.scaleX),i)}).range(this.from,this.to)}}class Cu extends TD{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 Uu{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=mu,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=ED.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let i=M.facet(nj).some((M=>"function"!=typeof M&&"cm-lineWrapping"==M.class));this.heightOracle=new cu(i),this.stateDeco=M.facet(lj).filter((M=>"function"!=typeof M)),this.heightMap=zu.empty().applyChanges(this.stateDeco,Te.empty,this.heightOracle.setDoc(M.doc),[new zj(0,0,0,M.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=LD.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 bu(i,t))}}this.viewports=M.sort(((M,i)=>M.from-i.from)),this.scaler=this.heightMap.height<=7e6?mu:new fu(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:Wu(M,this.scaler))}))}update(M,i=null){this.state=M.state;let t=this.stateDeco;this.stateDeco=this.state.facet(lj).filter((M=>"function"!=typeof M));let e=M.changedRanges,N=zj.extendWithRanges(e,function(M,i,t){let e=new Su;return JN.compare(M,i,t,e,0),e.changes}(t,this.stateDeco,M?M.changes:Ge.empty(this.state.doc.length))),s=this.heightMap.height,D=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),D?(this.scrollAnchorPos=M.changes.mapPos(D.from,-1),this.scrollAnchorHeight=D.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let j=N.length?this.mapViewport(this.viewport,M.changes):this.viewport;(i&&(i.range.head<j.from||i.range.head>j.to)||!this.viewportIsAppropriate(j))&&(j=this.getViewport(0,i));let u=!M.changes.empty||2&M.flags||j.from!=this.viewport.from||j.to!=this.viewport.to;this.viewport=j,this.updateForViewport(),u&&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(ij)&&(this.mustEnforceCursorAssoc=!0)}measure(M){let i=M.contentDOM,t=window.getComputedStyle(i),e=this.heightOracle,N=t.whiteSpace;this.defaultTextDirection="rtl"==t.direction?ED.RTL:ED.LTR;let s=this.heightOracle.mustRefreshForWrapping(N),D=i.getBoundingClientRect(),j=s||this.mustMeasureContent||this.contentDOMHeight!=D.height;this.contentDOMHeight=D.height,this.mustMeasureContent=!1;let u=0,I=0;if(D.width&&D.height){let{scaleX:M,scaleY:t}=Qs(i,D);this.scaleX==M&&this.scaleY==t||(this.scaleX=M,this.scaleY=t,u|=8,s=j=!0)}let g=(parseInt(t.paddingTop)||0)*this.scaleY,n=(parseInt(t.paddingBottom)||0)*this.scaleY;this.paddingTop==g&&this.paddingBottom==n||(this.paddingTop=g,this.paddingBottom=n,u|=10),this.editorWidth!=M.scrollDOM.clientWidth&&(e.lineWrapping&&(j=!0),this.editorWidth=M.scrollDOM.clientWidth,u|=8);let l=M.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=l&&(this.scrollAnchorHeight=-1,this.scrollTop=l),this.scrolledToBottom=ms(M.scrollDOM);let r=(this.printing?Qu:Eu)(i,this.paddingTop),o=r.top-this.pixelViewport.top,c=r.bottom-this.pixelViewport.bottom;this.pixelViewport=r;let a=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(a!=this.inView&&(this.inView=a,a&&(j=!0)),!this.inView&&!this.scrollTarget)return 0;let T=D.width;if(this.contentDOMWidth==T&&this.editorHeight==M.scrollDOM.clientHeight||(this.contentDOMWidth=D.width,this.editorHeight=M.scrollDOM.clientHeight,u|=8),j){let i=M.docView.measureVisibleLineHeights(this.viewport);if(e.mustRefreshForHeights(i)&&(s=!0),s||e.lineWrapping&&Math.abs(T-this.contentDOMWidth)>e.charWidth){let{lineHeight:t,charWidth:D,textHeight:j}=M.docView.measureTextSize();s=t>0&&e.refresh(N,t,D,j,T/D,i),s&&(M.docView.minWidth=0,u|=8)}o>0&&c>0?I=Math.max(o,c):o<0&&c<0&&(I=Math.min(o,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?zu.empty().applyChanges(this.stateDeco,Te.empty,this.heightOracle,[new zj(0,0,0,M.state.doc.length)]):this.heightMap).updateHeight(e,0,s,new au(t.from,N))}e.heightChanged&&(u|=2)}let O=!this.viewportIsAppropriate(this.viewport,I)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return O&&(this.viewport=this.getViewport(I,this.scrollTarget)),this.updateForViewport(),(2&u||O)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,M)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,M.docView.enforceCursorAssoc()),u}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:D}=this,j=new bu(e.lineAt(s-1e3*t,Ou.ByHeight,N,0,0).from,e.lineAt(D+1e3*(1-t),Ou.ByHeight,N,0,0).to);if(i){let{head:M}=i.range;if(M<j.from||M>j.to){let t,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),D=e.lineAt(M,Ou.ByPos,N,0,0);t="center"==i.y?(D.top+D.bottom)/2-s/2:"start"==i.y||"nearest"==i.y&&M<j.from?D.top:D.bottom-s,j=new bu(e.lineAt(t-500,Ou.ByHeight,N,0,0).from,e.lineAt(t+s+500,Ou.ByHeight,N,0,0).to)}}return j}mapViewport(M,i){let t=i.mapPos(M.from,-1),e=i.mapPos(M.to,1);return new bu(this.heightMap.lineAt(t,Ou.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(e,Ou.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,Ou.ByPos,this.heightOracle,0,0),{bottom:N}=this.heightMap.lineAt(i,Ou.ByPos,this.heightOracle,0,0),{visibleTop:s,visibleBottom:D}=this;return(0==M||e<=s-Math.max(10,Math.min(-t,250)))&&(i==this.state.doc.length||N>=D+Math.max(10,Math.min(t,250)))&&e>s-2e3&&N<D+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 ku(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!=ED.LTR&&!t)return[];let D=[],j=(e,s,u,I)=>{if(s-e<N)return;let g=this.state.selection.main,n=[g.from];g.empty||n.push(g.to);for(let M of n)if(M>e&&M<s)return j(e,M-10,u,I),void j(M+10,s,u,I);let l=function(M,i){for(let t of M)if(i(t))return t;return}(M,(M=>M.from>=u.from&&M.to<=u.to&&Math.abs(M.from-e)<N&&Math.abs(M.to-s)<N&&!n.some((i=>M.from<i&&M.to>i))));if(!l){if(s<u.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)}l=new ku(e,s,this.gapSize(u,e,s,I))}D.push(l)};for(let M of this.viewportLines){if(M.length<s)continue;let i=pu(M.from,M.to,this.stateDeco);if(i.total<s)continue;let N,D,u=this.scrollTarget?this.scrollTarget.range.head:null;if(t){let t,s,j=e/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=u){let e=Yu(i,u),N=((this.visibleBottom-this.visibleTop)/2+j)/M.height;t=e-N,s=e+N}else t=(this.visibleTop-M.top-j)/M.height,s=(this.visibleBottom-M.top+j)/M.height;N=Zu(i,t),D=Zu(i,s)}else{let M,t,s=i.total*this.heightOracle.charWidth,j=e*this.heightOracle.charWidth;if(null!=u){let e=Yu(i,u),N=((this.pixelViewport.right-this.pixelViewport.left)/2+j)/s;M=e-N,t=e+N}else M=(this.pixelViewport.left-j)/s,t=(this.pixelViewport.right+j)/s;N=Zu(i,M),D=Zu(i,t)}N>M.from&&j(M.from,N,M,i),D<M.to&&j(D,M.to,M,i)}return D}gapSize(M,i,t,e){let N=Yu(e,t)-Yu(e,i);return this.heightOracle.lineWrapping?M.height*N:e.total*this.heightOracle.charWidth*N}updateLineGaps(M){ku.same(M,this.lineGaps)||(this.lineGaps=M,this.lineGapDeco=LD.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=[];JN.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))||Wu(this.heightMap.lineAt(M,Ou.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(M){return Wu(this.heightMap.lineAt(this.scaler.fromDOM(M),Ou.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 Wu(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 bu{constructor(M,i){this.from=M,this.to=i}}function pu(M,i,t){let e=[],N=M,s=0;return JN.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 Zu({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 Yu(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 mu={toDOM:M=>M,fromDOM:M=>M,scale:1};class fu{constructor(M,i,t){let e=0,N=0,s=0;this.viewports=t.map((({from:t,to:N})=>{let s=i.lineAt(t,Ou.ByPos,M,0,0).top,D=i.lineAt(N,Ou.ByPos,M,0,0).bottom;return e+=D-s,{from:t,to:N,top:s,bottom:D,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 Wu(M,i){if(1==i.scale)return M;let t=i.toDOM(M.top),e=i.toDOM(M.bottom);return new Tu(M.from,M.length,t,e-t,Array.isArray(M._content)?M._content.map((M=>Wu(M,i))):M._content)}const Vu=Ke.define({combine:M=>M.join(" ")}),vu=Ke.define({combine:M=>M.indexOf(!0)>-1}),Gu=gs.newName(),Pu=gs.newName(),Ru=gs.newName(),Bu={"&light":"."+Pu,"&dark":"."+Ru};function Fu(M,i,t){return new gs(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 Ju=Fu("."+Gu,{"&":{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"}},Bu),Xu="";class Hu{constructor(M,i){this.points=M,this.text="",this.lineSeparator=i.facet(vN.lineSeparator)}append(M){this.text+=M}lineBreak(){this.text+=Xu}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),D=Vs.get(N);(s&&D?s.breakAfter:(s?s.breakAfter:_u(e))||_u(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,D=1;if(this.lineSeparator?(s=i.indexOf(this.lineSeparator,t),D=this.lineSeparator.length):(N=e.exec(i))&&(s=N.index,D=N[0].length),this.append(i.slice(t,s<0?i.length:s)),s<0)break;if(this.lineBreak(),D>1)for(let i of this.points)i.node==M&&i.pos>this.text.length&&(i.pos-=D-1);t=s+D}}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+($u(M,t.node,t.offset)?i:0))}}function $u(M,i,t){for(;;){if(!i||t<ws(i))return!1;if(i==M)return!0;t=xs(i)+1,i=i.parentNode}}function _u(M){return 1==M.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(M.nodeName)}class qu{constructor(M,i){this.node=M,this.offset=i,this.pos=-1}}class Ku{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 qu(t,e)),N==t&&s==e||i.push(new qu(N,s)));return i}(M),t=new Hu(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||!zs(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||!zs(M.contentDOM,i.anchorNode)?M.state.selection.main.anchor:M.docView.posFromDOM(i.anchorNode,i.anchorOffset),D=M.viewport;if(tD.ios&&M.state.selection.main.empty&&t!=e&&(D.from>0||D.to<M.state.doc.length)){let i=D.from-Math.min(t,e),N=D.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 MI(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:D}=i.bounds,j=N.from,u=null;(8===s||tD.android&&i.text.length<D-e)&&(j=N.to,u="end");let I=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 D=M.length,j=i.length;for(;D>0&&j>0&&M.charCodeAt(D-1)==i.charCodeAt(j-1);)D--,j--;if("end"==e){t-=D+Math.max(0,s-Math.min(D,j))-s}if(D<s&&M.length<i.length){s-=t<=s&&t>=D?s-t:0,j=s+(j-D),D=s}else if(j<s){s-=t<=s&&t>=j?s-t:0,D=s+(D-j),j=s}return{from:s,toA:D,toB:j}}(M.state.doc.sliceString(e,D,Xu),i.text,j-e,u);I&&(tD.chrome&&13==s&&I.toB==I.from+2&&i.text.slice(I.from,I.toB)==Xu+Xu&&I.toB--,t={from:e+I.from,to:e+I.toA,insert:Te.of(i.text.slice(I.from,I.toB).split(Xu))})}else e&&(!M.hasFocus&&M.state.facet(sj)||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))}:(tD.mac||tD.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:Te.of([" "])}):tD.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:Te.of([" "])}),t){if(tD.ios&&M.inputState.flushIOSKey())return!0;if(tD.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,D=t.insert.toString();M.inputState.composing>=0&&M.inputState.composing++;let j=()=>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):"",D=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)+D))}else{let D=N.changes(i),j=t&&t.main.to<=D.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 u,I=M.state.sliceDoc(i.from,i.to),g=t&&xj(M,t.main.head);if(g){let M=i.insert.length-(i.to-i.from);u={from:g.from,to:g.to-M}}else u=M.state.doc.lineAt(s.head);let n=s.to-i.to,l=s.to-s.from;e=N.changeByRange((t=>{if(t.from==s.from&&t.to==s.to)return{changes:D,range:j||t.map(D)};let e=t.to-n,g=e-I.length;if(t.to-t.from!=l||M.state.sliceDoc(g,e)!=I||t.to>=u.from&&t.from<=u.to)return{range:t};let r=N.changes({from:g,to:e,insert:i.insert}),o=t.to-s.to;return{changes:r,range:j?$e.range(Math.max(0,j.anchor+o),Math.max(0,j.head+o)):t.map(r)}}))}else e={changes:D,selection:j&&N.selection.replaceRange(j)}}let D="input.type";(M.composing||M.inputState.compositionPendingChange&&M.inputState.compositionEndedAt>Date.now()-50)&&(M.inputState.compositionPendingChange=!1,D+=".compose",M.inputState.compositionFirstChange&&(D+=".start",M.inputState.compositionFirstChange=!1));return N.update(e,{userEvent:D,scrollIntoView:!0})}(M,t,e));return M.state.facet(qD).some((i=>i(M,t.from,t.to,D,j)))||M.dispatch(j()),!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 iI={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},tI=tD.ie&&tD.ie_version<=11;class eI{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);(tD.ie&&tD.ie_version<=11||tD.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()})),tI&&(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(sj)?t.root.activeElement!=this.dom:!ys(t.dom,e))return;let N=e.anchorNode&&t.docView.nearest(e.anchorNode);N&&N.ignoreEvent(M)?i||(this.selectionChanged=!1):(tD.ie&&tD.ie_version<=11||tD.android&&tD.chrome)&&!t.state.selection.main.empty&&e.focusNode&&As(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:M}=this,i=tD.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,D=i.endOffset,j=M.docView.domAtPos(M.state.selection.main.anchor);As(j.node,j.offset,s,D)&&([e,N,s,D]=[s,D,e,N]);return{anchorNode:e,anchorOffset:N,focusNode:s,focusOffset:D}}(this.view)||Ls(M.root);if(!i||this.selectionRange.eq(i))return!1;let t=ys(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=xs(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,iI),tI&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),tI&&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&&ys(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 Ku(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=MI(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=NI(i,M.previousSibling||M.target.previousSibling,-1),e=NI(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 NI(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 sI{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 Uu(M.state||vN.create(M)),M.scrollTo&&M.scrollTo.is(ej)&&(this.viewState.scrollTarget=M.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(jj).map((M=>new Ij(M)));for(let M of this.plugins)M.update(this);this.observer=new eI(this),this.inputState=new Vj(this),this.inputState.ensureHandlers(this.plugins),this.docView=new hj(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,D=0,j=null;M.some((M=>M.annotation(gu)))?(this.inputState.notifiedFocused=s,D=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,j=nu(N,s),j||(D=1));let u=this.observer.delayedAndroidKey,I=null;if(u?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(N.doc)||!this.state.selection.eq(N.selection))&&(I=null)):this.observer.clear(),N.facet(vN.phrases)!=this.state.facet(vN.phrases))return this.setState(N);i=yj.create(this,N,M),i.flags|=D;let g=this.viewState.scrollTarget;try{this.updateState=2;for(let i of M){if(g&&(g=g.map(i.changes)),i.scrollIntoView){let{main:M}=i.state.selection;g=new tj(M.empty?M:$e.cursor(M.head,M.head>M.anchor?-1:1))}for(let M of i.effects)M.is(ej)&&(g=M.value.clip(this.state))}this.viewState.update(i,g),this.bidiCache=uI.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(Lj)!=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(Vu)!=i.state.facet(Vu)&&(this.viewState.mustMeasureContent=!0),(t||e||g||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!i.empty)for(let M of this.state.facet(_D))try{M(i)}catch(M){Nj(this.state,M,"update listener")}(j||I)&&Promise.resolve().then((()=>{j&&this.state==j.startState&&this.dispatch(j),I&&!MI(this,I)&&u.force&&Zs(this.contentDOM,u.key,u.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 Uu(M),this.plugins=M.facet(jj).map((M=>new Ij(M))),this.pluginMap.clear();for(let M of this.plugins)M.update(this);this.docView.destroy(),this.docView=new hj(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(jj),t=M.state.facet(jj);if(i!=t){let e=[];for(let N of t){let t=i.indexOf(N);if(t<0)e.push(new Ij(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(ms(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 D=this.viewState.measure(this);if(!D&&!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 j=[];4&D||([this.measureRequests,j]=[j,this.measureRequests]);let u=j.map((M=>{try{return M.read(this)}catch(M){return Nj(this.state,M),jI}})),I=yj.create(this,this.state,[]),g=!1;I.flags|=D,i?i.flags|=D:i=I,this.updateState=2,I.empty||(this.updatePlugins(I),this.inputState.update(I),this.updateAttrs(),g=this.docView.update(I));for(let M=0;M<j.length;M++)if(u[M]!=jI)try{let i=j[M];i.write&&i.write(u[M],this)}catch(M){Nj(this.state,M)}if(g&&this.docView.updateSelection(!0),!I.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(_D))M(i)}get themeClasses(){return Gu+" "+(this.state.facet(vu)?Ru:Pu)+" "+this.state.facet(Vu)}updateAttrs(){let M=II(this,gj,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(sj)?"true":"false",class:"cm-content",style:`${tD.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),II(this,nj,i);let t=this.observer.ignore((()=>{let t=rD(this.contentDOM,this.contentAttrs,i),e=rD(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(sI.announce)){i&&(this.announceDOM.textContent=""),i=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=M.value}}mountStyles(){this.styleModules=this.state.facet(Lj);let M=this.state.facet(sI.cspNonce);gs.mount(this.root,this.styleModules.concat(Ju).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 Wj(this,M,mj(this,M,i,t))}moveByGroup(M,i){return Wj(this,M,mj(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==mN.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=Yj(M,i.head),s=e&&N.type==OD.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),D=M.posAtCoords({x:t==(e==ED.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(null!=D)return $e.cursor(D,t?-1:1)}return $e.cursor(t?N.to:N.from,t?-1:1)}(this,M,i,t)}moveVertically(M,i,t){return Wj(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 D,j=i.goalColumn,u=M.contentDOM.getBoundingClientRect(),I=M.coordsAtPos(N,i.assoc||-1),g=M.documentTop;if(I)null==j&&(j=I.left-u.left),D=s<0?I.top:I.bottom;else{let i=M.viewState.lineBlockAt(N);null==j&&(j=Math.min(u.right-u.left,M.defaultCharacterWidth*(N-i.from))),D=(s<0?i.top:i.bottom)+g}let n=u.left+j,l=null!=e?e:M.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let t=D+(l+i)*s,e=pj(M,{x:n,y:t},!1,s);if(t<u.top||t>u.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,j)}}}(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(),pj(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[fD.find(N,M-e.from,-1,i)].dir==ED.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(Mj)||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>DI)return PD(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||WD(e.isolates,i=aj(this,M))))return e.order;i||(i=aj(this,M));let e=function(M,i,t){if(!M)return[new fD(0,0,i==kD?1:0)];if(i==QD&&!t.length&&!mD.test(M))return PD(M.length);if(t.length)for(;M.length>VD.length;)VD[VD.length]=256;let e=[],N=i==QD?0:1;return GD(M,N,N,t,0,M.length,e),e}(M.text,t,i);return this.bidiCache.push(new uI(M.from,M.to,t,i,!0,e)),e}get hasFocus(){var M;return(this.dom.ownerDocument.hasFocus()||tD.safari&&(null===(M=this.inputState)||void 0===M?void 0:M.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{bs(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 ej.of(new tj("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 ej.of(new tj($e.cursor(t.from),"start","start",t.top-M,i,!0))}static domEventHandlers(M){return uj.define((()=>({})),{eventHandlers:M})}static domEventObservers(M){return uj.define((()=>({})),{eventObservers:M})}static theme(M,i){let t=gs.newName(),e=[Vu.of(t),Lj.of(Fu(`.${t}`,M))];return i&&i.dark&&e.push(vu.of(!0)),e}static baseTheme(M){return lN.lowest(Lj.of(Fu("."+Gu,M,Bu)))}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}}sI.styleModule=Lj,sI.inputHandler=qD,sI.focusChangeEffect=KD,sI.perLineTextDirection=Mj,sI.exceptionSink=$D,sI.updateListener=_D,sI.editable=sj,sI.mouseSelectionStyle=HD,sI.dragMovesSelection=XD,sI.clickAddsSelectionRange=JD,sI.decorations=lj,sI.outerDecorations=rj,sI.atomicRanges=oj,sI.bidiIsolatedRanges=cj,sI.scrollMargins=Tj,sI.darkTheme=vu,sI.cspNonce=Ke.define({combine:M=>M.length?M[0]:""}),sI.contentAttributes=nj,sI.editorAttributes=gj,sI.lineWrapping=sI.contentAttributes.of({class:"cm-lineWrapping"}),sI.announce=QN.define();const DI=4096,jI={};class uI{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:ED.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 uI(i.mapPos(s.from,1),i.mapPos(s.to,-1),s.dir,s.isolates,!1,s.order))}return t}}function II(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&&gD(s,t)}return t}const gI=tD.mac?"mac":tD.windows?"win":tD.linux?"linux":"key";function nI(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 lI=lN.default(sI.domEventHandlers({keydown:(M,i)=>OI(cI(i.state),M,i,"editor")})),rI=Ke.define({enables:lI}),oI=new WeakMap;function cI(M){let i=M.facet(rI),t=oI.get(i);return t||oI.set(i,t=function(M,i=gI){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,D,j)=>{var u,I;let g=t[M]||(t[M]=Object.create(null)),n=e.split(/ (?!$)/).map((M=>function(M,i){const t=M.split(/-(?!$)/);let e,N,s,D,j=t[t.length-1];"Space"==j&&(j=" ");for(let M=0;M<t.length-1;++M){const j=t[M];if(/^(cmd|meta|m)$/i.test(j))D=!0;else if(/^a(lt)?$/i.test(j))e=!0;else if(/^(c|ctrl|control)$/i.test(j))N=!0;else if(/^s(hift)?$/i.test(j))s=!0;else{if(!/^mod$/i.test(j))throw new Error("Unrecognized modifier name: "+j);"mac"==i?D=!0:N=!0}}return e&&(j="Alt-"+j),N&&(j="Ctrl-"+j),D&&(j="Meta-"+j),s&&(j="Shift-"+j),j}(M,i)));for(let i=1;i<n.length;i++){let t=n.slice(0,i).join(" ");N(t,!0),g[t]||(g[t]={preventDefault:!0,stopPropagation:!1,run:[i=>{let e=aI={view:i,prefix:t,scope:M};return setTimeout((()=>{aI==e&&(aI=null)}),TI),!0}]})}let l=n.join(" ");N(l,!1);let r=g[l]||(g[l]={preventDefault:!1,stopPropagation:!1,run:(null===(I=null===(u=g._any)||void 0===u?void 0:u.run)||void 0===I?void 0:I.slice())||[]});s&&r.run.push(s),D&&(r.preventDefault=!0),j&&(r.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 aI=null;const TI=4e3;function OI(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?os:rs)[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(Ye(N,0))==N.length&&" "!=N,D="",j=!1,u=!1,I=!1;aI&&aI.view==t&&aI.scope==e&&(D=aI.prefix+" ",Bj.indexOf(i.keyCode)<0&&(u=!0,aI=null));let g,n,l=new Set,r=M=>{if(M){for(let e of M.run)if(!l.has(e)&&(l.add(e),e(t,i)))return M.stopPropagation&&(I=!0),!0;M.preventDefault&&(M.stopPropagation&&(I=!0),u=!0)}return!1},o=M[e];return o&&(r(o[D+nI(N,i,!s)])?j=!0:s&&(i.altKey||i.metaKey||i.ctrlKey)&&!(tD.windows&&i.ctrlKey&&i.altKey)&&(g=rs[i.keyCode])&&g!=N?(r(o[D+nI(g,i,!0)])||i.shiftKey&&(n=os[i.keyCode])!=N&&n!=g&&r(o[D+nI(n,i,!1)]))&&(j=!0):s&&i.shiftKey&&r(o[D+nI(N,i,!0)])&&(j=!0),!j&&r(o._any)&&(j=!0)),u&&(j=!0),j&&I&&i.stopPropagation(),j}class LI{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=zI(M);return[new LI(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==ED.LTR,D=M.contentDOM,j=D.getBoundingClientRect(),u=zI(M),I=D.querySelector(".cm-line"),g=I&&window.getComputedStyle(I),n=j.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),l=j.right-(g?parseInt(g.paddingRight):0),r=Yj(M,e),o=Yj(M,N),c=r.type==OD.Text?r:null,a=o.type==OD.Text?o:null;c&&(M.lineWrapping||r.widgetLineBreaks)&&(c=yI(M,e,c));a&&(M.lineWrapping||o.widgetLineBreaks)&&(a=yI(M,N,a));if(c&&a&&c.from==a.from)return O(L(t.from,t.to,c));{let i=c?L(t.from,null,c):z(r,!1),e=a?L(null,t.to,a):z(o,!0),N=[];return(c||r).to<(a||o).from-(c&&a?1:0)||r.widgetLineBreaks>1&&i.bottom+M.defaultLineHeight/2<e.top?N.push(T(n,i.bottom,l,e.top)):i.bottom<e.top&&M.elementAtHeight((i.bottom+e.top)/2).type==OD.Text&&(i.bottom=e.top=(i.bottom+e.top)/2),O(i).concat(N).concat(O(e))}function T(M,t,e,N){return new LI(i,M-u.left,t-u.top-.01,e-M,N-t+.01)}function O({top:M,bottom:i,horizontal:t}){let e=[];for(let N=0;N<t.length;N+=2)e.push(T(t[N],M,t[N+1],i));return e}function L(i,t,e){let N=1e9,D=-1e9,j=[];function u(i,t,u,I,g){let r=M.coordsAtPos(i,i==e.to?-2:2),o=M.coordsAtPos(u,u==e.from?2:-2);r&&o&&(N=Math.min(r.top,o.top,N),D=Math.max(r.bottom,o.bottom,D),g==ED.LTR?j.push(s&&t?n:r.left,s&&I?l:o.right):j.push(!s&&I?n:o.left,!s&&t?l:r.right))}let I=null!=i?i:e.from,g=null!=t?t:e.to;for(let e of M.visibleRanges)if(e.to>I&&e.from<g)for(let N=Math.max(e.from,I),s=Math.min(e.to,g);;){let e=M.state.doc.lineAt(N);for(let D of M.bidiSpans(e)){let M=D.from+e.from,j=D.to+e.from;if(M>=s)break;j>N&&u(Math.max(M,N),null==i&&M<=I,Math.min(j,s),null==t&&j>=g,D.dir)}if(N=e.to+1,N>=s)break}return 0==j.length&&u(I,null==i,g,null==t,M.textDirection),{top:N,bottom:D,horizontal:j}}function z(M,i){let t=j.top+(i?M.top:M.bottom);return{top:t,bottom:t,horizontal:[]}}}(M,i,t)}}function zI(M){let i=M.scrollDOM.getBoundingClientRect();return{left:(M.textDirection==ED.LTR?i.left:i.right-M.scrollDOM.clientWidth*M.scaleX)-M.scrollDOM.scrollLeft*M.scaleX,top:i.top-M.scrollDOM.scrollTop*M.scaleY}}function yI(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:OD.Text}}class hI{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(AI)!=M.state.facet(AI)&&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(AI);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 AI=Ke.define();function xI(M){return[uj.define((i=>new hI(i,M))),AI.of(M)]}const dI=!tD.ios,wI=Ke.define({combine:M=>GN(M,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(M,i)=>Math.min(M,i),drawRangeCursor:(M,i)=>M||i})});function SI(M){return M.startState.facet(wI)!=M.state.facet(wI)}const EI=xI({above:!0,markers(M){let{state:i}=M,t=i.facet(wI),e=[];for(let N of i.selection.ranges){let s=N==i.selection.main;if(N.empty?!s||dI: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 LI.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=SI(M);return t&&QI(M.state,i),M.docChanged||M.selectionSet||t},mount(M,i){QI(i.state,M)},class:"cm-cursorLayer"});function QI(M,i){i.style.animationDuration=M.facet(wI).cursorBlinkRate+"ms"}const kI=xI({above:!1,markers:M=>M.state.selection.ranges.map((i=>i.empty?[]:LI.forRange(M,"cm-selectionBackground",i))).reduce(((M,i)=>M.concat(i))),update:(M,i)=>M.docChanged||M.selectionSet||M.viewportChanged||SI(M),class:"cm-selectionLayer"}),CI={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};dI&&(CI[".cm-line"].caretColor="transparent !important",CI[".cm-content"]={caretColor:"transparent !important"});const UI=lN.highest(sI.theme(CI)),bI=QN.define({map:(M,i)=>null==M?null:i.mapPos(M)}),pI=DN.define({create:()=>null,update:(M,i)=>(null!=M&&(M=i.changes.mapPos(M)),i.effects.reduce(((M,i)=>i.is(bI)?i.value:M),M))}),ZI=uj.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(pI);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(pI)!=t||M.docChanged||M.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:M}=this,i=M.state.field(pI),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(pI)!=M&&this.view.dispatch({effects:bI.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 YI(M,i,t,e,N){i.lastIndex=0;for(let s,D=M.iterRange(t,e),j=t;!D.next().done;j+=D.value.length)if(!D.lineBreak)for(;s=i.exec(D.value);)N(j+s.index,s)}class mI{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 XN,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))YI(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,D)=>{D>M.view.viewport.from&&s<M.view.viewport.to&&(t=Math.min(s,t),e=Math.max(D,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),D=Math.min(N.to,e);if(D>s){let t=M.state.doc.lineAt(s),e=t.to<D?M.state.doc.lineAt(D):t,j=Math.max(N.from,t.from),u=Math.min(N.to,e.to);if(this.boundary){for(;s>t.from;s--)if(this.boundary.test(t.text[s-1-t.from])){j=s;break}for(;D<e.to;D++)if(this.boundary.test(e.text[D-e.from])){u=D;break}}let I,g=[],n=(M,i,t)=>g.push(t.range(M,i));if(t==e)for(this.regexp.lastIndex=j-t.from;(I=this.regexp.exec(t.text))&&I.index<u-t.from;)this.addMatch(I,M,I.index+t.from,n);else YI(M.state.doc,this.regexp,j,u,((i,t)=>this.addMatch(t,M,i,n)));i=i.update({filterFrom:j,filterTo:u,filter:(M,i)=>M<j||i>u,add:g})}}return i}}const fI=null!=/x/.unicode?"gu":"g",WI=new RegExp("[\0-\b\n--\u2028\u2029\ufeff-]",fI),VI={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 vI=null;const GI=Ke.define({combine(M){let i=GN(M,{render:null,specialChars:WI,addSpecialChars:null});return(i.replaceTabs=!function(){var M;if(null==vI&&"undefined"!=typeof document&&document.body){let i=document.body.style;vI=null!=(null!==(M=i.tabSize)&&void 0!==M?M:i.MozTabSize)}return vI||!1}())&&(i.specialChars=new RegExp("\t|"+i.specialChars.source,fI)),i.addSpecialChars&&(i.specialChars=new RegExp(i.specialChars.source+"|"+i.addSpecialChars.source,fI)),i}});let PI=null;class RI extends TD{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")+" "+(VI[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 BI extends TD{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 FI=LD.line({class:"cm-activeLine"}),JI=uj.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(FI.range(N.from)),i=N.from)}return LD.set(t)}},{decorations:M=>M.decorations}),XI=2e3;function HI(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>XI?-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 $I(M,i){let t=HI(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 D=HI(M,i);if(!D)return e;let j=function(M,i,t){let e=Math.min(i.line,t.line),N=Math.max(i.line,t.line),s=[];if(i.off>XI||t.off>XI||i.col<0||t.col<0){let D=Math.min(i.off,t.off),j=Math.max(i.off,t.off);for(let i=e;i<=N;i++){let t=M.doc.line(i);t.length<=j&&s.push($e.range(t.from+D,t.to+j))}}else{let D=Math.min(i.col,t.col),j=Math.max(i.col,t.col);for(let i=e;i<=N;i++){let t=M.doc.line(i),e=Ds(t.text,D,M.tabSize,!0);if(e<0)s.push($e.cursor(t.to));else{let i=Ds(t.text,j,M.tabSize);s.push($e.range(t.from+e,t.from+i))}}}return s}(M.state,t,D);return j.length?s?$e.create(j.concat(e.ranges)):$e.create(j):e}}:null}const _I={Alt:[18,M=>!!M.altKey],Control:[17,M=>!!M.ctrlKey],Shift:[16,M=>!!M.shiftKey],Meta:[91,M=>!!M.metaKey]},qI={style:"cursor: crosshair"};const KI="-10000px";class Mg{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=[],D=i?[]:null;for(let t=0;t<N.length;t++){let e=N[t],j=-1;if(e){for(let M=0;M<this.tooltips.length;M++){let i=this.tooltips[M];i&&i.create==e.create&&(j=M)}if(j<0)s[t]=this.createTooltipView(e),D&&(D[t]=!!e.above);else{let e=s[t]=this.tooltipViews[j];D&&(D[t]=i[j]),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&&(D.forEach(((M,t)=>i[t]=M)),i.length=D.length),this.input=e,this.tooltips=N,this.tooltipViews=s,!0}}function ig(M){let{win:i}=M;return{top:0,left:0,bottom:i.innerHeight,right:i.innerWidth}}const tg=Ke.define({combine:M=>{var i,t,e;return{position:tD.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)||ig}}}),eg=new WeakMap,Ng=uj.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(tg);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 Mg(M,jg,(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(tg);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=KI,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(tD.gecko)e=M.offsetParent!=this.container.ownerDocument.body;else if(M.style.top==KI&&"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(tg).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,D=[];for(let j=0;j<this.manager.tooltips.length;j++){let u=this.manager.tooltips[j],I=this.manager.tooltipViews[j],{dom:g}=I,n=M.pos[j],l=M.size[j];if(!n||n.bottom<=Math.max(t.top,e.top)||n.top>=Math.min(t.bottom,e.bottom)||n.right<Math.max(t.left,e.left)-.1||n.left>Math.min(t.right,e.right)+.1){g.style.top=KI;continue}let r=u.arrow?I.dom.querySelector(".cm-tooltip-arrow"):null,o=r?7:0,c=l.right-l.left,a=null!==(i=eg.get(I))&&void 0!==i?i:l.bottom-l.top,T=I.offset||Dg,O=this.view.textDirection==ED.LTR,L=l.width>e.right-e.left?O?e.left:e.right-l.width:O?Math.min(n.left-(r?14:0)+T.x,e.right-c):Math.max(e.left,n.left-c+(r?14:0)-T.x),z=this.above[j];!u.strictSide&&(z?n.top-(l.bottom-l.top)-T.y<e.top:n.bottom+(l.bottom-l.top)+T.y>e.bottom)&&z==e.bottom-n.bottom>n.top-e.top&&(z=this.above[j]=!z);let y=(z?n.top-e.top:e.bottom-n.bottom)-o;if(y<a&&!1!==I.resize){if(y<this.view.defaultLineHeight){g.style.top=KI;continue}eg.set(I,a),g.style.height=(a=y)/s+"px"}else g.style.height&&(g.style.height="");let h=z?n.top-a-o-T.y:n.bottom+o+T.y,A=L+c;if(!0!==I.overlap)for(let M of D)M.left<A&&M.right>L&&M.top<h+a&&M.bottom>h&&(h=z?M.top-a-2-o:M.bottom+o+2);if("absolute"==this.position?(g.style.top=(h-M.parent.top)/s+"px",g.style.left=(L-M.parent.left)/N+"px"):(g.style.top=h/s+"px",g.style.left=L/N+"px"),r){let M=n.left+(O?T.x:-T.x)-(L+14-7);r.style.left=M/N+"px"}!0!==I.overlap&&D.push({left:L,top:h,right:A,bottom:h+a}),g.classList.toggle("cm-tooltip-above",z),g.classList.toggle("cm-tooltip-below",!z),I.positioned&&I.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=KI}},{eventObservers:{scroll(){this.maybeMeasure()}}}),sg=sI.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"}}}),Dg={x:0,y:0},jg=Ke.define({enables:[Ng,sg]}),ug=Ke.define();class Ig{static create(M){return new Ig(M)}constructor(M){this.view=M,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Mg(M,ug,(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 gg=jg.compute([ug],(M=>{let i=M.facet(ug).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:Ig.create,above:i[0].above,arrow:i.some((M=>M.arrow))}}));class ng{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 sD)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)),D=s&&s.dir==ED.RTL?-1:1;N=i.x<t.left?-D:D}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=>Nj(M.state,i,"hover tooltip")))}else s&&M.dispatch({effects:this.setHover.of(s)})}get tooltip(){let M=this.view.plugin(Ng),i=M?M.manager.tooltips.findIndex((M=>M.create==Ig.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-lg&&i.clientX<=t.right+lg&&i.clientY>=t.top-lg&&i.clientY<=t.bottom+lg}(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 D=M.scrollDOM.getBoundingClientRect(),j=M.documentTop+M.documentPadding.top+M.contentHeight;if(D.left>e||D.right<e||D.top>N||Math.min(D.bottom,j)<N)return!1;let u=M.posAtCoords({x:e,y:N},!1);return u>=i&&u<=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 lg=4;function rg(M,i={}){let t=QN.define(),e=DN.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(cg)&&(M=null);return M},provide:M=>ug.from(M)});return[e,uj.define((N=>new ng(N,M,e,t,i.hoverTime||300))),gg]}function og(M,i){let t=M.plugin(Ng);if(!t)return null;let e=t.manager.tooltips.indexOf(i);return e<0?null:t.manager.tooltipViews[e]}const cg=QN.define(),ag=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 Tg(M,i){let t=M.plugin(Og),e=t?t.specs.indexOf(i):-1;return e>-1?t.panels[e]:null}const Og=uj.fromClass(class{constructor(M){this.input=M.state.facet(yg),this.specs=this.input.filter((M=>M)),this.panels=this.specs.map((i=>i(M)));let i=M.state.facet(ag);this.top=new Lg(M,!0,i.topContainer),this.bottom=new Lg(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(ag);this.top.container!=i.topContainer&&(this.top.sync([]),this.top=new Lg(M.view,!0,i.topContainer)),this.bottom.container!=i.bottomContainer&&(this.bottom.sync([]),this.bottom=new Lg(M.view,!1,i.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=M.state.facet(yg);if(t!=this.input){let i=t.filter((M=>M)),e=[],N=[],s=[],D=[];for(let t of i){let i,j=this.specs.indexOf(t);j<0?(i=t(M.view),D.push(i)):(i=this.panels[j],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 D)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=>sI.scrollMargins.of((i=>{let t=i.plugin(M);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}}))});class Lg{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=zg(M);M=M.nextSibling}else this.dom.insertBefore(i.dom,M);for(;M;)M=zg(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 zg(M){let i=M.nextSibling;return M.remove(),i}const yg=Ke.define({enables:Og});class hg extends PN{compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}eq(M){return!1}destroy(M){}}hg.prototype.elementClass="",hg.prototype.toDOM=void 0,hg.prototype.mapMode=Ve.TrackBefore,hg.prototype.startSide=hg.prototype.endSide=-1,hg.prototype.point=!0;const Ag=Ke.define(),xg={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>JN.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},dg=Ke.define();function wg(M){return[Eg(),dg.of(Object.assign(Object.assign({},xg),M))]}const Sg=Ke.define({combine:M=>M.some((M=>M))});function Eg(M){let i=[Qg];return M&&!1===M.fixed&&i.push(Sg.of(!0)),i}const Qg=uj.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(dg).map((i=>new bg(M,i)));for(let M of this.gutters)this.dom.appendChild(M.dom);this.fixed=!M.state.facet(Sg),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(Sg)!=!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=JN.iter(this.view.state.facet(Ag),this.view.viewport.from),e=[],N=this.gutters.map((M=>new Ug(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==OD.Text&&i){Cg(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==OD.Text){Cg(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(dg),t=M.state.facet(dg),e=M.docChanged||M.heightChanged||M.viewportChanged||!JN.eq(M.startState.facet(Ag),M.state.facet(Ag),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 bg(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=>sI.scrollMargins.of((i=>{let t=i.plugin(M);return t&&0!=t.gutters.length&&t.fixed?i.textDirection==ED.LTR?{left:t.dom.offsetWidth*i.scaleX}:{right:t.dom.offsetWidth*i.scaleX}:null}))});function kg(M){return Array.isArray(M)?M:[M]}function Cg(M,i,t){for(;M.value&&M.from<=t;)M.from==t&&i.push(M.value),M.next()}class Ug{constructor(M,i,t){this.gutter=M,this.height=t,this.i=0,this.cursor=JN.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 pg(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=[];Cg(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 bg{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 D=M.lineBlockAtHeight(N-M.documentTop);i.domEventHandlers[t](M,D,e)&&e.preventDefault()}));this.markers=kg(i.markers(M)),i.initialSpacer&&(this.spacer=new pg(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=kg(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!JN.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 pg{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 D=s,j=N<i.length?i[N++]:null,u=!1;if(j){let M=j.elementClass;M&&(t+=" "+M);for(let M=s;M<this.markers.length;M++)if(this.markers[M].compare(j)){D=M,u=!0;break}}else D=this.markers.length;for(;s<D;){let M=this.markers[s++];if(M.toDOM){M.destroy(e);let i=e.nextSibling;e.remove(),e=i}}if(!j)break;j.toDOM&&(u?e=e.nextSibling:this.dom.insertBefore(j.toDOM(M),e)),u&&s++}this.dom.className=t,this.markers=i}destroy(){this.setMarkers(null,[])}}const Zg=Ke.define(),Yg=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 mg extends hg{constructor(M){super(),this.number=M}eq(M){return this.number==M.number}toDOM(){return document.createTextNode(this.number)}}function fg(M,i){return M.state.facet(Yg).formatNumber(i,M.state)}const Wg=dg.compute([Yg],(M=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:M=>M.state.facet(Zg),lineMarker:(M,i,t)=>t.some((M=>M.toDOM))?null:new mg(fg(M,M.state.doc.lineAt(i.from).number)),widgetMarker:()=>null,lineMarkerChange:M=>M.startState.facet(Yg)!=M.state.facet(Yg),initialSpacer:M=>new mg(fg(M,Vg(M.state.doc.lines))),updateSpacer(M,i){let t=fg(i.view,Vg(i.view.state.doc.lines));return t==M.number?M:new mg(t)},domEventHandlers:M.facet(Yg).domEventHandlers})));function Vg(M){let i=9;for(;i<M;)i=10*i+9;return i}const vg=new class extends hg{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Gg=Ag.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(vg.range(N)))}return JN.of(i)}));const Pg=1024;let Rg=0;class Bg{constructor(M,i){this.from=M,this.to=i}}class Fg{constructor(M={}){this.id=Rg++,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=Hg.match(M)),i=>{let t=M(i);return void 0===t?null:[this,t]}}}Fg.closedBy=new Fg({deserialize:M=>M.split(" ")}),Fg.openedBy=new Fg({deserialize:M=>M.split(" ")}),Fg.group=new Fg({deserialize:M=>M.split(" ")}),Fg.isolate=new Fg({deserialize:M=>{if(M&&"rtl"!=M&&"ltr"!=M&&"auto"!=M)throw new RangeError("Invalid value for isolate: "+M);return M||"auto"}}),Fg.contextHash=new Fg({perNode:!0}),Fg.lookAhead=new Fg({perNode:!0}),Fg.mounted=new Fg({perNode:!0});class Jg{constructor(M,i,t){this.tree=M,this.overlay=i,this.parser=t}static get(M){return M&&M.props&&M.props[Fg.mounted.id]}}const Xg=Object.create(null);class Hg{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):Xg,t=(M.top?1:0)|(M.skipped?2:0)|(M.error?4:0)|(null==M.name?8:0),e=new Hg(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(Fg.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(Fg.group),e=-1;e<(t?t.length:0);e++){let N=i[e<0?M.name:t[e]];if(N)return N}}}}Hg.none=new Hg("",Object.create(null),0,8);class $g{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 Hg(t.name,e,t.id,t.flags):t)}return new $g(i)}}const _g=new WeakMap,qg=new WeakMap;var Kg;!function(M){M[M.ExcludeBuffers=1]="ExcludeBuffers",M[M.IncludeAnonymous=2]="IncludeAnonymous",M[M.IgnoreMounts=4]="IgnoreMounts",M[M.IgnoreOverlays=8]="IgnoreOverlays"}(Kg||(Kg={}));class Mn{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=Jg.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 on(this.topNode,M)}cursorAt(M,i=0,t=0){let e=_g.get(this)||this.topNode,N=new on(e);return N.moveTo(M,i),_g.set(this,N._tree),N}get topNode(){return new jn(this,0,0,null)}resolve(M,i=0){let t=sn(_g.get(this)||this.topNode,M,i,!1);return _g.set(this,t),t}resolveInner(M,i=0){let t=sn(qg.get(this)||this.topNode,M,i,!0);return qg.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 jn?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=Jg.get(M.tree);if(s&&s.overlay&&s.overlay[0].from<=i&&s.overlay[s.overlay.length-1].to>=i){let D=new jn(s.tree,s.overlay[0].from+M.from,-1,M);(N||(N=[e])).push(sn(D,i,t,!1))}}return N?ln(N):e}(this,M,i)}iterate(M){let{enter:i,leave:t,from:e=0,to:N=this.length}=M,s=M.mode||0,D=(s&Kg.IncludeAnonymous)>0;for(let M=this.cursor(s|Kg.IncludeAnonymous);;){let s=!1;if(M.from<=N&&M.to>=e&&(!D&&M.type.isAnonymous||!1!==i(M))){if(M.firstChild())continue;s=!0}for(;s&&t&&(D||!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:On(Hg.none,this.children,this.positions,0,this.children.length,0,this.length,((M,i,t)=>new Mn(this.type,M,i,t,this.propValues)),M.makeTree||((M,i,t)=>new Mn(Hg.none,M,i,t)))}static build(M){return function(M){var i;let{buffer:t,nodeSet:e,maxBufferLength:N=Pg,reused:s=[],minRepeatType:D=e.types.length}=M,j=Array.isArray(t)?new tn(t,t.length):t,u=e.types,I=0,g=0;function n(M,i,t,O,L,z){let{id:y,start:h,end:A,size:x}=j,d=g;for(;x<0;){if(j.next(),-1==x){let i=s[y];return t.push(i),void O.push(h-M)}if(-3==x)return void(I=y);if(-4==x)return void(g=y);throw new RangeError(`Unrecognized record size: ${x}`)}let w,S,E=u[y],Q=h-M;if(A-h<=N&&(S=a(j.pos-i,L))){let i=new Uint16Array(S.size-S.skip),t=j.pos-S.size,N=i.length;for(;j.pos>t;)N=T(S.start,i,N);w=new en(i,A-S.start,e),Q=S.start-M}else{let M=j.pos-x;j.next();let i=[],t=[],e=y>=D?y:-1,s=0,u=A;for(;j.pos>M;)e>=0&&j.id==e&&j.size>=0?(j.end<=u-N&&(o(i,t,h,s,j.end,u,e,d),s=i.length,u=j.end),j.next()):z>2500?l(h,M,i,t):n(h,M,i,t,e,z+1);if(e>=0&&s>0&&s<i.length&&o(i,t,h,s,h,u,e,d),i.reverse(),t.reverse(),e>-1&&s>0){let M=r(E);w=On(E,i,t,0,i.length,0,A-h,M,M)}else w=c(E,i,t,A-h,d-A)}t.push(w),O.push(Q)}function l(M,i,t,s){let D=[],u=0,I=-1;for(;j.pos>i;){let{id:M,start:i,end:t,size:e}=j;if(e>4)j.next();else{if(I>-1&&i<I)break;I<0&&(I=t-N),D.push(M,i,t),u++,j.next()}}if(u){let i=new Uint16Array(4*u),N=D[D.length-2];for(let M=D.length-3,t=0;M>=0;M-=3)i[t++]=D[M],i[t++]=D[M+1]-N,i[t++]=D[M+2]-N,i[t++]=t;t.push(new en(i,D[2]-N,e)),s.push(N-M)}}function r(M){return(i,t,e)=>{let N,s,D=0,j=i.length-1;if(j>=0&&(N=i[j])instanceof Mn){if(!j&&N.type==M&&N.length==e)return N;(s=N.prop(Fg.lookAhead))&&(D=t[j]+N.length+s)}return c(M,i,t,e,D)}}function o(M,i,t,N,s,D,j,u){let I=[],g=[];for(;M.length>N;)I.push(M.pop()),g.push(i.pop()+t-s);M.push(c(e.types[j],I,g,D-s,u-D)),i.push(s-t)}function c(M,i,t,e,N=0,s){if(I){let M=[Fg.contextHash,I];s=s?[M].concat(s):[M]}if(N>25){let M=[Fg.lookAhead,N];s=s?[M].concat(s):[M]}return new Mn(M,i,t,e,s)}function a(M,i){let t=j.fork(),e=0,s=0,u=0,I=t.end-N,g={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){g.size=e,g.start=s,g.skip=u,u+=4,e+=4,t.next();continue}let j=t.pos-M;if(M<0||j<N||t.start<I)break;let n=t.id>=D?4:0,l=t.start;for(t.next();t.pos>j;){if(t.size<0){if(-3!=t.size)break M;n+=4}else t.id>=D&&(n+=4);t.next()}s=l,e+=M,u+=n}return(i<0||e==M)&&(g.size=e,g.start=s,g.skip=u),g.size>4?g:void 0}function T(M,i,t){let{id:e,start:N,end:s,size:u}=j;if(j.next(),u>=0&&e<D){let D=t;if(u>4){let e=j.pos-(u-4);for(;j.pos>e;)t=T(M,i,t)}i[--t]=D,i[--t]=s-M,i[--t]=N-M,i[--t]=e}else-3==u?I=e:-4==u&&(g=e);return t}let O=[],L=[];for(;j.pos>0;)n(M.start||0,M.bufferStart||0,O,L,-1,0);let z=null!==(i=M.length)&&void 0!==i?i:O.length?L[0]+O[0].length:0;return new Mn(u[M.topID],O.reverse(),L.reverse(),z)}(M)}}Mn.empty=new Mn(Hg.none,[],[],0);class tn{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 tn(this.buffer,this.index)}}class en{constructor(M,i,t){this.buffer=M,this.length=i,this.set=t}get type(){return Hg.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,D=-1;for(let j=M;j!=i&&!(Nn(N,e,s[j+1],s[j+2])&&(D=j,t>0));j=s[j+3]);return D}slice(M,i,t){let e=this.buffer,N=new Uint16Array(i-M),s=0;for(let D=M,j=0;D<i;){N[j++]=e[D++],N[j++]=e[D++]-t;let i=N[j++]=e[D++]-t;N[j++]=e[D++]-M,s=Math.max(s,i)}return new en(N,s,this.set)}}function Nn(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 sn(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 jn&&M.index<0?null:M.parent;if(!i)return M;M=i}let s=e?0:Kg.IgnoreOverlays;if(e)for(let e=M,D=e.parent;D;e=D,D=e.parent)e instanceof jn&&e.index<0&&(null===(N=D.enter(i,t,s))||void 0===N?void 0:N.from)!=e.from&&(M=D);for(;;){let e=M.enter(i,t,s);if(!e)return M;M=e}}class Dn{cursor(M=0){return new on(this,M)}getChild(M,i=null,t=null){let e=un(this,M,i,t);return e.length?e[0]:null}getChildren(M,i=null,t=null){return un(this,M,i,t)}resolve(M,i=0){return sn(this,M,i,!1)}resolveInner(M,i=0){return sn(this,M,i,!0)}matchContext(M){return In(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 jn extends Dn{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:D,positions:j}=s._tree,u=i>0?D.length:-1;M!=u;M+=i){let u=D[M],I=j[M]+s.from;if(Nn(e,t,I,I+u.length))if(u instanceof en){if(N&Kg.ExcludeBuffers)continue;let D=u.findChild(0,u.buffer.length,i,t-I,e);if(D>-1)return new nn(new gn(s,u,M,I),null,D)}else if(N&Kg.IncludeAnonymous||!u.type.isAnonymous||cn(u)){let D;if(!(N&Kg.IgnoreMounts)&&(D=Jg.get(u))&&!D.overlay)return new jn(D.tree,I,M,s);let j=new jn(u,I,M,s);return N&Kg.IncludeAnonymous||!j.type.isAnonymous?j:j.nextChild(i<0?u.children.length-1:0,i,t,e)}}if(N&Kg.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&Kg.IgnoreOverlays)&&(e=Jg.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 jn(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 un(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 In(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 gn{constructor(M,i,t,e){this.parent=M,this.buffer=i,this.index=t,this.start=e}}class nn extends Dn{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 nn(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&Kg.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 nn(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 nn(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 nn(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 Mn(this.type,M,i,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function ln(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 jn&&t.index<0?null:t.parent,N=M.slice();return e?N[i]=e:N.splice(i,1),new rn(N,t)}class rn{constructor(M,i){this.heads=M,this.node=i}get next(){return ln(this.heads)}}class on{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 jn)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 jn?(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&Kg.ExcludeBuffers)&&this.enterChild(1,M,i):this.yield(this._tree.enter(M,i,t))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Kg.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let M=this.mode&Kg.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&Kg.IncludeAnonymous||M instanceof en||!M.type.isAnonymous||cn(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 nn(this.buffer,i,this.stack[M]);return this.bufferNode=new nn(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 In(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 In(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 cn(M){return M.children.some((M=>M instanceof en||!M.type.isAnonymous||cn(M)))}const an=new WeakMap;function Tn(M,i){if(!M.isAnonymous||i instanceof en||i.type!=M)return 1;let t=an.get(i);if(null==t){t=1;for(let e of i.children){if(e.type!=M||!(e instanceof Mn)){t=1;break}t+=Tn(M,e)}an.set(i,t)}return t}function On(M,i,t,e,N,s,D,j,u){let I=0;for(let t=e;t<N;t++)I+=Tn(M,i[t]);let g=Math.ceil(1.5*I/8),n=[],l=[];return function i(t,e,N,D,j){for(let I=N;I<D;){let N=I,r=e[I],o=Tn(M,t[I]);for(I++;I<D;I++){let i=Tn(M,t[I]);if(o+i>=g)break;o+=i}if(I==N+1){if(o>g){let M=t[N];i(M.children,M.positions,0,M.children.length,e[N]+j);continue}n.push(t[N])}else{let i=e[I-1]+t[I-1].length-r;n.push(On(M,t,e,N,I,r,i,null,u))}l.push(r+j-s)}}(i,t,e,N,0),(j||u)(n,l,D)}class Ln{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 nn?this.setBuffer(M.context.buffer,M.index,i):M instanceof jn&&this.map.set(M.tree,i)}get(M){return M instanceof nn?this.getBuffer(M.context.buffer,M.index):M instanceof jn?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 zn{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 zn(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 D=0,j=0,u=0;;D++){let I=D<i.length?i[D]:null,g=I?I.fromA:1e9;if(g-j>=t)for(;s&&s.from<g;){let i=s;if(j>=i.from||g<=i.to||u){let M=Math.max(i.from,j)-u,t=Math.min(i.to,g)-u;i=M>=t?null:new zn(M,t,i.tree,i.offset+u,D>0,!!I)}if(i&&e.push(i),s.to>g)break;s=N<M.length?M[N++]:null}if(!I)break;j=I.toA,u=I.toA-I.toB}return e}}class yn{startParse(M,i,t){return"string"==typeof M&&(M=new hn(M)),t=t?t.length?t.map((M=>new Bg(M.from,M.to))):[new Bg(0,0)]:[new Bg(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 hn{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 Fg({perNode:!0});let An=0;class xn{constructor(M,i,t){this.set=M,this.base=i,this.modified=t,this.id=An++}static define(M){if(null==M?void 0:M.base)throw new Error("Can not derive from a modified tag");let i=new xn([],null,[]);if(i.set.push(i),M)for(let t of M.set)i.set.push(t);return i}static defineModifier(){let M=new wn;return i=>i.modified.indexOf(M)>-1?i:wn.get(i.base||i,i.modified.concat(M).sort(((M,i)=>M.id-i.id)))}}let dn=0;class wn{constructor(){this.instances=[],this.id=dn++}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 xn(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(wn.get(i,M));return N}}function Sn(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 D=M[i++];if(i==M.length&&"!"==D){N=0;break}if("/"!=D)throw new RangeError("Invalid path: "+M);s=M.slice(i)}let D=t.length-1,j=t[D];if(!j)throw new RangeError("Invalid path: "+M);let u=new Qn(e,N,D>0?t.slice(0,D):null);i[j]=u.sort(i[j])}}return En.add(i)}const En=new Fg;class Qn{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 kn(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 Cn(M,i,t,e=0,N=M.length){let s=new Un(e,Array.isArray(i)?i:[i],t);s.highlightRange(M.cursor(),e,N,"",s.highlighters),s.flush(N)}Qn.empty=new Qn([],2,null);class Un{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:D,to:j}=M;if(D>=t||j<=i)return;s.isTop&&(N=this.highlighters.filter((M=>!M.scope||M.scope(s))));let u=e,I=function(M){let i=M.type.prop(En);for(;i&&i.context&&!M.matchContext(i.context);)i=i.next;return i||null}(M)||Qn.empty,g=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,I.tags);if(g&&(u&&(u+=" "),u+=g,1==I.mode&&(e+=(e?" ":"")+g)),this.startSpan(Math.max(i,D),u),I.opaque)return;let n=M.tree&&M.tree.prop(Fg.mounted);if(n&&n.overlay){let s=M.node.enter(n.overlay[0].from+D,1),I=this.highlighters.filter((M=>!M.scope||M.scope(n.tree.type))),g=M.firstChild();for(let l=0,r=D;;l++){let o=l<n.overlay.length?n.overlay[l]:null,c=o?o.from+D:j,a=Math.max(i,r),T=Math.min(t,c);if(a<T&&g)for(;M.from<T&&(this.highlightRange(M,a,T,e,N),this.startSpan(Math.min(T,M.to),u),!(M.to>=c)&&M.nextSibling()););if(!o||c>t)break;r=o.to+D,r>i&&(this.highlightRange(s.cursor(),Math.max(i,o.from+D),Math.min(t,r),"",I),this.startSpan(Math.min(t,r),u))}g&&M.parent()}else if(M.firstChild()){n&&(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),u)}}while(M.nextSibling());M.parent()}}}const bn=xn.define,pn=bn(),Zn=bn(),Yn=bn(Zn),mn=bn(Zn),fn=bn(),Wn=bn(fn),Vn=bn(fn),vn=bn(),Gn=bn(vn),Pn=bn(),Rn=bn(),Bn=bn(),Fn=bn(Bn),Jn=bn(),Xn={comment:pn,lineComment:bn(pn),blockComment:bn(pn),docComment:bn(pn),name:Zn,variableName:bn(Zn),typeName:Yn,tagName:bn(Yn),propertyName:mn,attributeName:bn(mn),className:bn(Zn),labelName:bn(Zn),namespace:bn(Zn),macroName:bn(Zn),literal:fn,string:Wn,docString:bn(Wn),character:bn(Wn),attributeValue:bn(Wn),number:Vn,integer:bn(Vn),float:bn(Vn),bool:bn(fn),regexp:bn(fn),escape:bn(fn),color:bn(fn),url:bn(fn),keyword:Pn,self:bn(Pn),null:bn(Pn),atom:bn(Pn),unit:bn(Pn),modifier:bn(Pn),operatorKeyword:bn(Pn),controlKeyword:bn(Pn),definitionKeyword:bn(Pn),moduleKeyword:bn(Pn),operator:Rn,derefOperator:bn(Rn),arithmeticOperator:bn(Rn),logicOperator:bn(Rn),bitwiseOperator:bn(Rn),compareOperator:bn(Rn),updateOperator:bn(Rn),definitionOperator:bn(Rn),typeOperator:bn(Rn),controlOperator:bn(Rn),punctuation:Bn,separator:bn(Bn),bracket:Fn,angleBracket:bn(Fn),squareBracket:bn(Fn),paren:bn(Fn),brace:bn(Fn),content:vn,heading:Gn,heading1:bn(Gn),heading2:bn(Gn),heading3:bn(Gn),heading4:bn(Gn),heading5:bn(Gn),heading6:bn(Gn),contentSeparator:bn(vn),list:bn(vn),quote:bn(vn),emphasis:bn(vn),strong:bn(vn),link:bn(vn),monospace:bn(vn),strikethrough:bn(vn),inserted:bn(),deleted:bn(),changed:bn(),invalid:bn(),meta:Jn,documentMeta:bn(Jn),annotation:bn(Jn),processingInstruction:bn(Jn),definition:xn.defineModifier(),constant:xn.defineModifier(),function:xn.defineModifier(),standard:xn.defineModifier(),local:xn.defineModifier(),special:xn.defineModifier()};var Hn;kn([{tag:Xn.link,class:"tok-link"},{tag:Xn.heading,class:"tok-heading"},{tag:Xn.emphasis,class:"tok-emphasis"},{tag:Xn.strong,class:"tok-strong"},{tag:Xn.keyword,class:"tok-keyword"},{tag:Xn.atom,class:"tok-atom"},{tag:Xn.bool,class:"tok-bool"},{tag:Xn.url,class:"tok-url"},{tag:Xn.labelName,class:"tok-labelName"},{tag:Xn.inserted,class:"tok-inserted"},{tag:Xn.deleted,class:"tok-deleted"},{tag:Xn.literal,class:"tok-literal"},{tag:Xn.string,class:"tok-string"},{tag:Xn.number,class:"tok-number"},{tag:[Xn.regexp,Xn.escape,Xn.special(Xn.string)],class:"tok-string2"},{tag:Xn.variableName,class:"tok-variableName"},{tag:Xn.local(Xn.variableName),class:"tok-variableName tok-local"},{tag:Xn.definition(Xn.variableName),class:"tok-variableName tok-definition"},{tag:Xn.special(Xn.variableName),class:"tok-variableName2"},{tag:Xn.definition(Xn.propertyName),class:"tok-propertyName tok-definition"},{tag:Xn.typeName,class:"tok-typeName"},{tag:Xn.namespace,class:"tok-namespace"},{tag:Xn.className,class:"tok-className"},{tag:Xn.macroName,class:"tok-macroName"},{tag:Xn.propertyName,class:"tok-propertyName"},{tag:Xn.operator,class:"tok-operator"},{tag:Xn.comment,class:"tok-comment"},{tag:Xn.meta,class:"tok-meta"},{tag:Xn.invalid,class:"tok-invalid"},{tag:Xn.punctuation,class:"tok-punctuation"}]);const $n=new Fg;function _n(M){return Ke.define({combine:M?i=>i.concat(M):void 0})}const qn=new Fg;class Kn{constructor(M,i,t=[],e=""){this.data=M,this.name=e,vN.prototype.hasOwnProperty("tree")||Object.defineProperty(vN.prototype,"tree",{get(){return tl(this)}}),this.parser=i,this.extension=[nl.of(this),vN.languageData.of(((M,i,t)=>{let e=Ml(M,i,t),N=e.type.prop($n);if(!N)return[];let s=M.facet(N),D=e.type.prop(qn);if(D){let N=e.resolve(i-e.from,t);for(let i of D)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 Ml(M,i,t).type.prop($n)==this.data}findRegions(M){let i=M.facet(nl);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($n)==this.data)return void t.push({from:i,to:i+M.length});let N=M.prop(Fg.mounted);if(N){if(N.tree.prop($n)==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 Mn&&e(N,M.positions[t]+i)}};return e(tl(M),0),t}get allowsNesting(){return!0}}function Ml(M,i,t){let e=M.facet(nl),N=tl(M).topNode;if(!e||e.allowsNesting)for(let M=N;M;M=M.enter(i,t,Kg.ExcludeBuffers))M.type.isTop&&(N=M);return N}Kn.setState=QN.define();class il extends Kn{constructor(M,i,t){super(M,i,[],t),this.parser=i}static define(M){let i=_n(M.languageData);return new il(i,M.parser.configure({props:[$n.add((M=>M.isTop?i:void 0))]}),M.name)}configure(M,i){return new il(this.data,this.parser.configure(M),i||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function tl(M){let i=M.field(Kn.state,!1);return i?i.tree:Mn.empty}class el{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 Nl=null;class sl{constructor(M,i,t=[],e,N,s,D,j){this.parser=M,this.state=i,this.fragments=t,this.tree=e,this.treeLen=N,this.viewport=s,this.skipped=D,this.scheduleOn=j,this.parse=null,this.tempSkipped=[]}static create(M,i,t){return new sl(M,i,[],Mn.empty,0,t,[],null)}startParse(){return this.parser.startParse(new el(this.state.doc),this.fragments)}work(M,i){return null!=i&&i>=this.state.doc.length&&(i=void 0),this.tree!=Mn.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(zn.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(zn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(M){let i=Nl;Nl=this;try{return M()}finally{Nl=i}}withoutTempSkipped(M){for(let i;i=this.tempSkipped.pop();)M=Dl(M,i.from,i.to);return M}changes(M,i){let{fragments:t,tree:e,treeLen:N,viewport:s,skipped:D}=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=zn.applyChanges(t,i),e=Mn.empty,N=0,s={from:M.mapPos(s.from,-1),to:M.mapPos(s.to,1)},this.skipped.length){D=[];for(let i of this.skipped){let t=M.mapPos(i.from,1),e=M.mapPos(i.to,-1);t<e&&D.push({from:t,to:e})}}}return new sl(this.parser,i,t,e,N,s,D,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=Dl(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 yn{createParse(i,t,e){let N=e[0].from,s=e[e.length-1].to,D={parsedPos:N,advance(){let i=Nl;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 Mn(Hg.none,[],[],s-N)},stoppedAt:null,stopAt(){}};return D}}}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 Nl}}function Dl(M,i,t){return zn.applyChanges(M,[{fromA:i,toA:t,fromB:i,toB:t}])}class jl{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 jl(i)}static init(M){let i=Math.min(3e3,M.doc.length),t=sl.create(M.facet(nl).parser,M,{from:0,to:i});return t.work(20,i)||t.takeTree(),new jl(t)}}Kn.state=DN.define({create:jl.init,update(M,i){for(let M of i.effects)if(M.is(Kn.setState))return M.value;return i.startState.facet(nl)!=i.state.facet(nl)?jl.init(i.state):M.apply(i)}});let ul=M=>{let i=setTimeout((()=>M()),500);return()=>clearTimeout(i)};"undefined"!=typeof requestIdleCallback&&(ul=M=>{let i=-1,t=setTimeout((()=>{i=requestIdleCallback(M,{timeout:400})}),100);return()=>i<0?clearTimeout(t):cancelIdleCallback(i)});const Il="undefined"!=typeof navigator&&(null===(Hn=navigator.scheduling)||void 0===Hn?void 0:Hn.isInputPending)?()=>navigator.scheduling.isInputPending():null,gl=uj.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(Kn.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(Kn.state);i.tree==i.context.tree&&i.context.isDone(M.doc.length)||(this.working=ul(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(Kn.state);if(N.tree==N.context.tree&&N.context.isDone(e+1e5))return;let s=Date.now()+Math.min(this.chunkBudget,100,M&&!Il?Math.max(25,M.timeRemaining()-5):1e9),D=N.context.treeLen<e&&t.doc.length>e+1e3,j=N.context.work((()=>Il&&Il()||Date.now()>s),e+(D?0:1e5));this.chunkBudget-=Date.now()-i,(j||this.chunkBudget<=0)&&(N.context.takeTree(),this.view.dispatch({effects:Kn.setState.of(new jl(N.context))})),this.chunkBudget>0&&(!j||D)&&this.scheduleWork(),this.checkAsyncSchedule(N.context)}checkAsyncSchedule(M){M.scheduleOn&&(this.workScheduled++,M.scheduleOn.then((()=>this.scheduleWork())).catch((M=>Nj(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()}}}),nl=Ke.define({combine:M=>M.length?M[0]:null,enables:M=>[Kn.state,gl,sI.contentAttributes.compute([M],(i=>{let t=i.facet(M);return t&&t.name?{"data-language":t.name}:{}}))]});class ll{constructor(M,i=[]){this.language=M,this.support=i,this.extension=[M,i]}}const rl=Ke.define(),ol=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 cl(M){let i=M.facet(ol);return 9==i.charCodeAt(0)?M.tabSize*i.length:i.length}function al(M,i){let t="",e=M.tabSize,N=M.facet(ol)[0];if("\t"==N){for(;i>=e;)t+="\t",i-=e;N=" "}for(let M=0;M<i;M++)t+=N;return t}function Tl(M,i){M instanceof vN&&(M=new Ol(M));for(let t of M.state.facet(rl)){let e=t(M,i);if(void 0!==e)return e}let t=tl(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 zl(e,M,t)}(M,t,i):null}class Ol{constructor(M,i={}){this.state=M,this.options=i,this.unit=cl(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 Ll=new Fg;function zl(M,i,t){for(let e=M;e;e=e.next){let M=yl(e.node);if(M)return M(Al.create(i,t,e))}return 0}function yl(M){let i=M.type.prop(Ll);if(i)return i;let t,e=M.firstChild;if(e&&(t=e.type.prop(Fg.closedBy))){let i=M.lastChild,e=i&&t.indexOf(i.name)>-1;return M=>wl(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?hl:null}function hl(){return 0}class Al extends Ol{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 Al(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(xl(t,M))break;i=this.state.doc.lineAt(t.from)}return this.lineIndent(i.from)}continue(){return zl(this.context.next,this.base,this.pos)}}function xl(M,i){for(let t=i;t;t=t.parent)if(M==t)return!0;return!1}function dl({closing:M,align:i=!0,units:t=1}){return e=>wl(e,i,t,M)}function wl(M,i,t,e,N){let s=M.textAfter,D=s.match(/^\s*/)[0].length,j=e&&s.slice(D,D+e.length)==e||N==M.pos+D,u=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),D=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<D?t:null;M=N.to}}(M):null;return u?j?M.column(u.from):M.column(u.to):M.baseIndent+(j?0:M.unit*t)}function Sl({except:M,units:i=1}={}){return t=>{let e=M&&M.test(t.textAfter);return t.baseIndent+(e?0:i*t.unit)}}const El=Ke.define(),Ql=new Fg;function kl(M){let i=M.lastChild;return i&&i.to==M.to&&i.type.isError}function Cl(M,i,t){for(let e of M.facet(El)){let N=e(M,i,t);if(N)return N}return function(M,i,t){let e=tl(M);if(e.length<t)return null;let N=null;for(let s=e.resolveStack(t,1);s;s=s.next){let D=s.node;if(D.to<=t||D.from>t)continue;if(N&&D.from<i)break;let j=D.type.prop(Ql);if(j&&(D.to<e.length-50||e.length==M.doc.length||!kl(D))){let e=j(D,M);e&&e.from<=t&&e.from>=i&&e.to>t&&(N=e)}}return N}(M,i,t)}function Ul(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 bl=QN.define({map:Ul}),pl=QN.define({map:Ul});function Zl(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 Yl=DN.define({create:()=>LD.none,update(M,i){M=M.map(i.changes);for(let t of i.effects)if(t.is(bl)&&!fl(M,t.value.from,t.value.to)){let{preparePlaceholder:e}=i.state.facet(Pl),N=e?LD.replace({widget:new Jl(e(i.state,t.value))}):Fl;M=M.update({add:[N.range(t.value.from,t.value.to)]})}else t.is(pl)&&(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=>sI.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(Fl.range(e,N))}return LD.set(i,!0)}});function ml(M,i,t){var e;let N=null;return null===(e=M.field(Yl,!1))||void 0===e||e.between(i,t,((M,i)=>{(!N||N.from>M)&&(N={from:M,to:i})})),N}function fl(M,i,t){let e=!1;return M.between(i,i,((M,N)=>{M==i&&N==t&&(e=!0)})),e}function Wl(M,i){return M.field(Yl,!1)?i:i.concat(QN.appendConfig.of(Rl()))}function Vl(M,i,t=!0){let e=M.state.doc.lineAt(i.from).number,N=M.state.doc.lineAt(i.to).number;return sI.announce.of(`${M.state.phrase(t?"Folded lines":"Unfolded lines")} ${e} ${M.state.phrase("to")} ${N}.`)}const vl=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:M=>{for(let i of Zl(M)){let t=Cl(M.state,i.from,i.to);if(t)return M.dispatch({effects:Wl(M.state,[bl.of(t),Vl(M,t)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:M=>{if(!M.state.field(Yl,!1))return!1;let i=[];for(let t of Zl(M)){let e=ml(M.state,t.from,t.to);e&&i.push(pl.of(e),Vl(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=Cl(i,N.from,N.to);s&&t.push(bl.of(s)),e=(s?M.lineBlockAt(s.to):N).to+1}return t.length&&M.dispatch({effects:Wl(M.state,t)}),!!t.length}},{key:"Ctrl-Alt-]",run:M=>{let i=M.state.field(Yl,!1);if(!i||!i.size)return!1;let t=[];return i.between(0,M.state.doc.length,((M,i)=>{t.push(pl.of({from:M,to:i}))})),M.dispatch({effects:t}),!0}}],Gl={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Pl=Ke.define({combine:M=>GN(M,Gl)});function Rl(M){let i=[Yl,$l];return M&&i.push(Pl.of(M)),i}function Bl(M,i){let{state:t}=M,e=t.facet(Pl),N=i=>{let t=M.lineBlockAt(M.posAtDOM(i.target)),e=ml(M.state,t.from,t.to);e&&M.dispatch({effects:pl.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 Fl=LD.replace({widget:new class extends TD{toDOM(M){return Bl(M,null)}}});class Jl extends TD{constructor(M){super(),this.value=M}eq(M){return this.value==M.value}toDOM(M){return Bl(M,this.value)}}const Xl={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Hl extends hg{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 $l=sI.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 _l{constructor(M,i){let t;function e(M){let i=gs.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 Kn?M=>M.prop($n)==s.data:s?M=>M==s:void 0,this.style=kn(M.map((M=>({tag:M.tag,class:M.class||e(Object.assign({},M,{tag:null}))}))),{all:N}).style,this.module=t?new gs(t):null,this.themeType=i.themeType}static define(M,i){return new _l(M,i||{})}}const ql=Ke.define(),Kl=Ke.define({combine:M=>M.length?[M[0]]:null});function Mr(M){let i=M.facet(ql);return i.length?i:M.facet(Kl)}class ir{constructor(M){this.markCache=Object.create(null),this.tree=tl(M.state),this.decorations=this.buildDeco(M,Mr(M.state))}update(M){let i=tl(M.state),t=Mr(M.state),e=t!=Mr(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 LD.none;let t=new XN;for(let{from:e,to:N}of M.visibleRanges)Cn(this.tree,i,((M,i,e)=>{t.add(M,i,this.markCache[e]||(this.markCache[e]=LD.mark({class:e})))}),e,N);return t.finish()}}const tr=lN.high(uj.fromClass(ir,{decorations:M=>M.decorations})),er=_l.define([{tag:Xn.meta,color:"#404740"},{tag:Xn.link,textDecoration:"underline"},{tag:Xn.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Xn.emphasis,fontStyle:"italic"},{tag:Xn.strong,fontWeight:"bold"},{tag:Xn.strikethrough,textDecoration:"line-through"},{tag:Xn.keyword,color:"#708"},{tag:[Xn.atom,Xn.bool,Xn.url,Xn.contentSeparator,Xn.labelName],color:"#219"},{tag:[Xn.literal,Xn.inserted],color:"#164"},{tag:[Xn.string,Xn.deleted],color:"#a11"},{tag:[Xn.regexp,Xn.escape,Xn.special(Xn.string)],color:"#e40"},{tag:Xn.definition(Xn.variableName),color:"#00f"},{tag:Xn.local(Xn.variableName),color:"#30a"},{tag:[Xn.typeName,Xn.namespace],color:"#085"},{tag:Xn.className,color:"#167"},{tag:[Xn.special(Xn.variableName),Xn.macroName],color:"#256"},{tag:Xn.definition(Xn.propertyName),color:"#00c"},{tag:Xn.comment,color:"#940"},{tag:Xn.invalid,color:"#f00"}]),Nr=sI.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),sr=1e4,Dr="()[]{}",jr=Ke.define({combine:M=>GN(M,{afterCursor:!0,brackets:Dr,maxScanDistance:sr,renderMatch:gr})}),ur=LD.mark({class:"cm-matchingBracket"}),Ir=LD.mark({class:"cm-nonmatchingBracket"});function gr(M){let i=[],t=M.matched?ur:Ir;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 nr=DN.define({create:()=>LD.none,update(M,i){if(!i.docChanged&&!i.selection)return M;let t=[],e=i.state.facet(jr);for(let M of i.state.selection.ranges){if(!M.empty)continue;let N=ar(i.state,M.head,-1,e)||M.head>0&&ar(i.state,M.head-1,1,e)||e.afterCursor&&(ar(i.state,M.head,1,e)||M.head<i.state.doc.length&&ar(i.state,M.head+1,-1,e));N&&(t=t.concat(e.renderMatch(N,i.state)))}return LD.set(t,!0)},provide:M=>sI.decorations.from(M)}),lr=[nr,Nr];const rr=new Fg;function or(M,i,t){let e=M.prop(i<0?Fg.openedBy:Fg.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 cr(M){let i=M.type.prop(rr);return i?i(M.node):M}function ar(M,i,t,e={}){let N=e.maxScanDistance||sr,s=e.brackets||Dr,D=tl(M),j=D.resolveInner(i,t);for(let e=j;e;e=e.parent){let N=or(e.type,t,s);if(N&&e.from<e.to){let D=cr(e);if(D&&(t>0?i>=D.from&&i<D.to:i>D.from&&i<=D.to))return Tr(M,i,t,e,D,N,s)}}return function(M,i,t,e,N,s,D){let j=t<0?M.sliceDoc(i-1,i):M.sliceDoc(i,i+1),u=D.indexOf(j);if(u<0||u%2==0!=t>0)return null;let I={from:t<0?i-1:i,to:t>0?i+1:i},g=M.doc.iterRange(i,t>0?M.doc.length:0),n=0;for(let M=0;!g.next().done&&M<=s;){let s=g.value;t<0&&(M+=s.length);let j=i+M*t;for(let M=t>0?0:s.length-1,i=t>0?s.length:-1;M!=i;M+=t){let i=D.indexOf(s[M]);if(!(i<0||e.resolveInner(j+M,1).type!=N))if(i%2==0==t>0)n++;else{if(1==n)return{start:I,end:{from:j+M,to:j+M+1},matched:i>>1==u>>1};n--}}t>0&&(M+=s.length)}return g.done?{start:I,matched:!1}:null}(M,i,t,D,j.type,N,s)}function Tr(M,i,t,e,N,s,D){let j=e.parent,u={from:N.from,to:N.to},I=0,g=null==j?void 0:j.cursor();if(g&&(t<0?g.childBefore(e.from):g.childAfter(e.to)))do{if(t<0?g.to<=e.from:g.from>=e.to){if(0==I&&s.indexOf(g.type.name)>-1&&g.from<g.to){let M=cr(g);return{start:u,end:M?{from:M.from,to:M.to}:void 0,matched:!0}}if(or(g.type,t,D))I++;else if(or(g.type,-t,D)){if(0==I){let M=cr(g);return{start:u,end:M&&M.from<M.to?{from:M.from,to:M.to}:void 0,matched:!1}}I--}}}while(t<0?g.prevSibling():g.nextSibling());return{start:u,matched:!1}}const Or=Object.create(null),Lr=[Hg.none],zr=[],yr=Object.create(null),hr=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"]])hr[M]=xr(Or,i);function Ar(M,i){zr.indexOf(M)>-1||(zr.push(M),console.warn(i))}function xr(M,i){let t=[];for(let e of i.split(" ")){let i=[];for(let t of e.split(".")){let e=M[t]||Xn[t];e?"function"==typeof e?i.length?i=i.map(e):Ar(t,`Modifier ${t} used at start of tag`):i.length?Ar(t,`Tag ${t} used as modifier`):i=Array.isArray(e)?e:[e]:Ar(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=yr[N];if(s)return s.id;let D=yr[N]=Hg.define({id:Lr.length,name:e,props:[Sn({[e]:t})]});return Lr.push(D),D.id}ED.RTL,ED.LTR;function dr(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 wr=dr(Ur,0),Sr=dr(Cr,0),Er=dr(((M,i)=>Cr(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 Qr(M,i){let t=M.languageDataAt("commentTokens",i);return t.length?t[0]:{}}const kr=50;function Cr(M,i,t=i.selection.ranges){let e=t.map((M=>Qr(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,D,j=M.sliceDoc(e-kr,e),u=M.sliceDoc(N,N+kr),I=/\s*$/.exec(j)[0].length,g=/^\s*/.exec(u)[0].length,n=j.length-I;if(j.slice(n-i.length,n)==i&&u.slice(g,g+t.length)==t)return{open:{pos:e-I,margin:I&&1},close:{pos:N+g,margin:g&&1}};N-e<=2*kr?s=D=M.sliceDoc(e,N):(s=M.sliceDoc(e,e+kr),D=M.sliceDoc(N-kr,N));let l=/^\s*/.exec(s)[0].length,r=/\s*$/.exec(D)[0].length,o=D.length-r-t.length;return s.slice(l,l+i.length)==i&&D.slice(o,o+t.length)==t?{open:{pos:e+l+i.length,margin:/\s/.test(s.charAt(l+i.length))?1:0},close:{pos:N-r-t.length,margin:/\s/.test(D.charAt(o-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:D}=i;M.push({from:s.pos-N.open.length,to:s.pos+s.margin},{from:D.pos-D.margin,to:D.pos+N.close.length})}return{changes:M}}return null}function Ur(M,i,t=i.selection.ranges){let e=[],N=-1;for(let{from:M,to:s}of t){let t=e.length,D=1e9,j=Qr(i,M).line;if(j){for(let t=M;t<=s;){let u=i.doc.lineAt(t);if(u.from>N&&(M==s||s>u.from)){N=u.from;let M=/^\s*/.exec(u.text)[0].length,i=M==u.length,t=u.text.slice(M,M+j.length)==j?M:-1;M<u.text.length&&M<D&&(D=M),e.push({line:u,comment:t,token:j,indent:M,empty:i,single:!1})}t=u.to+1}if(D<1e9)for(let M=t;M<e.length;M++)e[M].indent<e[M].line.text.length&&(e[M].indent=D);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:D}of e)!D&&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 br=wN.define(),pr=wN.define(),Zr=Ke.define(),Yr=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)})}),mr=DN.define({create:()=>Kr.empty,update(M,i){let t=i.state.facet(Yr),e=i.annotation(br);if(e){let N=Pr.fromTransaction(i,e.selection),s=e.side,D=0==s?M.undone:M.done;return D=N?Rr(D,D.length,t.minDepth,N):Xr(D,i.startState.selection),new Kr(0==s?e.rest:D,0==s?D:e.rest)}let N=i.annotation(pr);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=Pr.fromTransaction(i),D=i.annotation(kN.time),j=i.annotation(kN.userEvent);return s?M=M.addChanges(s,D,j,t,i):i.selection&&(M=M.addSelection(i.startState.selection,D,j,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 Kr(M.done.map(Pr.fromJSON),M.undone.map(Pr.fromJSON))});function fr(M,i){return function({state:t,dispatch:e}){if(!i&&t.readOnly)return!1;let N=t.field(mr,!1);if(!N)return!1;let s=N.pop(M,t,i);return!!s&&(e(s),!0)}}const Wr=fr(0,!1),Vr=fr(1,!1),vr=fr(0,!0),Gr=fr(1,!0);class Pr{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 Pr(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 Pr(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=Fr;for(let i of M.startState.facet(Zr)){let e=i(M);e.length&&(t=t.concat(e))}return!t.length&&M.changes.empty?null:new Pr(M.changes.invert(M.startState.doc),t,void 0,i||M.startState.selection,Fr)}static selection(M){return new Pr(void 0,Fr,void 0,void 0,M)}}function Rr(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 Br(M,i){return M.length?i.length?M.concat(i):M:i}const Fr=[],Jr=200;function Xr(M,i){if(M.length){let t=M[M.length-1],e=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Jr));return e.length&&e[e.length-1].eq(i)?M:(e.push(i),Rr(M,M.length-1,1e9,t.setSelAfter(e)))}return[Pr.selection([i])]}function Hr(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 $r(M,i){if(!M.length)return M;let t=M.length,e=Fr;for(;t;){let N=_r(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?[Pr.selection(e)]:Fr}function _r(M,i,t){let e=Br(M.selectionsAfter.length?M.selectionsAfter.map((M=>M.map(i))):Fr,t);if(!M.changes)return Pr.selection(e);let N=M.changes.map(i),s=i.mapDesc(M.changes,!0),D=M.mapped?M.mapped.composeDesc(s):s;return new Pr(N,QN.mapEffects(M.effects,i),D,M.startSelection.map(s),e)}const qr=/^(input\.type|delete)($|\.)/;class Kr{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 Kr(this.done,this.undone):this}addChanges(M,i,t,e,N){let s=this.done,D=s[s.length-1];return s=D&&D.changes&&!D.changes.empty&&M.changes&&(!t||qr.test(t))&&(!D.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++],D=t[M++];s>=i&&N<=D&&(e=!0)}})),e}(D.changes,M.changes))||"input.type.compose"==t)?Rr(s,s.length-1,e.minDepth,new Pr(M.changes.compose(D.changes),Br(M.effects,D.effects),D.mapped,D.startSelection,Fr)):Rr(s,s.length,e.minDepth,M),new Kr(s,Fr,i,t)}addSelection(M,i,t,e){let N=this.done.length?this.done[this.done.length-1].selectionsAfter:Fr;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 Kr(Xr(this.done,M),this.undone,i,t)}addMapping(M){return new Kr($r(this.done,M),$r(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:br.of({side:M,rest:Hr(e),selection:s}),userEvent:0==M?"select.undo":"select.redo",scrollIntoView:!0});if(N.changes){let t=1==e.length?Fr:e.slice(0,e.length-1);return N.mapped&&(t=$r(t,N.mapped)),i.update({changes:N.changes,selection:N.startSelection,effects:N.effects,annotations:br.of({side:M,rest:t,selection:s}),filter:!1,userEvent:0==M?"undo":"redo",scrollIntoView:!0})}return null}}Kr.empty=new Kr(Fr,Fr);const Mo=[{key:"Mod-z",run:Wr,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Vr,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Vr,preventDefault:!0},{key:"Mod-u",run:vr,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Gr,preventDefault:!0}];function io(M,i){return $e.create(M.ranges.map(i),M.mainIndex)}function to(M,i){return M.update({selection:i,scrollIntoView:!0,userEvent:"select"})}function eo({state:M,dispatch:i},t){let e=io(M.selection,t);return!e.eq(M.selection,!0)&&(i(to(M,e)),!0)}function No(M,i){return $e.cursor(i?M.to:M.from)}function so(M,i){return eo(M,(t=>t.empty?M.moveByChar(t,i):No(t,i)))}function Do(M){return M.textDirectionAt(M.state.selection.main.head)==ED.LTR}const jo=M=>so(M,!Do(M)),uo=M=>so(M,Do(M));function Io(M,i){return eo(M,(t=>t.empty?M.moveByGroup(t,i):No(t,i)))}function go(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 no(M,i,t){let e,N,s=tl(M).resolveInner(i.head),D=t?Fg.closedBy:Fg.openedBy;for(let e=i.head;;){let i=t?s.childAfter(e):s.childBefore(e);if(!i)break;go(M,i,D)?s=i:e=t?i.to:i.from}return N=s.type.prop(D)&&(e=t?ar(M,s.from,1):ar(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 lo(M,i){return eo(M,(t=>{if(!t.empty)return No(t,i);let e=M.moveVertically(t,i);return e.head!=t.head?e:M.moveToLineBoundary(t,i)}))}const ro=M=>lo(M,!1),oo=M=>lo(M,!0);function co(M){let i,t=M.scrollDOM.clientHeight<M.scrollDOM.scrollHeight-2,e=0,N=0;if(t){for(let i of M.state.facet(sI.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 ao(M,i){let t,e=co(M),{state:N}=M,s=io(N.selection,(t=>t.empty?M.moveVertically(t,i,e.height):No(t,i)));if(s.eq(N.selection))return!1;if(e.selfScroll){let i=M.coordsAtPos(N.selection.main.head),D=M.scrollDOM.getBoundingClientRect(),j=D.top+e.marginTop,u=D.bottom-e.marginBottom;i&&i.top>j&&i.bottom<u&&(t=sI.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-j}))}return M.dispatch(to(N,s),{effects:t}),!0}const To=M=>ao(M,!1),Oo=M=>ao(M,!0);function Lo(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 zo(M,i){let t=io(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(to(M.state,t)),!0)}function yo(M,i){return zo(M,(t=>M.moveByChar(t,i)))}const ho=M=>yo(M,!Do(M)),Ao=M=>yo(M,Do(M));function xo(M,i){return zo(M,(t=>M.moveByGroup(t,i)))}function wo(M,i){return zo(M,(t=>M.moveVertically(t,i)))}const So=M=>wo(M,!1),Eo=M=>wo(M,!0);function Qo(M,i){return zo(M,(t=>M.moveVertically(t,i,co(M).height)))}const ko=M=>Qo(M,!1),Co=M=>Qo(M,!0),Uo=({state:M,dispatch:i})=>(i(to(M,{anchor:0})),!0),bo=({state:M,dispatch:i})=>(i(to(M,{anchor:M.doc.length})),!0),po=({state:M,dispatch:i})=>(i(to(M,{anchor:M.selection.main.anchor,head:0})),!0),Zo=({state:M,dispatch:i})=>(i(to(M,{anchor:M.selection.main.anchor,head:M.doc.length})),!0);function Yo(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 D=i(e);D<N?(t="delete.backward",D=mo(M,D,!1)):D>N&&(t="delete.forward",D=mo(M,D,!0)),N=Math.min(N,D),s=Math.max(s,D)}else N=mo(M,N,!1),s=mo(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?sI.announce.of(e.phrase("Selection deleted")):void 0})),!0)}function mo(M,i,t){if(M instanceof sI)for(let e of M.state.facet(sI.atomicRanges).map((i=>i(M))))e.between(i,i,((M,e)=>{M<i&&e>i&&(i=t?e:M)}));return i}const fo=(M,i)=>Yo(M,(t=>{let e,N,s=t.from,{state:D}=M,j=D.doc.lineAt(s);if(!i&&s>j.from&&s<j.from+200&&!/[^ \t]/.test(e=j.text.slice(0,s-j.from))){if("\t"==e[e.length-1])return s-1;let M=ss(e,D.tabSize)%cl(D)||cl(D);for(let i=0;i<M&&" "==e[e.length-1-i];i++)s--;N=s}else N=Ce(j.text,s-j.from,i,i)+j.from,N==s&&j.number!=(i?D.doc.lines:1)?N+=i?1:-1:!i&&/[\ufe00-\ufe0f]/.test(j.text.slice(N-j.from,s-j.from))&&(N=Ce(j.text,N-j.from,!1,!1)+j.from);return N})),Wo=M=>fo(M,!1),Vo=M=>fo(M,!0),vo=(M,i)=>Yo(M,(t=>{let e=t.head,{state:N}=M,s=N.doc.lineAt(e),D=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 j=Ce(s.text,e-s.from,i)+s.from,u=s.text.slice(Math.min(e,j)-s.from,Math.max(e,j)-s.from),I=D(u);if(null!=M&&I!=M)break;" "==u&&e==t.head||(M=I),e=j}return e})),Go=M=>vo(M,!1);function Po(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 Ro(M,i,t){if(M.readOnly)return!1;let e=[],N=[];for(let i of Po(M)){if(t?i.to==M.doc.length:0==i.from)continue;let s=M.doc.lineAt(t?i.to+1:i.from-1),D=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+D),Math.min(M.doc.length,t.head+D)))}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-D,M.head-D))}}return!!e.length&&(i(M.update({changes:e,scrollIntoView:!0,selection:$e.create(N,M.selection.mainIndex),userEvent:"move.line"})),!0)}function Bo(M,i,t){if(M.readOnly)return!1;let e=[];for(let i of Po(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 Fo=Xo(!1),Jo=Xo(!0);function Xo(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),D=!M&&e==N&&function(M,i){if(/\(\)|\[\]|\{\}/.test(M.sliceDoc(i-1,i+1)))return{from:i,to:i};let t,e=tl(M).resolveInner(i),N=e.childBefore(i),s=e.childAfter(i);return N&&s&&N.to<=i&&s.from>=i&&(t=N.type.prop(Fg.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 j=new Ol(i,{simulateBreak:e,simulateDoubleBreak:!!D}),u=Tl(j,e);for(null==u&&(u=ss(/^\s*/.exec(i.doc.lineAt(e).text)[0],i.tabSize));N<s.to&&/\s/.test(s.text[N-s.from]);)N++;D?({from:e,to:N}=D):e>s.from&&e<s.from+100&&!/\S/.test(s.text.slice(0,e))&&(e=s.from);let I=["",al(i,u)];return D&&I.push(al(i,j.lineIndent(s.from,-1))),{changes:{from:e,to:N,insert:Te.of(I)},range:$e.cursor(e+1+I[1].length)}}));return t(i.update(e,{scrollIntoView:!0,userEvent:"input"})),!0}}function Ho(M,i){let t=-1;return M.changeByRange((e=>{let N=[];for(let s=e.from;s<=e.to;){let D=M.doc.lineAt(s);D.number>t&&(e.empty||e.to>D.from)&&(i(D,N,e),t=D.number),s=D.to+1}let s=M.changes(N);return{changes:N,range:$e.range(s.mapPos(e.anchor,1),s.mapPos(e.head,1))}}))}const $o=[{key:"Ctrl-b",run:jo,shift:ho,preventDefault:!0},{key:"Ctrl-f",run:uo,shift:Ao},{key:"Ctrl-p",run:ro,shift:So},{key:"Ctrl-n",run:oo,shift:Eo},{key:"Ctrl-a",run:M=>eo(M,(i=>$e.cursor(M.lineBlockAt(i.head).from,1))),shift:M=>zo(M,(i=>$e.cursor(M.lineBlockAt(i.head).from)))},{key:"Ctrl-e",run:M=>eo(M,(i=>$e.cursor(M.lineBlockAt(i.head).to,-1))),shift:M=>zo(M,(i=>$e.cursor(M.lineBlockAt(i.head).to)))},{key:"Ctrl-d",run:Vo},{key:"Ctrl-h",run:Wo},{key:"Ctrl-k",run:M=>Yo(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:Go},{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:Te.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:Oo}],_o=[{key:"ArrowLeft",run:jo,shift:ho,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:M=>Io(M,!Do(M)),shift:M=>xo(M,!Do(M)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:M=>eo(M,(i=>Lo(M,i,!Do(M)))),shift:M=>zo(M,(i=>Lo(M,i,!Do(M)))),preventDefault:!0},{key:"ArrowRight",run:uo,shift:Ao,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M=>Io(M,Do(M)),shift:M=>xo(M,Do(M)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:M=>eo(M,(i=>Lo(M,i,Do(M)))),shift:M=>zo(M,(i=>Lo(M,i,Do(M)))),preventDefault:!0},{key:"ArrowUp",run:ro,shift:So,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Uo,shift:po},{mac:"Ctrl-ArrowUp",run:To,shift:ko},{key:"ArrowDown",run:oo,shift:Eo,preventDefault:!0},{mac:"Cmd-ArrowDown",run:bo,shift:Zo},{mac:"Ctrl-ArrowDown",run:Oo,shift:Co},{key:"PageUp",run:To,shift:ko},{key:"PageDown",run:Oo,shift:Co},{key:"Home",run:M=>eo(M,(i=>Lo(M,i,!1))),shift:M=>zo(M,(i=>Lo(M,i,!1))),preventDefault:!0},{key:"Mod-Home",run:Uo,shift:po},{key:"End",run:M=>eo(M,(i=>Lo(M,i,!0))),shift:M=>zo(M,(i=>Lo(M,i,!0))),preventDefault:!0},{key:"Mod-End",run:bo,shift:Zo},{key:"Enter",run:Fo},{key:"Mod-a",run:({state:M,dispatch:i})=>(i(M.update({selection:{anchor:0,head:M.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Wo,shift:Wo},{key:"Delete",run:Vo},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Go},{key:"Mod-Delete",mac:"Alt-Delete",run:M=>vo(M,!0)},{mac:"Mod-Backspace",run:M=>Yo(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=>Yo(M,(i=>{let t=M.moveToLineBoundary(i,!0).head;return i.head<t?t:Math.min(M.state.doc.length,i.head+1)}))}].concat($o.map((M=>({mac:M.key,run:M.run,shift:M.shift})))),qo=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:M=>eo(M,(i=>no(M.state,i,!Do(M)))),shift:M=>zo(M,(i=>no(M.state,i,!Do(M))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:M=>eo(M,(i=>no(M.state,i,Do(M)))),shift:M=>zo(M,(i=>no(M.state,i,Do(M))))},{key:"Alt-ArrowUp",run:({state:M,dispatch:i})=>Ro(M,i,!1)},{key:"Shift-Alt-ArrowUp",run:({state:M,dispatch:i})=>Bo(M,i,!1)},{key:"Alt-ArrowDown",run:({state:M,dispatch:i})=>Ro(M,i,!0)},{key:"Shift-Alt-ArrowDown",run:({state:M,dispatch:i})=>Bo(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(to(M,e)),!0)}},{key:"Mod-Enter",run:Jo},{key:"Alt-l",mac:"Ctrl-l",run:({state:M,dispatch:i})=>{let t=Po(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=io(M.selection,(i=>{var t;for(let e=tl(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(to(M,t)),!0},preventDefault:!0},{key:"Mod-[",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update(Ho(M,((i,t)=>{let e=/^\s*/.exec(i.text)[0];if(!e)return;let N=ss(e,M.tabSize),s=0,D=al(M,Math.max(0,N-cl(M)));for(;s<e.length&&s<D.length&&e.charCodeAt(s)==D.charCodeAt(s);)s++;t.push({from:i.from+s,to:i.from+e.length,insert:D.slice(s)})})),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update(Ho(M,((i,t)=>{t.push({from:i.from,insert:M.facet(ol)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=Object.create(null),e=new Ol(M,{overrideIndentation:M=>{let i=t[M];return null==i?-1:i}}),N=Ho(M,((i,N,s)=>{let D=Tl(e,i.from);if(null==D)return;/\S/.test(i.text)||(D=0);let j=/^\s*/.exec(i.text)[0],u=al(M,D);(j!=u||s.from<i.from+j.length)&&(t[i.from]=D,N.push({from:i.from,to:i.from+j.length,insert:u}))}));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(Po(i).map((({from:M,to:t})=>(M>0?M--:t<i.doc.length&&t++,{from:M,to:t})))),e=io(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=io(M.selection,(i=>{let N=ar(M,i.head,-1)||ar(M,i.head,1)||i.head>0&&ar(M,i.head-1,1)||i.head<M.doc.length&&ar(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(to(M,N)),!0)}(M,i,!1)},{key:"Mod-/",run:M=>{let{state:i}=M,t=i.doc.lineAt(i.selection.main.from),e=Qr(M.state,t.from);return e.line?wr(M):!!e.block&&Er(M)}},{key:"Alt-A",run:Sr}].concat(_o);function Ko(){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 Ye(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=me(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),D=this.match(s,N);if(M==e.length-1){if(D)return this.value=D,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 uc(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=Ic(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=Ic(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 Dc=new WeakMap;class jc{constructor(M,i){this.from=M,this.text=i}get to(){return this.from+this.text.length}static get(M,i,t){let e=Dc.get(M);if(!e||e.from>=t||e.to<=i){let e=new jc(i,M.sliceString(i,t));return Dc.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)),Dc.set(M,new jc(s,N)),new jc(i,N.slice(i-s,t-s))}}class uc{constructor(M,i,t,e,N){this.text=M,this.to=N,this.done=!1,this.value=ec,this.matchPos=Ic(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=jc.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=Ic(this.text,t+(M==t?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=jc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function Ic(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 gc(M){let i=Ko("input",{class:"cm-textfield",name:"line",value:String(M.state.doc.lineAt(M.state.selection.main.head).number)}),t=Ko("form",{class:"cm-gotoLine",onkeydown:i=>{27==i.keyCode?(i.preventDefault(),M.dispatch({effects:nc.of(!1)}),M.focus()):13==i.keyCode&&(i.preventDefault(),e())},onsubmit:M=>{M.preventDefault(),e()}},Ko("label",M.state.phrase("Go to line"),": ",i)," ",Ko("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,D,j,u]=t,I=j?+j.slice(1):0,g=D?+D:N.number;if(D&&u){let M=g/100;s&&(M=M*("-"==s?-1:1)+N.number/e.doc.lines),g=Math.round(e.doc.lines*M)}else D&&s&&(g=g*("-"==s?-1:1)+N.number);let n=e.doc.line(Math.max(1,Math.min(e.doc.lines,g))),l=$e.cursor(n.from+Math.max(0,Math.min(I,n.length)));M.dispatch({effects:[nc.of(!1),sI.scrollIntoView(l.from,{y:"center"})],selection:l}),M.focus()}return{dom:t}}"undefined"!=typeof Symbol&&(sc.prototype[Symbol.iterator]=uc.prototype[Symbol.iterator]=function(){return this});const nc=QN.define(),lc=DN.define({create:()=>!0,update(M,i){for(let t of i.effects)t.is(nc)&&(M=t.value);return M},provide:M=>yg.from(M,(M=>M?gc:null))}),rc=sI.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),oc={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},cc=Ke.define({combine:M=>GN(M,oc,{highlightWordAroundCursor:(M,i)=>M||i,minSelectionLength:Math.min,maxMatches:Math.min})});const ac=LD.mark({class:"cm-selectionMatch"}),Tc=LD.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Oc(M,i,t,e){return!(0!=t&&M(i.sliceDoc(t-1,t))==mN.Word||e!=i.doc.length&&M(i.sliceDoc(e,e+1))==mN.Word)}const Lc=uj.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 LD.none;let N,s=e.main,D=null;if(s.empty){if(!i.highlightWordAroundCursor)return LD.none;let M=t.wordAt(s.head);if(!M)return LD.none;D=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 LD.none;if(i.wholeWords){if(N=t.sliceDoc(s.from,s.to),D=t.charCategorizer(s.head),!Oc(D,t,s.from,s.to)||!function(M,i,t,e){return M(i.sliceDoc(t,t+1))==mN.Word&&M(i.sliceDoc(e-1,e))==mN.Word}(D,t,s.from,s.to))return LD.none}else if(N=t.sliceDoc(s.from,s.to).trim(),!N)return LD.none}let j=[];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((!D||Oc(D,t,e,N))&&(s.empty&&e<=s.from&&N>=s.to?j.push(Tc.range(e,N)):(e>=s.to||N<=s.from)&&j.push(ac.range(e,N)),j.length>i.maxMatches))return LD.none}}return LD.set(j)}},{decorations:M=>M.decorations}),zc=sI.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const yc=Ke.define({combine:M=>GN(M,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:M=>new $c(M),scrollToMatch:M=>sI.scrollIntoView(M)})});class hc{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 dc(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):xc(this,e,i,t)}}class Ac{constructor(M){this.spec=M}}function xc(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))==mN.Word&&i(Ec(N,t-s))==mN.Word||i(Ec(N,e-s))==mN.Word&&i(Sc(N,e-s))==mN.Word))}(i.doc,i.charCategorizer(i.selection.main.head)):void 0)}class dc extends Ac{constructor(M){super(M)}nextMatch(M,i,t){let e=xc(this.spec,M,t,M.doc.length).nextOverlapping();return e.done&&(e=xc(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=xc(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=xc(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=xc(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))!=mN.Word||N(Ec(t.input,t.index))!=mN.Word)&&(N(Ec(t.input,t.index+t[0].length))!=mN.Word||N(Sc(t.input,t.index+t[0].length))!=mN.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 Ac{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),D=null;for(;!s.next().done;)D=s.value;if(D&&(N==i||D.from>N+10))return D;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(),Uc=DN.define({create:M=>new bc(Rc(M).create(),null),update(M,i){for(let t of i.effects)t.is(kc)?M=new bc(t.value.create(),M.panel):t.is(Cc)&&(M=new bc(M.query,t.value?Pc:null));return M},provide:M=>yg.from(M,(M=>M.panel))});class bc{constructor(M,i){this.query=M,this.panel=i}}const pc=LD.mark({class:"cm-searchMatch"}),Zc=LD.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Yc=uj.fromClass(class{constructor(M){this.view=M,this.decorations=this.highlight(M.state.field(Uc))}update(M){let i=M.state.field(Uc);(i!=M.startState.field(Uc)||M.docChanged||M.selectionSet||M.viewportChanged)&&(this.decorations=this.highlight(i))}highlight({query:M,panel:i}){if(!i||!M.spec.valid)return LD.none;let{view:t}=this,e=new XN;for(let i=0,N=t.visibleRanges,s=N.length;i<s;i++){let{from:D,to:j}=N[i];for(;i<s-1&&j>N[i+1].from-500;)j=N[++i].to;M.highlight(t.state,D,j,((M,i)=>{let N=t.state.selection.ranges.some((t=>t.from==M&&t.to==i));e.add(M,i,N?Zc:pc)}))}return e.finish()}},{decorations:M=>M.decorations});function mc(M){return i=>{let t=i.state.field(Uc,!1);return t&&t.query.spec.valid?M(i,t):Jc(i)}}const fc=mc(((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(yc);return M.dispatch({selection:N,effects:[Ma(M,e),s.scrollToMatch(N.main,M)],userEvent:"select.search"}),Fc(M),!0})),Wc=mc(((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),D=M.state.facet(yc);return M.dispatch({selection:s,effects:[Ma(M,N),D.scrollToMatch(s.main,M)],userEvent:"select.search"}),Fc(M),!0})),Vc=mc(((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=mc(((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 D,j,u=[],I=[];if(s.from==e&&s.to==N&&(j=t.toText(i.getReplacement(s)),u.push({from:s.from,to:s.to,insert:j}),s=i.nextMatch(t,s.from,s.to),I.push(sI.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(e).number)+"."))),s){let i=0==u.length||u[0].from>=s.to?0:s.to-s.from-j.length;D=$e.single(s.from-i,s.to-i),I.push(Ma(M,s)),I.push(t.facet(yc).scrollToMatch(D.main,M))}return M.dispatch({changes:u,selection:D,effects:I,userEvent:"input.replace"}),!0})),Gc=mc(((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:sI.announce.of(e),userEvent:"input.replace.all"}),!0}));function Pc(M){return M.state.facet(yc).createPanel(M)}function Rc(M,i){var t,e,N,s,D;let j=M.selection.main,u=j.empty||j.to>j.from+100?"":M.sliceDoc(j.from,j.to);if(i&&!u)return i;let I=M.facet(yc);return new hc({search:(null!==(t=null==i?void 0:i.literal)&&void 0!==t?t:I.literal)?u:u.replace(/\n/g,"\\n"),caseSensitive:null!==(e=null==i?void 0:i.caseSensitive)&&void 0!==e?e:I.caseSensitive,literal:null!==(N=null==i?void 0:i.literal)&&void 0!==N?N:I.literal,regexp:null!==(s=null==i?void 0:i.regexp)&&void 0!==s?s:I.regexp,wholeWord:null!==(D=null==i?void 0:i.wholeWord)&&void 0!==D?D:I.wholeWord})}function Bc(M){let i=Tg(M,Pc);return i&&i.dom.querySelector("[main-field]")}function Fc(M){let i=Bc(M);i&&i==M.root.activeElement&&i.select()}const Jc=M=>{let i=M.state.field(Uc,!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},Xc=M=>{let i=M.state.field(Uc,!1);if(!i||!i.panel)return!1;let t=Tg(M,Pc);return t&&t.dom.contains(M.root.activeElement)&&M.focus(),M.dispatch({effects:Cc.of(!1)}),!0},Hc=[{key:"Mod-f",run:Jc,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:Xc,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=[],D=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&&(D=s.length),s.push($e.range(i.value.from,i.value.to))}return i(M.update({selection:$e.create(s,D),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:M=>{let i=Tg(M,gc);if(!i){let t=[nc.of(!0)];null==M.state.field(lc,!1)&&t.push(QN.appendConfig.of([lc,rc])),M.dispatch({effects:t}),i=Tg(M,gc)}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:sI.scrollIntoView(N.to)})),!0)},preventDefault:!0}];class $c{constructor(M){this.view=M;let i=this.query=M.state.field(Uc).query.spec;function t(M,i,t){return Ko("button",{class:"cm-button",name:M,onclick:i,type:"button"},t)}this.commit=this.commit.bind(this),this.searchField=Ko("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=Ko("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=Ko("input",{type:"checkbox",name:"case",form:"",checked:i.caseSensitive,onchange:this.commit}),this.reField=Ko("input",{type:"checkbox",name:"re",form:"",checked:i.regexp,onchange:this.commit}),this.wordField=Ko("input",{type:"checkbox",name:"word",form:"",checked:i.wholeWord,onchange:this.commit}),this.dom=Ko("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")]),Ko("label",null,[this.caseField,_c(M,"match case")]),Ko("label",null,[this.reField,_c(M,"regexp")]),Ko("label",null,[this.wordField,_c(M,"by word")]),...M.state.readOnly?[]:[Ko("br"),this.replaceField,t("replace",(()=>vc(M)),[_c(M,"replace")]),t("replaceAll",(()=>Gc(M)),[_c(M,"replace all")])],Ko("button",{name:"close",onclick:()=>Xc(M),"aria-label":_c(M,"close"),type:"button"},["×"])])}commit(){let M=new hc({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 OI(cI(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(yc).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),D=Math.min(N,t+qc),j=M.state.sliceDoc(s,D);if(s!=e.from)for(let M=0;M<qc;M++)if(!Kc.test(j[M+1])&&Kc.test(j[M])){j=j.slice(M);break}if(D!=N)for(let M=j.length-1;M>j.length-qc;M--)if(!Kc.test(j[M-1])&&Kc.test(j[M])){j=j.slice(0,M);break}return sI.announce.of(`${M.state.phrase("current match")}. ${j} ${M.state.phrase("on line")} ${e.number}.`)}const ia=sI.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=[Uc,lN.low(Yc),ia];class ea{constructor(M,i,t){this.state=M,this.pos=i,this.explicit=t,this.abortListeners=[]}tokenBefore(M){let i=tl(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(ua(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 Da{constructor(M,i,t,e){this.completion=M,this.source=i,this.match=t,this.score=e}}function ja(M){return M.selection.main.from}function ua(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 Ia=wN.define();const ga=new WeakMap;function na(M){if(!Array.isArray(M))return M;let i=ga.get(M);return i||ga.set(M,i=sa(M)),i}const la=QN.define(),ra=QN.define();class oa{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=Ye(M,i),e=fe(t);this.chars.push(t);let N=M.slice(i,i+e),s=N.toUpperCase();this.folded.push(Ye(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=Ye(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 D=M.indexOf(this.pattern);if(0==D)return this.ret(M.length==this.pattern.length?0:-100,[0,this.pattern.length]);let j=i.length,u=0;if(D<0){for(let N=0,s=Math.min(M.length,200);N<s&&u<j;){let s=Ye(M,N);s!=i[u]&&s!=t[u]||(e[u++]=N),N+=fe(s)}if(u<j)return!1}let I=0,g=0,n=!1,l=0,r=-1,o=-1,c=/[a-z]/.test(M),a=!0;for(let e=0,u=Math.min(M.length,200),T=0;e<u&&g<j;){let u=Ye(M,e);D<0&&(I<j&&u==i[I]&&(N[I++]=e),l<j&&(u==i[l]||u==t[l]?(0==l&&(r=e),o=e+1,l++):l=0));let O,L=u<255?u>=48&&u<=57||u>=97&&u<=122?2:u>=65&&u<=90?1:0:(O=me(u))!=O.toLowerCase()?1:O!=O.toUpperCase()?2:0;(!e||1==L&&c||0==T&&0!=L)&&(i[g]==u||t[g]==u&&(n=!0)?s[g++]=e:s.length&&(a=!1)),T=L,e+=fe(u)}return g==j&&0==s[0]&&a?this.result((n?-200:0)-100,s,M):l==j&&0==r?this.ret(-200-M.length+(o==M.length?0:-100),[0,o]):D>-1?this.ret(-700-M.length,[D,D+this.pattern.length]):l==j?this.ret(-900-M.length,[r,o]):g==j?this.result((n?-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(Ye(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:Ta,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 Ta(M,i,t,e,N,s){let D,j,u=M.textDirection==ED.RTL,I=u,g=!1,n="top",l=i.left-N.left,r=N.right-i.right,o=e.right-e.left,c=e.bottom-e.top;if(I&&l<Math.min(o,r)?I=!1:!I&&r<Math.min(o,l)&&(I=!0),o<=(I?l:r))D=Math.max(N.top,Math.min(t.top,N.bottom-c))-i.top,j=Math.min(400,I?l:r);else{g=!0,j=Math.min(400,(u?i.right:N.right-i.left)-30);let M=N.bottom-i.bottom;M>=c||M>i.top?D=t.bottom-i.top:(n="bottom",D=i.bottom-t.top)}return{style:`${n}: ${D/((i.bottom-i.top)/s.offsetHeight)}px; max-width: ${j/((i.right-i.left)/s.offsetWidth)}px`,class:"cm-completionInfo-"+(g?u?"left-narrow":"right-narrow":I?"left":"right")}}function Oa(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,D=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,D=0;for(let M=0;M<e.length;){let i=e[M++],t=e[M++];i>D&&N.appendChild(document.createTextNode(s.slice(D,i)));let j=N.appendChild(document.createElement("span"));j.appendChild(document.createTextNode(s.slice(i,t))),j.className="cm-completionMatchedText",D=t}return D<s.length&&N.appendChild(document.createTextNode(s.slice(D))),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))}(D),this.optionClass=D.optionClass,this.tooltipClass=D.tooltipClass,this.range=Oa(N.length,s,D.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:ra.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:D}=t.open;e.open&&e.open.options==N||(this.range=Oa(N.length,s,M.state.facet(ca).maxRenderedOptions),this.showOptions(N,t.id)),this.updateSel(),D!=(null===(i=e.open)||void 0===i?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!D)}}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=Oa(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=>Nj(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:D,match:j}=M[s],{section:u}=D;if(u){let M="string"==typeof u?u:u.name;if(M!=N&&(s>t.from||0==t.from))if(N=M,"string"!=typeof u&&u.header)e.appendChild(u.header(u));else{e.appendChild(document.createElement("completion-section")).textContent=M}}const I=e.appendChild(document.createElement("li"));I.id=i+"-"+s,I.setAttribute("role","option");let g=this.optionClass(D);g&&(I.className=g);for(let M of this.optionContent){let i=M(D,this.view.state,this.view,j);i&&I.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 za(M,i){return t=>new La(t,M,i)}function ya(M){return 100*(M.boost||0)+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}class ha{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 ha(this.options,da(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 Da(i,e.source,M?M(i):[],1e9-t.length));else{let t=new oa(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 Da(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=[],D=null,j=i.facet(ca).compareCompletions;for(let M of t.sort(((M,i)=>i.score-M.score||j(M.completion,i.completion)))){let i=M.completion;!D||D.label!=i.label||D.detail!=i.detail||null!=D.type&&null!=i.type&&D.type!=i.type||D.apply!=i.apply||D.boost!=i.boost?s.push(M):ya(M.completion)>ya(D)&&(s[s.length-1]=M),D=M.completion}return s}(M,i);if(!s.length)return e&&M.some((M=>1==M.state))?new ha(e.options,e.attrs,e.tooltip,e.timestamp,e.selected,!0):null;let D=i.facet(ca).selectOnOpen?0:-1;if(e&&e.selected!=D&&-1!=e.selected){let M=e.options[e.selected].completion;for(let i=0;i<s.length;i++)if(s[i].completion==M){D=i;break}}return new ha(s,da(t,D),{pos:M.reduce(((M,i)=>i.hasResult()?Math.min(M,i.from):M),1e8),create:pa,above:N.aboveCursor},e?e.timestamp:Date.now(),D,!1)}map(M){return new ha(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:M.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class Aa{constructor(M,i,t){this.active=M,this.id=i,this.open=t}static start(){return new Aa(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",ja(i)).map(na)).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=ha.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 Aa(e,this.id,N)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:xa}}const xa={"aria-autocomplete":"list"};function da(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(la))e=new Ea(e.source,1,i.value?ja(M.state):-1);else if(i.is(ra))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(ja(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),D=ja(M.state);if((this.explicitPos<0?D<=N:D<this.from)||D>s||"delete"==i&&ja(M.startState)==this.from)return new Ea(this.source,"input"==i&&t.activateOnTyping?1:0);let j,u=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):ua(M,!0).test(N)}(this.result.validFor,M.state,N,s)?new Qa(this.source,u,this.result,N,s):this.result.update&&(j=this.result.update(this.result,N,s,new ea(M.state,D,u>=0)))?new Qa(this.source,u,j,j.from,null!==(e=j.to)&&void 0!==e?e:ja(M.state)):new Ea(this.source,1,u)}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(),Ua=DN.define({create:()=>Aa.start(),update:(M,i)=>M.update(i),provide:M=>[jg.from(M,(M=>M.tooltip)),sI.contentAttributes.from(M,(M=>M.attrs))]});function ba(M,i){const t=i.completion.apply||i.completion.label;let e=M.state.field(Ua).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,D=e-N.from;return Object.assign(Object.assign({},M.changeByRange((j=>j!=N&&t!=e&&M.sliceDoc(j.from+s,j.from+D)!=M.sliceDoc(t,e)?{range:j}:{changes:{from:j.from+s,to:e==N.from?j.to:j.from+D,insert:i},range:$e.cursor(j.from+s+i.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(M.state,t,e.from,e.to)),{annotations:Ia.of(i.completion)})):t(M,i.completion,e.from,e.to),!0)}const pa=za(Ua,ba);function Za(M,i="option"){return t=>{let e=t.state.field(Ua,!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=og(t,e.open.tooltip))&&(s=Math.max(2,Math.floor(N.dom.offsetHeight/N.dom.querySelector("li").offsetHeight)-1));let{length:D}=e.open.options,j=e.open.selected>-1?e.open.selected+s*(M?1:-1):M?0:D-1;return j<0?j="page"==i?0:D-1:j>=D&&(j="page"==i?D-1:0),t.dispatch({effects:Ca.of(j)}),!0}}class Ya{constructor(M,i){this.active=M,this.context=i,this.time=Date.now(),this.updates=[],this.done=void 0}}const ma=uj.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(Ua).active)1==i.state&&this.startQuery(i)}update(M){let i=M.state.field(Ua);if(!M.selectionSet&&!M.docChanged&&M.startState.field(Ua)==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){Nj(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(la)))))&&(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(Ua);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=ja(i),e=new ea(i,t,M.explicitPos==t),N=new Ya(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:ra.of(null)}),Nj(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:ja(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(Ua).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(Ua,!1);if(i&&i.tooltip&&this.view.state.facet(ca).closeOnBlur){let t=i.open&&og(this.view,i.open.tooltip);t&&t.dom.contains(M.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:ra.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:la.of(!1)})),20),this.composing=0}}}),fa=sI.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,D=/^\t*/.exec(N)[0].length;for(let i=0;i<D;i++)t+=M.facet(ol);e.push(i+t.length-D),N=t+N.slice(D)}t.push(N),i+=N.length+1}let D=this.fieldPositions.map((M=>new Va(M.field,e[M.line]+M.from,e[M.line]+M.to)));return{text:t,ranges:D}}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,D=i[2]||i[3]||"",j=-1;for(let i=0;i<t.length;i++)(null!=M?t[i].seq==M:D&&t[i].name==D)&&(j=i);if(j<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:D}),j=i;for(let M of N)M.field>=j&&M.field++}N.push(new Wa(j,e.length,i.index,i.index+D.length)),s=s.slice(0,i.index)+D+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=LD.widget({widget:new class extends TD{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),Pa=LD.mark({class:"cm-snippetField"});class Ra{constructor(M,i){this.ranges=M,this.active=i,this.deco=LD.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(),Ja=DN.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=>sI.decorations.from(M,(M=>M?M.deco:LD.none))});function Xa(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:D}=i.instantiate(M.state,e),j={changes:{from:e,to:N,insert:Te.of(s)},scrollIntoView:!0,annotations:t?[Ia.of(t),kN.userEvent.of("input.complete")]:void 0};if(D.length&&(j.selection=Xa(D,0)),D.some((M=>M.field>0))){let i=new Ra(D,0),t=j.effects=[Ba.of(i)];void 0===M.state.field(Ja,!1)&&t.push(QN.appendConfig.of([Ja,Ka,iT,fa]))}M.dispatch(M.state.update(j))}}function $a(M){return({state:i,dispatch:t})=>{let e=i.field(Ja,!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:Xa(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(Ja,!1)&&(i(M.update({effects:Ba.of(null)})),!0)}],qa=Ke.define({combine:M=>M.length?M[0]:_a}),Ka=lN.highest(rI.compute([qa],(M=>M.facet(qa))));function MT(M,i){return Object.assign(Object.assign({},i),{apply:Ha(M)})}const iT=sI.domEventHandlers({mousedown(M,i){let t,e=i.state.field(Ja,!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:Xa(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)}}),tT={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},eT=QN.define({map(M,i){let t=i.mapPos(M,-1,Ve.TrackAfter);return null==t?void 0:t}}),NT=new class extends PN{};NT.startSide=1,NT.endSide=-1;const sT=DN.define({create:()=>JN.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(eT)&&(M=M.update({add:[NT.range(t.value,t.value+1)]}));return M}});const DT="()[]{}<>";function jT(M){for(let i=0;i<DT.length;i+=2)if(DT.charCodeAt(i)==M)return DT.charAt(i+1);return me(M<128?M:M+1)}function uT(M,i){return M.languageDataAt("closeBrackets",i)[0]||tT}const IT="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),gT=sI.inputHandler.of(((M,i,t,e)=>{if((IT?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let N=M.state.selection.main;if(e.length>2||2==e.length&&1==fe(Ye(e,0))||i!=N.from||t!=N.to)return!1;let s=function(M,i){let t=uT(M,M.selection.main.head),e=t.brackets||tT.brackets;for(let N of e){let s=jT(Ye(N,0));if(i==N)return s==N?aT(M,N,e.indexOf(N+N+N)>-1,t):oT(M,N,s,t.before||tT.before);if(i==s&&lT(M,M.selection.main.from))return cT(M,N,s)}return null}(M.state,e);return!!s&&(M.dispatch(s),!0)})),nT=[{key:"Backspace",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=uT(M,M.selection.main.head).brackets||tT.brackets,e=null,N=M.changeByRange((i=>{if(i.empty){let e=function(M,i){let t=M.sliceString(i-2,i);return fe(Ye(t,0))==t.length?t:t.slice(1)}(M.doc,i.head);for(let N of t)if(N==e&&rT(M.doc,i.head)==jT(Ye(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 lT(M,i){let t=!1;return M.field(sT).between(0,M.doc.length,(M=>{M==i&&(t=!0)})),t}function rT(M,i){let t=M.sliceString(i,i+2);return t.slice(0,fe(Ye(t,0)))}function oT(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:eT.of(s.to+i.length),range:$e.range(s.anchor+i.length,s.head+i.length)};let D=rT(M.doc,s.head);return!D||/\s/.test(D)||e.indexOf(D)>-1?{changes:{insert:i+t,from:s.head},effects:eT.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 cT(M,i,t){let e=null,N=M.changeByRange((i=>i.empty&&rT(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 aT(M,i,t,e){let N=e.stringPrefixes||tT.stringPrefixes,s=null,D=M.changeByRange((e=>{if(!e.empty)return{changes:[{insert:i,from:e.from},{insert:i,from:e.to}],effects:eT.of(e.to+i.length),range:$e.range(e.anchor+i.length,e.head+i.length)};let D,j=e.head,u=rT(M.doc,j);if(u==i){if(TT(M,j))return{changes:{insert:i+i,from:j},effects:eT.of(j+i.length),range:$e.cursor(j+i.length)};if(lT(M,j)){let e=t&&M.sliceDoc(j,j+3*i.length)==i+i+i?i+i+i:i;return{changes:{from:j,to:j+e.length,insert:e},range:$e.cursor(j+e.length)}}}else{if(t&&M.sliceDoc(j-2*i.length,j)==i+i&&(D=OT(M,j-2*i.length,N))>-1&&TT(M,D))return{changes:{insert:i+i+i+i,from:j},effects:eT.of(j+i.length),range:$e.cursor(j+i.length)};if(M.charCategorizer(j)(u)!=mN.Word&&OT(M,j,N)>-1&&!function(M,i,t,e){let N=tl(M).resolveInner(i,-1),s=e.reduce(((M,i)=>Math.max(M,i.length)),0);for(let D=0;D<5;D++){let D=M.sliceDoc(N.from,Math.min(N.to,N.from+t.length+s)),j=D.indexOf(t);if(!j||j>-1&&e.indexOf(D.slice(0,j))>-1){let i=N.firstChild;for(;i&&i.from==N.from&&i.to-i.from>t.length+j;){if(M.sliceDoc(i.to-t.length,i.to)==t)return!1;i=i.firstChild}return!0}let u=N.to==i&&N.parent;if(!u)break;N=u}return!1}(M,j,i,N))return{changes:{insert:i+i,from:j},effects:eT.of(j+i.length),range:$e.cursor(j+i.length)}}return{range:s=e}}));return s?null:M.update(D,{scrollIntoView:!0,userEvent:"input.type"})}function TT(M,i){let t=tl(M).resolveInner(i+1);return t.parent&&t.from==i}function OT(M,i,t){let e=M.charCategorizer(i);if(e(M.sliceDoc(i-1,i))!=mN.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))!=mN.Word)return t}return-1}function LT(M={}){return[Ua,ca.of(M),ma,yT,fa]}const zT=[{key:"Ctrl-Space",run:M=>!!M.state.field(Ua,!1)&&(M.dispatch({effects:la.of(!0)}),!0)},{key:"Escape",run:M=>{let i=M.state.field(Ua,!1);return!(!i||!i.active.some((M=>0!=M.state)))&&(M.dispatch({effects:ra.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(Ua,!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)&&ba(M,i.open.options[i.open.selected])}}],yT=lN.highest(rI.computeN([ca],(M=>M.facet(ca).defaultKeymap?[zT]:[])));class hT{constructor(M,i,t){this.from=M,this.to=i,this.diagnostic=t}}class AT{constructor(M,i,t){this.diagnostics=M,this.panel=i,this.selected=t}static init(M,i,t){let e=M,N=t.facet(pT).markerFilter;N&&(e=N(e,t));let s=LD.set(e.map((M=>M.from==M.to||M.from==M.to-1&&t.doc.lineAt(M.from).to==M.from?LD.widget({widget:new mT(M),diagnostic:M}).range(M.from):LD.mark({attributes:{class:"cm-lintRange cm-lintRange-"+M.severity+(M.markClass?" "+M.markClass:"")},diagnostic:M,inclusive:!0}).range(M.from,M.to))),!0);return new AT(s,i,xT(s))}}function xT(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 hT(M,t,N.diagnostic),!1})),e}const dT=QN.define(),wT=QN.define(),ST=QN.define(),ET=DN.define({create:()=>new AT(LD.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=xT(t,M.selected.diagnostic,N)||xT(t,null,N)}M=new AT(t,M.panel,e)}for(let t of i.effects)t.is(dT)?M=AT.init(t.value,M.panel,i.state):t.is(wT)?M=new AT(M.diagnostics,t.value?WT.open:null,M.selected):t.is(ST)&&(M=new AT(M.diagnostics,M.panel,t.value));return M},provide:M=>[yg.from(M,(M=>M.panel)),sI.decorations.from(M,(M=>M.diagnostics))]}),QT=LD.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function kT(M,i,t){let{diagnostics:e}=M.state.field(ET),N=[],s=2e8,D=0;e.between(i-(t<0?1:0),i+(t>0?1:0),((M,e,{spec:j})=>{i>=M&&i<=e&&(M==e||(i>M||t>0)&&(i<e||t<0))&&(N.push(j.diagnostic),s=Math.min(M,s),D=Math.max(e,D))}));let j=M.state.facet(pT).tooltipFilter;return j&&(N=j(N,M.state)),N.length?{pos:s,end:D,above:M.state.doc.lineAt(s).to<D,create:()=>({dom:CT(M,N)})}:null}function CT(M,i){return Ko("ul",{class:"cm-tooltip-lint"},i.map((i=>YT(M,i,!1))))}const UT=M=>{let i=M.state.field(ET,!1);return!(!i||!i.panel)&&(M.dispatch({effects:wT.of(!1)}),!0)},bT=[{key:"Mod-Shift-m",run:M=>{let i=M.state.field(ET,!1);var t,e;i&&i.panel||M.dispatch({effects:(t=M.state,e=[wT.of(!0)],t.field(ET,!1)?e:e.concat(QN.appendConfig.of(GT)))});let N=Tg(M,WT.open);return N&&N.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:M=>{let i=M.state.field(ET,!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)}}],pT=Ke.define({combine:M=>Object.assign({sources:M.map((M=>M.source)).filter((M=>null!=M))},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 ZT(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 YT(M,i,t){var e;let N=t?ZT(i.actions):[];return Ko("li",{class:"cm-diagnostic cm-diagnostic-"+i.severity},Ko("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,D=e=>{if(e.preventDefault(),s)return;s=!0;let N=xT(M.state.field(ET).diagnostics,i);N&&t.apply(M,N.from,N.to)},{name:j}=t,u=N[e]?j.indexOf(N[e]):-1,I=u<0?j:[j.slice(0,u),Ko("u",j.slice(u,u+1)),j.slice(u+1)];return Ko("button",{type:"button",class:"cm-diagnosticAction",onclick:D,onmousedown:D,"aria-label":` Action: ${j}${u<0?"":` (access key "${N[e]})"`}.`},I)})),i.source&&Ko("div",{class:"cm-diagnosticSource"},i.source))}class mT extends TD{constructor(M){super(),this.diagnostic=M}eq(M){return M.diagnostic==this.diagnostic}toDOM(){return Ko("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class fT{constructor(M,i){this.diagnostic=i,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=YT(M,i,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class WT{constructor(M){this.view=M,this.items=[];this.list=Ko("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:i=>{if(27==i.keyCode)UT(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=ZT(t.actions);for(let N=0;N<e.length;N++)if(e[N].toUpperCase().charCodeAt(0)==i.keyCode){let i=xT(this.view.state.field(ET).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=Ko("div",{class:"cm-panel-lint"},this.list,Ko("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>UT(this.view)},"×")),this.update()}get selectedIndex(){let M=this.view.state.field(ET).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(ET),t=0,e=!1,N=null;for(M.between(0,this.view.state.doc.length,((M,s,{spec:D})=>{let j,u=-1;for(let M=t;M<this.items.length;M++)if(this.items[M].diagnostic==D.diagnostic){u=M;break}u<0?(j=new fT(this.view,D.diagnostic),this.items.splice(t,0,j),e=!0):(j=this.items[u],u>t&&(this.items.splice(t,u-t),e=!0)),i&&j.diagnostic==i.diagnostic?j.dom.hasAttribute("aria-selected")||(j.dom.setAttribute("aria-selected","true"),N=j):j.dom.hasAttribute("aria-selected")&&j.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 fT(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=xT(this.view.state.field(ET).diagnostics,this.items[M].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:ST.of(i)})}static open(M){return new WT(M)}}function VT(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 vT=sI.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:VT("#d11")},".cm-lintRange-warning":{backgroundImage:VT("orange")},".cm-lintRange-info":{backgroundImage:VT("#999")},".cm-lintRange-hint":{backgroundImage:VT("#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}}}),GT=[ET,sI.decorations.compute([ET],(M=>{let{selected:i,panel:t}=M.field(ET);return i&&t&&i.from!=i.to?LD.set([QT.range(i.from,i.to)]):LD.none})),rg(kT,{hideOn:function(M,i){let t=M.startState.doc.lineAt(i.pos);return!(!M.effects.some((M=>M.is(dT)))&&!M.changes.touchesRange(t.from,t.to))}}),vT];class PT{constructor(M,i,t,e,N,s,D,j,u,I=0,g){this.p=M,this.stack=i,this.state=t,this.reducePos=e,this.pos=N,this.score=s,this.buffer=D,this.bufferBase=j,this.curContext=u,this.lookAhead=I,this.parent=g}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 PT(M,[],i,t,t,0,[],0,e?new RT(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 D=this.stack.length-3*(t-1)-(262144&M?6:0),j=D?this.stack[D-2]:this.p.ranges[0].from,u=this.reducePos-j;u>=2e3&&!(null===(i=this.p.parser.nodeSet.types[e])||void 0===i?void 0:i.isAnonymous)&&(j==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=j,this.p.lastBigReductionSize=u));let I=D?this.stack[D-1]:0,g=this.bufferBase+this.buffer.length-I;if(e<N.minRepeatTerm||131072&M){let M=N.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(e,j,M,g+4,!0)}if(262144&M)this.state=this.stack[D];else{let M=this.stack[D-3];this.state=N.getGoto(M,e,!0)}for(;this.stack.length>D;)this.stack.pop();this.reduceContext(e,j)}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 PT(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 BT(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 RT(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 RT{constructor(M,i){this.tracker=M,this.context=i,this.hash=M.strict?M.hash(i):0}}class BT{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 FT{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 FT(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 FT(this.stack,this.pos,this.index)}}function JT(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 XT{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const HT=new XT;class $T{constructor(M,i){this.input=M,this.ranges=i,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=HT,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=HT,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 _T{constructor(M,i){this.data=M,this.id=i}token(M,i){let{parser:t}=i.p;MO(this.data,M,i,this.id,t.data,t.tokenPrecTable)}}_T.prototype.contextual=_T.prototype.fallback=_T.prototype.extend=!1;class qT{constructor(M,i,t){this.precTable=i,this.elseToken=t,this.data="string"==typeof M?JT(M):M}token(M,i){let t=M.pos,e=0;for(;;){let t=M.next<0,N=M.resolveOffset(1,1);if(MO(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))}}qT.prototype.contextual=_T.prototype.fallback=_T.prototype.extend=!1;class KT{constructor(M,i={}){this.token=M,this.contextual=!!i.contextual,this.fallback=!!i.fallback,this.extend=!!i.extend}}function MO(M,i,t,e,N,s){let D=0,j=1<<e,{dialect:u}=t.p.parser;M:for(;0!=(j&M[D]);){let t=M[D+1];for(let e=D+3;e<t;e+=2)if((M[e+1]&j)>0){let t=M[e];if(u.allows(t)&&(-1==i.token.value||i.token.value==t||tO(t,i.token.value,N,s))){i.acceptToken(t);break}}let e=i.next,I=0,g=M[D+2];if(!(i.next<0&&g>I&&65535==M[t+3*g-3])){for(;I<g;){let N=I+g>>1,s=t+N+(N<<1),j=M[s],u=M[s+1]||65536;if(e<j)g=N;else{if(!(e>=u)){D=M[s+2],i.advance();continue M}I=N+1}}break}D=M[t+3*g-1]}}function iO(M,i,t){for(let e,N=i;65535!=(e=M[N]);N++)if(e==t)return N-i;return-1}function tO(M,i,t,e){let N=iO(t,e,i);return N<0||iO(t,e,M)<N}const eO="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let NO=null;function sO(M,i,t){let e=M.cursor(Kg.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 DO{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?sO(M.tree,M.from+M.offset,1)-M.offset:M.from,this.safeTo=M.openEnd?sO(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 Mn){if(s==M){if(s<this.safeFrom)return null;let M=s+N.length;if(M<=this.safeTo){let i=N.prop(Fg.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 jO{constructor(M,i){this.stream=i,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=M.tokenizers.map((M=>new XT))}getActions(M){let i=0,t=null,{parser:e}=M.p,{tokenizers:N}=e,s=e.stateSlot(M.state,3),D=M.curContext?M.curContext.hash:0,j=0;for(let e=0;e<N.length;e++){if(0==(1<<e&s))continue;let u=N[e],I=this.tokens[e];if((!t||u.fallback)&&((u.contextual||I.start!=M.pos||I.mask!=s||I.context!=D)&&(this.updateCachedToken(I,u,M),I.mask=s,I.context=D),I.lookAhead>I.end+25&&(j=Math.max(I.lookAhead,j)),0!=I.value)){let e=i;if(I.extended>-1&&(i=this.addActions(M,I.extended,I.end,i)),i=this.addActions(M,I.value,I.end,i),!u.extend&&(t=I,i>e))break}}for(;this.actions.length>i;)this.actions.pop();return j&&M.setLookAhead(j),t||M.pos!=this.stream.end||(t=new XT,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 XT,{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:D}=s;for(let M=0;M<2;M++)for(let j=s.stateSlot(N,M?2:1);;j+=3){if(65535==D[j]){if(1!=D[j+1]){0==e&&2==D[j+1]&&(e=this.putAction(rO(D,j+2),i,t,e));break}j=rO(D,j+2)}D[j]==i&&(e=this.putAction(rO(D,j+1),i,t,e))}return e}}class uO{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 $T(i,e),this.tokens=new jO(M,this.stream),this.topTerm=M.top[1];let{from:N}=e[0];this.stacks=[PT.start(this,M.top[0],N)],this.fragments=t.length&&this.stream.end-N>4*M.bufferLength?new DO(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 D=t[s];for(;;){if(this.tokens.mainToken=null,D.pos>e)N.push(D);else{if(this.advanceStack(D,N,t))continue;{M||(M=[],i=[]),M.push(D);let t=this.tokens.getMainToken(D);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 eO&&console.log("Finish with "+this.stackID(i)),this.stackToTree(i);if(this.parser.strict)throw eO&&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 eO&&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=eO?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 D=this.fragments.nodeAt(e);D;){let e=this.parser.nodeSet.types[D.type.id]==D.type?N.getGoto(M.state,D.type.id):-1;if(e>-1&&D.length&&(!i||(D.prop(Fg.contextHash)||0)==t))return M.useNode(D,e),eO&&console.log(s+this.stackID(M)+` (via reuse of ${N.getName(D.type.id)})`),!0;if(!(D instanceof Mn)||0==D.children.length||D.positions[0]>0)break;let j=D.children[0];if(!(j instanceof Mn&&0==D.positions[0]))break;D=j}}let D=N.stateSlot(M.state,4);if(D>0)return M.reduce(D),eO&&console.log(s+this.stackID(M)+` (via always-reduce ${N.getName(65535&D)})`),!0;if(M.stack.length>=8400)for(;M.stack.length>6e3&&M.forceReduce(););let j=this.tokens.getActions(M);for(let D=0;D<j.length;){let u=j[D++],I=j[D++],g=j[D++],n=D==j.length||!t,l=n?M:M.split(),r=this.tokens.mainToken;if(l.apply(u,I,r?r.start:l.pos,g),eO&&console.log(s+this.stackID(l)+` (via ${0==(65536&u)?"shift":`reduce of ${N.getName(65535&u)}`} for ${N.getName(I)} @ ${e}${l==M?"":", split"})`),n)return!0;l.pos>e?i.push(l):t.push(l)}return!1}advanceFully(M,i){let t=M.pos;for(;;){if(!this.advanceStack(M,null,null))return!1;if(M.pos>t)return IO(M,i),!0}}runRecovery(M,i,t){let e=null,N=!1;for(let s=0;s<M.length;s++){let D=M[s],j=i[s<<1],u=i[1+(s<<1)],I=eO?this.stackID(D)+" -> ":"";if(D.deadEnd){if(N)continue;if(N=!0,D.restart(),eO&&console.log(I+this.stackID(D)+" (restarted)"),this.advanceFully(D,t))continue}let g=D.split(),n=I;for(let M=0;g.forceReduce()&&M<10;M++){if(eO&&console.log(n+this.stackID(g)+" (via force-reduce)"),this.advanceFully(g,t))break;eO&&(n=this.stackID(g)+" -> ")}for(let M of D.recoverByInsert(j))eO&&console.log(I+this.stackID(M)+" (via recover-insert)"),this.advanceFully(M,t);this.stream.end>D.pos?(u==D.pos&&(u++,j=0),D.recoverByDelete(j,u),eO&&console.log(I+this.stackID(D)+` (via recover-delete ${this.parser.getName(j)})`),IO(D,t)):(!e||e.score<D.score)&&(e=D)}return e}stackToTree(M){return M.close(),Mn.build({buffer:FT.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=(NO||(NO=new WeakMap)).get(M);return i||NO.set(M,i=String.fromCodePoint(this.nextStackID++)),i+M}}function IO(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 gO{constructor(M,i,t){this.source=M,this.flags=i,this.disabled=t}allows(M){return!this.disabled||0==this.disabled[M]}}const nO=M=>M;class lO extends yn{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=Fg[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 D=-e;D>0;D--)N(i[t++],M,s);t++}}}this.nodeSet=new $g(i.map(((i,N)=>Hg.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=Pg;let s=JT(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(oO),this.states=JT(M.states,Uint32Array),this.data=JT(M.stateData),this.goto=JT(M.goto),this.maxTerm=M.maxTerm,this.tokenizers=M.tokenizers.map((M=>"number"==typeof M?new _T(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 uO(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,D=e[N++];if(s&&t)return D;for(let t=N+(i>>1);N<t;N++)if(e[N]==M)return D;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 rO(t,s+2);break}N=t[s=rO(t,s+2)]}if(N==i||0==N)return rO(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=rO(this.data,t+2)}e=i(rO(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=rO(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(lO.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]=oO(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 gO(M,t,e)}static deserialize(M){return new lO(M)}}function rO(M,i){return M[i]|M[i+1]<<16}function oO(M){if(M.external){let i=M.extend?1:0;return(t,e)=>M.external(t,e)<<1|i}return M.get}const cO=[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],aO=new class{constructor(M){this.start=M.start,this.shift=M.shift||nO,this.reduce=M.reduce||nO,this.reuse=M.reuse||nO,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}),TO=new KT(((M,i)=>{let{next:t}=M;(125==t||-1==t||i.context)&&M.acceptToken(310)}),{contextual:!0,fallback:!0}),OO=new KT(((M,i)=>{let t,{next:e}=M;cO.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}),LO=new KT(((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 zO(M,i){return M>=65&&M<=90||M>=97&&M<=122||95==M||M>=192||!i&&M>=48&&M<=57}const yO=new KT(((M,i)=>{if(60!=M.next||!i.dialectEnabled(0))return;if(M.advance(),47==M.next)return;let t=0;for(;cO.indexOf(M.next)>-1;)M.advance(),t++;if(zO(M.next,!0)){for(M.advance(),t++;zO(M.next,!1);)M.advance(),t++;for(;cO.indexOf(M.next)>-1;)M.advance(),t++;if(44==M.next)return;for(let i=0;;i++){if(7==i){if(!zO(M.next,!0))return;break}if(M.next!="extends".charCodeAt(i))break;M.advance(),t++}}M.acceptToken(3,-t)})),hO=Sn({"get set async static":Xn.modifier,"for while do if else switch try catch finally return throw break continue default case":Xn.controlKeyword,"in of await yield void typeof delete instanceof":Xn.operatorKeyword,"let var const using function class extends":Xn.definitionKeyword,"import export from":Xn.moduleKeyword,"with debugger as new":Xn.keyword,TemplateString:Xn.special(Xn.string),super:Xn.atom,BooleanLiteral:Xn.bool,this:Xn.self,null:Xn.null,Star:Xn.modifier,VariableName:Xn.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Xn.function(Xn.variableName),VariableDefinition:Xn.definition(Xn.variableName),Label:Xn.labelName,PropertyName:Xn.propertyName,PrivatePropertyName:Xn.special(Xn.propertyName),"CallExpression/MemberExpression/PropertyName":Xn.function(Xn.propertyName),"FunctionDeclaration/VariableDefinition":Xn.function(Xn.definition(Xn.variableName)),"ClassDeclaration/VariableDefinition":Xn.definition(Xn.className),PropertyDefinition:Xn.definition(Xn.propertyName),PrivatePropertyDefinition:Xn.definition(Xn.special(Xn.propertyName)),UpdateOp:Xn.updateOperator,"LineComment Hashbang":Xn.lineComment,BlockComment:Xn.blockComment,Number:Xn.number,String:Xn.string,Escape:Xn.escape,ArithOp:Xn.arithmeticOperator,LogicOp:Xn.logicOperator,BitOp:Xn.bitwiseOperator,CompareOp:Xn.compareOperator,RegExp:Xn.regexp,Equals:Xn.definitionOperator,Arrow:Xn.function(Xn.punctuation),": Spread":Xn.punctuation,"( )":Xn.paren,"[ ]":Xn.squareBracket,"{ }":Xn.brace,"InterpolationStart InterpolationEnd":Xn.special(Xn.brace),".":Xn.derefOperator,", ;":Xn.separator,"@":Xn.meta,TypeName:Xn.typeName,TypeDefinition:Xn.definition(Xn.typeName),"type enum interface implements namespace module declare":Xn.definitionKeyword,"abstract global Privacy readonly override":Xn.modifier,"is keyof unique infer":Xn.operatorKeyword,JSXAttributeValue:Xn.attributeValue,JSXText:Xn.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Xn.angleBracket,"JSXIdentifier JSXNameSpacedName":Xn.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Xn.attributeName,"JSXBuiltin/JSXIdentifier":Xn.standard(Xn.tagName)}),AO={__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},xO={__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},dO={__proto__:null,"<":143},wO=lO.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:aO,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:[hO],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:[OO,LO,yO,2,3,4,5,6,7,8,9,10,11,12,13,TO,new qT("$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 qT("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=>AO[M]||-1},{term:334,get:M=>xO[M]||-1},{term:70,get:M=>dO[M]||-1}],tokenPrec:14638}),SO=[MT("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),MT("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),MT("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),MT("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),MT("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),MT("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),MT("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),MT("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),MT("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),MT('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),MT('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],EO=SO.concat([MT("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),MT("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),MT("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),QO=new Ln,kO=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function CO(M){return(i,t)=>{let e=i.node.getChild("VariableDefinition");return e&&t(e,M),!0}}const UO=["FunctionDeclaration"],bO={FunctionDeclaration:CO("function"),ClassDeclaration:CO("class"),ClassExpression:()=>!0,EnumDeclaration:CO("constant"),TypeAliasDeclaration:CO("type"),NamespaceDeclaration:CO("namespace"),VariableDefinition(M,i){M.matchContext(UO)||i(M,"variable")},TypeDefinition(M,i){i(M,"type")},__proto__:null};function pO(M,i){let t=QO.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(Kg.IncludeAnonymous).iterate((i=>{if(N)N=!1;else if(i.name){let M=bO[i.name];if(M&&M(i,s)||kO.has(i.name))return!1}else if(i.to-i.from>8192){for(let t of pO(M,i.node))e.push(t);return!1}})),QO.set(i,e),e}const ZO=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,YO=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function mO(M){let i=tl(M.state).resolveInner(M.pos,-1);if(YO.indexOf(i.name)>-1)return null;let t="VariableName"==i.name||i.to-i.from<20&&ZO.test(M.state.sliceDoc(i.from,i.to));if(!t&&!M.explicit)return null;let e=[];for(let t=i;t;t=t.parent)kO.has(t.name)&&(e=e.concat(pO(M.state.doc,t)));return{options:e,from:t?i.from:M.pos,validFor:ZO}}function fO(M,i,t){var e;let N=[];for(;;){let s,D=i.firstChild;if("VariableName"==(null==D?void 0:D.name))return N.push(M(D)),{path:N.reverse(),name:t};if("MemberExpression"!=(null==D?void 0:D.name)||"PropertyName"!=(null===(e=s=D.lastChild)||void 0===e?void 0:e.name))return null;N.push(M(s)),i=D}}function WO(M){let i=new Map;return t=>{let e=function(M){let i=i=>M.state.doc.sliceString(i.from,i.to),t=tl(M.state).resolveInner(M.pos,-1);return"PropertyName"==t.name?fO(i,t.parent,i(t)):"."!=t.name&&"?."!=t.name||"MemberExpression"!=t.parent.name?YO.indexOf(t.name)>-1?null:"VariableName"==t.name||t.to-t.from<20&&ZO.test(i(t))?{path:[],name:i(t)}:"MemberExpression"==t.name?fO(i,t,""):M.explicit?{path:[],name:""}:null:fO(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 D;e.add(s);try{D=M[s]}catch(M){continue}t.push({label:s,type:"function"==typeof D?/^[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:ZO}}}const VO=il.define({name:"javascript",parser:wO.configure({props:[Ll.add({IfStatement:Sl({except:/^\s*({|else\b)/}),TryStatement:Sl({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:dl({closing:"}"}),ArrowFunction:M=>M.baseIndent+M.unit,"TemplateString BlockComment":()=>null,"Statement Property":Sl({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}),Ql.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:"$"}}),vO={test:M=>/^JSX/.test(M.name),facet:_n({commentTokens:{block:{open:"{/*",close:"*/}"}}})},GO=VO.configure({dialect:"ts"},"typescript"),PO=VO.configure({dialect:"jsx",props:[qn.add((M=>M.isTop?[vO]:void 0))]}),RO=VO.configure({dialect:"jsx ts",props:[qn.add((M=>M.isTop?[vO]:void 0))]},"typescript");let BO=M=>({label:M,type:"keyword"});const FO="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(BO),JO=FO.concat(["declare","implements","private","protected","public"].map(BO));function XO(M={}){let i=M.jsx?M.typescript?RO:PO:M.typescript?GO:VO,t=M.typescript?EO.concat(JO):SO.concat(FO);return new ll(i,[VO.data.of({autocomplete:(e=YO,N=sa(t),M=>{for(let i=tl(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)})}),VO.data.of({autocomplete:mO}),M.jsx?_O:[]]);var e,N}function HO(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 $O="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),_O=sI.inputHandler.of(((M,i,t,e,N)=>{if(($O?M.composing:M.compositionStarted)||M.state.readOnly||i!=t||">"!=e&&"/"!=e||!VO.isActiveAt(M.state,i,-1))return!1;let s=N(),{state:D}=s,j=D.changeByRange((M=>{var i;let t,{head:N}=M,s=tl(D).resolveInner(N-1,-1);if("JSXStartTag"==s.name&&(s=s.parent),D.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=HO(D.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(D.doc.sliceString(N,N+2))&&(t=HO(D.doc,i,N)))return{range:M,changes:{from:N,insert:`</${t}>`}}}}return{range:M}}));return!j.changes.empty&&(M.dispatch([s,D.update(j,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),qO=M=>void 0===M||M,KO=(M={})=>{let i=[];qO(M.defaultKeymap)&&i.push(...qo),qO(M.closeBracketsKeymap)&&i.push(...nT),qO(M.searchKeymap)&&i.push(...Hc),qO(M.historyKeymap)&&i.push(...Mo),qO(M.foldKeymap)&&i.push(...vl),qO(M.lintKeymap)&&i.push(...bT);const t=[];return qO(M.lineNumbers)&&t.push(function(M={}){return[Yg.of(M),Eg(),Wg]}()),qO(M.highlightActiveLineGutter)&&t.push(Gg),qO(M.highlightSpecialChars)&&t.push(function(M={}){return[GI.of(M),PI||(PI=uj.fromClass(class{constructor(M){this.view=M,this.decorations=LD.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(M.state.facet(GI)),this.decorations=this.decorator.createDeco(M)}makeDecorator(M){return new mI({regexp:M.specialChars,decoration:(i,t,e)=>{let{doc:N}=t.state,s=Ye(i[0],0);if(9==s){let M=N.lineAt(e),i=t.state.tabSize,s=ss(M.text,i,e-M.from);return LD.replace({widget:new BI((i-s%i)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=LD.replace({widget:new RI(M,s)}))},boundary:M.replaceTabs?void 0:/[^]/})}update(M){let i=M.state.facet(GI);M.startState.facet(GI)!=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}))]}()),qO(M.history)&&t.push(function(M={}){return[mr,Yr.of(M),sI.domEventHandlers({beforeinput(M,i){let t="historyUndo"==M.inputType?Wr:"historyRedo"==M.inputType?Vr:null;return!!t&&(M.preventDefault(),t(i))}})]}()),qO(M.foldGutter)&&t.push(function(M={}){let i=Object.assign(Object.assign({},Xl),M),t=new Hl(i,!0),e=new Hl(i,!1),N=uj.fromClass(class{constructor(M){this.from=M.viewport.from,this.markers=this.buildMarkers(M)}update(M){(M.docChanged||M.viewportChanged||M.startState.facet(nl)!=M.state.facet(nl)||M.startState.field(Yl,!1)!=M.state.field(Yl,!1)||tl(M.startState)!=tl(M.state)||i.foldingChanged(M))&&(this.markers=this.buildMarkers(M.view))}buildMarkers(M){let i=new XN;for(let N of M.viewportLineBlocks){let s=ml(M.state,N.from,N.to)?e:Cl(M.state,N.from,N.to)?t:null;s&&i.add(N.from,N.from,s)}return i.finish()}}),{domEventHandlers:s}=i;return[N,wg({class:"cm-foldGutter",markers(M){var i;return(null===(i=M.plugin(N))||void 0===i?void 0:i.markers)||JN.empty},initialSpacer:()=>new Hl(i,!1),domEventHandlers:Object.assign(Object.assign({},s),{click:(M,i,t)=>{if(s.click&&s.click(M,i,t))return!0;let e=ml(M.state,i.from,i.to);if(e)return M.dispatch({effects:pl.of(e)}),!0;let N=Cl(M.state,i.from,i.to);return!!N&&(M.dispatch({effects:bl.of(N)}),!0)}})}),Rl()]}()),qO(M.drawSelection)&&t.push(function(M={}){return[wI.of(M),EI,kI,UI,ij.of(!0)]}()),qO(M.dropCursor)&&t.push([pI,ZI]),qO(M.allowMultipleSelections)&&t.push(vN.allowMultipleSelections.of(!0)),qO(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:D}=M,j=-1,u=[];for(let{head:M}of D.selection.ranges){let i=D.doc.lineAt(M);if(i.from==j)continue;j=i.from;let t=Tl(D,i.from);if(null==t)continue;let e=/^\s*/.exec(i.text)[0],N=al(D,t);e!=N&&u.push({from:i.from,to:i.from+e.length,insert:N})}return u.length?[M,{changes:u,sequential:!0}]:M}))),qO(M.syntaxHighlighting)&&t.push(function(M,i){let t,e=[tr];return M instanceof _l&&(M.module&&e.push(sI.styleModule.of(M.module)),t=M.themeType),(null==i?void 0:i.fallback)?e.push(Kl.of(M)):t?e.push(ql.computeN([sI.darkTheme],(i=>i.facet(sI.darkTheme)==("dark"==t)?[M]:[]))):e.push(ql.of(M)),e}(er,{fallback:!0})),qO(M.bracketMatching)&&t.push(function(M={}){return[jr.of(M),lr]}()),qO(M.closeBrackets)&&t.push([gT,sT]),qO(M.autocompletion)&&t.push(LT()),qO(M.rectangularSelection)&&t.push(function(M){let i=(null==M?void 0:M.eventFilter)||(M=>M.altKey&&0==M.button);return sI.mouseSelectionStyle.of(((M,t)=>i(t)?$I(M,t):null))}()),qO(M.crosshairCursor)&&t.push(function(M={}){let[i,t]=_I[M.key||"Alt"],e=uj.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,sI.contentAttributes.of((M=>{var i;return(null===(i=M.plugin(e))||void 0===i?void 0:i.isDown)?qI:null}))]}()),qO(M.highlightActiveLine)&&t.push(JI),qO(M.highlightSelectionMatches)&&t.push(function(M){let i=[zc,Lc];return M&&i.push(cc.of(M)),i}()),M.tabSize&&"number"==typeof M.tabSize&&t.push(ol.of(" ".repeat(M.tabSize))),t.concat([rI.of(i.flat())]).filter(Boolean)},ML={"&":{fontSize:"14px",fontFamily:"Colfax-regular",fontWeight:"400"},".cm-content":{},".cm-scroller":{}};M.NileCodeEditor=class extends RM{constructor(){super(...arguments),this.multiline=!1,this.value="",this.customAutoCompletions={},this.updateValue=!1,this.errorMessage="",this.error=!1,this.noborder=!1,this.expandable=!1,this.readonly=!1,this.lineNumbersComp=new oN}static get styles(){return[ae]}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}convertToSingleLine(M){return M.replace(/\s+/g," ").trim()}handleValueChange(){}updated(M){if(super.updated(M),M.has("value")){const M=VO.data.of({autocomplete:WO(this.customAutoCompletions)});if(this.view)this.updateValue&&this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:this.multiline?this.value:this.convertToSingleLine(this.value)}});else{let i=vN.create({doc:this.multiline?this.value:this.convertToSingleLine(this.value),extensions:[KO({lineNumbers:!!this.multiline,highlightActiveLine:!1,foldGutter:!!this.multiline}),vN.readOnly.of(this.readonly),M,LT(),XO(),this.setTheme(),this.multiline?[]:this.restrictSingleLine(),sI.updateListener.of((M=>{M.docChanged&&this.emitValues(this.view.state.doc.toString())}))]});this.view=new sI({state:i,parent:this.codeEditor})}}}setTheme(){return sI.theme(ML)}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(){const M=!!this.errorMessage,i=!!this.error,t=!!this.noborder;return V`<div
|
5790
|
+
`;class Te{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 he(this),N=new he(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 he(this,M)}iterRange(M,i=this.length){return new Ae(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 xe(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 Oe(M):Le.from(Oe.split(M,[])):Te.empty}}class Oe extends Te{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],D=e+s.length;if((i?t:D)>=M)return new de(e,D,t,s);e=D+1,t++}}decompose(M,i,t,e){let N=M<=0&&i>=this.length?this:new Oe(ye(this.text,M,i),Math.min(i,this.length)-Math.max(0,M));if(1&e){let M=t.pop(),i=ze(N.text,M.text.slice(),0,N.length);if(i.length<=32)t.push(new Oe(i,M.length+N.length));else{let M=i.length>>1;t.push(new Oe(i.slice(0,M)),new Oe(i.slice(M)))}}else t.push(N)}replace(M,i,t){if(!(t instanceof Oe))return super.replace(M,i,t);[M,i]=we(this,M,i);let e=ze(this.text,ze(t.text,ye(this.text,0,M)),i),N=this.length+t.length-(i-M);return e.length<=32?new Oe(e,N):Le.from(Oe.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 D=this.text[s],j=N+D.length;N>M&&s&&(e+=t),M<j&&i>N&&(e+=D.slice(Math.max(0,M-N),i-N)),N=j+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 Oe(t,e)),t=[],e=-1);return e>-1&&i.push(new Oe(t,e)),i}}class Le extends Te{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],D=e+s.length,j=t+s.lines-1;if((i?j:D)>=M)return s.lineInner(M,i,t,e);e=D+1,t=j+1}}decompose(M,i,t,e){for(let N=0,s=0;s<=i&&N<this.children.length;N++){let D=this.children[N],j=s+D.length;if(M<=j&&i>=s){let N=e&((s<=M?1:0)|(j>=i?2:0));s>=M&&j<=i&&!N?t.push(D):D.decompose(M-s,i-s,t,N)}s=j+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],D=N+s.length;if(M>=N&&i<=D){let j=s.replace(M-N,i-N,t),u=this.lines-s.lines+j.lines;if(j.lines<u>>4&&j.lines>u>>6){let N=this.children.slice();return N[e]=j,new Le(N,this.length-(i-M)+t.length)}return super.replace(N,D,j)}N=D+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 D=this.children[N],j=s+D.length;s>M&&N&&(e+=t),M<j&&i>s&&(e+=D.sliceString(M-s,i-s,t)),s=j+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,D]=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==D)return t;let j=this.children[e],u=M.children[N];if(j!=u)return t+j.scanIdentical(u,i);t+=j.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 Oe(t,i)}let e=Math.max(32,t>>5),N=e<<1,s=e>>1,D=[],j=0,u=-1,I=[];function g(M){let i;if(M.lines>N&&M instanceof Le)for(let i of M.children)g(i);else M.lines>s&&(j>s||!j)?(n(),D.push(M)):M instanceof Oe&&j&&(i=I[I.length-1])instanceof Oe&&M.lines+i.lines<=32?(j+=M.lines,u+=M.length+1,I[I.length-1]=new Oe(i.text.concat(M.text),i.length+1+M.length)):(j+M.lines>e&&n(),j+=M.lines,u+=M.length+1,I.push(M))}function n(){0!=j&&(D.push(1==I.length?I[0]:Le.from(I,u)),u=-1,j=I.length=0)}for(let i of M)g(i);return n(),1==D.length?D[0]:new Le(D,i)}}function ze(M,i,t=0,e=1e9){for(let N=0,s=0,D=!0;s<M.length&&N<=e;s++){let j=M[s],u=N+j.length;u>=t&&(u>e&&(j=j.slice(0,e-N)),N<t&&(j=j.slice(t-N)),D?(i[i.length-1]+=j,D=!1):i.push(j)),N=u+1}return i}function ye(M,i,t){return ze(M,[""],i,t)}Te.empty=new Oe([""],0);class he{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 Oe?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,D=e instanceof Oe?e.text.length:e.children.length;if(s==(i>0?D: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 Oe){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 Oe?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 Ae{constructor(M,i,t){this.value="",this.done=!1,this.cursor=new he(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 xe{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&&(Te.prototype[Symbol.iterator]=function(){return this.iter()},he.prototype[Symbol.iterator]=Ae.prototype[Symbol.iterator]=xe.prototype[Symbol.iterator]=function(){return this});class de{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?Ue:be)(M,i,e)}function Ue(M,i,t){if(i==M.length)return i;i&&pe(M.charCodeAt(i))&&Ze(M.charCodeAt(i-1))&&i--;let e=Ye(M,i);for(i+=fe(e);i<M.length;){let N=Ye(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(Ye(M,e));)t++,e-=2;if(t%2==0)break;i+=2}}}return i}function be(M,i,t){for(;i>0;){let e=Ue(M,i-2,t);if(e<i)return e;i--}return 0}function pe(M){return M>=56320&&M<57344}function Ze(M){return M>=55296&&M<56320}function Ye(M,i){let t=M.charCodeAt(i);if(!Ze(t)||i+1==M.length)return t;let e=M.charCodeAt(i+1);return pe(e)?e-56320+(t-55296<<10)+65536:t}function me(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:Je(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 D=this.sections[s++],j=this.sections[s++],u=e+D;if(j<0){if(u>M)return N+(M-e);N+=D}else{if(t!=Ve.Simple&&u>=M&&(t==Ve.TrackDel&&e<M&&u>M||t==Ve.TrackBefore&&e<M||t==Ve.TrackAfter&&u>M))return null;if(u>M||u==M&&i<0&&!D)return M==e||i<0?N:N+j;N+=j}e=u}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],D=i[e+1];if(D>=0){i[e]=D,i[e+1]=s;let j=e>>1;for(;t.length<j;)t.push(Te.empty);t.push(s?M.slice(N,N+s):Te.empty)}N+=s}return new Ge(i,t)}compose(M){return this.empty?M:M.empty?this:Je(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 Xe(this);M:for(let s=0,D=0;;){let j=s==M.length?1e9:M[s++];for(;D<j||D==j&&0==N.len;){if(N.done)break M;let M=Math.min(N.len,j-D);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),D+=M}let u=M[s++];for(;D<u;){if(N.done)break M;let M=Math.min(N.len,u-D);Pe(i,M,-1),Pe(e,M,-1==N.ins?-1:0==N.off?N.ins:0),N.forward(M),D+=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,D=null;function j(M=!1){if(!M&&!e.length)return;s<i&&Pe(e,i-s,-1);let t=new Ge(e,N);D=D?D.compose(t.map(D)):t,e=[],N=[],s=0}return function M(u){if(Array.isArray(u))for(let i of u)M(i);else if(u instanceof Ge){if(u.length!=i)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${i})`);j(),D=D?D.compose(u.map(D)):u}else{let{from:M,to:D=M,insert:I}=u;if(M>D||M<0||D>i)throw new RangeError(`Invalid change range ${M} to ${D} (in doc of length ${i})`);let g=I?"string"==typeof I?Te.of(I.split(t||We)):I:Te.empty,n=g.length;if(M==D&&0==n)return;M<s&&j(),M>s&&Pe(e,M-s,-1),Pe(e,D-M,n),Re(N,e,g),s=D}}(M),j(!D),D}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(Te.empty);t[e]=Te.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(Te.empty);M.push(t)}}function Be(M,i,t){let e=M.inserted;for(let N=0,s=0,D=0;D<M.sections.length;){let j=M.sections[D++],u=M.sections[D++];if(u<0)N+=j,s+=j;else{let I=N,g=s,n=Te.empty;for(;I+=j,g+=u,u&&e&&(n=n.append(e[D-2>>1])),!(t||D==M.sections.length||M.sections[D+1]<0);)j=M.sections[D++],u=M.sections[D++];i(N,I,s,g,n),N=I,s=g}}}function Fe(M,i,t,e=!1){let N=[],s=e?[]:null,D=new Xe(M),j=new Xe(i);for(let M=-1;;)if(-1==D.ins&&-1==j.ins){let M=Math.min(D.len,j.len);Pe(N,M,-1),D.forward(M),j.forward(M)}else if(j.ins>=0&&(D.ins<0||M==D.i||0==D.off&&(j.len<D.len||j.len==D.len&&!t))){let i=j.len;for(Pe(N,j.ins,-1);i;){let t=Math.min(D.len,i);D.ins>=0&&M<D.i&&D.len<=t&&(Pe(N,0,D.ins),s&&Re(s,N,D.text),M=D.i),D.forward(t),i-=t}j.next()}else{if(!(D.ins>=0)){if(D.done&&j.done)return s?Ge.createSet(N,s):ve.create(N);throw new Error("Mismatched change set lengths")}{let i=0,t=D.len;for(;t;)if(-1==j.ins){let M=Math.min(t,j.len);i+=M,t-=M,j.forward(M)}else{if(!(0==j.ins&&j.len<t))break;t-=j.len,j.next()}Pe(N,i,M<D.i?D.ins:0),s&&M<D.i&&Re(s,N,D.text),M=D.i,D.forward(D.len-t)}}}function Je(M,i,t=!1){let e=[],N=t?[]:null,s=new Xe(M),D=new Xe(i);for(let M=!1;;){if(s.done&&D.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!=D.len||D.done){if(s.done||D.done)throw new Error("Mismatched change set lengths");{let i=Math.min(s.len2,D.len),t=e.length;if(-1==s.ins){let t=-1==D.ins?-1:D.off?0:D.ins;Pe(e,i,t,M),N&&t&&Re(N,e,D.text)}else-1==D.ins?(Pe(e,s.off?0:s.len,i,M),N&&Re(N,e,s.textBit(i))):(Pe(e,s.off?0:s.len,D.off?0:D.ins,M),N&&!D.off&&Re(N,e,D.text));M=(s.ins>i||D.ins>=0&&D.len>i)&&(M||e.length>t),s.forward2(i),D.forward(i)}}else Pe(e,0,D.ins,M),N&&Re(N,e,D.text),D.next()}}class Xe{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?Te.empty:M[i]}textBit(M){let{inserted:i}=this.set,t=this.i-2>>1;return t>=i.length&&!M?Te.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,D=Math.max(e.to,N.to);t<=i&&i--,M.splice(--t,2,e.anchor>e.head?$e.range(D,s):$e.range(s,D))}}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,D=2==this.type,j=!1,u=!1,I=[];for(let t of this.dependencies)"doc"==t?j=!0:"selection"==t?u=!0:0==(1&(null!==(i=M[t.id])&&void 0!==i?i:1))&&I.push(M[t.id]);return{create:M=>(M.values[s]=t(M),1),update(M,i){if(j&&i.docChanged||u&&(i.docChanged||i.selection)||eN(M,I)){let i=t(M);if(D?!tN(i,M.values[s],e):!e(i,M.values[s]))return M.values[s]=i,1}return 0},reconfigure:(M,i)=>{let j,u=i.config.address[N];if(null!=u){let N=ON(i,u);if(this.dependencies.every((t=>t instanceof Ke?i.facet(t)===M.facet(t):!(t instanceof DN)||i.field(t,!1)==M.field(t,!1)))||(D?tN(j=t(M),N,e):e(j=t(M),N)))return M.values[s]=N,0}else j=t(M);return M.values[s]=j,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&TN(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))),D=M[i.id]>>1;function j(M){let t=[];for(let i=0;i<e.length;i++){let s=ON(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)TN(M,i);return M.values[D]=j(M),1},update(M,t){if(!eN(M,s))return 0;let e=j(M);return i.compare(e,M.values[D])?0:(M.values[D]=e,1)},reconfigure(M,N){let s=eN(M,e),u=N.config.facets[i.id],I=N.facet(i);if(u&&!s&&MN(t,u))return M.values[D]=I,0;let g=j(M);return i.compare(g,I)?(M.values[D]=I,0):(M.values[D]=g,1)}}}const sN=Ke.define({static:!0});class DN{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 DN(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 jN=4,uN=3,IN=2,gN=1;function nN(M){return i=>new rN(i,M)}const lN={highest:nN(0),high:nN(gN),default:nN(IN),low:nN(uN),lowest:nN(jN)};class rN{constructor(M,i){this.inner=M,this.prec=i}}class oN{of(M){return new cN(this,M)}reconfigure(M){return oN.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,D){let j=N.get(M);if(null!=j){if(j<=D)return;let i=e[j].indexOf(M);i>-1&&e[j].splice(i,1),M instanceof cN&&t.delete(M.compartment)}if(N.set(M,D),Array.isArray(M))for(let i of M)s(i,D);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,D)}else if(M instanceof rN)s(M.inner,M.prec);else if(M instanceof DN)e[D].push(M),M.provides&&s(M.provides,D);else if(M instanceof iN)e[D].push(M),M.facet.extensions&&s(M.facet.extensions,IN);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,D)}}return s(M,IN),e.reduce(((M,i)=>M.concat(i)))}(M,i,s))t instanceof DN?e.push(t):(N[t.facet.id]||(N[t.facet.id]=[])).push(t);let D=Object.create(null),j=[],u=[];for(let M of e)D[M.id]=u.length<<1,u.push((i=>M.slot(i)));let I=null==t?void 0:t.config.facets;for(let M in N){let i=N[M],e=i[0].facet,s=I&&I[M]||[];if(i.every((M=>0==M.type)))if(D[e.id]=j.length<<1|1,MN(s,i))j.push(t.facet(e));else{let M=e.combine(i.map((M=>M.value)));j.push(t&&e.compare(M,t.facet(e))?t.facet(e):M)}else{for(let M of i)0==M.type?(D[M.id]=j.length<<1|1,j.push(M.value)):(D[M.id]=u.length<<1,u.push((i=>M.dynamicSlot(i))));D[e.id]=u.length<<1,u.push((M=>NN(M,e,i)))}}let g=u.map((M=>M(D)));return new aN(M,s,g,D,j,N)}}function TN(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 ON(M,i){return 1&i?M.config.staticValues[i>>1]:M.values[i>>1]}const LN=Ke.define(),zN=Ke.define({combine:M=>M.some((M=>M)),static:!0}),yN=Ke.define({combine:M=>M.length?M[0]:void 0,static:!0}),hN=Ke.define(),AN=Ke.define(),xN=Ke.define(),dN=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,D;if(e<M.length&&(N==i.length||i[N]>=M[e]))s=M[e++],D=M[e++];else{if(!(N<i.length))return t;s=i[N++],D=i[N++]}!t.length||t[t.length-1]<s?t.push(s,D):t[t.length-1]<D&&(t[t.length-1]=D)}}function UN(M,i,t){var e;let N,s,D;return t?(N=i.changes,s=Ge.empty(i.changes.length),D=M.changes.compose(i.changes)):(N=i.changes.map(M.changes),s=M.changes.mapDesc(i.changes,!0),D=M.changes.compose(N)),{changes:D,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 bN(M,i,t){let e=i.selection,N=YN(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(yN)),selection:e&&(e instanceof $e?e:$e.single(e.anchor,e.head)),effects:YN(i.effects),annotations:N,scrollIntoView:!!i.scrollIntoView}}function pN(M,i,t){let e=bN(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=UN(e,bN(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(xN),e=M;for(let N=t.length-1;N>=0;N--){let s=t[N](M);s&&Object.keys(s).length&&(e=UN(e,bN(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(hN)){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(AN);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]:pN(i,YN(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 YN(M){return null==M?ZN:Array.isArray(M)?M:[M]}var mN=function(M){return M[M.Word=0]="Word",M[M.Space=1]="Space",M[M.Other=2]="Other",M}(mN||(mN={}));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(p){}function VN(M){return i=>{if(!/\S/.test(i))return mN.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 mN.Word;for(let t=0;t<M.length;t++)if(i.indexOf(M[t])>-1)return mN.Word;return mN.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++)TN(this,M<<1);this.computeSlot=null}field(M,i=!0){let t=this.config.address[M.id];if(null!=t)return TN(this,t),ON(this,t);if(i)throw new RangeError("Field is not present in this state")}update(...M){return pN(this,M,!0)}applyTransaction(M){let i,t=this.config,{base:e,compartments:N}=t;for(let i of M.effects)i.is(oN.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=YN(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(zN)?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=YN(t.effects);for(let t=1;t<i.ranges.length;t++){let D=M(i.ranges[t]),j=this.changes(D.changes),u=j.map(e);for(let M=0;M<t;M++)N[M]=N[M].map(u);let I=e.mapDesc(j,!0);N.push(D.range.map(I)),e=e.compose(u),s=QN.mapEffects(s,u).concat(QN.mapEffects(YN(D.effects),I))}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 Te.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:(TN(this,i),ON(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 DN&&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 Te?M.doc:Te.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(zN)||(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(dN)}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,D=M-t;for(;s>0;){let M=Ce(i,s,!1);if(N(i.slice(M,s))!=mN.Word)break;s=M}for(;D<e;){let M=Ce(i,D);if(N(i.slice(D,M))!=mN.Word)break;D=M}return s==D?null:$e.range(s+t,D+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=zN,vN.tabSize=Ke.define({combine:M=>M.length?M[0]:4}),vN.lineSeparator=yN,vN.readOnly=dN,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=hN,vN.transactionFilter=AN,vN.transactionExtender=xN,oN.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,D=N.length;;){if(s==D)return s;let e=s+D>>1,j=N[e]-M||(t?this.value[e].endSide:this.value[e].startSide)-i;if(e==s)return j>=0?s:D;j>=0?D=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,D=-1;for(let j=0;j<this.value.length;j++){let u,I,g=this.value[j],n=this.from[j]+M,l=this.to[j]+M;if(n==l){let M=i.mapPos(n,g.startSide,g.mapMode);if(null==M)continue;if(u=I=M,g.startSide!=g.endSide&&(I=i.mapPos(n,g.endSide),I<u))continue}else if(u=i.mapPos(n,g.startSide),I=i.mapPos(l,g.endSide),u>I||u==I&&g.startSide>0&&g.endSide<=0)continue;(I-u||g.endSide-g.startSide)<0||(s<0&&(s=u),g.point&&(D=Math.max(D,I-u)),t.push(g),e.push(u-s),N.push(I-s))}return{mapped:t.length?new FN(e,N,t,D):null,pos:s}}}class JN{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 JN(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?JN.of(i):this;let D=new $N(this,null,-1).goto(0),j=0,u=[],I=new XN;for(;D.value||j<i.length;)if(j<i.length&&(D.from-i[j].from||D.startSide-i[j].value.startSide)>=0){let M=i[j++];I.addInner(M.from,M.to,M.value)||u.push(M)}else 1==D.rangeIndex&&D.chunkIndex<this.chunk.length&&(j==i.length||this.chunkEnd(D.chunkIndex)<i[j].from)&&(!s||e>this.chunkEnd(D.chunkIndex)||N<this.chunkPos[D.chunkIndex])&&I.addChunk(this.chunkPos[D.chunkIndex],this.chunk[D.chunkIndex])?D.nextChunk():((!s||e>D.to||N<D.from||s(D.from,D.to,D.value))&&(I.addInner(D.from,D.to,D.value)||u.push(RN.create(D.from,D.to,D.value))),D.next());return I.finishInner(this.nextLayer.isEmpty&&!u.length?JN.empty:this.nextLayer.update({add:u,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],D=this.chunk[N],j=M.touchesRange(s,s+D.length);if(!1===j)e=Math.max(e,D.maxPoint),i.push(D),t.push(M.mapPos(s));else if(!0===j){let{mapped:N,pos:j}=D.map(s,M);N&&(e=Math.max(e,N.maxPoint),i.push(N),t.push(j))}}let N=this.nextLayer.map(M);return 0==i.length?N:new JN(t,i,N||JN.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)),D=i.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=N)),j=HN(s,D,t),u=new KN(s,j,N),I=new KN(D,j,N);t.iterGaps(((M,i,t)=>Ms(u,M,I,i,t,e))),t.empty&&0==t.length&&Ms(u,0,I,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 D=HN(N,s),j=new KN(N,D,0).goto(t),u=new KN(s,D,0).goto(t);for(;;){if(j.to!=u.to||!is(j.active,u.active)||j.point&&(!u.point||!j.point.eq(u.point)))return!1;if(j.to>e)return!0;j.next(),u.next()}}static spans(M,i,t,e,N=-1){let s=new KN(M,null,N).goto(i),D=i,j=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,j);e.point(D,M,s.point,t,N,s.pointRank),j=Math.min(s.openEnd(M),t.length)}else M>D&&(e.span(D,M,s.active,j),j=s.openEnd(M));if(s.to>t)return j+(s.point&&s.to>t?1:0);D=s.to,s.next()}}static of(M,i=!1){let t=new XN;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 JN.empty;let i=M[M.length-1];for(let t=M.length-2;t>=0;t--)for(let e=M[t];e!=JN.empty;e=e.nextLayer)i=new JN(e.chunkPos,e.chunk,i,Math.max(e.maxPoint,i.maxPoint));return i}}JN.empty=new JN([],[],null,-1),JN.empty.nextLayer=JN.empty;class XN{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 XN)).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(JN.empty)}finishInner(M){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return M;let i=JN.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 D=e+N,j=e,u=e-i;for(;;){let i=M.to+u-t.to||M.endSide-t.endSide,e=i<0?M.to+u:t.to,N=Math.min(e,D);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(j,N,M.point,t.point):N>j&&!is(M.active,t.active)&&s.compareRange(j,N,M.active,t.active),e>D)break;j=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 Ds(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 js="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),us="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),Is="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class gs{constructor(M,i){this.rules=[];let{finish:t}=i||{};function e(M){return/^@/.test(M)?[M]:M.split(/,\s*/)}function N(M,i,s,D){let j=[],u=/^@(\w+)\b/.exec(M[0]),I=u&&"keyframes"==u[1];if(u&&null==i)return s.push(M[0]+";");for(let t in i){let D=i[t];if(/&/.test(t))N(t.split(/,\s*/).map((i=>M.map((M=>i.replace(/&/,M))))).reduce(((M,i)=>M.concat(i))),D,s);else if(D&&"object"==typeof D){if(!u)throw new RangeError("The value of a property ("+t+") should be a primitive value.");N(e(t),D,j,I)}else null!=D&&j.push(t.replace(/_.*/,"").replace(/[A-Z]/g,(M=>"-"+M.toLowerCase()))+": "+D+";")}(j.length||I)&&s.push((!t||u||D?M:M.map(t)).join(", ")+" {"+j.join(" ")+"}")}for(let i in M)N(e(i),M[i],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let M=Is[js]||1;return Is[js]=M+1,"ͼ"+M.toString(36)}static mount(M,i,t){let e=M[us],N=t&&t.nonce;e?N&&e.setNonce(N):e=new ls(M,N),e.mount(Array.isArray(i)?i:[i])}}let ns=new Map;class ls{constructor(M,i){let t=M.ownerDocument||M,e=t.defaultView;if(!M.head&&M.adoptedStyleSheets&&e.CSSStyleSheet){let i=ns.get(t);if(i)return M.adoptedStyleSheets=[i.sheet,...M.adoptedStyleSheets],M[us]=i;this.sheet=new e.CSSStyleSheet,M.adoptedStyleSheets=[this.sheet,...M.adoptedStyleSheets],ns.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[us]=this}mount(M){let i=this.sheet,t=0,e=0;for(let N=0;N<M.length;N++){let s=M[N],D=this.modules.indexOf(s);if(D<e&&D>-1&&(this.modules.splice(D,1),e--,D=-1),-1==D){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<D;)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 rs={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:"'"},os={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),Ts=0;Ts<10;Ts++)rs[48+Ts]=rs[96+Ts]=String(Ts);for(Ts=1;Ts<=24;Ts++)rs[Ts+111]="F"+Ts;for(Ts=65;Ts<=90;Ts++)rs[Ts]=String.fromCharCode(Ts+32),os[Ts]=String.fromCharCode(Ts);for(var Os in rs)os.hasOwnProperty(Os)||(os[Os]=rs[Os]);function Ls(M){let i;return i=11==M.nodeType?M.getSelection?M:M.ownerDocument:M,i.getSelection()}function zs(M,i){return!!i&&(M==i||M.contains(1!=i.nodeType?i.parentNode:i))}function ys(M,i){if(!i.anchorNode)return!1;try{return zs(M,i.anchorNode)}catch(M){return!1}}function hs(M){return 3==M.nodeType?ps(M,0,M.nodeValue.length).getClientRects():1==M.nodeType?M.getClientRects():[]}function As(M,i,t,e){return!!t&&(ds(M,i,t,e,-1)||ds(M,i,t,e,1))}function xs(M){for(var i=0;;i++)if(!(M=M.previousSibling))return i}function ds(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=xs(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,Us=null;function bs(M){if(M.setActive)return M.setActive();if(Us)return M.focus(Us);let i=[];for(let t=M;t&&(i.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(M.focus(null==Us?{get preventScroll(){return Us={preventScroll:!0},!0}}:void 0),!Us){Us=!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 ps(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 Ys(M){for(;M.attributes.length;)M.removeAttributeNode(M.attributes[0])}function ms(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,xs(M),i)}static after(M,i){return new fs(M.parentNode,xs(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,D=-1;for(let j=0,u=t,I=t;j<this.children.length;j++){let t=this.children[j],g=u+t.length;if(u<M&&g>i)return t.domBoundsAround(M,i,u);if(g>=M&&-1==e&&(e=j,N=u),u>i&&t.dom.parentNode==this.dom){s=j,D=I;break}I=g,u=g+t.breakAfter}return{from:N,to:D<0?t+this.length:D,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,D,j,u){let{children:I}=M,g=I.length?I[i]:null,n=s.length?s[s.length-1]:null,l=n?n.breakAfter:D;if(!(i==e&&g&&!D&&!l&&s.length<2&&g.merge(t,N,s.length?n:null,0==t,j,u))){if(e<I.length){let M=I[e];M&&(N<M.length||M.breakAfter&&(null==n?void 0:n.breakAfter))?(i==e&&(M=M.split(N),N=0),!l&&n&&M.merge(0,N,n,!0,0,u)?s[s.length-1]=M:((N||M.children.length&&!M.children[0].length)&&M.merge(0,N,null,!1,0,u),s.push(M))):(null==M?void 0:M.breakAfter)&&(n?n.breakAfter=1:D=1),e++}for(g&&(g.breakAfter=D,t>0&&(!D&&s.length&&g.merge(t,g.length,s[0],!1,j,0)?g.breakAfter=s.shift().breakAfter:(t<g.length||g.children.length&&0==g.children[g.children.length-1].length)&&g.merge(t,g.length,null,!1,j,0),i++));i<e&&s.length;)if(I[e-1].become(s[s.length-1]))e--,s.pop(),u=s.length?0:j;else{if(!I[i].become(s[0]))break;i++,s.shift(),j=s.length?0:u}!s.length&&i&&e<I.length&&!I[i-1].breakAfter&&I[e].merge(0,0,I[i-1],!1,j,u)&&i--,(i<e||s.length)&&M.replaceChildren(i,e,s)}}function Rs(M,i,t,e,N,s){let D=M.childCursor(),{i:j,off:u}=D.findPos(t,1),{i:I,off:g}=D.findPos(i,-1),n=i-t;for(let M of e)n+=M.length;M.length+=n,Ps(M,I,g,j,u,e,0,N,s)}let Bs="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},Fs="undefined"!=typeof document?document:{documentElement:{style:{}}};const Js=/Edge\/(\d+)/.exec(Bs.userAgent),Xs=/MSIE \d/.test(Bs.userAgent),Hs=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Bs.userAgent),$s=!!(Xs||Hs||Js),_s=!$s&&/gecko\/(\d+)/i.test(Bs.userAgent),qs=!$s&&/Chrome\/(\d+)/.exec(Bs.userAgent),Ks="webkitFontSmoothing"in Fs.documentElement.style,MD=!$s&&/Apple Computer/.test(Bs.vendor),iD=MD&&(/Mobile\/\w+/.test(Bs.userAgent)||Bs.maxTouchPoints>2);var tD={mac:iD||/Mac/.test(Bs.platform),windows:/Win/.test(Bs.platform),linux:/Linux|X11/.test(Bs.platform),ie:$s,ie_version:Xs?Fs.documentMode||6:Hs?+Hs[1]:Js?+Js[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:iD,android:/Android\b/.test(Bs.userAgent),webkit:Ks,safari:MD,webkit_version:Ks?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=Fs.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class eD 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 eD)||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 eD(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,D=0;0==i&&t<0||i==e&&t>=0?tD.chrome||tD.gecko||(i?(N--,D=1):s<e&&(s++,D=-1)):t<0?N--:s<e&&s++;let j=ps(M,N,s).getClientRects();if(!j.length)return null;let u=j[(D?D<0:t>=0)?0:j.length-1];tD.safari&&!D&&0==u.width&&(u=Array.prototype.find.call(j,(M=>M.width))||u);return D?Ss(u,D<0):u||null}(this.dom,M,i)}}class ND 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(Ys(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 ND&&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 D=t+s.length;D>M&&i.push(t<M?s.split(M-t):s),e<0&&t>=M&&(e=N),t=D,N++}let s=this.length-M;return this.length=M,e>-1&&(this.children.length=e,this.markDirty()),new ND(this.mark,i,s)}domAtPos(M){return jD(this,M)}coordsAt(M,i){return ID(this,M,i)}}class sD extends Vs{static create(M,i,t){return new sD(M,i,t)}constructor(M,i,t){super(),this.widget=M,this.length=i,this.side=t,this.prevWidget=null}split(M){let i=sD.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 sD&&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 sD&&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 Te.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):Te.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 DD extends Vs{constructor(M){super(),this.side=M}get length(){return 0}merge(){return!1}become(M){return M instanceof DD&&M.side==this.side}split(){return new DD(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 Te.empty}get isHidden(){return!0}}function jD(M,i){let t=M.dom,{children:e}=M,N=0;for(let M=0;N<e.length;N++){let s=e[N],D=M+s.length;if(!(D==M&&s.getSide()<=0)){if(i>M&&i<D&&s.dom.parentNode==t)return s.domAtPos(i-M);if(i<=M)break;M=D}}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 uD(M,i,t){let e,{children:N}=M;t>0&&i instanceof ND&&N.length&&(e=N[N.length-1])instanceof ND&&e.mark.eq(i.mark)?uD(e,i.children[0],t-1):(N.push(i),i.setParent(M)),M.length+=i.length}function ID(M,i,t){let e=null,N=-1,s=null,D=-1;!function M(i,j){for(let u=0,I=0;u<i.children.length&&I<=j;u++){let g=i.children[u],n=I+g.length;n>=j&&(g.children.length?M(g,j-I):(!s||s.isHidden&&t>0)&&(n>j||I==n&&g.getSide()>0)?(s=g,D=j-I):(I<j||I==n&&g.getSide()<0&&!g.isHidden)&&(e=g,N=j-I)),I=n}}(M,i);let j=(t<0?e:s)||e||s;return j?j.coordsAt(Math.max(0,j==e?N:D),t):function(M){let i=M.dom.lastChild;if(!i)return M.dom.getBoundingClientRect();let t=hs(i);return t[t.length-1]||null}(M)}function gD(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}eD.prototype.children=sD.prototype.children=DD.prototype.children=Ws;const nD=Object.create(null);function lD(M,i,t){if(M==i)return!0;M||(M=nD),i||(i=nD);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 rD(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 oD(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 cD 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 cD))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 cD;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){lD(this.attrs,M)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=M)}append(M,i){uD(this,M,i)}addLineDeco(M){let i=M.spec.attributes,t=M.spec.class;i&&(this.attrs=gD(i,this.attrs||{})),t&&(this.attrs=gD({class:t},this.attrs||{}))}domAtPos(M){return jD(this,M)}reuseDOM(M){"DIV"==M.nodeName&&(this.setDOM(M),this.flags|=6)}sync(M,i){var t;this.dom?4&this.flags&&(Ys(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&&(rD(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 ND;)e=e.lastChild;if(!(e&&this.length&&("BR"==e.nodeName||0!=(null===(t=Vs.get(e))||void 0===t?void 0:t.isEditable)||tD.ios&&this.children.some((M=>M instanceof eD))))){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 eD)||/[^ -~]/.test(t.text))return null;let e=hs(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=ID(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 cD)return N;if(s>i)break}e=s+N.breakAfter}return null}}class aD 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 aD&&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 aD(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):Te.empty}domBoundsAround(){return null}become(M){return M instanceof aD&&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 TD{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 OD=function(M){return M[M.Text=0]="Text",M[M.WidgetBefore=1]="WidgetBefore",M[M.WidgetAfter=2]="WidgetAfter",M[M.WidgetRange=3]="WidgetRange",M}(OD||(OD={}));class LD 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 zD(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 hD(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}=AD(M,e);i=(N?e?-3e8:-1:5e8)-1,t=1+(s?e?2e8:1:-6e8)}return new hD(M,i,t,e,M.widget||null,!0)}static line(M){return new yD(M)}static set(M,i=!1){return JN.of(M,i)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}LD.none=JN.empty;class zD extends LD{constructor(M){let{start:i,end:t}=AD(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 zD&&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))&&lD(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)}}zD.prototype.point=!1;class yD extends LD{constructor(M){super(-2e8,-2e8,null,M)}eq(M){return M instanceof yD&&this.spec.class==M.spec.class&&lD(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)}}yD.prototype.mapMode=Ve.TrackBefore,yD.prototype.point=!0;class hD extends LD{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?OD.WidgetRange:this.startSide<=0?OD.WidgetBefore:OD.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(M){return M instanceof hD&&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 AD(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 xD(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)}hD.prototype.point=!0;class dD{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 aD&&M.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new cD),this.atCursorPos=!0),this.curLine}flushBuffer(M=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(wD(new DD(-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 aD||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(wD(new eD(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 hD){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 D=i-M;if(t instanceof hD)if(t.block)t.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new aD(t.widget||new SD("div"),D,t));else{let s=sD.create(t.widget||new SD("span"),D,D?0:t.startSide),j=this.atCursorPos&&!s.isEditable&&N<=e.length&&(M<i||t.startSide>0),u=!s.isEditable&&(M<i||N>e.length||t.startSide<=0),I=this.getLine();2!=this.pendingBuffer||j||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(e),j&&(I.append(wD(new DD(1),e),N),N=e.length+Math.max(0,N-e.length)),I.append(wD(s,e),N),this.atCursorPos=u,this.pendingBuffer=u?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);D&&(this.textOff+D<=this.text.length?this.textOff+=D:(this.skip+=D-(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 dD(M,i,t,N);return s.openEnd=JN.spans(e,i,t,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function wD(M,i){for(let t of i)M=new ND(t,[M],M.length);return M}class SD extends TD{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 ED=function(M){return M[M.LTR=0]="LTR",M[M.RTL=1]="RTL",M}(ED||(ED={}));const QD=ED.LTR,kD=ED.RTL;function CD(M){let i=[];for(let t=0;t<M.length;t++)i.push(1<<+M[t]);return i}const UD=CD("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),bD=CD("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),pD=Object.create(null),ZD=[];for(let M of["()","[]","{}"]){let i=M.charCodeAt(0),t=M.charCodeAt(1);pD[i]=t,pD[t]=-i}function YD(M){return M<=247?UD[M]:1424<=M&&M<=1524?2:1536<=M&&M<=1785?bD[M-1536]:1774<=M&&M<=2220?4:8192<=M&&M<=8204?256:64336<=M&&M<=65023?4:1}const mD=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class fD{get dir(){return this.level%2?kD:QD}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 D=M[s];if(D.from<=i&&D.to>=i){if(D.level==t)return s;(N<0||(0!=e?e<0?D.from<i:D.to>i:M[N].level>D.level))&&(N=s)}}if(N<0)throw new RangeError("Index out of range");return N}}function WD(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||!WD(e.inner,N.inner))return!1}return!0}const VD=[];function vD(M,i,t,e,N,s,D){let j=e%2?2:1;if(e%2==N%2)for(let u=i,I=0;u<t;){let i=!0,g=!1;if(I==s.length||u<s[I].from){let M=VD[u];M!=j&&(i=!1,g=16==M)}let n=i||1!=j?null:[],l=i?e:e+1,r=u;M:for(;;)if(I<s.length&&r==s[I].from){if(g)break M;let o=s[I];if(!i)for(let M=o.to,i=I+1;;){if(M==t)break M;if(!(i<s.length&&s[i].from==M)){if(VD[M]==j)break M;break}M=s[i++].to}if(I++,n)n.push(o);else{o.from>u&&D.push(new fD(u,o.from,l)),GD(M,o.direction==QD!=!(l%2)?e+1:e,N,o.inner,o.from,o.to,D),u=o.to}r=o.to}else{if(r==t||(i?VD[r]!=j:VD[r]==j))break;r++}n?vD(M,u,r,e+1,N,n,D):u<r&&D.push(new fD(u,r,l)),u=r}else for(let u=t,I=s.length;u>i;){let t=!0,g=!1;if(!I||u>s[I-1].to){let M=VD[u-1];M!=j&&(t=!1,g=16==M)}let n=t||1!=j?null:[],l=t?e:e+1,r=u;M:for(;;)if(I&&r==s[I-1].to){if(g)break M;let o=s[--I];if(!t)for(let M=o.from,t=I;;){if(M==i)break M;if(!t||s[t-1].to!=M){if(VD[M-1]==j)break M;break}M=s[--t].from}if(n)n.push(o);else{o.to<u&&D.push(new fD(o.to,u,l)),GD(M,o.direction==QD!=!(l%2)?e+1:e,N,o.inner,o.from,o.to,D),u=o.from}r=o.from}else{if(r==i||(t?VD[r-1]!=j:VD[r-1]==j))break;r--}n?vD(M,r,u,e+1,N,n,D):r<u&&D.push(new fD(r,u,l)),u=r}}function GD(M,i,t,e,N,s,D){let j=i%2?2:1;!function(M,i,t,e,N){for(let s=0;s<=e.length;s++){let D=s?e[s-1].to:i,j=s<e.length?e[s].from:t,u=s?256:N;for(let i=D,t=u,e=u;i<j;i++){let N=YD(M.charCodeAt(i));512==N?N=t:8==N&&4==e&&(N=16),VD[i]=4==N?2:N,7&N&&(e=N),t=N}for(let M=D,i=u,e=u;M<j;M++){let N=VD[M];if(128==N)M<j-1&&i==VD[M+1]&&24&i?N=VD[M]=i:VD[M]=256;else if(64==N){let N=M+1;for(;N<j&&64==VD[N];)N++;let s=M&&8==i||N<t&&8==VD[N]?1==e?1:8:256;for(let i=M;i<N;i++)VD[i]=s;M=N-1}else 8==N&&1==e&&(VD[M]=1);i=N,7&N&&(e=N)}}}(M,N,s,e,j),function(M,i,t,e,N){let s=1==N?2:1;for(let D=0,j=0,u=0;D<=e.length;D++){let I=D?e[D-1].to:i,g=D<e.length?e[D].from:t;for(let i,t,e,D=I;D<g;D++)if(t=pD[i=M.charCodeAt(D)])if(t<0){for(let M=j-3;M>=0;M-=3)if(ZD[M+1]==-t){let i=ZD[M+2],t=2&i?N:4&i?1&i?s:N:0;t&&(VD[D]=VD[ZD[M]]=t),j=M;break}}else{if(189==ZD.length)break;ZD[j++]=D,ZD[j++]=i,ZD[j++]=u}else if(2==(e=VD[D])||1==e){let M=e==N;u=M?0:1;for(let i=j-3;i>=0;i-=3){let t=ZD[i+2];if(2&t)break;if(M)ZD[i+2]|=2;else{if(4&t)break;ZD[i+2]|=4}}}}}(M,N,s,e,j),function(M,i,t,e){for(let N=0,s=e;N<=t.length;N++){let D=N?t[N-1].to:M,j=N<t.length?t[N].from:i;for(let u=D;u<j;){let D=VD[u];if(256==D){let D=u+1;for(;;)if(D==j){if(N==t.length)break;D=t[N++].to,j=N<t.length?t[N].from:i}else{if(256!=VD[D])break;D++}let I=1==s,g=I==(1==(D<i?VD[D]:e))?I?1:2:e;for(let i=D,e=N,s=e?t[e-1].to:M;i>u;)i==s&&(i=t[--e].from,s=e?t[e-1].to:M),VD[--i]=g;u=D}else s=D,u++}}}(N,s,e,j),vD(M,N,s,i,t,e,D)}function PD(M){return[new fD(0,M,0)]}let RD="";function BD(M,i,t,e,N){var s;let D=e.head-M.from,j=fD.find(i,D,null!==(s=e.bidiLevel)&&void 0!==s?s:-1,e.assoc),u=i[j],I=u.side(N,t);if(D==I){let M=j+=N?1:-1;if(M<0||M>=i.length)return null;u=i[j=M],D=u.side(!N,t),I=u.side(N,t)}let g=Ce(M.text,D,u.forward(N,t));(g<u.from||g>u.to)&&(g=I),RD=M.text.slice(Math.min(D,g),Math.max(D,g));let n=j==(N?i.length-1:0)?null:i[j+(N?1:-1)];return n&&g==I&&n.level+(N?0:1)<u.level?$e.cursor(n.side(!N,t)+M.from,n.forward(N,t)?1:-1,n.level):$e.cursor(g+M.from,u.forward(N,t)?-1:1,u.level)}function FD(M,i,t){for(let e=i;e<t;e++){let i=YD(M.charCodeAt(e));if(1==i)return QD;if(2==i||4==i)return kD}return QD}const JD=Ke.define(),XD=Ke.define(),HD=Ke.define(),$D=Ke.define(),_D=Ke.define(),qD=Ke.define(),KD=Ke.define(),Mj=Ke.define({combine:M=>M.some((M=>M))}),ij=Ke.define({combine:M=>M.some((M=>M))});class tj{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 tj(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 tj($e.cursor(M.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const ej=QN.define({map:(M,i)=>M.map(i)});function Nj(M,i,t){let e=M.facet($D);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 sj=Ke.define({combine:M=>!M.length||M[0]});let Dj=0;const jj=Ke.define();class uj{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 uj(Dj++,M,t,e,(M=>{let i=[jj.of(M)];return s&&i.push(lj.of((i=>{let t=i.plugin(M);return t?s(t):LD.none}))),N&&i.push(N(M)),i}))}static fromClass(M,i){return uj.define((i=>new M(i)),i)}}class Ij{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(Nj(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){Nj(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){Nj(M.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const gj=Ke.define(),nj=Ke.define(),lj=Ke.define(),rj=Ke.define(),oj=Ke.define(),cj=Ke.define();function aj(M,i){let t=M.state.facet(cj);if(!t.length)return t;let e=t.map((i=>i instanceof Function?i(M):i)),N=[];return JN.spans(e,i.from,i.to,{point(){},span(M,t,e,s){let D=M-i.from,j=t-i.from,u=N;for(let M=e.length-1;M>=0;M--,s--){let t,N=e[M].spec.bidiIsolate;if(null==N&&(N=FD(i.text,D,j)),s>0&&u.length&&(t=u[u.length-1]).to==D&&t.direction==N)t.to=j,u=t.inner;else{let M={from:D,to:j,direction:N,inner:[]};u.push(M),u=M.inner}}}}),N}const Tj=Ke.define();function Oj(M){let i=0,t=0,e=0,N=0;for(let s of M.state.facet(Tj)){let D=s(M);D&&(null!=D.left&&(i=Math.max(i,D.left)),null!=D.right&&(t=Math.max(t,D.right)),null!=D.top&&(e=Math.max(e,D.top)),null!=D.bottom&&(N=Math.max(N,D.bottom)))}return{left:i,right:t,top:e,bottom:N}}const Lj=Ke.define();class zj{constructor(M,i,t,e){this.fromA=M,this.toA=i,this.fromB=t,this.toB=e}join(M){return new zj(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,D=0;;e++){let j=e==M.length?null:M[e],u=s-D,I=j?j.fromB:1e9;for(;N<i.length&&i[N]<I;){let M=i[N],e=i[N+1],s=Math.max(D,M),j=Math.min(I,e);if(s<=j&&new zj(s+u,j+u,s,j).addToSet(t),e>I)break;N+=2}if(!j)return t;new zj(j.fromA,j.toA,j.fromB,j.toB).addToSet(t),s=j.toA,D=j.toB}}}class yj{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 zj(M,i,t,N)))),this.changedRanges=e}static create(M,i,t){return new yj(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 hj 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 cD],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new zj(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=xj(M,t);if(!e)return null;let{node:N,from:s,to:D}=e,j=N.nodeValue;if(/[\n\r]/.test(j))return null;if(M.state.doc.sliceString(e.from,e.to)!=j)return null;let u=i.invertedDesc,I=new zj(u.mapPos(s),u.mapPos(D),s,D),g=[];for(let i=N.parentNode;;i=i.parentNode){let t=Vs.get(i);if(t instanceof ND)g.push({node:i,deco:t.mark});else{if(t instanceof cD||"DIV"==i.nodeName&&i.parentNode==M.contentDOM)return{range:I,text:N,marks:g,line:i};if(i==M.contentDOM)return null;g.push({node:i,deco:new zD({inclusive:!0,attributes:oD(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 zj(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,(tD.ie||tD.chrome)&&!N&&M&&M.state.doc.lines!=M.startState.doc.lines&&(this.forceSelection=!0);let s=function(M,i,t){let e=new wj;return JN.compare(M,i,t,e),e.changes}(this.decorations,this.updateDeco(),M.changes);return t=zj.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=tD.chrome||tD.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 aD&&M.widget instanceof Aj&&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,D,j,u,{fromA:I,toA:g,fromB:n,toB:l}=i;if(t&&t.range.fromB<l&&t.range.toB>n){let M=dD.build(this.view.state.doc,n,t.range.fromB,this.decorations,this.dynamicDecorationMap),i=dD.build(this.view.state.doc,t.range.toB,l,this.decorations,this.dynamicDecorationMap);D=M.breakAtStart,j=M.openStart,u=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:D,openStart:j,openEnd:u}=dD.build(this.view.state.doc,n,l,this.decorations,this.dynamicDecorationMap));let{i:r,off:o}=N.findPos(g,1),{i:c,off:a}=N.findPos(I,-1);Ps(this,c,a,r,o,s,D,j,u)}t&&this.fixCompositionDOM(t)}compositionView(M){let i=new eD(M.text.nodeValue);i.flags|=8;for(let{deco:t}of M.marks)i=new ND(t,[i],i.length);let t=new cD;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&&ys(this.dom,this.view.observer.selectionRange)&&!(t&&this.dom.contains(t));if(!(e||i||N))return;let s=this.forceSelection;this.forceSelection=!1;let D=this.view.state.selection.main,j=this.moveToLine(this.domAtPos(D.anchor)),u=D.empty?j:this.moveToLine(this.domAtPos(D.head));if(tD.gecko&&D.empty&&!this.hasComposition&&(1==(I=j).node.nodeType&&I.node.firstChild&&(0==I.offset||"false"==I.node.childNodes[I.offset-1].contentEditable)&&(I.offset==I.node.childNodes.length||"false"==I.node.childNodes[I.offset].contentEditable))){let M=document.createTextNode("");this.view.observer.ignore((()=>j.node.insertBefore(M,j.node.childNodes[j.offset]||null))),j=u=new fs(M,0),s=!0}var I;let g=this.view.observer.selectionRange;!s&&g.focusNode&&(As(j.node,j.offset,g.anchorNode,g.anchorOffset)&&As(u.node,u.offset,g.focusNode,g.focusOffset)||this.suppressWidgetCursorChange(g,D))||(this.view.observer.ignore((()=>{tD.android&&tD.chrome&&this.dom.contains(g.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}(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let M=Ls(this.view.root);if(M)if(D.empty){if(tD.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)}(j.node,j.offset);if(M&&3!=M){let i=dj(j.node,j.offset,1==M?1:-1);i&&(j=new fs(i.node,i.offset))}}M.collapse(j.node,j.offset),null!=D.bidiLevel&&void 0!==M.caretBidiLevel&&(M.caretBidiLevel=D.bidiLevel)}else if(M.extend){M.collapse(j.node,j.offset);try{M.extend(u.node,u.offset)}catch(M){}}else{let i=document.createRange();D.anchor>D.head&&([j,u]=[u,j]),i.setEnd(u.node,u.offset),i.setStart(j.node,j.offset),M.removeAllRanges(),M.addRange(i)}else;N&&this.view.root.activeElement==this.dom&&(this.dom.blur(),t&&t.focus())})),this.view.observer.setSelectionRange(j,u)),this.impreciseAnchor=j.precise?null:new fs(g.anchorNode,g.anchorOffset),this.impreciseHead=u.precise?null:new fs(g.focusNode,g.focusOffset)}suppressWidgetCursorChange(M,i){return this.hasComposition&&i.empty&&As(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=cD.find(this,i.head);if(!s)return;let D=s.posAtStart;if(i.head==D||i.head==D+s.length)return;let j=this.coordsAt(i.head,-1),u=this.coordsAt(i.head,1);if(!j||!u||j.bottom>u.top)return;let I=this.domAtPos(i.head+i.assoc);t.collapse(I.node,I.offset),t.modify("move",i.assoc<0?"forward":"backward","lineboundary"),M.observer.readSelectionRange();let g=M.observer.selectionRange;M.docView.posFromDOM(g.anchorNode,g.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 cD&&(i=M.domAtPos(0))}for(let e=M.offset-1;!i&&e>=0;e--){let M=Vs.get(t.childNodes[e]);M instanceof cD&&(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 cD)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 D=this.children[s],j=N-D.breakAfter,u=j-D.length;if(j<M)break;u<=M&&(u<M||D.covers(-1))&&(j>M||D.covers(1))&&(!t||D instanceof cD&&!(t instanceof cD&&i>=0))&&(t=D,e=u),N=u}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 cD))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 eD))return null;let N=Ce(e.text,t);if(N==t)return null;let s=ps(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,D=-1,j=this.view.textDirection==ED.LTR;for(let M=0,u=0;u<this.children.length;u++){let I=this.children[u],g=M+I.length;if(g>e)break;if(M>=t){let t=I.dom.getBoundingClientRect();if(i.push(t.height),s){let i=I.dom.lastChild,e=i?hs(i):[];if(e.length){let i=e[e.length-1],s=j?i.right-t.left:t.right-i.left;s>D&&(D=s,this.minWidth=N,this.minWidthFrom=M,this.minWidthTo=g)}}}M=g+I.breakAfter}return i}textDirectionAt(M){let{i}=this.childPos(M,1);return"rtl"==getComputedStyle(this.children[i].dom).direction?ED.RTL:ED.LTR}measureTextSize(){for(let M of this.children)if(M instanceof cD){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=hs(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(LD.replace({widget:new Aj(e),block:!0,inclusive:!0,isBlockGap:!0}).range(t,s))}if(!N)break;t=N.to+1}return LD.set(M)}updateDeco(){let M=this.view.state.facet(lj).map(((M,i)=>(this.dynamicDecorationMap[i]="function"==typeof M)?M(this.view):M)),i=!1,t=this.view.state.facet(rj).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(JN.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=Oj(this.view),s={left:e.left-N.left,top:e.top-N.top,right:e.right+N.right,bottom:e.bottom+N.bottom},{offsetWidth:D,offsetHeight:j}=this.view.scrollDOM;!function(M,i,t,e,N,s,D,j){let u=M.ownerDocument,I=u.defaultView||window;for(let g=M,n=!1;g&&!n;)if(1==g.nodeType){let M,l=g==u.body,r=1,o=1;if(l)M=Es(I);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(n=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let i=g.getBoundingClientRect();({scaleX:r,scaleY:o}=Qs(g,i)),M={left:i.left,right:i.left+g.clientWidth*r,top:i.top,bottom:i.top+g.clientHeight*o}}let c=0,a=0;if("nearest"==N)i.top<M.top?(a=-(M.top-i.top+D),t>0&&i.bottom>M.bottom+a&&(a=i.bottom-M.bottom+a+D)):i.bottom>M.bottom&&(a=i.bottom-M.bottom+D,t<0&&i.top-a<M.top&&(a=-(M.top+a-i.top+D)));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-D:i.bottom-s+D)-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==j?i.left-s:i.right-(M.right-M.left)+s)-M.left,c||a)if(l)I.scrollBy(c,a);else{let M=0,t=0;if(a){let M=g.scrollTop;g.scrollTop+=a/o,t=(g.scrollTop-M)*o}if(c){let i=g.scrollLeft;g.scrollLeft+=c/r,M=(g.scrollLeft-i)*r}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(l)break;g=g.assignedSlot||g.parentNode}else{if(11!=g.nodeType)break;g=g.host}}(this.view.scrollDOM,s,t.head<t.anchor?-1:1,M.x,M.y,Math.max(Math.min(M.xMargin,D),-D),Math.max(Math.min(M.yMargin,j),-j),this.view.textDirection==ED.LTR)}}class Aj extends TD{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 xj(M,i){let t=M.observer.selectionRange,e=t.focusNode&&dj(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 dj(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 wj=class{constructor(){this.changes=[]}compareRange(M,i){xD(M,i,this.changes)}comparePoint(M,i){xD(M,i,this.changes)}};function Sj(M,i){return i.left>M?i.left-M:Math.max(0,M-i.right)}function Ej(M,i){return i.top>M?i.top-M:Math.max(0,M-i.bottom)}function Qj(M,i){return M.top<i.bottom-1&&M.bottom>i.top+1}function kj(M,i){return i<M.top?{top:i,left:M.left,right:M.right,bottom:M.bottom}:M}function Cj(M,i){return i>M.bottom?{top:M.top,left:M.left,right:M.right,bottom:i}:M}function Uj(M,i,t){let e,N,s,D,j,u,I,g,n=!1;for(let l=M.firstChild;l;l=l.nextSibling){let M=hs(l);for(let r=0;r<M.length;r++){let o=M[r];N&&Qj(N,o)&&(o=kj(Cj(o,N.bottom),N.top));let c=Sj(i,o),a=Ej(t,o);if(0==c&&0==a)return 3==l.nodeType?bj(l,i,t):Uj(l,i,t);if(!e||D>a||D==a&&s>c){e=l,N=o,s=c,D=a;let j=a?t<o.top?-1:1:c?i<o.left?-1:1:0;n=!j||(j>0?r<M.length-1:r>0)}0==c?t>o.bottom&&(!I||I.bottom<o.bottom)?(j=l,I=o):t<o.top&&(!g||g.top>o.top)&&(u=l,g=o):I&&Qj(I,o)?I=Cj(I,o.bottom):g&&Qj(g,o)&&(g=kj(g,o.top))}}if(I&&I.bottom>=t?(e=j,N=I):g&&g.top<=t&&(e=u,N=g),!e)return{node:M,offset:0};let l=Math.max(N.left,Math.min(N.right,i));return 3==e.nodeType?bj(e,l,t):n&&"false"!=e.contentEditable?Uj(e,l,t):{node:M,offset:Array.prototype.indexOf.call(M.childNodes,e)+(i>=(N.left+N.right)/2?1:0)}}function bj(M,i,t){let e=M.nodeValue.length,N=-1,s=1e9,D=0;for(let j=0;j<e;j++){let e=ps(M,j,j+1).getClientRects();for(let u=0;u<e.length;u++){let I=e[u];if(I.top==I.bottom)continue;D||(D=i-I.left);let g=(I.top>t?I.top-t:t-I.bottom)-1;if(I.left-1<=i&&I.right+1>=i&&g<s){let t=i>=(I.left+I.right)/2,e=t;if(tD.chrome||tD.gecko){ps(M,j).getBoundingClientRect().left==I.right&&(e=!t)}if(g<=0)return{node:M,offset:j+(e?1:0)};N=j+(e?1:0),s=g}}}return{node:M,offset:N>-1?N:D>0?M.nodeValue.length:0}}function pj(M,i,t,e=-1){var N,s;let D,j=M.contentDOM.getBoundingClientRect(),u=j.top+M.viewState.paddingTop,{docHeight:I}=M.viewState,{x:g,y:n}=i,l=n-u;if(l<0)return 0;if(l>I)return M.state.doc.length;for(let i=M.viewState.heightOracle.textHeight/2,N=!1;D=M.elementAtHeight(l),D.type!=OD.Text;)for(;l=e>0?D.bottom+i:D.top-i,!(l>=0&&l<=I);){if(N)return t?null:0;N=!0,e=-e}n=u+l;let r=D.from;if(r<M.viewport.from)return 0==M.viewport.from?0:t?null:Zj(M,j,D,g,n);if(r>M.viewport.to)return M.viewport.to==M.state.doc.length?M.state.doc.length:t?null:Zj(M,j,D,g,n);let o=M.dom.ownerDocument,c=M.root.elementFromPoint?M.root:o,a=c.elementFromPoint(g,n);a&&!M.contentDOM.contains(a)&&(a=null),a||(g=Math.max(j.left+1,Math.min(j.right-1,g)),a=c.elementFromPoint(g,n),a&&!M.contentDOM.contains(a)&&(a=null));let T,O=-1;if(a&&0!=(null===(N=M.docView.nearest(a))||void 0===N?void 0:N.isEditable))if(o.caretPositionFromPoint){let M=o.caretPositionFromPoint(g,n);M&&({offsetNode:T,offset:O}=M)}else if(o.caretRangeFromPoint){let i=o.caretRangeFromPoint(g,n);i&&(({startContainer:T,startOffset:O}=i),(!M.contentDOM.contains(T)||tD.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 ps(M,e-1,e).getBoundingClientRect().left>t}(T,O,g)||tD.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():ps(M,0,Math.max(M.nodeValue.length,1)).getBoundingClientRect();return t-e.left>5}(T,O,g))&&(T=void 0))}if(!T||!M.docView.dom.contains(T)){let i=cD.find(M.docView,r);if(!i)return l>D.top+D.height/2?D.to:D.from;({node:T,offset:O}=Uj(i.dom,g,n))}let L=M.docView.nearest(T);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(T,O)+L.posAtStart}function Zj(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 D=M.state.sliceDoc(t.from,t.to);return t.from+Ds(D,s,M.state.tabSize)}function Yj(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==OD.Text))return M;return t}function mj(M,i,t,e){let N=M.state.doc.lineAt(i.head),s=M.bidiSpans(N),D=M.textDirectionAt(N.from);for(let j=i,u=null;;){let i=BD(N,s,D,j,t),I=RD;if(!i){if(N.number==(t?M.state.doc.lines:1))return j;I="\n",N=M.state.doc.line(N.number+(t?1:-1)),s=M.bidiSpans(N),i=M.visualLineSide(N,!t)}if(u){if(!u(I))return j}else{if(!e)return i;u=e(I)}j=i}}function fj(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 Wj(M,i,t){let e=fj(M.state.facet(oj).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 Vj{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,tD.safari&&M.contentDOM.addEventListener("input",(()=>null)),tD.gecko&&function(M){ru.has(M)||(ru.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=Gj(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&&Bj.indexOf(M.keyCode)<0&&(this.view.inputState.lastEscPress=0),tD.android&&tD.chrome&&!M.synthetic&&(13==M.keyCode||8==M.keyCode))return this.view.observer.delayAndroidKey(M.key,M.keyCode),!0;let i;return!tD.ios||M.synthetic||M.altKey||M.metaKey||!((i=Pj.find((i=>i.keyCode==M.keyCode)))&&!M.ctrlKey||Rj.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||!!(tD.safari&&!tD.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 vj(M,i){return(t,e)=>{try{return i.call(M,e,t)}catch(M){Nj(t.state,M)}}}function Gj(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(vj(i.value,N))}if(M&&M.domEventObservers)for(let e in M.domEventObservers){let N=M.domEventObservers[e];N&&t(e).observers.push(vj(i.value,N))}}for(let M in Xj)t(M).handlers.push(Xj[M]);for(let M in Hj)t(M).observers.push(Hj[M]);return i}const Pj=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Rj="dthko",Bj=[16,17,18,20,91,92,224,225];function Fj(M){return.7*Math.max(0,M)+8}class Jj{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(oj).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(JD);return t.length?t[0](i):tD.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!=ju(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=Oj(this.view);M.clientX-s.left<=N.left+6?t=-Fj(N.left-M.clientX):M.clientX+s.right>=N.right-6&&(t=Fj(M.clientX-N.right)),M.clientY-s.top<=N.top+6?e=-Fj(N.top-M.clientY):M.clientY+s.bottom>=N.bottom-6&&(e=Fj(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=fj(this.atoms,e.from,0);M!=e.from&&(N=$e.cursor(M,-1))}else{let M=fj(this.atoms,e.from,-1),i=fj(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 Xj=Object.create(null),Hj=Object.create(null),$j=tD.ie&&tD.ie_version<15||tD.ios&&tD.webkit_version<604;function _j(M,i){let t,{state:e}=M,N=1,s=e.toText(i),D=s.lines==e.selection.ranges.length,j=null!=Iu&&e.selection.ranges.every((M=>M.empty))&&Iu==s.toString();if(j){let M=-1;t=e.changeByRange((t=>{let j=e.doc.lineAt(t.from);if(j.from==M)return{range:t};M=j.from;let u=e.toText((D?s.line(N++).text:i)+e.lineBreak);return{changes:{from:j.from,insert:u},range:$e.cursor(t.from+u.length)}}))}else t=D?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 qj(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 D=s,j=s;t<0?D=Ce(N.text,s,!1):j=Ce(N.text,s);let u=e(N.text.slice(D,j));for(;D>0;){let M=Ce(N.text,D,!1);if(e(N.text.slice(M,D))!=u)break;D=M}for(;j<N.length;){let M=Ce(N.text,j);if(e(N.text.slice(j,M))!=u)break;j=M}return $e.range(D+N.from,j+N.from)}(M.state,i,t);{let t=cD.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)}}Hj.scroll=M=>{M.inputState.lastScrollTop=M.scrollDOM.scrollTop,M.inputState.lastScrollLeft=M.scrollDOM.scrollLeft},Xj.keydown=(M,i)=>(M.inputState.setSelectionOrigin("select"),27==i.keyCode&&(M.inputState.lastEscPress=Date.now()),!1),Hj.touchstart=(M,i)=>{M.inputState.lastTouchTime=Date.now(),M.inputState.setSelectionOrigin("select.pointer")},Hj.touchmove=M=>{M.inputState.setSelectionOrigin("select.pointer")},Xj.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(HD))if(t=e(M,i),t)break;if(t||0!=i.button||(t=function(M,i){let t=tu(M,i),e=ju(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,D){let j,u=tu(M,i),I=qj(M,u.pos,u.bias,e);if(t.pos!=u.pos&&!s){let i=qj(M,t.pos,t.bias,e),N=Math.min(i.from,I.from),s=Math.max(i.to,I.to);I=N<I.from?$e.range(N,s):$e.range(s,N)}return s?N.replaceRange(N.main.extend(I.from,I.to)):D&&1==e&&N.ranges.length>1&&(j=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,u.pos))?j:D?N.addRange(I):$e.create([I])}}}(M,i)),t){let e=!M.hasFocus;M.inputState.startMouseSelection(new Jj(M,i,t,e)),e&&M.observer.ignore((()=>bs(M.contentDOM)));let N=M.inputState.mouseSelection;if(N)return N.start(i),!1===N.dragging}return!1};let Kj=(M,i)=>M>=i.top&&M<=i.bottom,Mu=(M,i,t)=>Kj(i,t)&&M>=t.left&&M<=t.right;function iu(M,i,t,e){let N=cD.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 D=N.coordsAt(s,-1);if(D&&Mu(t,e,D))return-1;let j=N.coordsAt(s,1);return j&&Mu(t,e,j)?1:D&&Kj(e,D)?-1:1}function tu(M,i){let t=M.posAtCoords({x:i.clientX,y:i.clientY},!1);return{pos:t,bias:iu(M,t,i.clientX,i.clientY)}}const eu=tD.ie&&tD.ie_version<=11;let Nu=null,su=0,Du=0;function ju(M){if(!eu)return M.detail;let i=Nu,t=Du;return Nu=M,Du=Date.now(),su=!i||t>Date.now()-400&&Math.abs(i.clientX-M.clientX)<2&&Math.abs(i.clientY-M.clientY)<2?(su+1)%3:1}function uu(M,i,t,e){if(!t)return;let N=M.posAtCoords({x:i.clientX,y:i.clientY},!1),{draggedContent:s}=M.inputState,D=e&&s&&function(M,i){let t=M.state.facet(XD);return t.length?t[0](i):tD.mac?!i.altKey:!i.ctrlKey}(M,i)?{from:s.from,to:s.to}:null,j={from:N,insert:t},u=M.state.changes(D?[D,j]:j);M.focus(),M.dispatch({changes:u,selection:{anchor:u.mapPos(N,-1),head:u.mapPos(N,1)},userEvent:D?"move.drop":"input.drop"}),M.inputState.draggedContent=null}Xj.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},Xj.dragend=M=>(M.inputState.draggedContent=null,!1),Xj.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&&uu(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 uu(M,i,t,!0),!0}return!1},Xj.paste=(M,i)=>{if(M.state.readOnly)return!0;M.observer.flush();let t=$j?null:i.clipboardData;return t?(_j(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(),_j(M,t.value)}),50)}(M),!1)};let Iu=null;Xj.copy=Xj.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;Iu=N?t:null,"cut"!=i.type||M.state.readOnly||M.dispatch({changes:e,scrollIntoView:!0,userEvent:"delete.cut"});let s=$j?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 gu=wN.define();function nu(M,i){let t=[];for(let e of M.facet(KD)){let N=e(M,i);N&&t.push(N)}return t?M.update({effects:t,annotations:gu.of(!0)}):null}function lu(M){setTimeout((()=>{let i=M.hasFocus;if(i!=M.inputState.notifiedFocused){let t=nu(M.state,i);t?M.dispatch(t):M.update([])}}),10)}Hj.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),lu(M)},Hj.blur=M=>{M.observer.clearSelectionRange(),lu(M)},Hj.compositionstart=Hj.compositionupdate=M=>{null==M.inputState.compositionFirstChange&&(M.inputState.compositionFirstChange=!0),M.inputState.composing<0&&(M.inputState.composing=0)},Hj.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,tD.chrome&&tD.android?M.observer.flushSoon():M.inputState.compositionPendingChange?Promise.resolve().then((()=>M.observer.flush())):setTimeout((()=>{M.inputState.composing<0&&M.docView.hasComposition&&M.update([])}),50)},Hj.contextmenu=M=>{M.inputState.lastContextMenu=Date.now()},Xj.beforeinput=(M,i)=>{var t;let e;if(tD.chrome&&tD.android&&(e=Pj.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 ru=new Set;const ou=["pre-wrap","normal","pre-line","break-spaces"];class cu{constructor(M){this.lineWrapping=M,this.doc=Te.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 ou.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 D=ou.indexOf(M)>-1,j=Math.round(i)!=Math.round(this.lineHeight)||this.lineWrapping!=D;if(this.lineWrapping=D,this.lineHeight=i,this.charWidth=t,this.textHeight=e,this.lineLength=N,j){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 j}}class au{constructor(M,i){this.from=M,this.heights=i,this.index=0}get more(){return this.index<this.heights.length}}class Tu{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?OD.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 hD?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 Tu(this.from,this.length+M.length,this.top,this.height+M.height,i)}}var Ou=function(M){return M[M.ByPos=0]="ByPos",M[M.ByHeight=1]="ByHeight",M[M.ByPosNoHeight=2]="ByPosNoHeight",M}(Ou||(Ou={}));const Lu=.001;class zu{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)>Lu&&(M.heightChanged=!0),this.height=i)}replace(M,i,t){return zu.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 D=e.length-1;D>=0;D--){let{fromA:j,toA:u,fromB:I,toB:g}=e[D],n=N.lineAt(j,Ou.ByPosNoHeight,t.setDoc(i),0,0),l=n.to>=u?n:N.lineAt(u,Ou.ByPosNoHeight,t,0,0);for(g+=l.to-u,u=l.to;D>0&&n.from<=e[D-1].toA;)j=e[D-1].fromA,I=e[D-1].fromB,D--,j<n.from&&(n=N.lineAt(j,Ou.ByPosNoHeight,t,0,0));I+=n.from-j,j=n.from;let r=wu.build(t.setDoc(s),M,I,g);N=N.replace(j,u,r)}return N.updateHeight(t,0)}static empty(){return new hu(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 xu(zu.of(M.slice(0,i)),s,zu.of(M.slice(t)))}}zu.prototype.size=1;class yu extends zu{constructor(M,i,t){super(M,i),this.deco=t}blockAt(M,i,t,e){return new Tu(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 hu extends yu{constructor(M,i){super(M,i,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(M,i,t,e){return new Tu(e,this.length,t,this.height,this.breaks)}replace(M,i,t){let e=t[0];return 1==t.length&&(e instanceof hu||e instanceof Au&&4&e.flags)&&Math.abs(this.length-e.length)<10?(e instanceof Au?e=new hu(e.length,this.height):e.height=this.height,this.outdated||(e.outdated=!1),e):zu.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 Au extends zu{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,D=0;if(M.lineWrapping){let i=Math.min(this.height,M.lineHeight*s);t=i/s,this.length>s+1&&(D=(this.height-i)/(this.length-s-1))}else t=this.height/s;return{firstLine:e,lastLine:N,perLine:t,perChar:D}}blockAt(M,i,t,e){let{firstLine:N,lastLine:s,perLine:D,perChar:j}=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),u=D+s.length*j,I=Math.max(t,M-u/2);return new Tu(s.from,s.length,I,u,0)}{let e=Math.max(0,Math.min(s-N,Math.floor((M-t)/D))),{from:j,length:u}=i.doc.line(N+e);return new Tu(j,u,t+D*e,D,0)}}lineAt(M,i,t,e,N){if(i==Ou.ByHeight)return this.blockAt(M,t,e,N);if(i==Ou.ByPosNoHeight){let{from:i,to:e}=t.doc.lineAt(M);return new Tu(i,e-i,0,0,0)}let{firstLine:s,perLine:D,perChar:j}=this.heightMetrics(t,N),u=t.doc.lineAt(M),I=D+u.length*j,g=u.number-s,n=e+D*g+j*(u.from-N-g);return new Tu(u.from,u.length,Math.max(e,Math.min(n,e+this.height-I)),I,0)}forEachLine(M,i,t,e,N,s){M=Math.max(M,N),i=Math.min(i,N+this.length);let{firstLine:D,perLine:j,perChar:u}=this.heightMetrics(t,N);for(let I=M,g=e;I<=i;){let i=t.doc.lineAt(I);if(I==M){let t=i.number-D;g+=j*t+u*(M-N-t)}let e=j+u*i.length;s(new Tu(i.from,i.length,g,e,0)),g+=e,I=i.to+1}}replace(M,i,t){let e=this.length-i;if(e>0){let M=t[t.length-1];M instanceof Au?t[t.length-1]=new Au(M.length+e):t.push(null,new Au(e-1))}if(M>0){let i=t[0];i instanceof Au?t[0]=new Au(M+i.length):t.unshift(new Au(M-1),null)}return zu.of(t)}decomposeLeft(M,i){i.push(new Au(M-1),null)}decomposeRight(M,i){i.push(null,new Au(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),D=-1;for(e.from>i&&t.push(new Au(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==D?D=N:Math.abs(N-D)>=Lu&&(D=-2);let j=new hu(i,N);j.outdated=!1,t.push(j),s+=i+1}s<=N&&t.push(null,new Au(N-s).updateHeight(M,s));let j=zu.of(t);return(D<0||Math.abs(j.height-this.height)>=Lu||Math.abs(D-this.heightMetrics(M,i).perLine)>=Lu)&&(M.heightChanged=!0),j}return(t||this.outdated)&&(this.setHeight(M,M.heightForGap(i,i+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class xu extends zu{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,D=N+this.left.length+this.break,j=i==Ou.ByHeight?M<s:M<D,u=j?this.left.lineAt(M,i,t,e,N):this.right.lineAt(M,i,t,s,D);if(this.break||(j?u.to<D:u.from>D))return u;let I=i==Ou.ByPosNoHeight?Ou.ByPosNoHeight:Ou.ByPos;return j?u.join(this.right.lineAt(D,I,t,s,D)):this.left.lineAt(D,I,t,e,N).join(u)}forEachLine(M,i,t,e,N,s){let D=e+this.left.height,j=N+this.left.length+this.break;if(this.break)M<j&&this.left.forEachLine(M,i,t,e,N,s),i>=j&&this.right.forEachLine(M,i,t,D,j,s);else{let u=this.lineAt(j,Ou.ByPos,t,e,N);M<u.from&&this.left.forEachLine(M,u.from-1,t,e,N,s),u.to>=M&&u.from<=i&&s(u),i>u.to&&this.right.forEachLine(u.to+1,i,t,D,j,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&&du(N,s-1),i<this.length){let M=N.length;this.decomposeRight(i,N),du(N,M)}return zu.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?zu.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,D=i+N.length+this.break,j=null;return e&&e.from<=i+N.length&&e.more?j=N=N.updateHeight(M,i,t,e):N.updateHeight(M,i,t),e&&e.from<=D+s.length&&e.more?j=s=s.updateHeight(M,D,t,e):s.updateHeight(M,D,t),j?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 du(M,i){let t,e;null==M[i]&&(t=M[i-1])instanceof Au&&(e=M[i+1])instanceof Au&&M.splice(i-1,3,new Au(t.length+1+e.length))}class wu{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 hu?t.length+=M-this.pos:(M>this.pos||!this.isCovered)&&this.nodes.push(new hu(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 yu(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 hu(this.pos-M,-1)),this.writtenTo=this.pos}blankContent(M,i){let t=new Au(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 hu)return M;let i=new hu(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 hu||this.isCovered?(this.writtenTo<this.pos||null==i)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new hu(0,-1));let t=M;for(let M of this.nodes)M instanceof hu&&M.updateHeight(this.oracle,t),t+=M?M.length:1;return this.nodes}static build(M,i,t,e){let N=new wu(t,M);return JN.spans(i,t,e,N,0),N.finish(t)}}class Su{constructor(){this.changes=[]}compareRange(){}comparePoint(M,i,t,e){(M<i||t&&t.heightRelevant||e&&e.heightRelevant)&&xD(M,i,this.changes,5)}}function Eu(M,i){let t=M.getBoundingClientRect(),e=M.ownerDocument,N=e.defaultView||window,s=Math.max(0,t.left),D=Math.min(N.innerWidth,t.right),j=Math.max(0,t.top),u=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),D=Math.min(D,e.right),j=Math.max(j,e.top),u=i==M.parentNode?e.bottom:Math.min(u,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,D)-t.left,top:j-(t.top+i),bottom:Math.max(j,u)-(t.top+i)}}function Qu(M,i){let t=M.getBoundingClientRect();return{left:0,right:t.right-t.left,top:i,bottom:t.bottom-(t.top+i)}}class ku{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 LD.replace({widget:new Cu(this.size*(i?M.scaleY:M.scaleX),i)}).range(this.from,this.to)}}class Cu extends TD{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 Uu{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=mu,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=ED.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let i=M.facet(nj).some((M=>"function"!=typeof M&&"cm-lineWrapping"==M.class));this.heightOracle=new cu(i),this.stateDeco=M.facet(lj).filter((M=>"function"!=typeof M)),this.heightMap=zu.empty().applyChanges(this.stateDeco,Te.empty,this.heightOracle.setDoc(M.doc),[new zj(0,0,0,M.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=LD.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 bu(i,t))}}this.viewports=M.sort(((M,i)=>M.from-i.from)),this.scaler=this.heightMap.height<=7e6?mu:new fu(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:Wu(M,this.scaler))}))}update(M,i=null){this.state=M.state;let t=this.stateDeco;this.stateDeco=this.state.facet(lj).filter((M=>"function"!=typeof M));let e=M.changedRanges,N=zj.extendWithRanges(e,function(M,i,t){let e=new Su;return JN.compare(M,i,t,e,0),e.changes}(t,this.stateDeco,M?M.changes:Ge.empty(this.state.doc.length))),s=this.heightMap.height,D=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),D?(this.scrollAnchorPos=M.changes.mapPos(D.from,-1),this.scrollAnchorHeight=D.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let j=N.length?this.mapViewport(this.viewport,M.changes):this.viewport;(i&&(i.range.head<j.from||i.range.head>j.to)||!this.viewportIsAppropriate(j))&&(j=this.getViewport(0,i));let u=!M.changes.empty||2&M.flags||j.from!=this.viewport.from||j.to!=this.viewport.to;this.viewport=j,this.updateForViewport(),u&&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(ij)&&(this.mustEnforceCursorAssoc=!0)}measure(M){let i=M.contentDOM,t=window.getComputedStyle(i),e=this.heightOracle,N=t.whiteSpace;this.defaultTextDirection="rtl"==t.direction?ED.RTL:ED.LTR;let s=this.heightOracle.mustRefreshForWrapping(N),D=i.getBoundingClientRect(),j=s||this.mustMeasureContent||this.contentDOMHeight!=D.height;this.contentDOMHeight=D.height,this.mustMeasureContent=!1;let u=0,I=0;if(D.width&&D.height){let{scaleX:M,scaleY:t}=Qs(i,D);this.scaleX==M&&this.scaleY==t||(this.scaleX=M,this.scaleY=t,u|=8,s=j=!0)}let g=(parseInt(t.paddingTop)||0)*this.scaleY,n=(parseInt(t.paddingBottom)||0)*this.scaleY;this.paddingTop==g&&this.paddingBottom==n||(this.paddingTop=g,this.paddingBottom=n,u|=10),this.editorWidth!=M.scrollDOM.clientWidth&&(e.lineWrapping&&(j=!0),this.editorWidth=M.scrollDOM.clientWidth,u|=8);let l=M.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=l&&(this.scrollAnchorHeight=-1,this.scrollTop=l),this.scrolledToBottom=ms(M.scrollDOM);let r=(this.printing?Qu:Eu)(i,this.paddingTop),o=r.top-this.pixelViewport.top,c=r.bottom-this.pixelViewport.bottom;this.pixelViewport=r;let a=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(a!=this.inView&&(this.inView=a,a&&(j=!0)),!this.inView&&!this.scrollTarget)return 0;let T=D.width;if(this.contentDOMWidth==T&&this.editorHeight==M.scrollDOM.clientHeight||(this.contentDOMWidth=D.width,this.editorHeight=M.scrollDOM.clientHeight,u|=8),j){let i=M.docView.measureVisibleLineHeights(this.viewport);if(e.mustRefreshForHeights(i)&&(s=!0),s||e.lineWrapping&&Math.abs(T-this.contentDOMWidth)>e.charWidth){let{lineHeight:t,charWidth:D,textHeight:j}=M.docView.measureTextSize();s=t>0&&e.refresh(N,t,D,j,T/D,i),s&&(M.docView.minWidth=0,u|=8)}o>0&&c>0?I=Math.max(o,c):o<0&&c<0&&(I=Math.min(o,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?zu.empty().applyChanges(this.stateDeco,Te.empty,this.heightOracle,[new zj(0,0,0,M.state.doc.length)]):this.heightMap).updateHeight(e,0,s,new au(t.from,N))}e.heightChanged&&(u|=2)}let O=!this.viewportIsAppropriate(this.viewport,I)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return O&&(this.viewport=this.getViewport(I,this.scrollTarget)),this.updateForViewport(),(2&u||O)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,M)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,M.docView.enforceCursorAssoc()),u}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:D}=this,j=new bu(e.lineAt(s-1e3*t,Ou.ByHeight,N,0,0).from,e.lineAt(D+1e3*(1-t),Ou.ByHeight,N,0,0).to);if(i){let{head:M}=i.range;if(M<j.from||M>j.to){let t,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),D=e.lineAt(M,Ou.ByPos,N,0,0);t="center"==i.y?(D.top+D.bottom)/2-s/2:"start"==i.y||"nearest"==i.y&&M<j.from?D.top:D.bottom-s,j=new bu(e.lineAt(t-500,Ou.ByHeight,N,0,0).from,e.lineAt(t+s+500,Ou.ByHeight,N,0,0).to)}}return j}mapViewport(M,i){let t=i.mapPos(M.from,-1),e=i.mapPos(M.to,1);return new bu(this.heightMap.lineAt(t,Ou.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(e,Ou.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,Ou.ByPos,this.heightOracle,0,0),{bottom:N}=this.heightMap.lineAt(i,Ou.ByPos,this.heightOracle,0,0),{visibleTop:s,visibleBottom:D}=this;return(0==M||e<=s-Math.max(10,Math.min(-t,250)))&&(i==this.state.doc.length||N>=D+Math.max(10,Math.min(t,250)))&&e>s-2e3&&N<D+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 ku(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!=ED.LTR&&!t)return[];let D=[],j=(e,s,u,I)=>{if(s-e<N)return;let g=this.state.selection.main,n=[g.from];g.empty||n.push(g.to);for(let M of n)if(M>e&&M<s)return j(e,M-10,u,I),void j(M+10,s,u,I);let l=function(M,i){for(let t of M)if(i(t))return t;return}(M,(M=>M.from>=u.from&&M.to<=u.to&&Math.abs(M.from-e)<N&&Math.abs(M.to-s)<N&&!n.some((i=>M.from<i&&M.to>i))));if(!l){if(s<u.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)}l=new ku(e,s,this.gapSize(u,e,s,I))}D.push(l)};for(let M of this.viewportLines){if(M.length<s)continue;let i=pu(M.from,M.to,this.stateDeco);if(i.total<s)continue;let N,D,u=this.scrollTarget?this.scrollTarget.range.head:null;if(t){let t,s,j=e/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=u){let e=Yu(i,u),N=((this.visibleBottom-this.visibleTop)/2+j)/M.height;t=e-N,s=e+N}else t=(this.visibleTop-M.top-j)/M.height,s=(this.visibleBottom-M.top+j)/M.height;N=Zu(i,t),D=Zu(i,s)}else{let M,t,s=i.total*this.heightOracle.charWidth,j=e*this.heightOracle.charWidth;if(null!=u){let e=Yu(i,u),N=((this.pixelViewport.right-this.pixelViewport.left)/2+j)/s;M=e-N,t=e+N}else M=(this.pixelViewport.left-j)/s,t=(this.pixelViewport.right+j)/s;N=Zu(i,M),D=Zu(i,t)}N>M.from&&j(M.from,N,M,i),D<M.to&&j(D,M.to,M,i)}return D}gapSize(M,i,t,e){let N=Yu(e,t)-Yu(e,i);return this.heightOracle.lineWrapping?M.height*N:e.total*this.heightOracle.charWidth*N}updateLineGaps(M){ku.same(M,this.lineGaps)||(this.lineGaps=M,this.lineGapDeco=LD.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=[];JN.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))||Wu(this.heightMap.lineAt(M,Ou.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(M){return Wu(this.heightMap.lineAt(this.scaler.fromDOM(M),Ou.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 Wu(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 bu{constructor(M,i){this.from=M,this.to=i}}function pu(M,i,t){let e=[],N=M,s=0;return JN.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 Zu({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 Yu(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 mu={toDOM:M=>M,fromDOM:M=>M,scale:1};class fu{constructor(M,i,t){let e=0,N=0,s=0;this.viewports=t.map((({from:t,to:N})=>{let s=i.lineAt(t,Ou.ByPos,M,0,0).top,D=i.lineAt(N,Ou.ByPos,M,0,0).bottom;return e+=D-s,{from:t,to:N,top:s,bottom:D,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 Wu(M,i){if(1==i.scale)return M;let t=i.toDOM(M.top),e=i.toDOM(M.bottom);return new Tu(M.from,M.length,t,e-t,Array.isArray(M._content)?M._content.map((M=>Wu(M,i))):M._content)}const Vu=Ke.define({combine:M=>M.join(" ")}),vu=Ke.define({combine:M=>M.indexOf(!0)>-1}),Gu=gs.newName(),Pu=gs.newName(),Ru=gs.newName(),Bu={"&light":"."+Pu,"&dark":"."+Ru};function Fu(M,i,t){return new gs(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 Ju=Fu("."+Gu,{"&":{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"}},Bu),Xu="";class Hu{constructor(M,i){this.points=M,this.text="",this.lineSeparator=i.facet(vN.lineSeparator)}append(M){this.text+=M}lineBreak(){this.text+=Xu}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),D=Vs.get(N);(s&&D?s.breakAfter:(s?s.breakAfter:_u(e))||_u(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,D=1;if(this.lineSeparator?(s=i.indexOf(this.lineSeparator,t),D=this.lineSeparator.length):(N=e.exec(i))&&(s=N.index,D=N[0].length),this.append(i.slice(t,s<0?i.length:s)),s<0)break;if(this.lineBreak(),D>1)for(let i of this.points)i.node==M&&i.pos>this.text.length&&(i.pos-=D-1);t=s+D}}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+($u(M,t.node,t.offset)?i:0))}}function $u(M,i,t){for(;;){if(!i||t<ws(i))return!1;if(i==M)return!0;t=xs(i)+1,i=i.parentNode}}function _u(M){return 1==M.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(M.nodeName)}class qu{constructor(M,i){this.node=M,this.offset=i,this.pos=-1}}class Ku{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 qu(t,e)),N==t&&s==e||i.push(new qu(N,s)));return i}(M),t=new Hu(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||!zs(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||!zs(M.contentDOM,i.anchorNode)?M.state.selection.main.anchor:M.docView.posFromDOM(i.anchorNode,i.anchorOffset),D=M.viewport;if(tD.ios&&M.state.selection.main.empty&&t!=e&&(D.from>0||D.to<M.state.doc.length)){let i=D.from-Math.min(t,e),N=D.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 MI(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:D}=i.bounds,j=N.from,u=null;(8===s||tD.android&&i.text.length<D-e)&&(j=N.to,u="end");let I=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 D=M.length,j=i.length;for(;D>0&&j>0&&M.charCodeAt(D-1)==i.charCodeAt(j-1);)D--,j--;if("end"==e){t-=D+Math.max(0,s-Math.min(D,j))-s}if(D<s&&M.length<i.length){s-=t<=s&&t>=D?s-t:0,j=s+(j-D),D=s}else if(j<s){s-=t<=s&&t>=j?s-t:0,D=s+(D-j),j=s}return{from:s,toA:D,toB:j}}(M.state.doc.sliceString(e,D,Xu),i.text,j-e,u);I&&(tD.chrome&&13==s&&I.toB==I.from+2&&i.text.slice(I.from,I.toB)==Xu+Xu&&I.toB--,t={from:e+I.from,to:e+I.toA,insert:Te.of(i.text.slice(I.from,I.toB).split(Xu))})}else e&&(!M.hasFocus&&M.state.facet(sj)||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))}:(tD.mac||tD.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:Te.of([" "])}):tD.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:Te.of([" "])}),t){if(tD.ios&&M.inputState.flushIOSKey())return!0;if(tD.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,D=t.insert.toString();M.inputState.composing>=0&&M.inputState.composing++;let j=()=>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):"",D=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)+D))}else{let D=N.changes(i),j=t&&t.main.to<=D.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 u,I=M.state.sliceDoc(i.from,i.to),g=t&&xj(M,t.main.head);if(g){let M=i.insert.length-(i.to-i.from);u={from:g.from,to:g.to-M}}else u=M.state.doc.lineAt(s.head);let n=s.to-i.to,l=s.to-s.from;e=N.changeByRange((t=>{if(t.from==s.from&&t.to==s.to)return{changes:D,range:j||t.map(D)};let e=t.to-n,g=e-I.length;if(t.to-t.from!=l||M.state.sliceDoc(g,e)!=I||t.to>=u.from&&t.from<=u.to)return{range:t};let r=N.changes({from:g,to:e,insert:i.insert}),o=t.to-s.to;return{changes:r,range:j?$e.range(Math.max(0,j.anchor+o),Math.max(0,j.head+o)):t.map(r)}}))}else e={changes:D,selection:j&&N.selection.replaceRange(j)}}let D="input.type";(M.composing||M.inputState.compositionPendingChange&&M.inputState.compositionEndedAt>Date.now()-50)&&(M.inputState.compositionPendingChange=!1,D+=".compose",M.inputState.compositionFirstChange&&(D+=".start",M.inputState.compositionFirstChange=!1));return N.update(e,{userEvent:D,scrollIntoView:!0})}(M,t,e));return M.state.facet(qD).some((i=>i(M,t.from,t.to,D,j)))||M.dispatch(j()),!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 iI={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},tI=tD.ie&&tD.ie_version<=11;class eI{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);(tD.ie&&tD.ie_version<=11||tD.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()})),tI&&(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(sj)?t.root.activeElement!=this.dom:!ys(t.dom,e))return;let N=e.anchorNode&&t.docView.nearest(e.anchorNode);N&&N.ignoreEvent(M)?i||(this.selectionChanged=!1):(tD.ie&&tD.ie_version<=11||tD.android&&tD.chrome)&&!t.state.selection.main.empty&&e.focusNode&&As(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:M}=this,i=tD.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,D=i.endOffset,j=M.docView.domAtPos(M.state.selection.main.anchor);As(j.node,j.offset,s,D)&&([e,N,s,D]=[s,D,e,N]);return{anchorNode:e,anchorOffset:N,focusNode:s,focusOffset:D}}(this.view)||Ls(M.root);if(!i||this.selectionRange.eq(i))return!1;let t=ys(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=xs(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,iI),tI&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),tI&&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&&ys(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 Ku(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=MI(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=NI(i,M.previousSibling||M.target.previousSibling,-1),e=NI(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 NI(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 sI{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 Uu(M.state||vN.create(M)),M.scrollTo&&M.scrollTo.is(ej)&&(this.viewState.scrollTarget=M.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(jj).map((M=>new Ij(M)));for(let M of this.plugins)M.update(this);this.observer=new eI(this),this.inputState=new Vj(this),this.inputState.ensureHandlers(this.plugins),this.docView=new hj(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,D=0,j=null;M.some((M=>M.annotation(gu)))?(this.inputState.notifiedFocused=s,D=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,j=nu(N,s),j||(D=1));let u=this.observer.delayedAndroidKey,I=null;if(u?(this.observer.clearDelayedAndroidKey(),I=this.observer.readChange(),(I&&!this.state.doc.eq(N.doc)||!this.state.selection.eq(N.selection))&&(I=null)):this.observer.clear(),N.facet(vN.phrases)!=this.state.facet(vN.phrases))return this.setState(N);i=yj.create(this,N,M),i.flags|=D;let g=this.viewState.scrollTarget;try{this.updateState=2;for(let i of M){if(g&&(g=g.map(i.changes)),i.scrollIntoView){let{main:M}=i.state.selection;g=new tj(M.empty?M:$e.cursor(M.head,M.head>M.anchor?-1:1))}for(let M of i.effects)M.is(ej)&&(g=M.value.clip(this.state))}this.viewState.update(i,g),this.bidiCache=uI.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(Lj)!=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(Vu)!=i.state.facet(Vu)&&(this.viewState.mustMeasureContent=!0),(t||e||g||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!i.empty)for(let M of this.state.facet(_D))try{M(i)}catch(M){Nj(this.state,M,"update listener")}(j||I)&&Promise.resolve().then((()=>{j&&this.state==j.startState&&this.dispatch(j),I&&!MI(this,I)&&u.force&&Zs(this.contentDOM,u.key,u.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 Uu(M),this.plugins=M.facet(jj).map((M=>new Ij(M))),this.pluginMap.clear();for(let M of this.plugins)M.update(this);this.docView.destroy(),this.docView=new hj(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(jj),t=M.state.facet(jj);if(i!=t){let e=[];for(let N of t){let t=i.indexOf(N);if(t<0)e.push(new Ij(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(ms(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 D=this.viewState.measure(this);if(!D&&!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 j=[];4&D||([this.measureRequests,j]=[j,this.measureRequests]);let u=j.map((M=>{try{return M.read(this)}catch(M){return Nj(this.state,M),jI}})),I=yj.create(this,this.state,[]),g=!1;I.flags|=D,i?i.flags|=D:i=I,this.updateState=2,I.empty||(this.updatePlugins(I),this.inputState.update(I),this.updateAttrs(),g=this.docView.update(I));for(let M=0;M<j.length;M++)if(u[M]!=jI)try{let i=j[M];i.write&&i.write(u[M],this)}catch(M){Nj(this.state,M)}if(g&&this.docView.updateSelection(!0),!I.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(_D))M(i)}get themeClasses(){return Gu+" "+(this.state.facet(vu)?Ru:Pu)+" "+this.state.facet(Vu)}updateAttrs(){let M=II(this,gj,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(sj)?"true":"false",class:"cm-content",style:`${tD.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),II(this,nj,i);let t=this.observer.ignore((()=>{let t=rD(this.contentDOM,this.contentAttrs,i),e=rD(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(sI.announce)){i&&(this.announceDOM.textContent=""),i=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=M.value}}mountStyles(){this.styleModules=this.state.facet(Lj);let M=this.state.facet(sI.cspNonce);gs.mount(this.root,this.styleModules.concat(Ju).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 Wj(this,M,mj(this,M,i,t))}moveByGroup(M,i){return Wj(this,M,mj(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==mN.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=Yj(M,i.head),s=e&&N.type==OD.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),D=M.posAtCoords({x:t==(e==ED.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(null!=D)return $e.cursor(D,t?-1:1)}return $e.cursor(t?N.to:N.from,t?-1:1)}(this,M,i,t)}moveVertically(M,i,t){return Wj(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 D,j=i.goalColumn,u=M.contentDOM.getBoundingClientRect(),I=M.coordsAtPos(N,i.assoc||-1),g=M.documentTop;if(I)null==j&&(j=I.left-u.left),D=s<0?I.top:I.bottom;else{let i=M.viewState.lineBlockAt(N);null==j&&(j=Math.min(u.right-u.left,M.defaultCharacterWidth*(N-i.from))),D=(s<0?i.top:i.bottom)+g}let n=u.left+j,l=null!=e?e:M.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let t=D+(l+i)*s,e=pj(M,{x:n,y:t},!1,s);if(t<u.top||t>u.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,j)}}}(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(),pj(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[fD.find(N,M-e.from,-1,i)].dir==ED.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(Mj)||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>DI)return PD(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||WD(e.isolates,i=aj(this,M))))return e.order;i||(i=aj(this,M));let e=function(M,i,t){if(!M)return[new fD(0,0,i==kD?1:0)];if(i==QD&&!t.length&&!mD.test(M))return PD(M.length);if(t.length)for(;M.length>VD.length;)VD[VD.length]=256;let e=[],N=i==QD?0:1;return GD(M,N,N,t,0,M.length,e),e}(M.text,t,i);return this.bidiCache.push(new uI(M.from,M.to,t,i,!0,e)),e}get hasFocus(){var M;return(this.dom.ownerDocument.hasFocus()||tD.safari&&(null===(M=this.inputState)||void 0===M?void 0:M.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{bs(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 ej.of(new tj("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 ej.of(new tj($e.cursor(t.from),"start","start",t.top-M,i,!0))}static domEventHandlers(M){return uj.define((()=>({})),{eventHandlers:M})}static domEventObservers(M){return uj.define((()=>({})),{eventObservers:M})}static theme(M,i){let t=gs.newName(),e=[Vu.of(t),Lj.of(Fu(`.${t}`,M))];return i&&i.dark&&e.push(vu.of(!0)),e}static baseTheme(M){return lN.lowest(Lj.of(Fu("."+Gu,M,Bu)))}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}}sI.styleModule=Lj,sI.inputHandler=qD,sI.focusChangeEffect=KD,sI.perLineTextDirection=Mj,sI.exceptionSink=$D,sI.updateListener=_D,sI.editable=sj,sI.mouseSelectionStyle=HD,sI.dragMovesSelection=XD,sI.clickAddsSelectionRange=JD,sI.decorations=lj,sI.outerDecorations=rj,sI.atomicRanges=oj,sI.bidiIsolatedRanges=cj,sI.scrollMargins=Tj,sI.darkTheme=vu,sI.cspNonce=Ke.define({combine:M=>M.length?M[0]:""}),sI.contentAttributes=nj,sI.editorAttributes=gj,sI.lineWrapping=sI.contentAttributes.of({class:"cm-lineWrapping"}),sI.announce=QN.define();const DI=4096,jI={};class uI{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:ED.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 uI(i.mapPos(s.from,1),i.mapPos(s.to,-1),s.dir,s.isolates,!1,s.order))}return t}}function II(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&&gD(s,t)}return t}const gI=tD.mac?"mac":tD.windows?"win":tD.linux?"linux":"key";function nI(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 lI=lN.default(sI.domEventHandlers({keydown:(M,i)=>OI(cI(i.state),M,i,"editor")})),rI=Ke.define({enables:lI}),oI=new WeakMap;function cI(M){let i=M.facet(rI),t=oI.get(i);return t||oI.set(i,t=function(M,i=gI){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,D,j)=>{var u,I;let g=t[M]||(t[M]=Object.create(null)),n=e.split(/ (?!$)/).map((M=>function(M,i){const t=M.split(/-(?!$)/);let e,N,s,D,j=t[t.length-1];"Space"==j&&(j=" ");for(let M=0;M<t.length-1;++M){const j=t[M];if(/^(cmd|meta|m)$/i.test(j))D=!0;else if(/^a(lt)?$/i.test(j))e=!0;else if(/^(c|ctrl|control)$/i.test(j))N=!0;else if(/^s(hift)?$/i.test(j))s=!0;else{if(!/^mod$/i.test(j))throw new Error("Unrecognized modifier name: "+j);"mac"==i?D=!0:N=!0}}return e&&(j="Alt-"+j),N&&(j="Ctrl-"+j),D&&(j="Meta-"+j),s&&(j="Shift-"+j),j}(M,i)));for(let i=1;i<n.length;i++){let t=n.slice(0,i).join(" ");N(t,!0),g[t]||(g[t]={preventDefault:!0,stopPropagation:!1,run:[i=>{let e=aI={view:i,prefix:t,scope:M};return setTimeout((()=>{aI==e&&(aI=null)}),TI),!0}]})}let l=n.join(" ");N(l,!1);let r=g[l]||(g[l]={preventDefault:!1,stopPropagation:!1,run:(null===(I=null===(u=g._any)||void 0===u?void 0:u.run)||void 0===I?void 0:I.slice())||[]});s&&r.run.push(s),D&&(r.preventDefault=!0),j&&(r.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 aI=null;const TI=4e3;function OI(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?os:rs)[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(Ye(N,0))==N.length&&" "!=N,D="",j=!1,u=!1,I=!1;aI&&aI.view==t&&aI.scope==e&&(D=aI.prefix+" ",Bj.indexOf(i.keyCode)<0&&(u=!0,aI=null));let g,n,l=new Set,r=M=>{if(M){for(let e of M.run)if(!l.has(e)&&(l.add(e),e(t,i)))return M.stopPropagation&&(I=!0),!0;M.preventDefault&&(M.stopPropagation&&(I=!0),u=!0)}return!1},o=M[e];return o&&(r(o[D+nI(N,i,!s)])?j=!0:s&&(i.altKey||i.metaKey||i.ctrlKey)&&!(tD.windows&&i.ctrlKey&&i.altKey)&&(g=rs[i.keyCode])&&g!=N?(r(o[D+nI(g,i,!0)])||i.shiftKey&&(n=os[i.keyCode])!=N&&n!=g&&r(o[D+nI(n,i,!1)]))&&(j=!0):s&&i.shiftKey&&r(o[D+nI(N,i,!0)])&&(j=!0),!j&&r(o._any)&&(j=!0)),u&&(j=!0),j&&I&&i.stopPropagation(),j}class LI{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=zI(M);return[new LI(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==ED.LTR,D=M.contentDOM,j=D.getBoundingClientRect(),u=zI(M),I=D.querySelector(".cm-line"),g=I&&window.getComputedStyle(I),n=j.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),l=j.right-(g?parseInt(g.paddingRight):0),r=Yj(M,e),o=Yj(M,N),c=r.type==OD.Text?r:null,a=o.type==OD.Text?o:null;c&&(M.lineWrapping||r.widgetLineBreaks)&&(c=yI(M,e,c));a&&(M.lineWrapping||o.widgetLineBreaks)&&(a=yI(M,N,a));if(c&&a&&c.from==a.from)return O(L(t.from,t.to,c));{let i=c?L(t.from,null,c):z(r,!1),e=a?L(null,t.to,a):z(o,!0),N=[];return(c||r).to<(a||o).from-(c&&a?1:0)||r.widgetLineBreaks>1&&i.bottom+M.defaultLineHeight/2<e.top?N.push(T(n,i.bottom,l,e.top)):i.bottom<e.top&&M.elementAtHeight((i.bottom+e.top)/2).type==OD.Text&&(i.bottom=e.top=(i.bottom+e.top)/2),O(i).concat(N).concat(O(e))}function T(M,t,e,N){return new LI(i,M-u.left,t-u.top-.01,e-M,N-t+.01)}function O({top:M,bottom:i,horizontal:t}){let e=[];for(let N=0;N<t.length;N+=2)e.push(T(t[N],M,t[N+1],i));return e}function L(i,t,e){let N=1e9,D=-1e9,j=[];function u(i,t,u,I,g){let r=M.coordsAtPos(i,i==e.to?-2:2),o=M.coordsAtPos(u,u==e.from?2:-2);r&&o&&(N=Math.min(r.top,o.top,N),D=Math.max(r.bottom,o.bottom,D),g==ED.LTR?j.push(s&&t?n:r.left,s&&I?l:o.right):j.push(!s&&I?n:o.left,!s&&t?l:r.right))}let I=null!=i?i:e.from,g=null!=t?t:e.to;for(let e of M.visibleRanges)if(e.to>I&&e.from<g)for(let N=Math.max(e.from,I),s=Math.min(e.to,g);;){let e=M.state.doc.lineAt(N);for(let D of M.bidiSpans(e)){let M=D.from+e.from,j=D.to+e.from;if(M>=s)break;j>N&&u(Math.max(M,N),null==i&&M<=I,Math.min(j,s),null==t&&j>=g,D.dir)}if(N=e.to+1,N>=s)break}return 0==j.length&&u(I,null==i,g,null==t,M.textDirection),{top:N,bottom:D,horizontal:j}}function z(M,i){let t=j.top+(i?M.top:M.bottom);return{top:t,bottom:t,horizontal:[]}}}(M,i,t)}}function zI(M){let i=M.scrollDOM.getBoundingClientRect();return{left:(M.textDirection==ED.LTR?i.left:i.right-M.scrollDOM.clientWidth*M.scaleX)-M.scrollDOM.scrollLeft*M.scaleX,top:i.top-M.scrollDOM.scrollTop*M.scaleY}}function yI(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:OD.Text}}class hI{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(AI)!=M.state.facet(AI)&&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(AI);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 AI=Ke.define();function xI(M){return[uj.define((i=>new hI(i,M))),AI.of(M)]}const dI=!tD.ios,wI=Ke.define({combine:M=>GN(M,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(M,i)=>Math.min(M,i),drawRangeCursor:(M,i)=>M||i})});function SI(M){return M.startState.facet(wI)!=M.state.facet(wI)}const EI=xI({above:!0,markers(M){let{state:i}=M,t=i.facet(wI),e=[];for(let N of i.selection.ranges){let s=N==i.selection.main;if(N.empty?!s||dI: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 LI.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=SI(M);return t&&QI(M.state,i),M.docChanged||M.selectionSet||t},mount(M,i){QI(i.state,M)},class:"cm-cursorLayer"});function QI(M,i){i.style.animationDuration=M.facet(wI).cursorBlinkRate+"ms"}const kI=xI({above:!1,markers:M=>M.state.selection.ranges.map((i=>i.empty?[]:LI.forRange(M,"cm-selectionBackground",i))).reduce(((M,i)=>M.concat(i))),update:(M,i)=>M.docChanged||M.selectionSet||M.viewportChanged||SI(M),class:"cm-selectionLayer"}),CI={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};dI&&(CI[".cm-line"].caretColor="transparent !important",CI[".cm-content"]={caretColor:"transparent !important"});const UI=lN.highest(sI.theme(CI)),bI=QN.define({map:(M,i)=>null==M?null:i.mapPos(M)}),pI=DN.define({create:()=>null,update:(M,i)=>(null!=M&&(M=i.changes.mapPos(M)),i.effects.reduce(((M,i)=>i.is(bI)?i.value:M),M))}),ZI=uj.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(pI);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(pI)!=t||M.docChanged||M.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:M}=this,i=M.state.field(pI),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(pI)!=M&&this.view.dispatch({effects:bI.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 YI(M,i,t,e,N){i.lastIndex=0;for(let s,D=M.iterRange(t,e),j=t;!D.next().done;j+=D.value.length)if(!D.lineBreak)for(;s=i.exec(D.value);)N(j+s.index,s)}class mI{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 XN,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))YI(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,D)=>{D>M.view.viewport.from&&s<M.view.viewport.to&&(t=Math.min(s,t),e=Math.max(D,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),D=Math.min(N.to,e);if(D>s){let t=M.state.doc.lineAt(s),e=t.to<D?M.state.doc.lineAt(D):t,j=Math.max(N.from,t.from),u=Math.min(N.to,e.to);if(this.boundary){for(;s>t.from;s--)if(this.boundary.test(t.text[s-1-t.from])){j=s;break}for(;D<e.to;D++)if(this.boundary.test(e.text[D-e.from])){u=D;break}}let I,g=[],n=(M,i,t)=>g.push(t.range(M,i));if(t==e)for(this.regexp.lastIndex=j-t.from;(I=this.regexp.exec(t.text))&&I.index<u-t.from;)this.addMatch(I,M,I.index+t.from,n);else YI(M.state.doc,this.regexp,j,u,((i,t)=>this.addMatch(t,M,i,n)));i=i.update({filterFrom:j,filterTo:u,filter:(M,i)=>M<j||i>u,add:g})}}return i}}const fI=null!=/x/.unicode?"gu":"g",WI=new RegExp("[\0-\b\n--\u2028\u2029\ufeff-]",fI),VI={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 vI=null;const GI=Ke.define({combine(M){let i=GN(M,{render:null,specialChars:WI,addSpecialChars:null});return(i.replaceTabs=!function(){var M;if(null==vI&&"undefined"!=typeof document&&document.body){let i=document.body.style;vI=null!=(null!==(M=i.tabSize)&&void 0!==M?M:i.MozTabSize)}return vI||!1}())&&(i.specialChars=new RegExp("\t|"+i.specialChars.source,fI)),i.addSpecialChars&&(i.specialChars=new RegExp(i.specialChars.source+"|"+i.addSpecialChars.source,fI)),i}});let PI=null;class RI extends TD{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")+" "+(VI[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 BI extends TD{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 FI=LD.line({class:"cm-activeLine"}),JI=uj.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(FI.range(N.from)),i=N.from)}return LD.set(t)}},{decorations:M=>M.decorations}),XI=2e3;function HI(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>XI?-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 $I(M,i){let t=HI(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 D=HI(M,i);if(!D)return e;let j=function(M,i,t){let e=Math.min(i.line,t.line),N=Math.max(i.line,t.line),s=[];if(i.off>XI||t.off>XI||i.col<0||t.col<0){let D=Math.min(i.off,t.off),j=Math.max(i.off,t.off);for(let i=e;i<=N;i++){let t=M.doc.line(i);t.length<=j&&s.push($e.range(t.from+D,t.to+j))}}else{let D=Math.min(i.col,t.col),j=Math.max(i.col,t.col);for(let i=e;i<=N;i++){let t=M.doc.line(i),e=Ds(t.text,D,M.tabSize,!0);if(e<0)s.push($e.cursor(t.to));else{let i=Ds(t.text,j,M.tabSize);s.push($e.range(t.from+e,t.from+i))}}}return s}(M.state,t,D);return j.length?s?$e.create(j.concat(e.ranges)):$e.create(j):e}}:null}const _I={Alt:[18,M=>!!M.altKey],Control:[17,M=>!!M.ctrlKey],Shift:[16,M=>!!M.shiftKey],Meta:[91,M=>!!M.metaKey]},qI={style:"cursor: crosshair"};const KI="-10000px";class Mg{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=[],D=i?[]:null;for(let t=0;t<N.length;t++){let e=N[t],j=-1;if(e){for(let M=0;M<this.tooltips.length;M++){let i=this.tooltips[M];i&&i.create==e.create&&(j=M)}if(j<0)s[t]=this.createTooltipView(e),D&&(D[t]=!!e.above);else{let e=s[t]=this.tooltipViews[j];D&&(D[t]=i[j]),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&&(D.forEach(((M,t)=>i[t]=M)),i.length=D.length),this.input=e,this.tooltips=N,this.tooltipViews=s,!0}}function ig(M){let{win:i}=M;return{top:0,left:0,bottom:i.innerHeight,right:i.innerWidth}}const tg=Ke.define({combine:M=>{var i,t,e;return{position:tD.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)||ig}}}),eg=new WeakMap,Ng=uj.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(tg);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 Mg(M,jg,(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(tg);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=KI,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(tD.gecko)e=M.offsetParent!=this.container.ownerDocument.body;else if(M.style.top==KI&&"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(tg).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,D=[];for(let j=0;j<this.manager.tooltips.length;j++){let u=this.manager.tooltips[j],I=this.manager.tooltipViews[j],{dom:g}=I,n=M.pos[j],l=M.size[j];if(!n||n.bottom<=Math.max(t.top,e.top)||n.top>=Math.min(t.bottom,e.bottom)||n.right<Math.max(t.left,e.left)-.1||n.left>Math.min(t.right,e.right)+.1){g.style.top=KI;continue}let r=u.arrow?I.dom.querySelector(".cm-tooltip-arrow"):null,o=r?7:0,c=l.right-l.left,a=null!==(i=eg.get(I))&&void 0!==i?i:l.bottom-l.top,T=I.offset||Dg,O=this.view.textDirection==ED.LTR,L=l.width>e.right-e.left?O?e.left:e.right-l.width:O?Math.min(n.left-(r?14:0)+T.x,e.right-c):Math.max(e.left,n.left-c+(r?14:0)-T.x),z=this.above[j];!u.strictSide&&(z?n.top-(l.bottom-l.top)-T.y<e.top:n.bottom+(l.bottom-l.top)+T.y>e.bottom)&&z==e.bottom-n.bottom>n.top-e.top&&(z=this.above[j]=!z);let y=(z?n.top-e.top:e.bottom-n.bottom)-o;if(y<a&&!1!==I.resize){if(y<this.view.defaultLineHeight){g.style.top=KI;continue}eg.set(I,a),g.style.height=(a=y)/s+"px"}else g.style.height&&(g.style.height="");let h=z?n.top-a-o-T.y:n.bottom+o+T.y,A=L+c;if(!0!==I.overlap)for(let M of D)M.left<A&&M.right>L&&M.top<h+a&&M.bottom>h&&(h=z?M.top-a-2-o:M.bottom+o+2);if("absolute"==this.position?(g.style.top=(h-M.parent.top)/s+"px",g.style.left=(L-M.parent.left)/N+"px"):(g.style.top=h/s+"px",g.style.left=L/N+"px"),r){let M=n.left+(O?T.x:-T.x)-(L+14-7);r.style.left=M/N+"px"}!0!==I.overlap&&D.push({left:L,top:h,right:A,bottom:h+a}),g.classList.toggle("cm-tooltip-above",z),g.classList.toggle("cm-tooltip-below",!z),I.positioned&&I.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=KI}},{eventObservers:{scroll(){this.maybeMeasure()}}}),sg=sI.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"}}}),Dg={x:0,y:0},jg=Ke.define({enables:[Ng,sg]}),ug=Ke.define();class Ig{static create(M){return new Ig(M)}constructor(M){this.view=M,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Mg(M,ug,(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 gg=jg.compute([ug],(M=>{let i=M.facet(ug).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:Ig.create,above:i[0].above,arrow:i.some((M=>M.arrow))}}));class ng{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 sD)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)),D=s&&s.dir==ED.RTL?-1:1;N=i.x<t.left?-D:D}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=>Nj(M.state,i,"hover tooltip")))}else s&&M.dispatch({effects:this.setHover.of(s)})}get tooltip(){let M=this.view.plugin(Ng),i=M?M.manager.tooltips.findIndex((M=>M.create==Ig.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-lg&&i.clientX<=t.right+lg&&i.clientY>=t.top-lg&&i.clientY<=t.bottom+lg}(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 D=M.scrollDOM.getBoundingClientRect(),j=M.documentTop+M.documentPadding.top+M.contentHeight;if(D.left>e||D.right<e||D.top>N||Math.min(D.bottom,j)<N)return!1;let u=M.posAtCoords({x:e,y:N},!1);return u>=i&&u<=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 lg=4;function rg(M,i={}){let t=QN.define(),e=DN.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(cg)&&(M=null);return M},provide:M=>ug.from(M)});return[e,uj.define((N=>new ng(N,M,e,t,i.hoverTime||300))),gg]}function og(M,i){let t=M.plugin(Ng);if(!t)return null;let e=t.manager.tooltips.indexOf(i);return e<0?null:t.manager.tooltipViews[e]}const cg=QN.define(),ag=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 Tg(M,i){let t=M.plugin(Og),e=t?t.specs.indexOf(i):-1;return e>-1?t.panels[e]:null}const Og=uj.fromClass(class{constructor(M){this.input=M.state.facet(yg),this.specs=this.input.filter((M=>M)),this.panels=this.specs.map((i=>i(M)));let i=M.state.facet(ag);this.top=new Lg(M,!0,i.topContainer),this.bottom=new Lg(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(ag);this.top.container!=i.topContainer&&(this.top.sync([]),this.top=new Lg(M.view,!0,i.topContainer)),this.bottom.container!=i.bottomContainer&&(this.bottom.sync([]),this.bottom=new Lg(M.view,!1,i.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=M.state.facet(yg);if(t!=this.input){let i=t.filter((M=>M)),e=[],N=[],s=[],D=[];for(let t of i){let i,j=this.specs.indexOf(t);j<0?(i=t(M.view),D.push(i)):(i=this.panels[j],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 D)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=>sI.scrollMargins.of((i=>{let t=i.plugin(M);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}}))});class Lg{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=zg(M);M=M.nextSibling}else this.dom.insertBefore(i.dom,M);for(;M;)M=zg(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 zg(M){let i=M.nextSibling;return M.remove(),i}const yg=Ke.define({enables:Og});class hg extends PN{compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}eq(M){return!1}destroy(M){}}hg.prototype.elementClass="",hg.prototype.toDOM=void 0,hg.prototype.mapMode=Ve.TrackBefore,hg.prototype.startSide=hg.prototype.endSide=-1,hg.prototype.point=!0;const Ag=Ke.define(),xg={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>JN.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},dg=Ke.define();function wg(M){return[Eg(),dg.of(Object.assign(Object.assign({},xg),M))]}const Sg=Ke.define({combine:M=>M.some((M=>M))});function Eg(M){let i=[Qg];return M&&!1===M.fixed&&i.push(Sg.of(!0)),i}const Qg=uj.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(dg).map((i=>new bg(M,i)));for(let M of this.gutters)this.dom.appendChild(M.dom);this.fixed=!M.state.facet(Sg),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(Sg)!=!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=JN.iter(this.view.state.facet(Ag),this.view.viewport.from),e=[],N=this.gutters.map((M=>new Ug(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==OD.Text&&i){Cg(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==OD.Text){Cg(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(dg),t=M.state.facet(dg),e=M.docChanged||M.heightChanged||M.viewportChanged||!JN.eq(M.startState.facet(Ag),M.state.facet(Ag),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 bg(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=>sI.scrollMargins.of((i=>{let t=i.plugin(M);return t&&0!=t.gutters.length&&t.fixed?i.textDirection==ED.LTR?{left:t.dom.offsetWidth*i.scaleX}:{right:t.dom.offsetWidth*i.scaleX}:null}))});function kg(M){return Array.isArray(M)?M:[M]}function Cg(M,i,t){for(;M.value&&M.from<=t;)M.from==t&&i.push(M.value),M.next()}class Ug{constructor(M,i,t){this.gutter=M,this.height=t,this.i=0,this.cursor=JN.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 pg(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=[];Cg(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 bg{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 D=M.lineBlockAtHeight(N-M.documentTop);i.domEventHandlers[t](M,D,e)&&e.preventDefault()}));this.markers=kg(i.markers(M)),i.initialSpacer&&(this.spacer=new pg(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=kg(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!JN.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 pg{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 D=s,j=N<i.length?i[N++]:null,u=!1;if(j){let M=j.elementClass;M&&(t+=" "+M);for(let M=s;M<this.markers.length;M++)if(this.markers[M].compare(j)){D=M,u=!0;break}}else D=this.markers.length;for(;s<D;){let M=this.markers[s++];if(M.toDOM){M.destroy(e);let i=e.nextSibling;e.remove(),e=i}}if(!j)break;j.toDOM&&(u?e=e.nextSibling:this.dom.insertBefore(j.toDOM(M),e)),u&&s++}this.dom.className=t,this.markers=i}destroy(){this.setMarkers(null,[])}}const Zg=Ke.define(),Yg=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 mg extends hg{constructor(M){super(),this.number=M}eq(M){return this.number==M.number}toDOM(){return document.createTextNode(this.number)}}function fg(M,i){return M.state.facet(Yg).formatNumber(i,M.state)}const Wg=dg.compute([Yg],(M=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:M=>M.state.facet(Zg),lineMarker:(M,i,t)=>t.some((M=>M.toDOM))?null:new mg(fg(M,M.state.doc.lineAt(i.from).number)),widgetMarker:()=>null,lineMarkerChange:M=>M.startState.facet(Yg)!=M.state.facet(Yg),initialSpacer:M=>new mg(fg(M,vg(M.state.doc.lines))),updateSpacer(M,i){let t=fg(i.view,vg(i.view.state.doc.lines));return t==M.number?M:new mg(t)},domEventHandlers:M.facet(Yg).domEventHandlers})));function Vg(M={}){return[Yg.of(M),Eg(),Wg]}function vg(M){let i=9;for(;i<M;)i=10*i+9;return i}const Gg=new class extends hg{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Pg=Ag.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(Gg.range(N)))}return JN.of(i)}));const Rg=1024;let Bg=0;class Fg{constructor(M,i){this.from=M,this.to=i}}class Jg{constructor(M={}){this.id=Bg++,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=$g.match(M)),i=>{let t=M(i);return void 0===t?null:[this,t]}}}Jg.closedBy=new Jg({deserialize:M=>M.split(" ")}),Jg.openedBy=new Jg({deserialize:M=>M.split(" ")}),Jg.group=new Jg({deserialize:M=>M.split(" ")}),Jg.isolate=new Jg({deserialize:M=>{if(M&&"rtl"!=M&&"ltr"!=M&&"auto"!=M)throw new RangeError("Invalid value for isolate: "+M);return M||"auto"}}),Jg.contextHash=new Jg({perNode:!0}),Jg.lookAhead=new Jg({perNode:!0}),Jg.mounted=new Jg({perNode:!0});class Xg{constructor(M,i,t){this.tree=M,this.overlay=i,this.parser=t}static get(M){return M&&M.props&&M.props[Jg.mounted.id]}}const Hg=Object.create(null);class $g{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):Hg,t=(M.top?1:0)|(M.skipped?2:0)|(M.error?4:0)|(null==M.name?8:0),e=new $g(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(Jg.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(Jg.group),e=-1;e<(t?t.length:0);e++){let N=i[e<0?M.name:t[e]];if(N)return N}}}}$g.none=new $g("",Object.create(null),0,8);class _g{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 $g(t.name,e,t.id,t.flags):t)}return new _g(i)}}const qg=new WeakMap,Kg=new WeakMap;var Mn;!function(M){M[M.ExcludeBuffers=1]="ExcludeBuffers",M[M.IncludeAnonymous=2]="IncludeAnonymous",M[M.IgnoreMounts=4]="IgnoreMounts",M[M.IgnoreOverlays=8]="IgnoreOverlays"}(Mn||(Mn={}));class tn{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=Xg.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 cn(this.topNode,M)}cursorAt(M,i=0,t=0){let e=qg.get(this)||this.topNode,N=new cn(e);return N.moveTo(M,i),qg.set(this,N._tree),N}get topNode(){return new un(this,0,0,null)}resolve(M,i=0){let t=Dn(qg.get(this)||this.topNode,M,i,!1);return qg.set(this,t),t}resolveInner(M,i=0){let t=Dn(Kg.get(this)||this.topNode,M,i,!0);return Kg.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 un?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=Xg.get(M.tree);if(s&&s.overlay&&s.overlay[0].from<=i&&s.overlay[s.overlay.length-1].to>=i){let D=new un(s.tree,s.overlay[0].from+M.from,-1,M);(N||(N=[e])).push(Dn(D,i,t,!1))}}return N?rn(N):e}(this,M,i)}iterate(M){let{enter:i,leave:t,from:e=0,to:N=this.length}=M,s=M.mode||0,D=(s&Mn.IncludeAnonymous)>0;for(let M=this.cursor(s|Mn.IncludeAnonymous);;){let s=!1;if(M.from<=N&&M.to>=e&&(!D&&M.type.isAnonymous||!1!==i(M))){if(M.firstChild())continue;s=!0}for(;s&&t&&(D||!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:Ln($g.none,this.children,this.positions,0,this.children.length,0,this.length,((M,i,t)=>new tn(this.type,M,i,t,this.propValues)),M.makeTree||((M,i,t)=>new tn($g.none,M,i,t)))}static build(M){return function(M){var i;let{buffer:t,nodeSet:e,maxBufferLength:N=Rg,reused:s=[],minRepeatType:D=e.types.length}=M,j=Array.isArray(t)?new en(t,t.length):t,u=e.types,I=0,g=0;function n(M,i,t,O,L,z){let{id:y,start:h,end:A,size:x}=j,d=g;for(;x<0;){if(j.next(),-1==x){let i=s[y];return t.push(i),void O.push(h-M)}if(-3==x)return void(I=y);if(-4==x)return void(g=y);throw new RangeError(`Unrecognized record size: ${x}`)}let w,S,E=u[y],Q=h-M;if(A-h<=N&&(S=a(j.pos-i,L))){let i=new Uint16Array(S.size-S.skip),t=j.pos-S.size,N=i.length;for(;j.pos>t;)N=T(S.start,i,N);w=new Nn(i,A-S.start,e),Q=S.start-M}else{let M=j.pos-x;j.next();let i=[],t=[],e=y>=D?y:-1,s=0,u=A;for(;j.pos>M;)e>=0&&j.id==e&&j.size>=0?(j.end<=u-N&&(o(i,t,h,s,j.end,u,e,d),s=i.length,u=j.end),j.next()):z>2500?l(h,M,i,t):n(h,M,i,t,e,z+1);if(e>=0&&s>0&&s<i.length&&o(i,t,h,s,h,u,e,d),i.reverse(),t.reverse(),e>-1&&s>0){let M=r(E);w=Ln(E,i,t,0,i.length,0,A-h,M,M)}else w=c(E,i,t,A-h,d-A)}t.push(w),O.push(Q)}function l(M,i,t,s){let D=[],u=0,I=-1;for(;j.pos>i;){let{id:M,start:i,end:t,size:e}=j;if(e>4)j.next();else{if(I>-1&&i<I)break;I<0&&(I=t-N),D.push(M,i,t),u++,j.next()}}if(u){let i=new Uint16Array(4*u),N=D[D.length-2];for(let M=D.length-3,t=0;M>=0;M-=3)i[t++]=D[M],i[t++]=D[M+1]-N,i[t++]=D[M+2]-N,i[t++]=t;t.push(new Nn(i,D[2]-N,e)),s.push(N-M)}}function r(M){return(i,t,e)=>{let N,s,D=0,j=i.length-1;if(j>=0&&(N=i[j])instanceof tn){if(!j&&N.type==M&&N.length==e)return N;(s=N.prop(Jg.lookAhead))&&(D=t[j]+N.length+s)}return c(M,i,t,e,D)}}function o(M,i,t,N,s,D,j,u){let I=[],g=[];for(;M.length>N;)I.push(M.pop()),g.push(i.pop()+t-s);M.push(c(e.types[j],I,g,D-s,u-D)),i.push(s-t)}function c(M,i,t,e,N=0,s){if(I){let M=[Jg.contextHash,I];s=s?[M].concat(s):[M]}if(N>25){let M=[Jg.lookAhead,N];s=s?[M].concat(s):[M]}return new tn(M,i,t,e,s)}function a(M,i){let t=j.fork(),e=0,s=0,u=0,I=t.end-N,g={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){g.size=e,g.start=s,g.skip=u,u+=4,e+=4,t.next();continue}let j=t.pos-M;if(M<0||j<N||t.start<I)break;let n=t.id>=D?4:0,l=t.start;for(t.next();t.pos>j;){if(t.size<0){if(-3!=t.size)break M;n+=4}else t.id>=D&&(n+=4);t.next()}s=l,e+=M,u+=n}return(i<0||e==M)&&(g.size=e,g.start=s,g.skip=u),g.size>4?g:void 0}function T(M,i,t){let{id:e,start:N,end:s,size:u}=j;if(j.next(),u>=0&&e<D){let D=t;if(u>4){let e=j.pos-(u-4);for(;j.pos>e;)t=T(M,i,t)}i[--t]=D,i[--t]=s-M,i[--t]=N-M,i[--t]=e}else-3==u?I=e:-4==u&&(g=e);return t}let O=[],L=[];for(;j.pos>0;)n(M.start||0,M.bufferStart||0,O,L,-1,0);let z=null!==(i=M.length)&&void 0!==i?i:O.length?L[0]+O[0].length:0;return new tn(u[M.topID],O.reverse(),L.reverse(),z)}(M)}}tn.empty=new tn($g.none,[],[],0);class en{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 en(this.buffer,this.index)}}class Nn{constructor(M,i,t){this.buffer=M,this.length=i,this.set=t}get type(){return $g.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,D=-1;for(let j=M;j!=i&&!(sn(N,e,s[j+1],s[j+2])&&(D=j,t>0));j=s[j+3]);return D}slice(M,i,t){let e=this.buffer,N=new Uint16Array(i-M),s=0;for(let D=M,j=0;D<i;){N[j++]=e[D++],N[j++]=e[D++]-t;let i=N[j++]=e[D++]-t;N[j++]=e[D++]-M,s=Math.max(s,i)}return new Nn(N,s,this.set)}}function sn(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 Dn(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 un&&M.index<0?null:M.parent;if(!i)return M;M=i}let s=e?0:Mn.IgnoreOverlays;if(e)for(let e=M,D=e.parent;D;e=D,D=e.parent)e instanceof un&&e.index<0&&(null===(N=D.enter(i,t,s))||void 0===N?void 0:N.from)!=e.from&&(M=D);for(;;){let e=M.enter(i,t,s);if(!e)return M;M=e}}class jn{cursor(M=0){return new cn(this,M)}getChild(M,i=null,t=null){let e=In(this,M,i,t);return e.length?e[0]:null}getChildren(M,i=null,t=null){return In(this,M,i,t)}resolve(M,i=0){return Dn(this,M,i,!1)}resolveInner(M,i=0){return Dn(this,M,i,!0)}matchContext(M){return gn(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 un extends jn{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:D,positions:j}=s._tree,u=i>0?D.length:-1;M!=u;M+=i){let u=D[M],I=j[M]+s.from;if(sn(e,t,I,I+u.length))if(u instanceof Nn){if(N&Mn.ExcludeBuffers)continue;let D=u.findChild(0,u.buffer.length,i,t-I,e);if(D>-1)return new ln(new nn(s,u,M,I),null,D)}else if(N&Mn.IncludeAnonymous||!u.type.isAnonymous||an(u)){let D;if(!(N&Mn.IgnoreMounts)&&(D=Xg.get(u))&&!D.overlay)return new un(D.tree,I,M,s);let j=new un(u,I,M,s);return N&Mn.IncludeAnonymous||!j.type.isAnonymous?j:j.nextChild(i<0?u.children.length-1:0,i,t,e)}}if(N&Mn.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&Mn.IgnoreOverlays)&&(e=Xg.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 un(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 In(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 gn(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 nn{constructor(M,i,t,e){this.parent=M,this.buffer=i,this.index=t,this.start=e}}class ln extends jn{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 ln(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&Mn.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 ln(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 ln(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 ln(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 tn(this.type,M,i,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function rn(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 un&&t.index<0?null:t.parent,N=M.slice();return e?N[i]=e:N.splice(i,1),new on(N,t)}class on{constructor(M,i){this.heads=M,this.node=i}get next(){return rn(this.heads)}}class cn{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 un)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 un?(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&Mn.ExcludeBuffers)&&this.enterChild(1,M,i):this.yield(this._tree.enter(M,i,t))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Mn.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let M=this.mode&Mn.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&Mn.IncludeAnonymous||M instanceof Nn||!M.type.isAnonymous||an(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 ln(this.buffer,i,this.stack[M]);return this.bufferNode=new ln(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 gn(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 gn(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 an(M){return M.children.some((M=>M instanceof Nn||!M.type.isAnonymous||an(M)))}const Tn=new WeakMap;function On(M,i){if(!M.isAnonymous||i instanceof Nn||i.type!=M)return 1;let t=Tn.get(i);if(null==t){t=1;for(let e of i.children){if(e.type!=M||!(e instanceof tn)){t=1;break}t+=On(M,e)}Tn.set(i,t)}return t}function Ln(M,i,t,e,N,s,D,j,u){let I=0;for(let t=e;t<N;t++)I+=On(M,i[t]);let g=Math.ceil(1.5*I/8),n=[],l=[];return function i(t,e,N,D,j){for(let I=N;I<D;){let N=I,r=e[I],o=On(M,t[I]);for(I++;I<D;I++){let i=On(M,t[I]);if(o+i>=g)break;o+=i}if(I==N+1){if(o>g){let M=t[N];i(M.children,M.positions,0,M.children.length,e[N]+j);continue}n.push(t[N])}else{let i=e[I-1]+t[I-1].length-r;n.push(Ln(M,t,e,N,I,r,i,null,u))}l.push(r+j-s)}}(i,t,e,N,0),(j||u)(n,l,D)}class zn{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 ln?this.setBuffer(M.context.buffer,M.index,i):M instanceof un&&this.map.set(M.tree,i)}get(M){return M instanceof ln?this.getBuffer(M.context.buffer,M.index):M instanceof un?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 yn{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 yn(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 D=0,j=0,u=0;;D++){let I=D<i.length?i[D]:null,g=I?I.fromA:1e9;if(g-j>=t)for(;s&&s.from<g;){let i=s;if(j>=i.from||g<=i.to||u){let M=Math.max(i.from,j)-u,t=Math.min(i.to,g)-u;i=M>=t?null:new yn(M,t,i.tree,i.offset+u,D>0,!!I)}if(i&&e.push(i),s.to>g)break;s=N<M.length?M[N++]:null}if(!I)break;j=I.toA,u=I.toA-I.toB}return e}}class hn{startParse(M,i,t){return"string"==typeof M&&(M=new An(M)),t=t?t.length?t.map((M=>new Fg(M.from,M.to))):[new Fg(0,0)]:[new Fg(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 An{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 Jg({perNode:!0});let xn=0;class dn{constructor(M,i,t){this.set=M,this.base=i,this.modified=t,this.id=xn++}static define(M){if(null==M?void 0:M.base)throw new Error("Can not derive from a modified tag");let i=new dn([],null,[]);if(i.set.push(i),M)for(let t of M.set)i.set.push(t);return i}static defineModifier(){let M=new Sn;return i=>i.modified.indexOf(M)>-1?i:Sn.get(i.base||i,i.modified.concat(M).sort(((M,i)=>M.id-i.id)))}}let wn=0;class Sn{constructor(){this.instances=[],this.id=wn++}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 dn(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(Sn.get(i,M));return N}}function En(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 D=M[i++];if(i==M.length&&"!"==D){N=0;break}if("/"!=D)throw new RangeError("Invalid path: "+M);s=M.slice(i)}let D=t.length-1,j=t[D];if(!j)throw new RangeError("Invalid path: "+M);let u=new kn(e,N,D>0?t.slice(0,D):null);i[j]=u.sort(i[j])}}return Qn.add(i)}const Qn=new Jg;class kn{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 Cn(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 Un(M,i,t,e=0,N=M.length){let s=new bn(e,Array.isArray(i)?i:[i],t);s.highlightRange(M.cursor(),e,N,"",s.highlighters),s.flush(N)}kn.empty=new kn([],2,null);class bn{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:D,to:j}=M;if(D>=t||j<=i)return;s.isTop&&(N=this.highlighters.filter((M=>!M.scope||M.scope(s))));let u=e,I=function(M){let i=M.type.prop(Qn);for(;i&&i.context&&!M.matchContext(i.context);)i=i.next;return i||null}(M)||kn.empty,g=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,I.tags);if(g&&(u&&(u+=" "),u+=g,1==I.mode&&(e+=(e?" ":"")+g)),this.startSpan(Math.max(i,D),u),I.opaque)return;let n=M.tree&&M.tree.prop(Jg.mounted);if(n&&n.overlay){let s=M.node.enter(n.overlay[0].from+D,1),I=this.highlighters.filter((M=>!M.scope||M.scope(n.tree.type))),g=M.firstChild();for(let l=0,r=D;;l++){let o=l<n.overlay.length?n.overlay[l]:null,c=o?o.from+D:j,a=Math.max(i,r),T=Math.min(t,c);if(a<T&&g)for(;M.from<T&&(this.highlightRange(M,a,T,e,N),this.startSpan(Math.min(T,M.to),u),!(M.to>=c)&&M.nextSibling()););if(!o||c>t)break;r=o.to+D,r>i&&(this.highlightRange(s.cursor(),Math.max(i,o.from+D),Math.min(t,r),"",I),this.startSpan(Math.min(t,r),u))}g&&M.parent()}else if(M.firstChild()){n&&(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),u)}}while(M.nextSibling());M.parent()}}}const pn=dn.define,Zn=pn(),Yn=pn(),mn=pn(Yn),fn=pn(Yn),Wn=pn(),Vn=pn(Wn),vn=pn(Wn),Gn=pn(),Pn=pn(Gn),Rn=pn(),Bn=pn(),Fn=pn(),Jn=pn(Fn),Xn=pn(),Hn={comment:Zn,lineComment:pn(Zn),blockComment:pn(Zn),docComment:pn(Zn),name:Yn,variableName:pn(Yn),typeName:mn,tagName:pn(mn),propertyName:fn,attributeName:pn(fn),className:pn(Yn),labelName:pn(Yn),namespace:pn(Yn),macroName:pn(Yn),literal:Wn,string:Vn,docString:pn(Vn),character:pn(Vn),attributeValue:pn(Vn),number:vn,integer:pn(vn),float:pn(vn),bool:pn(Wn),regexp:pn(Wn),escape:pn(Wn),color:pn(Wn),url:pn(Wn),keyword:Rn,self:pn(Rn),null:pn(Rn),atom:pn(Rn),unit:pn(Rn),modifier:pn(Rn),operatorKeyword:pn(Rn),controlKeyword:pn(Rn),definitionKeyword:pn(Rn),moduleKeyword:pn(Rn),operator:Bn,derefOperator:pn(Bn),arithmeticOperator:pn(Bn),logicOperator:pn(Bn),bitwiseOperator:pn(Bn),compareOperator:pn(Bn),updateOperator:pn(Bn),definitionOperator:pn(Bn),typeOperator:pn(Bn),controlOperator:pn(Bn),punctuation:Fn,separator:pn(Fn),bracket:Jn,angleBracket:pn(Jn),squareBracket:pn(Jn),paren:pn(Jn),brace:pn(Jn),content:Gn,heading:Pn,heading1:pn(Pn),heading2:pn(Pn),heading3:pn(Pn),heading4:pn(Pn),heading5:pn(Pn),heading6:pn(Pn),contentSeparator:pn(Gn),list:pn(Gn),quote:pn(Gn),emphasis:pn(Gn),strong:pn(Gn),link:pn(Gn),monospace:pn(Gn),strikethrough:pn(Gn),inserted:pn(),deleted:pn(),changed:pn(),invalid:pn(),meta:Xn,documentMeta:pn(Xn),annotation:pn(Xn),processingInstruction:pn(Xn),definition:dn.defineModifier(),constant:dn.defineModifier(),function:dn.defineModifier(),standard:dn.defineModifier(),local:dn.defineModifier(),special:dn.defineModifier()};var $n;Cn([{tag:Hn.link,class:"tok-link"},{tag:Hn.heading,class:"tok-heading"},{tag:Hn.emphasis,class:"tok-emphasis"},{tag:Hn.strong,class:"tok-strong"},{tag:Hn.keyword,class:"tok-keyword"},{tag:Hn.atom,class:"tok-atom"},{tag:Hn.bool,class:"tok-bool"},{tag:Hn.url,class:"tok-url"},{tag:Hn.labelName,class:"tok-labelName"},{tag:Hn.inserted,class:"tok-inserted"},{tag:Hn.deleted,class:"tok-deleted"},{tag:Hn.literal,class:"tok-literal"},{tag:Hn.string,class:"tok-string"},{tag:Hn.number,class:"tok-number"},{tag:[Hn.regexp,Hn.escape,Hn.special(Hn.string)],class:"tok-string2"},{tag:Hn.variableName,class:"tok-variableName"},{tag:Hn.local(Hn.variableName),class:"tok-variableName tok-local"},{tag:Hn.definition(Hn.variableName),class:"tok-variableName tok-definition"},{tag:Hn.special(Hn.variableName),class:"tok-variableName2"},{tag:Hn.definition(Hn.propertyName),class:"tok-propertyName tok-definition"},{tag:Hn.typeName,class:"tok-typeName"},{tag:Hn.namespace,class:"tok-namespace"},{tag:Hn.className,class:"tok-className"},{tag:Hn.macroName,class:"tok-macroName"},{tag:Hn.propertyName,class:"tok-propertyName"},{tag:Hn.operator,class:"tok-operator"},{tag:Hn.comment,class:"tok-comment"},{tag:Hn.meta,class:"tok-meta"},{tag:Hn.invalid,class:"tok-invalid"},{tag:Hn.punctuation,class:"tok-punctuation"}]);const _n=new Jg;function qn(M){return Ke.define({combine:M?i=>i.concat(M):void 0})}const Kn=new Jg;class Ml{constructor(M,i,t=[],e=""){this.data=M,this.name=e,vN.prototype.hasOwnProperty("tree")||Object.defineProperty(vN.prototype,"tree",{get(){return el(this)}}),this.parser=i,this.extension=[ll.of(this),vN.languageData.of(((M,i,t)=>{let e=il(M,i,t),N=e.type.prop(_n);if(!N)return[];let s=M.facet(N),D=e.type.prop(Kn);if(D){let N=e.resolve(i-e.from,t);for(let i of D)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 il(M,i,t).type.prop(_n)==this.data}findRegions(M){let i=M.facet(ll);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(_n)==this.data)return void t.push({from:i,to:i+M.length});let N=M.prop(Jg.mounted);if(N){if(N.tree.prop(_n)==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 tn&&e(N,M.positions[t]+i)}};return e(el(M),0),t}get allowsNesting(){return!0}}function il(M,i,t){let e=M.facet(ll),N=el(M).topNode;if(!e||e.allowsNesting)for(let M=N;M;M=M.enter(i,t,Mn.ExcludeBuffers))M.type.isTop&&(N=M);return N}Ml.setState=QN.define();class tl extends Ml{constructor(M,i,t){super(M,i,[],t),this.parser=i}static define(M){let i=qn(M.languageData);return new tl(i,M.parser.configure({props:[_n.add((M=>M.isTop?i:void 0))]}),M.name)}configure(M,i){return new tl(this.data,this.parser.configure(M),i||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function el(M){let i=M.field(Ml.state,!1);return i?i.tree:tn.empty}class Nl{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 sl=null;class Dl{constructor(M,i,t=[],e,N,s,D,j){this.parser=M,this.state=i,this.fragments=t,this.tree=e,this.treeLen=N,this.viewport=s,this.skipped=D,this.scheduleOn=j,this.parse=null,this.tempSkipped=[]}static create(M,i,t){return new Dl(M,i,[],tn.empty,0,t,[],null)}startParse(){return this.parser.startParse(new Nl(this.state.doc),this.fragments)}work(M,i){return null!=i&&i>=this.state.doc.length&&(i=void 0),this.tree!=tn.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(yn.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(yn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(M){let i=sl;sl=this;try{return M()}finally{sl=i}}withoutTempSkipped(M){for(let i;i=this.tempSkipped.pop();)M=jl(M,i.from,i.to);return M}changes(M,i){let{fragments:t,tree:e,treeLen:N,viewport:s,skipped:D}=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=yn.applyChanges(t,i),e=tn.empty,N=0,s={from:M.mapPos(s.from,-1),to:M.mapPos(s.to,1)},this.skipped.length){D=[];for(let i of this.skipped){let t=M.mapPos(i.from,1),e=M.mapPos(i.to,-1);t<e&&D.push({from:t,to:e})}}}return new Dl(this.parser,i,t,e,N,s,D,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=jl(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 hn{createParse(i,t,e){let N=e[0].from,s=e[e.length-1].to,D={parsedPos:N,advance(){let i=sl;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 tn($g.none,[],[],s-N)},stoppedAt:null,stopAt(){}};return D}}}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 sl}}function jl(M,i,t){return yn.applyChanges(M,[{fromA:i,toA:t,fromB:i,toB:t}])}class ul{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 ul(i)}static init(M){let i=Math.min(3e3,M.doc.length),t=Dl.create(M.facet(ll).parser,M,{from:0,to:i});return t.work(20,i)||t.takeTree(),new ul(t)}}Ml.state=DN.define({create:ul.init,update(M,i){for(let M of i.effects)if(M.is(Ml.setState))return M.value;return i.startState.facet(ll)!=i.state.facet(ll)?ul.init(i.state):M.apply(i)}});let Il=M=>{let i=setTimeout((()=>M()),500);return()=>clearTimeout(i)};"undefined"!=typeof requestIdleCallback&&(Il=M=>{let i=-1,t=setTimeout((()=>{i=requestIdleCallback(M,{timeout:400})}),100);return()=>i<0?clearTimeout(t):cancelIdleCallback(i)});const gl="undefined"!=typeof navigator&&(null===($n=navigator.scheduling)||void 0===$n?void 0:$n.isInputPending)?()=>navigator.scheduling.isInputPending():null,nl=uj.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(Ml.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(Ml.state);i.tree==i.context.tree&&i.context.isDone(M.doc.length)||(this.working=Il(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(Ml.state);if(N.tree==N.context.tree&&N.context.isDone(e+1e5))return;let s=Date.now()+Math.min(this.chunkBudget,100,M&&!gl?Math.max(25,M.timeRemaining()-5):1e9),D=N.context.treeLen<e&&t.doc.length>e+1e3,j=N.context.work((()=>gl&&gl()||Date.now()>s),e+(D?0:1e5));this.chunkBudget-=Date.now()-i,(j||this.chunkBudget<=0)&&(N.context.takeTree(),this.view.dispatch({effects:Ml.setState.of(new ul(N.context))})),this.chunkBudget>0&&(!j||D)&&this.scheduleWork(),this.checkAsyncSchedule(N.context)}checkAsyncSchedule(M){M.scheduleOn&&(this.workScheduled++,M.scheduleOn.then((()=>this.scheduleWork())).catch((M=>Nj(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()}}}),ll=Ke.define({combine:M=>M.length?M[0]:null,enables:M=>[Ml.state,nl,sI.contentAttributes.compute([M],(i=>{let t=i.facet(M);return t&&t.name?{"data-language":t.name}:{}}))]});class rl{constructor(M,i=[]){this.language=M,this.support=i,this.extension=[M,i]}}const ol=Ke.define(),cl=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 al(M){let i=M.facet(cl);return 9==i.charCodeAt(0)?M.tabSize*i.length:i.length}function Tl(M,i){let t="",e=M.tabSize,N=M.facet(cl)[0];if("\t"==N){for(;i>=e;)t+="\t",i-=e;N=" "}for(let M=0;M<i;M++)t+=N;return t}function Ol(M,i){M instanceof vN&&(M=new Ll(M));for(let t of M.state.facet(ol)){let e=t(M,i);if(void 0!==e)return e}let t=el(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 yl(e,M,t)}(M,t,i):null}class Ll{constructor(M,i={}){this.state=M,this.options=i,this.unit=al(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 zl=new Jg;function yl(M,i,t){for(let e=M;e;e=e.next){let M=hl(e.node);if(M)return M(xl.create(i,t,e))}return 0}function hl(M){let i=M.type.prop(zl);if(i)return i;let t,e=M.firstChild;if(e&&(t=e.type.prop(Jg.closedBy))){let i=M.lastChild,e=i&&t.indexOf(i.name)>-1;return M=>Sl(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?Al:null}function Al(){return 0}class xl extends Ll{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 xl(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(dl(t,M))break;i=this.state.doc.lineAt(t.from)}return this.lineIndent(i.from)}continue(){return yl(this.context.next,this.base,this.pos)}}function dl(M,i){for(let t=i;t;t=t.parent)if(M==t)return!0;return!1}function wl({closing:M,align:i=!0,units:t=1}){return e=>Sl(e,i,t,M)}function Sl(M,i,t,e,N){let s=M.textAfter,D=s.match(/^\s*/)[0].length,j=e&&s.slice(D,D+e.length)==e||N==M.pos+D,u=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),D=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<D?t:null;M=N.to}}(M):null;return u?j?M.column(u.from):M.column(u.to):M.baseIndent+(j?0:M.unit*t)}function El({except:M,units:i=1}={}){return t=>{let e=M&&M.test(t.textAfter);return t.baseIndent+(e?0:i*t.unit)}}const Ql=Ke.define(),kl=new Jg;function Cl(M){let i=M.lastChild;return i&&i.to==M.to&&i.type.isError}function Ul(M,i,t){for(let e of M.facet(Ql)){let N=e(M,i,t);if(N)return N}return function(M,i,t){let e=el(M);if(e.length<t)return null;let N=null;for(let s=e.resolveStack(t,1);s;s=s.next){let D=s.node;if(D.to<=t||D.from>t)continue;if(N&&D.from<i)break;let j=D.type.prop(kl);if(j&&(D.to<e.length-50||e.length==M.doc.length||!Cl(D))){let e=j(D,M);e&&e.from<=t&&e.from>=i&&e.to>t&&(N=e)}}return N}(M,i,t)}function bl(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 pl=QN.define({map:bl}),Zl=QN.define({map:bl});function Yl(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 ml=DN.define({create:()=>LD.none,update(M,i){M=M.map(i.changes);for(let t of i.effects)if(t.is(pl)&&!Wl(M,t.value.from,t.value.to)){let{preparePlaceholder:e}=i.state.facet(Rl),N=e?LD.replace({widget:new Xl(e(i.state,t.value))}):Jl;M=M.update({add:[N.range(t.value.from,t.value.to)]})}else t.is(Zl)&&(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=>sI.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(Jl.range(e,N))}return LD.set(i,!0)}});function fl(M,i,t){var e;let N=null;return null===(e=M.field(ml,!1))||void 0===e||e.between(i,t,((M,i)=>{(!N||N.from>M)&&(N={from:M,to:i})})),N}function Wl(M,i,t){let e=!1;return M.between(i,i,((M,N)=>{M==i&&N==t&&(e=!0)})),e}function Vl(M,i){return M.field(ml,!1)?i:i.concat(QN.appendConfig.of(Bl()))}function vl(M,i,t=!0){let e=M.state.doc.lineAt(i.from).number,N=M.state.doc.lineAt(i.to).number;return sI.announce.of(`${M.state.phrase(t?"Folded lines":"Unfolded lines")} ${e} ${M.state.phrase("to")} ${N}.`)}const Gl=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:M=>{for(let i of Yl(M)){let t=Ul(M.state,i.from,i.to);if(t)return M.dispatch({effects:Vl(M.state,[pl.of(t),vl(M,t)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:M=>{if(!M.state.field(ml,!1))return!1;let i=[];for(let t of Yl(M)){let e=fl(M.state,t.from,t.to);e&&i.push(Zl.of(e),vl(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=Ul(i,N.from,N.to);s&&t.push(pl.of(s)),e=(s?M.lineBlockAt(s.to):N).to+1}return t.length&&M.dispatch({effects:Vl(M.state,t)}),!!t.length}},{key:"Ctrl-Alt-]",run:M=>{let i=M.state.field(ml,!1);if(!i||!i.size)return!1;let t=[];return i.between(0,M.state.doc.length,((M,i)=>{t.push(Zl.of({from:M,to:i}))})),M.dispatch({effects:t}),!0}}],Pl={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Rl=Ke.define({combine:M=>GN(M,Pl)});function Bl(M){let i=[ml,_l];return M&&i.push(Rl.of(M)),i}function Fl(M,i){let{state:t}=M,e=t.facet(Rl),N=i=>{let t=M.lineBlockAt(M.posAtDOM(i.target)),e=fl(M.state,t.from,t.to);e&&M.dispatch({effects:Zl.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 Jl=LD.replace({widget:new class extends TD{toDOM(M){return Fl(M,null)}}});class Xl extends TD{constructor(M){super(),this.value=M}eq(M){return this.value==M.value}toDOM(M){return Fl(M,this.value)}}const Hl={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class $l extends hg{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 _l=sI.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 ql{constructor(M,i){let t;function e(M){let i=gs.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 Ml?M=>M.prop(_n)==s.data:s?M=>M==s:void 0,this.style=Cn(M.map((M=>({tag:M.tag,class:M.class||e(Object.assign({},M,{tag:null}))}))),{all:N}).style,this.module=t?new gs(t):null,this.themeType=i.themeType}static define(M,i){return new ql(M,i||{})}}const Kl=Ke.define(),Mr=Ke.define({combine:M=>M.length?[M[0]]:null});function ir(M){let i=M.facet(Kl);return i.length?i:M.facet(Mr)}class tr{constructor(M){this.markCache=Object.create(null),this.tree=el(M.state),this.decorations=this.buildDeco(M,ir(M.state))}update(M){let i=el(M.state),t=ir(M.state),e=t!=ir(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 LD.none;let t=new XN;for(let{from:e,to:N}of M.visibleRanges)Un(this.tree,i,((M,i,e)=>{t.add(M,i,this.markCache[e]||(this.markCache[e]=LD.mark({class:e})))}),e,N);return t.finish()}}const er=lN.high(uj.fromClass(tr,{decorations:M=>M.decorations})),Nr=ql.define([{tag:Hn.meta,color:"#404740"},{tag:Hn.link,textDecoration:"underline"},{tag:Hn.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Hn.emphasis,fontStyle:"italic"},{tag:Hn.strong,fontWeight:"bold"},{tag:Hn.strikethrough,textDecoration:"line-through"},{tag:Hn.keyword,color:"#708"},{tag:[Hn.atom,Hn.bool,Hn.url,Hn.contentSeparator,Hn.labelName],color:"#219"},{tag:[Hn.literal,Hn.inserted],color:"#164"},{tag:[Hn.string,Hn.deleted],color:"#a11"},{tag:[Hn.regexp,Hn.escape,Hn.special(Hn.string)],color:"#e40"},{tag:Hn.definition(Hn.variableName),color:"#00f"},{tag:Hn.local(Hn.variableName),color:"#30a"},{tag:[Hn.typeName,Hn.namespace],color:"#085"},{tag:Hn.className,color:"#167"},{tag:[Hn.special(Hn.variableName),Hn.macroName],color:"#256"},{tag:Hn.definition(Hn.propertyName),color:"#00c"},{tag:Hn.comment,color:"#940"},{tag:Hn.invalid,color:"#f00"}]),sr=sI.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Dr=1e4,jr="()[]{}",ur=Ke.define({combine:M=>GN(M,{afterCursor:!0,brackets:jr,maxScanDistance:Dr,renderMatch:nr})}),Ir=LD.mark({class:"cm-matchingBracket"}),gr=LD.mark({class:"cm-nonmatchingBracket"});function nr(M){let i=[],t=M.matched?Ir:gr;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 lr=DN.define({create:()=>LD.none,update(M,i){if(!i.docChanged&&!i.selection)return M;let t=[],e=i.state.facet(ur);for(let M of i.state.selection.ranges){if(!M.empty)continue;let N=Tr(i.state,M.head,-1,e)||M.head>0&&Tr(i.state,M.head-1,1,e)||e.afterCursor&&(Tr(i.state,M.head,1,e)||M.head<i.state.doc.length&&Tr(i.state,M.head+1,-1,e));N&&(t=t.concat(e.renderMatch(N,i.state)))}return LD.set(t,!0)},provide:M=>sI.decorations.from(M)}),rr=[lr,sr];const or=new Jg;function cr(M,i,t){let e=M.prop(i<0?Jg.openedBy:Jg.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 ar(M){let i=M.type.prop(or);return i?i(M.node):M}function Tr(M,i,t,e={}){let N=e.maxScanDistance||Dr,s=e.brackets||jr,D=el(M),j=D.resolveInner(i,t);for(let e=j;e;e=e.parent){let N=cr(e.type,t,s);if(N&&e.from<e.to){let D=ar(e);if(D&&(t>0?i>=D.from&&i<D.to:i>D.from&&i<=D.to))return Or(M,i,t,e,D,N,s)}}return function(M,i,t,e,N,s,D){let j=t<0?M.sliceDoc(i-1,i):M.sliceDoc(i,i+1),u=D.indexOf(j);if(u<0||u%2==0!=t>0)return null;let I={from:t<0?i-1:i,to:t>0?i+1:i},g=M.doc.iterRange(i,t>0?M.doc.length:0),n=0;for(let M=0;!g.next().done&&M<=s;){let s=g.value;t<0&&(M+=s.length);let j=i+M*t;for(let M=t>0?0:s.length-1,i=t>0?s.length:-1;M!=i;M+=t){let i=D.indexOf(s[M]);if(!(i<0||e.resolveInner(j+M,1).type!=N))if(i%2==0==t>0)n++;else{if(1==n)return{start:I,end:{from:j+M,to:j+M+1},matched:i>>1==u>>1};n--}}t>0&&(M+=s.length)}return g.done?{start:I,matched:!1}:null}(M,i,t,D,j.type,N,s)}function Or(M,i,t,e,N,s,D){let j=e.parent,u={from:N.from,to:N.to},I=0,g=null==j?void 0:j.cursor();if(g&&(t<0?g.childBefore(e.from):g.childAfter(e.to)))do{if(t<0?g.to<=e.from:g.from>=e.to){if(0==I&&s.indexOf(g.type.name)>-1&&g.from<g.to){let M=ar(g);return{start:u,end:M?{from:M.from,to:M.to}:void 0,matched:!0}}if(cr(g.type,t,D))I++;else if(cr(g.type,-t,D)){if(0==I){let M=ar(g);return{start:u,end:M&&M.from<M.to?{from:M.from,to:M.to}:void 0,matched:!1}}I--}}}while(t<0?g.prevSibling():g.nextSibling());return{start:u,matched:!1}}const Lr=Object.create(null),zr=[$g.none],yr=[],hr=Object.create(null),Ar=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"]])Ar[M]=dr(Lr,i);function xr(M,i){yr.indexOf(M)>-1||(yr.push(M),console.warn(i))}function dr(M,i){let t=[];for(let e of i.split(" ")){let i=[];for(let t of e.split(".")){let e=M[t]||Hn[t];e?"function"==typeof e?i.length?i=i.map(e):xr(t,`Modifier ${t} used at start of tag`):i.length?xr(t,`Tag ${t} used as modifier`):i=Array.isArray(e)?e:[e]:xr(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=hr[N];if(s)return s.id;let D=hr[N]=$g.define({id:zr.length,name:e,props:[En({[e]:t})]});return zr.push(D),D.id}ED.RTL,ED.LTR;function wr(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 Sr=wr(br,0),Er=wr(Ur,0),Qr=wr(((M,i)=>Ur(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 kr(M,i){let t=M.languageDataAt("commentTokens",i);return t.length?t[0]:{}}const Cr=50;function Ur(M,i,t=i.selection.ranges){let e=t.map((M=>kr(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,D,j=M.sliceDoc(e-Cr,e),u=M.sliceDoc(N,N+Cr),I=/\s*$/.exec(j)[0].length,g=/^\s*/.exec(u)[0].length,n=j.length-I;if(j.slice(n-i.length,n)==i&&u.slice(g,g+t.length)==t)return{open:{pos:e-I,margin:I&&1},close:{pos:N+g,margin:g&&1}};N-e<=2*Cr?s=D=M.sliceDoc(e,N):(s=M.sliceDoc(e,e+Cr),D=M.sliceDoc(N-Cr,N));let l=/^\s*/.exec(s)[0].length,r=/\s*$/.exec(D)[0].length,o=D.length-r-t.length;return s.slice(l,l+i.length)==i&&D.slice(o,o+t.length)==t?{open:{pos:e+l+i.length,margin:/\s/.test(s.charAt(l+i.length))?1:0},close:{pos:N-r-t.length,margin:/\s/.test(D.charAt(o-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:D}=i;M.push({from:s.pos-N.open.length,to:s.pos+s.margin},{from:D.pos-D.margin,to:D.pos+N.close.length})}return{changes:M}}return null}function br(M,i,t=i.selection.ranges){let e=[],N=-1;for(let{from:M,to:s}of t){let t=e.length,D=1e9,j=kr(i,M).line;if(j){for(let t=M;t<=s;){let u=i.doc.lineAt(t);if(u.from>N&&(M==s||s>u.from)){N=u.from;let M=/^\s*/.exec(u.text)[0].length,i=M==u.length,t=u.text.slice(M,M+j.length)==j?M:-1;M<u.text.length&&M<D&&(D=M),e.push({line:u,comment:t,token:j,indent:M,empty:i,single:!1})}t=u.to+1}if(D<1e9)for(let M=t;M<e.length;M++)e[M].indent<e[M].line.text.length&&(e[M].indent=D);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:D}of e)!D&&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 pr=wN.define(),Zr=wN.define(),Yr=Ke.define(),mr=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)})}),fr=DN.define({create:()=>Mo.empty,update(M,i){let t=i.state.facet(mr),e=i.annotation(pr);if(e){let N=Rr.fromTransaction(i,e.selection),s=e.side,D=0==s?M.undone:M.done;return D=N?Br(D,D.length,t.minDepth,N):Hr(D,i.startState.selection),new Mo(0==s?e.rest:D,0==s?D:e.rest)}let N=i.annotation(Zr);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=Rr.fromTransaction(i),D=i.annotation(kN.time),j=i.annotation(kN.userEvent);return s?M=M.addChanges(s,D,j,t,i):i.selection&&(M=M.addSelection(i.startState.selection,D,j,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 Mo(M.done.map(Rr.fromJSON),M.undone.map(Rr.fromJSON))});function Wr(M,i){return function({state:t,dispatch:e}){if(!i&&t.readOnly)return!1;let N=t.field(fr,!1);if(!N)return!1;let s=N.pop(M,t,i);return!!s&&(e(s),!0)}}const Vr=Wr(0,!1),vr=Wr(1,!1),Gr=Wr(0,!0),Pr=Wr(1,!0);class Rr{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 Rr(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 Rr(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=Jr;for(let i of M.startState.facet(Yr)){let e=i(M);e.length&&(t=t.concat(e))}return!t.length&&M.changes.empty?null:new Rr(M.changes.invert(M.startState.doc),t,void 0,i||M.startState.selection,Jr)}static selection(M){return new Rr(void 0,Jr,void 0,void 0,M)}}function Br(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 Fr(M,i){return M.length?i.length?M.concat(i):M:i}const Jr=[],Xr=200;function Hr(M,i){if(M.length){let t=M[M.length-1],e=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Xr));return e.length&&e[e.length-1].eq(i)?M:(e.push(i),Br(M,M.length-1,1e9,t.setSelAfter(e)))}return[Rr.selection([i])]}function $r(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 _r(M,i){if(!M.length)return M;let t=M.length,e=Jr;for(;t;){let N=qr(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?[Rr.selection(e)]:Jr}function qr(M,i,t){let e=Fr(M.selectionsAfter.length?M.selectionsAfter.map((M=>M.map(i))):Jr,t);if(!M.changes)return Rr.selection(e);let N=M.changes.map(i),s=i.mapDesc(M.changes,!0),D=M.mapped?M.mapped.composeDesc(s):s;return new Rr(N,QN.mapEffects(M.effects,i),D,M.startSelection.map(s),e)}const Kr=/^(input\.type|delete)($|\.)/;class Mo{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 Mo(this.done,this.undone):this}addChanges(M,i,t,e,N){let s=this.done,D=s[s.length-1];return s=D&&D.changes&&!D.changes.empty&&M.changes&&(!t||Kr.test(t))&&(!D.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++],D=t[M++];s>=i&&N<=D&&(e=!0)}})),e}(D.changes,M.changes))||"input.type.compose"==t)?Br(s,s.length-1,e.minDepth,new Rr(M.changes.compose(D.changes),Fr(M.effects,D.effects),D.mapped,D.startSelection,Jr)):Br(s,s.length,e.minDepth,M),new Mo(s,Jr,i,t)}addSelection(M,i,t,e){let N=this.done.length?this.done[this.done.length-1].selectionsAfter:Jr;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 Mo(Hr(this.done,M),this.undone,i,t)}addMapping(M){return new Mo(_r(this.done,M),_r(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:pr.of({side:M,rest:$r(e),selection:s}),userEvent:0==M?"select.undo":"select.redo",scrollIntoView:!0});if(N.changes){let t=1==e.length?Jr:e.slice(0,e.length-1);return N.mapped&&(t=_r(t,N.mapped)),i.update({changes:N.changes,selection:N.startSelection,effects:N.effects,annotations:pr.of({side:M,rest:t,selection:s}),filter:!1,userEvent:0==M?"undo":"redo",scrollIntoView:!0})}return null}}Mo.empty=new Mo(Jr,Jr);const io=[{key:"Mod-z",run:Vr,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:vr,preventDefault:!0},{linux:"Ctrl-Shift-z",run:vr,preventDefault:!0},{key:"Mod-u",run:Gr,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Pr,preventDefault:!0}];function to(M,i){return $e.create(M.ranges.map(i),M.mainIndex)}function eo(M,i){return M.update({selection:i,scrollIntoView:!0,userEvent:"select"})}function No({state:M,dispatch:i},t){let e=to(M.selection,t);return!e.eq(M.selection,!0)&&(i(eo(M,e)),!0)}function so(M,i){return $e.cursor(i?M.to:M.from)}function Do(M,i){return No(M,(t=>t.empty?M.moveByChar(t,i):so(t,i)))}function jo(M){return M.textDirectionAt(M.state.selection.main.head)==ED.LTR}const uo=M=>Do(M,!jo(M)),Io=M=>Do(M,jo(M));function go(M,i){return No(M,(t=>t.empty?M.moveByGroup(t,i):so(t,i)))}function no(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 lo(M,i,t){let e,N,s=el(M).resolveInner(i.head),D=t?Jg.closedBy:Jg.openedBy;for(let e=i.head;;){let i=t?s.childAfter(e):s.childBefore(e);if(!i)break;no(M,i,D)?s=i:e=t?i.to:i.from}return N=s.type.prop(D)&&(e=t?Tr(M,s.from,1):Tr(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 ro(M,i){return No(M,(t=>{if(!t.empty)return so(t,i);let e=M.moveVertically(t,i);return e.head!=t.head?e:M.moveToLineBoundary(t,i)}))}const oo=M=>ro(M,!1),co=M=>ro(M,!0);function ao(M){let i,t=M.scrollDOM.clientHeight<M.scrollDOM.scrollHeight-2,e=0,N=0;if(t){for(let i of M.state.facet(sI.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 To(M,i){let t,e=ao(M),{state:N}=M,s=to(N.selection,(t=>t.empty?M.moveVertically(t,i,e.height):so(t,i)));if(s.eq(N.selection))return!1;if(e.selfScroll){let i=M.coordsAtPos(N.selection.main.head),D=M.scrollDOM.getBoundingClientRect(),j=D.top+e.marginTop,u=D.bottom-e.marginBottom;i&&i.top>j&&i.bottom<u&&(t=sI.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-j}))}return M.dispatch(eo(N,s),{effects:t}),!0}const Oo=M=>To(M,!1),Lo=M=>To(M,!0);function zo(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 yo(M,i){let t=to(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(eo(M.state,t)),!0)}function ho(M,i){return yo(M,(t=>M.moveByChar(t,i)))}const Ao=M=>ho(M,!jo(M)),xo=M=>ho(M,jo(M));function wo(M,i){return yo(M,(t=>M.moveByGroup(t,i)))}function So(M,i){return yo(M,(t=>M.moveVertically(t,i)))}const Eo=M=>So(M,!1),Qo=M=>So(M,!0);function ko(M,i){return yo(M,(t=>M.moveVertically(t,i,ao(M).height)))}const Co=M=>ko(M,!1),Uo=M=>ko(M,!0),bo=({state:M,dispatch:i})=>(i(eo(M,{anchor:0})),!0),po=({state:M,dispatch:i})=>(i(eo(M,{anchor:M.doc.length})),!0),Zo=({state:M,dispatch:i})=>(i(eo(M,{anchor:M.selection.main.anchor,head:0})),!0),Yo=({state:M,dispatch:i})=>(i(eo(M,{anchor:M.selection.main.anchor,head:M.doc.length})),!0);function mo(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 D=i(e);D<N?(t="delete.backward",D=fo(M,D,!1)):D>N&&(t="delete.forward",D=fo(M,D,!0)),N=Math.min(N,D),s=Math.max(s,D)}else N=fo(M,N,!1),s=fo(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?sI.announce.of(e.phrase("Selection deleted")):void 0})),!0)}function fo(M,i,t){if(M instanceof sI)for(let e of M.state.facet(sI.atomicRanges).map((i=>i(M))))e.between(i,i,((M,e)=>{M<i&&e>i&&(i=t?e:M)}));return i}const Wo=(M,i)=>mo(M,(t=>{let e,N,s=t.from,{state:D}=M,j=D.doc.lineAt(s);if(!i&&s>j.from&&s<j.from+200&&!/[^ \t]/.test(e=j.text.slice(0,s-j.from))){if("\t"==e[e.length-1])return s-1;let M=ss(e,D.tabSize)%al(D)||al(D);for(let i=0;i<M&&" "==e[e.length-1-i];i++)s--;N=s}else N=Ce(j.text,s-j.from,i,i)+j.from,N==s&&j.number!=(i?D.doc.lines:1)?N+=i?1:-1:!i&&/[\ufe00-\ufe0f]/.test(j.text.slice(N-j.from,s-j.from))&&(N=Ce(j.text,N-j.from,!1,!1)+j.from);return N})),Vo=M=>Wo(M,!1),vo=M=>Wo(M,!0),Go=(M,i)=>mo(M,(t=>{let e=t.head,{state:N}=M,s=N.doc.lineAt(e),D=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 j=Ce(s.text,e-s.from,i)+s.from,u=s.text.slice(Math.min(e,j)-s.from,Math.max(e,j)-s.from),I=D(u);if(null!=M&&I!=M)break;" "==u&&e==t.head||(M=I),e=j}return e})),Po=M=>Go(M,!1);function Ro(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 Bo(M,i,t){if(M.readOnly)return!1;let e=[],N=[];for(let i of Ro(M)){if(t?i.to==M.doc.length:0==i.from)continue;let s=M.doc.lineAt(t?i.to+1:i.from-1),D=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+D),Math.min(M.doc.length,t.head+D)))}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-D,M.head-D))}}return!!e.length&&(i(M.update({changes:e,scrollIntoView:!0,selection:$e.create(N,M.selection.mainIndex),userEvent:"move.line"})),!0)}function Fo(M,i,t){if(M.readOnly)return!1;let e=[];for(let i of Ro(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 Jo=Ho(!1),Xo=Ho(!0);function Ho(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),D=!M&&e==N&&function(M,i){if(/\(\)|\[\]|\{\}/.test(M.sliceDoc(i-1,i+1)))return{from:i,to:i};let t,e=el(M).resolveInner(i),N=e.childBefore(i),s=e.childAfter(i);return N&&s&&N.to<=i&&s.from>=i&&(t=N.type.prop(Jg.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 j=new Ll(i,{simulateBreak:e,simulateDoubleBreak:!!D}),u=Ol(j,e);for(null==u&&(u=ss(/^\s*/.exec(i.doc.lineAt(e).text)[0],i.tabSize));N<s.to&&/\s/.test(s.text[N-s.from]);)N++;D?({from:e,to:N}=D):e>s.from&&e<s.from+100&&!/\S/.test(s.text.slice(0,e))&&(e=s.from);let I=["",Tl(i,u)];return D&&I.push(Tl(i,j.lineIndent(s.from,-1))),{changes:{from:e,to:N,insert:Te.of(I)},range:$e.cursor(e+1+I[1].length)}}));return t(i.update(e,{scrollIntoView:!0,userEvent:"input"})),!0}}function $o(M,i){let t=-1;return M.changeByRange((e=>{let N=[];for(let s=e.from;s<=e.to;){let D=M.doc.lineAt(s);D.number>t&&(e.empty||e.to>D.from)&&(i(D,N,e),t=D.number),s=D.to+1}let s=M.changes(N);return{changes:N,range:$e.range(s.mapPos(e.anchor,1),s.mapPos(e.head,1))}}))}const _o=[{key:"Ctrl-b",run:uo,shift:Ao,preventDefault:!0},{key:"Ctrl-f",run:Io,shift:xo},{key:"Ctrl-p",run:oo,shift:Eo},{key:"Ctrl-n",run:co,shift:Qo},{key:"Ctrl-a",run:M=>No(M,(i=>$e.cursor(M.lineBlockAt(i.head).from,1))),shift:M=>yo(M,(i=>$e.cursor(M.lineBlockAt(i.head).from)))},{key:"Ctrl-e",run:M=>No(M,(i=>$e.cursor(M.lineBlockAt(i.head).to,-1))),shift:M=>yo(M,(i=>$e.cursor(M.lineBlockAt(i.head).to)))},{key:"Ctrl-d",run:vo},{key:"Ctrl-h",run:Vo},{key:"Ctrl-k",run:M=>mo(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:Po},{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:Te.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:Lo}],qo=[{key:"ArrowLeft",run:uo,shift:Ao,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:M=>go(M,!jo(M)),shift:M=>wo(M,!jo(M)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:M=>No(M,(i=>zo(M,i,!jo(M)))),shift:M=>yo(M,(i=>zo(M,i,!jo(M)))),preventDefault:!0},{key:"ArrowRight",run:Io,shift:xo,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M=>go(M,jo(M)),shift:M=>wo(M,jo(M)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:M=>No(M,(i=>zo(M,i,jo(M)))),shift:M=>yo(M,(i=>zo(M,i,jo(M)))),preventDefault:!0},{key:"ArrowUp",run:oo,shift:Eo,preventDefault:!0},{mac:"Cmd-ArrowUp",run:bo,shift:Zo},{mac:"Ctrl-ArrowUp",run:Oo,shift:Co},{key:"ArrowDown",run:co,shift:Qo,preventDefault:!0},{mac:"Cmd-ArrowDown",run:po,shift:Yo},{mac:"Ctrl-ArrowDown",run:Lo,shift:Uo},{key:"PageUp",run:Oo,shift:Co},{key:"PageDown",run:Lo,shift:Uo},{key:"Home",run:M=>No(M,(i=>zo(M,i,!1))),shift:M=>yo(M,(i=>zo(M,i,!1))),preventDefault:!0},{key:"Mod-Home",run:bo,shift:Zo},{key:"End",run:M=>No(M,(i=>zo(M,i,!0))),shift:M=>yo(M,(i=>zo(M,i,!0))),preventDefault:!0},{key:"Mod-End",run:po,shift:Yo},{key:"Enter",run:Jo},{key:"Mod-a",run:({state:M,dispatch:i})=>(i(M.update({selection:{anchor:0,head:M.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Vo,shift:Vo},{key:"Delete",run:vo},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Po},{key:"Mod-Delete",mac:"Alt-Delete",run:M=>Go(M,!0)},{mac:"Mod-Backspace",run:M=>mo(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=>mo(M,(i=>{let t=M.moveToLineBoundary(i,!0).head;return i.head<t?t:Math.min(M.state.doc.length,i.head+1)}))}].concat(_o.map((M=>({mac:M.key,run:M.run,shift:M.shift})))),Ko=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:M=>No(M,(i=>lo(M.state,i,!jo(M)))),shift:M=>yo(M,(i=>lo(M.state,i,!jo(M))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:M=>No(M,(i=>lo(M.state,i,jo(M)))),shift:M=>yo(M,(i=>lo(M.state,i,jo(M))))},{key:"Alt-ArrowUp",run:({state:M,dispatch:i})=>Bo(M,i,!1)},{key:"Shift-Alt-ArrowUp",run:({state:M,dispatch:i})=>Fo(M,i,!1)},{key:"Alt-ArrowDown",run:({state:M,dispatch:i})=>Bo(M,i,!0)},{key:"Shift-Alt-ArrowDown",run:({state:M,dispatch:i})=>Fo(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(eo(M,e)),!0)}},{key:"Mod-Enter",run:Xo},{key:"Alt-l",mac:"Ctrl-l",run:({state:M,dispatch:i})=>{let t=Ro(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=to(M.selection,(i=>{var t;for(let e=el(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(eo(M,t)),!0},preventDefault:!0},{key:"Mod-[",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update($o(M,((i,t)=>{let e=/^\s*/.exec(i.text)[0];if(!e)return;let N=ss(e,M.tabSize),s=0,D=Tl(M,Math.max(0,N-al(M)));for(;s<e.length&&s<D.length&&e.charCodeAt(s)==D.charCodeAt(s);)s++;t.push({from:i.from+s,to:i.from+e.length,insert:D.slice(s)})})),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:M,dispatch:i})=>!M.readOnly&&(i(M.update($o(M,((i,t)=>{t.push({from:i.from,insert:M.facet(cl)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=Object.create(null),e=new Ll(M,{overrideIndentation:M=>{let i=t[M];return null==i?-1:i}}),N=$o(M,((i,N,s)=>{let D=Ol(e,i.from);if(null==D)return;/\S/.test(i.text)||(D=0);let j=/^\s*/.exec(i.text)[0],u=Tl(M,D);(j!=u||s.from<i.from+j.length)&&(t[i.from]=D,N.push({from:i.from,to:i.from+j.length,insert:u}))}));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(Ro(i).map((({from:M,to:t})=>(M>0?M--:t<i.doc.length&&t++,{from:M,to:t})))),e=to(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=to(M.selection,(i=>{let N=Tr(M,i.head,-1)||Tr(M,i.head,1)||i.head>0&&Tr(M,i.head-1,1)||i.head<M.doc.length&&Tr(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(eo(M,N)),!0)}(M,i,!1)},{key:"Mod-/",run:M=>{let{state:i}=M,t=i.doc.lineAt(i.selection.main.from),e=kr(M.state,t.from);return e.line?Sr(M):!!e.block&&Qr(M)}},{key:"Alt-A",run:Er}].concat(qo);function Mc(){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++)ic(M,arguments[i]);return M}function ic(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++)ic(M,i[t])}}const tc="function"==typeof String.prototype.normalize?M=>M.normalize("NFKD"):M=>M;class ec{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(tc(M)):tc,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 Ye(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=me(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),D=this.match(s,N);if(M==e.length-1){if(D)return this.value=D,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&&(ec.prototype[Symbol.iterator]=function(){return this});const Nc={from:-1,to:-1,match:/.*/.exec("")},sc="gm"+(null==/x/.unicode?"":"u");class Dc{constructor(M,i,t,e=0,N=M.length){if(this.text=M,this.to=N,this.curLine="",this.done=!1,this.value=Nc,/\\[sWDnr]|\n|\r|\[\^/.test(i))return new Ic(M,i,t,e,N);this.re=new RegExp(i,sc+((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=gc(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=gc(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 jc=new WeakMap;class uc{constructor(M,i){this.from=M,this.text=i}get to(){return this.from+this.text.length}static get(M,i,t){let e=jc.get(M);if(!e||e.from>=t||e.to<=i){let e=new uc(i,M.sliceString(i,t));return jc.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)),jc.set(M,new uc(s,N)),new uc(i,N.slice(i-s,t-s))}}class Ic{constructor(M,i,t,e,N){this.text=M,this.to=N,this.done=!1,this.value=Nc,this.matchPos=gc(M,e),this.re=new RegExp(i,sc+((null==t?void 0:t.ignoreCase)?"i":"")),this.test=null==t?void 0:t.test,this.flat=uc.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=gc(this.text,t+(M==t?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=uc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function gc(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 nc(M){let i=Mc("input",{class:"cm-textfield",name:"line",value:String(M.state.doc.lineAt(M.state.selection.main.head).number)}),t=Mc("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()}},Mc("label",M.state.phrase("Go to line"),": ",i)," ",Mc("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,D,j,u]=t,I=j?+j.slice(1):0,g=D?+D:N.number;if(D&&u){let M=g/100;s&&(M=M*("-"==s?-1:1)+N.number/e.doc.lines),g=Math.round(e.doc.lines*M)}else D&&s&&(g=g*("-"==s?-1:1)+N.number);let n=e.doc.line(Math.max(1,Math.min(e.doc.lines,g))),l=$e.cursor(n.from+Math.max(0,Math.min(I,n.length)));M.dispatch({effects:[lc.of(!1),sI.scrollIntoView(l.from,{y:"center"})],selection:l}),M.focus()}return{dom:t}}"undefined"!=typeof Symbol&&(Dc.prototype[Symbol.iterator]=Ic.prototype[Symbol.iterator]=function(){return this});const lc=QN.define(),rc=DN.define({create:()=>!0,update(M,i){for(let t of i.effects)t.is(lc)&&(M=t.value);return M},provide:M=>yg.from(M,(M=>M?nc:null))}),oc=sI.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),cc={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},ac=Ke.define({combine:M=>GN(M,cc,{highlightWordAroundCursor:(M,i)=>M||i,minSelectionLength:Math.min,maxMatches:Math.min})});const Tc=LD.mark({class:"cm-selectionMatch"}),Oc=LD.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Lc(M,i,t,e){return!(0!=t&&M(i.sliceDoc(t-1,t))==mN.Word||e!=i.doc.length&&M(i.sliceDoc(e,e+1))==mN.Word)}const zc=uj.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(ac),{state:t}=M,e=t.selection;if(e.ranges.length>1)return LD.none;let N,s=e.main,D=null;if(s.empty){if(!i.highlightWordAroundCursor)return LD.none;let M=t.wordAt(s.head);if(!M)return LD.none;D=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 LD.none;if(i.wholeWords){if(N=t.sliceDoc(s.from,s.to),D=t.charCategorizer(s.head),!Lc(D,t,s.from,s.to)||!function(M,i,t,e){return M(i.sliceDoc(t,t+1))==mN.Word&&M(i.sliceDoc(e-1,e))==mN.Word}(D,t,s.from,s.to))return LD.none}else if(N=t.sliceDoc(s.from,s.to).trim(),!N)return LD.none}let j=[];for(let e of M.visibleRanges){let M=new ec(t.doc,N,e.from,e.to);for(;!M.next().done;){let{from:e,to:N}=M.value;if((!D||Lc(D,t,e,N))&&(s.empty&&e<=s.from&&N>=s.to?j.push(Oc.range(e,N)):(e>=s.to||N<=s.from)&&j.push(Tc.range(e,N)),j.length>i.maxMatches))return LD.none}}return LD.set(j)}},{decorations:M=>M.decorations}),yc=sI.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const hc=Ke.define({combine:M=>GN(M,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:M=>new _c(M),scrollToMatch:M=>sI.scrollIntoView(M)})});class Ac{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,sc),!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 kc(this):new wc(this)}getCursor(M,i=0,t){let e=M.doc?M:vN.create({doc:M});return null==t&&(t=e.doc.length),this.regexp?Sc(this,e,i,t):dc(this,e,i,t)}}class xc{constructor(M){this.spec=M}}function dc(M,i,t,e){return new ec(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(Ec(N,t-s))==mN.Word&&i(Qc(N,t-s))==mN.Word||i(Qc(N,e-s))==mN.Word&&i(Ec(N,e-s))==mN.Word))}(i.doc,i.charCategorizer(i.selection.main.head)):void 0)}class wc extends xc{constructor(M){super(M)}nextMatch(M,i,t){let e=dc(this.spec,M,t,M.doc.length).nextOverlapping();return e.done&&(e=dc(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=dc(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=dc(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=dc(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 Sc(M,i,t,e){return new Dc(i.doc,M.search,{ignoreCase:!M.caseSensitive,test:M.wholeWord?(N=i.charCategorizer(i.selection.main.head),(M,i,t)=>!t[0].length||(N(Ec(t.input,t.index))!=mN.Word||N(Qc(t.input,t.index))!=mN.Word)&&(N(Qc(t.input,t.index+t[0].length))!=mN.Word||N(Ec(t.input,t.index+t[0].length))!=mN.Word)):void 0},t,e);var N}function Ec(M,i){return M.slice(Ce(M,i,!1),i)}function Qc(M,i){return M.slice(i,Ce(M,i))}class kc extends xc{nextMatch(M,i,t){let e=Sc(this.spec,M,t,M.doc.length).next();return e.done&&(e=Sc(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=Sc(this.spec,M,N,t),D=null;for(;!s.next().done;)D=s.value;if(D&&(N==i||D.from>N+10))return D;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=Sc(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=Sc(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 Cc=QN.define(),Uc=QN.define(),bc=DN.define({create:M=>new pc(Bc(M).create(),null),update(M,i){for(let t of i.effects)t.is(Cc)?M=new pc(t.value.create(),M.panel):t.is(Uc)&&(M=new pc(M.query,t.value?Rc:null));return M},provide:M=>yg.from(M,(M=>M.panel))});class pc{constructor(M,i){this.query=M,this.panel=i}}const Zc=LD.mark({class:"cm-searchMatch"}),Yc=LD.mark({class:"cm-searchMatch cm-searchMatch-selected"}),mc=uj.fromClass(class{constructor(M){this.view=M,this.decorations=this.highlight(M.state.field(bc))}update(M){let i=M.state.field(bc);(i!=M.startState.field(bc)||M.docChanged||M.selectionSet||M.viewportChanged)&&(this.decorations=this.highlight(i))}highlight({query:M,panel:i}){if(!i||!M.spec.valid)return LD.none;let{view:t}=this,e=new XN;for(let i=0,N=t.visibleRanges,s=N.length;i<s;i++){let{from:D,to:j}=N[i];for(;i<s-1&&j>N[i+1].from-500;)j=N[++i].to;M.highlight(t.state,D,j,((M,i)=>{let N=t.state.selection.ranges.some((t=>t.from==M&&t.to==i));e.add(M,i,N?Yc:Zc)}))}return e.finish()}},{decorations:M=>M.decorations});function fc(M){return i=>{let t=i.state.field(bc,!1);return t&&t.query.spec.valid?M(i,t):Xc(i)}}const Wc=fc(((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(hc);return M.dispatch({selection:N,effects:[ia(M,e),s.scrollToMatch(N.main,M)],userEvent:"select.search"}),Jc(M),!0})),Vc=fc(((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),D=M.state.facet(hc);return M.dispatch({selection:s,effects:[ia(M,N),D.scrollToMatch(s.main,M)],userEvent:"select.search"}),Jc(M),!0})),vc=fc(((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)})),Gc=fc(((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 D,j,u=[],I=[];if(s.from==e&&s.to==N&&(j=t.toText(i.getReplacement(s)),u.push({from:s.from,to:s.to,insert:j}),s=i.nextMatch(t,s.from,s.to),I.push(sI.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(e).number)+"."))),s){let i=0==u.length||u[0].from>=s.to?0:s.to-s.from-j.length;D=$e.single(s.from-i,s.to-i),I.push(ia(M,s)),I.push(t.facet(hc).scrollToMatch(D.main,M))}return M.dispatch({changes:u,selection:D,effects:I,userEvent:"input.replace"}),!0})),Pc=fc(((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:sI.announce.of(e),userEvent:"input.replace.all"}),!0}));function Rc(M){return M.state.facet(hc).createPanel(M)}function Bc(M,i){var t,e,N,s,D;let j=M.selection.main,u=j.empty||j.to>j.from+100?"":M.sliceDoc(j.from,j.to);if(i&&!u)return i;let I=M.facet(hc);return new Ac({search:(null!==(t=null==i?void 0:i.literal)&&void 0!==t?t:I.literal)?u:u.replace(/\n/g,"\\n"),caseSensitive:null!==(e=null==i?void 0:i.caseSensitive)&&void 0!==e?e:I.caseSensitive,literal:null!==(N=null==i?void 0:i.literal)&&void 0!==N?N:I.literal,regexp:null!==(s=null==i?void 0:i.regexp)&&void 0!==s?s:I.regexp,wholeWord:null!==(D=null==i?void 0:i.wholeWord)&&void 0!==D?D:I.wholeWord})}function Fc(M){let i=Tg(M,Rc);return i&&i.dom.querySelector("[main-field]")}function Jc(M){let i=Fc(M);i&&i==M.root.activeElement&&i.select()}const Xc=M=>{let i=M.state.field(bc,!1);if(i&&i.panel){let t=Fc(M);if(t&&t!=M.root.activeElement){let e=Bc(M.state,i.query.spec);e.valid&&M.dispatch({effects:Cc.of(e)}),t.focus(),t.select()}}else M.dispatch({effects:[Uc.of(!0),i?Cc.of(Bc(M.state,i.query.spec)):QN.appendConfig.of(ea)]});return!0},Hc=M=>{let i=M.state.field(bc,!1);if(!i||!i.panel)return!1;let t=Tg(M,Rc);return t&&t.dom.contains(M.root.activeElement)&&M.focus(),M.dispatch({effects:Uc.of(!1)}),!0},$c=[{key:"Mod-f",run:Xc,scope:"editor search-panel"},{key:"F3",run:Wc,shift:Vc,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Wc,shift:Vc,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Hc,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=[],D=0;for(let i=new ec(M.doc,M.sliceDoc(e,N));!i.next().done;){if(s.length>1e3)return!1;i.value.from==e&&(D=s.length),s.push($e.range(i.value.from,i.value.to))}return i(M.update({selection:$e.create(s,D),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:M=>{let i=Tg(M,nc);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=Tg(M,nc)}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 ec(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 ec(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:sI.scrollIntoView(N.to)})),!0)},preventDefault:!0}];class _c{constructor(M){this.view=M;let i=this.query=M.state.field(bc).query.spec;function t(M,i,t){return Mc("button",{class:"cm-button",name:M,onclick:i,type:"button"},t)}this.commit=this.commit.bind(this),this.searchField=Mc("input",{value:i.search,placeholder:qc(M,"Find"),"aria-label":qc(M,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Mc("input",{value:i.replace,placeholder:qc(M,"Replace"),"aria-label":qc(M,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Mc("input",{type:"checkbox",name:"case",form:"",checked:i.caseSensitive,onchange:this.commit}),this.reField=Mc("input",{type:"checkbox",name:"re",form:"",checked:i.regexp,onchange:this.commit}),this.wordField=Mc("input",{type:"checkbox",name:"word",form:"",checked:i.wholeWord,onchange:this.commit}),this.dom=Mc("div",{onkeydown:M=>this.keydown(M),class:"cm-search"},[this.searchField,t("next",(()=>Wc(M)),[qc(M,"next")]),t("prev",(()=>Vc(M)),[qc(M,"previous")]),t("select",(()=>vc(M)),[qc(M,"all")]),Mc("label",null,[this.caseField,qc(M,"match case")]),Mc("label",null,[this.reField,qc(M,"regexp")]),Mc("label",null,[this.wordField,qc(M,"by word")]),...M.state.readOnly?[]:[Mc("br"),this.replaceField,t("replace",(()=>Gc(M)),[qc(M,"replace")]),t("replaceAll",(()=>Pc(M)),[qc(M,"replace all")])],Mc("button",{name:"close",onclick:()=>Hc(M),"aria-label":qc(M,"close"),type:"button"},["×"])])}commit(){let M=new Ac({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:Cc.of(M)}))}keydown(M){!function(M,i,t){return OI(cI(M.state),i,M,t)}(this.view,M,"search-panel")?13==M.keyCode&&M.target==this.searchField?(M.preventDefault(),(M.shiftKey?Vc:Wc)(this.view)):13==M.keyCode&&M.target==this.replaceField&&(M.preventDefault(),Gc(this.view)):M.preventDefault()}update(M){for(let i of M.transactions)for(let M of i.effects)M.is(Cc)&&!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(hc).top}}function qc(M,i){return M.state.phrase(i)}const Kc=30,Ma=/[\s\.,:;?!]/;function ia(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-Kc),D=Math.min(N,t+Kc),j=M.state.sliceDoc(s,D);if(s!=e.from)for(let M=0;M<Kc;M++)if(!Ma.test(j[M+1])&&Ma.test(j[M])){j=j.slice(M);break}if(D!=N)for(let M=j.length-1;M>j.length-Kc;M--)if(!Ma.test(j[M-1])&&Ma.test(j[M])){j=j.slice(0,M);break}return sI.announce.of(`${M.state.phrase("current match")}. ${j} ${M.state.phrase("on line")} ${e.number}.`)}const ta=sI.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"}}),ea=[bc,lN.low(mc),ta];class Na{constructor(M,i,t){this.state=M,this.pos=i,this.explicit=t,this.abortListeners=[]}tokenBefore(M){let i=el(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(Ia(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 sa(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 Da(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=sa(i)+sa(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 ja{constructor(M,i,t,e){this.completion=M,this.source=i,this.match=t,this.score=e}}function ua(M){return M.selection.main.from}function Ia(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 ga=wN.define();const na=new WeakMap;function la(M){if(!Array.isArray(M))return M;let i=na.get(M);return i||na.set(M,i=Da(M)),i}const ra=QN.define(),oa=QN.define();class ca{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=Ye(M,i),e=fe(t);this.chars.push(t);let N=M.slice(i,i+e),s=N.toUpperCase();this.folded.push(Ye(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=Ye(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 D=M.indexOf(this.pattern);if(0==D)return this.ret(M.length==this.pattern.length?0:-100,[0,this.pattern.length]);let j=i.length,u=0;if(D<0){for(let N=0,s=Math.min(M.length,200);N<s&&u<j;){let s=Ye(M,N);s!=i[u]&&s!=t[u]||(e[u++]=N),N+=fe(s)}if(u<j)return!1}let I=0,g=0,n=!1,l=0,r=-1,o=-1,c=/[a-z]/.test(M),a=!0;for(let e=0,u=Math.min(M.length,200),T=0;e<u&&g<j;){let u=Ye(M,e);D<0&&(I<j&&u==i[I]&&(N[I++]=e),l<j&&(u==i[l]||u==t[l]?(0==l&&(r=e),o=e+1,l++):l=0));let O,L=u<255?u>=48&&u<=57||u>=97&&u<=122?2:u>=65&&u<=90?1:0:(O=me(u))!=O.toLowerCase()?1:O!=O.toUpperCase()?2:0;(!e||1==L&&c||0==T&&0!=L)&&(i[g]==u||t[g]==u&&(n=!0)?s[g++]=e:s.length&&(a=!1)),T=L,e+=fe(u)}return g==j&&0==s[0]&&a?this.result((n?-200:0)-100,s,M):l==j&&0==r?this.ret(-200-M.length+(o==M.length?0:-100),[0,o]):D>-1?this.ret(-700-M.length,[D,D+this.pattern.length]):l==j?this.ret(-900-M.length,[r,o]):g==j?this.result((n?-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(Ye(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 aa=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=>Ta(M(t),i(t)),optionClass:(M,i)=>t=>Ta(M(t),i(t)),addToOptions:(M,i)=>M.concat(i)})});function Ta(M,i){return M?i?M+" "+i:M:i}function Oa(M,i,t,e,N,s){let D,j,u=M.textDirection==ED.RTL,I=u,g=!1,n="top",l=i.left-N.left,r=N.right-i.right,o=e.right-e.left,c=e.bottom-e.top;if(I&&l<Math.min(o,r)?I=!1:!I&&r<Math.min(o,l)&&(I=!0),o<=(I?l:r))D=Math.max(N.top,Math.min(t.top,N.bottom-c))-i.top,j=Math.min(400,I?l:r);else{g=!0,j=Math.min(400,(u?i.right:N.right-i.left)-30);let M=N.bottom-i.bottom;M>=c||M>i.top?D=t.bottom-i.top:(n="bottom",D=i.bottom-t.top)}return{style:`${n}: ${D/((i.bottom-i.top)/s.offsetHeight)}px; max-width: ${j/((i.right-i.left)/s.offsetWidth)}px`,class:"cm-completionInfo-"+(g?u?"left-narrow":"right-narrow":I?"left":"right")}}function La(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 za{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,D=M.state.facet(aa);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,D=0;for(let M=0;M<e.length;){let i=e[M++],t=e[M++];i>D&&N.appendChild(document.createTextNode(s.slice(D,i)));let j=N.appendChild(document.createElement("span"));j.appendChild(document.createTextNode(s.slice(i,t))),j.className="cm-completionMatchedText",D=t}return D<s.length&&N.appendChild(document.createTextNode(s.slice(D))),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))}(D),this.optionClass=D.optionClass,this.tooltipClass=D.tooltipClass,this.range=La(N.length,s,D.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(aa).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:D}=t.open;e.open&&e.open.options==N||(this.range=La(N.length,s,M.state.facet(aa).maxRenderedOptions),this.showOptions(N,t.id)),this.updateSel(),D!=(null===(i=e.open)||void 0===i?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!D)}}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=La(i.options.length,i.selected,this.view.state.facet(aa).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=>Nj(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(aa).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:D,match:j}=M[s],{section:u}=D;if(u){let M="string"==typeof u?u:u.name;if(M!=N&&(s>t.from||0==t.from))if(N=M,"string"!=typeof u&&u.header)e.appendChild(u.header(u));else{e.appendChild(document.createElement("completion-section")).textContent=M}}const I=e.appendChild(document.createElement("li"));I.id=i+"-"+s,I.setAttribute("role","option");let g=this.optionClass(D);g&&(I.className=g);for(let M of this.optionContent){let i=M(D,this.view.state,this.view,j);i&&I.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 ya(M,i){return t=>new za(t,M,i)}function ha(M){return 100*(M.boost||0)+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}class Aa{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 Aa(this.options,wa(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 ja(i,e.source,M?M(i):[],1e9-t.length));else{let t=new ca(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 ja(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=[],D=null,j=i.facet(aa).compareCompletions;for(let M of t.sort(((M,i)=>i.score-M.score||j(M.completion,i.completion)))){let i=M.completion;!D||D.label!=i.label||D.detail!=i.detail||null!=D.type&&null!=i.type&&D.type!=i.type||D.apply!=i.apply||D.boost!=i.boost?s.push(M):ha(M.completion)>ha(D)&&(s[s.length-1]=M),D=M.completion}return s}(M,i);if(!s.length)return e&&M.some((M=>1==M.state))?new Aa(e.options,e.attrs,e.tooltip,e.timestamp,e.selected,!0):null;let D=i.facet(aa).selectOnOpen?0:-1;if(e&&e.selected!=D&&-1!=e.selected){let M=e.options[e.selected].completion;for(let i=0;i<s.length;i++)if(s[i].completion==M){D=i;break}}return new Aa(s,wa(t,D),{pos:M.reduce(((M,i)=>i.hasResult()?Math.min(M,i.from):M),1e8),create:Za,above:N.aboveCursor},e?e.timestamp:Date.now(),D,!1)}map(M){return new Aa(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:M.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class xa{constructor(M,i,t){this.active=M,this.id=i,this.open=t}static start(){return new xa(Sa,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(M){let{state:i}=M,t=i.facet(aa),e=(t.override||i.languageDataAt("autocomplete",ua(i)).map(la)).map((i=>{let e=this.active.find((M=>M.source==i))||new Qa(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=Aa.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 Qa(M.source,0):M)));for(let i of M.effects)i.is(Ua)&&(N=N&&N.setSelected(i.value,this.id));return e==this.active&&N==this.open?this:new xa(e,this.id,N)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:da}}const da={"aria-autocomplete":"list"};function wa(M,i){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":M};return i>-1&&(t["aria-activedescendant"]=M+"-"+i),t}const Sa=[];function Ea(M){return M.isUserEvent("input.type")?"input":M.isUserEvent("delete.backward")?"delete":null}class Qa{constructor(M,i,t=-1){this.source=M,this.state=i,this.explicitPos=t}hasResult(){return!1}update(M,i){let t=Ea(M),e=this;t?e=e.handleUserEvent(M,t,i):M.docChanged?e=e.handleChange(M):M.selection&&0!=e.state&&(e=new Qa(e.source,0));for(let i of M.effects)if(i.is(ra))e=new Qa(e.source,1,i.value?ua(M.state):-1);else if(i.is(oa))e=new Qa(e.source,0);else if(i.is(Ca))for(let M of i.value)M.source==e.source&&(e=M);return e}handleUserEvent(M,i,t){return"delete"!=i&&t.activateOnTyping?new Qa(this.source,1):this.map(M.changes)}handleChange(M){return M.changes.touchesRange(ua(M.startState))?new Qa(this.source,0):this.map(M.changes)}map(M){return M.empty||this.explicitPos<0?this:new Qa(this.source,this.state,M.mapPos(this.explicitPos))}}class ka extends Qa{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),D=ua(M.state);if((this.explicitPos<0?D<=N:D<this.from)||D>s||"delete"==i&&ua(M.startState)==this.from)return new Qa(this.source,"input"==i&&t.activateOnTyping?1:0);let j,u=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):Ia(M,!0).test(N)}(this.result.validFor,M.state,N,s)?new ka(this.source,u,this.result,N,s):this.result.update&&(j=this.result.update(this.result,N,s,new Na(M.state,D,u>=0)))?new ka(this.source,u,j,j.from,null!==(e=j.to)&&void 0!==e?e:ua(M.state)):new Qa(this.source,1,u)}handleChange(M){return M.changes.touchesRange(this.from,this.to)?new Qa(this.source,0):this.map(M.changes)}map(M){return M.empty?this:new ka(this.source,this.explicitPos<0?-1:M.mapPos(this.explicitPos),this.result,M.mapPos(this.from),M.mapPos(this.to,1))}}const Ca=QN.define({map:(M,i)=>M.map((M=>M.map(i)))}),Ua=QN.define(),ba=DN.define({create:()=>xa.start(),update:(M,i)=>M.update(i),provide:M=>[jg.from(M,(M=>M.tooltip)),sI.contentAttributes.from(M,(M=>M.attrs))]});function pa(M,i){const t=i.completion.apply||i.completion.label;let e=M.state.field(ba).active.find((M=>M.source==i.source));return e instanceof ka&&("string"==typeof t?M.dispatch(Object.assign(Object.assign({},function(M,i,t,e){let{main:N}=M.selection,s=t-N.from,D=e-N.from;return Object.assign(Object.assign({},M.changeByRange((j=>j!=N&&t!=e&&M.sliceDoc(j.from+s,j.from+D)!=M.sliceDoc(t,e)?{range:j}:{changes:{from:j.from+s,to:e==N.from?j.to:j.from+D,insert:i},range:$e.cursor(j.from+s+i.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(M.state,t,e.from,e.to)),{annotations:ga.of(i.completion)})):t(M,i.completion,e.from,e.to),!0)}const Za=ya(ba,pa);function Ya(M,i="option"){return t=>{let e=t.state.field(ba,!1);if(!e||!e.open||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(aa).interactionDelay)return!1;let N,s=1;"page"==i&&(N=og(t,e.open.tooltip))&&(s=Math.max(2,Math.floor(N.dom.offsetHeight/N.dom.querySelector("li").offsetHeight)-1));let{length:D}=e.open.options,j=e.open.selected>-1?e.open.selected+s*(M?1:-1):M?0:D-1;return j<0?j="page"==i?0:D-1:j>=D&&(j="page"==i?D-1:0),t.dispatch({effects:Ua.of(j)}),!0}}class ma{constructor(M,i){this.active=M,this.context=i,this.time=Date.now(),this.updates=[],this.done=void 0}}const fa=uj.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(ba).active)1==i.state&&this.startQuery(i)}update(M){let i=M.state.field(ba);if(!M.selectionSet&&!M.docChanged&&M.startState.field(ba)==i)return;let t=M.transactions.some((M=>(M.selection||M.docChanged)&&!Ea(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){Nj(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(aa).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"==Ea(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(ba);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=ua(i),e=new Na(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)}),Nj(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(aa).updateSyncTime))}accept(){var M;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let i=[],t=this.view.state.facet(aa);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 ka(N.active.source,N.active.explicitPos,N.done,N.done.from,null!==(M=N.done.to)&&void 0!==M?M:ua(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(ba).active.find((M=>M.source==N.active.source));if(s&&1==s.state)if(null==N.done){let M=new Qa(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:Ca.of(i)})}},{eventHandlers:{blur(M){let i=this.view.state.field(ba,!1);if(i&&i.tooltip&&this.view.state.facet(aa).closeOnBlur){let t=i.open&&og(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}}}),Wa=sI.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 Va{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 Ga{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,D=/^\t*/.exec(N)[0].length;for(let i=0;i<D;i++)t+=M.facet(cl);e.push(i+t.length-D),N=t+N.slice(D)}t.push(N),i+=N.length+1}let D=this.fieldPositions.map((M=>new va(M.field,e[M.line]+M.from,e[M.line]+M.to)));return{text:t,ranges:D}}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,D=i[2]||i[3]||"",j=-1;for(let i=0;i<t.length;i++)(null!=M?t[i].seq==M:D&&t[i].name==D)&&(j=i);if(j<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:D}),j=i;for(let M of N)M.field>=j&&M.field++}N.push(new Va(j,e.length,i.index,i.index+D.length)),s=s.slice(0,i.index)+D+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 Ga(e,N)}}let Pa=LD.widget({widget:new class extends TD{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),Ra=LD.mark({class:"cm-snippetField"});class Ba{constructor(M,i){this.ranges=M,this.active=i,this.deco=LD.set(M.map((M=>(M.from==M.to?Pa:Ra).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 Ba(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 Fa=QN.define({map:(M,i)=>M&&M.map(i)}),Ja=QN.define(),Xa=DN.define({create:()=>null,update(M,i){for(let t of i.effects){if(t.is(Fa))return t.value;if(t.is(Ja)&&M)return new Ba(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=>sI.decorations.from(M,(M=>M?M.deco:LD.none))});function Ha(M,i){return $e.create(M.filter((M=>M.field==i)).map((M=>$e.range(M.from,M.to))))}function $a(M){let i=Ga.parse(M);return(M,t,e,N)=>{let{text:s,ranges:D}=i.instantiate(M.state,e),j={changes:{from:e,to:N,insert:Te.of(s)},scrollIntoView:!0,annotations:t?[ga.of(t),kN.userEvent.of("input.complete")]:void 0};if(D.length&&(j.selection=Ha(D,0)),D.some((M=>M.field>0))){let i=new Ba(D,0),t=j.effects=[Fa.of(i)];void 0===M.state.field(Xa,!1)&&t.push(QN.appendConfig.of([Xa,MT,tT,Wa]))}M.dispatch(M.state.update(j))}}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:Ha(e.ranges,N),effects:Fa.of(s?null:new Ba(e.ranges,N)),scrollIntoView:!0})),!0}}const qa=[{key:"Tab",run:_a(1),shift:_a(-1)},{key:"Escape",run:({state:M,dispatch:i})=>!!M.field(Xa,!1)&&(i(M.update({effects:Fa.of(null)})),!0)}],Ka=Ke.define({combine:M=>M.length?M[0]:qa}),MT=lN.highest(rI.compute([Ka],(M=>M.facet(Ka))));function iT(M,i){return Object.assign(Object.assign({},i),{apply:$a(M)})}const tT=sI.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:Ha(e.ranges,N.field),effects:Fa.of(e.ranges.some((M=>M.field>N.field))?new Ba(e.ranges,N.field):null),scrollIntoView:!0}),!0)}}),eT={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},NT=QN.define({map(M,i){let t=i.mapPos(M,-1,Ve.TrackAfter);return null==t?void 0:t}}),sT=new class extends PN{};sT.startSide=1,sT.endSide=-1;const DT=DN.define({create:()=>JN.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(NT)&&(M=M.update({add:[sT.range(t.value,t.value+1)]}));return M}});const jT="()[]{}<>";function uT(M){for(let i=0;i<jT.length;i+=2)if(jT.charCodeAt(i)==M)return jT.charAt(i+1);return me(M<128?M:M+1)}function IT(M,i){return M.languageDataAt("closeBrackets",i)[0]||eT}const gT="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),nT=sI.inputHandler.of(((M,i,t,e)=>{if((gT?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let N=M.state.selection.main;if(e.length>2||2==e.length&&1==fe(Ye(e,0))||i!=N.from||t!=N.to)return!1;let s=function(M,i){let t=IT(M,M.selection.main.head),e=t.brackets||eT.brackets;for(let N of e){let s=uT(Ye(N,0));if(i==N)return s==N?TT(M,N,e.indexOf(N+N+N)>-1,t):cT(M,N,s,t.before||eT.before);if(i==s&&rT(M,M.selection.main.from))return aT(M,N,s)}return null}(M.state,e);return!!s&&(M.dispatch(s),!0)})),lT=[{key:"Backspace",run:({state:M,dispatch:i})=>{if(M.readOnly)return!1;let t=IT(M,M.selection.main.head).brackets||eT.brackets,e=null,N=M.changeByRange((i=>{if(i.empty){let e=function(M,i){let t=M.sliceString(i-2,i);return fe(Ye(t,0))==t.length?t:t.slice(1)}(M.doc,i.head);for(let N of t)if(N==e&&oT(M.doc,i.head)==uT(Ye(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 rT(M,i){let t=!1;return M.field(DT).between(0,M.doc.length,(M=>{M==i&&(t=!0)})),t}function oT(M,i){let t=M.sliceString(i,i+2);return t.slice(0,fe(Ye(t,0)))}function cT(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:NT.of(s.to+i.length),range:$e.range(s.anchor+i.length,s.head+i.length)};let D=oT(M.doc,s.head);return!D||/\s/.test(D)||e.indexOf(D)>-1?{changes:{insert:i+t,from:s.head},effects:NT.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 aT(M,i,t){let e=null,N=M.changeByRange((i=>i.empty&&oT(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 TT(M,i,t,e){let N=e.stringPrefixes||eT.stringPrefixes,s=null,D=M.changeByRange((e=>{if(!e.empty)return{changes:[{insert:i,from:e.from},{insert:i,from:e.to}],effects:NT.of(e.to+i.length),range:$e.range(e.anchor+i.length,e.head+i.length)};let D,j=e.head,u=oT(M.doc,j);if(u==i){if(OT(M,j))return{changes:{insert:i+i,from:j},effects:NT.of(j+i.length),range:$e.cursor(j+i.length)};if(rT(M,j)){let e=t&&M.sliceDoc(j,j+3*i.length)==i+i+i?i+i+i:i;return{changes:{from:j,to:j+e.length,insert:e},range:$e.cursor(j+e.length)}}}else{if(t&&M.sliceDoc(j-2*i.length,j)==i+i&&(D=LT(M,j-2*i.length,N))>-1&&OT(M,D))return{changes:{insert:i+i+i+i,from:j},effects:NT.of(j+i.length),range:$e.cursor(j+i.length)};if(M.charCategorizer(j)(u)!=mN.Word&<(M,j,N)>-1&&!function(M,i,t,e){let N=el(M).resolveInner(i,-1),s=e.reduce(((M,i)=>Math.max(M,i.length)),0);for(let D=0;D<5;D++){let D=M.sliceDoc(N.from,Math.min(N.to,N.from+t.length+s)),j=D.indexOf(t);if(!j||j>-1&&e.indexOf(D.slice(0,j))>-1){let i=N.firstChild;for(;i&&i.from==N.from&&i.to-i.from>t.length+j;){if(M.sliceDoc(i.to-t.length,i.to)==t)return!1;i=i.firstChild}return!0}let u=N.to==i&&N.parent;if(!u)break;N=u}return!1}(M,j,i,N))return{changes:{insert:i+i,from:j},effects:NT.of(j+i.length),range:$e.cursor(j+i.length)}}return{range:s=e}}));return s?null:M.update(D,{scrollIntoView:!0,userEvent:"input.type"})}function OT(M,i){let t=el(M).resolveInner(i+1);return t.parent&&t.from==i}function LT(M,i,t){let e=M.charCategorizer(i);if(e(M.sliceDoc(i-1,i))!=mN.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))!=mN.Word)return t}return-1}function zT(M={}){return[ba,aa.of(M),fa,hT,Wa]}const yT=[{key:"Ctrl-Space",run:M=>!!M.state.field(ba,!1)&&(M.dispatch({effects:ra.of(!0)}),!0)},{key:"Escape",run:M=>{let i=M.state.field(ba,!1);return!(!i||!i.active.some((M=>0!=M.state)))&&(M.dispatch({effects:oa.of(null)}),!0)}},{key:"ArrowDown",run:Ya(!0)},{key:"ArrowUp",run:Ya(!1)},{key:"PageDown",run:Ya(!0,"page")},{key:"PageUp",run:Ya(!1,"page")},{key:"Enter",run:M=>{let i=M.state.field(ba,!1);return!(M.state.readOnly||!i||!i.open||i.open.selected<0||i.open.disabled||Date.now()-i.open.timestamp<M.state.facet(aa).interactionDelay)&&pa(M,i.open.options[i.open.selected])}}],hT=lN.highest(rI.computeN([aa],(M=>M.facet(aa).defaultKeymap?[yT]:[])));class AT{constructor(M,i,t){this.from=M,this.to=i,this.diagnostic=t}}class xT{constructor(M,i,t){this.diagnostics=M,this.panel=i,this.selected=t}static init(M,i,t){let e=M,N=t.facet(ZT).markerFilter;N&&(e=N(e,t));let s=LD.set(e.map((M=>M.from==M.to||M.from==M.to-1&&t.doc.lineAt(M.from).to==M.from?LD.widget({widget:new fT(M),diagnostic:M}).range(M.from):LD.mark({attributes:{class:"cm-lintRange cm-lintRange-"+M.severity+(M.markClass?" "+M.markClass:"")},diagnostic:M,inclusive:!0}).range(M.from,M.to))),!0);return new xT(s,i,dT(s))}}function dT(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 AT(M,t,N.diagnostic),!1})),e}const wT=QN.define(),ST=QN.define(),ET=QN.define(),QT=DN.define({create:()=>new xT(LD.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=dT(t,M.selected.diagnostic,N)||dT(t,null,N)}M=new xT(t,M.panel,e)}for(let t of i.effects)t.is(wT)?M=xT.init(t.value,M.panel,i.state):t.is(ST)?M=new xT(M.diagnostics,t.value?VT.open:null,M.selected):t.is(ET)&&(M=new xT(M.diagnostics,M.panel,t.value));return M},provide:M=>[yg.from(M,(M=>M.panel)),sI.decorations.from(M,(M=>M.diagnostics))]}),kT=LD.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function CT(M,i,t){let{diagnostics:e}=M.state.field(QT),N=[],s=2e8,D=0;e.between(i-(t<0?1:0),i+(t>0?1:0),((M,e,{spec:j})=>{i>=M&&i<=e&&(M==e||(i>M||t>0)&&(i<e||t<0))&&(N.push(j.diagnostic),s=Math.min(M,s),D=Math.max(e,D))}));let j=M.state.facet(ZT).tooltipFilter;return j&&(N=j(N,M.state)),N.length?{pos:s,end:D,above:M.state.doc.lineAt(s).to<D,create:()=>({dom:UT(M,N)})}:null}function UT(M,i){return Mc("ul",{class:"cm-tooltip-lint"},i.map((i=>mT(M,i,!1))))}const bT=M=>{let i=M.state.field(QT,!1);return!(!i||!i.panel)&&(M.dispatch({effects:ST.of(!1)}),!0)},pT=[{key:"Mod-Shift-m",run:M=>{let i=M.state.field(QT,!1);var t,e;i&&i.panel||M.dispatch({effects:(t=M.state,e=[ST.of(!0)],t.field(QT,!1)?e:e.concat(QN.appendConfig.of(PT)))});let N=Tg(M,VT.open);return N&&N.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:M=>{let i=M.state.field(QT,!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)}}],ZT=Ke.define({combine:M=>Object.assign({sources:M.map((M=>M.source)).filter((M=>null!=M))},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 YT(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 mT(M,i,t){var e;let N=t?YT(i.actions):[];return Mc("li",{class:"cm-diagnostic cm-diagnostic-"+i.severity},Mc("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,D=e=>{if(e.preventDefault(),s)return;s=!0;let N=dT(M.state.field(QT).diagnostics,i);N&&t.apply(M,N.from,N.to)},{name:j}=t,u=N[e]?j.indexOf(N[e]):-1,I=u<0?j:[j.slice(0,u),Mc("u",j.slice(u,u+1)),j.slice(u+1)];return Mc("button",{type:"button",class:"cm-diagnosticAction",onclick:D,onmousedown:D,"aria-label":` Action: ${j}${u<0?"":` (access key "${N[e]})"`}.`},I)})),i.source&&Mc("div",{class:"cm-diagnosticSource"},i.source))}class fT extends TD{constructor(M){super(),this.diagnostic=M}eq(M){return M.diagnostic==this.diagnostic}toDOM(){return Mc("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class WT{constructor(M,i){this.diagnostic=i,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=mT(M,i,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class VT{constructor(M){this.view=M,this.items=[];this.list=Mc("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:i=>{if(27==i.keyCode)bT(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=YT(t.actions);for(let N=0;N<e.length;N++)if(e[N].toUpperCase().charCodeAt(0)==i.keyCode){let i=dT(this.view.state.field(QT).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=Mc("div",{class:"cm-panel-lint"},this.list,Mc("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>bT(this.view)},"×")),this.update()}get selectedIndex(){let M=this.view.state.field(QT).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(QT),t=0,e=!1,N=null;for(M.between(0,this.view.state.doc.length,((M,s,{spec:D})=>{let j,u=-1;for(let M=t;M<this.items.length;M++)if(this.items[M].diagnostic==D.diagnostic){u=M;break}u<0?(j=new WT(this.view,D.diagnostic),this.items.splice(t,0,j),e=!0):(j=this.items[u],u>t&&(this.items.splice(t,u-t),e=!0)),i&&j.diagnostic==i.diagnostic?j.dom.hasAttribute("aria-selected")||(j.dom.setAttribute("aria-selected","true"),N=j):j.dom.hasAttribute("aria-selected")&&j.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 WT(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=dT(this.view.state.field(QT).diagnostics,this.items[M].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:ET.of(i)})}static open(M){return new VT(M)}}function vT(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 GT=sI.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:vT("#d11")},".cm-lintRange-warning":{backgroundImage:vT("orange")},".cm-lintRange-info":{backgroundImage:vT("#999")},".cm-lintRange-hint":{backgroundImage:vT("#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}}}),PT=[QT,sI.decorations.compute([QT],(M=>{let{selected:i,panel:t}=M.field(QT);return i&&t&&i.from!=i.to?LD.set([kT.range(i.from,i.to)]):LD.none})),rg(CT,{hideOn:function(M,i){let t=M.startState.doc.lineAt(i.pos);return!(!M.effects.some((M=>M.is(wT)))&&!M.changes.touchesRange(t.from,t.to))}}),GT];class RT{constructor(M,i,t,e,N,s,D,j,u,I=0,g){this.p=M,this.stack=i,this.state=t,this.reducePos=e,this.pos=N,this.score=s,this.buffer=D,this.bufferBase=j,this.curContext=u,this.lookAhead=I,this.parent=g}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 RT(M,[],i,t,t,0,[],0,e?new BT(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 D=this.stack.length-3*(t-1)-(262144&M?6:0),j=D?this.stack[D-2]:this.p.ranges[0].from,u=this.reducePos-j;u>=2e3&&!(null===(i=this.p.parser.nodeSet.types[e])||void 0===i?void 0:i.isAnonymous)&&(j==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=j,this.p.lastBigReductionSize=u));let I=D?this.stack[D-1]:0,g=this.bufferBase+this.buffer.length-I;if(e<N.minRepeatTerm||131072&M){let M=N.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(e,j,M,g+4,!0)}if(262144&M)this.state=this.stack[D];else{let M=this.stack[D-3];this.state=N.getGoto(M,e,!0)}for(;this.stack.length>D;)this.stack.pop();this.reduceContext(e,j)}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 RT(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 FT(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 BT(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 BT{constructor(M,i){this.tracker=M,this.context=i,this.hash=M.strict?M.hash(i):0}}class FT{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 JT{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 JT(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 JT(this.stack,this.pos,this.index)}}function XT(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 HT{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const $T=new HT;class _T{constructor(M,i){this.input=M,this.ranges=i,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=$T,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=$T,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 qT{constructor(M,i){this.data=M,this.id=i}token(M,i){let{parser:t}=i.p;iO(this.data,M,i,this.id,t.data,t.tokenPrecTable)}}qT.prototype.contextual=qT.prototype.fallback=qT.prototype.extend=!1;class KT{constructor(M,i,t){this.precTable=i,this.elseToken=t,this.data="string"==typeof M?XT(M):M}token(M,i){let t=M.pos,e=0;for(;;){let t=M.next<0,N=M.resolveOffset(1,1);if(iO(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))}}KT.prototype.contextual=qT.prototype.fallback=qT.prototype.extend=!1;class MO{constructor(M,i={}){this.token=M,this.contextual=!!i.contextual,this.fallback=!!i.fallback,this.extend=!!i.extend}}function iO(M,i,t,e,N,s){let D=0,j=1<<e,{dialect:u}=t.p.parser;M:for(;0!=(j&M[D]);){let t=M[D+1];for(let e=D+3;e<t;e+=2)if((M[e+1]&j)>0){let t=M[e];if(u.allows(t)&&(-1==i.token.value||i.token.value==t||eO(t,i.token.value,N,s))){i.acceptToken(t);break}}let e=i.next,I=0,g=M[D+2];if(!(i.next<0&&g>I&&65535==M[t+3*g-3])){for(;I<g;){let N=I+g>>1,s=t+N+(N<<1),j=M[s],u=M[s+1]||65536;if(e<j)g=N;else{if(!(e>=u)){D=M[s+2],i.advance();continue M}I=N+1}}break}D=M[t+3*g-1]}}function tO(M,i,t){for(let e,N=i;65535!=(e=M[N]);N++)if(e==t)return N-i;return-1}function eO(M,i,t,e){let N=tO(t,e,i);return N<0||tO(t,e,M)<N}const NO="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let sO=null;function DO(M,i,t){let e=M.cursor(Mn.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 jO{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?DO(M.tree,M.from+M.offset,1)-M.offset:M.from,this.safeTo=M.openEnd?DO(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 tn){if(s==M){if(s<this.safeFrom)return null;let M=s+N.length;if(M<=this.safeTo){let i=N.prop(Jg.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 uO{constructor(M,i){this.stream=i,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=M.tokenizers.map((M=>new HT))}getActions(M){let i=0,t=null,{parser:e}=M.p,{tokenizers:N}=e,s=e.stateSlot(M.state,3),D=M.curContext?M.curContext.hash:0,j=0;for(let e=0;e<N.length;e++){if(0==(1<<e&s))continue;let u=N[e],I=this.tokens[e];if((!t||u.fallback)&&((u.contextual||I.start!=M.pos||I.mask!=s||I.context!=D)&&(this.updateCachedToken(I,u,M),I.mask=s,I.context=D),I.lookAhead>I.end+25&&(j=Math.max(I.lookAhead,j)),0!=I.value)){let e=i;if(I.extended>-1&&(i=this.addActions(M,I.extended,I.end,i)),i=this.addActions(M,I.value,I.end,i),!u.extend&&(t=I,i>e))break}}for(;this.actions.length>i;)this.actions.pop();return j&&M.setLookAhead(j),t||M.pos!=this.stream.end||(t=new HT,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 HT,{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:D}=s;for(let M=0;M<2;M++)for(let j=s.stateSlot(N,M?2:1);;j+=3){if(65535==D[j]){if(1!=D[j+1]){0==e&&2==D[j+1]&&(e=this.putAction(oO(D,j+2),i,t,e));break}j=oO(D,j+2)}D[j]==i&&(e=this.putAction(oO(D,j+1),i,t,e))}return e}}class IO{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 _T(i,e),this.tokens=new uO(M,this.stream),this.topTerm=M.top[1];let{from:N}=e[0];this.stacks=[RT.start(this,M.top[0],N)],this.fragments=t.length&&this.stream.end-N>4*M.bufferLength?new jO(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 D=t[s];for(;;){if(this.tokens.mainToken=null,D.pos>e)N.push(D);else{if(this.advanceStack(D,N,t))continue;{M||(M=[],i=[]),M.push(D);let t=this.tokens.getMainToken(D);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 NO&&console.log("Finish with "+this.stackID(i)),this.stackToTree(i);if(this.parser.strict)throw NO&&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 NO&&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=NO?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 D=this.fragments.nodeAt(e);D;){let e=this.parser.nodeSet.types[D.type.id]==D.type?N.getGoto(M.state,D.type.id):-1;if(e>-1&&D.length&&(!i||(D.prop(Jg.contextHash)||0)==t))return M.useNode(D,e),NO&&console.log(s+this.stackID(M)+` (via reuse of ${N.getName(D.type.id)})`),!0;if(!(D instanceof tn)||0==D.children.length||D.positions[0]>0)break;let j=D.children[0];if(!(j instanceof tn&&0==D.positions[0]))break;D=j}}let D=N.stateSlot(M.state,4);if(D>0)return M.reduce(D),NO&&console.log(s+this.stackID(M)+` (via always-reduce ${N.getName(65535&D)})`),!0;if(M.stack.length>=8400)for(;M.stack.length>6e3&&M.forceReduce(););let j=this.tokens.getActions(M);for(let D=0;D<j.length;){let u=j[D++],I=j[D++],g=j[D++],n=D==j.length||!t,l=n?M:M.split(),r=this.tokens.mainToken;if(l.apply(u,I,r?r.start:l.pos,g),NO&&console.log(s+this.stackID(l)+` (via ${0==(65536&u)?"shift":`reduce of ${N.getName(65535&u)}`} for ${N.getName(I)} @ ${e}${l==M?"":", split"})`),n)return!0;l.pos>e?i.push(l):t.push(l)}return!1}advanceFully(M,i){let t=M.pos;for(;;){if(!this.advanceStack(M,null,null))return!1;if(M.pos>t)return gO(M,i),!0}}runRecovery(M,i,t){let e=null,N=!1;for(let s=0;s<M.length;s++){let D=M[s],j=i[s<<1],u=i[1+(s<<1)],I=NO?this.stackID(D)+" -> ":"";if(D.deadEnd){if(N)continue;if(N=!0,D.restart(),NO&&console.log(I+this.stackID(D)+" (restarted)"),this.advanceFully(D,t))continue}let g=D.split(),n=I;for(let M=0;g.forceReduce()&&M<10;M++){if(NO&&console.log(n+this.stackID(g)+" (via force-reduce)"),this.advanceFully(g,t))break;NO&&(n=this.stackID(g)+" -> ")}for(let M of D.recoverByInsert(j))NO&&console.log(I+this.stackID(M)+" (via recover-insert)"),this.advanceFully(M,t);this.stream.end>D.pos?(u==D.pos&&(u++,j=0),D.recoverByDelete(j,u),NO&&console.log(I+this.stackID(D)+` (via recover-delete ${this.parser.getName(j)})`),gO(D,t)):(!e||e.score<D.score)&&(e=D)}return e}stackToTree(M){return M.close(),tn.build({buffer:JT.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=(sO||(sO=new WeakMap)).get(M);return i||sO.set(M,i=String.fromCodePoint(this.nextStackID++)),i+M}}function gO(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 nO{constructor(M,i,t){this.source=M,this.flags=i,this.disabled=t}allows(M){return!this.disabled||0==this.disabled[M]}}const lO=M=>M;class rO extends hn{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=Jg[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 D=-e;D>0;D--)N(i[t++],M,s);t++}}}this.nodeSet=new _g(i.map(((i,N)=>$g.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=Rg;let s=XT(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(cO),this.states=XT(M.states,Uint32Array),this.data=XT(M.stateData),this.goto=XT(M.goto),this.maxTerm=M.maxTerm,this.tokenizers=M.tokenizers.map((M=>"number"==typeof M?new qT(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 IO(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,D=e[N++];if(s&&t)return D;for(let t=N+(i>>1);N<t;N++)if(e[N]==M)return D;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 oO(t,s+2);break}N=t[s=oO(t,s+2)]}if(N==i||0==N)return oO(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=oO(this.data,t+2)}e=i(oO(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=oO(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(rO.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]=cO(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 nO(M,t,e)}static deserialize(M){return new rO(M)}}function oO(M,i){return M[i]|M[i+1]<<16}function cO(M){if(M.external){let i=M.extend?1:0;return(t,e)=>M.external(t,e)<<1|i}return M.get}const aO=[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],TO=new class{constructor(M){this.start=M.start,this.shift=M.shift||lO,this.reduce=M.reduce||lO,this.reuse=M.reuse||lO,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}),OO=new MO(((M,i)=>{let{next:t}=M;(125==t||-1==t||i.context)&&M.acceptToken(310)}),{contextual:!0,fallback:!0}),LO=new MO(((M,i)=>{let t,{next:e}=M;aO.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}),zO=new MO(((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 yO(M,i){return M>=65&&M<=90||M>=97&&M<=122||95==M||M>=192||!i&&M>=48&&M<=57}const hO=new MO(((M,i)=>{if(60!=M.next||!i.dialectEnabled(0))return;if(M.advance(),47==M.next)return;let t=0;for(;aO.indexOf(M.next)>-1;)M.advance(),t++;if(yO(M.next,!0)){for(M.advance(),t++;yO(M.next,!1);)M.advance(),t++;for(;aO.indexOf(M.next)>-1;)M.advance(),t++;if(44==M.next)return;for(let i=0;;i++){if(7==i){if(!yO(M.next,!0))return;break}if(M.next!="extends".charCodeAt(i))break;M.advance(),t++}}M.acceptToken(3,-t)})),AO=En({"get set async static":Hn.modifier,"for while do if else switch try catch finally return throw break continue default case":Hn.controlKeyword,"in of await yield void typeof delete instanceof":Hn.operatorKeyword,"let var const using function class extends":Hn.definitionKeyword,"import export from":Hn.moduleKeyword,"with debugger as new":Hn.keyword,TemplateString:Hn.special(Hn.string),super:Hn.atom,BooleanLiteral:Hn.bool,this:Hn.self,null:Hn.null,Star:Hn.modifier,VariableName:Hn.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Hn.function(Hn.variableName),VariableDefinition:Hn.definition(Hn.variableName),Label:Hn.labelName,PropertyName:Hn.propertyName,PrivatePropertyName:Hn.special(Hn.propertyName),"CallExpression/MemberExpression/PropertyName":Hn.function(Hn.propertyName),"FunctionDeclaration/VariableDefinition":Hn.function(Hn.definition(Hn.variableName)),"ClassDeclaration/VariableDefinition":Hn.definition(Hn.className),PropertyDefinition:Hn.definition(Hn.propertyName),PrivatePropertyDefinition:Hn.definition(Hn.special(Hn.propertyName)),UpdateOp:Hn.updateOperator,"LineComment Hashbang":Hn.lineComment,BlockComment:Hn.blockComment,Number:Hn.number,String:Hn.string,Escape:Hn.escape,ArithOp:Hn.arithmeticOperator,LogicOp:Hn.logicOperator,BitOp:Hn.bitwiseOperator,CompareOp:Hn.compareOperator,RegExp:Hn.regexp,Equals:Hn.definitionOperator,Arrow:Hn.function(Hn.punctuation),": Spread":Hn.punctuation,"( )":Hn.paren,"[ ]":Hn.squareBracket,"{ }":Hn.brace,"InterpolationStart InterpolationEnd":Hn.special(Hn.brace),".":Hn.derefOperator,", ;":Hn.separator,"@":Hn.meta,TypeName:Hn.typeName,TypeDefinition:Hn.definition(Hn.typeName),"type enum interface implements namespace module declare":Hn.definitionKeyword,"abstract global Privacy readonly override":Hn.modifier,"is keyof unique infer":Hn.operatorKeyword,JSXAttributeValue:Hn.attributeValue,JSXText:Hn.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Hn.angleBracket,"JSXIdentifier JSXNameSpacedName":Hn.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Hn.attributeName,"JSXBuiltin/JSXIdentifier":Hn.standard(Hn.tagName)}),xO={__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},dO={__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},wO={__proto__:null,"<":143},SO=rO.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:TO,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:[AO],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:[LO,zO,hO,2,3,4,5,6,7,8,9,10,11,12,13,OO,new KT("$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 KT("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=>xO[M]||-1},{term:334,get:M=>dO[M]||-1},{term:70,get:M=>wO[M]||-1}],tokenPrec:14638}),EO=[iT("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),iT("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),iT("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),iT("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),iT("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),iT("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),iT("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),iT("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),iT("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),iT('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),iT('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],QO=EO.concat([iT("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),iT("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),iT("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),kO=new zn,CO=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function UO(M){return(i,t)=>{let e=i.node.getChild("VariableDefinition");return e&&t(e,M),!0}}const bO=["FunctionDeclaration"],pO={FunctionDeclaration:UO("function"),ClassDeclaration:UO("class"),ClassExpression:()=>!0,EnumDeclaration:UO("constant"),TypeAliasDeclaration:UO("type"),NamespaceDeclaration:UO("namespace"),VariableDefinition(M,i){M.matchContext(bO)||i(M,"variable")},TypeDefinition(M,i){i(M,"type")},__proto__:null};function ZO(M,i){let t=kO.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(Mn.IncludeAnonymous).iterate((i=>{if(N)N=!1;else if(i.name){let M=pO[i.name];if(M&&M(i,s)||CO.has(i.name))return!1}else if(i.to-i.from>8192){for(let t of ZO(M,i.node))e.push(t);return!1}})),kO.set(i,e),e}const YO=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,mO=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function fO(M){let i=el(M.state).resolveInner(M.pos,-1);if(mO.indexOf(i.name)>-1)return null;let t="VariableName"==i.name||i.to-i.from<20&&YO.test(M.state.sliceDoc(i.from,i.to));if(!t&&!M.explicit)return null;let e=[];for(let t=i;t;t=t.parent)CO.has(t.name)&&(e=e.concat(ZO(M.state.doc,t)));return{options:e,from:t?i.from:M.pos,validFor:YO}}function WO(M,i,t){var e;let N=[];for(;;){let s,D=i.firstChild;if("VariableName"==(null==D?void 0:D.name))return N.push(M(D)),{path:N.reverse(),name:t};if("MemberExpression"!=(null==D?void 0:D.name)||"PropertyName"!=(null===(e=s=D.lastChild)||void 0===e?void 0:e.name))return null;N.push(M(s)),i=D}}function VO(M){let i=new Map;return t=>{let e=function(M){let i=i=>M.state.doc.sliceString(i.from,i.to),t=el(M.state).resolveInner(M.pos,-1);return"PropertyName"==t.name?WO(i,t.parent,i(t)):"."!=t.name&&"?."!=t.name||"MemberExpression"!=t.parent.name?mO.indexOf(t.name)>-1?null:"VariableName"==t.name||t.to-t.from<20&&YO.test(i(t))?{path:[],name:i(t)}:"MemberExpression"==t.name?WO(i,t,""):M.explicit?{path:[],name:""}:null:WO(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 D;e.add(s);try{D=M[s]}catch(M){continue}t.push({label:s,type:"function"==typeof D?/^[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:YO}}}const vO=tl.define({name:"javascript",parser:SO.configure({props:[zl.add({IfStatement:El({except:/^\s*({|else\b)/}),TryStatement:El({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:wl({closing:"}"}),ArrowFunction:M=>M.baseIndent+M.unit,"TemplateString BlockComment":()=>null,"Statement Property":El({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}),kl.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:"$"}}),GO={test:M=>/^JSX/.test(M.name),facet:qn({commentTokens:{block:{open:"{/*",close:"*/}"}}})},PO=vO.configure({dialect:"ts"},"typescript"),RO=vO.configure({dialect:"jsx",props:[Kn.add((M=>M.isTop?[GO]:void 0))]}),BO=vO.configure({dialect:"jsx ts",props:[Kn.add((M=>M.isTop?[GO]:void 0))]},"typescript");let FO=M=>({label:M,type:"keyword"});const JO="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(FO),XO=JO.concat(["declare","implements","private","protected","public"].map(FO));function HO(M={}){let i=M.jsx?M.typescript?BO:RO:M.typescript?PO:vO,t=M.typescript?QO.concat(XO):EO.concat(JO);return new rl(i,[vO.data.of({autocomplete:(e=mO,N=Da(t),M=>{for(let i=el(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)})}),vO.data.of({autocomplete:fO}),M.jsx?qO:[]]);var e,N}function $O(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 _O="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),qO=sI.inputHandler.of(((M,i,t,e,N)=>{if((_O?M.composing:M.compositionStarted)||M.state.readOnly||i!=t||">"!=e&&"/"!=e||!vO.isActiveAt(M.state,i,-1))return!1;let s=N(),{state:D}=s,j=D.changeByRange((M=>{var i;let t,{head:N}=M,s=el(D).resolveInner(N-1,-1);if("JSXStartTag"==s.name&&(s=s.parent),D.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=$O(D.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(D.doc.sliceString(N,N+2))&&(t=$O(D.doc,i,N)))return{range:M,changes:{from:N,insert:`</${t}>`}}}}return{range:M}}));return!j.changes.empty&&(M.dispatch([s,D.update(j,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),KO=M=>void 0===M||M,ML=(M={})=>{let i=[];KO(M.defaultKeymap)&&i.push(...Ko),KO(M.closeBracketsKeymap)&&i.push(...lT),KO(M.searchKeymap)&&i.push(...$c),KO(M.historyKeymap)&&i.push(...io),KO(M.foldKeymap)&&i.push(...Gl),KO(M.lintKeymap)&&i.push(...pT);const t=[];return KO(M.lineNumbers)&&t.push(Vg()),KO(M.highlightActiveLineGutter)&&t.push(Pg),KO(M.highlightSpecialChars)&&t.push(function(M={}){return[GI.of(M),PI||(PI=uj.fromClass(class{constructor(M){this.view=M,this.decorations=LD.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(M.state.facet(GI)),this.decorations=this.decorator.createDeco(M)}makeDecorator(M){return new mI({regexp:M.specialChars,decoration:(i,t,e)=>{let{doc:N}=t.state,s=Ye(i[0],0);if(9==s){let M=N.lineAt(e),i=t.state.tabSize,s=ss(M.text,i,e-M.from);return LD.replace({widget:new BI((i-s%i)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=LD.replace({widget:new RI(M,s)}))},boundary:M.replaceTabs?void 0:/[^]/})}update(M){let i=M.state.facet(GI);M.startState.facet(GI)!=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}))]}()),KO(M.history)&&t.push(function(M={}){return[fr,mr.of(M),sI.domEventHandlers({beforeinput(M,i){let t="historyUndo"==M.inputType?Vr:"historyRedo"==M.inputType?vr:null;return!!t&&(M.preventDefault(),t(i))}})]}()),KO(M.foldGutter)&&t.push(function(M={}){let i=Object.assign(Object.assign({},Hl),M),t=new $l(i,!0),e=new $l(i,!1),N=uj.fromClass(class{constructor(M){this.from=M.viewport.from,this.markers=this.buildMarkers(M)}update(M){(M.docChanged||M.viewportChanged||M.startState.facet(ll)!=M.state.facet(ll)||M.startState.field(ml,!1)!=M.state.field(ml,!1)||el(M.startState)!=el(M.state)||i.foldingChanged(M))&&(this.markers=this.buildMarkers(M.view))}buildMarkers(M){let i=new XN;for(let N of M.viewportLineBlocks){let s=fl(M.state,N.from,N.to)?e:Ul(M.state,N.from,N.to)?t:null;s&&i.add(N.from,N.from,s)}return i.finish()}}),{domEventHandlers:s}=i;return[N,wg({class:"cm-foldGutter",markers(M){var i;return(null===(i=M.plugin(N))||void 0===i?void 0:i.markers)||JN.empty},initialSpacer:()=>new $l(i,!1),domEventHandlers:Object.assign(Object.assign({},s),{click:(M,i,t)=>{if(s.click&&s.click(M,i,t))return!0;let e=fl(M.state,i.from,i.to);if(e)return M.dispatch({effects:Zl.of(e)}),!0;let N=Ul(M.state,i.from,i.to);return!!N&&(M.dispatch({effects:pl.of(N)}),!0)}})}),Bl()]}()),KO(M.drawSelection)&&t.push(function(M={}){return[wI.of(M),EI,kI,UI,ij.of(!0)]}()),KO(M.dropCursor)&&t.push([pI,ZI]),KO(M.allowMultipleSelections)&&t.push(vN.allowMultipleSelections.of(!0)),KO(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:D}=M,j=-1,u=[];for(let{head:M}of D.selection.ranges){let i=D.doc.lineAt(M);if(i.from==j)continue;j=i.from;let t=Ol(D,i.from);if(null==t)continue;let e=/^\s*/.exec(i.text)[0],N=Tl(D,t);e!=N&&u.push({from:i.from,to:i.from+e.length,insert:N})}return u.length?[M,{changes:u,sequential:!0}]:M}))),KO(M.syntaxHighlighting)&&t.push(function(M,i){let t,e=[er];return M instanceof ql&&(M.module&&e.push(sI.styleModule.of(M.module)),t=M.themeType),(null==i?void 0:i.fallback)?e.push(Mr.of(M)):t?e.push(Kl.computeN([sI.darkTheme],(i=>i.facet(sI.darkTheme)==("dark"==t)?[M]:[]))):e.push(Kl.of(M)),e}(Nr,{fallback:!0})),KO(M.bracketMatching)&&t.push(function(M={}){return[ur.of(M),rr]}()),KO(M.closeBrackets)&&t.push([nT,DT]),KO(M.autocompletion)&&t.push(zT()),KO(M.rectangularSelection)&&t.push(function(M){let i=(null==M?void 0:M.eventFilter)||(M=>M.altKey&&0==M.button);return sI.mouseSelectionStyle.of(((M,t)=>i(t)?$I(M,t):null))}()),KO(M.crosshairCursor)&&t.push(function(M={}){let[i,t]=_I[M.key||"Alt"],e=uj.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,sI.contentAttributes.of((M=>{var i;return(null===(i=M.plugin(e))||void 0===i?void 0:i.isDown)?qI:null}))]}()),KO(M.highlightActiveLine)&&t.push(JI),KO(M.highlightSelectionMatches)&&t.push(function(M){let i=[yc,zc];return M&&i.push(ac.of(M)),i}()),M.tabSize&&"number"==typeof M.tabSize&&t.push(cl.of(" ".repeat(M.tabSize))),t.concat([rI.of(i.flat())]).filter(Boolean)},iL={"&":{fontSize:"14px",fontFamily:"Colfax-regular",fontWeight:"400"},".cm-content":{},".cm-scroller":{}};M.NileCodeEditor=class extends RM{constructor(){super(...arguments),this.multiline=!1,this.value="",this.customAutoCompletions={},this.updateValue=!1,this.errorMessage="",this.error=!1,this.noborder=!1,this.expandable=!1,this.readonly=!1,this.lineNumbersComp=new oN,this.restrictSingleLineComp=new oN,this.readOnlyComp=new oN}static get styles(){return[ae]}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}convertToSingleLine(M){return M.replace(/\s+/g," ").trim()}handleValueChange(){}getLineNumbersExension(){return this.multiline?Vg():[]}getReadOnlyExtension(){return vN.readOnly.of(this.readonly)}getSingleLineExtension(){return this.multiline?[]:vN.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}firstUpdated(){const M=this.lineNumbersComp.of(this.getLineNumbersExension()),i=this.readOnlyComp.of(this.getReadOnlyExtension()),t=this.restrictSingleLineComp.of(this.getSingleLineExtension()),e=vO.data.of({autocomplete:VO(this.customAutoCompletions)});let N=vN.create({doc:this.multiline?this.value:this.convertToSingleLine(this.value),extensions:[ML({lineNumbers:!1,highlightActiveLine:!1,foldGutter:!1}),M,i,t,e,zT(),HO(),this.setTheme(),sI.updateListener.of((M=>{M.docChanged&&this.emitValues(this.view.state.doc.toString())}))]});this.view=new sI({state:N,parent:this.codeEditor}),this.addOpenListeners()}addOpenListeners(){this.view.contentDOM.addEventListener("blur",(()=>this.toggleFocusAndBlur("blur"))),this.view.contentDOM.addEventListener("focus",(()=>this.toggleFocusAndBlur("focus")))}singleLineMultiLineToggle(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:this.multiline?this.value:this.convertToSingleLine(this.value)}})}updated(M){super.updated(M),M.has("value")&&this.updateValue&&this.singleLineMultiLineToggle(),M.has("multiline")&&(this.view.dispatch({effects:[this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())]}),this.singleLineMultiLineToggle()),M.has("readonly")&&this.view.dispatch({effects:this.readOnlyComp.reconfigure(this.getReadOnlyExtension())})}toggleFocusAndBlur(M){"blur"===M&&this.emit("nile-blur",{onBlur:!0}),"focus"===M&&this.emit("nile-focus",{onFocus:!0})}setTheme(){return sI.theme(iL)}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(){const M=!!this.errorMessage,i=!!this.error,t=!!this.noborder;return V`<div
|
5791
5791
|
part="code-editor-base"
|
5792
5792
|
class=${AM({"code-mirror":!0,noborder:t,error:i||M,"code-mirror__singleline":!this.multiline})}
|
5793
5793
|
>
|
@@ -5803,7 +5803,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
5803
5803
|
<nile-form-error-message
|
5804
5804
|
>${this.errorMessage}</nile-form-error-message
|
5805
5805
|
>
|
5806
|
-
`:""}`}},i([cM(".code-mirror")],M.NileCodeEditor.prototype,"codeEditor",void 0),i([lM({type:Boolean,reflect:!0})],M.NileCodeEditor.prototype,"multiline",void 0),i([lM({type:String})],M.NileCodeEditor.prototype,"value",void 0),i([lM({type:String})],M.NileCodeEditor.prototype,"customAutoCompletions",void 0),i([lM({type:Boolean})],M.NileCodeEditor.prototype,"updateValue",void 0),i([lM({attribute:"error-message"})],M.NileCodeEditor.prototype,"errorMessage",void 0),i([lM({attribute:"error"})],M.NileCodeEditor.prototype,"error",void 0),i([lM({attribute:"noborder"})],M.NileCodeEditor.prototype,"noborder",void 0),i([lM({type:Boolean})],M.NileCodeEditor.prototype,"expandable",void 0),i([lM({type:Boolean})],M.NileCodeEditor.prototype,"readonly",void 0),i([GM(["value"],{waitUntilFirstUpdate:!0})],M.NileCodeEditor.prototype,"handleValueChange",null),M.NileCodeEditor=i([IM("nile-code-editor")],M.NileCodeEditor);const
|
5806
|
+
`:""}`}},i([cM(".code-mirror")],M.NileCodeEditor.prototype,"codeEditor",void 0),i([lM({type:Boolean,reflect:!0})],M.NileCodeEditor.prototype,"multiline",void 0),i([lM({type:String})],M.NileCodeEditor.prototype,"value",void 0),i([lM({type:String})],M.NileCodeEditor.prototype,"customAutoCompletions",void 0),i([lM({type:Boolean})],M.NileCodeEditor.prototype,"updateValue",void 0),i([lM({attribute:"error-message"})],M.NileCodeEditor.prototype,"errorMessage",void 0),i([lM({attribute:"error"})],M.NileCodeEditor.prototype,"error",void 0),i([lM({attribute:"noborder"})],M.NileCodeEditor.prototype,"noborder",void 0),i([lM({type:Boolean})],M.NileCodeEditor.prototype,"expandable",void 0),i([lM({type:Boolean})],M.NileCodeEditor.prototype,"readonly",void 0),i([GM(["value"],{waitUntilFirstUpdate:!0})],M.NileCodeEditor.prototype,"handleValueChange",null),M.NileCodeEditor=i([IM("nile-code-editor")],M.NileCodeEditor);const tL=j`
|
5807
5807
|
:host {
|
5808
5808
|
display: contents;
|
5809
5809
|
|
@@ -5964,7 +5964,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
5964
5964
|
[hidden] {
|
5965
5965
|
display: none;
|
5966
5966
|
}
|
5967
|
-
`,
|
5967
|
+
`,eL=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}=yt(this,"alert.show",{dir:"ltr"});await rt(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}=yt(this,"alert.hide",{dir:"ltr"});await rt(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,ht(this,"nile-after-show")}async hide(){if(this.open)return this.open=!1,ht(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===eL.parentElement&&document.body.append(eL),eL.appendChild(this),requestAnimationFrame((()=>{this.clientWidth,this.show()})),this.addEventListener("nile-after-hide",(()=>{eL.removeChild(this),M(),null===eL.querySelector("nile-alert")&&eL.remove()}),{once:!0})}))}toastTags(M,i){return V`
|
5968
5968
|
<div class="alert__tag">
|
5969
5969
|
<img class="alert__tag-image" src="${i}" />
|
5970
5970
|
<span class="alert__tag-content"> ${M} </span>
|
@@ -6037,17 +6037,17 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6037
6037
|
></nile-icon-button>
|
6038
6038
|
`:""}
|
6039
6039
|
</div>
|
6040
|
-
`}},M.NileToast.styles=
|
6040
|
+
`}},M.NileToast.styles=tL,i([cM('[part~="base"]')],M.NileToast.prototype,"base",void 0),i([lM({type:Boolean,reflect:!0})],M.NileToast.prototype,"open",void 0),i([lM({type:Boolean,reflect:!0})],M.NileToast.prototype,"noIcon",void 0),i([lM({type:Boolean,reflect:!0})],M.NileToast.prototype,"closable",void 0),i([lM({type:Boolean,reflect:!0})],M.NileToast.prototype,"hasSlottedContent",void 0),i([lM({type:Boolean,reflect:!0})],M.NileToast.prototype,"hasSlottedIcon",void 0),i([lM({type:String,reflect:!0})],M.NileToast.prototype,"prefixImageUrl",void 0),i([lM({reflect:!0})],M.NileToast.prototype,"variant",void 0),i([lM({type:Number})],M.NileToast.prototype,"duration",void 0),i([lM({type:String})],M.NileToast.prototype,"title",void 0),i([lM({type:String})],M.NileToast.prototype,"content",void 0),i([lM({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([IM("nile-toast")],M.NileToast),zt("alert.show",{keyframes:[{opacity:0,scale:.8},{opacity:1,scale:1}],options:{duration:250,easing:"ease"}}),zt("alert.hide",{keyframes:[{opacity:1,scale:1},{opacity:0,scale:.8}],options:{duration:250,easing:"ease"}});const NL=j`
|
6041
6041
|
:host {
|
6042
6042
|
display: flex;
|
6043
6043
|
align-items: center;
|
6044
6044
|
}
|
6045
|
-
`;M.NileBreadcrumb=class extends RM{static get styles(){return[
|
6045
|
+
`;M.NileBreadcrumb=class extends RM{static get styles(){return[NL]}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`
|
6046
6046
|
<slot
|
6047
6047
|
@nile-click-item=${this.handleRemoveClick}
|
6048
6048
|
class="breadcrumb"
|
6049
6049
|
></slot>
|
6050
|
-
`}},M.NileBreadcrumb=i([IM("nile-breadcrumb")],M.NileBreadcrumb);const
|
6050
|
+
`}},M.NileBreadcrumb=i([IM("nile-breadcrumb")],M.NileBreadcrumb);const sL=j`
|
6051
6051
|
:host {
|
6052
6052
|
display: flex;
|
6053
6053
|
align-items: center;
|
@@ -6081,7 +6081,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6081
6081
|
.nile-breadcrumb-item__last-slot-text {
|
6082
6082
|
color: #026e78;
|
6083
6083
|
}
|
6084
|
-
`;M.NileBreadcrumbItem=class extends RM{constructor(){super(...arguments),this.isLast=!1}static get styles(){return[
|
6084
|
+
`;M.NileBreadcrumbItem=class extends RM{constructor(){super(...arguments),this.isLast=!1}static get styles(){return[sL]}handleClick(){this.isLast||this.emit("nile-click-item")}render(){return V`
|
6085
6085
|
<slot
|
6086
6086
|
class=${AM({"nile-breadcrumb-item__slot-text":!this.isLast,"nile-breadcrumb-item__last-slot-text":this.isLast})}
|
6087
6087
|
@click=${this.handleClick}
|
@@ -6093,7 +6093,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6093
6093
|
class=${AM({"nile-breadcrumb-item__arrow":!0,"nile-breadcrumb-item__arrow-hidden":this.isLast})}
|
6094
6094
|
size="14"
|
6095
6095
|
></nile-icon>
|
6096
|
-
`}},i([rM()],M.NileBreadcrumbItem.prototype,"isLast",void 0),M.NileBreadcrumbItem=i([IM("nile-breadcrumb-item")],M.NileBreadcrumbItem);const
|
6096
|
+
`}},i([rM()],M.NileBreadcrumbItem.prototype,"isLast",void 0),M.NileBreadcrumbItem=i([IM("nile-breadcrumb-item")],M.NileBreadcrumbItem);const DL=j`
|
6097
6097
|
:host {
|
6098
6098
|
--min-width: 288px;
|
6099
6099
|
}
|
@@ -6165,7 +6165,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6165
6165
|
flex-direction: column;
|
6166
6166
|
gap: var(--nile-spacing-3-x);
|
6167
6167
|
}
|
6168
|
-
`;M.NileFormGroup=class extends RM{constructor(){super(...arguments),this.title="",this.subtitle=""}static get styles(){return[
|
6168
|
+
`;M.NileFormGroup=class extends RM{constructor(){super(...arguments),this.title="",this.subtitle=""}static get styles(){return[DL]}render(){return V`
|
6169
6169
|
<div class="form__base">
|
6170
6170
|
${this.title?V` <div class="form__header">
|
6171
6171
|
<div class="form__title-content">
|
@@ -6183,7 +6183,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6183
6183
|
<slot></slot>
|
6184
6184
|
</div>
|
6185
6185
|
</div>
|
6186
|
-
`}},i([cM(".form__body")],M.NileFormGroup.prototype,"nileformgroup",void 0),i([lM({type:String,reflect:!0})],M.NileFormGroup.prototype,"title",void 0),i([lM({type:String,reflect:!0})],M.NileFormGroup.prototype,"subtitle",void 0),M.NileFormGroup=i([IM("nile-form-group")],M.NileFormGroup);const
|
6186
|
+
`}},i([cM(".form__body")],M.NileFormGroup.prototype,"nileformgroup",void 0),i([lM({type:String,reflect:!0})],M.NileFormGroup.prototype,"title",void 0),i([lM({type:String,reflect:!0})],M.NileFormGroup.prototype,"subtitle",void 0),M.NileFormGroup=i([IM("nile-form-group")],M.NileFormGroup);const jL=j`
|
6187
6187
|
|
6188
6188
|
:host {
|
6189
6189
|
box-sizing: border-box;
|
@@ -6249,7 +6249,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6249
6249
|
<slot part="body" class="card__body"></slot>
|
6250
6250
|
</div>
|
6251
6251
|
<slot name="footer" part="footer" ?hidden="${!this.hasSlotController.test("footer")}" class="card__footer"></slot>
|
6252
|
-
`}},M.NileCard.styles=
|
6252
|
+
`}},M.NileCard.styles=jL,M.NileCard=i([IM("nile-card")],M.NileCard);const uL=j`
|
6253
6253
|
:host {
|
6254
6254
|
box-sizing: 'border-box';
|
6255
6255
|
}
|
@@ -6286,7 +6286,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6286
6286
|
--arrow-size: 18px;
|
6287
6287
|
--arrow-color: #ffff;
|
6288
6288
|
}
|
6289
|
-
`;M.NilePopover=class extends jM{constructor(){super(...arguments),this.placement="top",this.distance=18,this.title="",this.isShow=!1,this.arrowPlacement="anchor",this.handleClick=()=>{this.isShow=!this.isShow},this.handleDocumentClick=()=>{this.isShow&&(this.isShow=!this.isShow)}}static get styles(){return[
|
6289
|
+
`;M.NilePopover=class extends jM{constructor(){super(...arguments),this.placement="top",this.distance=18,this.title="",this.isShow=!1,this.arrowPlacement="anchor",this.handleClick=()=>{this.isShow=!this.isShow},this.handleDocumentClick=()=>{this.isShow&&(this.isShow=!this.isShow)}}static get styles(){return[uL]}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.handleDocumentClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.handleDocumentClick)}render(){return V`
|
6290
6290
|
<nile-popup
|
6291
6291
|
active
|
6292
6292
|
?arrow="${!!this.title&&this.isShow}"
|
@@ -6312,7 +6312,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6312
6312
|
<slot name="action" class="popover__action"> </slot>
|
6313
6313
|
</div>`:V``}
|
6314
6314
|
</nile-popup>
|
6315
|
-
`}},i([lM()],M.NilePopover.prototype,"placement",void 0),i([lM({type:Number})],M.NilePopover.prototype,"distance",void 0),i([lM({type:String})],M.NilePopover.prototype,"title",void 0),i([rM()],M.NilePopover.prototype,"isShow",void 0),i([lM({attribute:"arrow-placement"})],M.NilePopover.prototype,"arrowPlacement",void 0),M.NilePopover=i([IM("nile-popover")],M.NilePopover);const
|
6315
|
+
`}},i([lM()],M.NilePopover.prototype,"placement",void 0),i([lM({type:Number})],M.NilePopover.prototype,"distance",void 0),i([lM({type:String})],M.NilePopover.prototype,"title",void 0),i([rM()],M.NilePopover.prototype,"isShow",void 0),i([lM({attribute:"arrow-placement"})],M.NilePopover.prototype,"arrowPlacement",void 0),M.NilePopover=i([IM("nile-popover")],M.NilePopover);const IL=j`
|
6316
6316
|
:host {
|
6317
6317
|
}
|
6318
6318
|
|
@@ -6337,7 +6337,7 @@ const YM=Symbol.for(""),mM=M=>{if((null==M?void 0:M.r)===YM)return null==M?void
|
|
6337
6337
|
.inner__text nile-badge {
|
6338
6338
|
color:var(--nile-colors-white-base);
|
6339
6339
|
}
|
6340
|
-
`;M.NileButtonFilter=class extends RM{constructor(){super(...arguments),this.values=[],this.isOpen=!1}static get styles(){return[
|
6340
|
+
`;M.NileButtonFilter=class extends RM{constructor(){super(...arguments),this.values=[],this.isOpen=!1}static get styles(){return[IL]}handleInnerText(M){if(!M.length)return"";let i=M[0].slice(0,3);return M[0].length>3&&(i+="."),V`
|
6341
6341
|
<div class="inner__text">
|
6342
6342
|
<span> ${i}</span>
|
6343
6343
|
${M.length>1?V`
|