@kerebron/legacy-compat 0.6.7 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{__vite-browser-external-VbsIpWqm.cjs → __vite-browser-external-Sbat7waZ.cjs} +9 -9
- package/dist/__vite-browser-external-Sbat7waZ.cjs.map +1 -0
- package/dist/{__vite-browser-external-Du-H1nLY.js → __vite-browser-external-UNoZbnM_.js} +167 -135
- package/dist/__vite-browser-external-UNoZbnM_.js.map +1 -0
- package/dist/{index-DaDx1HGC.cjs → index-22wlingm.cjs} +2 -2
- package/dist/{index-DaDx1HGC.cjs.map → index-22wlingm.cjs.map} +1 -1
- package/dist/{index-9cv97YvE.cjs → index-B3pe8ikc.cjs} +2 -2
- package/dist/{index-9cv97YvE.cjs.map → index-B3pe8ikc.cjs.map} +1 -1
- package/dist/{index-Bb2AVj6x.js → index-BF13FE2e.js} +5 -5
- package/dist/{index-Bb2AVj6x.js.map → index-BF13FE2e.js.map} +1 -1
- package/dist/{index-BwqYmiVQ.js → index-BL-VmUag.js} +3 -3
- package/dist/{index-BwqYmiVQ.js.map → index-BL-VmUag.js.map} +1 -1
- package/dist/{index-DNc0JKqh.cjs → index-BZoizqu-.cjs} +2 -2
- package/dist/{index-DNc0JKqh.cjs.map → index-BZoizqu-.cjs.map} +1 -1
- package/dist/{index-DVdLLnoA.js → index-Bi8uVvOo.js} +3 -3
- package/dist/{index-DVdLLnoA.js.map → index-Bi8uVvOo.js.map} +1 -1
- package/dist/{index-BOfAsJ-W.js → index-Bk_wPF7Y.js} +3 -3
- package/dist/{index-BOfAsJ-W.js.map → index-Bk_wPF7Y.js.map} +1 -1
- package/dist/{index-CO-sE5wI.js → index-BvKtldci.js} +3 -3
- package/dist/{index-CO-sE5wI.js.map → index-BvKtldci.js.map} +1 -1
- package/dist/{index-D6fMSp2W.js → index-C35A11Yi.js} +3 -3
- package/dist/{index-D6fMSp2W.js.map → index-C35A11Yi.js.map} +1 -1
- package/dist/{index-DPQCBYIK.js → index-C44l_XTf.js} +4 -4
- package/dist/{index-DPQCBYIK.js.map → index-C44l_XTf.js.map} +1 -1
- package/dist/{index-BJKUjqnj.js → index-C9yu7C_e.js} +3 -3
- package/dist/{index-BJKUjqnj.js.map → index-C9yu7C_e.js.map} +1 -1
- package/dist/{index-DoGgI2oY.cjs → index-CIit1i3J.cjs} +2 -2
- package/dist/{index-DoGgI2oY.cjs.map → index-CIit1i3J.cjs.map} +1 -1
- package/dist/{index-dcq2ygXm.cjs → index-CWdRy-pC.cjs} +2 -2
- package/dist/{index-dcq2ygXm.cjs.map → index-CWdRy-pC.cjs.map} +1 -1
- package/dist/{index-dlwn0piJ.cjs → index-CYTRnGoK.cjs} +2 -2
- package/dist/{index-dlwn0piJ.cjs.map → index-CYTRnGoK.cjs.map} +1 -1
- package/dist/{index-B7bKCdCf.cjs → index-ChnARZnL.cjs} +2 -2
- package/dist/{index-B7bKCdCf.cjs.map → index-ChnARZnL.cjs.map} +1 -1
- package/dist/{index-DYPv77kg.cjs → index-CpG7duDv.cjs} +2 -2
- package/dist/{index-DYPv77kg.cjs.map → index-CpG7duDv.cjs.map} +1 -1
- package/dist/{index-BWYe5Jps.js → index-CpkY-3gr.js} +3 -3
- package/dist/{index-BWYe5Jps.js.map → index-CpkY-3gr.js.map} +1 -1
- package/dist/{index-Kard64l8.js → index-Cr5k5nph.js} +3 -3
- package/dist/{index-Kard64l8.js.map → index-Cr5k5nph.js.map} +1 -1
- package/dist/{index-FToMxWKL.cjs → index-CsysHuDx.cjs} +2 -2
- package/dist/{index-FToMxWKL.cjs.map → index-CsysHuDx.cjs.map} +1 -1
- package/dist/{index-CS4f0Y9L.js → index-D2FceyiG.js} +3 -3
- package/dist/{index-CS4f0Y9L.js.map → index-D2FceyiG.js.map} +1 -1
- package/dist/{index-DSUpNESf.js → index-D2vMx0xz.js} +3 -3
- package/dist/{index-DSUpNESf.js.map → index-D2vMx0xz.js.map} +1 -1
- package/dist/{index-psNGc7IK.js → index-D9bIUO_B.js} +3 -3
- package/dist/{index-psNGc7IK.js.map → index-D9bIUO_B.js.map} +1 -1
- package/dist/{index-D7wP-JGl.cjs → index-L62IvB0b.cjs} +2 -2
- package/dist/{index-D7wP-JGl.cjs.map → index-L62IvB0b.cjs.map} +1 -1
- package/dist/{index-B17U1nZ0.cjs → index-S7NtzAbU.cjs} +2 -2
- package/dist/{index-B17U1nZ0.cjs.map → index-S7NtzAbU.cjs.map} +1 -1
- package/dist/{index-D5cwaJ4H.cjs → index-Uhhym9vv.cjs} +2 -2
- package/dist/{index-D5cwaJ4H.cjs.map → index-Uhhym9vv.cjs.map} +1 -1
- package/dist/{index-DjLzzmpc.js → index-csQ55Fod.js} +2 -2
- package/dist/{index-DjLzzmpc.js.map → index-csQ55Fod.js.map} +1 -1
- package/dist/{index-BgoC8E8i.cjs → index-fyC0AKqt.cjs} +2 -2
- package/dist/{index-BgoC8E8i.cjs.map → index-fyC0AKqt.cjs.map} +1 -1
- package/dist/{index-C7Z6Q366.cjs → index-vVYKigMF.cjs} +2 -2
- package/dist/{index-C7Z6Q366.cjs.map → index-vVYKigMF.cjs.map} +1 -1
- package/dist/{index-AUmE7tYw.js → index-x4wFLEoM.js} +3 -3
- package/dist/{index-AUmE7tYw.js.map → index-x4wFLEoM.js.map} +1 -1
- package/dist/{index-T9WBgfcY.cjs → index-x6Pnmq0h.cjs} +2 -2
- package/dist/{index-T9WBgfcY.cjs.map → index-x6Pnmq0h.cjs.map} +1 -1
- package/dist/kerebron-light.css +1 -1
- package/dist/kerebron.cjs +1 -1
- package/dist/kerebron.css +1 -1
- package/dist/kerebron.js +1 -1
- package/package.json +1 -1
- package/dist/__vite-browser-external-Du-H1nLY.js.map +0 -1
- package/dist/__vite-browser-external-VbsIpWqm.cjs.map +0 -1
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
`,"\\n"),r.length<=e?r:r.slice(0,e)+"..."}function nodeToTreeStringOutput(r,e,n=0,A=0){let o="";for(let a=0;a<n;a++)o+=" ";if(Array.isArray(e)){for(const a of e)r.log(o,{node:a,pos:A}),nodeToTreeStringOutput(r,a,n+1,A);return}let s="";if("type"in e){s+=` - [${e.type.name}] `,s+=`pos: ${A}, `,s+=`nodeSize: ${e.nodeSize}, `,s+=`epos: ${A+e.nodeSize}, `,e.content&&(s+=`fragment.size: ${e.content.size}, `),r.log(o+s+`
|
|
13
13
|
`,{node:e,pos:A});let a="";if(e.marks)for(const l of e.marks)a+=`(${l.type.name}), `;a&&r.log(o+" "+a+`
|
|
14
14
|
`,{node:e,pos:A}),e.text&&r.log(o+' "'+trimText(e.text)+`"
|
|
15
|
-
`,{node:e,pos:A})}return e.forEach((a,l)=>{nodeToTreeStringOutput(r,a,n+1,A+l+1)}),r}function nodeToTreeString(r){const e=new SmartOutput;return nodeToTreeStringOutput(e,r),e.toString()}class DummyEditorView{constructor(e){this.prevDirectPlugins=[],this.pluginViews=[],this._props=e,this.state=e.state,this.directPlugins=e.plugins||[],this.directPlugins.forEach(checkStateComponent),this.dispatch=this.dispatch.bind(this),this.editable=getEditable(this),this.nodeViews=buildNodeViews(this),this.updatePluginViews()}get composing(){return!1}get dom(){return{addEventListener(){},removeEventListener(){}}}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(checkStateComponent),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let A in this._props)n[A]=this._props[A];n.state=this.state;for(let A in e)n[A]=e[A];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){let A=this.state,o=!1;if(e.storedMarks&&this.composing,this.state=e,A.plugins!=e.plugins||this._props.plugins!=n.plugins||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let l=buildNodeViews(this);changedNodeViews(l,this.nodeViews)&&(this.nodeViews=l,o=!0)}this.editable=getEditable(this),o||e.selection.eq(A.selection),this.updatePluginViews(A)}scrollToSelection(){}destroyPluginViews(){let e=this.pluginViews.pop();for(;e;)e.destroy&&e.destroy(),e=this.pluginViews.pop()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n<this.directPlugins.length;n++){let A=this.directPlugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}for(let n=0;n<this.state.plugins.length;n++){let A=this.state.plugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}}else for(let n=0;n<this.pluginViews.length;n++){let A=this.pluginViews[n];A.update&&A.update(this,e)}}someProp(e,n){let A=this._props&&this._props[e],o;if(A!=null&&(o=n?n(A):A))return o;for(let a=0;a<this.directPlugins.length;a++){let l=this.directPlugins[a].props[e];if(l!=null&&(o=n?n(l):l))return o}let s=this.state.plugins;if(s)for(let a=0;a<s.length;a++){let l=s[a].props[e];if(l!=null&&(o=n?n(l):l))return o}}hasFocus(){return!1}focus(){}destroy(){this.destroyPluginViews()}get isDestroyed(){return!1}dispatchEvent(e){}}DummyEditorView.prototype.dispatch=function(r){let e=this.props.dispatchTransaction;e?e.call(this,r):this.updateState(this.state.apply(r))};function getEditable(r){return!r.someProp("editable",e=>e(r.state)===!1)}function buildNodeViews(r){let e=Object.create(null);function n(A){for(let o in A)Object.prototype.hasOwnProperty.call(e,o)||(e[o]=A[o])}return r.someProp("nodeViews",n),r.someProp("markViews",n),e}function changedNodeViews(r,e){let n=0,A=0;for(let o in r){if(r[o]!=e[o])return!0;n++}for(let o in e)A++;return n!=A}function checkStateComponent(r){if(r.spec.state||r.spec.filterTransaction||r.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}function createNodeFromObject(r,e,n){try{const A=e.nodeFromJSON(r);return n?.errorOnInvalidContent&&A.check(),A}catch(A){if(n?.errorOnInvalidContent)throw new Error("Invalid JSON content: "+A.message,{cause:A});return console.warn("Invalid content.","Passed value:",r,"Error:",A),e.topNodeType.createAndFill(null,[])}}function defaultUi(r){return{showMessage(e){globalThis.alert(e)},showError(e){globalThis.alert(e.message),console.error(e)},focus(){},select({anchor:e,scrollIntoView:n,userEvent:A}){}}}function ensureDocSchema(r,e){if(r.type.schema===e)return r;const n=r.toJSON();return Node$2.fromJSON(e,n)}class CoreEditor extends EventTarget{constructor(e,n,A){super(),this.schema=n,this.extensionManager=A,this.ui=defaultUi(),this.config={...e},this.hooks={...this.config.hooks},this.commandManager=new CommandManager(this)}static create(e){const n=new ExtensionManager(e.editorKits,e.debug),A=n.getSchemaByResolvedExtensions(),o=new CoreEditor(e,A,n);n.created(o,A);const s=e.content?e.content:A.topNodeType.spec.EMPTY_DOC;return o.createView(s),o.setupPlugins(),o}clone(e){const n=new ExtensionManager(this.extensionManager.editorKits,(e||this.config).debug),A=new CoreEditor({...e},this.schema,n);n.created(A,this.schema);const o=this.getJSON();return A.createView(o),A.setupPlugins(),A}getExtension(e){return this.extensionManager.getExtension(e)}get run(){return this.commandManager.run}get commandFactories(){return this.commandManager.commandFactories}chain(){return this.commandManager.createChain()}can(){return this.commandManager.createCan()}link(e){if(e===this)throw new Error("You cannot chain editor to itself");this.unlink(),this.state=EditorState$1.create({doc:e.getDocument()});const{commandFactories:n}=this.commandManager,A=[],o={...Object.fromEntries(Object.entries(n).map(([s,a])=>[s,(...c)=>{const g=a(...c);return A.push(g),o}])),run:()=>{this.linkSource=e,this.linkListener=()=>{let s=e.state;const a=c=>{s=s.apply(c)};for(const c of A)if(!c(s,a))return;this.state=s.reconfigure({plugins:this.extensionManager.plugins}),this.view&&this.view.updateState(this.state);const l=new CustomEvent("changed",{detail:{editor:this}});this.dispatchEvent(l)},e.addEventListener("changed",this.linkListener)}};return o}unlink(){this.linkListener&&this.linkSource&&(this.linkSource.removeEventListener("changed",this.linkListener),this.linkListener=void 0,this.linkSource=void 0)}createView(e){const n=createNodeFromObject(e,this.schema);if(this.state=EditorState$1.create({doc:n}),this.config.element){const o=new EditorView$1(this.config.element,{state:this.state,attributes:{class:"kb-editor"},dispatchTransaction:a=>this.dispatchTransaction(a),editable:()=>!this.config.readOnly});if(this.view=o,this.config.element.parentNode){const a=new MutationObserver(l=>{for(const c of l)for(const g of c.removedNodes)if(g.contains(o.dom)){a.disconnect(),o.destroy();return}})}}else this.view=new DummyEditorView({state:this.state,dispatchTransaction:o=>this.dispatchTransaction(o)});const A=new CustomEvent("doc:loaded",{detail:{editor:this,doc:n}});this.dispatchEvent(A)}dispatchTransaction(e){if(this.state=this.state.apply(e),this.view){this.view.updateState(this.state);const n=new CustomEvent("transaction",{detail:{editor:this,transaction:e}});this.dispatchEvent(n)}if(e.docChanged){const n=new CustomEvent("changed",{detail:{editor:this}});this.dispatchEvent(n)}}setupPlugins(){this.state=this.state.reconfigure({plugins:this.extensionManager.plugins}),this.view&&(this.view.updateState(this.state),this.view.setProps({nodeViews:this.extensionManager.nodeViews}))}clearDocument(){const e={type:this.schema.topNodeType.name,content:this.schema.topNodeType.spec.EMPTY_DOC.content};this.setDocument(e)}setDocument(e){let n=createNodeFromObject(e,this.schema,{errorOnInvalidContent:!0});n=ensureDocSchema(n,this.schema),this.state=EditorState$1.create({doc:n,plugins:this.state.plugins,storedMarks:this.state.storedMarks}),this.view&&this.view.updateState(this.state);const A=new CustomEvent("doc:loaded",{detail:{editor:this,doc:n}});this.dispatchEvent(A)}getDocument(){return this.state.doc}loadDocumentText(e,n){return this.loadDocument(e,new TextEncoder().encode(n))}async loadDocument(e,n){const A=this.extensionManager.converters[e];if(!A)throw new Error("Converter not found for: "+e);const o=await A.toDoc(n);let s=EditorState$1.create({doc:o,plugins:this.state.plugins,storedMarks:this.state.storedMarks});const a=g=>{s=s.apply(g)};runInputRulesTexts()(s,a),this.state=s,this.view&&(this.view.updateState(this.state),this.view.dispatch(this.view.state.tr));const c=new CustomEvent("doc:loaded",{detail:{editor:this,doc:this.state.doc}});this.dispatchEvent(c)}async saveDocument(e){const n=this.extensionManager.converters[e];if(!n)throw new Error("Converter not found for: "+e);const A=this.state.doc.toJSON(),o=Node$2.fromJSON(this.state.schema,A);return await n.fromDoc(o)}getJSON(){return this.state.doc.toJSON()}debug(e){e||(e=this.state.doc),console.debug(nodeToTreeString(e))}destroy(){const e=new CustomEvent("beforeDestroy",{detail:{}});if(this.dispatchEvent(e),this.config.element){const n=this.config.element,A=n.cloneNode(!0);n.replaceWith(A)}this.view.destroy()}mergeCommandFactories(e,n){this.commandManager.mergeCommandFactories(e,n)}}class Extension{constructor(e={}){this.config=e,this.type="extension"}setEditor(e){this.editor=e}getEditor(){return this.editor}created(){}getInputRules(){return[]}getProseMirrorPlugins(){return[]}getCommandFactories(e){return{}}getKeyboardShortcuts(e){return{}}getConverters(e,n){return{}}setupSpec(e){}}class Mark{constructor(e={}){this.config=e,this.type="mark",this.name="node",this.attributes={}}setEditor(e){this.editor=e}created(){}getMarkSpec(){throw new Error("MarkSpec not defined: "+this.name)}getInputRules(e){return[]}getCommandFactories(e,n){return{}}getKeyboardShortcuts(e){return{}}}let Node$1=class{constructor(e={}){this.config=e,this.type="node",this.name="node",this.attributes={}}setEditor(e){this.editor=e}created(){}getNodeSpec(){throw new Error("NodeSpec not defined: "+this.name)}getInputRules(e){return[]}getProseMirrorPlugins(){return[]}getCommandFactories(e,n){return{}}getKeyboardShortcuts(e){return{}}getNodeView(e){}getConverters(e,n){return{}}};const NESTING_OPENING$1=1,NESTING_SELF_CLOSING$1=0,NESTING_CLOSING$1=-1;let rangeFrom=[],rangeTo=[];(()=>{let r="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(e=>e?parseInt(e,36):1);for(let e=0,n=0;e<r.length;e++)(e%2?rangeTo:rangeFrom).push(n=n+r[e])})();function isExtendingChar(r){if(r<768)return!1;for(let e=0,n=rangeFrom.length;;){let A=e+n>>1;if(r<rangeFrom[A])n=A;else if(r>=rangeTo[A])e=A+1;else return!0;if(e==n)return!1}}function isRegionalIndicator(r){return r>=127462&&r<=127487}const ZWJ=8205;function findClusterBreak$1(r,e,n=!0,A=!0){return(n?nextClusterBreak:prevClusterBreak)(r,e,A)}function nextClusterBreak(r,e,n){if(e==r.length)return e;e&&surrogateLow$1(r.charCodeAt(e))&&surrogateHigh$1(r.charCodeAt(e-1))&&e--;let A=codePointAt$1(r,e);for(e+=codePointSize$1(A);e<r.length;){let o=codePointAt$1(r,e);if(A==ZWJ||o==ZWJ||n&&isExtendingChar(o))e+=codePointSize$1(o),A=o;else if(isRegionalIndicator(o)){let s=0,a=e-2;for(;a>=0&&isRegionalIndicator(codePointAt$1(r,a));)s++,a-=2;if(s%2==0)break;e+=2}else break}return e}function prevClusterBreak(r,e,n){for(;e>0;){let A=nextClusterBreak(r,e-2,n);if(A<e)return A;e--}return 0}function codePointAt$1(r,e){let n=r.charCodeAt(e);if(!surrogateHigh$1(n)||e+1==r.length)return n;let A=r.charCodeAt(e+1);return surrogateLow$1(A)?(n-55296<<10)+(A-56320)+65536:n}function surrogateLow$1(r){return r>=56320&&r<57344}function surrogateHigh$1(r){return r>=55296&&r<56320}function codePointSize$1(r){return r<65536?1:2}class Text{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,A){[e,n]=clip(this,e,n);let o=[];return this.decompose(0,e,o,2),A.length&&A.decompose(0,A.length,o,3),this.decompose(n,this.length,o,1),TextNode.from(o,this.length-(n-e)+A.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=clip(this,e,n);let A=[];return this.decompose(e,n,A,0),TextNode.from(A,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),A=this.length-this.scanIdentical(e,-1),o=new RawTextCursor(this),s=new RawTextCursor(e);for(let a=n,l=n;;){if(o.next(a),s.next(a),a=0,o.lineBreak!=s.lineBreak||o.done!=s.done||o.value!=s.value)return!1;if(l+=o.value.length,o.done||l>=A)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,n=this.length){return new PartialTextCursor(this,e,n)}iterLines(e,n){let A;if(e==null)A=this.iter();else{n==null&&(n=this.lines+1);let o=this.line(e).from;A=this.iterRange(o,Math.max(o,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new LineCursor(A)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,n=textLength(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,A,o){for(let s=0;;s++){let a=this.text[s],l=o+a.length;if((n?A:l)>=e)return new Line(o,l,A,a);o=l+1,A++}}decompose(e,n,A,o){let s=e<=0&&n>=this.length?this:new TextLeaf(sliceText(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(o&1){let a=A.pop(),l=appendText(s.text,a.text.slice(),0,s.length);if(l.length<=32)A.push(new TextLeaf(l,a.length+s.length));else{let c=l.length>>1;A.push(new TextLeaf(l.slice(0,c)),new TextLeaf(l.slice(c)))}}else A.push(s)}replace(e,n,A){if(!(A instanceof TextLeaf))return super.replace(e,n,A);[e,n]=clip(this,e,n);let o=appendText(this.text,appendText(A.text,sliceText(this.text,0,e)),n),s=this.length+A.length-(n-e);return o.length<=32?new TextLeaf(o,s):TextNode.from(TextLeaf.split(o,[]),s)}sliceString(e,n=this.length,A=`
|
|
15
|
+
`,{node:e,pos:A})}return e.forEach((a,l)=>{nodeToTreeStringOutput(r,a,n+1,A+l+1)}),r}function nodeToTreeString(r){const e=new SmartOutput;return nodeToTreeStringOutput(e,r),e.toString()}class DummyEditorView{constructor(e){this.prevDirectPlugins=[],this.pluginViews=[],this._props=e,this.state=e.state,this.directPlugins=e.plugins||[],this.directPlugins.forEach(checkStateComponent),this.dispatch=this.dispatch.bind(this),this.editable=getEditable(this),this.nodeViews=buildNodeViews(this),this.updatePluginViews()}get composing(){return!1}get dom(){return{addEventListener(){},removeEventListener(){}}}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(checkStateComponent),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let A in this._props)n[A]=this._props[A];n.state=this.state;for(let A in e)n[A]=e[A];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){let A=this.state,o=!1;if(e.storedMarks&&this.composing,this.state=e,A.plugins!=e.plugins||this._props.plugins!=n.plugins||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let l=buildNodeViews(this);changedNodeViews(l,this.nodeViews)&&(this.nodeViews=l,o=!0)}this.editable=getEditable(this),o||e.selection.eq(A.selection),this.updatePluginViews(A)}scrollToSelection(){}destroyPluginViews(){let e=this.pluginViews.pop();for(;e;)e.destroy&&e.destroy(),e=this.pluginViews.pop()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n<this.directPlugins.length;n++){let A=this.directPlugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}for(let n=0;n<this.state.plugins.length;n++){let A=this.state.plugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}}else for(let n=0;n<this.pluginViews.length;n++){let A=this.pluginViews[n];A.update&&A.update(this,e)}}someProp(e,n){let A=this._props&&this._props[e],o;if(A!=null&&(o=n?n(A):A))return o;for(let a=0;a<this.directPlugins.length;a++){let l=this.directPlugins[a].props[e];if(l!=null&&(o=n?n(l):l))return o}let s=this.state.plugins;if(s)for(let a=0;a<s.length;a++){let l=s[a].props[e];if(l!=null&&(o=n?n(l):l))return o}}hasFocus(){return!1}focus(){}destroy(){this.destroyPluginViews()}get isDestroyed(){return!1}dispatchEvent(e){}}DummyEditorView.prototype.dispatch=function(r){let e=this.props.dispatchTransaction;e?e.call(this,r):this.updateState(this.state.apply(r))};function getEditable(r){return!r.someProp("editable",e=>e(r.state)===!1)}function buildNodeViews(r){let e=Object.create(null);function n(A){for(let o in A)Object.prototype.hasOwnProperty.call(e,o)||(e[o]=A[o])}return r.someProp("nodeViews",n),r.someProp("markViews",n),e}function changedNodeViews(r,e){let n=0,A=0;for(let o in r){if(r[o]!=e[o])return!0;n++}for(let o in e)A++;return n!=A}function checkStateComponent(r){if(r.spec.state||r.spec.filterTransaction||r.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}function createNodeFromObject(r,e,n){try{const A=e.nodeFromJSON(r);return n?.errorOnInvalidContent&&A.check(),A}catch(A){if(n?.errorOnInvalidContent)throw new Error("Invalid JSON content: "+A.message,{cause:A});return console.warn("Invalid content.","Passed value:",r,"Error:",A),e.topNodeType.createAndFill(null,[])}}function defaultUi(r){return{showMessage(e){globalThis.alert(e)},showError(e){globalThis.alert(e.message),console.error(e)},focus(){},select({anchor:e,scrollIntoView:n,userEvent:A}){}}}function ensureDocSchema(r,e){if(r.type.schema===e)return r;const n=r.toJSON();return Node$2.fromJSON(e,n)}class CoreEditor extends EventTarget{constructor(e,n,A){super(),this.schema=n,this.extensionManager=A,this.ui=defaultUi(),this.config={...e},this.hooks={...this.config.hooks},this.commandManager=new CommandManager(this)}static create(e){const n=new ExtensionManager(e.editorKits,e.debug),A=n.getSchemaByResolvedExtensions(),o=new CoreEditor(e,A,n);n.created(o,A);const s=e.content?e.content:A.topNodeType.spec.EMPTY_DOC;return o.createView(s),o.setupPlugins(),o}clone(e){const n=new ExtensionManager(this.extensionManager.editorKits,(e||this.config).debug),A=new CoreEditor({...e},this.schema,n);n.created(A,this.schema);const o=this.getJSON();return A.createView(o),A.setupPlugins(),A}getExtension(e){return this.extensionManager.getExtension(e)}get run(){return this.commandManager.run}get commandFactories(){return this.commandManager.commandFactories}chain(e){return this.commandManager.createChain(e)}can(e){return this.commandManager.createCan(e)}link(e){if(e===this)throw new Error("You cannot chain editor to itself");this.unlink(),this.state=EditorState$1.create({doc:e.getDocument()});const{commandFactories:n}=this.commandManager,A=[],o={...Object.fromEntries(Object.entries(n).map(([s,a])=>[s,(...c)=>{const g=a(...c);return A.push(g),o}])),run:()=>{this.linkSource=e,this.linkListener=()=>{let s=e.state;const a=c=>{s=s.apply(c)};for(const c of A)if(!c(s,a))return;this.state=s.reconfigure({plugins:this.extensionManager.plugins}),this.view&&this.view.updateState(this.state);const l=new CustomEvent("changed",{detail:{editor:this}});this.dispatchEvent(l)},e.addEventListener("changed",this.linkListener)}};return o}unlink(){this.linkListener&&this.linkSource&&(this.linkSource.removeEventListener("changed",this.linkListener),this.linkListener=void 0,this.linkSource=void 0)}createView(e){const n=createNodeFromObject(e,this.schema);if(this.state=EditorState$1.create({doc:n}),this.config.element){const o=new EditorView$1(this.config.element,{state:this.state,attributes:{class:"kb-editor"},dispatchTransaction:a=>this.dispatchTransaction(a),editable:()=>!this.config.readOnly});if(this.view=o,this.config.element.parentNode){const a=new MutationObserver(l=>{for(const c of l)for(const g of c.removedNodes)if(g.contains(o.dom)){a.disconnect(),o.destroy();return}})}}else this.view=new DummyEditorView({state:this.state,dispatchTransaction:o=>this.dispatchTransaction(o)});const A=new CustomEvent("doc:loaded",{detail:{editor:this,doc:n}});this.dispatchEvent(A)}dispatchTransaction(e){if(this.state=this.state.apply(e),this.view){this.view.updateState(this.state);const n=new CustomEvent("transaction",{detail:{editor:this,transaction:e}});this.dispatchEvent(n)}if(e.docChanged){const n=new CustomEvent("changed",{detail:{editor:this}});this.dispatchEvent(n)}}setupPlugins(){this.state=this.state.reconfigure({plugins:this.extensionManager.plugins}),this.view&&(this.view.updateState(this.state),this.view.setProps({nodeViews:this.extensionManager.nodeViews}))}clearDocument(){const e={type:this.schema.topNodeType.name,content:this.schema.topNodeType.spec.EMPTY_DOC.content};this.setDocument(e)}setDocument(e){let n=createNodeFromObject(e,this.schema,{errorOnInvalidContent:!0});n=ensureDocSchema(n,this.schema),this.state=EditorState$1.create({doc:n,plugins:this.state.plugins,storedMarks:this.state.storedMarks}),this.view&&this.view.updateState(this.state);const A=new CustomEvent("doc:loaded",{detail:{editor:this,doc:n}});this.dispatchEvent(A)}getConverter(e){const n=this.extensionManager.converters[e];if(!n)throw new Error("Converter not found for: "+e);return n}getDocument(){return this.state.doc}loadDocumentText(e,n){return this.loadDocument(e,new TextEncoder().encode(n))}async loadDocument(e,n){const o=await this.getConverter(e).toDoc(n);let s=EditorState$1.create({doc:o,plugins:this.state.plugins,storedMarks:this.state.storedMarks});const a=g=>{s=s.apply(g)};runInputRulesTexts()(s,a),this.state=s,this.view&&(this.view.updateState(this.state),this.view.dispatch(this.view.state.tr));const c=new CustomEvent("doc:loaded",{detail:{editor:this,doc:this.state.doc}});this.dispatchEvent(c)}async saveDocument(e){const n=this.getConverter(e),A=this.state.doc.toJSON(),o=Node$2.fromJSON(this.state.schema,A);return await n.fromDoc(o)}async patchDocument(e,n){const o=await this.getConverter(e).toDoc(n),s=this.state.tr;s.replaceWith(0,this.state.doc.content.size,o.content),this.dispatchTransaction(s)}patchDocumentText(e,n){return this.patchDocument(e,new TextEncoder().encode(n))}getJSON(){return this.state.doc.toJSON()}debug(e){e||(e=this.state.doc),console.debug(nodeToTreeString(e))}destroy(){const e=new CustomEvent("beforeDestroy",{detail:{}});if(this.dispatchEvent(e),this.config.element){const n=this.config.element,A=n.cloneNode(!0);n.replaceWith(A)}this.view.destroy()}mergeCommandFactories(e,n){this.commandManager.mergeCommandFactories(e,n)}get editable(){return this.view.editable}}class Extension{constructor(e={}){this.config=e,this.type="extension"}setEditor(e){this.editor=e}getEditor(){return this.editor}created(){}getInputRules(){return[]}getProseMirrorPlugins(){return[]}getCommandFactories(e){return{}}getKeyboardShortcuts(e){return{}}getConverters(e,n){return{}}setupSpec(e){}}class Mark{constructor(e={}){this.config=e,this.type="mark",this.name="node",this.attributes={}}setEditor(e){this.editor=e}created(){}getMarkSpec(){throw new Error("MarkSpec not defined: "+this.name)}getInputRules(e){return[]}getCommandFactories(e,n){return{}}getKeyboardShortcuts(e){return{}}}let Node$1=class{constructor(e={}){this.config=e,this.type="node",this.name="node",this.attributes={}}setEditor(e){this.editor=e}created(){}getNodeSpec(){throw new Error("NodeSpec not defined: "+this.name)}getInputRules(e){return[]}getProseMirrorPlugins(){return[]}getCommandFactories(e,n){return{}}getKeyboardShortcuts(e){return{}}getNodeView(e){}getConverters(e,n){return{}}};const NESTING_OPENING$1=1,NESTING_SELF_CLOSING$1=0,NESTING_CLOSING$1=-1;let rangeFrom=[],rangeTo=[];(()=>{let r="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(e=>e?parseInt(e,36):1);for(let e=0,n=0;e<r.length;e++)(e%2?rangeTo:rangeFrom).push(n=n+r[e])})();function isExtendingChar(r){if(r<768)return!1;for(let e=0,n=rangeFrom.length;;){let A=e+n>>1;if(r<rangeFrom[A])n=A;else if(r>=rangeTo[A])e=A+1;else return!0;if(e==n)return!1}}function isRegionalIndicator(r){return r>=127462&&r<=127487}const ZWJ=8205;function findClusterBreak$1(r,e,n=!0,A=!0){return(n?nextClusterBreak:prevClusterBreak)(r,e,A)}function nextClusterBreak(r,e,n){if(e==r.length)return e;e&&surrogateLow$1(r.charCodeAt(e))&&surrogateHigh$1(r.charCodeAt(e-1))&&e--;let A=codePointAt$1(r,e);for(e+=codePointSize$1(A);e<r.length;){let o=codePointAt$1(r,e);if(A==ZWJ||o==ZWJ||n&&isExtendingChar(o))e+=codePointSize$1(o),A=o;else if(isRegionalIndicator(o)){let s=0,a=e-2;for(;a>=0&&isRegionalIndicator(codePointAt$1(r,a));)s++,a-=2;if(s%2==0)break;e+=2}else break}return e}function prevClusterBreak(r,e,n){for(;e>0;){let A=nextClusterBreak(r,e-2,n);if(A<e)return A;e--}return 0}function codePointAt$1(r,e){let n=r.charCodeAt(e);if(!surrogateHigh$1(n)||e+1==r.length)return n;let A=r.charCodeAt(e+1);return surrogateLow$1(A)?(n-55296<<10)+(A-56320)+65536:n}function surrogateLow$1(r){return r>=56320&&r<57344}function surrogateHigh$1(r){return r>=55296&&r<56320}function codePointSize$1(r){return r<65536?1:2}class Text{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,A){[e,n]=clip(this,e,n);let o=[];return this.decompose(0,e,o,2),A.length&&A.decompose(0,A.length,o,3),this.decompose(n,this.length,o,1),TextNode.from(o,this.length-(n-e)+A.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=clip(this,e,n);let A=[];return this.decompose(e,n,A,0),TextNode.from(A,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),A=this.length-this.scanIdentical(e,-1),o=new RawTextCursor(this),s=new RawTextCursor(e);for(let a=n,l=n;;){if(o.next(a),s.next(a),a=0,o.lineBreak!=s.lineBreak||o.done!=s.done||o.value!=s.value)return!1;if(l+=o.value.length,o.done||l>=A)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,n=this.length){return new PartialTextCursor(this,e,n)}iterLines(e,n){let A;if(e==null)A=this.iter();else{n==null&&(n=this.lines+1);let o=this.line(e).from;A=this.iterRange(o,Math.max(o,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new LineCursor(A)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,n=textLength(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,A,o){for(let s=0;;s++){let a=this.text[s],l=o+a.length;if((n?A:l)>=e)return new Line(o,l,A,a);o=l+1,A++}}decompose(e,n,A,o){let s=e<=0&&n>=this.length?this:new TextLeaf(sliceText(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(o&1){let a=A.pop(),l=appendText(s.text,a.text.slice(),0,s.length);if(l.length<=32)A.push(new TextLeaf(l,a.length+s.length));else{let c=l.length>>1;A.push(new TextLeaf(l.slice(0,c)),new TextLeaf(l.slice(c)))}}else A.push(s)}replace(e,n,A){if(!(A instanceof TextLeaf))return super.replace(e,n,A);[e,n]=clip(this,e,n);let o=appendText(this.text,appendText(A.text,sliceText(this.text,0,e)),n),s=this.length+A.length-(n-e);return o.length<=32?new TextLeaf(o,s):TextNode.from(TextLeaf.split(o,[]),s)}sliceString(e,n=this.length,A=`
|
|
16
16
|
`){[e,n]=clip(this,e,n);let o="";for(let s=0,a=0;s<=n&&a<this.text.length;a++){let l=this.text[a],c=s+l.length;s>e&&a&&(o+=A),e<c&&n>s&&(o+=l.slice(Math.max(0,e-s),n-s)),s=c+1}return o}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let A=[],o=-1;for(let s of e)A.push(s),o+=s.length+1,A.length==32&&(n.push(new TextLeaf(A,o)),A=[],o=-1);return o>-1&&n.push(new TextLeaf(A,o)),n}}class TextNode extends Text{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let A of e)this.lines+=A.lines}lineInner(e,n,A,o){for(let s=0;;s++){let a=this.children[s],l=o+a.length,c=A+a.lines-1;if((n?c:l)>=e)return a.lineInner(e,n,A,o);o=l+1,A=c+1}}decompose(e,n,A,o){for(let s=0,a=0;a<=n&&s<this.children.length;s++){let l=this.children[s],c=a+l.length;if(e<=c&&n>=a){let g=o&((a<=e?1:0)|(c>=n?2:0));a>=e&&c<=n&&!g?A.push(l):l.decompose(e-a,n-a,A,g)}a=c+1}}replace(e,n,A){if([e,n]=clip(this,e,n),A.lines<this.lines)for(let o=0,s=0;o<this.children.length;o++){let a=this.children[o],l=s+a.length;if(e>=s&&n<=l){let c=a.replace(e-s,n-s,A),g=this.lines-a.lines+c.lines;if(c.lines<g>>4&&c.lines>g>>6){let h=this.children.slice();return h[o]=c,new TextNode(h,this.length-(n-e)+A.length)}return super.replace(s,l,c)}s=l+1}return super.replace(e,n,A)}sliceString(e,n=this.length,A=`
|
|
17
17
|
`){[e,n]=clip(this,e,n);let o="";for(let s=0,a=0;s<this.children.length&&a<=n;s++){let l=this.children[s],c=a+l.length;a>e&&s&&(o+=A),e<c&&n>a&&(o+=l.sliceString(e-a,n-a,A)),a=c+1}return o}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof TextNode))return 0;let A=0,[o,s,a,l]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;o+=n,s+=n){if(o==a||s==l)return A;let c=this.children[o],g=e.children[s];if(c!=g)return A+c.scanIdentical(g,n);A+=c.length+1}}static from(e,n=e.reduce((A,o)=>A+o.length+1,-1)){let A=0;for(let f of e)A+=f.lines;if(A<32){let f=[];for(let I of e)I.flatten(f);return new TextLeaf(f,n)}let o=Math.max(32,A>>5),s=o<<1,a=o>>1,l=[],c=0,g=-1,h=[];function d(f){let I;if(f.lines>s&&f instanceof TextNode)for(let p of f.children)d(p);else f.lines>a&&(c>a||!c)?(u(),l.push(f)):f instanceof TextLeaf&&c&&(I=h[h.length-1])instanceof TextLeaf&&f.lines+I.lines<=32?(c+=f.lines,g+=f.length+1,h[h.length-1]=new TextLeaf(I.text.concat(f.text),I.length+1+f.length)):(c+f.lines>o&&u(),c+=f.lines,g+=f.length+1,h.push(f))}function u(){c!=0&&(l.push(h.length==1?h[0]:TextNode.from(h,g)),g=-1,c=h.length=0)}for(let f of e)d(f);return u(),l.length==1?l[0]:new TextNode(l,n)}}Text.empty=new TextLeaf([""],0);function textLength(r){let e=-1;for(let n of r)e+=n.length+1;return e}function appendText(r,e,n=0,A=1e9){for(let o=0,s=0,a=!0;s<r.length&&o<=A;s++){let l=r[s],c=o+l.length;c>=n&&(c>A&&(l=l.slice(0,A-o)),o<n&&(l=l.slice(n-o)),a?(e[e.length-1]+=l,a=!1):e.push(l)),o=c+1}return e}function sliceText(r,e,n){return appendText(r,[""],e,n)}class RawTextCursor{constructor(e,n=1){this.dir=n,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[n>0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let A=this.nodes.length-1,o=this.nodes[A],s=this.offsets[A],a=s>>1,l=o instanceof TextLeaf?o.text.length:o.children.length;if(a==(n>0?l:0)){if(A==0)return this.done=!0,this.value="",this;n>0&&this.offsets[A-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(n>0?0:1)){if(this.offsets[A]+=n,e==0)return this.lineBreak=!0,this.value=`
|
|
18
18
|
`,this;e--}else if(o instanceof TextLeaf){let c=o.text[a+(n<0?-1:0)];if(this.offsets[A]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=o.children[a+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[A]+=n):(n<0&&this.offsets[A]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof TextLeaf?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,n,A){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,n>A?-1:1),this.pos=n>A?e.length:0,this.from=Math.min(n,A),this.to=Math.max(n,A)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let A=n<0?this.pos-this.from:this.to-this.pos;e>A&&(e=A),A-=e;let{value:o}=this.cursor.next(e);return this.pos+=(o.length+e)*n,this.value=o.length<=A?o:n<0?o.slice(o.length-A):o.slice(0,A),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:A,value:o}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):A?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=o,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,n,A,o){this.from=e,this.to=n,this.number=A,this.text=o}get length(){return this.to-this.from}}function clip(r,e,n){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,n))]}function findClusterBreak(r,e,n=!0,A=!0){return findClusterBreak$1(r,e,n,A)}function surrogateLow(r){return r>=56320&&r<57344}function surrogateHigh(r){return r>=55296&&r<56320}function codePointAt(r,e){let n=r.charCodeAt(e);if(!surrogateHigh(n)||e+1==r.length)return n;let A=r.charCodeAt(e+1);return surrogateLow(A)?(n-55296<<10)+(A-56320)+65536:n}function fromCodePoint(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function codePointSize(r){return r<65536?1:2}const DefaultSplit=/\r\n?|\n/;var MapMode=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;n<this.sections.length;n+=2)e+=this.sections[n];return e}get newLength(){let e=0;for(let n=0;n<this.sections.length;n+=2){let A=this.sections[n+1];e+=A<0?this.sections[n]:A}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let n=0,A=0,o=0;n<this.sections.length;){let s=this.sections[n++],a=this.sections[n++];a<0?(e(A,o,s),o+=s):o+=a,A+=s}}iterChangedRanges(e,n=!1){iterChanges(this,e,n)}get invertedDesc(){let e=[];for(let n=0;n<this.sections.length;){let A=this.sections[n++],o=this.sections[n++];o<0?e.push(A,o):e.push(o,A)}return new ChangeDesc(e)}composeDesc(e){return this.empty?e:e.empty?this:composeSets(this,e)}mapDesc(e,n=!1){return e.empty?this:mapSet(this,e,n)}mapPos(e,n=-1,A=MapMode.Simple){let o=0,s=0;for(let a=0;a<this.sections.length;){let l=this.sections[a++],c=this.sections[a++],g=o+l;if(c<0){if(g>e)return s+(e-o);s+=l}else{if(A!=MapMode.Simple&&g>=e&&(A==MapMode.TrackDel&&o<e&&g>e||A==MapMode.TrackBefore&&o<e||A==MapMode.TrackAfter&&g>e))return null;if(g>e||g==e&&n<0&&!l)return e==o||n<0?s:s+c;s+=c}o=g}if(e>o)throw new RangeError(`Position ${e} is out of range for changeset of length ${o}`);return s}touchesRange(e,n=e){for(let A=0,o=0;A<this.sections.length&&o<=n;){let s=this.sections[A++],a=this.sections[A++],l=o+s;if(a>=0&&o<=n&&l>=e)return o<e&&l>n?"cover":!0;o=l}return!1}toString(){let e="";for(let n=0;n<this.sections.length;){let A=this.sections[n++],o=this.sections[n++];e+=(e?" ":"")+A+(o>=0?":"+o:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}static create(e){return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(n,A,o,s,a)=>e=e.replace(o,o+(A-n),a),!1),e}mapDesc(e,n=!1){return mapSet(this,e,n,!0)}invert(e){let n=this.sections.slice(),A=[];for(let o=0,s=0;o<n.length;o+=2){let a=n[o],l=n[o+1];if(l>=0){n[o]=l,n[o+1]=a;let c=o>>1;for(;A.length<c;)A.push(Text.empty);A.push(a?e.slice(s,s+a):Text.empty)}s+=a}return new ChangeSet(n,A)}compose(e){return this.empty?e:e.empty?this:composeSets(this,e,!0)}map(e,n=!1){return e.empty?this:mapSet(this,e,n,!0)}iterChanges(e,n=!1){iterChanges(this,e,n)}get desc(){return ChangeDesc.create(this.sections)}filter(e){let n=[],A=[],o=[],s=new SectionIter(this);e:for(let a=0,l=0;;){let c=a==e.length?1e9:e[a++];for(;l<c||l==c&&s.len==0;){if(s.done)break e;let h=Math.min(s.len,c-l);addSection(o,h,-1);let d=s.ins==-1?-1:s.off==0?s.ins:0;addSection(n,h,d),d>0&&addInsert(A,n,s.text),s.forward(h),l+=h}let g=e[a++];for(;l<g;){if(s.done)break e;let h=Math.min(s.len,g-l);addSection(n,h,-1),addSection(o,h,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(h),l+=h}}return{changes:new ChangeSet(n,A),filtered:ChangeDesc.create(o)}}toJSON(){let e=[];for(let n=0;n<this.sections.length;n+=2){let A=this.sections[n],o=this.sections[n+1];o<0?e.push(A):o==0?e.push([A]):e.push([A].concat(this.inserted[n>>1].toJSON()))}return e}static of(e,n,A){let o=[],s=[],a=0,l=null;function c(h=!1){if(!h&&!o.length)return;a<n&&addSection(o,n-a,-1);let d=new ChangeSet(o,s);l=l?l.compose(d.map(l)):d,o=[],s=[],a=0}function g(h){if(Array.isArray(h))for(let d of h)g(d);else if(h instanceof ChangeSet){if(h.length!=n)throw new RangeError(`Mismatched change set length (got ${h.length}, expected ${n})`);c(),l=l?l.compose(h.map(l)):h}else{let{from:d,to:u=d,insert:f}=h;if(d>u||d<0||u>n)throw new RangeError(`Invalid change range ${d} to ${u} (in doc of length ${n})`);let I=f?typeof f=="string"?Text.of(f.split(A||DefaultSplit)):f:Text.empty,p=I.length;if(d==u&&p==0)return;d<a&&c(),d>a&&addSection(o,d-a,-1),addSection(o,u-d,p),addInsert(s,o,I),a=u}}return g(e),c(!l),l}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],A=[];for(let o=0;o<e.length;o++){let s=e[o];if(typeof s=="number")n.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((a,l)=>l&&typeof a!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)n.push(s[0],0);else{for(;A.length<o;)A.push(Text.empty);A[o]=Text.of(s.slice(1)),n.push(s[0],A[o].length)}}}return new ChangeSet(n,A)}static createSet(e,n){return new ChangeSet(e,n)}}function addSection(r,e,n,A=!1){if(e==0&&n<=0)return;let o=r.length-2;o>=0&&n<=0&&n==r[o+1]?r[o]+=e:o>=0&&e==0&&r[o]==0?r[o+1]+=n:A?(r[o]+=e,r[o+1]+=n):r.push(e,n)}function addInsert(r,e,n){if(n.length==0)return;let A=e.length-2>>1;if(A<r.length)r[r.length-1]=r[r.length-1].append(n);else{for(;r.length<A;)r.push(Text.empty);r.push(n)}}function iterChanges(r,e,n){let A=r.inserted;for(let o=0,s=0,a=0;a<r.sections.length;){let l=r.sections[a++],c=r.sections[a++];if(c<0)o+=l,s+=l;else{let g=o,h=s,d=Text.empty;for(;g+=l,h+=c,c&&A&&(d=d.append(A[a-2>>1])),!(n||a==r.sections.length||r.sections[a+1]<0);)l=r.sections[a++],c=r.sections[a++];e(o,g,s,h,d),o=g,s=h}}}function mapSet(r,e,n,A=!1){let o=[],s=A?[]:null,a=new SectionIter(r),l=new SectionIter(e);for(let c=-1;;){if(a.done&&l.len||l.done&&a.len)throw new Error("Mismatched change set lengths");if(a.ins==-1&&l.ins==-1){let g=Math.min(a.len,l.len);addSection(o,g,-1),a.forward(g),l.forward(g)}else if(l.ins>=0&&(a.ins<0||c==a.i||a.off==0&&(l.len<a.len||l.len==a.len&&!n))){let g=l.len;for(addSection(o,l.ins,-1);g;){let h=Math.min(a.len,g);a.ins>=0&&c<a.i&&a.len<=h&&(addSection(o,0,a.ins),s&&addInsert(s,o,a.text),c=a.i),a.forward(h),g-=h}l.next()}else if(a.ins>=0){let g=0,h=a.len;for(;h;)if(l.ins==-1){let d=Math.min(h,l.len);g+=d,h-=d,l.forward(d)}else if(l.ins==0&&l.len<h)h-=l.len,l.next();else break;addSection(o,g,c<a.i?a.ins:0),s&&c<a.i&&addInsert(s,o,a.text),c=a.i,a.forward(a.len-h)}else{if(a.done&&l.done)return s?ChangeSet.createSet(o,s):ChangeDesc.create(o);throw new Error("Mismatched change set lengths")}}}function composeSets(r,e,n=!1){let A=[],o=n?[]:null,s=new SectionIter(r),a=new SectionIter(e);for(let l=!1;;){if(s.done&&a.done)return o?ChangeSet.createSet(A,o):ChangeDesc.create(A);if(s.ins==0)addSection(A,s.len,0,l),s.next();else if(a.len==0&&!a.done)addSection(A,0,a.ins,l),o&&addInsert(o,A,a.text),a.next();else{if(s.done||a.done)throw new Error("Mismatched change set lengths");{let c=Math.min(s.len2,a.len),g=A.length;if(s.ins==-1){let h=a.ins==-1?-1:a.off?0:a.ins;addSection(A,c,h,l),o&&h&&addInsert(o,A,a.text)}else a.ins==-1?(addSection(A,s.off?0:s.len,c,l),o&&addInsert(o,A,s.textBit(c))):(addSection(A,s.off?0:s.len,a.off?0:a.ins,l),o&&!a.off&&addInsert(o,A,a.text));l=(s.ins>c||a.ins>=0&&a.len>c)&&(l||A.length>g),s.forward2(c),a.forward(c)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,n=this.i-2>>1;return n>=e.length?Text.empty:e[n]}textBit(e){let{inserted:n}=this.set,A=this.i-2>>1;return A>=n.length&&!e?Text.empty:n[A].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}let SelectionRange$1=class gt{constructor(e,n,A){this.from=e,this.to=n,this.flags=A}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let A,o;return this.empty?A=o=e.mapPos(this.from,n):(A=e.mapPos(this.from,1),o=e.mapPos(this.to,-1)),A==this.from&&o==this.to?this:new gt(A,o,this.flags)}extend(e,n=e){if(e<=this.anchor&&n>=this.anchor)return EditorSelection.range(e,n);let A=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return EditorSelection.range(this.anchor,A)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}static create(e,n,A){return new gt(e,n,A)}};class EditorSelection{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:EditorSelection.create(this.ranges.map(A=>A.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let A=0;A<this.ranges.length;A++)if(!this.ranges[A].eq(e.ranges[A],n))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0)}addRange(e,n=!0){return EditorSelection.create([e].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(e,n=this.mainIndex){let A=this.ranges.slice();return A[n]=e,EditorSelection.create(A,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(n=>SelectionRange$1.fromJSON(n)),e.main)}static single(e,n=e){return new EditorSelection([EditorSelection.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let A=0,o=0;o<e.length;o++){let s=e[o];if(s.empty?s.from<=A:s.from<A)return EditorSelection.normalized(e.slice(),n);A=s.to}return new EditorSelection(e,n)}static cursor(e,n=0,A,o){return SelectionRange$1.create(e,e,(n==0?0:n<0?8:16)|(A==null?7:Math.min(6,A))|(o??16777215)<<6)}static range(e,n,A,o){let s=(A??16777215)<<6|(o==null?7:Math.min(6,o));return n<e?SelectionRange$1.create(n,e,48|s):SelectionRange$1.create(e,n,(n>e?8:0)|s)}static normalized(e,n=0){let A=e[n];e.sort((o,s)=>o.from-s.from),n=e.indexOf(A);for(let o=1;o<e.length;o++){let s=e[o],a=e[o-1];if(s.empty?s.from<=a.to:s.from<a.to){let l=a.from,c=Math.max(s.to,a.to);o<=n&&n--,e.splice(--o,2,s.anchor>s.head?EditorSelection.range(c,l):EditorSelection.range(l,c))}}return new EditorSelection(e,n)}}function checkSelection(r,e){for(let n of r.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,n,A,o,s){this.combine=e,this.compareInput=n,this.compare=A,this.isStatic=o,this.id=nextID++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new Facet(e.combine||(n=>n),e.compareInput||((n,A)=>n===A),e.compare||(e.combine?(n,A)=>n===A:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,n)}from(e,n){return n||(n=A=>A),this.compute([e],A=>n(A.field(e)))}}function sameArray$1(r,e){return r==e||r.length==e.length&&r.every((n,A)=>n===e[A])}class FacetProvider{constructor(e,n,A,o){this.dependencies=e,this.facet=n,this.type=A,this.value=o,this.id=nextID++}dynamicSlot(e){var n;let A=this.value,o=this.facet.compareInput,s=this.id,a=e[s]>>1,l=this.type==2,c=!1,g=!1,h=[];for(let d of this.dependencies)d=="doc"?c=!0:d=="selection"?g=!0:(((n=e[d.id])!==null&&n!==void 0?n:1)&1)==0&&h.push(e[d.id]);return{create(d){return d.values[a]=A(d),1},update(d,u){if(c&&u.docChanged||g&&(u.docChanged||u.selection)||ensureAll(d,h)){let f=A(d);if(l?!compareArray(f,d.values[a],o):!o(f,d.values[a]))return d.values[a]=f,1}return 0},reconfigure:(d,u)=>{let f,I=u.config.address[s];if(I!=null){let p=getAddr(u,I);if(this.dependencies.every(m=>m instanceof Facet?u.facet(m)===d.facet(m):m instanceof StateField?u.field(m,!1)==d.field(m,!1):!0)||(l?compareArray(f=A(d),p,o):o(f=A(d),p)))return d.values[a]=p,0}else f=A(d);return d.values[a]=f,1}}}}function compareArray(r,e,n){if(r.length!=e.length)return!1;for(let A=0;A<r.length;A++)if(!n(r[A],e[A]))return!1;return!0}function ensureAll(r,e){let n=!1;for(let A of e)ensureAddr(r,A)&1&&(n=!0);return n}function dynamicFacetSlot(r,e,n){let A=n.map(c=>r[c.id]),o=n.map(c=>c.type),s=A.filter(c=>!(c&1)),a=r[e.id]>>1;function l(c){let g=[];for(let h=0;h<A.length;h++){let d=getAddr(c,A[h]);if(o[h]==2)for(let u of d)g.push(u);else g.push(d)}return e.combine(g)}return{create(c){for(let g of A)ensureAddr(c,g);return c.values[a]=l(c),1},update(c,g){if(!ensureAll(c,s))return 0;let h=l(c);return e.compare(h,c.values[a])?0:(c.values[a]=h,1)},reconfigure(c,g){let h=ensureAll(c,A),d=g.config.facets[e.id],u=g.facet(e);if(d&&!h&&sameArray$1(n,d))return c.values[a]=u,0;let f=l(c);return e.compare(f,u)?(c.values[a]=u,0):(c.values[a]=f,1)}}}const initField=Facet.define({static:!0});class StateField{constructor(e,n,A,o,s){this.id=e,this.createF=n,this.updateF=A,this.compareF=o,this.spec=s,this.provides=void 0}static define(e){let n=new StateField(nextID++,e.create,e.update,e.compare||((A,o)=>A===o),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(initField).find(A=>A.field==this);return(n?.create||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:A=>(A.values[n]=this.create(A),1),update:(A,o)=>{let s=A.values[n],a=this.updateF(s,o);return this.compareF(s,a)?0:(A.values[n]=a,1)},reconfigure:(A,o)=>{let s=A.facet(initField),a=o.facet(initField),l;return(l=s.find(c=>c.field==this))&&l!=a.find(c=>c.field==this)?(A.values[n]=l.create(A),1):o.config.address[this.id]!=null?(A.values[n]=o.field(this),0):(A.values[n]=this.create(A),1)}}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(r){return e=>new PrecExtension(e,r)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(e,n){this.inner=e,this.prec=n}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,n){this.compartment=e,this.inner=n}}class Configuration{constructor(e,n,A,o,s,a){for(this.base=e,this.compartments=n,this.dynamicSlots=A,this.address=o,this.staticValues=s,this.facets=a,this.statusTemplate=[];this.statusTemplate.length<A.length;)this.statusTemplate.push(0)}staticFacet(e){let n=this.address[e.id];return n==null?e.default:this.staticValues[n>>1]}static resolve(e,n,A){let o=[],s=Object.create(null),a=new Map;for(let u of flatten(e,n,a))u instanceof StateField?o.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let l=Object.create(null),c=[],g=[];for(let u of o)l[u.id]=g.length<<1,g.push(f=>u.slot(f));let h=A?.config.facets;for(let u in s){let f=s[u],I=f[0].facet,p=h&&h[u]||[];if(f.every(m=>m.type==0))if(l[I.id]=c.length<<1|1,sameArray$1(p,f))c.push(A.facet(I));else{let m=I.combine(f.map(E=>E.value));c.push(A&&I.compare(m,A.facet(I))?A.facet(I):m)}else{for(let m of f)m.type==0?(l[m.id]=c.length<<1|1,c.push(m.value)):(l[m.id]=g.length<<1,g.push(E=>m.dynamicSlot(E)));l[I.id]=g.length<<1,g.push(m=>dynamicFacetSlot(m,I,f))}}let d=g.map(u=>u(l));return new Configuration(e,a,d,l,c,s)}}function flatten(r,e,n){let A=[[],[],[],[],[]],o=new Map;function s(a,l){let c=o.get(a);if(c!=null){if(c<=l)return;let g=A[c].indexOf(a);g>-1&&A[c].splice(g,1),a instanceof CompartmentInstance&&n.delete(a.compartment)}if(o.set(a,l),Array.isArray(a))for(let g of a)s(g,l);else if(a instanceof CompartmentInstance){if(n.has(a.compartment))throw new RangeError("Duplicate use of compartment in extensions");let g=e.get(a.compartment)||a.inner;n.set(a.compartment,g),s(g,l)}else if(a instanceof PrecExtension)s(a.inner,a.prec);else if(a instanceof StateField)A[l].push(a),a.provides&&s(a.provides,l);else if(a instanceof FacetProvider)A[l].push(a),a.facet.extensions&&s(a.facet.extensions,Prec_.default);else{let g=a.extension;if(!g)throw new Error(`Unrecognized extension value in extension set (${a}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(g,l)}}return s(r,Prec_.default),A.reduce((a,l)=>a.concat(l))}function ensureAddr(r,e){if(e&1)return 2;let n=e>>1,A=r.status[n];if(A==4)throw new Error("Cyclic dependency between fields and/or facets");if(A&2)return A;r.status[n]=4;let o=r.computeSlot(r,r.config.dynamicSlots[n]);return r.status[n]=2|o}function getAddr(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:r=>r.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:r=>r.length?r[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:r=>r.length?r[0]:!1});class Annotation{constructor(e,n){this.type=e,this.value=n}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new StateEffect(this.type,n)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let A=[];for(let o of e){let s=o.map(n);s&&A.push(s)}return A}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,n,A,o,s,a){this.startState=e,this.changes=n,this.selection=A,this.effects=o,this.annotations=s,this.scrollIntoView=a,this._doc=null,this._state=null,A&&checkSelection(A,n.newLength),s.some(l=>l.type==Transaction.time)||(this.annotations=s.concat(Transaction.time.of(Date.now())))}static create(e,n,A,o,s,a){return new Transaction(e,n,A,o,s,a)}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(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(Transaction.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(r,e){let n=[];for(let A=0,o=0;;){let s,a;if(A<r.length&&(o==e.length||e[o]>=r[A]))s=r[A++],a=r[A++];else if(o<e.length)s=e[o++],a=e[o++];else return n;!n.length||n[n.length-1]<s?n.push(s,a):n[n.length-1]<a&&(n[n.length-1]=a)}}function mergeTransaction(r,e,n){var A;let o,s,a;return n?(o=e.changes,s=ChangeSet.empty(e.changes.length),a=r.changes.compose(e.changes)):(o=e.changes.map(r.changes),s=r.changes.mapDesc(e.changes,!0),a=r.changes.compose(o)),{changes:a,selection:e.selection?e.selection.map(s):(A=r.selection)===null||A===void 0?void 0:A.map(o),effects:StateEffect.mapEffects(r.effects,o).concat(StateEffect.mapEffects(e.effects,s)),annotations:r.annotations.length?r.annotations.concat(e.annotations):e.annotations,scrollIntoView:r.scrollIntoView||e.scrollIntoView}}function resolveTransactionInner(r,e,n){let A=e.selection,o=asArray$1(e.annotations);return e.userEvent&&(o=o.concat(Transaction.userEvent.of(e.userEvent))),{changes:e.changes instanceof ChangeSet?e.changes:ChangeSet.of(e.changes||[],n,r.facet(lineSeparator)),selection:A&&(A instanceof EditorSelection?A:EditorSelection.single(A.anchor,A.head)),effects:asArray$1(e.effects),annotations:o,scrollIntoView:!!e.scrollIntoView}}function resolveTransaction(r,e,n){let A=resolveTransactionInner(r,e.length?e[0]:{},r.doc.length);e.length&&e[0].filter===!1&&(n=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(n=!1);let a=!!e[s].sequential;A=mergeTransaction(A,resolveTransactionInner(r,e[s],a?A.changes.newLength:r.doc.length),a)}let o=Transaction.create(r,A.changes,A.selection,A.effects,A.annotations,A.scrollIntoView);return extendTransaction(n?filterTransaction(o):o)}function filterTransaction(r){let e=r.startState,n=!0;for(let o of e.facet(changeFilter)){let s=o(r);if(s===!1){n=!1;break}Array.isArray(s)&&(n=n===!0?s:joinRanges(n,s))}if(n!==!0){let o,s;if(n===!1)s=r.changes.invertedDesc,o=ChangeSet.empty(e.doc.length);else{let a=r.changes.filter(n);o=a.changes,s=a.filtered.mapDesc(a.changes).invertedDesc}r=Transaction.create(e,o,r.selection&&r.selection.map(s),StateEffect.mapEffects(r.effects,s),r.annotations,r.scrollIntoView)}let A=e.facet(transactionFilter);for(let o=A.length-1;o>=0;o--){let s=A[o](r);s instanceof Transaction?r=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Transaction?r=s[0]:r=resolveTransaction(e,asArray$1(s),!1)}return r}function extendTransaction(r){let e=r.startState,n=e.facet(transactionExtender),A=r;for(let o=n.length-1;o>=0;o--){let s=n[o](r);s&&Object.keys(s).length&&(A=mergeTransaction(A,resolveTransactionInner(e,s,r.changes.newLength),!0))}return A==r?r:Transaction.create(e,r.changes,r.selection,A.effects,A.annotations,A.scrollIntoView)}const none$1=[];function asArray$1(r){return r==null?none$1:Array.isArray(r)?r:[r]}var CharCategory=(function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r})(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function hasWordChar(r){if(wordChar)return wordChar.test(r);for(let e=0;e<r.length;e++){let n=r[e];if(/\w/.test(n)||n>""&&(n.toUpperCase()!=n.toLowerCase()||nonASCIISingleCaseWordChar.test(n)))return!0}return!1}function makeCategorizer(r){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let n=0;n<r.length;n++)if(e.indexOf(r[n])>-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,n,A,o,s,a){this.config=e,this.doc=n,this.selection=A,this.values=o,this.status=e.statusTemplate.slice(),this.computeSlot=s,a&&(a._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)ensureAddr(this,l<<1);this.computeSlot=null}field(e,n=!0){let A=this.config.address[e.id];if(A==null){if(n)throw new RangeError("Field is not present in this state");return}return ensureAddr(this,A),getAddr(this,A)}update(...e){return resolveTransaction(this,e,!0)}applyTransaction(e){let n=this.config,{base:A,compartments:o}=n;for(let l of e.effects)l.is(Compartment.reconfigure)?(n&&(o=new Map,n.compartments.forEach((c,g)=>o.set(g,c)),n=null),o.set(l.value.compartment,l.value.extension)):l.is(StateEffect.reconfigure)?(n=null,A=l.value):l.is(StateEffect.appendConfig)&&(n=null,A=asArray$1(A).concat(l.value));let s;n?s=e.startState.values.slice():(n=Configuration.resolve(A,o,this),s=new EditorState(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,g)=>g.reconfigure(c,this),null).values);let a=e.startState.facet(allowMultipleSelections)?e.newSelection:e.newSelection.asSingle();new EditorState(n,e.newDoc,a,s,(l,c)=>c.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:EditorSelection.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,A=e(n.ranges[0]),o=this.changes(A.changes),s=[A.range],a=asArray$1(A.effects);for(let l=1;l<n.ranges.length;l++){let c=e(n.ranges[l]),g=this.changes(c.changes),h=g.map(o);for(let u=0;u<l;u++)s[u]=s[u].map(h);let d=o.mapDesc(g,!0);s.push(c.range.map(d)),o=o.compose(h),a=StateEffect.mapEffects(a,h).concat(StateEffect.mapEffects(asArray$1(c.effects),d))}return{changes:o,selection:EditorSelection.create(s,n.mainIndex),effects:a}}changes(e=[]){return e instanceof ChangeSet?e:ChangeSet.of(e,this.doc.length,this.facet(EditorState.lineSeparator))}toText(e){return Text.of(e.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(e=0,n=this.doc.length){return this.doc.sliceString(e,n,this.lineBreak)}facet(e){let n=this.config.address[e.id];return n==null?e.default:(ensureAddr(this,n),getAddr(this,n))}toJSON(e){let n={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let A in e){let o=e[A];o instanceof StateField&&this.config.address[o.id]!=null&&(n[A]=o.spec.toJSON(this.field(e[A]),this))}return n}static fromJSON(e,n={},A){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let o=[];if(A){for(let s in A)if(Object.prototype.hasOwnProperty.call(e,s)){let a=A[s],l=e[s];o.push(a.init(c=>a.spec.fromJSON(l,c)))}}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:n.extensions?o.concat([n.extensions]):o})}static create(e={}){let n=Configuration.resolve(e.extensions||[],new Map),A=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(n.staticFacet(EditorState.lineSeparator)||DefaultSplit)),o=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(o,A.length),n.staticFacet(allowMultipleSelections)||(o=o.asSingle()),new EditorState(n,A,o,n.dynamicSlots.map(()=>null),(s,a)=>a.create(s),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||`
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
`))};if(g.from==this.from&&s<this.from?g.from=s:g.to==this.to&&s>this.to&&(g.to=s),g.from==g.to&&!g.insert.length){let h=EditorSelection.single(this.toEditorPos(A.selectionStart),this.toEditorPos(A.selectionEnd));h.main.eq(o)||e.dispatch({selection:h,userEvent:"select"});return}if((browser$1.mac||browser$1.android)&&g.from==a-1&&/^\. ?$/.test(A.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(g={from:l,to:c,insert:Text.of([A.text.replace("."," ")])}),this.pendingContextChange=g,!e.state.readOnly){let h=this.to-this.from+(g.to-g.from+g.insert.length);applyDOMChangeInner(e,g,EditorSelection.single(this.toEditorPos(A.selectionStart,h),this.toEditorPos(A.selectionEnd,h)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=A=>{let o=[],s=null;for(let a=this.toEditorPos(A.rangeStart),l=this.toEditorPos(A.rangeEnd);a<l;a++){let c=e.coordsForChar(a);s=c&&new DOMRect(c.left,c.top,c.right-c.left,c.bottom-c.top)||s||new DOMRect,o.push(s)}n.updateCharacterBounds(A.rangeStart,o)},this.handlers.textformatupdate=A=>{let o=[];for(let s of A.getTextFormats()){let a=s.underlineStyle,l=s.underlineThickness;if(a!="None"&&l!="None"){let c=this.toEditorPos(s.rangeStart),g=this.toEditorPos(s.rangeEnd);if(c<g){let h=`text-decoration: underline ${a=="Dashed"?"dashed ":a=="Squiggle"?"wavy ":""}${l=="Thin"?1:2}px`;o.push(Decoration.mark({attributes:{style:h}}).range(c,g))}}}e.dispatch({effects:setEditContextFormatting.of(Decoration.set(o))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:A}=this.composing;this.composing=null,A&&this.reset(e.state)}};for(let A in this.handlers)n.addEventListener(A,this.handlers[A]);this.measureReq={read:A=>{this.editContext.updateControlBounds(A.contentDOM.getBoundingClientRect());let o=getSelection$1(A.root);o&&o.rangeCount&&this.editContext.updateSelectionBounds(o.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,A=!1,o=this.pendingContextChange;return e.changes.iterChanges((s,a,l,c,g)=>{if(A)return;let h=g.length-(a-s);if(o&&a>=o.to)if(o.from==s&&o.to==a&&o.insert.eq(g)){o=this.pendingContextChange=null,n+=h,this.to+=h;return}else o=null,this.revertPending(e.state);if(s+=n,a+=n,a<=this.from)this.from+=h,this.to+=h;else if(s<this.to){if(s<this.from||a>this.to||this.to-this.from+g.length>3e4){A=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(a),g.toString()),this.to+=h}n+=h}),o&&!A&&this.revertPending(e.state),!A}update(e){let n=this.pendingContextChange,A=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(A.from,A.to)&&e.transactions.some(o=>!o.isUserEvent("input.type")&&o.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,A=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),o=this.toContextPos(n.head);(this.editContext.selectionStart!=A||this.editContext.selectionEnd!=o)&&this.editContext.updateSelection(A,o)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to<e.doc.length&&this.to-n<500||this.to-this.from>1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let A=this.composing;return A&&A.drifted?A.editorBase+(e-A.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class EditorView{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&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;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),e.parent&&e.parent.appendChild(this.dom);let{dispatch:A}=e;this.dispatchTransactions=e.dispatchTransactions||A&&(o=>o.forEach(s=>A(s,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create(e)),e.scrollTo&&e.scrollTo.is(scrollIntoView$1)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(viewPlugin).map(o=>new PluginInstance(o));for(let o of this.plugins)o.update(this);this.observer=new DOMObserver(this),this.inputState=new InputState(this),this.inputState.ensureHandlers(this.plugins),this.docView=new DocView$1(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let n=e.length==1&&e[0]instanceof Transaction?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,A=!1,o,s=this.state;for(let u of e){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let a=this.hasFocus,l=0,c=null;e.some(u=>u.annotation(isFocusChange))?(this.inputState.notifiedFocused=a,l=1):a!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=a,c=focusChangeTransaction(s,a),c||(l=1));let g=this.observer.delayedAndroidKey,h=null;if(g?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(s);o=ViewUpdate.create(this,s,e),o.flags|=l;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(d&&(d=d.map(u.changes)),u.scrollIntoView){let{main:f}=u.state.selection;d=new ScrollTarget(f.empty?f:EditorSelection.cursor(f.head,f.head>f.anchor?-1:1))}for(let f of u.effects)f.is(scrollIntoView$1)&&(d=f.value.clip(this.state))}this.viewState.update(o,d),this.bidiCache=CachedOrder.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),n=this.docView.update(o),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),A=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(theme)!=o.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(n||A||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!o.empty)for(let u of this.state.facet(updateListener))try{u(o)}catch(f){logException(this.state,f,"update listener")}(c||h)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),h&&!applyDOMChange(this,h)&&g.force&&dispatchKey(this.contentDOM,g.key,g.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let A of this.plugins)A.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(A=>new PluginInstance(A)),this.pluginMap.clear();for(let A of this.plugins)A.update(this);this.docView.destroy(),this.docView=new DocView$1(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(viewPlugin),A=e.state.facet(viewPlugin);if(n!=A){let o=[];for(let s of A){let a=n.indexOf(s);if(a<0)o.push(new PluginInstance(s));else{let l=this.plugins[a];l.mustUpdate=e,o.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=e;for(let o=0;o<this.plugins.length;o++)this.plugins[o].update(this);n!=A&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let n=e.value;if(n&&n.docViewUpdate)try{n.docViewUpdate(this)}catch(A){logException(this.state,A,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,A=this.scrollDOM,o=A.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:a}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(a=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(a<0)if(isScrolledToBottom(A))s=-1,a=this.viewState.heightMap.height;else{let f=this.viewState.scrollAnchorAt(o);s=f.from,a=f.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];c&4||([this.measureRequests,g]=[g,this.measureRequests]);let h=g.map(f=>{try{return f.read(this)}catch(I){return logException(this.state,I),BadMeasure}}),d=ViewUpdate.create(this,this.state,[]),u=!1;d.flags|=c,n?n.flags|=c:n=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),u=this.docView.update(d),u&&this.docViewUpdate());for(let f=0;f<g.length;f++)if(h[f]!=BadMeasure)try{let I=g[f];I.write&&I.write(h[f],this)}catch(I){logException(this.state,I)}if(u&&this.docView.updateSelection(!0),!d.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,a=-1;continue}else{let I=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-a;if(I>1||I<-1){o=o+I,A.scrollTop=o/this.scaleY,a=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let l of this.state.facet(updateListener))l(n)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser$1.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,n);let A=this.observer.ignore(()=>{let o=updateAttrs(this.contentDOM,this.contentAttrs,n),s=updateAttrs(this.dom,this.editorAttrs,e);return o||s});return this.editorAttrs=e,this.contentAttrs=n,A}showAnnouncements(e){let n=!0;for(let A of e)for(let o of A.effects)if(o.is(EditorView.announce)){n&&(this.announceDOM.textContent=""),n=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(styleModule);let e=this.state.facet(EditorView.cspNonce);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1$1).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;n<this.measureRequests.length;n++)if(this.measureRequests[n].key===e.key){this.measureRequests[n]=e;return}}this.measureRequests.push(e)}}plugin(e){let n=this.pluginMap.get(e);return(n===void 0||n&&n.plugin!=e)&&this.pluginMap.set(e,n=this.plugins.find(A=>A.plugin==e)||null),n&&n.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(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,A){return skipAtoms(this,e,moveByChar(this,e,n,A))}moveByGroup(e,n){return skipAtoms(this,e,moveByChar(this,e,n,A=>byGroup(this,e.head,A)))}visualLineSide(e,n){let A=this.bidiSpans(e),o=this.textDirectionAt(e.from),s=A[n?A.length-1:0];return EditorSelection.cursor(s.side(n,o)+e.from,s.forward(!n,o)?1:-1)}moveToLineBoundary(e,n,A=!0){return moveToLineBoundary(this,e,n,A)}moveVertically(e,n,A){return skipAtoms(this,e,moveVertically(this,e,n,A))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){return this.readMeasured(),posAtCoords(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let A=this.docView.coordsAt(e,n);if(!A||A.left==A.right)return A;let o=this.state.doc.lineAt(e),s=this.bidiSpans(o),a=s[BidiSpan.find(s,e-o.from,-1,n)];return flattenRect(A,a.dir==Direction.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(perLineTextDirection)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let n=this.textDirectionAt(e.from),A;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==n&&(s.fresh||isolatesEq(s.isolates,A=getIsolatedRanges(this,e))))return s.order;A||(A=getIsolatedRanges(this,e));let o=computeOrder(e.text,n,A);return this.bidiCache.push(new CachedOrder(e.from,e.to,n,A,!0,o)),o}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||browser$1.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.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(e,n={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,n.y,n.x,n.yMargin,n.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,A=this.viewState.scrollAnchorAt(e);return scrollIntoView$1.of(new ScrollTarget(EditorSelection.cursor(A.from),"start","start",A.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ViewPlugin.define(()=>({}),{eventObservers:e})}static theme(e,n){let A=StyleModule.newName(),o=[theme.of(A),styleModule.of(buildTheme(`.${A}`,e))];return n&&n.dark&&o.push(darkTheme.of(!0)),o}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}static findFromDOM(e){var n;let A=e.querySelector(".cm-content"),o=A&&ContentView.get(A)||ContentView.get(e);return((n=o?.rootView)===null||n===void 0?void 0:n.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.clipboardInputFilter=clipboardInputFilter;EditorView.clipboardOutputFilter=clipboardOutputFilter;EditorView.scrollHandler=scrollHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.outerDecorations=outerDecorations;EditorView.atomicRanges=atomicRanges;EditorView.bidiIsolatedRanges=bidiIsolatedRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.cspNonce=Facet.define({combine:r=>r.length?r[0]:""});EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096,BadMeasure={};class CachedOrder{constructor(e,n,A,o,s,a){this.from=e,this.to=n,this.dir=A,this.isolates=o,this.fresh=s,this.order=a}static update(e,n){if(n.empty&&!e.some(s=>s.fresh))return e;let A=[],o=e.length?e[e.length-1].dir:Direction.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let a=e[s];a.dir==o&&!n.touchesRange(a.from,a.to)&&A.push(new CachedOrder(n.mapPos(a.from,1),n.mapPos(a.to,-1),a.dir,a.isolates,!1,a.order))}return A}}function attrsFromFacet(r,e,n){for(let A=r.state.facet(e),o=A.length-1;o>=0;o--){let s=A[o],a=typeof s=="function"?s(r):s;a&&combineAttrs(a,n)}return n}const currentPlatform=browser$1.mac?"mac":browser$1.windows?"win":browser$1.linux?"linux":"key";function normalizeKeyName(r,e){const n=r.split(/-(?!$)/);let A=n[n.length-1];A=="Space"&&(A=" ");let o,s,a,l;for(let c=0;c<n.length-1;++c){const g=n[c];if(/^(cmd|meta|m)$/i.test(g))l=!0;else if(/^a(lt)?$/i.test(g))o=!0;else if(/^(c|ctrl|control)$/i.test(g))s=!0;else if(/^s(hift)?$/i.test(g))a=!0;else if(/^mod$/i.test(g))e=="mac"?l=!0:s=!0;else throw new Error("Unrecognized modifier name: "+g)}return o&&(A="Alt-"+A),s&&(A="Ctrl-"+A),l&&(A="Meta-"+A),a&&(A="Shift-"+A),A}function modifiers(r,e,n){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),n!==!1&&e.shiftKey&&(r="Shift-"+r),r}const handleKeyEvents=Prec.default(EditorView.domEventHandlers({keydown(r,e){return runHandlers(getKeymap(e.state),r,e,"editor")}})),keymap=Facet.define({enables:handleKeyEvents}),Keymaps=new WeakMap;function getKeymap(r){let e=r.facet(keymap),n=Keymaps.get(e);return n||Keymaps.set(e,n=buildKeymap(e.reduce((A,o)=>A.concat(o),[]))),n}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(r,e=currentPlatform){let n=Object.create(null),A=Object.create(null),o=(a,l)=>{let c=A[a];if(c==null)A[a]=l;else if(c!=l)throw new Error("Key binding "+a+" is used both as a regular binding and as a multi-stroke prefix")},s=(a,l,c,g,h)=>{var d,u;let f=n[a]||(n[a]=Object.create(null)),I=l.split(/ (?!$)/).map(E=>normalizeKeyName(E,e));for(let E=1;E<I.length;E++){let B=I.slice(0,E).join(" ");o(B,!0),f[B]||(f[B]={preventDefault:!0,stopPropagation:!1,run:[Q=>{let S=storedPrefix={view:Q,prefix:B,scope:a};return setTimeout(()=>{storedPrefix==S&&(storedPrefix=null)},PrefixTimeout),!0}]})}let p=I.join(" ");o(p,!1);let m=f[p]||(f[p]={preventDefault:!1,stopPropagation:!1,run:((u=(d=f._any)===null||d===void 0?void 0:d.run)===null||u===void 0?void 0:u.slice())||[]});c&&m.run.push(c),g&&(m.preventDefault=!0),h&&(m.stopPropagation=!0)};for(let a of r){let l=a.scope?a.scope.split(" "):["editor"];if(a.any)for(let g of l){let h=n[g]||(n[g]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:d}=a;for(let u in h)h[u].run.push(f=>d(f,currentKeyEvent))}let c=a[e]||a.key;if(c)for(let g of l)s(g,c,a.run,a.preventDefault,a.stopPropagation),a.shift&&s(g,"Shift-"+c,a.shift,a.preventDefault,a.stopPropagation)}return n}let currentKeyEvent=null;function runHandlers(r,e,n,A){currentKeyEvent=e;let o=keyName(e),s=codePointAt(o,0),a=codePointSize(s)==o.length&&o!=" ",l="",c=!1,g=!1,h=!1;storedPrefix&&storedPrefix.view==n&&storedPrefix.scope==A&&(l=storedPrefix.prefix+" ",modifierCodes.indexOf(e.keyCode)<0&&(g=!0,storedPrefix=null));let d=new Set,u=m=>{if(m){for(let E of m.run)if(!d.has(E)&&(d.add(E),E(n)))return m.stopPropagation&&(h=!0),!0;m.preventDefault&&(m.stopPropagation&&(h=!0),g=!0)}return!1},f=r[A],I,p;return f&&(u(f[l+modifiers(o,e,!a)])?c=!0:a&&(e.altKey||e.metaKey||e.ctrlKey)&&!(browser$1.windows&&e.ctrlKey&&e.altKey)&&!(browser$1.mac&&e.altKey&&!e.ctrlKey)&&(I=base[e.keyCode])&&I!=o?(u(f[l+modifiers(I,e,!0)])||e.shiftKey&&(p=shift[e.keyCode])!=o&&p!=I&&u(f[l+modifiers(p,e,!1)]))&&(c=!0):a&&e.shiftKey&&u(f[l+modifiers(o,e,!0)])&&(c=!0),!c&&u(f._any)&&(c=!0)),g&&(c=!0),c&&h&&e.stopPropagation(),currentKeyEvent=null,c}class RectangleMarker{constructor(e,n,A,o,s){this.className=e,this.left=n,this.top=A,this.width=o,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,A){if(A.empty){let o=e.coordsAtPos(A.head,A.assoc||1);if(!o)return[];let s=getBase(e);return[new RectangleMarker(n,o.left-s.left,o.top-s.top,null,o.bottom-o.top)]}else return rectanglesForRange(e,n,A)}}function getBase(r){let e=r.scrollDOM.getBoundingClientRect();return{left:(r.textDirection==Direction.LTR?e.left:e.right-r.scrollDOM.clientWidth*r.scaleX)-r.scrollDOM.scrollLeft*r.scaleX,top:e.top-r.scrollDOM.scrollTop*r.scaleY}}function wrappedLine(r,e,n,A){let o=r.coordsAtPos(e,n*2);if(!o)return A;let s=r.dom.getBoundingClientRect(),a=(o.top+o.bottom)/2,l=r.posAtCoords({x:s.left+1,y:a}),c=r.posAtCoords({x:s.right-1,y:a});return l==null||c==null?A:{from:Math.max(A.from,Math.min(l,c)),to:Math.min(A.to,Math.max(l,c))}}function rectanglesForRange(r,e,n){if(n.to<=r.viewport.from||n.from>=r.viewport.to)return[];let A=Math.max(n.from,r.viewport.from),o=Math.min(n.to,r.viewport.to),s=r.textDirection==Direction.LTR,a=r.contentDOM,l=a.getBoundingClientRect(),c=getBase(r),g=a.querySelector(".cm-line"),h=g&&window.getComputedStyle(g),d=l.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),u=l.right-(h?parseInt(h.paddingRight):0),f=blockAt(r,A,1),I=blockAt(r,o,-1),p=f.type==BlockType.Text?f:null,m=I.type==BlockType.Text?I:null;if(p&&(r.lineWrapping||f.widgetLineBreaks)&&(p=wrappedLine(r,A,1,p)),m&&(r.lineWrapping||I.widgetLineBreaks)&&(m=wrappedLine(r,o,-1,m)),p&&m&&p.from==m.from&&p.to==m.to)return B(Q(n.from,n.to,p));{let w=p?Q(n.from,null,p):S(f,!1),y=m?Q(null,n.to,m):S(I,!0),D=[];return(p||f).to<(m||I).from-(p&&m?1:0)||f.widgetLineBreaks>1&&w.bottom+r.defaultLineHeight/2<y.top?D.push(E(d,w.bottom,u,y.top)):w.bottom<y.top&&r.elementAtHeight((w.bottom+y.top)/2).type==BlockType.Text&&(w.bottom=y.top=(w.bottom+y.top)/2),B(w).concat(D).concat(B(y))}function E(w,y,D,_){return new RectangleMarker(e,w-c.left,y-c.top,D-w,_-y)}function B({top:w,bottom:y,horizontal:D}){let _=[];for(let M=0;M<D.length;M+=2)_.push(E(D[M],w,D[M+1],y));return _}function Q(w,y,D){let _=1e9,M=-1e9,R=[];function F(L,G,K,O,oe){let j=r.coordsAtPos(L,L==D.to?-2:2),Ae=r.coordsAtPos(K,K==D.from?2:-2);!j||!Ae||(_=Math.min(j.top,Ae.top,_),M=Math.max(j.bottom,Ae.bottom,M),oe==Direction.LTR?R.push(s&&G?d:j.left,s&&O?u:Ae.right):R.push(!s&&O?d:Ae.left,!s&&G?u:j.right))}let v=w??D.from,N=y??D.to;for(let L of r.visibleRanges)if(L.to>v&&L.from<N)for(let G=Math.max(L.from,v),K=Math.min(L.to,N);;){let O=r.state.doc.lineAt(G);for(let oe of r.bidiSpans(O)){let j=oe.from+O.from,Ae=oe.to+O.from;if(j>=K)break;Ae>G&&F(Math.max(j,G),w==null&&j<=v,Math.min(Ae,K),y==null&&Ae>=N,oe.dir)}if(G=O.to+1,G>=K)break}return R.length==0&&F(v,w==null,N,y==null,r.textDirection),{top:_,bottom:M,horizontal:R}}function S(w,y){let D=l.top+(y?w.top:w.bottom);return{top:D,bottom:D,horizontal:[]}}}function sameMarker(r,e){return r.constructor==e.constructor&&r.eq(e)}class LayerView{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(layerOrder)!=e.state.facet(layerOrder)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,A=e.facet(layerOrder);for(;n<A.length&&A[n]!=this.layer;)n++;this.dom.style.zIndex=String((this.layer.above?150:-1)-n)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:n}=this.view;(e!=this.scaleX||n!=this.scaleY)&&(this.scaleX=e,this.scaleY=n,this.dom.style.transform=`scale(${1/e}, ${1/n})`)}draw(e){if(e.length!=this.drawn.length||e.some((n,A)=>!sameMarker(n,this.drawn[A]))){let n=this.dom.firstChild,A=0;for(let o of e)o.update&&n&&o.constructor&&this.drawn[A].constructor&&o.update(n,this.drawn[A])?(n=n.nextSibling,A++):this.dom.insertBefore(o.draw(),n);for(;n;){let o=n.nextSibling;n.remove(),n=o}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const layerOrder=Facet.define();function layer(r){return[ViewPlugin.define(e=>new LayerView(e,r)),layerOrder.of(r)]}const selectionConfig=Facet.define({combine(r){return combineConfig(r,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function drawSelection(r={}){return[selectionConfig.of(r),cursorLayer,selectionLayer,hideNativeSelection,nativeSelectionHidden.of(!0)]}function configChanged(r){return r.startState.facet(selectionConfig)!=r.state.facet(selectionConfig)}const cursorLayer=layer({above:!0,markers(r){let{state:e}=r,n=e.facet(selectionConfig),A=[];for(let o of e.selection.ranges){let s=o==e.selection.main;if(o.empty||n.drawRangeCursor){let a=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=o.empty?o:EditorSelection.cursor(o.head,o.head>o.anchor?-1:1);for(let c of RectangleMarker.forRange(r,a,l))A.push(c)}}return A},update(r,e){r.transactions.some(A=>A.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=configChanged(r);return n&&setBlinkRate(r.state,e),r.docChanged||r.selectionSet||n},mount(r,e){setBlinkRate(e.state,r)},class:"cm-cursorLayer"});function setBlinkRate(r,e){e.style.animationDuration=r.facet(selectionConfig).cursorBlinkRate+"ms"}const selectionLayer=layer({above:!1,markers(r){return r.state.selection.ranges.map(e=>e.empty?[]:RectangleMarker.forRange(r,"cm-selectionBackground",e)).reduce((e,n)=>e.concat(n))},update(r,e){return r.docChanged||r.selectionSet||r.viewportChanged||configChanged(r)},class:"cm-selectionLayer"}),hideNativeSelection=Prec.highest(EditorView.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),MaxOff=2e3;function rectangleFor(r,e,n){let A=Math.min(e.line,n.line),o=Math.max(e.line,n.line),s=[];if(e.off>MaxOff||n.off>MaxOff||e.col<0||n.col<0){let a=Math.min(e.off,n.off),l=Math.max(e.off,n.off);for(let c=A;c<=o;c++){let g=r.doc.line(c);g.length<=l&&s.push(EditorSelection.range(g.from+a,g.to+l))}}else{let a=Math.min(e.col,n.col),l=Math.max(e.col,n.col);for(let c=A;c<=o;c++){let g=r.doc.line(c),h=findColumn(g.text,a,r.tabSize,!0);if(h<0)s.push(EditorSelection.cursor(g.to));else{let d=findColumn(g.text,l,r.tabSize);s.push(EditorSelection.range(g.from+h,g.from+d))}}}return s}function absoluteColumn(r,e){let n=r.coordsAtPos(r.viewport.from);return n?Math.round(Math.abs((n.left-e)/r.defaultCharacterWidth)):-1}function getPos(r,e){let n=r.posAtCoords({x:e.clientX,y:e.clientY},!1),A=r.state.doc.lineAt(n),o=n-A.from,s=o>MaxOff?-1:o==A.length?absoluteColumn(r,e.clientX):countColumn(A.text,r.state.tabSize,n-A.from);return{line:A.number,col:s,off:o}}function rectangleSelectionStyle(r,e){let n=getPos(r,e),A=r.state.selection;return n?{update(o){if(o.docChanged){let s=o.changes.mapPos(o.startState.doc.line(n.line).from),a=o.state.doc.lineAt(s);n={line:a.number,col:n.col,off:Math.min(n.off,a.length)},A=A.map(o.changes)}},get(o,s,a){let l=getPos(r,o);if(!l)return A;let c=rectangleFor(r.state,n,l);return c.length?a?EditorSelection.create(c.concat(A.ranges)):EditorSelection.create(c):A}}:null}function rectangularSelection(r){let e=(n=>n.altKey&&n.button==0);return EditorView.mouseSelectionStyle.of((n,A)=>e(A)?rectangleSelectionStyle(n,A):null)}const Outside="-10000px";class TooltipViewManager{constructor(e,n,A,o){this.facet=n,this.createTooltipView=A,this.removeTooltipView=o,this.input=e.state.facet(n),this.tooltips=this.input.filter(a=>a);let s=null;this.tooltipViews=this.tooltips.map(a=>s=A(a,s))}update(e,n){var A;let o=e.state.facet(this.facet),s=o.filter(c=>c);if(o===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let a=[],l=n?[]:null;for(let c=0;c<s.length;c++){let g=s[c],h=-1;if(g){for(let d=0;d<this.tooltips.length;d++){let u=this.tooltips[d];u&&u.create==g.create&&(h=d)}if(h<0)a[c]=this.createTooltipView(g,c?a[c-1]:null),l&&(l[c]=!!g.above);else{let d=a[c]=this.tooltipViews[h];l&&(l[c]=n[h]),d.update&&d.update(e)}}}for(let c of this.tooltipViews)a.indexOf(c)<0&&(this.removeTooltipView(c),(A=c.destroy)===null||A===void 0||A.call(c));return n&&(l.forEach((c,g)=>n[g]=c),n.length=l.length),this.input=o,this.tooltips=s,this.tooltipViews=a,!0}}function windowSpace(r){let e=r.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const tooltipConfig=Facet.define({combine:r=>{var e,n,A;return{position:browser$1.ios?"absolute":((e=r.find(o=>o.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=r.find(o=>o.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((A=r.find(o=>o.tooltipSpace))===null||A===void 0?void 0:A.tooltipSpace)||windowSpace}}}),knownHeight=new WeakMap,tooltipPlugin=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=r.state.facet(tooltipConfig);this.position=e.position,this.parent=e.parent,this.classes=r.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new TooltipViewManager(r,showTooltip,(n,A)=>this.createTooltip(n,A),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),r.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 r of this.manager.tooltipViews)this.intersectionObserver.observe(r.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(r){r.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(r,this.above);e&&this.observeIntersection();let n=e||r.geometryChanged,A=r.state.facet(tooltipConfig);if(A.position!=this.position&&!this.madeAbsolute){this.position=A.position;for(let o of this.manager.tooltipViews)o.dom.style.position=this.position;n=!0}if(A.parent!=this.parent){this.parent&&this.container.remove(),this.parent=A.parent,this.createContainer();for(let o of this.manager.tooltipViews)this.container.appendChild(o.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(r,e){let n=r.create(this.view),A=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),r.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let o=document.createElement("div");o.className="cm-tooltip-arrow",n.dom.appendChild(o)}return n.dom.style.position=this.position,n.dom.style.top=Outside,n.dom.style.left="0px",this.container.insertBefore(n.dom,A),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var r,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let A of this.manager.tooltipViews)A.dom.remove(),(r=A.destroy)===null||r===void 0||r.call(A);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let r=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(browser$1.gecko)n=s.offsetParent!=this.container.ownerDocument.body;else if(s.style.top==Outside&&s.style.left=="0px"){let a=s.getBoundingClientRect();n=Math.abs(a.top+1e4)>1||Math.abs(a.left)>1}}if(n||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(r=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:r,scaleY:e}=this.view.viewState);let A=this.view.scrollDOM.getBoundingClientRect(),o=getScrollMargins(this.view);return{visible:{left:A.left+o.left,top:A.top+o.top,right:A.right-o.right,bottom:A.bottom-o.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,a)=>{let l=this.manager.tooltipViews[a];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view),scaleX:r,scaleY:e,makeAbsolute:n}}writeMeasure(r){var e;if(r.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:n,space:A,scaleX:o,scaleY:s}=r,a=[];for(let l=0;l<this.manager.tooltips.length;l++){let c=this.manager.tooltips[l],g=this.manager.tooltipViews[l],{dom:h}=g,d=r.pos[l],u=r.size[l];if(!d||c.clip!==!1&&(d.bottom<=Math.max(n.top,A.top)||d.top>=Math.min(n.bottom,A.bottom)||d.right<Math.max(n.left,A.left)-.1||d.left>Math.min(n.right,A.right)+.1)){h.style.top=Outside;continue}let f=c.arrow?g.dom.querySelector(".cm-tooltip-arrow"):null,I=f?7:0,p=u.right-u.left,m=(e=knownHeight.get(g))!==null&&e!==void 0?e:u.bottom-u.top,E=g.offset||noOffset,B=this.view.textDirection==Direction.LTR,Q=u.width>A.right-A.left?B?A.left:A.right-u.width:B?Math.max(A.left,Math.min(d.left-(f?14:0)+E.x,A.right-p)):Math.min(Math.max(A.left,d.left-p+(f?14:0)-E.x),A.right-p),S=this.above[l];!c.strictSide&&(S?d.top-m-I-E.y<A.top:d.bottom+m+I+E.y>A.bottom)&&S==A.bottom-d.bottom>d.top-A.top&&(S=this.above[l]=!S);let w=(S?d.top-A.top:A.bottom-d.bottom)-I;if(w<m&&g.resize!==!1){if(w<this.view.defaultLineHeight){h.style.top=Outside;continue}knownHeight.set(g,m),h.style.height=(m=w)/s+"px"}else h.style.height&&(h.style.height="");let y=S?d.top-m-I-E.y:d.bottom+I+E.y,D=Q+p;if(g.overlap!==!0)for(let _ of a)_.left<D&&_.right>Q&&_.top<y+m&&_.bottom>y&&(y=S?_.top-m-2-I:_.bottom+I+2);if(this.position=="absolute"?(h.style.top=(y-r.parent.top)/s+"px",setLeftStyle(h,(Q-r.parent.left)/o)):(h.style.top=y/s+"px",setLeftStyle(h,Q/o)),f){let _=d.left+(B?E.x:-E.x)-(Q+14-7);f.style.left=_/o+"px"}g.overlap!==!0&&a.push({left:Q,top:y,right:D,bottom:y+m}),h.classList.toggle("cm-tooltip-above",S),h.classList.toggle("cm-tooltip-below",!S),g.positioned&&g.positioned(r.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 r of this.manager.tooltipViews)r.dom.style.top=Outside}},{eventObservers:{scroll(){this.maybeMeasure()}}});function setLeftStyle(r,e){let n=parseInt(r.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(r.style.left=e+"px")}const baseTheme$3=EditorView.baseTheme({".cm-tooltip":{zIndex:500,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"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$3]}),showHoverTooltip=Facet.define({combine:r=>r.reduce((e,n)=>e.concat(n),[])});class HoverTooltipHost{static create(e){return new HoverTooltipHost(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,(n,A)=>this.createHostedView(n,A),n=>n.dom.remove())}createHostedView(e,n){let A=e.create(this.view);return A.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(A.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&A.mount&&A.mount(this.view),A}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let A of this.manager.tooltipViews){let o=A[e];if(o!==void 0){if(n===void 0)n=o;else if(n!==o)return}}return n}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 showHoverTooltipHost=showTooltip.compute([showHoverTooltip],r=>{let e=r.facet(showHoverTooltip);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var A;return(A=n.end)!==null&&A!==void 0?A:n.pos})),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class HoverPlugin{constructor(e,n,A,o,s){this.view=e,this.source=n,this.field=A,this.setHover=o,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.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.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:n}=this,A=e.docView.nearest(n.target);if(!A)return;let o,s=1;if(A instanceof WidgetView)o=A.posAtStart;else{if(o=e.posAtCoords(n),o==null)return;let l=e.coordsAtPos(o);if(!l||n.y<l.top||n.y>l.bottom||n.x<l.left-e.defaultCharacterWidth||n.x>l.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(o)).find(h=>h.from<=o&&h.to>=o),g=c&&c.dir==Direction.RTL?-1:1;s=n.x<l.left?-g:g}let a=this.source(e,o,s);if(a?.then){let l=this.pending={pos:o};a.then(c=>{this.pending==l&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>logException(e.state,c,"hover tooltip"))}else a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])})}get tooltip(){let e=this.view.plugin(tooltipPlugin),n=e?e.manager.tooltips.findIndex(A=>A.create==HoverTooltipHost.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,A;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:o,tooltip:s}=this;if(o.length&&s&&!isInTooltip(s.dom,e)||this.pending){let{pos:a}=o[0]||this.pending,l=(A=(n=o[0])===null||n===void 0?void 0:n.end)!==null&&A!==void 0?A:a;(a==l?this.view.posAtCoords(this.lastMove)!=a:!isOverRange(this.view,a,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:A}=this;A&&A.dom.contains(e.relatedTarget)?this.watchTooltipLeave(A.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=A=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(A.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const tooltipMargin=4;function isInTooltip(r,e){let{left:n,right:A,top:o,bottom:s}=r.getBoundingClientRect(),a;if(a=r.querySelector(".cm-tooltip-arrow")){let l=a.getBoundingClientRect();o=Math.min(l.top,o),s=Math.max(l.bottom,s)}return e.clientX>=n-tooltipMargin&&e.clientX<=A+tooltipMargin&&e.clientY>=o-tooltipMargin&&e.clientY<=s+tooltipMargin}function isOverRange(r,e,n,A,o,s){let a=r.scrollDOM.getBoundingClientRect(),l=r.documentTop+r.documentPadding.top+r.contentHeight;if(a.left>A||a.right<A||a.top>o||Math.min(a.bottom,l)<o)return!1;let c=r.posAtCoords({x:A,y:o},!1);return c>=e&&c<=n}function hoverTooltip(r,e={}){let n=StateEffect.define(),A=StateField.define({create(){return[]},update(o,s){if(o.length&&(e.hideOnChange&&(s.docChanged||s.selection)?o=[]:e.hideOn&&(o=o.filter(a=>!e.hideOn(s,a))),s.docChanged)){let a=[];for(let l of o){let c=s.changes.mapPos(l.pos,-1,MapMode.TrackDel);if(c!=null){let g=Object.assign(Object.create(null),l);g.pos=c,g.end!=null&&(g.end=s.changes.mapPos(g.end)),a.push(g)}}o=a}for(let a of s.effects)a.is(n)&&(o=a.value),a.is(closeHoverTooltipEffect)&&(o=[]);return o},provide:o=>showHoverTooltip.from(o)});return{active:A,extension:[A,ViewPlugin.define(o=>new HoverPlugin(o,r,A,n,e.hoverTime||300)),showHoverTooltipHost]}}function getTooltip(r,e){let n=r.plugin(tooltipPlugin);if(!n)return null;let A=n.manager.tooltips.indexOf(e);return A<0?null:n.manager.tooltipViews[A]}const closeHoverTooltipEffect=StateEffect.define();class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),gutterWidgetClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},activeGutters=Facet.define();function gutter(r){return[gutters(),activeGutters.of({...defaults$1,...r})]}const unfixGutters=Facet.define({combine:r=>r.some(e=>e)});function gutters(r){return[gutterView]}const gutterView=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.domAfter=null,this.prevViewport=r.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=r.state.facet(activeGutters).map(e=>new SingleGutterView(r,e)),this.fixed=!r.state.facet(unfixGutters);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),r.scrollDOM.insertBefore(this.dom,r.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(r){if(this.updateGutters(r)){let e=this.prevViewport,n=r.view.viewport,A=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(A<(n.to-n.from)*.8)}if(r.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=r.view.viewport}syncGutters(r){let e=this.dom.nextSibling;r&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),A=[],o=this.gutters.map(s=>new UpdateContext(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(A.length&&(A=[]),Array.isArray(s.type)){let a=!0;for(let l of s.type)if(l.type==BlockType.Text&&a){advanceCursor(n,A,l.from);for(let c of o)c.line(this.view,l,A);a=!1}else if(l.widget)for(let c of o)c.widget(this.view,l)}else if(s.type==BlockType.Text){advanceCursor(n,A,s.from);for(let a of o)a.line(this.view,s,A)}else if(s.widget)for(let a of o)a.widget(this.view,s);for(let s of o)s.finish();r&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(r){let e=r.startState.facet(activeGutters),n=r.state.facet(activeGutters),A=r.docChanged||r.heightChanged||r.viewportChanged||!RangeSet.eq(r.startState.facet(gutterLineClass),r.state.facet(gutterLineClass),r.view.viewport.from,r.view.viewport.to);if(e==n)for(let o of this.gutters)o.update(r)&&(A=!0);else{A=!0;let o=[];for(let s of n){let a=e.indexOf(s);a<0?o.push(new SingleGutterView(this.view,s)):(this.gutters[a].update(r),o.push(this.gutters[a]))}for(let s of this.gutters)s.dom.remove(),o.indexOf(s)<0&&s.destroy();for(let s of o)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=o}return A}destroy(){for(let r of this.gutters)r.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:r=>EditorView.scrollMargins.of(e=>{let n=e.plugin(r);if(!n||n.gutters.length==0||!n.fixed)return null;let A=n.dom.offsetWidth*e.scaleX,o=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Direction.LTR?{left:A,right:o}:{right:A,left:o}})});function asArray(r){return Array.isArray(r)?r:[r]}function advanceCursor(r,e,n){for(;r.value&&r.from<=n;)r.from==n&&e.push(r.value),r.next()}class UpdateContext{constructor(e,n,A){this.gutter=e,this.height=A,this.i=0,this.cursor=RangeSet.iter(e.markers,n.from)}addElement(e,n,A){let{gutter:o}=this,s=(n.top-this.height)/e.scaleY,a=n.height/e.scaleY;if(this.i==o.elements.length){let l=new GutterElement(e,a,s,A);o.elements.push(l),o.dom.appendChild(l.dom)}else o.elements[this.i].update(e,a,s,A);this.height=n.bottom,this.i++}line(e,n,A){let o=[];advanceCursor(this.cursor,o,n.from),A.length&&(o=o.concat(A));let s=this.gutter.config.lineMarker(e,n,o);s&&o.unshift(s);let a=this.gutter;o.length==0&&!a.config.renderEmptyElements||this.addElement(e,n,o)}widget(e,n){let A=this.gutter.config.widgetMarker(e,n.widget,n),o=A?[A]:null;for(let s of e.state.facet(gutterWidgetClass)){let a=s(e,n.widget,n);a&&(o||(o=[])).push(a)}o&&this.addElement(e,n,o)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class SingleGutterView{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let A in n.domEventHandlers)this.dom.addEventListener(A,o=>{let s=o.target,a;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let c=s.getBoundingClientRect();a=(c.top+c.bottom)/2}else a=o.clientY;let l=e.lineBlockAtHeight(a-e.documentTop);n.domEventHandlers[A](e,l,o)&&o.preventDefault()});this.markers=asArray(n.markers(e)),n.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let o=this.config.updateSpacer(this.spacer.markers[0],e);o!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[o])}let A=e.view.viewport;return!RangeSet.eq(this.markers,n,A.from,A.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,n,A,o){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,A,o)}update(e,n,A,o){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=A&&(this.dom.style.marginTop=(this.above=A)?A+"px":""),sameMarkers(this.markers,o)||this.setMarkers(e,o)}setMarkers(e,n){let A="cm-gutterElement",o=this.dom.firstChild;for(let s=0,a=0;;){let l=a,c=s<n.length?n[s++]:null,g=!1;if(c){let h=c.elementClass;h&&(A+=" "+h);for(let d=a;d<this.markers.length;d++)if(this.markers[d].compare(c)){l=d,g=!0;break}}else l=this.markers.length;for(;a<l;){let h=this.markers[a++];if(h.toDOM){h.destroy(o);let d=o.nextSibling;o.remove(),o=d}}if(!c)break;c.toDOM&&(g?o=o.nextSibling:this.dom.insertBefore(c.toDOM(e),o)),g&&a++}this.dom.className=A,this.markers=n}destroy(){this.setMarkers(null,[])}}function sameMarkers(r,e){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!r[n].compare(e[n]))return!1;return!0}const lineNumberMarkers=Facet.define(),lineNumberWidgetMarker=Facet.define(),lineNumberConfig=Facet.define({combine(r){return combineConfig(r,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,n){let A=Object.assign({},e);for(let o in n){let s=A[o],a=n[o];A[o]=s?(l,c,g)=>s(l,c,g)||a(l,c,g):a}return A}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(r,e){return r.state.facet(lineNumberConfig).formatNumber(e,r.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],r=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,n,A){return A.some(o=>o.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,A)=>{for(let o of e.state.facet(lineNumberWidgetMarker)){let s=o(e,n,A);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,n){let A=formatNumber(n.view,maxLineNumber(n.view.state.doc.lines));return A==e.number?e:new NumberMarker(A)},domEventHandlers:r.facet(lineNumberConfig).domEventHandlers,side:"before"}));function lineNumbers(r={}){return[lineNumberConfig.of(r),gutters(),lineNumberGutter]}function maxLineNumber(r){let e=9;for(;e<r;)e=e*10+9;return e}const activeLineGutterMarker=new class extends GutterMarker{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},activeLineGutterHighlighter=gutterLineClass.compute(["selection"],r=>{let e=[],n=-1;for(let A of r.selection.ranges){let o=r.doc.lineAt(A.head).from;o>n&&(n=o,e.push(activeLineGutterMarker.range(o)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}const DefaultBufferLength=1024;let nextPropID=0,Range$1=class{constructor(e,n){this.from=e,this.to=n}};class NodeProp{constructor(e={}){this.id=nextPropID++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),n=>{let A=e(n);return A===void 0?null:[this,A]}}}NodeProp.closedBy=new NodeProp({deserialize:r=>r.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:r=>r.split(" ")});NodeProp.group=new NodeProp({deserialize:r=>r.split(" ")});NodeProp.isolate=new NodeProp({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});class MountedTree{constructor(e,n,A){this.tree=e,this.overlay=n,this.parser=A}static get(e){return e&&e.props&&e.props[NodeProp.mounted.id]}}const noProps=Object.create(null);class NodeType{constructor(e,n,A,o=0){this.name=e,this.props=n,this.id=A,this.flags=o}static define(e){let n=e.props&&e.props.length?Object.create(null):noProps,A=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new NodeType(e.name||"",n,e.id,A);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(o)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return o}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(NodeProp.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let A in e)for(let o of A.split(" "))n[o]=e[A];return A=>{for(let o=A.prop(NodeProp.group),s=-1;s<(o?o.length:0);s++){let a=n[s<0?A.name:o[s]];if(a)return a}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let n=0;n<e.length;n++)if(e[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let n=[];for(let A of this.types){let o=null;for(let s of e){let a=s(A);if(a){o||(o=Object.assign({},A.props));let l=a[1],c=a[0];c.combine&&c.id in o&&(l=c.combine(o[c.id],l)),o[c.id]=l}}n.push(o?new NodeType(A.name,o,A.id,A.flags):A)}return new NodeSet(n)}}const CachedNode=new WeakMap,CachedInnerNode=new WeakMap;exports.IterMode=void 0;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(exports.IterMode||(exports.IterMode={}));let Tree$1=class ht{constructor(e,n,A,o,s){if(this.type=e,this.children=n,this.positions=A,this.length=o,this.props=null,s&&s.length){this.props=Object.create(null);for(let[a,l]of s)this.props[typeof a=="number"?a:a.id]=l}}toString(){let e=MountedTree.get(this);if(e&&!e.overlay)return e.tree.toString();let n="";for(let A of this.children){let o=A.toString();o&&(n&&(n+=","),n+=o)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(e=0){return new TreeCursor$1(this.topNode,e)}cursorAt(e,n=0,A=0){let o=CachedNode.get(this)||this.topNode,s=new TreeCursor$1(o);return s.moveTo(e,n),CachedNode.set(this,s._tree),s}get topNode(){return new TreeNode(this,0,0,null)}resolve(e,n=0){let A=resolveNode(CachedNode.get(this)||this.topNode,e,n,!1);return CachedNode.set(this,A),A}resolveInner(e,n=0){let A=resolveNode(CachedInnerNode.get(this)||this.topNode,e,n,!0);return CachedInnerNode.set(this,A),A}resolveStack(e,n=0){return stackIterator(this,e,n)}iterate(e){let{enter:n,leave:A,from:o=0,to:s=this.length}=e,a=e.mode||0,l=(a&exports.IterMode.IncludeAnonymous)>0;for(let c=this.cursor(a|exports.IterMode.IncludeAnonymous);;){let g=!1;if(c.from<=s&&c.to>=o&&(!l&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;g=!0}for(;g&&A&&(l||!c.type.isAnonymous)&&A(c),!c.nextSibling();){if(!c.parent())return;g=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(n,A,o)=>new ht(this.type,n,A,o,this.propValues),e.makeTree||((n,A,o)=>new ht(NodeType.none,n,A,o)))}static build(e){return buildTree(e)}};Tree$1.empty=new Tree$1(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,n){this.buffer=e,this.index=n}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 FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,n,A){this.buffer=e,this.length=n,this.set=A}get type(){return NodeType.none}toString(){let e=[];for(let n=0;n<this.buffer.length;)e.push(this.childString(n)),n=this.buffer[n+3];return e.join(",")}childString(e){let n=this.buffer[e],A=this.buffer[e+3],o=this.set.types[n],s=o.name;if(/\W/.test(s)&&!o.isError&&(s=JSON.stringify(s)),e+=4,A==e)return s;let a=[];for(;e<A;)a.push(this.childString(e)),e=this.buffer[e+3];return s+"("+a.join(",")+")"}findChild(e,n,A,o,s){let{buffer:a}=this,l=-1;for(let c=e;c!=n&&!(checkSide(s,o,a[c+1],a[c+2])&&(l=c,A>0));c=a[c+3]);return l}slice(e,n,A){let o=this.buffer,s=new Uint16Array(n-e),a=0;for(let l=e,c=0;l<n;){s[c++]=o[l++],s[c++]=o[l++]-A;let g=s[c++]=o[l++]-A;s[c++]=o[l++]-e,a=Math.max(a,g)}return new TreeBuffer(s,a,this.set)}}function checkSide(r,e,n,A){switch(r){case-2:return n<e;case-1:return A>=e&&n<e;case 0:return n<e&&A>e;case 1:return n<=e&&A>e;case 2:return A>e;case 4:return!0}}function resolveNode(r,e,n,A){for(var o;r.from==r.to||(n<1?r.from>=e:r.from>e)||(n>-1?r.to<=e:r.to<e);){let a=!A&&r instanceof TreeNode&&r.index<0?null:r.parent;if(!a)return r;r=a}let s=A?0:exports.IterMode.IgnoreOverlays;if(A)for(let a=r,l=a.parent;l;a=l,l=a.parent)a instanceof TreeNode&&a.index<0&&((o=l.enter(e,n,s))===null||o===void 0?void 0:o.from)!=a.from&&(r=l);for(;;){let a=r.enter(e,n,s);if(!a)return r;r=a}}let BaseNode$1=class{cursor(e=0){return new TreeCursor$1(this,e)}getChild(e,n=null,A=null){let o=getChildren$1(this,e,n,A);return o.length?o[0]:null}getChildren(e,n=null,A=null){return getChildren$1(this,e,n,A)}resolve(e,n=0){return resolveNode(this,e,n,!1)}resolveInner(e,n=0){return resolveNode(this,e,n,!0)}matchContext(e){return matchNodeContext(this.parent,e)}enterUnfinishedNodesBefore(e){let n=this.childBefore(e),A=this;for(;n;){let o=n.lastChild;if(!o||o.to!=n.to)break;o.type.isError&&o.from==o.to?(A=n,n=o.prevSibling):n=o}return A}get node(){return this}get next(){return this.parent}};class TreeNode extends BaseNode$1{constructor(e,n,A,o){super(),this._tree=e,this.from=n,this.index=A,this._parent=o}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,n,A,o,s=0){for(let a=this;;){for(let{children:l,positions:c}=a._tree,g=n>0?l.length:-1;e!=g;e+=n){let h=l[e],d=c[e]+a.from;if(checkSide(o,A,d,d+h.length)){if(h instanceof TreeBuffer){if(s&exports.IterMode.ExcludeBuffers)continue;let u=h.findChild(0,h.buffer.length,n,A-d,o);if(u>-1)return new BufferNode(new BufferContext(a,h,e,d),null,u)}else if(s&exports.IterMode.IncludeAnonymous||!h.type.isAnonymous||hasChild(h)){let u;if(!(s&exports.IterMode.IgnoreMounts)&&(u=MountedTree.get(h))&&!u.overlay)return new TreeNode(u.tree,d,e,a);let f=new TreeNode(h,d,e,a);return s&exports.IterMode.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(n<0?h.children.length-1:0,n,A,o)}}}if(s&exports.IterMode.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?e=a.index+n:e=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))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(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,A=0){let o;if(!(A&exports.IterMode.IgnoreOverlays)&&(o=MountedTree.get(this._tree))&&o.overlay){let s=e-this.from;for(let{from:a,to:l}of o.overlay)if((n>0?a<=s:a<s)&&(n<0?l>=s:l>s))return new TreeNode(o.tree,o.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,A)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}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 getChildren$1(r,e,n,A){let o=r.cursor(),s=[];if(!o.firstChild())return s;if(n!=null){for(let a=!1;!a;)if(a=o.type.is(n),!o.nextSibling())return s}for(;;){if(A!=null&&o.type.is(A))return s;if(o.type.is(e)&&s.push(o.node),!o.nextSibling())return A==null?s:[]}}function matchNodeContext(r,e,n=e.length-1){for(let A=r;n>=0;A=A.parent){if(!A)return!1;if(!A.type.isAnonymous){if(e[n]&&e[n]!=A.name)return!1;n--}}return!0}class BufferContext{constructor(e,n,A,o){this.parent=e,this.buffer=n,this.index=A,this.start=o}}class BufferNode extends BaseNode$1{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(e,n,A){super(),this.context=e,this._parent=n,this.index=A,this.type=e.buffer.set.types[e.buffer.buffer[A]]}child(e,n,A){let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],e,n-this.context.start,A);return s<0?null:new BufferNode(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,A=0){if(A&exports.IterMode.ExcludeBuffers)return null;let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new BufferNode(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:A}=this.context,o=this.index+4,s=A.buffer[this.index+3];if(s>o){let a=A.buffer[this.index+1];e.push(A.slice(o,s,a)),n.push(0)}return new Tree$1(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iterStack(r){if(!r.length)return null;let e=0,n=r[0];for(let s=1;s<r.length;s++){let a=r[s];(a.from>n.from||a.to<n.to)&&(n=a,e=s)}let A=n instanceof TreeNode&&n.index<0?null:n.parent,o=r.slice();return A?o[e]=A:o.splice(e,1),new StackIterator(o,n)}class StackIterator{constructor(e,n){this.heads=e,this.node=n}get next(){return iterStack(this.heads)}}function stackIterator(r,e,n){let A=r.resolveInner(e,n),o=null;for(let s=A instanceof TreeNode?A:A.context.parent;s;s=s.parent)if(s.index<0){let a=s.parent;(o||(o=[A])).push(a.resolve(e,n)),s=a}else{let a=MountedTree.get(s.tree);if(a&&a.overlay&&a.overlay[0].from<=e&&a.overlay[a.overlay.length-1].to>=e){let l=new TreeNode(a.tree,a.overlay[0].from+s.from,-1,s);(o||(o=[A])).push(resolveNode(l,e,n,!1))}}return o?iterStack(o):A}let TreeCursor$1=class{get name(){return this.type.name}constructor(e,n=0){if(this.mode=n,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let A=e._parent;A;A=A._parent)this.stack.unshift(A.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:A,buffer:o}=this.buffer;return this.type=n||o.set.types[o.buffer[e]],this.from=A+o.buffer[e+1],this.to=A+o.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,A){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,A,this.mode));let{buffer:o}=this.buffer,s=o.findChild(this.index+4,o.buffer[this.index+3],e,n-this.buffer.start,A);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,A=this.mode){return this.buffer?A&exports.IterMode.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,A))}parent(){if(!this.buffer)return this.yieldNode(this.mode&exports.IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&exports.IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,A=this.stack.length-1;if(e<0){let o=A<0?0:this.stack[A]+4;if(this.index!=o)return this.yieldBuf(n.findChild(o,this.index,-1,0,4))}else{let o=n.buffer[this.index+3];if(o<(A<0?n.buffer.length:n.buffer[this.stack[A]+3]))return this.yieldBuf(o)}return A<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,A,{buffer:o}=this;if(o){if(e>0){if(this.index<o.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(o.buffer.buffer[s+3]<this.index)return!1;({index:n,parent:A}=o)}else({index:n,_parent:A}=this._tree);for(;A;{index:n,_parent:A}=A)if(n>-1)for(let s=n+e,a=e<0?-1:A._tree.children.length;s!=a;s+=e){let l=A._tree.children[s];if(this.mode&exports.IterMode.IncludeAnonymous||l instanceof TreeBuffer||!l.type.isAnonymous||hasChild(l))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,n););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,n=null,A=0;if(e&&e.context==this.buffer)e:for(let o=this.index,s=this.stack.length;s>=0;){for(let a=e;a;a=a._parent)if(a.index==o){if(o==this.index)return a;n=a,A=s+1;break e}o=this.stack[--s]}for(let o=A;o<this.stack.length;o++)n=new BufferNode(this.buffer,n,this.stack[o]);return this.bufferNode=new BufferNode(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,n){for(let A=0;;){let o=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){A++;continue}this.type.isAnonymous||(o=!0)}for(;;){if(o&&n&&n(this),o=this.type.isAnonymous,!A)return;if(this.nextSibling())break;this.parent(),A--,o=!0}}}matchContext(e){if(!this.buffer)return matchNodeContext(this.node.parent,e);let{buffer:n}=this.buffer,{types:A}=n.set;for(let o=e.length-1,s=this.stack.length-1;o>=0;s--){if(s<0)return matchNodeContext(this._tree,e,o);let a=A[n.buffer[this.stack[s]]];if(!a.isAnonymous){if(e[o]&&e[o]!=a.name)return!1;o--}}return!0}};function hasChild(r){return r.children.some(e=>e instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(r){var e;let{buffer:n,nodeSet:A,maxBufferLength:o=DefaultBufferLength,reused:s=[],minRepeatType:a=A.types.length}=r,l=Array.isArray(n)?new FlatBufferCursor(n,n.length):n,c=A.types,g=0,h=0;function d(w,y,D,_,M,R){let{id:F,start:v,end:N,size:L}=l,G=h,K=g;if(L<0)if(l.next(),L==-1){let z=s[F];D.push(z),_.push(v-w);return}else if(L==-3){g=F;return}else if(L==-4){h=F;return}else throw new RangeError(`Unrecognized record size: ${L}`);let O=c[F],oe,j,Ae=v-w;if(N-v<=o&&(j=m(l.pos-y,M))){let z=new Uint16Array(j.size-j.skip),ee=l.pos-j.size,ae=z.length;for(;l.pos>ee;)ae=E(j.start,z,ae);oe=new TreeBuffer(z,N-j.start,A),Ae=j.start-w}else{let z=l.pos-L;l.next();let ee=[],ae=[],le=F>=a?F:-1,ge=0,he=N;for(;l.pos>z;)le>=0&&l.id==le&&l.size>=0?(l.end<=he-o&&(I(ee,ae,v,ge,l.end,he,le,G,K),ge=ee.length,he=l.end),l.next()):R>2500?u(v,z,ee,ae):d(v,z,ee,ae,le,R+1);if(le>=0&&ge>0&&ge<ee.length&&I(ee,ae,v,ge,v,he,le,G,K),ee.reverse(),ae.reverse(),le>-1&&ge>0){let Be=f(O,K);oe=balanceRange(O,ee,ae,0,ee.length,0,N-v,Be,Be)}else oe=p(O,ee,ae,N-v,G-N,K)}D.push(oe),_.push(Ae)}function u(w,y,D,_){let M=[],R=0,F=-1;for(;l.pos>y;){let{id:v,start:N,end:L,size:G}=l;if(G>4)l.next();else{if(F>-1&&N<F)break;F<0&&(F=L-o),M.push(v,N,L),R++,l.next()}}if(R){let v=new Uint16Array(R*4),N=M[M.length-2];for(let L=M.length-3,G=0;L>=0;L-=3)v[G++]=M[L],v[G++]=M[L+1]-N,v[G++]=M[L+2]-N,v[G++]=G;D.push(new TreeBuffer(v,M[2]-N,A)),_.push(N-w)}}function f(w,y){return(D,_,M)=>{let R=0,F=D.length-1,v,N;if(F>=0&&(v=D[F])instanceof Tree$1){if(!F&&v.type==w&&v.length==M)return v;(N=v.prop(NodeProp.lookAhead))&&(R=_[F]+v.length+N)}return p(w,D,_,M,R,y)}}function I(w,y,D,_,M,R,F,v,N){let L=[],G=[];for(;w.length>_;)L.push(w.pop()),G.push(y.pop()+D-M);w.push(p(A.types[F],L,G,R-M,v-R,N)),y.push(M-D)}function p(w,y,D,_,M,R,F){if(R){let v=[NodeProp.contextHash,R];F=F?[v].concat(F):[v]}if(M>25){let v=[NodeProp.lookAhead,M];F=F?[v].concat(F):[v]}return new Tree$1(w,y,D,_,F)}function m(w,y){let D=l.fork(),_=0,M=0,R=0,F=D.end-o,v={size:0,start:0,skip:0};e:for(let N=D.pos-w;D.pos>N;){let L=D.size;if(D.id==y&&L>=0){v.size=_,v.start=M,v.skip=R,R+=4,_+=4,D.next();continue}let G=D.pos-L;if(L<0||G<N||D.start<F)break;let K=D.id>=a?4:0,O=D.start;for(D.next();D.pos>G;){if(D.size<0)if(D.size==-3||D.size==-4)K+=4;else break e;else D.id>=a&&(K+=4);D.next()}M=O,_+=L,R+=K}return(y<0||_==w)&&(v.size=_,v.start=M,v.skip=R),v.size>4?v:void 0}function E(w,y,D){let{id:_,start:M,end:R,size:F}=l;if(l.next(),F>=0&&_<a){let v=D;if(F>4){let N=l.pos-(F-4);for(;l.pos>N;)D=E(w,y,D)}y[--D]=v,y[--D]=R-w,y[--D]=M-w,y[--D]=_}else F==-3?g=_:F==-4&&(h=_);return D}let B=[],Q=[];for(;l.pos>0;)d(r.start||0,r.bufferStart||0,B,Q,-1,0);let S=(e=r.length)!==null&&e!==void 0?e:B.length?Q[0]+B[0].length:0;return new Tree$1(c[r.topID],B.reverse(),Q.reverse(),S)}const nodeSizeCache=new WeakMap;function nodeSize(r,e){if(!r.isAnonymous||e instanceof TreeBuffer||e.type!=r)return 1;let n=nodeSizeCache.get(e);if(n==null){n=1;for(let A of e.children){if(A.type!=r||!(A instanceof Tree$1)){n=1;break}n+=nodeSize(r,A)}nodeSizeCache.set(e,n)}return n}function balanceRange(r,e,n,A,o,s,a,l,c){let g=0;for(let I=A;I<o;I++)g+=nodeSize(r,e[I]);let h=Math.ceil(g*1.5/8),d=[],u=[];function f(I,p,m,E,B){for(let Q=m;Q<E;){let S=Q,w=p[Q],y=nodeSize(r,I[Q]);for(Q++;Q<E;Q++){let D=nodeSize(r,I[Q]);if(y+D>=h)break;y+=D}if(Q==S+1){if(y>h){let D=I[S];f(D.children,D.positions,0,D.children.length,p[S]+B);continue}d.push(I[S])}else{let D=p[Q-1]+I[Q-1].length-w;d.push(balanceRange(r,I,p,S,Q,w,D,null,c))}u.push(w+B-s)}}return f(e,n,A,o,0),(l||c)(d,u,a)}class NodeWeakMap{constructor(){this.map=new WeakMap}setBuffer(e,n,A){let o=this.map.get(e);o||this.map.set(e,o=new Map),o.set(n,A)}getBuffer(e,n){let A=this.map.get(e);return A&&A.get(n)}set(e,n){e instanceof BufferNode?this.setBuffer(e.context.buffer,e.index,n):e instanceof TreeNode&&this.map.set(e.tree,n)}get(e){return e instanceof BufferNode?this.getBuffer(e.context.buffer,e.index):e instanceof TreeNode?this.map.get(e.tree):void 0}cursorSet(e,n){e.buffer?this.setBuffer(e.buffer.buffer,e.index,n):this.map.set(e.tree,n)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class TreeFragment{constructor(e,n,A,o,s=!1,a=!1){this.from=e,this.to=n,this.tree=A,this.offset=o,this.open=(s?1:0)|(a?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],A=!1){let o=[new TreeFragment(0,e.length,e,0,!1,A)];for(let s of n)s.to>e.length&&o.push(s);return o}static applyChanges(e,n,A=128){if(!n.length)return e;let o=[],s=1,a=e.length?e[0]:null;for(let l=0,c=0,g=0;;l++){let h=l<n.length?n[l]:null,d=h?h.fromA:1e9;if(d-c>=A)for(;a&&a.from<d;){let u=a;if(c>=u.from||d<=u.to||g){let f=Math.max(u.from,c)-g,I=Math.min(u.to,d)-g;u=f>=I?null:new TreeFragment(f,I,u.tree,u.offset+g,l>0,!!h)}if(u&&o.push(u),a.to>d)break;a=s<e.length?e[s++]:null}if(!h)break;c=h.toA,g=h.toA-h.toB}return o}}let Parser$1=class{startParse(e,n,A){return typeof e=="string"&&(e=new StringInput(e)),A=A?A.length?A.map(o=>new Range$1(o.from,o.to)):[new Range$1(0,0)]:[new Range$1(0,e.length)],this.createParse(e,n||[],A)}parse(e,n,A){let o=this.startParse(e,n,A);for(;;){let s=o.advance();if(s)return s}}};class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}function parseMixed(r){return(e,n,A,o)=>new MixedParse(e,r,n,A,o)}class InnerParse{constructor(e,n,A,o,s){this.parser=e,this.parse=n,this.overlay=A,this.target=o,this.from=s}}function checkRanges(r){if(!r.length||r.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(r))}class ActiveOverlay{constructor(e,n,A,o,s,a,l){this.parser=e,this.predicate=n,this.mounts=A,this.index=o,this.start=s,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}}const stoppedInner=new NodeProp({perNode:!0});class MixedParse{constructor(e,n,A,o,s){this.nest=n,this.input=A,this.fragments=o,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let A=this.baseParse.advance();if(!A)return null;if(this.baseParse=null,this.baseTree=A,this.startInner(),this.stoppedAt!=null)for(let o of this.inner)o.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let A=this.baseTree;return this.stoppedAt!=null&&(A=new Tree$1(A.type,A.children,A.positions,A.length,A.propValues.concat([[stoppedInner,this.stoppedAt]]))),A}let e=this.inner[this.innerDone],n=e.parse.advance();if(n){this.innerDone++;let A=Object.assign(Object.create(null),e.target.props);A[NodeProp.mounted.id]=new MountedTree(n,e.overlay,e.parser),e.target.props=A}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let n=this.innerDone;n<this.inner.length;n++)this.inner[n].from<e&&(e=Math.min(e,this.inner[n].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let n=this.innerDone;n<this.inner.length;n++)this.inner[n].parse.stopAt(e)}startInner(){let e=new FragmentCursor(this.fragments),n=null,A=null,o=new TreeCursor$1(new TreeNode(this.baseTree,this.ranges[0].from,0,null),exports.IterMode.IncludeAnonymous|exports.IterMode.IgnoreMounts);e:for(let s,a;;){let l=!0,c;if(this.stoppedAt!=null&&o.from>=this.stoppedAt)l=!1;else if(e.hasNode(o)){if(n){let g=n.mounts.find(h=>h.frag.from<=o.from&&h.frag.to>=o.to&&h.mount.overlay);if(g)for(let h of g.mount.overlay){let d=h.from+g.pos,u=h.to+g.pos;d>=o.from&&u<=o.to&&!n.ranges.some(f=>f.from<u&&f.to>d)&&n.ranges.push({from:d,to:u})}}l=!1}else if(A&&(a=checkCover(A.ranges,o.from,o.to)))l=a!=2;else if(!o.type.isAnonymous&&(s=this.nest(o,this.input))&&(o.from<o.to||!s.overlay)){o.tree||(materialize(o),n&&n.depth++,A&&A.depth++);let g=e.findMounts(o.from,s.parser);if(typeof s.overlay=="function")n=new ActiveOverlay(s.parser,s.overlay,g,this.inner.length,o.from,o.tree,n);else{let h=punchRanges(this.ranges,s.overlay||(o.from<o.to?[new Range$1(o.from,o.to)]:[]));h.length&&checkRanges(h),(h.length||!s.overlay)&&this.inner.push(new InnerParse(s.parser,h.length?s.parser.startParse(this.input,enterFragments(g,h),h):s.parser.startParse(""),s.overlay?s.overlay.map(d=>new Range$1(d.from-o.from,d.to-o.from)):null,o.tree,h.length?h[0].from:o.from)),s.overlay?h.length&&(A={ranges:h,depth:0,prev:A}):l=!1}}else if(n&&(c=n.predicate(o))&&(c===!0&&(c=new Range$1(o.from,o.to)),c.from<c.to)){let g=n.ranges.length-1;g>=0&&n.ranges[g].to==c.from?n.ranges[g]={from:n.ranges[g].from,to:c.to}:n.ranges.push(c)}if(l&&o.firstChild())n&&n.depth++,A&&A.depth++;else for(;!o.nextSibling();){if(!o.parent())break e;if(n&&!--n.depth){let g=punchRanges(this.ranges,n.ranges);g.length&&(checkRanges(g),this.inner.splice(n.index,0,new InnerParse(n.parser,n.parser.startParse(this.input,enterFragments(n.mounts,g),g),n.ranges.map(h=>new Range$1(h.from-n.start,h.to-n.start)),n.target,g[0].from))),n=n.prev}A&&!--A.depth&&(A=A.prev)}}}}function checkCover(r,e,n){for(let A of r){if(A.from>=n)break;if(A.to>e)return A.from<=e&&A.to>=n?2:1}return 0}function sliceBuf(r,e,n,A,o,s){if(e<n){let a=r.buffer[e+1];A.push(r.slice(e,n,a)),o.push(a-s)}}function materialize(r){let{node:e}=r,n=[],A=e.context.buffer;do n.push(r.index),r.parent();while(!r.tree);let o=r.tree,s=o.children.indexOf(A),a=o.children[s],l=a.buffer,c=[s];function g(h,d,u,f,I,p){let m=n[p],E=[],B=[];sliceBuf(a,h,m,E,B,f);let Q=l[m+1],S=l[m+2];c.push(E.length);let w=p?g(m+4,l[m+3],a.set.types[l[m]],Q,S-Q,p-1):e.toTree();return E.push(w),B.push(Q-f),sliceBuf(a,l[m+3],d,E,B,f),new Tree$1(u,E,B,I)}o.children[s]=g(0,l.length,NodeType.none,0,a.length,n.length-1);for(let h of c){let d=r.tree.children[h],u=r.tree.positions[h];r.yield(new TreeNode(d,u+r.from,h,r._tree))}}class StructureCursor{constructor(e,n){this.offset=n,this.done=!1,this.cursor=e.cursor(exports.IterMode.IncludeAnonymous|exports.IterMode.IgnoreMounts)}moveTo(e){let{cursor:n}=this,A=e-this.offset;for(;!this.done&&n.from<A;)n.to>=e&&n.enter(A,1,exports.IterMode.IgnoreOverlays|exports.IterMode.ExcludeBuffers)||n.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let n=this.cursor.tree;;){if(n==e.tree)return!0;if(n.children.length&&n.positions[0]==0&&n.children[0]instanceof Tree$1)n=n.children[0];else break}return!1}}class FragmentCursor{constructor(e){var n;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let A=this.curFrag=e[0];this.curTo=(n=A.tree.prop(stoppedInner))!==null&&n!==void 0?n:A.to,this.inner=new StructureCursor(A.tree,-A.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let n=this.curFrag=this.fragments[this.fragI];this.curTo=(e=n.tree.prop(stoppedInner))!==null&&e!==void 0?e:n.to,this.inner=new StructureCursor(n.tree,-n.offset)}}findMounts(e,n){var A;let o=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let a=(A=s.tree)===null||A===void 0?void 0:A.prop(NodeProp.mounted);if(a&&a.parser==n)for(let l=this.fragI;l<this.fragments.length;l++){let c=this.fragments[l];if(c.from>=s.to)break;c.tree==this.curFrag.tree&&o.push({frag:c,pos:s.from-c.offset,mount:a})}}}return o}}function punchRanges(r,e){let n=null,A=e;for(let o=1,s=0;o<r.length;o++){let a=r[o-1].to,l=r[o].from;for(;s<A.length;s++){let c=A[s];if(c.from>=l)break;c.to<=a||(n||(A=n=e.slice()),c.from<a?(n[s]=new Range$1(c.from,a),c.to>l&&n.splice(s+1,0,new Range$1(l,c.to))):c.to>l?n[s--]=new Range$1(l,c.to):n.splice(s--,1))}}return A}function findCoverChanges(r,e,n,A){let o=0,s=0,a=!1,l=!1,c=-1e9,g=[];for(;;){let h=o==r.length?1e9:a?r[o].to:r[o].from,d=s==e.length?1e9:l?e[s].to:e[s].from;if(a!=l){let u=Math.max(c,n),f=Math.min(h,d,A);u<f&&g.push(new Range$1(u,f))}if(c=Math.min(h,d),c==1e9)break;h==c&&(a?(a=!1,o++):a=!0),d==c&&(l?(l=!1,s++):l=!0)}return g}function enterFragments(r,e){let n=[];for(let{pos:A,mount:o,frag:s}of r){let a=A+(o.overlay?o.overlay[0].from:0),l=a+o.tree.length,c=Math.max(s.from,a),g=Math.min(s.to,l);if(o.overlay){let h=o.overlay.map(u=>new Range$1(u.from+A,u.to+A)),d=findCoverChanges(e,h,c,g);for(let u=0,f=c;;u++){let I=u==d.length,p=I?g:d[u].from;if(p>f&&n.push(new TreeFragment(f,p,o.tree,-a,s.from>=f||s.openStart,s.to<=p||s.openEnd)),I)break;f=d[u].to}}else n.push(new TreeFragment(c,g,o.tree,-a,s.from>=a||s.openStart,s.to<=l||s.openEnd))}return n}let nextTagID=0;class Tag{constructor(e,n,A,o){this.name=e,this.set=n,this.base=A,this.modified=o,this.id=nextTagID++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let A=typeof e=="string"?e:"?";if(e instanceof Tag&&(n=e),n?.base)throw new Error("Can not derive from a modified tag");let o=new Tag(A,[],null,[]);if(o.set.push(o),n)for(let s of n.set)o.set.push(s);return o}static defineModifier(e){let n=new Modifier(e);return A=>A.modified.indexOf(n)>-1?A:Modifier.get(A.base||A,A.modified.concat(n).sort((o,s)=>o.id-s.id))}}let nextModifierID=0;class Modifier{constructor(e){this.name=e,this.instances=[],this.id=nextModifierID++}static get(e,n){if(!n.length)return e;let A=n[0].instances.find(l=>l.base==e&&sameArray(n,l.modified));if(A)return A;let o=[],s=new Tag(e.name,o,e,n);for(let l of n)l.instances.push(s);let a=powerSet(n);for(let l of e.set)if(!l.modified.length)for(let c of a)o.push(Modifier.get(l,c));return s}}function sameArray(r,e){return r.length==e.length&&r.every((n,A)=>n==e[A])}function powerSet(r){let e=[[]];for(let n=0;n<r.length;n++)for(let A=0,o=e.length;A<o;A++)e.push(e[A].concat(r[n]));return e.sort((n,A)=>A.length-n.length)}function styleTags(r){let e=Object.create(null);for(let n in r){let A=r[n];Array.isArray(A)||(A=[A]);for(let o of n.split(" "))if(o){let s=[],a=2,l=o;for(let d=0;;){if(l=="..."&&d>0&&d+3==o.length){a=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+o);if(s.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),d+=u[0].length,d==o.length)break;let f=o[d++];if(d==o.length&&f=="!"){a=0;break}if(f!="/")throw new RangeError("Invalid path: "+o);l=o.slice(d)}let c=s.length-1,g=s[c];if(!g)throw new RangeError("Invalid path: "+o);let h=new Rule(A,a,c>0?s.slice(0,c):null);e[g]=h.sort(e[g])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp({combine(r,e){let n,A,o;for(;r||e;){if(!r||e&&r.depth>=e.depth?(o=e,e=e.next):(o=r,r=r.next),n&&n.mode==o.mode&&!o.context&&!n.context)continue;let s=new Rule(o.tags,o.mode,o.context);n?n.next=s:A=s,n=s}return A}});class Rule{constructor(e,n,A,o){this.tags=e,this.mode=n,this.context=A,this.next=o}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}Rule.empty=new Rule([],2,null);function tagHighlighter(r,e){let n=Object.create(null);for(let s of r)if(!Array.isArray(s.tag))n[s.tag.id]=s.class;else for(let a of s.tag)n[a.id]=s.class;let{scope:A,all:o=null}=e||{};return{style:s=>{let a=o;for(let l of s)for(let c of l.set){let g=n[c.id];if(g){a=a?a+" "+g:g;break}}return a},scope:A}}function highlightTags(r,e){let n=null;for(let A of r){let o=A.style(e);o&&(n=n?n+" "+o:o)}return n}function highlightTree(r,e,n,A=0,o=r.length){let s=new HighlightBuilder(A,Array.isArray(e)?e:[e],n);s.highlightRange(r.cursor(),A,o,"",s.highlighters),s.flush(o)}class HighlightBuilder{constructor(e,n,A){this.at=e,this.highlighters=n,this.span=A,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,A,o,s){let{type:a,from:l,to:c}=e;if(l>=A||c<=n)return;a.isTop&&(s=this.highlighters.filter(f=>!f.scope||f.scope(a)));let g=o,h=getStyleTags(e)||Rule.empty,d=highlightTags(s,h.tags);if(d&&(g&&(g+=" "),g+=d,h.mode==1&&(o+=(o?" ":"")+d)),this.startSpan(Math.max(n,l),g),h.opaque)return;let u=e.tree&&e.tree.prop(NodeProp.mounted);if(u&&u.overlay){let f=e.node.enter(u.overlay[0].from+l,1),I=this.highlighters.filter(m=>!m.scope||m.scope(u.tree.type)),p=e.firstChild();for(let m=0,E=l;;m++){let B=m<u.overlay.length?u.overlay[m]:null,Q=B?B.from+l:c,S=Math.max(n,E),w=Math.min(A,Q);if(S<w&&p)for(;e.from<w&&(this.highlightRange(e,S,w,o,s),this.startSpan(Math.min(w,e.to),g),!(e.to>=Q||!e.nextSibling())););if(!B||Q>A)break;E=B.to+l,E>n&&(this.highlightRange(f.cursor(),Math.max(n,B.from+l),Math.min(A,E),"",I),this.startSpan(Math.min(A,E),g))}p&&e.parent()}else if(e.firstChild()){u&&(o="");do if(!(e.to<=n)){if(e.from>=A)break;this.highlightRange(e,n,A,o,s),this.startSpan(Math.min(A,e.to),g)}while(e.nextSibling());e.parent()}}}function getStyleTags(r){let e=r.type.prop(ruleNodeProp);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}const t=Tag.define,comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name,variableName:t(name),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier("definition"),constant:Tag.defineModifier("constant"),function:Tag.defineModifier("function"),standard:Tag.defineModifier("standard"),local:Tag.defineModifier("local"),special:Tag.defineModifier("special")};for(let r in tags){let e=tags[r];e instanceof Tag&&(e.name=r)}tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(r){return Facet.define({combine:r?e=>e.concat(r):void 0})}const sublanguageProp=new NodeProp;let Language$1=class{constructor(e,n,A=[],o=""){this.data=e,this.name=o,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=n,this.extension=[language.of(this),EditorState.languageData.of((s,a,l)=>{let c=topNodeAt(s,a,l),g=c.type.prop(languageDataProp);if(!g)return[];let h=s.facet(g),d=c.type.prop(sublanguageProp);if(d){let u=c.resolve(a-c.from,l);for(let f of d)if(f.test(u,s)){let I=s.facet(f.facet);return f.type=="replace"?I:I.concat(h)}}return h})].concat(A)}isActiveAt(e,n,A=-1){return topNodeAt(e,n,A).type.prop(languageDataProp)==this.data}findRegions(e){let n=e.facet(language);if(n?.data==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let A=[],o=(s,a)=>{if(s.prop(languageDataProp)==this.data){A.push({from:a,to:a+s.length});return}let l=s.prop(NodeProp.mounted);if(l){if(l.tree.prop(languageDataProp)==this.data){if(l.overlay)for(let c of l.overlay)A.push({from:c.from+a,to:c.to+a});else A.push({from:a,to:a+s.length});return}else if(l.overlay){let c=A.length;if(o(l.tree,l.overlay[0].from+a),A.length>c)return}}for(let c=0;c<s.children.length;c++){let g=s.children[c];g instanceof Tree$1&&o(g,s.positions[c]+a)}};return o(syntaxTree(e),0),A}get allowsNesting(){return!0}};Language$1.setState=StateEffect.define();function topNodeAt(r,e,n){let A=r.facet(language),o=syntaxTree(r).topNode;if(!A||A.allowsNesting)for(let s=o;s;s=s.enter(e,n,exports.IterMode.ExcludeBuffers))s.type.isTop&&(o=s);return o}class LRLanguage extends Language$1{constructor(e,n,A){super(e,n,[],A),this.parser=n}static define(e){let n=defineLanguageFacet(e.languageData);return new LRLanguage(n,e.parser.configure({props:[languageDataProp.add(A=>A.isTop?n:void 0)]}),e.name)}configure(e,n){return new LRLanguage(this.data,this.parser.configure(e),n||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function syntaxTree(r){let e=r.field(Language$1.state,!1);return e?e.tree:Tree$1.empty}class DocInput{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,n){let A=this.cursorPos-this.string.length;return e<A||n>=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-A,n-A)}}let currentContext=null;class ParseContext{constructor(e,n,A=[],o,s,a,l,c){this.parser=e,this.state=n,this.fragments=A,this.tree=o,this.treeLen=s,this.viewport=a,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,A){return new ParseContext(e,n,[],Tree$1.empty,0,A,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=Tree$1.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var A;if(typeof e=="number"){let o=Date.now()+e;e=()=>Date.now()>o}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n<this.state.doc.length&&this.parse.stopAt(n);;){let o=this.parse.advance();if(o)if(this.fragments=this.withoutTempSkipped(TreeFragment.addTree(o,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(A=this.parse.stoppedAt)!==null&&A!==void 0?A:this.state.doc.length,this.tree=o,this.parse=null,this.treeLen<(n??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,n;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=currentContext;currentContext=this;try{return e()}finally{currentContext=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=cutFragments(e,n.from,n.to);return e}changes(e,n){let{fragments:A,tree:o,treeLen:s,viewport:a,skipped:l}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((g,h,d,u)=>c.push({fromA:g,toA:h,fromB:d,toB:u})),A=TreeFragment.applyChanges(A,c),o=Tree$1.empty,s=0,a={from:e.mapPos(a.from,-1),to:e.mapPos(a.to,1)},this.skipped.length){l=[];for(let g of this.skipped){let h=e.mapPos(g.from,1),d=e.mapPos(g.to,-1);h<d&&l.push({from:h,to:d})}}}return new ParseContext(this.parser,n,A,o,s,a,l,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let n=this.skipped.length;for(let A=0;A<this.skipped.length;A++){let{from:o,to:s}=this.skipped[A];o<e.to&&s>e.from&&(this.fragments=cutFragments(this.fragments,o,s),this.skipped.splice(A--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends Parser$1{createParse(n,A,o){let s=o[0].from,a=o[o.length-1].to;return{parsedPos:s,advance(){let c=currentContext;if(c){for(let g of o)c.tempSkipped.push(g);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=a,new Tree$1(NodeType.none,[],[],a-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return currentContext}}function cutFragments(r,e,n){return TreeFragment.applyChanges(r,[{fromA:e,toA:n,fromB:e,toB:n}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),A=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,A)||n.takeTree(),new LanguageState(n)}static init(e){let n=Math.min(3e3,e.doc.length),A=ParseContext.create(e.facet(language).parser,e,{from:0,to:n});return A.work(20,n)||A.takeTree(),new LanguageState(A)}}Language$1.state=StateField.define({create:LanguageState.init,update(r,e){for(let n of e.effects)if(n.is(Language$1.setState))return n.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):r.apply(e)}});let requestIdle=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(requestIdle=r=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const isInputPending=typeof navigator<"u"&&(!((_a=navigator.scheduling)===null||_a===void 0)&&_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(Language$1.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(Language$1.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnd<n&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=n+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:A,viewport:{to:o}}=this.view,s=A.field(Language$1.state);if(s.tree==s.context.tree&&s.context.isDone(o+1e5))return;let a=Date.now()+Math.min(this.chunkBudget,100,e&&!isInputPending?Math.max(25,e.timeRemaining()-5):1e9),l=s.context.treeLen<o&&A.doc.length>o+1e3,c=s.context.work(()=>isInputPending&&isInputPending()||Date.now()>a,o+(l?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Language$1.setState.of(new LanguageState(s.context))})),this.chunkBudget>0&&!(c&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>logException(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(r){return r.length?r[0]:null},enables:r=>[Language$1.state,parseWorker,EditorView.contentAttributes.compute([r],e=>{let n=e.facet(r);return n&&n.name?{"data-language":n.name}:{}})]});class LanguageSupport{constructor(e,n=[]){this.language=e,this.support=n,this.extension=[e,n]}}class LanguageDescription{constructor(e,n,A,o,s,a=void 0){this.name=e,this.alias=n,this.extensions=A,this.filename=o,this.loadFunc=s,this.support=a,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:n,support:A}=e;if(!n){if(!A)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");n=()=>Promise.resolve(A)}return new LanguageDescription(e.name,(e.alias||[]).concat(e.name).map(o=>o.toLowerCase()),e.extensions||[],e.filename,n,A)}static matchFilename(e,n){for(let o of e)if(o.filename&&o.filename.test(n))return o;let A=/\.([^.]+)$/.exec(n);if(A){for(let o of e)if(o.extensions.indexOf(A[1])>-1)return o}return null}static matchLanguageName(e,n,A=!0){n=n.toLowerCase();for(let o of e)if(o.alias.some(s=>s==n))return o;if(A)for(let o of e)for(let s of o.alias){let a=n.indexOf(s);if(a>-1&&(s.length>2||!/\w/.test(n[a-1])&&!/\w/.test(n[a+s.length])))return o}return null}}const indentService=Facet.define(),indentUnit=Facet.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function getIndentUnit(r){let e=r.facet(indentUnit);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function indentString(r,e){let n="",A=r.tabSize,o=r.facet(indentUnit)[0];if(o==" "){for(;e>=A;)n+=" ",e-=A;o=" "}for(let s=0;s<e;s++)n+=o;return n}function getIndentation(r,e){r instanceof EditorState&&(r=new IndentContext(r));for(let A of r.state.facet(indentService)){let o=A(r,e);if(o!==void 0)return o}let n=syntaxTree(r.state);return n.length>=e?syntaxIndentation(r,n,e):null}class IndentContext{constructor(e,n={}){this.state=e,this.options=n,this.unit=getIndentUnit(e)}lineAt(e,n=1){let A=this.state.doc.lineAt(e),{simulateBreak:o,simulateDoubleBreak:s}=this.options;return o!=null&&o>=A.from&&o<=A.to?s&&o==e?{text:"",from:e}:(n<0?o<e:o<=e)?{text:A.text.slice(o-A.from),from:o}:{text:A.text.slice(0,o-A.from),from:A.from}:A}textAfterPos(e,n=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:A,from:o}=this.lineAt(e,n);return A.slice(e-o,Math.min(A.length,e+100-o))}column(e,n=1){let{text:A,from:o}=this.lineAt(e,n),s=this.countColumn(A,e-o),a=this.options.overrideIndentation?this.options.overrideIndentation(o):-1;return a>-1&&(s+=a-this.countColumn(A,A.search(/\S|$/))),s}countColumn(e,n=e.length){return countColumn(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:A,from:o}=this.lineAt(e,n),s=this.options.overrideIndentation;if(s){let a=s(o);if(a>-1)return a}return this.countColumn(A,A.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(r,e,n){let A=e.resolveStack(n),o=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(o!=A.node){let s=[];for(let a=o;a&&!(a.from==A.node.from&&a.type==A.node.type);a=a.parent)s.push(a);for(let a=s.length-1;a>=0;a--)A={node:s[a],next:A}}return indentFor(A,r,n)}function indentFor(r,e,n){for(let A=r;A;A=A.next){let o=indentStrategy(A.node);if(o)return o(TreeIndentContext.create(e,n,A))}return 0}function ignoreClosed(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function indentStrategy(r){let e=r.type.prop(indentNodeProp);if(e)return e;let n=r.firstChild,A;if(n&&(A=n.type.prop(NodeProp.closedBy))){let o=r.lastChild,s=o&&A.indexOf(o.name)>-1;return a=>delimitedStrategy(a,!0,1,void 0,s&&!ignoreClosed(a)?o.from:void 0)}return r.parent==null?topIndent:null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,n,A){super(e.state,e.options),this.base=e,this.pos=n,this.context=A}get node(){return this.context.node}static create(e,n,A){return new TreeIndentContext(e,n,A)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let A=e.resolve(n.from);for(;A.parent&&A.parent.from==A.from;)A=A.parent;if(isParent(A,e))break;n=this.state.doc.lineAt(A.from)}return this.lineIndent(n.from)}continue(){return indentFor(this.context.next,this.base,this.pos)}}function isParent(r,e){for(let n=e;n;n=n.parent)if(r==n)return!0;return!1}function bracketedAligned(r){let e=r.node,n=e.childAfter(e.from),A=e.lastChild;if(!n)return null;let o=r.options.simulateBreak,s=r.state.doc.lineAt(n.from),a=o==null||o<=s.from?s.to:Math.min(s.to,o);for(let l=n.to;;){let c=e.childAfter(l);if(!c||c==A)return null;if(!c.type.isSkipped){if(c.from>=a)return null;let g=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+g}}l=c.to}}function delimitedIndent({closing:r,align:e=!0,units:n=1}){return A=>delimitedStrategy(A,e,n,r)}function delimitedStrategy(r,e,n,A,o){let s=r.textAfter,a=s.match(/^\s*/)[0].length,l=A&&s.slice(a,a+A.length)==A||o==r.pos+a,c=e?bracketedAligned(r):null;return c?l?r.column(c.from):r.column(c.to):r.baseIndent+(l?0:r.unit*n)}const flatIndent=r=>r.baseIndent;function continuedIndent({except:r,units:e=1}={}){return n=>{let A=r&&r.test(n.textAfter);return n.baseIndent+(A?0:e*n.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let n=r.newDoc,{head:A}=r.newSelection.main,o=n.lineAt(A);if(A>o.from+DontIndentBeyond)return r;let s=n.sliceString(o.from,A);if(!e.some(g=>g.test(s)))return r;let{state:a}=r,l=-1,c=[];for(let{head:g}of a.selection.ranges){let h=a.doc.lineAt(g);if(h.from==l)continue;l=h.from;let d=getIndentation(a,h.from);if(d==null)continue;let u=/^\s*/.exec(h.text)[0],f=indentString(a,d);u!=f&&c.push({from:h.from,to:h.from+u.length,insert:f})}return c.length?[r,{changes:c,sequential:!0}]:r})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside(r){let e=r.firstChild,n=r.lastChild;return e&&e.to<n.from?{from:e.to,to:n.type.isError?r.to:n.from}:null}function syntaxFolding(r,e,n){let A=syntaxTree(r);if(A.length<n)return null;let o=A.resolveStack(n,1),s=null;for(let a=o;a;a=a.next){let l=a.node;if(l.to<=n||l.from>n)continue;if(s&&l.from<e)break;let c=l.type.prop(foldNodeProp);if(c&&(l.to<A.length-50||A.length==r.doc.length||!isUnfinished(l))){let g=c(l,r);g&&g.from<=n&&g.from>=e&&g.to>n&&(s=g)}}return s}function isUnfinished(r){let e=r.lastChild;return e&&e.to==r.to&&e.type.isError}function foldable(r,e,n){for(let A of r.facet(foldService)){let o=A(r,e,n);if(o)return o}return syntaxFolding(r,e,n)}function mapRange(r,e){let n=e.mapPos(r.from,1),A=e.mapPos(r.to,-1);return n>=A?void 0:{from:n,to:A}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(r){let e=[];for(let{head:n}of r.state.selection.ranges)e.some(A=>A.from<=n&&A.to>=n)||e.push(r.lineBlockAt(n));return e}const foldState=StateField.define({create(){return Decoration.none},update(r,e){r=r.map(e.changes);for(let n of e.effects)if(n.is(foldEffect)&&!foldExists(r,n.value.from,n.value.to)){let{preparePlaceholder:A}=e.state.facet(foldConfig),o=A?Decoration.replace({widget:new PreparedFoldWidget(A(e.state,n.value))}):foldWidget;r=r.update({add:[o.range(n.value.from,n.value.to)]})}else n.is(unfoldEffect)&&(r=r.update({filter:(A,o)=>n.value.from!=A||n.value.to!=o,filterFrom:n.value.from,filterTo:n.value.to}));if(e.selection){let n=!1,{head:A}=e.selection.main;r.between(A,A,(o,s)=>{o<A&&s>A&&(n=!0)}),n&&(r=r.update({filterFrom:A,filterTo:A,filter:(o,s)=>s<=A||o>=A}))}return r},provide:r=>EditorView.decorations.from(r),toJSON(r,e){let n=[];return r.between(0,e.doc.length,(A,o)=>{n.push(A,o)}),n},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n<r.length;){let A=r[n++],o=r[n++];if(typeof A!="number"||typeof o!="number")throw new RangeError("Invalid JSON for fold state");e.push(foldWidget.range(A,o))}return Decoration.set(e,!0)}});function findFold(r,e,n){var A;let o=null;return(A=r.field(foldState,!1))===null||A===void 0||A.between(e,n,(s,a)=>{(!o||o.from>s)&&(o={from:s,to:a})}),o}function foldExists(r,e,n){let A=!1;return r.between(e,e,(o,s)=>{o==e&&s==n&&(A=!0)}),A}function maybeEnable(r,e){return r.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=r=>{for(let e of selectedLines(r)){let n=foldable(r.state,e.from,e.to);if(n)return r.dispatch({effects:maybeEnable(r.state,[foldEffect.of(n),announceFold(r,n)])}),!0}return!1},unfoldCode=r=>{if(!r.state.field(foldState,!1))return!1;let e=[];for(let n of selectedLines(r)){let A=findFold(r.state,n.from,n.to);A&&e.push(unfoldEffect.of(A),announceFold(r,A,!1))}return e.length&&r.dispatch({effects:e}),e.length>0};function announceFold(r,e,n=!0){let A=r.state.doc.lineAt(e.from).number,o=r.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${r.state.phrase(n?"Folded lines":"Unfolded lines")} ${A} ${r.state.phrase("to")} ${o}.`)}const foldAll=r=>{let{state:e}=r,n=[];for(let A=0;A<e.doc.length;){let o=r.lineBlockAt(A),s=foldable(e,o.from,o.to);s&&n.push(foldEffect.of(s)),A=(s?r.lineBlockAt(s.to):o).to+1}return n.length&&r.dispatch({effects:maybeEnable(r.state,n)}),!!n.length},unfoldAll=r=>{let e=r.state.field(foldState,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,r.state.doc.length,(A,o)=>{n.push(unfoldEffect.of({from:A,to:o}))}),r.dispatch({effects:n}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},foldConfig=Facet.define({combine(r){return combineConfig(r,defaultConfig)}});function codeFolding(r){return[foldState,baseTheme$1]}function widgetToDOM(r,e){let{state:n}=r,A=n.facet(foldConfig),o=a=>{let l=r.lineBlockAt(r.posAtDOM(a.target)),c=findFold(r.state,l.from,l.to);c&&r.dispatch({effects:unfoldEffect.of(c)}),a.preventDefault()};if(A.placeholderDOM)return A.placeholderDOM(r,o,e);let s=document.createElement("span");return s.textContent=A.placeholderText,s.setAttribute("aria-label",n.phrase("folded code")),s.title=n.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=o,s}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(r){return widgetToDOM(r,null)}}});class PreparedFoldWidget extends WidgetType{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return widgetToDOM(e,this.value)}}const foldGutterDefaults={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class FoldMarker extends GutterMarker{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function foldGutter(r={}){let e=Object.assign(Object.assign({},foldGutterDefaults),r),n=new FoldMarker(e,!0),A=new FoldMarker(e,!1),o=ViewPlugin.fromClass(class{constructor(a){this.from=a.viewport.from,this.markers=this.buildMarkers(a)}update(a){(a.docChanged||a.viewportChanged||a.startState.facet(language)!=a.state.facet(language)||a.startState.field(foldState,!1)!=a.state.field(foldState,!1)||syntaxTree(a.startState)!=syntaxTree(a.state)||e.foldingChanged(a))&&(this.markers=this.buildMarkers(a.view))}buildMarkers(a){let l=new RangeSetBuilder;for(let c of a.viewportLineBlocks){let g=findFold(a.state,c.from,c.to)?A:foldable(a.state,c.from,c.to)?n:null;g&&l.add(c.from,c.from,g)}return l.finish()}}),{domEventHandlers:s}=e;return[o,gutter({class:"cm-foldGutter",markers(a){var l;return((l=a.plugin(o))===null||l===void 0?void 0:l.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},s),{click:(a,l,c)=>{if(s.click&&s.click(a,l,c))return!0;let g=findFold(a.state,l.from,l.to);if(g)return a.dispatch({effects:unfoldEffect.of(g)}),!0;let h=foldable(a.state,l.from,l.to);return h?(a.dispatch({effects:foldEffect.of(h)}),!0):!1}})}),codeFolding()]}const baseTheme$1=EditorView.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 HighlightStyle{constructor(e,n){this.specs=e;let A;function o(l){let c=StyleModule.newName();return(A||(A=Object.create(null)))["."+c]=l,c}const s=typeof n.all=="string"?n.all:n.all?o(n.all):void 0,a=n.scope;this.scope=a instanceof Language$1?l=>l.prop(languageDataProp)==a.data:a?l=>l==a:void 0,this.style=tagHighlighter(e.map(l=>({tag:l.tag,class:l.class||o(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=A?new StyleModule(A):null,this.themeType=n.themeType}static define(e,n){return new HighlightStyle(e,n||{})}}const highlighterFacet=Facet.define(),fallbackHighlighter=Facet.define({combine(r){return r.length?[r[0]]:null}});function getHighlighters(r){let e=r.facet(highlighterFacet);return e.length?e:r.facet(fallbackHighlighter)}function syntaxHighlighting(r,e){let n=[treeHighlighter],A;return r instanceof HighlightStyle&&(r.module&&n.push(EditorView.styleModule.of(r.module)),A=r.themeType),e?.fallback?n.push(fallbackHighlighter.of(r)):A?n.push(highlighterFacet.computeN([EditorView.darkTheme],o=>o.facet(EditorView.darkTheme)==(A=="dark")?[r]:[])):n.push(highlighterFacet.of(r)),n}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlighters(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=syntaxTree(e.state),A=getHighlighters(e.state),o=A!=getHighlighters(e.startState),{viewport:s}=e.view,a=e.changes.mapPos(this.decoratedTo,1);n.length<s.to&&!o&&n.type==this.tree.type&&a>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=a):(n!=this.tree||e.viewportChanged||o)&&(this.tree=n,this.decorations=this.buildDeco(e.view,A),this.decoratedTo=s.to)}buildDeco(e,n){if(!n||!this.tree.length)return Decoration.none;let A=new RangeSetBuilder;for(let{from:o,to:s}of e.visibleRanges)highlightTree(this.tree,n,(a,l,c)=>{A.add(a,l,this.markCache[c]||(this.markCache[c]=Decoration.mark({class:c})))},o,s);return A.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:r=>r.decorations})),defaultHighlightStyle=HighlightStyle.define([{tag:tags.meta,color:"#404740"},{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.invalid,color:"#f00"}]),baseTheme$2=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(r){return combineConfig(r,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"});function defaultRenderMatch(r){let e=[],n=r.matched?matchingMark:nonmatchingMark;return e.push(n.range(r.start.from,r.start.to)),r.end&&e.push(n.range(r.end.from,r.end.to)),e}const bracketMatchingState=StateField.define({create(){return Decoration.none},update(r,e){if(!e.docChanged&&!e.selection)return r;let n=[],A=e.state.facet(bracketMatchingConfig);for(let o of e.state.selection.ranges){if(!o.empty)continue;let s=matchBrackets(e.state,o.head,-1,A)||o.head>0&&matchBrackets(e.state,o.head-1,1,A)||A.afterCursor&&(matchBrackets(e.state,o.head,1,A)||o.head<e.state.doc.length&&matchBrackets(e.state,o.head+1,-1,A));s&&(n=n.concat(A.renderMatch(s,e.state)))}return Decoration.set(n,!0)},provide:r=>EditorView.decorations.from(r)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$2];function bracketMatching(r={}){return[bracketMatchingConfig.of(r),bracketMatchingUnique]}const bracketMatchingHandle=new NodeProp;function matchingNodes(r,e,n){let A=r.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(A)return A;if(r.name.length==1){let o=n.indexOf(r.name);if(o>-1&&o%2==(e<0?1:0))return[n[o+e]]}return null}function findHandle(r){let e=r.type.prop(bracketMatchingHandle);return e?e(r.node):r}function matchBrackets(r,e,n,A={}){let o=A.maxScanDistance||DefaultScanDist,s=A.brackets||DefaultBrackets,a=syntaxTree(r),l=a.resolveInner(e,n);for(let c=l;c;c=c.parent){let g=matchingNodes(c.type,n,s);if(g&&c.from<c.to){let h=findHandle(c);if(h&&(n>0?e>=h.from&&e<h.to:e>h.from&&e<=h.to))return matchMarkedBrackets(r,e,n,c,h,g,s)}}return matchPlainBrackets(r,e,n,a,l.type,o,s)}function matchMarkedBrackets(r,e,n,A,o,s,a){let l=A.parent,c={from:o.from,to:o.to},g=0,h=l?.cursor();if(h&&(n<0?h.childBefore(A.from):h.childAfter(A.to)))do if(n<0?h.to<=A.from:h.from>=A.to){if(g==0&&s.indexOf(h.type.name)>-1&&h.from<h.to){let d=findHandle(h);return{start:c,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(matchingNodes(h.type,n,a))g++;else if(matchingNodes(h.type,-n,a)){if(g==0){let d=findHandle(h);return{start:c,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}g--}}while(n<0?h.prevSibling():h.nextSibling());return{start:c,matched:!1}}function matchPlainBrackets(r,e,n,A,o,s,a){let l=n<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),c=a.indexOf(l);if(c<0||c%2==0!=n>0)return null;let g={from:n<0?e-1:e,to:n>0?e+1:e},h=r.doc.iterRange(e,n>0?r.doc.length:0),d=0;for(let u=0;!h.next().done&&u<=s;){let f=h.value;n<0&&(u+=f.length);let I=e+u*n;for(let p=n>0?0:f.length-1,m=n>0?f.length:-1;p!=m;p+=n){let E=a.indexOf(f[p]);if(!(E<0||A.resolveInner(I+p,1).type!=o))if(E%2==0==n>0)d++;else{if(d==1)return{start:g,end:{from:I+p,to:I+p+1},matched:E>>1==c>>1};d--}}n>0&&(u+=f.length)}return h.done?{start:g,matched:!1}:null}function countCol(r,e,n,A=0,o=0){e==null&&(e=r.search(/[^\s\u00a0]/),e==-1&&(e=r.length));let s=o;for(let a=A;a<e;a++)r.charCodeAt(a)==9?s+=n-s%n:s++;return s}class StringStream{constructor(e,n,A,o){this.string=e,this.tabSize=n,this.indentUnit=A,this.overrideIndent=o,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(e){let n=this.string.charAt(this.pos),A;if(typeof e=="string"?A=n==e:A=n&&(e instanceof RegExp?e.test(n):e(n)),A)return++this.pos,n}eatWhile(e){let n=this.pos;for(;this.eat(e););return this.pos>n}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let n=this.string.indexOf(e,this.pos);if(n>-1)return this.pos=n,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var e;return(e=this.overrideIndent)!==null&&e!==void 0?e:countCol(this.string,null,this.tabSize)}match(e,n,A){if(typeof e=="string"){let o=a=>A?a.toLowerCase():a,s=this.string.substr(this.pos,e.length);return o(s)==o(e)?(n!==!1&&(this.pos+=e.length),!0):null}else{let o=this.string.slice(this.pos).match(e);return o&&o.index>0?null:(o&&n!==!1&&(this.pos+=o[0].length),o)}}current(){return this.string.slice(this.start,this.pos)}}function fullParser(r){return{name:r.name||"",token:r.token,blankLine:r.blankLine||(()=>{}),startState:r.startState||(()=>!0),copyState:r.copyState||defaultCopyState,indent:r.indent||(()=>null),languageData:r.languageData||{},tokenTable:r.tokenTable||noTokens,mergeTokens:r.mergeTokens!==!1}}function defaultCopyState(r){if(typeof r!="object")return r;let e={};for(let n in r){let A=r[n];e[n]=A instanceof Array?A.slice():A}return e}const IndentedFrom=new WeakMap;class StreamLanguage extends Language$1{constructor(e){let n=defineLanguageFacet(e.languageData),A=fullParser(e),o,s=new class extends Parser$1{createParse(a,l,c){return new Parse(o,a,l,c)}};super(n,s,[],e.name),this.topNode=docID(n,this),o=this,this.streamParser=A,this.stateAfter=new NodeProp({perNode:!0}),this.tokenTable=e.tokenTable?new TokenTable(A.tokenTable):defaultTokenTable}static define(e){return new StreamLanguage(e)}getIndent(e){let n,{overrideIndentation:A}=e.options;A&&(n=IndentedFrom.get(e.state),n!=null&&n<e.pos-1e4&&(n=void 0));let o=findState(this,e.node.tree,e.node.from,e.node.from,n??e.pos),s,a;if(o?(a=o.state,s=o.pos+1):(a=this.streamParser.startState(e.unit),s=e.node.from),e.pos-s>1e4)return null;for(;s<e.pos;){let c=e.state.doc.lineAt(s),g=Math.min(e.pos,c.to);if(c.length){let h=A?A(c.from):-1,d=new StringStream(c.text,e.state.tabSize,e.unit,h<0?void 0:h);for(;d.pos<g-c.from;)readToken(this.streamParser.token,d,a)}else this.streamParser.blankLine(a,e.unit);if(g==e.pos)break;s=c.to+1}let l=e.lineAt(e.pos);return A&&n==null&&IndentedFrom.set(e.state,l.from),this.streamParser.indent(a,/^\s*(.*)/.exec(l.text)[1],e)}get allowsNesting(){return!1}}function findState(r,e,n,A,o){let s=n>=A&&n+e.length<=o&&e.prop(r.stateAfter);if(s)return{state:r.streamParser.copyState(s),pos:n+e.length};for(let a=e.children.length-1;a>=0;a--){let l=e.children[a],c=n+e.positions[a],g=l instanceof Tree$1&&c<o&&findState(r,l,c,A,o);if(g)return g}return null}function cutTree(r,e,n,A,o){if(o&&n<=0&&A>=e.length)return e;!o&&n==0&&e.type==r.topNode&&(o=!0);for(let s=e.children.length-1;s>=0;s--){let a=e.positions[s],l=e.children[s],c;if(a<A&&l instanceof Tree$1){if(!(c=cutTree(r,l,n-a,A-a,o)))break;return o?new Tree$1(e.type,e.children.slice(0,s).concat(c),e.positions.slice(0,s+1),a+c.length):c}}return null}function findStartInFragments(r,e,n,A,o){for(let s of e){let a=s.from+(s.openStart?25:0),l=s.to-(s.openEnd?25:0),c=a<=n&&l>n&&findState(r,s.tree,0-s.offset,n,l),g;if(c&&c.pos<=A&&(g=cutTree(r,s.tree,n+s.offset,c.pos+s.offset,!1)))return{state:c.state,tree:g}}return{state:r.streamParser.startState(o?getIndentUnit(o):4),tree:Tree$1.empty}}class Parse{constructor(e,n,A,o){this.lang=e,this.input=n,this.fragments=A,this.ranges=o,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=o[o.length-1].to;let s=ParseContext.get(),a=o[0].from,{state:l,tree:c}=findStartInFragments(e,A,a,this.to,s?.state);this.state=l,this.parsedPos=this.chunkStart=a+c.length;for(let g=0;g<c.children.length;g++)this.chunks.push(c.children[g]),this.chunkPos.push(c.positions[g]);s&&this.parsedPos<s.viewport.from-1e5&&o.some(g=>g.from<=s.viewport.from&&g.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(getIndentUnit(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=ParseContext.get(),n=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),A=Math.min(n,this.chunkStart+2048);for(e&&(A=Math.min(A,e.viewport.to));this.parsedPos<A;)this.parseLine(e);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=n?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,n),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let n=this.input.chunk(e);if(this.input.lineChunks)n==`
|
|
25
25
|
`&&(n="");else{let A=n.indexOf(`
|
|
26
26
|
`);A>-1&&(n=n.slice(0,A))}return e+n.length<=this.to?n:n.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,n=this.lineAfter(e),A=e+n.length;for(let o=this.rangeIndex;;){let s=this.ranges[o].to;if(s>=A||(n=n.slice(0,s-(A-n.length)),o++,o==this.ranges.length))break;let a=this.ranges[o].from,l=this.lineAfter(a);n+=l,A=a+l.length}return{line:n,end:A}}skipGapsTo(e,n,A){for(;;){let o=this.ranges[this.rangeIndex].to,s=e+n;if(A>0?o>s:o>=s)break;let a=this.ranges[++this.rangeIndex].from;n+=a-o}return n}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,n,A,o){let s=4;if(this.ranges.length>1){o=this.skipGapsTo(n,o,1),n+=o;let l=this.chunk.length;o=this.skipGapsTo(A,o,-1),A+=o,s+=this.chunk.length-l}let a=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&a>=0&&this.chunk[a]==e&&this.chunk[a+2]==n?this.chunk[a+2]=A:this.chunk.push(e,n,A,s),o}parseLine(e){let{line:n,end:A}=this.nextLine(),o=0,{streamParser:s}=this.lang,a=new StringStream(n,e?e.state.tabSize:4,e?getIndentUnit(e.state):2);if(a.eol())s.blankLine(this.state,a.indentUnit);else for(;!a.eol();){let l=readToken(s.token,a,this.state);if(l&&(o=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+a.start,this.parsedPos+a.pos,o)),a.start>1e4)break}this.parsedPos=A,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=Tree$1.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet,topID:0,maxBufferLength:2048,reused:this.chunkReused});e=new Tree$1(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Tree$1(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function readToken(r,e,n){e.start=e.pos;for(let A=0;A<10;A++){let o=r(e,n);if(e.pos>e.start)return o}throw new Error("Stream parser failed to advance stream.")}const noTokens=Object.create(null),typeArray=[NodeType.none],nodeSet=new NodeSet(typeArray),warned=[],byTag=Object.create(null),defaultTable=Object.create(null);for(let[r,e]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"]])defaultTable[r]=createTokenType(noTokens,e);class TokenTable{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),defaultTable)}resolve(e){return e?this.table[e]||(this.table[e]=createTokenType(this.extra,e)):0}}const defaultTokenTable=new TokenTable(noTokens);function warnForPart(r,e){warned.indexOf(r)>-1||(warned.push(r),console.warn(e))}function createTokenType(r,e){let n=[];for(let l of e.split(" ")){let c=[];for(let g of l.split(".")){let h=r[g]||tags[g];h?typeof h=="function"?c.length?c=c.map(h):warnForPart(g,`Modifier ${g} used at start of tag`):c.length?warnForPart(g,`Tag ${g} used as modifier`):c=Array.isArray(h)?h:[h]:warnForPart(g,`Unknown highlighting tag ${g}`)}for(let g of c)n.push(g)}if(!n.length)return 0;let A=e.replace(/ /g,"_"),o=A+" "+n.map(l=>l.id),s=byTag[o];if(s)return s.id;let a=byTag[o]=NodeType.define({id:typeArray.length,name:A,props:[styleTags({[A]:n})]});return typeArray.push(a),a.id}function docID(r,e){let n=NodeType.define({id:typeArray.length,name:"Document",props:[languageDataProp.add(()=>r),indentNodeProp.add(()=>A=>e.getIndent(A))],top:!0});return typeArray.push(n),n}Direction.RTL,Direction.LTR;const createTheme=({variant:r,settings:e,styles:n})=>{const A=EditorView.theme({"&":{backgroundColor:e.background,color:e.foreground},".cm-content":{caretColor:e.caret},".cm-cursor, .cm-dropCursor":{borderLeftColor:e.caret},"&.cm-focused .cm-selectionBackgroundm .cm-selectionBackground, .cm-content ::selection":{backgroundColor:e.selection},".cm-activeLine":{backgroundColor:e.lineHighlight},".cm-gutters":{backgroundColor:e.gutterBackground,color:e.gutterForeground},".cm-activeLineGutter":{backgroundColor:e.lineHighlight}},{dark:r==="dark"}),o=HighlightStyle.define(n);return[A,syntaxHighlighting(o)]};createTheme({variant:"dark",settings:{background:"#200020",foreground:"#D0D0FF",caret:"#7070FF",selection:"#80000080",gutterBackground:"#200020",gutterForeground:"#C080C0",lineHighlight:"#80000040"},styles:[{tag:tags.comment,color:"#404080"},{tag:[tags.string,tags.regexp],color:"#999999"},{tag:tags.number,color:"#7090B0"},{tag:[tags.bool,tags.null],color:"#8080A0"},{tag:[tags.punctuation,tags.derefOperator],color:"#805080"},{tag:tags.keyword,color:"#60B0FF"},{tag:tags.definitionKeyword,color:"#B0FFF0"},{tag:tags.moduleKeyword,color:"#60B0FF"},{tag:tags.operator,color:"#A0A0FF"},{tag:[tags.variableName,tags.self],color:"#008080"},{tag:tags.operatorKeyword,color:"#A0A0FF"},{tag:tags.controlKeyword,color:"#80A0FF"},{tag:tags.className,color:"#70E080"},{tag:[tags.function(tags.propertyName),tags.propertyName],color:"#50A0A0"},{tag:tags.tagName,color:"#009090"},{tag:tags.modifier,color:"#B0FFF0"},{tag:[tags.squareBracket,tags.attributeName],color:"#D0D0FF"}]});createTheme({variant:"light",settings:{background:"#fcfcfc",foreground:"#5c6166",caret:"#ffaa33",selection:"#036dd626",gutterBackground:"#fcfcfc",gutterForeground:"#8a919966",lineHighlight:"#8a91991a"},styles:[{tag:tags.comment,color:"#787b8099"},{tag:tags.string,color:"#86b300"},{tag:tags.regexp,color:"#4cbf99"},{tag:[tags.number,tags.bool,tags.null],color:"#ffaa33"},{tag:tags.variableName,color:"#5c6166"},{tag:[tags.definitionKeyword,tags.modifier],color:"#fa8d3e"},{tag:[tags.keyword,tags.special(tags.brace)],color:"#fa8d3e"},{tag:tags.operator,color:"#ed9366"},{tag:tags.separator,color:"#5c6166b3"},{tag:tags.punctuation,color:"#5c6166"},{tag:[tags.definition(tags.propertyName),tags.function(tags.variableName)],color:"#f2ae49"},{tag:[tags.className,tags.definition(tags.typeName)],color:"#22a4e6"},{tag:[tags.tagName,tags.typeName,tags.self,tags.labelName],color:"#55b4d4"},{tag:tags.angleBracket,color:"#55b4d480"},{tag:tags.attributeName,color:"#f2ae49"}]});createTheme({variant:"dark",settings:{background:"#15191EFA",foreground:"#EEF2F7",caret:"#C4C4C4",selection:"#90B2D557",gutterBackground:"#15191EFA",gutterForeground:"#aaaaaa95",lineHighlight:"#57575712"},styles:[{tag:tags.comment,color:"#6E6E6E"},{tag:[tags.string,tags.regexp,tags.special(tags.brace)],color:"#5C81B3"},{tag:tags.number,color:"#C1E1B8"},{tag:tags.bool,color:"#53667D"},{tag:[tags.definitionKeyword,tags.modifier,tags.function(tags.propertyName)],color:"#A3D295",fontWeight:"bold"},{tag:[tags.keyword,tags.moduleKeyword,tags.operatorKeyword,tags.operator],color:"#697A8E",fontWeight:"bold"},{tag:[tags.variableName,tags.attributeName],color:"#708E67"},{tag:[tags.function(tags.variableName),tags.definition(tags.propertyName),tags.derefOperator],color:"#fff"},{tag:tags.tagName,color:"#A3D295"}]});createTheme({variant:"dark",settings:{background:"#2e241d",foreground:"#BAAE9E",caret:"#A7A7A7",selection:"#DDF0FF33",gutterBackground:"#28211C",gutterForeground:"#BAAE9E90",lineHighlight:"#FFFFFF08"},styles:[{tag:tags.comment,color:"#666666"},{tag:[tags.string,tags.special(tags.brace)],color:"#54BE0D"},{tag:tags.regexp,color:"#E9C062"},{tag:tags.number,color:"#CF6A4C"},{tag:[tags.keyword,tags.operator],color:"#5EA6EA"},{tag:tags.variableName,color:"#7587A6"},{tag:[tags.definitionKeyword,tags.modifier],color:"#F9EE98"},{tag:[tags.propertyName,tags.function(tags.variableName)],color:"#937121"},{tag:[tags.typeName,tags.angleBracket,tags.tagName],color:"#9B859D"}]});createTheme({variant:"dark",settings:{background:"#3b2627",foreground:"#E6E1C4",caret:"#E6E1C4",selection:"#16120E",gutterBackground:"#3b2627",gutterForeground:"#E6E1C490",lineHighlight:"#1F1611"},styles:[{tag:tags.comment,color:"#6B4E32"},{tag:[tags.keyword,tags.operator,tags.derefOperator],color:"#EF5D32"},{tag:tags.className,color:"#EFAC32",fontWeight:"bold"},{tag:[tags.typeName,tags.propertyName,tags.function(tags.variableName),tags.definition(tags.variableName)],color:"#EFAC32"},{tag:tags.definition(tags.typeName),color:"#EFAC32",fontWeight:"bold"},{tag:tags.labelName,color:"#EFAC32",fontWeight:"bold"},{tag:[tags.number,tags.bool],color:"#6C99BB"},{tag:[tags.variableName,tags.self],color:"#7DAF9C"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#D9D762"},{tag:[tags.angleBracket,tags.tagName,tags.attributeName],color:"#EFCB43"}]});createTheme({variant:"dark",settings:{background:"#000205",foreground:"#FFFFFF",caret:"#E60065",selection:"#E60C6559",gutterBackground:"#000205",gutterForeground:"#ffffff90",lineHighlight:"#4DD7FC1A"},styles:[{tag:tags.comment,color:"#404040"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#00D8FF"},{tag:tags.number,color:"#E62286"},{tag:[tags.variableName,tags.attributeName,tags.self],color:"#E62286",fontWeight:"bold"},{tag:tags.function(tags.variableName),color:"#fff",fontWeight:"bold"}]});createTheme({variant:"light",settings:{background:"#fff",foreground:"#000",caret:"#000",selection:"#BDD5FC",gutterBackground:"#fff",gutterForeground:"#00000070",lineHighlight:"#FFFBD1"},styles:[{tag:tags.comment,color:"#BCC8BA"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#5D90CD"},{tag:[tags.number,tags.bool,tags.null],color:"#46A609"},{tag:tags.keyword,color:"#AF956F"},{tag:[tags.definitionKeyword,tags.modifier],color:"#C52727"},{tag:[tags.angleBracket,tags.tagName,tags.attributeName],color:"#606060"},{tag:tags.self,color:"#000"}]});createTheme({variant:"dark",settings:{background:"#00254b",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#B36539BF",gutterBackground:"#00254b",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},styles:[{tag:tags.comment,color:"#0088FF"},{tag:tags.string,color:"#3AD900"},{tag:tags.regexp,color:"#80FFC2"},{tag:[tags.number,tags.bool,tags.null],color:"#FF628C"},{tag:[tags.definitionKeyword,tags.modifier],color:"#FFEE80"},{tag:tags.variableName,color:"#CCCCCC"},{tag:tags.self,color:"#FF80E1"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.definition(tags.typeName),tags.labelName],color:"#FFDD00"},{tag:[tags.keyword,tags.operator],color:"#FF9D00"},{tag:[tags.propertyName,tags.typeName],color:"#80FFBB"},{tag:tags.special(tags.brace),color:"#EDEF7D"},{tag:tags.attributeName,color:"#9EFFFF"},{tag:tags.derefOperator,color:"#fff"}]});createTheme({variant:"dark",settings:{background:"#060521",foreground:"#E0E0E0",caret:"#FFFFFFA6",selection:"#122BBB",gutterBackground:"#060521",gutterForeground:"#E0E0E090",lineHighlight:"#FFFFFF0F"},styles:[{tag:tags.comment,color:"#AEAEAE"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#8DFF8E"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.function(tags.definition(tags.variableName)),tags.definition(tags.typeName)],color:"#A3EBFF"},{tag:[tags.number,tags.bool,tags.null],color:"#62E9BD"},{tag:[tags.keyword,tags.operator],color:"#2BF1DC"},{tag:[tags.definitionKeyword,tags.modifier],color:"#F8FBB1"},{tag:[tags.variableName,tags.self],color:"#B683CA"},{tag:[tags.angleBracket,tags.tagName,tags.typeName,tags.propertyName],color:"#60A4F1"},{tag:tags.derefOperator,color:"#E0E0E0"},{tag:tags.attributeName,color:"#7BACCA"}]});const dracula=createTheme({variant:"dark",settings:{background:"#2d2f3f",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"#44475a",gutterBackground:"#282a36",gutterForeground:"rgb(144, 145, 148)",lineHighlight:"#44475a"},styles:[{tag:tags.comment,color:"#6272a4"},{tag:[tags.string,tags.special(tags.brace)],color:"#f1fa8c"},{tag:[tags.number,tags.self,tags.bool,tags.null],color:"#bd93f9"},{tag:[tags.keyword,tags.operator],color:"#ff79c6"},{tag:[tags.definitionKeyword,tags.typeName],color:"#8be9fd"},{tag:tags.definition(tags.typeName),color:"#f8f8f2"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.attributeName],color:"#50fa7b"}]});createTheme({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#80C7FF",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#C1E2F8"},styles:[{tag:tags.comment,color:"#AAAAAA"},{tag:[tags.keyword,tags.operator,tags.typeName,tags.tagName,tags.propertyName],color:"#2F6F9F",fontWeight:"bold"},{tag:[tags.attributeName,tags.definition(tags.propertyName)],color:"#4F9FD0"},{tag:[tags.className,tags.string,tags.special(tags.brace)],color:"#CF4F5F"},{tag:tags.number,color:"#CF4F5F",fontWeight:"bold"},{tag:tags.variableName,fontWeight:"bold"}]});createTheme({variant:"light",settings:{background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},styles:[{tag:tags.comment,color:"#9995b7"},{tag:tags.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[tags.definitionKeyword,tags.modifier],color:"#ff5792"},{tag:[tags.className,tags.tagName,tags.definition(tags.typeName)],color:"#0094f0"},{tag:[tags.number,tags.bool,tags.null,tags.special(tags.brace)],color:"#5842ff"},{tag:[tags.definition(tags.propertyName),tags.function(tags.variableName)],color:"#0095a8"},{tag:tags.typeName,color:"#b3694d"},{tag:[tags.propertyName,tags.variableName],color:"#fa8900"},{tag:tags.operator,color:"#ff5792"},{tag:tags.self,color:"#e64100"},{tag:[tags.string,tags.regexp],color:"#00b368"},{tag:[tags.paren,tags.bracket],color:"#0431fa"},{tag:tags.labelName,color:"#00bdd6"},{tag:tags.attributeName,color:"#e64100"},{tag:tags.angleBracket,color:"#9995b7"}]});createTheme({variant:"light",settings:{background:"#faf4ed",foreground:"#575279",caret:"#575279",selection:"#6e6a8614",gutterBackground:"#faf4ed",gutterForeground:"#57527970",lineHighlight:"#6e6a860d"},styles:[{tag:tags.comment,color:"#9893a5"},{tag:[tags.bool,tags.null],color:"#286983"},{tag:tags.number,color:"#d7827e"},{tag:tags.className,color:"#d7827e"},{tag:[tags.angleBracket,tags.tagName,tags.typeName],color:"#56949f"},{tag:tags.attributeName,color:"#907aa9"},{tag:tags.punctuation,color:"#797593"},{tag:[tags.keyword,tags.modifier],color:"#286983"},{tag:[tags.string,tags.regexp],color:"#ea9d34"},{tag:tags.variableName,color:"#d7827e"}]});createTheme({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#FFFD0054",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#00000008"},styles:[{tag:tags.comment,color:"#CFCFCF"},{tag:[tags.number,tags.bool,tags.null],color:"#E66C29"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.labelName,tags.definition(tags.typeName)],color:"#2EB43B"},{tag:tags.keyword,color:"#D8B229"},{tag:tags.operator,color:"#4EA44E",fontWeight:"bold"},{tag:[tags.definitionKeyword,tags.modifier],color:"#925A47"},{tag:tags.string,color:"#704D3D"},{tag:tags.typeName,color:"#2F8996"},{tag:[tags.variableName,tags.propertyName],color:"#77ACB0"},{tag:tags.self,color:"#77ACB0",fontWeight:"bold"},{tag:tags.regexp,color:"#E3965E"},{tag:[tags.tagName,tags.angleBracket],color:"#BAA827"},{tag:tags.attributeName,color:"#B06520"},{tag:tags.derefOperator,color:"#000"}]});createTheme({variant:"light",settings:{background:"#fef7e5",foreground:"#586E75",caret:"#000000",selection:"#073642",gutterBackground:"#fef7e5",gutterForeground:"#586E7580",lineHighlight:"#EEE8D5"},styles:[{tag:tags.comment,color:"#93A1A1"},{tag:tags.string,color:"#2AA198"},{tag:tags.regexp,color:"#D30102"},{tag:tags.number,color:"#D33682"},{tag:tags.variableName,color:"#268BD2"},{tag:[tags.keyword,tags.operator,tags.punctuation],color:"#859900"},{tag:[tags.definitionKeyword,tags.modifier],color:"#073642",fontWeight:"bold"},{tag:[tags.className,tags.self,tags.definition(tags.propertyName)],color:"#268BD2"},{tag:tags.function(tags.variableName),color:"#268BD2"},{tag:[tags.bool,tags.null],color:"#B58900"},{tag:tags.tagName,color:"#268BD2",fontWeight:"bold"},{tag:tags.angleBracket,color:"#93A1A1"},{tag:tags.attributeName,color:"#93A1A1"},{tag:tags.typeName,color:"#859900"}]});createTheme({variant:"light",settings:{background:"#FFFFFF",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C80",lineHighlight:"#EFEFEF"},styles:[{tag:tags.comment,color:"#8E908C"},{tag:[tags.variableName,tags.self,tags.propertyName,tags.attributeName,tags.regexp],color:"#C82829"},{tag:[tags.number,tags.bool,tags.null],color:"#F5871F"},{tag:[tags.className,tags.typeName,tags.definition(tags.typeName)],color:"#C99E00"},{tag:[tags.string,tags.special(tags.brace)],color:"#718C00"},{tag:tags.operator,color:"#3E999F"},{tag:[tags.definition(tags.propertyName),tags.function(tags.variableName)],color:"#4271AE"},{tag:tags.keyword,color:"#8959A8"},{tag:tags.derefOperator,color:"#4D4D4C"}]});function getShadowRoot(r){let e=r;for(;e;){if(e.toString()==="[object ShadowRoot]")return e;if(e instanceof ShadowRoot&&e.host)return e.host.shadowRoot||void 0;e=e.parentElement||(e instanceof ShadowRoot?e.host:void 0)}}function toRawTextResult(r,e=0){const n=r.split(`
|
|
27
|
-
`),A=[];let o=0,s=0;for(const a of n)A.push({nodeIdx:e,targetRow:s,targetCol:0,targetPos:o}),s++,o+=a.length+1,e+=a.length+1;return{content:r,rawTextMap:A}}function normalizeSiblings(r,e){if(r.childCount<2)return r;for(let n=e.depth;n>=0;n--){let o=e.node(n).contentMatchAt(e.index(n)),s,a=[];if(r.forEach(l=>{if(!a)return;let c=o.findWrapping(l.type),g;if(!c)return a=null;if(g=a.length&&s.length&&addToSibling(c,s,l,a[a.length-1],0))a[a.length-1]=g;else{a.length&&(a[a.length-1]=closeRight(a[a.length-1],s.length));let h=withWrappers(l,c);a.push(h),o=o.matchType(h.type),s=c}}),a)return Fragment.from(a)}return r}function withWrappers(r,e,n=0){for(let A=e.length-1;A>=n;A--)r=e[A].create(null,Fragment.from(r));return r}function addToSibling(r,e,n,A,o){if(o<r.length&&o<e.length&&r[o]==e[o]){let s=addToSibling(r,e,n,A.lastChild,o+1);if(s)return A.copy(A.content.replaceChild(A.childCount-1,s));if(A.contentMatchAt(A.childCount).matchType(o==r.length-1?n.type:r[o+1]))return A.copy(A.content.append(Fragment.from(withWrappers(n,r,o+1))))}}function closeRight(r,e){if(e==0)return r;let n=r.content.replaceChild(r.childCount-1,closeRight(r.lastChild,e-1)),A=r.contentMatchAt(r.childCount).fillBefore(Fragment.empty,!0);return r.copy(n.append(A))}function closeRange(r,e,n,A,o,s){let a=e<0?r.firstChild:r.lastChild,l=a.content;return r.childCount>1&&(s=0),o<A-1&&(l=closeRange(l,e,n,A,o+1,s)),o>=n&&(l=e<0?a.contentMatchAt(0).fillBefore(l,s<=o).append(l):l.append(a.contentMatchAt(a.childCount).fillBefore(Fragment.empty,!0))),r.replaceChild(e<0?0:r.childCount-1,a.copy(l))}function closeSlice(r,e,n){return e<r.openStart&&(r=new Slice(closeRange(r.content,-1,e,r.openStart,0,r.openEnd),e,r.openEnd)),n<r.openEnd&&(r=new Slice(closeRange(r.content,1,n,r.openEnd,0,0),r.openStart,n)),r}function sliceSingleNode(r){return r.openStart==0&&r.openEnd==0&&r.content.childCount==1?r.content.firstChild:null}function fixSlice(r,e){if(r=Slice.maxOpen(normalizeSiblings(r.content,e),!0),r.openStart||r.openEnd){let n=0,A=0;for(let o=r.content.firstChild;n<r.openStart&&!o.type.spec.isolating;n++,o=o.firstChild);for(let o=r.content.lastChild;A<r.openEnd&&!o.type.spec.isolating;A++,o=o.lastChild);r=closeSlice(r,n,A)}return r}function sliceHasOnlyText(r){return r.content.content.every(e=>e.isInline)}const selectAll$1=()=>function(r,e,n){const A=r.tr.setSelection(new AllSelection(r.doc));return n&&n.dispatch(A),!0};function textPositionsToResolvedPos(r,e,n){const A=r.map(c=>-1);let o=0,s=!1;function a(c,g,h,d){if(s){for(let u=0;u<r.length;u++){const f=r[u];f>=o&&f<o+d&&(A[u]=c+(f-o))}o+=d}}function l(c,g=0,h=0,d=0){g===1&&h===n&&(s=!0);let u=0;c.isText&&c.text?u=c.text?.length:c.isLeaf&&(u=1),u>0&&a(d,g,h,u),c.forEach((f,I,p)=>{l(f,g+1,p,d+I+1)})}if(l(e),s)for(let c=0;c<r.length;c++){const g=r[c];A[c]===-1&&(g<o?A[c]=1:A[c]=e.nodeSize-1)}return A.map(c=>e.resolve(c-1))}const selectText=(r,e,n=0)=>function(A,o,s){const[a,l]=textPositionsToResolvedPos([r+e,r],A.doc,n),c=A.tr.setSelection(new TextSelection(l,a));return s&&s.dispatch(c),!0};class ExtensionSelection extends Extension{constructor(){super(...arguments),this.name="selection"}extractSelection(){const e=this.editor.state,{from:n,to:A}=e.selection,o=e.doc.slice(n,A);if(sliceHasOnlyText(o)){const s=e.schema.nodes.paragraph.create(null,o.content);return e.schema.topNodeType.createAndFill(null,[s])}return e.schema.topNodeType.createAndFill(null,o.content)}replaceSelection(e){const A=this.editor.view,o=this.editor.state;let s;e.type?.name==="doc"&&(e=createNodeFromObject(e.toJSON(),this.editor.schema)),s=new Slice(e.content,1,1);const a=o.selection.$from;s=fixSlice(s,a);let l=sliceSingleNode(s),c=l?o.tr.replaceSelectionWith(l,!1):o.tr.replaceSelection(s);A.dispatch(c.scrollIntoView())}appendSelection(e){const n=this.editor.view,{state:A}=n;let o;e.type?.name==="doc"&&(e=createNodeFromObject(e.toJSON(),this.editor.schema)),o=new Slice(e.content,1,1);const s=n.state.selection.$from;o=fixSlice(o,s);const a=A.tr.insert(n.state.selection.to,o.content);n.dispatch(a.scrollIntoView())}getCommandFactories(e){return this.editor=e,{selectAll:()=>selectAll$1(),selectText:(...n)=>selectText(...n)}}}const pcBaseKeymap={"Mod-Enter":"exitCode",Backspace:"backspace","Mod-Backspace":"backspace","Shift-Backspace":"backspace",Delete:"del","Mod-Delete":"del","Mod-a":"selectAll"},macBaseKeymap={...pcBaseKeymap,"Ctrl-h":pcBaseKeymap.Backspace,"Alt-Backspace":pcBaseKeymap["Mod-Backspace"],"Ctrl-d":pcBaseKeymap.Delete,"Ctrl-Alt-Backspace":pcBaseKeymap["Mod-Delete"],"Alt-Delete":pcBaseKeymap["Mod-Delete"],"Alt-d":pcBaseKeymap["Mod-Delete"],"Ctrl-a":"selectTextblockStart","Ctrl-e":"selectTextblockEnd"},mac=/(Mac|iPhone|iPod|iPad)/i.test(navigator?.platform),baseKeymap=mac?macBaseKeymap:pcBaseKeymap;class ExtensionBaseKeymap extends Extension{constructor(){super(...arguments),this.name="base-keymap"}getKeyboardShortcuts(){const e={Enter:"enter","Alt-ArrowUp":"joinUp","Alt-ArrowDown":"joinDown","Mod-BracketLeft":"lift",Escape:"selectParentNode"};for(const n in baseKeymap)e[n]=baseKeymap[n];return e}}function dropCursor(r={}){return new Plugin({key:new PluginKey("drop-cursor"),view(e){return new DropCursorView(e,r)}})}class DropCursorView{constructor(e,n){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=n.width??1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(A=>{let o=s=>{this[A](s)};return e.dom.addEventListener(A,o),{name:A,handler:o}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,A,o=this.editorView.dom,s=o.getBoundingClientRect(),a=s.width/o.offsetWidth,l=s.height/o.offsetHeight;if(n){let d=e.nodeBefore,u=e.nodeAfter;if(d||u){let f=this.editorView.nodeDOM(this.cursorPos-(d?d.nodeSize:0));if(f){let I=f.getBoundingClientRect(),p=d?I.bottom:I.top;d&&u&&(p=(p+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let m=this.width/2*l;A={left:I.left,right:I.right,top:p-m,bottom:p+m}}}}if(!A){let d=this.editorView.coordsAtPos(this.cursorPos),u=this.width/2*a;A={left:d.left-u,right:d.left+u,top:d.top,bottom:d.bottom}}let c=this.editorView.dom.offsetParent;this.element||(this.element=c.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let g,h;if(!c||c==document.body&&getComputedStyle(c).position=="static")g=-pageXOffset,h=-pageYOffset;else{let d=c.getBoundingClientRect(),u=d.width/c.offsetWidth,f=d.height/c.offsetHeight;g=d.left-c.scrollLeft*u,h=d.top-c.scrollTop*f}this.element.style.left=(A.left-g)/a+"px",this.element.style.top=(A.top-h)/l+"px",this.element.style.width=(A.right-A.left)/a+"px",this.element.style.height=(A.bottom-A.top)/l+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),A=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),o=A&&A.type.spec.disableDropCursor,s=typeof o=="function"?o(this.editorView,n,e):o;if(n&&!s){let a=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let l=dropPoint(this.editorView.state.doc,a,this.editorView.dragging.slice);l!=null&&(a=l)}this.setCursor(a),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class ExtensionDropcursor extends Extension{constructor(){super(...arguments),this.name="dropcursor",this.options={color:"currentColor",width:1,class:void 0}}getProseMirrorPlugins(){return[dropCursor(this.options)]}}class GapCursor extends Selection{constructor(e){super(e,e),this.visible=!1}map(e,n){let A=e.resolve(n.map(this.head));return GapCursor.valid(A)?new GapCursor(A):Selection.near(A)}content(){return Slice.empty}eq(e){return e instanceof GapCursor&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSONToGapCursor(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new GapCursor(e.resolve(n.pos))}getBookmark(){return new GapBookmark(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!closedBefore(e)||!closedAfter(e))return!1;let A=n.type.spec.allowGapCursor;if(A!=null)return A;let o=n.contentMatchAt(e.index()).defaultType;return o&&o.isTextblock}static findGapCursorFrom(e,n,A=!1){e:for(;;){if(!A&&GapCursor.valid(e))return e;let o=e.pos,s=null;for(let a=e.depth;;a--){let l=e.node(a);if(n>0?e.indexAfter(a)<l.childCount:e.index(a)>0){s=l.child(n>0?e.indexAfter(a):e.index(a)-1);break}else if(a==0)return null;o+=n;let c=e.doc.resolve(o);if(GapCursor.valid(c))return c}for(;;){let a=n>0?s.firstChild:s.lastChild;if(!a){if(s.isAtom&&!s.isText&&!NodeSelection.isSelectable(s)){e=e.doc.resolve(o+s.nodeSize*n),A=!1;continue e}break}s=a,o+=n;let l=e.doc.resolve(o);if(GapCursor.valid(l))return l}return null}}}Selection.jsonID("gapcursor",GapCursor);class GapBookmark{constructor(e){this.pos=e}map(e){return new GapBookmark(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return GapCursor.valid(n)?new GapCursor(n):Selection.near(n)}}function closedBefore(r){for(let e=r.depth;e>=0;e--){let n=r.index(e),A=r.node(e);if(n==0){if(A.type.spec.isolating)return!0;continue}for(let o=A.child(n-1);;o=o.lastChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}function closedAfter(r){for(let e=r.depth;e>=0;e--){let n=r.indexAfter(e),A=r.node(e);if(n==A.childCount){if(A.type.spec.isolating)return!0;continue}for(let o=A.child(n);;o=o.firstChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}function gapCursor(){return new Plugin({key:new PluginKey("gap-cursor"),props:{decorations:drawGapCursor,createSelectionBetween(r,e,n){return e.pos==n.pos&&GapCursor.valid(n)?new GapCursor(n):null},handleClick,handleKeyDown:handleKeyDown$1,handleDOMEvents:{beforeinput}}})}const handleKeyDown$1=keydownHandler({ArrowLeft:arrow$1("horiz",-1),ArrowRight:arrow$1("horiz",1),ArrowUp:arrow$1("vert",-1),ArrowDown:arrow$1("vert",1)});function arrow$1(r,e){const n=r=="vert"?e>0?"down":"up":e>0?"right":"left";return function(A,o,s){let a=A.selection,l=e>0?a.$to:a.$from,c=a.empty;if(a instanceof TextSelection){if(!s.endOfTextblock(n)||l.depth==0)return!1;c=!1,l=A.doc.resolve(e>0?l.after():l.before())}let g=GapCursor.findGapCursorFrom(l,e,c);return g?(o&&o(A.tr.setSelection(new GapCursor(g))),!0):!1}}function handleClick(r,e,n){if(!r||!r.editable)return!1;let A=r.state.doc.resolve(e);if(!GapCursor.valid(A))return!1;let o=r.posAtCoords({left:n.clientX,top:n.clientY});return o&&o.inside>-1&&NodeSelection.isSelectable(r.state.doc.nodeAt(o.inside))?!1:(r.dispatch(r.state.tr.setSelection(new GapCursor(A))),!0)}function beforeinput(r,e){if(e.inputType!="insertCompositionText"||!(r.state.selection instanceof GapCursor))return!1;let{$from:n}=r.state.selection,A=n.parent.contentMatchAt(n.index()).findWrapping(r.state.schema.nodes.text);if(!A)return!1;let o=Fragment.empty;for(let a=A.length-1;a>=0;a--)o=Fragment.from(A[a].createAndFill(null,o));let s=r.state.tr.replace(n.pos,n.pos,new Slice(o,0,0));return s.setSelection(TextSelection.near(s.doc.resolve(n.pos+1))),r.dispatch(s),!1}function drawGapCursor(r){if(!(r.selection instanceof GapCursor))return null;let e=document.createElement("div");return e.className="kb-gapcursor",DecorationSet.create(r.doc,[Decoration$1.widget(r.selection.head,e,{key:"gapcursor"})])}class ExtensionGapcursor extends Extension{constructor(){super(...arguments),this.name="gapcursor",this.options={color:"currentColor",width:1,class:void 0}}getProseMirrorPlugins(){return[gapCursor()]}}function getHTMLFromFragment(r,e){const n=globalThis.document,A=DOMSerializer.fromSchema(e).serializeFragment(r,{document:n}),s=n.implementation.createHTMLDocument().createElement("div");return s.appendChild(A),s.innerHTML}const removeWhitespaces$1=r=>{const e=r.childNodes;for(let n=e.length-1;n>=0;n-=1){const A=e[n];A.nodeType===3&&A.nodeValue&&/^(\n\s\s|\n)$/.test(A.nodeValue)?r.removeChild(A):A.nodeType===1&&removeWhitespaces$1(A)}return r};function elementFromString$1(r){const e=`<html lang="en"><body>${r}</body></html>`,n=new globalThis.DOMParser().parseFromString(e,"text/html").body;return removeWhitespaces$1(n)}function prepareContentCheckSchema(r){return new Schema({topNode:r.spec.topNode,marks:r.spec.marks,nodes:r.spec.nodes.append({__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:n=>{const A=typeof n=="string"?n:n.outerHTML;throw new Error("Invalid HTML content",{cause:new Error(`Invalid element found: ${A}`)})}}]}})})}function createNodeFromHTML(r,e,n){if(n={parseOptions:{},...n},n.errorOnInvalidContent){const o=prepareContentCheckSchema(e);DOMParser$1.fromSchema(o).parse(elementFromString$1(r),n.parseOptions)}return DOMParser$1.fromSchema(e).parse(elementFromString$1(r),n.parseOptions)}class ExtensionHtml extends Extension{constructor(){super(...arguments),this.name="html"}getConverters(e,n){return{"text/html":{fromDoc:async A=>{const o=getHTMLFromFragment(A.content,e.schema);return new TextEncoder().encode(o)},toDoc:async A=>{const o=new TextDecoder().decode(A);return createNodeFromHTML(o,e.schema)}}}}}const mediaUploadKey=new PluginKey("mediaUpload");function fileToDataURL(r){return new Promise((e,n)=>{const A=new FileReader;A.onload=()=>e(A.result),A.onerror=n,A.readAsDataURL(r)})}function fileToObjectURL(r){return URL.createObjectURL(r)}function isImage(r,e){return e.some(n=>r.type.match(n))}function isVideo(r,e){return e.some(n=>r.type.match(n))}function insertImage(r,e,n,A,o){const{schema:s}=r.state,a=s.nodes.image;if(!a){console.warn("Image node type not found in schema");return}const l=a.create({src:n,alt:A,title:o}),c=r.state.tr.insert(e,l);r.dispatch(c)}function insertVideo(r,e,n,A,o,s){const{schema:a}=r.state,l=a.nodes.video;if(!l){console.warn("Video node type not found in schema");return}const c=l.create({src:n,title:A,width:o,height:s,controls:!0}),g=r.state.tr.insert(e,c);r.dispatch(g)}async function handleMediaFiles(r,e,n,A){const{maxFileSize:o=10*1024*1024,maxVideoFileSize:s=50*1024*1024,allowedImageTypes:a=["^image/"],allowedVideoTypes:l=["^video/"],uploadHandler:c}=A;for(const g of e){const h=isImage(g,a),d=isVideo(g,l);if(!h&&!d)continue;const u=d?s:o;if(g.size>u){console.warn(`${d?"Video":"Image"} file "${g.name}" is too large (${(g.size/1024/1024).toFixed(2)}MB). Maximum size is ${(u/1024/1024).toFixed(2)}MB.`);continue}try{console.log(`Processing ${d?"video":"image"}: ${g.name} (${(g.size/1024/1024).toFixed(2)}MB, ${g.type})`);let f;c?f=await c(g):d&&A.useObjectURLForVideos!==!1?(f=fileToObjectURL(g),console.log("Using object URL for video:",f)):(f=await fileToDataURL(g),console.log(`${d?"Video":"Image"} converted to data URL, length: ${f.length} characters`)),d?(insertVideo(r,n,f,g.name),console.log("Video inserted into editor")):(insertImage(r,n,f,g.name),console.log("Image inserted into editor")),n+=1}catch(f){console.error(`Failed to process ${d?"video":"image"} "${g.name}":`,f)}}}function createMediaUploadPlugin(r={}){return new Plugin({key:mediaUploadKey,props:{handleDrop(e,n,A,o){if(o)return!1;const s=Array.from(n.dataTransfer?.files||[]);if(s.length===0)return!1;const{allowedImageTypes:a=["^image/"],allowedVideoTypes:l=["^video/"]}=r;if(!s.some(d=>isImage(d,a)||isVideo(d,l)))return!1;n.preventDefault();const g={left:n.clientX,top:n.clientY},h=e.posAtCoords(g);return h?(handleMediaFiles(e,s,h.pos,r),!0):!1},handlePaste(e,n,A){const s=Array.from(n.clipboardData?.items||[]).filter(c=>c.type.startsWith("image/"));if(s.length===0)return!1;n.preventDefault();const a=[];for(const c of s){const g=c.getAsFile();g&&a.push(g)}if(a.length===0)return!1;const{from:l}=e.state.selection;return handleMediaFiles(e,a,l,r),!0}}})}class ExtensionMediaUpload extends Extension{constructor(e={}){super(e),this.config=e,this.name="mediaUpload"}getProseMirrorPlugins(){return[createMediaUploadPlugin(this.config)]}}class ExtensionTextAlign extends Extension{constructor(){super(...arguments),this.name="textAlign"}getCommandFactories(e){const n=A=>(o,s)=>{const{selection:a,tr:l}=o,{from:c,to:g}=a;let h=!1;return o.doc.nodesBetween(c,g,(d,u)=>{d.isBlock&&d.type.spec.attrs&&"textAlign"in d.type.spec.attrs&&(l.setNodeMarkup(u,void 0,{...d.attrs,textAlign:A}),h=!0)}),h&&s&&s(l),h};return{setTextAlignLeft:()=>n("left"),setTextAlignCenter:()=>n("center"),setTextAlignRight:()=>n("right"),setTextAlignJustify:()=>n("justify")}}}const remoteSelectionPluginKey=new PluginKey("remote-selection"),defaultCursorBuilder=r=>{const e=document.createElement("span");e.classList.add("kb-yjs__cursor"),e.setAttribute("style",`border-color: ${r.color};`);const n=document.createElement("div");n.setAttribute("style",`background-color: ${r.color}`),n.insertBefore(document.createTextNode(r.name),null);const A=document.createTextNode(""),o=document.createTextNode("");return e.insertBefore(A,null),e.insertBefore(n,null),e.insertBefore(o,null),e},defaultSelectionBuilder=r=>({style:`background-color: ${r.color}70`,class:"kb-yjs__selection"}),rxValidColor=/^#[0-9a-fA-F]{6}$/,createDecorations=(r,e,n,A)=>{const o=[],s=e.getRemoteStates();if(s.length===0)return DecorationSet.create(r.doc,[]);for(const a of s)if(a.cursor!=null){const l=a.user||{};l.color==null?l.color="#ffa500":rxValidColor.test(l.color)||console.warn("A user uses an unsupported color format",l),l.name==null&&(l.name=`User: ${a.clientId}`);const c=a.cursor;let g=c.anchor||null,h=c.head||null;if(g!==null&&h!==null){const d=Math.max(r.doc.content.size-1,0);g=Math.min(g,d),h=Math.min(h,d),o.push(Decoration$1.widget(h,()=>n(l,a.clientId),{key:a.clientId+"",side:10}));const u=Math.min(g,h),f=Math.max(g,h);o.push(Decoration$1.inline(u,f,A(l,a.clientId),{inclusiveEnd:!0,inclusiveStart:!1}))}}return DecorationSet.create(r.doc,o)},remoteSelectionPlugin=(r,e,{cursorBuilder:n=defaultCursorBuilder,selectionBuilder:A=defaultSelectionBuilder}={})=>new Plugin({key:remoteSelectionPluginKey,state:{init(o,s){return createDecorations(s,r,n,A)},apply(o,s,a,l){const c=o.getMeta(remoteSelectionPluginKey);return c?.isChangeOrigin||c?.remotePositionUpdated?createDecorations(l,r,n,A):s.map(o.mapping,o.doc)}},props:{decorations:o=>remoteSelectionPluginKey.getState(o)}});class ExtensionRemoteSelection extends Extension{constructor(){super(...arguments),this.name="remote-selection",this.remoteStates=[]}getProseMirrorPlugins(){return[remoteSelectionPlugin(this,this.editor)]}getRemoteStates(){return this.remoteStates}setRemoteStates(e){this.remoteStates=e;const n=new CustomEvent("remoteSelectionChange",{detail:{}});this.editor.dispatchEvent(n)}}function generateId(){return String(Math.random())}function buildPairingTransaction(r,e,n){const{doc:A}=r,o=new Map,s=[];A.descendants((l,c)=>{l.type.name===e&&s.push({node:l,pos:c})});let a=!1;for(const{node:l,pos:c}of s){const g=l.attrs.content?.trim();if(!g)continue;const h=g.match(/^[^0-9a-z\/]*(\/?)[\s]*([\w]+)/i),d=h[1]==="/",u=h[2];if(!d)o.has(u)||o.set(u,[]),o.get(u).push({node:l,pos:c});else{const f=o.get(u);if(f&&f.length>0){const I=f.pop(),p=generateId();n.setNodeMarkup(I.pos,void 0,{...I.node.attrs,id:p,nesting:NESTING_OPENING$1,error:void 0}),n.setNodeMarkup(c,void 0,{...l.attrs,id:p,nesting:NESTING_CLOSING$1,error:void 0})}else n.setNodeMarkup(c,void 0,{...l.attrs,error:"Closing shortcode without matching opening",nesting:NESTING_CLOSING$1});a=!0}}for(const[,l]of o.entries())for(const{node:c,pos:g}of l)n.setNodeMarkup(g,void 0,{...c.attrs,nesting:NESTING_SELF_CLOSING$1,id:void 0}),a=!0;return a?n:null}const createPairingPlugin=r=>new Plugin({appendTransaction(e,n,A){const o=new Set;for(const a of e)if(a.docChanged){for(const l of a.steps)if((l instanceof ReplaceStep||l instanceof ReplaceAroundStep)&&(l.slice&&l.slice.content.descendants(c=>{r.includes(c.type.name)&&o.add(c.type.name)}),l.from!=null&&l.to!=null&&l.from!==l.to&&n.doc.nodesBetween(l.from,l.to,c=>{r.includes(c.type.name)&&o.add(c.type.name)}),o.size===r.length))break;if(o.size===r.length)break}if(o.size===0)return null;const s=A.tr;for(const a of o)buildPairingTransaction(A,a,s);return s}});class ExtensionPairing extends Extension{constructor(){super(...arguments),this.name="pairing-nodes"}getProseMirrorPlugins(){return[createPairingPlugin(["shortcode_inline"])]}}class MarkLink extends Mark{constructor(){super(...arguments),this.name="link",this.requires=["doc"]}getMarkSpec(){return{attrs:{href:{},title:{default:void 0},origUrl:{default:void 0},mdTemplate:{default:void 0}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs(e){return{href:e.getAttribute("href"),title:e.getAttribute("title")}}}],toDOM(e){const{href:n,title:A}=e.attrs;return["a",{href:n,title:A},0]}}}}class MarkStrong extends Mark{constructor(){super(...arguments),this.name="strong",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:e=>e.style.fontWeight!="normal"&&null},{style:"font-weight=400",clearMark:e=>e.type.name=="strong"},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],toDOM(){return["strong",0]}}}getCommandFactories(e,n){return{toggleStrong:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-b":"toggleStrong","Mod-B":"toggleStrong"}}}class MarkItalic extends Mark{constructor(){super(...arguments),this.name="em",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-assets=italic"},{style:"font-assets=normal",clearMark:e=>e.type.name=="em"}],toDOM(){return["em",0]}}}getCommandFactories(e,n){return{toggleItalic:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-i":"toggleItalic","Mod-I":"toggleItalic"}}}class MarkUnderline extends Mark{constructor(){super(...arguments),this.name="underline",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"u"}],toDOM(){return["u",0]}}}getCommandFactories(e,n){return{toggleUnderline:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-u":"toggleUnderline","Mod-U":"toggleUnderline"}}}class MarkStrike extends Mark{constructor(){super(...arguments),this.name="strike",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"strike"}],toDOM(){return["strike",0]}}}getCommandFactories(e,n){return{toggleStrike:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-s":"toggleStrike","Mod-S":"toggleStrike"}}}class MarkCode extends Mark{constructor(){super(...arguments),this.name="code",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"code"}],toDOM(){return["code",0]}}}getCommandFactories(e,n){return{toggleCode:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-`":"toggleCode"}}}class MarkChange extends Mark{constructor(){super(...arguments),this.name="change",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[],toDOM(){return["change",0]}}}}class MarkBookmark extends Mark{constructor(){super(...arguments),this.name="bookmark",this.requires=["doc"]}getMarkSpec(){return{attrs:{id:{}},parseDOM:[],toDOM(e){return["a",{id:e.attrs.id},0]}}}}class MarkTextColor extends Mark{constructor(){super(...arguments),this.name="textColor"}getMarkSpec(){return{attrs:{color:{default:null}},parseDOM:[{tag:'span[style*="color"]',getAttrs(e){const n=e.style.color;return n?{color:n}:!1}}],toDOM(e){const{color:n}=e.attrs;return n?["span",{style:`color: ${n}`},0]:["span",0]}}}}class MarkHighlight extends Mark{constructor(){super(...arguments),this.name="highlight"}getMarkSpec(){return{attrs:{color:{default:null}},parseDOM:[{tag:"mark",getAttrs(e){const n=e.style.backgroundColor;return n?{color:n}:{color:"yellow"}}},{tag:'span[style*="background-color"]',getAttrs(e){const n=e.style.backgroundColor;return n?{color:n}:!1}}],toDOM(e){const{color:n}=e.attrs;return["mark",{style:`background-color: ${n||"yellow"}; color: inherit;`},0]}}}}class MarkSuperscript extends Mark{constructor(){super(...arguments),this.name="superscript",this.requires=["doc"]}getMarkSpec(){return{excludes:"subscript",parseDOM:[{tag:"sup"},{style:"vertical-align",getAttrs:e=>e==="super"&&null}],toDOM(){return["sup",0]}}}getCommandFactories(e,n){return{toggleSuperscript:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-Shift-.":"toggleSuperscript"}}}class MarkSubscript extends Mark{constructor(){super(...arguments),this.name="subscript",this.requires=["doc"]}getMarkSpec(){return{excludes:"superscript",parseDOM:[{tag:"sub"},{style:"vertical-align",getAttrs:e=>e==="sub"&&null}],toDOM(){return["sub",0]}}}getCommandFactories(e,n){return{toggleSubscript:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-Shift-,":"toggleSubscript"}}}class NodeDocument extends Node$1{constructor(){super(...arguments),this.name="doc"}getNodeSpec(){return{content:"block+",marks:"code em strong link bookmark",EMPTY_DOC:{type:this.name,content:[{type:"paragraph",content:[]}]}}}}class NodeText extends Node$1{constructor(){super(...arguments),this.name="text"}getNodeSpec(){return{group:"inline"}}}function wrappingInputRule(r,e,n=null,A){return new InputRule(r,(o,s,a,l,c)=>{o||(o=s.tr);const g=n instanceof Function?n(a):n;o=o.delete(l,c);const d=o.doc.resolve(l).blockRange(),u=d&&findWrapping(d,e,g);if(!u)return null;o.wrap(d,u);const f=o.doc.resolve(l-1).nodeBefore;return f&&f.type==e&&canJoin(o.doc,l-1)&&(!A||A(a,f))&&o.join(l-1),o})}function textblockTypeInputRule(r,e,n=null){return new InputRule(r,(A,o,s,a,l)=>{A||(A=o.tr);const c=o.doc.resolve(a),g=n instanceof Function?n(s):n;return c.node(-1).canReplaceWith(c.index(-1),c.indexAfter(-1),e)?A.delete(a,l).setBlockType(a,a,e,g):null})}function replaceInlineNode(r,e,n=null){return new InputRule(r,(A,o,s,a,l)=>{A||(A=o.tr);const c=n instanceof Function?n(s):n;if(o.doc.resolve(a).parent.type===o.schema.nodes.code_block)return A;const h=e.createAndFill(c),d=A.mapping.map(a),u=A.mapping.map(l);return A.replaceWith(d,u,Fragment.from(h))})}let NodeCodeBlock$1=class extends Node$1{constructor(){super(...arguments),this.name="code_block"}getNodeSpec(){return{content:"text*",marks:"",group:"block",code:!0,defining:!0,attrs:{lang:{default:void 0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs(e){return{lang:e.getAttribute("lang")}}}],toDOM(e){const{lang:n}=e.attrs;return["pre",{lang:n},["code",0]]}}}getInputRules(e){return[textblockTypeInputRule(/^```$/,e)]}};class NodeBookmark extends Node$1{constructor(){super(...arguments),this.name="node_bookmark",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,atom:!0,attrs:{id:{},nesting:{default:NESTING_SELF_CLOSING$1}},parseDOM:[],toDOM(e){return["a",{id:e.attrs.id},0]}}}}class NodeParagraph extends Node$1{constructor(){super(...arguments),this.name="paragraph",this.requires=["doc"]}getNodeSpec(){return{content:"inline*",group:"block",attrs:{textAlign:{default:void 0}},parseDOM:[{tag:"p",getAttrs(e){const A=e.style.textAlign;return A==="center"||A==="right"||A==="justify"?{textAlign:A}:!1}}],toDOM(e){const n=e.attrs.textAlign||"left";return["center","right","justify"].includes(n)?["p",{style:`text-align: ${n}`},0]:["p",0]}}}getCommandFactories(e,n){return{setParagraph:()=>e.commandFactories.setBlockType(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-0":"setParagraph"}}}class NodeHardBreak extends Node$1{constructor(){super(...arguments),this.name="br",this.requires=["doc"],this.options={keepMarks:!0}}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseDOM:[{tag:"br"}],toDOM(){return["br"]}}}getCommandFactories(e,n){const A=firstCommand(e.run.exitCode);return{setHardBreak:()=>A}}getKeyboardShortcuts(){const e=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator?.platform):!1,n={"Ctrl-Enter":"setHardBreak"};return e&&(n["Mod-Enter"]="setHardBreak",n["Shift-Enter"]="setHardBreak"),n}}class NodeSoftBreak extends Node$1{constructor(){super(...arguments),this.name="softbreak",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"wbr"}],toDOM(){return["wbr"]}}}}class NodeHorizontalRule extends Node$1{constructor(){super(...arguments),this.name="hr",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",parseDOM:[{tag:"hr"}],toDOM(){return["hr"]}}}getCommandFactories(e,n){return{setHorizontalRule:()=>(A,o)=>(o&&o(A.tr.replaceSelectionWith(n.create()).scrollIntoView()),!0)}}getKeyboardShortcuts(){return{"Mod-_":"setHorizontalRule"}}}class NodeOrderedList extends Node$1{constructor(){super(...arguments),this.name="ordered_list",this.requires=["doc"],this.attributes={type:{default:"1",fromDom(e){return e.hasAttribute("type")?e.getAttribute("type"):"1"}},start:{default:void 0,fromDom(e){return e.hasAttribute("start")?+e.getAttribute("start"):void 0}},id:{default:void 0},continue:{default:void 0},odtMarginLeft:{default:void 0}}}getNodeSpec(){return{group:"block",content:"list_item+",parseDOM:[{tag:"ol",getAttrs:e=>setHtmlAttributes(this,e)}],toDOM:e=>["ol",getHtmlAttributes(this,e),0]}}getInputRules(e){return[wrappingInputRule(/^(\d+)\.\s$/,e,n=>({order:+n[1]}),(n,A)=>A.childCount+A.attrs.order==+n[1])]}getCommandFactories(e,n){return{toggleOrderedList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-7":"toggleOrderedList"}}}class NodeBulletList extends Node$1{constructor(){super(...arguments),this.name="bullet_list",this.requires=["doc"],this.attributes={toc:{default:void 0},odtMarginLeft:{default:void 0}}}getNodeSpec(){return{content:"list_item+",group:"block",parseDOM:[{tag:"ul"}],toDOM(){return["ul",0]}}}getInputRules(e){return[wrappingInputRule(/^\s*([-+*])\s$/,e)]}getCommandFactories(e,n){return{toggleBulletList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-8":"toggleBulletList"}}}function splitListItem$1(r,e){const n=function(A,o){const{$from:s,$to:a,node:l}=A.selection;if(l&&l.isBlock||s.depth<2||!s.sameParent(a))return!1;const c=s.node(-1);if(c.type!=r)return!1;if(s.parent.content.size==0&&s.node(-1).childCount==s.indexAfter(-1)){if(s.depth==3||s.node(-3).type!=r||s.index(-2)!=s.node(-2).childCount-1)return!1;if(o){let u=Fragment.empty;const f=s.index(-1)?1:s.index(-2)?2:3;for(let B=s.depth-f;B>=s.depth-3;B--)u=Fragment.from(s.node(B).copy(u));let I=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3;u=u.append(Fragment.from(r.createAndFill()));let p=s.before(s.depth-(f-1)),m=A.tr.replace(p,s.after(-I),new Slice(u,4-f,0)),E=-1;m.doc.nodesBetween(p,m.doc.content.size,(B,Q)=>{if(E>-1)return!1;B.isTextblock&&B.content.size==0&&(E=Q+1)}),E>-1&&m.setSelection(Selection.near(m.doc.resolve(E))),o(m.scrollIntoView())}return!0}let g=a.pos==s.end()?c.contentMatchAt(0).defaultType:null,h=A.tr.delete(s.pos,a.pos),d=g?[null,{type:g}]:void 0;return canSplit(h.doc,s.pos,2,d)?(o&&o(h.split(s.pos,2,d).scrollIntoView()),!0):!1};return n.displayName=`splitListItem(${r.name})`,n}function liftListItem$1(r){return function(e,n){let{$from:A,$to:o}=e.selection,s=A.blockRange(o,a=>a.childCount>0&&a.firstChild.type==r);return s?n?A.node(s.depth-1).type==r?liftToOuterList$1(e,n,r,s):liftOutOfList$1(e,n,s):!0:!1}}function liftToOuterList$1(r,e,n,A){let o=r.tr,s=A.end,a=A.$to.end(A.depth);s<a&&(o.step(new ReplaceAroundStep(s-1,a,s,a,new Slice(Fragment.from(n.create(null,A.parent.copy())),1,0),1,!0)),A=new NodeRange(o.doc.resolve(A.$from.pos),o.doc.resolve(a),A.depth));const l=liftTarget(A);if(l==null)return!1;o.lift(A,l);let c=o.doc.resolve(o.mapping.map(s,-1)-1);return canJoin(o.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&o.join(c.pos),e(o.scrollIntoView()),!0}function liftOutOfList$1(r,e,n){let A=r.tr,o=n.parent;for(let f=n.end,I=n.endIndex-1,p=n.startIndex;I>p;I--)f-=o.child(I).nodeSize,A.delete(f-1,f+1);let s=A.doc.resolve(n.start),a=s.nodeAfter;if(A.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,c=n.endIndex==o.childCount,g=s.node(-1),h=s.index(-1);if(!g.canReplace(h+(l?0:1),h+1,a.content.append(c?Fragment.empty:Fragment.from(o))))return!1;let d=s.pos,u=d+a.nodeSize;return A.step(new ReplaceAroundStep(d-(l?1:0),u+(c?1:0),d+1,u-1,new Slice((l?Fragment.empty:Fragment.from(o.copy(Fragment.empty))).append(c?Fragment.empty:Fragment.from(o.copy(Fragment.empty))),l?0:1,c?0:1),l?0:1)),e(A.scrollIntoView()),!0}function sinkListItem$1(r){return function(e,n){const{$from:A,$to:o}=e.selection,s=A.blockRange(o,g=>g.childCount>0&&g.firstChild.type==r);if(!s)return!1;const a=s.startIndex;if(a==0)return!1;const l=s.parent,c=l.child(a-1);if(c.type!=r)return!1;if(n){const g=c.lastChild&&c.lastChild.type==l.type,h=Fragment.from(g?r.create():null),d=new Slice(Fragment.from(r.create(null,Fragment.from(l.type.create(null,h)))),g?3:1,0),u=s.start,f=s.end;n(e.tr.step(new ReplaceAroundStep(u-(g?3:1),f,u,f,d,1,!0)).scrollIntoView())}return!0}}class NodeListItem extends Node$1{constructor(){super(...arguments),this.name="list_item",this.requires=["doc"],this.attributes={value:{default:void 0},type:{default:void 0,fromDom(e){return e.hasAttribute("type")?e.getAttribute("type"):void 0},toDom(e){return e.attrs.type}}}}getNodeSpec(){return{content:"paragraph block*",parseDOM:[{tag:"li",getAttrs:e=>setHtmlAttributes(this,e)}],defining:!0,toDOM:e=>["li",getHtmlAttributes(this,e),0]}}getCommandFactories(e,n){return{splitListItem:()=>splitListItem$1(n),liftListItem:()=>liftListItem$1(n),sinkListItem:()=>sinkListItem$1(n)}}getKeyboardShortcuts(){return{Enter:"splitListItem",Tab:"sinkListItem","Shift-Tab":"liftListItem"}}}class NodeImage extends Node$1{constructor(){super(...arguments),this.name="image",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null},height:{default:null},origUrl:{default:void 0},mdTemplate:{default:void 0}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt"),width:e.getAttribute("width")||e.style.width||null,height:e.getAttribute("height")||e.style.height||null}}}],toDOM(e){const{src:n,alt:A,title:o,width:s,height:a}=e.attrs,l={src:n};return A&&(l.alt=A),o&&(l.title=o),s&&(l.width=s),a&&(l.height=a),["img",l]}}}getNodeView(e){return(n,A,o)=>{const s=document.createElement("span");s.className="kb-image-wrapper",s.contentEditable="false";const a=document.createElement("img");a.src=n.attrs.src,n.attrs.alt&&(a.alt=n.attrs.alt),n.attrs.title&&(a.title=n.attrs.title),n.attrs.width&&(a.style.width=typeof n.attrs.width=="number"?`${n.attrs.width}px`:n.attrs.width),n.attrs.height&&(a.style.height=typeof n.attrs.height=="number"?`${n.attrs.height}px`:n.attrs.height),a.draggable=!1,s.appendChild(a);const l=["nw","ne","sw","se"];for(const B of l){const Q=document.createElement("span");Q.className=`kb-image-resize-handle kb-image-resize-handle-${B}`,Q.dataset.position=B,s.appendChild(Q)}let c=!1,g=0,h=0,d=0,u=0,f=1,I=null;const p=B=>{const Q=B.target;if(!Q.classList.contains("kb-image-resize-handle"))return;B.preventDefault(),B.stopPropagation(),c=!0,I=Q.dataset.position||null,g=B.clientX,h=B.clientY;const S=a.getBoundingClientRect();d=S.width,u=S.height,f=d/u,s.classList.add("kb-image-resizing"),document.addEventListener("mousemove",m),document.addEventListener("mouseup",E)},m=B=>{if(!c)return;const Q=B.clientX-g,S=B.clientY-h;let w=d,y=u;switch(I){case"se":w=d+Q,y=B.shiftKey?u+S:w/f;break;case"sw":w=d-Q,y=B.shiftKey?u+S:w/f;break;case"ne":w=d+Q,y=B.shiftKey?u-S:w/f;break;case"nw":w=d-Q,y=B.shiftKey?u-S:w/f;break}w=Math.max(50,w),y=Math.max(50,y),a.style.width=`${Math.round(w)}px`,a.style.height=`${Math.round(y)}px`},E=()=>{if(!c)return;c=!1,I=null,s.classList.remove("kb-image-resizing"),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",E);const B=Math.round(a.getBoundingClientRect().width),Q=Math.round(a.getBoundingClientRect().height),S=o();if(typeof S=="number"){const w=A.state.tr.setNodeMarkup(S,void 0,{...n.attrs,width:`${B}px`,height:`${Q}px`});A.dispatch(w)}};return s.addEventListener("mousedown",p),s.addEventListener("click",B=>{B.preventDefault();const Q=o();if(typeof Q=="number"){const S=A.state.doc.resolve(Q),w=Selection.near(S);A.dispatch(A.state.tr.setSelection(w))}}),{dom:s,update:B=>B.type.name!=="image"?!1:(a.src=B.attrs.src,B.attrs.alt&&(a.alt=B.attrs.alt),B.attrs.title&&(a.title=B.attrs.title),B.attrs.width?a.style.width=typeof B.attrs.width=="number"?`${B.attrs.width}px`:B.attrs.width:a.style.width="",B.attrs.height?a.style.height=typeof B.attrs.height=="number"?`${B.attrs.height}px`:B.attrs.height:a.style.height="",!0),destroy:()=>{s.removeEventListener("mousedown",p),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",E)},stopEvent:B=>B.type==="mousedown"&&B.target.classList.contains("kb-image-resize-handle"),ignoreMutation:()=>!0}}}}class NodeVideo extends Node$1{constructor(){super(...arguments),this.name="video",this.requires=["doc"]}getNodeSpec(){return{attrs:{src:{},title:{default:null},controls:{default:!0},width:{default:null},height:{default:null}},group:"block",draggable:!0,parseDOM:[{tag:"video[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),controls:e.hasAttribute("controls"),width:e.getAttribute("width"),height:e.getAttribute("height")}}}],toDOM(e){const{src:n,title:A,controls:o,width:s,height:a}=e.attrs,l={src:n};return A&&(l.title=A),o&&(l.controls=""),s&&(l.width=s),a&&(l.height=a),["video",l]}}}}class NodeBlockquote extends Node$1{constructor(){super(...arguments),this.name="blockquote",this.requires=["doc"]}getNodeSpec(){return{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM(){return["blockquote",0]}}}getInputRules(e){return[wrappingInputRule(/^\s*>\s$/,e)]}getCommandFactories(e,n){return{toggleBlockquote:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Ctrl->":"toggleBlockquote"}}}class NodeAside extends Node$1{constructor(){super(...arguments),this.name="aside",this.requires=["doc"]}getNodeSpec(){return{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"aside"}],toDOM(){return["aside",0]}}}}const maxLevel=6;class NodeHeading extends Node$1{constructor(){super(...arguments),this.name="heading",this.requires=["doc"]}getNodeSpec(){return{attrs:{level:{default:1}},content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM(e){return["h"+e.attrs.level,0]}}}getInputRules(e){return[textblockTypeInputRule(new RegExp("^(#{1,"+maxLevel+"})\\s$"),e,n=>({level:n[1].length}))]}getCommandFactories(e,n){const A={};for(let o=1;o<=maxLevel;o++)A["setHeading"+o]=()=>e.commandFactories.setBlockType(n,{level:o});return A}getKeyboardShortcuts(){const e={};for(let n=1;n<=maxLevel;n++)e["Shift-Ctrl-"+n]="setHeading"+n;return e}}class NodeMath extends Node$1{constructor(){super(...arguments),this.name="math",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{lang:{default:"mathml"},content:{}},group:"inline",draggable:!0,parseDOM:[{tag:"math",getAttrs:e=>({lang:"mathml",content:new XMLSerializer().serializeToString(e)})}],toDOM(e){const A=new DOMParser().parseFromString(e.attrs.content,"application/xml");return A.getElementsByTagName("parsererror").length>0?["span",{class:"mathml-error"},"Invalid MathML"]:document.importNode(A.documentElement,!0)}}}}class NodeDefinitionList extends Node$1{constructor(){super(...arguments),this.name="dl",this.requires=["doc"]}getNodeSpec(){return{content:"dt+|dd+",group:"block",parseDOM:[{tag:"dl"}],toDOM(){return["dl",0]}}}getInputRules(e){return[]}getCommandFactories(e,n){return{toggleDefinitionList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{}}}class NodeDefinitionTerm extends Node$1{constructor(){super(...arguments),this.name="dt",this.requires=["dl"]}getNodeSpec(){return{content:"inline*",group:"block",parseDOM:[{tag:"dt"}],defining:!0,toDOM(){return["dt",0]}}}}class NodeDefinitionDesc extends Node$1{constructor(){super(...arguments),this.name="dd",this.requires=["dl"]}getNodeSpec(){return{content:"inline*",group:"block",parseDOM:[{tag:"dd"}],defining:!0,toDOM(){return["dd",0]}}}}class NodeFrontmatter extends Node$1{constructor(){super(...arguments),this.name="frontmatter",this.requires=["doc"]}getNodeSpec(){return{content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"pre"}],toDOM(){return["pre",0]}}}}class NodeTaskList extends Node$1{constructor(){super(...arguments),this.name="task_list",this.requires=["doc"]}getNodeSpec(){return{content:"task_item+",group:"block",parseDOM:[{tag:`ul[data-type="${this.name}"]`}],toDOM(){return["ul",{"data-type":this.name},0]}}}getCommandFactories(e,n){return{toggleTaskList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-9":"toggleTaskList"}}}function splitListItem(r,e){const n=function(A,o){const{$from:s,$to:a,node:l}=A.selection;if(l&&l.isBlock||s.depth<2||!s.sameParent(a))return!1;const c=s.node(-1);if(c.type!=r)return!1;if(s.parent.content.size==0&&s.node(-1).childCount==s.indexAfter(-1)){if(s.depth==3||s.node(-3).type!=r||s.index(-2)!=s.node(-2).childCount-1)return!1;if(o){let u=Fragment.empty;const f=s.index(-1)?1:s.index(-2)?2:3;for(let B=s.depth-f;B>=s.depth-3;B--)u=Fragment.from(s.node(B).copy(u));let I=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3;u=u.append(Fragment.from(r.createAndFill()));let p=s.before(s.depth-(f-1)),m=A.tr.replace(p,s.after(-I),new Slice(u,4-f,0)),E=-1;m.doc.nodesBetween(p,m.doc.content.size,(B,Q)=>{if(E>-1)return!1;B.isTextblock&&B.content.size==0&&(E=Q+1)}),E>-1&&m.setSelection(Selection.near(m.doc.resolve(E))),o(m.scrollIntoView())}return!0}let g=a.pos==s.end()?c.contentMatchAt(0).defaultType:null,h=A.tr.delete(s.pos,a.pos),d=g?[null,{type:g}]:void 0;return canSplit(h.doc,s.pos,2,d)?(o&&o(h.split(s.pos,2,d).scrollIntoView()),!0):!1};return n.displayName=`splitListItem(${r.name})`,n}function liftListItem(r){return function(e,n){let{$from:A,$to:o}=e.selection,s=A.blockRange(o,a=>a.childCount>0&&a.firstChild.type==r);return s?n?A.node(s.depth-1).type==r?liftToOuterList(e,n,r,s):liftOutOfList(e,n,s):!0:!1}}function liftToOuterList(r,e,n,A){let o=r.tr,s=A.end,a=A.$to.end(A.depth);s<a&&(o.step(new ReplaceAroundStep(s-1,a,s,a,new Slice(Fragment.from(n.create(null,A.parent.copy())),1,0),1,!0)),A=new NodeRange(o.doc.resolve(A.$from.pos),o.doc.resolve(a),A.depth));const l=liftTarget(A);if(l==null)return!1;o.lift(A,l);let c=o.doc.resolve(o.mapping.map(s,-1)-1);return canJoin(o.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&o.join(c.pos),e(o.scrollIntoView()),!0}function liftOutOfList(r,e,n){let A=r.tr,o=n.parent;for(let f=n.end,I=n.endIndex-1,p=n.startIndex;I>p;I--)f-=o.child(I).nodeSize,A.delete(f-1,f+1);let s=A.doc.resolve(n.start),a=s.nodeAfter;if(A.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,c=n.endIndex==o.childCount,g=s.node(-1),h=s.index(-1);if(!g.canReplace(h+(l?0:1),h+1,a.content.append(c?Fragment.empty:Fragment.from(o))))return!1;let d=s.pos,u=d+a.nodeSize;return A.step(new ReplaceAroundStep(d-(l?1:0),u+(c?1:0),d+1,u-1,new Slice((l?Fragment.empty:Fragment.from(o.copy(Fragment.empty))).append(c?Fragment.empty:Fragment.from(o.copy(Fragment.empty))),l?0:1,c?0:1),l?0:1)),e(A.scrollIntoView()),!0}function sinkListItem(r){return function(e,n){const{$from:A,$to:o}=e.selection,s=A.blockRange(o,g=>g.childCount>0&&g.firstChild.type==r);if(!s)return!1;const a=s.startIndex;if(a==0)return!1;const l=s.parent,c=l.child(a-1);if(c.type!=r)return!1;if(n){const g=c.lastChild&&c.lastChild.type==l.type,h=Fragment.from(g?r.create():null),d=new Slice(Fragment.from(r.create(null,Fragment.from(l.type.create(null,h)))),g?3:1,0),u=s.start,f=s.end;n(e.tr.step(new ReplaceAroundStep(u-(g?3:1),f,u,f,d,1,!0)).scrollIntoView())}return!0}}const inputRegex=/^\s*(\[([( |x])?\])\s$/;class NodeTaskItem extends Node$1{constructor(e={}){super(e),this.config=e,this.name="task_item",this.requires=["doc"]}getNodeSpec(){return{attrs:{checked:{default:!1}},content:this.config.nested?"paragraph block*":"paragraph+",parseDOM:[{tag:"li[data-checked]",getAttrs(e){return{checked:e.getAttribute("data-checked")==="true"}}}],defining:!0,toDOM(e){return["li",{"data-type":this.name,"data-checked":e.attrs.checked},["label",["input",{type:"checkbox",checked:e.attrs.checked?"checked":null}],["span"]],["div",0]]}}}getCommandFactories(e,n){return{splitListItem:()=>splitListItem(n),liftListItem:()=>liftListItem(n),sinkListItem:()=>sinkListItem(n)}}getNodeView(e){return(n,A,o)=>{const s=document.createElement("li"),a=document.createElement("label"),l=document.createElement("span"),c=document.createElement("input"),g=document.createElement("div");return s.style.display="flex",s.style.alignItems="flex-start",s.style.gap="0.5em",a.style.flexShrink="0",a.style.marginTop="0.25em",g.style.flex="1",a.contentEditable="false",c.type="checkbox",c.addEventListener("mousedown",h=>h.preventDefault()),c.addEventListener("change",h=>{const{checked:d}=h.target;typeof o=="function"&&e.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:u})=>{const f=o();if(typeof f!="number")return!1;const I=u.doc.nodeAt(f);return u.setNodeMarkup(f,void 0,{...I?.attrs,checked:d}),!0}).run()}),s.dataset.checked=n.attrs.checked,c.checked=n.attrs.checked,a.append(c,l),s.append(a,g),{dom:s,contentDOM:g,update:h=>h.type.name!==this.type?!1:(s.dataset.checked=h.attrs.checked,c.checked=h.attrs.checked,!0)}}}getKeyboardShortcuts(){return{Enter:"splitListItem",Tab:"sinkListItem","Shift-Tab":"liftListItem"}}getInputRules(e){return[wrappingInputRule(inputRegex,e,n=>({checked:n[n.length-1]==="x"}))]}}function fixCharacters$1(r){return r.replace(/’/g,"'").replace(/“/g,'"').replace(/”/g,'"').replace(/\x0b/g," ").replace(/\u201d/g,'"').replace(/\u201c/g,'"')}function replaceAllNodesOfType(r,e,n,A){const o=[];e.descendants((s,a)=>{s.type===n&&o.push({node:s,pos:a})});for(let s=o.length-1;s>=0;s--){const{node:a,pos:l}=o[s],c=A(a,r.doc.type.schema);r=r.replaceWith(l,l+a.nodeSize,c)}return r}class NodeInlineShortCode extends Node$1{constructor(){super(...arguments),this.name="shortcode_inline",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!0,atom:!0,attrs:{id:{default:void 0},content:{default:""},nesting:{default:NESTING_SELF_CLOSING$1},error:{default:""}},parseDOM:[{tag:"span.kb-shortcode-inline",getAttrs:e=>({content:e.textContent||null})}],toDOM(e){return["span",{class:"kb-shortcode-inline"},e.attrs.content||""]}}}getInputRules(e){return[replaceInlineNode(/\{\{[^}]+\}\}/,e,n=>({content:fixCharacters$1(n[0].substring(2,n[0].length-2))}))]}getCommandFactories(e,n){return{renderShortCode:A=>(o,s)=>{let a=o.tr;return a=replaceAllNodesOfType(a,o.doc,n,A),a.docChanged&&s&&s(a),!0}}}}class NodeIframe extends Node$1{constructor(){super(...arguments),this.name="iframe",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{src:{},class:{default:null},alt:{default:null},title:{default:null}},group:"inline",draggable:!0,parseDOM:[{tag:"iframe[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt")}}}],toDOM(e){const{src:n,alt:A,title:o}=e.attrs;return["iframe",{src:n,alt:A,title:o,class:e.attrs.class}]}}}}function collectCommentAnchors(r){const e=new Map,n=new Map;return r.descendants((A,o)=>{A.type.name==="comment"&&(A.attrs.nesting===NESTING_OPENING$1&&e.set(A.attrs.id,o),A.attrs.nesting===NESTING_CLOSING$1&&n.set(A.attrs.id,o))}),{starts:e,ends:n}}function buildCommentRanges(r){const{starts:e,ends:n}=collectCommentAnchors(r),A=[];for(const[o,s]of e){const a=n.get(o);!a||a<=s||A.push({id:o,from:s+1,to:a})}return A}function buildDecorations(r){const e=buildCommentRanges(r);return DecorationSet.create(r,e.map(({id:n,from:A,to:o})=>Decoration$1.inline(A,o,{class:"comment-highlight","data-comment-id":n})))}function commentsPlugin(){return new Plugin({state:{init(r,{doc:e}){return buildDecorations(e)},apply(r,e,n,A){return r.docChanged?buildDecorations(A.doc):e}},props:{decorations(r){return this.getState(r)}}})}const addCommentBoundary=r=>(e,n)=>{const{schema:A,selection:o}=e,{from:s,to:a}=o,l=A.nodes.comment;if(!l)return!1;const c=l.create({id:r,nesting:NESTING_OPENING$1}),g=l.create({id:r,nesting:NESTING_CLOSING$1}),h=e.tr;return h.insert(a,g),h.insert(s,c),n&&n(h),!0};class NodeCommentAnchor extends Node$1{constructor(){super(...arguments),this.name="comment",this.requires=["doc"],this.options={keepMarks:!0}}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,atom:!0,attrs:{id:{},active:{default:!1},nesting:{default:NESTING_OPENING$1}},parseDOM:[{tag:"span[data-comment-id]",getAttrs(e){return{id:e.getAttribute("data-comment-id"),nesting:parseInt(e.getAttribute("data-nesting")||"1"),active:e.hasAttribute("data-active")}}}],toDOM:e=>["span",{"data-comment-id":e.attrs.id,"data-active":e.attrs.active?"true":void 0,"data-nesting":e.attrs.nesting}]}}getCommandFactories(e,n){return{addComment:(A,o)=>addCommentBoundary(A)}}getProseMirrorPlugins(){return[commentsPlugin()]}}class BasicEditorKit{getExtensions(){return[new ExtensionBaseKeymap,new ExtensionDropcursor,new ExtensionGapcursor,new ExtensionHtml,new ExtensionMediaUpload,new ExtensionRemoteSelection,new ExtensionSelection,new ExtensionTextAlign,new ExtensionPairing,new NodeDocument,new NodeText,new NodeParagraph,new NodeHardBreak,new NodeSoftBreak,new NodeCodeBlock$1,new NodeBookmark,new NodeHorizontalRule,new NodeOrderedList,new NodeBulletList,new NodeListItem,new NodeTaskList,new NodeTaskItem,new NodeDefinitionList,new NodeDefinitionTerm,new NodeDefinitionDesc,new NodeTaskList,new NodeTaskItem,new NodeFrontmatter,new NodeImage,new NodeVideo,new NodeBlockquote,new NodeAside,new NodeHeading,new NodeMath,new NodeInlineShortCode,new NodeIframe,new NodeCommentAnchor,new MarkLink,new MarkItalic,new MarkStrong,new MarkUnderline,new MarkStrike,new MarkCode,new MarkChange,new MarkBookmark,new MarkTextColor,new MarkHighlight,new MarkSuperscript,new MarkSubscript]}}const kit=new BasicEditorKit;class ExtensionBasicEditor extends Extension{constructor(){super(...arguments),this.name="basic-editor",this.requires=kit.getExtensions()}}class NodeCodeBlock extends Node$1{name="code_block";getNodeSpec(){return{content:"text*",marks:"",group:"block",code:!0,defining:!0,attrs:{lang:{default:void 0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs(e){return{lang:e.getAttribute("lang")}}}],toDOM(e){const{lang:n}=e.attrs;return["pre",{lang:n},["code",0]]}}}getInputRules(e){return[textblockTypeInputRule(/^```$/,e)]}}const basicNormalize=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r;class SearchCursor{constructor(e,n,A=0,o=e.length,s,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(A,o),this.bufferStart=A,this.normalize=s?l=>s(basicNormalize(l)):basicNormalize,this.query=this.normalize(n)}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 codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=fromCodePoint(e),A=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let o=this.normalize(n);if(o.length)for(let s=0,a=A;;s++){let l=o.charCodeAt(s),c=this.match(l,a,this.bufferPos+this.bufferStart);if(s==o.length-1){if(c)return this.value=c,this;break}a==A&&s<n.length&&n.charCodeAt(s)==l&&a++}}}match(e,n,A){let o=null;for(let s=0;s<this.matches.length;s+=2){let a=this.matches[s],l=!1;this.query.charCodeAt(a)==e&&(a==this.query.length-1?o={from:this.matches[s+1],to:A}:(this.matches[s]++,l=!0)),l||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:n,to:A}:this.matches.push(1,n)),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null),o}}typeof Symbol<"u"&&(SearchCursor.prototype[Symbol.iterator]=function(){return this});const selectWord=({state:r,dispatch:e})=>{let{selection:n}=r,A=EditorSelection.create(n.ranges.map(o=>r.wordAt(o.head)||EditorSelection.cursor(o.head)),n.mainIndex);return A.eq(n)?!1:(e(r.update({selection:A})),!0)};function findNextOccurrence(r,e){let{main:n,ranges:A}=r.selection,o=r.wordAt(n.head),s=o&&o.from==n.from&&o.to==n.to;for(let a=!1,l=new SearchCursor(r.doc,e,A[A.length-1].to);;)if(l.next(),l.done){if(a)return null;l=new SearchCursor(r.doc,e,0,Math.max(0,A[A.length-1].from-1)),a=!0}else{if(a&&A.some(c=>c.from==l.value.from))continue;if(s){let c=r.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const selectNextOccurrence=({state:r,dispatch:e})=>{let{ranges:n}=r.selection;if(n.some(s=>s.from===s.to))return selectWord({state:r,dispatch:e});let A=r.sliceDoc(n[0].from,n[0].to);if(r.selection.ranges.some(s=>r.sliceDoc(s.from,s.to)!=A))return!1;let o=findNextOccurrence(r,A);return o?(e(r.update({selection:r.selection.addRange(EditorSelection.range(o.from,o.to),!1),effects:EditorView.scrollIntoView(o.to)})),!0):!1};class CompletionContext{constructor(e,n,A,o){this.state=e,this.pos=n,this.explicit=A,this.view=o,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=syntaxTree(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),A=Math.max(n.from,this.pos-250),o=n.text.slice(A-n.from,this.pos-n.from),s=o.search(ensureAnchor(e,!1));return s<0?null:{from:A+s,to:this.pos,text:o.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,A){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),A&&A.onDocChange&&(this.abortOnDocChange=!0))}}function toSet(r){let e=Object.keys(r).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(r){let e=Object.create(null),n=Object.create(null);for(let{label:o}of r){e[o[0]]=!0;for(let s=1;s<o.length;s++)n[o[s]]=!0}let A=toSet(e)+toSet(n)+"*$";return[new RegExp("^"+A),new RegExp(A)]}function completeFromList(r){let e=r.map(o=>typeof o=="string"?{label:o}:o),[n,A]=e.every(o=>/^\w+$/.test(o.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return o=>{let s=o.matchBefore(A);return s||o.explicit?{from:s?s.from:o.pos,options:e,validFor:n}:null}}function ifNotIn(r,e){return n=>{for(let A=syntaxTree(n.state).resolveInner(n.pos,-1);A;A=A.parent){if(r.indexOf(A.name)>-1)return null;if(A.type.isTop)break}return e(n)}}class Option{constructor(e,n,A,o){this.completion=e,this.source=n,this.match=A,this.score=o}}function cur(r){return r.selection.main.from}function ensureAnchor(r,e){var n;let{source:A}=r,o=e&&A[0]!="^",s=A[A.length-1]!="$";return!o&&!s?r:new RegExp(`${o?"^":""}(?:${A})${s?"$":""}`,(n=r.flags)!==null&&n!==void 0?n:r.ignoreCase?"i":"")}const pickedCompletion=Annotation.define();function insertCompletionText(r,e,n,A){let{main:o}=r.selection,s=n-o.from,a=A-o.from;return Object.assign(Object.assign({},r.changeByRange(l=>{if(l!=o&&n!=A&&r.sliceDoc(l.from+s,l.from+a)!=r.sliceDoc(n,A))return{range:l};let c=r.toText(e);return{changes:{from:l.from+s,to:A==o.from?l.to:l.from+a,insert:c},range:EditorSelection.cursor(l.from+s+c.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}const SourceCache=new WeakMap;function asSource(r){if(!Array.isArray(r))return r;let e=SourceCache.get(r);return e||SourceCache.set(r,e=completeFromList(r)),e}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define();class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n<e.length;){let A=codePointAt(e,n),o=codePointSize(A);this.chars.push(A);let s=e.slice(n,n+o),a=s.toUpperCase();this.folded.push(codePointAt(a==s?s.toLowerCase():a,0)),n+=o}this.astral=e.length!=this.chars.length}ret(e,n){return this.score=e,this.matched=n,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:n,folded:A,any:o,precise:s,byWord:a}=this;if(n.length==1){let B=codePointAt(e,0),Q=codePointSize(B),S=Q==e.length?0:-100;if(B!=n[0])if(B==A[0])S+=-200;else return null;return this.ret(S,[0,Q])}let l=e.indexOf(this.pattern);if(l==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let c=n.length,g=0;if(l<0){for(let B=0,Q=Math.min(e.length,200);B<Q&&g<c;){let S=codePointAt(e,B);(S==n[g]||S==A[g])&&(o[g++]=B),B+=codePointSize(S)}if(g<c)return null}let h=0,d=0,u=!1,f=0,I=-1,p=-1,m=/[a-z]/.test(e),E=!0;for(let B=0,Q=Math.min(e.length,200),S=0;B<Q&&d<c;){let w=codePointAt(e,B);l<0&&(h<c&&w==n[h]&&(s[h++]=B),f<c&&(w==n[f]||w==A[f]?(f==0&&(I=B),p=B+1,f++):f=0));let y,D=w<255?w>=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(y=fromCodePoint(w))!=y.toLowerCase()?1:y!=y.toUpperCase()?2:0;(!B||D==1&&m||S==0&&D!=0)&&(n[d]==w||A[d]==w&&(u=!0)?a[d++]=B:a.length&&(E=!1)),S=D,B+=codePointSize(w)}return d==c&&a[0]==0&&E?this.result(-100+(u?-200:0),a,e):f==c&&I==0?this.ret(-200-e.length+(p==e.length?0:-100),[0,p]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):f==c?this.ret(-900-e.length,[I,p]):d==c?this.result(-100+(u?-200:0)+-700+(E?0:-1100),a,e):n.length==2?null:this.result((o[0]?-700:0)+-200+-1100,o,e)}result(e,n,A){let o=[],s=0;for(let a of n){let l=a+(this.astral?codePointSize(codePointAt(A,a)):1);s&&o[s-1]==a?o[s-1]=l:(o[s++]=a,o[s++]=l)}return this.ret(e-A.length,o)}}class StrictMatcher{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let n=e.slice(0,this.pattern.length),A=n==this.pattern?0:n.toLowerCase()==this.folded?-200:null;return A==null?null:(this.matched=[0,n.length],this.score=A+(e.length==this.pattern.length?0:-100),this)}}const completionConfig$1=Facet.define({combine(r){return combineConfig(r,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:defaultPositionInfo,filterStrict:!1,compareCompletions:(e,n)=>e.label.localeCompare(n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>A=>joinClass(e(A),n(A)),optionClass:(e,n)=>A=>joinClass(e(A),n(A)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function joinClass(r,e){return r?e?r+" "+e:r:e}function defaultPositionInfo(r,e,n,A,o,s){let a=r.textDirection==Direction.RTL,l=a,c=!1,g="top",h,d,u=e.left-o.left,f=o.right-e.right,I=A.right-A.left,p=A.bottom-A.top;if(l&&u<Math.min(I,f)?l=!1:!l&&f<Math.min(I,u)&&(l=!0),I<=(l?u:f))h=Math.max(o.top,Math.min(n.top,o.bottom-p))-e.top,d=Math.min(400,l?u:f);else{c=!0,d=Math.min(400,(a?e.right:o.right-e.left)-30);let B=o.bottom-e.bottom;B>=p||B>e.top?h=n.bottom-e.top:(g="bottom",h=e.bottom-n.top)}let m=(e.bottom-e.top)/s.offsetHeight,E=(e.right-e.left)/s.offsetWidth;return{style:`${g}: ${h/m}px; max-width: ${d/E}px`,class:"cm-completionInfo-"+(c?a?"left-narrow":"right-narrow":l?"left":"right")}}function optionContent(r){let e=r.addToOptions.slice();return r.icons&&e.push({render(n){let A=document.createElement("div");return A.classList.add("cm-completionIcon"),n.type&&A.classList.add(...n.type.split(/\s+/g).map(o=>"cm-completionIcon-"+o)),A.setAttribute("aria-hidden","true"),A},position:20}),e.push({render(n,A,o,s){let a=document.createElement("span");a.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let g=0;g<s.length;){let h=s[g++],d=s[g++];h>c&&a.appendChild(document.createTextNode(l.slice(c,h)));let u=a.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(l.slice(h,d))),u.className="cm-completionMatchedText",c=d}return c<l.length&&a.appendChild(document.createTextNode(l.slice(c))),a},position:50},{render(n){if(!n.detail)return null;let A=document.createElement("span");return A.className="cm-completionDetail",A.textContent=n.detail,A},position:80}),e.sort((n,A)=>n.position-A.position).map(n=>n.render)}function rangeAroundSelected(r,e,n){if(r<=n)return{from:0,to:r};if(e<0&&(e=0),e<=r>>1){let o=Math.floor(e/n);return{from:o*n,to:(o+1)*n}}let A=Math.floor((r-e)/n);return{from:r-(A+1)*n,to:r-A*n}}class CompletionTooltip{constructor(e,n,A){this.view=e,this.stateField=n,this.applyCompletion=A,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let o=e.state.field(n),{options:s,selected:a}=o.open,l=e.state.facet(completionConfig$1);this.optionContent=optionContent(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=rangeAroundSelected(s.length,a,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:g}=e.state.field(n).open;for(let h=c.target,d;h&&h!=this.dom;h=h.parentNode)if(h.nodeName=="LI"&&(d=/-(\d+)$/.exec(h.id))&&+d[1]<g.length){this.applyCompletion(e,g[+d[1]]),c.preventDefault();return}}),this.dom.addEventListener("focusout",c=>{let g=e.state.field(this.stateField,!1);g&&g.tooltip&&e.state.facet(completionConfig$1).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:closeCompletionEffect.of(null)})}),this.showOptions(s,o.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let A=e.state.field(this.stateField),o=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),A!=o){let{options:s,selected:a,disabled:l}=A.open;(!o.open||o.open.options!=s)&&(this.range=rangeAroundSelected(s.length,a,e.state.facet(completionConfig$1).maxRenderedOptions),this.showOptions(s,A.id)),this.updateSel(),l!=((n=o.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let A of this.currentClass.split(" "))A&&this.dom.classList.remove(A);for(let A of n.split(" "))A&&this.dom.classList.add(A);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;if((n.selected>-1&&n.selected<this.range.from||n.selected>=this.range.to)&&(this.range=rangeAroundSelected(n.options.length,n.selected,this.view.state.facet(completionConfig$1).maxRenderedOptions),this.showOptions(n.options,e.id)),this.updateSelectedOption(n.selected)){this.destroyInfo();let{completion:A}=n.options[n.selected],{info:o}=A;if(!o)return;let s=typeof o=="string"?document.createTextNode(o):o(A);if(!s)return;"then"in s?s.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,A)}).catch(a=>logException(this.view.state,a,"completion info")):this.addInfoPane(s,A)}}addInfoPane(e,n){this.destroyInfo();let A=this.info=document.createElement("div");if(A.className="cm-tooltip cm-completionInfo",e.nodeType!=null)A.appendChild(e),this.infoDestroy=null;else{let{dom:o,destroy:s}=e;A.appendChild(o),this.infoDestroy=s||null}this.dom.appendChild(A),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let A=this.list.firstChild,o=this.range.from;A;A=A.nextSibling,o++)A.nodeName!="LI"||!A.id?o--:o==e?A.hasAttribute("aria-selected")||(A.setAttribute("aria-selected","true"),n=A):A.hasAttribute("aria-selected")&&A.removeAttribute("aria-selected");return n&&scrollIntoView(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),A=this.info.getBoundingClientRect(),o=e.getBoundingClientRect(),s=this.space;if(!s){let a=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:a.clientWidth,bottom:a.clientHeight}}return o.top>Math.min(s.bottom,n.bottom)-10||o.bottom<Math.max(s.top,n.top)+10?null:this.view.state.facet(completionConfig$1).positionInfo(this.view,n,o,A,s,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,n,A){const o=document.createElement("ul");o.id=n,o.setAttribute("role","listbox"),o.setAttribute("aria-expanded","true"),o.setAttribute("aria-label",this.view.state.phrase("Completions")),o.addEventListener("mousedown",a=>{a.target==o&&a.preventDefault()});let s=null;for(let a=A.from;a<A.to;a++){let{completion:l,match:c}=e[a],{section:g}=l;if(g){let u=typeof g=="string"?g:g.name;if(u!=s&&(a>A.from||A.from==0))if(s=u,typeof g!="string"&&g.header)o.appendChild(g.header(g));else{let f=o.appendChild(document.createElement("completion-section"));f.textContent=u}}const h=o.appendChild(document.createElement("li"));h.id=n+"-"+a,h.setAttribute("role","option");let d=this.optionClass(l);d&&(h.className=d);for(let u of this.optionContent){let f=u(l,this.view.state,this.view,c);f&&h.appendChild(f)}}return A.from&&o.classList.add("cm-completionListIncompleteTop"),A.to<e.length&&o.classList.add("cm-completionListIncompleteBottom"),o}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function completionTooltip(r,e){return n=>new CompletionTooltip(n,r,e)}function scrollIntoView(r,e){let n=r.getBoundingClientRect(),A=e.getBoundingClientRect(),o=n.height/r.offsetHeight;A.top<n.top?r.scrollTop-=(n.top-A.top)/o:A.bottom>n.bottom&&(r.scrollTop+=(A.bottom-n.bottom)/o)}function score(r){return(r.boost||0)*100+(r.apply?10:0)+(r.info?5:0)+(r.type?1:0)}function sortOptions(r,e){let n=[],A=null,o=g=>{n.push(g);let{section:h}=g.completion;if(h){A||(A=[]);let d=typeof h=="string"?h:h.name;A.some(u=>u.name==d)||A.push(typeof h=="string"?{name:d}:h)}},s=e.facet(completionConfig$1);for(let g of r)if(g.hasResult()){let h=g.result.getMatch;if(g.result.filter===!1)for(let d of g.result.options)o(new Option(d,g.source,h?h(d):[],1e9-n.length));else{let d=e.sliceDoc(g.from,g.to),u,f=s.filterStrict?new StrictMatcher(d):new FuzzyMatcher(d);for(let I of g.result.options)if(u=f.match(I.label)){let p=I.displayLabel?h?h(I,u.matched):[]:u.matched;o(new Option(I,g.source,p,u.score+(I.boost||0)))}}}if(A){let g=Object.create(null),h=0,d=(u,f)=>{var I,p;return((I=u.rank)!==null&&I!==void 0?I:1e9)-((p=f.rank)!==null&&p!==void 0?p:1e9)||(u.name<f.name?-1:1)};for(let u of A.sort(d))h-=1e5,g[u.name]=h;for(let u of n){let{section:f}=u.completion;f&&(u.score+=g[typeof f=="string"?f:f.name])}}let a=[],l=null,c=s.compareCompletions;for(let g of n.sort((h,d)=>d.score-h.score||c(h.completion,d.completion))){let h=g.completion;!l||l.label!=h.label||l.detail!=h.detail||l.type!=null&&h.type!=null&&l.type!=h.type||l.apply!=h.apply||l.boost!=h.boost?a.push(g):score(g.completion)>score(l)&&(a[a.length-1]=g),l=g.completion}return a}class CompletionDialog{constructor(e,n,A,o,s,a){this.options=e,this.attrs=n,this.tooltip=A,this.timestamp=o,this.selected=s,this.disabled=a}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,A,o,s,a){if(o&&!a&&e.some(g=>g.isPending))return o.setDisabled();let l=sortOptions(e,n);if(!l.length)return o&&e.some(g=>g.isPending)?o.setDisabled():null;let c=n.facet(completionConfig$1).selectOnOpen?0:-1;if(o&&o.selected!=c&&o.selected!=-1){let g=o.options[o.selected].completion;for(let h=0;h<l.length;h++)if(l[h].completion==g){c=h;break}}return new CompletionDialog(l,makeAttrs(A,c),{pos:e.reduce((g,h)=>h.hasResult()?Math.min(g,h.from):g,1e8),create:createTooltip,above:s.aboveCursor},o?o.timestamp:Date.now(),c,!1)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new CompletionDialog(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class CompletionState{constructor(e,n,A){this.active=e,this.id=n,this.open=A}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,A=n.facet(completionConfig$1),s=(A.override||n.languageDataAt("autocomplete",cur(n)).map(asSource)).map(c=>(this.active.find(h=>h.source==c)||new ActiveSource(c,this.active.some(h=>h.state!=0)?1:0)).update(e,A));s.length==this.active.length&&s.every((c,g)=>c==this.active[g])&&(s=this.active);let a=this.open,l=e.effects.some(c=>c.is(setActiveEffect));a&&e.docChanged&&(a=a.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!sameResults(s,this.active)||l?a=CompletionDialog.build(s,n,this.id,a,A,l):a&&a.disabled&&!s.some(c=>c.isPending)&&(a=null),!a&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new ActiveSource(c.source,0):c));for(let c of e.effects)c.is(setSelectedEffect)&&(a=a&&a.setSelected(c.value,this.id));return s==this.active&&a==this.open?this:new CompletionState(s,this.id,a)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?baseAttrs:noAttrs}}function sameResults(r,e){if(r==e)return!0;for(let n=0,A=0;;){for(;n<r.length&&!r[n].hasResult();)n++;for(;A<e.length&&!e[A].hasResult();)A++;let o=n==r.length,s=A==e.length;if(o||s)return o==s;if(r[n++].result!=e[A++].result)return!1}}const baseAttrs={"aria-autocomplete":"list"},noAttrs={};function makeAttrs(r,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":r};return e>-1&&(n["aria-activedescendant"]=r+"-"+e),n}const none=[];function getUpdateType(r,e){if(r.isUserEvent("input.complete")){let A=r.annotation(pickedCompletion);if(A&&e.activateOnCompletion(A))return 12}let n=r.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:r.isUserEvent("delete.backward")?2:r.selection?8:r.docChanged?16:0}class ActiveSource{constructor(e,n,A=!1){this.source=e,this.state=n,this.explicit=A}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let A=getUpdateType(e,n),o=this;(A&8||A&16&&this.touches(e))&&(o=new ActiveSource(o.source,0)),A&4&&o.state==0&&(o=new ActiveSource(this.source,1)),o=o.updateFor(e,A);for(let s of e.effects)if(s.is(startCompletionEffect))o=new ActiveSource(o.source,1,s.value);else if(s.is(closeCompletionEffect))o=new ActiveSource(o.source,0);else if(s.is(setActiveEffect))for(let a of s.value)a.source==o.source&&(o=a);return o}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(cur(e.state))}}class ActiveResult extends ActiveSource{constructor(e,n,A,o,s,a){super(e,3,n),this.limit=A,this.result=o,this.from=s,this.to=a}hasResult(){return!0}updateFor(e,n){var A;if(!(n&3))return this.map(e.changes);let o=this.result;o.map&&!e.changes.empty&&(o=o.map(o,e.changes));let s=e.changes.mapPos(this.from),a=e.changes.mapPos(this.to,1),l=cur(e.state);if(l>a||!o||n&2&&(cur(e.startState)==this.from||l<this.limit))return new ActiveSource(this.source,n&4?1:0);let c=e.changes.mapPos(this.limit);return checkValid(o.validFor,e.state,s,a)?new ActiveResult(this.source,this.explicit,c,o,s,a):o.update&&(o=o.update(o,s,a,new CompletionContext(e.state,l,!1)))?new ActiveResult(this.source,this.explicit,c,o,o.from,(A=o.to)!==null&&A!==void 0?A:cur(e.state)):new ActiveSource(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new ActiveResult(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new ActiveSource(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function checkValid(r,e,n,A){if(!r)return!1;let o=e.sliceDoc(n,A);return typeof r=="function"?r(o,n,A,e):ensureAnchor(r,!0).test(o)}const setActiveEffect=StateEffect.define({map(r,e){return r.map(n=>n.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(r,e){return r.update(e)},provide:r=>[showTooltip.from(r,e=>e.tooltip),EditorView.contentAttributes.from(r,e=>e.attrs)]});function applyCompletion(r,e){const n=e.completion.apply||e.completion.label;let A=r.state.field(completionState).active.find(o=>o.source==e.source);return A instanceof ActiveResult?(typeof n=="string"?r.dispatch(Object.assign(Object.assign({},insertCompletionText(r.state,n,A.from,A.to)),{annotations:pickedCompletion.of(e.completion)})):n(r,e.completion,A.from,A.to),!0):!1}const createTooltip=completionTooltip(completionState,applyCompletion);function moveCompletionSelection(r,e="option"){return n=>{let A=n.state.field(completionState,!1);if(!A||!A.open||A.open.disabled||Date.now()-A.open.timestamp<n.state.facet(completionConfig$1).interactionDelay)return!1;let o=1,s;e=="page"&&(s=getTooltip(n,A.open.tooltip))&&(o=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:a}=A.open.options,l=A.open.selected>-1?A.open.selected+o*(r?1:-1):r?0:a-1;return l<0?l=e=="page"?0:a-1:l>=a&&(l=e=="page"?a-1:0),n.dispatch({effects:setSelectedEffect.of(l)}),!0}}const acceptCompletion=r=>{let e=r.state.field(completionState,!1);return r.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<r.state.facet(completionConfig$1).interactionDelay?!1:applyCompletion(r,e.open.options[e.open.selected])},startCompletion=r=>r.state.field(completionState,!1)?(r.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=r=>{let e=r.state.field(completionState,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(r.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of r.state.field(completionState).active)e.isPending&&this.startQuery(e)}update(r){let e=r.state.field(completionState),n=r.state.facet(completionConfig$1);if(!r.selectionSet&&!r.docChanged&&r.startState.field(completionState)==e)return;let A=r.transactions.some(s=>{let a=getUpdateType(s,n);return a&8||(s.selection||s.docChanged)&&!(a&3)});for(let s=0;s<this.running.length;s++){let a=this.running[s];if(A||a.context.abortOnDocChange&&r.docChanged||a.updates.length+r.transactions.length>MaxUpdateCount&&Date.now()-a.time>MinAbortTime){for(let l of a.context.abortListeners)try{l()}catch(c){logException(this.view.state,c)}a.context.abortListeners=null,this.running.splice(s--,1)}else a.updates.push(...r.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),r.transactions.some(s=>s.effects.some(a=>a.is(startCompletionEffect)))&&(this.pendingStart=!0);let o=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(a=>a.active.source==s.source))?setTimeout(()=>this.startUpdate(),o):-1,this.composing!=0)for(let s of r.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:r}=this.view,e=r.field(completionState);for(let n of e.active)n.isPending&&!this.running.some(A=>A.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig$1).updateSyncTime))}startQuery(r){let{state:e}=this.view,n=cur(e),A=new CompletionContext(e,n,r.explicit,this.view),o=new RunningQuery(r,A);this.running.push(o),Promise.resolve(r.source(A)).then(s=>{o.context.aborted||(o.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,s)})}scheduleAccept(){this.running.every(r=>r.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig$1).updateSyncTime))}accept(){var r;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(completionConfig$1),A=this.view.state.field(completionState);for(let o=0;o<this.running.length;o++){let s=this.running[o];if(s.done===void 0)continue;if(this.running.splice(o--,1),s.done){let l=cur(s.updates.length?s.updates[0].startState:this.view.state),c=Math.min(l,s.done.from+(s.active.explicit?0:1)),g=new ActiveResult(s.active.source,s.active.explicit,c,s.done,s.done.from,(r=s.done.to)!==null&&r!==void 0?r:l);for(let h of s.updates)g=g.update(h,n);if(g.hasResult()){e.push(g);continue}}let a=A.active.find(l=>l.source==s.active.source);if(a&&a.isPending)if(s.done==null){let l=new ActiveSource(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(a)}(e.length||A.open&&A.open.disabled)&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(r){let e=this.view.state.field(completionState,!1);if(e&&e.tooltip&&this.view.state.facet(completionConfig$1).closeOnBlur){let n=e.open&&getTooltip(this.view,e.open.tooltip);(!n||!n.dom.contains(r.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:closeCompletionEffect.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),windows=typeof navigator=="object"&&/Win/.test(navigator.platform),commitCharacters=Prec.highest(EditorView.domEventHandlers({keydown(r,e){let n=e.state.field(completionState,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||r.key.length>1||r.ctrlKey&&!(windows&&r.altKey)||r.metaKey)return!1;let A=n.open.options[n.open.selected],o=n.active.find(a=>a.source==A.source),s=A.completion.commitCharacters||o.result.commitCharacters;return s&&s.indexOf(r.key)>-1&&applyCompletion(e,A),!1}})),baseTheme=EditorView.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",whiteSpace:"pre-line"},".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 FieldPos{constructor(e,n,A,o){this.field=e,this.line=n,this.from=A,this.to=o}}class FieldRange{constructor(e,n,A){this.field=e,this.from=n,this.to=A}map(e){let n=e.mapPos(this.from,-1,MapMode.TrackDel),A=e.mapPos(this.to,1,MapMode.TrackDel);return n==null||A==null?null:new FieldRange(this.field,n,A)}}class Snippet{constructor(e,n){this.lines=e,this.fieldPositions=n}instantiate(e,n){let A=[],o=[n],s=e.doc.lineAt(n),a=/^\s*/.exec(s.text)[0];for(let c of this.lines){if(A.length){let g=a,h=/^\t*/.exec(c)[0].length;for(let d=0;d<h;d++)g+=e.facet(indentUnit);o.push(n+g.length-h),c=g+c.slice(h)}A.push(c),n+=c.length+1}let l=this.fieldPositions.map(c=>new FieldRange(c.field,o[c.line]+c.from,o[c.line]+c.to));return{text:A,ranges:l}}static parse(e){let n=[],A=[],o=[],s;for(let a of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(a);){let l=s[1]?+s[1]:null,c=s[2]||s[3]||"",g=-1,h=c.replace(/\\[{}]/g,d=>d[1]);for(let d=0;d<n.length;d++)(l!=null?n[d].seq==l:h&&n[d].name==h)&&(g=d);if(g<0){let d=0;for(;d<n.length&&(l==null||n[d].seq!=null&&n[d].seq<l);)d++;n.splice(d,0,{seq:l,name:h}),g=d;for(let u of o)u.field>=g&&u.field++}o.push(new FieldPos(g,A.length,s.index,s.index+h.length)),a=a.slice(0,s.index)+c+a.slice(s.index+s[0].length)}a=a.replace(/\\([{}])/g,(l,c,g)=>{for(let h of o)h.line==A.length&&h.from>g&&(h.from--,h.to--);return c}),A.push(a)}return new Snippet(A,o)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let r=document.createElement("span");return r.className="cm-snippetFieldPosition",r}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,n){this.ranges=e,this.active=n,this.deco=Decoration.set(e.map(A=>(A.from==A.to?fieldMarker:fieldRange).range(A.from,A.to)))}map(e){let n=[];for(let A of this.ranges){let o=A.map(e);if(!o)return null;n.push(o)}return new ActiveSnippet(n,this.active)}selectionInsideField(e){return e.ranges.every(n=>this.ranges.some(A=>A.field==this.active&&A.from<=n.from&&A.to>=n.to))}}const setActive=StateEffect.define({map(r,e){return r&&r.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(r,e){for(let n of e.effects){if(n.is(setActive))return n.value;if(n.is(moveToField)&&r)return new ActiveSnippet(r.ranges,n.value)}return r&&e.docChanged&&(r=r.map(e.changes)),r&&e.selection&&!r.selectionInsideField(e.selection)&&(r=null),r},provide:r=>EditorView.decorations.from(r,e=>e?e.deco:Decoration.none)});function fieldSelection(r,e){return EditorSelection.create(r.filter(n=>n.field==e).map(n=>EditorSelection.range(n.from,n.to)))}function snippet(r){let e=Snippet.parse(r);return(n,A,o,s)=>{let{text:a,ranges:l}=e.instantiate(n.state,o),{main:c}=n.state.selection,g={changes:{from:o,to:s==c.from?c.to:s,insert:Text.of(a)},scrollIntoView:!0,annotations:A?[pickedCompletion.of(A),Transaction.userEvent.of("input.complete")]:void 0};if(l.length&&(g.selection=fieldSelection(l,0)),l.some(h=>h.field>0)){let h=new ActiveSnippet(l,0),d=g.effects=[setActive.of(h)];n.state.field(snippetState,!1)===void 0&&d.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme]))}n.dispatch(n.state.update(g))}}function moveField(r){return({state:e,dispatch:n})=>{let A=e.field(snippetState,!1);if(!A||r<0&&A.active==0)return!1;let o=A.active+r,s=r>0&&!A.ranges.some(a=>a.field==o+r);return n(e.update({selection:fieldSelection(A.ranges,o),effects:setActive.of(s?null:new ActiveSnippet(A.ranges,o)),scrollIntoView:!0})),!0}}const clearSnippet=({state:r,dispatch:e})=>r.field(snippetState,!1)?(e(r.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(r){return r.length?r[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],r=>r.facet(snippetKeymap)));function snippetCompletion(r,e){return Object.assign(Object.assign({},e),{apply:snippet(r)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(r,e){let n=e.state.field(snippetState,!1),A;if(!n||(A=e.posAtCoords({x:r.clientX,y:r.clientY}))==null)return!1;let o=n.ranges.find(s=>s.from<=A&&s.to>=A);return!o||o.field==n.active?!1:(e.dispatch({selection:fieldSelection(n.ranges,o.field),effects:setActive.of(n.ranges.some(s=>s.field>o.field)?new ActiveSnippet(n.ranges,o.field):null),scrollIntoView:!0}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},closeBracketEffect=StateEffect.define({map(r,e){let n=e.mapPos(r,-1,MapMode.TrackAfter);return n??void 0}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(r,e){if(r=r.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:A=>A>=n.from&&A<=n.to})}for(let n of e.effects)n.is(closeBracketEffect)&&(r=r.update({add:[closedBracket.range(n.value,n.value+1)]}));return r}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>«»»«[]{}";function closing(r){for(let e=0;e<definedClosing.length;e+=2)if(definedClosing.charCodeAt(e)==r)return definedClosing.charAt(e+1);return fromCodePoint(r<128?r:r+1)}function config(r,e){return r.languageDataAt("closeBrackets",e)[0]||defaults}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),inputHandler=EditorView.inputHandler.of((r,e,n,A)=>{if((android?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let o=r.state.selection.main;if(A.length>2||A.length==2&&codePointSize(codePointAt(A,0))==1||e!=o.from||n!=o.to)return!1;let s=insertBracket(r.state,A);return s?(r.dispatch(s),!0):!1}),deleteBracketPair=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let A=config(r,r.selection.main.head).brackets||defaults.brackets,o=null,s=r.changeByRange(a=>{if(a.empty){let l=prevChar(r.doc,a.head);for(let c of A)if(c==l&&nextChar(r.doc,a.head)==closing(codePointAt(c,0)))return{changes:{from:a.head-c.length,to:a.head+c.length},range:EditorSelection.cursor(a.head-c.length)}}return{range:o=a}});return o||e(r.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!o},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(r,e){let n=config(r,r.selection.main.head),A=n.brackets||defaults.brackets;for(let o of A){let s=closing(codePointAt(o,0));if(e==o)return s==o?handleSame(r,o,A.indexOf(o+o+o)>-1,n):handleOpen(r,o,s,n.before||defaults.before);if(e==s&&closedBracketAt(r,r.selection.main.from))return handleClose(r,o,s)}return null}function closedBracketAt(r,e){let n=!1;return r.field(bracketState).between(0,r.doc.length,A=>{A==e&&(n=!0)}),n}function nextChar(r,e){let n=r.sliceString(e,e+2);return n.slice(0,codePointSize(codePointAt(n,0)))}function prevChar(r,e){let n=r.sliceString(e-2,e);return codePointSize(codePointAt(n,0))==n.length?n:n.slice(1)}function handleOpen(r,e,n,A){let o=null,s=r.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:n,from:a.to}],effects:closeBracketEffect.of(a.to+e.length),range:EditorSelection.range(a.anchor+e.length,a.head+e.length)};let l=nextChar(r.doc,a.head);return!l||/\s/.test(l)||A.indexOf(l)>-1?{changes:{insert:e+n,from:a.head},effects:closeBracketEffect.of(a.head+e.length),range:EditorSelection.cursor(a.head+e.length)}:{range:o=a}});return o?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(r,e,n){let A=null,o=r.changeByRange(s=>s.empty&&nextChar(r.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:EditorSelection.cursor(s.head+n.length)}:A={range:s});return A?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function handleSame(r,e,n,A){let o=A.stringPrefixes||defaults.stringPrefixes,s=null,a=r.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:closeBracketEffect.of(l.to+e.length),range:EditorSelection.range(l.anchor+e.length,l.head+e.length)};let c=l.head,g=nextChar(r.doc,c),h;if(g==e){if(nodeStart(r,c))return{changes:{insert:e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)};if(closedBracketAt(r,c)){let u=n&&r.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+u.length,insert:u},range:EditorSelection.cursor(c+u.length)}}}else{if(n&&r.sliceDoc(c-2*e.length,c)==e+e&&(h=canStartStringAt(r,c-2*e.length,o))>-1&&nodeStart(r,h))return{changes:{insert:e+e+e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)};if(r.charCategorizer(c)(g)!=CharCategory.Word&&canStartStringAt(r,c,o)>-1&&!probablyInString(r,c,e,o))return{changes:{insert:e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)}}return{range:s=l}});return s?null:r.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(r,e){let n=syntaxTree(r).resolveInner(e+1);return n.parent&&n.from==e}function probablyInString(r,e,n,A){let o=syntaxTree(r).resolveInner(e,-1),s=A.reduce((a,l)=>Math.max(a,l.length),0);for(let a=0;a<5;a++){let l=r.sliceDoc(o.from,Math.min(o.to,o.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&A.indexOf(l.slice(0,c))>-1){let h=o.firstChild;for(;h&&h.from==o.from&&h.to-h.from>n.length+c;){if(r.sliceDoc(h.to-n.length,h.to)==n)return!1;h=h.firstChild}return!0}let g=o.to==e&&o.parent;if(!g)break;o=g}return!1}function canStartStringAt(r,e,n){let A=r.charCategorizer(e);if(A(r.sliceDoc(e-1,e))!=CharCategory.Word)return e;for(let o of n){let s=e-o.length;if(r.sliceDoc(s,e)==o&&A(r.sliceDoc(s-1,s))!=CharCategory.Word)return s}return-1}function autocompletion(r={}){return[commitCharacters,completionState,completionConfig$1.of(r),completionPlugin,completionKeymapExt,baseTheme]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{mac:"Alt-`",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig$1],r=>r.facet(completionConfig$1).defaultKeymap?[completionKeymap]:[])),toggleComment=r=>{let{state:e}=r,n=e.doc.lineAt(e.selection.main.from),A=getConfig(r.state,n.from);return A.line?toggleLineComment(r):A.block?toggleBlockCommentByLine(r):!1};function command(r,e){return({state:n,dispatch:A})=>{if(n.readOnly)return!1;let o=r(e,n);return o?(A(n.update(o)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((r,e)=>changeBlockComment(r,e,selectedLineRanges(e)),0);function getConfig(r,e){let n=r.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const SearchMargin=50;function findBlockComment(r,{open:e,close:n},A,o){let s=r.sliceDoc(A-SearchMargin,A),a=r.sliceDoc(o,o+SearchMargin),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(a)[0].length,g=s.length-l;if(s.slice(g-e.length,g)==e&&a.slice(c,c+n.length)==n)return{open:{pos:A-l,margin:l&&1},close:{pos:o+c,margin:c&&1}};let h,d;o-A<=2*SearchMargin?h=d=r.sliceDoc(A,o):(h=r.sliceDoc(A,A+SearchMargin),d=r.sliceDoc(o-SearchMargin,o));let u=/^\s*/.exec(h)[0].length,f=/\s*$/.exec(d)[0].length,I=d.length-f-n.length;return h.slice(u,u+e.length)==e&&d.slice(I,I+n.length)==n?{open:{pos:A+u+e.length,margin:/\s/.test(h.charAt(u+e.length))?1:0},close:{pos:o-f-n.length,margin:/\s/.test(d.charAt(I-1))?1:0}}:null}function selectedLineRanges(r){let e=[];for(let n of r.selection.ranges){let A=r.doc.lineAt(n.from),o=n.to<=A.to?A:r.doc.lineAt(n.to);o.from>A.from&&o.from==n.to&&(o=n.to==A.to+1?A:r.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>A.from?e[s].to=o.to:e.push({from:A.from+/^\s*/.exec(A.text)[0].length,to:o.to})}return e}function changeBlockComment(r,e,n=e.selection.ranges){let A=n.map(s=>getConfig(e,s.from).block);if(!A.every(s=>s))return null;let o=n.map((s,a)=>findBlockComment(e,A[a],s.from,s.to));if(r!=2&&!o.every(s=>s))return{changes:e.changes(n.map((s,a)=>o[a]?[]:[{from:s.from,insert:A[a].open+" "},{from:s.to,insert:" "+A[a].close}]))};if(r!=1&&o.some(s=>s)){let s=[];for(let a=0,l;a<o.length;a++)if(l=o[a]){let c=A[a],{open:g,close:h}=l;s.push({from:g.pos-c.open.length,to:g.pos+g.margin},{from:h.pos-h.margin,to:h.pos+c.close.length})}return{changes:s}}return null}function changeLineComment(r,e,n=e.selection.ranges){let A=[],o=-1;for(let{from:s,to:a}of n){let l=A.length,c=1e9,g=getConfig(e,s).line;if(g){for(let h=s;h<=a;){let d=e.doc.lineAt(h);if(d.from>o&&(s==a||a>d.from)){o=d.from;let u=/^\s*/.exec(d.text)[0].length,f=u==d.length,I=d.text.slice(u,u+g.length)==g?u:-1;u<d.text.length&&u<c&&(c=u),A.push({line:d,comment:I,token:g,indent:u,empty:f,single:!1})}h=d.to+1}if(c<1e9)for(let h=l;h<A.length;h++)A[h].indent<A[h].line.text.length&&(A[h].indent=c);A.length==l+1&&(A[l].single=!0)}}if(r!=2&&A.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:g,empty:h,single:d}of A)(d||!h)&&s.push({from:l.from+g,insert:c+" "});let a=e.changes(s);return{changes:a,selection:e.selection.map(a,1)}}else if(r!=1&&A.some(s=>s.comment>=0)){let s=[];for(let{line:a,comment:l,token:c}of A)if(l>=0){let g=a.from+l,h=g+c.length;a.text[h-a.from]==" "&&h++,s.push({from:g,to:h})}return{changes:s}}return null}function updateSel(r,e){return EditorSelection.create(r.ranges.map(e),r.mainIndex)}function setSel(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function moveSel({state:r,dispatch:e},n){let A=updateSel(r.selection,n);return A.eq(r.selection,!0)?!1:(e(setSel(r,A)),!0)}function rangeEnd(r,e){return EditorSelection.cursor(e?r.to:r.from)}function cursorByChar(r,e){return moveSel(r,n=>n.empty?r.moveByChar(n,e):rangeEnd(n,e))}function ltrAtCursor(r){return r.textDirectionAt(r.state.selection.main.head)==Direction.LTR}const cursorCharLeft=r=>cursorByChar(r,!ltrAtCursor(r)),cursorCharRight=r=>cursorByChar(r,ltrAtCursor(r));function cursorByGroup(r,e){return moveSel(r,n=>n.empty?r.moveByGroup(n,e):rangeEnd(n,e))}const cursorGroupLeft=r=>cursorByGroup(r,!ltrAtCursor(r)),cursorGroupRight=r=>cursorByGroup(r,ltrAtCursor(r));function interestingNode(r,e,n){if(e.type.prop(n))return!0;let A=e.to-e.from;return A&&(A>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(r,e,n){let A=syntaxTree(r).resolveInner(e.head),o=n?NodeProp.closedBy:NodeProp.openedBy;for(let c=e.head;;){let g=n?A.childAfter(c):A.childBefore(c);if(!g)break;interestingNode(r,g,o)?A=g:c=n?g.to:g.from}let s=A.type.prop(o),a,l;return s&&(a=n?matchBrackets(r,A.from,1):matchBrackets(r,A.to,-1))&&a.matched?l=n?a.end.to:a.end.from:l=n?A.to:A.from,EditorSelection.cursor(l,n?-1:1)}const cursorSyntaxLeft=r=>moveSel(r,e=>moveBySyntax(r.state,e,!ltrAtCursor(r))),cursorSyntaxRight=r=>moveSel(r,e=>moveBySyntax(r.state,e,ltrAtCursor(r)));function cursorByLine(r,e){return moveSel(r,n=>{if(!n.empty)return rangeEnd(n,e);let A=r.moveVertically(n,e);return A.head!=n.head?A:r.moveToLineBoundary(n,e)})}const cursorLineUp=r=>cursorByLine(r,!1),cursorLineDown=r=>cursorByLine(r,!0);function pageInfo(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,n=0,A=0,o;if(e){for(let s of r.state.facet(EditorView.scrollMargins)){let a=s(r);a?.top&&(n=Math.max(a?.top,n)),a?.bottom&&(A=Math.max(a?.bottom,A))}o=r.scrollDOM.clientHeight-n-A}else o=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:A,selfScroll:e,height:Math.max(r.defaultLineHeight,o-5)}}function cursorByPage(r,e){let n=pageInfo(r),{state:A}=r,o=updateSel(A.selection,a=>a.empty?r.moveVertically(a,e,n.height):rangeEnd(a,e));if(o.eq(A.selection))return!1;let s;if(n.selfScroll){let a=r.coordsAtPos(A.selection.main.head),l=r.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,g=l.bottom-n.marginBottom;a&&a.top>c&&a.bottom<g&&(s=EditorView.scrollIntoView(o.main.head,{y:"start",yMargin:a.top-c}))}return r.dispatch(setSel(A,o),{effects:s}),!0}const cursorPageUp=r=>cursorByPage(r,!1),cursorPageDown=r=>cursorByPage(r,!0);function moveByLineBoundary(r,e,n){let A=r.lineBlockAt(e.head),o=r.moveToLineBoundary(e,n);if(o.head==e.head&&o.head!=(n?A.to:A.from)&&(o=r.moveToLineBoundary(e,n,!1)),!n&&o.head==A.from&&A.length){let s=/^\s*/.exec(r.state.sliceDoc(A.from,Math.min(A.from+100,A.to)))[0].length;s&&e.head!=A.from+s&&(o=EditorSelection.cursor(A.from+s))}return o}const cursorLineBoundaryForward=r=>moveSel(r,e=>moveByLineBoundary(r,e,!0)),cursorLineBoundaryBackward=r=>moveSel(r,e=>moveByLineBoundary(r,e,!1)),cursorLineBoundaryLeft=r=>moveSel(r,e=>moveByLineBoundary(r,e,!ltrAtCursor(r))),cursorLineBoundaryRight=r=>moveSel(r,e=>moveByLineBoundary(r,e,ltrAtCursor(r))),cursorLineStart=r=>moveSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).from,1)),cursorLineEnd=r=>moveSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).to,-1));function toMatchingBracket(r,e,n){let A=!1,o=updateSel(r.selection,s=>{let a=matchBrackets(r,s.head,-1)||matchBrackets(r,s.head,1)||s.head>0&&matchBrackets(r,s.head-1,1)||s.head<r.doc.length&&matchBrackets(r,s.head+1,-1);if(!a||!a.end)return s;A=!0;let l=a.start.from==s.head?a.end.to:a.end.from;return EditorSelection.cursor(l)});return A?(e(setSel(r,o)),!0):!1}const cursorMatchingBracket=({state:r,dispatch:e})=>toMatchingBracket(r,e);function extendSel(r,e){let n=updateSel(r.state.selection,A=>{let o=e(A);return EditorSelection.range(A.anchor,o.head,o.goalColumn,o.bidiLevel||void 0)});return n.eq(r.state.selection)?!1:(r.dispatch(setSel(r.state,n)),!0)}function selectByChar(r,e){return extendSel(r,n=>r.moveByChar(n,e))}const selectCharLeft=r=>selectByChar(r,!ltrAtCursor(r)),selectCharRight=r=>selectByChar(r,ltrAtCursor(r));function selectByGroup(r,e){return extendSel(r,n=>r.moveByGroup(n,e))}const selectGroupLeft=r=>selectByGroup(r,!ltrAtCursor(r)),selectGroupRight=r=>selectByGroup(r,ltrAtCursor(r)),selectSyntaxLeft=r=>extendSel(r,e=>moveBySyntax(r.state,e,!ltrAtCursor(r))),selectSyntaxRight=r=>extendSel(r,e=>moveBySyntax(r.state,e,ltrAtCursor(r)));function selectByLine(r,e){return extendSel(r,n=>r.moveVertically(n,e))}const selectLineUp=r=>selectByLine(r,!1),selectLineDown=r=>selectByLine(r,!0);function selectByPage(r,e){return extendSel(r,n=>r.moveVertically(n,e,pageInfo(r).height))}const selectPageUp=r=>selectByPage(r,!1),selectPageDown=r=>selectByPage(r,!0),selectLineBoundaryForward=r=>extendSel(r,e=>moveByLineBoundary(r,e,!0)),selectLineBoundaryBackward=r=>extendSel(r,e=>moveByLineBoundary(r,e,!1)),selectLineBoundaryLeft=r=>extendSel(r,e=>moveByLineBoundary(r,e,!ltrAtCursor(r))),selectLineBoundaryRight=r=>extendSel(r,e=>moveByLineBoundary(r,e,ltrAtCursor(r))),selectLineStart=r=>extendSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).from)),selectLineEnd=r=>extendSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).to)),cursorDocStart=({state:r,dispatch:e})=>(e(setSel(r,{anchor:0})),!0),cursorDocEnd=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.doc.length})),!0),selectDocStart=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.selection.main.anchor,head:0})),!0),selectDocEnd=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),selectAll=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),selectLine=({state:r,dispatch:e})=>{let n=selectedLineBlocks(r).map(({from:A,to:o})=>EditorSelection.range(A,Math.min(o+1,r.doc.length)));return e(r.update({selection:EditorSelection.create(n),userEvent:"select"})),!0},selectParentSyntax=({state:r,dispatch:e})=>{let n=updateSel(r.selection,A=>{let o=syntaxTree(r),s=o.resolveStack(A.from,1);if(A.empty){let a=o.resolveStack(A.from,-1);a.node.from>=s.node.from&&a.node.to<=s.node.to&&(s=a)}for(let a=s;a;a=a.next){let{node:l}=a;if((l.from<A.from&&l.to>=A.to||l.to>A.to&&l.from<=A.from)&&a.next)return EditorSelection.range(l.to,l.from)}return A});return n.eq(r.selection)?!1:(e(setSel(r,n)),!0)},simplifySelection=({state:r,dispatch:e})=>{let n=r.selection,A=null;return n.ranges.length>1?A=EditorSelection.create([n.main]):n.main.empty||(A=EditorSelection.create([EditorSelection.cursor(n.main.head)])),A?(e(setSel(r,A)),!0):!1};function deleteBy(r,e){if(r.state.readOnly)return!1;let n="delete.selection",{state:A}=r,o=A.changeByRange(s=>{let{from:a,to:l}=s;if(a==l){let c=e(s);c<a?(n="delete.backward",c=skipAtomic(r,c,!1)):c>a&&(n="delete.forward",c=skipAtomic(r,c,!0)),a=Math.min(a,c),l=Math.max(l,c)}else a=skipAtomic(r,a,!1),l=skipAtomic(r,l,!0);return a==l?{range:s}:{changes:{from:a,to:l},range:EditorSelection.cursor(a,a<s.head?-1:1)}});return o.changes.empty?!1:(r.dispatch(A.update(o,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?EditorView.announce.of(A.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(r,e,n){if(r instanceof EditorView)for(let A of r.state.facet(EditorView.atomicRanges).map(o=>o(r)))A.between(e,e,(o,s)=>{o<e&&s>e&&(e=n?s:o)});return e}const deleteByChar=(r,e,n)=>deleteBy(r,A=>{let o=A.from,{state:s}=r,a=s.doc.lineAt(o),l,c;if(n&&!e&&o>a.from&&o<a.from+200&&!/[^ \t]/.test(l=a.text.slice(0,o-a.from))){if(l[l.length-1]==" ")return o-1;let g=countColumn(l,s.tabSize),h=g%getIndentUnit(s)||getIndentUnit(s);for(let d=0;d<h&&l[l.length-1-d]==" ";d++)o--;c=o}else c=findClusterBreak(a.text,o-a.from,e,e)+a.from,c==o&&a.number!=(e?s.doc.lines:1)?c+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(a.text.slice(c-a.from,o-a.from))&&(c=findClusterBreak(a.text,c-a.from,!1,!1)+a.from);return c}),deleteCharBackward=r=>deleteByChar(r,!1,!0),deleteCharForward=r=>deleteByChar(r,!0,!1),deleteByGroup=(r,e)=>deleteBy(r,n=>{let A=n.head,{state:o}=r,s=o.doc.lineAt(A),a=o.charCategorizer(A);for(let l=null;;){if(A==(e?s.to:s.from)){A==n.head&&s.number!=(e?o.doc.lines:1)&&(A+=e?1:-1);break}let c=findClusterBreak(s.text,A-s.from,e)+s.from,g=s.text.slice(Math.min(A,c)-s.from,Math.max(A,c)-s.from),h=a(g);if(l!=null&&h!=l)break;(g!=" "||A!=n.head)&&(l=h),A=c}return A}),deleteGroupBackward=r=>deleteByGroup(r,!1),deleteGroupForward=r=>deleteByGroup(r,!0),deleteToLineEnd=r=>deleteBy(r,e=>{let n=r.lineBlockAt(e.head).to;return e.head<n?n:Math.min(r.state.doc.length,e.head+1)}),deleteLineBoundaryBackward=r=>deleteBy(r,e=>{let n=r.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),deleteLineBoundaryForward=r=>deleteBy(r,e=>{let n=r.moveToLineBoundary(e,!0).head;return e.head<n?n:Math.min(r.state.doc.length,e.head+1)}),splitLine=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=r.changeByRange(A=>({changes:{from:A.from,to:A.to,insert:Text.of(["",""])},range:EditorSelection.cursor(A.from)}));return e(r.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=r.changeByRange(A=>{if(!A.empty||A.from==0||A.from==r.doc.length)return{range:A};let o=A.from,s=r.doc.lineAt(o),a=o==s.from?o-1:findClusterBreak(s.text,o-s.from,!1)+s.from,l=o==s.to?o+1:findClusterBreak(s.text,o-s.from,!0)+s.from;return{changes:{from:a,to:l,insert:r.doc.slice(o,l).append(r.doc.slice(a,o))},range:EditorSelection.cursor(l)}});return n.changes.empty?!1:(e(r.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(r){let e=[],n=-1;for(let A of r.selection.ranges){let o=r.doc.lineAt(A.from),s=r.doc.lineAt(A.to);if(!A.empty&&A.to==s.from&&(s=r.doc.lineAt(A.to-1)),n>=o.number){let a=e[e.length-1];a.to=s.to,a.ranges.push(A)}else e.push({from:o.from,to:s.to,ranges:[A]});n=s.number+1}return e}function moveLine(r,e,n){if(r.readOnly)return!1;let A=[],o=[];for(let s of selectedLineBlocks(r)){if(n?s.to==r.doc.length:s.from==0)continue;let a=r.doc.lineAt(n?s.to+1:s.from-1),l=a.length+1;if(n){A.push({from:s.to,to:a.to},{from:s.from,insert:a.text+r.lineBreak});for(let c of s.ranges)o.push(EditorSelection.range(Math.min(r.doc.length,c.anchor+l),Math.min(r.doc.length,c.head+l)))}else{A.push({from:a.from,to:s.from},{from:s.to,insert:r.lineBreak+a.text});for(let c of s.ranges)o.push(EditorSelection.range(c.anchor-l,c.head-l))}}return A.length?(e(r.update({changes:A,scrollIntoView:!0,selection:EditorSelection.create(o,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:r,dispatch:e})=>moveLine(r,e,!1),moveLineDown=({state:r,dispatch:e})=>moveLine(r,e,!0);function copyLine(r,e,n){if(r.readOnly)return!1;let A=[];for(let o of selectedLineBlocks(r))n?A.push({from:o.from,insert:r.doc.slice(o.from,o.to)+r.lineBreak}):A.push({from:o.to,insert:r.lineBreak+r.doc.slice(o.from,o.to)});return e(r.update({changes:A,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:r,dispatch:e})=>copyLine(r,e,!1),copyLineDown=({state:r,dispatch:e})=>copyLine(r,e,!0),deleteLine=r=>{if(r.state.readOnly)return!1;let{state:e}=r,n=e.changes(selectedLineBlocks(e).map(({from:o,to:s})=>(o>0?o--:s<e.doc.length&&s++,{from:o,to:s}))),A=updateSel(e.selection,o=>{let s;if(r.lineWrapping){let a=r.lineBlockAt(o.head),l=r.coordsAtPos(o.head,o.assoc||1);l&&(s=a.bottom+r.documentTop-l.bottom+r.defaultLineHeight/2)}return r.moveVertically(o,!0,s)}).map(n);return r.dispatch({changes:n,selection:A,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=syntaxTree(r).resolveInner(e),A=n.childBefore(e),o=n.childAfter(e),s;return A&&o&&A.to<=e&&o.from>=e&&(s=A.type.prop(NodeProp.closedBy))&&s.indexOf(o.name)>-1&&r.doc.lineAt(A.to).from==r.doc.lineAt(o.from).from&&!/\S/.test(r.sliceDoc(A.to,o.from))?{from:A.to,to:o.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(r){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let A=e.changeByRange(o=>{let{from:s,to:a}=o,l=e.doc.lineAt(s),c=!r&&s==a&&isBetweenBrackets(e,s);r&&(s=a=(a<=l.to?l:e.doc.lineAt(a)).to);let g=new IndentContext(e,{simulateBreak:s,simulateDoubleBreak:!!c}),h=getIndentation(g,s);for(h==null&&(h=countColumn(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));a<l.to&&/\s/.test(l.text[a-l.from]);)a++;c?{from:s,to:a}=c:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let d=["",indentString(e,h)];return c&&d.push(indentString(e,g.lineIndent(l.from,-1))),{changes:{from:s,to:a,insert:Text.of(d)},range:EditorSelection.cursor(s+1+d[1].length)}});return n(e.update(A,{scrollIntoView:!0,userEvent:"input"})),!0}}function changeBySelectedLine(r,e){let n=-1;return r.changeByRange(A=>{let o=[];for(let a=A.from;a<=A.to;){let l=r.doc.lineAt(a);l.number>n&&(A.empty||A.to>l.from)&&(e(l,o,A),n=l.number),a=l.to+1}let s=r.changes(o);return{changes:o,range:EditorSelection.range(s.mapPos(A.anchor,1),s.mapPos(A.head,1))}})}const indentSelection=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=Object.create(null),A=new IndentContext(r,{overrideIndentation:s=>{let a=n[s];return a??-1}}),o=changeBySelectedLine(r,(s,a,l)=>{let c=getIndentation(A,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let g=/^\s*/.exec(s.text)[0],h=indentString(r,c);(g!=h||l.from<s.from+g.length)&&(n[s.from]=c,a.push({from:s.from,to:s.from+g.length,insert:h}))});return o.changes.empty||e(r.update(o,{userEvent:"indent"})),!0},indentMore=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(changeBySelectedLine(r,(n,A)=>{A.push({from:n.from,insert:r.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(changeBySelectedLine(r,(n,A)=>{let o=/^\s*/.exec(n.text)[0];if(!o)return;let s=countColumn(o,r.tabSize),a=0,l=indentString(r,Math.max(0,s-getIndentUnit(r)));for(;a<o.length&&a<l.length&&o.charCodeAt(a)==l.charCodeAt(a);)a++;A.push({from:n.from+a,to:n.from+o.length,insert:l.slice(a)})}),{userEvent:"delete.dedent"})),!0),toggleTabFocusMode=r=>(r.setTabFocusMode(),!0),emacsStyleKeymap=[{key:"Ctrl-b",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Ctrl-f",run:cursorCharRight,shift:selectCharRight},{key:"Ctrl-p",run:cursorLineUp,shift:selectLineUp},{key:"Ctrl-n",run:cursorLineDown,shift:selectLineDown},{key:"Ctrl-a",run:cursorLineStart,shift:selectLineStart},{key:"Ctrl-e",run:cursorLineEnd,shift:selectLineEnd},{key:"Ctrl-d",run:deleteCharForward},{key:"Ctrl-h",run:deleteCharBackward},{key:"Ctrl-k",run:deleteToLineEnd},{key:"Ctrl-Alt-h",run:deleteGroupBackward},{key:"Ctrl-o",run:splitLine},{key:"Ctrl-t",run:transposeChars},{key:"Ctrl-v",run:cursorPageDown}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryLeft,shift:selectLineBoundaryLeft,preventDefault:!0},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight,preventDefault:!0},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryRight,shift:selectLineBoundaryRight,preventDefault:!0},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp,preventDefault:!0},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown,preventDefault:!0},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward,preventDefault:!0},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward,preventDefault:!0},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent,shift:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCharBackward,shift:deleteCharBackward},{key:"Delete",run:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteLineBoundaryBackward},{mac:"Mod-Delete",run:deleteLineBoundaryForward}].concat(emacsStyleKeymap.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment},{key:"Ctrl-m",mac:"Shift-Alt-m",run:toggleTabFocusMode}].concat(standardKeymap),indentWithTab={key:"Tab",run:indentMore,shift:indentLess};function toPosition(r,e){let n=r.lineAt(e);return{line:n.number-1,character:e-n.from}}function fromPosition(r,e){return r.line(e.line+1).from+e.character}function escHTML(r){return r.replace(/[\n<&]/g,e=>e==`
|
|
28
|
-
`?"<br>":e=="<"?"<":"&")}class PositionMapper{constructor(e,n){this.rawTextMap=n,this.doc=e.state.doc,this.rawTextArr=[];for(const A of n)A.nodeIdx>0&&this.rawTextArr.push({nodeIdx:A.nodeIdx,maxNodeIdx:A.nodeIdx,targetPos:A.targetPos,targetRow:A.targetRow,targetCol:A.targetCol});this.rawTextArr.sort((A,o)=>A.nodeIdx-o.nodeIdx);for(let A=0;A<this.rawTextArr.length;A++){const o=A+1;o<this.rawTextArr.length?this.rawTextArr[A].maxNodeIdx=this.rawTextArr[o].nodeIdx-1:this.rawTextArr[A].maxNodeIdx=this.doc.nodeSize}}rawTextArr;doc;toRawTextPos(e){for(let n=0;n<this.rawTextArr.length;n++){const A=this.rawTextArr[n];if(e>=A.nodeIdx&&e<=A.maxNodeIdx)return A.targetPos+e-A.nodeIdx}return-1}toRawTextLspPos(e){for(let n=0;n<this.rawTextArr.length;n++){const A=this.rawTextArr[n];if(e>=A.nodeIdx&&e<=A.maxNodeIdx)return{line:A.targetRow,character:A.targetCol+e-A.nodeIdx}}return{line:0,character:0}}fromLineChar(e,n){for(let A=0;A<this.rawTextArr.length;A++){const o=this.rawTextArr[A],s=o.maxNodeIdx-o.nodeIdx+1;if(o.targetRow===e){if(n>=o.targetCol&&n<o.targetCol+s){const c=n-o.targetCol;return o.nodeIdx+c}const a=this.rawTextArr[A+1];if((!a||a.targetRow>o.targetRow)&&n>=o.targetCol+s)return o.maxNodeIdx}}return-1}}class LSPPlugin{constructor(e,{extension:n,extensionLsp:A,uri:o,editor:s}){this.view=e,this.lang="plaintext",this.extension=n,this.extensionLsp=A,this.uri=o,this.editor=s,this.source={ui:this.editor.ui,getMappedContent:async()=>{const a=this.editor,l=toRawTextResult(this.view.state.doc.toString().toString(),0),c=new PositionMapper(a,l.rawTextMap);return{...l,mapper:c}}}}getClient(){return this.client}setLang(e){this.lang=e;const n=this.extensionLsp.getClient(e);this.client=n,n&&(n.disconnect(this.uri),n.connect(this.uri,this.source),n.workspace.openFile(this.uri,e,this.source))}update(){this.client&&this.client.workspace.changedFile(this.uri)}docToHTML(e,n="plaintext"){return typeof e=="string"?escHTML(e):`docToHTML ${e.kind} ${JSON.stringify(e.value,null,2)}`}toPosition(e,n=this.view.state.doc){return toPosition(n,e)}fromPosition(e,n=this.view.state.doc){return fromPosition(n,e)}reportError(e,n){this.editor.ui.showError(n)}static get(e){return e.plugin(lspPlugin)}}const lspPlugin=ViewPlugin.fromClass(LSPPlugin);function computeChange(r,e){if(r===e)return null;let n=0,A=r.length,o=e.length;for(;n<A&&r.charCodeAt(n)===e.charCodeAt(n);)n+=1;for(;A>n&&o>n&&r.charCodeAt(A-1)===e.charCodeAt(o-1);)A-=1,o-=1;return{from:n,to:A,text:e.slice(n,o)}}const asProseMirrorSelection=(r,e,n)=>{const A=(typeof n=="function"&&n()||0)+1,o=e.state.selection.main.from+A,s=e.state.selection.main.to+A;return TextSelection.create(r,o,s)},forwardSelection=(r,e,n)=>{if(!r.hasFocus)return;const A=asProseMirrorSelection(e.state.doc,r,n);A.eq(e.state.selection)||e.dispatch(e.state.tr.setSelection(A))},valueChanged=(r,e,n,A)=>{const o=computeChange(e.textContent,r);if(o){const s=n();if(typeof s<"u"){const a=s+1;let l=A.state.tr;l=l.replaceWith(a+o.from,a+o.to,o.text?A.state.schema.text(o.text):[]),A.dispatch(l)}}},maybeEscape=(r,e,n,A,o)=>{const s=n.state.selection.main,a=n.state.doc.lineAt(s.from),l=n.state.doc.lines;if(s.to!==s.from||a.number!==(e<0?1:l)||r==="char"&&s.from!==(e<0?0:a.to)||typeof o!="function")return!1;A.focus();const c=o();if(!c)return!1;const g=A.state.doc.nodeAt(c);if(!g)return!1;const h=c+(e<0?0:g.nodeSize),d=Selection.near(A.state.doc.resolve(h),e);return A.dispatch(A.state.tr.setSelection(d).scrollIntoView()),A.focus(),!0},backspaceHandler=(r,e,n)=>{const{selection:A}=e.state;return A.main.empty&&A.main.from===0?(n.commandFactories.setBlockType(r.state.schema.nodes.paragraph)(r.state,r.dispatch),setTimeout(()=>r.focus(),20),!0):!1},setMode=async(r,e,n,A)=>{const o=await n.languageLoaders?.[r]?.();o&&e.dispatch({effects:A.reconfigure(o)});const s=LSPPlugin.get(e);s&&s.setLang(r)},isTheme=r=>Array.isArray(r)?r.every(e=>e!==void 0&&typeof e.extension=="object"&&typeof e.name=="string"):!1,setTheme=async(r,e,n)=>{isTheme(n)&&r.dispatch({effects:e.reconfigure(n)})};class RemoteSyncConfig{constructor(e,n,A){this.getNode=e,this.getPmPos=n,this.editor=A}}const remoteSyncFacet=Facet.define({combine(r){return r[r.length-1]}});class Pair{constructor(e,n){this.left=e,this.right=n}}const create=(r,e)=>new Pair(r,e),forEach=(r,e)=>r.forEach(n=>e(n.left,n.right)),doc=typeof document<"u"?document:{},createElement=r=>doc.createElement(r),createDocumentFragment=()=>doc.createDocumentFragment(),createTextNode=r=>doc.createTextNode(r);typeof DOMParser<"u"&&new DOMParser;const setAttributes=(r,e)=>(forEach(e,(n,A)=>{A===!1?r.removeAttribute(n):A===!0?r.setAttribute(n,""):r.setAttribute(n,A)}),r),fragment=r=>{const e=createDocumentFragment();for(let n=0;n<r.length;n++)appendChild(e,r[n]);return e},append$1=(r,e)=>(appendChild(r,fragment(e)),r),element$1=(r,e=[],n=[])=>append$1(setAttributes(createElement(r),e),n),text$1=createTextNode,appendChild=(r,e)=>r.appendChild(e);doc.ELEMENT_NODE;doc.TEXT_NODE;doc.CDATA_SECTION_NODE;doc.COMMENT_NODE;doc.DOCUMENT_NODE;doc.DOCUMENT_TYPE_NODE;doc.DOCUMENT_FRAGMENT_NODE;const min=(r,e)=>r<e?r:e,max=(r,e)=>r>e?r:e,yRemoteSelectionsTheme=EditorView.baseTheme({".cm-rSelection":{},".cm-rLineSelection":{padding:0,margin:"0px 2px 0px 4px"},".cm-rSelectionCaret":{position:"relative",borderLeft:"1px solid black",borderRight:"1px solid black",marginLeft:"-1px",marginRight:"-1px",boxSizing:"border-box",display:"inline"},".cm-rSelectionCaretDot":{borderRadius:"50%",position:"absolute",width:".4em",height:".4em",top:"-.2em",left:"-.2em",backgroundColor:"inherit",transition:"transform .3s ease-in-out",boxSizing:"border-box"},".cm-rSelectionCaret:hover > .cm-rSelectionCaretDot":{transformOrigin:"bottom center",transform:"scale(0)"},".cm-rSelectionInfo":{position:"absolute",top:"-1.05em",left:"-1px",fontSize:".75em",fontFamily:"serif",fontStyle:"normal",fontWeight:"normal",lineHeight:"normal",userSelect:"none",color:"white",paddingLeft:"2px",paddingRight:"2px",zIndex:101,transition:"opacity .3s ease-in-out",backgroundColor:"inherit",opacity:0,transitionDelay:"0s",whiteSpace:"nowrap"},".cm-rSelectionCaret:hover > .cm-rSelectionInfo":{opacity:1,transitionDelay:"0s"}}),yRemoteSelectionsAnnotation=Annotation.define();class YRemoteCaretWidget extends WidgetType{constructor(e,n){super(),this.color=e,this.name=n}toDOM(){return element$1("span",[create("class","kb-yjs__cursor kb-widget"),create("style",`border-color: ${this.color};`)],[text$1(""),element$1("div",[create("style",`background-color: ${this.color}`)],[text$1(this.name)]),text$1("")])}eq(e){return e.color===this.color}compare(e){return e.color===this.color}updateDOM(){return!1}get estimatedHeight(){return-1}ignoreEvent(){return!0}}class YRemoteSelectionsPluginValue{constructor(e){this.conf=e.state.facet(remoteSyncFacet),this.editor=this.conf.editor,this.decorations=RangeSet.of([]),this._remoteSelectionChange=()=>{e.dispatch({annotations:[yRemoteSelectionsAnnotation.of([])]})},this.editor.addEventListener("remoteSelectionChange",this._remoteSelectionChange)}destroy(){this.editor.removeEventListener("remoteSelectionChange",this._remoteSelectionChange)}update(e){const n=[],o=this.editor.getExtension("remote-selection").getRemoteStates();for(const c of o){const g=c.clientId,h=c.cursor;if(h?.anchor==null||h?.head==null)return;const d=this.conf.getPmPos();if(typeof d<"u"){const u=d+this.conf.getNode().nodeSize;if(h.anchor>=d&&h.anchor<u&&h.head>=d&&h.head<u){const f={index:h.anchor-d},I={index:h.head-d};try{const{color:p="#ffa500",name:m=`User: ${g}`}=c.user||{},E=c.user&&c.user.colorLight||p+"33",B=min(f.index,I.index),Q=max(f.index,I.index),S=e.view.state.doc.lineAt(B),w=e.view.state.doc.lineAt(Q);if(S.number===w.number)n.push({from:B,to:Q,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})});else{n.push({from:B,to:S.from+S.length,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})}),n.push({from:w.from,to:Q,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})});for(let y=S.number+1;y<w.number;y++){const D=e.view.state.doc.line(y).from;n.push({from:D,to:D,value:Decoration.line({attributes:{style:`background-color: ${E}`,class:"cm-rLineSelection"}})})}}n.push({from:I.index,to:I.index,value:Decoration.widget({side:I.index-f.index>0?-1:1,block:!1,widget:new YRemoteCaretWidget(p,m)})})}catch(p){console.warn(p,`User: ${g}`)}}}}this.decorations=Decoration.set(n,!0);const a=e.view.hasFocus&&e.view.dom.ownerDocument.hasFocus()?e.state.selection.main:null,l=this.conf.getPmPos();if(a!=null&&typeof l<"u"){const c=l+a.anchor,g=l+a.head,h=new CustomEvent("localPositionChanged",{detail:{anchor:c,head:g}});this.editor.dispatchEvent(h)}}}const yRemoteSelections=ViewPlugin.fromClass(YRemoteSelectionsPluginValue,{decorations:r=>r.decorations}),lspTheme=EditorView.baseTheme({".cm-lsp-documentation":{padding:"0 7px","& p, & pre":{margin:"2px 0"}},".cm-lsp-signature-tooltip":{padding:"2px 6px",borderRadius:"2.5px",position:"relative",maxWidth:"30em",maxHeight:"10em",overflowY:"scroll","& .cm-lsp-documentation":{padding:"0",fontSize:"80%"},"& .cm-lsp-signature-num":{fontFamily:"monospace",position:"absolute",left:"2px",top:"4px",fontSize:"70%",lineHeight:"1.3"},"& .cm-lsp-signature":{fontFamily:"monospace",textIndent:"1em hanging"},"& .cm-lsp-active-parameter":{fontWeight:"bold"}},".cm-lsp-signature-multiple":{paddingLeft:"1.5em"},".cm-panel.cm-lsp-rename-panel":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}},".cm-lsp-message button[type=submit]":{display:"block"},".cm-lsp-reference-panel":{fontFamily:"monospace",whiteSpace:"pre",padding:"3px 6px",maxHeight:"120px",overflow:"auto","& .cm-lsp-reference-file":{fontWeight:"bold"},"& .cm-lsp-reference":{cursor:"pointer","&[aria-selected]":{backgroundColor:"#0077ee44"}},"& .cm-lsp-reference-line":{opacity:"0.7"}}});class LSPExtension{constructor(e){if(this.config=e,this.extensions=[],e.extensions)for(const n of e.extensions)this.extensions.push(n)}plugin(e,n){if(!n.config.uri)throw new Error("No editor.config.uri");return[lspPlugin.of({extension:this,editor:n,extensionLsp:e,uri:n.config.uri}),lspTheme,this.extensions]}}function getAugmentedNamespace(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var e=r.default;if(typeof e=="function"){var n=function A(){var o=!1;try{o=this instanceof A}catch{}return o?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(r).forEach(function(A){var o=Object.getOwnPropertyDescriptor(r,A);Object.defineProperty(n,A,o.get?o:{enumerable:!0,get:function(){return r[A]}})}),n}var main$2={},main$1={},ril={},api$1={},messages$1={},is$1={},hasRequiredIs$1;function requireIs$1(){if(hasRequiredIs$1)return is$1;hasRequiredIs$1=1,Object.defineProperty(is$1,"__esModule",{value:!0}),is$1.stringArray=is$1.array=is$1.func=is$1.error=is$1.number=is$1.string=is$1.boolean=void 0;function r(l){return l===!0||l===!1}is$1.boolean=r;function e(l){return typeof l=="string"||l instanceof String}is$1.string=e;function n(l){return typeof l=="number"||l instanceof Number}is$1.number=n;function A(l){return l instanceof Error}is$1.error=A;function o(l){return typeof l=="function"}is$1.func=o;function s(l){return Array.isArray(l)}is$1.array=s;function a(l){return s(l)&&l.every(c=>e(c))}return is$1.stringArray=a,is$1}var hasRequiredMessages$1;function requireMessages$1(){if(hasRequiredMessages$1)return messages$1;hasRequiredMessages$1=1,Object.defineProperty(messages$1,"__esModule",{value:!0}),messages$1.Message=messages$1.NotificationType9=messages$1.NotificationType8=messages$1.NotificationType7=messages$1.NotificationType6=messages$1.NotificationType5=messages$1.NotificationType4=messages$1.NotificationType3=messages$1.NotificationType2=messages$1.NotificationType1=messages$1.NotificationType0=messages$1.NotificationType=messages$1.RequestType9=messages$1.RequestType8=messages$1.RequestType7=messages$1.RequestType6=messages$1.RequestType5=messages$1.RequestType4=messages$1.RequestType3=messages$1.RequestType2=messages$1.RequestType1=messages$1.RequestType=messages$1.RequestType0=messages$1.AbstractMessageSignature=messages$1.ParameterStructures=messages$1.ResponseError=messages$1.ErrorCodes=void 0;const r=requireIs$1();var e;(function(v){v.ParseError=-32700,v.InvalidRequest=-32600,v.MethodNotFound=-32601,v.InvalidParams=-32602,v.InternalError=-32603,v.jsonrpcReservedErrorRangeStart=-32099,v.serverErrorStart=-32099,v.MessageWriteError=-32099,v.MessageReadError=-32098,v.PendingResponseRejected=-32097,v.ConnectionInactive=-32096,v.ServerNotInitialized=-32002,v.UnknownErrorCode=-32001,v.jsonrpcReservedErrorRangeEnd=-32e3,v.serverErrorEnd=-32e3})(e||(messages$1.ErrorCodes=e={}));class n extends Error{constructor(N,L,G){super(L),this.code=r.number(N)?N:e.UnknownErrorCode,this.data=G,Object.setPrototypeOf(this,n.prototype)}toJson(){const N={code:this.code,message:this.message};return this.data!==void 0&&(N.data=this.data),N}}messages$1.ResponseError=n;class A{constructor(N){this.kind=N}static is(N){return N===A.auto||N===A.byName||N===A.byPosition}toString(){return this.kind}}messages$1.ParameterStructures=A,A.auto=new A("auto"),A.byPosition=new A("byPosition"),A.byName=new A("byName");class o{constructor(N,L){this.method=N,this.numberOfParams=L}get parameterStructures(){return A.auto}}messages$1.AbstractMessageSignature=o;class s extends o{constructor(N){super(N,0)}}messages$1.RequestType0=s;class a extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.RequestType=a;class l extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.RequestType1=l;class c extends o{constructor(N){super(N,2)}}messages$1.RequestType2=c;class g extends o{constructor(N){super(N,3)}}messages$1.RequestType3=g;class h extends o{constructor(N){super(N,4)}}messages$1.RequestType4=h;class d extends o{constructor(N){super(N,5)}}messages$1.RequestType5=d;class u extends o{constructor(N){super(N,6)}}messages$1.RequestType6=u;class f extends o{constructor(N){super(N,7)}}messages$1.RequestType7=f;class I extends o{constructor(N){super(N,8)}}messages$1.RequestType8=I;class p extends o{constructor(N){super(N,9)}}messages$1.RequestType9=p;class m extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.NotificationType=m;class E extends o{constructor(N){super(N,0)}}messages$1.NotificationType0=E;class B extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.NotificationType1=B;class Q extends o{constructor(N){super(N,2)}}messages$1.NotificationType2=Q;class S extends o{constructor(N){super(N,3)}}messages$1.NotificationType3=S;class w extends o{constructor(N){super(N,4)}}messages$1.NotificationType4=w;class y extends o{constructor(N){super(N,5)}}messages$1.NotificationType5=y;class D extends o{constructor(N){super(N,6)}}messages$1.NotificationType6=D;class _ extends o{constructor(N){super(N,7)}}messages$1.NotificationType7=_;class M extends o{constructor(N){super(N,8)}}messages$1.NotificationType8=M;class R extends o{constructor(N){super(N,9)}}messages$1.NotificationType9=R;var F;return(function(v){function N(K){const O=K;return O&&r.string(O.method)&&(r.string(O.id)||r.number(O.id))}v.isRequest=N;function L(K){const O=K;return O&&r.string(O.method)&&K.id===void 0}v.isNotification=L;function G(K){const O=K;return O&&(O.result!==void 0||!!O.error)&&(r.string(O.id)||r.number(O.id)||O.id===null)}v.isResponse=G})(F||(messages$1.Message=F={})),messages$1}var linkedMap={},hasRequiredLinkedMap;function requireLinkedMap(){if(hasRequiredLinkedMap)return linkedMap;hasRequiredLinkedMap=1;var r;Object.defineProperty(linkedMap,"__esModule",{value:!0}),linkedMap.LRUCache=linkedMap.LinkedMap=linkedMap.Touch=void 0;var e;(function(o){o.None=0,o.First=1,o.AsOld=o.First,o.Last=2,o.AsNew=o.Last})(e||(linkedMap.Touch=e={}));class n{constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(s){return this._map.has(s)}get(s,a=e.None){const l=this._map.get(s);if(l)return a!==e.None&&this.touch(l,a),l.value}set(s,a,l=e.None){let c=this._map.get(s);if(c)c.value=a,l!==e.None&&this.touch(c,l);else{switch(c={key:s,value:a,next:void 0,previous:void 0},l){case e.None:this.addItemLast(c);break;case e.First:this.addItemFirst(c);break;case e.Last:this.addItemLast(c);break;default:this.addItemLast(c);break}this._map.set(s,c),this._size++}return this}delete(s){return!!this.remove(s)}remove(s){const a=this._map.get(s);if(a)return this._map.delete(s),this.removeItem(a),this._size--,a.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const s=this._head;return this._map.delete(s.key),this.removeItem(s),this._size--,s.value}forEach(s,a){const l=this._state;let c=this._head;for(;c;){if(a?s.bind(a)(c.value,c.key,this):s(c.value,c.key,this),this._state!==l)throw new Error("LinkedMap got modified during iteration.");c=c.next}}keys(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:a.key,done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}values(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:a.value,done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}entries(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:[a.key,a.value],done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(s){if(s>=this.size)return;if(s===0){this.clear();return}let a=this._head,l=this.size;for(;a&&l>s;)this._map.delete(a.key),a=a.next,l--;this._head=a,this._size=l,a&&(a.previous=void 0),this._state++}addItemFirst(s){if(!this._head&&!this._tail)this._tail=s;else if(this._head)s.next=this._head,this._head.previous=s;else throw new Error("Invalid list");this._head=s,this._state++}addItemLast(s){if(!this._head&&!this._tail)this._head=s;else if(this._tail)s.previous=this._tail,this._tail.next=s;else throw new Error("Invalid list");this._tail=s,this._state++}removeItem(s){if(s===this._head&&s===this._tail)this._head=void 0,this._tail=void 0;else if(s===this._head){if(!s.next)throw new Error("Invalid list");s.next.previous=void 0,this._head=s.next}else if(s===this._tail){if(!s.previous)throw new Error("Invalid list");s.previous.next=void 0,this._tail=s.previous}else{const a=s.next,l=s.previous;if(!a||!l)throw new Error("Invalid list");a.previous=l,l.next=a}s.next=void 0,s.previous=void 0,this._state++}touch(s,a){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(a!==e.First&&a!==e.Last)){if(a===e.First){if(s===this._head)return;const l=s.next,c=s.previous;s===this._tail?(c.next=void 0,this._tail=c):(l.previous=c,c.next=l),s.previous=void 0,s.next=this._head,this._head.previous=s,this._head=s,this._state++}else if(a===e.Last){if(s===this._tail)return;const l=s.next,c=s.previous;s===this._head?(l.previous=void 0,this._head=l):(l.previous=c,c.next=l),s.next=void 0,s.previous=this._tail,this._tail.next=s,this._tail=s,this._state++}}}toJSON(){const s=[];return this.forEach((a,l)=>{s.push([l,a])}),s}fromJSON(s){this.clear();for(const[a,l]of s)this.set(a,l)}}linkedMap.LinkedMap=n;class A extends n{constructor(s,a=1){super(),this._limit=s,this._ratio=Math.min(Math.max(0,a),1)}get limit(){return this._limit}set limit(s){this._limit=s,this.checkTrim()}get ratio(){return this._ratio}set ratio(s){this._ratio=Math.min(Math.max(0,s),1),this.checkTrim()}get(s,a=e.AsNew){return super.get(s,a)}peek(s){return super.get(s,e.None)}set(s,a){return super.set(s,a,e.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}return linkedMap.LRUCache=A,linkedMap}var disposable={},hasRequiredDisposable;function requireDisposable(){if(hasRequiredDisposable)return disposable;hasRequiredDisposable=1,Object.defineProperty(disposable,"__esModule",{value:!0}),disposable.Disposable=void 0;var r;return(function(e){function n(A){return{dispose:A}}e.create=n})(r||(disposable.Disposable=r={})),disposable}var events={},ral={},hasRequiredRal;function requireRal(){if(hasRequiredRal)return ral;hasRequiredRal=1,Object.defineProperty(ral,"__esModule",{value:!0});let r;function e(){if(r===void 0)throw new Error("No runtime abstraction layer installed");return r}return(function(n){function A(o){if(o===void 0)throw new Error("No runtime abstraction layer provided");r=o}n.install=A})(e||(e={})),ral.default=e,ral}var hasRequiredEvents;function requireEvents(){if(hasRequiredEvents)return events;hasRequiredEvents=1,Object.defineProperty(events,"__esModule",{value:!0}),events.Emitter=events.Event=void 0;const r=requireRal();var e;(function(o){const s={dispose(){}};o.None=function(){return s}})(e||(events.Event=e={}));class n{add(s,a=null,l){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(l)&&l.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let l=!1;for(let c=0,g=this._callbacks.length;c<g;c++)if(this._callbacks[c]===s)if(this._contexts[c]===a){this._callbacks.splice(c,1),this._contexts.splice(c,1);return}else l=!0;if(l)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],l=this._callbacks.slice(0),c=this._contexts.slice(0);for(let g=0,h=l.length;g<h;g++)try{a.push(l[g].apply(c[g],s))}catch(d){(0,r.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class A{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,l)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const c={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),c.dispose=A._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(l)&&l.push(c),c}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return events.Emitter=A,A._noop=function(){},events}var cancellation={},hasRequiredCancellation;function requireCancellation(){if(hasRequiredCancellation)return cancellation;hasRequiredCancellation=1,Object.defineProperty(cancellation,"__esModule",{value:!0}),cancellation.CancellationTokenSource=cancellation.CancellationToken=void 0;const r=requireRal(),e=requireIs$1(),n=requireEvents();var A;(function(l){l.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),l.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:n.Event.None});function c(g){const h=g;return h&&(h===l.None||h===l.Cancelled||e.boolean(h.isCancellationRequested)&&!!h.onCancellationRequested)}l.is=c})(A||(cancellation.CancellationToken=A={}));const o=Object.freeze(function(l,c){const g=(0,r.default)().timer.setTimeout(l.bind(c),0);return{dispose(){g.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=A.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=A.None}}return cancellation.CancellationTokenSource=a,cancellation}var sharedArrayCancellation={},hasRequiredSharedArrayCancellation;function requireSharedArrayCancellation(){if(hasRequiredSharedArrayCancellation)return sharedArrayCancellation;hasRequiredSharedArrayCancellation=1,Object.defineProperty(sharedArrayCancellation,"__esModule",{value:!0}),sharedArrayCancellation.SharedArrayReceiverStrategy=sharedArrayCancellation.SharedArraySenderStrategy=void 0;const r=requireCancellation();var e;(function(a){a.Continue=0,a.Cancelled=1})(e||(e={}));class n{constructor(){this.buffers=new Map}enableCancellation(l){if(l.id===null)return;const c=new SharedArrayBuffer(4),g=new Int32Array(c,0,1);g[0]=e.Continue,this.buffers.set(l.id,c),l.$cancellationData=c}async sendCancellation(l,c){const g=this.buffers.get(c);if(g===void 0)return;const h=new Int32Array(g,0,1);Atomics.store(h,0,e.Cancelled)}cleanup(l){this.buffers.delete(l)}dispose(){this.buffers.clear()}}sharedArrayCancellation.SharedArraySenderStrategy=n;class A{constructor(l){this.data=new Int32Array(l,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===e.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class o{constructor(l){this.token=new A(l)}cancel(){}dispose(){}}class s{constructor(){this.kind="request"}createCancellationTokenSource(l){const c=l.$cancellationData;return c===void 0?new r.CancellationTokenSource:new o(c)}}return sharedArrayCancellation.SharedArrayReceiverStrategy=s,sharedArrayCancellation}var messageReader={},semaphore={},hasRequiredSemaphore;function requireSemaphore(){if(hasRequiredSemaphore)return semaphore;hasRequiredSemaphore=1,Object.defineProperty(semaphore,"__esModule",{value:!0}),semaphore.Semaphore=void 0;const r=requireRal();class e{constructor(A=1){if(A<=0)throw new Error("Capacity must be greater than 0");this._capacity=A,this._active=0,this._waiting=[]}lock(A){return new Promise((o,s)=>{this._waiting.push({thunk:A,resolve:o,reject:s}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,r.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;const A=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{const o=A.thunk();o instanceof Promise?o.then(s=>{this._active--,A.resolve(s),this.runNext()},s=>{this._active--,A.reject(s),this.runNext()}):(this._active--,A.resolve(o),this.runNext())}catch(o){this._active--,A.reject(o),this.runNext()}}}return semaphore.Semaphore=e,semaphore}var hasRequiredMessageReader;function requireMessageReader(){if(hasRequiredMessageReader)return messageReader;hasRequiredMessageReader=1,Object.defineProperty(messageReader,"__esModule",{value:!0}),messageReader.ReadableStreamMessageReader=messageReader.AbstractMessageReader=messageReader.MessageReader=void 0;const r=requireRal(),e=requireIs$1(),n=requireEvents(),A=requireSemaphore();var o;(function(c){function g(h){let d=h;return d&&e.func(d.listen)&&e.func(d.dispose)&&e.func(d.onError)&&e.func(d.onClose)&&e.func(d.onPartialMessage)}c.is=g})(o||(messageReader.MessageReader=o={}));class s{constructor(){this.errorEmitter=new n.Emitter,this.closeEmitter=new n.Emitter,this.partialMessageEmitter=new n.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(g){this.errorEmitter.fire(this.asError(g))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(g){this.partialMessageEmitter.fire(g)}asError(g){return g instanceof Error?g:new Error(`Reader received error. Reason: ${e.string(g.message)?g.message:"unknown"}`)}}messageReader.AbstractMessageReader=s;var a;(function(c){function g(h){let d,u;const f=new Map;let I;const p=new Map;if(h===void 0||typeof h=="string")d=h??"utf-8";else{if(d=h.charset??"utf-8",h.contentDecoder!==void 0&&(u=h.contentDecoder,f.set(u.name,u)),h.contentDecoders!==void 0)for(const m of h.contentDecoders)f.set(m.name,m);if(h.contentTypeDecoder!==void 0&&(I=h.contentTypeDecoder,p.set(I.name,I)),h.contentTypeDecoders!==void 0)for(const m of h.contentTypeDecoders)p.set(m.name,m)}return I===void 0&&(I=(0,r.default)().applicationJson.decoder,p.set(I.name,I)),{charset:d,contentDecoder:u,contentDecoders:f,contentTypeDecoder:I,contentTypeDecoders:p}}c.fromOptions=g})(a||(a={}));class l extends s{constructor(g,h){super(),this.readable=g,this.options=a.fromOptions(h),this.buffer=(0,r.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new A.Semaphore(1)}set partialMessageTimeout(g){this._partialMessageTimeout=g}get partialMessageTimeout(){return this._partialMessageTimeout}listen(g){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=g;const h=this.readable.onData(d=>{this.onData(d)});return this.readable.onError(d=>this.fireError(d)),this.readable.onClose(()=>this.fireClose()),h}onData(g){try{for(this.buffer.append(g);;){if(this.nextMessageLength===-1){const d=this.buffer.tryReadHeaders(!0);if(!d)return;const u=d.get("content-length");if(!u){this.fireError(new Error(`Header must provide a Content-Length property.
|
|
27
|
+
`),A=[];let o=0,s=0;for(const a of n)A.push({nodeIdx:e,targetRow:s,targetCol:0,targetPos:o}),s++,o+=a.length+1,e+=a.length+1;return{content:r,rawTextMap:A}}function normalizeSiblings(r,e){if(r.childCount<2)return r;for(let n=e.depth;n>=0;n--){let o=e.node(n).contentMatchAt(e.index(n)),s,a=[];if(r.forEach(l=>{if(!a)return;let c=o.findWrapping(l.type),g;if(!c)return a=null;if(g=a.length&&s.length&&addToSibling(c,s,l,a[a.length-1],0))a[a.length-1]=g;else{a.length&&(a[a.length-1]=closeRight(a[a.length-1],s.length));let h=withWrappers(l,c);a.push(h),o=o.matchType(h.type),s=c}}),a)return Fragment.from(a)}return r}function withWrappers(r,e,n=0){for(let A=e.length-1;A>=n;A--)r=e[A].create(null,Fragment.from(r));return r}function addToSibling(r,e,n,A,o){if(o<r.length&&o<e.length&&r[o]==e[o]){let s=addToSibling(r,e,n,A.lastChild,o+1);if(s)return A.copy(A.content.replaceChild(A.childCount-1,s));if(A.contentMatchAt(A.childCount).matchType(o==r.length-1?n.type:r[o+1]))return A.copy(A.content.append(Fragment.from(withWrappers(n,r,o+1))))}}function closeRight(r,e){if(e==0)return r;let n=r.content.replaceChild(r.childCount-1,closeRight(r.lastChild,e-1)),A=r.contentMatchAt(r.childCount).fillBefore(Fragment.empty,!0);return r.copy(n.append(A))}function closeRange(r,e,n,A,o,s){let a=e<0?r.firstChild:r.lastChild,l=a.content;return r.childCount>1&&(s=0),o<A-1&&(l=closeRange(l,e,n,A,o+1,s)),o>=n&&(l=e<0?a.contentMatchAt(0).fillBefore(l,s<=o).append(l):l.append(a.contentMatchAt(a.childCount).fillBefore(Fragment.empty,!0))),r.replaceChild(e<0?0:r.childCount-1,a.copy(l))}function closeSlice(r,e,n){return e<r.openStart&&(r=new Slice(closeRange(r.content,-1,e,r.openStart,0,r.openEnd),e,r.openEnd)),n<r.openEnd&&(r=new Slice(closeRange(r.content,1,n,r.openEnd,0,0),r.openStart,n)),r}function sliceSingleNode(r){return r.openStart==0&&r.openEnd==0&&r.content.childCount==1?r.content.firstChild:null}function fixSlice(r,e){if(r=Slice.maxOpen(normalizeSiblings(r.content,e),!0),r.openStart||r.openEnd){let n=0,A=0;for(let o=r.content.firstChild;n<r.openStart&&!o.type.spec.isolating;n++,o=o.firstChild);for(let o=r.content.lastChild;A<r.openEnd&&!o.type.spec.isolating;A++,o=o.lastChild);r=closeSlice(r,n,A)}return r}function sliceHasOnlyText(r){return r.content.content.every(e=>e.isInline)}const selectAll$1=()=>function(r,e,n){const A=r.tr.setSelection(new AllSelection(r.doc));return n&&n.dispatch(A),!0};function textPositionsToResolvedPos(r,e,n){const A=r.map(c=>-1);let o=0,s=!1;function a(c,g,h,d){if(s){for(let u=0;u<r.length;u++){const f=r[u];f>=o&&f<o+d&&(A[u]=c+(f-o))}o+=d}}function l(c,g=0,h=0,d=0){g===1&&h===n&&(s=!0);let u=0;c.isText&&c.text?u=c.text?.length:c.isLeaf&&(u=1),u>0&&a(d,g,h,u),c.forEach((f,I,p)=>{l(f,g+1,p,d+I+1)})}if(l(e),s)for(let c=0;c<r.length;c++){const g=r[c];A[c]===-1&&(g<o?A[c]=1:A[c]=e.nodeSize-1)}return A.map(c=>e.resolve(c-1))}const selectText=(r,e,n=0)=>function(A,o,s){const[a,l]=textPositionsToResolvedPos([r+e,r],A.doc,n),c=A.tr.setSelection(new TextSelection(l,a));return s&&s.dispatch(c),!0};class ExtensionSelection extends Extension{constructor(){super(...arguments),this.name="selection"}extractSelection(){const e=this.editor.state,{from:n,to:A}=e.selection,o=e.doc.slice(n,A);if(sliceHasOnlyText(o)){const s=e.schema.nodes.paragraph.create(null,o.content);return e.schema.topNodeType.createAndFill(null,[s])}return e.schema.topNodeType.createAndFill(null,o.content)}replaceSelection(e){const A=this.editor.view,o=this.editor.state;let s;e.type?.name==="doc"&&(e=createNodeFromObject(e.toJSON(),this.editor.schema)),s=new Slice(e.content,1,1);const a=o.selection.$from;s=fixSlice(s,a);let l=sliceSingleNode(s),c=l?o.tr.replaceSelectionWith(l,!1):o.tr.replaceSelection(s);A.dispatch(c.scrollIntoView())}appendSelection(e){const n=this.editor.view,{state:A}=n;let o;e.type?.name==="doc"&&(e=createNodeFromObject(e.toJSON(),this.editor.schema)),o=new Slice(e.content,1,1);const s=n.state.selection.$from;o=fixSlice(o,s);const a=A.tr.insert(n.state.selection.to,o.content);n.dispatch(a.scrollIntoView())}getCommandFactories(e){return this.editor=e,{selectAll:()=>selectAll$1(),selectText:(...n)=>selectText(...n)}}}const pcBaseKeymap={"Mod-Enter":"exitCode",Backspace:"backspace","Mod-Backspace":"backspace","Shift-Backspace":"backspace",Delete:"del","Mod-Delete":"del","Mod-a":"selectAll"},macBaseKeymap={...pcBaseKeymap,"Ctrl-h":pcBaseKeymap.Backspace,"Alt-Backspace":pcBaseKeymap["Mod-Backspace"],"Ctrl-d":pcBaseKeymap.Delete,"Ctrl-Alt-Backspace":pcBaseKeymap["Mod-Delete"],"Alt-Delete":pcBaseKeymap["Mod-Delete"],"Alt-d":pcBaseKeymap["Mod-Delete"],"Ctrl-a":"selectTextblockStart","Ctrl-e":"selectTextblockEnd"},mac=/(Mac|iPhone|iPod|iPad)/i.test(navigator?.platform),baseKeymap=mac?macBaseKeymap:pcBaseKeymap;class ExtensionBaseKeymap extends Extension{constructor(){super(...arguments),this.name="base-keymap"}getKeyboardShortcuts(){const e={Enter:"enter","Alt-ArrowUp":"joinUp","Alt-ArrowDown":"joinDown","Mod-BracketLeft":"lift",Escape:"selectParentNode"};for(const n in baseKeymap)e[n]=baseKeymap[n];return e}}function dropCursor(r={}){return new Plugin({key:new PluginKey("drop-cursor"),view(e){return new DropCursorView(e,r)}})}class DropCursorView{constructor(e,n){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=n.width??1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(A=>{let o=s=>{this[A](s)};return e.dom.addEventListener(A,o),{name:A,handler:o}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,A,o=this.editorView.dom,s=o.getBoundingClientRect(),a=s.width/o.offsetWidth,l=s.height/o.offsetHeight;if(n){let d=e.nodeBefore,u=e.nodeAfter;if(d||u){let f=this.editorView.nodeDOM(this.cursorPos-(d?d.nodeSize:0));if(f){let I=f.getBoundingClientRect(),p=d?I.bottom:I.top;d&&u&&(p=(p+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let m=this.width/2*l;A={left:I.left,right:I.right,top:p-m,bottom:p+m}}}}if(!A){let d=this.editorView.coordsAtPos(this.cursorPos),u=this.width/2*a;A={left:d.left-u,right:d.left+u,top:d.top,bottom:d.bottom}}let c=this.editorView.dom.offsetParent;this.element||(this.element=c.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let g,h;if(!c||c==document.body&&getComputedStyle(c).position=="static")g=-pageXOffset,h=-pageYOffset;else{let d=c.getBoundingClientRect(),u=d.width/c.offsetWidth,f=d.height/c.offsetHeight;g=d.left-c.scrollLeft*u,h=d.top-c.scrollTop*f}this.element.style.left=(A.left-g)/a+"px",this.element.style.top=(A.top-h)/l+"px",this.element.style.width=(A.right-A.left)/a+"px",this.element.style.height=(A.bottom-A.top)/l+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),A=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),o=A&&A.type.spec.disableDropCursor,s=typeof o=="function"?o(this.editorView,n,e):o;if(n&&!s){let a=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let l=dropPoint(this.editorView.state.doc,a,this.editorView.dragging.slice);l!=null&&(a=l)}this.setCursor(a),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class ExtensionDropcursor extends Extension{constructor(){super(...arguments),this.name="dropcursor",this.options={color:"currentColor",width:1,class:void 0}}getProseMirrorPlugins(){return[dropCursor(this.options)]}}class GapCursor extends Selection{constructor(e){super(e,e),this.visible=!1}map(e,n){let A=e.resolve(n.map(this.head));return GapCursor.valid(A)?new GapCursor(A):Selection.near(A)}content(){return Slice.empty}eq(e){return e instanceof GapCursor&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSONToGapCursor(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new GapCursor(e.resolve(n.pos))}getBookmark(){return new GapBookmark(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!closedBefore(e)||!closedAfter(e))return!1;let A=n.type.spec.allowGapCursor;if(A!=null)return A;let o=n.contentMatchAt(e.index()).defaultType;return o&&o.isTextblock}static findGapCursorFrom(e,n,A=!1){e:for(;;){if(!A&&GapCursor.valid(e))return e;let o=e.pos,s=null;for(let a=e.depth;;a--){let l=e.node(a);if(n>0?e.indexAfter(a)<l.childCount:e.index(a)>0){s=l.child(n>0?e.indexAfter(a):e.index(a)-1);break}else if(a==0)return null;o+=n;let c=e.doc.resolve(o);if(GapCursor.valid(c))return c}for(;;){let a=n>0?s.firstChild:s.lastChild;if(!a){if(s.isAtom&&!s.isText&&!NodeSelection.isSelectable(s)){e=e.doc.resolve(o+s.nodeSize*n),A=!1;continue e}break}s=a,o+=n;let l=e.doc.resolve(o);if(GapCursor.valid(l))return l}return null}}}Selection.jsonID("gapcursor",GapCursor);class GapBookmark{constructor(e){this.pos=e}map(e){return new GapBookmark(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return GapCursor.valid(n)?new GapCursor(n):Selection.near(n)}}function closedBefore(r){for(let e=r.depth;e>=0;e--){let n=r.index(e),A=r.node(e);if(n==0){if(A.type.spec.isolating)return!0;continue}for(let o=A.child(n-1);;o=o.lastChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}function closedAfter(r){for(let e=r.depth;e>=0;e--){let n=r.indexAfter(e),A=r.node(e);if(n==A.childCount){if(A.type.spec.isolating)return!0;continue}for(let o=A.child(n);;o=o.firstChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}function gapCursor(){return new Plugin({key:new PluginKey("gap-cursor"),props:{decorations:drawGapCursor,createSelectionBetween(r,e,n){return e.pos==n.pos&&GapCursor.valid(n)?new GapCursor(n):null},handleClick,handleKeyDown:handleKeyDown$1,handleDOMEvents:{beforeinput}}})}const handleKeyDown$1=keydownHandler({ArrowLeft:arrow$1("horiz",-1),ArrowRight:arrow$1("horiz",1),ArrowUp:arrow$1("vert",-1),ArrowDown:arrow$1("vert",1)});function arrow$1(r,e){const n=r=="vert"?e>0?"down":"up":e>0?"right":"left";return function(A,o,s){let a=A.selection,l=e>0?a.$to:a.$from,c=a.empty;if(a instanceof TextSelection){if(!s.endOfTextblock(n)||l.depth==0)return!1;c=!1,l=A.doc.resolve(e>0?l.after():l.before())}let g=GapCursor.findGapCursorFrom(l,e,c);return g?(o&&o(A.tr.setSelection(new GapCursor(g))),!0):!1}}function handleClick(r,e,n){if(!r||!r.editable)return!1;let A=r.state.doc.resolve(e);if(!GapCursor.valid(A))return!1;let o=r.posAtCoords({left:n.clientX,top:n.clientY});return o&&o.inside>-1&&NodeSelection.isSelectable(r.state.doc.nodeAt(o.inside))?!1:(r.dispatch(r.state.tr.setSelection(new GapCursor(A))),!0)}function beforeinput(r,e){if(e.inputType!="insertCompositionText"||!(r.state.selection instanceof GapCursor))return!1;let{$from:n}=r.state.selection,A=n.parent.contentMatchAt(n.index()).findWrapping(r.state.schema.nodes.text);if(!A)return!1;let o=Fragment.empty;for(let a=A.length-1;a>=0;a--)o=Fragment.from(A[a].createAndFill(null,o));let s=r.state.tr.replace(n.pos,n.pos,new Slice(o,0,0));return s.setSelection(TextSelection.near(s.doc.resolve(n.pos+1))),r.dispatch(s),!1}function drawGapCursor(r){if(!(r.selection instanceof GapCursor))return null;let e=document.createElement("div");return e.className="kb-gapcursor",DecorationSet.create(r.doc,[Decoration$1.widget(r.selection.head,e,{key:"gapcursor"})])}class ExtensionGapcursor extends Extension{constructor(){super(...arguments),this.name="gapcursor",this.options={color:"currentColor",width:1,class:void 0}}getProseMirrorPlugins(){return[gapCursor()]}}function getHTMLFromFragment(r,e){const n=globalThis.document,A=DOMSerializer.fromSchema(e).serializeFragment(r,{document:n}),s=n.implementation.createHTMLDocument().createElement("div");return s.appendChild(A),s.innerHTML}const removeWhitespaces$1=r=>{const e=r.childNodes;for(let n=e.length-1;n>=0;n-=1){const A=e[n];A.nodeType===3&&A.nodeValue&&/^(\n\s\s|\n)$/.test(A.nodeValue)?r.removeChild(A):A.nodeType===1&&removeWhitespaces$1(A)}return r};function elementFromString$1(r){const e=`<html lang="en"><body>${r}</body></html>`,n=new globalThis.DOMParser().parseFromString(e,"text/html").body;return removeWhitespaces$1(n)}function prepareContentCheckSchema(r){return new Schema({topNode:r.spec.topNode,marks:r.spec.marks,nodes:r.spec.nodes.append({__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:n=>{const A=typeof n=="string"?n:n.outerHTML;throw new Error("Invalid HTML content",{cause:new Error(`Invalid element found: ${A}`)})}}]}})})}function createNodeFromHTML(r,e,n){if(n={parseOptions:{},...n},n.errorOnInvalidContent){const o=prepareContentCheckSchema(e);DOMParser$1.fromSchema(o).parse(elementFromString$1(r),n.parseOptions)}return DOMParser$1.fromSchema(e).parse(elementFromString$1(r),n.parseOptions)}class ExtensionHtml extends Extension{constructor(){super(...arguments),this.name="html"}getConverters(e,n){return{"text/html":{fromDoc:async A=>{const o=getHTMLFromFragment(A.content,e.schema);return new TextEncoder().encode(o)},toDoc:async A=>{const o=new TextDecoder().decode(A);return createNodeFromHTML(o,e.schema)}}}}}const mediaUploadKey=new PluginKey("mediaUpload");function fileToDataURL(r){return new Promise((e,n)=>{const A=new FileReader;A.onload=()=>e(A.result),A.onerror=n,A.readAsDataURL(r)})}function fileToObjectURL(r){return URL.createObjectURL(r)}function isImage(r,e){return e.some(n=>r.type.match(n))}function isVideo(r,e){return e.some(n=>r.type.match(n))}function insertImage(r,e,n,A,o){const{schema:s}=r.state,a=s.nodes.image;if(!a){console.warn("Image node type not found in schema");return}const l=a.create({src:n,alt:A,title:o}),c=r.state.tr.insert(e,l);r.dispatch(c)}function insertVideo(r,e,n,A,o,s){const{schema:a}=r.state,l=a.nodes.video;if(!l){console.warn("Video node type not found in schema");return}const c=l.create({src:n,title:A,width:o,height:s,controls:!0}),g=r.state.tr.insert(e,c);r.dispatch(g)}async function handleMediaFiles(r,e,n,A){const{maxFileSize:o=10*1024*1024,maxVideoFileSize:s=50*1024*1024,allowedImageTypes:a=["^image/"],allowedVideoTypes:l=["^video/"],uploadHandler:c}=A;for(const g of e){const h=isImage(g,a),d=isVideo(g,l);if(!h&&!d)continue;const u=d?s:o;if(g.size>u){console.warn(`${d?"Video":"Image"} file "${g.name}" is too large (${(g.size/1024/1024).toFixed(2)}MB). Maximum size is ${(u/1024/1024).toFixed(2)}MB.`);continue}try{console.log(`Processing ${d?"video":"image"}: ${g.name} (${(g.size/1024/1024).toFixed(2)}MB, ${g.type})`);let f;c?f=await c(g):d&&A.useObjectURLForVideos!==!1?(f=fileToObjectURL(g),console.log("Using object URL for video:",f)):(f=await fileToDataURL(g),console.log(`${d?"Video":"Image"} converted to data URL, length: ${f.length} characters`)),d?(insertVideo(r,n,f,g.name),console.log("Video inserted into editor")):(insertImage(r,n,f,g.name),console.log("Image inserted into editor")),n+=1}catch(f){console.error(`Failed to process ${d?"video":"image"} "${g.name}":`,f)}}}function createMediaUploadPlugin(r={}){return new Plugin({key:mediaUploadKey,props:{handleDrop(e,n,A,o){if(o)return!1;const s=Array.from(n.dataTransfer?.files||[]);if(s.length===0)return!1;const{allowedImageTypes:a=["^image/"],allowedVideoTypes:l=["^video/"]}=r;if(!s.some(d=>isImage(d,a)||isVideo(d,l)))return!1;n.preventDefault();const g={left:n.clientX,top:n.clientY},h=e.posAtCoords(g);return h?(handleMediaFiles(e,s,h.pos,r),!0):!1},handlePaste(e,n,A){const s=Array.from(n.clipboardData?.items||[]).filter(c=>c.type.startsWith("image/"));if(s.length===0)return!1;n.preventDefault();const a=[];for(const c of s){const g=c.getAsFile();g&&a.push(g)}if(a.length===0)return!1;const{from:l}=e.state.selection;return handleMediaFiles(e,a,l,r),!0}}})}class ExtensionMediaUpload extends Extension{constructor(e={}){super(e),this.config=e,this.name="mediaUpload"}getProseMirrorPlugins(){return[createMediaUploadPlugin(this.config)]}}class ExtensionTextAlign extends Extension{constructor(){super(...arguments),this.name="textAlign"}getCommandFactories(e){const n=A=>(o,s)=>{const{selection:a,tr:l}=o,{from:c,to:g}=a;let h=!1;return o.doc.nodesBetween(c,g,(d,u)=>{d.isBlock&&d.type.spec.attrs&&"textAlign"in d.type.spec.attrs&&(l.setNodeMarkup(u,void 0,{...d.attrs,textAlign:A}),h=!0)}),h&&s&&s(l),h};return{setTextAlignLeft:()=>n("left"),setTextAlignCenter:()=>n("center"),setTextAlignRight:()=>n("right"),setTextAlignJustify:()=>n("justify")}}}const userColors=[{dark:"#30bced",light:"#30bced"},{dark:"#6eeb83",light:"#6eeb83"},{dark:"#ffbc42",light:"#ffbc42"},{dark:"#ecd444",light:"#ecd444"},{dark:"#ee6352",light:"#ee6352"},{dark:"#9ac2c9",light:"#9ac2c9"},{dark:"#8acb88",light:"#8acb88"},{dark:"#1be7ff",light:"#1be7ff"}];function hashString(r){let e=0;for(let n=0;n<r.length;n++)e=(e<<5)-e+r.charCodeAt(n),e|=0;return Math.abs(e)}const defaultColorMapper=(r,e)=>{const n=hashString(e.id);let A=hashString(r.id);return n===A&&A++,userColors[A%userColors.length]};function generateBlankUser(){return{id:"",name:"User unset"}}function generateRandomUser(){const r=Math.random()*100;return{id:"random:"+r,name:"Anonymous "+Math.floor(r)}}const userPluginKey=new PluginKey("user"),createUserPlugin=()=>new Plugin({key:userPluginKey,state:{init(){return{user:generateRandomUser()}},apply:(r,e)=>{const n=r.getMeta("changeUser");return n&&(e.user={...n.user}),e}}});class ExtensionUser extends Extension{constructor(){super(...arguments),this.name="user"}getCommandFactories(){return{changeUser:n=>(A,o)=>{const s=A.tr;return s.setMeta("changeUser",{user:n}),o&&o(s),!0}}}getProseMirrorPlugins(){return[createUserPlugin()]}}const remoteSelectionPluginKey=new PluginKey("remote-selection"),defaultCursorBuilder=(r,e,n)=>{const o=n(r,e).light,s=document.createElement("span");s.classList.add("kb-yjs__cursor"),s.setAttribute("style",`border-color: ${o};`);const a=document.createElement("div");a.setAttribute("style",`background-color: ${o}`),a.insertBefore(document.createTextNode(r.name),null);const l=document.createTextNode(""),c=document.createTextNode("");return s.insertBefore(l,null),s.insertBefore(a,null),s.insertBefore(c,null),s},defaultSelectionBuilder=(r,e,n)=>({style:`background-color: ${n(r,e).light}70`,class:"kb-yjs__selection"}),createDecorations=(r,e,n,A)=>{const o=[],s=e.remoteStates;for(const a of s)if(a.cursor!=null){const l=a.user,c=a.cursor;let g=c.anchor||null,h=c.head||null;if(g!==null&&h!==null){const d=Math.max(r.doc.content.size-1,0);g=Math.min(g,d),h=Math.min(h,d),o.push(Decoration$1.widget(h,()=>n(l,e.me,e.colorMapper),{key:a.clientId+l.id+l.name,side:10}));const u=Math.min(g,h),f=Math.max(g,h);o.push(Decoration$1.inline(u,f,A(l,e.me,e.colorMapper),{inclusiveEnd:!0,inclusiveStart:!1}))}}return DecorationSet.create(r.doc,o)},remoteSelectionPlugin=({cursorBuilder:r=defaultCursorBuilder,selectionBuilder:e=defaultSelectionBuilder}={})=>new Plugin({key:remoteSelectionPluginKey,state:{init(){return{remoteStates:[],me:generateBlankUser(),colorMapper:defaultColorMapper}},apply(n,A){const o=n.getMeta("changeUser");o&&(A.me={...o.user});const s=n.getMeta("setColorMapper");s&&(A.colorMapper=s.colorMapper);const a=n.getMeta("remoteSelectionChange");return a&&(A.remoteStates=[...a.remoteStates]),A}},props:{decorations(n){const A=this.getState(n);return A?createDecorations(n,A,r,e):DecorationSet.empty}}});class ExtensionRemoteSelection extends Extension{constructor(){super(...arguments),this.name="remote-selection"}getProseMirrorPlugins(){return[remoteSelectionPlugin()]}}function generateId(){return String(Math.random())}function buildPairingTransaction(r,e,n){const{doc:A}=r,o=new Map,s=[];A.descendants((l,c)=>{l.type.name===e&&s.push({node:l,pos:c})});let a=!1;for(const{node:l,pos:c}of s){const g=l.attrs.content?.trim();if(!g)continue;const h=g.match(/^[^0-9a-z\/]*(\/?)[\s]*([\w]+)/i),d=h[1]==="/",u=h[2];if(!d)o.has(u)||o.set(u,[]),o.get(u).push({node:l,pos:c});else{const f=o.get(u);if(f&&f.length>0){const I=f.pop(),p=generateId();n.setNodeMarkup(I.pos,void 0,{...I.node.attrs,id:p,nesting:NESTING_OPENING$1,error:void 0}),n.setNodeMarkup(c,void 0,{...l.attrs,id:p,nesting:NESTING_CLOSING$1,error:void 0})}else n.setNodeMarkup(c,void 0,{...l.attrs,error:"Closing shortcode without matching opening",nesting:NESTING_CLOSING$1});a=!0}}for(const[,l]of o.entries())for(const{node:c,pos:g}of l)n.setNodeMarkup(g,void 0,{...c.attrs,nesting:NESTING_SELF_CLOSING$1,id:void 0}),a=!0;return a?n:null}const createPairingPlugin=r=>new Plugin({appendTransaction(e,n,A){const o=new Set;for(const a of e)if(a.docChanged){for(const l of a.steps)if((l instanceof ReplaceStep||l instanceof ReplaceAroundStep)&&(l.slice&&l.slice.content.descendants(c=>{r.includes(c.type.name)&&o.add(c.type.name)}),l.from!=null&&l.to!=null&&l.from!==l.to&&n.doc.nodesBetween(l.from,l.to,c=>{r.includes(c.type.name)&&o.add(c.type.name)}),o.size===r.length))break;if(o.size===r.length)break}if(o.size===0)return null;const s=A.tr;for(const a of o)buildPairingTransaction(A,a,s);return s}});class ExtensionPairing extends Extension{constructor(){super(...arguments),this.name="pairing-nodes"}getProseMirrorPlugins(){return[createPairingPlugin(["shortcode_inline"])]}}class MarkLink extends Mark{constructor(){super(...arguments),this.name="link",this.requires=["doc"]}getMarkSpec(){return{attrs:{href:{},title:{default:void 0},origUrl:{default:void 0},mdTemplate:{default:void 0}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs(e){return{href:e.getAttribute("href"),title:e.getAttribute("title")}}}],toDOM(e){const{href:n,title:A}=e.attrs;return["a",{href:n,title:A},0]}}}}class MarkStrong extends Mark{constructor(){super(...arguments),this.name="strong",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:e=>e.style.fontWeight!="normal"&&null},{style:"font-weight=400",clearMark:e=>e.type.name=="strong"},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],toDOM(){return["strong",0]}}}getCommandFactories(e,n){return{toggleStrong:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-b":"toggleStrong","Mod-B":"toggleStrong"}}}class MarkItalic extends Mark{constructor(){super(...arguments),this.name="em",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-assets=italic"},{style:"font-assets=normal",clearMark:e=>e.type.name=="em"}],toDOM(){return["em",0]}}}getCommandFactories(e,n){return{toggleItalic:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-i":"toggleItalic","Mod-I":"toggleItalic"}}}class MarkUnderline extends Mark{constructor(){super(...arguments),this.name="underline",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"u"}],toDOM(){return["u",0]}}}getCommandFactories(e,n){return{toggleUnderline:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-u":"toggleUnderline","Mod-U":"toggleUnderline"}}}class MarkStrike extends Mark{constructor(){super(...arguments),this.name="strike",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"strike"}],toDOM(){return["strike",0]}}}getCommandFactories(e,n){return{toggleStrike:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-s":"toggleStrike","Mod-S":"toggleStrike"}}}class MarkCode extends Mark{constructor(){super(...arguments),this.name="code",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"code"}],toDOM(){return["code",0]}}}getCommandFactories(e,n){return{toggleCode:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-`":"toggleCode"}}}class MarkChange extends Mark{constructor(){super(...arguments),this.name="change",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[],toDOM(){return["change",0]}}}}class MarkBookmark extends Mark{constructor(){super(...arguments),this.name="bookmark",this.requires=["doc"]}getMarkSpec(){return{attrs:{id:{}},parseDOM:[],toDOM(e){return["a",{id:e.attrs.id},0]}}}}class MarkTextColor extends Mark{constructor(){super(...arguments),this.name="textColor"}getMarkSpec(){return{attrs:{color:{default:null}},parseDOM:[{tag:'span[style*="color"]',getAttrs(e){const n=e.style.color;return n?{color:n}:!1}}],toDOM(e){const{color:n}=e.attrs;return n?["span",{style:`color: ${n}`},0]:["span",0]}}}}class MarkHighlight extends Mark{constructor(){super(...arguments),this.name="highlight"}getMarkSpec(){return{attrs:{color:{default:null}},parseDOM:[{tag:"mark",getAttrs(e){const n=e.style.backgroundColor;return n?{color:n}:{color:"yellow"}}},{tag:'span[style*="background-color"]',getAttrs(e){const n=e.style.backgroundColor;return n?{color:n}:!1}}],toDOM(e){const{color:n}=e.attrs;return["mark",{style:`background-color: ${n||"yellow"}; color: inherit;`},0]}}}}class MarkSuperscript extends Mark{constructor(){super(...arguments),this.name="superscript",this.requires=["doc"]}getMarkSpec(){return{excludes:"subscript",parseDOM:[{tag:"sup"},{style:"vertical-align",getAttrs:e=>e==="super"&&null}],toDOM(){return["sup",0]}}}getCommandFactories(e,n){return{toggleSuperscript:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-Shift-.":"toggleSuperscript"}}}class MarkSubscript extends Mark{constructor(){super(...arguments),this.name="subscript",this.requires=["doc"]}getMarkSpec(){return{excludes:"superscript",parseDOM:[{tag:"sub"},{style:"vertical-align",getAttrs:e=>e==="sub"&&null}],toDOM(){return["sub",0]}}}getCommandFactories(e,n){return{toggleSubscript:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-Shift-,":"toggleSubscript"}}}class NodeDocument extends Node$1{constructor(){super(...arguments),this.name="doc"}getNodeSpec(){return{content:"block+",marks:"code em strong link bookmark",EMPTY_DOC:{type:this.name,content:[{type:"paragraph",content:[]}]}}}}class NodeText extends Node$1{constructor(){super(...arguments),this.name="text"}getNodeSpec(){return{group:"inline"}}}function wrappingInputRule(r,e,n=null,A){return new InputRule(r,(o,s,a,l,c)=>{o||(o=s.tr);const g=n instanceof Function?n(a):n;o=o.delete(l,c);const d=o.doc.resolve(l).blockRange(),u=d&&findWrapping(d,e,g);if(!u)return null;o.wrap(d,u);const f=o.doc.resolve(l-1).nodeBefore;return f&&f.type==e&&canJoin(o.doc,l-1)&&(!A||A(a,f))&&o.join(l-1),o})}function textblockTypeInputRule(r,e,n=null){return new InputRule(r,(A,o,s,a,l)=>{A||(A=o.tr);const c=o.doc.resolve(a),g=n instanceof Function?n(s):n;return c.node(-1).canReplaceWith(c.index(-1),c.indexAfter(-1),e)?A.delete(a,l).setBlockType(a,a,e,g):null})}function replaceInlineNode(r,e,n=null){return new InputRule(r,(A,o,s,a,l)=>{A||(A=o.tr);const c=n instanceof Function?n(s):n;if(o.doc.resolve(a).parent.type===o.schema.nodes.code_block)return A;const h=e.createAndFill(c),d=A.mapping.map(a),u=A.mapping.map(l);return A.replaceWith(d,u,Fragment.from(h))})}let NodeCodeBlock$1=class extends Node$1{constructor(){super(...arguments),this.name="code_block"}getNodeSpec(){return{content:"text*",marks:"",group:"block",code:!0,defining:!0,attrs:{lang:{default:void 0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs(e){return{lang:e.getAttribute("lang")}}}],toDOM(e){const{lang:n}=e.attrs;return["pre",{lang:n},["code",0]]}}}getInputRules(e){return[textblockTypeInputRule(/^```$/,e)]}};class NodeBookmark extends Node$1{constructor(){super(...arguments),this.name="node_bookmark",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,atom:!0,attrs:{id:{},nesting:{default:NESTING_SELF_CLOSING$1}},parseDOM:[],toDOM(e){return["a",{id:e.attrs.id},0]}}}}class NodeParagraph extends Node$1{constructor(){super(...arguments),this.name="paragraph",this.requires=["doc"]}getNodeSpec(){return{content:"inline*",group:"block",attrs:{textAlign:{default:void 0}},parseDOM:[{tag:"p",getAttrs(e){const A=e.style.textAlign;return A==="center"||A==="right"||A==="justify"?{textAlign:A}:!1}}],toDOM(e){const n=e.attrs.textAlign||"left";return["center","right","justify"].includes(n)?["p",{style:`text-align: ${n}`},0]:["p",0]}}}getCommandFactories(e,n){return{setParagraph:()=>e.commandFactories.setBlockType(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-0":"setParagraph"}}}class NodeHardBreak extends Node$1{constructor(){super(...arguments),this.name="br",this.requires=["doc"],this.options={keepMarks:!0}}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseDOM:[{tag:"br"}],toDOM(){return["br"]}}}getCommandFactories(e,n){const A=firstCommand(e.run.exitCode);return{setHardBreak:()=>A}}getKeyboardShortcuts(){const e=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator?.platform):!1,n={"Ctrl-Enter":"setHardBreak"};return e&&(n["Mod-Enter"]="setHardBreak",n["Shift-Enter"]="setHardBreak"),n}}class NodeSoftBreak extends Node$1{constructor(){super(...arguments),this.name="softbreak",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"wbr"}],toDOM(){return["wbr"]}}}}class NodeHorizontalRule extends Node$1{constructor(){super(...arguments),this.name="hr",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",parseDOM:[{tag:"hr"}],toDOM(){return["hr"]}}}getCommandFactories(e,n){return{setHorizontalRule:()=>(A,o)=>(o&&o(A.tr.replaceSelectionWith(n.create()).scrollIntoView()),!0)}}getKeyboardShortcuts(){return{"Mod-_":"setHorizontalRule"}}}class NodeOrderedList extends Node$1{constructor(){super(...arguments),this.name="ordered_list",this.requires=["doc"],this.attributes={type:{default:"1",fromDom(e){return e.hasAttribute("type")?e.getAttribute("type"):"1"}},start:{default:void 0,fromDom(e){return e.hasAttribute("start")?+e.getAttribute("start"):void 0}},id:{default:void 0},continue:{default:void 0},odtMarginLeft:{default:void 0}}}getNodeSpec(){return{group:"block",content:"list_item+",parseDOM:[{tag:"ol",getAttrs:e=>setHtmlAttributes(this,e)}],toDOM:e=>["ol",getHtmlAttributes(this,e),0]}}getInputRules(e){return[wrappingInputRule(/^(\d+)\.\s$/,e,n=>({order:+n[1]}),(n,A)=>A.childCount+A.attrs.order==+n[1])]}getCommandFactories(e,n){return{toggleOrderedList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-7":"toggleOrderedList"}}}class NodeBulletList extends Node$1{constructor(){super(...arguments),this.name="bullet_list",this.requires=["doc"],this.attributes={toc:{default:void 0},odtMarginLeft:{default:void 0}}}getNodeSpec(){return{content:"list_item+",group:"block",parseDOM:[{tag:"ul"}],toDOM(){return["ul",0]}}}getInputRules(e){return[wrappingInputRule(/^\s*([-+*])\s$/,e)]}getCommandFactories(e,n){return{toggleBulletList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-8":"toggleBulletList"}}}function splitListItem$1(r,e){const n=function(A,o){const{$from:s,$to:a,node:l}=A.selection;if(l&&l.isBlock||s.depth<2||!s.sameParent(a))return!1;const c=s.node(-1);if(c.type!=r)return!1;if(s.parent.content.size==0&&s.node(-1).childCount==s.indexAfter(-1)){if(s.depth==3||s.node(-3).type!=r||s.index(-2)!=s.node(-2).childCount-1)return!1;if(o){let u=Fragment.empty;const f=s.index(-1)?1:s.index(-2)?2:3;for(let B=s.depth-f;B>=s.depth-3;B--)u=Fragment.from(s.node(B).copy(u));let I=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3;u=u.append(Fragment.from(r.createAndFill()));let p=s.before(s.depth-(f-1)),m=A.tr.replace(p,s.after(-I),new Slice(u,4-f,0)),E=-1;m.doc.nodesBetween(p,m.doc.content.size,(B,Q)=>{if(E>-1)return!1;B.isTextblock&&B.content.size==0&&(E=Q+1)}),E>-1&&m.setSelection(Selection.near(m.doc.resolve(E))),o(m.scrollIntoView())}return!0}let g=a.pos==s.end()?c.contentMatchAt(0).defaultType:null,h=A.tr.delete(s.pos,a.pos),d=g?[null,{type:g}]:void 0;return canSplit(h.doc,s.pos,2,d)?(o&&o(h.split(s.pos,2,d).scrollIntoView()),!0):!1};return n.displayName=`splitListItem(${r.name})`,n}function liftListItem$1(r){return function(e,n){let{$from:A,$to:o}=e.selection,s=A.blockRange(o,a=>a.childCount>0&&a.firstChild.type==r);return s?n?A.node(s.depth-1).type==r?liftToOuterList$1(e,n,r,s):liftOutOfList$1(e,n,s):!0:!1}}function liftToOuterList$1(r,e,n,A){let o=r.tr,s=A.end,a=A.$to.end(A.depth);s<a&&(o.step(new ReplaceAroundStep(s-1,a,s,a,new Slice(Fragment.from(n.create(null,A.parent.copy())),1,0),1,!0)),A=new NodeRange(o.doc.resolve(A.$from.pos),o.doc.resolve(a),A.depth));const l=liftTarget(A);if(l==null)return!1;o.lift(A,l);let c=o.doc.resolve(o.mapping.map(s,-1)-1);return canJoin(o.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&o.join(c.pos),e(o.scrollIntoView()),!0}function liftOutOfList$1(r,e,n){let A=r.tr,o=n.parent;for(let f=n.end,I=n.endIndex-1,p=n.startIndex;I>p;I--)f-=o.child(I).nodeSize,A.delete(f-1,f+1);let s=A.doc.resolve(n.start),a=s.nodeAfter;if(A.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,c=n.endIndex==o.childCount,g=s.node(-1),h=s.index(-1);if(!g.canReplace(h+(l?0:1),h+1,a.content.append(c?Fragment.empty:Fragment.from(o))))return!1;let d=s.pos,u=d+a.nodeSize;return A.step(new ReplaceAroundStep(d-(l?1:0),u+(c?1:0),d+1,u-1,new Slice((l?Fragment.empty:Fragment.from(o.copy(Fragment.empty))).append(c?Fragment.empty:Fragment.from(o.copy(Fragment.empty))),l?0:1,c?0:1),l?0:1)),e(A.scrollIntoView()),!0}function sinkListItem$1(r){return function(e,n){const{$from:A,$to:o}=e.selection,s=A.blockRange(o,g=>g.childCount>0&&g.firstChild.type==r);if(!s)return!1;const a=s.startIndex;if(a==0)return!1;const l=s.parent,c=l.child(a-1);if(c.type!=r)return!1;if(n){const g=c.lastChild&&c.lastChild.type==l.type,h=Fragment.from(g?r.create():null),d=new Slice(Fragment.from(r.create(null,Fragment.from(l.type.create(null,h)))),g?3:1,0),u=s.start,f=s.end;n(e.tr.step(new ReplaceAroundStep(u-(g?3:1),f,u,f,d,1,!0)).scrollIntoView())}return!0}}class NodeListItem extends Node$1{constructor(){super(...arguments),this.name="list_item",this.requires=["doc"],this.attributes={value:{default:void 0},type:{default:void 0,fromDom(e){return e.hasAttribute("type")?e.getAttribute("type"):void 0},toDom(e){return e.attrs.type}}}}getNodeSpec(){return{content:"paragraph block*",parseDOM:[{tag:"li",getAttrs:e=>setHtmlAttributes(this,e)}],defining:!0,toDOM:e=>["li",getHtmlAttributes(this,e),0]}}getCommandFactories(e,n){return{splitListItem:()=>splitListItem$1(n),liftListItem:()=>liftListItem$1(n),sinkListItem:()=>sinkListItem$1(n)}}getKeyboardShortcuts(){return{Enter:"splitListItem",Tab:"sinkListItem","Shift-Tab":"liftListItem"}}}class NodeImage extends Node$1{constructor(){super(...arguments),this.name="image",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null},height:{default:null},origUrl:{default:void 0},mdTemplate:{default:void 0}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt"),width:e.getAttribute("width")||e.style.width||null,height:e.getAttribute("height")||e.style.height||null}}}],toDOM(e){const{src:n,alt:A,title:o,width:s,height:a}=e.attrs,l={src:n};return A&&(l.alt=A),o&&(l.title=o),s&&(l.width=s),a&&(l.height=a),["img",l]}}}getNodeView(e){return(n,A,o)=>{const s=document.createElement("span");s.className="kb-image-wrapper",s.contentEditable="false";const a=document.createElement("img");a.src=n.attrs.src,n.attrs.alt&&(a.alt=n.attrs.alt),n.attrs.title&&(a.title=n.attrs.title),n.attrs.width&&(a.style.width=typeof n.attrs.width=="number"?`${n.attrs.width}px`:n.attrs.width),n.attrs.height&&(a.style.height=typeof n.attrs.height=="number"?`${n.attrs.height}px`:n.attrs.height),a.draggable=!1,s.appendChild(a);const l=["nw","ne","sw","se"];for(const B of l){const Q=document.createElement("span");Q.className=`kb-image-resize-handle kb-image-resize-handle-${B}`,Q.dataset.position=B,s.appendChild(Q)}let c=!1,g=0,h=0,d=0,u=0,f=1,I=null;const p=B=>{const Q=B.target;if(!Q.classList.contains("kb-image-resize-handle"))return;B.preventDefault(),B.stopPropagation(),c=!0,I=Q.dataset.position||null,g=B.clientX,h=B.clientY;const S=a.getBoundingClientRect();d=S.width,u=S.height,f=d/u,s.classList.add("kb-image-resizing"),document.addEventListener("mousemove",m),document.addEventListener("mouseup",E)},m=B=>{if(!c)return;const Q=B.clientX-g,S=B.clientY-h;let w=d,y=u;switch(I){case"se":w=d+Q,y=B.shiftKey?u+S:w/f;break;case"sw":w=d-Q,y=B.shiftKey?u+S:w/f;break;case"ne":w=d+Q,y=B.shiftKey?u-S:w/f;break;case"nw":w=d-Q,y=B.shiftKey?u-S:w/f;break}w=Math.max(50,w),y=Math.max(50,y),a.style.width=`${Math.round(w)}px`,a.style.height=`${Math.round(y)}px`},E=()=>{if(!c)return;c=!1,I=null,s.classList.remove("kb-image-resizing"),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",E);const B=Math.round(a.getBoundingClientRect().width),Q=Math.round(a.getBoundingClientRect().height),S=o();if(typeof S=="number"){const w=A.state.tr.setNodeMarkup(S,void 0,{...n.attrs,width:`${B}px`,height:`${Q}px`});A.dispatch(w)}};return s.addEventListener("mousedown",p),s.addEventListener("click",B=>{B.preventDefault();const Q=o();if(typeof Q=="number"){const S=A.state.doc.resolve(Q),w=Selection.near(S);A.dispatch(A.state.tr.setSelection(w))}}),{dom:s,update:B=>B.type.name!=="image"?!1:(a.src=B.attrs.src,B.attrs.alt&&(a.alt=B.attrs.alt),B.attrs.title&&(a.title=B.attrs.title),B.attrs.width?a.style.width=typeof B.attrs.width=="number"?`${B.attrs.width}px`:B.attrs.width:a.style.width="",B.attrs.height?a.style.height=typeof B.attrs.height=="number"?`${B.attrs.height}px`:B.attrs.height:a.style.height="",!0),destroy:()=>{s.removeEventListener("mousedown",p),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",E)},stopEvent:B=>B.type==="mousedown"&&B.target.classList.contains("kb-image-resize-handle"),ignoreMutation:()=>!0}}}}class NodeVideo extends Node$1{constructor(){super(...arguments),this.name="video",this.requires=["doc"]}getNodeSpec(){return{attrs:{src:{},title:{default:null},controls:{default:!0},width:{default:null},height:{default:null}},group:"block",draggable:!0,parseDOM:[{tag:"video[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),controls:e.hasAttribute("controls"),width:e.getAttribute("width"),height:e.getAttribute("height")}}}],toDOM(e){const{src:n,title:A,controls:o,width:s,height:a}=e.attrs,l={src:n};return A&&(l.title=A),o&&(l.controls=""),s&&(l.width=s),a&&(l.height=a),["video",l]}}}}class NodeBlockquote extends Node$1{constructor(){super(...arguments),this.name="blockquote",this.requires=["doc"]}getNodeSpec(){return{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM(){return["blockquote",0]}}}getInputRules(e){return[wrappingInputRule(/^\s*>\s$/,e)]}getCommandFactories(e,n){return{toggleBlockquote:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Ctrl->":"toggleBlockquote"}}}class NodeAside extends Node$1{constructor(){super(...arguments),this.name="aside",this.requires=["doc"]}getNodeSpec(){return{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"aside"}],toDOM(){return["aside",0]}}}}const maxLevel=6;class NodeHeading extends Node$1{constructor(){super(...arguments),this.name="heading",this.requires=["doc"]}getNodeSpec(){return{attrs:{level:{default:1}},content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM(e){return["h"+e.attrs.level,0]}}}getInputRules(e){return[textblockTypeInputRule(new RegExp("^(#{1,"+maxLevel+"})\\s$"),e,n=>({level:n[1].length}))]}getCommandFactories(e,n){const A={};for(let o=1;o<=maxLevel;o++)A["setHeading"+o]=()=>e.commandFactories.setBlockType(n,{level:o});return A}getKeyboardShortcuts(){const e={};for(let n=1;n<=maxLevel;n++)e["Shift-Ctrl-"+n]="setHeading"+n;return e}}class NodeMath extends Node$1{constructor(){super(...arguments),this.name="math",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{lang:{default:"mathml"},content:{}},group:"inline",draggable:!0,parseDOM:[{tag:"math",getAttrs:e=>({lang:"mathml",content:new XMLSerializer().serializeToString(e)})}],toDOM(e){const A=new DOMParser().parseFromString(e.attrs.content,"application/xml");return A.getElementsByTagName("parsererror").length>0?["span",{class:"mathml-error"},"Invalid MathML"]:document.importNode(A.documentElement,!0)}}}}class NodeDefinitionList extends Node$1{constructor(){super(...arguments),this.name="dl",this.requires=["doc"]}getNodeSpec(){return{content:"dt+|dd+",group:"block",parseDOM:[{tag:"dl"}],toDOM(){return["dl",0]}}}getInputRules(e){return[]}getCommandFactories(e,n){return{toggleDefinitionList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{}}}class NodeDefinitionTerm extends Node$1{constructor(){super(...arguments),this.name="dt",this.requires=["dl"]}getNodeSpec(){return{content:"inline*",group:"block",parseDOM:[{tag:"dt"}],defining:!0,toDOM(){return["dt",0]}}}}class NodeDefinitionDesc extends Node$1{constructor(){super(...arguments),this.name="dd",this.requires=["dl"]}getNodeSpec(){return{content:"inline*",group:"block",parseDOM:[{tag:"dd"}],defining:!0,toDOM(){return["dd",0]}}}}class NodeFrontmatter extends Node$1{constructor(){super(...arguments),this.name="frontmatter",this.requires=["doc"]}getNodeSpec(){return{content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"pre"}],toDOM(){return["pre",0]}}}}class NodeTaskList extends Node$1{constructor(){super(...arguments),this.name="task_list",this.requires=["doc"]}getNodeSpec(){return{content:"task_item+",group:"block",parseDOM:[{tag:`ul[data-type="${this.name}"]`}],toDOM(){return["ul",{"data-type":this.name},0]}}}getCommandFactories(e,n){return{toggleTaskList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-9":"toggleTaskList"}}}function splitListItem(r,e){const n=function(A,o){const{$from:s,$to:a,node:l}=A.selection;if(l&&l.isBlock||s.depth<2||!s.sameParent(a))return!1;const c=s.node(-1);if(c.type!=r)return!1;if(s.parent.content.size==0&&s.node(-1).childCount==s.indexAfter(-1)){if(s.depth==3||s.node(-3).type!=r||s.index(-2)!=s.node(-2).childCount-1)return!1;if(o){let u=Fragment.empty;const f=s.index(-1)?1:s.index(-2)?2:3;for(let B=s.depth-f;B>=s.depth-3;B--)u=Fragment.from(s.node(B).copy(u));let I=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3;u=u.append(Fragment.from(r.createAndFill()));let p=s.before(s.depth-(f-1)),m=A.tr.replace(p,s.after(-I),new Slice(u,4-f,0)),E=-1;m.doc.nodesBetween(p,m.doc.content.size,(B,Q)=>{if(E>-1)return!1;B.isTextblock&&B.content.size==0&&(E=Q+1)}),E>-1&&m.setSelection(Selection.near(m.doc.resolve(E))),o(m.scrollIntoView())}return!0}let g=a.pos==s.end()?c.contentMatchAt(0).defaultType:null,h=A.tr.delete(s.pos,a.pos),d=g?[null,{type:g}]:void 0;return canSplit(h.doc,s.pos,2,d)?(o&&o(h.split(s.pos,2,d).scrollIntoView()),!0):!1};return n.displayName=`splitListItem(${r.name})`,n}function liftListItem(r){return function(e,n){let{$from:A,$to:o}=e.selection,s=A.blockRange(o,a=>a.childCount>0&&a.firstChild.type==r);return s?n?A.node(s.depth-1).type==r?liftToOuterList(e,n,r,s):liftOutOfList(e,n,s):!0:!1}}function liftToOuterList(r,e,n,A){let o=r.tr,s=A.end,a=A.$to.end(A.depth);s<a&&(o.step(new ReplaceAroundStep(s-1,a,s,a,new Slice(Fragment.from(n.create(null,A.parent.copy())),1,0),1,!0)),A=new NodeRange(o.doc.resolve(A.$from.pos),o.doc.resolve(a),A.depth));const l=liftTarget(A);if(l==null)return!1;o.lift(A,l);let c=o.doc.resolve(o.mapping.map(s,-1)-1);return canJoin(o.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&o.join(c.pos),e(o.scrollIntoView()),!0}function liftOutOfList(r,e,n){let A=r.tr,o=n.parent;for(let f=n.end,I=n.endIndex-1,p=n.startIndex;I>p;I--)f-=o.child(I).nodeSize,A.delete(f-1,f+1);let s=A.doc.resolve(n.start),a=s.nodeAfter;if(A.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,c=n.endIndex==o.childCount,g=s.node(-1),h=s.index(-1);if(!g.canReplace(h+(l?0:1),h+1,a.content.append(c?Fragment.empty:Fragment.from(o))))return!1;let d=s.pos,u=d+a.nodeSize;return A.step(new ReplaceAroundStep(d-(l?1:0),u+(c?1:0),d+1,u-1,new Slice((l?Fragment.empty:Fragment.from(o.copy(Fragment.empty))).append(c?Fragment.empty:Fragment.from(o.copy(Fragment.empty))),l?0:1,c?0:1),l?0:1)),e(A.scrollIntoView()),!0}function sinkListItem(r){return function(e,n){const{$from:A,$to:o}=e.selection,s=A.blockRange(o,g=>g.childCount>0&&g.firstChild.type==r);if(!s)return!1;const a=s.startIndex;if(a==0)return!1;const l=s.parent,c=l.child(a-1);if(c.type!=r)return!1;if(n){const g=c.lastChild&&c.lastChild.type==l.type,h=Fragment.from(g?r.create():null),d=new Slice(Fragment.from(r.create(null,Fragment.from(l.type.create(null,h)))),g?3:1,0),u=s.start,f=s.end;n(e.tr.step(new ReplaceAroundStep(u-(g?3:1),f,u,f,d,1,!0)).scrollIntoView())}return!0}}const inputRegex=/^\s*(\[([( |x])?\])\s$/;class NodeTaskItem extends Node$1{constructor(e={}){super(e),this.config=e,this.name="task_item",this.requires=["doc"]}getNodeSpec(){return{attrs:{checked:{default:!1}},content:this.config.nested?"paragraph block*":"paragraph+",parseDOM:[{tag:"li[data-checked]",getAttrs(e){return{checked:e.getAttribute("data-checked")==="true"}}}],defining:!0,toDOM(e){return["li",{"data-type":this.name,"data-checked":e.attrs.checked},["label",["input",{type:"checkbox",checked:e.attrs.checked?"checked":null}],["span"]],["div",0]]}}}getCommandFactories(e,n){return{splitListItem:()=>splitListItem(n),liftListItem:()=>liftListItem(n),sinkListItem:()=>sinkListItem(n)}}getNodeView(e){return(n,A,o)=>{const s=document.createElement("li"),a=document.createElement("label"),l=document.createElement("span"),c=document.createElement("input"),g=document.createElement("div");return s.style.display="flex",s.style.alignItems="flex-start",s.style.gap="0.5em",a.style.flexShrink="0",a.style.marginTop="0.25em",g.style.flex="1",a.contentEditable="false",c.type="checkbox",c.addEventListener("mousedown",h=>h.preventDefault()),c.addEventListener("change",h=>{const{checked:d}=h.target;typeof o=="function"&&e.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:u})=>{const f=o();if(typeof f!="number")return!1;const I=u.doc.nodeAt(f);return u.setNodeMarkup(f,void 0,{...I?.attrs,checked:d}),!0}).run()}),s.dataset.checked=n.attrs.checked,c.checked=n.attrs.checked,a.append(c,l),s.append(a,g),{dom:s,contentDOM:g,update:h=>h.type.name!==this.type?!1:(s.dataset.checked=h.attrs.checked,c.checked=h.attrs.checked,!0)}}}getKeyboardShortcuts(){return{Enter:"splitListItem",Tab:"sinkListItem","Shift-Tab":"liftListItem"}}getInputRules(e){return[wrappingInputRule(inputRegex,e,n=>({checked:n[n.length-1]==="x"}))]}}function fixCharacters$1(r){return r.replace(/’/g,"'").replace(/“/g,'"').replace(/”/g,'"').replace(/\x0b/g," ").replace(/\u201d/g,'"').replace(/\u201c/g,'"')}function replaceAllNodesOfType(r,e,n,A){const o=[];e.descendants((s,a)=>{s.type===n&&o.push({node:s,pos:a})});for(let s=o.length-1;s>=0;s--){const{node:a,pos:l}=o[s],c=A(a,r.doc.type.schema);r=r.replaceWith(l,l+a.nodeSize,c)}return r}class NodeInlineShortCode extends Node$1{constructor(){super(...arguments),this.name="shortcode_inline",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!0,atom:!0,attrs:{id:{default:void 0},content:{default:""},nesting:{default:NESTING_SELF_CLOSING$1},error:{default:""}},parseDOM:[{tag:"span.kb-shortcode-inline",getAttrs:e=>({content:e.textContent||null})}],toDOM(e){return["span",{class:"kb-shortcode-inline"},e.attrs.content||""]}}}getInputRules(e){return[replaceInlineNode(/\{\{[^}]+\}\}/,e,n=>({content:fixCharacters$1(n[0].substring(2,n[0].length-2))}))]}getCommandFactories(e,n){return{renderShortCode:A=>(o,s)=>{let a=o.tr;return a=replaceAllNodesOfType(a,o.doc,n,A),a.docChanged&&s&&s(a),!0}}}}class NodeIframe extends Node$1{constructor(){super(...arguments),this.name="iframe",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{src:{},class:{default:null},alt:{default:null},title:{default:null}},group:"inline",draggable:!0,parseDOM:[{tag:"iframe[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt")}}}],toDOM(e){const{src:n,alt:A,title:o}=e.attrs;return["iframe",{src:n,alt:A,title:o,class:e.attrs.class}]}}}}function collectCommentAnchors(r){const e=new Map,n=new Map;return r.descendants((A,o)=>{A.type.name==="comment"&&(A.attrs.nesting===NESTING_OPENING$1&&e.set(A.attrs.id,o),A.attrs.nesting===NESTING_CLOSING$1&&n.set(A.attrs.id,o))}),{starts:e,ends:n}}function buildCommentRanges(r){const{starts:e,ends:n}=collectCommentAnchors(r),A=[];for(const[o,s]of e){const a=n.get(o);!a||a<=s||A.push({id:o,from:s+1,to:a})}return A}function buildDecorations(r){const e=buildCommentRanges(r);return DecorationSet.create(r,e.map(({id:n,from:A,to:o})=>Decoration$1.inline(A,o,{class:"comment-highlight","data-comment-id":n})))}function commentsPlugin(){return new Plugin({state:{init(r,{doc:e}){return buildDecorations(e)},apply(r,e,n,A){return r.docChanged?buildDecorations(A.doc):e}},props:{decorations(r){return this.getState(r)}}})}const addCommentBoundary=r=>(e,n)=>{const{schema:A,selection:o}=e,{from:s,to:a}=o,l=A.nodes.comment;if(!l)return!1;const c=l.create({id:r,nesting:NESTING_OPENING$1}),g=l.create({id:r,nesting:NESTING_CLOSING$1}),h=e.tr;return h.insert(a,g),h.insert(s,c),n&&n(h),!0};class NodeCommentAnchor extends Node$1{constructor(){super(...arguments),this.name="comment",this.requires=["doc"],this.options={keepMarks:!0}}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,atom:!0,attrs:{id:{},active:{default:!1},nesting:{default:NESTING_OPENING$1}},parseDOM:[{tag:"span[data-comment-id]",getAttrs(e){return{id:e.getAttribute("data-comment-id"),nesting:parseInt(e.getAttribute("data-nesting")||"1"),active:e.hasAttribute("data-active")}}}],toDOM:e=>["span",{"data-comment-id":e.attrs.id,"data-active":e.attrs.active?"true":void 0,"data-nesting":e.attrs.nesting}]}}getCommandFactories(e,n){return{addComment:(A,o)=>addCommentBoundary(A)}}getProseMirrorPlugins(){return[commentsPlugin()]}}class BasicEditorKit{getExtensions(){return[new ExtensionBaseKeymap,new ExtensionDropcursor,new ExtensionGapcursor,new ExtensionHtml,new ExtensionMediaUpload,new ExtensionRemoteSelection,new ExtensionSelection,new ExtensionTextAlign,new ExtensionPairing,new ExtensionUser,new NodeDocument,new NodeText,new NodeParagraph,new NodeHardBreak,new NodeSoftBreak,new NodeCodeBlock$1,new NodeBookmark,new NodeHorizontalRule,new NodeOrderedList,new NodeBulletList,new NodeListItem,new NodeTaskList,new NodeTaskItem,new NodeDefinitionList,new NodeDefinitionTerm,new NodeDefinitionDesc,new NodeTaskList,new NodeTaskItem,new NodeFrontmatter,new NodeImage,new NodeVideo,new NodeBlockquote,new NodeAside,new NodeHeading,new NodeMath,new NodeInlineShortCode,new NodeIframe,new NodeCommentAnchor,new MarkLink,new MarkItalic,new MarkStrong,new MarkUnderline,new MarkStrike,new MarkCode,new MarkChange,new MarkBookmark,new MarkTextColor,new MarkHighlight,new MarkSuperscript,new MarkSubscript]}}const kit=new BasicEditorKit;class ExtensionBasicEditor extends Extension{constructor(){super(...arguments),this.name="basic-editor",this.requires=kit.getExtensions()}}class NodeCodeBlock extends Node$1{name="code_block";getNodeSpec(){return{content:"text*",marks:"",group:"block",code:!0,defining:!0,attrs:{lang:{default:void 0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs(e){return{lang:e.getAttribute("lang")}}}],toDOM(e){const{lang:n}=e.attrs;return["pre",{lang:n},["code",0]]}}}getInputRules(e){return[textblockTypeInputRule(/^```$/,e)]}}const basicNormalize=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r;class SearchCursor{constructor(e,n,A=0,o=e.length,s,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(A,o),this.bufferStart=A,this.normalize=s?l=>s(basicNormalize(l)):basicNormalize,this.query=this.normalize(n)}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 codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=fromCodePoint(e),A=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let o=this.normalize(n);if(o.length)for(let s=0,a=A;;s++){let l=o.charCodeAt(s),c=this.match(l,a,this.bufferPos+this.bufferStart);if(s==o.length-1){if(c)return this.value=c,this;break}a==A&&s<n.length&&n.charCodeAt(s)==l&&a++}}}match(e,n,A){let o=null;for(let s=0;s<this.matches.length;s+=2){let a=this.matches[s],l=!1;this.query.charCodeAt(a)==e&&(a==this.query.length-1?o={from:this.matches[s+1],to:A}:(this.matches[s]++,l=!0)),l||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:n,to:A}:this.matches.push(1,n)),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null),o}}typeof Symbol<"u"&&(SearchCursor.prototype[Symbol.iterator]=function(){return this});const selectWord=({state:r,dispatch:e})=>{let{selection:n}=r,A=EditorSelection.create(n.ranges.map(o=>r.wordAt(o.head)||EditorSelection.cursor(o.head)),n.mainIndex);return A.eq(n)?!1:(e(r.update({selection:A})),!0)};function findNextOccurrence(r,e){let{main:n,ranges:A}=r.selection,o=r.wordAt(n.head),s=o&&o.from==n.from&&o.to==n.to;for(let a=!1,l=new SearchCursor(r.doc,e,A[A.length-1].to);;)if(l.next(),l.done){if(a)return null;l=new SearchCursor(r.doc,e,0,Math.max(0,A[A.length-1].from-1)),a=!0}else{if(a&&A.some(c=>c.from==l.value.from))continue;if(s){let c=r.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const selectNextOccurrence=({state:r,dispatch:e})=>{let{ranges:n}=r.selection;if(n.some(s=>s.from===s.to))return selectWord({state:r,dispatch:e});let A=r.sliceDoc(n[0].from,n[0].to);if(r.selection.ranges.some(s=>r.sliceDoc(s.from,s.to)!=A))return!1;let o=findNextOccurrence(r,A);return o?(e(r.update({selection:r.selection.addRange(EditorSelection.range(o.from,o.to),!1),effects:EditorView.scrollIntoView(o.to)})),!0):!1};class CompletionContext{constructor(e,n,A,o){this.state=e,this.pos=n,this.explicit=A,this.view=o,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=syntaxTree(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),A=Math.max(n.from,this.pos-250),o=n.text.slice(A-n.from,this.pos-n.from),s=o.search(ensureAnchor(e,!1));return s<0?null:{from:A+s,to:this.pos,text:o.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,A){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),A&&A.onDocChange&&(this.abortOnDocChange=!0))}}function toSet(r){let e=Object.keys(r).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(r){let e=Object.create(null),n=Object.create(null);for(let{label:o}of r){e[o[0]]=!0;for(let s=1;s<o.length;s++)n[o[s]]=!0}let A=toSet(e)+toSet(n)+"*$";return[new RegExp("^"+A),new RegExp(A)]}function completeFromList(r){let e=r.map(o=>typeof o=="string"?{label:o}:o),[n,A]=e.every(o=>/^\w+$/.test(o.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return o=>{let s=o.matchBefore(A);return s||o.explicit?{from:s?s.from:o.pos,options:e,validFor:n}:null}}function ifNotIn(r,e){return n=>{for(let A=syntaxTree(n.state).resolveInner(n.pos,-1);A;A=A.parent){if(r.indexOf(A.name)>-1)return null;if(A.type.isTop)break}return e(n)}}class Option{constructor(e,n,A,o){this.completion=e,this.source=n,this.match=A,this.score=o}}function cur(r){return r.selection.main.from}function ensureAnchor(r,e){var n;let{source:A}=r,o=e&&A[0]!="^",s=A[A.length-1]!="$";return!o&&!s?r:new RegExp(`${o?"^":""}(?:${A})${s?"$":""}`,(n=r.flags)!==null&&n!==void 0?n:r.ignoreCase?"i":"")}const pickedCompletion=Annotation.define();function insertCompletionText(r,e,n,A){let{main:o}=r.selection,s=n-o.from,a=A-o.from;return Object.assign(Object.assign({},r.changeByRange(l=>{if(l!=o&&n!=A&&r.sliceDoc(l.from+s,l.from+a)!=r.sliceDoc(n,A))return{range:l};let c=r.toText(e);return{changes:{from:l.from+s,to:A==o.from?l.to:l.from+a,insert:c},range:EditorSelection.cursor(l.from+s+c.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}const SourceCache=new WeakMap;function asSource(r){if(!Array.isArray(r))return r;let e=SourceCache.get(r);return e||SourceCache.set(r,e=completeFromList(r)),e}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define();class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n<e.length;){let A=codePointAt(e,n),o=codePointSize(A);this.chars.push(A);let s=e.slice(n,n+o),a=s.toUpperCase();this.folded.push(codePointAt(a==s?s.toLowerCase():a,0)),n+=o}this.astral=e.length!=this.chars.length}ret(e,n){return this.score=e,this.matched=n,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:n,folded:A,any:o,precise:s,byWord:a}=this;if(n.length==1){let B=codePointAt(e,0),Q=codePointSize(B),S=Q==e.length?0:-100;if(B!=n[0])if(B==A[0])S+=-200;else return null;return this.ret(S,[0,Q])}let l=e.indexOf(this.pattern);if(l==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let c=n.length,g=0;if(l<0){for(let B=0,Q=Math.min(e.length,200);B<Q&&g<c;){let S=codePointAt(e,B);(S==n[g]||S==A[g])&&(o[g++]=B),B+=codePointSize(S)}if(g<c)return null}let h=0,d=0,u=!1,f=0,I=-1,p=-1,m=/[a-z]/.test(e),E=!0;for(let B=0,Q=Math.min(e.length,200),S=0;B<Q&&d<c;){let w=codePointAt(e,B);l<0&&(h<c&&w==n[h]&&(s[h++]=B),f<c&&(w==n[f]||w==A[f]?(f==0&&(I=B),p=B+1,f++):f=0));let y,D=w<255?w>=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(y=fromCodePoint(w))!=y.toLowerCase()?1:y!=y.toUpperCase()?2:0;(!B||D==1&&m||S==0&&D!=0)&&(n[d]==w||A[d]==w&&(u=!0)?a[d++]=B:a.length&&(E=!1)),S=D,B+=codePointSize(w)}return d==c&&a[0]==0&&E?this.result(-100+(u?-200:0),a,e):f==c&&I==0?this.ret(-200-e.length+(p==e.length?0:-100),[0,p]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):f==c?this.ret(-900-e.length,[I,p]):d==c?this.result(-100+(u?-200:0)+-700+(E?0:-1100),a,e):n.length==2?null:this.result((o[0]?-700:0)+-200+-1100,o,e)}result(e,n,A){let o=[],s=0;for(let a of n){let l=a+(this.astral?codePointSize(codePointAt(A,a)):1);s&&o[s-1]==a?o[s-1]=l:(o[s++]=a,o[s++]=l)}return this.ret(e-A.length,o)}}class StrictMatcher{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let n=e.slice(0,this.pattern.length),A=n==this.pattern?0:n.toLowerCase()==this.folded?-200:null;return A==null?null:(this.matched=[0,n.length],this.score=A+(e.length==this.pattern.length?0:-100),this)}}const completionConfig$1=Facet.define({combine(r){return combineConfig(r,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:defaultPositionInfo,filterStrict:!1,compareCompletions:(e,n)=>e.label.localeCompare(n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>A=>joinClass(e(A),n(A)),optionClass:(e,n)=>A=>joinClass(e(A),n(A)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function joinClass(r,e){return r?e?r+" "+e:r:e}function defaultPositionInfo(r,e,n,A,o,s){let a=r.textDirection==Direction.RTL,l=a,c=!1,g="top",h,d,u=e.left-o.left,f=o.right-e.right,I=A.right-A.left,p=A.bottom-A.top;if(l&&u<Math.min(I,f)?l=!1:!l&&f<Math.min(I,u)&&(l=!0),I<=(l?u:f))h=Math.max(o.top,Math.min(n.top,o.bottom-p))-e.top,d=Math.min(400,l?u:f);else{c=!0,d=Math.min(400,(a?e.right:o.right-e.left)-30);let B=o.bottom-e.bottom;B>=p||B>e.top?h=n.bottom-e.top:(g="bottom",h=e.bottom-n.top)}let m=(e.bottom-e.top)/s.offsetHeight,E=(e.right-e.left)/s.offsetWidth;return{style:`${g}: ${h/m}px; max-width: ${d/E}px`,class:"cm-completionInfo-"+(c?a?"left-narrow":"right-narrow":l?"left":"right")}}function optionContent(r){let e=r.addToOptions.slice();return r.icons&&e.push({render(n){let A=document.createElement("div");return A.classList.add("cm-completionIcon"),n.type&&A.classList.add(...n.type.split(/\s+/g).map(o=>"cm-completionIcon-"+o)),A.setAttribute("aria-hidden","true"),A},position:20}),e.push({render(n,A,o,s){let a=document.createElement("span");a.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let g=0;g<s.length;){let h=s[g++],d=s[g++];h>c&&a.appendChild(document.createTextNode(l.slice(c,h)));let u=a.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(l.slice(h,d))),u.className="cm-completionMatchedText",c=d}return c<l.length&&a.appendChild(document.createTextNode(l.slice(c))),a},position:50},{render(n){if(!n.detail)return null;let A=document.createElement("span");return A.className="cm-completionDetail",A.textContent=n.detail,A},position:80}),e.sort((n,A)=>n.position-A.position).map(n=>n.render)}function rangeAroundSelected(r,e,n){if(r<=n)return{from:0,to:r};if(e<0&&(e=0),e<=r>>1){let o=Math.floor(e/n);return{from:o*n,to:(o+1)*n}}let A=Math.floor((r-e)/n);return{from:r-(A+1)*n,to:r-A*n}}class CompletionTooltip{constructor(e,n,A){this.view=e,this.stateField=n,this.applyCompletion=A,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let o=e.state.field(n),{options:s,selected:a}=o.open,l=e.state.facet(completionConfig$1);this.optionContent=optionContent(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=rangeAroundSelected(s.length,a,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:g}=e.state.field(n).open;for(let h=c.target,d;h&&h!=this.dom;h=h.parentNode)if(h.nodeName=="LI"&&(d=/-(\d+)$/.exec(h.id))&&+d[1]<g.length){this.applyCompletion(e,g[+d[1]]),c.preventDefault();return}}),this.dom.addEventListener("focusout",c=>{let g=e.state.field(this.stateField,!1);g&&g.tooltip&&e.state.facet(completionConfig$1).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:closeCompletionEffect.of(null)})}),this.showOptions(s,o.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let A=e.state.field(this.stateField),o=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),A!=o){let{options:s,selected:a,disabled:l}=A.open;(!o.open||o.open.options!=s)&&(this.range=rangeAroundSelected(s.length,a,e.state.facet(completionConfig$1).maxRenderedOptions),this.showOptions(s,A.id)),this.updateSel(),l!=((n=o.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let A of this.currentClass.split(" "))A&&this.dom.classList.remove(A);for(let A of n.split(" "))A&&this.dom.classList.add(A);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;if((n.selected>-1&&n.selected<this.range.from||n.selected>=this.range.to)&&(this.range=rangeAroundSelected(n.options.length,n.selected,this.view.state.facet(completionConfig$1).maxRenderedOptions),this.showOptions(n.options,e.id)),this.updateSelectedOption(n.selected)){this.destroyInfo();let{completion:A}=n.options[n.selected],{info:o}=A;if(!o)return;let s=typeof o=="string"?document.createTextNode(o):o(A);if(!s)return;"then"in s?s.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,A)}).catch(a=>logException(this.view.state,a,"completion info")):this.addInfoPane(s,A)}}addInfoPane(e,n){this.destroyInfo();let A=this.info=document.createElement("div");if(A.className="cm-tooltip cm-completionInfo",e.nodeType!=null)A.appendChild(e),this.infoDestroy=null;else{let{dom:o,destroy:s}=e;A.appendChild(o),this.infoDestroy=s||null}this.dom.appendChild(A),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let A=this.list.firstChild,o=this.range.from;A;A=A.nextSibling,o++)A.nodeName!="LI"||!A.id?o--:o==e?A.hasAttribute("aria-selected")||(A.setAttribute("aria-selected","true"),n=A):A.hasAttribute("aria-selected")&&A.removeAttribute("aria-selected");return n&&scrollIntoView(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),A=this.info.getBoundingClientRect(),o=e.getBoundingClientRect(),s=this.space;if(!s){let a=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:a.clientWidth,bottom:a.clientHeight}}return o.top>Math.min(s.bottom,n.bottom)-10||o.bottom<Math.max(s.top,n.top)+10?null:this.view.state.facet(completionConfig$1).positionInfo(this.view,n,o,A,s,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,n,A){const o=document.createElement("ul");o.id=n,o.setAttribute("role","listbox"),o.setAttribute("aria-expanded","true"),o.setAttribute("aria-label",this.view.state.phrase("Completions")),o.addEventListener("mousedown",a=>{a.target==o&&a.preventDefault()});let s=null;for(let a=A.from;a<A.to;a++){let{completion:l,match:c}=e[a],{section:g}=l;if(g){let u=typeof g=="string"?g:g.name;if(u!=s&&(a>A.from||A.from==0))if(s=u,typeof g!="string"&&g.header)o.appendChild(g.header(g));else{let f=o.appendChild(document.createElement("completion-section"));f.textContent=u}}const h=o.appendChild(document.createElement("li"));h.id=n+"-"+a,h.setAttribute("role","option");let d=this.optionClass(l);d&&(h.className=d);for(let u of this.optionContent){let f=u(l,this.view.state,this.view,c);f&&h.appendChild(f)}}return A.from&&o.classList.add("cm-completionListIncompleteTop"),A.to<e.length&&o.classList.add("cm-completionListIncompleteBottom"),o}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function completionTooltip(r,e){return n=>new CompletionTooltip(n,r,e)}function scrollIntoView(r,e){let n=r.getBoundingClientRect(),A=e.getBoundingClientRect(),o=n.height/r.offsetHeight;A.top<n.top?r.scrollTop-=(n.top-A.top)/o:A.bottom>n.bottom&&(r.scrollTop+=(A.bottom-n.bottom)/o)}function score(r){return(r.boost||0)*100+(r.apply?10:0)+(r.info?5:0)+(r.type?1:0)}function sortOptions(r,e){let n=[],A=null,o=g=>{n.push(g);let{section:h}=g.completion;if(h){A||(A=[]);let d=typeof h=="string"?h:h.name;A.some(u=>u.name==d)||A.push(typeof h=="string"?{name:d}:h)}},s=e.facet(completionConfig$1);for(let g of r)if(g.hasResult()){let h=g.result.getMatch;if(g.result.filter===!1)for(let d of g.result.options)o(new Option(d,g.source,h?h(d):[],1e9-n.length));else{let d=e.sliceDoc(g.from,g.to),u,f=s.filterStrict?new StrictMatcher(d):new FuzzyMatcher(d);for(let I of g.result.options)if(u=f.match(I.label)){let p=I.displayLabel?h?h(I,u.matched):[]:u.matched;o(new Option(I,g.source,p,u.score+(I.boost||0)))}}}if(A){let g=Object.create(null),h=0,d=(u,f)=>{var I,p;return((I=u.rank)!==null&&I!==void 0?I:1e9)-((p=f.rank)!==null&&p!==void 0?p:1e9)||(u.name<f.name?-1:1)};for(let u of A.sort(d))h-=1e5,g[u.name]=h;for(let u of n){let{section:f}=u.completion;f&&(u.score+=g[typeof f=="string"?f:f.name])}}let a=[],l=null,c=s.compareCompletions;for(let g of n.sort((h,d)=>d.score-h.score||c(h.completion,d.completion))){let h=g.completion;!l||l.label!=h.label||l.detail!=h.detail||l.type!=null&&h.type!=null&&l.type!=h.type||l.apply!=h.apply||l.boost!=h.boost?a.push(g):score(g.completion)>score(l)&&(a[a.length-1]=g),l=g.completion}return a}class CompletionDialog{constructor(e,n,A,o,s,a){this.options=e,this.attrs=n,this.tooltip=A,this.timestamp=o,this.selected=s,this.disabled=a}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,A,o,s,a){if(o&&!a&&e.some(g=>g.isPending))return o.setDisabled();let l=sortOptions(e,n);if(!l.length)return o&&e.some(g=>g.isPending)?o.setDisabled():null;let c=n.facet(completionConfig$1).selectOnOpen?0:-1;if(o&&o.selected!=c&&o.selected!=-1){let g=o.options[o.selected].completion;for(let h=0;h<l.length;h++)if(l[h].completion==g){c=h;break}}return new CompletionDialog(l,makeAttrs(A,c),{pos:e.reduce((g,h)=>h.hasResult()?Math.min(g,h.from):g,1e8),create:createTooltip,above:s.aboveCursor},o?o.timestamp:Date.now(),c,!1)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new CompletionDialog(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class CompletionState{constructor(e,n,A){this.active=e,this.id=n,this.open=A}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,A=n.facet(completionConfig$1),s=(A.override||n.languageDataAt("autocomplete",cur(n)).map(asSource)).map(c=>(this.active.find(h=>h.source==c)||new ActiveSource(c,this.active.some(h=>h.state!=0)?1:0)).update(e,A));s.length==this.active.length&&s.every((c,g)=>c==this.active[g])&&(s=this.active);let a=this.open,l=e.effects.some(c=>c.is(setActiveEffect));a&&e.docChanged&&(a=a.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!sameResults(s,this.active)||l?a=CompletionDialog.build(s,n,this.id,a,A,l):a&&a.disabled&&!s.some(c=>c.isPending)&&(a=null),!a&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new ActiveSource(c.source,0):c));for(let c of e.effects)c.is(setSelectedEffect)&&(a=a&&a.setSelected(c.value,this.id));return s==this.active&&a==this.open?this:new CompletionState(s,this.id,a)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?baseAttrs:noAttrs}}function sameResults(r,e){if(r==e)return!0;for(let n=0,A=0;;){for(;n<r.length&&!r[n].hasResult();)n++;for(;A<e.length&&!e[A].hasResult();)A++;let o=n==r.length,s=A==e.length;if(o||s)return o==s;if(r[n++].result!=e[A++].result)return!1}}const baseAttrs={"aria-autocomplete":"list"},noAttrs={};function makeAttrs(r,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":r};return e>-1&&(n["aria-activedescendant"]=r+"-"+e),n}const none=[];function getUpdateType(r,e){if(r.isUserEvent("input.complete")){let A=r.annotation(pickedCompletion);if(A&&e.activateOnCompletion(A))return 12}let n=r.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:r.isUserEvent("delete.backward")?2:r.selection?8:r.docChanged?16:0}class ActiveSource{constructor(e,n,A=!1){this.source=e,this.state=n,this.explicit=A}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let A=getUpdateType(e,n),o=this;(A&8||A&16&&this.touches(e))&&(o=new ActiveSource(o.source,0)),A&4&&o.state==0&&(o=new ActiveSource(this.source,1)),o=o.updateFor(e,A);for(let s of e.effects)if(s.is(startCompletionEffect))o=new ActiveSource(o.source,1,s.value);else if(s.is(closeCompletionEffect))o=new ActiveSource(o.source,0);else if(s.is(setActiveEffect))for(let a of s.value)a.source==o.source&&(o=a);return o}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(cur(e.state))}}class ActiveResult extends ActiveSource{constructor(e,n,A,o,s,a){super(e,3,n),this.limit=A,this.result=o,this.from=s,this.to=a}hasResult(){return!0}updateFor(e,n){var A;if(!(n&3))return this.map(e.changes);let o=this.result;o.map&&!e.changes.empty&&(o=o.map(o,e.changes));let s=e.changes.mapPos(this.from),a=e.changes.mapPos(this.to,1),l=cur(e.state);if(l>a||!o||n&2&&(cur(e.startState)==this.from||l<this.limit))return new ActiveSource(this.source,n&4?1:0);let c=e.changes.mapPos(this.limit);return checkValid(o.validFor,e.state,s,a)?new ActiveResult(this.source,this.explicit,c,o,s,a):o.update&&(o=o.update(o,s,a,new CompletionContext(e.state,l,!1)))?new ActiveResult(this.source,this.explicit,c,o,o.from,(A=o.to)!==null&&A!==void 0?A:cur(e.state)):new ActiveSource(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new ActiveResult(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new ActiveSource(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function checkValid(r,e,n,A){if(!r)return!1;let o=e.sliceDoc(n,A);return typeof r=="function"?r(o,n,A,e):ensureAnchor(r,!0).test(o)}const setActiveEffect=StateEffect.define({map(r,e){return r.map(n=>n.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(r,e){return r.update(e)},provide:r=>[showTooltip.from(r,e=>e.tooltip),EditorView.contentAttributes.from(r,e=>e.attrs)]});function applyCompletion(r,e){const n=e.completion.apply||e.completion.label;let A=r.state.field(completionState).active.find(o=>o.source==e.source);return A instanceof ActiveResult?(typeof n=="string"?r.dispatch(Object.assign(Object.assign({},insertCompletionText(r.state,n,A.from,A.to)),{annotations:pickedCompletion.of(e.completion)})):n(r,e.completion,A.from,A.to),!0):!1}const createTooltip=completionTooltip(completionState,applyCompletion);function moveCompletionSelection(r,e="option"){return n=>{let A=n.state.field(completionState,!1);if(!A||!A.open||A.open.disabled||Date.now()-A.open.timestamp<n.state.facet(completionConfig$1).interactionDelay)return!1;let o=1,s;e=="page"&&(s=getTooltip(n,A.open.tooltip))&&(o=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:a}=A.open.options,l=A.open.selected>-1?A.open.selected+o*(r?1:-1):r?0:a-1;return l<0?l=e=="page"?0:a-1:l>=a&&(l=e=="page"?a-1:0),n.dispatch({effects:setSelectedEffect.of(l)}),!0}}const acceptCompletion=r=>{let e=r.state.field(completionState,!1);return r.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<r.state.facet(completionConfig$1).interactionDelay?!1:applyCompletion(r,e.open.options[e.open.selected])},startCompletion=r=>r.state.field(completionState,!1)?(r.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=r=>{let e=r.state.field(completionState,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(r.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of r.state.field(completionState).active)e.isPending&&this.startQuery(e)}update(r){let e=r.state.field(completionState),n=r.state.facet(completionConfig$1);if(!r.selectionSet&&!r.docChanged&&r.startState.field(completionState)==e)return;let A=r.transactions.some(s=>{let a=getUpdateType(s,n);return a&8||(s.selection||s.docChanged)&&!(a&3)});for(let s=0;s<this.running.length;s++){let a=this.running[s];if(A||a.context.abortOnDocChange&&r.docChanged||a.updates.length+r.transactions.length>MaxUpdateCount&&Date.now()-a.time>MinAbortTime){for(let l of a.context.abortListeners)try{l()}catch(c){logException(this.view.state,c)}a.context.abortListeners=null,this.running.splice(s--,1)}else a.updates.push(...r.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),r.transactions.some(s=>s.effects.some(a=>a.is(startCompletionEffect)))&&(this.pendingStart=!0);let o=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(a=>a.active.source==s.source))?setTimeout(()=>this.startUpdate(),o):-1,this.composing!=0)for(let s of r.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:r}=this.view,e=r.field(completionState);for(let n of e.active)n.isPending&&!this.running.some(A=>A.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig$1).updateSyncTime))}startQuery(r){let{state:e}=this.view,n=cur(e),A=new CompletionContext(e,n,r.explicit,this.view),o=new RunningQuery(r,A);this.running.push(o),Promise.resolve(r.source(A)).then(s=>{o.context.aborted||(o.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,s)})}scheduleAccept(){this.running.every(r=>r.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig$1).updateSyncTime))}accept(){var r;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(completionConfig$1),A=this.view.state.field(completionState);for(let o=0;o<this.running.length;o++){let s=this.running[o];if(s.done===void 0)continue;if(this.running.splice(o--,1),s.done){let l=cur(s.updates.length?s.updates[0].startState:this.view.state),c=Math.min(l,s.done.from+(s.active.explicit?0:1)),g=new ActiveResult(s.active.source,s.active.explicit,c,s.done,s.done.from,(r=s.done.to)!==null&&r!==void 0?r:l);for(let h of s.updates)g=g.update(h,n);if(g.hasResult()){e.push(g);continue}}let a=A.active.find(l=>l.source==s.active.source);if(a&&a.isPending)if(s.done==null){let l=new ActiveSource(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(a)}(e.length||A.open&&A.open.disabled)&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(r){let e=this.view.state.field(completionState,!1);if(e&&e.tooltip&&this.view.state.facet(completionConfig$1).closeOnBlur){let n=e.open&&getTooltip(this.view,e.open.tooltip);(!n||!n.dom.contains(r.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:closeCompletionEffect.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),windows=typeof navigator=="object"&&/Win/.test(navigator.platform),commitCharacters=Prec.highest(EditorView.domEventHandlers({keydown(r,e){let n=e.state.field(completionState,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||r.key.length>1||r.ctrlKey&&!(windows&&r.altKey)||r.metaKey)return!1;let A=n.open.options[n.open.selected],o=n.active.find(a=>a.source==A.source),s=A.completion.commitCharacters||o.result.commitCharacters;return s&&s.indexOf(r.key)>-1&&applyCompletion(e,A),!1}})),baseTheme=EditorView.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",whiteSpace:"pre-line"},".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 FieldPos{constructor(e,n,A,o){this.field=e,this.line=n,this.from=A,this.to=o}}class FieldRange{constructor(e,n,A){this.field=e,this.from=n,this.to=A}map(e){let n=e.mapPos(this.from,-1,MapMode.TrackDel),A=e.mapPos(this.to,1,MapMode.TrackDel);return n==null||A==null?null:new FieldRange(this.field,n,A)}}class Snippet{constructor(e,n){this.lines=e,this.fieldPositions=n}instantiate(e,n){let A=[],o=[n],s=e.doc.lineAt(n),a=/^\s*/.exec(s.text)[0];for(let c of this.lines){if(A.length){let g=a,h=/^\t*/.exec(c)[0].length;for(let d=0;d<h;d++)g+=e.facet(indentUnit);o.push(n+g.length-h),c=g+c.slice(h)}A.push(c),n+=c.length+1}let l=this.fieldPositions.map(c=>new FieldRange(c.field,o[c.line]+c.from,o[c.line]+c.to));return{text:A,ranges:l}}static parse(e){let n=[],A=[],o=[],s;for(let a of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(a);){let l=s[1]?+s[1]:null,c=s[2]||s[3]||"",g=-1,h=c.replace(/\\[{}]/g,d=>d[1]);for(let d=0;d<n.length;d++)(l!=null?n[d].seq==l:h&&n[d].name==h)&&(g=d);if(g<0){let d=0;for(;d<n.length&&(l==null||n[d].seq!=null&&n[d].seq<l);)d++;n.splice(d,0,{seq:l,name:h}),g=d;for(let u of o)u.field>=g&&u.field++}o.push(new FieldPos(g,A.length,s.index,s.index+h.length)),a=a.slice(0,s.index)+c+a.slice(s.index+s[0].length)}a=a.replace(/\\([{}])/g,(l,c,g)=>{for(let h of o)h.line==A.length&&h.from>g&&(h.from--,h.to--);return c}),A.push(a)}return new Snippet(A,o)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let r=document.createElement("span");return r.className="cm-snippetFieldPosition",r}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,n){this.ranges=e,this.active=n,this.deco=Decoration.set(e.map(A=>(A.from==A.to?fieldMarker:fieldRange).range(A.from,A.to)))}map(e){let n=[];for(let A of this.ranges){let o=A.map(e);if(!o)return null;n.push(o)}return new ActiveSnippet(n,this.active)}selectionInsideField(e){return e.ranges.every(n=>this.ranges.some(A=>A.field==this.active&&A.from<=n.from&&A.to>=n.to))}}const setActive=StateEffect.define({map(r,e){return r&&r.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(r,e){for(let n of e.effects){if(n.is(setActive))return n.value;if(n.is(moveToField)&&r)return new ActiveSnippet(r.ranges,n.value)}return r&&e.docChanged&&(r=r.map(e.changes)),r&&e.selection&&!r.selectionInsideField(e.selection)&&(r=null),r},provide:r=>EditorView.decorations.from(r,e=>e?e.deco:Decoration.none)});function fieldSelection(r,e){return EditorSelection.create(r.filter(n=>n.field==e).map(n=>EditorSelection.range(n.from,n.to)))}function snippet(r){let e=Snippet.parse(r);return(n,A,o,s)=>{let{text:a,ranges:l}=e.instantiate(n.state,o),{main:c}=n.state.selection,g={changes:{from:o,to:s==c.from?c.to:s,insert:Text.of(a)},scrollIntoView:!0,annotations:A?[pickedCompletion.of(A),Transaction.userEvent.of("input.complete")]:void 0};if(l.length&&(g.selection=fieldSelection(l,0)),l.some(h=>h.field>0)){let h=new ActiveSnippet(l,0),d=g.effects=[setActive.of(h)];n.state.field(snippetState,!1)===void 0&&d.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme]))}n.dispatch(n.state.update(g))}}function moveField(r){return({state:e,dispatch:n})=>{let A=e.field(snippetState,!1);if(!A||r<0&&A.active==0)return!1;let o=A.active+r,s=r>0&&!A.ranges.some(a=>a.field==o+r);return n(e.update({selection:fieldSelection(A.ranges,o),effects:setActive.of(s?null:new ActiveSnippet(A.ranges,o)),scrollIntoView:!0})),!0}}const clearSnippet=({state:r,dispatch:e})=>r.field(snippetState,!1)?(e(r.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(r){return r.length?r[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],r=>r.facet(snippetKeymap)));function snippetCompletion(r,e){return Object.assign(Object.assign({},e),{apply:snippet(r)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(r,e){let n=e.state.field(snippetState,!1),A;if(!n||(A=e.posAtCoords({x:r.clientX,y:r.clientY}))==null)return!1;let o=n.ranges.find(s=>s.from<=A&&s.to>=A);return!o||o.field==n.active?!1:(e.dispatch({selection:fieldSelection(n.ranges,o.field),effects:setActive.of(n.ranges.some(s=>s.field>o.field)?new ActiveSnippet(n.ranges,o.field):null),scrollIntoView:!0}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},closeBracketEffect=StateEffect.define({map(r,e){let n=e.mapPos(r,-1,MapMode.TrackAfter);return n??void 0}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(r,e){if(r=r.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:A=>A>=n.from&&A<=n.to})}for(let n of e.effects)n.is(closeBracketEffect)&&(r=r.update({add:[closedBracket.range(n.value,n.value+1)]}));return r}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>«»»«[]{}";function closing(r){for(let e=0;e<definedClosing.length;e+=2)if(definedClosing.charCodeAt(e)==r)return definedClosing.charAt(e+1);return fromCodePoint(r<128?r:r+1)}function config(r,e){return r.languageDataAt("closeBrackets",e)[0]||defaults}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),inputHandler=EditorView.inputHandler.of((r,e,n,A)=>{if((android?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let o=r.state.selection.main;if(A.length>2||A.length==2&&codePointSize(codePointAt(A,0))==1||e!=o.from||n!=o.to)return!1;let s=insertBracket(r.state,A);return s?(r.dispatch(s),!0):!1}),deleteBracketPair=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let A=config(r,r.selection.main.head).brackets||defaults.brackets,o=null,s=r.changeByRange(a=>{if(a.empty){let l=prevChar(r.doc,a.head);for(let c of A)if(c==l&&nextChar(r.doc,a.head)==closing(codePointAt(c,0)))return{changes:{from:a.head-c.length,to:a.head+c.length},range:EditorSelection.cursor(a.head-c.length)}}return{range:o=a}});return o||e(r.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!o},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(r,e){let n=config(r,r.selection.main.head),A=n.brackets||defaults.brackets;for(let o of A){let s=closing(codePointAt(o,0));if(e==o)return s==o?handleSame(r,o,A.indexOf(o+o+o)>-1,n):handleOpen(r,o,s,n.before||defaults.before);if(e==s&&closedBracketAt(r,r.selection.main.from))return handleClose(r,o,s)}return null}function closedBracketAt(r,e){let n=!1;return r.field(bracketState).between(0,r.doc.length,A=>{A==e&&(n=!0)}),n}function nextChar(r,e){let n=r.sliceString(e,e+2);return n.slice(0,codePointSize(codePointAt(n,0)))}function prevChar(r,e){let n=r.sliceString(e-2,e);return codePointSize(codePointAt(n,0))==n.length?n:n.slice(1)}function handleOpen(r,e,n,A){let o=null,s=r.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:n,from:a.to}],effects:closeBracketEffect.of(a.to+e.length),range:EditorSelection.range(a.anchor+e.length,a.head+e.length)};let l=nextChar(r.doc,a.head);return!l||/\s/.test(l)||A.indexOf(l)>-1?{changes:{insert:e+n,from:a.head},effects:closeBracketEffect.of(a.head+e.length),range:EditorSelection.cursor(a.head+e.length)}:{range:o=a}});return o?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(r,e,n){let A=null,o=r.changeByRange(s=>s.empty&&nextChar(r.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:EditorSelection.cursor(s.head+n.length)}:A={range:s});return A?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function handleSame(r,e,n,A){let o=A.stringPrefixes||defaults.stringPrefixes,s=null,a=r.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:closeBracketEffect.of(l.to+e.length),range:EditorSelection.range(l.anchor+e.length,l.head+e.length)};let c=l.head,g=nextChar(r.doc,c),h;if(g==e){if(nodeStart(r,c))return{changes:{insert:e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)};if(closedBracketAt(r,c)){let u=n&&r.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+u.length,insert:u},range:EditorSelection.cursor(c+u.length)}}}else{if(n&&r.sliceDoc(c-2*e.length,c)==e+e&&(h=canStartStringAt(r,c-2*e.length,o))>-1&&nodeStart(r,h))return{changes:{insert:e+e+e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)};if(r.charCategorizer(c)(g)!=CharCategory.Word&&canStartStringAt(r,c,o)>-1&&!probablyInString(r,c,e,o))return{changes:{insert:e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)}}return{range:s=l}});return s?null:r.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(r,e){let n=syntaxTree(r).resolveInner(e+1);return n.parent&&n.from==e}function probablyInString(r,e,n,A){let o=syntaxTree(r).resolveInner(e,-1),s=A.reduce((a,l)=>Math.max(a,l.length),0);for(let a=0;a<5;a++){let l=r.sliceDoc(o.from,Math.min(o.to,o.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&A.indexOf(l.slice(0,c))>-1){let h=o.firstChild;for(;h&&h.from==o.from&&h.to-h.from>n.length+c;){if(r.sliceDoc(h.to-n.length,h.to)==n)return!1;h=h.firstChild}return!0}let g=o.to==e&&o.parent;if(!g)break;o=g}return!1}function canStartStringAt(r,e,n){let A=r.charCategorizer(e);if(A(r.sliceDoc(e-1,e))!=CharCategory.Word)return e;for(let o of n){let s=e-o.length;if(r.sliceDoc(s,e)==o&&A(r.sliceDoc(s-1,s))!=CharCategory.Word)return s}return-1}function autocompletion(r={}){return[commitCharacters,completionState,completionConfig$1.of(r),completionPlugin,completionKeymapExt,baseTheme]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{mac:"Alt-`",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig$1],r=>r.facet(completionConfig$1).defaultKeymap?[completionKeymap]:[])),toggleComment=r=>{let{state:e}=r,n=e.doc.lineAt(e.selection.main.from),A=getConfig(r.state,n.from);return A.line?toggleLineComment(r):A.block?toggleBlockCommentByLine(r):!1};function command(r,e){return({state:n,dispatch:A})=>{if(n.readOnly)return!1;let o=r(e,n);return o?(A(n.update(o)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((r,e)=>changeBlockComment(r,e,selectedLineRanges(e)),0);function getConfig(r,e){let n=r.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const SearchMargin=50;function findBlockComment(r,{open:e,close:n},A,o){let s=r.sliceDoc(A-SearchMargin,A),a=r.sliceDoc(o,o+SearchMargin),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(a)[0].length,g=s.length-l;if(s.slice(g-e.length,g)==e&&a.slice(c,c+n.length)==n)return{open:{pos:A-l,margin:l&&1},close:{pos:o+c,margin:c&&1}};let h,d;o-A<=2*SearchMargin?h=d=r.sliceDoc(A,o):(h=r.sliceDoc(A,A+SearchMargin),d=r.sliceDoc(o-SearchMargin,o));let u=/^\s*/.exec(h)[0].length,f=/\s*$/.exec(d)[0].length,I=d.length-f-n.length;return h.slice(u,u+e.length)==e&&d.slice(I,I+n.length)==n?{open:{pos:A+u+e.length,margin:/\s/.test(h.charAt(u+e.length))?1:0},close:{pos:o-f-n.length,margin:/\s/.test(d.charAt(I-1))?1:0}}:null}function selectedLineRanges(r){let e=[];for(let n of r.selection.ranges){let A=r.doc.lineAt(n.from),o=n.to<=A.to?A:r.doc.lineAt(n.to);o.from>A.from&&o.from==n.to&&(o=n.to==A.to+1?A:r.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>A.from?e[s].to=o.to:e.push({from:A.from+/^\s*/.exec(A.text)[0].length,to:o.to})}return e}function changeBlockComment(r,e,n=e.selection.ranges){let A=n.map(s=>getConfig(e,s.from).block);if(!A.every(s=>s))return null;let o=n.map((s,a)=>findBlockComment(e,A[a],s.from,s.to));if(r!=2&&!o.every(s=>s))return{changes:e.changes(n.map((s,a)=>o[a]?[]:[{from:s.from,insert:A[a].open+" "},{from:s.to,insert:" "+A[a].close}]))};if(r!=1&&o.some(s=>s)){let s=[];for(let a=0,l;a<o.length;a++)if(l=o[a]){let c=A[a],{open:g,close:h}=l;s.push({from:g.pos-c.open.length,to:g.pos+g.margin},{from:h.pos-h.margin,to:h.pos+c.close.length})}return{changes:s}}return null}function changeLineComment(r,e,n=e.selection.ranges){let A=[],o=-1;for(let{from:s,to:a}of n){let l=A.length,c=1e9,g=getConfig(e,s).line;if(g){for(let h=s;h<=a;){let d=e.doc.lineAt(h);if(d.from>o&&(s==a||a>d.from)){o=d.from;let u=/^\s*/.exec(d.text)[0].length,f=u==d.length,I=d.text.slice(u,u+g.length)==g?u:-1;u<d.text.length&&u<c&&(c=u),A.push({line:d,comment:I,token:g,indent:u,empty:f,single:!1})}h=d.to+1}if(c<1e9)for(let h=l;h<A.length;h++)A[h].indent<A[h].line.text.length&&(A[h].indent=c);A.length==l+1&&(A[l].single=!0)}}if(r!=2&&A.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:g,empty:h,single:d}of A)(d||!h)&&s.push({from:l.from+g,insert:c+" "});let a=e.changes(s);return{changes:a,selection:e.selection.map(a,1)}}else if(r!=1&&A.some(s=>s.comment>=0)){let s=[];for(let{line:a,comment:l,token:c}of A)if(l>=0){let g=a.from+l,h=g+c.length;a.text[h-a.from]==" "&&h++,s.push({from:g,to:h})}return{changes:s}}return null}function updateSel(r,e){return EditorSelection.create(r.ranges.map(e),r.mainIndex)}function setSel(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function moveSel({state:r,dispatch:e},n){let A=updateSel(r.selection,n);return A.eq(r.selection,!0)?!1:(e(setSel(r,A)),!0)}function rangeEnd(r,e){return EditorSelection.cursor(e?r.to:r.from)}function cursorByChar(r,e){return moveSel(r,n=>n.empty?r.moveByChar(n,e):rangeEnd(n,e))}function ltrAtCursor(r){return r.textDirectionAt(r.state.selection.main.head)==Direction.LTR}const cursorCharLeft=r=>cursorByChar(r,!ltrAtCursor(r)),cursorCharRight=r=>cursorByChar(r,ltrAtCursor(r));function cursorByGroup(r,e){return moveSel(r,n=>n.empty?r.moveByGroup(n,e):rangeEnd(n,e))}const cursorGroupLeft=r=>cursorByGroup(r,!ltrAtCursor(r)),cursorGroupRight=r=>cursorByGroup(r,ltrAtCursor(r));function interestingNode(r,e,n){if(e.type.prop(n))return!0;let A=e.to-e.from;return A&&(A>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(r,e,n){let A=syntaxTree(r).resolveInner(e.head),o=n?NodeProp.closedBy:NodeProp.openedBy;for(let c=e.head;;){let g=n?A.childAfter(c):A.childBefore(c);if(!g)break;interestingNode(r,g,o)?A=g:c=n?g.to:g.from}let s=A.type.prop(o),a,l;return s&&(a=n?matchBrackets(r,A.from,1):matchBrackets(r,A.to,-1))&&a.matched?l=n?a.end.to:a.end.from:l=n?A.to:A.from,EditorSelection.cursor(l,n?-1:1)}const cursorSyntaxLeft=r=>moveSel(r,e=>moveBySyntax(r.state,e,!ltrAtCursor(r))),cursorSyntaxRight=r=>moveSel(r,e=>moveBySyntax(r.state,e,ltrAtCursor(r)));function cursorByLine(r,e){return moveSel(r,n=>{if(!n.empty)return rangeEnd(n,e);let A=r.moveVertically(n,e);return A.head!=n.head?A:r.moveToLineBoundary(n,e)})}const cursorLineUp=r=>cursorByLine(r,!1),cursorLineDown=r=>cursorByLine(r,!0);function pageInfo(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,n=0,A=0,o;if(e){for(let s of r.state.facet(EditorView.scrollMargins)){let a=s(r);a?.top&&(n=Math.max(a?.top,n)),a?.bottom&&(A=Math.max(a?.bottom,A))}o=r.scrollDOM.clientHeight-n-A}else o=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:A,selfScroll:e,height:Math.max(r.defaultLineHeight,o-5)}}function cursorByPage(r,e){let n=pageInfo(r),{state:A}=r,o=updateSel(A.selection,a=>a.empty?r.moveVertically(a,e,n.height):rangeEnd(a,e));if(o.eq(A.selection))return!1;let s;if(n.selfScroll){let a=r.coordsAtPos(A.selection.main.head),l=r.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,g=l.bottom-n.marginBottom;a&&a.top>c&&a.bottom<g&&(s=EditorView.scrollIntoView(o.main.head,{y:"start",yMargin:a.top-c}))}return r.dispatch(setSel(A,o),{effects:s}),!0}const cursorPageUp=r=>cursorByPage(r,!1),cursorPageDown=r=>cursorByPage(r,!0);function moveByLineBoundary(r,e,n){let A=r.lineBlockAt(e.head),o=r.moveToLineBoundary(e,n);if(o.head==e.head&&o.head!=(n?A.to:A.from)&&(o=r.moveToLineBoundary(e,n,!1)),!n&&o.head==A.from&&A.length){let s=/^\s*/.exec(r.state.sliceDoc(A.from,Math.min(A.from+100,A.to)))[0].length;s&&e.head!=A.from+s&&(o=EditorSelection.cursor(A.from+s))}return o}const cursorLineBoundaryForward=r=>moveSel(r,e=>moveByLineBoundary(r,e,!0)),cursorLineBoundaryBackward=r=>moveSel(r,e=>moveByLineBoundary(r,e,!1)),cursorLineBoundaryLeft=r=>moveSel(r,e=>moveByLineBoundary(r,e,!ltrAtCursor(r))),cursorLineBoundaryRight=r=>moveSel(r,e=>moveByLineBoundary(r,e,ltrAtCursor(r))),cursorLineStart=r=>moveSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).from,1)),cursorLineEnd=r=>moveSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).to,-1));function toMatchingBracket(r,e,n){let A=!1,o=updateSel(r.selection,s=>{let a=matchBrackets(r,s.head,-1)||matchBrackets(r,s.head,1)||s.head>0&&matchBrackets(r,s.head-1,1)||s.head<r.doc.length&&matchBrackets(r,s.head+1,-1);if(!a||!a.end)return s;A=!0;let l=a.start.from==s.head?a.end.to:a.end.from;return EditorSelection.cursor(l)});return A?(e(setSel(r,o)),!0):!1}const cursorMatchingBracket=({state:r,dispatch:e})=>toMatchingBracket(r,e);function extendSel(r,e){let n=updateSel(r.state.selection,A=>{let o=e(A);return EditorSelection.range(A.anchor,o.head,o.goalColumn,o.bidiLevel||void 0)});return n.eq(r.state.selection)?!1:(r.dispatch(setSel(r.state,n)),!0)}function selectByChar(r,e){return extendSel(r,n=>r.moveByChar(n,e))}const selectCharLeft=r=>selectByChar(r,!ltrAtCursor(r)),selectCharRight=r=>selectByChar(r,ltrAtCursor(r));function selectByGroup(r,e){return extendSel(r,n=>r.moveByGroup(n,e))}const selectGroupLeft=r=>selectByGroup(r,!ltrAtCursor(r)),selectGroupRight=r=>selectByGroup(r,ltrAtCursor(r)),selectSyntaxLeft=r=>extendSel(r,e=>moveBySyntax(r.state,e,!ltrAtCursor(r))),selectSyntaxRight=r=>extendSel(r,e=>moveBySyntax(r.state,e,ltrAtCursor(r)));function selectByLine(r,e){return extendSel(r,n=>r.moveVertically(n,e))}const selectLineUp=r=>selectByLine(r,!1),selectLineDown=r=>selectByLine(r,!0);function selectByPage(r,e){return extendSel(r,n=>r.moveVertically(n,e,pageInfo(r).height))}const selectPageUp=r=>selectByPage(r,!1),selectPageDown=r=>selectByPage(r,!0),selectLineBoundaryForward=r=>extendSel(r,e=>moveByLineBoundary(r,e,!0)),selectLineBoundaryBackward=r=>extendSel(r,e=>moveByLineBoundary(r,e,!1)),selectLineBoundaryLeft=r=>extendSel(r,e=>moveByLineBoundary(r,e,!ltrAtCursor(r))),selectLineBoundaryRight=r=>extendSel(r,e=>moveByLineBoundary(r,e,ltrAtCursor(r))),selectLineStart=r=>extendSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).from)),selectLineEnd=r=>extendSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).to)),cursorDocStart=({state:r,dispatch:e})=>(e(setSel(r,{anchor:0})),!0),cursorDocEnd=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.doc.length})),!0),selectDocStart=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.selection.main.anchor,head:0})),!0),selectDocEnd=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),selectAll=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),selectLine=({state:r,dispatch:e})=>{let n=selectedLineBlocks(r).map(({from:A,to:o})=>EditorSelection.range(A,Math.min(o+1,r.doc.length)));return e(r.update({selection:EditorSelection.create(n),userEvent:"select"})),!0},selectParentSyntax=({state:r,dispatch:e})=>{let n=updateSel(r.selection,A=>{let o=syntaxTree(r),s=o.resolveStack(A.from,1);if(A.empty){let a=o.resolveStack(A.from,-1);a.node.from>=s.node.from&&a.node.to<=s.node.to&&(s=a)}for(let a=s;a;a=a.next){let{node:l}=a;if((l.from<A.from&&l.to>=A.to||l.to>A.to&&l.from<=A.from)&&a.next)return EditorSelection.range(l.to,l.from)}return A});return n.eq(r.selection)?!1:(e(setSel(r,n)),!0)},simplifySelection=({state:r,dispatch:e})=>{let n=r.selection,A=null;return n.ranges.length>1?A=EditorSelection.create([n.main]):n.main.empty||(A=EditorSelection.create([EditorSelection.cursor(n.main.head)])),A?(e(setSel(r,A)),!0):!1};function deleteBy(r,e){if(r.state.readOnly)return!1;let n="delete.selection",{state:A}=r,o=A.changeByRange(s=>{let{from:a,to:l}=s;if(a==l){let c=e(s);c<a?(n="delete.backward",c=skipAtomic(r,c,!1)):c>a&&(n="delete.forward",c=skipAtomic(r,c,!0)),a=Math.min(a,c),l=Math.max(l,c)}else a=skipAtomic(r,a,!1),l=skipAtomic(r,l,!0);return a==l?{range:s}:{changes:{from:a,to:l},range:EditorSelection.cursor(a,a<s.head?-1:1)}});return o.changes.empty?!1:(r.dispatch(A.update(o,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?EditorView.announce.of(A.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(r,e,n){if(r instanceof EditorView)for(let A of r.state.facet(EditorView.atomicRanges).map(o=>o(r)))A.between(e,e,(o,s)=>{o<e&&s>e&&(e=n?s:o)});return e}const deleteByChar=(r,e,n)=>deleteBy(r,A=>{let o=A.from,{state:s}=r,a=s.doc.lineAt(o),l,c;if(n&&!e&&o>a.from&&o<a.from+200&&!/[^ \t]/.test(l=a.text.slice(0,o-a.from))){if(l[l.length-1]==" ")return o-1;let g=countColumn(l,s.tabSize),h=g%getIndentUnit(s)||getIndentUnit(s);for(let d=0;d<h&&l[l.length-1-d]==" ";d++)o--;c=o}else c=findClusterBreak(a.text,o-a.from,e,e)+a.from,c==o&&a.number!=(e?s.doc.lines:1)?c+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(a.text.slice(c-a.from,o-a.from))&&(c=findClusterBreak(a.text,c-a.from,!1,!1)+a.from);return c}),deleteCharBackward=r=>deleteByChar(r,!1,!0),deleteCharForward=r=>deleteByChar(r,!0,!1),deleteByGroup=(r,e)=>deleteBy(r,n=>{let A=n.head,{state:o}=r,s=o.doc.lineAt(A),a=o.charCategorizer(A);for(let l=null;;){if(A==(e?s.to:s.from)){A==n.head&&s.number!=(e?o.doc.lines:1)&&(A+=e?1:-1);break}let c=findClusterBreak(s.text,A-s.from,e)+s.from,g=s.text.slice(Math.min(A,c)-s.from,Math.max(A,c)-s.from),h=a(g);if(l!=null&&h!=l)break;(g!=" "||A!=n.head)&&(l=h),A=c}return A}),deleteGroupBackward=r=>deleteByGroup(r,!1),deleteGroupForward=r=>deleteByGroup(r,!0),deleteToLineEnd=r=>deleteBy(r,e=>{let n=r.lineBlockAt(e.head).to;return e.head<n?n:Math.min(r.state.doc.length,e.head+1)}),deleteLineBoundaryBackward=r=>deleteBy(r,e=>{let n=r.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),deleteLineBoundaryForward=r=>deleteBy(r,e=>{let n=r.moveToLineBoundary(e,!0).head;return e.head<n?n:Math.min(r.state.doc.length,e.head+1)}),splitLine=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=r.changeByRange(A=>({changes:{from:A.from,to:A.to,insert:Text.of(["",""])},range:EditorSelection.cursor(A.from)}));return e(r.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=r.changeByRange(A=>{if(!A.empty||A.from==0||A.from==r.doc.length)return{range:A};let o=A.from,s=r.doc.lineAt(o),a=o==s.from?o-1:findClusterBreak(s.text,o-s.from,!1)+s.from,l=o==s.to?o+1:findClusterBreak(s.text,o-s.from,!0)+s.from;return{changes:{from:a,to:l,insert:r.doc.slice(o,l).append(r.doc.slice(a,o))},range:EditorSelection.cursor(l)}});return n.changes.empty?!1:(e(r.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(r){let e=[],n=-1;for(let A of r.selection.ranges){let o=r.doc.lineAt(A.from),s=r.doc.lineAt(A.to);if(!A.empty&&A.to==s.from&&(s=r.doc.lineAt(A.to-1)),n>=o.number){let a=e[e.length-1];a.to=s.to,a.ranges.push(A)}else e.push({from:o.from,to:s.to,ranges:[A]});n=s.number+1}return e}function moveLine(r,e,n){if(r.readOnly)return!1;let A=[],o=[];for(let s of selectedLineBlocks(r)){if(n?s.to==r.doc.length:s.from==0)continue;let a=r.doc.lineAt(n?s.to+1:s.from-1),l=a.length+1;if(n){A.push({from:s.to,to:a.to},{from:s.from,insert:a.text+r.lineBreak});for(let c of s.ranges)o.push(EditorSelection.range(Math.min(r.doc.length,c.anchor+l),Math.min(r.doc.length,c.head+l)))}else{A.push({from:a.from,to:s.from},{from:s.to,insert:r.lineBreak+a.text});for(let c of s.ranges)o.push(EditorSelection.range(c.anchor-l,c.head-l))}}return A.length?(e(r.update({changes:A,scrollIntoView:!0,selection:EditorSelection.create(o,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:r,dispatch:e})=>moveLine(r,e,!1),moveLineDown=({state:r,dispatch:e})=>moveLine(r,e,!0);function copyLine(r,e,n){if(r.readOnly)return!1;let A=[];for(let o of selectedLineBlocks(r))n?A.push({from:o.from,insert:r.doc.slice(o.from,o.to)+r.lineBreak}):A.push({from:o.to,insert:r.lineBreak+r.doc.slice(o.from,o.to)});return e(r.update({changes:A,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:r,dispatch:e})=>copyLine(r,e,!1),copyLineDown=({state:r,dispatch:e})=>copyLine(r,e,!0),deleteLine=r=>{if(r.state.readOnly)return!1;let{state:e}=r,n=e.changes(selectedLineBlocks(e).map(({from:o,to:s})=>(o>0?o--:s<e.doc.length&&s++,{from:o,to:s}))),A=updateSel(e.selection,o=>{let s;if(r.lineWrapping){let a=r.lineBlockAt(o.head),l=r.coordsAtPos(o.head,o.assoc||1);l&&(s=a.bottom+r.documentTop-l.bottom+r.defaultLineHeight/2)}return r.moveVertically(o,!0,s)}).map(n);return r.dispatch({changes:n,selection:A,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=syntaxTree(r).resolveInner(e),A=n.childBefore(e),o=n.childAfter(e),s;return A&&o&&A.to<=e&&o.from>=e&&(s=A.type.prop(NodeProp.closedBy))&&s.indexOf(o.name)>-1&&r.doc.lineAt(A.to).from==r.doc.lineAt(o.from).from&&!/\S/.test(r.sliceDoc(A.to,o.from))?{from:A.to,to:o.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(r){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let A=e.changeByRange(o=>{let{from:s,to:a}=o,l=e.doc.lineAt(s),c=!r&&s==a&&isBetweenBrackets(e,s);r&&(s=a=(a<=l.to?l:e.doc.lineAt(a)).to);let g=new IndentContext(e,{simulateBreak:s,simulateDoubleBreak:!!c}),h=getIndentation(g,s);for(h==null&&(h=countColumn(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));a<l.to&&/\s/.test(l.text[a-l.from]);)a++;c?{from:s,to:a}=c:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let d=["",indentString(e,h)];return c&&d.push(indentString(e,g.lineIndent(l.from,-1))),{changes:{from:s,to:a,insert:Text.of(d)},range:EditorSelection.cursor(s+1+d[1].length)}});return n(e.update(A,{scrollIntoView:!0,userEvent:"input"})),!0}}function changeBySelectedLine(r,e){let n=-1;return r.changeByRange(A=>{let o=[];for(let a=A.from;a<=A.to;){let l=r.doc.lineAt(a);l.number>n&&(A.empty||A.to>l.from)&&(e(l,o,A),n=l.number),a=l.to+1}let s=r.changes(o);return{changes:o,range:EditorSelection.range(s.mapPos(A.anchor,1),s.mapPos(A.head,1))}})}const indentSelection=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=Object.create(null),A=new IndentContext(r,{overrideIndentation:s=>{let a=n[s];return a??-1}}),o=changeBySelectedLine(r,(s,a,l)=>{let c=getIndentation(A,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let g=/^\s*/.exec(s.text)[0],h=indentString(r,c);(g!=h||l.from<s.from+g.length)&&(n[s.from]=c,a.push({from:s.from,to:s.from+g.length,insert:h}))});return o.changes.empty||e(r.update(o,{userEvent:"indent"})),!0},indentMore=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(changeBySelectedLine(r,(n,A)=>{A.push({from:n.from,insert:r.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(changeBySelectedLine(r,(n,A)=>{let o=/^\s*/.exec(n.text)[0];if(!o)return;let s=countColumn(o,r.tabSize),a=0,l=indentString(r,Math.max(0,s-getIndentUnit(r)));for(;a<o.length&&a<l.length&&o.charCodeAt(a)==l.charCodeAt(a);)a++;A.push({from:n.from+a,to:n.from+o.length,insert:l.slice(a)})}),{userEvent:"delete.dedent"})),!0),toggleTabFocusMode=r=>(r.setTabFocusMode(),!0),emacsStyleKeymap=[{key:"Ctrl-b",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Ctrl-f",run:cursorCharRight,shift:selectCharRight},{key:"Ctrl-p",run:cursorLineUp,shift:selectLineUp},{key:"Ctrl-n",run:cursorLineDown,shift:selectLineDown},{key:"Ctrl-a",run:cursorLineStart,shift:selectLineStart},{key:"Ctrl-e",run:cursorLineEnd,shift:selectLineEnd},{key:"Ctrl-d",run:deleteCharForward},{key:"Ctrl-h",run:deleteCharBackward},{key:"Ctrl-k",run:deleteToLineEnd},{key:"Ctrl-Alt-h",run:deleteGroupBackward},{key:"Ctrl-o",run:splitLine},{key:"Ctrl-t",run:transposeChars},{key:"Ctrl-v",run:cursorPageDown}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryLeft,shift:selectLineBoundaryLeft,preventDefault:!0},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight,preventDefault:!0},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryRight,shift:selectLineBoundaryRight,preventDefault:!0},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp,preventDefault:!0},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown,preventDefault:!0},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward,preventDefault:!0},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward,preventDefault:!0},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent,shift:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCharBackward,shift:deleteCharBackward},{key:"Delete",run:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteLineBoundaryBackward},{mac:"Mod-Delete",run:deleteLineBoundaryForward}].concat(emacsStyleKeymap.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment},{key:"Ctrl-m",mac:"Shift-Alt-m",run:toggleTabFocusMode}].concat(standardKeymap),indentWithTab={key:"Tab",run:indentMore,shift:indentLess};function toPosition(r,e){let n=r.lineAt(e);return{line:n.number-1,character:e-n.from}}function fromPosition(r,e){return r.line(e.line+1).from+e.character}function escHTML(r){return r.replace(/[\n<&]/g,e=>e==`
|
|
28
|
+
`?"<br>":e=="<"?"<":"&")}class PositionMapper{constructor(e,n){this.rawTextMap=n,this.doc=e.state.doc,this.rawTextArr=[];for(const A of n)A.nodeIdx>0&&this.rawTextArr.push({nodeIdx:A.nodeIdx,maxNodeIdx:A.nodeIdx,targetPos:A.targetPos,targetRow:A.targetRow,targetCol:A.targetCol});this.rawTextArr.sort((A,o)=>A.nodeIdx-o.nodeIdx);for(let A=0;A<this.rawTextArr.length;A++){const o=A+1;o<this.rawTextArr.length?this.rawTextArr[A].maxNodeIdx=this.rawTextArr[o].nodeIdx-1:this.rawTextArr[A].maxNodeIdx=this.doc.nodeSize}}rawTextArr;doc;toRawTextPos(e){for(let n=0;n<this.rawTextArr.length;n++){const A=this.rawTextArr[n];if(e>=A.nodeIdx&&e<=A.maxNodeIdx)return A.targetPos+e-A.nodeIdx}return-1}toRawTextLspPos(e){for(let n=0;n<this.rawTextArr.length;n++){const A=this.rawTextArr[n];if(e>=A.nodeIdx&&e<=A.maxNodeIdx)return{line:A.targetRow,character:A.targetCol+e-A.nodeIdx}}return{line:0,character:0}}fromLineChar(e,n){for(let A=0;A<this.rawTextArr.length;A++){const o=this.rawTextArr[A],s=o.maxNodeIdx-o.nodeIdx+1;if(o.targetRow===e){if(n>=o.targetCol&&n<o.targetCol+s){const c=n-o.targetCol;return o.nodeIdx+c}const a=this.rawTextArr[A+1];if((!a||a.targetRow>o.targetRow)&&n>=o.targetCol+s)return o.maxNodeIdx}}return-1}}class LSPPlugin{constructor(e,{extension:n,extensionLsp:A,uri:o,editor:s}){this.view=e,this.lang="plaintext",this.extension=n,this.extensionLsp=A,this.uri=o,this.editor=s,this.source={ui:this.editor.ui,getMappedContent:async()=>{const a=this.editor,l=toRawTextResult(this.view.state.doc.toString().toString(),0),c=new PositionMapper(a,l.rawTextMap);return{...l,mapper:c}}}}getClient(){return this.client}setLang(e){this.lang=e;const n=this.extensionLsp.getClient(e);this.client=n,n&&(n.disconnect(this.uri),n.connect(this.uri,this.source),n.workspace.openFile(this.uri,e,this.source))}update(){this.client&&this.client.workspace.changedFile(this.uri)}docToHTML(e,n="plaintext"){return typeof e=="string"?escHTML(e):`docToHTML ${e.kind} ${JSON.stringify(e.value,null,2)}`}toPosition(e,n=this.view.state.doc){return toPosition(n,e)}fromPosition(e,n=this.view.state.doc){return fromPosition(n,e)}reportError(e,n){this.editor.ui.showError(n)}static get(e){return e.plugin(lspPlugin)}}const lspPlugin=ViewPlugin.fromClass(LSPPlugin);function computeChange(r,e){if(r===e)return null;let n=0,A=r.length,o=e.length;for(;n<A&&r.charCodeAt(n)===e.charCodeAt(n);)n+=1;for(;A>n&&o>n&&r.charCodeAt(A-1)===e.charCodeAt(o-1);)A-=1,o-=1;return{from:n,to:A,text:e.slice(n,o)}}const asProseMirrorSelection=(r,e,n)=>{const A=(typeof n=="function"&&n()||0)+1,o=e.state.selection.main.from+A,s=e.state.selection.main.to+A;return TextSelection.create(r,o,s)},forwardSelection=(r,e,n)=>{if(!r.hasFocus)return;const A=asProseMirrorSelection(e.state.doc,r,n);A.eq(e.state.selection)||e.dispatch(e.state.tr.setSelection(A))},valueChanged=(r,e,n,A)=>{const o=computeChange(e.textContent,r);if(o){const s=n();if(typeof s<"u"){const a=s+1;let l=A.state.tr;l=l.replaceWith(a+o.from,a+o.to,o.text?A.state.schema.text(o.text):[]),A.dispatch(l)}}},maybeEscape=(r,e,n,A,o)=>{const s=n.state.selection.main,a=n.state.doc.lineAt(s.from),l=n.state.doc.lines;if(s.to!==s.from||a.number!==(e<0?1:l)||r==="char"&&s.from!==(e<0?0:a.to)||typeof o!="function")return!1;A.focus();const c=o();if(!c)return!1;const g=A.state.doc.nodeAt(c);if(!g)return!1;const h=c+(e<0?0:g.nodeSize),d=Selection.near(A.state.doc.resolve(h),e);return A.dispatch(A.state.tr.setSelection(d).scrollIntoView()),A.focus(),!0},backspaceHandler=(r,e,n)=>{const{selection:A}=e.state;return A.main.empty&&A.main.from===0?(n.commandFactories.setBlockType(r.state.schema.nodes.paragraph)(r.state,r.dispatch),setTimeout(()=>r.focus(),20),!0):!1},setMode=async(r,e,n,A)=>{const o=await n.languageLoaders?.[r]?.();o&&e.dispatch({effects:A.reconfigure(o)});const s=LSPPlugin.get(e);s&&s.setLang(r)},isTheme=r=>Array.isArray(r)?r.every(e=>e!==void 0&&typeof e.extension=="object"&&typeof e.name=="string"):!1,setTheme=async(r,e,n)=>{isTheme(n)&&r.dispatch({effects:e.reconfigure(n)})};class RemoteSyncConfig{constructor(e,n,A){this.getNode=e,this.getPmPos=n,this.editor=A}}const remoteSyncFacet=Facet.define({combine(r){return r[r.length-1]}});class Pair{constructor(e,n){this.left=e,this.right=n}}const create=(r,e)=>new Pair(r,e),forEach=(r,e)=>r.forEach(n=>e(n.left,n.right)),doc=typeof document<"u"?document:{},createElement=r=>doc.createElement(r),createDocumentFragment=()=>doc.createDocumentFragment(),createTextNode=r=>doc.createTextNode(r);typeof DOMParser<"u"&&new DOMParser;const setAttributes=(r,e)=>(forEach(e,(n,A)=>{A===!1?r.removeAttribute(n):A===!0?r.setAttribute(n,""):r.setAttribute(n,A)}),r),fragment=r=>{const e=createDocumentFragment();for(let n=0;n<r.length;n++)appendChild(e,r[n]);return e},append$1=(r,e)=>(appendChild(r,fragment(e)),r),element$1=(r,e=[],n=[])=>append$1(setAttributes(createElement(r),e),n),text$1=createTextNode,appendChild=(r,e)=>r.appendChild(e);doc.ELEMENT_NODE;doc.TEXT_NODE;doc.CDATA_SECTION_NODE;doc.COMMENT_NODE;doc.DOCUMENT_NODE;doc.DOCUMENT_TYPE_NODE;doc.DOCUMENT_FRAGMENT_NODE;const min=(r,e)=>r<e?r:e,max=(r,e)=>r>e?r:e,yRemoteSelectionsTheme=EditorView.baseTheme({".cm-rSelection":{},".cm-rLineSelection":{padding:0,margin:"0px 2px 0px 4px"},".cm-rSelectionCaret":{position:"relative",borderLeft:"1px solid black",borderRight:"1px solid black",marginLeft:"-1px",marginRight:"-1px",boxSizing:"border-box",display:"inline"},".cm-rSelectionCaretDot":{borderRadius:"50%",position:"absolute",width:".4em",height:".4em",top:"-.2em",left:"-.2em",backgroundColor:"inherit",transition:"transform .3s ease-in-out",boxSizing:"border-box"},".cm-rSelectionCaret:hover > .cm-rSelectionCaretDot":{transformOrigin:"bottom center",transform:"scale(0)"},".cm-rSelectionInfo":{position:"absolute",top:"-1.05em",left:"-1px",fontSize:".75em",fontFamily:"serif",fontStyle:"normal",fontWeight:"normal",lineHeight:"normal",userSelect:"none",color:"white",paddingLeft:"2px",paddingRight:"2px",zIndex:101,transition:"opacity .3s ease-in-out",backgroundColor:"inherit",opacity:0,transitionDelay:"0s",whiteSpace:"nowrap"},".cm-rSelectionCaret:hover > .cm-rSelectionInfo":{opacity:1,transitionDelay:"0s"}}),yRemoteSelectionsAnnotation=Annotation.define();class YRemoteCaretWidget extends WidgetType{constructor(e,n){super(),this.color=e,this.name=n}toDOM(){return element$1("span",[create("class","kb-yjs__cursor kb-widget"),create("style",`border-color: ${this.color};`)],[text$1(""),element$1("div",[create("style",`background-color: ${this.color}`)],[text$1(this.name)]),text$1("")])}eq(e){return e.color===this.color}compare(e){return e.color===this.color}updateDOM(){return!1}get estimatedHeight(){return-1}ignoreEvent(){return!0}}class YRemoteSelectionsPluginValue{constructor(e){this.conf=e.state.facet(remoteSyncFacet),this.editor=this.conf.editor,this.decorations=RangeSet.of([]),this._remoteSelectionChange=()=>{e.dispatch({annotations:[yRemoteSelectionsAnnotation.of([])]})},this.editor.addEventListener("remoteSelectionChange",this._remoteSelectionChange)}destroy(){this.editor.removeEventListener("remoteSelectionChange",this._remoteSelectionChange)}update(e){const n=[],o=remoteSelectionPluginKey.getState(this.editor.state)?.remoteStates||[];for(const c of o){const g=c.clientId,h=c.cursor;if(h?.anchor==null||h?.head==null)return;const d=this.conf.getPmPos();if(typeof d<"u"){const u=d+this.conf.getNode().nodeSize;if(h.anchor>=d&&h.anchor<u&&h.head>=d&&h.head<u){const f={index:h.anchor-d},I={index:h.head-d};try{const{color:p="#ffa500",name:m=`User: ${g}`}=c.user||{},E=c.user&&c.user.colorLight||p+"33",B=min(f.index,I.index),Q=max(f.index,I.index),S=e.view.state.doc.lineAt(B),w=e.view.state.doc.lineAt(Q);if(S.number===w.number)n.push({from:B,to:Q,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})});else{n.push({from:B,to:S.from+S.length,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})}),n.push({from:w.from,to:Q,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})});for(let y=S.number+1;y<w.number;y++){const D=e.view.state.doc.line(y).from;n.push({from:D,to:D,value:Decoration.line({attributes:{style:`background-color: ${E}`,class:"cm-rLineSelection"}})})}}n.push({from:I.index,to:I.index,value:Decoration.widget({side:I.index-f.index>0?-1:1,block:!1,widget:new YRemoteCaretWidget(p,m)})})}catch(p){console.warn(p,`User: ${g}`)}}}}this.decorations=Decoration.set(n,!0);const a=e.view.hasFocus&&e.view.dom.ownerDocument.hasFocus()?e.state.selection.main:null,l=this.conf.getPmPos();if(a!=null&&typeof l<"u"){const c=l+a.anchor,g=l+a.head,h=new CustomEvent("localPositionChanged",{detail:{anchor:c,head:g}});this.editor.dispatchEvent(h)}}}const yRemoteSelections=ViewPlugin.fromClass(YRemoteSelectionsPluginValue,{decorations:r=>r.decorations}),lspTheme=EditorView.baseTheme({".cm-lsp-documentation":{padding:"0 7px","& p, & pre":{margin:"2px 0"}},".cm-lsp-signature-tooltip":{padding:"2px 6px",borderRadius:"2.5px",position:"relative",maxWidth:"30em",maxHeight:"10em",overflowY:"scroll","& .cm-lsp-documentation":{padding:"0",fontSize:"80%"},"& .cm-lsp-signature-num":{fontFamily:"monospace",position:"absolute",left:"2px",top:"4px",fontSize:"70%",lineHeight:"1.3"},"& .cm-lsp-signature":{fontFamily:"monospace",textIndent:"1em hanging"},"& .cm-lsp-active-parameter":{fontWeight:"bold"}},".cm-lsp-signature-multiple":{paddingLeft:"1.5em"},".cm-panel.cm-lsp-rename-panel":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}},".cm-lsp-message button[type=submit]":{display:"block"},".cm-lsp-reference-panel":{fontFamily:"monospace",whiteSpace:"pre",padding:"3px 6px",maxHeight:"120px",overflow:"auto","& .cm-lsp-reference-file":{fontWeight:"bold"},"& .cm-lsp-reference":{cursor:"pointer","&[aria-selected]":{backgroundColor:"#0077ee44"}},"& .cm-lsp-reference-line":{opacity:"0.7"}}});class LSPExtension{constructor(e){if(this.config=e,this.extensions=[],e.extensions)for(const n of e.extensions)this.extensions.push(n)}plugin(e,n){if(!n.config.uri)throw new Error("No editor.config.uri");return[lspPlugin.of({extension:this,editor:n,extensionLsp:e,uri:n.config.uri}),lspTheme,this.extensions]}}function getAugmentedNamespace(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var e=r.default;if(typeof e=="function"){var n=function A(){var o=!1;try{o=this instanceof A}catch{}return o?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(r).forEach(function(A){var o=Object.getOwnPropertyDescriptor(r,A);Object.defineProperty(n,A,o.get?o:{enumerable:!0,get:function(){return r[A]}})}),n}var main$2={},main$1={},ril={},api$1={},messages$1={},is$1={},hasRequiredIs$1;function requireIs$1(){if(hasRequiredIs$1)return is$1;hasRequiredIs$1=1,Object.defineProperty(is$1,"__esModule",{value:!0}),is$1.stringArray=is$1.array=is$1.func=is$1.error=is$1.number=is$1.string=is$1.boolean=void 0;function r(l){return l===!0||l===!1}is$1.boolean=r;function e(l){return typeof l=="string"||l instanceof String}is$1.string=e;function n(l){return typeof l=="number"||l instanceof Number}is$1.number=n;function A(l){return l instanceof Error}is$1.error=A;function o(l){return typeof l=="function"}is$1.func=o;function s(l){return Array.isArray(l)}is$1.array=s;function a(l){return s(l)&&l.every(c=>e(c))}return is$1.stringArray=a,is$1}var hasRequiredMessages$1;function requireMessages$1(){if(hasRequiredMessages$1)return messages$1;hasRequiredMessages$1=1,Object.defineProperty(messages$1,"__esModule",{value:!0}),messages$1.Message=messages$1.NotificationType9=messages$1.NotificationType8=messages$1.NotificationType7=messages$1.NotificationType6=messages$1.NotificationType5=messages$1.NotificationType4=messages$1.NotificationType3=messages$1.NotificationType2=messages$1.NotificationType1=messages$1.NotificationType0=messages$1.NotificationType=messages$1.RequestType9=messages$1.RequestType8=messages$1.RequestType7=messages$1.RequestType6=messages$1.RequestType5=messages$1.RequestType4=messages$1.RequestType3=messages$1.RequestType2=messages$1.RequestType1=messages$1.RequestType=messages$1.RequestType0=messages$1.AbstractMessageSignature=messages$1.ParameterStructures=messages$1.ResponseError=messages$1.ErrorCodes=void 0;const r=requireIs$1();var e;(function(v){v.ParseError=-32700,v.InvalidRequest=-32600,v.MethodNotFound=-32601,v.InvalidParams=-32602,v.InternalError=-32603,v.jsonrpcReservedErrorRangeStart=-32099,v.serverErrorStart=-32099,v.MessageWriteError=-32099,v.MessageReadError=-32098,v.PendingResponseRejected=-32097,v.ConnectionInactive=-32096,v.ServerNotInitialized=-32002,v.UnknownErrorCode=-32001,v.jsonrpcReservedErrorRangeEnd=-32e3,v.serverErrorEnd=-32e3})(e||(messages$1.ErrorCodes=e={}));class n extends Error{constructor(N,L,G){super(L),this.code=r.number(N)?N:e.UnknownErrorCode,this.data=G,Object.setPrototypeOf(this,n.prototype)}toJson(){const N={code:this.code,message:this.message};return this.data!==void 0&&(N.data=this.data),N}}messages$1.ResponseError=n;class A{constructor(N){this.kind=N}static is(N){return N===A.auto||N===A.byName||N===A.byPosition}toString(){return this.kind}}messages$1.ParameterStructures=A,A.auto=new A("auto"),A.byPosition=new A("byPosition"),A.byName=new A("byName");class o{constructor(N,L){this.method=N,this.numberOfParams=L}get parameterStructures(){return A.auto}}messages$1.AbstractMessageSignature=o;class s extends o{constructor(N){super(N,0)}}messages$1.RequestType0=s;class a extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.RequestType=a;class l extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.RequestType1=l;class c extends o{constructor(N){super(N,2)}}messages$1.RequestType2=c;class g extends o{constructor(N){super(N,3)}}messages$1.RequestType3=g;class h extends o{constructor(N){super(N,4)}}messages$1.RequestType4=h;class d extends o{constructor(N){super(N,5)}}messages$1.RequestType5=d;class u extends o{constructor(N){super(N,6)}}messages$1.RequestType6=u;class f extends o{constructor(N){super(N,7)}}messages$1.RequestType7=f;class I extends o{constructor(N){super(N,8)}}messages$1.RequestType8=I;class p extends o{constructor(N){super(N,9)}}messages$1.RequestType9=p;class m extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.NotificationType=m;class E extends o{constructor(N){super(N,0)}}messages$1.NotificationType0=E;class B extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.NotificationType1=B;class Q extends o{constructor(N){super(N,2)}}messages$1.NotificationType2=Q;class S extends o{constructor(N){super(N,3)}}messages$1.NotificationType3=S;class w extends o{constructor(N){super(N,4)}}messages$1.NotificationType4=w;class y extends o{constructor(N){super(N,5)}}messages$1.NotificationType5=y;class D extends o{constructor(N){super(N,6)}}messages$1.NotificationType6=D;class _ extends o{constructor(N){super(N,7)}}messages$1.NotificationType7=_;class M extends o{constructor(N){super(N,8)}}messages$1.NotificationType8=M;class R extends o{constructor(N){super(N,9)}}messages$1.NotificationType9=R;var F;return(function(v){function N(K){const O=K;return O&&r.string(O.method)&&(r.string(O.id)||r.number(O.id))}v.isRequest=N;function L(K){const O=K;return O&&r.string(O.method)&&K.id===void 0}v.isNotification=L;function G(K){const O=K;return O&&(O.result!==void 0||!!O.error)&&(r.string(O.id)||r.number(O.id)||O.id===null)}v.isResponse=G})(F||(messages$1.Message=F={})),messages$1}var linkedMap={},hasRequiredLinkedMap;function requireLinkedMap(){if(hasRequiredLinkedMap)return linkedMap;hasRequiredLinkedMap=1;var r;Object.defineProperty(linkedMap,"__esModule",{value:!0}),linkedMap.LRUCache=linkedMap.LinkedMap=linkedMap.Touch=void 0;var e;(function(o){o.None=0,o.First=1,o.AsOld=o.First,o.Last=2,o.AsNew=o.Last})(e||(linkedMap.Touch=e={}));class n{constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(s){return this._map.has(s)}get(s,a=e.None){const l=this._map.get(s);if(l)return a!==e.None&&this.touch(l,a),l.value}set(s,a,l=e.None){let c=this._map.get(s);if(c)c.value=a,l!==e.None&&this.touch(c,l);else{switch(c={key:s,value:a,next:void 0,previous:void 0},l){case e.None:this.addItemLast(c);break;case e.First:this.addItemFirst(c);break;case e.Last:this.addItemLast(c);break;default:this.addItemLast(c);break}this._map.set(s,c),this._size++}return this}delete(s){return!!this.remove(s)}remove(s){const a=this._map.get(s);if(a)return this._map.delete(s),this.removeItem(a),this._size--,a.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const s=this._head;return this._map.delete(s.key),this.removeItem(s),this._size--,s.value}forEach(s,a){const l=this._state;let c=this._head;for(;c;){if(a?s.bind(a)(c.value,c.key,this):s(c.value,c.key,this),this._state!==l)throw new Error("LinkedMap got modified during iteration.");c=c.next}}keys(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:a.key,done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}values(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:a.value,done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}entries(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:[a.key,a.value],done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(s){if(s>=this.size)return;if(s===0){this.clear();return}let a=this._head,l=this.size;for(;a&&l>s;)this._map.delete(a.key),a=a.next,l--;this._head=a,this._size=l,a&&(a.previous=void 0),this._state++}addItemFirst(s){if(!this._head&&!this._tail)this._tail=s;else if(this._head)s.next=this._head,this._head.previous=s;else throw new Error("Invalid list");this._head=s,this._state++}addItemLast(s){if(!this._head&&!this._tail)this._head=s;else if(this._tail)s.previous=this._tail,this._tail.next=s;else throw new Error("Invalid list");this._tail=s,this._state++}removeItem(s){if(s===this._head&&s===this._tail)this._head=void 0,this._tail=void 0;else if(s===this._head){if(!s.next)throw new Error("Invalid list");s.next.previous=void 0,this._head=s.next}else if(s===this._tail){if(!s.previous)throw new Error("Invalid list");s.previous.next=void 0,this._tail=s.previous}else{const a=s.next,l=s.previous;if(!a||!l)throw new Error("Invalid list");a.previous=l,l.next=a}s.next=void 0,s.previous=void 0,this._state++}touch(s,a){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(a!==e.First&&a!==e.Last)){if(a===e.First){if(s===this._head)return;const l=s.next,c=s.previous;s===this._tail?(c.next=void 0,this._tail=c):(l.previous=c,c.next=l),s.previous=void 0,s.next=this._head,this._head.previous=s,this._head=s,this._state++}else if(a===e.Last){if(s===this._tail)return;const l=s.next,c=s.previous;s===this._head?(l.previous=void 0,this._head=l):(l.previous=c,c.next=l),s.next=void 0,s.previous=this._tail,this._tail.next=s,this._tail=s,this._state++}}}toJSON(){const s=[];return this.forEach((a,l)=>{s.push([l,a])}),s}fromJSON(s){this.clear();for(const[a,l]of s)this.set(a,l)}}linkedMap.LinkedMap=n;class A extends n{constructor(s,a=1){super(),this._limit=s,this._ratio=Math.min(Math.max(0,a),1)}get limit(){return this._limit}set limit(s){this._limit=s,this.checkTrim()}get ratio(){return this._ratio}set ratio(s){this._ratio=Math.min(Math.max(0,s),1),this.checkTrim()}get(s,a=e.AsNew){return super.get(s,a)}peek(s){return super.get(s,e.None)}set(s,a){return super.set(s,a,e.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}return linkedMap.LRUCache=A,linkedMap}var disposable={},hasRequiredDisposable;function requireDisposable(){if(hasRequiredDisposable)return disposable;hasRequiredDisposable=1,Object.defineProperty(disposable,"__esModule",{value:!0}),disposable.Disposable=void 0;var r;return(function(e){function n(A){return{dispose:A}}e.create=n})(r||(disposable.Disposable=r={})),disposable}var events={},ral={},hasRequiredRal;function requireRal(){if(hasRequiredRal)return ral;hasRequiredRal=1,Object.defineProperty(ral,"__esModule",{value:!0});let r;function e(){if(r===void 0)throw new Error("No runtime abstraction layer installed");return r}return(function(n){function A(o){if(o===void 0)throw new Error("No runtime abstraction layer provided");r=o}n.install=A})(e||(e={})),ral.default=e,ral}var hasRequiredEvents;function requireEvents(){if(hasRequiredEvents)return events;hasRequiredEvents=1,Object.defineProperty(events,"__esModule",{value:!0}),events.Emitter=events.Event=void 0;const r=requireRal();var e;(function(o){const s={dispose(){}};o.None=function(){return s}})(e||(events.Event=e={}));class n{add(s,a=null,l){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(l)&&l.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let l=!1;for(let c=0,g=this._callbacks.length;c<g;c++)if(this._callbacks[c]===s)if(this._contexts[c]===a){this._callbacks.splice(c,1),this._contexts.splice(c,1);return}else l=!0;if(l)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],l=this._callbacks.slice(0),c=this._contexts.slice(0);for(let g=0,h=l.length;g<h;g++)try{a.push(l[g].apply(c[g],s))}catch(d){(0,r.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class A{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,l)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const c={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),c.dispose=A._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(l)&&l.push(c),c}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return events.Emitter=A,A._noop=function(){},events}var cancellation={},hasRequiredCancellation;function requireCancellation(){if(hasRequiredCancellation)return cancellation;hasRequiredCancellation=1,Object.defineProperty(cancellation,"__esModule",{value:!0}),cancellation.CancellationTokenSource=cancellation.CancellationToken=void 0;const r=requireRal(),e=requireIs$1(),n=requireEvents();var A;(function(l){l.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),l.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:n.Event.None});function c(g){const h=g;return h&&(h===l.None||h===l.Cancelled||e.boolean(h.isCancellationRequested)&&!!h.onCancellationRequested)}l.is=c})(A||(cancellation.CancellationToken=A={}));const o=Object.freeze(function(l,c){const g=(0,r.default)().timer.setTimeout(l.bind(c),0);return{dispose(){g.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=A.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=A.None}}return cancellation.CancellationTokenSource=a,cancellation}var sharedArrayCancellation={},hasRequiredSharedArrayCancellation;function requireSharedArrayCancellation(){if(hasRequiredSharedArrayCancellation)return sharedArrayCancellation;hasRequiredSharedArrayCancellation=1,Object.defineProperty(sharedArrayCancellation,"__esModule",{value:!0}),sharedArrayCancellation.SharedArrayReceiverStrategy=sharedArrayCancellation.SharedArraySenderStrategy=void 0;const r=requireCancellation();var e;(function(a){a.Continue=0,a.Cancelled=1})(e||(e={}));class n{constructor(){this.buffers=new Map}enableCancellation(l){if(l.id===null)return;const c=new SharedArrayBuffer(4),g=new Int32Array(c,0,1);g[0]=e.Continue,this.buffers.set(l.id,c),l.$cancellationData=c}async sendCancellation(l,c){const g=this.buffers.get(c);if(g===void 0)return;const h=new Int32Array(g,0,1);Atomics.store(h,0,e.Cancelled)}cleanup(l){this.buffers.delete(l)}dispose(){this.buffers.clear()}}sharedArrayCancellation.SharedArraySenderStrategy=n;class A{constructor(l){this.data=new Int32Array(l,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===e.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class o{constructor(l){this.token=new A(l)}cancel(){}dispose(){}}class s{constructor(){this.kind="request"}createCancellationTokenSource(l){const c=l.$cancellationData;return c===void 0?new r.CancellationTokenSource:new o(c)}}return sharedArrayCancellation.SharedArrayReceiverStrategy=s,sharedArrayCancellation}var messageReader={},semaphore={},hasRequiredSemaphore;function requireSemaphore(){if(hasRequiredSemaphore)return semaphore;hasRequiredSemaphore=1,Object.defineProperty(semaphore,"__esModule",{value:!0}),semaphore.Semaphore=void 0;const r=requireRal();class e{constructor(A=1){if(A<=0)throw new Error("Capacity must be greater than 0");this._capacity=A,this._active=0,this._waiting=[]}lock(A){return new Promise((o,s)=>{this._waiting.push({thunk:A,resolve:o,reject:s}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,r.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;const A=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{const o=A.thunk();o instanceof Promise?o.then(s=>{this._active--,A.resolve(s),this.runNext()},s=>{this._active--,A.reject(s),this.runNext()}):(this._active--,A.resolve(o),this.runNext())}catch(o){this._active--,A.reject(o),this.runNext()}}}return semaphore.Semaphore=e,semaphore}var hasRequiredMessageReader;function requireMessageReader(){if(hasRequiredMessageReader)return messageReader;hasRequiredMessageReader=1,Object.defineProperty(messageReader,"__esModule",{value:!0}),messageReader.ReadableStreamMessageReader=messageReader.AbstractMessageReader=messageReader.MessageReader=void 0;const r=requireRal(),e=requireIs$1(),n=requireEvents(),A=requireSemaphore();var o;(function(c){function g(h){let d=h;return d&&e.func(d.listen)&&e.func(d.dispose)&&e.func(d.onError)&&e.func(d.onClose)&&e.func(d.onPartialMessage)}c.is=g})(o||(messageReader.MessageReader=o={}));class s{constructor(){this.errorEmitter=new n.Emitter,this.closeEmitter=new n.Emitter,this.partialMessageEmitter=new n.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(g){this.errorEmitter.fire(this.asError(g))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(g){this.partialMessageEmitter.fire(g)}asError(g){return g instanceof Error?g:new Error(`Reader received error. Reason: ${e.string(g.message)?g.message:"unknown"}`)}}messageReader.AbstractMessageReader=s;var a;(function(c){function g(h){let d,u;const f=new Map;let I;const p=new Map;if(h===void 0||typeof h=="string")d=h??"utf-8";else{if(d=h.charset??"utf-8",h.contentDecoder!==void 0&&(u=h.contentDecoder,f.set(u.name,u)),h.contentDecoders!==void 0)for(const m of h.contentDecoders)f.set(m.name,m);if(h.contentTypeDecoder!==void 0&&(I=h.contentTypeDecoder,p.set(I.name,I)),h.contentTypeDecoders!==void 0)for(const m of h.contentTypeDecoders)p.set(m.name,m)}return I===void 0&&(I=(0,r.default)().applicationJson.decoder,p.set(I.name,I)),{charset:d,contentDecoder:u,contentDecoders:f,contentTypeDecoder:I,contentTypeDecoders:p}}c.fromOptions=g})(a||(a={}));class l extends s{constructor(g,h){super(),this.readable=g,this.options=a.fromOptions(h),this.buffer=(0,r.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new A.Semaphore(1)}set partialMessageTimeout(g){this._partialMessageTimeout=g}get partialMessageTimeout(){return this._partialMessageTimeout}listen(g){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=g;const h=this.readable.onData(d=>{this.onData(d)});return this.readable.onError(d=>this.fireError(d)),this.readable.onClose(()=>this.fireClose()),h}onData(g){try{for(this.buffer.append(g);;){if(this.nextMessageLength===-1){const d=this.buffer.tryReadHeaders(!0);if(!d)return;const u=d.get("content-length");if(!u){this.fireError(new Error(`Header must provide a Content-Length property.
|
|
29
29
|
${JSON.stringify(Object.fromEntries(d))}`));return}const f=parseInt(u);if(isNaN(f)){this.fireError(new Error(`Content-Length value must be a number. Got ${u}`));return}this.nextMessageLength=f}const h=this.buffer.tryReadBody(this.nextMessageLength);if(h===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{const d=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(h):h,u=await this.options.contentTypeDecoder.decode(d,this.options);this.callback(u)}).catch(d=>{this.fireError(d)})}}catch(h){this.fireError(h)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,r.default)().timer.setTimeout((g,h)=>{this.partialMessageTimer=void 0,g===this.messageToken&&(this.firePartialMessage({messageToken:g,waitingTime:h}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}return messageReader.ReadableStreamMessageReader=l,messageReader}var messageWriter={},hasRequiredMessageWriter;function requireMessageWriter(){if(hasRequiredMessageWriter)return messageWriter;hasRequiredMessageWriter=1,Object.defineProperty(messageWriter,"__esModule",{value:!0}),messageWriter.WriteableStreamMessageWriter=messageWriter.AbstractMessageWriter=messageWriter.MessageWriter=void 0;const r=requireRal(),e=requireIs$1(),n=requireSemaphore(),A=requireEvents(),o="Content-Length: ",s=`\r
|
|
30
30
|
`;var a;(function(h){function d(u){let f=u;return f&&e.func(f.dispose)&&e.func(f.onClose)&&e.func(f.onError)&&e.func(f.write)}h.is=d})(a||(messageWriter.MessageWriter=a={}));class l{constructor(){this.errorEmitter=new A.Emitter,this.closeEmitter=new A.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(d,u,f){this.errorEmitter.fire([this.asError(d),u,f])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(d){return d instanceof Error?d:new Error(`Writer received error. Reason: ${e.string(d.message)?d.message:"unknown"}`)}}messageWriter.AbstractMessageWriter=l;var c;(function(h){function d(u){return u===void 0||typeof u=="string"?{charset:u??"utf-8",contentTypeEncoder:(0,r.default)().applicationJson.encoder}:{charset:u.charset??"utf-8",contentEncoder:u.contentEncoder,contentTypeEncoder:u.contentTypeEncoder??(0,r.default)().applicationJson.encoder}}h.fromOptions=d})(c||(c={}));class g extends l{constructor(d,u){super(),this.writable=d,this.options=c.fromOptions(u),this.errorCount=0,this.writeSemaphore=new n.Semaphore(1),this.writable.onError(f=>this.fireError(f)),this.writable.onClose(()=>this.fireClose())}async write(d){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(d,this.options).then(f=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(f):f).then(f=>{const I=[];return I.push(o,f.byteLength.toString(),s),I.push(s),this.doWrite(d,I,f)},f=>{throw this.fireError(f),f}))}async doWrite(d,u,f){try{return await this.writable.write(u.join(""),"ascii"),this.writable.write(f)}catch(I){return this.handleError(I,d),Promise.reject(I)}}handleError(d,u){this.errorCount++,this.fireError(d,u,this.errorCount)}end(){this.writable.end()}}return messageWriter.WriteableStreamMessageWriter=g,messageWriter}var messageBuffer={},hasRequiredMessageBuffer;function requireMessageBuffer(){if(hasRequiredMessageBuffer)return messageBuffer;hasRequiredMessageBuffer=1,Object.defineProperty(messageBuffer,"__esModule",{value:!0}),messageBuffer.AbstractMessageBuffer=void 0;const r=13,e=10,n=`\r
|
|
31
31
|
`;class A{constructor(s="utf-8"){this._encoding=s,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(s){const a=typeof s=="string"?this.fromString(s,this._encoding):s;this._chunks.push(a),this._totalLength+=a.byteLength}tryReadHeaders(s=!1){if(this._chunks.length===0)return;let a=0,l=0,c=0,g=0;e:for(;l<this._chunks.length;){const f=this._chunks[l];for(c=0;c<f.length;){switch(f[c]){case r:switch(a){case 0:a=1;break;case 2:a=3;break;default:a=0}break;case e:switch(a){case 1:a=2;break;case 3:a=4,c++;break e;default:a=0}break;default:a=0}c++}g+=f.byteLength,l++}if(a!==4)return;const h=this._read(g+c),d=new Map,u=this.toString(h,"ascii").split(n);if(u.length<2)return d;for(let f=0;f<u.length-2;f++){const I=u[f],p=I.indexOf(":");if(p===-1)throw new Error(`Message header must separate key and value using ':'
|
|
@@ -59,7 +59,7 @@ ${JSON.stringify(b,null,4)}`);const x=b;if(n.string(x.id)||n.number(x.id)){const
|
|
|
59
59
|
`,`\r
|
|
60
60
|
`,"\r"];var TextDocument;(function(r){function e(s,a,l,c){return new FullTextDocument(s,a,l,c)}r.create=e;function n(s){let a=s;return!!(Is.defined(a)&&Is.string(a.uri)&&(Is.undefined(a.languageId)||Is.string(a.languageId))&&Is.uinteger(a.lineCount)&&Is.func(a.getText)&&Is.func(a.positionAt)&&Is.func(a.offsetAt))}r.is=n;function A(s,a){let l=s.getText(),c=o(a,(h,d)=>{let u=h.range.start.line-d.range.start.line;return u===0?h.range.start.character-d.range.start.character:u}),g=l.length;for(let h=c.length-1;h>=0;h--){let d=c[h],u=s.offsetAt(d.range.start),f=s.offsetAt(d.range.end);if(f<=g)l=l.substring(0,u)+d.newText+l.substring(f,l.length);else throw new Error("Overlapping edit");g=u}return l}r.applyEdits=A;function o(s,a){if(s.length<=1)return s;const l=s.length/2|0,c=s.slice(0,l),g=s.slice(l);o(c,a),o(g,a);let h=0,d=0,u=0;for(;h<c.length&&d<g.length;)a(c[h],g[d])<=0?s[u++]=c[h++]:s[u++]=g[d++];for(;h<c.length;)s[u++]=c[h++];for(;d<g.length;)s[u++]=g[d++];return s}})(TextDocument||(TextDocument={}));class FullTextDocument{constructor(e,n,A,o){this._uri=e,this._languageId=n,this._version=A,this._content=o,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),A=this.offsetAt(e.end);return this._content.substring(n,A)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,A=!0;for(let o=0;o<n.length;o++){A&&(e.push(o),A=!1);let s=n.charAt(o);A=s==="\r"||s===`
|
|
61
61
|
`,s==="\r"&&o+1<n.length&&n.charAt(o+1)===`
|
|
62
|
-
`&&o++}A&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),A=0,o=n.length;if(o===0)return Position.create(0,e);for(;A<o;){let a=Math.floor((A+o)/2);n[a]>e?o=a:A=a+1}let s=A-1;return Position.create(s,e-n[s])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let A=n[e.line],o=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(A+e.character,o),A)}get lineCount(){return this.getLineOffsets().length}}var Is;(function(r){const e=Object.prototype.toString;function n(f){return typeof f<"u"}r.defined=n;function A(f){return typeof f>"u"}r.undefined=A;function o(f){return f===!0||f===!1}r.boolean=o;function s(f){return e.call(f)==="[object String]"}r.string=s;function a(f){return e.call(f)==="[object Number]"}r.number=a;function l(f,I,p){return e.call(f)==="[object Number]"&&I<=f&&f<=p}r.numberRange=l;function c(f){return e.call(f)==="[object Number]"&&-2147483648<=f&&f<=2147483647}r.integer=c;function g(f){return e.call(f)==="[object Number]"&&0<=f&&f<=2147483647}r.uinteger=g;function h(f){return e.call(f)==="[object Function]"}r.func=h;function d(f){return f!==null&&typeof f=="object"}r.objectLiteral=d;function u(f,I){return Array.isArray(f)&&f.every(I)}r.typedArray=u})(Is||(Is={}));const main=Object.freeze(Object.defineProperty({__proto__:null,get AnnotatedTextEdit(){return AnnotatedTextEdit},get ChangeAnnotation(){return ChangeAnnotation},get ChangeAnnotationIdentifier(){return ChangeAnnotationIdentifier},get CodeAction(){return CodeAction},get CodeActionContext(){return CodeActionContext},get CodeActionKind(){return CodeActionKind},get CodeActionTriggerKind(){return CodeActionTriggerKind},get CodeDescription(){return CodeDescription},get CodeLens(){return CodeLens},get Color(){return Color},get ColorInformation(){return ColorInformation},get ColorPresentation(){return ColorPresentation},get Command(){return Command},get CompletionItem(){return CompletionItem},get CompletionItemKind(){return CompletionItemKind},get CompletionItemLabelDetails(){return CompletionItemLabelDetails},get CompletionItemTag(){return CompletionItemTag},get CompletionList(){return CompletionList},get CreateFile(){return CreateFile},get DeleteFile(){return DeleteFile},get Diagnostic(){return Diagnostic},get DiagnosticRelatedInformation(){return DiagnosticRelatedInformation},get DiagnosticSeverity(){return DiagnosticSeverity},get DiagnosticTag(){return DiagnosticTag},get DocumentHighlight(){return DocumentHighlight},get DocumentHighlightKind(){return DocumentHighlightKind},get DocumentLink(){return DocumentLink},get DocumentSymbol(){return DocumentSymbol},get DocumentUri(){return DocumentUri},EOL,get FoldingRange(){return FoldingRange},get FoldingRangeKind(){return FoldingRangeKind},get FormattingOptions(){return FormattingOptions},get Hover(){return Hover},get InlayHint(){return InlayHint},get InlayHintKind(){return InlayHintKind},get InlayHintLabelPart(){return InlayHintLabelPart},get InlineCompletionContext(){return InlineCompletionContext},get InlineCompletionItem(){return InlineCompletionItem},get InlineCompletionList(){return InlineCompletionList},get InlineCompletionTriggerKind(){return InlineCompletionTriggerKind},get InlineValueContext(){return InlineValueContext},get InlineValueEvaluatableExpression(){return InlineValueEvaluatableExpression},get InlineValueText(){return InlineValueText},get InlineValueVariableLookup(){return InlineValueVariableLookup},get InsertReplaceEdit(){return InsertReplaceEdit},get InsertTextFormat(){return InsertTextFormat},get InsertTextMode(){return InsertTextMode},get Location(){return Location},get LocationLink(){return LocationLink},get MarkedString(){return MarkedString},get MarkupContent(){return MarkupContent},get MarkupKind(){return MarkupKind},get OptionalVersionedTextDocumentIdentifier(){return OptionalVersionedTextDocumentIdentifier},get ParameterInformation(){return ParameterInformation},get Position(){return Position},get Range(){return Range},get RenameFile(){return RenameFile},get SelectedCompletionInfo(){return SelectedCompletionInfo},get SelectionRange(){return SelectionRange},get SemanticTokenModifiers(){return SemanticTokenModifiers},get SemanticTokenTypes(){return SemanticTokenTypes},get SemanticTokens(){return SemanticTokens},get SignatureInformation(){return SignatureInformation},get StringValue(){return StringValue},get SymbolInformation(){return SymbolInformation},get SymbolKind(){return SymbolKind},get SymbolTag(){return SymbolTag},get TextDocument(){return TextDocument},get TextDocumentEdit(){return TextDocumentEdit},get TextDocumentIdentifier(){return TextDocumentIdentifier},get TextDocumentItem(){return TextDocumentItem},get TextEdit(){return TextEdit},get URI(){return URI},get VersionedTextDocumentIdentifier(){return VersionedTextDocumentIdentifier},WorkspaceChange,get WorkspaceEdit(){return WorkspaceEdit},get WorkspaceFolder(){return WorkspaceFolder},get WorkspaceSymbol(){return WorkspaceSymbol},get integer(){return integer},get uinteger(){return uinteger}},Symbol.toStringTag,{value:"Module"})),require$$1=getAugmentedNamespace(main);var messages={},hasRequiredMessages;function requireMessages(){if(hasRequiredMessages)return messages;hasRequiredMessages=1,Object.defineProperty(messages,"__esModule",{value:!0}),messages.ProtocolNotificationType=messages.ProtocolNotificationType0=messages.ProtocolRequestType=messages.ProtocolRequestType0=messages.RegistrationType=messages.MessageDirection=void 0;const r=requireMain$1();var e;(function(l){l.clientToServer="clientToServer",l.serverToClient="serverToClient",l.both="both"})(e||(messages.MessageDirection=e={}));class n{constructor(c){this.method=c}}messages.RegistrationType=n;class A extends r.RequestType0{constructor(c){super(c)}}messages.ProtocolRequestType0=A;class o extends r.RequestType{constructor(c){super(c,r.ParameterStructures.byName)}}messages.ProtocolRequestType=o;class s extends r.NotificationType0{constructor(c){super(c)}}messages.ProtocolNotificationType0=s;class a extends r.NotificationType{constructor(c){super(c,r.ParameterStructures.byName)}}return messages.ProtocolNotificationType=a,messages}var protocol={},is={},hasRequiredIs;function requireIs(){if(hasRequiredIs)return is;hasRequiredIs=1,Object.defineProperty(is,"__esModule",{value:!0}),is.objectLiteral=is.typedArray=is.stringArray=is.array=is.func=is.error=is.number=is.string=is.boolean=void 0;function r(g){return g===!0||g===!1}is.boolean=r;function e(g){return typeof g=="string"||g instanceof String}is.string=e;function n(g){return typeof g=="number"||g instanceof Number}is.number=n;function A(g){return g instanceof Error}is.error=A;function o(g){return typeof g=="function"}is.func=o;function s(g){return Array.isArray(g)}is.array=s;function a(g){return s(g)&&g.every(h=>e(h))}is.stringArray=a;function l(g,h){return Array.isArray(g)&&g.every(h)}is.typedArray=l;function c(g){return g!==null&&typeof g=="object"}return is.objectLiteral=c,is}var protocol_implementation={},hasRequiredProtocol_implementation;function requireProtocol_implementation(){if(hasRequiredProtocol_implementation)return protocol_implementation;hasRequiredProtocol_implementation=1,Object.defineProperty(protocol_implementation,"__esModule",{value:!0}),protocol_implementation.ImplementationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/implementation",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_implementation.ImplementationRequest=e={})),protocol_implementation}var protocol_typeDefinition={},hasRequiredProtocol_typeDefinition;function requireProtocol_typeDefinition(){if(hasRequiredProtocol_typeDefinition)return protocol_typeDefinition;hasRequiredProtocol_typeDefinition=1,Object.defineProperty(protocol_typeDefinition,"__esModule",{value:!0}),protocol_typeDefinition.TypeDefinitionRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/typeDefinition",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_typeDefinition.TypeDefinitionRequest=e={})),protocol_typeDefinition}var protocol_workspaceFolder={},hasRequiredProtocol_workspaceFolder;function requireProtocol_workspaceFolder(){if(hasRequiredProtocol_workspaceFolder)return protocol_workspaceFolder;hasRequiredProtocol_workspaceFolder=1,Object.defineProperty(protocol_workspaceFolder,"__esModule",{value:!0}),protocol_workspaceFolder.DidChangeWorkspaceFoldersNotification=protocol_workspaceFolder.WorkspaceFoldersRequest=void 0;const r=requireMessages();var e;(function(A){A.method="workspace/workspaceFolders",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(e||(protocol_workspaceFolder.WorkspaceFoldersRequest=e={}));var n;return(function(A){A.method="workspace/didChangeWorkspaceFolders",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolNotificationType(A.method)})(n||(protocol_workspaceFolder.DidChangeWorkspaceFoldersNotification=n={})),protocol_workspaceFolder}var protocol_configuration={},hasRequiredProtocol_configuration;function requireProtocol_configuration(){if(hasRequiredProtocol_configuration)return protocol_configuration;hasRequiredProtocol_configuration=1,Object.defineProperty(protocol_configuration,"__esModule",{value:!0}),protocol_configuration.ConfigurationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="workspace/configuration",n.messageDirection=r.MessageDirection.serverToClient,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_configuration.ConfigurationRequest=e={})),protocol_configuration}var protocol_colorProvider={},hasRequiredProtocol_colorProvider;function requireProtocol_colorProvider(){if(hasRequiredProtocol_colorProvider)return protocol_colorProvider;hasRequiredProtocol_colorProvider=1,Object.defineProperty(protocol_colorProvider,"__esModule",{value:!0}),protocol_colorProvider.ColorPresentationRequest=protocol_colorProvider.DocumentColorRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/documentColor",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_colorProvider.DocumentColorRequest=e={}));var n;return(function(A){A.method="textDocument/colorPresentation",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(n||(protocol_colorProvider.ColorPresentationRequest=n={})),protocol_colorProvider}var protocol_foldingRange={},hasRequiredProtocol_foldingRange;function requireProtocol_foldingRange(){if(hasRequiredProtocol_foldingRange)return protocol_foldingRange;hasRequiredProtocol_foldingRange=1,Object.defineProperty(protocol_foldingRange,"__esModule",{value:!0}),protocol_foldingRange.FoldingRangeRefreshRequest=protocol_foldingRange.FoldingRangeRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/foldingRange",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_foldingRange.FoldingRangeRequest=e={}));var n;return(function(A){A.method="workspace/foldingRange/refresh",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(n||(protocol_foldingRange.FoldingRangeRefreshRequest=n={})),protocol_foldingRange}var protocol_declaration={},hasRequiredProtocol_declaration;function requireProtocol_declaration(){if(hasRequiredProtocol_declaration)return protocol_declaration;hasRequiredProtocol_declaration=1,Object.defineProperty(protocol_declaration,"__esModule",{value:!0}),protocol_declaration.DeclarationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/declaration",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_declaration.DeclarationRequest=e={})),protocol_declaration}var protocol_selectionRange={},hasRequiredProtocol_selectionRange;function requireProtocol_selectionRange(){if(hasRequiredProtocol_selectionRange)return protocol_selectionRange;hasRequiredProtocol_selectionRange=1,Object.defineProperty(protocol_selectionRange,"__esModule",{value:!0}),protocol_selectionRange.SelectionRangeRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/selectionRange",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_selectionRange.SelectionRangeRequest=e={})),protocol_selectionRange}var protocol_progress={},hasRequiredProtocol_progress;function requireProtocol_progress(){if(hasRequiredProtocol_progress)return protocol_progress;hasRequiredProtocol_progress=1,Object.defineProperty(protocol_progress,"__esModule",{value:!0}),protocol_progress.WorkDoneProgressCancelNotification=protocol_progress.WorkDoneProgressCreateRequest=protocol_progress.WorkDoneProgress=void 0;const r=requireMain$1(),e=requireMessages();var n;(function(s){s.type=new r.ProgressType;function a(l){return l===s.type}s.is=a})(n||(protocol_progress.WorkDoneProgress=n={}));var A;(function(s){s.method="window/workDoneProgress/create",s.messageDirection=e.MessageDirection.serverToClient,s.type=new e.ProtocolRequestType(s.method)})(A||(protocol_progress.WorkDoneProgressCreateRequest=A={}));var o;return(function(s){s.method="window/workDoneProgress/cancel",s.messageDirection=e.MessageDirection.clientToServer,s.type=new e.ProtocolNotificationType(s.method)})(o||(protocol_progress.WorkDoneProgressCancelNotification=o={})),protocol_progress}var protocol_callHierarchy={},hasRequiredProtocol_callHierarchy;function requireProtocol_callHierarchy(){if(hasRequiredProtocol_callHierarchy)return protocol_callHierarchy;hasRequiredProtocol_callHierarchy=1,Object.defineProperty(protocol_callHierarchy,"__esModule",{value:!0}),protocol_callHierarchy.CallHierarchyOutgoingCallsRequest=protocol_callHierarchy.CallHierarchyIncomingCallsRequest=protocol_callHierarchy.CallHierarchyPrepareRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/prepareCallHierarchy",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_callHierarchy.CallHierarchyPrepareRequest=e={}));var n;(function(o){o.method="callHierarchy/incomingCalls",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_callHierarchy.CallHierarchyIncomingCallsRequest=n={}));var A;return(function(o){o.method="callHierarchy/outgoingCalls",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_callHierarchy.CallHierarchyOutgoingCallsRequest=A={})),protocol_callHierarchy}var protocol_semanticTokens={},hasRequiredProtocol_semanticTokens;function requireProtocol_semanticTokens(){if(hasRequiredProtocol_semanticTokens)return protocol_semanticTokens;hasRequiredProtocol_semanticTokens=1,Object.defineProperty(protocol_semanticTokens,"__esModule",{value:!0}),protocol_semanticTokens.SemanticTokensRefreshRequest=protocol_semanticTokens.SemanticTokensRangeRequest=protocol_semanticTokens.SemanticTokensDeltaRequest=protocol_semanticTokens.SemanticTokensRequest=protocol_semanticTokens.SemanticTokensRegistrationType=protocol_semanticTokens.TokenFormat=void 0;const r=requireMessages();var e;(function(l){l.Relative="relative"})(e||(protocol_semanticTokens.TokenFormat=e={}));var n;(function(l){l.method="textDocument/semanticTokens",l.type=new r.RegistrationType(l.method)})(n||(protocol_semanticTokens.SemanticTokensRegistrationType=n={}));var A;(function(l){l.method="textDocument/semanticTokens/full",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(A||(protocol_semanticTokens.SemanticTokensRequest=A={}));var o;(function(l){l.method="textDocument/semanticTokens/full/delta",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(o||(protocol_semanticTokens.SemanticTokensDeltaRequest=o={}));var s;(function(l){l.method="textDocument/semanticTokens/range",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(s||(protocol_semanticTokens.SemanticTokensRangeRequest=s={}));var a;return(function(l){l.method="workspace/semanticTokens/refresh",l.messageDirection=r.MessageDirection.serverToClient,l.type=new r.ProtocolRequestType0(l.method)})(a||(protocol_semanticTokens.SemanticTokensRefreshRequest=a={})),protocol_semanticTokens}var protocol_showDocument={},hasRequiredProtocol_showDocument;function requireProtocol_showDocument(){if(hasRequiredProtocol_showDocument)return protocol_showDocument;hasRequiredProtocol_showDocument=1,Object.defineProperty(protocol_showDocument,"__esModule",{value:!0}),protocol_showDocument.ShowDocumentRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="window/showDocument",n.messageDirection=r.MessageDirection.serverToClient,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_showDocument.ShowDocumentRequest=e={})),protocol_showDocument}var protocol_linkedEditingRange={},hasRequiredProtocol_linkedEditingRange;function requireProtocol_linkedEditingRange(){if(hasRequiredProtocol_linkedEditingRange)return protocol_linkedEditingRange;hasRequiredProtocol_linkedEditingRange=1,Object.defineProperty(protocol_linkedEditingRange,"__esModule",{value:!0}),protocol_linkedEditingRange.LinkedEditingRangeRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/linkedEditingRange",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_linkedEditingRange.LinkedEditingRangeRequest=e={})),protocol_linkedEditingRange}var protocol_fileOperations={},hasRequiredProtocol_fileOperations;function requireProtocol_fileOperations(){if(hasRequiredProtocol_fileOperations)return protocol_fileOperations;hasRequiredProtocol_fileOperations=1,Object.defineProperty(protocol_fileOperations,"__esModule",{value:!0}),protocol_fileOperations.WillDeleteFilesRequest=protocol_fileOperations.DidDeleteFilesNotification=protocol_fileOperations.DidRenameFilesNotification=protocol_fileOperations.WillRenameFilesRequest=protocol_fileOperations.DidCreateFilesNotification=protocol_fileOperations.WillCreateFilesRequest=protocol_fileOperations.FileOperationPatternKind=void 0;const r=requireMessages();var e;(function(c){c.file="file",c.folder="folder"})(e||(protocol_fileOperations.FileOperationPatternKind=e={}));var n;(function(c){c.method="workspace/willCreateFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(n||(protocol_fileOperations.WillCreateFilesRequest=n={}));var A;(function(c){c.method="workspace/didCreateFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(A||(protocol_fileOperations.DidCreateFilesNotification=A={}));var o;(function(c){c.method="workspace/willRenameFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(o||(protocol_fileOperations.WillRenameFilesRequest=o={}));var s;(function(c){c.method="workspace/didRenameFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(s||(protocol_fileOperations.DidRenameFilesNotification=s={}));var a;(function(c){c.method="workspace/didDeleteFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(a||(protocol_fileOperations.DidDeleteFilesNotification=a={}));var l;return(function(c){c.method="workspace/willDeleteFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(l||(protocol_fileOperations.WillDeleteFilesRequest=l={})),protocol_fileOperations}var protocol_moniker={},hasRequiredProtocol_moniker;function requireProtocol_moniker(){if(hasRequiredProtocol_moniker)return protocol_moniker;hasRequiredProtocol_moniker=1,Object.defineProperty(protocol_moniker,"__esModule",{value:!0}),protocol_moniker.MonikerRequest=protocol_moniker.MonikerKind=protocol_moniker.UniquenessLevel=void 0;const r=requireMessages();var e;(function(o){o.document="document",o.project="project",o.group="group",o.scheme="scheme",o.global="global"})(e||(protocol_moniker.UniquenessLevel=e={}));var n;(function(o){o.$import="import",o.$export="export",o.local="local"})(n||(protocol_moniker.MonikerKind=n={}));var A;return(function(o){o.method="textDocument/moniker",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_moniker.MonikerRequest=A={})),protocol_moniker}var protocol_typeHierarchy={},hasRequiredProtocol_typeHierarchy;function requireProtocol_typeHierarchy(){if(hasRequiredProtocol_typeHierarchy)return protocol_typeHierarchy;hasRequiredProtocol_typeHierarchy=1,Object.defineProperty(protocol_typeHierarchy,"__esModule",{value:!0}),protocol_typeHierarchy.TypeHierarchySubtypesRequest=protocol_typeHierarchy.TypeHierarchySupertypesRequest=protocol_typeHierarchy.TypeHierarchyPrepareRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/prepareTypeHierarchy",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_typeHierarchy.TypeHierarchyPrepareRequest=e={}));var n;(function(o){o.method="typeHierarchy/supertypes",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_typeHierarchy.TypeHierarchySupertypesRequest=n={}));var A;return(function(o){o.method="typeHierarchy/subtypes",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_typeHierarchy.TypeHierarchySubtypesRequest=A={})),protocol_typeHierarchy}var protocol_inlineValue={},hasRequiredProtocol_inlineValue;function requireProtocol_inlineValue(){if(hasRequiredProtocol_inlineValue)return protocol_inlineValue;hasRequiredProtocol_inlineValue=1,Object.defineProperty(protocol_inlineValue,"__esModule",{value:!0}),protocol_inlineValue.InlineValueRefreshRequest=protocol_inlineValue.InlineValueRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/inlineValue",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_inlineValue.InlineValueRequest=e={}));var n;return(function(A){A.method="workspace/inlineValue/refresh",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(n||(protocol_inlineValue.InlineValueRefreshRequest=n={})),protocol_inlineValue}var protocol_inlayHint={},hasRequiredProtocol_inlayHint;function requireProtocol_inlayHint(){if(hasRequiredProtocol_inlayHint)return protocol_inlayHint;hasRequiredProtocol_inlayHint=1,Object.defineProperty(protocol_inlayHint,"__esModule",{value:!0}),protocol_inlayHint.InlayHintRefreshRequest=protocol_inlayHint.InlayHintResolveRequest=protocol_inlayHint.InlayHintRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/inlayHint",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_inlayHint.InlayHintRequest=e={}));var n;(function(o){o.method="inlayHint/resolve",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_inlayHint.InlayHintResolveRequest=n={}));var A;return(function(o){o.method="workspace/inlayHint/refresh",o.messageDirection=r.MessageDirection.serverToClient,o.type=new r.ProtocolRequestType0(o.method)})(A||(protocol_inlayHint.InlayHintRefreshRequest=A={})),protocol_inlayHint}var protocol_diagnostic={},hasRequiredProtocol_diagnostic;function requireProtocol_diagnostic(){if(hasRequiredProtocol_diagnostic)return protocol_diagnostic;hasRequiredProtocol_diagnostic=1,Object.defineProperty(protocol_diagnostic,"__esModule",{value:!0}),protocol_diagnostic.DiagnosticRefreshRequest=protocol_diagnostic.WorkspaceDiagnosticRequest=protocol_diagnostic.DocumentDiagnosticRequest=protocol_diagnostic.DocumentDiagnosticReportKind=protocol_diagnostic.DiagnosticServerCancellationData=void 0;const r=requireMain$1(),e=requireIs(),n=requireMessages();var A;(function(c){function g(h){const d=h;return d&&e.boolean(d.retriggerRequest)}c.is=g})(A||(protocol_diagnostic.DiagnosticServerCancellationData=A={}));var o;(function(c){c.Full="full",c.Unchanged="unchanged"})(o||(protocol_diagnostic.DocumentDiagnosticReportKind=o={}));var s;(function(c){c.method="textDocument/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new r.ProgressType})(s||(protocol_diagnostic.DocumentDiagnosticRequest=s={}));var a;(function(c){c.method="workspace/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new r.ProgressType})(a||(protocol_diagnostic.WorkspaceDiagnosticRequest=a={}));var l;return(function(c){c.method="workspace/diagnostic/refresh",c.messageDirection=n.MessageDirection.serverToClient,c.type=new n.ProtocolRequestType0(c.method)})(l||(protocol_diagnostic.DiagnosticRefreshRequest=l={})),protocol_diagnostic}var protocol_notebook={},hasRequiredProtocol_notebook;function requireProtocol_notebook(){if(hasRequiredProtocol_notebook)return protocol_notebook;hasRequiredProtocol_notebook=1,Object.defineProperty(protocol_notebook,"__esModule",{value:!0}),protocol_notebook.DidCloseNotebookDocumentNotification=protocol_notebook.DidSaveNotebookDocumentNotification=protocol_notebook.DidChangeNotebookDocumentNotification=protocol_notebook.NotebookCellArrayChange=protocol_notebook.DidOpenNotebookDocumentNotification=protocol_notebook.NotebookDocumentSyncRegistrationType=protocol_notebook.NotebookDocument=protocol_notebook.NotebookCell=protocol_notebook.ExecutionSummary=protocol_notebook.NotebookCellKind=void 0;const r=require$$1,e=requireIs(),n=requireMessages();var A;(function(f){f.Markup=1,f.Code=2;function I(p){return p===1||p===2}f.is=I})(A||(protocol_notebook.NotebookCellKind=A={}));var o;(function(f){function I(E,B){const Q={executionOrder:E};return(B===!0||B===!1)&&(Q.success=B),Q}f.create=I;function p(E){const B=E;return e.objectLiteral(B)&&r.uinteger.is(B.executionOrder)&&(B.success===void 0||e.boolean(B.success))}f.is=p;function m(E,B){return E===B?!0:E==null||B===null||B===void 0?!1:E.executionOrder===B.executionOrder&&E.success===B.success}f.equals=m})(o||(protocol_notebook.ExecutionSummary=o={}));var s;(function(f){function I(B,Q){return{kind:B,document:Q}}f.create=I;function p(B){const Q=B;return e.objectLiteral(Q)&&A.is(Q.kind)&&r.DocumentUri.is(Q.document)&&(Q.metadata===void 0||e.objectLiteral(Q.metadata))}f.is=p;function m(B,Q){const S=new Set;return B.document!==Q.document&&S.add("document"),B.kind!==Q.kind&&S.add("kind"),B.executionSummary!==Q.executionSummary&&S.add("executionSummary"),(B.metadata!==void 0||Q.metadata!==void 0)&&!E(B.metadata,Q.metadata)&&S.add("metadata"),(B.executionSummary!==void 0||Q.executionSummary!==void 0)&&!o.equals(B.executionSummary,Q.executionSummary)&&S.add("executionSummary"),S}f.diff=m;function E(B,Q){if(B===Q)return!0;if(B==null||Q===null||Q===void 0||typeof B!=typeof Q||typeof B!="object")return!1;const S=Array.isArray(B),w=Array.isArray(Q);if(S!==w)return!1;if(S&&w){if(B.length!==Q.length)return!1;for(let y=0;y<B.length;y++)if(!E(B[y],Q[y]))return!1}if(e.objectLiteral(B)&&e.objectLiteral(Q)){const y=Object.keys(B),D=Object.keys(Q);if(y.length!==D.length||(y.sort(),D.sort(),!E(y,D)))return!1;for(let _=0;_<y.length;_++){const M=y[_];if(!E(B[M],Q[M]))return!1}}return!0}})(s||(protocol_notebook.NotebookCell=s={}));var a;(function(f){function I(m,E,B,Q){return{uri:m,notebookType:E,version:B,cells:Q}}f.create=I;function p(m){const E=m;return e.objectLiteral(E)&&e.string(E.uri)&&r.integer.is(E.version)&&e.typedArray(E.cells,s.is)}f.is=p})(a||(protocol_notebook.NotebookDocument=a={}));var l;(function(f){f.method="notebookDocument/sync",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.RegistrationType(f.method)})(l||(protocol_notebook.NotebookDocumentSyncRegistrationType=l={}));var c;(function(f){f.method="notebookDocument/didOpen",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(c||(protocol_notebook.DidOpenNotebookDocumentNotification=c={}));var g;(function(f){function I(m){const E=m;return e.objectLiteral(E)&&r.uinteger.is(E.start)&&r.uinteger.is(E.deleteCount)&&(E.cells===void 0||e.typedArray(E.cells,s.is))}f.is=I;function p(m,E,B){const Q={start:m,deleteCount:E};return B!==void 0&&(Q.cells=B),Q}f.create=p})(g||(protocol_notebook.NotebookCellArrayChange=g={}));var h;(function(f){f.method="notebookDocument/didChange",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(h||(protocol_notebook.DidChangeNotebookDocumentNotification=h={}));var d;(function(f){f.method="notebookDocument/didSave",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(d||(protocol_notebook.DidSaveNotebookDocumentNotification=d={}));var u;return(function(f){f.method="notebookDocument/didClose",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(u||(protocol_notebook.DidCloseNotebookDocumentNotification=u={})),protocol_notebook}var protocol_inlineCompletion={},hasRequiredProtocol_inlineCompletion;function requireProtocol_inlineCompletion(){if(hasRequiredProtocol_inlineCompletion)return protocol_inlineCompletion;hasRequiredProtocol_inlineCompletion=1,Object.defineProperty(protocol_inlineCompletion,"__esModule",{value:!0}),protocol_inlineCompletion.InlineCompletionRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/inlineCompletion",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_inlineCompletion.InlineCompletionRequest=e={})),protocol_inlineCompletion}var hasRequiredProtocol;function requireProtocol(){return hasRequiredProtocol||(hasRequiredProtocol=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.WorkspaceSymbolRequest=r.CodeActionResolveRequest=r.CodeActionRequest=r.DocumentSymbolRequest=r.DocumentHighlightRequest=r.ReferencesRequest=r.DefinitionRequest=r.SignatureHelpRequest=r.SignatureHelpTriggerKind=r.HoverRequest=r.CompletionResolveRequest=r.CompletionRequest=r.CompletionTriggerKind=r.PublishDiagnosticsNotification=r.WatchKind=r.RelativePattern=r.FileChangeType=r.DidChangeWatchedFilesNotification=r.WillSaveTextDocumentWaitUntilRequest=r.WillSaveTextDocumentNotification=r.TextDocumentSaveReason=r.DidSaveTextDocumentNotification=r.DidCloseTextDocumentNotification=r.DidChangeTextDocumentNotification=r.TextDocumentContentChangeEvent=r.DidOpenTextDocumentNotification=r.TextDocumentSyncKind=r.TelemetryEventNotification=r.LogMessageNotification=r.ShowMessageRequest=r.ShowMessageNotification=r.MessageType=r.DidChangeConfigurationNotification=r.ExitNotification=r.ShutdownRequest=r.InitializedNotification=r.InitializeErrorCodes=r.InitializeRequest=r.WorkDoneProgressOptions=r.TextDocumentRegistrationOptions=r.StaticRegistrationOptions=r.PositionEncodingKind=r.FailureHandlingKind=r.ResourceOperationKind=r.UnregistrationRequest=r.RegistrationRequest=r.DocumentSelector=r.NotebookCellTextDocumentFilter=r.NotebookDocumentFilter=r.TextDocumentFilter=void 0,r.MonikerRequest=r.MonikerKind=r.UniquenessLevel=r.WillDeleteFilesRequest=r.DidDeleteFilesNotification=r.WillRenameFilesRequest=r.DidRenameFilesNotification=r.WillCreateFilesRequest=r.DidCreateFilesNotification=r.FileOperationPatternKind=r.LinkedEditingRangeRequest=r.ShowDocumentRequest=r.SemanticTokensRegistrationType=r.SemanticTokensRefreshRequest=r.SemanticTokensRangeRequest=r.SemanticTokensDeltaRequest=r.SemanticTokensRequest=r.TokenFormat=r.CallHierarchyPrepareRequest=r.CallHierarchyOutgoingCallsRequest=r.CallHierarchyIncomingCallsRequest=r.WorkDoneProgressCancelNotification=r.WorkDoneProgressCreateRequest=r.WorkDoneProgress=r.SelectionRangeRequest=r.DeclarationRequest=r.FoldingRangeRefreshRequest=r.FoldingRangeRequest=r.ColorPresentationRequest=r.DocumentColorRequest=r.ConfigurationRequest=r.DidChangeWorkspaceFoldersNotification=r.WorkspaceFoldersRequest=r.TypeDefinitionRequest=r.ImplementationRequest=r.ApplyWorkspaceEditRequest=r.ExecuteCommandRequest=r.PrepareRenameRequest=r.RenameRequest=r.PrepareSupportDefaultBehavior=r.DocumentOnTypeFormattingRequest=r.DocumentRangesFormattingRequest=r.DocumentRangeFormattingRequest=r.DocumentFormattingRequest=r.DocumentLinkResolveRequest=r.DocumentLinkRequest=r.CodeLensRefreshRequest=r.CodeLensResolveRequest=r.CodeLensRequest=r.WorkspaceSymbolResolveRequest=void 0,r.InlineCompletionRequest=r.DidCloseNotebookDocumentNotification=r.DidSaveNotebookDocumentNotification=r.DidChangeNotebookDocumentNotification=r.NotebookCellArrayChange=r.DidOpenNotebookDocumentNotification=r.NotebookDocumentSyncRegistrationType=r.NotebookDocument=r.NotebookCell=r.ExecutionSummary=r.NotebookCellKind=r.DiagnosticRefreshRequest=r.WorkspaceDiagnosticRequest=r.DocumentDiagnosticRequest=r.DocumentDiagnosticReportKind=r.DiagnosticServerCancellationData=r.InlayHintRefreshRequest=r.InlayHintResolveRequest=r.InlayHintRequest=r.InlineValueRefreshRequest=r.InlineValueRequest=r.TypeHierarchySupertypesRequest=r.TypeHierarchySubtypesRequest=r.TypeHierarchyPrepareRequest=void 0;const e=requireMessages(),n=require$$1,A=requireIs(),o=requireProtocol_implementation();Object.defineProperty(r,"ImplementationRequest",{enumerable:!0,get:function(){return o.ImplementationRequest}});const s=requireProtocol_typeDefinition();Object.defineProperty(r,"TypeDefinitionRequest",{enumerable:!0,get:function(){return s.TypeDefinitionRequest}});const a=requireProtocol_workspaceFolder();Object.defineProperty(r,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return a.WorkspaceFoldersRequest}}),Object.defineProperty(r,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return a.DidChangeWorkspaceFoldersNotification}});const l=requireProtocol_configuration();Object.defineProperty(r,"ConfigurationRequest",{enumerable:!0,get:function(){return l.ConfigurationRequest}});const c=requireProtocol_colorProvider();Object.defineProperty(r,"DocumentColorRequest",{enumerable:!0,get:function(){return c.DocumentColorRequest}}),Object.defineProperty(r,"ColorPresentationRequest",{enumerable:!0,get:function(){return c.ColorPresentationRequest}});const g=requireProtocol_foldingRange();Object.defineProperty(r,"FoldingRangeRequest",{enumerable:!0,get:function(){return g.FoldingRangeRequest}}),Object.defineProperty(r,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return g.FoldingRangeRefreshRequest}});const h=requireProtocol_declaration();Object.defineProperty(r,"DeclarationRequest",{enumerable:!0,get:function(){return h.DeclarationRequest}});const d=requireProtocol_selectionRange();Object.defineProperty(r,"SelectionRangeRequest",{enumerable:!0,get:function(){return d.SelectionRangeRequest}});const u=requireProtocol_progress();Object.defineProperty(r,"WorkDoneProgress",{enumerable:!0,get:function(){return u.WorkDoneProgress}}),Object.defineProperty(r,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return u.WorkDoneProgressCreateRequest}}),Object.defineProperty(r,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return u.WorkDoneProgressCancelNotification}});const f=requireProtocol_callHierarchy();Object.defineProperty(r,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return f.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(r,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return f.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(r,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return f.CallHierarchyPrepareRequest}});const I=requireProtocol_semanticTokens();Object.defineProperty(r,"TokenFormat",{enumerable:!0,get:function(){return I.TokenFormat}}),Object.defineProperty(r,"SemanticTokensRequest",{enumerable:!0,get:function(){return I.SemanticTokensRequest}}),Object.defineProperty(r,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return I.SemanticTokensDeltaRequest}}),Object.defineProperty(r,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return I.SemanticTokensRangeRequest}}),Object.defineProperty(r,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return I.SemanticTokensRefreshRequest}}),Object.defineProperty(r,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return I.SemanticTokensRegistrationType}});const p=requireProtocol_showDocument();Object.defineProperty(r,"ShowDocumentRequest",{enumerable:!0,get:function(){return p.ShowDocumentRequest}});const m=requireProtocol_linkedEditingRange();Object.defineProperty(r,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return m.LinkedEditingRangeRequest}});const E=requireProtocol_fileOperations();Object.defineProperty(r,"FileOperationPatternKind",{enumerable:!0,get:function(){return E.FileOperationPatternKind}}),Object.defineProperty(r,"DidCreateFilesNotification",{enumerable:!0,get:function(){return E.DidCreateFilesNotification}}),Object.defineProperty(r,"WillCreateFilesRequest",{enumerable:!0,get:function(){return E.WillCreateFilesRequest}}),Object.defineProperty(r,"DidRenameFilesNotification",{enumerable:!0,get:function(){return E.DidRenameFilesNotification}}),Object.defineProperty(r,"WillRenameFilesRequest",{enumerable:!0,get:function(){return E.WillRenameFilesRequest}}),Object.defineProperty(r,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return E.DidDeleteFilesNotification}}),Object.defineProperty(r,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return E.WillDeleteFilesRequest}});const B=requireProtocol_moniker();Object.defineProperty(r,"UniquenessLevel",{enumerable:!0,get:function(){return B.UniquenessLevel}}),Object.defineProperty(r,"MonikerKind",{enumerable:!0,get:function(){return B.MonikerKind}}),Object.defineProperty(r,"MonikerRequest",{enumerable:!0,get:function(){return B.MonikerRequest}});const Q=requireProtocol_typeHierarchy();Object.defineProperty(r,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Q.TypeHierarchyPrepareRequest}}),Object.defineProperty(r,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Q.TypeHierarchySubtypesRequest}}),Object.defineProperty(r,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Q.TypeHierarchySupertypesRequest}});const S=requireProtocol_inlineValue();Object.defineProperty(r,"InlineValueRequest",{enumerable:!0,get:function(){return S.InlineValueRequest}}),Object.defineProperty(r,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return S.InlineValueRefreshRequest}});const w=requireProtocol_inlayHint();Object.defineProperty(r,"InlayHintRequest",{enumerable:!0,get:function(){return w.InlayHintRequest}}),Object.defineProperty(r,"InlayHintResolveRequest",{enumerable:!0,get:function(){return w.InlayHintResolveRequest}}),Object.defineProperty(r,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return w.InlayHintRefreshRequest}});const y=requireProtocol_diagnostic();Object.defineProperty(r,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return y.DiagnosticServerCancellationData}}),Object.defineProperty(r,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return y.DocumentDiagnosticReportKind}}),Object.defineProperty(r,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return y.DocumentDiagnosticRequest}}),Object.defineProperty(r,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return y.WorkspaceDiagnosticRequest}}),Object.defineProperty(r,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return y.DiagnosticRefreshRequest}});const D=requireProtocol_notebook();Object.defineProperty(r,"NotebookCellKind",{enumerable:!0,get:function(){return D.NotebookCellKind}}),Object.defineProperty(r,"ExecutionSummary",{enumerable:!0,get:function(){return D.ExecutionSummary}}),Object.defineProperty(r,"NotebookCell",{enumerable:!0,get:function(){return D.NotebookCell}}),Object.defineProperty(r,"NotebookDocument",{enumerable:!0,get:function(){return D.NotebookDocument}}),Object.defineProperty(r,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return D.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(r,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidOpenNotebookDocumentNotification}}),Object.defineProperty(r,"NotebookCellArrayChange",{enumerable:!0,get:function(){return D.NotebookCellArrayChange}}),Object.defineProperty(r,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidChangeNotebookDocumentNotification}}),Object.defineProperty(r,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidSaveNotebookDocumentNotification}}),Object.defineProperty(r,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidCloseNotebookDocumentNotification}});const _=requireProtocol_inlineCompletion();Object.defineProperty(r,"InlineCompletionRequest",{enumerable:!0,get:function(){return _.InlineCompletionRequest}});var M;(function(k){function te(ne){const J=ne;return A.string(J)||A.string(J.language)||A.string(J.scheme)||A.string(J.pattern)}k.is=te})(M||(r.TextDocumentFilter=M={}));var R;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(A.string(J.notebookType)||A.string(J.scheme)||A.string(J.pattern))}k.is=te})(R||(r.NotebookDocumentFilter=R={}));var F;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(A.string(J.notebook)||R.is(J.notebook))&&(J.language===void 0||A.string(J.language))}k.is=te})(F||(r.NotebookCellTextDocumentFilter=F={}));var v;(function(k){function te(ne){if(!Array.isArray(ne))return!1;for(let J of ne)if(!A.string(J)&&!M.is(J)&&!F.is(J))return!1;return!0}k.is=te})(v||(r.DocumentSelector=v={}));var N;(function(k){k.method="client/registerCapability",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(N||(r.RegistrationRequest=N={}));var L;(function(k){k.method="client/unregisterCapability",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(L||(r.UnregistrationRequest=L={}));var G;(function(k){k.Create="create",k.Rename="rename",k.Delete="delete"})(G||(r.ResourceOperationKind=G={}));var K;(function(k){k.Abort="abort",k.Transactional="transactional",k.TextOnlyTransactional="textOnlyTransactional",k.Undo="undo"})(K||(r.FailureHandlingKind=K={}));var O;(function(k){k.UTF8="utf-8",k.UTF16="utf-16",k.UTF32="utf-32"})(O||(r.PositionEncodingKind=O={}));var oe;(function(k){function te(ne){const J=ne;return J&&A.string(J.id)&&J.id.length>0}k.hasId=te})(oe||(r.StaticRegistrationOptions=oe={}));var j;(function(k){function te(ne){const J=ne;return J&&(J.documentSelector===null||v.is(J.documentSelector))}k.is=te})(j||(r.TextDocumentRegistrationOptions=j={}));var Ae;(function(k){function te(J){const b=J;return A.objectLiteral(b)&&(b.workDoneProgress===void 0||A.boolean(b.workDoneProgress))}k.is=te;function ne(J){const b=J;return b&&A.boolean(b.workDoneProgress)}k.hasWorkDoneProgress=ne})(Ae||(r.WorkDoneProgressOptions=Ae={}));var z;(function(k){k.method="initialize",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(z||(r.InitializeRequest=z={}));var ee;(function(k){k.unknownProtocolVersion=1})(ee||(r.InitializeErrorCodes=ee={}));var ae;(function(k){k.method="initialized",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ae||(r.InitializedNotification=ae={}));var le;(function(k){k.method="shutdown",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType0(k.method)})(le||(r.ShutdownRequest=le={}));var ge;(function(k){k.method="exit",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType0(k.method)})(ge||(r.ExitNotification=ge={}));var he;(function(k){k.method="workspace/didChangeConfiguration",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(he||(r.DidChangeConfigurationNotification=he={}));var Be;(function(k){k.Error=1,k.Warning=2,k.Info=3,k.Log=4,k.Debug=5})(Be||(r.MessageType=Be={}));var Ce;(function(k){k.method="window/showMessage",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(Ce||(r.ShowMessageNotification=Ce={}));var pe;(function(k){k.method="window/showMessageRequest",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(pe||(r.ShowMessageRequest=pe={}));var De;(function(k){k.method="window/logMessage",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(De||(r.LogMessageNotification=De={}));var de;(function(k){k.method="telemetry/event",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(de||(r.TelemetryEventNotification=de={}));var Y;(function(k){k.None=0,k.Full=1,k.Incremental=2})(Y||(r.TextDocumentSyncKind=Y={}));var me;(function(k){k.method="textDocument/didOpen",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(me||(r.DidOpenTextDocumentNotification=me={}));var X;(function(k){function te(J){let b=J;return b!=null&&typeof b.text=="string"&&b.range!==void 0&&(b.rangeLength===void 0||typeof b.rangeLength=="number")}k.isIncremental=te;function ne(J){let b=J;return b!=null&&typeof b.text=="string"&&b.range===void 0&&b.rangeLength===void 0}k.isFull=ne})(X||(r.TextDocumentContentChangeEvent=X={}));var ue;(function(k){k.method="textDocument/didChange",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ue||(r.DidChangeTextDocumentNotification=ue={}));var be;(function(k){k.method="textDocument/didClose",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(be||(r.DidCloseTextDocumentNotification=be={}));var Ne;(function(k){k.method="textDocument/didSave",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(Ne||(r.DidSaveTextDocumentNotification=Ne={}));var ve;(function(k){k.Manual=1,k.AfterDelay=2,k.FocusOut=3})(ve||(r.TextDocumentSaveReason=ve={}));var Re;(function(k){k.method="textDocument/willSave",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(Re||(r.WillSaveTextDocumentNotification=Re={}));var Me;(function(k){k.method="textDocument/willSaveWaitUntil",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Me||(r.WillSaveTextDocumentWaitUntilRequest=Me={}));var fe;(function(k){k.method="workspace/didChangeWatchedFiles",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(fe||(r.DidChangeWatchedFilesNotification=fe={}));var Fe;(function(k){k.Created=1,k.Changed=2,k.Deleted=3})(Fe||(r.FileChangeType=Fe={}));var Je;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(n.URI.is(J.baseUri)||n.WorkspaceFolder.is(J.baseUri))&&A.string(J.pattern)}k.is=te})(Je||(r.RelativePattern=Je={}));var He;(function(k){k.Create=1,k.Change=2,k.Delete=4})(He||(r.WatchKind=He={}));var qe;(function(k){k.method="textDocument/publishDiagnostics",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(qe||(r.PublishDiagnosticsNotification=qe={}));var Ye;(function(k){k.Invoked=1,k.TriggerCharacter=2,k.TriggerForIncompleteCompletions=3})(Ye||(r.CompletionTriggerKind=Ye={}));var Te;(function(k){k.method="textDocument/completion",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Te||(r.CompletionRequest=Te={}));var Le;(function(k){k.method="completionItem/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Le||(r.CompletionResolveRequest=Le={}));var Qe;(function(k){k.method="textDocument/hover",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Qe||(r.HoverRequest=Qe={}));var xe;(function(k){k.Invoked=1,k.TriggerCharacter=2,k.ContentChange=3})(xe||(r.SignatureHelpTriggerKind=xe={}));var Ve;(function(k){k.method="textDocument/signatureHelp",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ve||(r.SignatureHelpRequest=Ve={}));var je;(function(k){k.method="textDocument/definition",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(je||(r.DefinitionRequest=je={}));var Ke;(function(k){k.method="textDocument/references",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ke||(r.ReferencesRequest=Ke={}));var Ge;(function(k){k.method="textDocument/documentHighlight",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ge||(r.DocumentHighlightRequest=Ge={}));var $e;(function(k){k.method="textDocument/documentSymbol",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})($e||(r.DocumentSymbolRequest=$e={}));var We;(function(k){k.method="textDocument/codeAction",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(We||(r.CodeActionRequest=We={}));var ze;(function(k){k.method="codeAction/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ze||(r.CodeActionResolveRequest=ze={}));var Xe;(function(k){k.method="workspace/symbol",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Xe||(r.WorkspaceSymbolRequest=Xe={}));var Ze;(function(k){k.method="workspaceSymbol/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ze||(r.WorkspaceSymbolResolveRequest=Ze={}));var et;(function(k){k.method="textDocument/codeLens",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(et||(r.CodeLensRequest=et={}));var Ie;(function(k){k.method="codeLens/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ie||(r.CodeLensResolveRequest=Ie={}));var tt;(function(k){k.method="workspace/codeLens/refresh",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType0(k.method)})(tt||(r.CodeLensRefreshRequest=tt={}));var nt;(function(k){k.method="textDocument/documentLink",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(nt||(r.DocumentLinkRequest=nt={}));var ke;(function(k){k.method="documentLink/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ke||(r.DocumentLinkResolveRequest=ke={}));var it;(function(k){k.method="textDocument/formatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(it||(r.DocumentFormattingRequest=it={}));var _e;(function(k){k.method="textDocument/rangeFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(_e||(r.DocumentRangeFormattingRequest=_e={}));var rt;(function(k){k.method="textDocument/rangesFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(rt||(r.DocumentRangesFormattingRequest=rt={}));var ye;(function(k){k.method="textDocument/onTypeFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ye||(r.DocumentOnTypeFormattingRequest=ye={}));var we;(function(k){k.Identifier=1})(we||(r.PrepareSupportDefaultBehavior=we={}));var At;(function(k){k.method="textDocument/rename",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(At||(r.RenameRequest=At={}));var ot;(function(k){k.method="textDocument/prepareRename",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ot||(r.PrepareRenameRequest=ot={}));var Se;(function(k){k.method="workspace/executeCommand",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Se||(r.ExecuteCommandRequest=Se={}));var Pe;(function(k){k.method="workspace/applyEdit",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType("workspace/applyEdit")})(Pe||(r.ApplyWorkspaceEditRequest=Pe={}))})(protocol)),protocol}var connection={},hasRequiredConnection;function requireConnection(){if(hasRequiredConnection)return connection;hasRequiredConnection=1,Object.defineProperty(connection,"__esModule",{value:!0}),connection.createProtocolConnection=void 0;const r=requireMain$1();function e(n,A,o,s){return r.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,r.createMessageConnection)(n,A,o,s)}return connection.createProtocolConnection=e,connection}var hasRequiredApi;function requireApi(){return hasRequiredApi||(hasRequiredApi=1,(function(r){var e=api&&api.__createBinding||(Object.create?(function(s,a,l,c){c===void 0&&(c=l);var g=Object.getOwnPropertyDescriptor(a,l);(!g||("get"in g?!a.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return a[l]}}),Object.defineProperty(s,c,g)}):(function(s,a,l,c){c===void 0&&(c=l),s[c]=a[l]})),n=api&&api.__exportStar||function(s,a){for(var l in s)l!=="default"&&!Object.prototype.hasOwnProperty.call(a,l)&&e(a,s,l)};Object.defineProperty(r,"__esModule",{value:!0}),r.LSPErrorCodes=r.createProtocolConnection=void 0,n(requireMain$1(),r),n(require$$1,r),n(requireMessages(),r),n(requireProtocol(),r);var A=requireConnection();Object.defineProperty(r,"createProtocolConnection",{enumerable:!0,get:function(){return A.createProtocolConnection}});var o;(function(s){s.lspReservedErrorRangeStart=-32899,s.RequestFailed=-32803,s.ServerCancelled=-32802,s.ContentModified=-32801,s.RequestCancelled=-32800,s.lspReservedErrorRangeEnd=-32800})(o||(r.LSPErrorCodes=o={}))})(api)),api}var hasRequiredMain;function requireMain(){return hasRequiredMain||(hasRequiredMain=1,(function(r){var e=main$2&&main$2.__createBinding||(Object.create?(function(s,a,l,c){c===void 0&&(c=l);var g=Object.getOwnPropertyDescriptor(a,l);(!g||("get"in g?!a.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return a[l]}}),Object.defineProperty(s,c,g)}):(function(s,a,l,c){c===void 0&&(c=l),s[c]=a[l]})),n=main$2&&main$2.__exportStar||function(s,a){for(var l in s)l!=="default"&&!Object.prototype.hasOwnProperty.call(a,l)&&e(a,s,l)};Object.defineProperty(r,"__esModule",{value:!0}),r.createProtocolConnection=void 0;const A=requireBrowser();n(requireBrowser(),r),n(requireApi(),r);function o(s,a,l,c){return(0,A.createMessageConnection)(s,a,l,c)}r.createProtocolConnection=o})(main$2)),main$2}var mainExports=requireMain();function serverCompletion(r={}){let e;if(r.override)e=[autocompletion({override:[serverCompletionSource]})];else{const n=[{autocomplete:serverCompletionSource}];e=[autocompletion(),EditorState.languageData.of(()=>n)]}return r.validFor&&e.push(completionConfig.of({validFor:r.validFor})),e}const completionConfig=Facet.define({combine:r=>r.length?r[0]:{validFor:null}});async function getCompletions(r,e,n,A){const o=r.extensionLsp.getClient(r.lang);if(!o)return[];o.hasCapability("completionProvider"),o.sync();const s={position:r.toPosition(e),textDocument:{uri:r.uri},context:n};return A&&A.addEventListener("abort",()=>o.cancelRequest(s)),await o.request("textDocument/completion",s)}function prefixRegexp(r){let e=Math.ceil(r.length/50),n=[];for(let A=0;A<r.length;A+=e){let o=r[A],s=o.textEdit?.newText||o.textEditText||o.insertText||o.label;if(!/^\w/.test(s)){let a=/^[^\w]*/.exec(s)[0];n.indexOf(a)<0&&n.push(a)}}return n.length?new RegExp("^(?:"+n.map(RegExp.escape||(A=>A.replace(/[^\w\s]/g,"\\$&"))).join("|")+")?\\w*$"):/^\w*$/}const serverCompletionSource=async r=>{const e=r.view&&LSPPlugin.get(r.view);if(!e)return null;let n="";if(!r.explicit){n=r.view.state.sliceDoc(r.pos-1,r.pos);const A=e.extensionLsp.getClient(e.lang);if(!A)return null;const o=A.serverCapabilities?.completionProvider?.triggerCharacters;if(!/[a-zA-Z_]/.test(n)&&!(o&&o.indexOf(n)>-1))return null}try{let A=await getCompletions(e,r.pos,{triggerCharacter:n,triggerKind:r.explicit?mainExports.CompletionTriggerKind.Invoked:mainExports.CompletionTriggerKind.TriggerCharacter},r);if(!A)return null;Array.isArray(A)&&(A={items:A});const{from:o,to:s}=completionResultRange(r,A),a=A.itemDefaults?.commitCharacters,l=r.state.facet(completionConfig),c=A.items.map(g=>{let h=g.textEdit?.newText||g.textEditText||g.insertText||g.label,d={label:h,type:g.kind&&kindToType[g.kind]};return g.commitCharacters&&g.commitCharacters!=a&&(d.commitCharacters=g.commitCharacters),g.detail&&(d.detail=g.detail),g.insertTextFormat==2&&(d.apply=(u,f,I,p)=>snippet(h)(u,f,I,p),d.label=g.label),g.documentation&&(d.info=()=>renderDocInfo(e,g.documentation)),d});return{from:o,to:s,options:c,commitCharacters:a,validFor:l.validFor??prefixRegexp(A.items),map:(g,h)=>({...g,from:h.mapPos(g.from)})}}catch(A){if("code"in A&&A.code==-32800)return null;throw A}};function completionResultRange(r,e){if(!e.items.length)return{from:r.pos,to:r.pos};const n=e.itemDefaults?.editRange,A=e.items[0],o=n?"insert"in n?n.insert:n:A.textEdit?"range"in A.textEdit?A.textEdit.range:A.textEdit.insert:null;if(!o)return r.state.wordAt(r.pos)||{from:r.pos,to:r.pos};const s=r.state.doc.lineAt(r.pos);return{from:s.from+o.start.character,to:s.from+o.end.character}}function renderDocInfo(r,e){let n=document.createElement("div");return n.className="cm-lsp-documentation cm-lsp-completion-documentation",n.innerHTML=r.docToHTML(e),n}const kindToType={1:"text",2:"method",3:"function",4:"class",5:"property",6:"variable",7:"class",8:"interface",9:"namespace",10:"property",11:"keyword",12:"constant",13:"constant",14:"keyword",16:"constant",20:"constant",21:"constant",22:"class",25:"type"};function hoverTooltips(r={}){return hoverTooltip(lspTooltipSource,{hideOn:e=>e.docChanged,hoverTime:r.hoverTime})}function hoverRequest(r,e){const n=r.getClient();return n?.hasCapability("hoverProvider")===!1?Promise.resolve(null):(n?.sync(),n?.request("textDocument/hover",{position:r.toPosition(e),textDocument:{uri:r.uri}}))}function lspTooltipSource(r,e){const n=LSPPlugin.get(r);return n?hoverRequest(n,e).then(A=>A?{pos:A.range?fromPosition(r.state.doc,A.range.start):e,end:A.range?fromPosition(r.state.doc,A.range.end):e,create(){let o=document.createElement("div");return o.className="cm-lsp-hover-tooltip cm-lsp-documentation",o.innerHTML=renderTooltipContent(n,A.contents),{dom:o}},above:!0}:null):Promise.resolve(null)}function renderTooltipContent(r,e){return Array.isArray(e)?e.map(n=>renderCode(r,n)).join("<br>"):typeof e=="string"||typeof e=="object"&&"language"in e?renderCode(r,e):r.docToHTML(e)}function renderCode(r,e){if(typeof e=="string")return r.docToHTML(e,"markdown");let{language:n,value:A}=e;return r.docToHTML(A,"plaintext")}function languageServerExtensions(){return[serverCompletion(),hoverTooltips(),keymap.of([])]}const themeCallbacks=[];class CodeMirrorBlockNodeView{constructor(e,n,A,o,s){this.node=e,this.view=n,this.getPos=A,this.settings=o,this.editor=s,this.uri="file:///"+Math.random()+".ts",this.updating=!1;const a=document.createElement("div");this.dom=a,a.className="codeblock-root",this.languageConf=new Compartment;const l=new Compartment,c=()=>{const I=[],p=new RemoteSyncConfig(()=>this.node,A,s);return I.push(remoteSyncFacet.of(p)),I.push(yRemoteSelectionsTheme,yRemoteSelections),I},g=[EditorState.readOnly.of(!!o.readOnly),EditorView.editable.of(!o.readOnly),lineNumbers(),highlightActiveLineGutter(),foldGutter(),bracketMatching(),closeBrackets(),rectangularSelection(),drawSelection({cursorBlinkRate:1e3}),syntaxHighlighting(defaultHighlightStyle,{fallback:!0}),this.languageConf.of([]),indentOnInput(),keymap.of([{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0},{key:"ArrowUp",run:I=>maybeEscape("line",-1,I,n,A)},{key:"ArrowLeft",run:I=>maybeEscape("char",-1,I,n,A)},{key:"ArrowDown",run:I=>maybeEscape("line",1,I,n,A)},{key:"ArrowRight",run:I=>maybeEscape("char",1,I,n,A)},{key:"Ctrl-Enter",run:()=>s.run.exitCode()?(n.focus(),!0):!1},{key:"Mod-z",run:()=>o.undo?.(n.state,n.dispatch)||!0,shift:()=>o.redo?.(n.state,n.dispatch)||!0},{key:"Mod-y",run:()=>o.redo?.(n.state,n.dispatch)||!0},{key:"Backspace",run:I=>backspaceHandler(n,I,s)},{key:"Mod-Backspace",run:I=>backspaceHandler(n,I,s)},{key:"Mod-a",run:()=>{const I=s.run.selectAll();return n.focus(),I}},...defaultKeymap,...foldKeymap,...closeBracketsKeymap,...completionKeymap,indentWithTab,{key:"Ctrl-`",run:()=>(s.chain().toggleDevToolkit().run(),!0)}]),...o.theme?o.theme:[],l.of([]),c()],h=s.getExtension("lsp");if(h){const I=new LSPExtension({getPos:this.getPos,extensions:languageServerExtensions()});g.push(I.plugin(h,s))}else{const I=[{label:"console.log",type:"function"},{label:"const",type:"keyword"},{label:"let",type:"keyword"},{label:"var",type:"keyword"},{label:"function",type:"keyword"}],p=m=>{let E=m.matchBefore(/\w*/);return!E||E.from==E.to&&!m.explicit?null:{from:E.from,options:I}};g.push(autocompletion({override:[p]}))}const d=EditorState.create({extensions:g,doc:e.textContent}),u=s.view&&"root"in s.view?s.view.root:document||document;this.codeMirrorView=new EditorView({state:d,root:u,dispatch:I=>{if(this.codeMirrorView.update([I]),!this.updating){const p=I.state.toJSON().doc;valueChanged(p,this.node,A,n),forwardSelection(this.codeMirrorView,n,A);const m=LSPPlugin.get(this.codeMirrorView);m&&m.update()}}}),a.append(this.codeMirrorView.dom),Array.isArray(o.languageWhitelist)&&o.languageWhitelist.length===1||(this.selectDeleteCB=o.createSelect(o,a,e,n,A)),this.createCopyButtonCB=o.createCopyButton(o,a,e,n,this.codeMirrorView,A),setMode(e.attrs.lang,this.codeMirrorView,o,this.languageConf);const f=o.getCurrentTheme?.();setTheme(this.codeMirrorView,l,[o.themes.find(I=>I.name===f)]),this.updateTheme=I=>{setTheme(this.codeMirrorView,l,[o.themes.find(p=>p.name===I)])},themeCallbacks.push(this.updateTheme)}updateTheme(e){throw new Error("Method not implemented.")}selectNode(){this.codeMirrorView.focus()}stopEvent(e){return this.settings.stopEvent(e,this.node,this.getPos,this.view,this.dom)}setSelection(e,n){this.codeMirrorView.focus(),this.updating=!0,this.codeMirrorView.dispatch({selection:{anchor:e,head:n}}),this.updating=!1}update(e,n,A){if(A.forEachSet(a=>a.find().map(l=>{})),e.type.name!==this.node.type.name)return!1;e.attrs.lang!==this.node.attrs.lang&&setMode(e.attrs.lang,this.codeMirrorView,this.settings,this.languageConf);const o=this.node;this.node=e;const s=computeChange(this.codeMirrorView.state.doc.toString(),this.node.textContent);return s&&(this.updating=!0,this.codeMirrorView.dispatch({changes:{from:s.from,to:s.to,insert:s.text},selection:{anchor:s.from+s.text.length}}),this.updating=!1),this.settings.updateSelect(this.settings,this.dom,e,this.view,this.getPos,o),!0}ignoreMutation(){return!0}destroy(){this.selectDeleteCB&&this.selectDeleteCB(),this.createCopyButtonCB(),themeCallbacks.splice(themeCallbacks.indexOf(this.updateTheme),1)}}const codeMirrorBlockNodeView=(r,e)=>(n,A,o)=>new CodeMirrorBlockNodeView(n,A,o,r,e),defaultCreateSelect=(r,e,n,A,o)=>{if(!r.languageLoaders)return()=>{};const{languageLoaders:s}=r,a=document.createElement("select");a.className="codeblock-select";const l=document.createElement("option");return l.value="none",l.textContent=r.languageNameMap?.none||"none",a.append(l),Object.keys(s).sort().forEach(c=>{if(r.languageWhitelist&&!r.languageWhitelist.includes(c))return;const g=document.createElement("option");g.value=c,g.textContent=r.languageNameMap?.[c]||c,a.append(g)}),a.value=n.attrs.lang||"none",e.prepend(a),a.onchange=c=>{if(!(c.target instanceof HTMLSelectElement))return;const g=c.target.value,h=o();h&&A.dispatch(A.state.tr.setNodeMarkup(h,void 0,{...n.attrs,lang:g}))},()=>{}},defaultUpdateSelect=(r,e,n,A,o,s)=>{if(s.attrs.lang!==n.attrs.lang){const a=e.querySelector(".codeblock-select");if(!(a instanceof HTMLSelectElement))return;a.value=n.attrs.lang||"none"}},defaultStopEvent=()=>!0,defaultSettings={createSelect:defaultCreateSelect,updateSelect:defaultUpdateSelect,createCopyButton:()=>()=>{},stopEvent:defaultStopEvent,readOnly:!1,themes:[]};var CodeBlockLanguages=(r=>(r.javascript="javascript",r.html="html",r.css="css",r.sql="sql",r.python="python",r.rust="rust",r.xml="xml",r.json="json",r.markdown="markdown",r.java="java",r.cpp="cpp",r.lezer="lezer",r.php="php",r.wast="wast",r))(CodeBlockLanguages||{}),LegacyLanguages=(r=>(r.apl="apl",r.asciiarmor="asciiarmor",r.asn1="asn1",r.asterisk="asterisk",r.brainfuck="brainfuck",r.clike="clike",r.clojure="clojure",r.cmake="cmake",r.cobol="cobol",r.coffeescript="coffeescript",r.commonlisp="commonlisp",r.crystal="crystal",r.cypher="cypher",r.d="d",r.diff="diff",r.dockerfile="dockerfile",r.dtd="dtd",r.dylan="dylan",r.ebnf="ebnf",r.ecl="ecl",r.eiffel="eiffel",r.elm="elm",r.erlang="erlang",r.factor="factor",r.fcl="fcl",r.forth="forth",r.fortran="fortran",r.gas="gas",r.gherkin="gherkin",r.go="go",r.groovy="groovy",r.haskell="haskell",r.haxe="haxe",r.http="http",r.idl="idl",r.jinja2="jinja2",r.julia="julia",r.livescript="livescript",r.lua="lua",r.mathematica="mathematica",r.mbox="mbox",r.mirc="mirc",r.mllike="mllike",r.modelica="modelica",r.mscgen="mscgen",r.mumps="mumps",r.nginx="nginx",r.nsis="nsis",r.ntriples="ntriples",r.octave="octave",r.oz="oz",r.pascal="pascal",r.perl="perl",r.pig="pig",r.powershell="powershell",r.properties="properties",r.protobuf="protobuf",r.puppet="puppet",r.q="q",r.r="r",r.rpm="rpm",r.ruby="ruby",r.sas="sas",r.scheme="scheme",r.shell="shell",r.smalltalk="smalltalk",r.solr="solr",r.sparql="sparql",r.spreadsheet="spreadsheet",r.stex="stex",r.stylus="stylus",r.swift="swift",r.tcl="tcl",r.textile="textile",r.tiddlywiki="tiddlywiki",r.tiki="tiki",r.toml="toml",r.troff="troff",r.ttcn="ttcn",r.turtle="turtle",r.vb="vb",r.vbscript="vbscript",r.velocity="velocity",r.verilog="verilog",r.vhdl="vhdl",r.webidl="webidl",r.xquery="xquery",r.yacas="yacas",r.yaml="yaml",r.z80="z80",r))(LegacyLanguages||{});const languageLoaders={[CodeBlockLanguages.cpp]:()=>Promise.resolve().then(()=>require("./index-9cv97YvE.cjs")).then(r=>r.cpp()),[CodeBlockLanguages.css]:()=>Promise.resolve().then(()=>require("./index-DoGgI2oY.cjs")).then(r=>r.css()),[CodeBlockLanguages.html]:()=>Promise.resolve().then(()=>require("./index-dlwn0piJ.cjs")).then(r=>r.html()),[CodeBlockLanguages.php]:()=>Promise.resolve().then(()=>require("./index-FToMxWKL.cjs")).then(r=>r.php()),[CodeBlockLanguages.sql]:()=>Promise.resolve().then(()=>require("./index-C7Z6Q366.cjs")).then(r=>r.sql()),[CodeBlockLanguages.xml]:()=>Promise.resolve().then(()=>require("./index-B7bKCdCf.cjs")).then(r=>r.xml()),[CodeBlockLanguages.javascript]:()=>Promise.resolve().then(()=>require("./index-DYPv77kg.cjs")).then(r=>r.javascript()),[CodeBlockLanguages.java]:()=>Promise.resolve().then(()=>require("./index-DNc0JKqh.cjs")).then(r=>r.java()),[CodeBlockLanguages.json]:()=>Promise.resolve().then(()=>require("./index-D5cwaJ4H.cjs")).then(r=>r.json()),[CodeBlockLanguages.lezer]:()=>Promise.resolve().then(()=>require("./index-DaDx1HGC.cjs")).then(r=>r.lezer()),[CodeBlockLanguages.markdown]:()=>Promise.resolve().then(()=>require("./index-B17U1nZ0.cjs")).then(r=>r.markdown()),[CodeBlockLanguages.python]:()=>Promise.resolve().then(()=>require("./index-BgoC8E8i.cjs")).then(r=>r.python()),[CodeBlockLanguages.rust]:()=>Promise.resolve().then(()=>require("./index-T9WBgfcY.cjs")).then(r=>r.rust()),[CodeBlockLanguages.wast]:()=>Promise.resolve().then(()=>require("./index-D7wP-JGl.cjs")).then(r=>r.wast())},legacyLanguageLoaders={[LegacyLanguages.apl]:()=>Promise.resolve().then(()=>require("./apl-M-DNMvvR.cjs")).then(({apl:r})=>StreamLanguage.define(r)),[LegacyLanguages.asciiarmor]:()=>Promise.resolve().then(()=>require("./asciiarmor-BMx3XVjX.cjs")).then(({asciiArmor:r})=>StreamLanguage.define(r)),[LegacyLanguages.asn1]:()=>Promise.resolve().then(()=>require("./asn1-OOsVM4yU.cjs")).then(({asn1:r})=>StreamLanguage.define(r)),[LegacyLanguages.asterisk]:()=>Promise.resolve().then(()=>require("./asterisk-B1QUaW1C.cjs")).then(({asterisk:r})=>StreamLanguage.define(r)),[LegacyLanguages.brainfuck]:()=>Promise.resolve().then(()=>require("./brainfuck-BjUlYKdF.cjs")).then(({brainfuck:r})=>StreamLanguage.define(r)),[LegacyLanguages.clike]:()=>Promise.resolve().then(()=>require("./clike-DLHgOXgk.cjs")).then(({clike:r})=>StreamLanguage.define(r)),[LegacyLanguages.clojure]:()=>Promise.resolve().then(()=>require("./clojure-Ap_IXD2I.cjs")).then(({clojure:r})=>StreamLanguage.define(r)),[LegacyLanguages.cmake]:()=>Promise.resolve().then(()=>require("./cmake-C4D5_VmS.cjs")).then(({cmake:r})=>StreamLanguage.define(r)),[LegacyLanguages.cobol]:()=>Promise.resolve().then(()=>require("./cobol-Du-cT2hr.cjs")).then(({cobol:r})=>StreamLanguage.define(r)),[LegacyLanguages.coffeescript]:()=>Promise.resolve().then(()=>require("./coffeescript-DDFAj2ea.cjs")).then(({coffeeScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.commonlisp]:()=>Promise.resolve().then(()=>require("./commonlisp-CXBBRCTx.cjs")).then(({commonLisp:r})=>StreamLanguage.define(r)),[LegacyLanguages.crystal]:()=>Promise.resolve().then(()=>require("./crystal-DAFWRDbh.cjs")).then(({crystal:r})=>StreamLanguage.define(r)),[LegacyLanguages.cypher]:()=>Promise.resolve().then(()=>require("./cypher-BN0-oCze.cjs")).then(({cypher:r})=>StreamLanguage.define(r)),[LegacyLanguages.d]:()=>Promise.resolve().then(()=>require("./d-BHsqGcfm.cjs")).then(({d:r})=>StreamLanguage.define(r)),[LegacyLanguages.diff]:()=>Promise.resolve().then(()=>require("./diff-CemTHKfk.cjs")).then(({diff:r})=>StreamLanguage.define(r)),[LegacyLanguages.dockerfile]:()=>Promise.resolve().then(()=>require("./dockerfile-BBTH3voH.cjs")).then(({dockerFile:r})=>StreamLanguage.define(r)),[LegacyLanguages.dtd]:()=>Promise.resolve().then(()=>require("./dtd-ChoVQPwv.cjs")).then(({dtd:r})=>StreamLanguage.define(r)),[LegacyLanguages.dylan]:()=>Promise.resolve().then(()=>require("./dylan-apTQIgUA.cjs")).then(({dylan:r})=>StreamLanguage.define(r)),[LegacyLanguages.ebnf]:()=>Promise.resolve().then(()=>require("./ebnf-LYmLy17h.cjs")).then(({ebnf:r})=>StreamLanguage.define(r)),[LegacyLanguages.ecl]:()=>Promise.resolve().then(()=>require("./ecl-C7WNQq7-.cjs")).then(({ecl:r})=>StreamLanguage.define(r)),[LegacyLanguages.eiffel]:()=>Promise.resolve().then(()=>require("./eiffel-BJThA8RG.cjs")).then(({eiffel:r})=>StreamLanguage.define(r)),[LegacyLanguages.elm]:()=>Promise.resolve().then(()=>require("./elm-CcXP9T36.cjs")).then(({elm:r})=>StreamLanguage.define(r)),[LegacyLanguages.erlang]:()=>Promise.resolve().then(()=>require("./erlang-B6mpcObI.cjs")).then(({erlang:r})=>StreamLanguage.define(r)),[LegacyLanguages.factor]:()=>Promise.resolve().then(()=>require("./factor-B-tsx9yW.cjs")).then(({factor:r})=>StreamLanguage.define(r)),[LegacyLanguages.fcl]:()=>Promise.resolve().then(()=>require("./fcl-BzAKklXo.cjs")).then(({fcl:r})=>StreamLanguage.define(r)),[LegacyLanguages.forth]:()=>Promise.resolve().then(()=>require("./forth-CPAzyZ_n.cjs")).then(({forth:r})=>StreamLanguage.define(r)),[LegacyLanguages.fortran]:()=>Promise.resolve().then(()=>require("./fortran-DHiTlGV1.cjs")).then(({fortran:r})=>StreamLanguage.define(r)),[LegacyLanguages.gas]:()=>Promise.resolve().then(()=>require("./gas-BiPtGF2E.cjs")).then(({gas:r})=>StreamLanguage.define(r)),[LegacyLanguages.gherkin]:()=>Promise.resolve().then(()=>require("./gherkin-Djo7Y51D.cjs")).then(({gherkin:r})=>StreamLanguage.define(r)),[LegacyLanguages.go]:()=>Promise.resolve().then(()=>require("./go-BgtlNyKc.cjs")).then(({go:r})=>StreamLanguage.define(r)),[LegacyLanguages.groovy]:()=>Promise.resolve().then(()=>require("./groovy-BMVITiCm.cjs")).then(({groovy:r})=>StreamLanguage.define(r)),[LegacyLanguages.haskell]:()=>Promise.resolve().then(()=>require("./haskell-C46lNFBv.cjs")).then(({haskell:r})=>StreamLanguage.define(r)),[LegacyLanguages.haxe]:()=>Promise.resolve().then(()=>require("./haxe-G9XvbXZx.cjs")).then(({haxe:r})=>StreamLanguage.define(r)),[LegacyLanguages.http]:()=>Promise.resolve().then(()=>require("./http-BkLifcnL.cjs")).then(({http:r})=>StreamLanguage.define(r)),[LegacyLanguages.idl]:()=>Promise.resolve().then(()=>require("./idl-FmHDmsE-.cjs")).then(({idl:r})=>StreamLanguage.define(r)),[LegacyLanguages.jinja2]:()=>Promise.resolve().then(()=>require("./jinja2-wbVbDTNi.cjs")).then(({jinja2:r})=>StreamLanguage.define(r)),[LegacyLanguages.julia]:()=>Promise.resolve().then(()=>require("./julia-DA67Qw9E.cjs")).then(({julia:r})=>StreamLanguage.define(r)),[LegacyLanguages.livescript]:()=>Promise.resolve().then(()=>require("./livescript-Bg3URadp.cjs")).then(({liveScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.lua]:()=>Promise.resolve().then(()=>require("./lua-CIsxjGwi.cjs")).then(({lua:r})=>StreamLanguage.define(r)),[LegacyLanguages.mathematica]:()=>Promise.resolve().then(()=>require("./mathematica-BG089QIc.cjs")).then(({mathematica:r})=>StreamLanguage.define(r)),[LegacyLanguages.mbox]:()=>Promise.resolve().then(()=>require("./mbox-CySolFFZ.cjs")).then(({mbox:r})=>StreamLanguage.define(r)),[LegacyLanguages.mirc]:()=>Promise.resolve().then(()=>require("./mirc-BfqEffzk.cjs")).then(({mirc:r})=>StreamLanguage.define(r)),[LegacyLanguages.mllike]:()=>Promise.resolve().then(()=>require("./mllike-CBK_zjnT.cjs")).then(({oCaml:r})=>StreamLanguage.define(r)),[LegacyLanguages.modelica]:()=>Promise.resolve().then(()=>require("./modelica-B6Zhcb-M.cjs")).then(({modelica:r})=>StreamLanguage.define(r)),[LegacyLanguages.mscgen]:()=>Promise.resolve().then(()=>require("./mscgen-B_Dg_s1G.cjs")).then(({mscgen:r})=>StreamLanguage.define(r)),[LegacyLanguages.mumps]:()=>Promise.resolve().then(()=>require("./mumps-wfyQdxSu.cjs")).then(({mumps:r})=>StreamLanguage.define(r)),[LegacyLanguages.nginx]:()=>Promise.resolve().then(()=>require("./nginx-CwqyBUfA.cjs")).then(({nginx:r})=>StreamLanguage.define(r)),[LegacyLanguages.nsis]:()=>Promise.resolve().then(()=>require("./nsis-DPj2fUaP.cjs")).then(({nsis:r})=>StreamLanguage.define(r)),[LegacyLanguages.ntriples]:()=>Promise.resolve().then(()=>require("./ntriples-DgwJmozm.cjs")).then(({ntriples:r})=>StreamLanguage.define(r)),[LegacyLanguages.octave]:()=>Promise.resolve().then(()=>require("./octave-1pkKrgAA.cjs")).then(({octave:r})=>StreamLanguage.define(r)),[LegacyLanguages.oz]:()=>Promise.resolve().then(()=>require("./oz-BXOZCt0U.cjs")).then(({oz:r})=>StreamLanguage.define(r)),[LegacyLanguages.pascal]:()=>Promise.resolve().then(()=>require("./pascal-DtY2LEkJ.cjs")).then(({pascal:r})=>StreamLanguage.define(r)),[LegacyLanguages.perl]:()=>Promise.resolve().then(()=>require("./perl-CVDWbEju.cjs")).then(({perl:r})=>StreamLanguage.define(r)),[LegacyLanguages.pig]:()=>Promise.resolve().then(()=>require("./pig-DMByOrnr.cjs")).then(({pig:r})=>StreamLanguage.define(r)),[LegacyLanguages.powershell]:()=>Promise.resolve().then(()=>require("./powershell-BaoYaFvj.cjs")).then(({powerShell:r})=>StreamLanguage.define(r)),[LegacyLanguages.properties]:()=>Promise.resolve().then(()=>require("./properties-DXHJZ3WE.cjs")).then(({properties:r})=>StreamLanguage.define(r)),[LegacyLanguages.protobuf]:()=>Promise.resolve().then(()=>require("./protobuf-BKhXdfH6.cjs")).then(({protobuf:r})=>StreamLanguage.define(r)),[LegacyLanguages.puppet]:()=>Promise.resolve().then(()=>require("./puppet-8mAyuMbW.cjs")).then(({puppet:r})=>StreamLanguage.define(r)),[LegacyLanguages.q]:()=>Promise.resolve().then(()=>require("./q-BPQ45Nxu.cjs")).then(({q:r})=>StreamLanguage.define(r)),[LegacyLanguages.r]:()=>Promise.resolve().then(()=>require("./r-r2_EZsON.cjs")).then(({r})=>StreamLanguage.define(r)),[LegacyLanguages.rpm]:()=>Promise.resolve().then(()=>require("./rpm-C6UDHByS.cjs")).then(({rpmSpec:r})=>StreamLanguage.define(r)),[LegacyLanguages.ruby]:()=>Promise.resolve().then(()=>require("./ruby-Cn1sFkZF.cjs")).then(({ruby:r})=>StreamLanguage.define(r)),[LegacyLanguages.sas]:()=>Promise.resolve().then(()=>require("./sas-DAGcJy94.cjs")).then(({sas:r})=>StreamLanguage.define(r)),[LegacyLanguages.scheme]:()=>Promise.resolve().then(()=>require("./scheme-B0ZrbojV.cjs")).then(({scheme:r})=>StreamLanguage.define(r)),[LegacyLanguages.shell]:()=>Promise.resolve().then(()=>require("./shell-BMYo43V6.cjs")).then(({shell:r})=>StreamLanguage.define(r)),[LegacyLanguages.smalltalk]:()=>Promise.resolve().then(()=>require("./smalltalk-CSslY-3i.cjs")).then(({smalltalk:r})=>StreamLanguage.define(r)),[LegacyLanguages.solr]:()=>Promise.resolve().then(()=>require("./solr-A1kSnAwJ.cjs")).then(({solr:r})=>StreamLanguage.define(r)),[LegacyLanguages.sparql]:()=>Promise.resolve().then(()=>require("./sparql-DnHMBLLY.cjs")).then(({sparql:r})=>StreamLanguage.define(r)),[LegacyLanguages.spreadsheet]:()=>Promise.resolve().then(()=>require("./spreadsheet-B7_BK8hB.cjs")).then(({spreadsheet:r})=>StreamLanguage.define(r)),[LegacyLanguages.stex]:()=>Promise.resolve().then(()=>require("./stex-B4wyjEnp.cjs")).then(({stex:r})=>StreamLanguage.define(r)),[LegacyLanguages.stylus]:()=>Promise.resolve().then(()=>require("./stylus-B3vYZZY8.cjs")).then(({stylus:r})=>StreamLanguage.define(r)),[LegacyLanguages.swift]:()=>Promise.resolve().then(()=>require("./swift-DGw6Cgu8.cjs")).then(({swift:r})=>StreamLanguage.define(r)),[LegacyLanguages.tcl]:()=>Promise.resolve().then(()=>require("./tcl-ByLXbQFo.cjs")).then(({tcl:r})=>StreamLanguage.define(r)),[LegacyLanguages.textile]:()=>Promise.resolve().then(()=>require("./textile-iryw-lTw.cjs")).then(({textile:r})=>StreamLanguage.define(r)),[LegacyLanguages.tiddlywiki]:()=>Promise.resolve().then(()=>require("./tiddlywiki-D8IJz1k7.cjs")).then(({tiddlyWiki:r})=>StreamLanguage.define(r)),[LegacyLanguages.tiki]:()=>Promise.resolve().then(()=>require("./tiki-C5p5KSQK.cjs")).then(({tiki:r})=>StreamLanguage.define(r)),[LegacyLanguages.toml]:()=>Promise.resolve().then(()=>require("./toml-3ZsH_4Qa.cjs")).then(({toml:r})=>StreamLanguage.define(r)),[LegacyLanguages.troff]:()=>Promise.resolve().then(()=>require("./troff-D-3QCOYN.cjs")).then(({troff:r})=>StreamLanguage.define(r)),[LegacyLanguages.ttcn]:()=>Promise.resolve().then(()=>require("./ttcn-C2MXAqcM.cjs")).then(({ttcn:r})=>StreamLanguage.define(r)),[LegacyLanguages.turtle]:()=>Promise.resolve().then(()=>require("./turtle-DSJNatSv.cjs")).then(({turtle:r})=>StreamLanguage.define(r)),[LegacyLanguages.vb]:()=>Promise.resolve().then(()=>require("./vb-qzHzzvyB.cjs")).then(({vb:r})=>StreamLanguage.define(r)),[LegacyLanguages.vbscript]:()=>Promise.resolve().then(()=>require("./vbscript-CWm8v9tE.cjs")).then(({vbScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.velocity]:()=>Promise.resolve().then(()=>require("./velocity-D3_yAIp3.cjs")).then(({velocity:r})=>StreamLanguage.define(r)),[LegacyLanguages.verilog]:()=>Promise.resolve().then(()=>require("./verilog-BOhLNmQo.cjs")).then(({verilog:r})=>StreamLanguage.define(r)),[LegacyLanguages.vhdl]:()=>Promise.resolve().then(()=>require("./vhdl-CMFbi8Im.cjs")).then(({vhdl:r})=>StreamLanguage.define(r)),[LegacyLanguages.webidl]:()=>Promise.resolve().then(()=>require("./webidl-CWb_flNk.cjs")).then(({webIDL:r})=>StreamLanguage.define(r)),[LegacyLanguages.xquery]:()=>Promise.resolve().then(()=>require("./xquery-mbJFEpkV.cjs")).then(({xQuery:r})=>StreamLanguage.define(r)),[LegacyLanguages.yacas]:()=>Promise.resolve().then(()=>require("./yacas-urx_N5C8.cjs")).then(({yacas:r})=>StreamLanguage.define(r)),[LegacyLanguages.yaml]:()=>Promise.resolve().then(()=>require("./yaml-CSixJMdf.cjs")).then(({yaml:r})=>StreamLanguage.define(r)),[LegacyLanguages.z80]:()=>Promise.resolve().then(()=>require("./z80-CsG3CM6M.cjs")).then(({z80:r})=>StreamLanguage.define(r))},codeMirrorBlockKey=new PluginKey("codemirror-block");function arrowHandler(r){return(e,n,A)=>{if(e.selection.empty&&A&&A.endOfTextblock(r)){let o=r=="left"||r=="up"?-1:1,s=e.selection.$head,a=Selection.near(e.doc.resolve(o>0?s.after():s.before()),o);if(a.$head&&a.$head.parent.type.name=="code_block")return n&&n(e.tr.setSelection(a)),!0}return!1}}const LANGS=["diff","dockerfile","http","nginx","properties","shell","toml","yaml","sql","javascript","cpp","css","xml","java","json","markdown","rust","html"];class NodeCodeMirror extends NodeCodeBlock{constructor(e){super(e),this.config=e}getCommandFactories(e,n){return{setCodeBlock:A=>e.commandFactories.setBlockType(n,{lang:A}),ArrowLeft:()=>arrowHandler("left"),ArrowRight:()=>arrowHandler("right"),ArrowUp:()=>arrowHandler("up"),ArrowDown:()=>arrowHandler("down")}}getKeyboardShortcuts(){return{'Shift-Ctrl-"':"setCodeBlock",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown"}}getProseMirrorPlugins(){const e=getShadowRoot(this.editor.config.element),n={languageWhitelist:this.config.languageWhitelist||LANGS,shadowRoot:e,...defaultSettings,readOnly:this.editor.config.readOnly||this.config.readOnly,languageLoaders:{...languageLoaders,...legacyLanguageLoaders},undo:()=>{this.editor.chain().undo().run()},redo:()=>{this.editor.chain().redo().run()},theme:[...this.config.theme||[]]};return[new Plugin({key:codeMirrorBlockKey,props:{nodeViews:{[this.name]:codeMirrorBlockNodeView(n,this.editor)}}})]}}class ExtensionCodeMirror extends Extension{constructor(e){super(e),this.config=e,this.name="code-mirror",this.requires=[new NodeCodeMirror({languageWhitelist:e.languageWhitelist,theme:e.theme})]}getConverters(e,n){return{"text/code-only":{fromDoc:async A=>{const o=[];if(A.content){for(const s of A.content.toJSON())if(s.type==="code_block"&&Array.isArray(s.content))for(const a of s.content)o.push(a.text)}return new TextEncoder().encode(o.join(""))},toDoc:async A=>{const o=new TextDecoder().decode(A),s={type:"doc_code",content:[{type:"code_block",attrs:{lang:n.topNodeType.spec.defaultAttrs?.lang},content:[{type:"text",text:o}]}]};return createNodeFromObject(s,n,{errorOnInvalidContent:!1})}}}}}var html,hasRequiredHtml;function requireHtml(){if(hasRequiredHtml)return html;hasRequiredHtml=1;function r(e,n){var A,o,s,a,l,c;n=n||{},o=n.indent_size||4,s=n.indent_char||" ",l=n.brace_style||"collapse",a=n.max_char==0?1/0:n.max_char||70,c=n.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"];function g(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:`
|
|
62
|
+
`&&o++}A&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),A=0,o=n.length;if(o===0)return Position.create(0,e);for(;A<o;){let a=Math.floor((A+o)/2);n[a]>e?o=a:A=a+1}let s=A-1;return Position.create(s,e-n[s])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let A=n[e.line],o=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(A+e.character,o),A)}get lineCount(){return this.getLineOffsets().length}}var Is;(function(r){const e=Object.prototype.toString;function n(f){return typeof f<"u"}r.defined=n;function A(f){return typeof f>"u"}r.undefined=A;function o(f){return f===!0||f===!1}r.boolean=o;function s(f){return e.call(f)==="[object String]"}r.string=s;function a(f){return e.call(f)==="[object Number]"}r.number=a;function l(f,I,p){return e.call(f)==="[object Number]"&&I<=f&&f<=p}r.numberRange=l;function c(f){return e.call(f)==="[object Number]"&&-2147483648<=f&&f<=2147483647}r.integer=c;function g(f){return e.call(f)==="[object Number]"&&0<=f&&f<=2147483647}r.uinteger=g;function h(f){return e.call(f)==="[object Function]"}r.func=h;function d(f){return f!==null&&typeof f=="object"}r.objectLiteral=d;function u(f,I){return Array.isArray(f)&&f.every(I)}r.typedArray=u})(Is||(Is={}));const main=Object.freeze(Object.defineProperty({__proto__:null,get AnnotatedTextEdit(){return AnnotatedTextEdit},get ChangeAnnotation(){return ChangeAnnotation},get ChangeAnnotationIdentifier(){return ChangeAnnotationIdentifier},get CodeAction(){return CodeAction},get CodeActionContext(){return CodeActionContext},get CodeActionKind(){return CodeActionKind},get CodeActionTriggerKind(){return CodeActionTriggerKind},get CodeDescription(){return CodeDescription},get CodeLens(){return CodeLens},get Color(){return Color},get ColorInformation(){return ColorInformation},get ColorPresentation(){return ColorPresentation},get Command(){return Command},get CompletionItem(){return CompletionItem},get CompletionItemKind(){return CompletionItemKind},get CompletionItemLabelDetails(){return CompletionItemLabelDetails},get CompletionItemTag(){return CompletionItemTag},get CompletionList(){return CompletionList},get CreateFile(){return CreateFile},get DeleteFile(){return DeleteFile},get Diagnostic(){return Diagnostic},get DiagnosticRelatedInformation(){return DiagnosticRelatedInformation},get DiagnosticSeverity(){return DiagnosticSeverity},get DiagnosticTag(){return DiagnosticTag},get DocumentHighlight(){return DocumentHighlight},get DocumentHighlightKind(){return DocumentHighlightKind},get DocumentLink(){return DocumentLink},get DocumentSymbol(){return DocumentSymbol},get DocumentUri(){return DocumentUri},EOL,get FoldingRange(){return FoldingRange},get FoldingRangeKind(){return FoldingRangeKind},get FormattingOptions(){return FormattingOptions},get Hover(){return Hover},get InlayHint(){return InlayHint},get InlayHintKind(){return InlayHintKind},get InlayHintLabelPart(){return InlayHintLabelPart},get InlineCompletionContext(){return InlineCompletionContext},get InlineCompletionItem(){return InlineCompletionItem},get InlineCompletionList(){return InlineCompletionList},get InlineCompletionTriggerKind(){return InlineCompletionTriggerKind},get InlineValueContext(){return InlineValueContext},get InlineValueEvaluatableExpression(){return InlineValueEvaluatableExpression},get InlineValueText(){return InlineValueText},get InlineValueVariableLookup(){return InlineValueVariableLookup},get InsertReplaceEdit(){return InsertReplaceEdit},get InsertTextFormat(){return InsertTextFormat},get InsertTextMode(){return InsertTextMode},get Location(){return Location},get LocationLink(){return LocationLink},get MarkedString(){return MarkedString},get MarkupContent(){return MarkupContent},get MarkupKind(){return MarkupKind},get OptionalVersionedTextDocumentIdentifier(){return OptionalVersionedTextDocumentIdentifier},get ParameterInformation(){return ParameterInformation},get Position(){return Position},get Range(){return Range},get RenameFile(){return RenameFile},get SelectedCompletionInfo(){return SelectedCompletionInfo},get SelectionRange(){return SelectionRange},get SemanticTokenModifiers(){return SemanticTokenModifiers},get SemanticTokenTypes(){return SemanticTokenTypes},get SemanticTokens(){return SemanticTokens},get SignatureInformation(){return SignatureInformation},get StringValue(){return StringValue},get SymbolInformation(){return SymbolInformation},get SymbolKind(){return SymbolKind},get SymbolTag(){return SymbolTag},get TextDocument(){return TextDocument},get TextDocumentEdit(){return TextDocumentEdit},get TextDocumentIdentifier(){return TextDocumentIdentifier},get TextDocumentItem(){return TextDocumentItem},get TextEdit(){return TextEdit},get URI(){return URI},get VersionedTextDocumentIdentifier(){return VersionedTextDocumentIdentifier},WorkspaceChange,get WorkspaceEdit(){return WorkspaceEdit},get WorkspaceFolder(){return WorkspaceFolder},get WorkspaceSymbol(){return WorkspaceSymbol},get integer(){return integer},get uinteger(){return uinteger}},Symbol.toStringTag,{value:"Module"})),require$$1=getAugmentedNamespace(main);var messages={},hasRequiredMessages;function requireMessages(){if(hasRequiredMessages)return messages;hasRequiredMessages=1,Object.defineProperty(messages,"__esModule",{value:!0}),messages.ProtocolNotificationType=messages.ProtocolNotificationType0=messages.ProtocolRequestType=messages.ProtocolRequestType0=messages.RegistrationType=messages.MessageDirection=void 0;const r=requireMain$1();var e;(function(l){l.clientToServer="clientToServer",l.serverToClient="serverToClient",l.both="both"})(e||(messages.MessageDirection=e={}));class n{constructor(c){this.method=c}}messages.RegistrationType=n;class A extends r.RequestType0{constructor(c){super(c)}}messages.ProtocolRequestType0=A;class o extends r.RequestType{constructor(c){super(c,r.ParameterStructures.byName)}}messages.ProtocolRequestType=o;class s extends r.NotificationType0{constructor(c){super(c)}}messages.ProtocolNotificationType0=s;class a extends r.NotificationType{constructor(c){super(c,r.ParameterStructures.byName)}}return messages.ProtocolNotificationType=a,messages}var protocol={},is={},hasRequiredIs;function requireIs(){if(hasRequiredIs)return is;hasRequiredIs=1,Object.defineProperty(is,"__esModule",{value:!0}),is.objectLiteral=is.typedArray=is.stringArray=is.array=is.func=is.error=is.number=is.string=is.boolean=void 0;function r(g){return g===!0||g===!1}is.boolean=r;function e(g){return typeof g=="string"||g instanceof String}is.string=e;function n(g){return typeof g=="number"||g instanceof Number}is.number=n;function A(g){return g instanceof Error}is.error=A;function o(g){return typeof g=="function"}is.func=o;function s(g){return Array.isArray(g)}is.array=s;function a(g){return s(g)&&g.every(h=>e(h))}is.stringArray=a;function l(g,h){return Array.isArray(g)&&g.every(h)}is.typedArray=l;function c(g){return g!==null&&typeof g=="object"}return is.objectLiteral=c,is}var protocol_implementation={},hasRequiredProtocol_implementation;function requireProtocol_implementation(){if(hasRequiredProtocol_implementation)return protocol_implementation;hasRequiredProtocol_implementation=1,Object.defineProperty(protocol_implementation,"__esModule",{value:!0}),protocol_implementation.ImplementationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/implementation",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_implementation.ImplementationRequest=e={})),protocol_implementation}var protocol_typeDefinition={},hasRequiredProtocol_typeDefinition;function requireProtocol_typeDefinition(){if(hasRequiredProtocol_typeDefinition)return protocol_typeDefinition;hasRequiredProtocol_typeDefinition=1,Object.defineProperty(protocol_typeDefinition,"__esModule",{value:!0}),protocol_typeDefinition.TypeDefinitionRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/typeDefinition",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_typeDefinition.TypeDefinitionRequest=e={})),protocol_typeDefinition}var protocol_workspaceFolder={},hasRequiredProtocol_workspaceFolder;function requireProtocol_workspaceFolder(){if(hasRequiredProtocol_workspaceFolder)return protocol_workspaceFolder;hasRequiredProtocol_workspaceFolder=1,Object.defineProperty(protocol_workspaceFolder,"__esModule",{value:!0}),protocol_workspaceFolder.DidChangeWorkspaceFoldersNotification=protocol_workspaceFolder.WorkspaceFoldersRequest=void 0;const r=requireMessages();var e;(function(A){A.method="workspace/workspaceFolders",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(e||(protocol_workspaceFolder.WorkspaceFoldersRequest=e={}));var n;return(function(A){A.method="workspace/didChangeWorkspaceFolders",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolNotificationType(A.method)})(n||(protocol_workspaceFolder.DidChangeWorkspaceFoldersNotification=n={})),protocol_workspaceFolder}var protocol_configuration={},hasRequiredProtocol_configuration;function requireProtocol_configuration(){if(hasRequiredProtocol_configuration)return protocol_configuration;hasRequiredProtocol_configuration=1,Object.defineProperty(protocol_configuration,"__esModule",{value:!0}),protocol_configuration.ConfigurationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="workspace/configuration",n.messageDirection=r.MessageDirection.serverToClient,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_configuration.ConfigurationRequest=e={})),protocol_configuration}var protocol_colorProvider={},hasRequiredProtocol_colorProvider;function requireProtocol_colorProvider(){if(hasRequiredProtocol_colorProvider)return protocol_colorProvider;hasRequiredProtocol_colorProvider=1,Object.defineProperty(protocol_colorProvider,"__esModule",{value:!0}),protocol_colorProvider.ColorPresentationRequest=protocol_colorProvider.DocumentColorRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/documentColor",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_colorProvider.DocumentColorRequest=e={}));var n;return(function(A){A.method="textDocument/colorPresentation",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(n||(protocol_colorProvider.ColorPresentationRequest=n={})),protocol_colorProvider}var protocol_foldingRange={},hasRequiredProtocol_foldingRange;function requireProtocol_foldingRange(){if(hasRequiredProtocol_foldingRange)return protocol_foldingRange;hasRequiredProtocol_foldingRange=1,Object.defineProperty(protocol_foldingRange,"__esModule",{value:!0}),protocol_foldingRange.FoldingRangeRefreshRequest=protocol_foldingRange.FoldingRangeRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/foldingRange",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_foldingRange.FoldingRangeRequest=e={}));var n;return(function(A){A.method="workspace/foldingRange/refresh",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(n||(protocol_foldingRange.FoldingRangeRefreshRequest=n={})),protocol_foldingRange}var protocol_declaration={},hasRequiredProtocol_declaration;function requireProtocol_declaration(){if(hasRequiredProtocol_declaration)return protocol_declaration;hasRequiredProtocol_declaration=1,Object.defineProperty(protocol_declaration,"__esModule",{value:!0}),protocol_declaration.DeclarationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/declaration",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_declaration.DeclarationRequest=e={})),protocol_declaration}var protocol_selectionRange={},hasRequiredProtocol_selectionRange;function requireProtocol_selectionRange(){if(hasRequiredProtocol_selectionRange)return protocol_selectionRange;hasRequiredProtocol_selectionRange=1,Object.defineProperty(protocol_selectionRange,"__esModule",{value:!0}),protocol_selectionRange.SelectionRangeRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/selectionRange",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_selectionRange.SelectionRangeRequest=e={})),protocol_selectionRange}var protocol_progress={},hasRequiredProtocol_progress;function requireProtocol_progress(){if(hasRequiredProtocol_progress)return protocol_progress;hasRequiredProtocol_progress=1,Object.defineProperty(protocol_progress,"__esModule",{value:!0}),protocol_progress.WorkDoneProgressCancelNotification=protocol_progress.WorkDoneProgressCreateRequest=protocol_progress.WorkDoneProgress=void 0;const r=requireMain$1(),e=requireMessages();var n;(function(s){s.type=new r.ProgressType;function a(l){return l===s.type}s.is=a})(n||(protocol_progress.WorkDoneProgress=n={}));var A;(function(s){s.method="window/workDoneProgress/create",s.messageDirection=e.MessageDirection.serverToClient,s.type=new e.ProtocolRequestType(s.method)})(A||(protocol_progress.WorkDoneProgressCreateRequest=A={}));var o;return(function(s){s.method="window/workDoneProgress/cancel",s.messageDirection=e.MessageDirection.clientToServer,s.type=new e.ProtocolNotificationType(s.method)})(o||(protocol_progress.WorkDoneProgressCancelNotification=o={})),protocol_progress}var protocol_callHierarchy={},hasRequiredProtocol_callHierarchy;function requireProtocol_callHierarchy(){if(hasRequiredProtocol_callHierarchy)return protocol_callHierarchy;hasRequiredProtocol_callHierarchy=1,Object.defineProperty(protocol_callHierarchy,"__esModule",{value:!0}),protocol_callHierarchy.CallHierarchyOutgoingCallsRequest=protocol_callHierarchy.CallHierarchyIncomingCallsRequest=protocol_callHierarchy.CallHierarchyPrepareRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/prepareCallHierarchy",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_callHierarchy.CallHierarchyPrepareRequest=e={}));var n;(function(o){o.method="callHierarchy/incomingCalls",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_callHierarchy.CallHierarchyIncomingCallsRequest=n={}));var A;return(function(o){o.method="callHierarchy/outgoingCalls",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_callHierarchy.CallHierarchyOutgoingCallsRequest=A={})),protocol_callHierarchy}var protocol_semanticTokens={},hasRequiredProtocol_semanticTokens;function requireProtocol_semanticTokens(){if(hasRequiredProtocol_semanticTokens)return protocol_semanticTokens;hasRequiredProtocol_semanticTokens=1,Object.defineProperty(protocol_semanticTokens,"__esModule",{value:!0}),protocol_semanticTokens.SemanticTokensRefreshRequest=protocol_semanticTokens.SemanticTokensRangeRequest=protocol_semanticTokens.SemanticTokensDeltaRequest=protocol_semanticTokens.SemanticTokensRequest=protocol_semanticTokens.SemanticTokensRegistrationType=protocol_semanticTokens.TokenFormat=void 0;const r=requireMessages();var e;(function(l){l.Relative="relative"})(e||(protocol_semanticTokens.TokenFormat=e={}));var n;(function(l){l.method="textDocument/semanticTokens",l.type=new r.RegistrationType(l.method)})(n||(protocol_semanticTokens.SemanticTokensRegistrationType=n={}));var A;(function(l){l.method="textDocument/semanticTokens/full",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(A||(protocol_semanticTokens.SemanticTokensRequest=A={}));var o;(function(l){l.method="textDocument/semanticTokens/full/delta",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(o||(protocol_semanticTokens.SemanticTokensDeltaRequest=o={}));var s;(function(l){l.method="textDocument/semanticTokens/range",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(s||(protocol_semanticTokens.SemanticTokensRangeRequest=s={}));var a;return(function(l){l.method="workspace/semanticTokens/refresh",l.messageDirection=r.MessageDirection.serverToClient,l.type=new r.ProtocolRequestType0(l.method)})(a||(protocol_semanticTokens.SemanticTokensRefreshRequest=a={})),protocol_semanticTokens}var protocol_showDocument={},hasRequiredProtocol_showDocument;function requireProtocol_showDocument(){if(hasRequiredProtocol_showDocument)return protocol_showDocument;hasRequiredProtocol_showDocument=1,Object.defineProperty(protocol_showDocument,"__esModule",{value:!0}),protocol_showDocument.ShowDocumentRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="window/showDocument",n.messageDirection=r.MessageDirection.serverToClient,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_showDocument.ShowDocumentRequest=e={})),protocol_showDocument}var protocol_linkedEditingRange={},hasRequiredProtocol_linkedEditingRange;function requireProtocol_linkedEditingRange(){if(hasRequiredProtocol_linkedEditingRange)return protocol_linkedEditingRange;hasRequiredProtocol_linkedEditingRange=1,Object.defineProperty(protocol_linkedEditingRange,"__esModule",{value:!0}),protocol_linkedEditingRange.LinkedEditingRangeRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/linkedEditingRange",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_linkedEditingRange.LinkedEditingRangeRequest=e={})),protocol_linkedEditingRange}var protocol_fileOperations={},hasRequiredProtocol_fileOperations;function requireProtocol_fileOperations(){if(hasRequiredProtocol_fileOperations)return protocol_fileOperations;hasRequiredProtocol_fileOperations=1,Object.defineProperty(protocol_fileOperations,"__esModule",{value:!0}),protocol_fileOperations.WillDeleteFilesRequest=protocol_fileOperations.DidDeleteFilesNotification=protocol_fileOperations.DidRenameFilesNotification=protocol_fileOperations.WillRenameFilesRequest=protocol_fileOperations.DidCreateFilesNotification=protocol_fileOperations.WillCreateFilesRequest=protocol_fileOperations.FileOperationPatternKind=void 0;const r=requireMessages();var e;(function(c){c.file="file",c.folder="folder"})(e||(protocol_fileOperations.FileOperationPatternKind=e={}));var n;(function(c){c.method="workspace/willCreateFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(n||(protocol_fileOperations.WillCreateFilesRequest=n={}));var A;(function(c){c.method="workspace/didCreateFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(A||(protocol_fileOperations.DidCreateFilesNotification=A={}));var o;(function(c){c.method="workspace/willRenameFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(o||(protocol_fileOperations.WillRenameFilesRequest=o={}));var s;(function(c){c.method="workspace/didRenameFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(s||(protocol_fileOperations.DidRenameFilesNotification=s={}));var a;(function(c){c.method="workspace/didDeleteFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(a||(protocol_fileOperations.DidDeleteFilesNotification=a={}));var l;return(function(c){c.method="workspace/willDeleteFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(l||(protocol_fileOperations.WillDeleteFilesRequest=l={})),protocol_fileOperations}var protocol_moniker={},hasRequiredProtocol_moniker;function requireProtocol_moniker(){if(hasRequiredProtocol_moniker)return protocol_moniker;hasRequiredProtocol_moniker=1,Object.defineProperty(protocol_moniker,"__esModule",{value:!0}),protocol_moniker.MonikerRequest=protocol_moniker.MonikerKind=protocol_moniker.UniquenessLevel=void 0;const r=requireMessages();var e;(function(o){o.document="document",o.project="project",o.group="group",o.scheme="scheme",o.global="global"})(e||(protocol_moniker.UniquenessLevel=e={}));var n;(function(o){o.$import="import",o.$export="export",o.local="local"})(n||(protocol_moniker.MonikerKind=n={}));var A;return(function(o){o.method="textDocument/moniker",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_moniker.MonikerRequest=A={})),protocol_moniker}var protocol_typeHierarchy={},hasRequiredProtocol_typeHierarchy;function requireProtocol_typeHierarchy(){if(hasRequiredProtocol_typeHierarchy)return protocol_typeHierarchy;hasRequiredProtocol_typeHierarchy=1,Object.defineProperty(protocol_typeHierarchy,"__esModule",{value:!0}),protocol_typeHierarchy.TypeHierarchySubtypesRequest=protocol_typeHierarchy.TypeHierarchySupertypesRequest=protocol_typeHierarchy.TypeHierarchyPrepareRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/prepareTypeHierarchy",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_typeHierarchy.TypeHierarchyPrepareRequest=e={}));var n;(function(o){o.method="typeHierarchy/supertypes",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_typeHierarchy.TypeHierarchySupertypesRequest=n={}));var A;return(function(o){o.method="typeHierarchy/subtypes",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_typeHierarchy.TypeHierarchySubtypesRequest=A={})),protocol_typeHierarchy}var protocol_inlineValue={},hasRequiredProtocol_inlineValue;function requireProtocol_inlineValue(){if(hasRequiredProtocol_inlineValue)return protocol_inlineValue;hasRequiredProtocol_inlineValue=1,Object.defineProperty(protocol_inlineValue,"__esModule",{value:!0}),protocol_inlineValue.InlineValueRefreshRequest=protocol_inlineValue.InlineValueRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/inlineValue",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_inlineValue.InlineValueRequest=e={}));var n;return(function(A){A.method="workspace/inlineValue/refresh",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(n||(protocol_inlineValue.InlineValueRefreshRequest=n={})),protocol_inlineValue}var protocol_inlayHint={},hasRequiredProtocol_inlayHint;function requireProtocol_inlayHint(){if(hasRequiredProtocol_inlayHint)return protocol_inlayHint;hasRequiredProtocol_inlayHint=1,Object.defineProperty(protocol_inlayHint,"__esModule",{value:!0}),protocol_inlayHint.InlayHintRefreshRequest=protocol_inlayHint.InlayHintResolveRequest=protocol_inlayHint.InlayHintRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/inlayHint",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_inlayHint.InlayHintRequest=e={}));var n;(function(o){o.method="inlayHint/resolve",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_inlayHint.InlayHintResolveRequest=n={}));var A;return(function(o){o.method="workspace/inlayHint/refresh",o.messageDirection=r.MessageDirection.serverToClient,o.type=new r.ProtocolRequestType0(o.method)})(A||(protocol_inlayHint.InlayHintRefreshRequest=A={})),protocol_inlayHint}var protocol_diagnostic={},hasRequiredProtocol_diagnostic;function requireProtocol_diagnostic(){if(hasRequiredProtocol_diagnostic)return protocol_diagnostic;hasRequiredProtocol_diagnostic=1,Object.defineProperty(protocol_diagnostic,"__esModule",{value:!0}),protocol_diagnostic.DiagnosticRefreshRequest=protocol_diagnostic.WorkspaceDiagnosticRequest=protocol_diagnostic.DocumentDiagnosticRequest=protocol_diagnostic.DocumentDiagnosticReportKind=protocol_diagnostic.DiagnosticServerCancellationData=void 0;const r=requireMain$1(),e=requireIs(),n=requireMessages();var A;(function(c){function g(h){const d=h;return d&&e.boolean(d.retriggerRequest)}c.is=g})(A||(protocol_diagnostic.DiagnosticServerCancellationData=A={}));var o;(function(c){c.Full="full",c.Unchanged="unchanged"})(o||(protocol_diagnostic.DocumentDiagnosticReportKind=o={}));var s;(function(c){c.method="textDocument/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new r.ProgressType})(s||(protocol_diagnostic.DocumentDiagnosticRequest=s={}));var a;(function(c){c.method="workspace/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new r.ProgressType})(a||(protocol_diagnostic.WorkspaceDiagnosticRequest=a={}));var l;return(function(c){c.method="workspace/diagnostic/refresh",c.messageDirection=n.MessageDirection.serverToClient,c.type=new n.ProtocolRequestType0(c.method)})(l||(protocol_diagnostic.DiagnosticRefreshRequest=l={})),protocol_diagnostic}var protocol_notebook={},hasRequiredProtocol_notebook;function requireProtocol_notebook(){if(hasRequiredProtocol_notebook)return protocol_notebook;hasRequiredProtocol_notebook=1,Object.defineProperty(protocol_notebook,"__esModule",{value:!0}),protocol_notebook.DidCloseNotebookDocumentNotification=protocol_notebook.DidSaveNotebookDocumentNotification=protocol_notebook.DidChangeNotebookDocumentNotification=protocol_notebook.NotebookCellArrayChange=protocol_notebook.DidOpenNotebookDocumentNotification=protocol_notebook.NotebookDocumentSyncRegistrationType=protocol_notebook.NotebookDocument=protocol_notebook.NotebookCell=protocol_notebook.ExecutionSummary=protocol_notebook.NotebookCellKind=void 0;const r=require$$1,e=requireIs(),n=requireMessages();var A;(function(f){f.Markup=1,f.Code=2;function I(p){return p===1||p===2}f.is=I})(A||(protocol_notebook.NotebookCellKind=A={}));var o;(function(f){function I(E,B){const Q={executionOrder:E};return(B===!0||B===!1)&&(Q.success=B),Q}f.create=I;function p(E){const B=E;return e.objectLiteral(B)&&r.uinteger.is(B.executionOrder)&&(B.success===void 0||e.boolean(B.success))}f.is=p;function m(E,B){return E===B?!0:E==null||B===null||B===void 0?!1:E.executionOrder===B.executionOrder&&E.success===B.success}f.equals=m})(o||(protocol_notebook.ExecutionSummary=o={}));var s;(function(f){function I(B,Q){return{kind:B,document:Q}}f.create=I;function p(B){const Q=B;return e.objectLiteral(Q)&&A.is(Q.kind)&&r.DocumentUri.is(Q.document)&&(Q.metadata===void 0||e.objectLiteral(Q.metadata))}f.is=p;function m(B,Q){const S=new Set;return B.document!==Q.document&&S.add("document"),B.kind!==Q.kind&&S.add("kind"),B.executionSummary!==Q.executionSummary&&S.add("executionSummary"),(B.metadata!==void 0||Q.metadata!==void 0)&&!E(B.metadata,Q.metadata)&&S.add("metadata"),(B.executionSummary!==void 0||Q.executionSummary!==void 0)&&!o.equals(B.executionSummary,Q.executionSummary)&&S.add("executionSummary"),S}f.diff=m;function E(B,Q){if(B===Q)return!0;if(B==null||Q===null||Q===void 0||typeof B!=typeof Q||typeof B!="object")return!1;const S=Array.isArray(B),w=Array.isArray(Q);if(S!==w)return!1;if(S&&w){if(B.length!==Q.length)return!1;for(let y=0;y<B.length;y++)if(!E(B[y],Q[y]))return!1}if(e.objectLiteral(B)&&e.objectLiteral(Q)){const y=Object.keys(B),D=Object.keys(Q);if(y.length!==D.length||(y.sort(),D.sort(),!E(y,D)))return!1;for(let _=0;_<y.length;_++){const M=y[_];if(!E(B[M],Q[M]))return!1}}return!0}})(s||(protocol_notebook.NotebookCell=s={}));var a;(function(f){function I(m,E,B,Q){return{uri:m,notebookType:E,version:B,cells:Q}}f.create=I;function p(m){const E=m;return e.objectLiteral(E)&&e.string(E.uri)&&r.integer.is(E.version)&&e.typedArray(E.cells,s.is)}f.is=p})(a||(protocol_notebook.NotebookDocument=a={}));var l;(function(f){f.method="notebookDocument/sync",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.RegistrationType(f.method)})(l||(protocol_notebook.NotebookDocumentSyncRegistrationType=l={}));var c;(function(f){f.method="notebookDocument/didOpen",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(c||(protocol_notebook.DidOpenNotebookDocumentNotification=c={}));var g;(function(f){function I(m){const E=m;return e.objectLiteral(E)&&r.uinteger.is(E.start)&&r.uinteger.is(E.deleteCount)&&(E.cells===void 0||e.typedArray(E.cells,s.is))}f.is=I;function p(m,E,B){const Q={start:m,deleteCount:E};return B!==void 0&&(Q.cells=B),Q}f.create=p})(g||(protocol_notebook.NotebookCellArrayChange=g={}));var h;(function(f){f.method="notebookDocument/didChange",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(h||(protocol_notebook.DidChangeNotebookDocumentNotification=h={}));var d;(function(f){f.method="notebookDocument/didSave",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(d||(protocol_notebook.DidSaveNotebookDocumentNotification=d={}));var u;return(function(f){f.method="notebookDocument/didClose",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(u||(protocol_notebook.DidCloseNotebookDocumentNotification=u={})),protocol_notebook}var protocol_inlineCompletion={},hasRequiredProtocol_inlineCompletion;function requireProtocol_inlineCompletion(){if(hasRequiredProtocol_inlineCompletion)return protocol_inlineCompletion;hasRequiredProtocol_inlineCompletion=1,Object.defineProperty(protocol_inlineCompletion,"__esModule",{value:!0}),protocol_inlineCompletion.InlineCompletionRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/inlineCompletion",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_inlineCompletion.InlineCompletionRequest=e={})),protocol_inlineCompletion}var hasRequiredProtocol;function requireProtocol(){return hasRequiredProtocol||(hasRequiredProtocol=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.WorkspaceSymbolRequest=r.CodeActionResolveRequest=r.CodeActionRequest=r.DocumentSymbolRequest=r.DocumentHighlightRequest=r.ReferencesRequest=r.DefinitionRequest=r.SignatureHelpRequest=r.SignatureHelpTriggerKind=r.HoverRequest=r.CompletionResolveRequest=r.CompletionRequest=r.CompletionTriggerKind=r.PublishDiagnosticsNotification=r.WatchKind=r.RelativePattern=r.FileChangeType=r.DidChangeWatchedFilesNotification=r.WillSaveTextDocumentWaitUntilRequest=r.WillSaveTextDocumentNotification=r.TextDocumentSaveReason=r.DidSaveTextDocumentNotification=r.DidCloseTextDocumentNotification=r.DidChangeTextDocumentNotification=r.TextDocumentContentChangeEvent=r.DidOpenTextDocumentNotification=r.TextDocumentSyncKind=r.TelemetryEventNotification=r.LogMessageNotification=r.ShowMessageRequest=r.ShowMessageNotification=r.MessageType=r.DidChangeConfigurationNotification=r.ExitNotification=r.ShutdownRequest=r.InitializedNotification=r.InitializeErrorCodes=r.InitializeRequest=r.WorkDoneProgressOptions=r.TextDocumentRegistrationOptions=r.StaticRegistrationOptions=r.PositionEncodingKind=r.FailureHandlingKind=r.ResourceOperationKind=r.UnregistrationRequest=r.RegistrationRequest=r.DocumentSelector=r.NotebookCellTextDocumentFilter=r.NotebookDocumentFilter=r.TextDocumentFilter=void 0,r.MonikerRequest=r.MonikerKind=r.UniquenessLevel=r.WillDeleteFilesRequest=r.DidDeleteFilesNotification=r.WillRenameFilesRequest=r.DidRenameFilesNotification=r.WillCreateFilesRequest=r.DidCreateFilesNotification=r.FileOperationPatternKind=r.LinkedEditingRangeRequest=r.ShowDocumentRequest=r.SemanticTokensRegistrationType=r.SemanticTokensRefreshRequest=r.SemanticTokensRangeRequest=r.SemanticTokensDeltaRequest=r.SemanticTokensRequest=r.TokenFormat=r.CallHierarchyPrepareRequest=r.CallHierarchyOutgoingCallsRequest=r.CallHierarchyIncomingCallsRequest=r.WorkDoneProgressCancelNotification=r.WorkDoneProgressCreateRequest=r.WorkDoneProgress=r.SelectionRangeRequest=r.DeclarationRequest=r.FoldingRangeRefreshRequest=r.FoldingRangeRequest=r.ColorPresentationRequest=r.DocumentColorRequest=r.ConfigurationRequest=r.DidChangeWorkspaceFoldersNotification=r.WorkspaceFoldersRequest=r.TypeDefinitionRequest=r.ImplementationRequest=r.ApplyWorkspaceEditRequest=r.ExecuteCommandRequest=r.PrepareRenameRequest=r.RenameRequest=r.PrepareSupportDefaultBehavior=r.DocumentOnTypeFormattingRequest=r.DocumentRangesFormattingRequest=r.DocumentRangeFormattingRequest=r.DocumentFormattingRequest=r.DocumentLinkResolveRequest=r.DocumentLinkRequest=r.CodeLensRefreshRequest=r.CodeLensResolveRequest=r.CodeLensRequest=r.WorkspaceSymbolResolveRequest=void 0,r.InlineCompletionRequest=r.DidCloseNotebookDocumentNotification=r.DidSaveNotebookDocumentNotification=r.DidChangeNotebookDocumentNotification=r.NotebookCellArrayChange=r.DidOpenNotebookDocumentNotification=r.NotebookDocumentSyncRegistrationType=r.NotebookDocument=r.NotebookCell=r.ExecutionSummary=r.NotebookCellKind=r.DiagnosticRefreshRequest=r.WorkspaceDiagnosticRequest=r.DocumentDiagnosticRequest=r.DocumentDiagnosticReportKind=r.DiagnosticServerCancellationData=r.InlayHintRefreshRequest=r.InlayHintResolveRequest=r.InlayHintRequest=r.InlineValueRefreshRequest=r.InlineValueRequest=r.TypeHierarchySupertypesRequest=r.TypeHierarchySubtypesRequest=r.TypeHierarchyPrepareRequest=void 0;const e=requireMessages(),n=require$$1,A=requireIs(),o=requireProtocol_implementation();Object.defineProperty(r,"ImplementationRequest",{enumerable:!0,get:function(){return o.ImplementationRequest}});const s=requireProtocol_typeDefinition();Object.defineProperty(r,"TypeDefinitionRequest",{enumerable:!0,get:function(){return s.TypeDefinitionRequest}});const a=requireProtocol_workspaceFolder();Object.defineProperty(r,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return a.WorkspaceFoldersRequest}}),Object.defineProperty(r,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return a.DidChangeWorkspaceFoldersNotification}});const l=requireProtocol_configuration();Object.defineProperty(r,"ConfigurationRequest",{enumerable:!0,get:function(){return l.ConfigurationRequest}});const c=requireProtocol_colorProvider();Object.defineProperty(r,"DocumentColorRequest",{enumerable:!0,get:function(){return c.DocumentColorRequest}}),Object.defineProperty(r,"ColorPresentationRequest",{enumerable:!0,get:function(){return c.ColorPresentationRequest}});const g=requireProtocol_foldingRange();Object.defineProperty(r,"FoldingRangeRequest",{enumerable:!0,get:function(){return g.FoldingRangeRequest}}),Object.defineProperty(r,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return g.FoldingRangeRefreshRequest}});const h=requireProtocol_declaration();Object.defineProperty(r,"DeclarationRequest",{enumerable:!0,get:function(){return h.DeclarationRequest}});const d=requireProtocol_selectionRange();Object.defineProperty(r,"SelectionRangeRequest",{enumerable:!0,get:function(){return d.SelectionRangeRequest}});const u=requireProtocol_progress();Object.defineProperty(r,"WorkDoneProgress",{enumerable:!0,get:function(){return u.WorkDoneProgress}}),Object.defineProperty(r,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return u.WorkDoneProgressCreateRequest}}),Object.defineProperty(r,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return u.WorkDoneProgressCancelNotification}});const f=requireProtocol_callHierarchy();Object.defineProperty(r,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return f.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(r,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return f.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(r,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return f.CallHierarchyPrepareRequest}});const I=requireProtocol_semanticTokens();Object.defineProperty(r,"TokenFormat",{enumerable:!0,get:function(){return I.TokenFormat}}),Object.defineProperty(r,"SemanticTokensRequest",{enumerable:!0,get:function(){return I.SemanticTokensRequest}}),Object.defineProperty(r,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return I.SemanticTokensDeltaRequest}}),Object.defineProperty(r,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return I.SemanticTokensRangeRequest}}),Object.defineProperty(r,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return I.SemanticTokensRefreshRequest}}),Object.defineProperty(r,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return I.SemanticTokensRegistrationType}});const p=requireProtocol_showDocument();Object.defineProperty(r,"ShowDocumentRequest",{enumerable:!0,get:function(){return p.ShowDocumentRequest}});const m=requireProtocol_linkedEditingRange();Object.defineProperty(r,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return m.LinkedEditingRangeRequest}});const E=requireProtocol_fileOperations();Object.defineProperty(r,"FileOperationPatternKind",{enumerable:!0,get:function(){return E.FileOperationPatternKind}}),Object.defineProperty(r,"DidCreateFilesNotification",{enumerable:!0,get:function(){return E.DidCreateFilesNotification}}),Object.defineProperty(r,"WillCreateFilesRequest",{enumerable:!0,get:function(){return E.WillCreateFilesRequest}}),Object.defineProperty(r,"DidRenameFilesNotification",{enumerable:!0,get:function(){return E.DidRenameFilesNotification}}),Object.defineProperty(r,"WillRenameFilesRequest",{enumerable:!0,get:function(){return E.WillRenameFilesRequest}}),Object.defineProperty(r,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return E.DidDeleteFilesNotification}}),Object.defineProperty(r,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return E.WillDeleteFilesRequest}});const B=requireProtocol_moniker();Object.defineProperty(r,"UniquenessLevel",{enumerable:!0,get:function(){return B.UniquenessLevel}}),Object.defineProperty(r,"MonikerKind",{enumerable:!0,get:function(){return B.MonikerKind}}),Object.defineProperty(r,"MonikerRequest",{enumerable:!0,get:function(){return B.MonikerRequest}});const Q=requireProtocol_typeHierarchy();Object.defineProperty(r,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Q.TypeHierarchyPrepareRequest}}),Object.defineProperty(r,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Q.TypeHierarchySubtypesRequest}}),Object.defineProperty(r,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Q.TypeHierarchySupertypesRequest}});const S=requireProtocol_inlineValue();Object.defineProperty(r,"InlineValueRequest",{enumerable:!0,get:function(){return S.InlineValueRequest}}),Object.defineProperty(r,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return S.InlineValueRefreshRequest}});const w=requireProtocol_inlayHint();Object.defineProperty(r,"InlayHintRequest",{enumerable:!0,get:function(){return w.InlayHintRequest}}),Object.defineProperty(r,"InlayHintResolveRequest",{enumerable:!0,get:function(){return w.InlayHintResolveRequest}}),Object.defineProperty(r,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return w.InlayHintRefreshRequest}});const y=requireProtocol_diagnostic();Object.defineProperty(r,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return y.DiagnosticServerCancellationData}}),Object.defineProperty(r,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return y.DocumentDiagnosticReportKind}}),Object.defineProperty(r,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return y.DocumentDiagnosticRequest}}),Object.defineProperty(r,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return y.WorkspaceDiagnosticRequest}}),Object.defineProperty(r,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return y.DiagnosticRefreshRequest}});const D=requireProtocol_notebook();Object.defineProperty(r,"NotebookCellKind",{enumerable:!0,get:function(){return D.NotebookCellKind}}),Object.defineProperty(r,"ExecutionSummary",{enumerable:!0,get:function(){return D.ExecutionSummary}}),Object.defineProperty(r,"NotebookCell",{enumerable:!0,get:function(){return D.NotebookCell}}),Object.defineProperty(r,"NotebookDocument",{enumerable:!0,get:function(){return D.NotebookDocument}}),Object.defineProperty(r,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return D.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(r,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidOpenNotebookDocumentNotification}}),Object.defineProperty(r,"NotebookCellArrayChange",{enumerable:!0,get:function(){return D.NotebookCellArrayChange}}),Object.defineProperty(r,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidChangeNotebookDocumentNotification}}),Object.defineProperty(r,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidSaveNotebookDocumentNotification}}),Object.defineProperty(r,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidCloseNotebookDocumentNotification}});const _=requireProtocol_inlineCompletion();Object.defineProperty(r,"InlineCompletionRequest",{enumerable:!0,get:function(){return _.InlineCompletionRequest}});var M;(function(k){function te(ne){const J=ne;return A.string(J)||A.string(J.language)||A.string(J.scheme)||A.string(J.pattern)}k.is=te})(M||(r.TextDocumentFilter=M={}));var R;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(A.string(J.notebookType)||A.string(J.scheme)||A.string(J.pattern))}k.is=te})(R||(r.NotebookDocumentFilter=R={}));var F;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(A.string(J.notebook)||R.is(J.notebook))&&(J.language===void 0||A.string(J.language))}k.is=te})(F||(r.NotebookCellTextDocumentFilter=F={}));var v;(function(k){function te(ne){if(!Array.isArray(ne))return!1;for(let J of ne)if(!A.string(J)&&!M.is(J)&&!F.is(J))return!1;return!0}k.is=te})(v||(r.DocumentSelector=v={}));var N;(function(k){k.method="client/registerCapability",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(N||(r.RegistrationRequest=N={}));var L;(function(k){k.method="client/unregisterCapability",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(L||(r.UnregistrationRequest=L={}));var G;(function(k){k.Create="create",k.Rename="rename",k.Delete="delete"})(G||(r.ResourceOperationKind=G={}));var K;(function(k){k.Abort="abort",k.Transactional="transactional",k.TextOnlyTransactional="textOnlyTransactional",k.Undo="undo"})(K||(r.FailureHandlingKind=K={}));var O;(function(k){k.UTF8="utf-8",k.UTF16="utf-16",k.UTF32="utf-32"})(O||(r.PositionEncodingKind=O={}));var oe;(function(k){function te(ne){const J=ne;return J&&A.string(J.id)&&J.id.length>0}k.hasId=te})(oe||(r.StaticRegistrationOptions=oe={}));var j;(function(k){function te(ne){const J=ne;return J&&(J.documentSelector===null||v.is(J.documentSelector))}k.is=te})(j||(r.TextDocumentRegistrationOptions=j={}));var Ae;(function(k){function te(J){const b=J;return A.objectLiteral(b)&&(b.workDoneProgress===void 0||A.boolean(b.workDoneProgress))}k.is=te;function ne(J){const b=J;return b&&A.boolean(b.workDoneProgress)}k.hasWorkDoneProgress=ne})(Ae||(r.WorkDoneProgressOptions=Ae={}));var z;(function(k){k.method="initialize",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(z||(r.InitializeRequest=z={}));var ee;(function(k){k.unknownProtocolVersion=1})(ee||(r.InitializeErrorCodes=ee={}));var ae;(function(k){k.method="initialized",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ae||(r.InitializedNotification=ae={}));var le;(function(k){k.method="shutdown",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType0(k.method)})(le||(r.ShutdownRequest=le={}));var ge;(function(k){k.method="exit",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType0(k.method)})(ge||(r.ExitNotification=ge={}));var he;(function(k){k.method="workspace/didChangeConfiguration",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(he||(r.DidChangeConfigurationNotification=he={}));var Be;(function(k){k.Error=1,k.Warning=2,k.Info=3,k.Log=4,k.Debug=5})(Be||(r.MessageType=Be={}));var Ce;(function(k){k.method="window/showMessage",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(Ce||(r.ShowMessageNotification=Ce={}));var pe;(function(k){k.method="window/showMessageRequest",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(pe||(r.ShowMessageRequest=pe={}));var De;(function(k){k.method="window/logMessage",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(De||(r.LogMessageNotification=De={}));var de;(function(k){k.method="telemetry/event",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(de||(r.TelemetryEventNotification=de={}));var Y;(function(k){k.None=0,k.Full=1,k.Incremental=2})(Y||(r.TextDocumentSyncKind=Y={}));var me;(function(k){k.method="textDocument/didOpen",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(me||(r.DidOpenTextDocumentNotification=me={}));var X;(function(k){function te(J){let b=J;return b!=null&&typeof b.text=="string"&&b.range!==void 0&&(b.rangeLength===void 0||typeof b.rangeLength=="number")}k.isIncremental=te;function ne(J){let b=J;return b!=null&&typeof b.text=="string"&&b.range===void 0&&b.rangeLength===void 0}k.isFull=ne})(X||(r.TextDocumentContentChangeEvent=X={}));var ue;(function(k){k.method="textDocument/didChange",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ue||(r.DidChangeTextDocumentNotification=ue={}));var be;(function(k){k.method="textDocument/didClose",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(be||(r.DidCloseTextDocumentNotification=be={}));var Ne;(function(k){k.method="textDocument/didSave",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(Ne||(r.DidSaveTextDocumentNotification=Ne={}));var ve;(function(k){k.Manual=1,k.AfterDelay=2,k.FocusOut=3})(ve||(r.TextDocumentSaveReason=ve={}));var Re;(function(k){k.method="textDocument/willSave",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(Re||(r.WillSaveTextDocumentNotification=Re={}));var Me;(function(k){k.method="textDocument/willSaveWaitUntil",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Me||(r.WillSaveTextDocumentWaitUntilRequest=Me={}));var fe;(function(k){k.method="workspace/didChangeWatchedFiles",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(fe||(r.DidChangeWatchedFilesNotification=fe={}));var Fe;(function(k){k.Created=1,k.Changed=2,k.Deleted=3})(Fe||(r.FileChangeType=Fe={}));var Je;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(n.URI.is(J.baseUri)||n.WorkspaceFolder.is(J.baseUri))&&A.string(J.pattern)}k.is=te})(Je||(r.RelativePattern=Je={}));var He;(function(k){k.Create=1,k.Change=2,k.Delete=4})(He||(r.WatchKind=He={}));var qe;(function(k){k.method="textDocument/publishDiagnostics",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(qe||(r.PublishDiagnosticsNotification=qe={}));var Ye;(function(k){k.Invoked=1,k.TriggerCharacter=2,k.TriggerForIncompleteCompletions=3})(Ye||(r.CompletionTriggerKind=Ye={}));var Te;(function(k){k.method="textDocument/completion",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Te||(r.CompletionRequest=Te={}));var Le;(function(k){k.method="completionItem/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Le||(r.CompletionResolveRequest=Le={}));var Qe;(function(k){k.method="textDocument/hover",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Qe||(r.HoverRequest=Qe={}));var xe;(function(k){k.Invoked=1,k.TriggerCharacter=2,k.ContentChange=3})(xe||(r.SignatureHelpTriggerKind=xe={}));var Ve;(function(k){k.method="textDocument/signatureHelp",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ve||(r.SignatureHelpRequest=Ve={}));var je;(function(k){k.method="textDocument/definition",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(je||(r.DefinitionRequest=je={}));var Ke;(function(k){k.method="textDocument/references",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ke||(r.ReferencesRequest=Ke={}));var Ge;(function(k){k.method="textDocument/documentHighlight",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ge||(r.DocumentHighlightRequest=Ge={}));var $e;(function(k){k.method="textDocument/documentSymbol",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})($e||(r.DocumentSymbolRequest=$e={}));var We;(function(k){k.method="textDocument/codeAction",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(We||(r.CodeActionRequest=We={}));var ze;(function(k){k.method="codeAction/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ze||(r.CodeActionResolveRequest=ze={}));var Xe;(function(k){k.method="workspace/symbol",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Xe||(r.WorkspaceSymbolRequest=Xe={}));var Ze;(function(k){k.method="workspaceSymbol/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ze||(r.WorkspaceSymbolResolveRequest=Ze={}));var et;(function(k){k.method="textDocument/codeLens",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(et||(r.CodeLensRequest=et={}));var Ie;(function(k){k.method="codeLens/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ie||(r.CodeLensResolveRequest=Ie={}));var tt;(function(k){k.method="workspace/codeLens/refresh",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType0(k.method)})(tt||(r.CodeLensRefreshRequest=tt={}));var nt;(function(k){k.method="textDocument/documentLink",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(nt||(r.DocumentLinkRequest=nt={}));var ke;(function(k){k.method="documentLink/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ke||(r.DocumentLinkResolveRequest=ke={}));var it;(function(k){k.method="textDocument/formatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(it||(r.DocumentFormattingRequest=it={}));var _e;(function(k){k.method="textDocument/rangeFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(_e||(r.DocumentRangeFormattingRequest=_e={}));var rt;(function(k){k.method="textDocument/rangesFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(rt||(r.DocumentRangesFormattingRequest=rt={}));var ye;(function(k){k.method="textDocument/onTypeFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ye||(r.DocumentOnTypeFormattingRequest=ye={}));var we;(function(k){k.Identifier=1})(we||(r.PrepareSupportDefaultBehavior=we={}));var At;(function(k){k.method="textDocument/rename",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(At||(r.RenameRequest=At={}));var ot;(function(k){k.method="textDocument/prepareRename",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ot||(r.PrepareRenameRequest=ot={}));var Se;(function(k){k.method="workspace/executeCommand",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Se||(r.ExecuteCommandRequest=Se={}));var Pe;(function(k){k.method="workspace/applyEdit",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType("workspace/applyEdit")})(Pe||(r.ApplyWorkspaceEditRequest=Pe={}))})(protocol)),protocol}var connection={},hasRequiredConnection;function requireConnection(){if(hasRequiredConnection)return connection;hasRequiredConnection=1,Object.defineProperty(connection,"__esModule",{value:!0}),connection.createProtocolConnection=void 0;const r=requireMain$1();function e(n,A,o,s){return r.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,r.createMessageConnection)(n,A,o,s)}return connection.createProtocolConnection=e,connection}var hasRequiredApi;function requireApi(){return hasRequiredApi||(hasRequiredApi=1,(function(r){var e=api&&api.__createBinding||(Object.create?(function(s,a,l,c){c===void 0&&(c=l);var g=Object.getOwnPropertyDescriptor(a,l);(!g||("get"in g?!a.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return a[l]}}),Object.defineProperty(s,c,g)}):(function(s,a,l,c){c===void 0&&(c=l),s[c]=a[l]})),n=api&&api.__exportStar||function(s,a){for(var l in s)l!=="default"&&!Object.prototype.hasOwnProperty.call(a,l)&&e(a,s,l)};Object.defineProperty(r,"__esModule",{value:!0}),r.LSPErrorCodes=r.createProtocolConnection=void 0,n(requireMain$1(),r),n(require$$1,r),n(requireMessages(),r),n(requireProtocol(),r);var A=requireConnection();Object.defineProperty(r,"createProtocolConnection",{enumerable:!0,get:function(){return A.createProtocolConnection}});var o;(function(s){s.lspReservedErrorRangeStart=-32899,s.RequestFailed=-32803,s.ServerCancelled=-32802,s.ContentModified=-32801,s.RequestCancelled=-32800,s.lspReservedErrorRangeEnd=-32800})(o||(r.LSPErrorCodes=o={}))})(api)),api}var hasRequiredMain;function requireMain(){return hasRequiredMain||(hasRequiredMain=1,(function(r){var e=main$2&&main$2.__createBinding||(Object.create?(function(s,a,l,c){c===void 0&&(c=l);var g=Object.getOwnPropertyDescriptor(a,l);(!g||("get"in g?!a.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return a[l]}}),Object.defineProperty(s,c,g)}):(function(s,a,l,c){c===void 0&&(c=l),s[c]=a[l]})),n=main$2&&main$2.__exportStar||function(s,a){for(var l in s)l!=="default"&&!Object.prototype.hasOwnProperty.call(a,l)&&e(a,s,l)};Object.defineProperty(r,"__esModule",{value:!0}),r.createProtocolConnection=void 0;const A=requireBrowser();n(requireBrowser(),r),n(requireApi(),r);function o(s,a,l,c){return(0,A.createMessageConnection)(s,a,l,c)}r.createProtocolConnection=o})(main$2)),main$2}var mainExports=requireMain();function serverCompletion(r={}){let e;if(r.override)e=[autocompletion({override:[serverCompletionSource]})];else{const n=[{autocomplete:serverCompletionSource}];e=[autocompletion(),EditorState.languageData.of(()=>n)]}return r.validFor&&e.push(completionConfig.of({validFor:r.validFor})),e}const completionConfig=Facet.define({combine:r=>r.length?r[0]:{validFor:null}});async function getCompletions(r,e,n,A){const o=r.extensionLsp.getClient(r.lang);if(!o)return[];o.hasCapability("completionProvider"),o.sync();const s={position:r.toPosition(e),textDocument:{uri:r.uri},context:n};return A&&A.addEventListener("abort",()=>o.cancelRequest(s)),await o.request("textDocument/completion",s)}function prefixRegexp(r){let e=Math.ceil(r.length/50),n=[];for(let A=0;A<r.length;A+=e){let o=r[A],s=o.textEdit?.newText||o.textEditText||o.insertText||o.label;if(!/^\w/.test(s)){let a=/^[^\w]*/.exec(s)[0];n.indexOf(a)<0&&n.push(a)}}return n.length?new RegExp("^(?:"+n.map(RegExp.escape||(A=>A.replace(/[^\w\s]/g,"\\$&"))).join("|")+")?\\w*$"):/^\w*$/}const serverCompletionSource=async r=>{const e=r.view&&LSPPlugin.get(r.view);if(!e)return null;let n="";if(!r.explicit){n=r.view.state.sliceDoc(r.pos-1,r.pos);const A=e.extensionLsp.getClient(e.lang);if(!A)return null;const o=A.serverCapabilities?.completionProvider?.triggerCharacters;if(!/[a-zA-Z_]/.test(n)&&!(o&&o.indexOf(n)>-1))return null}try{let A=await getCompletions(e,r.pos,{triggerCharacter:n,triggerKind:r.explicit?mainExports.CompletionTriggerKind.Invoked:mainExports.CompletionTriggerKind.TriggerCharacter},r);if(!A)return null;Array.isArray(A)&&(A={items:A});const{from:o,to:s}=completionResultRange(r,A),a=A.itemDefaults?.commitCharacters,l=r.state.facet(completionConfig),c=A.items.map(g=>{let h=g.textEdit?.newText||g.textEditText||g.insertText||g.label,d={label:h,type:g.kind&&kindToType[g.kind]};return g.commitCharacters&&g.commitCharacters!=a&&(d.commitCharacters=g.commitCharacters),g.detail&&(d.detail=g.detail),g.insertTextFormat==2&&(d.apply=(u,f,I,p)=>snippet(h)(u,f,I,p),d.label=g.label),g.documentation&&(d.info=()=>renderDocInfo(e,g.documentation)),d});return{from:o,to:s,options:c,commitCharacters:a,validFor:l.validFor??prefixRegexp(A.items),map:(g,h)=>({...g,from:h.mapPos(g.from)})}}catch(A){if("code"in A&&A.code==-32800)return null;throw A}};function completionResultRange(r,e){if(!e.items.length)return{from:r.pos,to:r.pos};const n=e.itemDefaults?.editRange,A=e.items[0],o=n?"insert"in n?n.insert:n:A.textEdit?"range"in A.textEdit?A.textEdit.range:A.textEdit.insert:null;if(!o)return r.state.wordAt(r.pos)||{from:r.pos,to:r.pos};const s=r.state.doc.lineAt(r.pos);return{from:s.from+o.start.character,to:s.from+o.end.character}}function renderDocInfo(r,e){let n=document.createElement("div");return n.className="cm-lsp-documentation cm-lsp-completion-documentation",n.innerHTML=r.docToHTML(e),n}const kindToType={1:"text",2:"method",3:"function",4:"class",5:"property",6:"variable",7:"class",8:"interface",9:"namespace",10:"property",11:"keyword",12:"constant",13:"constant",14:"keyword",16:"constant",20:"constant",21:"constant",22:"class",25:"type"};function hoverTooltips(r={}){return hoverTooltip(lspTooltipSource,{hideOn:e=>e.docChanged,hoverTime:r.hoverTime})}function hoverRequest(r,e){const n=r.getClient();return n?.hasCapability("hoverProvider")===!1?Promise.resolve(null):(n?.sync(),n?.request("textDocument/hover",{position:r.toPosition(e),textDocument:{uri:r.uri}}))}function lspTooltipSource(r,e){const n=LSPPlugin.get(r);return n?hoverRequest(n,e).then(A=>A?{pos:A.range?fromPosition(r.state.doc,A.range.start):e,end:A.range?fromPosition(r.state.doc,A.range.end):e,create(){let o=document.createElement("div");return o.className="cm-lsp-hover-tooltip cm-lsp-documentation",o.innerHTML=renderTooltipContent(n,A.contents),{dom:o}},above:!0}:null):Promise.resolve(null)}function renderTooltipContent(r,e){return Array.isArray(e)?e.map(n=>renderCode(r,n)).join("<br>"):typeof e=="string"||typeof e=="object"&&"language"in e?renderCode(r,e):r.docToHTML(e)}function renderCode(r,e){if(typeof e=="string")return r.docToHTML(e,"markdown");let{language:n,value:A}=e;return r.docToHTML(A,"plaintext")}function languageServerExtensions(){return[serverCompletion(),hoverTooltips(),keymap.of([])]}const themeCallbacks=[];class CodeMirrorBlockNodeView{constructor(e,n,A,o,s){this.node=e,this.view=n,this.getPos=A,this.settings=o,this.editor=s,this.uri="file:///"+Math.random()+".ts",this.updating=!1;const a=document.createElement("div");this.dom=a,a.className="codeblock-root",this.languageConf=new Compartment;const l=new Compartment,c=()=>{const I=[],p=new RemoteSyncConfig(()=>this.node,A,s);return I.push(remoteSyncFacet.of(p)),I.push(yRemoteSelectionsTheme,yRemoteSelections),I},g=[EditorState.readOnly.of(!!o.readOnly),EditorView.editable.of(!o.readOnly),lineNumbers(),highlightActiveLineGutter(),foldGutter(),bracketMatching(),closeBrackets(),rectangularSelection(),drawSelection({cursorBlinkRate:1e3}),syntaxHighlighting(defaultHighlightStyle,{fallback:!0}),this.languageConf.of([]),indentOnInput(),keymap.of([{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0},{key:"ArrowUp",run:I=>maybeEscape("line",-1,I,n,A)},{key:"ArrowLeft",run:I=>maybeEscape("char",-1,I,n,A)},{key:"ArrowDown",run:I=>maybeEscape("line",1,I,n,A)},{key:"ArrowRight",run:I=>maybeEscape("char",1,I,n,A)},{key:"Ctrl-Enter",run:()=>s.run.exitCode()?(n.focus(),!0):!1},{key:"Mod-z",run:()=>o.undo?.(n.state,n.dispatch)||!0,shift:()=>o.redo?.(n.state,n.dispatch)||!0},{key:"Mod-y",run:()=>o.redo?.(n.state,n.dispatch)||!0},{key:"Backspace",run:I=>backspaceHandler(n,I,s)},{key:"Mod-Backspace",run:I=>backspaceHandler(n,I,s)},{key:"Mod-a",run:()=>{const I=s.run.selectAll();return n.focus(),I}},...defaultKeymap,...foldKeymap,...closeBracketsKeymap,...completionKeymap,indentWithTab,{key:"Ctrl-`",run:()=>(s.chain().toggleDevToolkit().run(),!0)}]),...o.theme?o.theme:[],l.of([]),c()],h=s.getExtension("lsp");if(h){const I=new LSPExtension({getPos:this.getPos,extensions:languageServerExtensions()});g.push(I.plugin(h,s))}else{const I=[{label:"console.log",type:"function"},{label:"const",type:"keyword"},{label:"let",type:"keyword"},{label:"var",type:"keyword"},{label:"function",type:"keyword"}],p=m=>{let E=m.matchBefore(/\w*/);return!E||E.from==E.to&&!m.explicit?null:{from:E.from,options:I}};g.push(autocompletion({override:[p]}))}const d=EditorState.create({extensions:g,doc:e.textContent}),u=s.view&&"root"in s.view?s.view.root:document||document;this.codeMirrorView=new EditorView({state:d,root:u,dispatch:I=>{if(this.codeMirrorView.update([I]),!this.updating){const p=I.state.toJSON().doc;valueChanged(p,this.node,A,n),forwardSelection(this.codeMirrorView,n,A);const m=LSPPlugin.get(this.codeMirrorView);m&&m.update()}}}),a.append(this.codeMirrorView.dom),Array.isArray(o.languageWhitelist)&&o.languageWhitelist.length===1||(this.selectDeleteCB=o.createSelect(o,a,e,n,A)),this.createCopyButtonCB=o.createCopyButton(o,a,e,n,this.codeMirrorView,A),setMode(e.attrs.lang,this.codeMirrorView,o,this.languageConf);const f=o.getCurrentTheme?.();setTheme(this.codeMirrorView,l,[o.themes.find(I=>I.name===f)]),this.updateTheme=I=>{setTheme(this.codeMirrorView,l,[o.themes.find(p=>p.name===I)])},themeCallbacks.push(this.updateTheme)}updateTheme(e){throw new Error("Method not implemented.")}selectNode(){this.codeMirrorView.focus()}stopEvent(e){return this.settings.stopEvent(e,this.node,this.getPos,this.view,this.dom)}setSelection(e,n){this.codeMirrorView.focus(),this.updating=!0,this.codeMirrorView.dispatch({selection:{anchor:e,head:n}}),this.updating=!1}update(e,n,A){if(A.forEachSet(a=>a.find().map(l=>{})),e.type.name!==this.node.type.name)return!1;e.attrs.lang!==this.node.attrs.lang&&setMode(e.attrs.lang,this.codeMirrorView,this.settings,this.languageConf);const o=this.node;this.node=e;const s=computeChange(this.codeMirrorView.state.doc.toString(),this.node.textContent);return s&&(this.updating=!0,this.codeMirrorView.dispatch({changes:{from:s.from,to:s.to,insert:s.text},selection:{anchor:s.from+s.text.length}}),this.updating=!1),this.settings.updateSelect(this.settings,this.dom,e,this.view,this.getPos,o),!0}ignoreMutation(){return!0}destroy(){this.selectDeleteCB&&this.selectDeleteCB(),this.createCopyButtonCB(),themeCallbacks.splice(themeCallbacks.indexOf(this.updateTheme),1)}}const codeMirrorBlockNodeView=(r,e)=>(n,A,o)=>new CodeMirrorBlockNodeView(n,A,o,r,e),defaultCreateSelect=(r,e,n,A,o)=>{if(!r.languageLoaders)return()=>{};const{languageLoaders:s}=r,a=document.createElement("select");a.className="codeblock-select";const l=document.createElement("option");return l.value="none",l.textContent=r.languageNameMap?.none||"none",a.append(l),Object.keys(s).sort().forEach(c=>{if(r.languageWhitelist&&!r.languageWhitelist.includes(c))return;const g=document.createElement("option");g.value=c,g.textContent=r.languageNameMap?.[c]||c,a.append(g)}),a.value=n.attrs.lang||"none",e.prepend(a),a.onchange=c=>{if(!(c.target instanceof HTMLSelectElement))return;const g=c.target.value,h=o();h&&A.dispatch(A.state.tr.setNodeMarkup(h,void 0,{...n.attrs,lang:g}))},()=>{}},defaultUpdateSelect=(r,e,n,A,o,s)=>{if(s.attrs.lang!==n.attrs.lang){const a=e.querySelector(".codeblock-select");if(!(a instanceof HTMLSelectElement))return;a.value=n.attrs.lang||"none"}},defaultStopEvent=()=>!0,defaultSettings={createSelect:defaultCreateSelect,updateSelect:defaultUpdateSelect,createCopyButton:()=>()=>{},stopEvent:defaultStopEvent,readOnly:!1,themes:[]};var CodeBlockLanguages=(r=>(r.javascript="javascript",r.html="html",r.css="css",r.sql="sql",r.python="python",r.rust="rust",r.xml="xml",r.json="json",r.markdown="markdown",r.java="java",r.cpp="cpp",r.lezer="lezer",r.php="php",r.wast="wast",r))(CodeBlockLanguages||{}),LegacyLanguages=(r=>(r.apl="apl",r.asciiarmor="asciiarmor",r.asn1="asn1",r.asterisk="asterisk",r.brainfuck="brainfuck",r.clike="clike",r.clojure="clojure",r.cmake="cmake",r.cobol="cobol",r.coffeescript="coffeescript",r.commonlisp="commonlisp",r.crystal="crystal",r.cypher="cypher",r.d="d",r.diff="diff",r.dockerfile="dockerfile",r.dtd="dtd",r.dylan="dylan",r.ebnf="ebnf",r.ecl="ecl",r.eiffel="eiffel",r.elm="elm",r.erlang="erlang",r.factor="factor",r.fcl="fcl",r.forth="forth",r.fortran="fortran",r.gas="gas",r.gherkin="gherkin",r.go="go",r.groovy="groovy",r.haskell="haskell",r.haxe="haxe",r.http="http",r.idl="idl",r.jinja2="jinja2",r.julia="julia",r.livescript="livescript",r.lua="lua",r.mathematica="mathematica",r.mbox="mbox",r.mirc="mirc",r.mllike="mllike",r.modelica="modelica",r.mscgen="mscgen",r.mumps="mumps",r.nginx="nginx",r.nsis="nsis",r.ntriples="ntriples",r.octave="octave",r.oz="oz",r.pascal="pascal",r.perl="perl",r.pig="pig",r.powershell="powershell",r.properties="properties",r.protobuf="protobuf",r.puppet="puppet",r.q="q",r.r="r",r.rpm="rpm",r.ruby="ruby",r.sas="sas",r.scheme="scheme",r.shell="shell",r.smalltalk="smalltalk",r.solr="solr",r.sparql="sparql",r.spreadsheet="spreadsheet",r.stex="stex",r.stylus="stylus",r.swift="swift",r.tcl="tcl",r.textile="textile",r.tiddlywiki="tiddlywiki",r.tiki="tiki",r.toml="toml",r.troff="troff",r.ttcn="ttcn",r.turtle="turtle",r.vb="vb",r.vbscript="vbscript",r.velocity="velocity",r.verilog="verilog",r.vhdl="vhdl",r.webidl="webidl",r.xquery="xquery",r.yacas="yacas",r.yaml="yaml",r.z80="z80",r))(LegacyLanguages||{});const languageLoaders={[CodeBlockLanguages.cpp]:()=>Promise.resolve().then(()=>require("./index-B3pe8ikc.cjs")).then(r=>r.cpp()),[CodeBlockLanguages.css]:()=>Promise.resolve().then(()=>require("./index-CIit1i3J.cjs")).then(r=>r.css()),[CodeBlockLanguages.html]:()=>Promise.resolve().then(()=>require("./index-CYTRnGoK.cjs")).then(r=>r.html()),[CodeBlockLanguages.php]:()=>Promise.resolve().then(()=>require("./index-CsysHuDx.cjs")).then(r=>r.php()),[CodeBlockLanguages.sql]:()=>Promise.resolve().then(()=>require("./index-vVYKigMF.cjs")).then(r=>r.sql()),[CodeBlockLanguages.xml]:()=>Promise.resolve().then(()=>require("./index-ChnARZnL.cjs")).then(r=>r.xml()),[CodeBlockLanguages.javascript]:()=>Promise.resolve().then(()=>require("./index-CpG7duDv.cjs")).then(r=>r.javascript()),[CodeBlockLanguages.java]:()=>Promise.resolve().then(()=>require("./index-BZoizqu-.cjs")).then(r=>r.java()),[CodeBlockLanguages.json]:()=>Promise.resolve().then(()=>require("./index-Uhhym9vv.cjs")).then(r=>r.json()),[CodeBlockLanguages.lezer]:()=>Promise.resolve().then(()=>require("./index-22wlingm.cjs")).then(r=>r.lezer()),[CodeBlockLanguages.markdown]:()=>Promise.resolve().then(()=>require("./index-S7NtzAbU.cjs")).then(r=>r.markdown()),[CodeBlockLanguages.python]:()=>Promise.resolve().then(()=>require("./index-fyC0AKqt.cjs")).then(r=>r.python()),[CodeBlockLanguages.rust]:()=>Promise.resolve().then(()=>require("./index-x6Pnmq0h.cjs")).then(r=>r.rust()),[CodeBlockLanguages.wast]:()=>Promise.resolve().then(()=>require("./index-L62IvB0b.cjs")).then(r=>r.wast())},legacyLanguageLoaders={[LegacyLanguages.apl]:()=>Promise.resolve().then(()=>require("./apl-M-DNMvvR.cjs")).then(({apl:r})=>StreamLanguage.define(r)),[LegacyLanguages.asciiarmor]:()=>Promise.resolve().then(()=>require("./asciiarmor-BMx3XVjX.cjs")).then(({asciiArmor:r})=>StreamLanguage.define(r)),[LegacyLanguages.asn1]:()=>Promise.resolve().then(()=>require("./asn1-OOsVM4yU.cjs")).then(({asn1:r})=>StreamLanguage.define(r)),[LegacyLanguages.asterisk]:()=>Promise.resolve().then(()=>require("./asterisk-B1QUaW1C.cjs")).then(({asterisk:r})=>StreamLanguage.define(r)),[LegacyLanguages.brainfuck]:()=>Promise.resolve().then(()=>require("./brainfuck-BjUlYKdF.cjs")).then(({brainfuck:r})=>StreamLanguage.define(r)),[LegacyLanguages.clike]:()=>Promise.resolve().then(()=>require("./clike-DLHgOXgk.cjs")).then(({clike:r})=>StreamLanguage.define(r)),[LegacyLanguages.clojure]:()=>Promise.resolve().then(()=>require("./clojure-Ap_IXD2I.cjs")).then(({clojure:r})=>StreamLanguage.define(r)),[LegacyLanguages.cmake]:()=>Promise.resolve().then(()=>require("./cmake-C4D5_VmS.cjs")).then(({cmake:r})=>StreamLanguage.define(r)),[LegacyLanguages.cobol]:()=>Promise.resolve().then(()=>require("./cobol-Du-cT2hr.cjs")).then(({cobol:r})=>StreamLanguage.define(r)),[LegacyLanguages.coffeescript]:()=>Promise.resolve().then(()=>require("./coffeescript-DDFAj2ea.cjs")).then(({coffeeScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.commonlisp]:()=>Promise.resolve().then(()=>require("./commonlisp-CXBBRCTx.cjs")).then(({commonLisp:r})=>StreamLanguage.define(r)),[LegacyLanguages.crystal]:()=>Promise.resolve().then(()=>require("./crystal-DAFWRDbh.cjs")).then(({crystal:r})=>StreamLanguage.define(r)),[LegacyLanguages.cypher]:()=>Promise.resolve().then(()=>require("./cypher-BN0-oCze.cjs")).then(({cypher:r})=>StreamLanguage.define(r)),[LegacyLanguages.d]:()=>Promise.resolve().then(()=>require("./d-BHsqGcfm.cjs")).then(({d:r})=>StreamLanguage.define(r)),[LegacyLanguages.diff]:()=>Promise.resolve().then(()=>require("./diff-CemTHKfk.cjs")).then(({diff:r})=>StreamLanguage.define(r)),[LegacyLanguages.dockerfile]:()=>Promise.resolve().then(()=>require("./dockerfile-BBTH3voH.cjs")).then(({dockerFile:r})=>StreamLanguage.define(r)),[LegacyLanguages.dtd]:()=>Promise.resolve().then(()=>require("./dtd-ChoVQPwv.cjs")).then(({dtd:r})=>StreamLanguage.define(r)),[LegacyLanguages.dylan]:()=>Promise.resolve().then(()=>require("./dylan-apTQIgUA.cjs")).then(({dylan:r})=>StreamLanguage.define(r)),[LegacyLanguages.ebnf]:()=>Promise.resolve().then(()=>require("./ebnf-LYmLy17h.cjs")).then(({ebnf:r})=>StreamLanguage.define(r)),[LegacyLanguages.ecl]:()=>Promise.resolve().then(()=>require("./ecl-C7WNQq7-.cjs")).then(({ecl:r})=>StreamLanguage.define(r)),[LegacyLanguages.eiffel]:()=>Promise.resolve().then(()=>require("./eiffel-BJThA8RG.cjs")).then(({eiffel:r})=>StreamLanguage.define(r)),[LegacyLanguages.elm]:()=>Promise.resolve().then(()=>require("./elm-CcXP9T36.cjs")).then(({elm:r})=>StreamLanguage.define(r)),[LegacyLanguages.erlang]:()=>Promise.resolve().then(()=>require("./erlang-B6mpcObI.cjs")).then(({erlang:r})=>StreamLanguage.define(r)),[LegacyLanguages.factor]:()=>Promise.resolve().then(()=>require("./factor-B-tsx9yW.cjs")).then(({factor:r})=>StreamLanguage.define(r)),[LegacyLanguages.fcl]:()=>Promise.resolve().then(()=>require("./fcl-BzAKklXo.cjs")).then(({fcl:r})=>StreamLanguage.define(r)),[LegacyLanguages.forth]:()=>Promise.resolve().then(()=>require("./forth-CPAzyZ_n.cjs")).then(({forth:r})=>StreamLanguage.define(r)),[LegacyLanguages.fortran]:()=>Promise.resolve().then(()=>require("./fortran-DHiTlGV1.cjs")).then(({fortran:r})=>StreamLanguage.define(r)),[LegacyLanguages.gas]:()=>Promise.resolve().then(()=>require("./gas-BiPtGF2E.cjs")).then(({gas:r})=>StreamLanguage.define(r)),[LegacyLanguages.gherkin]:()=>Promise.resolve().then(()=>require("./gherkin-Djo7Y51D.cjs")).then(({gherkin:r})=>StreamLanguage.define(r)),[LegacyLanguages.go]:()=>Promise.resolve().then(()=>require("./go-BgtlNyKc.cjs")).then(({go:r})=>StreamLanguage.define(r)),[LegacyLanguages.groovy]:()=>Promise.resolve().then(()=>require("./groovy-BMVITiCm.cjs")).then(({groovy:r})=>StreamLanguage.define(r)),[LegacyLanguages.haskell]:()=>Promise.resolve().then(()=>require("./haskell-C46lNFBv.cjs")).then(({haskell:r})=>StreamLanguage.define(r)),[LegacyLanguages.haxe]:()=>Promise.resolve().then(()=>require("./haxe-G9XvbXZx.cjs")).then(({haxe:r})=>StreamLanguage.define(r)),[LegacyLanguages.http]:()=>Promise.resolve().then(()=>require("./http-BkLifcnL.cjs")).then(({http:r})=>StreamLanguage.define(r)),[LegacyLanguages.idl]:()=>Promise.resolve().then(()=>require("./idl-FmHDmsE-.cjs")).then(({idl:r})=>StreamLanguage.define(r)),[LegacyLanguages.jinja2]:()=>Promise.resolve().then(()=>require("./jinja2-wbVbDTNi.cjs")).then(({jinja2:r})=>StreamLanguage.define(r)),[LegacyLanguages.julia]:()=>Promise.resolve().then(()=>require("./julia-DA67Qw9E.cjs")).then(({julia:r})=>StreamLanguage.define(r)),[LegacyLanguages.livescript]:()=>Promise.resolve().then(()=>require("./livescript-Bg3URadp.cjs")).then(({liveScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.lua]:()=>Promise.resolve().then(()=>require("./lua-CIsxjGwi.cjs")).then(({lua:r})=>StreamLanguage.define(r)),[LegacyLanguages.mathematica]:()=>Promise.resolve().then(()=>require("./mathematica-BG089QIc.cjs")).then(({mathematica:r})=>StreamLanguage.define(r)),[LegacyLanguages.mbox]:()=>Promise.resolve().then(()=>require("./mbox-CySolFFZ.cjs")).then(({mbox:r})=>StreamLanguage.define(r)),[LegacyLanguages.mirc]:()=>Promise.resolve().then(()=>require("./mirc-BfqEffzk.cjs")).then(({mirc:r})=>StreamLanguage.define(r)),[LegacyLanguages.mllike]:()=>Promise.resolve().then(()=>require("./mllike-CBK_zjnT.cjs")).then(({oCaml:r})=>StreamLanguage.define(r)),[LegacyLanguages.modelica]:()=>Promise.resolve().then(()=>require("./modelica-B6Zhcb-M.cjs")).then(({modelica:r})=>StreamLanguage.define(r)),[LegacyLanguages.mscgen]:()=>Promise.resolve().then(()=>require("./mscgen-B_Dg_s1G.cjs")).then(({mscgen:r})=>StreamLanguage.define(r)),[LegacyLanguages.mumps]:()=>Promise.resolve().then(()=>require("./mumps-wfyQdxSu.cjs")).then(({mumps:r})=>StreamLanguage.define(r)),[LegacyLanguages.nginx]:()=>Promise.resolve().then(()=>require("./nginx-CwqyBUfA.cjs")).then(({nginx:r})=>StreamLanguage.define(r)),[LegacyLanguages.nsis]:()=>Promise.resolve().then(()=>require("./nsis-DPj2fUaP.cjs")).then(({nsis:r})=>StreamLanguage.define(r)),[LegacyLanguages.ntriples]:()=>Promise.resolve().then(()=>require("./ntriples-DgwJmozm.cjs")).then(({ntriples:r})=>StreamLanguage.define(r)),[LegacyLanguages.octave]:()=>Promise.resolve().then(()=>require("./octave-1pkKrgAA.cjs")).then(({octave:r})=>StreamLanguage.define(r)),[LegacyLanguages.oz]:()=>Promise.resolve().then(()=>require("./oz-BXOZCt0U.cjs")).then(({oz:r})=>StreamLanguage.define(r)),[LegacyLanguages.pascal]:()=>Promise.resolve().then(()=>require("./pascal-DtY2LEkJ.cjs")).then(({pascal:r})=>StreamLanguage.define(r)),[LegacyLanguages.perl]:()=>Promise.resolve().then(()=>require("./perl-CVDWbEju.cjs")).then(({perl:r})=>StreamLanguage.define(r)),[LegacyLanguages.pig]:()=>Promise.resolve().then(()=>require("./pig-DMByOrnr.cjs")).then(({pig:r})=>StreamLanguage.define(r)),[LegacyLanguages.powershell]:()=>Promise.resolve().then(()=>require("./powershell-BaoYaFvj.cjs")).then(({powerShell:r})=>StreamLanguage.define(r)),[LegacyLanguages.properties]:()=>Promise.resolve().then(()=>require("./properties-DXHJZ3WE.cjs")).then(({properties:r})=>StreamLanguage.define(r)),[LegacyLanguages.protobuf]:()=>Promise.resolve().then(()=>require("./protobuf-BKhXdfH6.cjs")).then(({protobuf:r})=>StreamLanguage.define(r)),[LegacyLanguages.puppet]:()=>Promise.resolve().then(()=>require("./puppet-8mAyuMbW.cjs")).then(({puppet:r})=>StreamLanguage.define(r)),[LegacyLanguages.q]:()=>Promise.resolve().then(()=>require("./q-BPQ45Nxu.cjs")).then(({q:r})=>StreamLanguage.define(r)),[LegacyLanguages.r]:()=>Promise.resolve().then(()=>require("./r-r2_EZsON.cjs")).then(({r})=>StreamLanguage.define(r)),[LegacyLanguages.rpm]:()=>Promise.resolve().then(()=>require("./rpm-C6UDHByS.cjs")).then(({rpmSpec:r})=>StreamLanguage.define(r)),[LegacyLanguages.ruby]:()=>Promise.resolve().then(()=>require("./ruby-Cn1sFkZF.cjs")).then(({ruby:r})=>StreamLanguage.define(r)),[LegacyLanguages.sas]:()=>Promise.resolve().then(()=>require("./sas-DAGcJy94.cjs")).then(({sas:r})=>StreamLanguage.define(r)),[LegacyLanguages.scheme]:()=>Promise.resolve().then(()=>require("./scheme-B0ZrbojV.cjs")).then(({scheme:r})=>StreamLanguage.define(r)),[LegacyLanguages.shell]:()=>Promise.resolve().then(()=>require("./shell-BMYo43V6.cjs")).then(({shell:r})=>StreamLanguage.define(r)),[LegacyLanguages.smalltalk]:()=>Promise.resolve().then(()=>require("./smalltalk-CSslY-3i.cjs")).then(({smalltalk:r})=>StreamLanguage.define(r)),[LegacyLanguages.solr]:()=>Promise.resolve().then(()=>require("./solr-A1kSnAwJ.cjs")).then(({solr:r})=>StreamLanguage.define(r)),[LegacyLanguages.sparql]:()=>Promise.resolve().then(()=>require("./sparql-DnHMBLLY.cjs")).then(({sparql:r})=>StreamLanguage.define(r)),[LegacyLanguages.spreadsheet]:()=>Promise.resolve().then(()=>require("./spreadsheet-B7_BK8hB.cjs")).then(({spreadsheet:r})=>StreamLanguage.define(r)),[LegacyLanguages.stex]:()=>Promise.resolve().then(()=>require("./stex-B4wyjEnp.cjs")).then(({stex:r})=>StreamLanguage.define(r)),[LegacyLanguages.stylus]:()=>Promise.resolve().then(()=>require("./stylus-B3vYZZY8.cjs")).then(({stylus:r})=>StreamLanguage.define(r)),[LegacyLanguages.swift]:()=>Promise.resolve().then(()=>require("./swift-DGw6Cgu8.cjs")).then(({swift:r})=>StreamLanguage.define(r)),[LegacyLanguages.tcl]:()=>Promise.resolve().then(()=>require("./tcl-ByLXbQFo.cjs")).then(({tcl:r})=>StreamLanguage.define(r)),[LegacyLanguages.textile]:()=>Promise.resolve().then(()=>require("./textile-iryw-lTw.cjs")).then(({textile:r})=>StreamLanguage.define(r)),[LegacyLanguages.tiddlywiki]:()=>Promise.resolve().then(()=>require("./tiddlywiki-D8IJz1k7.cjs")).then(({tiddlyWiki:r})=>StreamLanguage.define(r)),[LegacyLanguages.tiki]:()=>Promise.resolve().then(()=>require("./tiki-C5p5KSQK.cjs")).then(({tiki:r})=>StreamLanguage.define(r)),[LegacyLanguages.toml]:()=>Promise.resolve().then(()=>require("./toml-3ZsH_4Qa.cjs")).then(({toml:r})=>StreamLanguage.define(r)),[LegacyLanguages.troff]:()=>Promise.resolve().then(()=>require("./troff-D-3QCOYN.cjs")).then(({troff:r})=>StreamLanguage.define(r)),[LegacyLanguages.ttcn]:()=>Promise.resolve().then(()=>require("./ttcn-C2MXAqcM.cjs")).then(({ttcn:r})=>StreamLanguage.define(r)),[LegacyLanguages.turtle]:()=>Promise.resolve().then(()=>require("./turtle-DSJNatSv.cjs")).then(({turtle:r})=>StreamLanguage.define(r)),[LegacyLanguages.vb]:()=>Promise.resolve().then(()=>require("./vb-qzHzzvyB.cjs")).then(({vb:r})=>StreamLanguage.define(r)),[LegacyLanguages.vbscript]:()=>Promise.resolve().then(()=>require("./vbscript-CWm8v9tE.cjs")).then(({vbScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.velocity]:()=>Promise.resolve().then(()=>require("./velocity-D3_yAIp3.cjs")).then(({velocity:r})=>StreamLanguage.define(r)),[LegacyLanguages.verilog]:()=>Promise.resolve().then(()=>require("./verilog-BOhLNmQo.cjs")).then(({verilog:r})=>StreamLanguage.define(r)),[LegacyLanguages.vhdl]:()=>Promise.resolve().then(()=>require("./vhdl-CMFbi8Im.cjs")).then(({vhdl:r})=>StreamLanguage.define(r)),[LegacyLanguages.webidl]:()=>Promise.resolve().then(()=>require("./webidl-CWb_flNk.cjs")).then(({webIDL:r})=>StreamLanguage.define(r)),[LegacyLanguages.xquery]:()=>Promise.resolve().then(()=>require("./xquery-mbJFEpkV.cjs")).then(({xQuery:r})=>StreamLanguage.define(r)),[LegacyLanguages.yacas]:()=>Promise.resolve().then(()=>require("./yacas-urx_N5C8.cjs")).then(({yacas:r})=>StreamLanguage.define(r)),[LegacyLanguages.yaml]:()=>Promise.resolve().then(()=>require("./yaml-CSixJMdf.cjs")).then(({yaml:r})=>StreamLanguage.define(r)),[LegacyLanguages.z80]:()=>Promise.resolve().then(()=>require("./z80-CsG3CM6M.cjs")).then(({z80:r})=>StreamLanguage.define(r))},codeMirrorBlockKey=new PluginKey("codemirror-block");function arrowHandler(r){return(e,n,A)=>{if(e.selection.empty&&A&&A.endOfTextblock(r)){let o=r=="left"||r=="up"?-1:1,s=e.selection.$head,a=Selection.near(e.doc.resolve(o>0?s.after():s.before()),o);if(a.$head&&a.$head.parent.type.name=="code_block")return n&&n(e.tr.setSelection(a)),!0}return!1}}const LANGS=["diff","dockerfile","http","nginx","properties","shell","toml","yaml","sql","javascript","cpp","css","xml","java","json","markdown","rust","html"];class NodeCodeMirror extends NodeCodeBlock{constructor(e){super(e),this.config=e}getCommandFactories(e,n){return{setCodeBlock:A=>e.commandFactories.setBlockType(n,{lang:A}),ArrowLeft:()=>arrowHandler("left"),ArrowRight:()=>arrowHandler("right"),ArrowUp:()=>arrowHandler("up"),ArrowDown:()=>arrowHandler("down")}}getKeyboardShortcuts(){return{'Shift-Ctrl-"':"setCodeBlock",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown"}}getProseMirrorPlugins(){const e=getShadowRoot(this.editor.config.element),n={languageWhitelist:this.config.languageWhitelist||LANGS,shadowRoot:e,...defaultSettings,readOnly:this.editor.config.readOnly||this.config.readOnly,languageLoaders:{...languageLoaders,...legacyLanguageLoaders},undo:()=>{this.editor.chain().undo().run()},redo:()=>{this.editor.chain().redo().run()},theme:[...this.config.theme||[]]};return[new Plugin({key:codeMirrorBlockKey,props:{nodeViews:{[this.name]:codeMirrorBlockNodeView(n,this.editor)}}})]}}class ExtensionCodeMirror extends Extension{constructor(e){super(e),this.config=e,this.name="code-mirror",this.requires=[new NodeCodeMirror({languageWhitelist:e.languageWhitelist,theme:e.theme})]}}var html,hasRequiredHtml;function requireHtml(){if(hasRequiredHtml)return html;hasRequiredHtml=1;function r(e,n){var A,o,s,a,l,c;n=n||{},o=n.indent_size||4,s=n.indent_char||" ",l=n.brace_style||"collapse",a=n.max_char==0?1/0:n.max_char||70,c=n.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"];function g(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:`
|
|
63
63
|
\r `.split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(w,y){for(var D=0;D<y.length;D++)if(w===y[D])return!0;return!1}},this.get_content=function(){for(var w="",y=[],D=!1;this.input.charAt(this.pos)!=="<";){if(this.pos>=this.input.length)return y.length?y.join(""):["","TK_EOF"];if(w=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(w,this.Utils.whitespace)){y.length&&(D=!0),this.line_char_count--;continue}else if(D){if(this.line_char_count>=this.max_char){y.push(`
|
|
64
64
|
`);for(var _=0;_<this.indent_level;_++)y.push(this.indent_string);this.line_char_count=0}else y.push(" "),this.line_char_count++;D=!1}y.push(w)}return y.length?y.join(""):""},this.get_contents_to=function(w){if(this.pos==this.input.length)return["","TK_EOF"];var y="",D=new RegExp("</"+w+"\\s*>","igm");D.lastIndex=this.pos;var _=D.exec(this.input),M=_?_.index:this.input.length;return this.pos<M&&(y=this.input.substring(this.pos,M),this.pos=M),y},this.record_tag=function(w){this.tags[w+"count"]?(this.tags[w+"count"]++,this.tags[w+this.tags[w+"count"]]=this.indent_level):(this.tags[w+"count"]=1,this.tags[w+this.tags[w+"count"]]=this.indent_level),this.tags[w+this.tags[w+"count"]+"parent"]=this.tags.parent,this.tags.parent=w+this.tags[w+"count"]},this.retrieve_tag=function(w){if(this.tags[w+"count"]){for(var y=this.tags.parent;y&&w+this.tags[w+"count"]!==y;)y=this.tags[y+"parent"];y&&(this.indent_level=this.tags[w+this.tags[w+"count"]],this.tags.parent=this.tags[y+"parent"]),delete this.tags[w+this.tags[w+"count"]+"parent"],delete this.tags[w+this.tags[w+"count"]],this.tags[w+"count"]==1?delete this.tags[w+"count"]:this.tags[w+"count"]--}},this.get_tag=function(){var w="",y=[],D=!1,_,M;do{if(this.pos>=this.input.length)return y.length?y.join(""):["","TK_EOF"];if(w=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(w,this.Utils.whitespace)){D=!0,this.line_char_count--;continue}(w==="'"||w==='"')&&(!y[1]||y[1]!=="!")&&(w+=this.get_unformatted(w),D=!0),w==="="&&(D=!1),y.length&&y[y.length-1]!=="="&&w!==">"&&D&&(this.line_char_count>=this.max_char?(this.print_newline(!1,y),this.line_char_count=0):(y.push(" "),this.line_char_count++),D=!1),w==="<"&&(_=this.pos-1),y.push(w)}while(w!==">");var R=y.join(""),F;R.indexOf(" ")!=-1?F=R.indexOf(" "):F=R.indexOf(">");var v=R.substring(1,F).toLowerCase();if(R.charAt(R.length-2)==="/"||this.Utils.in_array(v,this.Utils.single_token))this.tag_type="SINGLE";else if(v==="script")this.record_tag(v),this.tag_type="SCRIPT";else if(v==="style")this.record_tag(v),this.tag_type="STYLE";else if(this.Utils.in_array(v,c)){var N=this.get_unformatted("</"+v+">",R);y.push(N),_>0&&this.Utils.in_array(this.input.charAt(_-1),this.Utils.whitespace)&&y.splice(0,0,this.input.charAt(_-1)),M=this.pos-1,this.Utils.in_array(this.input.charAt(M+1),this.Utils.whitespace)&&y.push(this.input.charAt(M+1)),this.tag_type="SINGLE"}else if(v.charAt(0)==="!")if(v.indexOf("[if")!=-1){if(R.indexOf("!IE")!=-1){var N=this.get_unformatted("-->",R);y.push(N)}this.tag_type="START"}else if(v.indexOf("[endif")!=-1)this.tag_type="END",this.unindent();else if(v.indexOf("[cdata[")!=-1){var N=this.get_unformatted("]]>",R);y.push(N),this.tag_type="SINGLE"}else{var N=this.get_unformatted("-->",R);y.push(N),this.tag_type="SINGLE"}else v.charAt(0)==="/"?(this.retrieve_tag(v.substring(1)),this.tag_type="END"):(this.record_tag(v),this.tag_type="START"),this.Utils.in_array(v,this.Utils.extra_liners)&&this.print_newline(!0,this.output);return y.join("")},this.get_unformatted=function(w,y){if(y&&y.toLowerCase().indexOf(w)!=-1)return"";var D="",_="",M=!0;do{if(this.pos>=this.input.length)return _;if(D=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(D,this.Utils.whitespace)){if(!M){this.line_char_count--;continue}if(D===`
|
|
65
65
|
`||D==="\r"){_+=`
|
|
@@ -203,9 +203,9 @@ ${JSON.stringify(b,null,4)}`);const x=b;if(n.string(x.id)||n.number(x.id)){const
|
|
|
203
203
|
`?r.slice(0,r.length-1):r}function noOp(){}function tokenHandlers(r,e){let n=Object.create(null);for(let A in e){let o=e[A];if(o.block){let s=r.nodes[o.block];noCloseToken(o,A)?n[A]=(a,l,c,g)=>{a.openNode(s,attrs(o,l,c,g)),a.addText(withoutTrailingNewline(l.content)),a.closeNode()}:(n[A+"_open"]=(a,l,c,g)=>a.openNode(s,attrs(o,l,c,g)),n[A+"_close"]=a=>a.closeNode())}else if(o.node){let s=r.nodes[o.node];n[A]=(a,l,c,g)=>a.addNode(s,attrs(o,l,c,g))}else if(o.mark){let s=r.marks[o.mark];noCloseToken(o,A)?n[A]=(a,l,c,g)=>{a.openMark(s.create(attrs(o,l,c,g))),a.addText(withoutTrailingNewline(l.content)),a.closeMark(s)}:(n[A+"_open"]=(a,l,c,g)=>a.openMark(s.create(attrs(o,l,c,g))),n[A+"_close"]=a=>a.closeMark(s))}else if(o.custom){const s=o.custom;n[A]=(a,l,c,g)=>{s(a,l,c,g)}}else if(o.ignore)noCloseToken(o,A)?n[A]=noOp:(n[A+"_open"]=noOp,n[A+"_close"]=noOp);else throw new RangeError("Unrecognized parsing spec "+JSON.stringify(o))}return n.text=(A,o)=>A.addText(o.content),n.inline=(A,o)=>A.parseTokens(o.children),n.softbreak=n.softbreak||(A=>A.addText(" ")),n}class MarkdownParser{constructor(e,n,A){this.schema=e,this.tokenizer=n,this.tokens=A,this.tokenHandlers=tokenHandlers(e,A)}parse(e,n={}){const A=new MarkdownParseState(this.schema,this.tokenHandlers),o=this.tokenizer.parse(e,n);A.parseTokens(o);let s;do s=A.closeNode();while(A.stack.length);return s||this.schema.topNodeType.createAndFill()}}var __defProp=Object.defineProperty,__name=(r,e)=>__defProp(r,"name",{value:e,configurable:!0});(class{static{__name(this,"Edit")}startPosition;oldEndPosition;newEndPosition;startIndex;oldEndIndex;newEndIndex;constructor({startIndex:r,oldEndIndex:e,newEndIndex:n,startPosition:A,oldEndPosition:o,newEndPosition:s}){this.startIndex=r>>>0,this.oldEndIndex=e>>>0,this.newEndIndex=n>>>0,this.startPosition=A,this.oldEndPosition=o,this.newEndPosition=s}editPoint(r,e){let n=e;const A={...r};if(e>=this.oldEndIndex){n=this.newEndIndex+(e-this.oldEndIndex);const o=r.row;A.row=this.newEndPosition.row+(r.row-this.oldEndPosition.row),A.column=o===this.oldEndPosition.row?this.newEndPosition.column+(r.column-this.oldEndPosition.column):r.column}else e>this.startIndex&&(n=this.newEndIndex,A.row=this.newEndPosition.row,A.column=this.newEndPosition.column);return{point:A,index:n}}editRange(r){const e={startIndex:r.startIndex,startPosition:{...r.startPosition},endIndex:r.endIndex,endPosition:{...r.endPosition}};return r.endIndex>=this.oldEndIndex?r.endIndex!==Number.MAX_SAFE_INTEGER&&(e.endIndex=this.newEndIndex+(r.endIndex-this.oldEndIndex),e.endPosition={row:this.newEndPosition.row+(r.endPosition.row-this.oldEndPosition.row),column:r.endPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(r.endPosition.column-this.oldEndPosition.column):r.endPosition.column},e.endIndex<this.newEndIndex&&(e.endIndex=Number.MAX_SAFE_INTEGER,e.endPosition={row:Number.MAX_SAFE_INTEGER,column:Number.MAX_SAFE_INTEGER})):r.endIndex>this.startIndex&&(e.endIndex=this.startIndex,e.endPosition={...this.startPosition}),r.startIndex>=this.oldEndIndex?(e.startIndex=this.newEndIndex+(r.startIndex-this.oldEndIndex),e.startPosition={row:this.newEndPosition.row+(r.startPosition.row-this.oldEndPosition.row),column:r.startPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(r.startPosition.column-this.oldEndPosition.column):r.startPosition.column},e.startIndex<this.newEndIndex&&(e.startIndex=Number.MAX_SAFE_INTEGER,e.startPosition={row:Number.MAX_SAFE_INTEGER,column:Number.MAX_SAFE_INTEGER})):r.startIndex>this.startIndex&&(e.startIndex=this.startIndex,e.startPosition={...this.startPosition}),e}});var SIZE_OF_SHORT=2,SIZE_OF_INT=4,SIZE_OF_CURSOR=4*SIZE_OF_INT,SIZE_OF_NODE=5*SIZE_OF_INT,SIZE_OF_POINT=2*SIZE_OF_INT,SIZE_OF_RANGE=2*SIZE_OF_INT+2*SIZE_OF_POINT,ZERO_POINT={row:0,column:0},INTERNAL=Symbol("INTERNAL");function assertInternal(r){if(r!==INTERNAL)throw new Error("Illegal constructor")}__name(assertInternal,"assertInternal");function isPoint(r){return!!r&&typeof r.row=="number"&&typeof r.column=="number"}__name(isPoint,"isPoint");function setModule(r){C=r}__name(setModule,"setModule");var C,LookaheadIterator=class{static{__name(this,"LookaheadIterator")}0=0;language;constructor(r,e,n){assertInternal(r),this[0]=e,this.language=n}get currentTypeId(){return C._ts_lookahead_iterator_current_symbol(this[0])}get currentType(){return this.language.types[this.currentTypeId]||"ERROR"}delete(){C._ts_lookahead_iterator_delete(this[0]),this[0]=0}reset(r,e){return C._ts_lookahead_iterator_reset(this[0],r[0],e)?(this.language=r,!0):!1}resetState(r){return!!C._ts_lookahead_iterator_reset_state(this[0],r)}[Symbol.iterator](){return{next:__name(()=>C._ts_lookahead_iterator_next(this[0])?{done:!1,value:this.currentType}:{done:!0,value:""},"next")}}};function getText(r,e,n,A){const o=n-e;let s=r.textCallback(e,A);if(s){for(e+=s.length;e<n;){const a=r.textCallback(e,A);if(a&&a.length>0)e+=a.length,s+=a;else break}e>n&&(s=s.slice(0,o))}return s??""}__name(getText,"getText");var Tree=class dt{static{__name(this,"Tree")}0=0;textCallback;language;constructor(e,n,A,o){assertInternal(e),this[0]=n,this.language=A,this.textCallback=o}copy(){const e=C._ts_tree_copy(this[0]);return new dt(INTERNAL,e,this.language,this.textCallback)}delete(){C._ts_tree_delete(this[0]),this[0]=0}get rootNode(){return C._ts_tree_root_node_wasm(this[0]),unmarshalNode(this)}rootNodeWithOffset(e,n){const A=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(A,e,"i32"),marshalPoint(A+SIZE_OF_INT,n),C._ts_tree_root_node_with_offset_wasm(this[0]),unmarshalNode(this)}edit(e){marshalEdit(e),C._ts_tree_edit_wasm(this[0])}walk(){return this.rootNode.walk()}getChangedRanges(e){if(!(e instanceof dt))throw new TypeError("Argument must be a Tree");C._ts_tree_get_changed_ranges_wasm(this[0],e[0]);const n=C.getValue(TRANSFER_BUFFER,"i32"),A=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),o=new Array(n);if(n>0){let s=A;for(let a=0;a<n;a++)o[a]=unmarshalRange(s),s+=SIZE_OF_RANGE;C._free(A)}return o}getIncludedRanges(){C._ts_tree_included_ranges_wasm(this[0]);const e=C.getValue(TRANSFER_BUFFER,"i32"),n=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),A=new Array(e);if(e>0){let o=n;for(let s=0;s<e;s++)A[s]=unmarshalRange(o),o+=SIZE_OF_RANGE;C._free(n)}return A}},TreeCursor=class mt{static{__name(this,"TreeCursor")}0=0;1=0;2=0;3=0;tree;constructor(e,n){assertInternal(e),this.tree=n,unmarshalTreeCursor(this)}copy(){const e=new mt(INTERNAL,this.tree);return C._ts_tree_cursor_copy_wasm(this.tree[0]),unmarshalTreeCursor(e),e}delete(){marshalTreeCursor(this),C._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}get currentNode(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_wasm(this.tree[0]),unmarshalNode(this.tree)}get currentFieldId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_field_id_wasm(this.tree[0])}get currentFieldName(){return this.tree.language.fields[this.currentFieldId]}get currentDepth(){return marshalTreeCursor(this),C._ts_tree_cursor_current_depth_wasm(this.tree[0])}get currentDescendantIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_current_descendant_index_wasm(this.tree[0])}get nodeType(){return this.tree.language.types[this.nodeTypeId]||"ERROR"}get nodeTypeId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeStateId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_state_id_wasm(this.tree[0])}get nodeId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])===1}get nodeIsMissing(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])===1}get nodeText(){marshalTreeCursor(this);const e=C._ts_tree_cursor_start_index_wasm(this.tree[0]),n=C._ts_tree_cursor_end_index_wasm(this.tree[0]);C._ts_tree_cursor_start_position_wasm(this.tree[0]);const A=unmarshalPoint(TRANSFER_BUFFER);return getText(this.tree,e,n,A)}get startPosition(){return marshalTreeCursor(this),C._ts_tree_cursor_start_position_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get endPosition(){return marshalTreeCursor(this),C._ts_tree_cursor_end_position_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get startIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_end_index_wasm(this.tree[0])}gotoFirstChild(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoLastChild(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoParent(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoNextSibling(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoPreviousSibling(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoDescendant(e){marshalTreeCursor(this),C._ts_tree_cursor_goto_descendant_wasm(this.tree[0],e),unmarshalTreeCursor(this)}gotoFirstChildForIndex(e){marshalTreeCursor(this),C.setValue(TRANSFER_BUFFER+SIZE_OF_CURSOR,e,"i32");const n=C._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]);return unmarshalTreeCursor(this),n===1}gotoFirstChildForPosition(e){marshalTreeCursor(this),marshalPoint(TRANSFER_BUFFER+SIZE_OF_CURSOR,e);const n=C._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]);return unmarshalTreeCursor(this),n===1}reset(e){marshalNode(e),marshalTreeCursor(this,TRANSFER_BUFFER+SIZE_OF_NODE),C._ts_tree_cursor_reset_wasm(this.tree[0]),unmarshalTreeCursor(this)}resetTo(e){marshalTreeCursor(this,TRANSFER_BUFFER),marshalTreeCursor(e,TRANSFER_BUFFER+SIZE_OF_CURSOR),C._ts_tree_cursor_reset_to_wasm(this.tree[0],e.tree[0]),unmarshalTreeCursor(this)}},Node=class{static{__name(this,"Node")}0=0;_children;_namedChildren;constructor(r,{id:e,tree:n,startIndex:A,startPosition:o,other:s}){assertInternal(r),this[0]=s,this.id=e,this.tree=n,this.startIndex=A,this.startPosition=o}id;startIndex;startPosition;tree;get typeId(){return marshalNode(this),C._ts_node_symbol_wasm(this.tree[0])}get grammarId(){return marshalNode(this),C._ts_node_grammar_symbol_wasm(this.tree[0])}get type(){return this.tree.language.types[this.typeId]||"ERROR"}get grammarType(){return this.tree.language.types[this.grammarId]||"ERROR"}get isNamed(){return marshalNode(this),C._ts_node_is_named_wasm(this.tree[0])===1}get isExtra(){return marshalNode(this),C._ts_node_is_extra_wasm(this.tree[0])===1}get isError(){return marshalNode(this),C._ts_node_is_error_wasm(this.tree[0])===1}get isMissing(){return marshalNode(this),C._ts_node_is_missing_wasm(this.tree[0])===1}get hasChanges(){return marshalNode(this),C._ts_node_has_changes_wasm(this.tree[0])===1}get hasError(){return marshalNode(this),C._ts_node_has_error_wasm(this.tree[0])===1}get endIndex(){return marshalNode(this),C._ts_node_end_index_wasm(this.tree[0])}get endPosition(){return marshalNode(this),C._ts_node_end_point_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get text(){return getText(this.tree,this.startIndex,this.endIndex,this.startPosition)}get parseState(){return marshalNode(this),C._ts_node_parse_state_wasm(this.tree[0])}get nextParseState(){return marshalNode(this),C._ts_node_next_parse_state_wasm(this.tree[0])}equals(r){return this.tree===r.tree&&this.id===r.id}child(r){return marshalNode(this),C._ts_node_child_wasm(this.tree[0],r),unmarshalNode(this.tree)}namedChild(r){return marshalNode(this),C._ts_node_named_child_wasm(this.tree[0],r),unmarshalNode(this.tree)}childForFieldId(r){return marshalNode(this),C._ts_node_child_by_field_id_wasm(this.tree[0],r),unmarshalNode(this.tree)}childForFieldName(r){const e=this.tree.language.fields.indexOf(r);return e!==-1?this.childForFieldId(e):null}fieldNameForChild(r){marshalNode(this);const e=C._ts_node_field_name_for_child_wasm(this.tree[0],r);return e?C.AsciiToString(e):null}fieldNameForNamedChild(r){marshalNode(this);const e=C._ts_node_field_name_for_named_child_wasm(this.tree[0],r);return e?C.AsciiToString(e):null}childrenForFieldName(r){const e=this.tree.language.fields.indexOf(r);return e!==-1&&e!==0?this.childrenForFieldId(e):[]}childrenForFieldId(r){marshalNode(this),C._ts_node_children_by_field_id_wasm(this.tree[0],r);const e=C.getValue(TRANSFER_BUFFER,"i32"),n=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),A=new Array(e);if(e>0){let o=n;for(let s=0;s<e;s++)A[s]=unmarshalNode(this.tree,o),o+=SIZE_OF_NODE;C._free(n)}return A}firstChildForIndex(r){marshalNode(this);const e=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(e,r,"i32"),C._ts_node_first_child_for_byte_wasm(this.tree[0]),unmarshalNode(this.tree)}firstNamedChildForIndex(r){marshalNode(this);const e=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(e,r,"i32"),C._ts_node_first_named_child_for_byte_wasm(this.tree[0]),unmarshalNode(this.tree)}get childCount(){return marshalNode(this),C._ts_node_child_count_wasm(this.tree[0])}get namedChildCount(){return marshalNode(this),C._ts_node_named_child_count_wasm(this.tree[0])}get firstChild(){return this.child(0)}get firstNamedChild(){return this.namedChild(0)}get lastChild(){return this.child(this.childCount-1)}get lastNamedChild(){return this.namedChild(this.namedChildCount-1)}get children(){if(!this._children){marshalNode(this),C._ts_node_children_wasm(this.tree[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32");if(this._children=new Array(r),r>0){let n=e;for(let A=0;A<r;A++)this._children[A]=unmarshalNode(this.tree,n),n+=SIZE_OF_NODE;C._free(e)}}return this._children}get namedChildren(){if(!this._namedChildren){marshalNode(this),C._ts_node_named_children_wasm(this.tree[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32");if(this._namedChildren=new Array(r),r>0){let n=e;for(let A=0;A<r;A++)this._namedChildren[A]=unmarshalNode(this.tree,n),n+=SIZE_OF_NODE;C._free(e)}}return this._namedChildren}descendantsOfType(r,e=ZERO_POINT,n=ZERO_POINT){Array.isArray(r)||(r=[r]);const A=[],o=this.tree.language.types;for(const g of r)g=="ERROR"&&A.push(65535);for(let g=0,h=o.length;g<h;g++)r.includes(o[g])&&A.push(g);const s=C._malloc(SIZE_OF_INT*A.length);for(let g=0,h=A.length;g<h;g++)C.setValue(s+g*SIZE_OF_INT,A[g],"i32");marshalNode(this),C._ts_node_descendants_of_type_wasm(this.tree[0],s,A.length,e.row,e.column,n.row,n.column);const a=C.getValue(TRANSFER_BUFFER,"i32"),l=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),c=new Array(a);if(a>0){let g=l;for(let h=0;h<a;h++)c[h]=unmarshalNode(this.tree,g),g+=SIZE_OF_NODE}return C._free(l),C._free(s),c}get nextSibling(){return marshalNode(this),C._ts_node_next_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get previousSibling(){return marshalNode(this),C._ts_node_prev_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get nextNamedSibling(){return marshalNode(this),C._ts_node_next_named_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get previousNamedSibling(){return marshalNode(this),C._ts_node_prev_named_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get descendantCount(){return marshalNode(this),C._ts_node_descendant_count_wasm(this.tree[0])}get parent(){return marshalNode(this),C._ts_node_parent_wasm(this.tree[0]),unmarshalNode(this.tree)}childWithDescendant(r){return marshalNode(this),marshalNode(r,1),C._ts_node_child_with_descendant_wasm(this.tree[0]),unmarshalNode(this.tree)}descendantForIndex(r,e=r){if(typeof r!="number"||typeof e!="number")throw new Error("Arguments must be numbers");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(n,r,"i32"),C.setValue(n+SIZE_OF_INT,e,"i32"),C._ts_node_descendant_for_index_wasm(this.tree[0]),unmarshalNode(this.tree)}namedDescendantForIndex(r,e=r){if(typeof r!="number"||typeof e!="number")throw new Error("Arguments must be numbers");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(n,r,"i32"),C.setValue(n+SIZE_OF_INT,e,"i32"),C._ts_node_named_descendant_for_index_wasm(this.tree[0]),unmarshalNode(this.tree)}descendantForPosition(r,e=r){if(!isPoint(r)||!isPoint(e))throw new Error("Arguments must be {row, column} objects");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return marshalPoint(n,r),marshalPoint(n+SIZE_OF_POINT,e),C._ts_node_descendant_for_position_wasm(this.tree[0]),unmarshalNode(this.tree)}namedDescendantForPosition(r,e=r){if(!isPoint(r)||!isPoint(e))throw new Error("Arguments must be {row, column} objects");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return marshalPoint(n,r),marshalPoint(n+SIZE_OF_POINT,e),C._ts_node_named_descendant_for_position_wasm(this.tree[0]),unmarshalNode(this.tree)}walk(){return marshalNode(this),C._ts_tree_cursor_new_wasm(this.tree[0]),new TreeCursor(INTERNAL,this.tree)}edit(r){if(this.startIndex>=r.oldEndIndex){this.startIndex=r.newEndIndex+(this.startIndex-r.oldEndIndex);let e,n;this.startPosition.row>r.oldEndPosition.row?(e=this.startPosition.row-r.oldEndPosition.row,n=this.startPosition.column):(e=0,n=this.startPosition.column,this.startPosition.column>=r.oldEndPosition.column&&(n=this.startPosition.column-r.oldEndPosition.column)),e>0?(this.startPosition.row+=e,this.startPosition.column=n):this.startPosition.column+=n}else this.startIndex>r.startIndex&&(this.startIndex=r.newEndIndex,this.startPosition.row=r.newEndPosition.row,this.startPosition.column=r.newEndPosition.column)}toString(){marshalNode(this);const r=C._ts_node_to_string_wasm(this.tree[0]),e=C.AsciiToString(r);return C._free(r),e}};function unmarshalCaptures(r,e,n,A,o){for(let s=0,a=o.length;s<a;s++){const l=C.getValue(n,"i32");n+=SIZE_OF_INT;const c=unmarshalNode(e,n);n+=SIZE_OF_NODE,o[s]={patternIndex:A,name:r.captureNames[l],node:c}}return n}__name(unmarshalCaptures,"unmarshalCaptures");function marshalNode(r,e=0){let n=TRANSFER_BUFFER+e*SIZE_OF_NODE;C.setValue(n,r.id,"i32"),n+=SIZE_OF_INT,C.setValue(n,r.startIndex,"i32"),n+=SIZE_OF_INT,C.setValue(n,r.startPosition.row,"i32"),n+=SIZE_OF_INT,C.setValue(n,r.startPosition.column,"i32"),n+=SIZE_OF_INT,C.setValue(n,r[0],"i32")}__name(marshalNode,"marshalNode");function unmarshalNode(r,e=TRANSFER_BUFFER){const n=C.getValue(e,"i32");if(e+=SIZE_OF_INT,n===0)return null;const A=C.getValue(e,"i32");e+=SIZE_OF_INT;const o=C.getValue(e,"i32");e+=SIZE_OF_INT;const s=C.getValue(e,"i32");e+=SIZE_OF_INT;const a=C.getValue(e,"i32");return new Node(INTERNAL,{id:n,tree:r,startIndex:A,startPosition:{row:o,column:s},other:a})}__name(unmarshalNode,"unmarshalNode");function marshalTreeCursor(r,e=TRANSFER_BUFFER){C.setValue(e+0*SIZE_OF_INT,r[0],"i32"),C.setValue(e+1*SIZE_OF_INT,r[1],"i32"),C.setValue(e+2*SIZE_OF_INT,r[2],"i32"),C.setValue(e+3*SIZE_OF_INT,r[3],"i32")}__name(marshalTreeCursor,"marshalTreeCursor");function unmarshalTreeCursor(r){r[0]=C.getValue(TRANSFER_BUFFER+0*SIZE_OF_INT,"i32"),r[1]=C.getValue(TRANSFER_BUFFER+1*SIZE_OF_INT,"i32"),r[2]=C.getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,"i32"),r[3]=C.getValue(TRANSFER_BUFFER+3*SIZE_OF_INT,"i32")}__name(unmarshalTreeCursor,"unmarshalTreeCursor");function marshalPoint(r,e){C.setValue(r,e.row,"i32"),C.setValue(r+SIZE_OF_INT,e.column,"i32")}__name(marshalPoint,"marshalPoint");function unmarshalPoint(r){return{row:C.getValue(r,"i32")>>>0,column:C.getValue(r+SIZE_OF_INT,"i32")>>>0}}__name(unmarshalPoint,"unmarshalPoint");function marshalRange(r,e){marshalPoint(r,e.startPosition),r+=SIZE_OF_POINT,marshalPoint(r,e.endPosition),r+=SIZE_OF_POINT,C.setValue(r,e.startIndex,"i32"),r+=SIZE_OF_INT,C.setValue(r,e.endIndex,"i32"),r+=SIZE_OF_INT}__name(marshalRange,"marshalRange");function unmarshalRange(r){const e={};return e.startPosition=unmarshalPoint(r),r+=SIZE_OF_POINT,e.endPosition=unmarshalPoint(r),r+=SIZE_OF_POINT,e.startIndex=C.getValue(r,"i32")>>>0,r+=SIZE_OF_INT,e.endIndex=C.getValue(r,"i32")>>>0,e}__name(unmarshalRange,"unmarshalRange");function marshalEdit(r,e=TRANSFER_BUFFER){marshalPoint(e,r.startPosition),e+=SIZE_OF_POINT,marshalPoint(e,r.oldEndPosition),e+=SIZE_OF_POINT,marshalPoint(e,r.newEndPosition),e+=SIZE_OF_POINT,C.setValue(e,r.startIndex,"i32"),e+=SIZE_OF_INT,C.setValue(e,r.oldEndIndex,"i32"),e+=SIZE_OF_INT,C.setValue(e,r.newEndIndex,"i32"),e+=SIZE_OF_INT}__name(marshalEdit,"marshalEdit");function unmarshalLanguageMetadata(r){const e=C.getValue(r,"i32"),n=C.getValue(r+=SIZE_OF_INT,"i32"),A=C.getValue(r+=SIZE_OF_INT,"i32");return{major_version:e,minor_version:n,patch_version:A}}__name(unmarshalLanguageMetadata,"unmarshalLanguageMetadata");var LANGUAGE_FUNCTION_REGEX=/^tree_sitter_\w+$/,Language=class Et{static{__name(this,"Language")}0=0;types;fields;constructor(e,n){assertInternal(e),this[0]=n,this.types=new Array(C._ts_language_symbol_count(this[0]));for(let A=0,o=this.types.length;A<o;A++)C._ts_language_symbol_type(this[0],A)<2&&(this.types[A]=C.UTF8ToString(C._ts_language_symbol_name(this[0],A)));this.fields=new Array(C._ts_language_field_count(this[0])+1);for(let A=0,o=this.fields.length;A<o;A++){const s=C._ts_language_field_name_for_id(this[0],A);s!==0?this.fields[A]=C.UTF8ToString(s):this.fields[A]=null}}get name(){const e=C._ts_language_name(this[0]);return e===0?null:C.UTF8ToString(e)}get abiVersion(){return C._ts_language_abi_version(this[0])}get metadata(){return C._ts_language_metadata_wasm(this[0]),C.getValue(TRANSFER_BUFFER,"i32")===0?null:unmarshalLanguageMetadata(TRANSFER_BUFFER+SIZE_OF_INT)}get fieldCount(){return this.fields.length-1}get stateCount(){return C._ts_language_state_count(this[0])}fieldIdForName(e){const n=this.fields.indexOf(e);return n!==-1?n:null}fieldNameForId(e){return this.fields[e]??null}idForNodeType(e,n){const A=C.lengthBytesUTF8(e),o=C._malloc(A+1);C.stringToUTF8(e,o,A+1);const s=C._ts_language_symbol_for_name(this[0],o,A,n?1:0);return C._free(o),s||null}get nodeTypeCount(){return C._ts_language_symbol_count(this[0])}nodeTypeForId(e){const n=C._ts_language_symbol_name(this[0],e);return n?C.UTF8ToString(n):null}nodeTypeIsNamed(e){return!!C._ts_language_type_is_named_wasm(this[0],e)}nodeTypeIsVisible(e){return!!C._ts_language_type_is_visible_wasm(this[0],e)}get supertypes(){C._ts_language_supertypes_wasm(this[0]);const e=C.getValue(TRANSFER_BUFFER,"i32"),n=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),A=new Array(e);if(e>0){let o=n;for(let s=0;s<e;s++)A[s]=C.getValue(o,"i16"),o+=SIZE_OF_SHORT}return A}subtypes(e){C._ts_language_subtypes_wasm(this[0],e);const n=C.getValue(TRANSFER_BUFFER,"i32"),A=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),o=new Array(n);if(n>0){let s=A;for(let a=0;a<n;a++)o[a]=C.getValue(s,"i16"),s+=SIZE_OF_SHORT}return o}nextState(e,n){return C._ts_language_next_state(this[0],e,n)}lookaheadIterator(e){const n=C._ts_lookahead_iterator_new(this[0],e);return n?new LookaheadIterator(INTERNAL,n,this):null}static async load(e){let n;if(e instanceof Uint8Array)n=e;else if(globalThis.process?.versions.node)n=await(await Promise.resolve().then(()=>__viteBrowserExternal)).readFile(e);else{const l=await fetch(e);if(!l.ok){const g=await l.text();throw new Error(`Language.load failed with status ${l.status}.
|
|
204
204
|
|
|
205
205
|
${g}`)}const c=l.clone();try{n=await WebAssembly.compileStreaming(l)}catch(g){console.error("wasm streaming compile failed:",g),console.error("falling back to ArrayBuffer instantiation"),n=new Uint8Array(await c.arrayBuffer())}}const A=await C.loadWebAssemblyModule(n,{loadAsync:!0}),o=Object.keys(A),s=o.find(l=>LANGUAGE_FUNCTION_REGEX.test(l)&&!l.includes("external_scanner_"));if(!s)throw console.log(`Couldn't find language function in Wasm file. Symbols:
|
|
206
|
-
${JSON.stringify(o,null,2)}`),new Error("Language.load failed: no language function found in Wasm file");const a=A[s]();return new Et(INTERNAL,a)}};async function Module2(moduleArg={}){var moduleRtn,Module=moduleArg,ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope<"u",ENVIRONMENT_IS_NODE=typeof process=="object"&&process.versions?.node&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire:r}=await Promise.resolve().then(()=>__viteBrowserExternal);var require$1=r(typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-VbsIpWqm.cjs",document.baseURI).href)}Module.currentQueryProgressCallback=null,Module.currentProgressCallback=null,Module.currentLogCallback=null,Module.currentParseCallback=null;var arguments_=[],thisProgram="./this.program",quit_=__name((r,e)=>{throw e},"quit_"),_scriptName=typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-VbsIpWqm.cjs",document.baseURI).href,scriptDirectory="";function locateFile(r){return Module.locateFile?Module.locateFile(r,scriptDirectory):scriptDirectory+r}__name(locateFile,"locateFile");var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require$1("fs");_scriptName.startsWith("file:")&&(scriptDirectory=require$1("path").dirname(require$1("url").fileURLToPath(_scriptName))+"/"),readBinary=__name(r=>{r=isFileURI(r)?new URL(r):r;var e=fs.readFileSync(r);return e},"readBinary"),readAsync=__name(async(r,e=!0)=>{r=isFileURI(r)?new URL(r):r;var n=fs.readFileSync(r,e?void 0:"utf8");return n},"readAsync"),process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),quit_=__name((r,e)=>{throw process.exitCode=r,e},"quit_")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}ENVIRONMENT_IS_WORKER&&(readBinary=__name(r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},"readBinary")),readAsync=__name(async r=>{if(isFileURI(r))return new Promise((n,A)=>{var o=new XMLHttpRequest;o.open("GET",r,!0),o.responseType="arraybuffer",o.onload=()=>{if(o.status==200||o.status==0&&o.response){n(o.response);return}A(o.status)},o.onerror=A,o.send(null)});var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},"readAsync")}var out=console.log.bind(console),err=console.error.bind(console),dynamicLibraries=[],wasmBinary,ABORT=!1,EXITSTATUS,isFileURI=__name(r=>r.startsWith("file://"),"isFileURI"),readyPromiseResolve,readyPromiseReject,wasmMemory,HEAP8,HEAPU8,HEAPU16,HEAPU32,HEAP_DATA_VIEW,runtimeInitialized=!1;function updateMemoryViews(){var r=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(r),Module.HEAP16=new Int16Array(r),Module.HEAPU8=HEAPU8=new Uint8Array(r),Module.HEAPU16=HEAPU16=new Uint16Array(r),Module.HEAP32=new Int32Array(r),Module.HEAPU32=HEAPU32=new Uint32Array(r),Module.HEAPF32=new Float32Array(r),Module.HEAPF64=new Float64Array(r),Module.HEAP64=new BigInt64Array(r),Module.HEAPU64=new BigUint64Array(r),Module.HEAP_DATA_VIEW=HEAP_DATA_VIEW=new DataView(r),LE_HEAP_UPDATE()}__name(updateMemoryViews,"updateMemoryViews");function initMemory(){if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else{var r=Module.INITIAL_MEMORY||33554432;wasmMemory=new WebAssembly.Memory({initial:r/65536,maximum:32768})}updateMemoryViews()}__name(initMemory,"initMemory");var __RELOC_FUNCS__=[];function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(onPreRuns)}__name(preRun,"preRun");function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),wasmExports.__wasm_call_ctors(),callRuntimeCallbacks(onPostCtors)}__name(initRuntime,"initRuntime");function preMain(){}__name(preMain,"preMain");function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}__name(postRun,"postRun");function abort(r){Module.onAbort?.(r),r="Aborted("+r+")",err(r),ABORT=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw readyPromiseReject?.(e),e}__name(abort,"abort");var wasmBinaryFile;function findWasmBinary(){return Module.locateFile?locateFile("web-tree-sitter.wasm"):new URL("data:application/wasm;base64,AGFzbQEAAAAAEAhkeWxpbmsuMAEFnFsEHgABswEXYAF/AX9gAn9/AX9gAX8AYAN/f38AYAN/f38Bf2ACf38AYAR/f39/AX9gBX9/f39/AGAEf39/fwBgAABgBX9/f39/AX9gAAF/YAh/f39/f39/fwF/YAd/f39/f39/AGAGf3x/f39/AX9gEH9/f39/f39/f39/f39/f38AYAZ/f39/f38AYAJ+fwF/YAd/f39/f39/AX9gAnx/AXxgBH9/f38BfmAEf35/fwF/YAN/fn8BfgLbAxEWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAGA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAAWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQdmZF9zZWVrABUDZW52CV9hYm9ydF9qcwAJFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfY2xvc2UAAANlbnYjdHJlZV9zaXR0ZXJfcXVlcnlfcHJvZ3Jlc3NfY2FsbGJhY2sAAANlbnYddHJlZV9zaXR0ZXJfcHJvZ3Jlc3NfY2FsbGJhY2sAAQNlbnYadHJlZV9zaXR0ZXJfcGFyc2VfY2FsbGJhY2sABwNlbnYYdHJlZV9zaXR0ZXJfbG9nX2NhbGxiYWNrAAUDZW52D19fc3RhY2tfcG9pbnRlcgN/AQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYMX190YWJsZV9iYXNlA38AB0dPVC5tZW0LX19zdGFja19sb3cDfwEHR09ULm1lbQxfX3N0YWNrX2hpZ2gDfwEHR09ULm1lbQtfX2hlYXBfYmFzZQN/AQNlbnYGbWVtb3J5AgGABICAAgNlbnYZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQFwAB4DlQKTAgUFBgACAwcFBQQABQUCBwMQAwQAAwYKAwAAEQQEBQMCAgEEAAQBAQwBAgQABQgHBAIBAwgAAAUCBQAJAQMBAAQLAgIIDAMFAQYDBAcNBwgDAwAABQEBBggAEhMEAAAABAUEBAQAFAAFBwUKBAgFAQEDAwUDAQEBAQEEBAQEAAAACgEBAgMBAQUCAAAAAAEABAQAAwQAAAsAAgAAAAAFBAAFDgQBBBYADwACDwAAAAAAAAAADQECAgAAAAICAgICCQICAgACAgICBQUBBQAAAAICBQEBAAIAAAAAAAICAAAAAAAABQAAAAAAAQAFAgICAgUCAgICBQICAQECAAYKAAMFCQsEBAQAAgAEAAEBAQEAAAkJBjkIfwFByNMAC38BQcDTAAt/AUHM0wALfwFBxNMAC38BQYjVAAt/AUGQ1QALfwFBlNsAC38BQZjbAAsHhiGYARFfX3dhc21fY2FsbF9jdG9ycwCbAgZtYWxsb2MAIgZjYWxsb2MAKgdyZWFsbG9jAF0EZnJlZQAyDXRzX3JhbmdlX2VkaXQATwZtZW1jbXAAEhh0c19sYW5ndWFnZV9zeW1ib2xfY291bnQAmQIXdHNfbGFuZ3VhZ2Vfc3RhdGVfY291bnQAmAIXdHNfbGFuZ3VhZ2VfYWJpX3ZlcnNpb24AkwIQdHNfbGFuZ3VhZ2VfbmFtZQCPAhd0c19sYW5ndWFnZV9maWVsZF9jb3VudACHAhZ0c19sYW5ndWFnZV9uZXh0X3N0YXRlACsXdHNfbGFuZ3VhZ2Vfc3ltYm9sX25hbWUA8gEbdHNfbGFuZ3VhZ2Vfc3ltYm9sX2Zvcl9uYW1lAB4Hc3RybmNtcAAbF3RzX2xhbmd1YWdlX3N5bWJvbF90eXBlAEQddHNfbGFuZ3VhZ2VfZmllbGRfbmFtZV9mb3JfaWQA0wEZdHNfbG9va2FoZWFkX2l0ZXJhdG9yX25ldwC9ARx0c19sb29rYWhlYWRfaXRlcmF0b3JfZGVsZXRlALIBIXRzX2xvb2thaGVhZF9pdGVyYXRvcl9yZXNldF9zdGF0ZQCsARt0c19sb29rYWhlYWRfaXRlcmF0b3JfcmVzZXQAqwEadHNfbG9va2FoZWFkX2l0ZXJhdG9yX25leHQAqAEkdHNfbG9va2FoZWFkX2l0ZXJhdG9yX2N1cnJlbnRfc3ltYm9sAKUBDXRzX3BvaW50X2VkaXQAjQEQdHNfcGFyc2VyX2RlbGV0ZQCMAQ90c19wYXJzZXJfcmVzZXQAKRZ0c19wYXJzZXJfc2V0X2xhbmd1YWdlAIsBHXRzX3BhcnNlcl9zZXRfaW5jbHVkZWRfcmFuZ2VzADgMdHNfcXVlcnlfbmV3AIkBD3RzX3F1ZXJ5X2RlbGV0ZQBLCGlzd3NwYWNlAGYIaXN3YWxudW0AExZ0c19xdWVyeV9wYXR0ZXJuX2NvdW50AIgBFnRzX3F1ZXJ5X2NhcHR1cmVfY291bnQAhwEVdHNfcXVlcnlfc3RyaW5nX2NvdW50AIYBHHRzX3F1ZXJ5X2NhcHR1cmVfbmFtZV9mb3JfaWQAhQEidHNfcXVlcnlfY2FwdHVyZV9xdWFudGlmaWVyX2Zvcl9pZACEARx0c19xdWVyeV9zdHJpbmdfdmFsdWVfZm9yX2lkAIMBH3RzX3F1ZXJ5X3ByZWRpY2F0ZXNfZm9yX3BhdHRlcm4AggEfdHNfcXVlcnlfc3RhcnRfYnl0ZV9mb3JfcGF0dGVybgCBAR10c19xdWVyeV9lbmRfYnl0ZV9mb3JfcGF0dGVybgCAARp0c19xdWVyeV9pc19wYXR0ZXJuX3Jvb3RlZAB/HXRzX3F1ZXJ5X2lzX3BhdHRlcm5fbm9uX2xvY2FsAH4mdHNfcXVlcnlfaXNfcGF0dGVybl9ndWFyYW50ZWVkX2F0X3N0ZXAAfRh0c19xdWVyeV9kaXNhYmxlX2NhcHR1cmUAfBh0c19xdWVyeV9kaXNhYmxlX3BhdHRlcm4Aewx0c190cmVlX2NvcHkAkQIOdHNfdHJlZV9kZWxldGUAkAIHdHNfaW5pdACLAhJ0c19wYXJzZXJfbmV3X3dhc20AigIcdHNfcGFyc2VyX2VuYWJsZV9sb2dnZXJfd2FzbQCJAhR0c19wYXJzZXJfcGFyc2Vfd2FzbQCGAh50c19wYXJzZXJfaW5jbHVkZWRfcmFuZ2VzX3dhc20AgwIedHNfbGFuZ3VhZ2VfdHlwZV9pc19uYW1lZF93YXNtAIICIHRzX2xhbmd1YWdlX3R5cGVfaXNfdmlzaWJsZV93YXNtAIECGXRzX2xhbmd1YWdlX21ldGFkYXRhX3dhc20AgAIbdHNfbGFuZ3VhZ2Vfc3VwZXJ0eXBlc193YXNtAP8BGXRzX2xhbmd1YWdlX3N1YnR5cGVzX3dhc20A/gEWdHNfdHJlZV9yb290X25vZGVfd2FzbQD9ASJ0c190cmVlX3Jvb3Rfbm9kZV93aXRoX29mZnNldF93YXNtAPwBEXRzX3RyZWVfZWRpdF93YXNtAPsBHHRzX3RyZWVfaW5jbHVkZWRfcmFuZ2VzX3dhc20A+gEfdHNfdHJlZV9nZXRfY2hhbmdlZF9yYW5nZXNfd2FzbQD5ARd0c190cmVlX2N1cnNvcl9uZXdfd2FzbQD4ARh0c190cmVlX2N1cnNvcl9jb3B5X3dhc20A9wEadHNfdHJlZV9jdXJzb3JfZGVsZXRlX3dhc20A9gEZdHNfdHJlZV9jdXJzb3JfcmVzZXRfd2FzbQD1ARx0c190cmVlX2N1cnNvcl9yZXNldF90b193YXNtAPQBJHRzX3RyZWVfY3Vyc29yX2dvdG9fZmlyc3RfY2hpbGRfd2FzbQDzASN0c190cmVlX2N1cnNvcl9nb3RvX2xhc3RfY2hpbGRfd2FzbQDxAS50c190cmVlX2N1cnNvcl9nb3RvX2ZpcnN0X2NoaWxkX2Zvcl9pbmRleF93YXNtAPABMXRzX3RyZWVfY3Vyc29yX2dvdG9fZmlyc3RfY2hpbGRfZm9yX3Bvc2l0aW9uX3dhc20A7wEldHNfdHJlZV9jdXJzb3JfZ290b19uZXh0X3NpYmxpbmdfd2FzbQDuASl0c190cmVlX2N1cnNvcl9nb3RvX3ByZXZpb3VzX3NpYmxpbmdfd2FzbQDtASN0c190cmVlX2N1cnNvcl9nb3RvX2Rlc2NlbmRhbnRfd2FzbQDsAR90c190cmVlX2N1cnNvcl9nb3RvX3BhcmVudF93YXNtAOsBKHRzX3RyZWVfY3Vyc29yX2N1cnJlbnRfbm9kZV90eXBlX2lkX3dhc20A6gEpdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX3N0YXRlX2lkX3dhc20A6QEpdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX2lzX25hbWVkX3dhc20A6AErdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX2lzX21pc3Npbmdfd2FzbQDnASN0c190cmVlX2N1cnNvcl9jdXJyZW50X25vZGVfaWRfd2FzbQDmASJ0c190cmVlX2N1cnNvcl9zdGFydF9wb3NpdGlvbl93YXNtAOUBIHRzX3RyZWVfY3Vyc29yX2VuZF9wb3NpdGlvbl93YXNtAOQBH3RzX3RyZWVfY3Vyc29yX3N0YXJ0X2luZGV4X3dhc20A4wEddHNfdHJlZV9jdXJzb3JfZW5kX2luZGV4X3dhc20A4gEkdHNfdHJlZV9jdXJzb3JfY3VycmVudF9maWVsZF9pZF93YXNtAOEBIXRzX3RyZWVfY3Vyc29yX2N1cnJlbnRfZGVwdGhfd2FzbQDgASx0c190cmVlX2N1cnNvcl9jdXJyZW50X2Rlc2NlbmRhbnRfaW5kZXhfd2FzbQDfASB0c190cmVlX2N1cnNvcl9jdXJyZW50X25vZGVfd2FzbQDeARN0c19ub2RlX3N5bWJvbF93YXNtAN0BIXRzX25vZGVfZmllbGRfbmFtZV9mb3JfY2hpbGRfd2FzbQDcASd0c19ub2RlX2ZpZWxkX25hbWVfZm9yX25hbWVkX2NoaWxkX3dhc20A2wEhdHNfbm9kZV9jaGlsZHJlbl9ieV9maWVsZF9pZF93YXNtANoBIXRzX25vZGVfZmlyc3RfY2hpbGRfZm9yX2J5dGVfd2FzbQDZASd0c19ub2RlX2ZpcnN0X25hbWVkX2NoaWxkX2Zvcl9ieXRlX3dhc20A2AEbdHNfbm9kZV9ncmFtbWFyX3N5bWJvbF93YXNtANcBGHRzX25vZGVfY2hpbGRfY291bnRfd2FzbQDWAR50c19ub2RlX25hbWVkX2NoaWxkX2NvdW50X3dhc20A1QESdHNfbm9kZV9jaGlsZF93YXNtANQBGHRzX25vZGVfbmFtZWRfY2hpbGRfd2FzbQDSAR50c19ub2RlX2NoaWxkX2J5X2ZpZWxkX2lkX3dhc20A0QEZdHNfbm9kZV9uZXh0X3NpYmxpbmdfd2FzbQDQARl0c19ub2RlX3ByZXZfc2libGluZ193YXNtAM8BH3RzX25vZGVfbmV4dF9uYW1lZF9zaWJsaW5nX3dhc20AzgEfdHNfbm9kZV9wcmV2X25hbWVkX3NpYmxpbmdfd2FzbQDNAR10c19ub2RlX2Rlc2NlbmRhbnRfY291bnRfd2FzbQDMARN0c19ub2RlX3BhcmVudF93YXNtAMsBInRzX25vZGVfY2hpbGRfd2l0aF9kZXNjZW5kYW50X3dhc20AygEhdHNfbm9kZV9kZXNjZW5kYW50X2Zvcl9pbmRleF93YXNtAMkBJ3RzX25vZGVfbmFtZWRfZGVzY2VuZGFudF9mb3JfaW5kZXhfd2FzbQDHASR0c19ub2RlX2Rlc2NlbmRhbnRfZm9yX3Bvc2l0aW9uX3dhc20AxgEqdHNfbm9kZV9uYW1lZF9kZXNjZW5kYW50X2Zvcl9wb3NpdGlvbl93YXNtAMUBGHRzX25vZGVfc3RhcnRfcG9pbnRfd2FzbQDEARZ0c19ub2RlX2VuZF9wb2ludF93YXNtAMMBGHRzX25vZGVfc3RhcnRfaW5kZXhfd2FzbQDCARZ0c19ub2RlX2VuZF9pbmRleF93YXNtAMEBFnRzX25vZGVfdG9fc3RyaW5nX3dhc20AwAEVdHNfbm9kZV9jaGlsZHJlbl93YXNtAL8BG3RzX25vZGVfbmFtZWRfY2hpbGRyZW5fd2FzbQC+ASB0c19ub2RlX2Rlc2NlbmRhbnRzX29mX3R5cGVfd2FzbQC8ARV0c19ub2RlX2lzX25hbWVkX3dhc20AuwEYdHNfbm9kZV9oYXNfY2hhbmdlc193YXNtALoBFnRzX25vZGVfaGFzX2Vycm9yX3dhc20AuQEVdHNfbm9kZV9pc19lcnJvcl93YXNtALgBF3RzX25vZGVfaXNfbWlzc2luZ193YXNtALcBFXRzX25vZGVfaXNfZXh0cmFfd2FzbQC2ARh0c19ub2RlX3BhcnNlX3N0YXRlX3dhc20AtQEddHNfbm9kZV9uZXh0X3BhcnNlX3N0YXRlX3dhc20AtAEVdHNfcXVlcnlfbWF0Y2hlc193YXNtALMBFnRzX3F1ZXJ5X2NhcHR1cmVzX3dhc20AsAEGbWVtc2V0ADMGbWVtY3B5ACQHbWVtbW92ZQCZAQhpc3dhbHBoYQBnCGlzd2JsYW5rAJ0BCGlzd2RpZ2l0AKIBCGlzd2xvd2VyAJ4BCGlzd3VwcGVyAJoBCWlzd3hkaWdpdACXAQZtZW1jaHIAZAZzdHJsZW4AZQZzdHJjbXAAlgEHc3RybmNhdACcAQdzdHJuY3B5AJgBCHRvd2xvd2VyAKQBCHRvd3VwcGVyAKMBCHNldFRocmV3AKYBGV9lbXNjcmlwdGVuX3N0YWNrX3Jlc3RvcmUAoQEXX2Vtc2NyaXB0ZW5fc3RhY2tfYWxsb2MAoAEcZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudACfARhfX3dhc21fYXBwbHlfZGF0YV9yZWxvY3MAmgIIAsgBCUABACMCCx6bAZUBlAGSAZEBkAGKAZcClQKWApQCJZICkwGPAY4BMo4CjQKMAogChQKEArEBrwGtAa4BqgGpAacBDAEBCtSBC5MC0AEBA38CQCABKAJMIgJBAE4EQCACRQ0BIwFBlNYAaigCGCACQf////8DcUcNAQsCQCAAQf8BcSIDIAEoAlBG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IAQgCy8BSk0NASALIAQ7AUogACgCPCAEQRRsaiEHDAALAAsgGigCFCAQSw0ACwwACwALIBVBAWoiFSADKAIETw0BIAMoAhAhBAwACwALIAsgAygCCDYCECALIAMpAgA3AwggAyARKAIINgIIIAMgESkCADcCACARIAsoAhA2AgggESALKQMINwIACyAjQQFqIiNBgAJHDQALIANBAToASAsgC0HQAGokAAu5IAIZfwF+IwBBgAJrIggkACAAKAKECSIJKAIEIRogCCADNgLYASAIQYQBaiAJIAEjAkEHaiAIQdgBaiADEBkgACgChAkiAygCBCILBH8gAygCACERQQAhCUEAIQMgC0EETwRAIAtBfHEhDANAIAkgESADQQV0aiIQKAIcQQJGaiAQKAI8QQJGaiAQKAJcQQJGaiAQKAJ8QQJGaiEJIANBBGohAyANQQRqIg0gDEcNAAsLIAtBA3EiEARAA0AgCSARIANBBXRqKAIcQQJGaiEJIANBAWohAyAKQQFqIgogEEcNAAsLIAlBCmoFQQoLIRsgCCgCiAEiEgRAQRhBACACQf3/A0sbIRwgAEGEAWohESAAQYgJaiEXIABBvAlqIR0gAkEDbCEeQQAhEANAIAgoAoQBIg4gEEEEdGoiAygCBCEKIAMoAgAhCQJAIBsgAygCDCIUIBhrIhlJBEAgACgChAkgGRARQQAhAyAKBEADQCAIIAkgA0EDdGopAgA3AwggFyAIQQhqEAogA0EBaiIDIApHDQALCyAJBEAgCSMIKAIAEQIACyAYQQFqIRggEEEBaiIDIBJPDQEDQCADIQoCQAJAIAAoAmAiCUUEQCAAKAKMCkUNAiARIwEiAykAnQM3AAAgESADKQC8AzcAHyARIAMpALUDNwAYIBEgAykArQM3ABAgESADKQClAzcACAwBCyARIwEiAykAnQM3AAAgESADKQC8AzcAHyARIAMpALUDNwAYIBEgAykArQM3ABAgESADKQClAzcACCAAKAJcQQAgESAJEQMAIAAoAowKRQ0BCyARIQkDQAJAAkAgCS0AACIDQSJGDQAgA0HcAEYNACADDQEMAwtB3AAgACgCjAoQCSAJLQAAIQMLIAPAIAAoAowKEAkgCUEBaiEJDAALAAsgDiAKQQR0aiIMKAIMIBRHDQIgDCgCACEJQQAhAyAMKAIEIhAEQANA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BEF/NgJMIAQjAkEdajYCJCAEQX82AlAgBCAEQZ8BajYCLCAEIARBlAFqNgJUIAZBADoAACMAQdABayIFJAAgBSADNgLMASAFQaABaiIAQQBBKPwLACAFIAUoAswBNgLIAQJAQQAgAiAFQcgBaiAFQdAAaiAAIwIiAEEbaiIGIABBHGoiABBiQQBIBEBBfyEADAELIAQoAkxBAEggBCAEKAIAIgFBX3E2AgACfwJAAkAgBCgCMEUEQCAEQdAANgIwIARBADYCHCAEQgA3AxAgBCgCLCEHIAQgBTYCLAwBCyAEKAIQDQELQX8gBBBCDQEaCyAEIAIgBUHIAWogBUHQAGogBUGgAWogBiAAEGILIQIgBwRAIARBAEEAIAQoAiQRBAAaIARBADYCMCAEIAc2AiwgBEEANgIcIAQoAhQhACAEQgA3AxAgAkF/IAAbIQILIAQgBCgCACIAIAFBIHFyNgIAQX8gAiAAQSBxGyEADQALIAVB0AFqJAAgBEGgAWokACAAC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRBQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC28BBX8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB/////wdzSxshBAsgACADQQFqIgU2AgAgAywAASAEIQIgBSEDQTBrIgFBCkkNAAsgAgucEwITfwJ+IwBBQGoiCCQAIAggATYCPCAIQSlqIRcgCEEnaiEYIAhBKGohEgJAAkACQAJAA0BBACEHA0AgASENIAcgDkH/////B3NKDQIgByAO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QQALMwEBfyAAECkgAEEANgKgCQJAIAEEQCABKAIAQRBrQX1JDQELIAAgATYCoAlBASECCyACC+wHAQp/IwBBIGsiAyQAIAAEQCAAECkgAEEANgKgCSAAKAKECSEBIwBBEGsiBiQAIAEoAgwiAgRAIAIjCCgCABECACABQQA2AhQgAUIANwIMCyABKAIYIgIEQCACIwgoAgARAgAgAUEANgIgIAFCADcCGAsgASgCMCABQSRqIgggASgCNBAaIAEoAgQiAgRAA0AgASgCACAFQQV0aiIEKAIABEAgASgCNCEHIAQoAgwEQCAGIAQpAgw3AwggByAGQQhqEAoLIAQoAhQEQCAGIAQpAhQ3AwAgByAGEAoLIAQoAgQiAgRAIAIoAgAiCgRAIAojCCgCABECACAEKAIEIQILIAJBADYCCCACQgA3AgAgAiMIKAIAEQIACyAEKAIAIAggBxAaIAEoAgQhAgsgBUEBaiIFIAJJDQALC0EAIQIgAUEANgIEIAEoAiQiBQRAAkAgASgCKARAA0AgASgCJCACQQJ0aigCACMIKAIAEQIAIAJBAWoiAiABKAIoSQ0ACyAIKAIAIgVFDQELIAUjCCgCABECAAsgAUEANgIsIAFCADcCJAsgASgCACICBEAgAiMIKAIAEQIACyABQQA2AgggAUIANwIAIAEjCCgCABECACAGQRBqJAAgACgCqAkiAQRAIAEjCCgCABECACAAQQA2ArAJIABCADcCqAkLIAAoAqAKIgEEQCABIwgoAgARAgAgAEEANgKoCiAAQgA3AqAKCyAAKAKYCgRAIAMgAEGYCmopAgA3AxggAEGICWogA0EYahAKIABCADcCmAoLIAAoAkQjCCgCABECACAAQeAJaiEBIAAoAuAJBEAgAyABKQIANwMQIABBiAlqIANBEGoQCgsgACgC6AkEQCADIABB6AlqKQIANwMIIABBiAlqIANBCGoQCgsgAUIANwIAIAFBADYCECABQgA3AgggACgCiAkiAQRAAkAgACgCjAkEQANAIAAoAogJIAlBA3RqKAIAIwgoAgARAgAgCUEBaiIJIAAoAowJSQ0ACyAAKAKICSIBRQ0BCyABIwgoAgARAgALIABBADYCkAkgAEIANwKICQsgACgClAkiAQRAIAEjCCgCABECACAAQQA2ApwJIABCADcClAkLIAAoAvQJIgEEQCABIwgoAgARAgALIABBADYC/AkgAEIANwL0CSAAKAK8CSIBBEAgASMIKAIAEQIACyAAQQA2AsQJIABCADcCvAkgACgCyAkiAQRAIAEjCCgCABECAAsgAEEANgLQCSAAQgA3AsgJIAAoAtQJIgEEQCABIwgoAgARAgALIABBADYC3AkgAEIANwLUCSAAIwgoAgARAgALIANBIGokAAuzAQIFfwF+IAApAgAiCEIgiKchAyAIpyEEAkAgASgCACIFIAIoAgQiB08EQCADIAIoAiAgAyACKAIYayIGQQAgAyAGTxtqIAQgAigCFCIGSxshAyACKAIcIAQgBmsiBkEAIAQgBk8baiEEIAIoAgggBSAHa2ohBQwBCyAFIAIoAgBNDQAgAikCHCIIQiCIpyEDIAIoAgghBSAIpyEECyAAIAStIAOtQiCGhDcCACABIAU2AgALGwAgACABEF0hAAJAIAFFDQAgAA0AEEMACyAACxsAIAAgARAqIQECQCAARQ0AIAENABBDAAsgAQvAAQEDfyMAQSBrIgMkACAAKAJIBEAgACgCYCECAkAgAQRAIAJFDQEgAyAAKAIAIgI2AgAgAEGEAWoiBEGACCMBQZoLQf0IIAJBIGtB3wBJG2ogAxALGiAAKAJcQQEgBCAAKAJgEQMADAELIAJFDQAgAyAAKAIAIgI2AhAgAEGEAWoiBEGACCMBQa4LQY8JIAJBIGtB3wBJG2ogA0EQahALGiAAKAJcQQEgBCAAKAJgEQMACyAAIAEQQQsgA0EgaiQAC2kBAn8CQCAAKAJoIgEgACgCZEYNACABRQ0AIAAoAiAgACgCRCABQRhsaiIBKAIQRw0AIAFBBGsoAgAhAiAAIAFBEGspAgA3AjwgACACNgI4DwsgACAAKQIgNwI4IABBQGsgACgCKDYCAAv6BQIJfwF+IwBBEGsiBSQAIABBAToAeAJAIAAtAIABDQAgACgCICIIIAAoAigiA2shASAAKAIkIQQgAwRAIABBADYCfCAAQQA6AIABCyAAQQA2AiggACAENgIkIAAgATYCICAAKAJEIQYCQAJ/IAAoAmQiBARAA0ACQCAGIAJBGGxqIgcoAhQiCSABTQ0AIAkgBygCECIDTQ0AIAEgA00EQCAAIAcpAgA3AiQgACADNgIgIAMhAQsgACACNgJoQQAhAiAAKAJIRQ0EIAAoAmwiAyABTQRAIAEgACgCcCADakkNBQsgAEEANgJIQQAMAwsgAkEBaiICIARHDQALCyAAIAQ2AmggBiAEQRhsaiIDQQRrKAIAIQEgA0EQaykCACEKIABBADYCSCAAIAo3AiQgACABNgIgQQELIQIgAEEANgJwCyAAQQE6AIABIABBADYCACAAIAI2AnQgAEEANgJ8IAAgATYCbCAAKAJQIQMgACgCTCECIAUgACkCJDcDCCAAIAIgASAFQQhqIABB8ABqIgQgAxEGACICNgJIIAAoAnAiAUUEQCAAQQA2AkggACAAKAJkNgJoDAELIAAoAmggACgCZEYNAAJAIAAoAiAgACgCbGsiAyABRgRAIABBADYCACAAQQE2AnQMAQsgACACIANqIAEgA2siASAAIwFB0NMAaiAAKAJUIgNBAnRqIABB2ABqIANBA0kbKAIAIgMRBAA2AnQgACgCACECAkAgAUEDSw0AIAJBf0cNACAAIAAoAiAiATYCbCAAKAJQIQIgACgCTCEGIAUgACkCJDcDACAAIAYgASAFIAQgAhEGACICNgJIIAAgACgCcCIBBH8gAgUgAEEANgJIIAAgACgCZDYCaEEACyABIAAgAxEEADYCdCAAKAIAIQILIAJBf0cNACAAQQE2AnQLA0AgACgCICAITw0BIAAoAmggACgCZEYNASAAKAJIRQ0BIABBABBBIAAoAmggACgCZEcNAAsLIAAoAnwgBUEQaiQACxsBAX8gABAiIQECQCAARQ0AIAENABBDAAsgAQsrAQJ/IAAoAmgiAiAAKAJkSQR/IAAoAiAgACgCRCACQRhsaigCEEYFQQALCw0AIAAoAmggACgCZEYLTQECfyABLQAAIQICQCAALQAAIgNFDQAgAiADRw0AA0AgAS0AASECIAAtAAEiA0UNASABQQFqIQEgAEEBaiEAIAIgA0YNAAsLIAMgAmsLFwAgAEEwa0EKSSAAQSByQeEAa0EGSXILggIBAn8CQAJAAkACQCABIAAiA3NBA3ENACACQQBHIQQCQCABQQNxRQ0AIAJFDQADQCADIAEtAAAiBDoAACAERQ0FIANBAWohAyACQQFrIgJBAEchBCABQQFqIgFBA3FFDQEgAg0ACwsgBEUNAiABLQAARQ0DIAJBBEkNAANAQYCChAggASgCACIEayAEckGAgYKEeHFB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ICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQQV2QQFxDAELIAAvASxBCXZBAXELIAFBMGokAAveAQECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAAn8CQCABKAIMIgBB//8DcUUEQCABKAIQKAIAIgBBAXEEQCAAQYD+A3FBCHYhAAwCCyAALwEoIQALIABB//8DcUH//wNHDQBBAQwBCyABKAIUKAIIKAJMIABB//8DcUEBdGovAQBB//8DRgsgAUEwaiQAC6oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQRp0QR91QeIEcQwBC0HiBCAALQAtQQJxDQAaIAAoAiALQQBHIAFBMGokAAubAQECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAAn8gASgCECgCACIAQQFxBEAgAEEEdkEBcQwBCyAALwEsQQV2QQFxCyABQTBqJAALdwECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAIAEQPSABQTBqJAAL0QYBCH8jAEGgAWsiByQAIAcjCyIIKAIANgKYASAHIAgoAgxBAXQ2ApABIAcgADYCnAEgByAHKQKYATcDWCAHIAgoAhA2ApQBIAcgBykCkAE3A1AgByAIKAIINgKMASAHIAgoAgRBAXQ2AogB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NgIAIAFBgAFqJAALrAICB38BfiMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAIwBBIGsiACQAIAEoAhQoAgghAiABKAIQKQIAIQhBASEDAkACQAJAIAEvAQwiBEH+/wNrDgIAAgELQQAhAwwBCyACKAJIIARBA2xqLQAAIQMLIAAgCDcDECAAIAg3AwggAEEIaiAAQR9qQQEgAkEAIAQgA0EBcSIFIwFBoQpqIgYQMEEBaiIHIwcoAgARAAAhAyAAIAApAxA3AwAgACADIAcgAkEAIAQgBSAGEDAaIABBIGokACABQTBqJAAgAwt6AQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwAgARBbIAFBMGokAEEBdgt7AQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwAgASgCACABQTBqJABBAXYLlgEBAn8jAEFAaiIBJAAgASMLIgIoAgA2AjggASACKAIMQQF0NgIwIAEgADYCPCABIAEpAjg3AxggASACKAIQNgI0IAEgASkCMDcDECABIAIoAgg2AiwgASACKAIEQQF0NgIoIAEgASkCKDcDCCABQSBqIAFBCGoQPyACIAEoAiA2AgAgAiABKAIkQQF2NgIEIAFBQGskAAueAQECfyMAQUBqIgEkACABIwsiAigCADYCOCABIAIoAgxBAXQ2AjAgASAANgI8IAEgASkCODcDGCABIAIoAhA2AjQgASABKQIwNwMQIAEgAigCCDYCLCABIAIoAgRBAXQ2AiggASABKQIoNwMIIAEgASgCDDYCICABIAEoAhA2AiQgAiABKAIgNgIAIAIgASgCJEEBdjYCBCABQUBrJAAL1wIBBn8jAEHwAGsiASQAIAEjCyICKAIANgJoIAEgAigCDEEBdDYCYCABIAA2AmwgASACKAIINgJcIAEgAigCEDYCZCABIAIoAgRBAXQ2AlggASACKAIYQQF0NgJUIAEgAigCFDYCUCACKAIgIQAgAigCHCEDIAEgASkCaDcDKCABIAEpAmA3AyAgASADNgJIIAEgASkCWDcDGCABIABBAXQ2AkwgASABKQJQNwMQIAEgASkCSDcDCCMAQSBrIgAkACABKAIMIQMgASgCCCEEIAEoAhQhBSABKAIQIQYgACABKQIoNwMYIAAgASkCIDcDECAAIAEpAhg3AwggAUEwaiAAQQhqIAYgBSAEIANBABBVIABBIGokACACIAEoAjw2AhAgAiABKAI0NgIIIAIgASgCQDYCACACIAEoAjhBAXY2AgwgAiABKAIwQQF2NgIEIAFB8ABqJAAL1wIBBn8jAEHwAGsiASQAIAEjCyICKAIANgJoIAEgAigCDEEBdDYCYCABIAA2AmwgASACKAIINgJcIAEgAigCEDYCZCABIAIoAgRBAXQ2AlggASACKAIYQQF0NgJUIAEgAigCFDYCUCACKAIgIQAgAigCHCEDIAEgASkCaDcDKCABIAEpAmA3AyAgASADNgJIIAEgASkCWDcDGCABIABBAXQ2AkwgASABKQJQNwMQIAEgASkCSDcDCCMAQSBrIgAkACABKAIMIQMgASgCCCEEIAEoAhQhBSABKAIQIQYgACABKQIoNwMYIAAgASkCIDcDECAAIAEpAhg3AwggAUEwaiAAQQhqIAYgBSAEIANBARBVIABBIGokACACIAEoAjw2AhAgAiABKAI0NgIIIAIgASgCQDYCACACIAEoAjhBAXY2AgwgAiABKAIwQQF2NgIEIAFB8ABqJAALhgIBBH8jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMgAigCGEEBdCEEIwBBIGsiACQAIAAgASkCGDcDGCAAIAEpAhA3AxAgACABKQIINwMIIAFBIGogAEEIaiADIARBABBWIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAALWAEBfyMBQcjTAGokBiMBQcDTAGokByMBQczTAGokCCMBQcTTAGokCSMBQYjVAGokCiMBQZDVAGoiACQLIwFBlNsAaiQMIwFBmNsAaiQNIABBAEGMBvwLAAuGAgEEfyMAQdAAayIBJAAgASMLIgIoAgA2AkggAUFAayIDIAIoAgxBAXQ2AgAgASAANgJMIAEgASkCSDcDGCABIAIoAhA2AkQgASADKQIANwMQIAEgAigCCDYCPCABIAIoAgRBAXQ2AjggASABKQI4NwMIIAIoAhRBAXQhAyACKAIYQQF0IQQjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIAMgBEEBEFYgAEEgaiQAIAIgASgCLDYCECACIAEoAiQ2AgggAiABKAIwNgIAIAIgASgCKEEBdjYCDCACIAEoAiBBAXY2AgQgAUHQAGokAAufAgEDfyMAQYABayIBJAAgASMLIgIoAgA2AnggASACKAIMQQF0NgJwIAEgADYCfCABIAIoAgg2AmwgASACKAIQNgJ0IAEgAigCBEEBdDYCaCABIAIoAhQ2AmAgASACKAIYQQF0NgJQIAEgAigCHDYCVCABIAIoAiBBAXQ2AlggAigCJCEDIAEgASkCeDcDMCABIAEpAnA3AyggASAANgJkIAEgASkCaDcDICABIAM2AlwgASABKQJgNwMYIAEgASkCWDcDECABIAEpAlA3AwggAUE4aiABQSBqIAFBCGoQGCACIAEoAkQ2AhAgAiABKAI8NgIIIAIgASgCSDYCACACIAEoAkBBAXY2AgwgAiABKAI4QQF2NgIEIAFBgAFqJAAL4AQCBn8CfiMAQdAAayIBJAAgASMLIgMoAgA2AkggAUFAayICIAMoAgxBAXQ2AgAgASAANgJMIAEgASkCSDcDGCABIAMoAhA2AkQgASACKQIANwMQIAEgAygCCDYCPCABIAMoAgRBAXQ2AjggASABKQI4NwMIIwBBkAFrIgAkAAJ/IAEoAhwiAigCACIEQQFxBEAgAi0ABUEPcSEFIAItAAQhBiACLQAGDAELIAQoAgwhBiAEKAIIIQUgBCgCBAshBCAAIAI2AowBIAAgAjYCiAEgAEEANgKEASAAIAY2AoABIAAgBTYCfCAAIAQ2AngCQCACIAEoAhgiBEcEQCAAIAApAoABNwNQIAAgACkCiAE3A1ggACAAKQJ4NwNIIAAgASkCEDcDOCAAQUBrIAEpAhg3AwAgACABKQIINwMwIABB4ABqIABByABqIABBMGoQGAJAIAAoAnAiAiAERg0AIAJFDQADQCAAIAApAnAiBzcDiAEgACAAKQJoIgg3A4ABIAAgCDcDICAAIAc3AyggACAAKQJgIgc3A3ggACAHNwMYIAAgASkCEDcDCCAAIAEpAhg3AxAgACABKQIINwMAIABB4ABqIABBGGogABAYIAAoAnAiAiAERg0BIAINAAsLIAEgACkDeDcCICABIAApA4gBNwIwIAEgACkDgAE3AigMAQsgAUIANwIgIAFCADcCMCABQgA3AigLIABBkAFqJAAgAyABKAIsNgIQIAMgASgCJDYCCCADIAEoAjA2AgAgAyABKAIoQQF2NgIMIAMgASgCIEEBdjYCBCABQdAAaiQAC50BAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBASEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAI4QQFqIQALIAFBMGokACAAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQAQWCAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQAQWSAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQEQWCAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQEQWSAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC8UBAQN/IwBB0ABrIgIkACACIwsiAygCADYCSCACQUBrIgQgAygCDEEBdDYCACACIAA2AkwgAiACKQJINwMYIAIgAygCEDYCRCACIAQpAgA3AxAgAiADKAIINgI8IAIgAygCBEEBdDYCOCACIAIpAjg3AwggAkEgaiACQQhqIAFB//8DcRA7IAMgAigCLDYCECADIAIoAiQ2AgggAyACKAIwNgIAIAMgAigCKEEBdjYCDCADIAIoAiBBAXY2AgQgAkHQAGokAAvwAQEDfyMAQdAAayICJAAgAiMLIgMoAgA2AkggAkFAayIEIAMoAgxBAXQ2AgAgAiAANgJMIAIgAikCSDcDGCACIAMoAhA2AkQgAiAEKQIANwMQIAIgAygCCDYCPCACIAMoAgRBAXQ2AjggAiACKQI4NwMIIwBBIGsiACQAIAAgAikCGDcDGCAAIAIpAhA3AxAgACACKQIINwMIIAJBIGogAEEIaiABQQAQPCAAQSBqJAAgAyACKAIsNgIQIAMgAigCJDYCCCADIAIoAjA2AgAgAyACKAIoQQF2NgIMIAMgAigCIEEBdjYCBCACQdAAaiQACyoBAn8CQCAAKAIgIgNFDQAgASADSw0AIAAoAjwgAUECdGooAgAhAgsgAgvwAQEDfyMAQdAAayICJAAgAiMLIgMoAgA2AkggAkFAayIEIAMoAgxBAXQ2AgAgAiAANgJMIAIgAikCSDcDGCACIAMoAhA2AkQgAiAEKQIANwMQIAIgAygCCDYCPCACIAMoAgRBAXQ2AjggAiACKQI4NwMIIwBBIGsiACQAIAAgAikCGDcDGCAAIAIpAhA3AxAgACACKQIINwMIIAJBIGogAEEIaiABQQEQPCAAQSBqJAAgAyACKAIsNgIQIAMgAigCJDYCCCADIAIoAjA2AgAgAyACKAIoQQF2NgIMIAMgAigCIEEBdjYCBCACQdAAaiQAC5oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBACEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAI0IQALIAFBMGokACAAC5oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBACEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAIwIQALIAFBMGokACAAC5wBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQYD+A3FBCHYMAQsgAC8BKAtB//8DcSABQTBqJAAL+gEBA38jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIANBABBXIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAAL+gEBA38jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIANBARBXIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAALiQQBCX8jAEGAAWsiAiQAIAIjCyIDKAIANgJ4IAIgAygCDEEBdDYCcCACIAA2AnwgAiACKQJ4NwMwIAIgAygCEDYCdCACIAIpAnA3AyggAiADKAIINgJsIAIgAygCBEEBdDYCaCACIAIpAmg3AyAgAkHUAGogAkEgahBwAkAgAUUEQEEAIQMMAQsgAiACKQJ4NwMYIAIgAikCcDcDECACIAIpAmg3AwggAkHUAGoiACACQQhqECYgABAsGkEAIQBBACEDA0AgAyEEAkADQCACQdQAaiIDEG0gAUYNASADEBwNAAsgBCEDDAILIAJBPGogAkHUAGoiAxAQIAMQHAJAIARBBWoiAyAATQ0AQQggAEEBdCIAIAMgACADSxsiACAAQQhNGyIAQQJ0IQYgBQRAIAUgBiMGKAIAEQEAIQUMAQsgBiMHKAIAEQAAIQULIAUgBEECdGoiBEIANwIAIARBADYCECAEQgA3AgggAigCPCEGIAIoAkQhCCACKAJMIQkgAigCQCEKIAUgA0ECdGoiBEEE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IAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGoQbSABQSBqJAALZwEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxggASABKQIsNwMQIAEgASkCJDcDCCABQQhqEFsgAUHQAGokAEEBdgtlAQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDGCABIAEpAiw3AxAgASABKQIkNwMIIAEoAgggAUHQAGokAEEBdgt9AQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDECABIAEpAiw3AwggASABKQIkNwMAIAFBHGogARA/IAAgASgCHDYCACAAIAEoAiBBAXY2AgQgAUHQAGokAAuIAQEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxAgASABKQIsNwMIIAEgASkCJDcDACABIAEoAgQ2AhwgASABKAIINgIgIAAgASgCHDYCACAAIAEoAiBBAXY2AgQgAUHQAGokAAtCAQF/IwBBMGsiASQAIAEgADYCHCABIwsiACkDADcCICABIAApAwg3AiggAUEEaiABQRxqEBAgASgCFCABQTBqJAALhQEBAX8jAEHQAGsiASQAIAEgADYCPCABIwsiACkDADcCQCABIAApAwg3AkggAUEkaiABQTxqEBAgASABKQI0NwMYIAEgASkCLDcDECABIAEpAiQ3AwgCfyABKAIYKAIAIgBBAXEEQCAAQQV2QQFxDAELIAAvASxBCXZBAXELIAFB0ABqJAALZAEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxggASABKQIsNwMQIAEgASkCJDcDCCABQQhqED0gAUHQAGokAAtkAQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDGCABIAEpAiw3AxAgASABKQIkNwMIIAFBCGoQWiABQdAAaiQAC2QBAX8jAEHQAGsiASQAIAEgADYCPCABIwsiACkDADcCQCABIAApAwg3AkggAUEkaiABQTxqEBAgASABKQI0NwMYIAEgASkCLDcDECABIAEpAiQ3AwggAUEIahA+IAFB0ABqJAALTAECfyMAQSBrIgEkACABIAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGoQNCAAIAEpAhA3AwAgACABKQIYNwMIIAFBIGokAAvKBwIMfwF+IwBBIGsiAyQAIAMgADYCDCADIwsiDSkDADcCECADIA0pAwg3AhggASEJIwBB0ABrIgIkACADKAIUIQAgAygCECEHA0AgByAAQQFrIgFBHGxqIggoAhghCyAIKAIAKAIAIQYCQAJAIAFFBEBBASEFIAZBAXFFDQFBACEEDAILAkACfyAGQQFxIgwEQCAGQQJxBEBBACEEQQEhBQwFCyAGQQN2QQFxDAELQQEhBSAGLwEsIgRBAXENAiAEQQJ2QQFxCw0AIAhBHGsoAgAoAgAvAUIiBUUNAEEAIQQgAygCDCgCCCIKKAJUIAovASQgBWxBAXRqIAgoAhRBAXRqLwEAQQBHIQUgDEUNAQwCC0EAIQVBACEEIAwNAQsgBigCJEUEQEEAIQQMAQsgBigCOCEECwJAAkAgCSALSQ0AIAUgC2ogBGogCU0NAANAAkACQAJAIAcgAEEcbGoiCEEcaygCACILKAIAIgVBAXEEQCADKAIMIQEMAQsgAygCDCEBIAUoAiQNAQsgAiABNgIQIAJCADcDCCACQQA2AiwgAkIANwIkIAJCADcCHCACQgA3AhQMAQsgASgCCCEGIAUvAUIiBAR/IAYoAlQgBi8BJCAEbEEBdGoFQQALIQwgCEEEaygCACEEAkACQCAAQQFrIgpFDQAgBS8BLCIFQQFxDQAgBUEEcQ0BIAcgCkEcbGoiBUEcaygCACgCAC8BQiIKRQ0BIAQgBigCVCAGLwEkIApsQQF0aiAFKAIUQQF0ai8BAEEAR2ohBAwBCyAEQQFqIQQLIAspAgAhDiACIAE2AhAgAiAONwMIIAIgCEEYayIBKAIINgIcIAIgASkCADcCFCACIAw2AiwgAkIANwMgIAIgBDYCKCAEIAlLDQMLA0AgAkEIaiACQTBqIAJBzwBqECVFDQMgAigCKCAJTQ0ACyADIABBAWoiASADKAIYIgRLBH9BCCAEQQF0IgAgASAAIAFLGyIAIABBCE0bIgFBHGwhAAJ/IAcEQCAHIAAjBigCABEBAAwBCyAAIwcoAgARAAALIQcgAyABNgIYIAMoAhQiAEEBagUgAQs2AhQgAyAHNgIQIAcgAEEcbGoiACACKQIwNwIAIAAgAigCSDYCGCAAIAJBQGspAgA3AhAgACACKQI4NwIIIAItAE9BAUYEQCACKAJIIAlGDQMLIAMoAhAhByADKAIUIQAMAAsACyAAQQJJDQAgAyABNgIUIAEhAAwBCwsgAkHQAGokACANIAMpAhA3AwAgDSADKQIYNwMIIANBIGokAAvzBAINfwF+IwBBIGsiBiQAIAYgADYCDCAGIwsiCSkDADcCECAGIAkpAwg3AhhBASELAkAgBkEMaiIKIwJBDGoQRiINRQ0AIAooAgQgCigCCEEcbGoiAEEYayICKAIADQAgAEEQaygCAEUNACAAQQxrKAIAIQcgAEE4aygCACIBLQAAQQFxRQRAIAEoAgAiASABKAIkQQN0ayEDCyAAQTBrKQIAIQ4gAEE0aygCACEBIAIgBwR/An8gAygCACICQQFxBEAgASADLQAHIgJqIQggDkIgiKchBCAOpwwBC0EAIA5CIIinIAIoAhQiBRshBCACKAIQIAFqIQggAigCGCECIAUgDqdqC60gAiAEaq1CIIaEIQ5BASECIAdBAUcEQANAAkAgAyACQQN0aiIEKAIAIgFBAXEEQCAELQAHIgEgBC0ABmohDCAELQAFQQ9xIQUgBC0ABCEEDAELQQAgASgCDCABKAIUIgUbIQQgASgCECABKAIEaiEMIAUgASgCCGohBSABKAIYIQELIAUgDqdqrSABIARqQQAgDkIgiKcgBRtqrUIghoQhDiAIIAxqIQggAkEBaiICIAdHDQALCwJ/IAMgB0EDdGoiAigCACIDQQFxBEAgAi0ABUEPcSEBIAItAAQhBSACLQAGDAELIAMoAgwhBSADKAIIIQEgAygCBAsgASAOp2qtQQAgDkIgiKcgARsgBWqtQiCGhCEOIAhqBSABCzYCACAAQRRrIA43AgALAkACQAJAIA1BAWsOAgACAQsDQCAKEG9BAUYNAAsMAQtBACELCyAJIAYpAhA3AwAgCSAGKQIYNwMIIAZBIGokACALC0wBAn8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABQQxqEBwgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALhwECAn8BfiMAQTBrIgEkACABIAA2AhwgASMLIgAoAgA2AiAgASAAKQIENwIkIAEgACgCDCICNgIsIAEgACgCEEEBdDYCGCABIAI2AhQgASABKQIUNwMIIAFBHGpBACABKAIIIAEoAgwQbiAAIAEpAiA3AwAgACABKQIoNwMIIAFBMGokAEIAUgtmAgJ/AX4jAEEgayIBJAAgASAANgIMIAEjCyIAKAIANgIQIAEgACkCBDcCFCABIAAoAgwiAjYCHCABQQxqIAJBAXRBAEEAEG4gACABKQIQNwMAIAAgASkCGDcDCCABQSBqJABCAFILXwEDfyMAQSBrIgEkACABIAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGohAgNAIAIQbyIDQQFGDQALIANBAkYgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALTgEBfyMBQasKaiECAkACQAJAIAFB/v8Daw4CAAIBCyMBQaoKag8LQQAhAiAAKAIIIAAoAgRqIAFNDQAgACgCOCABQQJ0aigCACECCyACC0wBAn8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABQQxqECwgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALugIBBX8jAEEwayICJAAgAiAANgIcIAIjCyIDKQMANwIgIAIgAykDCDcCKCACIAMpAxA3AgwgAiADKQMYNwIUIAIgATYCCCACIAIoAgg2AhwgAi8BGCEAIAJBADYCJCACIAA7ASwgAigCICEAIAIoAgwhBgJAAkAgAigCECIEIAIoAihLBEAgBEEcbCEBAn8gAARAIAAgASMGKAIAEQEADAELIAEjBygCABEAAAshACACIAQ2AiggAigCJCIFRQ0BIAVBHGwiBUUNASAAIAFqIAAgBfwKAAAMAQsgBEUNASAEQRxsIQELIAYEQCABRQ0BIAAgBiAB/AoAAAwBCyABRQ0AIABBACAB/AsACyACIAA2AiAgAiACKAIkIARqNgIkIAMgAikCIDcDACADIAIpAig3AwggAkEwaiQAC9kBAgh/AX4jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCACKAIgIQQgAikDGCEJIAIoAhQhBSACKAIEIQYgAigCCCEHIAIoAhAhCCABIAEpAkg3AxggASAINgJEIAEgAykCADcDECABIAc2AjwgASAGQQF0NgI4IAEgBTYCKCABIAk3AiwgASAENgI0IAEgADYCJCABIAEpAjg3AwggAUEkaiABQQhqECYgAiABKQIoNwMAIAIgASkCMDcDCCABQdAAaiQAC1MBAX8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABKAIQIgAEQCAAIwgoAgARAgALIAFBADYCGCABQgA3AhAgAUEgaiQAC80BAQV/IwBBMGsiASQAIAEgADYCHCABIwsiAykDADcCICABIAMpAwg3AihBACEAIAFBADYCGCABIAEoAhw2AgggAS8BLCECIAFBADYCFCABIAI7ARgCQCABKAIkIgRFDQAgASgCICEFIARBHGwiAiMHKAIAEQAAIQAgASAENgIUIAUEQCACRQ0BIAAgBSAC/AoAAAwBCyACRQ0AIABBACAC/AsACyABIAA2AgwgASAENgIQIAMgASkCDDcDACADIAEpAhQ3AwggAUEwaiQAC5oBAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwggAUEkaiABQQhqEHAgAiABKQIoNwMAIAIgASkCMDcDCCABQdAAaiQAC84wAht/A34jAEEQayIYJAAjAEFAaiIHJAAgB0EANgI8IAdCADcCJCAHQgA3AhwCfyAAKAIAIgJBAXEEQCAALQAEIQ0gAC0ABiEMIAAtAAVBD3EMAQsgAigCDCENIAIoAgQhDCACKAIICyEIIAdBADsBPCAHIAA2AiwgB0HgASMHKAIAEQAAIgI2AjAgB0KBgICAgAE3AjQgAkEANgIYIAJCADcCECACIA02AgwgAiAINgIIIAIgDDYCBCACIAA2AgACfyABKAIAIgJBAXEEQCABLQAEIQ0gAS0ABiEMIAEtAAVBD3EMAQsgAigCDCENIAIoAgQhDCACKAIICyEC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NgKIAiAKIDg3A4ACIApBADYC+AEgCkEANgL0ASAKQQA2AvABIAogBzYC7AEgCkEANgLoASAKQQA2AuQBIAogETsB4AEgCkEAOwHeASAKQQA7AdoBIApCADcDuAEgCkEBNgKMAiAKIANBAXQgAmpB/wFxOwHcASABIAooAowCNgIAIAEgCigCiAI2AgQgASAKKQOAAjcCCCABIAooAvgBNgIQIAEgCigC9AE2AhQgASAKKALwATYCGCABIAooAuwBNgIcIAEgCigC6AE2AiAgASAKKALkATYCJCABIAovAeABOwEoIAEgCi8B3gE7ASogASAKLwHcATsBLCABIAovAdoBOwEuIAEgCigC0AE2AkggAUFAayAKKQPIATcCACABIAopA8ABNwI4IAEgCikDuAE3AjBCAAshOCAEQQFrIRgCQCABQQFxBEAgAUEgciEBDAELIAEgAS8BLEGABHI7ASwLIBhBBXQiECAFKAKECSICKAIAaiIHKAIAIQMCfyACKAIoIgAEQCACIABBAWsiADYCKCACKAIkIABBAnRqKAIADAELQaQBIwcoAgARAAALIhQgDzsBACAUQQJqQQBBkgH8CwAgFEIANwKYASAUQQE2ApQBIBRBADYCoAECQAJ/AkAgAwRAIBQgOCABrYQ3AhQgFCADNgIQIBRBATsBkAEgFCADKQIENwIEIBQgAygCDDYCDCAUIAMoApgBIgA2ApgBIBQgAygCoAEiBDYCoAEgFCADKAKcASITNgKcASABQQFxIgMNASAUIAEtAC1BAnEEf0HiBAUgASgCIAsgAGo2ApgBQQAgASgCDCABKAIUIgIbIQAgASgCECABKAIEaiENIAIgASgCCGohDiABKAIYDAILIBRCADcCBCAUQQA2AgwMAgsgFCAAIAFBGnRBH3VB4gRxajYCmAEgOEIgiKdB/wFxIQAgOEIoiKdBD3EhDiA4QjCIpyENQQALIQIgFCAUKAIEIA1qNgIEIBQgFCgCCCAOaq0gACACakEAIBQoAgwgDhtqrUIghoQ3AggCQCADRQRAQQAhDiAUIAEoAiQiAAR/IAEoAjgFQQALIBNqIAEvASxBAXFqIAEvAShB/v8DRmo2ApwBIABFDQEgASgCPCEODAELIBQgEyABQQF2QQFxajYCnAFBACEOCyAUIAQgDmo2AqABCyAHIBQ2AgAgBSAY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AgwgACABQQVqNgIIIABCADcCACAAQSBqQQBB5Aj8CwAgAEEAQRgjBigCABEBACIBNgJEIAEjAUH8C2oiAikCEDcCECABIAIpAgg3AgggASACKQIANwIAIABBATYCZAJAAkAgACgCRCIDKAIUIgQgACgCICIBTQ0AIAQgAygCECICTQ0AIAEgAk0EQCAAIAMpAgA3AiQgACACNgIgIAIhAQtBACECIABBADYCaCAAKAJIRQ0BIAAoAmwiAyABTQRAIAEgACgCcCADakkNAgsgAEEANgJIIABCADcCbAwBC0EBIQIgAEEBNgJoIAMpAgghByAAQQA2AkggACAHNwIkIAAgBDYCICAAQgA3AmwLIABBADYCsAkgAEEANgIAIAAgAjYCdCAAQgA3AqgJIABBwAAjByIBKAIAEQAANgKoCSAAQQQ2ArAJQYACIAEoAgARAAAhASAAQgA3ApQJIABCgICAgIAENwKMCSAAIAE2AogJIABBnAlqQQA2AgBBAUE4IwkoAgARAQAiAUIANwIAIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggAUGAASMHKAIAEQAANgIAIAFBBDYCCCABKAIMIQIgASgCFEEDTQRAAn8gAgRAIAJBwAAjBigCABEBAAwBC0HAACMHKAIAEQAACyECIAFBBDYCFAsgASACNgIMIAEoAhghAiABKAIgQQNNBEACfyACBEAgAkHgACMGKAIAEQEADAELQeAAIwcoAgARAAALIQIgAUEENgIgCyABIAI2AhggASgCJCECIAEoAixBMU0EQAJ/IAIEQCACQcgBIwYoAgARAQAMAQtByAEjBygCABEAAAshAiABQTI2AiwLIAEgAEGICWoiAzYCNCABIAI2AiQCfyABKAIoIgQEQCABIARBAWsiBDYCKCACIARBAnRqKAIADAELQaQBIwcoAgARAAALIgJBATsBACACQQJqQQBBkgH8CwAgAkIANwIEIAJBATYClAEgAkEANgIMIAJCADcCmAEgAkEANgKgASABIAI2AjAgARA5IABCADcC9AkgAEIANwK0CSAAIAE2AoQJIABB/AlqQgA3AgAgAEGECmpBADYCACAAQgA3ApQKIABCADcCiAogAEEANgKgCSAAQZwKakIANwIAIABBpApqQgA3AgAgAEEANgLACiAAQcMKakEANgAAIABB4AlqIQEgACgC4AkEQCAFIAEpAgA3AwggAyAFQQhqEAoLIAAoAugJBEAgBSAAQegJaikCADcDACADIAUQCgsgAUIANwIAIAFBADYCECABQgA3AgggBUEQaiQAIAZBgNAAQQEQKjYCBCAGIAA2AgALFAEBfyMLIgBCj4CAgNABNwMAIAALagEDfyACIAAvAQAiA0EIdCADQQh2ciIEQf//A3EiBTYCAEECIQMCQCABQQFGDQAgBEGA+ANxQYCwA0cNACAALwECIgBBgPgDcUGAuANHDQAgAiAFQQp0IABqQYC4/xprNgIAQQQhAwsgAwtYAQJ/IAIgAC8BACIDNgIAQQIhBAJAIAFBAUYNACADQYD4A3FBgLADRw0AIAAvAQIiAEGA+ANxQYC4A0cNACACIANBCnQgAGpBgLj/Gms2AgBBBCEECyAEC80CAQR/IAIgACwAACIDQf8BcSIENgIAQQEhBQJAIANBAEgEQAJAIAFBAUYNAAJAIANBYE8EQAJAIANBb00EQCACIARBD3EiBDYCACMBQd4KaiAEai0AACAALQABIgNBBXZ2QQFxRQ0EIANBP3EhBkECIQMMAQsgAiAEQfABayIENgIAIANBdEsNAyMBQbAMaiAALQABIgNBBHZqLAAAIAR2QQFxRQ0DIAIgA0E/cSAEQQZ0ciIENgIAQQIhBSABQQJGDQNBAyEDIAAtAAJBgH9zIgZB/wFxQT9LDQMLIAIgBkH/AXEgBEEGdHIiBDYCACADIAEiBUcNAQwCCyADQUJJDQEgAiAEQR9xIgQ2AgBBASEDCyAAIANqLQAAQYB/c0H/AXEiAEE/TQ0CIAMhBQsgAkF/NgIACyAFDwsgAiAEQQZ0IAByNgIAIANBAWoLGAEBfyAAKAIAQQ9PBH8gACgCiAEFQQALC6UCAQl/IwBBIGsiAiQAIAAEQCACQgA3AxggAkIANwMQIAJCADcDCCACIAApAgA3AwAgAkEIaiACEAogAigCCCIEBEACQCACKAIMIgNFDQAgA0EETwRAIANBfHEhCQNAIAQgAUEDdGoiBSgCACMIIgYoAgARAgAgBSgCCCAGKAIAEQIAIAUoAhAgBigCABECACAFKAIYIAYoAgARAgAgAUEEaiEBIAhBBGoiCCAJRw0ACwsgA0EDcSIDRQ0AA0AgBCABQQN0aigCACMIKAIAEQIAIAFBAWohASAHQQFqIgcgA0cNAAsLIAQjCCgCABECAAsgAigCFCIBBEAgASMIKAIAEQIACyAAKAIMIwgiASgCABECACAAIAEoAgARAgALIAJBIGokAAuLAQIEfwF+IAAoAgAiAUEBcUUEQCABIAEoAgBBAWo2AgAgASgCABoLIAAoAgwhAyAAKAIQIQEgACkCACEFIAAoAgghAkEUIwcoAgARAAAiACACNgIIIAAgBTcCACAAIAFBGCMJKAIAEQEAIgI2AgwgAUEYbCIEBEAgAiADIAT8CgAACyAAIAE2AhAgAAvABAIHfwF+IwBBEGshAwJAIAAoAgAiBUUNACAAKAIYIgZB/wFxQf8BRg0AIAVBAXFFBEAgBSAFKAIkQQN0ayEECyADIAAoAhQ2AgggAyAAKQIMNwMAIAAoAhwhBSABIAQgBkEDdGoiBDYCACABIAMoAgg2AgwgASADKQMANwIEIAFBADYCGCABIAU2AhQgASAGNgIQIAICfyAEKAIAIgFBAXEEQCABQQF2QQFxDAELIAEvASxBAXELIgE6AAACfyAEKAIAIgNBAXEEQCAELQAFQQ9xIQUgA0EIcUEDdiEGIAQtAAQhByAELQAGDAELIAMtACxBBHFBAnYhBiADKAIMIQcgAygCCCEFIAMoAgQLIQMgACAAKAIYQQFrIgg2AhhBASEEIABBASAAKAIUIgkgB2sgACgCDCIHRSAJQQBHcSAFQQBHciIFGzYCFCAAQQAgACgCECAFGzYCECAAQQAgByADayAFGzYCDAJAIAYNACAAKAIkIgNFDQAgAiABIAMgACgCHCIBQQF0ai8BAHJBAEc6AAAgAUUNACAAIAFBAWs2AhwLIAggACgCACIBKAIkIgJPDQACfyABIAJBA3RrIAhBA3RqKQIAIgqnIgJBAXEEQEEAIQMgCkI4iKciAQwBCyACKAIUQQBHIQMgAigCGCEBIAIoAhALIQIgAEEBIAAoAhQiBSABayADIAAoAgwiBkUgBUEAR3FyIgEbNgIUIABBACAAKAIQIAEbNgIQIABBACAGIAJrIAEbNgIMCyAECwcAIAAoAgALEABBAEECIAEoAgAvAZABGwtKAQF/IAEoAghFBEBBAA8LIAAtAAAEQEEBDwtBASECAkAgASgCBCgCACIBQQFxDQAgAS8BKEH//wNHDQAgAEEBOgAAQQMhAgsgAgsYACABKAIQRQRAQQAPC0EDQQEgAS0AFBsLEgBBA0EAIAEoAhAgACgCAEYbCwcAIAAoAhQLDQAgACgCCCAAKAIEagvkAQAjAUHA0wBqIwJBDWo2AgAjAUHE0wBqIwJBDmo2AgAjAUHI0wBqIwJBD2o2AgAjAUHM0wBqIwJBEGo2AgAjAUHQ0wBqIwJBEWo2AgAjAUHU0wBqIwJBEmo2AgAjAUHY0wBqIwJBE2o2AgAjAUHg0wBqIwJBFmo2AgAjAUHs0wBqIwJBF2o2AgAjAUGE1ABqIwJBGGo2AgAjAUGc1ABqIwJBGWo2AgAjAUGg1ABqIwJBGmo2AgAjAUGk1ABqIwFBpNcAajYCACMBQYjVAGojAUH40wBqNgIAIwFBjNUAaiMFNgIAC0IBA38jASIBQZTWAGoiACABQfzVAGo2AmAgACMEIgIjA2s2AjggACACNgI0IABBKjYCGCAAIAFB8NMAaigCADYCPAsLl1UBACMBC5BVLSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAByZWR1Y2Ugc3ltOiVzLCBjaGlsZF9jb3VudDoldQByZXN1bWUgdmVyc2lvbjoldQByZW1vdmVkIHBhdXNlZCB2ZXJzaW9uOiV1AGxleF9leHRlcm5hbCBzdGF0ZTolZCwgcm93OiV1LCBjb2x1bW46JXUAbGV4X2ludGVybmFsIHN0YXRlOiVkLCByb3c6JXUsIGNvbHVtbjoldQBwcm9jZXNzIHZlcnNpb246JXUsIHZlcnNpb25fY291bnQ6JXUsIHN0YXRlOiVkLCByb3c6JXUsIGNvbDoldQByZWNvdmVyX3RvX3ByZXZpb3VzIHN0YXRlOiV1LCBkZXB0aDoldQAsIHNpemU6JXUAc2hpZnQgc3RhdGU6JXUAcmVjb3Zlcl93aXRoX21pc3Npbmcgc3ltYm9sOiVzLCBzdGF0ZToldQBkaWZmZXJlbnRfaW5jbHVkZWRfcmFuZ2UgJXUgLSAldQBhY2NlcHQAcGFyc2VfYWZ0ZXJfZWRpdABcdABhYm9ydGluZyByZWR1Y2Ugd2l0aCB0b28gbWFueSB2ZXJzaW9ucwBoYXNfY2hhbmdlcwBzd2l0Y2ggZnJvbV9rZXl3b3JkOiVzLCB0b193b3JkX3Rva2VuOiVzAHN0YXRlX21pc21hdGNoIHN5bTolcwBzZWxlY3Rfc21hbGxlcl9lcnJvciBzeW1ib2w6JXMsIG92ZXJfc3ltYm9sOiVzAHNlbGVjdF9lYXJsaWVyIHN5bWJvbDolcywgb3Zlcl9zeW1ib2w6JXMAc2VsZWN0X2V4aXN0aW5nIHN5bWJvbDolcywgb3Zlcl9zeW1ib2w6JXMAY2FudF9yZXVzZV9ub2RlIHN5bWJvbDolcywgZmlyc3RfbGVhZl9zeW1ib2w6JXMAc2tpcF90b2tlbiBzeW1ib2w6JXMAaWdub3JlX2VtcHR5X2V4dGVybmFsX3Rva2VuIHN5bWJvbDolcwByZXVzYWJsZV9ub2RlX2hhc19kaWZmZXJlbnRfZXh0ZXJuYWxfc2Nhbm5lcl9zdGF0ZSBzeW1ib2w6JXMAcmV1c2Vfbm9kZSBzeW1ib2w6JXMAcGFzdF9yZXVzYWJsZV9ub2RlIHN5bWJvbDolcwBiZWZvcmVfcmV1c2FibGVfbm9kZSBzeW1ib2w6JXMAY2FudF9yZXVzZV9ub2RlXyVzIHRyZWU6JXMAYnJlYWtkb3duX3RvcF9vZl9zdGFjayB0cmVlOiVzAGRldGVjdF9lcnJvciBsb29rYWhlYWQ6JXMAKCVzAGlzX2Vycm9yAHNraXBfdW5yZWNvZ25pemVkX2NoYXJhY3RlcgBuYW4AXG4AaXNfbWlzc2luZwByZXN1bWVfcGFyc2luZwByZWNvdmVyX2VvZgBpbmYAbmV3X3BhcnNlAGNvbmRlbnNlAGRvbmUAaXNfZnJhZ2lsZQBjb250YWluc19kaWZmZXJlbnRfaW5jbHVkZWRfcmFuZ2UAc2tpcCBjaGFyYWN0ZXI6JWQAY29uc3VtZSBjaGFyYWN0ZXI6JWQAc2VsZWN0X2hpZ2hlcl9wcmVjZWRlbmNlIHN5bWJvbDolcywgcHJlYzolZCwgb3Zlcl9zeW1ib2w6JXMsIG90aGVyX3ByZWM6JWQAc2hpZnRfZXh0cmEAbm9fbG9va2FoZWFkX2FmdGVyX25vbl90ZXJtaW5hbF9leHRyYQBfX1JPT1RfXwBfRVJST1IATkFOAE1JU1NJTkcASU5GAElOVkFMSUQAbGV4ZWRfbG9va2FoZWFkIHN5bToAIDAwMDAwMDAwMDAwMBAwMAAuACglcykAKG51bGwpAChOVUxMKQAoIiVzIikAJ1x0JwAnXHInACdcbicAc2tpcCBjaGFyYWN0ZXI6JyVjJwBjb25zdW1lIGNoYXJhY3RlcjonJWMnACdcMCcAIiVzIgAoTUlTU0lORyAAKFVORVhQRUNURUQgACVzOiAACgoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP//////////AAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeDw8PAAAAAAAAAAABAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAAAAAAAAAAAABIRExQVFhcYGRobHB0eHyAhESIjJBElJicoKSorLBEtLi8QEDAQEBAQEBAQMTIzEDQ1EBARERERERERERERERERERERERERERERERERNhERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETcREREROBE5Ojs8PT4RERERERERERERERERERERERERERERERERERERERERERERERERERERERERPxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFAQRFCQ0RFRkdISUoRS0xNTk9QURBSU1RVVldYWVpbXF0QXl9gEBEREWFiYxAQEBAQEBAQEBARERERZBAQEBAQEBAQEBAQEBAQEBERZRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBERZmcQEGhpERERERERERERERERERERERERERERERFqERFrEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFsbRAQEBAQEBAQEG4QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEG9wcXIQEBAQEBAQEHN0dRAQEBAQdncQEBAQeBAQeRAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////wAAAAAAAAAA/v//B/7//wcAAAAAAAQgBP//f////3//////////////////////////////////w/8DAB9QAAAAAAAAAAAAACAAAAAAAN+8QNf///v///////////+///////////////////////8D/P///////////////////////////v///38C//////8BAAAAAP+/tgD///+HBwAAAP8H//////////7/w////////////////+8f/uH/nwAA////////AOD///////////////8DAP//////BzAE/////P8fAAD///8B/wcAAAAAAAD//98/AADw//gD////////////7//f4f/P//7/75/5///9xeOfWYCwz/8DEO6H+f///W3DhxkCXsD/PwDuv/v///3t478bAQDP/wAe7p/5///97eOfGcCwz/8CAOzHPdYYx//Dxx2BAMD/AADv3/3///3/498dYAfP/wAA79/9///97+PfHWBAz/8GAO/f/f/////n313wgM//APzs/3/8///7L3+AX//A/wwA/v////9//wc/IP8DAAAAANb3//+v//87XyD/8wAAAAABAAAA/wMAAP/+////H/7/A////v///x8AAAAAAAAAAP///////3/5/wP///////////8//////78g///////3////////////PX89//////89/////z1/Pf9//////////z3//////////wcAAAAA//8AAP////////////8/P/7//////////////////////////////////////////////////////////5////7//wf////////////H/wH/3w8A//8PAP//DwD/3w0A////////z///AYAQ/wMAAAAA/wP//////////////wH//////wf//////////z8A////f/8P/wHA/////z8fAP//////D////wP/AwAAAAD///8P/////////3/+/x8A/wP/A4AAAAAAAAAAAAAAAP///////+//7w//AwAAAAD///////P///////+//wMA////////fwD/4///////P/8B///////nAAAAAADebwT///////////////////////////////8AAAAAgP8fAP//Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAAAAAAAAAAAAAAACgAAA/x8AAAAAAAAAAAAAAACE/C8+UL3/8+BDAAD//////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA////////AwAA//////9///////9//////////////////////x94DAD/////vyD/////////gAAA//9/AH9/f39/f39//////wAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/AAAAAAAAAAAA////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8PAAAAAAAAAAAAAAAAAADf/////////////////////x8AAP8D/v//B/7//wfA/////////////3/8/PwcAAAAAP/v//9///+3/z//PwAAAAD///////////////////8HAAAAAAAAAAD///////8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAP///////38A//8/AP8AAAAAAAAAAAAAAAAAAAAAAAAAP/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//AwAAAAAAAAAAAAAAAAD///////////8BAAAAAAAA////////BwD///////8HAP//////AP8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////H4AA//8/AAAAAAAAAAAAAAAAAAAAAAAAAP//fwD//////////z8AAADA/wAA/P///////wEAAP///wH/A////////8f/cAD/////RwD//////////x4A/xcAAAAA///7////n0AAAAAAAAAAAH+9/7//Af////////8B/wPvn/n///3t458ZgeAPAAAAAAAAAAAAAAAAAAAAAAAAAP//////////uwf/gwAAAAD//////////7MA/wMAAAAAAAAAAAAAAAAAAAAAAAAAAP///////z9/AAAAPwAAAAD/////////fxEA/wMAAAAA////////PwH/AwAAAAAAAP///+f/B/8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////wEAAAAAAAAAAAAAAAD///////////8DAIAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8///////8GgAAAP///////+d/AAD///////////8gAAAAAP////////8B//3/////f38BAP8DAAD8/////P///n8AAAAAAAAAAAB/+/////9/tMsA/wO//f///397Af8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//38A/////////////////////////wMAAAAAAAAAAAAAAAD/////////////////fwAA////////////////////////////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8B////f/8DAAAAAAAAAAAAAAAA////PwAA////////AAAPAP8D+P//4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAP///////////4f/////////gP//AAAAAAAAAAALAAAA/////////////////////////////////////////wD///////////////////////////////////////8HAP///38AAAAAAAAHAPAA/////////////////////////////////////////////////////////////////w//////////////////B/8f/wH/QwAAAAAAAAAAAAAAAP/////////////f///////////fZN7/6+//////////v+ff3////3tf/P3//////////////////////////////////////////////////////z/////9///3////9///3////9///3////9//////f////3///fP////////f///+dsHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////x+AP/9DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////D/8D////////////////////////////////HwAAAAAAAAD//////////48I/wMAAAAAAAAAAAAAAAAAAAAAAAAAAO////+W/vcKhOqWqpb3917/+/8P7vv/DwAAAAAAAAAAAAAAAAAA////A////wP///8DAAAAAAAAAAAAAAAAAAAgAAAACQAAAAoAAAANAAAACwAAAAwAAACFAAAAACAAAAEgAAACIAAAAyAAAAQgAAAFIAAABiAAAAggAAAJIAAACiAAACggAAApIAAAXyAAAAAwAAAAAAAAAAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEwAAAAATAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAEDwAAAAAJEAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAARAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoaGgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABcAAAAAFwAAAAAJFAAAAAAAFAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYACAAAVgEAADkAAAAAAAAAAAAAAAEgAAAA4P//AL8dAADnAgAAeQAAAiQAAAEBAAAA////AAAAAAECAAAA/v//ATn//wAY//8Bh///ANT+/wDDAAAB0gAAAc4AAAHNAAABTwAAAcoAAAHLAAABzwAAAGEAAAHTAAAB0QAAAKMAAAHVAAAAggAAAdYAAAHaAAAB2QAAAdsAAAA4AAADAAAAALH//wGf//8ByP//AigkAAAAAAABAQAAAP///wAz//8AJv//AX7//wErKgABXf//ASgqAAA/KgABPf//AUUAAAFHAAAAHyoAABwqAAAeKgAALv//ADL//wA2//8ANf//AE+lAABLpQAAMf//ACilAABEpQAAL///AC3//wD3KQAAQaUAAP0pAAAr//8AKv//AOcpAABDpQAAKqUAALv//wAn//8Auf//ACX//wAVpQAAEqUAAiRMAAAAAAABIAAAAOD//wEBAAAA////AFQAAAF0AAABJgAAASUAAAFAAAABPwAAANr//wDb//8A4f//AMD//wDB//8BCAAAAML//wDH//8A0f//AMr//wD4//8Aqv//ALD//wAHAAAAjP//AcT//wCg//8B+f//AhpwAAEBAAAA////ASAAAADg//8BUAAAAQ8AAADx//8AAAAAATAAAADQ//8BAQAAAP///wAAAAAAwAsAAWAcAAAAAAAB0JcAAQgAAAD4//8CBYoAAAAAAAFA9P8Anuf/AMKJAADb5/8Akuf/AJPn/wCc5/8Anef/AKTn/wAAAAAAOIoAAASKAADmDgABAQAAAP///wAAAAAAxf//AUHi/wIdjwAACAAAAfj//wAAAAAAVgAAAar//wBKAAAAZAAAAIAAAABwAAAAfgAAAAkAAAG2//8B9///ANvj/wGc//8BkP//AYD/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",typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-VbsIpWqm.cjs",document.baseURI).href).href}__name(findWasmBinary,"findWasmBinary");function getBinarySync(r){if(r==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(r);throw"both async and sync fetching of the wasm failed"}__name(getBinarySync,"getBinarySync");async function getWasmBinary(r){if(!wasmBinary)try{var e=await readAsync(r);return new Uint8Array(e)}catch{}return getBinarySync(r)}__name(getWasmBinary,"getWasmBinary");async function instantiateArrayBuffer(r,e){try{var n=await getWasmBinary(r),A=await WebAssembly.instantiate(n,e);return A}catch(o){err(`failed to asynchronously prepare wasm: ${o}`),abort(o)}}__name(instantiateArrayBuffer,"instantiateArrayBuffer");async function instantiateAsync(r,e,n){if(!r&&!isFileURI(e)&&!ENVIRONMENT_IS_NODE)try{var A=fetch(e,{credentials:"same-origin"}),o=await WebAssembly.instantiateStreaming(A,n);return o}catch(s){err(`wasm streaming compile failed: ${s}`),err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(e,n)}__name(instantiateAsync,"instantiateAsync");function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}__name(getWasmImports,"getWasmImports");async function createWasm(){function r(s,a){wasmExports=s.exports,wasmExports=relocateExports(wasmExports,1024);var l=getDylinkMetadata(a);return l.neededDynlibs&&(dynamicLibraries=l.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(wasmExports,"main"),LDSO.init(),loadDylibs(),__RELOC_FUNCS__.push(wasmExports.__wasm_apply_data_relocs),assignWasmExports(wasmExports),wasmExports}__name(r,"receiveInstance");function e(s){return r(s.instance,s.module)}__name(e,"receiveInstantiationResult");var n=getWasmImports();if(Module.instantiateWasm)return new Promise((s,a)=>{Module.instantiateWasm(n,(l,c)=>{s(r(l,c))})});wasmBinaryFile??=findWasmBinary();var A=await instantiateAsync(wasmBinary,wasmBinaryFile,n),o=e(A);return o}__name(createWasm,"createWasm");class ExitStatus{static{__name(this,"ExitStatus")}name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var GOT={},currentModuleWeakSymbols=new Set([]),GOTHandler={get(r,e){var n=GOT[e];return n||(n=GOT[e]=new WebAssembly.Global({value:"i32",mutable:!0})),currentModuleWeakSymbols.has(e)||(n.required=!0),n}},LE_HEAP_LOAD_F32=__name(r=>HEAP_DATA_VIEW.getFloat32(r,!0),"LE_HEAP_LOAD_F32"),LE_HEAP_LOAD_F64=__name(r=>HEAP_DATA_VIEW.getFloat64(r,!0),"LE_HEAP_LOAD_F64"),LE_HEAP_LOAD_I16=__name(r=>HEAP_DATA_VIEW.getInt16(r,!0),"LE_HEAP_LOAD_I16"),LE_HEAP_LOAD_I32=__name(r=>HEAP_DATA_VIEW.getInt32(r,!0),"LE_HEAP_LOAD_I32"),LE_HEAP_LOAD_I64=__name(r=>HEAP_DATA_VIEW.getBigInt64(r,!0),"LE_HEAP_LOAD_I64"),LE_HEAP_LOAD_U32=__name(r=>HEAP_DATA_VIEW.getUint32(r,!0),"LE_HEAP_LOAD_U32"),LE_HEAP_STORE_F32=__name((r,e)=>HEAP_DATA_VIEW.setFloat32(r,e,!0),"LE_HEAP_STORE_F32"),LE_HEAP_STORE_F64=__name((r,e)=>HEAP_DATA_VIEW.setFloat64(r,e,!0),"LE_HEAP_STORE_F64"),LE_HEAP_STORE_I16=__name((r,e)=>HEAP_DATA_VIEW.setInt16(r,e,!0),"LE_HEAP_STORE_I16"),LE_HEAP_STORE_I32=__name((r,e)=>HEAP_DATA_VIEW.setInt32(r,e,!0),"LE_HEAP_STORE_I32"),LE_HEAP_STORE_I64=__name((r,e)=>HEAP_DATA_VIEW.setBigInt64(r,e,!0),"LE_HEAP_STORE_I64"),LE_HEAP_STORE_U32=__name((r,e)=>HEAP_DATA_VIEW.setUint32(r,e,!0),"LE_HEAP_STORE_U32"),callRuntimeCallbacks=__name(r=>{for(;r.length>0;)r.shift()(Module)},"callRuntimeCallbacks"),onPostRuns=[],addOnPostRun=__name(r=>onPostRuns.push(r),"addOnPostRun"),onPreRuns=[],addOnPreRun=__name(r=>onPreRuns.push(r),"addOnPreRun"),UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder:void 0,findStringEnd=__name((r,e,n,A)=>{var o=e+n;if(A)return o;for(;r[e]&&!(e>=o);)++e;return e},"findStringEnd"),UTF8ArrayToString=__name((r,e=0,n,A)=>{var o=findStringEnd(r,e,n,A);if(o-e>16&&r.buffer&&UTF8Decoder)return UTF8Decoder.decode(r.subarray(e,o));for(var s="";e<o;){var a=r[e++];if(!(a&128)){s+=String.fromCharCode(a);continue}var l=r[e++]&63;if((a&224)==192){s+=String.fromCharCode((a&31)<<6|l);continue}var c=r[e++]&63;if((a&240)==224?a=(a&15)<<12|l<<6|c:a=(a&7)<<18|l<<12|c<<6|r[e++]&63,a<65536)s+=String.fromCharCode(a);else{var g=a-65536;s+=String.fromCharCode(55296|g>>10,56320|g&1023)}}return s},"UTF8ArrayToString"),getDylinkMetadata=__name(r=>{var e=0,n=0;function A(){return r[e++]}__name(A,"getU8");function o(){for(var F=0,v=1;;){var N=r[e++];if(F+=(N&127)*v,v*=128,!(N&128))break}return F}__name(o,"getLEB");function s(){var F=o();return e+=F,UTF8ArrayToString(r,e-F,F)}__name(s,"getString");function a(){for(var F=o(),v=[];F--;)v.push(s());return v}__name(a,"getStringList");function l(F,v){if(F)throw new Error(v)}if(__name(l,"failIf"),r instanceof WebAssembly.Module){var c=WebAssembly.Module.customSections(r,"dylink.0");l(c.length===0,"need dylink section"),r=new Uint8Array(c[0]),n=r.length}else{var g=new Uint32Array(new Uint8Array(r.subarray(0,24)).buffer),h=g[0]==1836278016||g[0]==6386541;l(!h,"need to see wasm magic number"),l(r[8]!==0,"need the dylink section to be first"),e=9;var d=o();n=e+d;var u=s();l(u!=="dylink.0")}for(var f={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]},I=1,p=2,m=3,E=4,B=5,Q=256,S=3,w=1;e<n;){var y=A(),D=o();if(y===I)f.memorySize=o(),f.memoryAlign=o(),f.tableSize=o(),f.tableAlign=o();else if(y===p)f.neededDynlibs=a();else if(y===m)for(var _=o();_--;){var M=s(),R=o();R&Q&&f.tlsExports.add(M)}else if(y===E)for(var _=o();_--;){s();var M=s(),R=o();(R&S)==w&&f.weakImports.add(M)}else y===B?f.runtimePaths=a():e+=D}return f},"getDylinkMetadata");function getValue(r,e="i8"){switch(e.endsWith("*")&&(e="*"),e){case"i1":return HEAP8[r];case"i8":return HEAP8[r];case"i16":return LE_HEAP_LOAD_I16((r>>1)*2);case"i32":return LE_HEAP_LOAD_I32((r>>2)*4);case"i64":return LE_HEAP_LOAD_I64((r>>3)*8);case"float":return LE_HEAP_LOAD_F32((r>>2)*4);case"double":return LE_HEAP_LOAD_F64((r>>3)*8);case"*":return LE_HEAP_LOAD_U32((r>>2)*4);default:abort(`invalid type for getValue: ${e}`)}}__name(getValue,"getValue");var newDSO=__name((r,e,n)=>{var A={refcount:1/0,name:r,exports:n,global:!0};return LDSO.loadedLibsByName[r]=A,e!=null&&(LDSO.loadedLibsByHandle[e]=A),A},"newDSO"),LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}},___heap_base=78240,alignMemory=__name((r,e)=>Math.ceil(r/e)*e,"alignMemory"),getMemory=__name(r=>{if(runtimeInitialized)return _calloc(r,1);var e=___heap_base,n=e+alignMemory(r,16);return ___heap_base=n,GOT.__heap_base.value=n,e},"getMemory"),isInternalSym=__name(r=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(r)||r.startsWith("__em_js__"),"isInternalSym"),uleb128EncodeWithLen=__name(r=>{const e=r.length;return[e%128|128,e>>7,...r]},"uleb128EncodeWithLen"),wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111},generateTypePack=__name(r=>uleb128EncodeWithLen(Array.from(r,e=>{var n=wasmTypeCodes[e];return n})),"generateTypePack"),convertJsFunctionToWasm=__name((r,e)=>{var n=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(e.slice(1)),...generateTypePack(e[0]==="v"?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),A=new WebAssembly.Module(n),o=new WebAssembly.Instance(A,{e:{f:r}}),s=o.exports.f;return s},"convertJsFunctionToWasm"),wasmTableMirror=[],wasmTable=new WebAssembly.Table({initial:31,element:"anyfunc"}),getWasmTableEntry=__name(r=>{var e=wasmTableMirror[r];return e||(wasmTableMirror[r]=e=wasmTable.get(r)),e},"getWasmTableEntry"),updateTableMap=__name((r,e)=>{if(functionsInTableMap)for(var n=r;n<r+e;n++){var A=getWasmTableEntry(n);A&&functionsInTableMap.set(A,n)}},"updateTableMap"),functionsInTableMap,getFunctionAddress=__name(r=>(functionsInTableMap||(functionsInTableMap=new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(r)||0),"getFunctionAddress"),freeTableIndexes=[],getEmptyTableSlot=__name(()=>freeTableIndexes.length?freeTableIndexes.pop():wasmTable.grow(1),"getEmptyTableSlot"),setWasmTableEntry=__name((r,e)=>{wasmTable.set(r,e),wasmTableMirror[r]=wasmTable.get(r)},"setWasmTableEntry"),addFunction=__name((r,e)=>{var n=getFunctionAddress(r);if(n)return n;var A=getEmptyTableSlot();try{setWasmTableEntry(A,r)}catch(s){if(!(s instanceof TypeError))throw s;var o=convertJsFunctionToWasm(r,e);setWasmTableEntry(A,o)}return functionsInTableMap.set(r,A),A},"addFunction"),updateGOT=__name((r,e)=>{for(var n in r)if(!isInternalSym(n)){var A=r[n];GOT[n]||=new WebAssembly.Global({value:"i32",mutable:!0}),(e||GOT[n].value==0)&&(typeof A=="function"?GOT[n].value=addFunction(A):typeof A=="number"?GOT[n].value=A:err(`unhandled export type for '${n}': ${typeof A}`))}},"updateGOT"),relocateExports=__name((r,e,n)=>{var A={};for(var o in r){var s=r[o];typeof s=="object"&&(s=s.value),typeof s=="number"&&(s+=e),A[o]=s}return updateGOT(A,n),A},"relocateExports"),isSymbolDefined=__name(r=>{var e=wasmImports[r];return!(!e||e.stub)},"isSymbolDefined"),dynCall=__name((r,e,n=[],A=!1)=>{var o=getWasmTableEntry(e),s=o(...n);function a(l){return l}return __name(a,"convert"),s},"dynCall"),stackSave=__name(()=>_emscripten_stack_get_current(),"stackSave"),stackRestore=__name(r=>__emscripten_stack_restore(r),"stackRestore"),createInvokeFunction=__name(r=>(e,...n)=>{var A=stackSave();try{return dynCall(r,e,n)}catch(o){if(stackRestore(A),o!==o+0)throw o;if(_setThrew(1,0),r[0]=="j")return 0n}},"createInvokeFunction"),resolveGlobalSymbol=__name((r,e=!1)=>{var n;return isSymbolDefined(r)?n=wasmImports[r]:r.startsWith("invoke_")&&(n=wasmImports[r]=createInvokeFunction(r.split("_")[1])),{sym:n,name:r}},"resolveGlobalSymbol"),onPostCtors=[],addOnPostCtor=__name(r=>onPostCtors.push(r),"addOnPostCtor"),UTF8ToString=__name((r,e,n)=>r?UTF8ArrayToString(HEAPU8,r,e,n):"","UTF8ToString"),loadWebAssemblyModule=__name((binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign),memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(HEAP8[handle+8]=1,LE_HEAP_STORE_U32((handle+12>>2)*4,memoryBase),LE_HEAP_STORE_I32((handle+16>>2)*4,metadata.memorySize),LE_HEAP_STORE_U32((handle+20>>2)*4,tableBase),LE_HEAP_STORE_I32((handle+24>>2)*4,metadata.tableSize)),metadata.tableSize&&wasmTable.grow(metadata.tableSize);var moduleExports;function resolveSymbol(r){var e=resolveGlobalSymbol(r).sym;return!e&&localScope&&(e=localScope[r]),e||(e=moduleExports[r]),e}__name(resolveSymbol,"resolveSymbol");var proxyHandler={get(r,e){switch(e){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(e in wasmImports&&!wasmImports[e].stub){var n=wasmImports[e];return n}if(!(e in r)){var A;r[e]=(...o)=>(A||=resolveSymbol(e),A(...o))}return r[e]}},proxy=new Proxy({},proxyHandler);currentModuleWeakSymbols=metadata.weakImports;var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols();function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf("$"+arity)!=-1;arity++)args.push("$"+arity);args=args.join(",");var func=`(${args}) => { ${body} };`;eval(func)}if(__name(addEmAsm,"addEmAsm"),"__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start<stop;){var jsString=UTF8ToString(start);addEmAsm(start,jsString),start=HEAPU8.indexOf(0,start)+1}function addEmJs(name,cSig,body){var jsArgs=[];if(cSig=cSig.slice(1,-1),cSig!="void"){cSig=cSig.split(",");for(var i in cSig){var jsArg=cSig[i].split(" ").pop();jsArgs.push(jsArg.replace("*",""))}}var func=`(${jsArgs}) => ${body};`;moduleExports[name]=eval(func)}__name(addEmJs,"addEmJs");for(var name in moduleExports)if(name.startsWith("__em_js__")){var start=moduleExports[name],jsString=UTF8ToString(start),parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]),delete moduleExports[name]}var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;return init&&(runtimeInitialized?init():addOnPostCtor(init)),moduleExports}if(__name(postInstantiation,"postInstantiation"),flags.loadAsync)return(async()=>{var r;return binary instanceof WebAssembly.Module?r=new WebAssembly.Instance(binary,info):{module:binary,instance:r}=await WebAssembly.instantiate(binary,info),postInstantiation(binary,r)})();var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}return __name(loadModule,"loadModule"),flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}},flags.loadAsync?metadata.neededDynlibs.reduce((r,e)=>r.then(()=>loadDynamicLibrary(e,flags,localScope)),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach(r=>loadDynamicLibrary(r,flags,localScope)),loadModule())},"loadWebAssemblyModule"),mergeLibSymbols=__name((r,e)=>{for(var[n,A]of Object.entries(r)){const o=__name(a=>{isSymbolDefined(a)||(wasmImports[a]=A)},"setImport");o(n);const s="__main_argc_argv";n=="main"&&o(s),n==s&&o("main")}},"mergeLibSymbols"),asyncLoad=__name(async r=>{var e=await readAsync(r);return new Uint8Array(e)},"asyncLoad");function loadDynamicLibrary(r,e={global:!0,nodelete:!0},n,A){var o=LDSO.loadedLibsByName[r];if(o)return e.global?o.global||(o.global=!0,mergeLibSymbols(o.exports,r)):n&&Object.assign(n,o.exports),e.nodelete&&o.refcount!==1/0&&(o.refcount=1/0),o.refcount++,A&&(LDSO.loadedLibsByHandle[A]=o),e.loadAsync?Promise.resolve(!0):!0;o=newDSO(r,A,"loading"),o.refcount=e.nodelete?1/0:1,o.global=e.global;function s(){if(A){var c=LE_HEAP_LOAD_U32((A+28>>2)*4),g=LE_HEAP_LOAD_U32((A+32>>2)*4);if(c&&g){var h=HEAP8.slice(c,c+g);return e.loadAsync?Promise.resolve(h):h}}var d=locateFile(r);if(e.loadAsync)return asyncLoad(d);if(!readBinary)throw new Error(`${d}: file not found, and synchronous loading of external files is not available`);return readBinary(d)}__name(s,"loadLibData");function a(){return e.loadAsync?s().then(c=>loadWebAssemblyModule(c,e,r,n,A)):loadWebAssemblyModule(s(),e,r,n,A)}__name(a,"getExports");function l(c){o.global?mergeLibSymbols(c,r):n&&Object.assign(n,c),o.exports=c}return __name(l,"moduleLoaded"),e.loadAsync?a().then(c=>(l(c),!0)):(l(a()),!0)}__name(loadDynamicLibrary,"loadDynamicLibrary");var reportUndefinedSymbols=__name(()=>{for(var[r,e]of Object.entries(GOT))if(e.value==0){var n=resolveGlobalSymbol(r,!0).sym;if(!n&&!e.required)continue;if(typeof n=="function")e.value=addFunction(n,n.sig);else if(typeof n=="number")e.value=n;else throw new Error(`bad export type for '${r}': ${typeof n}`)}},"reportUndefinedSymbols"),runDependencies=0,dependenciesFulfilled=null,removeRunDependency=__name(r=>{if(runDependencies--,Module.monitorRunDependencies?.(runDependencies),runDependencies==0&&dependenciesFulfilled){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}},"removeRunDependency"),addRunDependency=__name(r=>{runDependencies++,Module.monitorRunDependencies?.(runDependencies)},"addRunDependency"),loadDylibs=__name(async()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");for(var r of dynamicLibraries)await loadDynamicLibrary(r,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});reportUndefinedSymbols(),removeRunDependency("loadDylibs")},"loadDylibs"),noExitRuntime=!0;function setValue(r,e,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":HEAP8[r]=e;break;case"i8":HEAP8[r]=e;break;case"i16":LE_HEAP_STORE_I16((r>>1)*2,e);break;case"i32":LE_HEAP_STORE_I32((r>>2)*4,e);break;case"i64":LE_HEAP_STORE_I64((r>>3)*8,BigInt(e));break;case"float":LE_HEAP_STORE_F32((r>>2)*4,e);break;case"double":LE_HEAP_STORE_F64((r>>3)*8,e);break;case"*":LE_HEAP_STORE_U32((r>>2)*4,e);break;default:abort(`invalid type for setValue: ${n}`)}}__name(setValue,"setValue");var ___memory_base=new WebAssembly.Global({value:"i32",mutable:!1},1024),___stack_high=78240,___stack_low=12704,___stack_pointer=new WebAssembly.Global({value:"i32",mutable:!0},78240),___table_base=new WebAssembly.Global({value:"i32",mutable:!1},1),__abort_js=__name(()=>abort(""),"__abort_js");__abort_js.sig="v";var getHeapMax=__name(()=>2147483648,"getHeapMax"),growMemory=__name(r=>{var e=wasmMemory.buffer.byteLength,n=(r-e+65535)/65536|0;try{return wasmMemory.grow(n),updateMemoryViews(),1}catch{}},"growMemory"),_emscripten_resize_heap=__name(r=>{var e=HEAPU8.length;r>>>=0;var n=getHeapMax();if(r>n)return!1;for(var A=1;A<=4;A*=2){var o=e*(1+.2/A);o=Math.min(o,r+100663296);var s=Math.min(n,alignMemory(Math.max(r,o),65536)),a=growMemory(s);if(a)return!0}return!1},"_emscripten_resize_heap");_emscripten_resize_heap.sig="ip";var _fd_close=__name(r=>52,"_fd_close");_fd_close.sig="ii";var INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992,bigintToI53Checked=__name(r=>r<INT53_MIN||r>INT53_MAX?NaN:Number(r),"bigintToI53Checked");function _fd_seek(r,e,n,A){return e=bigintToI53Checked(e),70}__name(_fd_seek,"_fd_seek"),_fd_seek.sig="iijip";var printCharBuffers=[null,[],[]],printChar=__name((r,e)=>{var n=printCharBuffers[r];e===0||e===10?((r===1?out:err)(UTF8ArrayToString(n)),n.length=0):n.push(e)},"printChar"),_fd_write=__name((r,e,n,A)=>{for(var o=0,s=0;s<n;s++){var a=LE_HEAP_LOAD_U32((e>>2)*4),l=LE_HEAP_LOAD_U32((e+4>>2)*4);e+=8;for(var c=0;c<l;c++)printChar(r,HEAPU8[a+c]);o+=l}return LE_HEAP_STORE_U32((A>>2)*4,o),0},"_fd_write");_fd_write.sig="iippp";function _tree_sitter_log_callback(r,e){if(Module.currentLogCallback){const n=UTF8ToString(e);Module.currentLogCallback(n,r!==0)}}__name(_tree_sitter_log_callback,"_tree_sitter_log_callback");function _tree_sitter_parse_callback(r,e,n,A,o){const a=Module.currentParseCallback(e,{row:n,column:A});typeof a=="string"?(setValue(o,a.length,"i32"),stringToUTF16(a,r,10240)):setValue(o,0,"i32")}__name(_tree_sitter_parse_callback,"_tree_sitter_parse_callback");function _tree_sitter_progress_callback(r,e){return Module.currentProgressCallback?Module.currentProgressCallback({currentOffset:r,hasError:e}):!1}__name(_tree_sitter_progress_callback,"_tree_sitter_progress_callback");function _tree_sitter_query_progress_callback(r){return Module.currentQueryProgressCallback?Module.currentQueryProgressCallback({currentOffset:r}):!1}__name(_tree_sitter_query_progress_callback,"_tree_sitter_query_progress_callback");var runtimeKeepaliveCounter=0,keepRuntimeAlive=__name(()=>noExitRuntime||runtimeKeepaliveCounter>0,"keepRuntimeAlive"),_proc_exit=__name(r=>{EXITSTATUS=r,keepRuntimeAlive()||(Module.onExit?.(r),ABORT=!0),quit_(r,new ExitStatus(r))},"_proc_exit");_proc_exit.sig="vi";var exitJS=__name((r,e)=>{EXITSTATUS=r,_proc_exit(r)},"exitJS"),handleException=__name(r=>{if(r instanceof ExitStatus||r=="unwind")return EXITSTATUS;quit_(1,r)},"handleException"),lengthBytesUTF8=__name(r=>{for(var e=0,n=0;n<r.length;++n){var A=r.charCodeAt(n);A<=127?e++:A<=2047?e+=2:A>=55296&&A<=57343?(e+=4,++n):e+=3}return e},"lengthBytesUTF8"),stringToUTF8Array=__name((r,e,n,A)=>{if(!(A>0))return 0;for(var o=n,s=n+A-1,a=0;a<r.length;++a){var l=r.codePointAt(a);if(l<=127){if(n>=s)break;e[n++]=l}else if(l<=2047){if(n+1>=s)break;e[n++]=192|l>>6,e[n++]=128|l&63}else if(l<=65535){if(n+2>=s)break;e[n++]=224|l>>12,e[n++]=128|l>>6&63,e[n++]=128|l&63}else{if(n+3>=s)break;e[n++]=240|l>>18,e[n++]=128|l>>12&63,e[n++]=128|l>>6&63,e[n++]=128|l&63,a++}}return e[n]=0,n-o},"stringToUTF8Array"),stringToUTF8=__name((r,e,n)=>stringToUTF8Array(r,HEAPU8,e,n),"stringToUTF8"),stackAlloc=__name(r=>__emscripten_stack_alloc(r),"stackAlloc"),stringToUTF8OnStack=__name(r=>{var e=lengthBytesUTF8(r)+1,n=stackAlloc(e);return stringToUTF8(r,n,e),n},"stringToUTF8OnStack"),AsciiToString=__name(r=>{for(var e="";;){var n=HEAPU8[r++];if(!n)return e;e+=String.fromCharCode(n)}},"AsciiToString"),stringToUTF16=__name((r,e,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var A=e,o=n<r.length*2?n/2:r.length,s=0;s<o;++s){var a=r.charCodeAt(s);LE_HEAP_STORE_I16((e>>1)*2,a),e+=2}return LE_HEAP_STORE_I16((e>>1)*2,0),e-A},"stringToUTF16");new Int8Array(new Int16Array([1]).buffer)[0];function LE_HEAP_UPDATE(){HEAPU16.unsigned=(r=>r&65535),HEAPU32.unsigned=(r=>r>>>0)}if(__name(LE_HEAP_UPDATE,"LE_HEAP_UPDATE"),initMemory(),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.dynamicLibraries&&(dynamicLibraries=Module.dynamicLibraries),Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.shift()();Module.setValue=setValue,Module.getValue=getValue,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.AsciiToString=AsciiToString,Module.stringToUTF16=stringToUTF16,Module.loadWebAssemblyModule=loadWebAssemblyModule,Module.LE_HEAP_STORE_I64=LE_HEAP_STORE_I64;var _calloc,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current;function assignWasmExports(r){Module._malloc=r.malloc,Module._calloc=_calloc=r.calloc,Module._realloc=r.realloc,Module._free=r.free,Module._ts_range_edit=r.ts_range_edit,Module._memcmp=r.memcmp,Module._ts_language_symbol_count=r.ts_language_symbol_count,Module._ts_language_state_count=r.ts_language_state_count,Module._ts_language_abi_version=r.ts_language_abi_version,Module._ts_language_name=r.ts_language_name,Module._ts_language_field_count=r.ts_language_field_count,Module._ts_language_next_state=r.ts_language_next_state,Module._ts_language_symbol_name=r.ts_language_symbol_name,Module._ts_language_symbol_for_name=r.ts_language_symbol_for_name,Module._strncmp=r.strncmp,Module._ts_language_symbol_type=r.ts_language_symbol_type,Module._ts_language_field_name_for_id=r.ts_language_field_name_for_id,Module._ts_lookahead_iterator_new=r.ts_lookahead_iterator_new,Module._ts_lookahead_iterator_delete=r.ts_lookahead_iterator_delete,Module._ts_lookahead_iterator_reset_state=r.ts_lookahead_iterator_reset_state,Module._ts_lookahead_iterator_reset=r.ts_lookahead_iterator_reset,Module._ts_lookahead_iterator_next=r.ts_lookahead_iterator_next,Module._ts_lookahead_iterator_current_symbol=r.ts_lookahead_iterator_current_symbol,Module._ts_point_edit=r.ts_point_edit,Module._ts_parser_delete=r.ts_parser_delete,Module._ts_parser_reset=r.ts_parser_reset,Module._ts_parser_set_language=r.ts_parser_set_language,Module._ts_parser_set_included_ranges=r.ts_parser_set_included_ranges,Module._ts_query_new=r.ts_query_new,Module._ts_query_delete=r.ts_query_delete,Module._iswspace=r.iswspace,Module._iswalnum=r.iswalnum,Module._ts_query_pattern_count=r.ts_query_pattern_count,Module._ts_query_capture_count=r.ts_query_capture_count,Module._ts_query_string_count=r.ts_query_string_count,Module._ts_query_capture_name_for_id=r.ts_query_capture_name_for_id,Module._ts_query_capture_quantifier_for_id=r.ts_query_capture_quantifier_for_id,Module._ts_query_string_value_for_id=r.ts_query_string_value_for_id,Module._ts_query_predicates_for_pattern=r.ts_query_predicates_for_pattern,Module._ts_query_start_byte_for_pattern=r.ts_query_start_byte_for_pattern,Module._ts_query_end_byte_for_pattern=r.ts_query_end_byte_for_pattern,Module._ts_query_is_pattern_rooted=r.ts_query_is_pattern_rooted,Module._ts_query_is_pattern_non_local=r.ts_query_is_pattern_non_local,Module._ts_query_is_pattern_guaranteed_at_step=r.ts_query_is_pattern_guaranteed_at_step,Module._ts_query_disable_capture=r.ts_query_disable_capture,Module._ts_query_disable_pattern=r.ts_query_disable_pattern,Module._ts_tree_copy=r.ts_tree_copy,Module._ts_tree_delete=r.ts_tree_delete,Module._ts_init=r.ts_init,Module._ts_parser_new_wasm=r.ts_parser_new_wasm,Module._ts_parser_enable_logger_wasm=r.ts_parser_enable_logger_wasm,Module._ts_parser_parse_wasm=r.ts_parser_parse_wasm,Module._ts_parser_included_ranges_wasm=r.ts_parser_included_ranges_wasm,Module._ts_language_type_is_named_wasm=r.ts_language_type_is_named_wasm,Module._ts_language_type_is_visible_wasm=r.ts_language_type_is_visible_wasm,Module._ts_language_metadata_wasm=r.ts_language_metadata_wasm,Module._ts_language_supertypes_wasm=r.ts_language_supertypes_wasm,Module._ts_language_subtypes_wasm=r.ts_language_subtypes_wasm,Module._ts_tree_root_node_wasm=r.ts_tree_root_node_wasm,Module._ts_tree_root_node_with_offset_wasm=r.ts_tree_root_node_with_offset_wasm,Module._ts_tree_edit_wasm=r.ts_tree_edit_wasm,Module._ts_tree_included_ranges_wasm=r.ts_tree_included_ranges_wasm,Module._ts_tree_get_changed_ranges_wasm=r.ts_tree_get_changed_ranges_wasm,Module._ts_tree_cursor_new_wasm=r.ts_tree_cursor_new_wasm,Module._ts_tree_cursor_copy_wasm=r.ts_tree_cursor_copy_wasm,Module._ts_tree_cursor_delete_wasm=r.ts_tree_cursor_delete_wasm,Module._ts_tree_cursor_reset_wasm=r.ts_tree_cursor_reset_wasm,Module._ts_tree_cursor_reset_to_wasm=r.ts_tree_cursor_reset_to_wasm,Module._ts_tree_cursor_goto_first_child_wasm=r.ts_tree_cursor_goto_first_child_wasm,Module._ts_tree_cursor_goto_last_child_wasm=r.ts_tree_cursor_goto_last_child_wasm,Module._ts_tree_cursor_goto_first_child_for_index_wasm=r.ts_tree_cursor_goto_first_child_for_index_wasm,Module._ts_tree_cursor_goto_first_child_for_position_wasm=r.ts_tree_cursor_goto_first_child_for_position_wasm,Module._ts_tree_cursor_goto_next_sibling_wasm=r.ts_tree_cursor_goto_next_sibling_wasm,Module._ts_tree_cursor_goto_previous_sibling_wasm=r.ts_tree_cursor_goto_previous_sibling_wasm,Module._ts_tree_cursor_goto_descendant_wasm=r.ts_tree_cursor_goto_descendant_wasm,Module._ts_tree_cursor_goto_parent_wasm=r.ts_tree_cursor_goto_parent_wasm,Module._ts_tree_cursor_current_node_type_id_wasm=r.ts_tree_cursor_current_node_type_id_wasm,Module._ts_tree_cursor_current_node_state_id_wasm=r.ts_tree_cursor_current_node_state_id_wasm,Module._ts_tree_cursor_current_node_is_named_wasm=r.ts_tree_cursor_current_node_is_named_wasm,Module._ts_tree_cursor_current_node_is_missing_wasm=r.ts_tree_cursor_current_node_is_missing_wasm,Module._ts_tree_cursor_current_node_id_wasm=r.ts_tree_cursor_current_node_id_wasm,Module._ts_tree_cursor_start_position_wasm=r.ts_tree_cursor_start_position_wasm,Module._ts_tree_cursor_end_position_wasm=r.ts_tree_cursor_end_position_wasm,Module._ts_tree_cursor_start_index_wasm=r.ts_tree_cursor_start_index_wasm,Module._ts_tree_cursor_end_index_wasm=r.ts_tree_cursor_end_index_wasm,Module._ts_tree_cursor_current_field_id_wasm=r.ts_tree_cursor_current_field_id_wasm,Module._ts_tree_cursor_current_depth_wasm=r.ts_tree_cursor_current_depth_wasm,Module._ts_tree_cursor_current_descendant_index_wasm=r.ts_tree_cursor_current_descendant_index_wasm,Module._ts_tree_cursor_current_node_wasm=r.ts_tree_cursor_current_node_wasm,Module._ts_node_symbol_wasm=r.ts_node_symbol_wasm,Module._ts_node_field_name_for_child_wasm=r.ts_node_field_name_for_child_wasm,Module._ts_node_field_name_for_named_child_wasm=r.ts_node_field_name_for_named_child_wasm,Module._ts_node_children_by_field_id_wasm=r.ts_node_children_by_field_id_wasm,Module._ts_node_first_child_for_byte_wasm=r.ts_node_first_child_for_byte_wasm,Module._ts_node_first_named_child_for_byte_wasm=r.ts_node_first_named_child_for_byte_wasm,Module._ts_node_grammar_symbol_wasm=r.ts_node_grammar_symbol_wasm,Module._ts_node_child_count_wasm=r.ts_node_child_count_wasm,Module._ts_node_named_child_count_wasm=r.ts_node_named_child_count_wasm,Module._ts_node_child_wasm=r.ts_node_child_wasm,Module._ts_node_named_child_wasm=r.ts_node_named_child_wasm,Module._ts_node_child_by_field_id_wasm=r.ts_node_child_by_field_id_wasm,Module._ts_node_next_sibling_wasm=r.ts_node_next_sibling_wasm,Module._ts_node_prev_sibling_wasm=r.ts_node_prev_sibling_wasm,Module._ts_node_next_named_sibling_wasm=r.ts_node_next_named_sibling_wasm,Module._ts_node_prev_named_sibling_wasm=r.ts_node_prev_named_sibling_wasm,Module._ts_node_descendant_count_wasm=r.ts_node_descendant_count_wasm,Module._ts_node_parent_wasm=r.ts_node_parent_wasm,Module._ts_node_child_with_descendant_wasm=r.ts_node_child_with_descendant_wasm,Module._ts_node_descendant_for_index_wasm=r.ts_node_descendant_for_index_wasm,Module._ts_node_named_descendant_for_index_wasm=r.ts_node_named_descendant_for_index_wasm,Module._ts_node_descendant_for_position_wasm=r.ts_node_descendant_for_position_wasm,Module._ts_node_named_descendant_for_position_wasm=r.ts_node_named_descendant_for_position_wasm,Module._ts_node_start_point_wasm=r.ts_node_start_point_wasm,Module._ts_node_end_point_wasm=r.ts_node_end_point_wasm,Module._ts_node_start_index_wasm=r.ts_node_start_index_wasm,Module._ts_node_end_index_wasm=r.ts_node_end_index_wasm,Module._ts_node_to_string_wasm=r.ts_node_to_string_wasm,Module._ts_node_children_wasm=r.ts_node_children_wasm,Module._ts_node_named_children_wasm=r.ts_node_named_children_wasm,Module._ts_node_descendants_of_type_wasm=r.ts_node_descendants_of_type_wasm,Module._ts_node_is_named_wasm=r.ts_node_is_named_wasm,Module._ts_node_has_changes_wasm=r.ts_node_has_changes_wasm,Module._ts_node_has_error_wasm=r.ts_node_has_error_wasm,Module._ts_node_is_error_wasm=r.ts_node_is_error_wasm,Module._ts_node_is_missing_wasm=r.ts_node_is_missing_wasm,Module._ts_node_is_extra_wasm=r.ts_node_is_extra_wasm,Module._ts_node_parse_state_wasm=r.ts_node_parse_state_wasm,Module._ts_node_next_parse_state_wasm=r.ts_node_next_parse_state_wasm,Module._ts_query_matches_wasm=r.ts_query_matches_wasm,Module._ts_query_captures_wasm=r.ts_query_captures_wasm,Module._memset=r.memset,Module._memcpy=r.memcpy,Module._memmove=r.memmove,Module._iswalpha=r.iswalpha,Module._iswblank=r.iswblank,Module._iswdigit=r.iswdigit,Module._iswlower=r.iswlower,Module._iswupper=r.iswupper,Module._iswxdigit=r.iswxdigit,Module._memchr=r.memchr,Module._strlen=r.strlen,Module._strcmp=r.strcmp,Module._strncat=r.strncat,Module._strncpy=r.strncpy,Module._towlower=r.towlower,Module._towupper=r.towupper,_setThrew=r.setThrew,__emscripten_stack_restore=r._emscripten_stack_restore,__emscripten_stack_alloc=r._emscripten_stack_alloc,_emscripten_stack_get_current=r.emscripten_stack_get_current,r.__wasm_apply_data_relocs}__name(assignWasmExports,"assignWasmExports");var wasmImports={__heap_base:___heap_base,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__table_base:___table_base,_abort_js:__abort_js,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,tree_sitter_log_callback:_tree_sitter_log_callback,tree_sitter_parse_callback:_tree_sitter_parse_callback,tree_sitter_progress_callback:_tree_sitter_progress_callback,tree_sitter_query_progress_callback:_tree_sitter_query_progress_callback};function callMain(r=[]){var e=resolveGlobalSymbol("main").sym;if(e){r.unshift(thisProgram);var n=r.length,A=stackAlloc((n+1)*4),o=A;r.forEach(a=>{LE_HEAP_STORE_U32((o>>2)*4,stringToUTF8OnStack(a)),o+=4}),LE_HEAP_STORE_U32((o>>2)*4,0);try{var s=e(n,A);return exitJS(s,!0),s}catch(a){return handleException(a)}}}__name(callMain,"callMain");function run(r=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}if(preRun(),runDependencies>0){dependenciesFulfilled=run;return}function e(){if(Module.calledRun=!0,!ABORT){initRuntime(),readyPromiseResolve?.(Module),Module.onRuntimeInitialized?.();var n=Module.noInitialRun||!1;n||callMain(r),postRun()}}__name(e,"doRun"),Module.setStatus?(Module.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>Module.setStatus(""),1),e()},1)):e()}__name(run,"run");var wasmExports;return wasmExports=await createWasm(),run(),runtimeInitialized?moduleRtn=Module:moduleRtn=new Promise((r,e)=>{readyPromiseResolve=r,readyPromiseReject=e}),moduleRtn}__name(Module2,"Module");var web_tree_sitter_default=Module2,Module3=null;async function initializeBinding(r){return Module3??=await web_tree_sitter_default(r)}__name(initializeBinding,"initializeBinding");function checkModule(){return!!Module3}__name(checkModule,"checkModule");var TRANSFER_BUFFER,LANGUAGE_VERSION,MIN_COMPATIBLE_VERSION,Parser=class{static{__name(this,"Parser")}0=0;1=0;logCallback=null;language=null;static async init(r){setModule(await initializeBinding(r)),TRANSFER_BUFFER=C._ts_init(),LANGUAGE_VERSION=C.getValue(TRANSFER_BUFFER,"i32"),MIN_COMPATIBLE_VERSION=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32")}constructor(){this.initialize()}initialize(){if(!checkModule())throw new Error("cannot construct a Parser before calling `init()`");C._ts_parser_new_wasm(),this[0]=C.getValue(TRANSFER_BUFFER,"i32"),this[1]=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32")}delete(){C._ts_parser_delete(this[0]),C._free(this[1]),this[0]=0,this[1]=0}setLanguage(r){let e;if(!r)e=0,this.language=null;else if(r.constructor===Language){e=r[0];const n=C._ts_language_abi_version(e);if(n<MIN_COMPATIBLE_VERSION||LANGUAGE_VERSION<n)throw new Error(`Incompatible language version ${n}. Compatibility range ${MIN_COMPATIBLE_VERSION} through ${LANGUAGE_VERSION}.`);this.language=r}else throw new Error("Argument must be a Language");return C._ts_parser_set_language(this[0],e),this}parse(r,e,n){if(typeof r=="string")C.currentParseCallback=l=>r.slice(l);else if(typeof r=="function")C.currentParseCallback=r;else throw new Error("Argument must be a string or a function");n?.progressCallback?C.currentProgressCallback=n.progressCallback:C.currentProgressCallback=null,this.logCallback?(C.currentLogCallback=this.logCallback,C._ts_parser_enable_logger_wasm(this[0],1)):(C.currentLogCallback=null,C._ts_parser_enable_logger_wasm(this[0],0));let A=0,o=0;if(n?.includedRanges){A=n.includedRanges.length,o=C._calloc(A,SIZE_OF_RANGE);let l=o;for(let c=0;c<A;c++)marshalRange(l,n.includedRanges[c]),l+=SIZE_OF_RANGE}const s=C._ts_parser_parse_wasm(this[0],this[1],e?e[0]:0,o,A);if(!s)return C.currentParseCallback=null,C.currentLogCallback=null,C.currentProgressCallback=null,null;if(!this.language)throw new Error("Parser must have a language to parse");const a=new Tree(INTERNAL,s,this.language,C.currentParseCallback);return C.currentParseCallback=null,C.currentLogCallback=null,C.currentProgressCallback=null,a}reset(){C._ts_parser_reset(this[0])}getIncludedRanges(){C._ts_parser_included_ranges_wasm(this[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),n=new Array(r);if(r>0){let A=e;for(let o=0;o<r;o++)n[o]=unmarshalRange(A),A+=SIZE_OF_RANGE;C._free(e)}return n}setLogger(r){if(!r)this.logCallback=null;else{if(typeof r!="function")throw new Error("Logger callback must be a function");this.logCallback=r}return this}getLogger(){return this.logCallback}},PREDICATE_STEP_TYPE_CAPTURE=1,PREDICATE_STEP_TYPE_STRING=2,QUERY_WORD_REGEX=/[\w-]+/g,isCaptureStep=__name(r=>r.type==="capture","isCaptureStep"),isStringStep=__name(r=>r.type==="string","isStringStep"),QueryErrorKind={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},QueryError$1=class Bt extends Error{constructor(e,n,A,o){super(Bt.formatMessage(e,n)),this.kind=e,this.info=n,this.index=A,this.length=o,this.name="QueryError"}static{__name(this,"QueryError")}static formatMessage(e,n){switch(e){case QueryErrorKind.NodeName:return`Bad node name '${n.word}'`;case QueryErrorKind.FieldName:return`Bad field name '${n.word}'`;case QueryErrorKind.CaptureName:return`Bad capture name @${n.word}`;case QueryErrorKind.PatternStructure:return`Bad pattern structure at offset ${n.suffix}`;case QueryErrorKind.Syntax:return`Bad syntax at offset ${n.suffix}`}}};function parseAnyPredicate(r,e,n,A){if(r.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${r.length-1}`);if(!isCaptureStep(r[1]))throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}"`);const o=n==="eq?"||n==="any-eq?",s=!n.startsWith("any-");if(isCaptureStep(r[2])){const a=r[1].name,l=r[2].name;A[e].push(c=>{const g=[],h=[];for(const u of c)u.name===a&&g.push(u.node),u.name===l&&h.push(u.node);const d=__name((u,f,I)=>I?u.text===f.text:u.text!==f.text,"compare");return s?g.every(u=>h.some(f=>d(u,f,o))):g.some(u=>h.some(f=>d(u,f,o)))})}else{const a=r[1].name,l=r[2].value,c=__name(h=>h.text===l,"matches"),g=__name(h=>h.text!==l,"doesNotMatch");A[e].push(h=>{const d=[];for(const f of h)f.name===a&&d.push(f.node);const u=o?c:g;return s?d.every(u):d.some(u)})}}__name(parseAnyPredicate,"parseAnyPredicate");function parseMatchPredicate(r,e,n,A){if(r.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${r.length-1}.`);if(r[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}".`);if(r[2].type!=="string")throw new Error(`Second argument of \`#${n}\` predicate must be a string. Got @${r[2].name}.`);const o=n==="match?"||n==="any-match?",s=!n.startsWith("any-"),a=r[1].name,l=new RegExp(r[2].value);A[e].push(c=>{const g=[];for(const d of c)d.name===a&&g.push(d.node.text);const h=__name((d,u)=>u?l.test(d):!l.test(d),"test");return g.length===0?!o:s?g.every(d=>h(d,o)):g.some(d=>h(d,o))})}__name(parseMatchPredicate,"parseMatchPredicate");function parseAnyOfPredicate(r,e,n,A){if(r.length<2)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected at least 1. Got ${r.length-1}.`);if(r[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}".`);const o=n==="any-of?",s=r[1].name,a=r.slice(2);if(!a.every(isStringStep))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);const l=a.map(c=>c.value);A[e].push(c=>{const g=[];for(const h of c)h.name===s&&g.push(h.node.text);return g.length===0?!o:g.every(h=>l.includes(h))===o})}__name(parseAnyOfPredicate,"parseAnyOfPredicate");function parseIsPredicate(r,e,n,A,o){if(r.length<2||r.length>3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 1 or 2. Got ${r.length-1}.`);if(!r.every(isStringStep))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);const s=n==="is?"?A:o;s[e]||(s[e]={}),s[e][r[1].value]=r[2]?.value??null}__name(parseIsPredicate,"parseIsPredicate");function parseSetDirective(r,e,n){if(r.length<2||r.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${r.length-1}.`);if(!r.every(isStringStep))throw new Error('Arguments to `#set!` predicate must be strings.".');n[e]||(n[e]={}),n[e][r[1].value]=r[2]?.value??null}__name(parseSetDirective,"parseSetDirective");function parsePattern(r,e,n,A,o,s,a,l,c,g,h){if(e===PREDICATE_STEP_TYPE_CAPTURE){const d=A[n];s.push({type:"capture",name:d})}else if(e===PREDICATE_STEP_TYPE_STRING)s.push({type:"string",value:o[n]});else if(s.length>0){if(s[0].type!=="string")throw new Error("Predicates must begin with a literal value");const d=s[0].value;switch(d){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":parseAnyPredicate(s,r,d,a);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":parseMatchPredicate(s,r,d,a);break;case"not-any-of?":case"any-of?":parseAnyOfPredicate(s,r,d,a);break;case"is?":case"is-not?":parseIsPredicate(s,r,d,g,h);break;case"set!":parseSetDirective(s,r,c);break;default:l[r].push({operator:d,operands:s.slice(1)})}s.length=0}}__name(parsePattern,"parsePattern");var Query=class{static{__name(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(r,e){const n=C.lengthBytesUTF8(e),A=C._malloc(n+1);C.stringToUTF8(e,A,n+1);const o=C._ts_query_new(r[0],A,n,TRANSFER_BUFFER,TRANSFER_BUFFER+SIZE_OF_INT);if(!o){const m=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),E=C.getValue(TRANSFER_BUFFER,"i32"),B=C.UTF8ToString(A,E).length,Q=e.slice(B,B+100).split(`
|
|
207
|
-
`)[0],S=Q.match(QUERY_WORD_REGEX)?.[0]??"";switch(C._free(A),m){case QueryErrorKind.Syntax:throw new QueryError
|
|
208
|
-
`).slice(-1)[0].length,n.edit({startIndex:l,oldEndIndex:c,newEndIndex:l+e.length,startPosition:s,oldEndPosition:a,newEndPosition:{row:s.row+g,column:h}}),this.tree.codeString=A.slice(0,l)+e+A.slice(c)}}class SoftNode extends BaseNode{constructor(e){super(e),this.children=[]}get startIndex(){return this._startIndexOffset+this.getReferencePoint().index}get startPosition(){return{row:this._startRowOffset+this.getReferencePoint().position.row,column:this._startColOffset+this.getReferencePoint().position.column}}get endIndex(){return this._endIndexOffset+this.getReferencePoint().index}get endPosition(){return{row:this._endRowOffset+this.getReferencePoint().position.row,column:this._endColOffset+this.getReferencePoint().position.column}}}class WhitespaceNode extends SoftNode{constructor({parent:e,...n}){super({...n,type:"whitespace",typeId:-1}),this._parent=e}get parent(){return this._parent}}class SoftTextNode extends SoftNode{constructor({parent:e,...n}){super({...n,type:"text",typeId:-2}),this._parent=e}get parent(){return this._parent}}function _getQueryCaptureTargets(r){return r.includes("@")?r.replace(/"(?:\\(?:[^xu0-7]|[0-7]{1,3}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]+})|[^\"\\])*"/g,"").match(/(?<=@)([a-zA-Z0-9.\-_\$]+)/g):[]}const realRootNodeGetter=Object.getOwnPropertyDescriptor(Tree.prototype,"rootNode").get;Object.defineProperty(Tree.prototype,"rootNode",{get(){const r=realRootNodeGetter.call(this),e={};Object.setPrototypeOf(e,Object.getPrototypeOf(r));const n=Object.assign(Object.getOwnPropertyDescriptors(Node.prototype),Object.getOwnPropertyDescriptors(r)),A={};for(const[o,s]of Object.entries(n))o=="startIndex"||o=="startPosition"||(o=="text"||o=="replaceInnards"?A[o]=s:A[o]={get:()=>{const a=r[o];return typeof a=="function"?(...l)=>a.apply(r,l):a},set:a=>r[o]=a,enumerable:s.enumerable,configurable:s.configurable});return Object.setPrototypeOf(e,Node.prototype),Object.defineProperties(e,A),e.startIndex=0,e.startPosition={row:0,column:0},e.children.length==0&&e.endIndex!=0&&(e._children=_childrenWithSoftNodes(e,[{startIndex:e.endIndex,endIndex:e.endIndex,endPosition:e.endPosition}],r.tree.codeString).slice(0,-1)),_shadows[r.id]=e,e}});const originalDescriptors=Object.getOwnPropertyDescriptors(Node.prototype),originalChildrenGetter=originalDescriptors.children.get,originalEndIndex=originalDescriptors.endIndex.get,originalEndPosition=originalDescriptors.endPosition.get,originalParent=originalDescriptors.parent.get,originalTextGetter=originalDescriptors.text.get,originalEquals=originalDescriptors.equals.value,originalToString=originalDescriptors.toString.value;class HardNode extends BaseNode{constructor(){super(...arguments),this.equals=originalEquals}get parent(){const e=originalParent.call(this);return _shadows[e?.id]||e}get text(){return originalTextGetter.call(_shadows[this.id]||this)}get endIndex(){return this.depth==0?this.tree.codeString.length:originalEndIndex.call(this)}get endPosition(){if(this.depth==0){const e=(this.tree.codeString.match(/\n/g)||[]).length,n=this.tree.codeString.match(new RegExp(`^(?:.*\\r?\\n){${e}}(.*)`))[1].length;return{row:e,column:n}}return originalEndPosition.call(this)}get children(){return this._children||(this._children=originalChildrenGetter.call(this),this.tree._enableSoftNodes&&(this._children=_childrenWithSoftNodes(this,this._children||[],this.tree.codeString))),this._children||[]}set children(e){this._children=e}*traverse(e={_parentNodes:[]}){const{_parentNodes:n}=e,A=[this,...n];if(this.children?.length==0)yield[n,this,"-"];else{yield[n,this,"->"];for(const o of this.children||[])if(o instanceof Node)for(const s of o.traverse({_parentNodes:A}))yield s;else yield[A,o,"-"];yield[n,this,"<-"]}}*iterFlattened({filter:e,includeSelf:n=!1}={}){if(n&&(yield this),typeof e=="function")for(const A of this.children||[]){e(A)&&(yield A);for(const o of A.iterFlattened({filter:e}))yield o}else for(const A of this.children||[]){yield A;for(const o of A.iterFlattened({filter:e}))yield o}}iterFlatten(){throw Error("did you mean iterFlattened instead of iterFlatten?")}flattened({filter:e,includeSelf:n=!1}={}){return[...this.iterFlattened({filter:e,includeSelf:n})]}flatten(){throw Error("did you mean flattened instead of flatten?")}query(e,n){const{matchLimit:A,startPosition:o,endPosition:s,maxResultDepth:a}=n||{},l=a??1/0;let c;try{c=new Query(this.tree.language,e)}catch(u){throw u
|
|
206
|
+
${JSON.stringify(o,null,2)}`),new Error("Language.load failed: no language function found in Wasm file");const a=A[s]();return new Et(INTERNAL,a)}};async function Module2(moduleArg={}){var moduleRtn,Module=moduleArg,ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope<"u",ENVIRONMENT_IS_NODE=typeof process=="object"&&process.versions?.node&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire:r}=await Promise.resolve().then(()=>__viteBrowserExternal);var require$1=r(typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-Sbat7waZ.cjs",document.baseURI).href)}Module.currentQueryProgressCallback=null,Module.currentProgressCallback=null,Module.currentLogCallback=null,Module.currentParseCallback=null;var arguments_=[],thisProgram="./this.program",quit_=__name((r,e)=>{throw e},"quit_"),_scriptName=typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-Sbat7waZ.cjs",document.baseURI).href,scriptDirectory="";function locateFile(r){return Module.locateFile?Module.locateFile(r,scriptDirectory):scriptDirectory+r}__name(locateFile,"locateFile");var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require$1("fs");_scriptName.startsWith("file:")&&(scriptDirectory=require$1("path").dirname(require$1("url").fileURLToPath(_scriptName))+"/"),readBinary=__name(r=>{r=isFileURI(r)?new URL(r):r;var e=fs.readFileSync(r);return e},"readBinary"),readAsync=__name(async(r,e=!0)=>{r=isFileURI(r)?new URL(r):r;var n=fs.readFileSync(r,e?void 0:"utf8");return n},"readAsync"),process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),quit_=__name((r,e)=>{throw process.exitCode=r,e},"quit_")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}ENVIRONMENT_IS_WORKER&&(readBinary=__name(r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},"readBinary")),readAsync=__name(async r=>{if(isFileURI(r))return new Promise((n,A)=>{var o=new XMLHttpRequest;o.open("GET",r,!0),o.responseType="arraybuffer",o.onload=()=>{if(o.status==200||o.status==0&&o.response){n(o.response);return}A(o.status)},o.onerror=A,o.send(null)});var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},"readAsync")}var out=console.log.bind(console),err=console.error.bind(console),dynamicLibraries=[],wasmBinary,ABORT=!1,EXITSTATUS,isFileURI=__name(r=>r.startsWith("file://"),"isFileURI"),readyPromiseResolve,readyPromiseReject,wasmMemory,HEAP8,HEAPU8,HEAPU16,HEAPU32,HEAP_DATA_VIEW,runtimeInitialized=!1;function updateMemoryViews(){var r=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(r),Module.HEAP16=new Int16Array(r),Module.HEAPU8=HEAPU8=new Uint8Array(r),Module.HEAPU16=HEAPU16=new Uint16Array(r),Module.HEAP32=new Int32Array(r),Module.HEAPU32=HEAPU32=new Uint32Array(r),Module.HEAPF32=new Float32Array(r),Module.HEAPF64=new Float64Array(r),Module.HEAP64=new BigInt64Array(r),Module.HEAPU64=new BigUint64Array(r),Module.HEAP_DATA_VIEW=HEAP_DATA_VIEW=new DataView(r),LE_HEAP_UPDATE()}__name(updateMemoryViews,"updateMemoryViews");function initMemory(){if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else{var r=Module.INITIAL_MEMORY||33554432;wasmMemory=new WebAssembly.Memory({initial:r/65536,maximum:32768})}updateMemoryViews()}__name(initMemory,"initMemory");var __RELOC_FUNCS__=[];function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(onPreRuns)}__name(preRun,"preRun");function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),wasmExports.__wasm_call_ctors(),callRuntimeCallbacks(onPostCtors)}__name(initRuntime,"initRuntime");function preMain(){}__name(preMain,"preMain");function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}__name(postRun,"postRun");function abort(r){Module.onAbort?.(r),r="Aborted("+r+")",err(r),ABORT=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw readyPromiseReject?.(e),e}__name(abort,"abort");var wasmBinaryFile;function findWasmBinary(){return Module.locateFile?locateFile("web-tree-sitter.wasm"):new URL("data:application/wasm;base64,AGFzbQEAAAAAEAhkeWxpbmsuMAEFnFsEHgABswEXYAF/AX9gAn9/AX9gAX8AYAN/f38AYAN/f38Bf2ACf38AYAR/f39/AX9gBX9/f39/AGAEf39/fwBgAABgBX9/f39/AX9gAAF/YAh/f39/f39/fwF/YAd/f39/f39/AGAGf3x/f39/AX9gEH9/f39/f39/f39/f39/f38AYAZ/f39/f38AYAJ+fwF/YAd/f39/f39/AX9gAnx/AXxgBH9/f38BfmAEf35/fwF/YAN/fn8BfgLbAxEWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAGA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAAWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQdmZF9zZWVrABUDZW52CV9hYm9ydF9qcwAJFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfY2xvc2UAAANlbnYjdHJlZV9zaXR0ZXJfcXVlcnlfcHJvZ3Jlc3NfY2FsbGJhY2sAAANlbnYddHJlZV9zaXR0ZXJfcHJvZ3Jlc3NfY2FsbGJhY2sAAQNlbnYadHJlZV9zaXR0ZXJfcGFyc2VfY2FsbGJhY2sABwNlbnYYdHJlZV9zaXR0ZXJfbG9nX2NhbGxiYWNrAAUDZW52D19fc3RhY2tfcG9pbnRlcgN/AQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYMX190YWJsZV9iYXNlA38AB0dPVC5tZW0LX19zdGFja19sb3cDfwEHR09ULm1lbQxfX3N0YWNrX2hpZ2gDfwEHR09ULm1lbQtfX2hlYXBfYmFzZQN/AQNlbnYGbWVtb3J5AgGABICAAgNlbnYZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQFwAB4DlQKTAgUFBgACAwcFBQQABQUCBwMQAwQAAwYKAwAAEQQEBQMCAgEEAAQBAQwBAgQABQgHBAIBAwgAAAUCBQAJAQMBAAQLAgIIDAMFAQYDBAcNBwgDAwAABQEBBggAEhMEAAAABAUEBAQAFAAFBwUKBAgFAQEDAwUDAQEBAQEEBAQEAAAACgEBAgMBAQUCAAAAAAEABAQAAwQAAAsAAgAAAAAFBAAFDgQBBBYADwACDwAAAAAAAAAADQECAgAAAAICAgICCQICAgACAgICBQUBBQAAAAICBQEBAAIAAAAAAAICAAAAAAAABQAAAAAAAQAFAgICAgUCAgICBQICAQECAAYKAAMFCQsEBAQAAgAEAAEBAQEAAAkJBjkIfwFByNMAC38BQcDTAAt/AUHM0wALfwFBxNMAC38BQYjVAAt/AUGQ1QALfwFBlNsAC38BQZjbAAsHhiGYARFfX3dhc21fY2FsbF9jdG9ycwCbAgZtYWxsb2MAIgZjYWxsb2MAKgdyZWFsbG9jAF0EZnJlZQAyDXRzX3JhbmdlX2VkaXQATwZtZW1jbXAAEhh0c19sYW5ndWFnZV9zeW1ib2xfY291bnQAmQIXdHNfbGFuZ3VhZ2Vfc3RhdGVfY291bnQAmAIXdHNfbGFuZ3VhZ2VfYWJpX3ZlcnNpb24AkwIQdHNfbGFuZ3VhZ2VfbmFtZQCPAhd0c19sYW5ndWFnZV9maWVsZF9jb3VudACHAhZ0c19sYW5ndWFnZV9uZXh0X3N0YXRlACsXdHNfbGFuZ3VhZ2Vfc3ltYm9sX25hbWUA8gEbdHNfbGFuZ3VhZ2Vfc3ltYm9sX2Zvcl9uYW1lAB4Hc3RybmNtcAAbF3RzX2xhbmd1YWdlX3N5bWJvbF90eXBlAEQddHNfbGFuZ3VhZ2VfZmllbGRfbmFtZV9mb3JfaWQA0wEZdHNfbG9va2FoZWFkX2l0ZXJhdG9yX25ldwC9ARx0c19sb29rYWhlYWRfaXRlcmF0b3JfZGVsZXRlALIBIXRzX2xvb2thaGVhZF9pdGVyYXRvcl9yZXNldF9zdGF0ZQCsARt0c19sb29rYWhlYWRfaXRlcmF0b3JfcmVzZXQAqwEadHNfbG9va2FoZWFkX2l0ZXJhdG9yX25leHQAqAEkdHNfbG9va2FoZWFkX2l0ZXJhdG9yX2N1cnJlbnRfc3ltYm9sAKUBDXRzX3BvaW50X2VkaXQAjQEQdHNfcGFyc2VyX2RlbGV0ZQCMAQ90c19wYXJzZXJfcmVzZXQAKRZ0c19wYXJzZXJfc2V0X2xhbmd1YWdlAIsBHXRzX3BhcnNlcl9zZXRfaW5jbHVkZWRfcmFuZ2VzADgMdHNfcXVlcnlfbmV3AIkBD3RzX3F1ZXJ5X2RlbGV0ZQBLCGlzd3NwYWNlAGYIaXN3YWxudW0AExZ0c19xdWVyeV9wYXR0ZXJuX2NvdW50AIgBFnRzX3F1ZXJ5X2NhcHR1cmVfY291bnQAhwEVdHNfcXVlcnlfc3RyaW5nX2NvdW50AIYBHHRzX3F1ZXJ5X2NhcHR1cmVfbmFtZV9mb3JfaWQAhQEidHNfcXVlcnlfY2FwdHVyZV9xdWFudGlmaWVyX2Zvcl9pZACEARx0c19xdWVyeV9zdHJpbmdfdmFsdWVfZm9yX2lkAIMBH3RzX3F1ZXJ5X3ByZWRpY2F0ZXNfZm9yX3BhdHRlcm4AggEfdHNfcXVlcnlfc3RhcnRfYnl0ZV9mb3JfcGF0dGVybgCBAR10c19xdWVyeV9lbmRfYnl0ZV9mb3JfcGF0dGVybgCAARp0c19xdWVyeV9pc19wYXR0ZXJuX3Jvb3RlZAB/HXRzX3F1ZXJ5X2lzX3BhdHRlcm5fbm9uX2xvY2FsAH4mdHNfcXVlcnlfaXNfcGF0dGVybl9ndWFyYW50ZWVkX2F0X3N0ZXAAfRh0c19xdWVyeV9kaXNhYmxlX2NhcHR1cmUAfBh0c19xdWVyeV9kaXNhYmxlX3BhdHRlcm4Aewx0c190cmVlX2NvcHkAkQIOdHNfdHJlZV9kZWxldGUAkAIHdHNfaW5pdACLAhJ0c19wYXJzZXJfbmV3X3dhc20AigIcdHNfcGFyc2VyX2VuYWJsZV9sb2dnZXJfd2FzbQCJAhR0c19wYXJzZXJfcGFyc2Vfd2FzbQCGAh50c19wYXJzZXJfaW5jbHVkZWRfcmFuZ2VzX3dhc20AgwIedHNfbGFuZ3VhZ2VfdHlwZV9pc19uYW1lZF93YXNtAIICIHRzX2xhbmd1YWdlX3R5cGVfaXNfdmlzaWJsZV93YXNtAIECGXRzX2xhbmd1YWdlX21ldGFkYXRhX3dhc20AgAIbdHNfbGFuZ3VhZ2Vfc3VwZXJ0eXBlc193YXNtAP8BGXRzX2xhbmd1YWdlX3N1YnR5cGVzX3dhc20A/gEWdHNfdHJlZV9yb290X25vZGVfd2FzbQD9ASJ0c190cmVlX3Jvb3Rfbm9kZV93aXRoX29mZnNldF93YXNtAPwBEXRzX3RyZWVfZWRpdF93YXNtAPsBHHRzX3RyZWVfaW5jbHVkZWRfcmFuZ2VzX3dhc20A+gEfdHNfdHJlZV9nZXRfY2hhbmdlZF9yYW5nZXNfd2FzbQD5ARd0c190cmVlX2N1cnNvcl9uZXdfd2FzbQD4ARh0c190cmVlX2N1cnNvcl9jb3B5X3dhc20A9wEadHNfdHJlZV9jdXJzb3JfZGVsZXRlX3dhc20A9gEZdHNfdHJlZV9jdXJzb3JfcmVzZXRfd2FzbQD1ARx0c190cmVlX2N1cnNvcl9yZXNldF90b193YXNtAPQBJHRzX3RyZWVfY3Vyc29yX2dvdG9fZmlyc3RfY2hpbGRfd2FzbQDzASN0c190cmVlX2N1cnNvcl9nb3RvX2xhc3RfY2hpbGRfd2FzbQDxAS50c190cmVlX2N1cnNvcl9nb3RvX2ZpcnN0X2NoaWxkX2Zvcl9pbmRleF93YXNtAPABMXRzX3RyZWVfY3Vyc29yX2dvdG9fZmlyc3RfY2hpbGRfZm9yX3Bvc2l0aW9uX3dhc20A7wEldHNfdHJlZV9jdXJzb3JfZ290b19uZXh0X3NpYmxpbmdfd2FzbQDuASl0c190cmVlX2N1cnNvcl9nb3RvX3ByZXZpb3VzX3NpYmxpbmdfd2FzbQDtASN0c190cmVlX2N1cnNvcl9nb3RvX2Rlc2NlbmRhbnRfd2FzbQDsAR90c190cmVlX2N1cnNvcl9nb3RvX3BhcmVudF93YXNtAOsBKHRzX3RyZWVfY3Vyc29yX2N1cnJlbnRfbm9kZV90eXBlX2lkX3dhc20A6gEpdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX3N0YXRlX2lkX3dhc20A6QEpdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX2lzX25hbWVkX3dhc20A6AErdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX2lzX21pc3Npbmdfd2FzbQDnASN0c190cmVlX2N1cnNvcl9jdXJyZW50X25vZGVfaWRfd2FzbQDmASJ0c190cmVlX2N1cnNvcl9zdGFydF9wb3NpdGlvbl93YXNtAOUBIHRzX3RyZWVfY3Vyc29yX2VuZF9wb3NpdGlvbl93YXNtAOQBH3RzX3RyZWVfY3Vyc29yX3N0YXJ0X2luZGV4X3dhc20A4wEddHNfdHJlZV9jdXJzb3JfZW5kX2luZGV4X3dhc20A4gEkdHNfdHJlZV9jdXJzb3JfY3VycmVudF9maWVsZF9pZF93YXNtAOEBIXRzX3RyZWVfY3Vyc29yX2N1cnJlbnRfZGVwdGhfd2FzbQDgASx0c190cmVlX2N1cnNvcl9jdXJyZW50X2Rlc2NlbmRhbnRfaW5kZXhfd2FzbQDfASB0c190cmVlX2N1cnNvcl9jdXJyZW50X25vZGVfd2FzbQDeARN0c19ub2RlX3N5bWJvbF93YXNtAN0BIXRzX25vZGVfZmllbGRfbmFtZV9mb3JfY2hpbGRfd2FzbQDcASd0c19ub2RlX2ZpZWxkX25hbWVfZm9yX25hbWVkX2NoaWxkX3dhc20A2wEhdHNfbm9kZV9jaGlsZHJlbl9ieV9maWVsZF9pZF93YXNtANoBIXRzX25vZGVfZmlyc3RfY2hpbGRfZm9yX2J5dGVfd2FzbQDZASd0c19ub2RlX2ZpcnN0X25hbWVkX2NoaWxkX2Zvcl9ieXRlX3dhc20A2AEbdHNfbm9kZV9ncmFtbWFyX3N5bWJvbF93YXNtANcBGHRzX25vZGVfY2hpbGRfY291bnRfd2FzbQDWAR50c19ub2RlX25hbWVkX2NoaWxkX2NvdW50X3dhc20A1QESdHNfbm9kZV9jaGlsZF93YXNtANQBGHRzX25vZGVfbmFtZWRfY2hpbGRfd2FzbQDSAR50c19ub2RlX2NoaWxkX2J5X2ZpZWxkX2lkX3dhc20A0QEZdHNfbm9kZV9uZXh0X3NpYmxpbmdfd2FzbQDQARl0c19ub2RlX3ByZXZfc2libGluZ193YXNtAM8BH3RzX25vZGVfbmV4dF9uYW1lZF9zaWJsaW5nX3dhc20AzgEfdHNfbm9kZV9wcmV2X25hbWVkX3NpYmxpbmdfd2FzbQDNAR10c19ub2RlX2Rlc2NlbmRhbnRfY291bnRfd2FzbQDMARN0c19ub2RlX3BhcmVudF93YXNtAMsBInRzX25vZGVfY2hpbGRfd2l0aF9kZXNjZW5kYW50X3dhc20AygEhdHNfbm9kZV9kZXNjZW5kYW50X2Zvcl9pbmRleF93YXNtAMkBJ3RzX25vZGVfbmFtZWRfZGVzY2VuZGFudF9mb3JfaW5kZXhfd2FzbQDHASR0c19ub2RlX2Rlc2NlbmRhbnRfZm9yX3Bvc2l0aW9uX3dhc20AxgEqdHNfbm9kZV9uYW1lZF9kZXNjZW5kYW50X2Zvcl9wb3NpdGlvbl93YXNtAMUBGHRzX25vZGVfc3RhcnRfcG9pbnRfd2FzbQDEARZ0c19ub2RlX2VuZF9wb2ludF93YXNtAMMBGHRzX25vZGVfc3RhcnRfaW5kZXhfd2FzbQDCARZ0c19ub2RlX2VuZF9pbmRleF93YXNtAMEBFnRzX25vZGVfdG9fc3RyaW5nX3dhc20AwAEVdHNfbm9kZV9jaGlsZHJlbl93YXNtAL8BG3RzX25vZGVfbmFtZWRfY2hpbGRyZW5fd2FzbQC+ASB0c19ub2RlX2Rlc2NlbmRhbnRzX29mX3R5cGVfd2FzbQC8ARV0c19ub2RlX2lzX25hbWVkX3dhc20AuwEYdHNfbm9kZV9oYXNfY2hhbmdlc193YXNtALoBFnRzX25vZGVfaGFzX2Vycm9yX3dhc20AuQEVdHNfbm9kZV9pc19lcnJvcl93YXNtALgBF3RzX25vZGVfaXNfbWlzc2luZ193YXNtALcBFXRzX25vZGVfaXNfZXh0cmFfd2FzbQC2ARh0c19ub2RlX3BhcnNlX3N0YXRlX3dhc20AtQEddHNfbm9kZV9uZXh0X3BhcnNlX3N0YXRlX3dhc20AtAEVdHNfcXVlcnlfbWF0Y2hlc193YXNtALMBFnRzX3F1ZXJ5X2NhcHR1cmVzX3dhc20AsAEGbWVtc2V0ADMGbWVtY3B5ACQHbWVtbW92ZQCZAQhpc3dhbHBoYQBnCGlzd2JsYW5rAJ0BCGlzd2RpZ2l0AKIBCGlzd2xvd2VyAJ4BCGlzd3VwcGVyAJoBCWlzd3hkaWdpdACXAQZtZW1jaHIAZAZzdHJsZW4AZQZzdHJjbXAAlgEHc3RybmNhdACcAQdzdHJuY3B5AJgBCHRvd2xvd2VyAKQBCHRvd3VwcGVyAKMBCHNldFRocmV3AKYBGV9lbXNjcmlwdGVuX3N0YWNrX3Jlc3RvcmUAoQEXX2Vtc2NyaXB0ZW5fc3RhY2tfYWxsb2MAoAEcZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudACfARhfX3dhc21fYXBwbHlfZGF0YV9yZWxvY3MAmgIIAsgBCUABACMCCx6bAZUBlAGSAZEBkAGKAZcClQKWApQCJZICkwGPAY4BMo4CjQKMAogChQKEArEBrwGtAa4BqgGpAacBDAEBCtSBC5MC0AEBA38CQCABKAJMIgJBAE4EQCACRQ0BIwFBlNYAaigCGCACQf////8DcUcNAQsCQCAAQf8BcSIDIAEoAlBG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IAQgCy8BSk0NASALIAQ7AUogACgCPCAEQRRsaiEHDAALAAsgGigCFCAQSw0ACwwACwALIBVBAWoiFSADKAIETw0BIAMoAhAhBAwACwALIAsgAygCCDYCECALIAMpAgA3AwggAyARKAIINgIIIAMgESkCADcCACARIAsoAhA2AgggESALKQMINwIACyAjQQFqIiNBgAJHDQALIANBAToASAsgC0HQAGokAAu5IAIZfwF+IwBBgAJrIggkACAAKAKECSIJKAIEIRogCCADNgLYASAIQYQBaiAJIAEjAkEHaiAIQdgBaiADEBkgACgChAkiAygCBCILBH8gAygCACERQQAhCUEAIQMgC0EETwRAIAtBfHEhDANAIAkgESADQQV0aiIQKAIcQQJGaiAQKAI8QQJGaiAQKAJcQQJGaiAQKAJ8QQJGaiEJIANBBGohAyANQQRqIg0gDEcNAAsLIAtBA3EiEARAA0AgCSARIANBBXRqKAIcQQJGaiEJIANBAWohAyAKQQFqIgogEEcNAAsLIAlBCmoFQQoLIRsgCCgCiAEiEgRAQRhBACACQf3/A0sbIRwgAEGEAWohESAAQYgJaiEXIABBvAlqIR0gAkEDbCEeQQAhEANAIAgoAoQBIg4gEEEEdGoiAygCBCEKIAMoAgAhCQJAIBsgAygCDCIUIBhrIhlJBEAgACgChAkgGRARQQAhAyAKBEADQCAIIAkgA0EDdGopAgA3AwggFyAIQQhqEAogA0EBaiIDIApHDQALCyAJBEAgCSMIKAIAEQIACyAYQQFqIRggEEEBaiIDIBJPDQEDQCADIQoCQAJAIAAoAmAiCUUEQCAAKAKMCkUNAiARIwEiAykAnQM3AAAgESADKQC8AzcAHyARIAMpALUDNwAYIBEgAykArQM3ABAgESADKQClAzcACAwBCyARIwEiAykAnQM3AAAgESADKQC8AzcAHyARIAMpALUDNwAYIBEgAykArQM3ABAgESADKQClAzcACCAAKAJcQQAgESAJEQMAIAAoAowKRQ0BCyARIQkDQAJAAkAgCS0AACIDQSJGDQAgA0HcAEYNACADDQEMAwtB3AAgACgCjAoQCSAJLQAAIQMLIAPAIAAoAowKEAkgCUEBaiEJDAALAAsgDiAKQQR0aiIMKAIMIBRHDQIgDCgCACEJQQAhAyAMKAIEIhAEQANA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BEF/NgJMIAQjAkEdajYCJCAEQX82AlAgBCAEQZ8BajYCLCAEIARBlAFqNgJUIAZBADoAACMAQdABayIFJAAgBSADNgLMASAFQaABaiIAQQBBKPwLACAFIAUoAswBNgLIAQJAQQAgAiAFQcgBaiAFQdAAaiAAIwIiAEEbaiIGIABBHGoiABBiQQBIBEBBfyEADAELIAQoAkxBAEggBCAEKAIAIgFBX3E2AgACfwJAAkAgBCgCMEUEQCAEQdAANgIwIARBADYCHCAEQgA3AxAgBCgCLCEHIAQgBTYCLAwBCyAEKAIQDQELQX8gBBBCDQEaCyAEIAIgBUHIAWogBUHQAGogBUGgAWogBiAAEGILIQIgBwRAIARBAEEAIAQoAiQRBAAaIARBADYCMCAEIAc2AiwgBEEANgIcIAQoAhQhACAEQgA3AxAgAkF/IAAbIQILIAQgBCgCACIAIAFBIHFyNgIAQX8gAiAAQSBxGyEADQALIAVB0AFqJAAgBEGgAWokACAAC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRBQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC28BBX8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB/////wdzSxshBAsgACADQQFqIgU2AgAgAywAASAEIQIgBSEDQTBrIgFBCkkNAAsgAgucEwITfwJ+IwBBQGoiCCQAIAggATYCPCAIQSlqIRcgCEEnaiEYIAhBKGohEgJAAkACQAJAA0BBACEHA0AgASENIAcgDkH/////B3NKDQIgByAO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QQALMwEBfyAAECkgAEEANgKgCQJAIAEEQCABKAIAQRBrQX1JDQELIAAgATYCoAlBASECCyACC+wHAQp/IwBBIGsiAyQAIAAEQCAAECkgAEEANgKgCSAAKAKECSEBIwBBEGsiBiQAIAEoAgwiAgRAIAIjCCgCABECACABQQA2AhQgAUIANwIMCyABKAIYIgIEQCACIwgoAgARAgAgAUEANgIgIAFCADcCGAsgASgCMCABQSRqIgggASgCNBAaIAEoAgQiAgRAA0AgASgCACAFQQV0aiIEKAIABEAgASgCNCEHIAQoAgwEQCAGIAQpAgw3AwggByAGQQhqEAoLIAQoAhQEQCAGIAQpAhQ3AwAgByAGEAoLIAQoAgQiAgRAIAIoAgAiCgRAIAojCCgCABECACAEKAIEIQILIAJBADYCCCACQgA3AgAgAiMIKAIAEQIACyAEKAIAIAggBxAaIAEoAgQhAgsgBUEBaiIFIAJJDQALC0EAIQIgAUEANgIEIAEoAiQiBQRAAkAgASgCKARAA0AgASgCJCACQQJ0aigCACMIKAIAEQIAIAJBAWoiAiABKAIoSQ0ACyAIKAIAIgVFDQELIAUjCCgCABECAAsgAUEANgIsIAFCADcCJAsgASgCACICBEAgAiMIKAIAEQIACyABQQA2AgggAUIANwIAIAEjCCgCABECACAGQRBqJAAgACgCqAkiAQRAIAEjCCgCABECACAAQQA2ArAJIABCADcCqAkLIAAoAqAKIgEEQCABIwgoAgARAgAgAEEANgKoCiAAQgA3AqAKCyAAKAKYCgRAIAMgAEGYCmopAgA3AxggAEGICWogA0EYahAKIABCADcCmAoLIAAoAkQjCCgCABECACAAQeAJaiEBIAAoAuAJBEAgAyABKQIANwMQIABBiAlqIANBEGoQCgsgACgC6AkEQCADIABB6AlqKQIANwMIIABBiAlqIANBCGoQCgsgAUIANwIAIAFBADYCECABQgA3AgggACgCiAkiAQRAAkAgACgCjAkEQANAIAAoAogJIAlBA3RqKAIAIwgoAgARAgAgCUEBaiIJIAAoAowJSQ0ACyAAKAKICSIBRQ0BCyABIwgoAgARAgALIABBADYCkAkgAEIANwKICQsgACgClAkiAQRAIAEjCCgCABECACAAQQA2ApwJIABCADcClAkLIAAoAvQJIgEEQCABIwgoAgARAgALIABBADYC/AkgAEIANwL0CSAAKAK8CSIBBEAgASMIKAIAEQIACyAAQQA2AsQJIABCADcCvAkgACgCyAkiAQRAIAEjCCgCABECAAsgAEEANgLQCSAAQgA3AsgJIAAoAtQJIgEEQCABIwgoAgARAgALIABBADYC3AkgAEIANwLUCSAAIwgoAgARAgALIANBIGokAAuzAQIFfwF+IAApAgAiCEIgiKchAyAIpyEEAkAgASgCACIFIAIoAgQiB08EQCADIAIoAiAgAyACKAIYayIGQQAgAyAGTxtqIAQgAigCFCIGSxshAyACKAIcIAQgBmsiBkEAIAQgBk8baiEEIAIoAgggBSAHa2ohBQwBCyAFIAIoAgBNDQAgAikCHCIIQiCIpyEDIAIoAgghBSAIpyEECyAAIAStIAOtQiCGhDcCACABIAU2AgALGwAgACABEF0hAAJAIAFFDQAgAA0AEEMACyAACxsAIAAgARAqIQECQCAARQ0AIAENABBDAAsgAQvAAQEDfyMAQSBrIgMkACAAKAJIBEAgACgCYCECAkAgAQRAIAJFDQEgAyAAKAIAIgI2AgAgAEGEAWoiBEGACCMBQZoLQf0IIAJBIGtB3wBJG2ogAxALGiAAKAJcQQEgBCAAKAJgEQMADAELIAJFDQAgAyAAKAIAIgI2AhAgAEGEAWoiBEGACCMBQa4LQY8JIAJBIGtB3wBJG2ogA0EQahALGiAAKAJcQQEgBCAAKAJgEQMACyAAIAEQQQsgA0EgaiQAC2kBAn8CQCAAKAJoIgEgACgCZEYNACABRQ0AIAAoAiAgACgCRCABQRhsaiIBKAIQRw0AIAFBBGsoAgAhAiAAIAFBEGspAgA3AjwgACACNgI4DwsgACAAKQIgNwI4IABBQGsgACgCKDYCAAv6BQIJfwF+IwBBEGsiBSQAIABBAToAeAJAIAAtAIABDQAgACgCICIIIAAoAigiA2shASAAKAIkIQQgAwRAIABBADYCfCAAQQA6AIABCyAAQQA2AiggACAENgIkIAAgATYCICAAKAJEIQYCQAJ/IAAoAmQiBARAA0ACQCAGIAJBGGxqIgcoAhQiCSABTQ0AIAkgBygCECIDTQ0AIAEgA00EQCAAIAcpAgA3AiQgACADNgIgIAMhAQsgACACNgJoQQAhAiAAKAJIRQ0EIAAoAmwiAyABTQRAIAEgACgCcCADakkNBQsgAEEANgJIQQAMAwsgAkEBaiICIARHDQALCyAAIAQ2AmggBiAEQRhsaiIDQQRrKAIAIQEgA0EQaykCACEKIABBADYCSCAAIAo3AiQgACABNgIgQQELIQIgAEEANgJwCyAAQQE6AIABIABBADYCACAAIAI2AnQgAEEANgJ8IAAgATYCbCAAKAJQIQMgACgCTCECIAUgACkCJDcDCCAAIAIgASAFQQhqIABB8ABqIgQgAxEGACICNgJIIAAoAnAiAUUEQCAAQQA2AkggACAAKAJkNgJoDAELIAAoAmggACgCZEYNAAJAIAAoAiAgACgCbGsiAyABRgRAIABBADYCACAAQQE2AnQMAQsgACACIANqIAEgA2siASAAIwFB0NMAaiAAKAJUIgNBAnRqIABB2ABqIANBA0kbKAIAIgMRBAA2AnQgACgCACECAkAgAUEDSw0AIAJBf0cNACAAIAAoAiAiATYCbCAAKAJQIQIgACgCTCEGIAUgACkCJDcDACAAIAYgASAFIAQgAhEGACICNgJIIAAgACgCcCIBBH8gAgUgAEEANgJIIAAgACgCZDYCaEEACyABIAAgAxEEADYCdCAAKAIAIQILIAJBf0cNACAAQQE2AnQLA0AgACgCICAITw0BIAAoAmggACgCZEYNASAAKAJIRQ0BIABBABBBIAAoAmggACgCZEcNAAsLIAAoAnwgBUEQaiQACxsBAX8gABAiIQECQCAARQ0AIAENABBDAAsgAQsrAQJ/IAAoAmgiAiAAKAJkSQR/IAAoAiAgACgCRCACQRhsaigCEEYFQQALCw0AIAAoAmggACgCZEYLTQECfyABLQAAIQICQCAALQAAIgNFDQAgAiADRw0AA0AgAS0AASECIAAtAAEiA0UNASABQQFqIQEgAEEBaiEAIAIgA0YNAAsLIAMgAmsLFwAgAEEwa0EKSSAAQSByQeEAa0EGSXILggIBAn8CQAJAAkACQCABIAAiA3NBA3ENACACQQBHIQQCQCABQQNxRQ0AIAJFDQADQCADIAEtAAAiBDoAACAERQ0FIANBAWohAyACQQFrIgJBAEchBCABQQFqIgFBA3FFDQEgAg0ACwsgBEUNAiABLQAARQ0DIAJBBEkNAANAQYCChAggASgCACIEayAEckGAgYKEeHFB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ICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQQV2QQFxDAELIAAvASxBCXZBAXELIAFBMGokAAveAQECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAAn8CQCABKAIMIgBB//8DcUUEQCABKAIQKAIAIgBBAXEEQCAAQYD+A3FBCHYhAAwCCyAALwEoIQALIABB//8DcUH//wNHDQBBAQwBCyABKAIUKAIIKAJMIABB//8DcUEBdGovAQBB//8DRgsgAUEwaiQAC6oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQRp0QR91QeIEcQwBC0HiBCAALQAtQQJxDQAaIAAoAiALQQBHIAFBMGokAAubAQECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAAn8gASgCECgCACIAQQFxBEAgAEEEdkEBcQwBCyAALwEsQQV2QQFxCyABQTBqJAALdwECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAIAEQPSABQTBqJAAL0QYBCH8jAEGgAWsiByQAIAcjCyIIKAIANgKYASAHIAgoAgxBAXQ2ApABIAcgADYCnAEgByAHKQKYATcDWCAHIAgoAhA2ApQBIAcgBykCkAE3A1AgByAIKAIINgKMASAHIAgoAgRBAXQ2AogB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NgIAIAFBgAFqJAALrAICB38BfiMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAIwBBIGsiACQAIAEoAhQoAgghAiABKAIQKQIAIQhBASEDAkACQAJAIAEvAQwiBEH+/wNrDgIAAgELQQAhAwwBCyACKAJIIARBA2xqLQAAIQMLIAAgCDcDECAAIAg3AwggAEEIaiAAQR9qQQEgAkEAIAQgA0EBcSIFIwFBoQpqIgYQMEEBaiIHIwcoAgARAAAhAyAAIAApAxA3AwAgACADIAcgAkEAIAQgBSAGEDAaIABBIGokACABQTBqJAAgAwt6AQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwAgARBbIAFBMGokAEEBdgt7AQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwAgASgCACABQTBqJABBAXYLlgEBAn8jAEFAaiIBJAAgASMLIgIoAgA2AjggASACKAIMQQF0NgIwIAEgADYCPCABIAEpAjg3AxggASACKAIQNgI0IAEgASkCMDcDECABIAIoAgg2AiwgASACKAIEQQF0NgIoIAEgASkCKDcDCCABQSBqIAFBCGoQPyACIAEoAiA2AgAgAiABKAIkQQF2NgIEIAFBQGskAAueAQECfyMAQUBqIgEkACABIwsiAigCADYCOCABIAIoAgxBAXQ2AjAgASAANgI8IAEgASkCODcDGCABIAIoAhA2AjQgASABKQIwNwMQIAEgAigCCDYCLCABIAIoAgRBAXQ2AiggASABKQIoNwMIIAEgASgCDDYCICABIAEoAhA2AiQgAiABKAIgNgIAIAIgASgCJEEBdjYCBCABQUBrJAAL1wIBBn8jAEHwAGsiASQAIAEjCyICKAIANgJoIAEgAigCDEEBdDYCYCABIAA2AmwgASACKAIINgJcIAEgAigCEDYCZCABIAIoAgRBAXQ2AlggASACKAIYQQF0NgJUIAEgAigCFDYCUCACKAIgIQAgAigCHCEDIAEgASkCaDcDKCABIAEpAmA3AyAgASADNgJIIAEgASkCWDcDGCABIABBAXQ2AkwgASABKQJQNwMQIAEgASkCSDcDCCMAQSBrIgAkACABKAIMIQMgASgCCCEEIAEoAhQhBSABKAIQIQYgACABKQIoNwMYIAAgASkCIDcDECAAIAEpAhg3AwggAUEwaiAAQQhqIAYgBSAEIANBABBVIABBIGokACACIAEoAjw2AhAgAiABKAI0NgIIIAIgASgCQDYCACACIAEoAjhBAXY2AgwgAiABKAIwQQF2NgIEIAFB8ABqJAAL1wIBBn8jAEHwAGsiASQAIAEjCyICKAIANgJoIAEgAigCDEEBdDYCYCABIAA2AmwgASACKAIINgJcIAEgAigCEDYCZCABIAIoAgRBAXQ2AlggASACKAIYQQF0NgJUIAEgAigCFDYCUCACKAIgIQAgAigCHCEDIAEgASkCaDcDKCABIAEpAmA3AyAgASADNgJIIAEgASkCWDcDGCABIABBAXQ2AkwgASABKQJQNwMQIAEgASkCSDcDCCMAQSBrIgAkACABKAIMIQMgASgCCCEEIAEoAhQhBSABKAIQIQYgACABKQIoNwMYIAAgASkCIDcDECAAIAEpAhg3AwggAUEwaiAAQQhqIAYgBSAEIANBARBVIABBIGokACACIAEoAjw2AhAgAiABKAI0NgIIIAIgASgCQDYCACACIAEoAjhBAXY2AgwgAiABKAIwQQF2NgIEIAFB8ABqJAALhgIBBH8jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMgAigCGEEBdCEEIwBBIGsiACQAIAAgASkCGDcDGCAAIAEpAhA3AxAgACABKQIINwMIIAFBIGogAEEIaiADIARBABBWIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAALWAEBfyMBQcjTAGokBiMBQcDTAGokByMBQczTAGokCCMBQcTTAGokCSMBQYjVAGokCiMBQZDVAGoiACQLIwFBlNsAaiQMIwFBmNsAaiQNIABBAEGMBvwLAAuGAgEEfyMAQdAAayIBJAAgASMLIgIoAgA2AkggAUFAayIDIAIoAgxBAXQ2AgAgASAANgJMIAEgASkCSDcDGCABIAIoAhA2AkQgASADKQIANwMQIAEgAigCCDYCPCABIAIoAgRBAXQ2AjggASABKQI4NwMIIAIoAhRBAXQhAyACKAIYQQF0IQQjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIAMgBEEBEFYgAEEgaiQAIAIgASgCLDYCECACIAEoAiQ2AgggAiABKAIwNgIAIAIgASgCKEEBdjYCDCACIAEoAiBBAXY2AgQgAUHQAGokAAufAgEDfyMAQYABayIBJAAgASMLIgIoAgA2AnggASACKAIMQQF0NgJwIAEgADYCfCABIAIoAgg2AmwgASACKAIQNgJ0IAEgAigCBEEBdDYCaCABIAIoAhQ2AmAgASACKAIYQQF0NgJQIAEgAigCHDYCVCABIAIoAiBBAXQ2AlggAigCJCEDIAEgASkCeDcDMCABIAEpAnA3AyggASAANgJkIAEgASkCaDcDICABIAM2AlwgASABKQJgNwMYIAEgASkCWDcDECABIAEpAlA3AwggAUE4aiABQSBqIAFBCGoQGCACIAEoAkQ2AhAgAiABKAI8NgIIIAIgASgCSDYCACACIAEoAkBBAXY2AgwgAiABKAI4QQF2NgIEIAFBgAFqJAAL4AQCBn8CfiMAQdAAayIBJAAgASMLIgMoAgA2AkggAUFAayICIAMoAgxBAXQ2AgAgASAANgJMIAEgASkCSDcDGCABIAMoAhA2AkQgASACKQIANwMQIAEgAygCCDYCPCABIAMoAgRBAXQ2AjggASABKQI4NwMIIwBBkAFrIgAkAAJ/IAEoAhwiAigCACIEQQFxBEAgAi0ABUEPcSEFIAItAAQhBiACLQAGDAELIAQoAgwhBiAEKAIIIQUgBCgCBAshBCAAIAI2AowBIAAgAjYCiAEgAEEANgKEASAAIAY2AoABIAAgBTYCfCAAIAQ2AngCQCACIAEoAhgiBEcEQCAAIAApAoABNwNQIAAgACkCiAE3A1ggACAAKQJ4NwNIIAAgASkCEDcDOCAAQUBrIAEpAhg3AwAgACABKQIINwMwIABB4ABqIABByABqIABBMGoQGAJAIAAoAnAiAiAERg0AIAJFDQADQCAAIAApAnAiBzcDiAEgACAAKQJoIgg3A4ABIAAgCDcDICAAIAc3AyggACAAKQJgIgc3A3ggACAHNwMYIAAgASkCEDcDCCAAIAEpAhg3AxAgACABKQIINwMAIABB4ABqIABBGGogABAYIAAoAnAiAiAERg0BIAINAAsLIAEgACkDeDcCICABIAApA4gBNwIwIAEgACkDgAE3AigMAQsgAUIANwIgIAFCADcCMCABQgA3AigLIABBkAFqJAAgAyABKAIsNgIQIAMgASgCJDYCCCADIAEoAjA2AgAgAyABKAIoQQF2NgIMIAMgASgCIEEBdjYCBCABQdAAaiQAC50BAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBASEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAI4QQFqIQALIAFBMGokACAAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQAQWCAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQAQWSAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQEQWCAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQEQWSAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC8UBAQN/IwBB0ABrIgIkACACIwsiAygCADYCSCACQUBrIgQgAygCDEEBdDYCACACIAA2AkwgAiACKQJINwMYIAIgAygCEDYCRCACIAQpAgA3AxAgAiADKAIINgI8IAIgAygCBEEBdDYCOCACIAIpAjg3AwggAkEgaiACQQhqIAFB//8DcRA7IAMgAigCLDYCECADIAIoAiQ2AgggAyACKAIwNgIAIAMgAigCKEEBdjYCDCADIAIoAiBBAXY2AgQgAkHQAGokAAvwAQEDfyMAQdAAayICJAAgAiMLIgMoAgA2AkggAkFAayIEIAMoAgxBAXQ2AgAgAiAANgJMIAIgAikCSDcDGCACIAMoAhA2AkQgAiAEKQIANwMQIAIgAygCCDYCPCACIAMoAgRBAXQ2AjggAiACKQI4NwMIIwBBIGsiACQAIAAgAikCGDcDGCAAIAIpAhA3AxAgACACKQIINwMIIAJBIGogAEEIaiABQQAQPCAAQSBqJAAgAyACKAIsNgIQIAMgAigCJDYCCCADIAIoAjA2AgAgAyACKAIoQQF2NgIMIAMgAigCIEEBdjYCBCACQdAAaiQACyoBAn8CQCAAKAIgIgNFDQAgASADSw0AIAAoAjwgAUECdGooAgAhAgsgAgvwAQEDfyMAQdAAayICJAAgAiMLIgMoAgA2AkggAkFAayIEIAMoAgxBAXQ2AgAgAiAANgJMIAIgAikCSDcDGCACIAMoAhA2AkQgAiAEKQIANwMQIAIgAygCCDYCPCACIAMoAgRBAXQ2AjggAiACKQI4NwMIIwBBIGsiACQAIAAgAikCGDcDGCAAIAIpAhA3AxAgACACKQIINwMIIAJBIGogAEEIaiABQQEQPCAAQSBqJAAgAyACKAIsNgIQIAMgAigCJDYCCCADIAIoAjA2AgAgAyACKAIoQQF2NgIMIAMgAigCIEEBdjYCBCACQdAAaiQAC5oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBACEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAI0IQALIAFBMGokACAAC5oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBACEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAIwIQALIAFBMGokACAAC5wBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQYD+A3FBCHYMAQsgAC8BKAtB//8DcSABQTBqJAAL+gEBA38jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIANBABBXIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAAL+gEBA38jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIANBARBXIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAALiQQBCX8jAEGAAWsiAiQAIAIjCyIDKAIANgJ4IAIgAygCDEEBdDYCcCACIAA2AnwgAiACKQJ4NwMwIAIgAygCEDYCdCACIAIpAnA3AyggAiADKAIINgJsIAIgAygCBEEBdDYCaCACIAIpAmg3AyAgAkHUAGogAkEgahBwAkAgAUUEQEEAIQMMAQsgAiACKQJ4NwMYIAIgAikCcDcDECACIAIpAmg3AwggAkHUAGoiACACQQhqECYgABAsGkEAIQBBACEDA0AgAyEEAkADQCACQdQAaiIDEG0gAUYNASADEBwNAAsgBCEDDAILIAJBPGogAkHUAGoiAxAQIAMQHAJAIARBBWoiAyAATQ0AQQggAEEBdCIAIAMgACADSxsiACAAQQhNGyIAQQJ0IQYgBQRAIAUgBiMGKAIAEQEAIQUMAQsgBiMHKAIAEQAAIQULIAUgBEECdGoiBEIANwIAIARBADYCECAEQgA3AgggAigCPCEGIAIoAkQhCCACKAJMIQkgAigCQCEKIAUgA0ECdGoiBEEE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IAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGoQbSABQSBqJAALZwEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxggASABKQIsNwMQIAEgASkCJDcDCCABQQhqEFsgAUHQAGokAEEBdgtlAQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDGCABIAEpAiw3AxAgASABKQIkNwMIIAEoAgggAUHQAGokAEEBdgt9AQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDECABIAEpAiw3AwggASABKQIkNwMAIAFBHGogARA/IAAgASgCHDYCACAAIAEoAiBBAXY2AgQgAUHQAGokAAuIAQEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxAgASABKQIsNwMIIAEgASkCJDcDACABIAEoAgQ2AhwgASABKAIINgIgIAAgASgCHDYCACAAIAEoAiBBAXY2AgQgAUHQAGokAAtCAQF/IwBBMGsiASQAIAEgADYCHCABIwsiACkDADcCICABIAApAwg3AiggAUEEaiABQRxqEBAgASgCFCABQTBqJAALhQEBAX8jAEHQAGsiASQAIAEgADYCPCABIwsiACkDADcCQCABIAApAwg3AkggAUEkaiABQTxqEBAgASABKQI0NwMYIAEgASkCLDcDECABIAEpAiQ3AwgCfyABKAIYKAIAIgBBAXEEQCAAQQV2QQFxDAELIAAvASxBCXZBAXELIAFB0ABqJAALZAEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxggASABKQIsNwMQIAEgASkCJDcDCCABQQhqED0gAUHQAGokAAtkAQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDGCABIAEpAiw3AxAgASABKQIkNwMI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AEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABQQxqEBwgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALhwECAn8BfiMAQTBrIgEkACABIAA2AhwgASMLIgAoAgA2AiAgASAAKQIENwIkIAEgACgCDCICNgIsIAEgACgCEEEBdDYCGCABIAI2AhQgASABKQIUNwMIIAFBHGpBACABKAIIIAEoAgwQbiAAIAEpAiA3AwAgACABKQIoNwMIIAFBMGokAEIAUgtmAgJ/AX4jAEEgayIBJAAgASAANgIMIAEjCyIAKAIANgIQIAEgACkCBDcCFCABIAAoAgwiAjYCHCABQQxqIAJBAXRBAEEAEG4gACABKQIQNwMAIAAgASkCGDcDCCABQSBqJABCAFILXwEDfyMAQSBrIgEkACABIAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGohAgNAIAIQbyIDQQFGDQALIANBAkYgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALTgEBfyMBQasKaiECAkACQAJAIAFB/v8Daw4CAAIBCyMBQaoKag8LQQAhAiAAKAIIIAAoAgRqIAFNDQAgACgCOCABQQJ0aigCACECCyACC0wBAn8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABQQxqECwgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALugIBBX8jAEEwayICJAAgAiAANgIcIAIjCyIDKQMANwIgIAIgAykDCDcCKCACIAMpAxA3AgwgAiADKQMYNwIUIAIgATYCCCACIAIoAgg2AhwgAi8BGCEAIAJBADYCJCACIAA7ASwgAigCICEAIAIoAgwhBgJAAkAgAigCECIEIAIoAihLBEAgBEEcbCEBAn8gAARAIAAgASMGKAIAEQEADAELIAEjBygCABEAAAshACACIAQ2AiggAigCJCIFRQ0BIAVBHGwiBUUNASAAIAFqIAAgBfwKAAAMAQsgBEUNASAEQRxsIQELIAYEQCABRQ0BIAAgBiAB/AoAAAwBCyABRQ0AIABBACAB/AsACyACIAA2AiAgAiACKAIkIARqNgIkIAMgAikCIDcDACADIAIpAig3AwggAkEwaiQAC9kBAgh/AX4jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCACKAIgIQQgAikDGCEJIAIoAhQhBSACKAIEIQYgAigCCCEHIAIoAhAhCCABIAEpAkg3AxggASAINgJEIAEgAykCADcDECABIAc2AjwgASAGQQF0NgI4IAEgBTYCKCABIAk3AiwgASAENgI0IAEgADYCJCABIAEpAjg3AwggAUEkaiABQQhqECYgAiABKQIoNwMAIAIgASkCMDcDCCABQdAAaiQAC1MBAX8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABKAIQIgAEQCAAIwgoAgARAgALIAFBADYCGCABQgA3AhAgAUEgaiQAC80BAQV/IwBBMGsiASQAIAEgADYCHCABIwsiAykDADcCICABIAMpAwg3AihBACEAIAFBADYCGCABIAEoAhw2AgggAS8BLCECIAFBADYCFCABIAI7ARgCQCABKAIkIgRFDQAgASgCICEFIARBHGwiAiMHKAIAEQAAIQAgASAENgIUIAUEQCACRQ0BIAAgBSAC/AoAAAwBCyACRQ0AIABBACAC/AsACyABIAA2AgwgASAENgIQIAMgASkCDDcDACADIAEpAhQ3AwggAUEwaiQAC5oBAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwggAUEkaiABQQhqEHAgAiABKQIoNwMAIAIgASkCMDcDCCABQdAAaiQAC84wAht/A34jAEEQayIYJAAjAEFAaiIHJAAgB0EANgI8IAdCADcCJCAHQgA3AhwCfyAAKAIAIgJBAXEEQCAALQAEIQ0gAC0ABiEMIAAtAAVBD3EMAQsgAigCDCENIAIoAgQhDCACKAIICyEIIAdBADsBPCAHIAA2AiwgB0HgASMHKAIAEQAAIgI2AjAgB0KBgICAgAE3AjQgAkEANgIYIAJCADcCECACIA02AgwgAiAINgIIIAIgDDYCBCACIAA2AgACfyABKAIAIgJBAXEEQCABLQAEIQ0gAS0ABiEMIAEtAAVBD3EMAQsgAigCDCENIAIoAgQhDCACKAIICyEC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NgKIAiAKIDg3A4ACIApBADYC+AEgCkEANgL0ASAKQQA2AvABIAogBzYC7AEgCkEANgLoASAKQQA2AuQBIAogETsB4AEgCkEAOwHeASAKQQA7AdoBIApCADcDuAEgCkEBNgKMAiAKIANBAXQgAmpB/wFxOwHcASABIAooAowCNgIAIAEgCigCiAI2AgQgASAKKQOAAjcCCCABIAooAvgBNgIQIAEgCigC9AE2AhQgASAKKALwATYCGCABIAooAuwBNgIcIAEgCigC6AE2AiAgASAKKALkATYCJCABIAovAeABOwEoIAEgCi8B3gE7ASogASAKLwHcATsBLCABIAovAdoBOwEuIAEgCigC0AE2AkggAUFAayAKKQPIATcCACABIAopA8ABNwI4IAEgCikDuAE3AjBCAAshOCAEQQFrIRgCQCABQQFxBEAgAUEgciEBDAELIAEgAS8BLEGABHI7ASwLIBhBBXQiECAFKAKECSICKAIAaiIHKAIAIQMCfyACKAIoIgAEQCACIABBAWsiADYCKCACKAIkIABBAnRqKAIADAELQaQBIwcoAgARAAALIhQgDzsBACAUQQJqQQBBkgH8CwAgFEIANwKYASAUQQE2ApQBIBRBADYCoAECQAJ/AkAgAwRAIBQgOCABrYQ3AhQgFCADNgIQIBRBATsBkAEgFCADKQIENwIEIBQgAygCDDYCDCAUIAMoApgBIgA2ApgBIBQgAygCoAEiBDYCoAEgFCADKAKcASITNgKcASABQQFxIgMNASAUIAEtAC1BAnEEf0HiBAUgASgCIAsgAGo2ApgBQQAgASgCDCABKAIUIgIbIQAgASgCECABKAIEaiENIAIgASgCCGohDiABKAIYDAILIBRCADcCBCAUQQA2AgwMAgsgFCAAIAFBGnRBH3VB4gRxajYCmAEgOEIgiKdB/wFxIQAgOEIoiKdBD3EhDiA4QjCIpyENQQALIQIgFCAUKAIEIA1qNgIEIBQgFCgCCCAOaq0gACACakEAIBQoAgwgDhtqrUIghoQ3AggCQCADRQRAQQAhDiAUIAEoAiQiAAR/IAEoAjgFQQALIBNqIAEvASxBAXFqIAEvAShB/v8DRmo2ApwBIABFDQEgASgCPCEODAELIBQgEyABQQF2QQFxajYCnAFBACEOCyAUIAQgDmo2AqABCyAHIBQ2AgAgBSAY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AgwgACABQQVqNgIIIABCADcCACAAQSBqQQBB5Aj8CwAgAEEAQRgjBigCABEBACIBNgJEIAEjAUH8C2oiAikCEDcCECABIAIpAgg3AgggASACKQIANwIAIABBATYCZAJAAkAgACgCRCIDKAIUIgQgACgCICIBTQ0AIAQgAygCECICTQ0AIAEgAk0EQCAAIAMpAgA3AiQgACACNgIgIAIhAQtBACECIABBADYCaCAAKAJIRQ0BIAAoAmwiAyABTQRAIAEgACgCcCADakkNAgsgAEEANgJIIABCADcCbAwBC0EBIQIgAEEBNgJoIAMpAgghByAAQQA2AkggACAHNwIkIAAgBDYCICAAQgA3AmwLIABBADYCsAkgAEEANgIAIAAgAjYCdCAAQgA3AqgJIABBwAAjByIBKAIAEQAANgKoCSAAQQQ2ArAJQYACIAEoAgARAAAhASAAQgA3ApQJIABCgICAgIAENwKMCSAAIAE2AogJIABBnAlqQQA2AgBBAUE4IwkoAgARAQAiAUIANwIAIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggAUGAASMHKAIAEQAANgIAIAFBBDYCCCABKAIMIQIgASgCFEEDTQRAAn8gAgRAIAJBwAAjBigCABEBAAwBC0HAACMHKAIAEQAACyECIAFBBDYCFAsgASACNgIMIAEoAhghAiABKAIgQQNNBEACfyACBEAgAkHgACMGKAIAEQEADAELQeAAIwcoAgARAAALIQIgAUEENgIgCyABIAI2AhggASgCJCECIAEoAixBMU0EQAJ/IAIEQCACQcgBIwYoAgARAQAMAQtByAEjBygCABEAAAshAiABQTI2AiwLIAEgAEGICWoiAzYCNCABIAI2AiQCfyABKAIoIgQEQCABIARBAWsiBDYCKCACIARBAnRqKAIADAELQaQBIwcoAgARAAALIgJBATsBACACQQJqQQBBkgH8CwAgAkIANwIEIAJBATYClAEgAkEANgIMIAJCADcCmAEgAkEANgKgASABIAI2AjAgARA5IABCADcC9AkgAEIANwK0CSAAIAE2AoQJIABB/AlqQgA3AgAgAEGECmpBADYCACAAQgA3ApQKIABCADcCiAogAEEANgKgCSAAQZwKakIANwIAIABBpApqQgA3AgAgAEEANgLACiAAQcMKakEA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IHN5bTolcwBzZWxlY3Rfc21hbGxlcl9lcnJvciBzeW1ib2w6JXMsIG92ZXJfc3ltYm9sOiVzAHNlbGVjdF9lYXJsaWVyIHN5bWJvbDolcywgb3Zlcl9zeW1ib2w6JXMAc2VsZWN0X2V4aXN0aW5nIHN5bWJvbDolcywgb3Zlcl9zeW1ib2w6JXMAY2FudF9yZXVzZV9ub2RlIHN5bWJvbDolcywgZmlyc3RfbGVhZl9zeW1ib2w6JXMAc2tpcF90b2tlbiBzeW1ib2w6JXMAaWdub3JlX2VtcHR5X2V4dGVybmFsX3Rva2VuIHN5bWJvbDolcwByZXVzYWJsZV9ub2RlX2hhc19kaWZmZXJlbnRfZXh0ZXJuYWxfc2Nhbm5lcl9zdGF0ZSBzeW1ib2w6JXMAcmV1c2Vfbm9kZSBzeW1ib2w6JXMAcGFzdF9yZXVzYWJsZV9ub2RlIHN5bWJvbDolcwBiZWZvcmVfcmV1c2FibGVfbm9kZSBzeW1ib2w6JXMAY2FudF9yZXVzZV9ub2RlXyVzIHRyZWU6JXMAYnJlYWtkb3duX3RvcF9vZl9zdGFjayB0cmVlOiVzAGRldGVjdF9lcnJvciBsb29rYWhlYWQ6JXMAKCVzAGlzX2Vycm9yAHNraXBfdW5yZWNvZ25pemVkX2NoYXJhY3RlcgBuYW4AXG4AaXNfbWlzc2luZwByZXN1bWVfcGFyc2luZwByZWNvdmVyX2VvZgBpbmYAbmV3X3BhcnNlAGNvbmRlbnNlAGRvbmUAaXNfZnJhZ2lsZQBjb250YWluc19kaWZmZXJlbnRfaW5jbHVkZWRfcmFuZ2UAc2tpcCBjaGFyYWN0ZXI6JWQAY29uc3VtZSBjaGFyYWN0ZXI6JWQAc2VsZWN0X2hpZ2hlcl9wcmVjZWRlbmNlIHN5bWJvbDolcywgcHJlYzolZCwgb3Zlcl9zeW1ib2w6JXMsIG90aGVyX3ByZWM6JWQAc2hpZnRfZXh0cmEAbm9fbG9va2FoZWFkX2FmdGVyX25vbl90ZXJtaW5hbF9leHRyYQBfX1JPT1RfXwBfRVJST1IATkFOAE1JU1NJTkcASU5GAElOVkFMSUQAbGV4ZWRfbG9va2FoZWFkIHN5bToAIDAwMDAwMDAwMDAwMBAwMAAuACglcykAKG51bGwpAChOVUxMKQAoIiVzIikAJ1x0JwAnXHInACdcbicAc2tpcCBjaGFyYWN0ZXI6JyVjJwBjb25zdW1lIGNoYXJhY3RlcjonJWMnACdcMCcAIiVzIgAoTUlTU0lORyAAKFVORVhQRUNURUQgACVzOiAACgoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP//////////AAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeDw8PAAAAAAAAAAABAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAAAAAAAAAAAABIRExQVFhcYGRobHB0eHyAhESIjJBElJicoKSorLBEtLi8QEDAQEBAQEBAQMTIzEDQ1EBARERERERERERERERERERERERERERERERERNhERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETcREREROBE5Ojs8PT4RERERERERERERERERERERERERERERERERERERERERERERERERERERERERPxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFAQRFCQ0RFRkdISUoRS0xNTk9QURBSU1RVVldYWVpbXF0QXl9gEBEREWFiYxAQEBAQEBAQEBARERERZBAQEBAQEBAQEBAQEBAQEBERZRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBERZmcQEGhpERERERERERERERERERERERERERERERFqERFrEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFsbRAQEBAQEBAQEG4QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEG9wcXIQEBAQEBAQEHN0dRAQEBAQdncQEBAQeBAQeRAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////wAAAAAAAAAA/v//B/7//wcAAAAAAAQgBP//f////3//////////////////////////////////w/8DAB9QAAAAAAAAAAAAACAAAAAAAN+8QNf///v///////////+///////////////////////8D/P///////////////////////////v///38C//////8BAAAAAP+/tgD///+HBwAAAP8H//////////7/w////////////////+8f/uH/nwAA////////AOD///////////////8DAP//////BzAE/////P8fAAD///8B/wcAAAAAAAD//98/AADw//gD////////////7//f4f/P//7/75/5///9xeOfWYCwz/8DEO6H+f///W3DhxkCXsD/PwDuv/v///3t478bAQDP/wAe7p/5///97eOfGcCwz/8CAOzHPdYYx//Dxx2BAMD/AADv3/3///3/498dYAfP/wAA79/9///97+PfHWBAz/8GAO/f/f/////n313wgM//APzs/3/8///7L3+AX//A/wwA/v////9//wc/IP8DAAAAANb3//+v//87XyD/8wAAAAABAAAA/wMAAP/+////H/7/A////v///x8AAAAAAAAAAP///////3/5/wP///////////8//////78g///////3////////////PX89//////89/////z1/Pf9//////////z3//////////wcAAAAA//8AAP////////////8/P/7//////////////////////////////////////////////////////////5////7//wf////////////H/wH/3w8A//8PAP//DwD/3w0A////////z///AYAQ/wMAAAAA/wP//////////////wH//////wf//////////z8A////f/8P/wHA/////z8fAP//////D////wP/AwAAAAD///8P/////////3/+/x8A/wP/A4AAAAAAAAAAAAAAAP///////+//7w//AwAAAAD///////P///////+//wMA////////fwD/4///////P/8B///////nAAAAAADebwT///////////////////////////////8AAAAAgP8fAP//Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAAAAAAAAAAAAAAACgAAA/x8AAAAAAAAAAAAAAACE/C8+UL3/8+BDAAD//////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA////////AwAA//////9///////9//////////////////////x94DAD/////vyD/////////gAAA//9/AH9/f39/f39//////wAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/AAAAAAAAAAAA////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8PAAAAAAAAAAAAAAAAAADf/////////////////////x8AAP8D/v//B/7//wfA/////////////3/8/PwcAAAAAP/v//9///+3/z//PwAAAAD///////////////////8HAAAAAAAAAAD///////8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAP///////38A//8/AP8AAAAAAAAAAAAAAAAAAAAAAAAAP/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//AwAAAAAAAAAAAAAAAAD///////////8BAAAAAAAA////////BwD///////8HAP//////AP8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////H4AA//8/AAAAAAAAAAAAAAAAAAAAAAAAAP//fwD//////////z8AAADA/wAA/P///////wEAAP///wH/A////////8f/cAD/////RwD//////////x4A/xcAAAAA///7////n0AAAAAAAAAAAH+9/7//Af////////8B/wPvn/n///3t458ZgeAPAAAAAAAAAAAAAAAAAAAAAAAAAP//////////uwf/gwAAAAD//////////7MA/wMAAAAAAAAAAAAAAAAAAAAAAAAAAP///////z9/AAAAPwAAAAD/////////fxEA/wMAAAAA////////PwH/AwAAAAAAAP///+f/B/8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////wEAAAAAAAAAAAAAAAD///////////8DAIAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8///////8GgAAAP///////+d/AAD///////////8gAAAAAP////////8B//3/////f38BAP8DAAD8/////P///n8AAAAAAAAAAAB/+/////9/tMsA/wO//f///397Af8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//38A/////////////////////////wMAAAAAAAAAAAAAAAD/////////////////fwAA////////////////////////////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8B////f/8DAAAAAAAAAAAAAAAA////PwAA////////AAAPAP8D+P//4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAP///////////4f/////////gP//AAAAAAAAAAALAAAA/////////////////////////////////////////wD///////////////////////////////////////8HAP///38AAAAAAAAHAPAA/////////////////////////////////////////////////////////////////w//////////////////B/8f/wH/QwAAAAAAAAAAAAAAAP/////////////f///////////fZN7/6+//////////v+ff3////3tf/P3//////////////////////////////////////////////////////z/////9///3////9///3////9///3////9//////f////3///fP////////f///+dsHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////x+AP/9DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////D/8D////////////////////////////////HwAAAAAAAAD//////////48I/wMAAAAAAAAAAAAAAAAAAAAAAAAAAO////+W/vcKhOqWqpb3917/+/8P7vv/DwAAAAAAAAAAAAAAAAAA////A////wP///8DAAAAAAAAAAAAAAAAAAAgAAAACQAAAAoAAAANAAAACwAAAAwAAACFAAAAACAAAAEgAAACIAAAAyAAAAQgAAAFIAAABiAAAAggAAAJIAAACiAAACggAAApIAAAXyAAAAAwAAAAAAAAAAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEwAAAAATAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAEDwAAAAAJEAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAARAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoaGgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABcAAAAAFwAAAAAJFAAAAAAAFAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYACAAAVgEAADkAAAAAAAAAAAAAAAEgAAAA4P//AL8dAADnAgAAeQAAAiQAAAEBAAAA////AAAAAAECAAAA/v//ATn//wAY//8Bh///ANT+/wDDAAAB0gAAAc4AAAHNAAABTwAAAcoAAAHLAAABzwAAAGEAAAHTAAAB0QAAAKMAAAHVAAAAggAAAdYAAAHaAAAB2QAAAdsAAAA4AAADAAAAALH//wGf//8ByP//AigkAAAAAAABAQAAAP///wAz//8AJv//AX7//wErKgABXf//ASgqAAA/KgABPf//AUUAAAFHAAAAHyoAABwqAAAeKgAALv//ADL//wA2//8ANf//AE+lAABLpQAAMf//ACilAABEpQAAL///AC3//wD3KQAAQaUAAP0pAAAr//8AKv//AOcpAABDpQAAKqUAALv//wAn//8Auf//ACX//wAVpQAAEqUAAiRMAAAAAAABIAAAAOD//wEBAAAA////AFQAAAF0AAABJgAAASUAAAFAAAABPwAAANr//wDb//8A4f//AMD//wDB//8BCAAAAML//wDH//8A0f//AMr//wD4//8Aqv//ALD//wAHAAAAjP//AcT//wCg//8B+f//AhpwAAEBAAAA////ASAAAADg//8BUAAAAQ8AAADx//8AAAAAATAAAADQ//8BAQAAAP///wAAAAAAwAsAAWAcAAAAAAAB0JcAAQgAAAD4//8CBYoAAAAAAAFA9P8Anuf/AMKJAADb5/8Akuf/AJPn/wCc5/8Anef/AKTn/wAAAAAAOIoAAASKAADmDgABAQAAAP///wAAAAAAxf//AUHi/wIdjwAACAAAAfj//wAAAAAAVgAAAar//wBKAAAAZAAAAIAAAABwAAAAfgAAAAkAAAG2//8B9///ANvj/wGc//8BkP//AYD/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",typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-Sbat7waZ.cjs",document.baseURI).href).href}__name(findWasmBinary,"findWasmBinary");function getBinarySync(r){if(r==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(r);throw"both async and sync fetching of the wasm failed"}__name(getBinarySync,"getBinarySync");async function getWasmBinary(r){if(!wasmBinary)try{var e=await readAsync(r);return new Uint8Array(e)}catch{}return getBinarySync(r)}__name(getWasmBinary,"getWasmBinary");async function instantiateArrayBuffer(r,e){try{var n=await getWasmBinary(r),A=await WebAssembly.instantiate(n,e);return A}catch(o){err(`failed to asynchronously prepare wasm: ${o}`),abort(o)}}__name(instantiateArrayBuffer,"instantiateArrayBuffer");async function instantiateAsync(r,e,n){if(!r&&!isFileURI(e)&&!ENVIRONMENT_IS_NODE)try{var A=fetch(e,{credentials:"same-origin"}),o=await WebAssembly.instantiateStreaming(A,n);return o}catch(s){err(`wasm streaming compile failed: ${s}`),err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(e,n)}__name(instantiateAsync,"instantiateAsync");function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}__name(getWasmImports,"getWasmImports");async function createWasm(){function r(s,a){wasmExports=s.exports,wasmExports=relocateExports(wasmExports,1024);var l=getDylinkMetadata(a);return l.neededDynlibs&&(dynamicLibraries=l.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(wasmExports,"main"),LDSO.init(),loadDylibs(),__RELOC_FUNCS__.push(wasmExports.__wasm_apply_data_relocs),assignWasmExports(wasmExports),wasmExports}__name(r,"receiveInstance");function e(s){return r(s.instance,s.module)}__name(e,"receiveInstantiationResult");var n=getWasmImports();if(Module.instantiateWasm)return new Promise((s,a)=>{Module.instantiateWasm(n,(l,c)=>{s(r(l,c))})});wasmBinaryFile??=findWasmBinary();var A=await instantiateAsync(wasmBinary,wasmBinaryFile,n),o=e(A);return o}__name(createWasm,"createWasm");class ExitStatus{static{__name(this,"ExitStatus")}name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var GOT={},currentModuleWeakSymbols=new Set([]),GOTHandler={get(r,e){var n=GOT[e];return n||(n=GOT[e]=new WebAssembly.Global({value:"i32",mutable:!0})),currentModuleWeakSymbols.has(e)||(n.required=!0),n}},LE_HEAP_LOAD_F32=__name(r=>HEAP_DATA_VIEW.getFloat32(r,!0),"LE_HEAP_LOAD_F32"),LE_HEAP_LOAD_F64=__name(r=>HEAP_DATA_VIEW.getFloat64(r,!0),"LE_HEAP_LOAD_F64"),LE_HEAP_LOAD_I16=__name(r=>HEAP_DATA_VIEW.getInt16(r,!0),"LE_HEAP_LOAD_I16"),LE_HEAP_LOAD_I32=__name(r=>HEAP_DATA_VIEW.getInt32(r,!0),"LE_HEAP_LOAD_I32"),LE_HEAP_LOAD_I64=__name(r=>HEAP_DATA_VIEW.getBigInt64(r,!0),"LE_HEAP_LOAD_I64"),LE_HEAP_LOAD_U32=__name(r=>HEAP_DATA_VIEW.getUint32(r,!0),"LE_HEAP_LOAD_U32"),LE_HEAP_STORE_F32=__name((r,e)=>HEAP_DATA_VIEW.setFloat32(r,e,!0),"LE_HEAP_STORE_F32"),LE_HEAP_STORE_F64=__name((r,e)=>HEAP_DATA_VIEW.setFloat64(r,e,!0),"LE_HEAP_STORE_F64"),LE_HEAP_STORE_I16=__name((r,e)=>HEAP_DATA_VIEW.setInt16(r,e,!0),"LE_HEAP_STORE_I16"),LE_HEAP_STORE_I32=__name((r,e)=>HEAP_DATA_VIEW.setInt32(r,e,!0),"LE_HEAP_STORE_I32"),LE_HEAP_STORE_I64=__name((r,e)=>HEAP_DATA_VIEW.setBigInt64(r,e,!0),"LE_HEAP_STORE_I64"),LE_HEAP_STORE_U32=__name((r,e)=>HEAP_DATA_VIEW.setUint32(r,e,!0),"LE_HEAP_STORE_U32"),callRuntimeCallbacks=__name(r=>{for(;r.length>0;)r.shift()(Module)},"callRuntimeCallbacks"),onPostRuns=[],addOnPostRun=__name(r=>onPostRuns.push(r),"addOnPostRun"),onPreRuns=[],addOnPreRun=__name(r=>onPreRuns.push(r),"addOnPreRun"),UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder:void 0,findStringEnd=__name((r,e,n,A)=>{var o=e+n;if(A)return o;for(;r[e]&&!(e>=o);)++e;return e},"findStringEnd"),UTF8ArrayToString=__name((r,e=0,n,A)=>{var o=findStringEnd(r,e,n,A);if(o-e>16&&r.buffer&&UTF8Decoder)return UTF8Decoder.decode(r.subarray(e,o));for(var s="";e<o;){var a=r[e++];if(!(a&128)){s+=String.fromCharCode(a);continue}var l=r[e++]&63;if((a&224)==192){s+=String.fromCharCode((a&31)<<6|l);continue}var c=r[e++]&63;if((a&240)==224?a=(a&15)<<12|l<<6|c:a=(a&7)<<18|l<<12|c<<6|r[e++]&63,a<65536)s+=String.fromCharCode(a);else{var g=a-65536;s+=String.fromCharCode(55296|g>>10,56320|g&1023)}}return s},"UTF8ArrayToString"),getDylinkMetadata=__name(r=>{var e=0,n=0;function A(){return r[e++]}__name(A,"getU8");function o(){for(var F=0,v=1;;){var N=r[e++];if(F+=(N&127)*v,v*=128,!(N&128))break}return F}__name(o,"getLEB");function s(){var F=o();return e+=F,UTF8ArrayToString(r,e-F,F)}__name(s,"getString");function a(){for(var F=o(),v=[];F--;)v.push(s());return v}__name(a,"getStringList");function l(F,v){if(F)throw new Error(v)}if(__name(l,"failIf"),r instanceof WebAssembly.Module){var c=WebAssembly.Module.customSections(r,"dylink.0");l(c.length===0,"need dylink section"),r=new Uint8Array(c[0]),n=r.length}else{var g=new Uint32Array(new Uint8Array(r.subarray(0,24)).buffer),h=g[0]==1836278016||g[0]==6386541;l(!h,"need to see wasm magic number"),l(r[8]!==0,"need the dylink section to be first"),e=9;var d=o();n=e+d;var u=s();l(u!=="dylink.0")}for(var f={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]},I=1,p=2,m=3,E=4,B=5,Q=256,S=3,w=1;e<n;){var y=A(),D=o();if(y===I)f.memorySize=o(),f.memoryAlign=o(),f.tableSize=o(),f.tableAlign=o();else if(y===p)f.neededDynlibs=a();else if(y===m)for(var _=o();_--;){var M=s(),R=o();R&Q&&f.tlsExports.add(M)}else if(y===E)for(var _=o();_--;){s();var M=s(),R=o();(R&S)==w&&f.weakImports.add(M)}else y===B?f.runtimePaths=a():e+=D}return f},"getDylinkMetadata");function getValue(r,e="i8"){switch(e.endsWith("*")&&(e="*"),e){case"i1":return HEAP8[r];case"i8":return HEAP8[r];case"i16":return LE_HEAP_LOAD_I16((r>>1)*2);case"i32":return LE_HEAP_LOAD_I32((r>>2)*4);case"i64":return LE_HEAP_LOAD_I64((r>>3)*8);case"float":return LE_HEAP_LOAD_F32((r>>2)*4);case"double":return LE_HEAP_LOAD_F64((r>>3)*8);case"*":return LE_HEAP_LOAD_U32((r>>2)*4);default:abort(`invalid type for getValue: ${e}`)}}__name(getValue,"getValue");var newDSO=__name((r,e,n)=>{var A={refcount:1/0,name:r,exports:n,global:!0};return LDSO.loadedLibsByName[r]=A,e!=null&&(LDSO.loadedLibsByHandle[e]=A),A},"newDSO"),LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}},___heap_base=78240,alignMemory=__name((r,e)=>Math.ceil(r/e)*e,"alignMemory"),getMemory=__name(r=>{if(runtimeInitialized)return _calloc(r,1);var e=___heap_base,n=e+alignMemory(r,16);return ___heap_base=n,GOT.__heap_base.value=n,e},"getMemory"),isInternalSym=__name(r=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(r)||r.startsWith("__em_js__"),"isInternalSym"),uleb128EncodeWithLen=__name(r=>{const e=r.length;return[e%128|128,e>>7,...r]},"uleb128EncodeWithLen"),wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111},generateTypePack=__name(r=>uleb128EncodeWithLen(Array.from(r,e=>{var n=wasmTypeCodes[e];return n})),"generateTypePack"),convertJsFunctionToWasm=__name((r,e)=>{var n=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(e.slice(1)),...generateTypePack(e[0]==="v"?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),A=new WebAssembly.Module(n),o=new WebAssembly.Instance(A,{e:{f:r}}),s=o.exports.f;return s},"convertJsFunctionToWasm"),wasmTableMirror=[],wasmTable=new WebAssembly.Table({initial:31,element:"anyfunc"}),getWasmTableEntry=__name(r=>{var e=wasmTableMirror[r];return e||(wasmTableMirror[r]=e=wasmTable.get(r)),e},"getWasmTableEntry"),updateTableMap=__name((r,e)=>{if(functionsInTableMap)for(var n=r;n<r+e;n++){var A=getWasmTableEntry(n);A&&functionsInTableMap.set(A,n)}},"updateTableMap"),functionsInTableMap,getFunctionAddress=__name(r=>(functionsInTableMap||(functionsInTableMap=new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(r)||0),"getFunctionAddress"),freeTableIndexes=[],getEmptyTableSlot=__name(()=>freeTableIndexes.length?freeTableIndexes.pop():wasmTable.grow(1),"getEmptyTableSlot"),setWasmTableEntry=__name((r,e)=>{wasmTable.set(r,e),wasmTableMirror[r]=wasmTable.get(r)},"setWasmTableEntry"),addFunction=__name((r,e)=>{var n=getFunctionAddress(r);if(n)return n;var A=getEmptyTableSlot();try{setWasmTableEntry(A,r)}catch(s){if(!(s instanceof TypeError))throw s;var o=convertJsFunctionToWasm(r,e);setWasmTableEntry(A,o)}return functionsInTableMap.set(r,A),A},"addFunction"),updateGOT=__name((r,e)=>{for(var n in r)if(!isInternalSym(n)){var A=r[n];GOT[n]||=new WebAssembly.Global({value:"i32",mutable:!0}),(e||GOT[n].value==0)&&(typeof A=="function"?GOT[n].value=addFunction(A):typeof A=="number"?GOT[n].value=A:err(`unhandled export type for '${n}': ${typeof A}`))}},"updateGOT"),relocateExports=__name((r,e,n)=>{var A={};for(var o in r){var s=r[o];typeof s=="object"&&(s=s.value),typeof s=="number"&&(s+=e),A[o]=s}return updateGOT(A,n),A},"relocateExports"),isSymbolDefined=__name(r=>{var e=wasmImports[r];return!(!e||e.stub)},"isSymbolDefined"),dynCall=__name((r,e,n=[],A=!1)=>{var o=getWasmTableEntry(e),s=o(...n);function a(l){return l}return __name(a,"convert"),s},"dynCall"),stackSave=__name(()=>_emscripten_stack_get_current(),"stackSave"),stackRestore=__name(r=>__emscripten_stack_restore(r),"stackRestore"),createInvokeFunction=__name(r=>(e,...n)=>{var A=stackSave();try{return dynCall(r,e,n)}catch(o){if(stackRestore(A),o!==o+0)throw o;if(_setThrew(1,0),r[0]=="j")return 0n}},"createInvokeFunction"),resolveGlobalSymbol=__name((r,e=!1)=>{var n;return isSymbolDefined(r)?n=wasmImports[r]:r.startsWith("invoke_")&&(n=wasmImports[r]=createInvokeFunction(r.split("_")[1])),{sym:n,name:r}},"resolveGlobalSymbol"),onPostCtors=[],addOnPostCtor=__name(r=>onPostCtors.push(r),"addOnPostCtor"),UTF8ToString=__name((r,e,n)=>r?UTF8ArrayToString(HEAPU8,r,e,n):"","UTF8ToString"),loadWebAssemblyModule=__name((binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign),memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(HEAP8[handle+8]=1,LE_HEAP_STORE_U32((handle+12>>2)*4,memoryBase),LE_HEAP_STORE_I32((handle+16>>2)*4,metadata.memorySize),LE_HEAP_STORE_U32((handle+20>>2)*4,tableBase),LE_HEAP_STORE_I32((handle+24>>2)*4,metadata.tableSize)),metadata.tableSize&&wasmTable.grow(metadata.tableSize);var moduleExports;function resolveSymbol(r){var e=resolveGlobalSymbol(r).sym;return!e&&localScope&&(e=localScope[r]),e||(e=moduleExports[r]),e}__name(resolveSymbol,"resolveSymbol");var proxyHandler={get(r,e){switch(e){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(e in wasmImports&&!wasmImports[e].stub){var n=wasmImports[e];return n}if(!(e in r)){var A;r[e]=(...o)=>(A||=resolveSymbol(e),A(...o))}return r[e]}},proxy=new Proxy({},proxyHandler);currentModuleWeakSymbols=metadata.weakImports;var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols();function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf("$"+arity)!=-1;arity++)args.push("$"+arity);args=args.join(",");var func=`(${args}) => { ${body} };`;eval(func)}if(__name(addEmAsm,"addEmAsm"),"__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start<stop;){var jsString=UTF8ToString(start);addEmAsm(start,jsString),start=HEAPU8.indexOf(0,start)+1}function addEmJs(name,cSig,body){var jsArgs=[];if(cSig=cSig.slice(1,-1),cSig!="void"){cSig=cSig.split(",");for(var i in cSig){var jsArg=cSig[i].split(" ").pop();jsArgs.push(jsArg.replace("*",""))}}var func=`(${jsArgs}) => ${body};`;moduleExports[name]=eval(func)}__name(addEmJs,"addEmJs");for(var name in moduleExports)if(name.startsWith("__em_js__")){var start=moduleExports[name],jsString=UTF8ToString(start),parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]),delete moduleExports[name]}var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;return init&&(runtimeInitialized?init():addOnPostCtor(init)),moduleExports}if(__name(postInstantiation,"postInstantiation"),flags.loadAsync)return(async()=>{var r;return binary instanceof WebAssembly.Module?r=new WebAssembly.Instance(binary,info):{module:binary,instance:r}=await WebAssembly.instantiate(binary,info),postInstantiation(binary,r)})();var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}return __name(loadModule,"loadModule"),flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}},flags.loadAsync?metadata.neededDynlibs.reduce((r,e)=>r.then(()=>loadDynamicLibrary(e,flags,localScope)),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach(r=>loadDynamicLibrary(r,flags,localScope)),loadModule())},"loadWebAssemblyModule"),mergeLibSymbols=__name((r,e)=>{for(var[n,A]of Object.entries(r)){const o=__name(a=>{isSymbolDefined(a)||(wasmImports[a]=A)},"setImport");o(n);const s="__main_argc_argv";n=="main"&&o(s),n==s&&o("main")}},"mergeLibSymbols"),asyncLoad=__name(async r=>{var e=await readAsync(r);return new Uint8Array(e)},"asyncLoad");function loadDynamicLibrary(r,e={global:!0,nodelete:!0},n,A){var o=LDSO.loadedLibsByName[r];if(o)return e.global?o.global||(o.global=!0,mergeLibSymbols(o.exports,r)):n&&Object.assign(n,o.exports),e.nodelete&&o.refcount!==1/0&&(o.refcount=1/0),o.refcount++,A&&(LDSO.loadedLibsByHandle[A]=o),e.loadAsync?Promise.resolve(!0):!0;o=newDSO(r,A,"loading"),o.refcount=e.nodelete?1/0:1,o.global=e.global;function s(){if(A){var c=LE_HEAP_LOAD_U32((A+28>>2)*4),g=LE_HEAP_LOAD_U32((A+32>>2)*4);if(c&&g){var h=HEAP8.slice(c,c+g);return e.loadAsync?Promise.resolve(h):h}}var d=locateFile(r);if(e.loadAsync)return asyncLoad(d);if(!readBinary)throw new Error(`${d}: file not found, and synchronous loading of external files is not available`);return readBinary(d)}__name(s,"loadLibData");function a(){return e.loadAsync?s().then(c=>loadWebAssemblyModule(c,e,r,n,A)):loadWebAssemblyModule(s(),e,r,n,A)}__name(a,"getExports");function l(c){o.global?mergeLibSymbols(c,r):n&&Object.assign(n,c),o.exports=c}return __name(l,"moduleLoaded"),e.loadAsync?a().then(c=>(l(c),!0)):(l(a()),!0)}__name(loadDynamicLibrary,"loadDynamicLibrary");var reportUndefinedSymbols=__name(()=>{for(var[r,e]of Object.entries(GOT))if(e.value==0){var n=resolveGlobalSymbol(r,!0).sym;if(!n&&!e.required)continue;if(typeof n=="function")e.value=addFunction(n,n.sig);else if(typeof n=="number")e.value=n;else throw new Error(`bad export type for '${r}': ${typeof n}`)}},"reportUndefinedSymbols"),runDependencies=0,dependenciesFulfilled=null,removeRunDependency=__name(r=>{if(runDependencies--,Module.monitorRunDependencies?.(runDependencies),runDependencies==0&&dependenciesFulfilled){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}},"removeRunDependency"),addRunDependency=__name(r=>{runDependencies++,Module.monitorRunDependencies?.(runDependencies)},"addRunDependency"),loadDylibs=__name(async()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");for(var r of dynamicLibraries)await loadDynamicLibrary(r,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});reportUndefinedSymbols(),removeRunDependency("loadDylibs")},"loadDylibs"),noExitRuntime=!0;function setValue(r,e,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":HEAP8[r]=e;break;case"i8":HEAP8[r]=e;break;case"i16":LE_HEAP_STORE_I16((r>>1)*2,e);break;case"i32":LE_HEAP_STORE_I32((r>>2)*4,e);break;case"i64":LE_HEAP_STORE_I64((r>>3)*8,BigInt(e));break;case"float":LE_HEAP_STORE_F32((r>>2)*4,e);break;case"double":LE_HEAP_STORE_F64((r>>3)*8,e);break;case"*":LE_HEAP_STORE_U32((r>>2)*4,e);break;default:abort(`invalid type for setValue: ${n}`)}}__name(setValue,"setValue");var ___memory_base=new WebAssembly.Global({value:"i32",mutable:!1},1024),___stack_high=78240,___stack_low=12704,___stack_pointer=new WebAssembly.Global({value:"i32",mutable:!0},78240),___table_base=new WebAssembly.Global({value:"i32",mutable:!1},1),__abort_js=__name(()=>abort(""),"__abort_js");__abort_js.sig="v";var getHeapMax=__name(()=>2147483648,"getHeapMax"),growMemory=__name(r=>{var e=wasmMemory.buffer.byteLength,n=(r-e+65535)/65536|0;try{return wasmMemory.grow(n),updateMemoryViews(),1}catch{}},"growMemory"),_emscripten_resize_heap=__name(r=>{var e=HEAPU8.length;r>>>=0;var n=getHeapMax();if(r>n)return!1;for(var A=1;A<=4;A*=2){var o=e*(1+.2/A);o=Math.min(o,r+100663296);var s=Math.min(n,alignMemory(Math.max(r,o),65536)),a=growMemory(s);if(a)return!0}return!1},"_emscripten_resize_heap");_emscripten_resize_heap.sig="ip";var _fd_close=__name(r=>52,"_fd_close");_fd_close.sig="ii";var INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992,bigintToI53Checked=__name(r=>r<INT53_MIN||r>INT53_MAX?NaN:Number(r),"bigintToI53Checked");function _fd_seek(r,e,n,A){return e=bigintToI53Checked(e),70}__name(_fd_seek,"_fd_seek"),_fd_seek.sig="iijip";var printCharBuffers=[null,[],[]],printChar=__name((r,e)=>{var n=printCharBuffers[r];e===0||e===10?((r===1?out:err)(UTF8ArrayToString(n)),n.length=0):n.push(e)},"printChar"),_fd_write=__name((r,e,n,A)=>{for(var o=0,s=0;s<n;s++){var a=LE_HEAP_LOAD_U32((e>>2)*4),l=LE_HEAP_LOAD_U32((e+4>>2)*4);e+=8;for(var c=0;c<l;c++)printChar(r,HEAPU8[a+c]);o+=l}return LE_HEAP_STORE_U32((A>>2)*4,o),0},"_fd_write");_fd_write.sig="iippp";function _tree_sitter_log_callback(r,e){if(Module.currentLogCallback){const n=UTF8ToString(e);Module.currentLogCallback(n,r!==0)}}__name(_tree_sitter_log_callback,"_tree_sitter_log_callback");function _tree_sitter_parse_callback(r,e,n,A,o){const a=Module.currentParseCallback(e,{row:n,column:A});typeof a=="string"?(setValue(o,a.length,"i32"),stringToUTF16(a,r,10240)):setValue(o,0,"i32")}__name(_tree_sitter_parse_callback,"_tree_sitter_parse_callback");function _tree_sitter_progress_callback(r,e){return Module.currentProgressCallback?Module.currentProgressCallback({currentOffset:r,hasError:e}):!1}__name(_tree_sitter_progress_callback,"_tree_sitter_progress_callback");function _tree_sitter_query_progress_callback(r){return Module.currentQueryProgressCallback?Module.currentQueryProgressCallback({currentOffset:r}):!1}__name(_tree_sitter_query_progress_callback,"_tree_sitter_query_progress_callback");var runtimeKeepaliveCounter=0,keepRuntimeAlive=__name(()=>noExitRuntime||runtimeKeepaliveCounter>0,"keepRuntimeAlive"),_proc_exit=__name(r=>{EXITSTATUS=r,keepRuntimeAlive()||(Module.onExit?.(r),ABORT=!0),quit_(r,new ExitStatus(r))},"_proc_exit");_proc_exit.sig="vi";var exitJS=__name((r,e)=>{EXITSTATUS=r,_proc_exit(r)},"exitJS"),handleException=__name(r=>{if(r instanceof ExitStatus||r=="unwind")return EXITSTATUS;quit_(1,r)},"handleException"),lengthBytesUTF8=__name(r=>{for(var e=0,n=0;n<r.length;++n){var A=r.charCodeAt(n);A<=127?e++:A<=2047?e+=2:A>=55296&&A<=57343?(e+=4,++n):e+=3}return e},"lengthBytesUTF8"),stringToUTF8Array=__name((r,e,n,A)=>{if(!(A>0))return 0;for(var o=n,s=n+A-1,a=0;a<r.length;++a){var l=r.codePointAt(a);if(l<=127){if(n>=s)break;e[n++]=l}else if(l<=2047){if(n+1>=s)break;e[n++]=192|l>>6,e[n++]=128|l&63}else if(l<=65535){if(n+2>=s)break;e[n++]=224|l>>12,e[n++]=128|l>>6&63,e[n++]=128|l&63}else{if(n+3>=s)break;e[n++]=240|l>>18,e[n++]=128|l>>12&63,e[n++]=128|l>>6&63,e[n++]=128|l&63,a++}}return e[n]=0,n-o},"stringToUTF8Array"),stringToUTF8=__name((r,e,n)=>stringToUTF8Array(r,HEAPU8,e,n),"stringToUTF8"),stackAlloc=__name(r=>__emscripten_stack_alloc(r),"stackAlloc"),stringToUTF8OnStack=__name(r=>{var e=lengthBytesUTF8(r)+1,n=stackAlloc(e);return stringToUTF8(r,n,e),n},"stringToUTF8OnStack"),AsciiToString=__name(r=>{for(var e="";;){var n=HEAPU8[r++];if(!n)return e;e+=String.fromCharCode(n)}},"AsciiToString"),stringToUTF16=__name((r,e,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var A=e,o=n<r.length*2?n/2:r.length,s=0;s<o;++s){var a=r.charCodeAt(s);LE_HEAP_STORE_I16((e>>1)*2,a),e+=2}return LE_HEAP_STORE_I16((e>>1)*2,0),e-A},"stringToUTF16");new Int8Array(new Int16Array([1]).buffer)[0];function LE_HEAP_UPDATE(){HEAPU16.unsigned=(r=>r&65535),HEAPU32.unsigned=(r=>r>>>0)}if(__name(LE_HEAP_UPDATE,"LE_HEAP_UPDATE"),initMemory(),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.dynamicLibraries&&(dynamicLibraries=Module.dynamicLibraries),Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.shift()();Module.setValue=setValue,Module.getValue=getValue,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.AsciiToString=AsciiToString,Module.stringToUTF16=stringToUTF16,Module.loadWebAssemblyModule=loadWebAssemblyModule,Module.LE_HEAP_STORE_I64=LE_HEAP_STORE_I64;var _calloc,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current;function assignWasmExports(r){Module._malloc=r.malloc,Module._calloc=_calloc=r.calloc,Module._realloc=r.realloc,Module._free=r.free,Module._ts_range_edit=r.ts_range_edit,Module._memcmp=r.memcmp,Module._ts_language_symbol_count=r.ts_language_symbol_count,Module._ts_language_state_count=r.ts_language_state_count,Module._ts_language_abi_version=r.ts_language_abi_version,Module._ts_language_name=r.ts_language_name,Module._ts_language_field_count=r.ts_language_field_count,Module._ts_language_next_state=r.ts_language_next_state,Module._ts_language_symbol_name=r.ts_language_symbol_name,Module._ts_language_symbol_for_name=r.ts_language_symbol_for_name,Module._strncmp=r.strncmp,Module._ts_language_symbol_type=r.ts_language_symbol_type,Module._ts_language_field_name_for_id=r.ts_language_field_name_for_id,Module._ts_lookahead_iterator_new=r.ts_lookahead_iterator_new,Module._ts_lookahead_iterator_delete=r.ts_lookahead_iterator_delete,Module._ts_lookahead_iterator_reset_state=r.ts_lookahead_iterator_reset_state,Module._ts_lookahead_iterator_reset=r.ts_lookahead_iterator_reset,Module._ts_lookahead_iterator_next=r.ts_lookahead_iterator_next,Module._ts_lookahead_iterator_current_symbol=r.ts_lookahead_iterator_current_symbol,Module._ts_point_edit=r.ts_point_edit,Module._ts_parser_delete=r.ts_parser_delete,Module._ts_parser_reset=r.ts_parser_reset,Module._ts_parser_set_language=r.ts_parser_set_language,Module._ts_parser_set_included_ranges=r.ts_parser_set_included_ranges,Module._ts_query_new=r.ts_query_new,Module._ts_query_delete=r.ts_query_delete,Module._iswspace=r.iswspace,Module._iswalnum=r.iswalnum,Module._ts_query_pattern_count=r.ts_query_pattern_count,Module._ts_query_capture_count=r.ts_query_capture_count,Module._ts_query_string_count=r.ts_query_string_count,Module._ts_query_capture_name_for_id=r.ts_query_capture_name_for_id,Module._ts_query_capture_quantifier_for_id=r.ts_query_capture_quantifier_for_id,Module._ts_query_string_value_for_id=r.ts_query_string_value_for_id,Module._ts_query_predicates_for_pattern=r.ts_query_predicates_for_pattern,Module._ts_query_start_byte_for_pattern=r.ts_query_start_byte_for_pattern,Module._ts_query_end_byte_for_pattern=r.ts_query_end_byte_for_pattern,Module._ts_query_is_pattern_rooted=r.ts_query_is_pattern_rooted,Module._ts_query_is_pattern_non_local=r.ts_query_is_pattern_non_local,Module._ts_query_is_pattern_guaranteed_at_step=r.ts_query_is_pattern_guaranteed_at_step,Module._ts_query_disable_capture=r.ts_query_disable_capture,Module._ts_query_disable_pattern=r.ts_query_disable_pattern,Module._ts_tree_copy=r.ts_tree_copy,Module._ts_tree_delete=r.ts_tree_delete,Module._ts_init=r.ts_init,Module._ts_parser_new_wasm=r.ts_parser_new_wasm,Module._ts_parser_enable_logger_wasm=r.ts_parser_enable_logger_wasm,Module._ts_parser_parse_wasm=r.ts_parser_parse_wasm,Module._ts_parser_included_ranges_wasm=r.ts_parser_included_ranges_wasm,Module._ts_language_type_is_named_wasm=r.ts_language_type_is_named_wasm,Module._ts_language_type_is_visible_wasm=r.ts_language_type_is_visible_wasm,Module._ts_language_metadata_wasm=r.ts_language_metadata_wasm,Module._ts_language_supertypes_wasm=r.ts_language_supertypes_wasm,Module._ts_language_subtypes_wasm=r.ts_language_subtypes_wasm,Module._ts_tree_root_node_wasm=r.ts_tree_root_node_wasm,Module._ts_tree_root_node_with_offset_wasm=r.ts_tree_root_node_with_offset_wasm,Module._ts_tree_edit_wasm=r.ts_tree_edit_wasm,Module._ts_tree_included_ranges_wasm=r.ts_tree_included_ranges_wasm,Module._ts_tree_get_changed_ranges_wasm=r.ts_tree_get_changed_ranges_wasm,Module._ts_tree_cursor_new_wasm=r.ts_tree_cursor_new_wasm,Module._ts_tree_cursor_copy_wasm=r.ts_tree_cursor_copy_wasm,Module._ts_tree_cursor_delete_wasm=r.ts_tree_cursor_delete_wasm,Module._ts_tree_cursor_reset_wasm=r.ts_tree_cursor_reset_wasm,Module._ts_tree_cursor_reset_to_wasm=r.ts_tree_cursor_reset_to_wasm,Module._ts_tree_cursor_goto_first_child_wasm=r.ts_tree_cursor_goto_first_child_wasm,Module._ts_tree_cursor_goto_last_child_wasm=r.ts_tree_cursor_goto_last_child_wasm,Module._ts_tree_cursor_goto_first_child_for_index_wasm=r.ts_tree_cursor_goto_first_child_for_index_wasm,Module._ts_tree_cursor_goto_first_child_for_position_wasm=r.ts_tree_cursor_goto_first_child_for_position_wasm,Module._ts_tree_cursor_goto_next_sibling_wasm=r.ts_tree_cursor_goto_next_sibling_wasm,Module._ts_tree_cursor_goto_previous_sibling_wasm=r.ts_tree_cursor_goto_previous_sibling_wasm,Module._ts_tree_cursor_goto_descendant_wasm=r.ts_tree_cursor_goto_descendant_wasm,Module._ts_tree_cursor_goto_parent_wasm=r.ts_tree_cursor_goto_parent_wasm,Module._ts_tree_cursor_current_node_type_id_wasm=r.ts_tree_cursor_current_node_type_id_wasm,Module._ts_tree_cursor_current_node_state_id_wasm=r.ts_tree_cursor_current_node_state_id_wasm,Module._ts_tree_cursor_current_node_is_named_wasm=r.ts_tree_cursor_current_node_is_named_wasm,Module._ts_tree_cursor_current_node_is_missing_wasm=r.ts_tree_cursor_current_node_is_missing_wasm,Module._ts_tree_cursor_current_node_id_wasm=r.ts_tree_cursor_current_node_id_wasm,Module._ts_tree_cursor_start_position_wasm=r.ts_tree_cursor_start_position_wasm,Module._ts_tree_cursor_end_position_wasm=r.ts_tree_cursor_end_position_wasm,Module._ts_tree_cursor_start_index_wasm=r.ts_tree_cursor_start_index_wasm,Module._ts_tree_cursor_end_index_wasm=r.ts_tree_cursor_end_index_wasm,Module._ts_tree_cursor_current_field_id_wasm=r.ts_tree_cursor_current_field_id_wasm,Module._ts_tree_cursor_current_depth_wasm=r.ts_tree_cursor_current_depth_wasm,Module._ts_tree_cursor_current_descendant_index_wasm=r.ts_tree_cursor_current_descendant_index_wasm,Module._ts_tree_cursor_current_node_wasm=r.ts_tree_cursor_current_node_wasm,Module._ts_node_symbol_wasm=r.ts_node_symbol_wasm,Module._ts_node_field_name_for_child_wasm=r.ts_node_field_name_for_child_wasm,Module._ts_node_field_name_for_named_child_wasm=r.ts_node_field_name_for_named_child_wasm,Module._ts_node_children_by_field_id_wasm=r.ts_node_children_by_field_id_wasm,Module._ts_node_first_child_for_byte_wasm=r.ts_node_first_child_for_byte_wasm,Module._ts_node_first_named_child_for_byte_wasm=r.ts_node_first_named_child_for_byte_wasm,Module._ts_node_grammar_symbol_wasm=r.ts_node_grammar_symbol_wasm,Module._ts_node_child_count_wasm=r.ts_node_child_count_wasm,Module._ts_node_named_child_count_wasm=r.ts_node_named_child_count_wasm,Module._ts_node_child_wasm=r.ts_node_child_wasm,Module._ts_node_named_child_wasm=r.ts_node_named_child_wasm,Module._ts_node_child_by_field_id_wasm=r.ts_node_child_by_field_id_wasm,Module._ts_node_next_sibling_wasm=r.ts_node_next_sibling_wasm,Module._ts_node_prev_sibling_wasm=r.ts_node_prev_sibling_wasm,Module._ts_node_next_named_sibling_wasm=r.ts_node_next_named_sibling_wasm,Module._ts_node_prev_named_sibling_wasm=r.ts_node_prev_named_sibling_wasm,Module._ts_node_descendant_count_wasm=r.ts_node_descendant_count_wasm,Module._ts_node_parent_wasm=r.ts_node_parent_wasm,Module._ts_node_child_with_descendant_wasm=r.ts_node_child_with_descendant_wasm,Module._ts_node_descendant_for_index_wasm=r.ts_node_descendant_for_index_wasm,Module._ts_node_named_descendant_for_index_wasm=r.ts_node_named_descendant_for_index_wasm,Module._ts_node_descendant_for_position_wasm=r.ts_node_descendant_for_position_wasm,Module._ts_node_named_descendant_for_position_wasm=r.ts_node_named_descendant_for_position_wasm,Module._ts_node_start_point_wasm=r.ts_node_start_point_wasm,Module._ts_node_end_point_wasm=r.ts_node_end_point_wasm,Module._ts_node_start_index_wasm=r.ts_node_start_index_wasm,Module._ts_node_end_index_wasm=r.ts_node_end_index_wasm,Module._ts_node_to_string_wasm=r.ts_node_to_string_wasm,Module._ts_node_children_wasm=r.ts_node_children_wasm,Module._ts_node_named_children_wasm=r.ts_node_named_children_wasm,Module._ts_node_descendants_of_type_wasm=r.ts_node_descendants_of_type_wasm,Module._ts_node_is_named_wasm=r.ts_node_is_named_wasm,Module._ts_node_has_changes_wasm=r.ts_node_has_changes_wasm,Module._ts_node_has_error_wasm=r.ts_node_has_error_wasm,Module._ts_node_is_error_wasm=r.ts_node_is_error_wasm,Module._ts_node_is_missing_wasm=r.ts_node_is_missing_wasm,Module._ts_node_is_extra_wasm=r.ts_node_is_extra_wasm,Module._ts_node_parse_state_wasm=r.ts_node_parse_state_wasm,Module._ts_node_next_parse_state_wasm=r.ts_node_next_parse_state_wasm,Module._ts_query_matches_wasm=r.ts_query_matches_wasm,Module._ts_query_captures_wasm=r.ts_query_captures_wasm,Module._memset=r.memset,Module._memcpy=r.memcpy,Module._memmove=r.memmove,Module._iswalpha=r.iswalpha,Module._iswblank=r.iswblank,Module._iswdigit=r.iswdigit,Module._iswlower=r.iswlower,Module._iswupper=r.iswupper,Module._iswxdigit=r.iswxdigit,Module._memchr=r.memchr,Module._strlen=r.strlen,Module._strcmp=r.strcmp,Module._strncat=r.strncat,Module._strncpy=r.strncpy,Module._towlower=r.towlower,Module._towupper=r.towupper,_setThrew=r.setThrew,__emscripten_stack_restore=r._emscripten_stack_restore,__emscripten_stack_alloc=r._emscripten_stack_alloc,_emscripten_stack_get_current=r.emscripten_stack_get_current,r.__wasm_apply_data_relocs}__name(assignWasmExports,"assignWasmExports");var wasmImports={__heap_base:___heap_base,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__table_base:___table_base,_abort_js:__abort_js,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,tree_sitter_log_callback:_tree_sitter_log_callback,tree_sitter_parse_callback:_tree_sitter_parse_callback,tree_sitter_progress_callback:_tree_sitter_progress_callback,tree_sitter_query_progress_callback:_tree_sitter_query_progress_callback};function callMain(r=[]){var e=resolveGlobalSymbol("main").sym;if(e){r.unshift(thisProgram);var n=r.length,A=stackAlloc((n+1)*4),o=A;r.forEach(a=>{LE_HEAP_STORE_U32((o>>2)*4,stringToUTF8OnStack(a)),o+=4}),LE_HEAP_STORE_U32((o>>2)*4,0);try{var s=e(n,A);return exitJS(s,!0),s}catch(a){return handleException(a)}}}__name(callMain,"callMain");function run(r=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}if(preRun(),runDependencies>0){dependenciesFulfilled=run;return}function e(){if(Module.calledRun=!0,!ABORT){initRuntime(),readyPromiseResolve?.(Module),Module.onRuntimeInitialized?.();var n=Module.noInitialRun||!1;n||callMain(r),postRun()}}__name(e,"doRun"),Module.setStatus?(Module.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>Module.setStatus(""),1),e()},1)):e()}__name(run,"run");var wasmExports;return wasmExports=await createWasm(),run(),runtimeInitialized?moduleRtn=Module:moduleRtn=new Promise((r,e)=>{readyPromiseResolve=r,readyPromiseReject=e}),moduleRtn}__name(Module2,"Module");var web_tree_sitter_default=Module2,Module3=null;async function initializeBinding(r){return Module3??=await web_tree_sitter_default(r)}__name(initializeBinding,"initializeBinding");function checkModule(){return!!Module3}__name(checkModule,"checkModule");var TRANSFER_BUFFER,LANGUAGE_VERSION,MIN_COMPATIBLE_VERSION,Parser=class{static{__name(this,"Parser")}0=0;1=0;logCallback=null;language=null;static async init(r){setModule(await initializeBinding(r)),TRANSFER_BUFFER=C._ts_init(),LANGUAGE_VERSION=C.getValue(TRANSFER_BUFFER,"i32"),MIN_COMPATIBLE_VERSION=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32")}constructor(){this.initialize()}initialize(){if(!checkModule())throw new Error("cannot construct a Parser before calling `init()`");C._ts_parser_new_wasm(),this[0]=C.getValue(TRANSFER_BUFFER,"i32"),this[1]=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32")}delete(){C._ts_parser_delete(this[0]),C._free(this[1]),this[0]=0,this[1]=0}setLanguage(r){let e;if(!r)e=0,this.language=null;else if(r.constructor===Language){e=r[0];const n=C._ts_language_abi_version(e);if(n<MIN_COMPATIBLE_VERSION||LANGUAGE_VERSION<n)throw new Error(`Incompatible language version ${n}. Compatibility range ${MIN_COMPATIBLE_VERSION} through ${LANGUAGE_VERSION}.`);this.language=r}else throw new Error("Argument must be a Language");return C._ts_parser_set_language(this[0],e),this}parse(r,e,n){if(typeof r=="string")C.currentParseCallback=l=>r.slice(l);else if(typeof r=="function")C.currentParseCallback=r;else throw new Error("Argument must be a string or a function");n?.progressCallback?C.currentProgressCallback=n.progressCallback:C.currentProgressCallback=null,this.logCallback?(C.currentLogCallback=this.logCallback,C._ts_parser_enable_logger_wasm(this[0],1)):(C.currentLogCallback=null,C._ts_parser_enable_logger_wasm(this[0],0));let A=0,o=0;if(n?.includedRanges){A=n.includedRanges.length,o=C._calloc(A,SIZE_OF_RANGE);let l=o;for(let c=0;c<A;c++)marshalRange(l,n.includedRanges[c]),l+=SIZE_OF_RANGE}const s=C._ts_parser_parse_wasm(this[0],this[1],e?e[0]:0,o,A);if(!s)return C.currentParseCallback=null,C.currentLogCallback=null,C.currentProgressCallback=null,null;if(!this.language)throw new Error("Parser must have a language to parse");const a=new Tree(INTERNAL,s,this.language,C.currentParseCallback);return C.currentParseCallback=null,C.currentLogCallback=null,C.currentProgressCallback=null,a}reset(){C._ts_parser_reset(this[0])}getIncludedRanges(){C._ts_parser_included_ranges_wasm(this[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),n=new Array(r);if(r>0){let A=e;for(let o=0;o<r;o++)n[o]=unmarshalRange(A),A+=SIZE_OF_RANGE;C._free(e)}return n}setLogger(r){if(!r)this.logCallback=null;else{if(typeof r!="function")throw new Error("Logger callback must be a function");this.logCallback=r}return this}getLogger(){return this.logCallback}},PREDICATE_STEP_TYPE_CAPTURE=1,PREDICATE_STEP_TYPE_STRING=2,QUERY_WORD_REGEX=/[\w-]+/g,isCaptureStep=__name(r=>r.type==="capture","isCaptureStep"),isStringStep=__name(r=>r.type==="string","isStringStep"),QueryErrorKind={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},QueryError=class Bt extends Error{constructor(e,n,A,o){super(Bt.formatMessage(e,n)),this.kind=e,this.info=n,this.index=A,this.length=o,this.name="QueryError"}static{__name(this,"QueryError")}static formatMessage(e,n){switch(e){case QueryErrorKind.NodeName:return`Bad node name '${n.word}'`;case QueryErrorKind.FieldName:return`Bad field name '${n.word}'`;case QueryErrorKind.CaptureName:return`Bad capture name @${n.word}`;case QueryErrorKind.PatternStructure:return`Bad pattern structure at offset ${n.suffix}`;case QueryErrorKind.Syntax:return`Bad syntax at offset ${n.suffix}`}}};function parseAnyPredicate(r,e,n,A){if(r.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${r.length-1}`);if(!isCaptureStep(r[1]))throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}"`);const o=n==="eq?"||n==="any-eq?",s=!n.startsWith("any-");if(isCaptureStep(r[2])){const a=r[1].name,l=r[2].name;A[e].push(c=>{const g=[],h=[];for(const u of c)u.name===a&&g.push(u.node),u.name===l&&h.push(u.node);const d=__name((u,f,I)=>I?u.text===f.text:u.text!==f.text,"compare");return s?g.every(u=>h.some(f=>d(u,f,o))):g.some(u=>h.some(f=>d(u,f,o)))})}else{const a=r[1].name,l=r[2].value,c=__name(h=>h.text===l,"matches"),g=__name(h=>h.text!==l,"doesNotMatch");A[e].push(h=>{const d=[];for(const f of h)f.name===a&&d.push(f.node);const u=o?c:g;return s?d.every(u):d.some(u)})}}__name(parseAnyPredicate,"parseAnyPredicate");function parseMatchPredicate(r,e,n,A){if(r.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${r.length-1}.`);if(r[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}".`);if(r[2].type!=="string")throw new Error(`Second argument of \`#${n}\` predicate must be a string. Got @${r[2].name}.`);const o=n==="match?"||n==="any-match?",s=!n.startsWith("any-"),a=r[1].name,l=new RegExp(r[2].value);A[e].push(c=>{const g=[];for(const d of c)d.name===a&&g.push(d.node.text);const h=__name((d,u)=>u?l.test(d):!l.test(d),"test");return g.length===0?!o:s?g.every(d=>h(d,o)):g.some(d=>h(d,o))})}__name(parseMatchPredicate,"parseMatchPredicate");function parseAnyOfPredicate(r,e,n,A){if(r.length<2)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected at least 1. Got ${r.length-1}.`);if(r[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}".`);const o=n==="any-of?",s=r[1].name,a=r.slice(2);if(!a.every(isStringStep))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);const l=a.map(c=>c.value);A[e].push(c=>{const g=[];for(const h of c)h.name===s&&g.push(h.node.text);return g.length===0?!o:g.every(h=>l.includes(h))===o})}__name(parseAnyOfPredicate,"parseAnyOfPredicate");function parseIsPredicate(r,e,n,A,o){if(r.length<2||r.length>3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 1 or 2. Got ${r.length-1}.`);if(!r.every(isStringStep))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);const s=n==="is?"?A:o;s[e]||(s[e]={}),s[e][r[1].value]=r[2]?.value??null}__name(parseIsPredicate,"parseIsPredicate");function parseSetDirective(r,e,n){if(r.length<2||r.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${r.length-1}.`);if(!r.every(isStringStep))throw new Error('Arguments to `#set!` predicate must be strings.".');n[e]||(n[e]={}),n[e][r[1].value]=r[2]?.value??null}__name(parseSetDirective,"parseSetDirective");function parsePattern(r,e,n,A,o,s,a,l,c,g,h){if(e===PREDICATE_STEP_TYPE_CAPTURE){const d=A[n];s.push({type:"capture",name:d})}else if(e===PREDICATE_STEP_TYPE_STRING)s.push({type:"string",value:o[n]});else if(s.length>0){if(s[0].type!=="string")throw new Error("Predicates must begin with a literal value");const d=s[0].value;switch(d){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":parseAnyPredicate(s,r,d,a);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":parseMatchPredicate(s,r,d,a);break;case"not-any-of?":case"any-of?":parseAnyOfPredicate(s,r,d,a);break;case"is?":case"is-not?":parseIsPredicate(s,r,d,g,h);break;case"set!":parseSetDirective(s,r,c);break;default:l[r].push({operator:d,operands:s.slice(1)})}s.length=0}}__name(parsePattern,"parsePattern");var Query=class{static{__name(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(r,e){const n=C.lengthBytesUTF8(e),A=C._malloc(n+1);C.stringToUTF8(e,A,n+1);const o=C._ts_query_new(r[0],A,n,TRANSFER_BUFFER,TRANSFER_BUFFER+SIZE_OF_INT);if(!o){const m=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),E=C.getValue(TRANSFER_BUFFER,"i32"),B=C.UTF8ToString(A,E).length,Q=e.slice(B,B+100).split(`
|
|
207
|
+
`)[0],S=Q.match(QUERY_WORD_REGEX)?.[0]??"";switch(C._free(A),m){case QueryErrorKind.Syntax:throw new QueryError(QueryErrorKind.Syntax,{suffix:`${B}: '${Q}'...`},B,0);case QueryErrorKind.NodeName:throw new QueryError(m,{word:S},B,S.length);case QueryErrorKind.FieldName:throw new QueryError(m,{word:S},B,S.length);case QueryErrorKind.CaptureName:throw new QueryError(m,{word:S},B,S.length);case QueryErrorKind.PatternStructure:throw new QueryError(m,{suffix:`${B}: '${Q}'...`},B,0)}}const s=C._ts_query_string_count(o),a=C._ts_query_capture_count(o),l=C._ts_query_pattern_count(o),c=new Array(a),g=new Array(l),h=new Array(s);for(let m=0;m<a;m++){const E=C._ts_query_capture_name_for_id(o,m,TRANSFER_BUFFER),B=C.getValue(TRANSFER_BUFFER,"i32");c[m]=C.UTF8ToString(E,B)}for(let m=0;m<l;m++){const E=new Array(a);for(let B=0;B<a;B++){const Q=C._ts_query_capture_quantifier_for_id(o,m,B);E[B]=Q}g[m]=E}for(let m=0;m<s;m++){const E=C._ts_query_string_value_for_id(o,m,TRANSFER_BUFFER),B=C.getValue(TRANSFER_BUFFER,"i32");h[m]=C.UTF8ToString(E,B)}const d=new Array(l),u=new Array(l),f=new Array(l),I=new Array(l),p=new Array(l);for(let m=0;m<l;m++){const E=C._ts_query_predicates_for_pattern(o,m,TRANSFER_BUFFER),B=C.getValue(TRANSFER_BUFFER,"i32");I[m]=[],p[m]=[];const Q=new Array;let S=E;for(let w=0;w<B;w++){const y=C.getValue(S,"i32");S+=SIZE_OF_INT;const D=C.getValue(S,"i32");S+=SIZE_OF_INT,parsePattern(m,y,D,c,h,Q,p,I,d,u,f)}Object.freeze(p[m]),Object.freeze(I[m]),Object.freeze(d[m]),Object.freeze(u[m]),Object.freeze(f[m])}C._free(A),this[0]=o,this.captureNames=c,this.captureQuantifiers=g,this.textPredicates=p,this.predicates=I,this.setProperties=d,this.assertedProperties=u,this.refutedProperties=f,this.exceededMatchLimit=!1}delete(){C._ts_query_delete(this[0]),this[0]=0}matches(r,e={}){const n=e.startPosition??ZERO_POINT,A=e.endPosition??ZERO_POINT,o=e.startIndex??0,s=e.endIndex??0,a=e.startContainingPosition??ZERO_POINT,l=e.endContainingPosition??ZERO_POINT,c=e.startContainingIndex??0,g=e.endContainingIndex??0,h=e.matchLimit??4294967295,d=e.maxStartDepth??4294967295,u=e.progressCallback;if(typeof h!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=h,s!==0&&o>s)throw new Error("`startIndex` cannot be greater than `endIndex`");if(A!==ZERO_POINT&&(n.row>A.row||n.row===A.row&&n.column>A.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(g!==0&&c>g)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==ZERO_POINT&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");u&&(C.currentQueryProgressCallback=u),marshalNode(r),C._ts_query_matches_wasm(this[0],r.tree[0],n.row,n.column,A.row,A.column,o,s,a.row,a.column,l.row,l.column,c,g,h,d);const f=C.getValue(TRANSFER_BUFFER,"i32"),I=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),p=C.getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,"i32"),m=new Array(f);this.exceededMatchLimit=!!p;let E=0,B=I;for(let Q=0;Q<f;Q++){const S=C.getValue(B,"i32");B+=SIZE_OF_INT;const w=C.getValue(B,"i32");B+=SIZE_OF_INT;const y=new Array(w);if(B=unmarshalCaptures(this,r.tree,B,S,y),this.textPredicates[S].every(D=>D(y))){m[E]={patternIndex:S,captures:y};const D=this.setProperties[S];m[E].setProperties=D;const _=this.assertedProperties[S];m[E].assertedProperties=_;const M=this.refutedProperties[S];m[E].refutedProperties=M,E++}}return m.length=E,C._free(I),C.currentQueryProgressCallback=null,m}captures(r,e={}){const n=e.startPosition??ZERO_POINT,A=e.endPosition??ZERO_POINT,o=e.startIndex??0,s=e.endIndex??0,a=e.startContainingPosition??ZERO_POINT,l=e.endContainingPosition??ZERO_POINT,c=e.startContainingIndex??0,g=e.endContainingIndex??0,h=e.matchLimit??4294967295,d=e.maxStartDepth??4294967295,u=e.progressCallback;if(typeof h!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=h,s!==0&&o>s)throw new Error("`startIndex` cannot be greater than `endIndex`");if(A!==ZERO_POINT&&(n.row>A.row||n.row===A.row&&n.column>A.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(g!==0&&c>g)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==ZERO_POINT&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");u&&(C.currentQueryProgressCallback=u),marshalNode(r),C._ts_query_captures_wasm(this[0],r.tree[0],n.row,n.column,A.row,A.column,o,s,a.row,a.column,l.row,l.column,c,g,h,d);const f=C.getValue(TRANSFER_BUFFER,"i32"),I=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),p=C.getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,"i32"),m=new Array;this.exceededMatchLimit=!!p;const E=new Array;let B=I;for(let Q=0;Q<f;Q++){const S=C.getValue(B,"i32");B+=SIZE_OF_INT;const w=C.getValue(B,"i32");B+=SIZE_OF_INT;const y=C.getValue(B,"i32");if(B+=SIZE_OF_INT,E.length=w,B=unmarshalCaptures(this,r.tree,B,S,E),this.textPredicates[S].every(D=>D(E))){const D=E[y],_=this.setProperties[S];D.setProperties=_;const M=this.assertedProperties[S];D.assertedProperties=M;const R=this.refutedProperties[S];D.refutedProperties=R,m.push(D)}}return C._free(I),C.currentQueryProgressCallback=null,m}predicatesForPattern(r){return this.predicates[r]}disableCapture(r){const e=C.lengthBytesUTF8(r),n=C._malloc(e+1);C.stringToUTF8(r,n,e+1),C._ts_query_disable_capture(this[0],n,e),C._free(n)}disablePattern(r){if(r>=this.predicates.length)throw new Error(`Pattern index is ${r} but the pattern count is ${this.predicates.length}`);C._ts_query_disable_pattern(this[0],r)}didExceedMatchLimit(){return this.exceededMatchLimit}startIndexForPattern(r){if(r>=this.predicates.length)throw new Error(`Pattern index is ${r} but the pattern count is ${this.predicates.length}`);return C._ts_query_start_byte_for_pattern(this[0],r)}endIndexForPattern(r){if(r>=this.predicates.length)throw new Error(`Pattern index is ${r} but the pattern count is ${this.predicates.length}`);return C._ts_query_end_byte_for_pattern(this[0],r)}patternCount(){return C._ts_query_pattern_count(this[0])}captureIndexForName(r){return this.captureNames.indexOf(r)}isPatternRooted(r){return C._ts_query_is_pattern_rooted(this[0],r)===1}isPatternNonLocal(r){return C._ts_query_is_pattern_non_local(this[0],r)===1}isPatternGuaranteedAtStep(r){return C._ts_query_is_pattern_guaranteed_at_step(this[0],r)===1}};const _shadows={};class BaseNode{constructor(e){Object.assign(this,e)}get depth(){return this._depth==null&&(this.parent==null?this._depth=0:this._depth=this.parent.depth+1),this._depth}get length(){return this.children?.length||0}*[Symbol.iterator](){yield*this.children||[]}get hasChildren(){return(this.children?.length||0)>0}get hardChildren(){return(this.children||[]).filter(e=>e instanceof Node)}get fields(){return{}}get fieldNames(){return[]}get indent(){return this.tree.codeString.match(new RegExp(`^(?:.*\\r?\\n){${this.startPosition.row}}(\\s*)`))[1]}toJSON(){const e={};return this.children?.length?{type:this.type,typeId:this.typeId,fieldNames:this.fieldNames,startPosition:this.startPosition,startIndex:this.startIndex,endPosition:this.endPosition,indent:this.indent,...e,children:this.children.map(n=>n.toJSON())}:{type:this.type,typeId:this.typeId,fieldNames:this.fieldNames,startPosition:this.startPosition,startIndex:this.startIndex,endPosition:this.endPosition,indent:this.indent,...e,text:this.text,children:[]}}[Symbol.for("Deno.customInspect")](e,n){const A={};let o;try{o=this.text}catch{o=void 0}return o==null?this:e({"":o.length<60?o:o.slice(0,30)+"..."+o.slice(-27),type:this.type,typeId:this.typeId,fieldNames:this.fieldNames,startPosition:this.startPosition,startIndex:this.startIndex,endPosition:this.endPosition,indent:this.indent,...A,hasChildren:this.hasChildren,children:[...this.children||[]]},n)}*iterFlattened(){}flattened(){return[]}replaceInnards(e){const n=this.tree,A=this.tree.codeString,o=_shadows[this.id]||this;o._children=[],o._fields={};const{startPosition:s,endPosition:a,startIndex:l,endIndex:c}=o,g=e.match(/\n/g)?.length||0;let h=s.column;g==0?h=s.column+e.length:h=e.split(`
|
|
208
|
+
`).slice(-1)[0].length,n.edit({startIndex:l,oldEndIndex:c,newEndIndex:l+e.length,startPosition:s,oldEndPosition:a,newEndPosition:{row:s.row+g,column:h}}),this.tree.codeString=A.slice(0,l)+e+A.slice(c)}}class SoftNode extends BaseNode{constructor(e){super(e),this.children=[]}get startIndex(){return this._startIndexOffset+this.getReferencePoint().index}get startPosition(){return{row:this._startRowOffset+this.getReferencePoint().position.row,column:this._startColOffset+this.getReferencePoint().position.column}}get endIndex(){return this._endIndexOffset+this.getReferencePoint().index}get endPosition(){return{row:this._endRowOffset+this.getReferencePoint().position.row,column:this._endColOffset+this.getReferencePoint().position.column}}}class WhitespaceNode extends SoftNode{constructor({parent:e,...n}){super({...n,type:"whitespace",typeId:-1}),this._parent=e}get parent(){return this._parent}}class SoftTextNode extends SoftNode{constructor({parent:e,...n}){super({...n,type:"text",typeId:-2}),this._parent=e}get parent(){return this._parent}}function _getQueryCaptureTargets(r){return r.includes("@")?r.replace(/"(?:\\(?:[^xu0-7]|[0-7]{1,3}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]+})|[^\"\\])*"/g,"").match(/(?<=@)([a-zA-Z0-9.\-_\$]+)/g):[]}const realRootNodeGetter=Object.getOwnPropertyDescriptor(Tree.prototype,"rootNode").get;Object.defineProperty(Tree.prototype,"rootNode",{get(){const r=realRootNodeGetter.call(this),e={};Object.setPrototypeOf(e,Object.getPrototypeOf(r));const n=Object.assign(Object.getOwnPropertyDescriptors(Node.prototype),Object.getOwnPropertyDescriptors(r)),A={};for(const[o,s]of Object.entries(n))o=="startIndex"||o=="startPosition"||(o=="text"||o=="replaceInnards"?A[o]=s:A[o]={get:()=>{const a=r[o];return typeof a=="function"?(...l)=>a.apply(r,l):a},set:a=>r[o]=a,enumerable:s.enumerable,configurable:s.configurable});return Object.setPrototypeOf(e,Node.prototype),Object.defineProperties(e,A),e.startIndex=0,e.startPosition={row:0,column:0},e.children.length==0&&e.endIndex!=0&&(e._children=_childrenWithSoftNodes(e,[{startIndex:e.endIndex,endIndex:e.endIndex,endPosition:e.endPosition}],r.tree.codeString).slice(0,-1)),_shadows[r.id]=e,e}});const originalDescriptors=Object.getOwnPropertyDescriptors(Node.prototype),originalChildrenGetter=originalDescriptors.children.get,originalEndIndex=originalDescriptors.endIndex.get,originalEndPosition=originalDescriptors.endPosition.get,originalParent=originalDescriptors.parent.get,originalTextGetter=originalDescriptors.text.get,originalEquals=originalDescriptors.equals.value,originalToString=originalDescriptors.toString.value;class HardNode extends BaseNode{constructor(){super(...arguments),this.equals=originalEquals}get parent(){const e=originalParent.call(this);return _shadows[e?.id]||e}get text(){return originalTextGetter.call(_shadows[this.id]||this)}get endIndex(){return this.depth==0?this.tree.codeString.length:originalEndIndex.call(this)}get endPosition(){if(this.depth==0){const e=(this.tree.codeString.match(/\n/g)||[]).length,n=this.tree.codeString.match(new RegExp(`^(?:.*\\r?\\n){${e}}(.*)`))[1].length;return{row:e,column:n}}return originalEndPosition.call(this)}get children(){return this._children||(this._children=originalChildrenGetter.call(this),this.tree._enableSoftNodes&&(this._children=_childrenWithSoftNodes(this,this._children||[],this.tree.codeString))),this._children||[]}set children(e){this._children=e}*traverse(e={_parentNodes:[]}){const{_parentNodes:n}=e,A=[this,...n];if(this.children?.length==0)yield[n,this,"-"];else{yield[n,this,"->"];for(const o of this.children||[])if(o instanceof Node)for(const s of o.traverse({_parentNodes:A}))yield s;else yield[A,o,"-"];yield[n,this,"<-"]}}*iterFlattened({filter:e,includeSelf:n=!1}={}){if(n&&(yield this),typeof e=="function")for(const A of this.children||[]){e(A)&&(yield A);for(const o of A.iterFlattened({filter:e}))yield o}else for(const A of this.children||[]){yield A;for(const o of A.iterFlattened({filter:e}))yield o}}iterFlatten(){throw Error("did you mean iterFlattened instead of iterFlatten?")}flattened({filter:e,includeSelf:n=!1}={}){return[...this.iterFlattened({filter:e,includeSelf:n})]}flatten(){throw Error("did you mean flattened instead of flatten?")}query(e,n){const{matchLimit:A,startPosition:o,endPosition:s,maxResultDepth:a}=n||{},l=a??1/0;let c;try{c=new Query(this.tree.language,e)}catch(u){throw u.name==="QueryError"&&(u.message=`${u.message} in the following query: ${JSON.stringify(e)}`),u}const g=c.matches(this,o||this.startPosition,s||this.endPosition,A),h=g.filter(u=>u.captures.every(f=>f.node.depth-this.depth<=l)),d=this.tree.codeString;for(const u of h)for(const f of u.captures)f.node.children=_childrenWithSoftNodes(f.node,f.node.children,d);return g.filter(u=>u.captures.every(f=>f.node.depth-this.depth<=l))}quickQuery(e,n){const A=_getQueryCaptureTargets(e);let o="_";for(;A.includes(o);)o=`${o}_`;return e=`${e} @${o}`,this.query(e,n).map(a=>{const l=Object.fromEntries(a.captures.map(c=>[c.name,c.node]));return A.length==0?l[o]:(l[0]=l[o],delete l[o],l)})}quickQueryFirst(e,n){return this.quickQuery(e,{...n,matchLimit:1})[0]}get fields(){if(!this._fields){this._fields={};let e=-1;for(let n of this.children||[]){if(n.typeId<=0)continue;e++;const A=this.fieldNameForChild(e);A&&(this._fields[A]=n)}}return this._fields}get fieldNames(){return Object.keys(this.fields)}getQueryForSelf(){let e=this,n=[];for(;e;)e.type&&(e.isNamed&&e.type.match(/^([a-zA-Z0-9.\-_\$]+)$/)?n.push(e.type):n.push(JSON.stringify(e.type))),e=e.parent;return"("+n.reverse().join(" (")+")".repeat(n.length)}asLispString(){return originalToString.call(this)}}const descriptors=Object.getOwnPropertyDescriptors(HardNode.prototype);delete descriptors.constructor;Object.defineProperties(Node.prototype,descriptors);Object.setPrototypeOf(Node.prototype,BaseNode.prototype);const _childrenWithSoftNodes=(r,e,n)=>{if(e?.length>0){const A=[],o=[...e];let s=o.shift();const a=(c,g,h)=>{const{index:d,position:u}=g();let f=d,I=u;const p=c.split(/(?<!\s)(?=\s+)/g);let m=I.column,E=I.row;for(const B of p){if(B.length==0)continue;const Q=f+B.length;if(B.match(/^\s/)){const S=E,w=m;E+=(B.match(/\n/g)||[]).length,S!=E?m=B.split(`
|
|
209
209
|
`).slice(-1)[0].length:m+=B.length,A.push(new WhitespaceNode({tree:r.tree,parent:h,getReferencePoint:g,text:B,_startIndexOffset:f-d,_startRowOffset:S-u.row,_startColOffset:w-u.column,_endIndexOffset:Q-d,_endRowOffset:E-u.row,_endColOffset:m-u.column,children:[]}))}else{const S=m;m+=B.length,A.push(new SoftTextNode({tree:r.tree,parent:h,getReferencePoint:g,text:B,_startIndexOffset:f-d,_startRowOffset:E-u.row,_startColOffset:S-u.column,_endIndexOffset:Q-d,_endRowOffset:E-u.row,_endColOffset:m-u.column,children:[]}))}f=Q}};if(r.startIndex!=s.startIndex){const c=n.slice(r.startIndex,s.startIndex),g=r;a(c,()=>({index:g.startIndex,position:g.startPosition}),r)}A.push(s);let l=s;for(const c of o){if(l.endIndex!=c.startIndex){const g=n.slice(l.endIndex,c.startIndex),h=l;a(g,()=>({index:h.endIndex,position:h.endPosition}),r)}A.push(c),l=c}if(l.endIndex!=r.endIndex){const c=n.slice(l.endIndex,r.endIndex),g=l;a(c,()=>({index:g.endIndex,position:g.endPosition}),r)}return A}};class ExtendedParser extends Parser{constructor(){super(...arguments),this.disableSoftNodes=!1}parse(e,n,A){typeof e=="function"&&(console.warn("When calling .parse() the source code was a function instead of a string. The original tree sitter supports giving a function as a means of supporting edits (see: https://github.com/tree-sitter/tree-sitter/discussions/2553 ).\nHowever, this library supports edits directly (use node.replaceInnards(``))\nThe downside of making edits easy is that .parse() doesn't really accept a function argument. I'm just going to evaluate that function to grab the string once at the beginning. Use tree.codeString if you want to get the full string after a .replaceInnards() call."),e=e(0,{row:0,column:0})||"");let o=null;return o=super.parse.apply(this,[s=>(o?.codeString??e).slice(s),n,A]),o.codeString=e,o._enableSoftNodes=!this.disableSoftNodes,o}}let hasBeenLoaded=!1;async function createParser(r,{disableSoftNodes:e=!1,assetLoad:n}){if(!hasBeenLoaded){hasBeenLoaded=!0;const s={wasmBinary:await n("tree-sitter/web-tree-sitter.wasm")};await Parser.init(s)}const A=new ExtendedParser,o=await Language.load(r);return A.setLanguage(o),A.disableSoftNodes=e,A}const manifest=[{repo:"tree-sitter/tree-sitter",version:"latest",files:["web-tree-sitter.tar.gz/web-tree-sitter.wasm","web-tree-sitter.tar.gz/web-tree-sitter.js"]},{repo:"ggodlewski/tree-sitter-mermaid",version:"latest",files:["tree-sitter-mermaid.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter-grammars/tree-sitter-markdown",version:"latest",files:["tree-sitter-markdown.wasm","tree-sitter-markdown_inline.wasm"],queries:{"highlights.scm":"split_parser/tree-sitter-markdown/queries/highlights.scm","injections.scm":"split_parser/tree-sitter-markdown/queries/injections.scm","highlights-inline.scm":"split_parser/tree-sitter-markdown-inline/queries/highlights.scm","injections-inline.scm":"split_parser/tree-sitter-markdown-inline/queries/injections.scm"}},{repo:"tree-sitter-grammars/tree-sitter-diff",version:"latest",files:["tree-sitter-diff.wasm"],queries:{"highlights.scm":"main/queries/highlights.scm"}},{repo:"tree-sitter-grammars/tree-sitter-xml",version:"latest",files:["tree-sitter-xml.wasm","tree-sitter-dtd.wasm"],queries:{"highlights.scm":"master/queries/xml/highlights.scm","highlights-dtd.scm":"master/queries/dtd/highlights.scm"}},{repo:"tree-sitter/tree-sitter-html",version:"latest",files:["tree-sitter-html.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","injections.scm":"master/queries/injections.scm"}},{repo:"tree-sitter/tree-sitter-css",version:"latest",files:["tree-sitter-css.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter-grammars/tree-sitter-toml",version:"latest",files:["tree-sitter-toml.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter/tree-sitter-json",version:"latest",files:["tree-sitter-json.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter/tree-sitter-regex",version:"latest",files:["tree-sitter-regex.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter/tree-sitter-rust",version:"latest",files:["tree-sitter-rust.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","injections.scm":"master/queries/injections.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter/tree-sitter-typescript",version:"latest",files:["tree-sitter-typescript.wasm","tree-sitter-tsx.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","locals.scm":"master/queries/locals.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter/tree-sitter-java",version:"latest",files:["tree-sitter-java.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter/tree-sitter-javascript",version:"latest",files:["tree-sitter-javascript.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","highlights-jsx.scm":"master/queries/highlights-jsx.scm","highlights-params.scm":"master/queries/highlights-params.scm","injections.scm":"master/queries/injections.scm","locals.scm":"master/queries/locals.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter-grammars/tree-sitter-yaml",files:["tree-sitter-yaml.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}}];function getLangTreeSitter(r){const e=manifest.find(A=>A.repo.endsWith("-"+r));if(!e)throw new Error("No grammar for: "+r);const n=e.repo.split("/")[1];return{lang:r,dir:n,repo:e.repo,files:e.files,queries:e.queries}}function treeToTokens(r,e,n){const A=[];let o=0;const s=g=>{if(g)return n.substring(g.startIndex,g.endIndex)},a=(g,h)=>{const d=A[A.length-1];if(d?.type==="inline"){d.children||(d.children=[]),d.children.push(g),d.content=g.content;return}const u=new Token("inline","",NESTING_SELF_CLOSING);u.info=h,u.level=o,u.children=[g],u.content=u.children.map(f=>f.content||"").join(""),A.push(u)},l=(g,h,d={row:0,column:0})=>{const u=I=>{if(I)return h.substring(I.startIndex,I.endIndex)},f=(I,p)=>{const m=I.split(`
|
|
210
210
|
`);let E=0;for(const B of m){if(E>0){const w=[d.row+p.startPosition?.row+E,d.row+p.endPosition?.row+E,0,0],y=new Token("softbreak","wbr",NESTING_SELF_CLOSING);y.map=w,y.content=`
|
|
211
211
|
`,a(y,"softbreak between text rows")}const Q=[d.row+p.startPosition?.row+E,d.row+p.endPosition?.row+E,d.column+p.startPosition?.column,(+p.endPosition.row==+p.startPosition.row?d.column:0)+p.endPosition?.column],S=new Token("text","",NESTING_SELF_CLOSING);S.map=Q,S.meta="noEscText",S.content=m.length>1?B.replace(/^\s+/,""):B,a(S,"text"),E++}};for(const I of g){const p=[d.row+I.startPosition?.row,d.row+I.endPosition?.row,d.column+I.startPosition?.column,(+I.endPosition.row==+I.startPosition.row?d.column:0)+I.endPosition?.column];if(I.type.length===1){const m=new Token("text","",NESTING_SELF_CLOSING);m.map=p,m.meta="noEscText",m.content=u(I)||"",a(m,"walkInline");continue}switch(I.type){case"block_continuation":case"emphasis_delimiter":case"code_span_delimiter":break;case"text":{const m=u(I)??"";f(m,I)}break;case"latex_block":{const m=I.children.find(B=>B?.type==="latex_span_delimiter"),E=I.children.filter(B=>B?.type!=="latex_span_delimiter").map(B=>u(B)).join("");if(u(m)==="$$"){const B=new Token("fence","pre",NESTING_SELF_CLOSING);B.level=o,B.markup="$$",B.meta="noEscText",B.attrSet("lang","latex"),B.content=E.trim(),A.push(B)}else{const B=new Token("math","",NESTING_SELF_CLOSING);B.attrSet("lang","latex"),B.map=p,B.meta="noEscText",B.content=E,a(B,"latex_block")}}break;case"whitespace":{const m=u(I)||"";if(m===`
|
|
@@ -213,7 +213,7 @@ ${JSON.stringify(o,null,2)}`),new Error("Language.load failed: no language funct
|
|
|
213
213
|
`);break}if(m&&m.match(/^\s+$/)){if(m.endsWith(`
|
|
214
214
|
`)){const E=new Token("hardbreak","wbr",NESTING_SELF_CLOSING);E.map=p,E.meta="noEscText",E.content=m??"",a(E,"whitespace hardbreak")}else{const E=new Token("text","br",NESTING_SELF_CLOSING);E.map=p,E.meta="noEscText",E.content=m??"",a(E,"whitespace space")}break}if(m?.trim().length>0){f(m,I);break}}break;case"shortcut_link":{const m="link",B=new Token(m+"_open","a",NESTING_OPENING),Q=I.children.find(y=>y?.type==="link_destination");B.attrSet("href",u(Q)||"");const S=I.children.find(y=>y?.type==="link_title");S&&B.attrSet("title",u(S)||""),a(B,"shortcut_link"),I.children.filter(y=>y.type==="link_text").forEach(y=>{const D=new Token("text","",NESTING_SELF_CLOSING);D.map=p,D.meta="noEscText",D.content=u(y)??"",a(D,"link_text")});const w=new Token(m+"_close","a",NESTING_CLOSING);a(w,"/shortcut_link")}break;case"inline_link":{const m="link",B=new Token(m+"_open","a",NESTING_OPENING),Q=I.children.find(y=>y.type==="link_destination");B.attrSet("href",Q?.text||"");const S=I.children.find(y=>y.type==="link_title");S&&B.attrSet("title",S.text||""),a(B,"inline_link"),I.children.filter(y=>y.type==="link_text").forEach(y=>{const D=new Token("text","",NESTING_SELF_CLOSING);D.map=p,D.meta="noEscText",D.content=u(y)??"",a(D,"inline_link_txt")});const w=new Token(m+"_close","a",NESTING_CLOSING);a(w,"/inline_link")}break;case"image":{const m="image",B=new Token(m,"img",NESTING_SELF_CLOSING),Q=I.children.find(y=>y.type==="image_description");B.attrSet("alt",Q?.text||"");const S=I.children.find(y=>y.type==="link_destination");B.attrSet("src",S?.text||"");const w=I.children.find(y=>y.type==="link_title");w&&B.attrSet("title",w.text||""),a(B,"image")}break;case"strong_emphasis":{const m=I.children.find(w=>w.type==="emphasis_delimiter"),E=m?.text==="_"?"underline":"strong",B=m?.text==="_"?"u":"strong",Q=new Token(E+"_open",B,NESTING_OPENING);m?.text==="_"&&(Q.markup="__"),a(Q,"strongem"),l(I.children,h);const S=new Token(E+"_close",B,NESTING_CLOSING);u(m)==="_"&&(S.markup="__"),a(S,"/strongem")}break;case"emphasis":{const m=I.children.find(y=>y.type==="emphasis_delimiter"),E=I.children.filter(y=>y.type!=="emphasis_delimiter"),B=m?.text==="_"?"underline":"em",Q=m?.text==="_"?"u":"em",S=new Token(B+"_open",Q,NESTING_OPENING);a(S,"em"),l(E.filter(y=>!!y),h);const w=new Token(B+"_close",Q,NESTING_CLOSING);a(w,"/em")}break;case"strikethrough":{const m="strike",E="strike",B=new Token(m+"_open",E,NESTING_OPENING);a(B,"s"),l(I.children.filter(S=>!!S),h);const Q=new Token(m+"_close",E,NESTING_CLOSING);a(Q,"/s")}break;case"code_span":{const m="code",E="code",B=new Token(m+"_open",E,NESTING_OPENING);a(B,"code"),l(I.children.filter(S=>!!S),h);const Q=new Token(m+"_close",E,NESTING_CLOSING);a(Q,"/code")}break;case"html_tag":{const m="html_block",B=new Token(m,"",NESTING_SELF_CLOSING);B.content=u(I)||"",a(B,"html_block")}break;case"hard_line_break":{const m="hardbreak",B=new Token(m,"br",NESTING_SELF_CLOSING);B.map=p,B.meta="noEscText",B.content=u(I)??"",a(B,"hard_line_break")}break;default:throw console.debug("inline_node",I),new Error(`Unhandled inline node type: ${I.type}`)}}},c=(g,h={tableRowType:"tbody",cellNo:0,cellAlign:[]})=>{if(g){if(g.type==="inline"){const d=s(g);if(!d)throw new Error("!inlineText");const u=e.parse(d);if(!u)throw new Error("!inlineTree");l(u?.rootNode.children,d,g.startPosition);return}if(!g.children||g.children.length===0){if(g.type==="text"||g.type.length===1){const d=new Token("text","",NESTING_SELF_CLOSING);d.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],d.meta="noEscText",d.content=s(g)??"",a(d,"txt2");return}if(g.type==="whitespace"){if(o===0||(s(g)||"").match(/^\n+$/))return;const d=s(g)||"";if(d&&d.match(/^\s+$/)){const u=new Token("text","br",NESTING_SELF_CLOSING);u.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],u.meta="noEscText",u.content=s(g)??"",a(u,"txt3");return}if(d.trim().length>0){const u=new Token("text","",NESTING_SELF_CLOSING);u.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],u.meta="noEscText",u.content=d??"",a(u,"txt4");return}}}switch(g.type){case"block_continuation":break;case"document":case"section":g.children.filter(d=>!!d).forEach(d=>c(d,h));break;case"thematic_break":{const d=new Token("hr","hr",NESTING_SELF_CLOSING);d.level=o,d.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],d.markup=s(g)||"",d.attrSet("margin_before","1"),d.attrSet("margin_after","1"),A.push(d)}break;case"setext_heading":{const d="heading",u=g.children.filter(E=>!!E).find(E=>E.type.startsWith("setext_")&&E.type.endsWith("_underline")),f=u?.type.substring(7,9)||"h1",I=new Token(d+"_open",f,NESTING_OPENING);I.level=o,I.markup=s(u)||"#",I.attrSet("margin_before","1"),A.push(I);const p=g.children.filter(E=>!!E).filter(E=>!E.type.startsWith("setext_"));o++,p.forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",f,NESTING_CLOSING);m.level=o,m.markup=s(u)||"",m.attrSet("margin_after","1"),A.push(m)}break;case"atx_heading":{const d="heading",u=g.children.filter(E=>!!E).find(E=>E.type.startsWith("atx_")&&E.type.endsWith("_marker")),f=u?.type.substring(4,6)||"h1",I=new Token(d+"_open",f,NESTING_OPENING);I.level=o,I.markup=s(u)||"#",I.attrSet("margin_before","1"),A.push(I);const p=[...g.children.filter(E=>!!E)];p.length>0&&p[0].type.endsWith("_marker")&&p.splice(0,1),p.length>0&&p[0].type==="whitespace"&&p.splice(0,1),p.length>0&&p[p.length-1].type==="whitespace"&&p.splice(p.length-1,1),o++,p.forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",f,NESTING_CLOSING);m.level=o,m.attrSet("margin_after","1"),A.push(m)}break;case"minus_metadata":{const d="frontmatter",u="frontmatter",f=new Token(d,u,NESTING_SELF_CLOSING);f.level=o,f.content=s(g)||"",A.push(f)}break;case"fenced_code_block":{const d="fence",f=g.children.filter(E=>!!E).find(E=>E.type==="info_string"),I=new Token(d,"pre",NESTING_SELF_CLOSING);I.meta="noEscText",I.level=o,I.markup="```",f&&I.attrSet("lang",s(f)||"");const m=[...g.children.filter(E=>!!E).filter(E=>E?.type==="code_fence_content")].map(E=>s(E)||"").join("");I.content=m,I.attrSet("margin_before","1"),I.attrSet("margin_after","1"),A.push(I)}break;case"block_quote":{const d="blockquote",u="blockquote",f=new Token(d+"_open",u,NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++,g.children?.filter(p=>!["block_quote_marker"].includes(p.type)).forEach(p=>c(p,h)),o--;const I=new Token(d+"_close",u,NESTING_CLOSING);I.level=o,I.attrSet("margin_after","1"),A.push(I)}break;case"indented_code_block":{const d="code_block",u="code_block",f=new Token(d,u,NESTING_SELF_CLOSING);f.level=o;let I=80;"indent"in g&&(I=g.indent.length);const p=g.text.split(`
|
|
215
215
|
`);for(const E of p){if(E.trim().length===0)continue;const B=E.match(/^ +/);B?I>B[0].length&&(I=B[0].length):I=0}const m=p.map(E=>E.substring(I)).join(`
|
|
216
|
-
`);f.attrSet("indent",""+I),f.content=m,f.attrSet("margin_before","1"),f.attrSet("margin_after","1"),A.push(f)}break;case"paragraph":{const d="paragraph",f=new Token(d+"_open","p",NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++,g.children?.forEach(p=>c(p,h)),o--;const I=new Token(d+"_close","p",NESTING_CLOSING);I.level=o,I.attrSet("margin_after","1"),A.push(I)}break;case"pipe_table_cell":{const d=h.tableRowType==="thead"?"th":"td",u=h.tableRowType==="thead"?"th":"td",f=new Token(d+"_open",u,NESTING_OPENING);f.attrSet("align",h.cellAlign[h.cellNo]||"left"),f.level=o,A.push(f),o++;{const p="paragraph",E=new Token(p+"_open","p",NESTING_OPENING);E.level=o,A.push(E);const B=[...g.children];for(;B.length>0&&B[B.length-1].type==="whitespace";)B.splice(B.length-1,1);if(B.length>0)B.forEach(S=>c(S,h));else{const S=[g.startPosition?.row,g.endPosition?.row,g.startPosition?.column,g.endPosition?.column],w=new Token("text","",NESTING_SELF_CLOSING);w.map=S,w.meta="noEscText",w.content=g.text?.replace(/\s+$/,"")??"",a(w,"txt5")}const Q=new Token(p+"_close","p",NESTING_CLOSING);Q.level=o,A.push(Q)}o--;const I=new Token(d+"_close",u,NESTING_CLOSING);I.level=o,A.push(I),h.cellNo++}break;case"pipe_table_header":case"pipe_table_row":{const f=new Token("tr_open","tr",NESTING_OPENING);f.level=o,A.push(f),o++,g.children.filter(p=>!!p).filter(p=>p.type==="pipe_table_cell").forEach(p=>c(p,h)),o--;const I=new Token("tr_close","tr",NESTING_CLOSING);I.level=o,A.push(I)}break;case"pipe_table":{const d="table",u="table",f=new Token(d+"_open",u,NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++;const I=g.children.filter(Q=>!!Q).filter(Q=>Q.type==="pipe_table_delimiter_row"),p=[];if(I.length>0){const S=I[0].children.filter(w=>!!w).filter(w=>w.type==="pipe_table_delimiter_cell");for(let w=0;w<S.length;w++)S[w].children.filter(D=>!!D).find(D=>D.type==="pipe_table_align_right")?p.push("right"):p.push("left")}const m=g.children.filter(Q=>!!Q).filter(Q=>Q.type==="pipe_table_header");if(m.length>0){const Q="thead",S="thead",w=new Token(Q+"_open",S,NESTING_OPENING);w.level=o,A.push(w),o++,m.forEach(D=>c(D,{...h,tableRowType:"thead",cellNo:0,cellAlign:p})),o--;const y=new Token(Q+"_close",S,NESTING_CLOSING);y.level=o,A.push(y)}const E=g.children?.filter(Q=>Q?.type==="pipe_table_row");E.length>0&&(o++,E.filter(Q=>!!Q).forEach(Q=>c(Q,{...h,tableRowType:"tbody",cellAlign:p})),o--),o--;const B=new Token(d+"_close",u,NESTING_CLOSING);B.level=o,B.attrSet("margin_after","1"),A.push(B)}break;case"list":{let d="bullet_list",u="ul",f="";const I=g.children.filter(E=>!!E).find(E=>E.type==="list_item");if(I){const E=I.children.filter(Q=>!!Q).find(Q=>Q.type.startsWith("task_list_marker")),B=I.children.filter(Q=>!!Q).find(Q=>Q.type.startsWith("list_marker_dot"));E?(d="task_list",u="ul"):B&&(d="ordered_list",u="ol",f=(s(B)||"").trim().replace(".",""))}const p=new Token(d+"_open",u,NESTING_OPENING);p.level=o,p.markup=u==="ol"?".":"*",p.attrSet("symbol",u==="ol"?"1":"*"),f&&p.attrSet("start",f),p.attrSet("margin_before","1"),A.push(p),o++,g.children.filter(E=>!!E).forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",u,NESTING_CLOSING);m.level=o,m.attrSet("margin_after","1"),A.push(m)}break;case"list_item":{const d=g.children.filter(B=>!!B).find(B=>B.type.startsWith("task_list_marker_")),u=g.children.filter(B=>!!B).find(B=>B.type.startsWith("list_marker_"));if(!u)break;let f=d?"task_item":"list_item";const I="li",p=new Token(f+"_open",I,NESTING_OPENING);p.level=o,p.markup=(s(u)||"").trim(),u.type==="list_marker_dot"&&(p.info="",p.markup=""),d&&(d.type,p.attrSet("checked",d.type==="task_list_marker_checked"?"checked":"")),A.push(p),o++,c(g.children.filter(B=>!!B).find(B=>B.type==="paragraph"),h);const m=g.children.filter(B=>!!B).filter(B=>B.type==="list");for(const B of m)c(B,h);o--;const E=new Token(f+"_close",I,NESTING_CLOSING);E.level=o,A.push(E)}break;case"html_block":{const d=new Token("html_block","",NESTING_SELF_CLOSING);d.level=o,d.content=s(g)??"",d.attrSet("margin_before","1"),d.attrSet("margin_after","1"),A.push(d)}break;case"text":{const d=new Token("text","",NESTING_SELF_CLOSING);d.level=o,d.content=s(g)??"",A.push(d)}break;default:throw console.warn(`Unhandled node type: ${g.type}, children: ${g.children.map(d=>d.type).join(", ")}`,{...g,children:void 0,_children:void 0,tree:void 0}),new Error(`Unhandled node type: ${g.type}`)}}};return c(r.rootNode),A}async function sitterTokenizer(r){const e=getLangTreeSitter("markdown"),n=e.files.find(c=>c.indexOf("_inline")===-1),A=e.files.find(c=>c.indexOf("_inline")>-1),o=await r(e.dir+"/"+n),s=await r(e.dir+"/"+A),a=await createParser(o,{assetLoad:r}),l=await createParser(s,{assetLoad:r});return{parse:c=>{const g=a.parse(c);if(!g)throw new Error("Tree is null");return treeToTokens(g,l,c)}}}function listIsTight(r,e){for(;++e<r.length;)if(r[e].type!="list_item_open")return r[e].hidden;return!1}async function mdToPmConverter(r,e,n){const A=new TextDecoder().decode(r);return mdToPmConverterText(A,e,n)}async function mdToPmConverterText(r,e,n){if(!e.assetLoad)throw new Error("No config.assetLoad");const A=await sitterTokenizer(e.assetLoad);return new MarkdownParser(n,A,{frontmatter:{node:"frontmatter"},blockquote:{block:"blockquote"},paragraph:{block:"paragraph"},task_item:{block:"task_item"},task_list:{block:"task_list"},list_item:{block:"list_item"},bullet_list:{block:"bullet_list",getAttrs:(s,a,l)=>({tight:listIsTight(a,l)})},ordered_list:{block:"ordered_list",getAttrs:(s,a,l)=>({start:+s.attrGet("start")||1,tight:listIsTight(a,l)})},dl:{block:"dl"},dt:{block:"dt"},dd:{block:"dd"},heading:{block:"heading",getAttrs:s=>({level:+s.tag.slice(1)})},code_block:{block:"code_block",getAttrs:s=>({lang:s.attrGet("lang")||void 0}),noCloseToken:!0},fence:{block:"code_block",getAttrs:s=>({lang:s.attrGet("lang")||void 0}),noCloseToken:!0},hr:{node:"hr"},image:{node:"image",getAttrs:s=>{const a=s.children?s.children[0]:void 0;return{src:s.attrGet("src"),title:s.attrGet("title")||null,alt:a?.content||null}}},hardbreak:{node:"br"},em:{mark:"em"},underline:{mark:"underline"},strong:{mark:"strong"},strike:{mark:"strike"},link:{mark:"link",getAttrs:s=>({href:s.attrGet("href"),title:s.attrGet("title")||null})},code:{mark:"code"},html_block:{custom:(s,a,l,c)=>{const h=DOMParser$1.fromSchema(n).parse(elementFromString(a.content));s.importNodes(h.children)}},footnote_ref:{block:"code_block"},table:{block:"table"},tr:{block:"table_row"},td:{block:"table_cell"},th:{block:"table_header"},thead:{ignore:!0}}).parse(r)}const addEmptyLines=(r,e)=>{const n=r.doc,A=r.tr,o=r.schema.nodes.br,s=r.schema.nodes.softbreak;function a(l,c,g=0,h=0){let d=0,u=!1;for(let f=0;f<l.length;f++){const I=l[f];if(["image","node_bookmark"].includes(I.type.name)&&f>0){const p=l[f-1];if(p.type!==s)if(p.type===o)A.setNodeMarkup(A.mapping.map(g+d-p.nodeSize),s);else{const m=s.createAndFill();m&&A.insert(A.mapping.map(g+d),m)}}if(I.type.name==="softbreak"){const p=l[f-1];l[f+1],p?.type.name==="softbreak"&&A.delete(A.mapping.map(g+d),A.mapping.map(g+d+I.nodeSize)),p?.textContent?.endsWith(" ")&&A.delete(A.mapping.map(g+d),A.mapping.map(g+d+I.nodeSize)),u||A.delete(A.mapping.map(g+d),A.mapping.map(g+d+I.nodeSize))}else u=!0;a(I.children,I,g+d+1,h+1),d+=I.nodeSize}}return a(n.children),e&&e(A),A.docChanged},fixIdLinks=(r,e)=>{let n=r.tr;const A=r.schema.marks.link;return r.doc.descendants((o,s)=>{o.marks.forEach(a=>{if(a.type===A&&a.attrs.href.startsWith("#")){const c=(o.text||o.textBetween(0,o.content.size)).toLowerCase().replace(/[^\w]+/g," ").trim().replaceAll(" ","-");c&&(n=n.removeMark(s,s+o.nodeSize,A).addMark(s,s+o.nodeSize,A.create({...a.attrs,href:"#"+c})))}})}),e&&e(n),n.docChanged},fixShortCodes=(r,e)=>{const n=r.doc;let A=r.tr;const o=r.schema.nodes.br,s=r.schema.nodes.softbreak;if(!o)throw new Error("No hardbreak type in schema");if(!s)throw new Error("No softbreak type in schema");function a(l,c=0,g=0){l.forEach((h,d,u)=>{if(h.type.name==="shortcode_inline"){if(u>1){const f=l.child(u-1);f.type===o&&(A=A.setNodeMarkup(c+d-f.nodeSize,s))}u<l.childCount-1&&l.child(u+1).type===o&&(A=A.setNodeMarkup(c+d+h.nodeSize,s))}a(h,c+d+1,g+1)})}return a(n),e&&e(A),A.steps.length>0},removeEmptyTags=(r,e)=>{const n=r.schema.nodes.paragraph,A=r.tr;return r.doc.descendants((o,s)=>{if(["paragraph"].includes(o.type.name)){const a=o.children.every(l=>l.isText&&l.textContent==="");(o.childCount===0||a)&&A.deleteRange(A.mapping.map(s),A.mapping.map(s+o.nodeSize))}else if(["heading"].includes(o.type.name)){const a=o.children.find(c=>c.type.name==="node_bookmark"),l=o.children.every(c=>c.isText&&c.textContent===""||c.type.name==="node_bookmark");a&&l?A.setNodeMarkup(A.mapping.map(s),n):(o.childCount===0||l)&&A.deleteRange(A.mapping.map(s),A.mapping.map(s+o.nodeSize))}}),e&&e(A),A.docChanged},removeSuggest=(r,e)=>{const n={},A=r.tr,o=r.doc,s="comment";o.descendants((a,l)=>{if(a.type.name===s&&a.attrs.id){const c=a.attrs.id;n[c]||(n[c]=[]),a.attrs.nesting===NESTING_OPENING$1&&(n[c][0]={node:a,pos:l}),a.attrs.nesting===NESTING_CLOSING$1&&(n[c][1]={node:a,pos:l})}});for(const a in n){const l=n[a][0],c=n[a][1];if(l&&c){const g=l.pos,h=c.pos+c.node.nodeSize;A.replace(A.mapping.map(g),A.mapping.map(h))}}return e&&e(A),A.docChanged},rewriteUrls=r=>async(e,n)=>{if(!r)return!1;const A=e.tr,o=e.schema.marks.link,s=e.schema.nodes.image,a=[],l=[];e.doc.descendants((c,g)=>{c.marks.forEach(h=>{h.type===o&&a.push([h,g,g+c.nodeSize])}),c.type===s&&l.push([c,g])});for(const[c,g,h]of a){const d=c.attrs.href,u={},f=await r(d,{type:"A",dest:"md",setMeta:(I,p)=>{u[I]=p}});if(f!==d||u.mdTemplate){const I=u.mdTemplate;A.removeMark(A.mapping.map(g),A.mapping.map(h),c);const p=e.schema.mark("link",{...c.attrs,href:f,origUrl:d,mdTemplate:I});A.addMark(A.mapping.map(g),A.mapping.map(h),p)}}for(const[c,g]of l){const h=c.attrs.src,d={},u=await r(h,{type:"IMG",dest:"md",setMeta:(f,I)=>{d[f]=I}});if(u!==h||d.mdTemplate){const f=d.mdTemplate;A.setNodeMarkup(A.mapping.map(g),null,{...c.attrs,src:u,origUrl:h,mdTemplate:f})}}return n&&n(A),A.docChanged},trimLines=(r,e)=>{const n=r.doc,A=r.schema,o=r.tr,s=r.schema.nodes.br,a=r.schema.nodes.softbreak,l=r.schema.nodes.paragraph;function c(g,h,d=0,u=0){let f=0;if(h.type.name==="code_block"&&h.textContent.trim())return;function I(m,E){let B=d+E;for(let Q=m-1;Q>=0;Q--){const S=g[Q];if(S?.type.name!=="text")break;const w=S.text||"",y=w.replace(/[ \t\u00A0]+$/,"");if(y!==w){const D=B-S.nodeSize;y.length>0?o.replaceRangeWith(o.mapping.map(D),o.mapping.map(B),A.text(y)):o.replace(o.mapping.map(D),o.mapping.map(B))}else break;B-=S.nodeSize;break}}let p=!1;for(let m=0;m<g.length;m++){const E=g[m];if(E.isText){let B=E.text||"";if(B.match(/^([ \t\u00A0]+)/)&&!p&&l!==h.type){B=B.replace(/^[ \t\u00A0]+/,"");const Q=d+f,S=Q+E.nodeSize;B?o.replaceRangeWith(o.mapping.map(Q),o.mapping.map(S),A.text(B)):o.replace(o.mapping.map(Q),o.mapping.map(S))}B&&(p=!0)}s===E.type&&(I(m,f),m+1<g.length&&(g[m+1].type===s||g[m+1].type===a)&&o.setNodeMarkup(o.mapping.map(d+f),a)),c(E.children,E,d+f+1,u+1),f+=E.nodeSize}I(g.length,f)}return c(n.children,n),e&&e(o),o.docChanged},insertToc=(r,e)=>{const n=r.doc;let A=r.tr;const o=r.schema.nodes.br,s=r.schema.nodes.softbreak;if(!o)throw new Error("No hardbreak type in schema");if(!s)throw new Error("No softbreak type in schema");return n.forEach((a,l,c)=>{if(a.type.name==="bullet_list"&&a.attrs.toc){const g=a.copy(Fragment.from(a.content));A.insert(0,g)}}),e&&e(A),A.steps.length>0},addEnterAfterImage=(r,e)=>{const n=r.tr,A=r.schema.nodes.image,o=r.schema.nodes.br,s=r.schema.nodes.softbreak;function a(l,c=0,g=0){l.forEach((h,d,u)=>{if(h.type!==A)return;const f=l.nodeAt(u+1);if(f?.type===o&&f?.type===s)return;const I=c+d+h.nodeSize;n.insert(n.mapping.map(I),Fragment.from([r.schema.node("softbreak"),r.schema.node("softbreak")])),a(h,c+d+1,g+1)})}return a(r.doc),e&&e(n),n.docChanged},fixParaEnding=(r,e)=>{const n=r.doc,A=r.tr,o=r.schema.nodes.br,s=r.schema.nodes.paragraph;function a(l,c,g=0,h=0){if(c.type===s){let u=c.content.size;for(let f=l.length-1;f>=0;f--){const I=l[f];if(I.type!==o)break;u-=I.nodeSize;const p=g+u,m=p+I.nodeSize;A.replace(A.mapping.map(p),A.mapping.map(m))}return}let d=0;for(let u=0;u<l.length;u++){const f=l[u];a(f.children,f,g+d+1,h+1),d+=f.nodeSize}}return a(n.children,n),e&&e(A),A.docChanged};function getDefaultsPreProcessFilters({urlRewriter:r}){return[insertToc,fixShortCodes,removeSuggest,removeEmptyTags,fixIdLinks,fixParaEnding,trimLines,addEnterAfterImage,addEmptyLines,rewriteUrls(r)]}class ExtensionMarkdown extends Extension{constructor(e={}){super(e),this.config=e,this.name="markdown"}getConverters(e,n){return{"text/x-markdown":{fromDoc:A=>pmToMdConverter(A,{assetLoad:this.editor.config.assetLoad,...this.config,urlRewriter:this.urlToRewriter},n,e),toDoc:A=>mdToPmConverter(A,{assetLoad:this.editor.config.assetLoad,...this.config,urlRewriter:this.urlFromRewriter},n)}}}toMarkdown(e){return extPmToMdConverter(e,{sourceMap:!0},this.editor.schema,this.editor)}async fromMarkdown(e){const A=(await mdToPmConverterText(e,{assetLoad:this.editor.config.assetLoad,...this.config},this.editor.schema)).content;if(A.content.length===1){const o=A.content[0];if(o.type.name==="paragraph")return new Slice(o.content,0,0)}return new Slice(A,0,0)}created(){this.editor.hooks["pm2md.pre"]||(this.editor.hooks["pm2md.pre"]=getDefaultsPreProcessFilters({urlRewriter:this.config.urlRewriter}))}}const SVG="http://www.w3.org/2000/svg",XLINK="http://www.w3.org/1999/xlink",prefix="kb-icon";function hashPath(r){const e=Array.isArray(r)?r.map(A=>typeof A=="string"?A:A.d+(A.fill||"")).join(""):r;let n=0;for(let A=0;A<e.length;A++)n=(n<<5)-n+e.charCodeAt(A)|0;return n.toString(16)}function getIcon(r,e){let n=(r.nodeType==9?r:r.ownerDocument)||document,A=n.createElement("div");if(A.className=prefix,e.path){let{path:o,width:s,height:a}=e,l="pm-icon-"+hashPath(o);n.getElementById(l)||buildSVG(r,l,e);let c=A.appendChild(n.createElementNS(SVG,"svg"));c.style.width=s/a+"em",c.appendChild(n.createElementNS(SVG,"use")).setAttributeNS(XLINK,"href",/([^#]*)/.exec(n.location.toString())[1]+"#"+l)}else if(e.dom)A.appendChild(e.dom.cloneNode(!0));else{let{text:o,css:s}=e;A.appendChild(n.createElement("span")).textContent=o||"",s&&(A.firstChild.style.cssText=s)}return A}function buildSVG(r,e,n){let[A,o]=r.nodeType==9?[r,r.body]:[r.ownerDocument||document,r],s=A.getElementById(prefix+"-collection");s||(s=A.createElementNS(SVG,"svg"),s.id=prefix+"-collection",s.style.display="none",o.insertBefore(s,o.firstChild));let a=A.createElementNS(SVG,"symbol");a.id=e,a.setAttribute("viewBox","0 0 "+n.width+" "+n.height);const l=Array.isArray(n.path)?n.path:[n.path];for(const c of l){let g=a.appendChild(A.createElementNS(SVG,"path"));typeof c=="string"?g.setAttribute("d",c):(g.setAttribute("d",c.d),c.fill&&g.setAttribute("fill",c.fill))}s.appendChild(a)}const icons={selectParentNode:{width:24,height:24,path:"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"},undo:{width:24,height:24,path:"M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"},redo:{width:24,height:24,path:"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"},strong:{width:24,height:24,path:"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"},em:{width:24,height:24,path:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"},underline:{width:24,height:24,path:"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"},code:{width:24,height:24,path:"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"},link:{width:24,height:24,path:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"},bulletList:{width:24,height:24,path:"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"},orderedList:{width:24,height:24,path:"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"},taskList:{width:24,height:24,path:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"},blockquote:{width:24,height:24,path:"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"},type:{width:24,height:24,path:"M5 4v3h5.5v12h3V7H19V4H5z"},table:{width:24,height:24,path:"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z"},image:{width:24,height:24,path:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"},horizontalRule:{width:24,height:24,path:"M4 11h16v2H4z"},heading:{width:24,height:24,path:"M6 4v16h2v-7h8v7h2V4h-2v7H8V4H6z"},strike:{width:24,height:24,path:"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"},highlight:{width:24,height:24,path:["M17.75 7L14 3.25l-10 10V17h3.75l10-10zm2.96-2.96a.996.996 0 0 0 0-1.41L18.37.29a.996.996 0 0 0-1.41 0L15 2.25 18.75 6l1.96-1.96z",{d:"M2 20h20v4H2z",fill:"#FFEB3B"}]},outdent:{width:24,height:24,path:"M3 21h18v-2H3v2zM7 8v8l-4-4 4-4zm4 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z"},superscript:{width:24,height:24,path:"M22 7h-2v1h3v1h-4V7c0-.55.45-1 1-1h2V5h-3V4h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 20h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 6h-2.68l-3.07 4.99h-.12L8.87 6H6.19l4.32 6.73L5.88 20z"},subscript:{width:24,height:24,path:"M22 18h-2v1h3v1h-4v-2c0-.55.45-1 1-1h2v-1h-3v-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 18h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 4h-2.68l-3.07 4.99h-.12L8.87 4H6.19l4.32 6.73L5.88 18z"},alignLeft:{width:24,height:24,path:"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"},alignCenter:{width:24,height:24,path:"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"},alignRight:{width:24,height:24,path:"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"},alignJustify:{width:24,height:24,path:"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z"},folderOpen:{width:24,height:24,path:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"}};class MenuItem{constructor(e){this.spec=e,this.CSS_PREFIX="kb-menu__button"}render(e){let n=this.spec,A=n.render?n.render(e):null;if(!A){if(A=document.createElement("button"),A.setAttribute("type","button"),A.classList.add(this.CSS_PREFIX),n.icon){const s=getIcon(e.root,n.icon);A.appendChild(s),A.classList.add(this.CSS_PREFIX+"--icon-only")}if(n.label){const s=document.createElement("span");s.appendChild(document.createTextNode(translate(e,n.label))),A.appendChild(s),n.icon&&A.classList.remove(this.CSS_PREFIX+"--icon-only")}if(!n.icon&&!n.label)throw new RangeError("MenuItem without icon or label property")}if(n.title){const s=typeof n.title=="function"?n.title(e.state):n.title;A.setAttribute("title",translate(e,s)),A.setAttribute("aria-label",translate(e,s))}return n.class&&A.classList.add(n.class),n.css&&(A.style.cssText+=n.css),A.addEventListener("mousedown",s=>{s.preventDefault(),A.classList.contains(this.CSS_PREFIX+"--disabled")||n.run(e.state,e.dispatch)}),{dom:A,update:s=>{if(n.select){let l=n.select(s);if(A.style.display=l?"":"none",!l)return!1}let a=!0;if(n.enable&&(a=n.enable(s)||!1,setClass(A,this.CSS_PREFIX+"--disabled",!a),A.setAttribute("aria-disabled",(!a).toString())),n.active){let l=a&&n.active(s)||!1;setClass(A,this.CSS_PREFIX+"--active",l),A.setAttribute("aria-pressed",l.toString())}return!0}}}}function translate(r,e){return r._props.translate?r._props.translate(e):e}let lastMenuEvent={time:0,node:null};function markMenuEvent(r){lastMenuEvent.time=Date.now(),lastMenuEvent.node=r.target}function isMenuEvent(r){return Date.now()-100<lastMenuEvent.time&&lastMenuEvent.node&&r.contains(lastMenuEvent.node)}class Dropdown{constructor(e,n={}){this.options=n,this.CSS_PREFIX="kb-dropdown",this.options=n||{},this.content=Array.isArray(e)?e:[e]}render(e){let n=renderDropdownItems(this.content,e),A=e.dom.ownerDocument.defaultView,o=document.createElement("button");if(o.setAttribute("type","button"),o.classList.add(this.CSS_PREFIX+"__label"),this.options.class&&o.classList.add(this.options.class),this.options.css&&o.setAttribute("style",this.options.css),this.options.icon){const u=getIcon(e.root,this.options.icon);o.appendChild(u)}const s=translate(e,this.options.label||"");if(s){const u=document.createElement("span");u.classList.add(this.CSS_PREFIX+"__label-text"),u.textContent=s,o.appendChild(u)}const a=this.options.title?translate(e,this.options.title):s;a&&(o.setAttribute("title",a),o.setAttribute("aria-label",a)),o.setAttribute("aria-haspopup","true"),o.setAttribute("aria-expanded","false");let l=document.createElement("div");l.classList.add(this.CSS_PREFIX),l.appendChild(o);let c=null,g=null,h=()=>{c&&c.close()&&(c=null,A?.removeEventListener("mousedown",g))};o.addEventListener("mousedown",u=>{u.preventDefault(),markMenuEvent(u),c?(h(),l.classList.remove("kb-dropdown--open")):(c=this.expand(l,n.dom),l.classList.add("kb-dropdown--open"),A?.addEventListener("mousedown",g=()=>{isMenuEvent(l)||h()}))});function d(u){let f=n.update(u);return l.style.display=f?"":"none",f}return{dom:l,update:d}}expand(e,n){const A=document.createElement("div");A.classList.add("kb-dropdown__menu"),A.setAttribute("role","menu"),this.options.class&&A.classList.add(this.options.class),n.forEach(a=>A.appendChild(a));let o=!1;function s(){return o?!1:(o=!0,e.removeChild(A),!0)}return e.appendChild(A),{close:s,node:A}}}function renderDropdownItems(r,e){let n=[],A=[];for(let o=0;o<r.length;o++){let{dom:s,update:a}=r[o].render(e);const l=document.createElement("div");l.classList.add("kb-dropdown__item"),l.appendChild(s),n.push(l),A.push(a)}return{dom:n,update:combineUpdates(A,n)}}function combineUpdates(r,e){return n=>{let A=!1;for(let o=0;o<r.length;o++){let s=r[o](n);e[o].style.display=s?"":"none",s&&(A=!0)}return A}}function setClass(r,e,n){n?r.classList.add(e):r.classList.remove(e)}const CSS_PREFIX$1="kb-prompt";function openPrompt(r){let e=document.body.appendChild(document.createElement("div"));e.className=CSS_PREFIX$1+"-backdrop";let n=document.body.appendChild(document.createElement("div"));n.className=CSS_PREFIX$1;let A=()=>{e.parentNode&&e.parentNode.removeChild(e),n.parentNode&&n.parentNode.removeChild(n)};e.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),A()});let o=[];for(let u in r.fields)o.push(r.fields[u].render());let s=document.createElement("button");s.type="submit",s.className=CSS_PREFIX$1+"--submit",s.textContent="OK";let a=document.createElement("button");a.type="button",a.className=CSS_PREFIX$1+"--cancel",a.textContent="Cancel",a.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),A()});let l=n.appendChild(document.createElement("form"));r.title&&(l.appendChild(document.createElement("h5")).textContent=r.title),o.forEach(u=>{l.appendChild(document.createElement("div")).appendChild(u)});let c=l.appendChild(document.createElement("div"));c.className=CSS_PREFIX$1+"__buttons",c.appendChild(s),c.appendChild(document.createTextNode(" ")),c.appendChild(a);let g=n.getBoundingClientRect();n.style.top=(globalThis.innerHeight-g.height)/2+"px",n.style.left=(globalThis.innerWidth-g.width)/2+"px";let h=()=>{let u=getValues(r.fields,o);u&&(A(),r.callback(u))};l.addEventListener("submit",u=>{u.preventDefault(),h()}),l.addEventListener("keydown",u=>{u.keyCode==27?(u.preventDefault(),A()):u.keyCode==13&&!(u.ctrlKey||u.metaKey||u.shiftKey)?(u.preventDefault(),h()):u.keyCode==9&&globalThis.setTimeout(()=>{n.contains(document.activeElement)||A()},500)});let d=l.elements[0];d&&d.focus()}function getValues(r,e){let n=Object.create(null),A=0;for(let o in r){let s=r[o],a=e[A++],l=s.read(a),c=s.validate(l);if(c)return reportInvalid(a,c),null;n[o]=s.clean(l)}return n}function reportInvalid(r,e){let n=r.parentNode,A=n.appendChild(document.createElement("div"));A.style.left=r.offsetLeft+r.offsetWidth+2+"px",A.style.top=r.offsetTop-5+"px",A.className="kb-invalid",A.textContent=e,setTimeout(()=>n.removeChild(A),1500)}class Field{constructor(e){this.options=e}read(e){return e.value}validateType(e){return null}validate(e){return!e&&this.options.required?"Required field":this.validateType(e)||(this.options.validate?this.options.validate(e):null)}clean(e){return this.options.clean?this.options.clean(e):e}}class TextField extends Field{render(){let e=document.createElement("input");return e.type="text",e.placeholder=this.options.label,e.value=this.options.value||"",e.autocomplete="off",e}}class FileField extends Field{constructor(){super(...arguments),this.dataUrl=""}render(){const e=document.createElement("div");e.className=CSS_PREFIX$1+"__file-field";const n=document.createElement("input");n.type="file",n.accept=this.options.accept||"image/*",n.className=CSS_PREFIX$1+"__file-input";const A=document.createElement("label");A.className=CSS_PREFIX$1+"__file-label",A.textContent=this.options.label;const o=document.createElement("span");return o.className=CSS_PREFIX$1+"__file-name",o.textContent="No file selected",this.options.value&&(this.dataUrl=this.options.value,o.textContent="Current image"),n.addEventListener("change",()=>{const s=n.files?.[0];if(s){o.textContent=s.name;const a=new FileReader;a.onload=l=>{this.dataUrl=l.target?.result,e._dataUrl=this.dataUrl},a.readAsDataURL(s)}}),e.appendChild(A),e.appendChild(n),e.appendChild(o),e._dataUrl=this.dataUrl,e}read(e){return e._dataUrl||""}validateType(e){return this.options.required&&!e?"Please select a file":null}}function canInsert(r,e){let n=r.selection.$from;for(let A=n.depth;A>=0;A--){let o=n.index(A);if(n.node(A).canReplaceWith(o,o,e))return!0}return!1}function cmdItem(r,e){let n={label:e.title,run:r};for(let A in e)n[A]=e[A];return!e.enable&&!e.select&&(n[e.enable?"enable":"select"]=A=>r(A)),new MenuItem(n)}function markActive(r,e){let{from:n,$from:A,to:o,empty:s}=r.selection;return s?!!e.isInSet(r.storedMarks||A.marks()):r.doc.rangeHasMark(n,o,e)}function buildMenu(r,e){function n(E,B){let Q={active(S){return markActive(S,E)}};for(let S in B)Q[S]=B[S];return cmdItem(r.commandFactories.toggleMark(E),Q)}function A(E,B){let Q={run(S,w){return r.commandFactories.wrapIn(E,B.attrs)(S,w)},select(S){return r.commandFactories.wrapIn(E,B.attrs)(S)}};for(let S in B)Q[S]=B[S];return new MenuItem(Q)}function o(E,B){return cmdItem(r.commandFactories.wrapInList(E,B.attrs),B)}function s(E,B){let Q=r.commandFactories.setBlockType(E,B.attrs),S={run:Q,enable(w){return Q(w)},active(w){let{$from:y,to:D,node:_}=w.selection;return _?_.hasMarkup(E,B.attrs):D<=y.end()&&y.parent.hasMarkup(E,B.attrs)}};for(let w in B)S[w]=B[w];return new MenuItem(S)}const a=[];a.push(new MenuItem({title:"Load document",icon:icons.folderOpen,run(){const E=document.createElement("input");return E.type="file",E.accept=".odt,application/vnd.oasis.opendocument.text,.md,text/markdown,text/x-markdown",E.onchange=async B=>{const Q=B.target.files?.[0];if(Q)try{const S=await Q.arrayBuffer();let w=Q.type;if(!w||w===""){const y=Q.name.split(".").pop()?.toLowerCase();y==="odt"?w="application/vnd.oasis.opendocument.text":y==="md"&&(w="text/x-markdown")}w?await r.loadDocument(w,new Uint8Array(S)):console.error("Could not determine file type for:",Q.name)}catch(S){console.error("Failed to load document:",S)}},E.click(),!0},enable:()=>!0}));const l=[];l.push(new MenuItem({title:"Undo last change",run:(E,B)=>{const Q=r.commandFactories.undo?.();return Q?Q(E,B):!1},enable:E=>{const B=r.commandFactories.undo?.();return B?B(E):!1},icon:icons.undo})),l.push(new MenuItem({title:"Redo last undone change",run:(E,B)=>{const Q=r.commandFactories.redo?.();return Q?Q(E,B):!1},enable:E=>{const B=r.commandFactories.redo?.();return B?B(E):!1},icon:icons.redo}));const c=[],g=[];if(e.nodes.paragraph&&g.push(s(e.nodes.paragraph,{title:"Change to paragraph",label:"Plain"})),e.nodes.code_block&&g.push(s(e.nodes.code_block,{title:"Change to code block",label:"Code"})),g.length>0&&c.push(new Dropdown(g,{label:"Type",icon:icons.type})),e.nodes.heading){const E=[];for(let B=1;B<=6;B++)E.push(s(e.nodes.heading,{title:"Change to heading "+B,label:"Heading "+B,attrs:{level:B}}));c.push(new Dropdown(E,{label:"Heading",icon:icons.heading}))}const h=[];e.nodes.bullet_list&&h.push(o(e.nodes.bullet_list,{title:"Wrap in bullet list",label:"Bullet List",icon:icons.bulletList})),e.nodes.ordered_list&&h.push(o(e.nodes.ordered_list,{title:"Wrap in ordered list",label:"Ordered List",icon:icons.orderedList})),e.nodes.task_list&&h.push(o(e.nodes.task_list,{title:"Wrap in task list",label:"Task List",icon:icons.taskList})),h.length>0&&c.push(new Dropdown(h,{label:"Lists",icon:icons.bulletList})),c.push(new MenuItem({title:"Lift out of enclosing block",run:()=>r.chain().lift().run(),select:()=>r.can().lift().run(),icon:icons.outdent})),e.nodes.blockquote&&c.push(A(e.nodes.blockquote,{title:"Wrap in block quote",icon:icons.blockquote}));const d=[];if(e.marks.strong&&d.push(new MenuItem({title:"Toggle bold",run:()=>r.chain().toggleStrong().run(),enable:E=>r.can().toggleStrong().run(),icon:icons.strong})),e.marks.em&&d.push(new MenuItem({title:"Toggle italic",run:()=>r.chain().toggleItalic().run(),enable:E=>r.can().toggleItalic().run(),icon:icons.em})),e.marks.strike&&d.push(n(e.marks.strike,{title:"Toggle strikethrough",icon:icons.strike})),e.marks.code&&d.push(n(e.marks.code,{title:"Toggle code font",icon:icons.code})),e.marks.underline&&d.push(new MenuItem({title:"Toggle underline",run:()=>r.chain().toggleUnderline().run(),enable:E=>r.can().toggleUnderline().run(),icon:icons.underline})),e.marks.highlight&&d.push(n(e.marks.highlight,{title:"Toggle highlight",icon:icons.highlight})),e.marks.link){const E=e.marks.link;d.push(new MenuItem({title:"Add or remove link",icon:icons.link,active(B){return markActive(B,E)},enable(B){return!B.selection.empty},run(B,Q){return markActive(B,E)?(r.commandFactories.toggleMark(E)(B,Q),!0):(openPrompt({title:"Create a link",fields:{href:new TextField({label:"Link target",required:!0}),title:new TextField({label:"Title"})},callback(S){r.commandFactories.toggleMark(E,S)(r.view.state,r.view.dispatch),r.view.focus()}}),!0)}}))}const u=[];e.marks.superscript&&u.push(n(e.marks.superscript,{title:"Toggle superscript",icon:icons.superscript})),e.marks.subscript&&u.push(n(e.marks.subscript,{title:"Toggle subscript",icon:icons.subscript}));const f=[];e.nodes.paragraph?.spec?.attrs?.textAlign!==void 0&&(f.push(new MenuItem({title:"Align left",icon:icons.alignLeft,run:()=>r.chain().setTextAlignLeft().run(),enable:()=>r.can().setTextAlignLeft().run()})),f.push(new MenuItem({title:"Align center",icon:icons.alignCenter,run:()=>r.chain().setTextAlignCenter().run(),enable:()=>r.can().setTextAlignCenter().run()})),f.push(new MenuItem({title:"Align right",icon:icons.alignRight,run:()=>r.chain().setTextAlignRight().run(),enable:()=>r.can().setTextAlignRight().run()})),f.push(new MenuItem({title:"Justify",icon:icons.alignJustify,run:()=>r.chain().setTextAlignJustify().run(),enable:()=>r.can().setTextAlignJustify().run()})));const I=[];if(e.nodes.image){const E=e.nodes.image;I.push(new MenuItem({title:"Insert image",icon:icons.image,enable:B=>canInsert(B,E),run(B,Q){let{from:S,to:w}=B.selection,y=null;return B.selection instanceof NodeSelection&&B.selection.node.type==E&&(y=B.selection.node.attrs),openPrompt({title:"Insert image",fields:{src:new FileField({label:"Choose image",required:!0,value:y&&y.src}),title:new TextField({label:"Title",value:y&&y.title}),alt:new TextField({label:"Description",value:y?y.alt:B.doc.textBetween(S,w," ")})},callback(D){r.view.dispatch(r.view.state.tr.replaceSelectionWith(E.createAndFill(D))),r.view.focus()}}),!0}}))}if(e.nodes.hr&&I.push(new MenuItem({title:"Insert horizontal rule",icon:icons.horizontalRule,run:()=>r.chain().setHorizontalRule().run(),enable:E=>r.can().setHorizontalRule().run()})),e.nodes.table){const E=(Q,S)=>new MenuItem({label:Q,enable:()=>r.can()[S]().run(),run:()=>r.chain()[S]().run()}),B=[E("Insert table","insertTable"),E("Insert column before","addColumnBefore"),E("Insert column after","addColumnAfter"),E("Delete column","deleteColumn"),E("Insert row before","addRowBefore"),E("Insert row after","addRowAfter"),E("Delete row","deleteRow"),E("Delete table","deleteTable"),E("Merge cells","mergeCells"),E("Split cell","splitCell"),E("Toggle header column","toggleHeaderColumn"),E("Toggle header row","toggleHeaderRow"),E("Toggle header cells","toggleHeaderCell")];I.push(new Dropdown(B,{label:"Table",icon:icons.table}))}const p=[];return p.push(new MenuItem({title:"Select parent node",run:()=>r.chain().selectParentNode().run(),select:()=>r.can().selectParentNode().run(),icon:icons.selectParentNode})),[a,l,c,d,u,f,I,p].filter(E=>E.length>0)}const CSS_PREFIX="kb-custom-menu",STORAGE_KEY="kb-custom-menu-order",OVERFLOW_BUTTON_WIDTH=48,DRAG_START_DELAY=2e3;class CustomMenuView{constructor(e,n,A){this.editorView=e,this.editor=n,this.content=A,this.pinnedDropdownMenu=null,this.tools=[],this.closeOverflowHandler=null,this.closePinnedDropdownHandler=null,this.keydownHandler=null,this.submenuStack=[],this.pinnedDropdownStack=[],this.resizeObserver=null,this.draggedItem=null,this.dragStartTimer=null,this.isDragging=!1,this.isDraggingFromOverflow=!1,this.dragPlaceholder=null,this.dragGhost=null,this.dragSourceWrapper=null,this.currentOverflowTools=[],this.defaultOrder=[],this.focusedToolbarIndex=-1,this.root=e.root,this.wrapper=document.createElement("div"),this.wrapper.classList.add(CSS_PREFIX+"__wrapper"),this.toolbar=document.createElement("div"),this.toolbar.classList.add(CSS_PREFIX),this.toolbar.setAttribute("role","toolbar"),this.editorContainer=document.createElement("div"),this.editorContainer.classList.add(CSS_PREFIX+"__editor-container"),this.editorContainer.style.height="50vh",this.resizeHandle=document.createElement("div"),this.resizeHandle.classList.add(CSS_PREFIX+"__resize-handle"),this.resizeHandle.innerHTML='<div class="'+CSS_PREFIX+'__resize-handle-bar"></div>',this.wrapper.appendChild(this.toolbar),e.dom.parentNode&&e.dom.parentNode.replaceChild(this.wrapper,e.dom),this.editorContainer.appendChild(e.dom),this.editorContainer.appendChild(this.resizeHandle),this.wrapper.appendChild(this.editorContainer),this.overflowMenu=document.createElement("div"),this.overflowMenu.classList.add(CSS_PREFIX+"__overflow-menu"),this.overflowMenu.style.display="none",this.wrapper.insertBefore(this.overflowMenu,this.editorContainer),this.initializeTools(),this.loadOrderState(),this.setupResize(),this.render(),typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>{this.render()}),this.resizeObserver.observe(this.toolbar)),this.setupKeyboardNavigation()}closeAllMenus(e){if(this.overflowMenu.style.display!=="none"){this.overflowMenu.style.display="none",this.submenuStack=[];const n=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");n&&n.setAttribute("aria-expanded","false")}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[]),e&&e.focus()}getToolbarButtons(){const e=[];this.toolbar.querySelectorAll("."+CSS_PREFIX+"__item").forEach(o=>{const s=o.querySelector("button");s&&e.push(s)});const A=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");return A&&e.push(A),e}setupKeyboardNavigation(){this.keydownHandler=e=>{const n=document.activeElement,A=this.toolbar.contains(n),o=this.overflowMenu.contains(n),s=this.pinnedDropdownMenu?.contains(n);if(e.key==="Escape"){if(s||this.pinnedDropdownMenu){e.preventDefault();const a=this.toolbar.querySelector('[data-last-focused="true"]');this.closeAllMenus(a||void 0);return}if(o||this.overflowMenu.style.display!=="none"){e.preventDefault();const a=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");this.closeAllMenus(a||void 0);return}}if(A&&!o&&!s){const a=this.getToolbarButtons(),l=a.indexOf(n);if(e.key==="ArrowRight"){e.preventDefault();const c=(l+1)%a.length;a[c]?.focus()}else if(e.key==="ArrowLeft"){e.preventDefault();const c=(l-1+a.length)%a.length;a[c]?.focus()}else e.key==="Home"?(e.preventDefault(),a[0]?.focus()):e.key==="End"&&(e.preventDefault(),a[a.length-1]?.focus())}if(o){const a=Array.from(this.overflowMenu.querySelectorAll('button, [role="menuitem"], .'+CSS_PREFIX+"__overflow-item")),l=a.indexOf(n);if(e.key==="ArrowDown"){e.preventDefault();const c=(l+1)%a.length;a[c]?.focus()}else if(e.key==="ArrowUp"){e.preventDefault();const c=(l-1+a.length)%a.length;a[c]?.focus()}}},document.addEventListener("keydown",this.keydownHandler)}initializeTools(){let e=0;this.content.forEach((n,A)=>{n.forEach(o=>{const{dom:s,update:a}=o.render(this.editorView);let l;const c=o;c.options&&c.options.label?l=c.options.label:l=this.extractLabel(s);const g=this.generateStableId(l,s);this.tools.push({id:g,label:l,element:o,order:e++,groupIndex:A})})}),this.defaultOrder=this.tools.map(n=>n.id)}generateStableId(e,n){const A=n.getAttribute("aria-label"),o=n.getAttribute("data-id");if(o)return`tool-${o}`;const s=A||e,a=s.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return a?`tool-${a}`:`tool-${this.simpleHash(s)}`}simpleHash(e){let n=0;for(let A=0;A<e.length;A++){const o=e.charCodeAt(A);n=(n<<5)-n+o,n=n&n}return Math.abs(n).toString(36)}extractLabel(e){const n=e.querySelector("span")?.textContent?.trim();if(n)return n;const A=e.querySelector(".kb-dropdown__label")?.textContent?.trim();if(A)return A;const o=e.getAttribute("aria-label");if(o)return o;const s=e.getAttribute("title");if(s)return s;const a=e.querySelector("svg title")?.textContent?.trim();return a||"Unknown Tool"}loadOrderState(){try{const e=localStorage.getItem(STORAGE_KEY);if(e){const n=JSON.parse(e);this.tools.forEach(A=>{const o=n.indexOf(A.id);o!==-1?A.order=o:A.order=n.length+A.order}),this.tools.sort((A,o)=>A.order-o.order)}}catch(e){console.error("Failed to load order state:",e)}}saveOrderState(){try{const e=this.tools.map(n=>n.id);localStorage.setItem(STORAGE_KEY,JSON.stringify(e))}catch(e){console.error("Failed to save order state:",e)}}hasCustomOrder(){const e=this.tools.map(n=>n.id);return e.length!==this.defaultOrder.length?!0:e.some((n,A)=>n!==this.defaultOrder[A])}resetToDefault(){try{localStorage.removeItem(STORAGE_KEY)}catch(e){console.error("Failed to clear order state:",e)}this.tools.forEach(e=>{const n=this.defaultOrder.indexOf(e.id);n!==-1&&(e.order=n)}),this.tools.sort((e,n)=>e.order-n.order),this.closeAllMenus(),this.render()}createResetButton(e){const n=document.createElement("button");n.type="button",n.classList.add(CSS_PREFIX+"__reset-button"),e?(n.classList.add(CSS_PREFIX+"__reset-button--icon-only"),n.setAttribute("role","button")):n.setAttribute("role","menuitem"),n.setAttribute("tabindex","0"),n.setAttribute("aria-label","Reset toolbar to default order"),n.title="Reset toolbar to default order";const A=`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
216
|
+
`);f.attrSet("indent",""+I),f.content=m,f.attrSet("margin_before","1"),f.attrSet("margin_after","1"),A.push(f)}break;case"paragraph":{const d="paragraph",f=new Token(d+"_open","p",NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++,g.children?.forEach(p=>c(p,h)),o--;const I=new Token(d+"_close","p",NESTING_CLOSING);I.level=o,I.attrSet("margin_after","1"),A.push(I)}break;case"pipe_table_cell":{const d=h.tableRowType==="thead"?"th":"td",u=h.tableRowType==="thead"?"th":"td",f=new Token(d+"_open",u,NESTING_OPENING);f.attrSet("align",h.cellAlign[h.cellNo]||"left"),f.level=o,A.push(f),o++;{const p="paragraph",E=new Token(p+"_open","p",NESTING_OPENING);E.level=o,A.push(E);const B=[...g.children];for(;B.length>0&&B[B.length-1].type==="whitespace";)B.splice(B.length-1,1);if(B.length>0)B.forEach(S=>c(S,h));else{const S=[g.startPosition?.row,g.endPosition?.row,g.startPosition?.column,g.endPosition?.column],w=new Token("text","",NESTING_SELF_CLOSING);w.map=S,w.meta="noEscText",w.content=g.text?.replace(/\s+$/,"")??"",a(w,"txt5")}const Q=new Token(p+"_close","p",NESTING_CLOSING);Q.level=o,A.push(Q)}o--;const I=new Token(d+"_close",u,NESTING_CLOSING);I.level=o,A.push(I),h.cellNo++}break;case"pipe_table_header":case"pipe_table_row":{const f=new Token("tr_open","tr",NESTING_OPENING);f.level=o,A.push(f),o++,g.children.filter(p=>!!p).filter(p=>p.type==="pipe_table_cell").forEach(p=>c(p,h)),o--;const I=new Token("tr_close","tr",NESTING_CLOSING);I.level=o,A.push(I)}break;case"pipe_table":{const d="table",u="table",f=new Token(d+"_open",u,NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++;const I=g.children.filter(Q=>!!Q).filter(Q=>Q.type==="pipe_table_delimiter_row"),p=[];if(I.length>0){const S=I[0].children.filter(w=>!!w).filter(w=>w.type==="pipe_table_delimiter_cell");for(let w=0;w<S.length;w++)S[w].children.filter(D=>!!D).find(D=>D.type==="pipe_table_align_right")?p.push("right"):p.push("left")}const m=g.children.filter(Q=>!!Q).filter(Q=>Q.type==="pipe_table_header");if(m.length>0){const Q="thead",S="thead",w=new Token(Q+"_open",S,NESTING_OPENING);w.level=o,A.push(w),o++,m.forEach(D=>c(D,{...h,tableRowType:"thead",cellNo:0,cellAlign:p})),o--;const y=new Token(Q+"_close",S,NESTING_CLOSING);y.level=o,A.push(y)}const E=g.children?.filter(Q=>Q?.type==="pipe_table_row");E.length>0&&(o++,E.filter(Q=>!!Q).forEach(Q=>c(Q,{...h,tableRowType:"tbody",cellAlign:p})),o--),o--;const B=new Token(d+"_close",u,NESTING_CLOSING);B.level=o,B.attrSet("margin_after","1"),A.push(B)}break;case"list":{let d="bullet_list",u="ul",f="";const I=g.children.filter(E=>!!E).find(E=>E.type==="list_item");if(I){const E=I.children.filter(Q=>!!Q).find(Q=>Q.type.startsWith("task_list_marker")),B=I.children.filter(Q=>!!Q).find(Q=>Q.type.startsWith("list_marker_dot"));E?(d="task_list",u="ul"):B&&(d="ordered_list",u="ol",f=(s(B)||"").trim().replace(".",""))}const p=new Token(d+"_open",u,NESTING_OPENING);p.level=o,p.markup=u==="ol"?".":"*",p.attrSet("symbol",u==="ol"?"1":"*"),f&&p.attrSet("start",f),p.attrSet("margin_before","1"),A.push(p),o++,g.children.filter(E=>!!E).forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",u,NESTING_CLOSING);m.level=o,m.attrSet("margin_after","1"),A.push(m)}break;case"list_item":{const d=g.children.filter(B=>!!B).find(B=>B.type.startsWith("task_list_marker_")),u=g.children.filter(B=>!!B).find(B=>B.type.startsWith("list_marker_"));if(!u)break;let f=d?"task_item":"list_item";const I="li",p=new Token(f+"_open",I,NESTING_OPENING);p.level=o,p.markup=(s(u)||"").trim(),u.type==="list_marker_dot"&&(p.info="",p.markup=""),d&&(d.type,p.attrSet("checked",d.type==="task_list_marker_checked"?"checked":"")),A.push(p),o++,c(g.children.filter(B=>!!B).find(B=>B.type==="paragraph"),h);const m=g.children.filter(B=>!!B).filter(B=>B.type==="list");for(const B of m)c(B,h);o--;const E=new Token(f+"_close",I,NESTING_CLOSING);E.level=o,A.push(E)}break;case"html_block":{const d=new Token("html_block","",NESTING_SELF_CLOSING);d.level=o,d.content=s(g)??"",d.attrSet("margin_before","1"),d.attrSet("margin_after","1"),A.push(d)}break;case"text":{const d=new Token("text","",NESTING_SELF_CLOSING);d.level=o,d.content=s(g)??"",A.push(d)}break;default:throw console.warn(`Unhandled node type: ${g.type}, children: ${g.children.map(d=>d.type).join(", ")}`,{...g,children:void 0,_children:void 0,tree:void 0}),new Error(`Unhandled node type: ${g.type}`)}}};return c(r.rootNode),A}async function sitterTokenizer(r){const e=getLangTreeSitter("markdown"),n=e.files.find(c=>c.indexOf("_inline")===-1),A=e.files.find(c=>c.indexOf("_inline")>-1),o=await r(e.dir+"/"+n),s=await r(e.dir+"/"+A),a=await createParser(o,{assetLoad:r}),l=await createParser(s,{assetLoad:r});return{parse:c=>{const g=a.parse(c);if(!g)throw new Error("Tree is null");return treeToTokens(g,l,c)}}}function listIsTight(r,e){for(;++e<r.length;)if(r[e].type!="list_item_open")return r[e].hidden;return!1}async function mdToPmConverter(r,e,n){const A=new TextDecoder().decode(r);return mdToPmConverterText(A,e,n)}async function mdToPmConverterText(r,e,n){if(!e.assetLoad)throw new Error("No config.assetLoad");const A=await sitterTokenizer(e.assetLoad);return new MarkdownParser(n,A,{frontmatter:{node:"frontmatter"},blockquote:{block:"blockquote"},paragraph:{block:"paragraph"},task_item:{block:"task_item"},task_list:{block:"task_list"},list_item:{block:"list_item"},bullet_list:{block:"bullet_list",getAttrs:(s,a,l)=>({tight:listIsTight(a,l)})},ordered_list:{block:"ordered_list",getAttrs:(s,a,l)=>({start:+s.attrGet("start")||1,tight:listIsTight(a,l)})},dl:{block:"dl"},dt:{block:"dt"},dd:{block:"dd"},heading:{block:"heading",getAttrs:s=>({level:+s.tag.slice(1)})},code_block:{block:"code_block",getAttrs:s=>({lang:s.attrGet("lang")||void 0}),noCloseToken:!0},fence:{block:"code_block",getAttrs:s=>({lang:s.attrGet("lang")||void 0}),noCloseToken:!0},hr:{node:"hr"},image:{node:"image",getAttrs:s=>{const a=s.children?s.children[0]:void 0;return{src:s.attrGet("src"),title:s.attrGet("title")||null,alt:a?.content||null}}},hardbreak:{node:"br"},em:{mark:"em"},underline:{mark:"underline"},strong:{mark:"strong"},strike:{mark:"strike"},link:{mark:"link",getAttrs:s=>({href:s.attrGet("href"),title:s.attrGet("title")||null})},code:{mark:"code"},html_block:{custom:(s,a,l,c)=>{const h=DOMParser$1.fromSchema(n).parse(elementFromString(a.content));s.importNodes(h.children)}},footnote_ref:{block:"code_block"},table:{block:"table"},tr:{block:"table_row"},td:{block:"table_cell"},th:{block:"table_header"},thead:{ignore:!0}}).parse(r)}const addEmptyLines=(r,e)=>{const n=r.doc,A=r.tr,o=r.schema.nodes.br,s=r.schema.nodes.softbreak;function a(l,c,g=0,h=0){let d=0,u=!1;for(let f=0;f<l.length;f++){const I=l[f];if(["image","node_bookmark"].includes(I.type.name)&&f>0){const p=l[f-1];if(p.type!==s)if(p.type===o)A.setNodeMarkup(A.mapping.map(g+d-p.nodeSize),s);else{const m=s.createAndFill();m&&A.insert(A.mapping.map(g+d),m)}}if(I.type.name==="softbreak"){const p=l[f-1];l[f+1],p?.type.name==="softbreak"&&A.delete(A.mapping.map(g+d),A.mapping.map(g+d+I.nodeSize)),p?.textContent?.endsWith(" ")&&A.delete(A.mapping.map(g+d),A.mapping.map(g+d+I.nodeSize)),u||A.delete(A.mapping.map(g+d),A.mapping.map(g+d+I.nodeSize))}else u=!0;a(I.children,I,g+d+1,h+1),d+=I.nodeSize}}return a(n.children),e&&e(A),A.docChanged},fixIdLinks=(r,e)=>{let n=r.tr;const A=r.schema.marks.link;return r.doc.descendants((o,s)=>{o.marks.forEach(a=>{if(a.type===A&&a.attrs.href.startsWith("#")){const c=(o.text||o.textBetween(0,o.content.size)).toLowerCase().replace(/[^\w]+/g," ").trim().replaceAll(" ","-");c&&(n=n.removeMark(s,s+o.nodeSize,A).addMark(s,s+o.nodeSize,A.create({...a.attrs,href:"#"+c})))}})}),e&&e(n),n.docChanged},fixShortCodes=(r,e)=>{const n=r.doc;let A=r.tr;const o=r.schema.nodes.br,s=r.schema.nodes.softbreak;if(!o)throw new Error("No hardbreak type in schema");if(!s)throw new Error("No softbreak type in schema");function a(l,c=0,g=0){l.forEach((h,d,u)=>{if(h.type.name==="shortcode_inline"){if(u>1){const f=l.child(u-1);f.type===o&&(A=A.setNodeMarkup(c+d-f.nodeSize,s))}u<l.childCount-1&&l.child(u+1).type===o&&(A=A.setNodeMarkup(c+d+h.nodeSize,s))}a(h,c+d+1,g+1)})}return a(n),e&&e(A),A.steps.length>0},removeEmptyTags=(r,e)=>{const n=r.schema.nodes.paragraph,A=r.tr;return r.doc.descendants((o,s)=>{if(["paragraph"].includes(o.type.name)){const a=o.children.every(l=>l.isText&&l.textContent==="");(o.childCount===0||a)&&A.deleteRange(A.mapping.map(s),A.mapping.map(s+o.nodeSize))}else if(["heading"].includes(o.type.name)){const a=o.children.find(c=>c.type.name==="node_bookmark"),l=o.children.every(c=>c.isText&&c.textContent===""||c.type.name==="node_bookmark");a&&l?A.setNodeMarkup(A.mapping.map(s),n):(o.childCount===0||l)&&A.deleteRange(A.mapping.map(s),A.mapping.map(s+o.nodeSize))}}),e&&e(A),A.docChanged},removeSuggest=(r,e)=>{const n={},A=r.tr,o=r.doc,s="comment";o.descendants((a,l)=>{if(a.type.name===s&&a.attrs.id){const c=a.attrs.id;n[c]||(n[c]=[]),a.attrs.nesting===NESTING_OPENING$1&&(n[c][0]={node:a,pos:l}),a.attrs.nesting===NESTING_CLOSING$1&&(n[c][1]={node:a,pos:l})}});for(const a in n){const l=n[a][0],c=n[a][1];if(l&&c){const g=l.pos,h=c.pos+c.node.nodeSize;A.replace(A.mapping.map(g),A.mapping.map(h))}}return e&&e(A),A.docChanged},rewriteUrls=r=>async(e,n)=>{if(!r)return!1;const A=e.tr,o=e.schema.marks.link,s=e.schema.nodes.image,a=[],l=[];e.doc.descendants((c,g)=>{c.marks.forEach(h=>{h.type===o&&a.push([h,g,g+c.nodeSize])}),c.type===s&&l.push([c,g])});for(const[c,g,h]of a){const d=c.attrs.href,u={},f=await r(d,{type:"A",dest:"md",setMeta:(I,p)=>{u[I]=p}});if(f!==d||u.mdTemplate){const I=u.mdTemplate;A.removeMark(A.mapping.map(g),A.mapping.map(h),c);const p=e.schema.mark("link",{...c.attrs,href:f,origUrl:d,mdTemplate:I});A.addMark(A.mapping.map(g),A.mapping.map(h),p)}}for(const[c,g]of l){const h=c.attrs.src,d={},u=await r(h,{type:"IMG",dest:"md",setMeta:(f,I)=>{d[f]=I}});if(u!==h||d.mdTemplate){const f=d.mdTemplate;A.setNodeMarkup(A.mapping.map(g),null,{...c.attrs,src:u,origUrl:h,mdTemplate:f})}}return n&&n(A),A.docChanged},trimLines=(r,e)=>{const n=r.doc,A=r.schema,o=r.tr,s=r.schema.nodes.br,a=r.schema.nodes.softbreak,l=r.schema.nodes.paragraph;function c(g,h,d=0,u=0){let f=0;if(h.type.name==="code_block"&&h.textContent.trim())return;function I(m,E){let B=d+E;for(let Q=m-1;Q>=0;Q--){const S=g[Q];if(S?.type.name!=="text")break;const w=S.text||"",y=w.replace(/[ \t\u00A0]+$/,"");if(y!==w){const D=B-S.nodeSize;y.length>0?o.replaceRangeWith(o.mapping.map(D),o.mapping.map(B),A.text(y)):o.replace(o.mapping.map(D),o.mapping.map(B))}else break;B-=S.nodeSize;break}}let p=!1;for(let m=0;m<g.length;m++){const E=g[m];if(E.isText){let B=E.text||"";if(B.match(/^([ \t\u00A0]+)/)&&!p&&l!==h.type){B=B.replace(/^[ \t\u00A0]+/,"");const Q=d+f,S=Q+E.nodeSize;B?o.replaceRangeWith(o.mapping.map(Q),o.mapping.map(S),A.text(B)):o.replace(o.mapping.map(Q),o.mapping.map(S))}B&&(p=!0)}s===E.type&&(I(m,f),m+1<g.length&&(g[m+1].type===s||g[m+1].type===a)&&o.setNodeMarkup(o.mapping.map(d+f),a)),c(E.children,E,d+f+1,u+1),f+=E.nodeSize}I(g.length,f)}return c(n.children,n),e&&e(o),o.docChanged},insertToc=(r,e)=>{const n=r.doc;let A=r.tr;const o=r.schema.nodes.br,s=r.schema.nodes.softbreak;if(!o)throw new Error("No hardbreak type in schema");if(!s)throw new Error("No softbreak type in schema");return n.forEach((a,l,c)=>{if(a.type.name==="bullet_list"&&a.attrs.toc){const g=a.copy(Fragment.from(a.content));A.insert(0,g)}}),e&&e(A),A.steps.length>0},addEnterAfterImage=(r,e)=>{const n=r.tr,A=r.schema.nodes.image,o=r.schema.nodes.br,s=r.schema.nodes.softbreak;function a(l,c=0,g=0){l.forEach((h,d,u)=>{if(h.type!==A)return;const f=l.nodeAt(u+1);if(f?.type===o&&f?.type===s)return;const I=c+d+h.nodeSize;n.insert(n.mapping.map(I),Fragment.from([r.schema.node("softbreak"),r.schema.node("softbreak")])),a(h,c+d+1,g+1)})}return a(r.doc),e&&e(n),n.docChanged},fixParaEnding=(r,e)=>{const n=r.doc,A=r.tr,o=r.schema.nodes.br,s=r.schema.nodes.paragraph;function a(l,c,g=0,h=0){if(c.type===s){let u=c.content.size;for(let f=l.length-1;f>=0;f--){const I=l[f];if(I.type!==o)break;u-=I.nodeSize;const p=g+u,m=p+I.nodeSize;A.replace(A.mapping.map(p),A.mapping.map(m))}return}let d=0;for(let u=0;u<l.length;u++){const f=l[u];a(f.children,f,g+d+1,h+1),d+=f.nodeSize}}return a(n.children,n),e&&e(A),A.docChanged};function getDefaultsPreProcessFilters({urlRewriter:r}){return[insertToc,fixShortCodes,removeSuggest,removeEmptyTags,fixIdLinks,fixParaEnding,trimLines,addEnterAfterImage,addEmptyLines,rewriteUrls(r)]}class ExtensionMarkdown extends Extension{constructor(e={}){super(e),this.config=e,this.name="markdown"}getConverters(e,n){const A={"text/x-markdown":{fromDoc:o=>pmToMdConverter(o,{assetLoad:this.editor.config.assetLoad,...this.config,urlRewriter:this.urlToRewriter},n,e),toDoc:o=>mdToPmConverter(o,{assetLoad:this.editor.config.assetLoad,...this.config,urlRewriter:this.urlFromRewriter},n)}};return A["text/markdown"]=A["text/x-markdown"],A}toMarkdown(e){return extPmToMdConverter(e,{sourceMap:!0},this.editor.schema,this.editor)}async fromMarkdown(e){const A=(await mdToPmConverterText(e,{assetLoad:this.editor.config.assetLoad,...this.config},this.editor.schema)).content;if(A.content.length===1){const o=A.content[0];if(o.type.name==="paragraph")return new Slice(o.content,0,0)}return new Slice(A,0,0)}created(){this.editor.hooks["pm2md.pre"]||(this.editor.schema.topNodeType.name==="doc"?this.editor.hooks["pm2md.pre"]=getDefaultsPreProcessFilters({urlRewriter:this.config.urlRewriter}):this.editor.hooks["pm2md.pre"]=[])}}const SVG="http://www.w3.org/2000/svg",XLINK="http://www.w3.org/1999/xlink",prefix="kb-icon";function hashPath(r){const e=Array.isArray(r)?r.map(A=>typeof A=="string"?A:A.d+(A.fill||"")).join(""):r;let n=0;for(let A=0;A<e.length;A++)n=(n<<5)-n+e.charCodeAt(A)|0;return n.toString(16)}function getIcon(r,e){let n=(r.nodeType==9?r:r.ownerDocument)||document,A=n.createElement("div");if(A.className=prefix,e.path){let{path:o,width:s,height:a}=e,l="pm-icon-"+hashPath(o);n.getElementById(l)||buildSVG(r,l,e);let c=A.appendChild(n.createElementNS(SVG,"svg"));c.style.width=s/a+"em",c.appendChild(n.createElementNS(SVG,"use")).setAttributeNS(XLINK,"href",/([^#]*)/.exec(n.location.toString())[1]+"#"+l)}else if(e.dom)A.appendChild(e.dom.cloneNode(!0));else{let{text:o,css:s}=e;A.appendChild(n.createElement("span")).textContent=o||"",s&&(A.firstChild.style.cssText=s)}return A}function buildSVG(r,e,n){let[A,o]=r.nodeType==9?[r,r.body]:[r.ownerDocument||document,r],s=A.getElementById(prefix+"-collection");s||(s=A.createElementNS(SVG,"svg"),s.id=prefix+"-collection",s.style.display="none",o.insertBefore(s,o.firstChild));let a=A.createElementNS(SVG,"symbol");a.id=e,a.setAttribute("viewBox","0 0 "+n.width+" "+n.height);const l=Array.isArray(n.path)?n.path:[n.path];for(const c of l){let g=a.appendChild(A.createElementNS(SVG,"path"));typeof c=="string"?g.setAttribute("d",c):(g.setAttribute("d",c.d),c.fill&&g.setAttribute("fill",c.fill))}s.appendChild(a)}const icons={selectParentNode:{width:24,height:24,path:"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"},undo:{width:24,height:24,path:"M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"},redo:{width:24,height:24,path:"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"},strong:{width:24,height:24,path:"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"},em:{width:24,height:24,path:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"},underline:{width:24,height:24,path:"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"},code:{width:24,height:24,path:"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"},link:{width:24,height:24,path:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"},bulletList:{width:24,height:24,path:"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"},orderedList:{width:24,height:24,path:"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"},taskList:{width:24,height:24,path:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"},blockquote:{width:24,height:24,path:"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"},type:{width:24,height:24,path:"M5 4v3h5.5v12h3V7H19V4H5z"},table:{width:24,height:24,path:"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z"},image:{width:24,height:24,path:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"},horizontalRule:{width:24,height:24,path:"M4 11h16v2H4z"},heading:{width:24,height:24,path:"M6 4v16h2v-7h8v7h2V4h-2v7H8V4H6z"},strike:{width:24,height:24,path:"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"},highlight:{width:24,height:24,path:["M17.75 7L14 3.25l-10 10V17h3.75l10-10zm2.96-2.96a.996.996 0 0 0 0-1.41L18.37.29a.996.996 0 0 0-1.41 0L15 2.25 18.75 6l1.96-1.96z",{d:"M2 20h20v4H2z",fill:"#FFEB3B"}]},outdent:{width:24,height:24,path:"M3 21h18v-2H3v2zM7 8v8l-4-4 4-4zm4 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z"},superscript:{width:24,height:24,path:"M22 7h-2v1h3v1h-4V7c0-.55.45-1 1-1h2V5h-3V4h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 20h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 6h-2.68l-3.07 4.99h-.12L8.87 6H6.19l4.32 6.73L5.88 20z"},subscript:{width:24,height:24,path:"M22 18h-2v1h3v1h-4v-2c0-.55.45-1 1-1h2v-1h-3v-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 18h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 4h-2.68l-3.07 4.99h-.12L8.87 4H6.19l4.32 6.73L5.88 18z"},alignLeft:{width:24,height:24,path:"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"},alignCenter:{width:24,height:24,path:"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"},alignRight:{width:24,height:24,path:"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"},alignJustify:{width:24,height:24,path:"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z"},folderOpen:{width:24,height:24,path:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"}};class MenuItem{constructor(e){this.spec=e,this.CSS_PREFIX="kb-menu__button"}render(e){let n=this.spec,A=n.render?n.render(e):null;if(!A){if(A=document.createElement("button"),A.setAttribute("type","button"),A.classList.add(this.CSS_PREFIX),n.icon){const s=getIcon(e.root,n.icon);A.appendChild(s),A.classList.add(this.CSS_PREFIX+"--icon-only")}if(n.label){const s=document.createElement("span");s.appendChild(document.createTextNode(translate(e,n.label))),A.appendChild(s),n.icon&&A.classList.remove(this.CSS_PREFIX+"--icon-only")}if(!n.icon&&!n.label)throw new RangeError("MenuItem without icon or label property")}if(n.title){const s=typeof n.title=="function"?n.title(e.state):n.title;A.setAttribute("title",translate(e,s)),A.setAttribute("aria-label",translate(e,s))}return n.class&&A.classList.add(n.class),n.css&&(A.style.cssText+=n.css),A.addEventListener("mousedown",s=>{s.preventDefault(),A.classList.contains(this.CSS_PREFIX+"--disabled")||n.run(e.state,e.dispatch)}),{dom:A,update:s=>{if(n.select){let l=n.select(s);if(A.style.display=l?"":"none",!l)return!1}let a=!0;if(n.enable&&(a=n.enable(s)||!1,setClass(A,this.CSS_PREFIX+"--disabled",!a),A.setAttribute("aria-disabled",(!a).toString())),n.active){let l=a&&n.active(s)||!1;setClass(A,this.CSS_PREFIX+"--active",l),A.setAttribute("aria-pressed",l.toString())}return!0}}}}function translate(r,e){return r._props.translate?r._props.translate(e):e}let lastMenuEvent={time:0,node:null};function markMenuEvent(r){lastMenuEvent.time=Date.now(),lastMenuEvent.node=r.target}function isMenuEvent(r){return Date.now()-100<lastMenuEvent.time&&lastMenuEvent.node&&r.contains(lastMenuEvent.node)}class Dropdown{constructor(e,n={}){this.options=n,this.CSS_PREFIX="kb-dropdown",this.options=n||{},this.content=Array.isArray(e)?e:[e]}render(e){let n=renderDropdownItems(this.content,e),A=e.dom.ownerDocument.defaultView,o=document.createElement("button");if(o.setAttribute("type","button"),o.classList.add(this.CSS_PREFIX+"__label"),this.options.class&&o.classList.add(this.options.class),this.options.css&&o.setAttribute("style",this.options.css),this.options.icon){const u=getIcon(e.root,this.options.icon);o.appendChild(u)}const s=translate(e,this.options.label||"");if(s){const u=document.createElement("span");u.classList.add(this.CSS_PREFIX+"__label-text"),u.textContent=s,o.appendChild(u)}const a=this.options.title?translate(e,this.options.title):s;a&&(o.setAttribute("title",a),o.setAttribute("aria-label",a)),o.setAttribute("aria-haspopup","true"),o.setAttribute("aria-expanded","false");let l=document.createElement("div");l.classList.add(this.CSS_PREFIX),l.appendChild(o);let c=null,g=null,h=()=>{c&&c.close()&&(c=null,A?.removeEventListener("mousedown",g))};o.addEventListener("mousedown",u=>{u.preventDefault(),markMenuEvent(u),c?(h(),l.classList.remove("kb-dropdown--open")):(c=this.expand(l,n.dom),l.classList.add("kb-dropdown--open"),A?.addEventListener("mousedown",g=()=>{isMenuEvent(l)||h()}))});function d(u){let f=n.update(u);return l.style.display=f?"":"none",f}return{dom:l,update:d}}expand(e,n){const A=document.createElement("div");A.classList.add("kb-dropdown__menu"),A.setAttribute("role","menu"),this.options.class&&A.classList.add(this.options.class),n.forEach(a=>A.appendChild(a));let o=!1;function s(){return o?!1:(o=!0,e.removeChild(A),!0)}return e.appendChild(A),{close:s,node:A}}}function renderDropdownItems(r,e){let n=[],A=[];for(let o=0;o<r.length;o++){let{dom:s,update:a}=r[o].render(e);const l=document.createElement("div");l.classList.add("kb-dropdown__item"),l.appendChild(s),n.push(l),A.push(a)}return{dom:n,update:combineUpdates(A,n)}}function combineUpdates(r,e){return n=>{let A=!1;for(let o=0;o<r.length;o++){let s=r[o](n);e[o].style.display=s?"":"none",s&&(A=!0)}return A}}function setClass(r,e,n){n?r.classList.add(e):r.classList.remove(e)}const CSS_PREFIX$1="kb-prompt";function openPrompt(r){let e=document.body.appendChild(document.createElement("div"));e.className=CSS_PREFIX$1+"-backdrop";let n=document.body.appendChild(document.createElement("div"));n.className=CSS_PREFIX$1;let A=()=>{e.parentNode&&e.parentNode.removeChild(e),n.parentNode&&n.parentNode.removeChild(n)};e.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),A()});let o=[];for(let u in r.fields)o.push(r.fields[u].render());let s=document.createElement("button");s.type="submit",s.className=CSS_PREFIX$1+"--submit",s.textContent="OK";let a=document.createElement("button");a.type="button",a.className=CSS_PREFIX$1+"--cancel",a.textContent="Cancel",a.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),A()});let l=n.appendChild(document.createElement("form"));r.title&&(l.appendChild(document.createElement("h5")).textContent=r.title),o.forEach(u=>{l.appendChild(document.createElement("div")).appendChild(u)});let c=l.appendChild(document.createElement("div"));c.className=CSS_PREFIX$1+"__buttons",c.appendChild(s),c.appendChild(document.createTextNode(" ")),c.appendChild(a);let g=n.getBoundingClientRect();n.style.top=(globalThis.innerHeight-g.height)/2+"px",n.style.left=(globalThis.innerWidth-g.width)/2+"px";let h=()=>{let u=getValues(r.fields,o);u&&(A(),r.callback(u))};l.addEventListener("submit",u=>{u.preventDefault(),h()}),l.addEventListener("keydown",u=>{u.keyCode==27?(u.preventDefault(),A()):u.keyCode==13&&!(u.ctrlKey||u.metaKey||u.shiftKey)?(u.preventDefault(),h()):u.keyCode==9&&globalThis.setTimeout(()=>{n.contains(document.activeElement)||A()},500)});let d=l.elements[0];d&&d.focus()}function getValues(r,e){let n=Object.create(null),A=0;for(let o in r){let s=r[o],a=e[A++],l=s.read(a),c=s.validate(l);if(c)return reportInvalid(a,c),null;n[o]=s.clean(l)}return n}function reportInvalid(r,e){let n=r.parentNode,A=n.appendChild(document.createElement("div"));A.style.left=r.offsetLeft+r.offsetWidth+2+"px",A.style.top=r.offsetTop-5+"px",A.className="kb-invalid",A.textContent=e,setTimeout(()=>n.removeChild(A),1500)}class Field{constructor(e){this.options=e}read(e){return e.value}validateType(e){return null}validate(e){return!e&&this.options.required?"Required field":this.validateType(e)||(this.options.validate?this.options.validate(e):null)}clean(e){return this.options.clean?this.options.clean(e):e}}class TextField extends Field{render(){let e=document.createElement("input");return e.type="text",e.placeholder=this.options.label,e.value=this.options.value||"",e.autocomplete="off",e}}class FileField extends Field{constructor(){super(...arguments),this.dataUrl=""}render(){const e=document.createElement("div");e.className=CSS_PREFIX$1+"__file-field";const n=document.createElement("input");n.type="file",n.accept=this.options.accept||"image/*",n.className=CSS_PREFIX$1+"__file-input";const A=document.createElement("label");A.className=CSS_PREFIX$1+"__file-label",A.textContent=this.options.label;const o=document.createElement("span");return o.className=CSS_PREFIX$1+"__file-name",o.textContent="No file selected",this.options.value&&(this.dataUrl=this.options.value,o.textContent="Current image"),n.addEventListener("change",()=>{const s=n.files?.[0];if(s){o.textContent=s.name;const a=new FileReader;a.onload=l=>{this.dataUrl=l.target?.result,e._dataUrl=this.dataUrl},a.readAsDataURL(s)}}),e.appendChild(A),e.appendChild(n),e.appendChild(o),e._dataUrl=this.dataUrl,e}read(e){return e._dataUrl||""}validateType(e){return this.options.required&&!e?"Please select a file":null}}function canInsert(r,e){let n=r.selection.$from;for(let A=n.depth;A>=0;A--){let o=n.index(A);if(n.node(A).canReplaceWith(o,o,e))return!0}return!1}function cmdItem(r,e){let n={label:e.title,run:r};for(let A in e)n[A]=e[A];return!e.enable&&!e.select&&(n[e.enable?"enable":"select"]=A=>r(A)),new MenuItem(n)}function markActive(r,e){let{from:n,$from:A,to:o,empty:s}=r.selection;return s?!!e.isInSet(r.storedMarks||A.marks()):r.doc.rangeHasMark(n,o,e)}function buildMenu(r,e){function n(E,B){let Q={active(S){return markActive(S,E)}};for(let S in B)Q[S]=B[S];return cmdItem(r.commandFactories.toggleMark(E),Q)}function A(E,B){let Q={run(S,w){return r.commandFactories.wrapIn(E,B.attrs)(S,w)},select(S){return r.commandFactories.wrapIn(E,B.attrs)(S)}};for(let S in B)Q[S]=B[S];return new MenuItem(Q)}function o(E,B){return cmdItem(r.commandFactories.wrapInList(E,B.attrs),B)}function s(E,B){let Q=r.commandFactories.setBlockType(E,B.attrs),S={run:Q,enable(w){return Q(w)},active(w){let{$from:y,to:D,node:_}=w.selection;return _?_.hasMarkup(E,B.attrs):D<=y.end()&&y.parent.hasMarkup(E,B.attrs)}};for(let w in B)S[w]=B[w];return new MenuItem(S)}const a=[];a.push(new MenuItem({title:"Load document",icon:icons.folderOpen,run(){const E=document.createElement("input");return E.type="file",E.accept=".odt,application/vnd.oasis.opendocument.text,.md,text/markdown,text/x-markdown",E.onchange=async B=>{const Q=B.target.files?.[0];if(Q)try{const S=await Q.arrayBuffer();let w=Q.type;if(!w||w===""){const y=Q.name.split(".").pop()?.toLowerCase();y==="odt"?w="application/vnd.oasis.opendocument.text":y==="md"&&(w="text/x-markdown")}w?await r.loadDocument(w,new Uint8Array(S)):console.error("Could not determine file type for:",Q.name)}catch(S){console.error("Failed to load document:",S)}},E.click(),!0},enable:()=>!0}));const l=[];l.push(new MenuItem({title:"Undo last change",run:(E,B)=>{const Q=r.commandFactories.undo?.();return Q?Q(E,B):!1},enable:E=>{const B=r.commandFactories.undo?.();return B?B(E):!1},icon:icons.undo})),l.push(new MenuItem({title:"Redo last undone change",run:(E,B)=>{const Q=r.commandFactories.redo?.();return Q?Q(E,B):!1},enable:E=>{const B=r.commandFactories.redo?.();return B?B(E):!1},icon:icons.redo}));const c=[],g=[];if(e.nodes.paragraph&&g.push(s(e.nodes.paragraph,{title:"Change to paragraph",label:"Plain"})),e.nodes.code_block&&g.push(s(e.nodes.code_block,{title:"Change to code block",label:"Code"})),g.length>0&&c.push(new Dropdown(g,{label:"Type",icon:icons.type})),e.nodes.heading){const E=[];for(let B=1;B<=6;B++)E.push(s(e.nodes.heading,{title:"Change to heading "+B,label:"Heading "+B,attrs:{level:B}}));c.push(new Dropdown(E,{label:"Heading",icon:icons.heading}))}const h=[];e.nodes.bullet_list&&h.push(o(e.nodes.bullet_list,{title:"Wrap in bullet list",label:"Bullet List",icon:icons.bulletList})),e.nodes.ordered_list&&h.push(o(e.nodes.ordered_list,{title:"Wrap in ordered list",label:"Ordered List",icon:icons.orderedList})),e.nodes.task_list&&h.push(o(e.nodes.task_list,{title:"Wrap in task list",label:"Task List",icon:icons.taskList})),h.length>0&&c.push(new Dropdown(h,{label:"Lists",icon:icons.bulletList})),c.push(new MenuItem({title:"Lift out of enclosing block",run:()=>r.chain().lift().run(),select:()=>r.can().lift().run(),icon:icons.outdent})),e.nodes.blockquote&&c.push(A(e.nodes.blockquote,{title:"Wrap in block quote",icon:icons.blockquote}));const d=[];if(e.marks.strong&&d.push(new MenuItem({title:"Toggle bold",run:()=>r.chain().toggleStrong().run(),enable:E=>r.can().toggleStrong().run(),icon:icons.strong})),e.marks.em&&d.push(new MenuItem({title:"Toggle italic",run:()=>r.chain().toggleItalic().run(),enable:E=>r.can().toggleItalic().run(),icon:icons.em})),e.marks.strike&&d.push(n(e.marks.strike,{title:"Toggle strikethrough",icon:icons.strike})),e.marks.code&&d.push(n(e.marks.code,{title:"Toggle code font",icon:icons.code})),e.marks.underline&&d.push(new MenuItem({title:"Toggle underline",run:()=>r.chain().toggleUnderline().run(),enable:E=>r.can().toggleUnderline().run(),icon:icons.underline})),e.marks.highlight&&d.push(n(e.marks.highlight,{title:"Toggle highlight",icon:icons.highlight})),e.marks.link){const E=e.marks.link;d.push(new MenuItem({title:"Add or remove link",icon:icons.link,active(B){return markActive(B,E)},enable(B){return!B.selection.empty},run(B,Q){return markActive(B,E)?(r.commandFactories.toggleMark(E)(B,Q),!0):(openPrompt({title:"Create a link",fields:{href:new TextField({label:"Link target",required:!0}),title:new TextField({label:"Title"})},callback(S){r.commandFactories.toggleMark(E,S)(r.view.state,r.view.dispatch),r.view.focus()}}),!0)}}))}const u=[];e.marks.superscript&&u.push(n(e.marks.superscript,{title:"Toggle superscript",icon:icons.superscript})),e.marks.subscript&&u.push(n(e.marks.subscript,{title:"Toggle subscript",icon:icons.subscript}));const f=[];e.nodes.paragraph?.spec?.attrs?.textAlign!==void 0&&(f.push(new MenuItem({title:"Align left",icon:icons.alignLeft,run:()=>r.chain().setTextAlignLeft().run(),enable:()=>r.can().setTextAlignLeft().run()})),f.push(new MenuItem({title:"Align center",icon:icons.alignCenter,run:()=>r.chain().setTextAlignCenter().run(),enable:()=>r.can().setTextAlignCenter().run()})),f.push(new MenuItem({title:"Align right",icon:icons.alignRight,run:()=>r.chain().setTextAlignRight().run(),enable:()=>r.can().setTextAlignRight().run()})),f.push(new MenuItem({title:"Justify",icon:icons.alignJustify,run:()=>r.chain().setTextAlignJustify().run(),enable:()=>r.can().setTextAlignJustify().run()})));const I=[];if(e.nodes.image){const E=e.nodes.image;I.push(new MenuItem({title:"Insert image",icon:icons.image,enable:B=>canInsert(B,E),run(B,Q){let{from:S,to:w}=B.selection,y=null;return B.selection instanceof NodeSelection&&B.selection.node.type==E&&(y=B.selection.node.attrs),openPrompt({title:"Insert image",fields:{src:new FileField({label:"Choose image",required:!0,value:y&&y.src}),title:new TextField({label:"Title",value:y&&y.title}),alt:new TextField({label:"Description",value:y?y.alt:B.doc.textBetween(S,w," ")})},callback(D){r.view.dispatch(r.view.state.tr.replaceSelectionWith(E.createAndFill(D))),r.view.focus()}}),!0}}))}if(e.nodes.hr&&I.push(new MenuItem({title:"Insert horizontal rule",icon:icons.horizontalRule,run:()=>r.chain().setHorizontalRule().run(),enable:E=>r.can().setHorizontalRule().run()})),e.nodes.table){const E=(Q,S)=>new MenuItem({label:Q,enable:()=>r.can()[S]().run(),run:()=>r.chain()[S]().run()}),B=[E("Insert table","insertTable"),E("Insert column before","addColumnBefore"),E("Insert column after","addColumnAfter"),E("Delete column","deleteColumn"),E("Insert row before","addRowBefore"),E("Insert row after","addRowAfter"),E("Delete row","deleteRow"),E("Delete table","deleteTable"),E("Merge cells","mergeCells"),E("Split cell","splitCell"),E("Toggle header column","toggleHeaderColumn"),E("Toggle header row","toggleHeaderRow"),E("Toggle header cells","toggleHeaderCell")];I.push(new Dropdown(B,{label:"Table",icon:icons.table}))}const p=[];return p.push(new MenuItem({title:"Select parent node",run:()=>r.chain().selectParentNode().run(),select:()=>r.can().selectParentNode().run(),icon:icons.selectParentNode})),[a,l,c,d,u,f,I,p].filter(E=>E.length>0)}const CSS_PREFIX="kb-custom-menu",STORAGE_KEY="kb-custom-menu-order",OVERFLOW_BUTTON_WIDTH=48,DRAG_START_DELAY=2e3;class CustomMenuView{constructor(e,n,A){this.editorView=e,this.editor=n,this.content=A,this.pinnedDropdownMenu=null,this.tools=[],this.closeOverflowHandler=null,this.closePinnedDropdownHandler=null,this.keydownHandler=null,this.submenuStack=[],this.pinnedDropdownStack=[],this.resizeObserver=null,this.draggedItem=null,this.dragStartTimer=null,this.isDragging=!1,this.isDraggingFromOverflow=!1,this.dragPlaceholder=null,this.dragGhost=null,this.dragSourceWrapper=null,this.currentOverflowTools=[],this.defaultOrder=[],this.focusedToolbarIndex=-1,this.root=e.root,this.wrapper=document.createElement("div"),this.wrapper.classList.add(CSS_PREFIX+"__wrapper"),this.toolbar=document.createElement("div"),this.toolbar.classList.add(CSS_PREFIX),this.toolbar.setAttribute("role","toolbar"),this.editorContainer=document.createElement("div"),this.editorContainer.classList.add(CSS_PREFIX+"__editor-container"),this.editorContainer.style.height="50vh",this.resizeHandle=document.createElement("div"),this.resizeHandle.classList.add(CSS_PREFIX+"__resize-handle"),this.resizeHandle.innerHTML='<div class="'+CSS_PREFIX+'__resize-handle-bar"></div>',this.wrapper.appendChild(this.toolbar),e.dom.parentNode&&e.dom.parentNode.replaceChild(this.wrapper,e.dom),this.editorContainer.appendChild(e.dom),this.editorContainer.appendChild(this.resizeHandle),this.wrapper.appendChild(this.editorContainer),this.overflowMenu=document.createElement("div"),this.overflowMenu.classList.add(CSS_PREFIX+"__overflow-menu"),this.overflowMenu.style.display="none",this.wrapper.insertBefore(this.overflowMenu,this.editorContainer),this.initializeTools(),this.loadOrderState(),this.setupResize(),this.render(),typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>{this.render()}),this.resizeObserver.observe(this.toolbar)),this.setupKeyboardNavigation()}closeAllMenus(e){if(this.overflowMenu.style.display!=="none"){this.overflowMenu.style.display="none",this.submenuStack=[];const n=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");n&&n.setAttribute("aria-expanded","false")}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[]),e&&e.focus()}getToolbarButtons(){const e=[];this.toolbar.querySelectorAll("."+CSS_PREFIX+"__item").forEach(o=>{const s=o.querySelector("button");s&&e.push(s)});const A=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");return A&&e.push(A),e}setupKeyboardNavigation(){this.keydownHandler=e=>{const n=document.activeElement,A=this.toolbar.contains(n),o=this.overflowMenu.contains(n),s=this.pinnedDropdownMenu?.contains(n);if(e.key==="Escape"){if(s||this.pinnedDropdownMenu){e.preventDefault();const a=this.toolbar.querySelector('[data-last-focused="true"]');this.closeAllMenus(a||void 0);return}if(o||this.overflowMenu.style.display!=="none"){e.preventDefault();const a=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");this.closeAllMenus(a||void 0);return}}if(A&&!o&&!s){const a=this.getToolbarButtons(),l=a.indexOf(n);if(e.key==="ArrowRight"){e.preventDefault();const c=(l+1)%a.length;a[c]?.focus()}else if(e.key==="ArrowLeft"){e.preventDefault();const c=(l-1+a.length)%a.length;a[c]?.focus()}else e.key==="Home"?(e.preventDefault(),a[0]?.focus()):e.key==="End"&&(e.preventDefault(),a[a.length-1]?.focus())}if(o){const a=Array.from(this.overflowMenu.querySelectorAll('button, [role="menuitem"], .'+CSS_PREFIX+"__overflow-item")),l=a.indexOf(n);if(e.key==="ArrowDown"){e.preventDefault();const c=(l+1)%a.length;a[c]?.focus()}else if(e.key==="ArrowUp"){e.preventDefault();const c=(l-1+a.length)%a.length;a[c]?.focus()}}},document.addEventListener("keydown",this.keydownHandler)}initializeTools(){let e=0;this.content.forEach((n,A)=>{n.forEach(o=>{const{dom:s,update:a}=o.render(this.editorView);let l;const c=o;c.options&&c.options.label?l=c.options.label:l=this.extractLabel(s);const g=this.generateStableId(l,s);this.tools.push({id:g,label:l,element:o,order:e++,groupIndex:A})})}),this.defaultOrder=this.tools.map(n=>n.id)}generateStableId(e,n){const A=n.getAttribute("aria-label"),o=n.getAttribute("data-id");if(o)return`tool-${o}`;const s=A||e,a=s.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return a?`tool-${a}`:`tool-${this.simpleHash(s)}`}simpleHash(e){let n=0;for(let A=0;A<e.length;A++){const o=e.charCodeAt(A);n=(n<<5)-n+o,n=n&n}return Math.abs(n).toString(36)}extractLabel(e){const n=e.querySelector("span")?.textContent?.trim();if(n)return n;const A=e.querySelector(".kb-dropdown__label")?.textContent?.trim();if(A)return A;const o=e.getAttribute("aria-label");if(o)return o;const s=e.getAttribute("title");if(s)return s;const a=e.querySelector("svg title")?.textContent?.trim();return a||"Unknown Tool"}loadOrderState(){try{const e=localStorage.getItem(STORAGE_KEY);if(e){const n=JSON.parse(e);this.tools.forEach(A=>{const o=n.indexOf(A.id);o!==-1?A.order=o:A.order=n.length+A.order}),this.tools.sort((A,o)=>A.order-o.order)}}catch(e){console.error("Failed to load order state:",e)}}saveOrderState(){try{const e=this.tools.map(n=>n.id);localStorage.setItem(STORAGE_KEY,JSON.stringify(e))}catch(e){console.error("Failed to save order state:",e)}}hasCustomOrder(){const e=this.tools.map(n=>n.id);return e.length!==this.defaultOrder.length?!0:e.some((n,A)=>n!==this.defaultOrder[A])}resetToDefault(){try{localStorage.removeItem(STORAGE_KEY)}catch(e){console.error("Failed to clear order state:",e)}this.tools.forEach(e=>{const n=this.defaultOrder.indexOf(e.id);n!==-1&&(e.order=n)}),this.tools.sort((e,n)=>e.order-n.order),this.closeAllMenus(),this.render()}createResetButton(e){const n=document.createElement("button");n.type="button",n.classList.add(CSS_PREFIX+"__reset-button"),e?(n.classList.add(CSS_PREFIX+"__reset-button--icon-only"),n.setAttribute("role","button")):n.setAttribute("role","menuitem"),n.setAttribute("tabindex","0"),n.setAttribute("aria-label","Reset toolbar to default order"),n.title="Reset toolbar to default order";const A=`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
217
217
|
<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/>
|
|
218
218
|
<path d="M3 3v5h5"/>
|
|
219
219
|
</svg>`;return e?n.innerHTML=A:n.innerHTML=`${A}<span>Reset to Default</span>`,n.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this.resetToDefault()}),n.addEventListener("keydown",o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),o.stopPropagation(),this.resetToDefault())}),n}showSubmenu(e){const n=e.element;if(!n.content)return;const A=n.content.map((o,s)=>{const{dom:a}=o.render(this.editorView);let l;const c=o;return c.options&&c.options.label?l=c.options.label:l=this.extractLabel(a),{id:`${e.id}-sub-${s}`,label:l,element:o,isPinned:!1}});this.submenuStack.push({title:e.label,tools:A}),this.renderOverflowMenu()}goBack(){this.submenuStack.pop(),this.renderOverflowMenu()}showPinnedDropdown(e,n){if(this.overflowMenu.style.display!=="none"){this.overflowMenu.style.display="none",this.submenuStack=[];const s=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");s&&s.setAttribute("aria-expanded","false")}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null),this.toolbar.querySelectorAll("[data-last-focused]").forEach(s=>{s.removeAttribute("data-last-focused")}),n.setAttribute("data-last-focused","true");const A=e.element;if(!A.content)return;const o=A.content.map((s,a)=>{const{dom:l}=s.render(this.editorView);let c;const g=s;return g.options&&g.options.label?c=g.options.label:c=this.extractLabel(l),{id:`${e.id}-sub-${a}`,label:c,element:s,isPinned:!1}});this.pinnedDropdownStack=[{title:e.label,tools:o,rootTool:e}],this.renderPinnedDropdown(n)}pinnedDropdownGoBack(){if(this.pinnedDropdownStack.pop(),this.pinnedDropdownStack.length===0){this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null);return}const e=this.toolbar.querySelector(`[data-tool-id="${this.pinnedDropdownStack[0].rootTool.id}"]`);e&&this.renderPinnedDropdown(e)}pinnedDropdownShowSubmenu(e,n){const A=e.element;if(!A.content)return;const o=A.content.map((s,a)=>{const{dom:l}=s.render(this.editorView);let c;const g=s;return g.options&&g.options.label?c=g.options.label:c=this.extractLabel(l),{id:`${e.id}-sub-${a}`,label:c,element:s,isPinned:!1}});this.pinnedDropdownStack.push({title:e.label,tools:o,rootTool:this.pinnedDropdownStack[0].rootTool}),this.renderPinnedDropdown(n)}renderPinnedDropdown(e){this.pinnedDropdownMenu&&this.pinnedDropdownMenu.remove();const n=this.pinnedDropdownStack[this.pinnedDropdownStack.length-1],A=this.pinnedDropdownStack.length>1;this.pinnedDropdownMenu=document.createElement("div"),this.pinnedDropdownMenu.classList.add(CSS_PREFIX+"__pinned-dropdown"),this.pinnedDropdownMenu.setAttribute("role","menu"),this.pinnedDropdownMenu.setAttribute("aria-label",n.title);const o=e.getBoundingClientRect();this.pinnedDropdownMenu.style.position="absolute",this.pinnedDropdownMenu.style.top=`${o.bottom+4}px`,this.pinnedDropdownMenu.style.left=`${o.left}px`,this.pinnedDropdownMenu.style.zIndex="1000";const s=document.createElement("div");if(s.classList.add(CSS_PREFIX+"__overflow-content"),A){const l=document.createElement("div");l.classList.add(CSS_PREFIX+"__overflow-submenu-header");const c=document.createElement("button");c.type="button",c.classList.add(CSS_PREFIX+"__overflow-back-button"),c.setAttribute("aria-label","Go back to "+n.title),c.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 19l-7-7 7-7"/></svg>',c.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.pinnedDropdownGoBack()});const g=document.createElement("span");g.classList.add(CSS_PREFIX+"__overflow-submenu-title"),g.textContent=n.title,l.appendChild(c),l.appendChild(g),s.appendChild(l)}n.tools.forEach(l=>{const c=l.element.content!==void 0,g=document.createElement("div");if(g.classList.add(CSS_PREFIX+"__overflow-item"),g.setAttribute("data-tool-id",l.id),g.setAttribute("role","menuitem"),g.setAttribute("tabindex","0"),c){const h=document.createElement("span");h.classList.add(CSS_PREFIX+"__overflow-item-label"),h.textContent=l.label,g.appendChild(h);const d=document.createElement("span");d.classList.add(CSS_PREFIX+"__overflow-item-chevron"),d.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5l7 7-7 7"/></svg>',g.appendChild(d),g.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.pinnedDropdownShowSubmenu(l,e)})}else{const{dom:h}=l.element.render(this.editorView);h.querySelectorAll("span").forEach(f=>{const I=f.closest(".kb-icon")!==null,p=f.parentElement===h;f.textContent&&f.textContent.trim()&&!I&&p&&!f.querySelector("svg")&&!f.classList.contains("kb-icon")&&(f.style.display="none")});const u=document.createElement("span");u.classList.add(CSS_PREFIX+"__overflow-item-label"),u.textContent=l.label,g.appendChild(h),g.appendChild(u),g.addEventListener("mousedown",f=>{if(f.target!==h){f.preventDefault();const I=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});h.dispatchEvent(I)}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[])})}s.appendChild(g)}),this.pinnedDropdownMenu.appendChild(s),document.body.appendChild(this.pinnedDropdownMenu);const a=this.editorView.dom.ownerDocument||document;setTimeout(()=>{this.closePinnedDropdownHandler&&a.removeEventListener("click",this.closePinnedDropdownHandler),this.closePinnedDropdownHandler=l=>{const c=l.target;this.pinnedDropdownMenu&&!this.pinnedDropdownMenu.contains(c)&&!e.contains(c)&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[],this.closePinnedDropdownHandler&&a.removeEventListener("click",this.closePinnedDropdownHandler))},a.addEventListener("click",this.closePinnedDropdownHandler)},0)}renderOverflowMenu(){this.overflowMenu.innerHTML="",this.overflowMenu.setAttribute("role","menu"),this.overflowMenu.setAttribute("aria-label","More tools");const e=this.submenuStack.length>0,n=e?this.submenuStack[this.submenuStack.length-1]:null,A=document.createElement("div");if(A.classList.add(CSS_PREFIX+"__overflow-content"),e||A.classList.add(CSS_PREFIX+"__overflow-content--grid"),e&&n){const o=document.createElement("div");o.classList.add(CSS_PREFIX+"__overflow-submenu-header");const s=document.createElement("button");s.type="button",s.classList.add(CSS_PREFIX+"__overflow-back-button"),s.setAttribute("aria-label","Go back to previous menu"),s.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 19l-7-7 7-7"/></svg>',s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),this.goBack()});const a=document.createElement("span");a.classList.add(CSS_PREFIX+"__overflow-submenu-title"),a.textContent=n.title,o.appendChild(s),o.appendChild(a),A.appendChild(o),n.tools.forEach(l=>{const c=l.element.content!==void 0,g=document.createElement("div");if(g.classList.add(CSS_PREFIX+"__overflow-item"),g.setAttribute("role","menuitem"),g.setAttribute("tabindex","0"),c){g.setAttribute("aria-haspopup","true");const h=document.createElement("span");h.classList.add(CSS_PREFIX+"__overflow-item-label"),h.textContent=l.label,g.appendChild(h);const d=document.createElement("span");d.classList.add(CSS_PREFIX+"__overflow-item-chevron"),d.setAttribute("aria-hidden","true"),d.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5l7 7-7 7"/></svg>',g.appendChild(d);const u=f=>{f.preventDefault(),f.stopPropagation(),this.showSubmenu(l)};g.addEventListener("click",u),g.addEventListener("keydown",f=>{(f.key==="Enter"||f.key===" ")&&u(f)})}else{const{dom:h,update:d}=l.element.render(this.editorView),u=h.querySelector("span");u&&(u.style.display="none");const f=document.createElement("span");f.classList.add(CSS_PREFIX+"__overflow-item-label"),f.textContent=l.label,g.appendChild(h),g.appendChild(f),g.addEventListener("mousedown",I=>{if(I.target!==h){I.preventDefault();const p=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});h.dispatchEvent(p)}}),g.addEventListener("keydown",I=>{if(I.key==="Enter"||I.key===" "){I.preventDefault();const p=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});h.dispatchEvent(p)}})}A.appendChild(g)})}else this.currentOverflowTools.forEach(s=>{if(!s.label||s.label.trim()===""||s.label==="Unknown Tool")return;const a=s.element.content!==void 0,l=document.createElement("div");if(l.classList.add(CSS_PREFIX+"__overflow-item"),l.classList.add(CSS_PREFIX+"__overflow-item--grid"),l.setAttribute("title",s.label),l.setAttribute("role","menuitem"),l.setAttribute("tabindex","0"),l.setAttribute("aria-label",s.label),a){l.classList.add(CSS_PREFIX+"__overflow-item--dropdown"),l.setAttribute("aria-haspopup","true");const c=document.createElement("button");c.type="button",c.classList.add("kb-menu__button"),c.setAttribute("tabindex","-1"),c.setAttribute("aria-hidden","true");const g=s.element;if(g.options?.icon){const d=getIcon(this.root,g.options.icon);c.appendChild(d)}l.appendChild(c);const h=document.createElement("span");h.classList.add(CSS_PREFIX+"__overflow-item-indicator"),h.setAttribute("aria-hidden","true"),l.appendChild(h),l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),this.showSubmenu(s)}),l.addEventListener("keydown",d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),d.stopPropagation(),this.showSubmenu(s))})}else{const{dom:c,update:g}=s.element.render(this.editorView);c.querySelectorAll("span").forEach(d=>{!(d.closest(".kb-icon")!==null)&&!d.querySelector("svg")&&(d.style.display="none")}),c.style.pointerEvents="none",l.appendChild(c),l.dataset.hasButton="true",l._buttonDom=c,l.addEventListener("keydown",d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),this.closeAllMenus(),requestAnimationFrame(()=>{const u=s.element;u.spec&&typeof u.spec.run=="function"&&u.spec.run(this.editorView.state,this.editorView.dispatch)}))})}!e&&!a&&this.setupOverflowDragHandlers(l,s),A.appendChild(l)});if(this.overflowMenu.appendChild(A),!e&&this.hasCustomOrder()){const o=document.createElement("div");o.classList.add(CSS_PREFIX+"__overflow-footer");const s=this.createResetButton(!1);o.appendChild(s),this.overflowMenu.appendChild(o)}}render(){if(this.isDragging)return;this.toolbar.innerHTML="",this.overflowMenu.innerHTML="";const n=(this.toolbar.offsetWidth||this.wrapper.offsetWidth)-OVERFLOW_BUTTON_WIDTH-16,A=[];this.tools.forEach(d=>{const u=document.createElement("span");if(u.classList.add(CSS_PREFIX+"__item"),u.setAttribute("data-tool-id",d.id),u.setAttribute("draggable","false"),d.element.content!==void 0){const{dom:p}=d.element.render(this.editorView),m=p.querySelector(".kb-dropdown__content");m&&(m.style.display="none"),u.appendChild(p)}else{const{dom:p}=d.element.render(this.editorView);u.appendChild(p)}this.toolbar.appendChild(u);const I=u.getBoundingClientRect().width;A.push({tool:d,wrapper:u,width:I})});const o=4,s=9;let a=0,l;const c=[],g=[];for(const d of A){let u=0;c.length>0&&(u+=o,l!==void 0&&d.tool.groupIndex!==l&&(u+=s+o)),a+u+d.width<=n?(c.push(d),a+=u+d.width,l=d.tool.groupIndex):g.push(d)}this.toolbar.innerHTML="";let h;if(c.forEach(({tool:d,wrapper:u})=>{if(h!==void 0&&d.groupIndex!==h){const I=document.createElement("div");I.classList.add(CSS_PREFIX+"__separator"),this.toolbar.appendChild(I)}if(h=d.groupIndex,d.element.content!==void 0){const I=u.querySelector("button"),p=u.querySelector(".kb-dropdown__label"),m=B=>{if(this.isDragging){B.preventDefault(),B.stopPropagation(),B.stopImmediatePropagation();return}B.preventDefault(),B.stopPropagation(),B.stopImmediatePropagation(),this.showPinnedDropdown(d,u)},E=B=>{B.stopImmediatePropagation(),this.isDragging&&B.stopPropagation()};I&&(I.addEventListener("click",m,{capture:!0}),I.addEventListener("mousedown",E,{capture:!0})),p&&(p.addEventListener("click",m,{capture:!0}),p.addEventListener("mousedown",E,{capture:!0}))}this.setupDragHandlers(u,d),this.toolbar.appendChild(u)}),this.currentOverflowTools=g.map(d=>d.tool),this.currentOverflowTools.length>0){const d=document.createElement("div");d.classList.add(CSS_PREFIX+"__separator"),this.toolbar.appendChild(d)}if(this.currentOverflowTools.length>0){const d=document.createElement("button");d.type="button",d.className=CSS_PREFIX+"__overflow-toggle",d.setAttribute("aria-haspopup","menu"),d.setAttribute("aria-expanded","false"),d.setAttribute("aria-label","More tools"),d.title="More tools",d.innerHTML=`
|
|
@@ -232,4 +232,4 @@ ${JSON.stringify(o,null,2)}`),new Error("Language.load failed: no language funct
|
|
|
232
232
|
`);const m=p.split(`
|
|
233
233
|
`);let E=0;for(E=0;E<m.length&&!m[E].trim();E++);m.splice(0,E),p=m.join(`
|
|
234
234
|
`);const B=n.text(p),Q=n.nodes.code_block.createAndFill({lang:g.attrs.lang},[B]);Q&&(A=A.replaceRangeWith(f,I,Q))}l+=d}return e&&e(A),A.docChanged},ANY_LIST=["ordered_list","bullet_list"],fixListsLevels=(r,e)=>{const n=r.doc,A=r.schema,o=A.nodes.bullet_list,s=A.nodes.list_item,a=A.nodes.paragraph,l=r.tr;let c=0,g=[],h=[],d=0;function u(f,I=0,p=0){let m=0;for(let E=0;E<f.length;E++){const B=f[E];if(!ANY_LIST.includes(B.type.name))u(B.children,I+m+1,p+1);else{const Q=B.attrs.odtMarginLeft||0;if(c===0&&(h=[],d=0,g.length>=c))for(let S=0;S<g.length;S++)d<g.length&&Q>g[d]&&(h[c+d]=g[d],d++);if(h[c+d]=Q,c++,u(B.children,I+m,p+1),c--,c===0&&!B.attrs.toc){g=h;for(let S=0;S<d;S++){const w=o.create({type:"none"},s.create(null,Fragment.from([a.create(),B])));l.replaceWith(l.mapping.map(I+m),l.mapping.map(I+m+B.nodeSize),w)}}}m+=B.nodeSize}}return u(n.children),e&&e(l),l.docChanged};function getDefaultsPostProcessFilters({doc:r,filesMap:e}){return[convertCodeParagraphsToCodeBlocks,fixListsLevels,fixContinuedLists,convertMathMl,mergeCodeBlocks]}async function urlRewrite(r,e,n,A){const o=[];n.doc.descendants((l,c)=>{l.type.name==="image"&&o.push({node:l,pos:c})});const s=[];n.doc.descendants((l,c)=>{l.marks.find(g=>g.type.name==="link")&&s.push({node:l,pos:c})});const a=n.tr;for(const{node:l,pos:c}of s){const g=l.marks.find(d=>d.type.name==="link");if(!g)continue;let h=g.attrs.href||"";if(h=await r(h,{type:"A",dest:"kerebron"}),h!==g.attrs.href){const d=l.marks.map(I=>I.type.name==="link"?n.schema.marks.link.create({...I.attrs,href:h}):I),u=n.schema.nodes[l.type.name];let f;u.isText?f=n.schema.text(l.text||"",d):f=u.create(l.attrs,l.content,d),a.replaceWith(a.mapping.map(c),a.mapping.map(c+l.nodeSize),f)}}for(const{node:l,pos:c}of o){let g=l.attrs.src||"";if(g=await r(g,{type:"IMG",dest:"kerebron",filesMap:e}),g!==l.attrs.src){const d=n.schema.nodes[l.type.name].create({...l.attrs,src:g},l.content,l.marks);a.replaceWith(a.mapping.map(c),a.mapping.map(c+l.nodeSize),d)}}return A(a),a.docChanged}async function init(r){const e=await Promise.resolve().then(()=>require("./odt_parser.internal-C8Sm3VVG.cjs")),n=await WebAssembly.instantiate(r,{"./odt_parser.internal.js":e});return e.__wbg_set_wasm(n.instance.exports),n.instance.exports.__wbindgen_start(),e.init_debug(),n.instance,e}let odtWasm;class ExtensionOdt extends Extension{constructor(e={}){super(e),this.config=e,this.name="odt"}getConverters(e,n){const A={fromDoc:async o=>{throw new Error("Not implemented")},toDoc:async o=>{const s=e.config.assetLoad;if(!s)throw new Error("No assetLoad");if(!odtWasm){const d=this.config.debug?await s("odt-wasm/odt-parser-debug.wasm"):await s("odt-wasm/odt-parser.wasm");odtWasm=await init(d)}const{doc:a,filesMap:l}=A.odtToJson(o,odtWasm),c=getDefaultsPostProcessFilters({doc:a,filesMap:l}).concat(this.config.postProcessCommands||[]);let g=EditorState$1.create({doc:a});const h=d=>{g=g.apply(d)};if(this.urlFromRewriter&&await urlRewrite(this.urlFromRewriter,l,g,h),c.length>0)for(const d of c)d(g,u=>h(u));if(this.config.debug){const d=new CustomEvent("odt:pmdoc:filtered",{detail:{doc:g.doc}});this.editor.dispatchEvent(d)}return g.doc},odtToJson:(o,s)=>{const a=s.unzip(o),l={};for(const u of a.keys())l[u]=Uint8Array.from(a.get(u));const c=s.parse_styles(a.get("styles.xml")),g=s.parse_content(a.get("content.xml"));if(this.config.debug){const u=new CustomEvent("odt:parsed",{detail:{stylesTree:c,contentTree:g,filesMap:l}});this.editor.dispatchEvent(u)}const h=new OdtParser(e.schema,this.config);h.filesMap=l;const d=h.parse({...l,contentTree:g,stylesTree:c});if(this.config.debug){const u=new CustomEvent("odt:pmdoc",{detail:{doc:d}});this.editor.dispatchEvent(u)}return{doc:d,stylesTree:c,contentTree:g,filesMap:l}}};return{"application/vnd.oasis.opendocument.text":A}}}function createCell(r,e){return r.createAndFill()}function getTableNodeTypes(r){if(r.cached.tableNodeTypes)return r.cached.tableNodeTypes;const e={};return Object.keys(r.nodes).forEach(n=>{const A=r.nodes[n];A.spec.tableRole&&(e[A.spec.tableRole]=A)}),r.cached.tableNodeTypes=e,e}function createTable(r,e,n,A,o){const s=getTableNodeTypes(r),a=[],l=[];for(let d=0;d<n;d+=1){const u=createCell(s.cell);if(u&&l.push(u),A){const f=createCell(s.header_cell);f&&a.push(f)}}const c=[];for(let d=0;d<e;d+=1)c.push(s.row.createChecked(null,A&&d===0?a:l));const g={},h=r.spec.nodes.get("table");for(const[d,u]of Object.entries(h.attrs||{}))typeof u.default<"u"&&(g[d]=u.default);return s.table.createChecked(g,c)}let readFromCache,addToCache;if(typeof WeakMap<"u"){const r=new WeakMap;readFromCache=e=>r.get(e),addToCache=(e,n)=>(r.set(e,n),n)}else{const r=[];let n=0;readFromCache=A=>{for(let o=0;o<r.length;o+=2)if(r[o]==A)return r[o+1]},addToCache=(A,o)=>(n==10&&(n=0),r[n++]=A,r[n++]=o)}class TableMap{constructor(e,n,A,o){this.width=e,this.height=n,this.map=A,this.problems=o}findCell(e){for(let n=0;n<this.map.length;n++){const A=this.map[n];if(A!=e)continue;const o=n%this.width,s=n/this.width|0;let a=o+1,l=s+1;for(let c=1;a<this.width&&this.map[n+c]==A;c++)a++;for(let c=1;l<this.height&&this.map[n+this.width*c]==A;c++)l++;return{left:o,top:s,right:a,bottom:l}}throw new RangeError(`No cell with offset ${e} found`)}colCount(e){for(let n=0;n<this.map.length;n++)if(this.map[n]==e)return n%this.width;throw new RangeError(`No cell with offset ${e} found`)}nextCell(e,n,A){const{left:o,right:s,top:a,bottom:l}=this.findCell(e);return n=="horiz"?(A<0?o==0:s==this.width)?null:this.map[a*this.width+(A<0?o-1:s)]:(A<0?a==0:l==this.height)?null:this.map[o+this.width*(A<0?a-1:l)]}rectBetween(e,n){const{left:A,right:o,top:s,bottom:a}=this.findCell(e),{left:l,right:c,top:g,bottom:h}=this.findCell(n);return{left:Math.min(A,l),top:Math.min(s,g),right:Math.max(o,c),bottom:Math.max(a,h)}}cellsInRect(e){const n=[],A={};for(let o=e.top;o<e.bottom;o++)for(let s=e.left;s<e.right;s++){const a=o*this.width+s,l=this.map[a];A[l]||(A[l]=!0,!(s==e.left&&s&&this.map[a-1]==l||o==e.top&&o&&this.map[a-this.width]==l)&&n.push(l))}return n}positionAt(e,n,A){for(let o=0,s=0;;o++){const a=s+A.child(o).nodeSize;if(o==e){let l=n+e*this.width;const c=(e+1)*this.width;for(;l<c&&this.map[l]<s;)l++;return l==c?a-1:this.map[l]}s=a}}static get(e){return readFromCache(e)||addToCache(e,computeMap(e))}}function computeMap(r){if(r.type.spec.tableRole!="table")throw new RangeError("Not a table node: "+r.type.name);const e=findWidth(r),n=r.childCount,A=[];let o=0,s=null;const a=[];for(let g=0,h=e*n;g<h;g++)A[g]=0;for(let g=0,h=0;g<n;g++){const d=r.child(g);h++;for(let I=0;;I++){for(;o<A.length&&A[o]!=0;)o++;if(I==d.childCount)break;const p=d.child(I),{colspan:m,rowspan:E,colwidth:B}=p.attrs;for(let Q=0;Q<E;Q++){if(Q+g>=n){(s||(s=[])).push({type:"overlong_rowspan",pos:h,n:E-Q});break}const S=o+Q*e;for(let w=0;w<m;w++){A[S+w]==0?A[S+w]=h:(s||(s=[])).push({type:"collision",row:g,pos:h,n:m-w});const y=B&&B[w];if(y){const D=(S+w)%e*2,_=a[D];_==null||_!=y&&a[D+1]==1?(a[D]=y,a[D+1]=1):_==y&&a[D+1]++}}}o+=m,h+=p.nodeSize}const u=(g+1)*e;let f=0;for(;o<u;)A[o++]==0&&f++;f&&(s||(s=[])).push({type:"missing",row:g,n:f}),h++}(e===0||n===0)&&(s||(s=[])).push({type:"zero_sized"});const l=new TableMap(e,n,A,s);let c=!1;for(let g=0;!c&&g<a.length;g+=2)a[g]!=null&&a[g+1]<n&&(c=!0);return c&&findBadColWidths(l,a,r),l}function findWidth(r){let e=-1,n=!1;for(let A=0;A<r.childCount;A++){const o=r.child(A);let s=0;if(n)for(let a=0;a<A;a++){const l=r.child(a);for(let c=0;c<l.childCount;c++){const g=l.child(c);a+g.attrs.rowspan>A&&(s+=g.attrs.colspan)}}for(let a=0;a<o.childCount;a++){const l=o.child(a);s+=l.attrs.colspan,l.attrs.rowspan>1&&(n=!0)}e==-1?e=s:e!=s&&(e=Math.max(e,s))}return e}function findBadColWidths(r,e,n){r.problems||(r.problems=[]);const A={};for(let o=0;o<r.map.length;o++){const s=r.map[o];if(A[s])continue;A[s]=!0;const a=n.nodeAt(s);if(!a)throw new RangeError(`No cell with offset ${s} found`);let l=null;const c=a.attrs;for(let g=0;g<c.colspan;g++){const h=(o+g)%r.width,d=e[h*2];d!=null&&(!c.colwidth||c.colwidth[g]!=d)&&((l||(l=freshColWidth(c)))[g]=d)}l&&r.problems.unshift({type:"colwidth mismatch",pos:s,colwidth:l})}}function freshColWidth(r){if(r.colwidth)return r.colwidth.slice();const e=[];for(let n=0;n<r.colspan;n++)e.push(0);return e}function tableNodeTypes(r){let e=r.cached.tableNodeTypes;if(!e){e=r.cached.tableNodeTypes={};for(const n in r.nodes){const A=r.nodes[n],o=A.spec.tableRole;o&&(e[o]=A)}}return e}const tableEditingKey=new PluginKey("selectingCells");function cellAround(r){for(let e=r.depth-1;e>0;e--)if(r.node(e).type.spec.tableRole=="row")return r.node(0).resolve(r.before(e+1));return null}function cellWrapping(r){for(let e=r.depth;e>0;e--){const n=r.node(e).type.spec.tableRole;if(n==="cell"||n==="header_cell")return r.node(e)}return null}function isInTable(r){const e=r.selection.$head;for(let n=e.depth;n>0;n--)if(e.node(n).type.spec.tableRole=="row")return!0;return!1}function selectionCell(r){const e=r.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const n=cellAround(e.$head)||cellNear(e.$head);if(n)return n;throw new RangeError(`No cell found around position ${e.head}`)}function cellNear(r){for(let e=r.nodeAfter,n=r.pos;e;e=e.firstChild,n++){const A=e.type.spec.tableRole;if(A=="cell"||A=="header_cell")return r.doc.resolve(n)}for(let e=r.nodeBefore,n=r.pos;e;e=e.lastChild,n--){const A=e.type.spec.tableRole;if(A=="cell"||A=="header_cell")return r.doc.resolve(n-e.nodeSize)}}function pointsAtCell(r){return r.parent.type.spec.tableRole=="row"&&!!r.nodeAfter}function moveCellForward(r){return r.node(0).resolve(r.pos+r.nodeAfter.nodeSize)}function inSameTable(r,e){return r.depth==e.depth&&r.pos>=e.start(-1)&&r.pos<=e.end(-1)}function nextCell(r,e,n){const A=r.node(-1),o=TableMap.get(A),s=r.start(-1),a=o.nextCell(r.pos-s,e,n);return a==null?null:r.node(0).resolve(s+a)}function removeColSpan(r,e,n=1){const A={...r,colspan:r.colspan-n};return A.colwidth&&(A.colwidth=A.colwidth.slice(),A.colwidth.splice(e,n),A.colwidth.some(o=>o>0)||(A.colwidth=null)),A}function addColSpan(r,e,n=1){const A={...r,colspan:r.colspan+n};if(A.colwidth){A.colwidth=A.colwidth.slice();for(let o=0;o<n;o++)A.colwidth.splice(e,0,0)}return A}function columnIsHeader(r,e,n){const A=tableNodeTypes(e.type.schema).header_cell;for(let o=0;o<r.height;o++)if(e.nodeAt(r.map[n+o*r.width]).type!=A)return!1;return!0}class CellSelection extends Selection{constructor(e,n=e){const A=e.node(-1),o=TableMap.get(A),s=e.start(-1),a=o.rectBetween(e.pos-s,n.pos-s),l=e.node(0),c=o.cellsInRect(a).filter(h=>h!=n.pos-s);c.unshift(n.pos-s);const g=c.map(h=>{const d=A.nodeAt(h);if(!d)throw RangeError(`No cell with offset ${h} found`);const u=s+h+1;return new SelectionRange$2(l.resolve(u),l.resolve(u+d.content.size))});super(g[0].$from,g[0].$to,g),this.$anchorCell=e,this.$headCell=n}map(e,n){const A=e.resolve(n.map(this.$anchorCell.pos)),o=e.resolve(n.map(this.$headCell.pos));if(pointsAtCell(A)&&pointsAtCell(o)&&inSameTable(A,o)){const s=this.$anchorCell.node(-1)!=A.node(-1);return s&&this.isRowSelection()?CellSelection.rowSelection(A,o):s&&this.isColSelection()?CellSelection.colSelection(A,o):new CellSelection(A,o)}return TextSelection.between(A,o)}content(){const e=this.$anchorCell.node(-1),n=TableMap.get(e),A=this.$anchorCell.start(-1),o=n.rectBetween(this.$anchorCell.pos-A,this.$headCell.pos-A),s={},a=[];for(let c=o.top;c<o.bottom;c++){const g=[];for(let h=c*n.width+o.left,d=o.left;d<o.right;d++,h++){const u=n.map[h];if(s[u])continue;s[u]=!0;const f=n.findCell(u);let I=e.nodeAt(u);if(!I)throw RangeError(`No cell with offset ${u} found`);const p=o.left-f.left,m=f.right-o.right;if(p>0||m>0){let E=I.attrs;if(p>0&&(E=removeColSpan(E,0,p)),m>0&&(E=removeColSpan(E,E.colspan-m,m)),f.left<o.left){if(I=I.type.createAndFill(E),!I)throw RangeError(`Could not create cell with attrs ${JSON.stringify(E)}`)}else I=I.type.create(E,I.content)}if(f.top<o.top||f.bottom>o.bottom){const E={...I.attrs,rowspan:Math.min(f.bottom,o.bottom)-Math.max(f.top,o.top)};f.top<o.top?I=I.type.createAndFill(E):I=I.type.create(E,I.content)}g.push(I)}a.push(e.child(c).copy(Fragment.from(g)))}const l=this.isColSelection()&&this.isRowSelection()?e:a;return new Slice(Fragment.from(l),1,1)}replace(e,n=Slice.empty){const A=e.steps.length,o=this.ranges;for(let a=0;a<o.length;a++){const{$from:l,$to:c}=o[a],g=e.mapping.slice(A);e.replace(g.map(l.pos),g.map(c.pos),a?Slice.empty:n)}const s=Selection.findFrom(e.doc.resolve(e.mapping.slice(A).map(this.to)),-1);s&&e.setSelection(s)}replaceWith(e,n){this.replace(e,new Slice(Fragment.from(n),0,0))}forEachCell(e){const n=this.$anchorCell.node(-1),A=TableMap.get(n),o=this.$anchorCell.start(-1),s=A.cellsInRect(A.rectBetween(this.$anchorCell.pos-o,this.$headCell.pos-o));for(let a=0;a<s.length;a++)e(n.nodeAt(s[a]),o+s[a])}isColSelection(){const e=this.$anchorCell.index(-1),n=this.$headCell.index(-1);if(Math.min(e,n)>0)return!1;const A=e+this.$anchorCell.nodeAfter.attrs.rowspan,o=n+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(A,o)==this.$headCell.node(-1).childCount}static colSelection(e,n=e){const A=e.node(-1),o=TableMap.get(A),s=e.start(-1),a=o.findCell(e.pos-s),l=o.findCell(n.pos-s),c=e.node(0);return a.top<=l.top?(a.top>0&&(e=c.resolve(s+o.map[a.left])),l.bottom<o.height&&(n=c.resolve(s+o.map[o.width*(o.height-1)+l.right-1]))):(l.top>0&&(n=c.resolve(s+o.map[l.left])),a.bottom<o.height&&(e=c.resolve(s+o.map[o.width*(o.height-1)+a.right-1]))),new CellSelection(e,n)}isRowSelection(){const e=this.$anchorCell.node(-1),n=TableMap.get(e),A=this.$anchorCell.start(-1),o=n.colCount(this.$anchorCell.pos-A),s=n.colCount(this.$headCell.pos-A);if(Math.min(o,s)>0)return!1;const a=o+this.$anchorCell.nodeAfter.attrs.colspan,l=s+this.$headCell.nodeAfter.attrs.colspan;return Math.max(a,l)==n.width}eq(e){return e instanceof CellSelection&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,n=e){const A=e.node(-1),o=TableMap.get(A),s=e.start(-1),a=o.findCell(e.pos-s),l=o.findCell(n.pos-s),c=e.node(0);return a.left<=l.left?(a.left>0&&(e=c.resolve(s+o.map[a.top*o.width])),l.right<o.width&&(n=c.resolve(s+o.map[o.width*(l.top+1)-1]))):(l.left>0&&(n=c.resolve(s+o.map[l.top*o.width])),a.right<o.width&&(e=c.resolve(s+o.map[o.width*(a.top+1)-1]))),new CellSelection(e,n)}toJSON(){return{type:"cell",anchor:this.$anchorCell.pos,head:this.$headCell.pos}}static fromJSON(e,n){return new CellSelection(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,A=n){return new CellSelection(e.resolve(n),e.resolve(A))}getBookmark(){return new CellBookmark(this.$anchorCell.pos,this.$headCell.pos)}}CellSelection.prototype.visible=!1;Selection.jsonID("cell",CellSelection);class CellBookmark{constructor(e,n){this.anchor=e,this.head=n}map(e){return new CellBookmark(e.map(this.anchor),e.map(this.head))}resolve(e){const n=e.resolve(this.anchor),A=e.resolve(this.head);return n.parent.type.spec.tableRole=="row"&&A.parent.type.spec.tableRole=="row"&&n.index()<n.parent.childCount&&A.index()<A.parent.childCount&&inSameTable(n,A)?new CellSelection(n,A):Selection.near(A,1)}}function drawCellSelection(r){if(!(r.selection instanceof CellSelection))return null;const e=[];return r.selection.forEachCell((n,A)=>{e.push(Decoration$1.node(A,A+n.nodeSize,{class:"selectedCell"}))}),DecorationSet.create(r.doc,e)}function isCellBoundarySelection({$from:r,$to:e}){if(r.pos==e.pos||r.pos<e.pos-6)return!1;let n=r.pos,A=e.pos,o=r.depth;for(;o>=0&&!(r.after(o+1)<r.end(o));o--,n++);for(let s=e.depth;s>=0&&!(e.before(s+1)>e.start(s));s--,A--);return n==A&&/row|table/.test(r.node(o).type.spec.tableRole)}function isTextSelectionAcrossCells({$from:r,$to:e}){let n,A;for(let o=r.depth;o>0;o--){const s=r.node(o);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){n=s;break}}for(let o=e.depth;o>0;o--){const s=e.node(o);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){A=s;break}}return n!==A&&e.parentOffset===0}function normalizeSelection(r,e,n){const A=(e||r).selection,o=(e||r).doc;let s,a;if(A instanceof NodeSelection&&(a=A.node.type.spec.tableRole)){if(a=="cell"||a=="header_cell")s=CellSelection.create(o,A.from);else if(a=="row"){const l=o.resolve(A.from+1);s=CellSelection.rowSelection(l,l)}else if(!n){const l=TableMap.get(A.node),c=A.from+1,g=c+l.map[l.width*l.height-1];s=CellSelection.create(o,c+1,g)}}else A instanceof TextSelection&&isCellBoundarySelection(A)?s=TextSelection.create(o,A.from):A instanceof TextSelection&&isTextSelectionAcrossCells(A)&&(s=TextSelection.create(o,A.$from.start(),A.$from.end()));return s&&(e||(e=r.tr)).setSelection(s),e}class TableView{constructor(e,n){this.node=e,this.defaultCellMinWidth=n,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.table.style.setProperty("--default-cell-min-width",`${n}px`),this.colgroup=this.table.appendChild(document.createElement("colgroup")),updateColumnsOnResize(e,this.colgroup,this.table,n),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,updateColumnsOnResize(e,this.colgroup,this.table,this.defaultCellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}}function updateColumnsOnResize(r,e,n,A,o,s){let a=0,l=!0,c=e.firstChild;const g=r.firstChild;if(g){for(let h=0,d=0;h<g.childCount;h++){const{colspan:u,colwidth:f}=g.child(h).attrs;for(let I=0;I<u;I++,d++){const p=o==d?s:f&&f[I],m=p?p+"px":"";if(a+=p||A,p||(l=!1),c)c.style.width!=m&&(c.style.width=m),c=c.nextSibling;else{const E=document.createElement("col");E.style.width=m,e.appendChild(E)}}}for(;c;){const h=c.nextSibling;c.parentNode?.removeChild(c),c=h}l?(n.style.width=a+"px",n.style.minWidth=""):(n.style.width="",n.style.minWidth=a+"px")}}const columnResizingPluginKey=new PluginKey("tableColumnResizing");function columnResizing({handleWidth:r=5,cellMinWidth:e=25,defaultCellMinWidth:n=100,View:A=TableView,lastColumnResizable:o=!0}={}){const s=new Plugin({key:columnResizingPluginKey,state:{init(a,l){const c=s.spec?.props?.nodeViews,g=tableNodeTypes(l.schema).table.name;return A&&c&&(c[g]=(h,d)=>new A(h,n,d)),new ResizeState(-1,!1)},apply(a,l){return l.apply(a)}},props:{attributes:a=>{const l=columnResizingPluginKey.getState(a);return l&&l.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(a,l)=>{handleMouseMove(a,l,r,o)},mouseleave:a=>{handleMouseLeave(a)},mousedown:(a,l)=>{handleMouseDown$1(a,l,e,n)}},decorations:a=>{const l=columnResizingPluginKey.getState(a);if(l&&l.activeHandle>-1)return handleDecorations(a,l.activeHandle)},nodeViews:{}}});return s}class ResizeState{constructor(e,n){this.activeHandle=e,this.dragging=n}apply(e){const n=e.getMeta(columnResizingPluginKey);if(n&&n.setHandle!=null)return new ResizeState(n.setHandle,!1);if(n&&n.setDragging!==void 0)return new ResizeState(this.activeHandle,n.setDragging);if(this.activeHandle>-1&&e.docChanged){let A=e.mapping.map(this.activeHandle,-1);return pointsAtCell(e.doc.resolve(A))||(A=-1),new ResizeState(A,this.dragging)}return this}}function handleMouseMove(r,e,n,A){if(!r.editable)return;const o=columnResizingPluginKey.getState(r.state);if(o&&!o.dragging){const s=domCellAround(e.target);let a=-1;if(s){const{left:l,right:c}=s.getBoundingClientRect();e.clientX-l<=n?a=edgeCell(r,e,"left",n):c-e.clientX<=n&&(a=edgeCell(r,e,"right",n))}if(a!=o.activeHandle){if(!A&&a!==-1){const l=r.state.doc.resolve(a),c=l.node(-1),g=TableMap.get(c),h=l.start(-1);if(g.colCount(l.pos-h)+l.nodeAfter.attrs.colspan-1==g.width-1)return}updateHandle(r,a)}}}function handleMouseLeave(r){if(!r.editable)return;const e=columnResizingPluginKey.getState(r.state);e&&e.activeHandle>-1&&!e.dragging&&updateHandle(r,-1)}function handleMouseDown$1(r,e,n,A){if(!r.editable)return!1;const o=r.dom.ownerDocument.defaultView||globalThis,s=columnResizingPluginKey.getState(r.state);if(!s||s.activeHandle==-1||s.dragging)return!1;const a=r.state.doc.nodeAt(s.activeHandle),l=currentColWidth(r,s.activeHandle,a.attrs);r.dispatch(r.state.tr.setMeta(columnResizingPluginKey,{setDragging:{startX:e.clientX,startWidth:l}}));function c(h){o.removeEventListener("mouseup",c),o.removeEventListener("mousemove",g);const d=columnResizingPluginKey.getState(r.state);d?.dragging&&(updateColumnWidth(r,d.activeHandle,draggedWidth(d.dragging,h,n)),r.dispatch(r.state.tr.setMeta(columnResizingPluginKey,{setDragging:null})))}function g(h){if(!h.which)return c(h);const d=columnResizingPluginKey.getState(r.state);if(d&&d.dragging){const u=draggedWidth(d.dragging,h,n);displayColumnWidth(r,d.activeHandle,u,A)}}return displayColumnWidth(r,s.activeHandle,l,A),o.addEventListener("mouseup",c),o.addEventListener("mousemove",g),e.preventDefault(),!0}function currentColWidth(r,e,{colspan:n,colwidth:A}){const o=A&&A[A.length-1];if(o)return o;const s=r.domAtPos(e);let l=s.node.childNodes[s.offset].offsetWidth,c=n;if(A)for(let g=0;g<n;g++)A[g]&&(l-=A[g],c--);return l/c}function domCellAround(r){for(;r&&r.nodeName!="TD"&&r.nodeName!="TH";)r=r.classList&&r.classList.contains("ProseMirror")?null:r.parentNode;return r}function edgeCell(r,e,n,A){const o=n=="right"?-A:A,s=r.posAtCoords({left:e.clientX+o,top:e.clientY});if(!s)return-1;const{pos:a}=s,l=cellAround(r.state.doc.resolve(a));if(!l)return-1;if(n=="right")return l.pos;const c=TableMap.get(l.node(-1)),g=l.start(-1),h=c.map.indexOf(l.pos-g);return h%c.width==0?-1:g+c.map[h-1]}function draggedWidth(r,e,n){const A=e.clientX-r.startX;return Math.max(n,r.startWidth+A)}function updateHandle(r,e){r.dispatch(r.state.tr.setMeta(columnResizingPluginKey,{setHandle:e}))}function updateColumnWidth(r,e,n){const A=r.state.doc.resolve(e),o=A.node(-1),s=TableMap.get(o),a=A.start(-1),l=s.colCount(A.pos-a)+A.nodeAfter.attrs.colspan-1,c=r.state.tr;for(let g=0;g<s.height;g++){const h=g*s.width+l;if(g&&s.map[h]==s.map[h-s.width])continue;const d=s.map[h],u=o.nodeAt(d).attrs,f=u.colspan==1?0:l-s.colCount(d);if(u.colwidth&&u.colwidth[f]==n)continue;const I=u.colwidth?u.colwidth.slice():zeroes(u.colspan);I[f]=n,c.setNodeMarkup(a+d,null,{...u,colwidth:I})}c.docChanged&&r.dispatch(c)}function displayColumnWidth(r,e,n,A){const o=r.state.doc.resolve(e),s=o.node(-1),a=o.start(-1),l=TableMap.get(s).colCount(o.pos-a)+o.nodeAfter.attrs.colspan-1;let c=r.domAtPos(o.start(-1)).node;for(;c&&c.nodeName!="TABLE";)c=c.parentNode;c&&updateColumnsOnResize(s,c.firstChild,c,A,l,n)}function zeroes(r){return Array(r).fill(0)}function handleDecorations(r,e){const n=[],A=r.doc.resolve(e),o=A.node(-1);if(!o)return DecorationSet.empty;const s=TableMap.get(o),a=A.start(-1),l=s.colCount(A.pos-a)+A.nodeAfter.attrs.colspan-1;for(let c=0;c<s.height;c++){const g=l+c*s.width;if((l==s.width-1||s.map[g]!=s.map[g+1])&&(c==0||s.map[g]!=s.map[g-s.width])){const h=s.map[g],d=a+h+o.nodeAt(h).nodeSize-1,u=document.createElement("div");u.className="column-resize-handle",columnResizingPluginKey.getState(r)?.dragging&&n.push(Decoration$1.node(a+h,a+h+o.nodeAt(h).nodeSize,{class:"column-resize-dragging"})),n.push(Decoration$1.widget(d,u))}}return DecorationSet.create(r.doc,n)}const fixTablesKey=new PluginKey("fix-tables");function changedDescendants(r,e,n,A){const o=r.childCount,s=e.childCount;e:for(let a=0,l=0;a<s;a++){const c=e.child(a);for(let g=l,h=Math.min(o,a+3);g<h;g++)if(r.child(g)==c){l=g+1,n+=c.nodeSize;continue e}A(c,n),l<o&&r.child(l).sameMarkup(c)?changedDescendants(r.child(l),c,n+1,A):c.nodesBetween(0,c.content.size,A,n+1),n+=c.nodeSize}}function fixTables(r,e){let n;const A=(o,s)=>{o.type.spec.tableRole=="table"&&(n=fixTable(r,o,s,n))};return e?e.doc!=r.doc&&changedDescendants(e.doc,r.doc,0,A):r.doc.descendants(A),n}function fixTable(r,e,n,A){const o=TableMap.get(e);if(!o.problems)return A;A||(A=r.tr);const s=[];for(let c=0;c<o.height;c++)s.push(0);for(let c=0;c<o.problems.length;c++){const g=o.problems[c];if(g.type=="collision"){const h=e.nodeAt(g.pos);if(!h)continue;const d=h.attrs;for(let u=0;u<d.rowspan;u++)s[g.row+u]+=g.n;A.setNodeMarkup(A.mapping.map(n+1+g.pos),null,removeColSpan(d,d.colspan-g.n,g.n))}else if(g.type=="missing")s[g.row]+=g.n;else if(g.type=="overlong_rowspan"){const h=e.nodeAt(g.pos);if(!h)continue;A.setNodeMarkup(A.mapping.map(n+1+g.pos),null,{...h.attrs,rowspan:h.attrs.rowspan-g.n})}else if(g.type=="colwidth mismatch"){const h=e.nodeAt(g.pos);if(!h)continue;A.setNodeMarkup(A.mapping.map(n+1+g.pos),null,{...h.attrs,colwidth:g.colwidth})}else if(g.type=="zero_sized"){const h=A.mapping.map(n);A.delete(h,h+e.nodeSize)}}let a,l;for(let c=0;c<s.length;c++)s[c]&&(a==null&&(a=c),l=c);for(let c=0,g=n+1;c<o.height;c++){const h=e.child(c),d=g+h.nodeSize,u=s[c];if(u>0){let f="cell";h.firstChild&&(f=h.firstChild.type.spec.tableRole);const I=[];for(let m=0;m<u;m++){const E=tableNodeTypes(r.schema)[f].createAndFill();E&&I.push(E)}const p=(c==0||a==c-1)&&l==c?g+1:d-1;A.insert(A.mapping.map(p),I)}g=d}return A.setMeta(fixTablesKey,{fixTables:!0})}function selectedRect(r){const e=r.selection,n=selectionCell(r),A=n.node(-1),o=n.start(-1),s=TableMap.get(A);return{...e instanceof CellSelection?s.rectBetween(e.$anchorCell.pos-o,e.$headCell.pos-o):s.findCell(n.pos-o),tableStart:o,map:s,table:A}}function addColumn(r,{map:e,tableStart:n,table:A},o){let s=o>0?-1:0;columnIsHeader(e,A,o+s)&&(s=o==0||o==e.width?null:0);for(let a=0;a<e.height;a++){const l=a*e.width+o;if(o>0&&o<e.width&&e.map[l-1]==e.map[l]){const c=e.map[l],g=A.nodeAt(c);r.setNodeMarkup(r.mapping.map(n+c),null,addColSpan(g.attrs,o-e.colCount(c))),a+=g.attrs.rowspan-1}else{const c=s==null?tableNodeTypes(A.type.schema).cell:A.nodeAt(e.map[l+s]).type,g=e.positionAt(a,o,A);r.insert(r.mapping.map(n+g),c.createAndFill())}}return r}function addColumnBefore(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addColumn(r.tr,n,n.left))}return!0}function addColumnAfter(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addColumn(r.tr,n,n.right))}return!0}function removeColumn(r,{map:e,table:n,tableStart:A},o){const s=r.mapping.maps.length;for(let a=0;a<e.height;){const l=a*e.width+o,c=e.map[l],g=n.nodeAt(c),h=g.attrs;if(o>0&&e.map[l-1]==c||o<e.width-1&&e.map[l+1]==c)r.setNodeMarkup(r.mapping.slice(s).map(A+c),null,removeColSpan(h,o-e.colCount(c)));else{const d=r.mapping.slice(s).map(A+c);r.delete(d,d+g.nodeSize)}a+=h.rowspan}}function deleteColumn(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r),A=r.tr;if(n.left==0&&n.right==n.map.width)return!1;for(let o=n.right-1;removeColumn(A,n,o),o!=n.left;o--){const s=n.tableStart?A.doc.nodeAt(n.tableStart-1):A.doc;if(!s)throw RangeError("No table found");n.table=s,n.map=TableMap.get(s)}e(A)}return!0}function rowIsHeader(r,e,n){const A=tableNodeTypes(e.type.schema).header_cell;for(let o=0;o<r.width;o++)if(e.nodeAt(r.map[o+n*r.width])?.type!=A)return!1;return!0}function addRow(r,{map:e,tableStart:n,table:A},o){let s=n;for(let c=0;c<o;c++)s+=A.child(c).nodeSize;const a=[];let l=o>0?-1:0;rowIsHeader(e,A,o+l)&&(l=o==0||o==e.height?null:0);for(let c=0,g=e.width*o;c<e.width;c++,g++)if(o>0&&o<e.height&&e.map[g]==e.map[g-e.width]){const h=e.map[g],d=A.nodeAt(h).attrs;r.setNodeMarkup(n+h,null,{...d,rowspan:d.rowspan+1}),c+=d.colspan-1}else{const d=(l==null?tableNodeTypes(A.type.schema).cell:A.nodeAt(e.map[g+l*e.width])?.type)?.createAndFill();d&&a.push(d)}return r.insert(s,tableNodeTypes(A.type.schema).row.create(null,a)),r}function addRowBefore(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addRow(r.tr,n,n.top))}return!0}function addRowAfter(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addRow(r.tr,n,n.bottom))}return!0}function removeRow(r,{map:e,table:n,tableStart:A},o){let s=0;for(let g=0;g<o;g++)s+=n.child(g).nodeSize;const a=s+n.child(o).nodeSize,l=r.mapping.maps.length;r.delete(s+A,a+A);const c=new Set;for(let g=0,h=o*e.width;g<e.width;g++,h++){const d=e.map[h];if(!c.has(d)){if(c.add(d),o>0&&d==e.map[h-e.width]){const u=n.nodeAt(d).attrs;r.setNodeMarkup(r.mapping.slice(l).map(d+A),null,{...u,rowspan:u.rowspan-1}),g+=u.colspan-1}else if(o<e.height&&d==e.map[h+e.width]){const u=n.nodeAt(d),f=u.attrs,I=u.type.create({...f,rowspan:u.attrs.rowspan-1},u.content),p=e.positionAt(o+1,g,n);r.insert(r.mapping.slice(l).map(A+p),I),g+=f.colspan-1}}}}function deleteRow(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r),A=r.tr;if(n.top==0&&n.bottom==n.map.height)return!1;for(let o=n.bottom-1;removeRow(A,n,o),o!=n.top;o--){const s=n.tableStart?A.doc.nodeAt(n.tableStart-1):A.doc;if(!s)throw RangeError("No table found");n.table=s,n.map=TableMap.get(n.table)}e(A)}return!0}function isEmpty(r){const e=r.content;return e.childCount==1&&e.child(0).isTextblock&&e.child(0).childCount==0}function cellsOverlapRectangle({width:r,height:e,map:n},A){let o=A.top*r+A.left,s=o,a=(A.bottom-1)*r+A.left,l=o+(A.right-A.left-1);for(let c=A.top;c<A.bottom;c++){if(A.left>0&&n[s]==n[s-1]||A.right<r&&n[l]==n[l+1])return!0;s+=r,l+=r}for(let c=A.left;c<A.right;c++){if(A.top>0&&n[o]==n[o-r]||A.bottom<e&&n[a]==n[a+r])return!0;o++,a++}return!1}function mergeCells(r,e){const n=r.selection;if(!(n instanceof CellSelection)||n.$anchorCell.pos==n.$headCell.pos)return!1;const A=selectedRect(r),{map:o}=A;if(cellsOverlapRectangle(o,A))return!1;if(e){const s=r.tr,a={};let l=Fragment.empty,c,g;for(let h=A.top;h<A.bottom;h++)for(let d=A.left;d<A.right;d++){const u=o.map[h*o.width+d],f=A.table.nodeAt(u);if(!(a[u]||!f))if(a[u]=!0,c==null)c=u,g=f;else{isEmpty(f)||(l=l.append(f.content));const I=s.mapping.map(u+A.tableStart);s.delete(I,I+f.nodeSize)}}if(c==null||g==null)return!0;if(s.setNodeMarkup(c+A.tableStart,null,{...addColSpan(g.attrs,g.attrs.colspan,A.right-A.left-g.attrs.colspan),rowspan:A.bottom-A.top}),l.size){const h=c+1+g.content.size,d=isEmpty(g)?c+1:h;s.replaceWith(d+A.tableStart,h+A.tableStart,l)}s.setSelection(new CellSelection(s.doc.resolve(c+A.tableStart))),e(s)}return!0}function splitCell(r,e){const n=tableNodeTypes(r.schema);return splitCellWithType(({node:A})=>n[A.type.spec.tableRole])(r,e)}const splitCellWithType=r=>(e,n)=>{const A=e.selection;let o,s;if(A instanceof CellSelection){if(A.$anchorCell.pos!=A.$headCell.pos)return!1;o=A.$anchorCell.nodeAfter,s=A.$anchorCell.pos}else{if(o=cellWrapping(A.$from),!o)return!1;s=cellAround(A.$from)?.pos}if(o==null||s==null||o.attrs.colspan==1&&o.attrs.rowspan==1)return!1;if(n){let a=o.attrs;const l=[],c=a.colwidth;a.rowspan>1&&(a={...a,rowspan:1}),a.colspan>1&&(a={...a,colspan:1});const g=selectedRect(e),h=e.tr;for(let u=0;u<g.right-g.left;u++)l.push(c?{...a,colwidth:c&&c[u]?[c[u]]:null}:a);let d;for(let u=g.top;u<g.bottom;u++){let f=g.map.positionAt(u,g.left,g.table);u==g.top&&(f+=o.nodeSize);for(let I=g.left,p=0;I<g.right;I++,p++)I==g.left&&u==g.top||h.insert(d=h.mapping.map(f+g.tableStart,1),r({node:o,row:u,col:I}).createAndFill(l[p]))}h.setNodeMarkup(s,r({node:o,row:g.top,col:g.left}),l[0]),A instanceof CellSelection&&h.setSelection(new CellSelection(h.doc.resolve(A.$anchorCell.pos),d?h.doc.resolve(d):void 0)),n(h)}return!0},setCellAttr=(r,e)=>function(n,A){if(!isInTable(n))return!1;const o=selectionCell(n);if(o.nodeAfter.attrs[r]===e)return!1;if(A){const s=n.tr;n.selection instanceof CellSelection?n.selection.forEachCell((a,l)=>{a.attrs[r]!==e&&s.setNodeMarkup(l,null,{...a.attrs,[r]:e})}):s.setNodeMarkup(o.pos,null,{...o.nodeAfter.attrs,[r]:e}),A(s)}return!0};function deprecated_toggleHeader(r){return function(e,n){if(!isInTable(e))return!1;if(n){const A=tableNodeTypes(e.schema),o=selectedRect(e),s=e.tr,a=o.map.cellsInRect(r=="column"?{left:o.left,top:0,right:o.right,bottom:o.map.height}:r=="row"?{left:0,top:o.top,right:o.map.width,bottom:o.bottom}:o),l=a.map(c=>o.table.nodeAt(c));for(let c=0;c<a.length;c++)l[c].type==A.header_cell&&s.setNodeMarkup(o.tableStart+a[c],A.cell,l[c].attrs);if(s.steps.length==0)for(let c=0;c<a.length;c++)s.setNodeMarkup(o.tableStart+a[c],A.header_cell,l[c].attrs);n(s)}return!0}}function isHeaderEnabledByType(r,e,n){const A=e.map.cellsInRect({left:0,top:0,right:r=="row"?e.map.width:1,bottom:r=="column"?e.map.height:1});for(let o=0;o<A.length;o++){const s=e.table.nodeAt(A[o]);if(s&&s.type!==n.header_cell)return!1}return!0}const toggleHeader=(r,e)=>(e=e||{useDeprecatedLogic:!1},e.useDeprecatedLogic?deprecated_toggleHeader(r):function(n,A){if(!isInTable(n))return!1;if(A){const o=tableNodeTypes(n.schema),s=selectedRect(n),a=n.tr,l=isHeaderEnabledByType("row",s,o),c=isHeaderEnabledByType("column",s,o),h=(r==="column"?l:r==="row"?c:!1)?1:0,d=r=="column"?{left:0,top:h,right:1,bottom:s.map.height}:r=="row"?{left:h,top:0,right:s.map.width,bottom:1}:s,u=r=="column"?c?o.cell:o.header_cell:r=="row"?l?o.cell:o.header_cell:o.cell;s.map.cellsInRect(d).forEach(f=>{const I=f+s.tableStart,p=a.doc.nodeAt(I);p&&a.setNodeMarkup(I,u,p.attrs)}),A(a)}return!0}),toggleHeaderRow=toggleHeader("row",{useDeprecatedLogic:!0}),toggleHeaderColumn=toggleHeader("column",{useDeprecatedLogic:!0}),toggleHeaderCell=toggleHeader("cell",{useDeprecatedLogic:!0});function findNextCell(r,e){if(e<0){const n=r.nodeBefore;if(n)return r.pos-n.nodeSize;for(let A=r.index(-1)-1,o=r.before();A>=0;A--){const s=r.node(-1).child(A),a=s.lastChild;if(a)return o-1-a.nodeSize;o-=s.nodeSize}}else{if(r.index()<r.parent.childCount-1)return r.pos+r.nodeAfter.nodeSize;const n=r.node(-1);for(let A=r.indexAfter(-1),o=r.after();A<n.childCount;A++){const s=n.child(A);if(s.childCount)return o+1;o+=s.nodeSize}}return null}const goToNextCell=r=>function(e,n){if(!isInTable(e))return!1;const A=findNextCell(selectionCell(e),r);if(A==null)return!1;if(n){const o=e.doc.resolve(A);n(e.tr.setSelection(TextSelection.between(o,moveCellForward(o))).scrollIntoView())}return!0};function deleteTable(r,e){const n=r.selection.$anchor;for(let A=n.depth;A>0;A--)if(n.node(A).type.spec.tableRole=="table")return e&&e(r.tr.delete(n.before(A),n.after(A)).scrollIntoView()),!0;return!1}function deleteCellSelection(r,e){const n=r.selection;if(!(n instanceof CellSelection))return!1;if(e){const A=r.tr,o=tableNodeTypes(r.schema).cell.createAndFill().content;n.forEachCell((s,a)=>{s.content.eq(o)||A.replace(A.mapping.map(a+1),A.mapping.map(a+s.nodeSize-1),new Slice(o,0,0))}),A.docChanged&&e(A)}return!0}function pastedCells(r){if(!r.size)return null;let{content:e,openStart:n,openEnd:A}=r;for(;e.childCount==1&&(n>0&&A>0||e.child(0).type.spec.tableRole=="table");)n--,A--,e=e.child(0).content;const o=e.child(0),s=o.type.spec.tableRole,a=o.type.schema,l=[];if(s=="row")for(let c=0;c<e.childCount;c++){let g=e.child(c).content;const h=c?0:Math.max(0,n-1),d=c<e.childCount-1?0:Math.max(0,A-1);(h||d)&&(g=fitSlice(tableNodeTypes(a).row,new Slice(g,h,d)).content),l.push(g)}else if(s=="cell"||s=="header_cell")l.push(n||A?fitSlice(tableNodeTypes(a).row,new Slice(e,n,A)).content:e);else return null;return ensureRectangular(a,l)}function ensureRectangular(r,e){const n=[];for(let o=0;o<e.length;o++){const s=e[o];for(let a=s.childCount-1;a>=0;a--){const{rowspan:l,colspan:c}=s.child(a).attrs;for(let g=o;g<o+l;g++)n[g]=(n[g]||0)+c}}let A=0;for(let o=0;o<n.length;o++)A=Math.max(A,n[o]);for(let o=0;o<n.length;o++)if(o>=e.length&&e.push(Fragment.empty),n[o]<A){const s=tableNodeTypes(r).cell.createAndFill(),a=[];for(let l=n[o];l<A;l++)a.push(s);e[o]=e[o].append(Fragment.from(a))}return{height:e.length,width:A,rows:e}}function fitSlice(r,e){const n=r.createAndFill();return new Transform(n).replace(0,n.content.size,e).doc}function clipCells({width:r,height:e,rows:n},A,o){if(r!=A){const s=[],a=[];for(let l=0;l<n.length;l++){const c=n[l],g=[];for(let h=s[l]||0,d=0;h<A;d++){let u=c.child(d%c.childCount);h+u.attrs.colspan>A&&(u=u.type.createChecked(removeColSpan(u.attrs,u.attrs.colspan,h+u.attrs.colspan-A),u.content)),g.push(u),h+=u.attrs.colspan;for(let f=1;f<u.attrs.rowspan;f++)s[l+f]=(s[l+f]||0)+u.attrs.colspan}a.push(Fragment.from(g))}n=a,r=A}if(e!=o){const s=[];for(let a=0,l=0;a<o;a++,l++){const c=[],g=n[l%e];for(let h=0;h<g.childCount;h++){let d=g.child(h);a+d.attrs.rowspan>o&&(d=d.type.create({...d.attrs,rowspan:Math.max(1,o-d.attrs.rowspan)},d.content)),c.push(d)}s.push(Fragment.from(c))}n=s,e=o}return{width:r,height:e,rows:n}}function growTable(r,e,n,A,o,s,a){const l=r.doc.type.schema,c=tableNodeTypes(l);let g,h;if(o>e.width)for(let d=0,u=0;d<e.height;d++){const f=n.child(d);u+=f.nodeSize;const I=[];let p;f.lastChild==null||f.lastChild.type==c.cell?p=g||(g=c.cell.createAndFill()):p=h||(h=c.header_cell.createAndFill());for(let m=e.width;m<o;m++)I.push(p);r.insert(r.mapping.slice(a).map(u-1+A),I)}if(s>e.height){const d=[];for(let I=0,p=(e.height-1)*e.width;I<Math.max(e.width,o);I++){const m=I>=e.width?!1:n.nodeAt(e.map[p+I]).type==c.header_cell;d.push(m?h||(h=c.header_cell.createAndFill()):g||(g=c.cell.createAndFill()))}const u=c.row.create(null,Fragment.from(d)),f=[];for(let I=e.height;I<s;I++)f.push(u);r.insert(r.mapping.slice(a).map(A+n.nodeSize-2),f)}return!!(g||h)}function isolateHorizontal(r,e,n,A,o,s,a,l){if(a==0||a==e.height)return!1;let c=!1;for(let g=o;g<s;g++){const h=a*e.width+g,d=e.map[h];if(e.map[h-e.width]==d){c=!0;const u=n.nodeAt(d),{top:f,left:I}=e.findCell(d);r.setNodeMarkup(r.mapping.slice(l).map(d+A),null,{...u.attrs,rowspan:a-f}),r.insert(r.mapping.slice(l).map(e.positionAt(a,I,n)),u.type.createAndFill({...u.attrs,rowspan:f+u.attrs.rowspan-a})),g+=u.attrs.colspan-1}}return c}function isolateVertical(r,e,n,A,o,s,a,l){if(a==0||a==e.width)return!1;let c=!1;for(let g=o;g<s;g++){const h=g*e.width+a,d=e.map[h];if(e.map[h-1]==d){c=!0;const u=n.nodeAt(d),f=e.colCount(d),I=r.mapping.slice(l).map(d+A);r.setNodeMarkup(I,null,removeColSpan(u.attrs,a-f,u.attrs.colspan-(a-f))),r.insert(I+u.nodeSize,u.type.createAndFill(removeColSpan(u.attrs,0,a-f))),g+=u.attrs.rowspan-1}}return c}function insertCells(r,e,n,A,o){let s=n?r.doc.nodeAt(n-1):r.doc;if(!s)throw new Error("No table found");let a=TableMap.get(s);const{top:l,left:c}=A,g=c+o.width,h=l+o.height,d=r.tr;let u=0;function f(){if(s=n?d.doc.nodeAt(n-1):d.doc,!s)throw new Error("No table found");a=TableMap.get(s),u=d.mapping.maps.length}growTable(d,a,s,n,g,h,u)&&f(),isolateHorizontal(d,a,s,n,c,g,l,u)&&f(),isolateHorizontal(d,a,s,n,c,g,h,u)&&f(),isolateVertical(d,a,s,n,l,h,c,u)&&f(),isolateVertical(d,a,s,n,l,h,g,u)&&f();for(let I=l;I<h;I++){const p=a.positionAt(I,c,s),m=a.positionAt(I,g,s);d.replace(d.mapping.slice(u).map(p+n),d.mapping.slice(u).map(m+n),new Slice(o.rows[I-l],0,0))}f(),d.setSelection(new CellSelection(d.doc.resolve(n+a.positionAt(l,c,s)),d.doc.resolve(n+a.positionAt(h-1,g-1,s)))),e(d)}const handleKeyDown=keydownHandler({ArrowLeft:arrow("horiz",-1),ArrowRight:arrow("horiz",1),"Shift-ArrowLeft":shiftArrow("horiz",-1),"Shift-ArrowRight":shiftArrow("horiz",1),"Shift-ArrowUp":shiftArrow("vert",-1),"Shift-ArrowDown":shiftArrow("vert",1),Backspace:deleteCellSelection,"Mod-Backspace":deleteCellSelection,Delete:deleteCellSelection,"Mod-Delete":deleteCellSelection});function maybeSetSelection(r,e,n){return n.eq(r.selection)?!1:(e&&e(r.tr.setSelection(n).scrollIntoView()),!0)}function arrow(r,e){return(n,A,o)=>{if(!o)return!1;const s=n.selection;return s instanceof CellSelection?maybeSetSelection(n,A,Selection.near(s.$headCell,e)):atEndOfCell(o,r,e)==null?!1:maybeSetSelection(n,A,Selection.near(n.doc.resolve(s.head+e),e))}}function shiftArrow(r,e){return(n,A,o)=>{if(!o)return!1;const s=n.selection;let a;if(s instanceof CellSelection)a=s;else{const c=atEndOfCell(o,r,e);if(c==null)return!1;a=new CellSelection(n.doc.resolve(c))}const l=nextCell(a.$headCell,r,e);return l?maybeSetSelection(n,A,new CellSelection(a.$anchorCell,l)):!1}}function handleTripleClick(r,e){const n=r.state.doc,A=cellAround(n.resolve(e));return A?(r.dispatch(r.state.tr.setSelection(new CellSelection(A))),!0):!1}function handlePaste(r,e,n){if(!isInTable(r.state))return!1;let A=pastedCells(n);const o=r.state.selection;if(o instanceof CellSelection){A||(A={width:1,height:1,rows:[Fragment.from(fitSlice(tableNodeTypes(r.state.schema).cell,n))]});const s=o.$anchorCell.node(-1),a=o.$anchorCell.start(-1),l=TableMap.get(s).rectBetween(o.$anchorCell.pos-a,o.$headCell.pos-a);return A=clipCells(A,l.right-l.left,l.bottom-l.top),insertCells(r.state,r.dispatch,a,l,A),!0}else if(A){const s=selectionCell(r.state),a=s.start(-1);return insertCells(r.state,r.dispatch,a,TableMap.get(s.node(-1)).findCell(s.pos-a),A),!0}else return!1}function handleMouseDown(r,e){if(e.ctrlKey||e.metaKey)return;const n=domInCell(r,e.target);let A;if(e.shiftKey&&r.state.selection instanceof CellSelection)o(r.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&n&&(A=cellAround(r.state.selection.$anchor))!=null&&cellUnderMouse(r,e)?.pos!=A.pos)o(A,e),e.preventDefault();else if(!n)return;function o(l,c){let g=cellUnderMouse(r,c);const h=tableEditingKey.getState(r.state)==null;if(!g||!inSameTable(l,g))if(h)g=l;else return;const d=new CellSelection(l,g);if(h||!r.state.selection.eq(d)){const u=r.state.tr.setSelection(d);h&&u.setMeta(tableEditingKey,l.pos),r.dispatch(u)}}function s(){r.root.removeEventListener("mouseup",s),r.root.removeEventListener("dragstart",s),r.root.removeEventListener("mousemove",a),tableEditingKey.getState(r.state)!=null&&r.dispatch(r.state.tr.setMeta(tableEditingKey,-1))}function a(l){const c=l,g=tableEditingKey.getState(r.state);let h;if(g!=null)h=r.state.doc.resolve(g);else if(domInCell(r,c.target)!=n&&(h=cellUnderMouse(r,e),!h))return s();h&&o(h,c)}r.root.addEventListener("mouseup",s),r.root.addEventListener("dragstart",s),r.root.addEventListener("mousemove",a)}function atEndOfCell(r,e,n){if(!(r.state.selection instanceof TextSelection))return null;const{$head:A}=r.state.selection;for(let o=A.depth-1;o>=0;o--){const s=A.node(o);if((n<0?A.index(o):A.indexAfter(o))!=(n<0?0:s.childCount))return null;if(s.type.spec.tableRole=="cell"||s.type.spec.tableRole=="header_cell"){const l=A.before(o),c=e=="vert"?n>0?"down":"up":n>0?"right":"left";return r.endOfTextblock(c)?l:null}}return null}function domInCell(r,e){for(;e&&e!=r.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function cellUnderMouse(r,e){const n=r.posAtCoords({left:e.clientX,top:e.clientY});return n&&n?cellAround(r.state.doc.resolve(n.pos)):null}function tableEditing({allowTableNodeSelection:r=!1}={}){return new Plugin({key:tableEditingKey,state:{init(){return null},apply(e,n){const A=e.getMeta(tableEditingKey);if(A!=null)return A==-1?null:A;if(n==null||!e.docChanged)return n;const{deleted:o,pos:s}=e.mapping.mapResult(n);return o?null:s}},props:{decorations:drawCellSelection,handleDOMEvents:{mousedown:handleMouseDown},createSelectionBetween(e){return tableEditingKey.getState(e.state)!=null?e.state.selection:null},handleTripleClick,handleKeyDown,handlePaste},appendTransaction(e,n,A){return normalizeSelection(A,fixTables(A,n),r)}})}class NodeTable extends Node$1{constructor(){super(...arguments),this.name="table",this.requires=["doc"],this.attributes={class:{default:"table",fromDom(e){return e.hasAttribute("class")?e.getAttribute("class"):void 0}}}}getNodeSpec(){return{content:"table_row+",tableRole:"table",isolating:!0,group:"block",parseDOM:[{tag:"table",getAttrs:e=>setHtmlAttributes(this,e)}],toDOM:e=>["table",getHtmlAttributes(this,e),["tbody",0]]}}getCommandFactories(e,n){return{addColumnAfter:()=>(o,s)=>addColumnAfter(o,s),addColumnBefore:()=>(o,s)=>addColumnBefore(o,s),addRowAfter:()=>(o,s)=>addRowAfter(o,s),addRowBefore:()=>(o,s)=>addRowBefore(o,s),deleteColumn:()=>(o,s)=>deleteColumn(o,s),deleteRow:()=>(o,s)=>deleteRow(o,s),deleteTable:()=>(o,s)=>deleteTable(o,s),goToNextCell:o=>goToNextCell(o),mergeCells:()=>(o,s)=>mergeCells(o,s),setCellAttr:(...o)=>setCellAttr(...o),splitCell:()=>(o,s)=>splitCell(o,s),toggleHeader:(...o)=>toggleHeader(...o),toggleHeaderCell:()=>(o,s)=>toggleHeaderCell(o,s),toggleHeaderRow:()=>(o,s)=>toggleHeaderRow(o,s),toggleHeaderColumn:()=>(o,s)=>toggleHeaderColumn(o,s),insertTable:({rows:o=3,cols:s=3,withHeaderRow:a=!0}={})=>(l,c)=>{const g=l.tr,h=createTable(e.schema,o,s,a);if(c){const d=g.selection.from+1;g.replaceSelectionWith(h).scrollIntoView().setSelection(TextSelection.near(g.doc.resolve(d)))}return!0},setCellSelection:o=>(s,a)=>{if(a){const l=CellSelection.create(s.doc,o.anchorCell,o.headCell);s.tr.setSelection(l)}return!0}}}getKeyboardShortcuts(){return{}}getProseMirrorPlugins(){return[columnResizing(),tableEditing()]}}class NodeTableRow extends Node$1{constructor(){super(...arguments),this.name="table_row",this.requires=["table"]}getNodeSpec(){return{content:"(table_cell | table_header)*",tableRole:"row",parseDOM:[{tag:"tr"}],toDOM(){return["tr",0]}}}getCommandFactories(e,n){return{}}getKeyboardShortcuts(){return{}}}function getCellAttrs$1(r){if(typeof r=="string")return{};const e=r.getAttribute("data-colwidth"),n=e&&/^\d+(,\d+)*$/.test(e)?e.split(",").map(o=>Number(o)):null,A=Number(r.getAttribute("colspan")||1);return{colspan:A,rowspan:Number(r.getAttribute("rowspan")||1),colwidth:n&&n.length==A?n:null}}function setCellAttrs$1(r){return{colspan:r.attrs.colspan!=1?r.attrs.colspan:void 0,rowspan:r.attrs.rowspan!=1?r.attrs.rowspan:void 0,"data-colwidth":r.attrs.colwidth?.join(",")}}class NodeTableHeader extends Node$1{constructor(){super(...arguments),this.name="table_header",this.requires=["table"]}getNodeSpec(){return{content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:void 0}},tableRole:"header_cell",isolating:!0,parseDOM:[{tag:"th",getAttrs:e=>getCellAttrs$1(e)}],toDOM:e=>["th",setCellAttrs$1(e),0]}}}function getCellAttrs(r){if(typeof r=="string")return{};const e=r.getAttribute("data-colwidth"),n=e&&/^\d+(,\d+)*$/.test(e)?e.split(",").map(o=>Number(o)):null,A=Number(r.getAttribute("colspan")||1);return{colspan:A,rowspan:Number(r.getAttribute("rowspan")||1),colwidth:n&&n.length==A?n:null}}function setCellAttrs(r){return{colspan:r.attrs.colspan!=1?r.attrs.colspan:void 0,rowspan:r.attrs.rowspan!=1?r.attrs.rowspan:void 0,"data-colwidth":r.attrs.colwidth?.join(",")}}class NodeTableCell extends Node$1{constructor(){super(...arguments),this.name="table_cell",this.requires=["table_row"]}getNodeSpec(){return{content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:void 0}},tableRole:"cell",isolating:!0,parseDOM:[{tag:"td",getAttrs:e=>getCellAttrs(e)}],toDOM(e){return["td",setCellAttrs(e),0]}}}getCommandFactories(e,n){return{}}getKeyboardShortcuts(){return{}}}class ExtensionTables extends Extension{constructor(){super(...arguments),this.name="extension-tables",this.requires=[new NodeTable,new NodeTableHeader,new NodeTableRow,new NodeTableCell]}}class AdvancedEditorKit{constructor(e){this.menu=e}name="advanced-editor";getExtensions(){return[new ExtensionBasicEditor,new ExtensionMarkdown,new ExtensionOdt,new ExtensionTables,new ExtensionDevToolkit,new ExtensionCustomMenu(this.menu),new ExtensionCodeMirror({theme:[dracula]})]}}const createAssetLoad=r=>async e=>{const A=r.toString()+"/"+e,o=await fetch(A);if(o.status>=400)throw new Error(`Error fetching ${o.status}`);return new Uint8Array(await o.arrayBuffer())};var GOOD_LEAF_SIZE=200,RopeSequence=function r(){};RopeSequence.prototype.append=function r(e){return e.length?(e=RopeSequence.from(e),!this.length&&e||e.length<GOOD_LEAF_SIZE&&this.leafAppend(e)||this.length<GOOD_LEAF_SIZE&&e.leafPrepend(this)||this.appendInner(e)):this};RopeSequence.prototype.prepend=function r(e){return e.length?RopeSequence.from(e).append(this):this};RopeSequence.prototype.appendInner=function r(e){return new Append(this,e)};RopeSequence.prototype.slice=function r(e,n){return e===void 0&&(e=0),n===void 0&&(n=this.length),e>=n?RopeSequence.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,n))};RopeSequence.prototype.get=function r(e){if(!(e<0||e>=this.length))return this.getInner(e)};RopeSequence.prototype.forEach=function r(e,n,A){n===void 0&&(n=0),A===void 0&&(A=this.length),n<=A?this.forEachInner(e,n,A,0):this.forEachInvertedInner(e,n,A,0)};RopeSequence.prototype.map=function r(e,n,A){n===void 0&&(n=0),A===void 0&&(A=this.length);var o=[];return this.forEach(function(s,a){return o.push(e(s,a))},n,A),o};RopeSequence.from=function r(e){return e instanceof RopeSequence?e:e&&e.length?new Leaf(e):RopeSequence.empty};var Leaf=(function(r){function e(A){r.call(this),this.values=A}r&&(e.__proto__=r),e.prototype=Object.create(r&&r.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(o,s){return o==0&&s==this.length?this:new e(this.values.slice(o,s))},e.prototype.getInner=function(o){return this.values[o]},e.prototype.forEachInner=function(o,s,a,l){for(var c=s;c<a;c++)if(o(this.values[c],l+c)===!1)return!1},e.prototype.forEachInvertedInner=function(o,s,a,l){for(var c=s-1;c>=a;c--)if(o(this.values[c],l+c)===!1)return!1},e.prototype.leafAppend=function(o){if(this.length+o.length<=GOOD_LEAF_SIZE)return new e(this.values.concat(o.flatten()))},e.prototype.leafPrepend=function(o){if(this.length+o.length<=GOOD_LEAF_SIZE)return new e(o.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e})(RopeSequence);RopeSequence.empty=new Leaf([]);var Append=(function(r){function e(n,A){r.call(this),this.left=n,this.right=A,this.length=n.length+A.length,this.depth=Math.max(n.depth,A.depth)+1}return r&&(e.__proto__=r),e.prototype=Object.create(r&&r.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(A){return A<this.left.length?this.left.get(A):this.right.get(A-this.left.length)},e.prototype.forEachInner=function(A,o,s,a){var l=this.left.length;if(o<l&&this.left.forEachInner(A,o,Math.min(s,l),a)===!1||s>l&&this.right.forEachInner(A,Math.max(o-l,0),Math.min(this.length,s)-l,a+l)===!1)return!1},e.prototype.forEachInvertedInner=function(A,o,s,a){var l=this.left.length;if(o>l&&this.right.forEachInvertedInner(A,o-l,Math.max(s,l)-l,a+l)===!1||s<l&&this.left.forEachInvertedInner(A,Math.min(o,l),s,a)===!1)return!1},e.prototype.sliceInner=function(A,o){if(A==0&&o==this.length)return this;var s=this.left.length;return o<=s?this.left.slice(A,o):A>=s?this.right.slice(A-s,o-s):this.left.slice(A,s).append(this.right.slice(0,o-s))},e.prototype.leafAppend=function(A){var o=this.right.leafAppend(A);if(o)return new e(this.left,o)},e.prototype.leafPrepend=function(A){var o=this.left.leafPrepend(A);if(o)return new e(o,this.right)},e.prototype.appendInner=function(A){return this.left.depth>=Math.max(this.right.depth,A.depth)+1?new e(this.left,new e(this.right,A)):new e(this,A)},e})(RopeSequence);const max_empty_items=500;class Branch{constructor(e,n){this.items=e,this.eventCount=n}popEvent(e,n){if(this.eventCount==0)return null;let A=this.items.length;for(;;A--)if(this.items.get(A-1).selection){--A;break}let o,s;n&&(o=this.remapping(A,this.items.length),s=o.maps.length);let a=e.tr,l,c,g=[],h=[];return this.items.forEach((d,u)=>{if(!d.step){o||(o=this.remapping(A,u+1),s=o.maps.length),s--,h.push(d);return}if(o){h.push(new Item(d.map));let f=d.step.map(o.slice(s)),I;f&&a.maybeStep(f).doc&&(I=a.mapping.maps[a.mapping.maps.length-1],g.push(new Item(I,void 0,void 0,g.length+h.length))),s--,I&&o.appendMap(I,s)}else a.maybeStep(d.step);if(d.selection)return l=o?d.selection.map(o.slice(s)):d.selection,c=new Branch(this.items.slice(0,A).append(h.reverse().concat(g)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:a,selection:l}}addTransform(e,n,A,o){let s=[],a=this.eventCount,l=this.items,c=!o&&l.length?l.get(l.length-1):null;for(let h=0;h<e.steps.length;h++){let d=e.steps[h].invert(e.docs[h]),u=new Item(e.mapping.maps[h],d,n),f;(f=c&&c.merge(u))&&(u=f,h?s.pop():l=l.slice(0,l.length-1)),s.push(u),n&&(a++,n=void 0),o||(c=u)}let g=a-A.depth;return g>DEPTH_OVERFLOW&&(l=cutOffEvents(l,g),a-=g),new Branch(l.append(s),a)}remapping(e,n){let A=new Mapping;return this.items.forEach((o,s)=>{let a=o.mirrorOffset!=null&&s-o.mirrorOffset>=e?A.maps.length-o.mirrorOffset:void 0;A.appendMap(o.map,a)},e,n),A}addMaps(e){return this.eventCount==0?this:new Branch(this.items.append(e.map(n=>new Item(n))),this.eventCount)}rebased(e,n){if(!this.eventCount)return this;let A=[],o=Math.max(0,this.items.length-n),s=e.mapping,a=e.steps.length,l=this.eventCount;this.items.forEach(u=>{u.selection&&l--},o);let c=n;this.items.forEach(u=>{let f=s.getMirror(--c);if(f==null)return;a=Math.min(a,f);let I=s.maps[f];if(u.step){let p=e.steps[f].invert(e.docs[f]),m=u.selection&&u.selection.map(s.slice(c+1,f));m&&l++,A.push(new Item(I,p,m))}else A.push(new Item(I))},o);let g=[];for(let u=n;u<a;u++)g.push(new Item(s.maps[u]));let h=this.items.slice(0,o).append(g).append(A),d=new Branch(h,l);return d.emptyItemCount()>max_empty_items&&(d=d.compress(this.items.length-A.length)),d}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),A=n.maps.length,o=[],s=0;return this.items.forEach((a,l)=>{if(l>=e)o.push(a),a.selection&&s++;else if(a.step){let c=a.step.map(n.slice(A)),g=c&&c.getMap();if(A--,g&&n.appendMap(g,A),c){let h=a.selection&&a.selection.map(n.slice(A));h&&s++;let d=new Item(g.invert(),c,h),u,f=o.length-1;(u=o.length&&o[f].merge(d))?o[f]=u:o.push(d)}}else a.map&&A--},this.items.length,0),new Branch(RopeSequence.from(o.reverse()),s)}}Branch.empty=new Branch(RopeSequence.empty,0);function cutOffEvents(r,e){let n;return r.forEach((A,o)=>{if(A.selection&&e--==0)return n=o,!1}),r.slice(n)}class Item{constructor(e,n,A,o){this.map=e,this.step=n,this.selection=A,this.mirrorOffset=o}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new Item(n.getMap().invert(),n,this.selection)}}}class HistoryState{constructor(e,n,A,o,s){this.done=e,this.undone=n,this.prevRanges=A,this.prevTime=o,this.prevComposition=s}}const DEPTH_OVERFLOW=20;function applyTransaction(r,e,n,A){let o=n.getMeta(historyKey),s;if(o)return o.historyState;n.getMeta(closeHistoryKey)&&(r=new HistoryState(r.done,r.undone,null,0,-1));let a=n.getMeta("appendedTransaction");if(n.steps.length==0)return r;if(a&&a.getMeta(historyKey))return a.getMeta(historyKey).redo?new HistoryState(r.done.addTransform(n,void 0,A,mustPreserveItems(e)),r.undone,rangesFor(n.mapping.maps),r.prevTime,r.prevComposition):new HistoryState(r.done,r.undone.addTransform(n,void 0,A,mustPreserveItems(e)),null,r.prevTime,r.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(a&&a.getMeta("addToHistory")===!1)){let l=n.getMeta("composition"),c=r.prevTime==0||!a&&r.prevComposition!=l&&(r.prevTime<(n.time||0)-A.newGroupDelay||!isAdjacentTo(n,r.prevRanges)),g=a?mapRanges(r.prevRanges,n.mapping):rangesFor(n.mapping.maps);return new HistoryState(r.done.addTransform(n,c?e.selection.getBookmark():void 0,A,mustPreserveItems(e)),Branch.empty,g,n.time,l??r.prevComposition)}else return(s=n.getMeta("rebased"))?new HistoryState(r.done.rebased(n,s),r.undone.rebased(n,s),mapRanges(r.prevRanges,n.mapping),r.prevTime,r.prevComposition):new HistoryState(r.done.addMaps(n.mapping.maps),r.undone.addMaps(n.mapping.maps),mapRanges(r.prevRanges,n.mapping),r.prevTime,r.prevComposition)}function isAdjacentTo(r,e){if(!e)return!1;if(!r.docChanged)return!0;let n=!1;return r.mapping.maps[0].forEach((A,o)=>{for(let s=0;s<e.length;s+=2)A<=e[s+1]&&o>=e[s]&&(n=!0)}),n}function rangesFor(r){let e=[];for(let n=r.length-1;n>=0&&e.length==0;n--)r[n].forEach((A,o,s,a)=>e.push(s,a));return e}function mapRanges(r,e){if(!r)return null;let n=[];for(let A=0;A<r.length;A+=2){let o=e.map(r[A],1),s=e.map(r[A+1],-1);o<=s&&n.push(o,s)}return n}function histTransaction(r,e,n){let A=mustPreserveItems(e),o=historyKey.get(e).spec.config,s=(n?r.undone:r.done).popEvent(e,A);if(!s)return null;let a=s.selection.resolve(s.transform.doc),l=(n?r.done:r.undone).addTransform(s.transform,e.selection.getBookmark(),o,A),c=new HistoryState(n?l:s.remaining,n?s.remaining:l,null,0,-1);return s.transform.setSelection(a).setMeta(historyKey,{redo:n,historyState:c})}let cachedPreserveItems=!1,cachedPreserveItemsPlugins=null;function mustPreserveItems(r){let e=r.plugins;if(cachedPreserveItemsPlugins!=e){cachedPreserveItems=!1,cachedPreserveItemsPlugins=e;for(let n=0;n<e.length;n++)if(e[n].spec.historyPreserveItems){cachedPreserveItems=!0;break}}return cachedPreserveItems}const historyKey=new PluginKey("history"),closeHistoryKey=new PluginKey("closeHistory");function history(r={}){return r={depth:r.depth||100,newGroupDelay:r.newGroupDelay||500},new Plugin({key:historyKey,state:{init(){return new HistoryState(Branch.empty,Branch.empty,null,0,-1)},apply(e,n,A){return applyTransaction(n,A,e,r)}},config:r,props:{handleDOMEvents:{beforeinput(e,n){let A=n.inputType,o=A=="historyUndo"?undo:A=="historyRedo"?redo:null;return o?(n.preventDefault(),o(e.state,e.dispatch)):!1}}}})}function buildCommand(r,e){return(n,A)=>{let o=historyKey.getState(n);if(!o||(r?o.undone:o.done).eventCount==0)return!1;if(A){let s=histTransaction(o,n,r);s&&A(e?s.scrollIntoView():s)}return!0}}const undo=buildCommand(!1,!0),redo=buildCommand(!0,!0);class ExtensionHistory extends Extension{name="history";options={depth:100,newGroupDelay:500};getCommandFactories(e){return{undo:()=>undo,redo:()=>redo}}getKeyboardShortcuts(){const e=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator?.platform):!1,n={"Mod-z":"undo","Mod-y":"redo"};return e||(n["Mod-y"]="redo"),n}getProseMirrorPlugins(){return[history(this.options)]}}const __viteBrowserExternal=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));exports.AdvancedEditorKit=AdvancedEditorKit;exports.CompletionContext=CompletionContext;exports.CoreEditor=CoreEditor;exports.DefaultBufferLength=DefaultBufferLength;exports.EditorSelection=EditorSelection;exports.EditorState=EditorState;exports.EditorView=EditorView;exports.ExtensionHistory=ExtensionHistory;exports.LRLanguage=LRLanguage;exports.Language=Language$1;exports.LanguageDescription=LanguageDescription;exports.LanguageSupport=LanguageSupport;exports.NodeProp=NodeProp;exports.NodeSet=NodeSet;exports.NodeType=NodeType;exports.NodeWeakMap=NodeWeakMap;exports.ParseContext=ParseContext;exports.Parser=Parser$1;exports.Prec=Prec;exports.Tag=Tag;exports.Tree=Tree$1;exports.bracketMatchingHandle=bracketMatchingHandle;exports.completeFromList=completeFromList;exports.continuedIndent=continuedIndent;exports.countColumn=countColumn;exports.createAssetLoad=createAssetLoad;exports.defineLanguageFacet=defineLanguageFacet;exports.delimitedIndent=delimitedIndent;exports.flatIndent=flatIndent;exports.foldInside=foldInside;exports.foldNodeProp=foldNodeProp;exports.foldService=foldService;exports.ifNotIn=ifNotIn;exports.indentNodeProp=indentNodeProp;exports.indentUnit=indentUnit;exports.keymap=keymap;exports.languageDataProp=languageDataProp;exports.parseMixed=parseMixed;exports.snippetCompletion=snippetCompletion;exports.styleTags=styleTags;exports.sublanguageProp=sublanguageProp;exports.syntaxTree=syntaxTree;exports.tags=tags;
|
|
235
|
-
//# sourceMappingURL=__vite-browser-external-
|
|
235
|
+
//# sourceMappingURL=__vite-browser-external-Sbat7waZ.cjs.map
|