@hyzyn/dsh-tty 0.22.2 → 0.24.0

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/client.js CHANGED
@@ -1,23 +1,23 @@
1
- "use strict";(()=>{var vh=Object.create;var So=Object.defineProperty;var bh=Object.getOwnPropertyDescriptor;var wh=Object.getOwnPropertyNames;var yh=Object.getPrototypeOf,Sh=Object.prototype.hasOwnProperty;var Co=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var Ch=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of wh(t))!Sh.call(e,a)&&a!==r&&So(e,a,{get:()=>t[a],enumerable:!(s=bh(t,a))||s.enumerable});return e};var xo=(e,t,r)=>(r=e!=null?vh(yh(e)):{},Ch(t||!e||!e.__esModule?So(r,"default",{value:e,enumerable:!0}):r,e));var Eo=Co((Si,Ms)=>{(function(e,t){if(typeof Si=="object"&&typeof Ms=="object")Ms.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var r=t();for(var s in r)(typeof Si=="object"?Si:e)[s]=r[s]}})(globalThis,(()=>(()=>{"use strict";var e={4567:function(a,i,n){var o=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.AccessibilityManager=void 0;let l=n(9042),_=n(9924),m=n(844),w=n(4725),p=n(2585),c=n(3656),d=i.AccessibilityManager=class extends m.Disposable{constructor(h,f,g,C){super(),this._terminal=h,this._coreBrowserService=g,this._renderService=C,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let v=0;v<this._terminal.rows;v++)this._rowElements[v]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[v]);if(this._topBoundaryFocusListener=v=>this._handleBoundaryFocus(v,0),this._bottomBoundaryFocusListener=v=>this._handleBoundaryFocus(v,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new _.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((v=>this._handleResize(v.rows)))),this.register(this._terminal.onRender((v=>this._refreshRows(v.start,v.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((v=>this._handleChar(v)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(`
1
+ "use strict";(()=>{var Zh=Object.create;var Vo=Object.defineProperty;var Qh=Object.getOwnPropertyDescriptor;var ed=Object.getOwnPropertyNames;var td=Object.getPrototypeOf,rd=Object.prototype.hasOwnProperty;var Yo=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var sd=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ed(t))!rd.call(e,o)&&o!==r&&Vo(e,o,{get:()=>t[o],enumerable:!(s=Qh(t,o))||s.enumerable});return e};var Xo=(e,t,r)=>(r=e!=null?Zh(td(e)):{},sd(t||!e||!e.__esModule?Vo(r,"default",{value:e,enumerable:!0}):r,e));var Zo=Yo((Hs,Ji)=>{(function(e,t){if(typeof Hs=="object"&&typeof Ji=="object")Ji.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var r=t();for(var s in r)(typeof Hs=="object"?Hs:e)[s]=r[s]}})(globalThis,(()=>(()=>{"use strict";var e={4567:function(o,i,n){var a=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.AccessibilityManager=void 0;let l=n(9042),_=n(9924),m=n(844),y=n(4725),p=n(2585),c=n(3656),d=i.AccessibilityManager=class extends m.Disposable{constructor(h,f,g,C){super(),this._terminal=h,this._coreBrowserService=g,this._renderService=C,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let v=0;v<this._terminal.rows;v++)this._rowElements[v]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[v]);if(this._topBoundaryFocusListener=v=>this._handleBoundaryFocus(v,0),this._bottomBoundaryFocusListener=v=>this._handleBoundaryFocus(v,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new _.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((v=>this._handleResize(v.rows)))),this.register(this._terminal.onRender((v=>this._refreshRows(v.start,v.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((v=>this._handleChar(v)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(`
2
2
  `)))),this.register(this._terminal.onA11yTab((v=>this._handleTab(v)))),this.register(this._terminal.onKey((v=>this._handleKey(v.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,c.addDisposableDomListener)(document,"selectionchange",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,m.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(h){for(let f=0;f<h;f++)this._handleChar(" ")}_handleChar(h){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==h&&(this._charsToAnnounce+=h):this._charsToAnnounce+=h,h===`
3
- `&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=l.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(h){this._clearLiveRegion(),/\p{Control}/u.test(h)||this._charsToConsume.push(h)}_refreshRows(h,f){this._liveRegionDebouncer.refresh(h,f,this._terminal.rows)}_renderRows(h,f){let g=this._terminal.buffer,C=g.lines.length.toString();for(let v=h;v<=f;v++){let x=g.lines.get(g.ydisp+v),b=[],E=x?.translateToString(!0,void 0,void 0,b)||"",O=(g.ydisp+v+1).toString(),B=this._rowElements[v];B&&(E.length===0?(B.innerText="\xA0",this._rowColumns.set(B,[0,1])):(B.textContent=E,this._rowColumns.set(B,b)),B.setAttribute("aria-posinset",O),B.setAttribute("aria-setsize",C))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(h,f){let g=h.target,C=this._rowElements[f===0?1:this._rowElements.length-2];if(g.getAttribute("aria-posinset")===(f===0?"1":`${this._terminal.buffer.lines.length}`)||h.relatedTarget!==C)return;let v,x;if(f===0?(v=g,x=this._rowElements.pop(),this._rowContainer.removeChild(x)):(v=this._rowElements.shift(),x=g,this._rowContainer.removeChild(v)),v.removeEventListener("focus",this._topBoundaryFocusListener),x.removeEventListener("focus",this._bottomBoundaryFocusListener),f===0){let b=this._createAccessibilityTreeNode();this._rowElements.unshift(b),this._rowContainer.insertAdjacentElement("afterbegin",b)}else{let b=this._createAccessibilityTreeNode();this._rowElements.push(b),this._rowContainer.appendChild(b)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(f===0?-1:1),this._rowElements[f===0?1:this._rowElements.length-2].focus(),h.preventDefault(),h.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let h=document.getSelection();if(!h)return;if(h.isCollapsed)return void(this._rowContainer.contains(h.anchorNode)&&this._terminal.clearSelection());if(!h.anchorNode||!h.focusNode)return void console.error("anchorNode and/or focusNode are null");let f={node:h.anchorNode,offset:h.anchorOffset},g={node:h.focusNode,offset:h.focusOffset};if((f.node.compareDocumentPosition(g.node)&Node.DOCUMENT_POSITION_PRECEDING||f.node===g.node&&f.offset>g.offset)&&([f,g]=[g,f]),f.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(f={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(f.node))return;let C=this._rowElements.slice(-1)[0];if(g.node.compareDocumentPosition(C)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(g={node:C,offset:C.textContent?.length??0}),!this._rowContainer.contains(g.node))return;let v=({node:E,offset:O})=>{let B=E instanceof Text?E.parentNode:E,H=parseInt(B?.getAttribute("aria-posinset"),10)-1;if(isNaN(H))return console.warn("row is invalid. Race condition?"),null;let M=this._rowColumns.get(B);if(!M)return console.warn("columns is null. Race condition?"),null;let K=O<M.length?M[O]:M.slice(-1)[0]+1;return K>=this._terminal.cols&&(++H,K=0),{row:H,column:K}},x=v(f),b=v(g);if(x&&b){if(x.row>b.row||x.row===b.row&&x.column>=b.column)throw new Error("invalid range");this._terminal.select(x.column,x.row,(b.row-x.row)*this._terminal.cols-x.column+b.column)}}_handleResize(h){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let f=this._rowContainer.children.length;f<this._terminal.rows;f++)this._rowElements[f]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[f]);for(;this._rowElements.length>h;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let h=this._coreBrowserService.mainDocument.createElement("div");return h.setAttribute("role","listitem"),h.tabIndex=-1,this._refreshRowDimensions(h),h}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let h=0;h<this._terminal.rows;h++)this._refreshRowDimensions(this._rowElements[h])}}_refreshRowDimensions(h){h.style.height=`${this._renderService.dimensions.css.cell.height}px`}};i.AccessibilityManager=d=o([u(1,p.IInstantiationService),u(2,w.ICoreBrowserService),u(3,w.IRenderService)],d)},3614:(a,i)=>{function n(_){return _.replace(/\r?\n/g,"\r")}function o(_,m){return m?"\x1B[200~"+_+"\x1B[201~":_}function u(_,m,w,p){_=o(_=n(_),w.decPrivateModes.bracketedPasteMode&&p.rawOptions.ignoreBracketedPasteMode!==!0),w.triggerDataEvent(_,!0),m.value=""}function l(_,m,w){let p=w.getBoundingClientRect(),c=_.clientX-p.left-10,d=_.clientY-p.top-10;m.style.width="20px",m.style.height="20px",m.style.left=`${c}px`,m.style.top=`${d}px`,m.style.zIndex="1000",m.focus()}Object.defineProperty(i,"__esModule",{value:!0}),i.rightClickHandler=i.moveTextAreaUnderMouseCursor=i.paste=i.handlePasteEvent=i.copyHandler=i.bracketTextForPaste=i.prepareTextForTerminal=void 0,i.prepareTextForTerminal=n,i.bracketTextForPaste=o,i.copyHandler=function(_,m){_.clipboardData&&_.clipboardData.setData("text/plain",m.selectionText),_.preventDefault()},i.handlePasteEvent=function(_,m,w,p){_.stopPropagation(),_.clipboardData&&u(_.clipboardData.getData("text/plain"),m,w,p)},i.paste=u,i.moveTextAreaUnderMouseCursor=l,i.rightClickHandler=function(_,m,w,p,c){l(_,m,w),c&&p.rightClickSelect(_),m.value=p.selectionText,m.select()}},7239:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ColorContrastCache=void 0;let o=n(1505);i.ColorContrastCache=class{constructor(){this._color=new o.TwoKeyMap,this._css=new o.TwoKeyMap}setCss(u,l,_){this._css.set(u,l,_)}getCss(u,l){return this._css.get(u,l)}setColor(u,l,_){this._color.set(u,l,_)}getColor(u,l){return this._color.get(u,l)}clear(){this._color.clear(),this._css.clear()}}},3656:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.addDisposableDomListener=void 0,i.addDisposableDomListener=function(n,o,u,l){n.addEventListener(o,u,l);let _=!1;return{dispose:()=>{_||(_=!0,n.removeEventListener(o,u,l))}}}},3551:function(a,i,n){var o=this&&this.__decorate||function(d,h,f,g){var C,v=arguments.length,x=v<3?h:g===null?g=Object.getOwnPropertyDescriptor(h,f):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(d,h,f,g);else for(var b=d.length-1;b>=0;b--)(C=d[b])&&(x=(v<3?C(x):v>3?C(h,f,x):C(h,f))||x);return v>3&&x&&Object.defineProperty(h,f,x),x},u=this&&this.__param||function(d,h){return function(f,g){h(f,g,d)}};Object.defineProperty(i,"__esModule",{value:!0}),i.Linkifier=void 0;let l=n(3656),_=n(8460),m=n(844),w=n(2585),p=n(4725),c=i.Linkifier=class extends m.Disposable{get currentLink(){return this._currentLink}constructor(d,h,f,g,C){super(),this._element=d,this._mouseService=h,this._renderService=f,this._bufferService=g,this._linkProviderService=C,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new _.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new _.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,m.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,m.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,l.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,l.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,l.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,l.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(d){this._lastMouseEvent=d;let h=this._positionFromMouseEvent(d,this._element,this._mouseService);if(!h)return;this._isMouseOut=!1;let f=d.composedPath();for(let g=0;g<f.length;g++){let C=f[g];if(C.classList.contains("xterm"))break;if(C.classList.contains("xterm-hover"))return}this._lastBufferCell&&h.x===this._lastBufferCell.x&&h.y===this._lastBufferCell.y||(this._handleHover(h),this._lastBufferCell=h)}_handleHover(d){if(this._activeLine!==d.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(d,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,d)||(this._clearCurrentLink(),this._askForLink(d,!0))}_askForLink(d,h){this._activeProviderReplies&&h||(this._activeProviderReplies?.forEach((g=>{g?.forEach((C=>{C.link.dispose&&C.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=d.y);let f=!1;for(let[g,C]of this._linkProviderService.linkProviders.entries())h?this._activeProviderReplies?.get(g)&&(f=this._checkLinkProviderResult(g,d,f)):C.provideLinks(d.y,(v=>{if(this._isMouseOut)return;let x=v?.map((b=>({link:b})));this._activeProviderReplies?.set(g,x),f=this._checkLinkProviderResult(g,d,f),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(d.y,this._activeProviderReplies)}))}_removeIntersectingLinks(d,h){let f=new Set;for(let g=0;g<h.size;g++){let C=h.get(g);if(C)for(let v=0;v<C.length;v++){let x=C[v],b=x.link.range.start.y<d?0:x.link.range.start.x,E=x.link.range.end.y>d?this._bufferService.cols:x.link.range.end.x;for(let O=b;O<=E;O++){if(f.has(O)){C.splice(v--,1);break}f.add(O)}}}}_checkLinkProviderResult(d,h,f){if(!this._activeProviderReplies)return f;let g=this._activeProviderReplies.get(d),C=!1;for(let v=0;v<d;v++)this._activeProviderReplies.has(v)&&!this._activeProviderReplies.get(v)||(C=!0);if(!C&&g){let v=g.find((x=>this._linkAtPosition(x.link,h)));v&&(f=!0,this._handleNewLink(v))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!f)for(let v=0;v<this._activeProviderReplies.size;v++){let x=this._activeProviderReplies.get(v)?.find((b=>this._linkAtPosition(b.link,h)));if(x){f=!0,this._handleNewLink(x);break}}return f}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(d){if(!this._currentLink)return;let h=this._positionFromMouseEvent(d,this._element,this._mouseService);h&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,h)&&this._currentLink.link.activate(d,this._currentLink.link.text)}_clearCurrentLink(d,h){this._currentLink&&this._lastMouseEvent&&(!d||!h||this._currentLink.link.range.start.y>=d&&this._currentLink.link.range.end.y<=h)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,m.disposeArray)(this._linkCacheDisposables))}_handleNewLink(d){if(!this._lastMouseEvent)return;let h=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);h&&this._linkAtPosition(d.link,h)&&(this._currentLink=d,this._currentLink.state={decorations:{underline:d.link.decorations===void 0||d.link.decorations.underline,pointerCursor:d.link.decorations===void 0||d.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,d.link,this._lastMouseEvent),d.link.decorations={},Object.defineProperties(d.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:f=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==f&&(this._currentLink.state.decorations.pointerCursor=f,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",f))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:f=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==f&&(this._currentLink.state.decorations.underline=f,this._currentLink.state.isHovered&&this._fireUnderlineEvent(d.link,f))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((f=>{if(!this._currentLink)return;let g=f.start===0?0:f.start+1+this._bufferService.buffer.ydisp,C=this._bufferService.buffer.ydisp+1+f.end;if(this._currentLink.link.range.start.y>=g&&this._currentLink.link.range.end.y<=C&&(this._clearCurrentLink(g,C),this._lastMouseEvent)){let v=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);v&&this._askForLink(v,!1)}}))))}_linkHover(d,h,f){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(h,!0),this._currentLink.state.decorations.pointerCursor&&d.classList.add("xterm-cursor-pointer")),h.hover&&h.hover(f,h.text)}_fireUnderlineEvent(d,h){let f=d.range,g=this._bufferService.buffer.ydisp,C=this._createLinkUnderlineEvent(f.start.x-1,f.start.y-g-1,f.end.x,f.end.y-g-1,void 0);(h?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(C)}_linkLeave(d,h,f){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(h,!1),this._currentLink.state.decorations.pointerCursor&&d.classList.remove("xterm-cursor-pointer")),h.leave&&h.leave(f,h.text)}_linkAtPosition(d,h){let f=d.range.start.y*this._bufferService.cols+d.range.start.x,g=d.range.end.y*this._bufferService.cols+d.range.end.x,C=h.y*this._bufferService.cols+h.x;return f<=C&&C<=g}_positionFromMouseEvent(d,h,f){let g=f.getCoords(d,h,this._bufferService.cols,this._bufferService.rows);if(g)return{x:g[0],y:g[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(d,h,f,g,C){return{x1:d,y1:h,x2:f,y2:g,cols:this._bufferService.cols,fg:C}}};i.Linkifier=c=o([u(1,p.IMouseService),u(2,p.IRenderService),u(3,w.IBufferService),u(4,p.ILinkProviderService)],c)},9042:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.tooMuchOutput=i.promptLabel=void 0,i.promptLabel="Terminal input",i.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(a,i,n){var o=this&&this.__decorate||function(p,c,d,h){var f,g=arguments.length,C=g<3?c:h===null?h=Object.getOwnPropertyDescriptor(c,d):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,c,d,h);else for(var v=p.length-1;v>=0;v--)(f=p[v])&&(C=(g<3?f(C):g>3?f(c,d,C):f(c,d))||C);return g>3&&C&&Object.defineProperty(c,d,C),C},u=this&&this.__param||function(p,c){return function(d,h){c(d,h,p)}};Object.defineProperty(i,"__esModule",{value:!0}),i.OscLinkProvider=void 0;let l=n(511),_=n(2585),m=i.OscLinkProvider=class{constructor(p,c,d){this._bufferService=p,this._optionsService=c,this._oscLinkService=d}provideLinks(p,c){let d=this._bufferService.buffer.lines.get(p-1);if(!d)return void c(void 0);let h=[],f=this._optionsService.rawOptions.linkHandler,g=new l.CellData,C=d.getTrimmedLength(),v=-1,x=-1,b=!1;for(let E=0;E<C;E++)if(x!==-1||d.hasContent(E)){if(d.loadCell(E,g),g.hasExtendedAttrs()&&g.extended.urlId){if(x===-1){x=E,v=g.extended.urlId;continue}b=g.extended.urlId!==v}else x!==-1&&(b=!0);if(b||x!==-1&&E===C-1){let O=this._oscLinkService.getLinkData(v)?.uri;if(O){let B={start:{x:x+1,y:p},end:{x:E+(b||E!==C-1?0:1),y:p}},H=!1;if(!f?.allowNonHttpProtocols)try{let M=new URL(O);["http:","https:"].includes(M.protocol)||(H=!0)}catch{H=!0}H||h.push({text:O,range:B,activate:(M,K)=>f?f.activate(M,K,B):w(0,K),hover:(M,K)=>f?.hover?.(M,K,B),leave:(M,K)=>f?.leave?.(M,K,B)})}b=!1,g.hasExtendedAttrs()&&g.extended.urlId?(x=E,v=g.extended.urlId):(x=-1,v=-1)}}c(h)}};function w(p,c){if(confirm(`Do you want to navigate to ${c}?
3
+ `&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=l.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(h){this._clearLiveRegion(),/\p{Control}/u.test(h)||this._charsToConsume.push(h)}_refreshRows(h,f){this._liveRegionDebouncer.refresh(h,f,this._terminal.rows)}_renderRows(h,f){let g=this._terminal.buffer,C=g.lines.length.toString();for(let v=h;v<=f;v++){let x=g.lines.get(g.ydisp+v),b=[],E=x?.translateToString(!0,void 0,void 0,b)||"",O=(g.ydisp+v+1).toString(),B=this._rowElements[v];B&&(E.length===0?(B.innerText="\xA0",this._rowColumns.set(B,[0,1])):(B.textContent=E,this._rowColumns.set(B,b)),B.setAttribute("aria-posinset",O),B.setAttribute("aria-setsize",C))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(h,f){let g=h.target,C=this._rowElements[f===0?1:this._rowElements.length-2];if(g.getAttribute("aria-posinset")===(f===0?"1":`${this._terminal.buffer.lines.length}`)||h.relatedTarget!==C)return;let v,x;if(f===0?(v=g,x=this._rowElements.pop(),this._rowContainer.removeChild(x)):(v=this._rowElements.shift(),x=g,this._rowContainer.removeChild(v)),v.removeEventListener("focus",this._topBoundaryFocusListener),x.removeEventListener("focus",this._bottomBoundaryFocusListener),f===0){let b=this._createAccessibilityTreeNode();this._rowElements.unshift(b),this._rowContainer.insertAdjacentElement("afterbegin",b)}else{let b=this._createAccessibilityTreeNode();this._rowElements.push(b),this._rowContainer.appendChild(b)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(f===0?-1:1),this._rowElements[f===0?1:this._rowElements.length-2].focus(),h.preventDefault(),h.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let h=document.getSelection();if(!h)return;if(h.isCollapsed)return void(this._rowContainer.contains(h.anchorNode)&&this._terminal.clearSelection());if(!h.anchorNode||!h.focusNode)return void console.error("anchorNode and/or focusNode are null");let f={node:h.anchorNode,offset:h.anchorOffset},g={node:h.focusNode,offset:h.focusOffset};if((f.node.compareDocumentPosition(g.node)&Node.DOCUMENT_POSITION_PRECEDING||f.node===g.node&&f.offset>g.offset)&&([f,g]=[g,f]),f.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(f={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(f.node))return;let C=this._rowElements.slice(-1)[0];if(g.node.compareDocumentPosition(C)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(g={node:C,offset:C.textContent?.length??0}),!this._rowContainer.contains(g.node))return;let v=({node:E,offset:O})=>{let B=E instanceof Text?E.parentNode:E,N=parseInt(B?.getAttribute("aria-posinset"),10)-1;if(isNaN(N))return console.warn("row is invalid. Race condition?"),null;let A=this._rowColumns.get(B);if(!A)return console.warn("columns is null. Race condition?"),null;let K=O<A.length?A[O]:A.slice(-1)[0]+1;return K>=this._terminal.cols&&(++N,K=0),{row:N,column:K}},x=v(f),b=v(g);if(x&&b){if(x.row>b.row||x.row===b.row&&x.column>=b.column)throw new Error("invalid range");this._terminal.select(x.column,x.row,(b.row-x.row)*this._terminal.cols-x.column+b.column)}}_handleResize(h){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let f=this._rowContainer.children.length;f<this._terminal.rows;f++)this._rowElements[f]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[f]);for(;this._rowElements.length>h;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let h=this._coreBrowserService.mainDocument.createElement("div");return h.setAttribute("role","listitem"),h.tabIndex=-1,this._refreshRowDimensions(h),h}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let h=0;h<this._terminal.rows;h++)this._refreshRowDimensions(this._rowElements[h])}}_refreshRowDimensions(h){h.style.height=`${this._renderService.dimensions.css.cell.height}px`}};i.AccessibilityManager=d=a([u(1,p.IInstantiationService),u(2,y.ICoreBrowserService),u(3,y.IRenderService)],d)},3614:(o,i)=>{function n(_){return _.replace(/\r?\n/g,"\r")}function a(_,m){return m?"\x1B[200~"+_+"\x1B[201~":_}function u(_,m,y,p){_=a(_=n(_),y.decPrivateModes.bracketedPasteMode&&p.rawOptions.ignoreBracketedPasteMode!==!0),y.triggerDataEvent(_,!0),m.value=""}function l(_,m,y){let p=y.getBoundingClientRect(),c=_.clientX-p.left-10,d=_.clientY-p.top-10;m.style.width="20px",m.style.height="20px",m.style.left=`${c}px`,m.style.top=`${d}px`,m.style.zIndex="1000",m.focus()}Object.defineProperty(i,"__esModule",{value:!0}),i.rightClickHandler=i.moveTextAreaUnderMouseCursor=i.paste=i.handlePasteEvent=i.copyHandler=i.bracketTextForPaste=i.prepareTextForTerminal=void 0,i.prepareTextForTerminal=n,i.bracketTextForPaste=a,i.copyHandler=function(_,m){_.clipboardData&&_.clipboardData.setData("text/plain",m.selectionText),_.preventDefault()},i.handlePasteEvent=function(_,m,y,p){_.stopPropagation(),_.clipboardData&&u(_.clipboardData.getData("text/plain"),m,y,p)},i.paste=u,i.moveTextAreaUnderMouseCursor=l,i.rightClickHandler=function(_,m,y,p,c){l(_,m,y),c&&p.rightClickSelect(_),m.value=p.selectionText,m.select()}},7239:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ColorContrastCache=void 0;let a=n(1505);i.ColorContrastCache=class{constructor(){this._color=new a.TwoKeyMap,this._css=new a.TwoKeyMap}setCss(u,l,_){this._css.set(u,l,_)}getCss(u,l){return this._css.get(u,l)}setColor(u,l,_){this._color.set(u,l,_)}getColor(u,l){return this._color.get(u,l)}clear(){this._color.clear(),this._css.clear()}}},3656:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.addDisposableDomListener=void 0,i.addDisposableDomListener=function(n,a,u,l){n.addEventListener(a,u,l);let _=!1;return{dispose:()=>{_||(_=!0,n.removeEventListener(a,u,l))}}}},3551:function(o,i,n){var a=this&&this.__decorate||function(d,h,f,g){var C,v=arguments.length,x=v<3?h:g===null?g=Object.getOwnPropertyDescriptor(h,f):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(d,h,f,g);else for(var b=d.length-1;b>=0;b--)(C=d[b])&&(x=(v<3?C(x):v>3?C(h,f,x):C(h,f))||x);return v>3&&x&&Object.defineProperty(h,f,x),x},u=this&&this.__param||function(d,h){return function(f,g){h(f,g,d)}};Object.defineProperty(i,"__esModule",{value:!0}),i.Linkifier=void 0;let l=n(3656),_=n(8460),m=n(844),y=n(2585),p=n(4725),c=i.Linkifier=class extends m.Disposable{get currentLink(){return this._currentLink}constructor(d,h,f,g,C){super(),this._element=d,this._mouseService=h,this._renderService=f,this._bufferService=g,this._linkProviderService=C,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new _.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new _.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,m.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,m.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,l.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,l.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,l.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,l.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(d){this._lastMouseEvent=d;let h=this._positionFromMouseEvent(d,this._element,this._mouseService);if(!h)return;this._isMouseOut=!1;let f=d.composedPath();for(let g=0;g<f.length;g++){let C=f[g];if(C.classList.contains("xterm"))break;if(C.classList.contains("xterm-hover"))return}this._lastBufferCell&&h.x===this._lastBufferCell.x&&h.y===this._lastBufferCell.y||(this._handleHover(h),this._lastBufferCell=h)}_handleHover(d){if(this._activeLine!==d.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(d,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,d)||(this._clearCurrentLink(),this._askForLink(d,!0))}_askForLink(d,h){this._activeProviderReplies&&h||(this._activeProviderReplies?.forEach((g=>{g?.forEach((C=>{C.link.dispose&&C.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=d.y);let f=!1;for(let[g,C]of this._linkProviderService.linkProviders.entries())h?this._activeProviderReplies?.get(g)&&(f=this._checkLinkProviderResult(g,d,f)):C.provideLinks(d.y,(v=>{if(this._isMouseOut)return;let x=v?.map((b=>({link:b})));this._activeProviderReplies?.set(g,x),f=this._checkLinkProviderResult(g,d,f),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(d.y,this._activeProviderReplies)}))}_removeIntersectingLinks(d,h){let f=new Set;for(let g=0;g<h.size;g++){let C=h.get(g);if(C)for(let v=0;v<C.length;v++){let x=C[v],b=x.link.range.start.y<d?0:x.link.range.start.x,E=x.link.range.end.y>d?this._bufferService.cols:x.link.range.end.x;for(let O=b;O<=E;O++){if(f.has(O)){C.splice(v--,1);break}f.add(O)}}}}_checkLinkProviderResult(d,h,f){if(!this._activeProviderReplies)return f;let g=this._activeProviderReplies.get(d),C=!1;for(let v=0;v<d;v++)this._activeProviderReplies.has(v)&&!this._activeProviderReplies.get(v)||(C=!0);if(!C&&g){let v=g.find((x=>this._linkAtPosition(x.link,h)));v&&(f=!0,this._handleNewLink(v))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!f)for(let v=0;v<this._activeProviderReplies.size;v++){let x=this._activeProviderReplies.get(v)?.find((b=>this._linkAtPosition(b.link,h)));if(x){f=!0,this._handleNewLink(x);break}}return f}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(d){if(!this._currentLink)return;let h=this._positionFromMouseEvent(d,this._element,this._mouseService);h&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,h)&&this._currentLink.link.activate(d,this._currentLink.link.text)}_clearCurrentLink(d,h){this._currentLink&&this._lastMouseEvent&&(!d||!h||this._currentLink.link.range.start.y>=d&&this._currentLink.link.range.end.y<=h)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,m.disposeArray)(this._linkCacheDisposables))}_handleNewLink(d){if(!this._lastMouseEvent)return;let h=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);h&&this._linkAtPosition(d.link,h)&&(this._currentLink=d,this._currentLink.state={decorations:{underline:d.link.decorations===void 0||d.link.decorations.underline,pointerCursor:d.link.decorations===void 0||d.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,d.link,this._lastMouseEvent),d.link.decorations={},Object.defineProperties(d.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:f=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==f&&(this._currentLink.state.decorations.pointerCursor=f,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",f))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:f=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==f&&(this._currentLink.state.decorations.underline=f,this._currentLink.state.isHovered&&this._fireUnderlineEvent(d.link,f))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((f=>{if(!this._currentLink)return;let g=f.start===0?0:f.start+1+this._bufferService.buffer.ydisp,C=this._bufferService.buffer.ydisp+1+f.end;if(this._currentLink.link.range.start.y>=g&&this._currentLink.link.range.end.y<=C&&(this._clearCurrentLink(g,C),this._lastMouseEvent)){let v=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);v&&this._askForLink(v,!1)}}))))}_linkHover(d,h,f){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(h,!0),this._currentLink.state.decorations.pointerCursor&&d.classList.add("xterm-cursor-pointer")),h.hover&&h.hover(f,h.text)}_fireUnderlineEvent(d,h){let f=d.range,g=this._bufferService.buffer.ydisp,C=this._createLinkUnderlineEvent(f.start.x-1,f.start.y-g-1,f.end.x,f.end.y-g-1,void 0);(h?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(C)}_linkLeave(d,h,f){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(h,!1),this._currentLink.state.decorations.pointerCursor&&d.classList.remove("xterm-cursor-pointer")),h.leave&&h.leave(f,h.text)}_linkAtPosition(d,h){let f=d.range.start.y*this._bufferService.cols+d.range.start.x,g=d.range.end.y*this._bufferService.cols+d.range.end.x,C=h.y*this._bufferService.cols+h.x;return f<=C&&C<=g}_positionFromMouseEvent(d,h,f){let g=f.getCoords(d,h,this._bufferService.cols,this._bufferService.rows);if(g)return{x:g[0],y:g[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(d,h,f,g,C){return{x1:d,y1:h,x2:f,y2:g,cols:this._bufferService.cols,fg:C}}};i.Linkifier=c=a([u(1,p.IMouseService),u(2,p.IRenderService),u(3,y.IBufferService),u(4,p.ILinkProviderService)],c)},9042:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.tooMuchOutput=i.promptLabel=void 0,i.promptLabel="Terminal input",i.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(o,i,n){var a=this&&this.__decorate||function(p,c,d,h){var f,g=arguments.length,C=g<3?c:h===null?h=Object.getOwnPropertyDescriptor(c,d):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,c,d,h);else for(var v=p.length-1;v>=0;v--)(f=p[v])&&(C=(g<3?f(C):g>3?f(c,d,C):f(c,d))||C);return g>3&&C&&Object.defineProperty(c,d,C),C},u=this&&this.__param||function(p,c){return function(d,h){c(d,h,p)}};Object.defineProperty(i,"__esModule",{value:!0}),i.OscLinkProvider=void 0;let l=n(511),_=n(2585),m=i.OscLinkProvider=class{constructor(p,c,d){this._bufferService=p,this._optionsService=c,this._oscLinkService=d}provideLinks(p,c){let d=this._bufferService.buffer.lines.get(p-1);if(!d)return void c(void 0);let h=[],f=this._optionsService.rawOptions.linkHandler,g=new l.CellData,C=d.getTrimmedLength(),v=-1,x=-1,b=!1;for(let E=0;E<C;E++)if(x!==-1||d.hasContent(E)){if(d.loadCell(E,g),g.hasExtendedAttrs()&&g.extended.urlId){if(x===-1){x=E,v=g.extended.urlId;continue}b=g.extended.urlId!==v}else x!==-1&&(b=!0);if(b||x!==-1&&E===C-1){let O=this._oscLinkService.getLinkData(v)?.uri;if(O){let B={start:{x:x+1,y:p},end:{x:E+(b||E!==C-1?0:1),y:p}},N=!1;if(!f?.allowNonHttpProtocols)try{let A=new URL(O);["http:","https:"].includes(A.protocol)||(N=!0)}catch{N=!0}N||h.push({text:O,range:B,activate:(A,K)=>f?f.activate(A,K,B):y(0,K),hover:(A,K)=>f?.hover?.(A,K,B),leave:(A,K)=>f?.leave?.(A,K,B)})}b=!1,g.hasExtendedAttrs()&&g.extended.urlId?(x=E,v=g.extended.urlId):(x=-1,v=-1)}}c(h)}};function y(p,c){if(confirm(`Do you want to navigate to ${c}?
4
4
 
5
- WARNING: This link could potentially be dangerous`)){let d=window.open();if(d){try{d.opener=null}catch{}d.location.href=c}else console.warn("Opening link blocked as opener could not be cleared")}}i.OscLinkProvider=m=o([u(0,_.IBufferService),u(1,_.IOptionsService),u(2,_.IOscLinkService)],m)},6193:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.RenderDebouncer=void 0,i.RenderDebouncer=class{constructor(n,o){this._renderCallback=n,this._coreBrowserService=o,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(n){return this._refreshCallbacks.push(n),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(n,o,u){this._rowCount=u,n=n!==void 0?n:0,o=o!==void 0?o:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,n):n,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,o):o,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return void this._runRefreshCallbacks();let n=Math.max(this._rowStart,0),o=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(n,o),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let n of this._refreshCallbacks)n(0);this._refreshCallbacks=[]}}},3236:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Terminal=void 0;let o=n(3614),u=n(3656),l=n(3551),_=n(9042),m=n(3730),w=n(1680),p=n(3107),c=n(5744),d=n(2950),h=n(1296),f=n(428),g=n(4269),C=n(5114),v=n(8934),x=n(3230),b=n(9312),E=n(4725),O=n(6731),B=n(8055),H=n(8969),M=n(8460),K=n(844),P=n(6114),D=n(8437),F=n(2584),N=n(7399),y=n(5941),T=n(9074),k=n(2585),R=n(5435),U=n(4567),G=n(779);class J extends H.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(W={}){super(W),this.browser=P,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new K.MutableDisposable),this._onCursorMove=this.register(new M.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new M.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new M.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new M.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new M.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new M.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new M.EventEmitter),this._onBlur=this.register(new M.EventEmitter),this._onA11yCharEmitter=this.register(new M.EventEmitter),this._onA11yTabEmitter=this.register(new M.EventEmitter),this._onWillOpen=this.register(new M.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(T.DecorationService),this._instantiationService.setService(k.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(G.LinkProviderService),this._instantiationService.setService(E.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(m.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((L,I)=>this.refresh(L,I)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((L=>this._reportWindowsOptions(L)))),this.register(this._inputHandler.onColor((L=>this._handleColorEvent(L)))),this.register((0,M.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,M.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,M.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,M.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((L=>this._afterResize(L.cols,L.rows)))),this.register((0,K.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(W){if(this._themeService)for(let L of W){let I,z="";switch(L.index){case 256:I="foreground",z="10";break;case 257:I="background",z="11";break;case 258:I="cursor",z="12";break;default:I="ansi",z="4;"+L.index}switch(L.type){case 0:let $=B.color.toColorRGB(I==="ansi"?this._themeService.colors.ansi[L.index]:this._themeService.colors[I]);this.coreService.triggerDataEvent(`${F.C0.ESC}]${z};${(0,y.toRgbString)($)}${F.C1_ESCAPED.ST}`);break;case 1:if(I==="ansi")this._themeService.modifyColors((q=>q.ansi[L.index]=B.channels.toColor(...L.color)));else{let q=I;this._themeService.modifyColors((ee=>ee[q]=B.channels.toColor(...L.color)))}break;case 2:this._themeService.restoreColor(L.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(W){W?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(U.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(W){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(F.C0.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(F.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let W=this.buffer.ybase+this.buffer.y,L=this.buffer.lines.get(W);if(!L)return;let I=Math.min(this.buffer.x,this.cols-1),z=this._renderService.dimensions.css.cell.height,$=L.getWidth(I),q=this._renderService.dimensions.css.cell.width*$,ee=this.buffer.y*this._renderService.dimensions.css.cell.height,he=I*this._renderService.dimensions.css.cell.width;this.textarea.style.left=he+"px",this.textarea.style.top=ee+"px",this.textarea.style.width=q+"px",this.textarea.style.height=z+"px",this.textarea.style.lineHeight=z+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,u.addDisposableDomListener)(this.element,"copy",(L=>{this.hasSelection()&&(0,o.copyHandler)(L,this._selectionService)})));let W=L=>(0,o.handlePasteEvent)(L,this.textarea,this.coreService,this.optionsService);this.register((0,u.addDisposableDomListener)(this.textarea,"paste",W)),this.register((0,u.addDisposableDomListener)(this.element,"paste",W)),P.isFirefox?this.register((0,u.addDisposableDomListener)(this.element,"mousedown",(L=>{L.button===2&&(0,o.rightClickHandler)(L,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,u.addDisposableDomListener)(this.element,"contextmenu",(L=>{(0,o.rightClickHandler)(L,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),P.isLinux&&this.register((0,u.addDisposableDomListener)(this.element,"auxclick",(L=>{L.button===1&&(0,o.moveTextAreaUnderMouseCursor)(L,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,u.addDisposableDomListener)(this.textarea,"keyup",(W=>this._keyUp(W)),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"keydown",(W=>this._keyDown(W)),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"keypress",(W=>this._keyPress(W)),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionupdate",(W=>this._compositionHelper.compositionupdate(W)))),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this.register((0,u.addDisposableDomListener)(this.textarea,"input",(W=>this._inputEvent(W)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(W){if(!W)throw new Error("Terminal requires a parent element.");if(W.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=W.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),W.appendChild(this.element);let L=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),L.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this.register((0,u.addDisposableDomListener)(this.screenElement,"mousemove",(I=>this.updateCursorStyle(I)))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),L.appendChild(this.screenElement),this.textarea=this._document.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",_.promptLabel),P.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(C.CoreBrowserService,this.textarea,W.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(E.ICoreBrowserService,this._coreBrowserService),this.register((0,u.addDisposableDomListener)(this.textarea,"focus",(I=>this._handleTextAreaFocus(I)))),this.register((0,u.addDisposableDomListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(f.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(E.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(O.ThemeService),this._instantiationService.setService(E.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(g.CharacterJoinerService),this._instantiationService.setService(E.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(x.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(E.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((I=>this._onRender.fire(I)))),this.onResize((I=>this._renderService.resize(I.cols,I.rows))),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(v.MouseService),this._instantiationService.setService(E.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(l.Linkifier,this.screenElement)),this.element.appendChild(L);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(w.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((I=>this.scrollLines(I.amount,I.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(b.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(E.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((I=>this.scrollLines(I.amount,I.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((I=>this._renderService.handleSelectionChanged(I.start,I.end,I.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((I=>{this.textarea.value=I,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((I=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,u.addDisposableDomListener)(this._viewportElement,"scroll",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(p.BufferDecorationRenderer,this.screenElement)),this.register((0,u.addDisposableDomListener)(this.element,"mousedown",(I=>this._selectionService.handleMouseDown(I)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(U.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",(I=>this._handleScreenReaderModeOptionChange(I)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(c.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",(I=>{!this._overviewRulerRenderer&&I&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(c.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(h.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let W=this,L=this.element;function I(q){let ee=W._mouseService.getMouseReportCoords(q,W.screenElement);if(!ee)return!1;let he,de;switch(q.overrideType||q.type){case"mousemove":de=32,q.buttons===void 0?(he=3,q.button!==void 0&&(he=q.button<3?q.button:3)):he=1&q.buttons?0:4&q.buttons?1:2&q.buttons?2:3;break;case"mouseup":de=0,he=q.button<3?q.button:3;break;case"mousedown":de=1,he=q.button<3?q.button:3;break;case"wheel":if(W._customWheelEventHandler&&W._customWheelEventHandler(q)===!1||W.viewport.getLinesScrolled(q)===0)return!1;de=q.deltaY<0?0:1,he=4;break;default:return!1}return!(de===void 0||he===void 0||he>4)&&W.coreMouseService.triggerMouseEvent({col:ee.col,row:ee.row,x:ee.x,y:ee.y,button:he,action:de,ctrl:q.ctrlKey,alt:q.altKey,shift:q.shiftKey})}let z={mouseup:null,wheel:null,mousedrag:null,mousemove:null},$={mouseup:q=>(I(q),q.buttons||(this._document.removeEventListener("mouseup",z.mouseup),z.mousedrag&&this._document.removeEventListener("mousemove",z.mousedrag)),this.cancel(q)),wheel:q=>(I(q),this.cancel(q,!0)),mousedrag:q=>{q.buttons&&I(q)},mousemove:q=>{q.buttons||I(q)}};this.register(this.coreMouseService.onProtocolChange((q=>{q?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(q)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&q?z.mousemove||(L.addEventListener("mousemove",$.mousemove),z.mousemove=$.mousemove):(L.removeEventListener("mousemove",z.mousemove),z.mousemove=null),16&q?z.wheel||(L.addEventListener("wheel",$.wheel,{passive:!1}),z.wheel=$.wheel):(L.removeEventListener("wheel",z.wheel),z.wheel=null),2&q?z.mouseup||(z.mouseup=$.mouseup):(this._document.removeEventListener("mouseup",z.mouseup),z.mouseup=null),4&q?z.mousedrag||(z.mousedrag=$.mousedrag):(this._document.removeEventListener("mousemove",z.mousedrag),z.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,u.addDisposableDomListener)(L,"mousedown",(q=>{if(q.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(q))return I(q),z.mouseup&&this._document.addEventListener("mouseup",z.mouseup),z.mousedrag&&this._document.addEventListener("mousemove",z.mousedrag),this.cancel(q)}))),this.register((0,u.addDisposableDomListener)(L,"wheel",(q=>{if(!z.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(q)===!1)return!1;if(!this.buffer.hasScrollback){let ee=this.viewport.getLinesScrolled(q);if(ee===0)return;let he=F.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(q.deltaY<0?"A":"B"),de="";for(let re=0;re<Math.abs(ee);re++)de+=he;return this.coreService.triggerDataEvent(de,!0),this.cancel(q,!0)}return this.viewport.handleWheel(q)?this.cancel(q):void 0}}),{passive:!1})),this.register((0,u.addDisposableDomListener)(L,"touchstart",(q=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(q),this.cancel(q)}),{passive:!0})),this.register((0,u.addDisposableDomListener)(L,"touchmove",(q=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(q)?void 0:this.cancel(q)}),{passive:!1}))}refresh(W,L){this._renderService?.refreshRows(W,L)}updateCursorStyle(W){this._selectionService?.shouldColumnSelect(W)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(W,L,I=0){I===1?(super.scrollLines(W,L,I),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(W)}paste(W){(0,o.paste)(W,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(W){this._customKeyEventHandler=W}attachCustomWheelEventHandler(W){this._customWheelEventHandler=W}registerLinkProvider(W){return this._linkProviderService.registerLinkProvider(W)}registerCharacterJoiner(W){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");let L=this._characterJoinerService.register(W);return this.refresh(0,this.rows-1),L}deregisterCharacterJoiner(W){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(W)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(W){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+W)}registerDecoration(W){return this._decorationService.registerDecoration(W)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(W,L,I){this._selectionService.setSelection(W,L,I)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(W,L){this._selectionService?.selectLines(W,L)}_keyDown(W){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(W)===!1)return!1;let L=this.browser.isMac&&this.options.macOptionIsMeta&&W.altKey;if(!L&&!this._compositionHelper.keydown(W))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;L||W.key!=="Dead"&&W.key!=="AltGraph"||(this._unprocessedDeadKey=!0);let I=(0,N.evaluateKeyboardEvent)(W,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(W),I.type===3||I.type===2){let z=this.rows-1;return this.scrollLines(I.type===2?-z:z),this.cancel(W,!0)}return I.type===1&&this.selectAll(),!!this._isThirdLevelShift(this.browser,W)||(I.cancel&&this.cancel(W,!0),!I.key||!!(W.key&&!W.ctrlKey&&!W.altKey&&!W.metaKey&&W.key.length===1&&W.key.charCodeAt(0)>=65&&W.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(I.key!==F.C0.ETX&&I.key!==F.C0.CR||(this.textarea.value=""),this._onKey.fire({key:I.key,domEvent:W}),this._showCursor(),this.coreService.triggerDataEvent(I.key,!0),!this.optionsService.rawOptions.screenReaderMode||W.altKey||W.ctrlKey?this.cancel(W,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(W,L){let I=W.isMac&&!this.options.macOptionIsMeta&&L.altKey&&!L.ctrlKey&&!L.metaKey||W.isWindows&&L.altKey&&L.ctrlKey&&!L.metaKey||W.isWindows&&L.getModifierState("AltGraph");return L.type==="keypress"?I:I&&(!L.keyCode||L.keyCode>47)}_keyUp(W){this._keyDownSeen=!1,this._customKeyEventHandler&&this._customKeyEventHandler(W)===!1||((function(L){return L.keyCode===16||L.keyCode===17||L.keyCode===18})(W)||this.focus(),this.updateCursorStyle(W),this._keyPressHandled=!1)}_keyPress(W){let L;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(W)===!1)return!1;if(this.cancel(W),W.charCode)L=W.charCode;else if(W.which===null||W.which===void 0)L=W.keyCode;else{if(W.which===0||W.charCode===0)return!1;L=W.which}return!(!L||(W.altKey||W.ctrlKey||W.metaKey)&&!this._isThirdLevelShift(this.browser,W)||(L=String.fromCharCode(L),this._onKey.fire({key:L,domEvent:W}),this._showCursor(),this.coreService.triggerDataEvent(L,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(W){if(W.data&&W.inputType==="insertText"&&(!W.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let L=W.data;return this.coreService.triggerDataEvent(L,!0),this.cancel(W),!0}return!1}resize(W,L){W!==this.cols||L!==this.rows?super.resize(W,L):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(W,L){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(this.buffer.ybase!==0||this.buffer.y!==0){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let W=1;W<this.rows;W++)this.buffer.lines.push(this.buffer.getBlankLine(D.DEFAULT_ATTR_DATA));this._onScroll.fire({position:this.buffer.ydisp,source:0}),this.viewport?.reset(),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;let W=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this.viewport?.reset(),this._customKeyEventHandler=W,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains("focus")?this.coreService.triggerDataEvent(F.C0.ESC+"[I"):this.coreService.triggerDataEvent(F.C0.ESC+"[O")}_reportWindowsOptions(W){if(this._renderService)switch(W){case R.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:let L=this._renderService.dimensions.css.canvas.width.toFixed(0),I=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${F.C0.ESC}[4;${I};${L}t`);break;case R.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:let z=this._renderService.dimensions.css.cell.width.toFixed(0),$=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${F.C0.ESC}[6;${$};${z}t`)}}cancel(W,L){if(this.options.cancelEvents||L)return W.preventDefault(),W.stopPropagation(),!1}}i.Terminal=J},9924:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.TimeBasedDebouncer=void 0,i.TimeBasedDebouncer=class{constructor(n,o=1e3){this._renderCallback=n,this._debounceThresholdMS=o,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(n,o,u){this._rowCount=u,n=n!==void 0?n:0,o=o!==void 0?o:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,n):n,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,o):o;let l=Date.now();if(l-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=l,this._innerRefresh();else if(!this._additionalRefreshRequested){let _=l-this._lastRefreshMs,m=this._debounceThresholdMS-_;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),m)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let n=Math.max(this._rowStart,0),o=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(n,o)}}},1680:function(a,i,n){var o=this&&this.__decorate||function(d,h,f,g){var C,v=arguments.length,x=v<3?h:g===null?g=Object.getOwnPropertyDescriptor(h,f):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(d,h,f,g);else for(var b=d.length-1;b>=0;b--)(C=d[b])&&(x=(v<3?C(x):v>3?C(h,f,x):C(h,f))||x);return v>3&&x&&Object.defineProperty(h,f,x),x},u=this&&this.__param||function(d,h){return function(f,g){h(f,g,d)}};Object.defineProperty(i,"__esModule",{value:!0}),i.Viewport=void 0;let l=n(3656),_=n(4725),m=n(8460),w=n(844),p=n(2585),c=i.Viewport=class extends w.Disposable{constructor(d,h,f,g,C,v,x,b){super(),this._viewportElement=d,this._scrollArea=h,this._bufferService=f,this._optionsService=g,this._charSizeService=C,this._renderService=v,this._coreBrowserService=x,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new m.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,l.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((E=>this._activeBuffer=E.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((E=>this._renderDimensions=E))),this._handleThemeChange(b.colors),this.register(b.onChangeColors((E=>this._handleThemeChange(E)))),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(d){this._viewportElement.style.backgroundColor=d.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(d){if(d)return this._innerRefresh(),void(this._refreshAnimationFrame!==null&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));this._refreshAnimationFrame===null&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;let h=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==h&&(this._lastRecordedBufferHeight=h,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}let d=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==d&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=d),this._refreshAnimationFrame=null}syncScrollArea(d=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(d);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(d)}_handleScroll(d){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});let h=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:h,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||this._smoothScrollState.origin===-1||this._smoothScrollState.target===-1)return;let d=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(d*(this._smoothScrollState.target-this._smoothScrollState.origin)),d<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(d,h){let f=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(h<0&&this._viewportElement.scrollTop!==0||h>0&&f<this._lastRecordedBufferHeight)||(d.cancelable&&d.preventDefault(),!1)}handleWheel(d){let h=this._getPixelsScrolled(d);return h!==0&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target===-1?this._smoothScrollState.target=this._viewportElement.scrollTop+h:this._smoothScrollState.target+=h,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=h,this._bubbleScroll(d,h))}scrollLines(d){if(d!==0)if(this._optionsService.rawOptions.smoothScrollDuration){let h=d*this._currentRowHeight;this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target=this._smoothScrollState.origin+h,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()}else this._onRequestScrollLines.fire({amount:d,suppressScrollEvent:!1})}_getPixelsScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let h=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_LINE?h*=this._currentRowHeight:d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(h*=this._currentRowHeight*this._bufferService.rows),h}getBufferElements(d,h){let f,g="",C=[],v=h??this._bufferService.buffer.lines.length,x=this._bufferService.buffer.lines;for(let b=d;b<v;b++){let E=x.get(b);if(!E)continue;let O=x.get(b+1)?.isWrapped;if(g+=E.translateToString(!O),!O||b===x.length-1){let B=document.createElement("div");B.textContent=g,C.push(B),g.length>0&&(f=B),g=""}}return{bufferElements:C,cursorElement:f}}getLinesScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let h=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(h/=this._currentRowHeight+0,this._wheelPartialScroll+=h,h=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(h*=this._bufferService.rows),h}_applyScrollModifier(d,h){let f=this._optionsService.rawOptions.fastScrollModifier;return f==="alt"&&h.altKey||f==="ctrl"&&h.ctrlKey||f==="shift"&&h.shiftKey?d*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:d*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(d){this._lastTouchY=d.touches[0].pageY}handleTouchMove(d){let h=this._lastTouchY-d.touches[0].pageY;return this._lastTouchY=d.touches[0].pageY,h!==0&&(this._viewportElement.scrollTop+=h,this._bubbleScroll(d,h))}};i.Viewport=c=o([u(2,p.IBufferService),u(3,p.IOptionsService),u(4,_.ICharSizeService),u(5,_.IRenderService),u(6,_.ICoreBrowserService),u(7,_.IThemeService)],c)},3107:function(a,i,n){var o=this&&this.__decorate||function(p,c,d,h){var f,g=arguments.length,C=g<3?c:h===null?h=Object.getOwnPropertyDescriptor(c,d):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,c,d,h);else for(var v=p.length-1;v>=0;v--)(f=p[v])&&(C=(g<3?f(C):g>3?f(c,d,C):f(c,d))||C);return g>3&&C&&Object.defineProperty(c,d,C),C},u=this&&this.__param||function(p,c){return function(d,h){c(d,h,p)}};Object.defineProperty(i,"__esModule",{value:!0}),i.BufferDecorationRenderer=void 0;let l=n(4725),_=n(844),m=n(2585),w=i.BufferDecorationRenderer=class extends _.Disposable{constructor(p,c,d,h,f){super(),this._screenElement=p,this._bufferService=c,this._coreBrowserService=d,this._decorationService=h,this._renderService=f,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((g=>this._removeDecoration(g)))),this.register((0,_.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(let p of this._decorationService.decorations)this._renderDecoration(p);this._dimensionsChanged=!1}_renderDecoration(p){this._refreshStyle(p),this._dimensionsChanged&&this._refreshXPosition(p)}_createElement(p){let c=this._coreBrowserService.mainDocument.createElement("div");c.classList.add("xterm-decoration"),c.classList.toggle("xterm-decoration-top-layer",p?.options?.layer==="top"),c.style.width=`${Math.round((p.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,c.style.height=(p.options.height||1)*this._renderService.dimensions.css.cell.height+"px",c.style.top=(p.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",c.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let d=p.options.x??0;return d&&d>this._bufferService.cols&&(c.style.display="none"),this._refreshXPosition(p,c),c}_refreshStyle(p){let c=p.marker.line-this._bufferService.buffers.active.ydisp;if(c<0||c>=this._bufferService.rows)p.element&&(p.element.style.display="none",p.onRenderEmitter.fire(p.element));else{let d=this._decorationElements.get(p);d||(d=this._createElement(p),p.element=d,this._decorationElements.set(p,d),this._container.appendChild(d),p.onDispose((()=>{this._decorationElements.delete(p),d.remove()}))),d.style.top=c*this._renderService.dimensions.css.cell.height+"px",d.style.display=this._altBufferIsActive?"none":"block",p.onRenderEmitter.fire(d)}}_refreshXPosition(p,c=p.element){if(!c)return;let d=p.options.x??0;(p.options.anchor||"left")==="right"?c.style.right=d?d*this._renderService.dimensions.css.cell.width+"px":"":c.style.left=d?d*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(p){this._decorationElements.get(p)?.remove(),this._decorationElements.delete(p),p.dispose()}};i.BufferDecorationRenderer=w=o([u(1,m.IBufferService),u(2,l.ICoreBrowserService),u(3,m.IDecorationService),u(4,l.IRenderService)],w)},5871:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ColorZoneStore=void 0,i.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(n){if(n.options.overviewRulerOptions){for(let o of this._zones)if(o.color===n.options.overviewRulerOptions.color&&o.position===n.options.overviewRulerOptions.position){if(this._lineIntersectsZone(o,n.marker.line))return;if(this._lineAdjacentToZone(o,n.marker.line,n.options.overviewRulerOptions.position))return void this._addLineToZone(o,n.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=n.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=n.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=n.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=n.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:n.options.overviewRulerOptions.color,position:n.options.overviewRulerOptions.position,startBufferLine:n.marker.line,endBufferLine:n.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(n){this._linePadding=n}_lineIntersectsZone(n,o){return o>=n.startBufferLine&&o<=n.endBufferLine}_lineAdjacentToZone(n,o,u){return o>=n.startBufferLine-this._linePadding[u||"full"]&&o<=n.endBufferLine+this._linePadding[u||"full"]}_addLineToZone(n,o){n.startBufferLine=Math.min(n.startBufferLine,o),n.endBufferLine=Math.max(n.endBufferLine,o)}}},5744:function(a,i,n){var o=this&&this.__decorate||function(f,g,C,v){var x,b=arguments.length,E=b<3?g:v===null?v=Object.getOwnPropertyDescriptor(g,C):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(f,g,C,v);else for(var O=f.length-1;O>=0;O--)(x=f[O])&&(E=(b<3?x(E):b>3?x(g,C,E):x(g,C))||E);return b>3&&E&&Object.defineProperty(g,C,E),E},u=this&&this.__param||function(f,g){return function(C,v){g(C,v,f)}};Object.defineProperty(i,"__esModule",{value:!0}),i.OverviewRulerRenderer=void 0;let l=n(5871),_=n(4725),m=n(844),w=n(2585),p={full:0,left:0,center:0,right:0},c={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},h=i.OverviewRulerRenderer=class extends m.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(f,g,C,v,x,b,E){super(),this._viewportElement=f,this._screenElement=g,this._bufferService=C,this._decorationService=v,this._renderService=x,this._optionsService=b,this._coreBrowserService=E,this._colorZoneStore=new l.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);let O=this._canvas.getContext("2d");if(!O)throw new Error("Ctx cannot be null");this._ctx=O,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,m.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){let f=Math.floor(this._canvas.width/3),g=Math.ceil(this._canvas.width/3);c.full=this._canvas.width,c.left=f,c.center=g,c.right=f,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=c.left,d.right=c.left+c.center}_refreshDrawHeightConstants(){p.full=Math.round(2*this._coreBrowserService.dpr);let f=this._canvas.height/this._bufferService.buffer.lines.length,g=Math.round(Math.max(Math.min(f,12),6)*this._coreBrowserService.dpr);p.left=g,p.center=g,p.right=g}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let g of this._decorationService.decorations)this._colorZoneStore.addDecoration(g);this._ctx.lineWidth=1;let f=this._colorZoneStore.zones;for(let g of f)g.position!=="full"&&this._renderColorZone(g);for(let g of f)g.position==="full"&&this._renderColorZone(g);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(f){this._ctx.fillStyle=f.color,this._ctx.fillRect(d[f.position||"full"],Math.round((this._canvas.height-1)*(f.startBufferLine/this._bufferService.buffers.active.lines.length)-p[f.position||"full"]/2),c[f.position||"full"],Math.round((this._canvas.height-1)*((f.endBufferLine-f.startBufferLine)/this._bufferService.buffers.active.lines.length)+p[f.position||"full"]))}_queueRefresh(f,g){this._shouldUpdateDimensions=f||this._shouldUpdateDimensions,this._shouldUpdateAnchor=g||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};i.OverviewRulerRenderer=h=o([u(2,w.IBufferService),u(3,w.IDecorationService),u(4,_.IRenderService),u(5,w.IOptionsService),u(6,_.ICoreBrowserService)],h)},2950:function(a,i,n){var o=this&&this.__decorate||function(p,c,d,h){var f,g=arguments.length,C=g<3?c:h===null?h=Object.getOwnPropertyDescriptor(c,d):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,c,d,h);else for(var v=p.length-1;v>=0;v--)(f=p[v])&&(C=(g<3?f(C):g>3?f(c,d,C):f(c,d))||C);return g>3&&C&&Object.defineProperty(c,d,C),C},u=this&&this.__param||function(p,c){return function(d,h){c(d,h,p)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CompositionHelper=void 0;let l=n(4725),_=n(2585),m=n(2584),w=i.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(p,c,d,h,f,g){this._textarea=p,this._compositionView=c,this._bufferService=d,this._optionsService=h,this._coreService=f,this._renderService=g,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(p){this._compositionView.textContent=p.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(p){if(this._isComposing||this._isSendingComposition){if(p.keyCode===229||p.keyCode===16||p.keyCode===17||p.keyCode===18)return!1;this._finalizeComposition(!1)}return p.keyCode!==229||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(p){if(this._compositionView.classList.remove("active"),this._isComposing=!1,p){let c={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let d;this._isSendingComposition=!1,c.start+=this._dataAlreadySent.length,d=this._isComposing?this._textarea.value.substring(c.start,c.end):this._textarea.value.substring(c.start),d.length>0&&this._coreService.triggerDataEvent(d,!0)}}),0)}else{this._isSendingComposition=!1;let c=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(c,!0)}}_handleAnyTextareaChanges(){let p=this._textarea.value;setTimeout((()=>{if(!this._isComposing){let c=this._textarea.value,d=c.replace(p,"");this._dataAlreadySent=d,c.length>p.length?this._coreService.triggerDataEvent(d,!0):c.length<p.length?this._coreService.triggerDataEvent(`${m.C0.DEL}`,!0):c.length===p.length&&c!==p&&this._coreService.triggerDataEvent(c,!0)}}),0)}updateCompositionElements(p){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){let c=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),d=this._renderService.dimensions.css.cell.height,h=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,f=c*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=f+"px",this._compositionView.style.top=h+"px",this._compositionView.style.height=d+"px",this._compositionView.style.lineHeight=d+"px",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+"px";let g=this._compositionView.getBoundingClientRect();this._textarea.style.left=f+"px",this._textarea.style.top=h+"px",this._textarea.style.width=Math.max(g.width,1)+"px",this._textarea.style.height=Math.max(g.height,1)+"px",this._textarea.style.lineHeight=g.height+"px"}p||setTimeout((()=>this.updateCompositionElements(!0)),0)}}};i.CompositionHelper=w=o([u(2,_.IBufferService),u(3,_.IOptionsService),u(4,_.ICoreService),u(5,l.IRenderService)],w)},9806:(a,i)=>{function n(o,u,l){let _=l.getBoundingClientRect(),m=o.getComputedStyle(l),w=parseInt(m.getPropertyValue("padding-left")),p=parseInt(m.getPropertyValue("padding-top"));return[u.clientX-_.left-w,u.clientY-_.top-p]}Object.defineProperty(i,"__esModule",{value:!0}),i.getCoords=i.getCoordsRelativeToElement=void 0,i.getCoordsRelativeToElement=n,i.getCoords=function(o,u,l,_,m,w,p,c,d){if(!w)return;let h=n(o,u,l);return h?(h[0]=Math.ceil((h[0]+(d?p/2:0))/p),h[1]=Math.ceil(h[1]/c),h[0]=Math.min(Math.max(h[0],1),_+(d?1:0)),h[1]=Math.min(Math.max(h[1],1),m),h):void 0}},9504:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.moveToCellSequence=void 0;let o=n(2584);function u(c,d,h,f){let g=c-l(c,h),C=d-l(d,h),v=Math.abs(g-C)-(function(x,b,E){let O=0,B=x-l(x,E),H=b-l(b,E);for(let M=0;M<Math.abs(B-H);M++){let K=_(x,b)==="A"?-1:1;E.buffer.lines.get(B+K*M)?.isWrapped&&O++}return O})(c,d,h);return p(v,w(_(c,d),f))}function l(c,d){let h=0,f=d.buffer.lines.get(c),g=f?.isWrapped;for(;g&&c>=0&&c<d.rows;)h++,f=d.buffer.lines.get(--c),g=f?.isWrapped;return h}function _(c,d){return c>d?"A":"B"}function m(c,d,h,f,g,C){let v=c,x=d,b="";for(;v!==h||x!==f;)v+=g?1:-1,g&&v>C.cols-1?(b+=C.buffer.translateBufferLineToString(x,!1,c,v),v=0,c=0,x++):!g&&v<0&&(b+=C.buffer.translateBufferLineToString(x,!1,0,c+1),v=C.cols-1,c=v,x--);return b+C.buffer.translateBufferLineToString(x,!1,c,v)}function w(c,d){let h=d?"O":"[";return o.C0.ESC+h+c}function p(c,d){c=Math.floor(c);let h="";for(let f=0;f<c;f++)h+=d;return h}i.moveToCellSequence=function(c,d,h,f){let g=h.buffer.x,C=h.buffer.y;if(!h.buffer.hasScrollback)return(function(b,E,O,B,H,M){return u(E,B,H,M).length===0?"":p(m(b,E,b,E-l(E,H),!1,H).length,w("D",M))})(g,C,0,d,h,f)+u(C,d,h,f)+(function(b,E,O,B,H,M){let K;K=u(E,B,H,M).length>0?B-l(B,H):E;let P=B,D=(function(F,N,y,T,k,R){let U;return U=u(y,T,k,R).length>0?T-l(T,k):N,F<y&&U<=T||F>=y&&U<T?"C":"D"})(b,E,O,B,H,M);return p(m(b,K,O,P,D==="C",H).length,w(D,M))})(g,C,c,d,h,f);let v;if(C===d)return v=g>c?"D":"C",p(Math.abs(g-c),w(v,f));v=C>d?"D":"C";let x=Math.abs(C-d);return p((function(b,E){return E.cols-b})(C>d?c:g,h)+(x-1)*h.cols+1+((C>d?g:c)-1),w(v,f))}},1296:function(a,i,n){var o=this&&this.__decorate||function(M,K,P,D){var F,N=arguments.length,y=N<3?K:D===null?D=Object.getOwnPropertyDescriptor(K,P):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")y=Reflect.decorate(M,K,P,D);else for(var T=M.length-1;T>=0;T--)(F=M[T])&&(y=(N<3?F(y):N>3?F(K,P,y):F(K,P))||y);return N>3&&y&&Object.defineProperty(K,P,y),y},u=this&&this.__param||function(M,K){return function(P,D){K(P,D,M)}};Object.defineProperty(i,"__esModule",{value:!0}),i.DomRenderer=void 0;let l=n(3787),_=n(2550),m=n(2223),w=n(6171),p=n(6052),c=n(4725),d=n(8055),h=n(8460),f=n(844),g=n(2585),C="xterm-dom-renderer-owner-",v="xterm-rows",x="xterm-fg-",b="xterm-bg-",E="xterm-focus",O="xterm-selection",B=1,H=i.DomRenderer=class extends f.Disposable{constructor(M,K,P,D,F,N,y,T,k,R,U,G,J){super(),this._terminal=M,this._document=K,this._element=P,this._screenElement=D,this._viewportElement=F,this._helperContainer=N,this._linkifier2=y,this._charSizeService=k,this._optionsService=R,this._bufferService=U,this._coreBrowserService=G,this._themeService=J,this._terminalClass=B++,this._rowElements=[],this._selectionRenderModel=(0,p.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new h.EventEmitter).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(v),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement("div"),this._selectionContainer.classList.add(O),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,w.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((X=>this._injectCss(X)))),this._injectCss(this._themeService.colors),this._rowFactory=T.createInstance(l.DomRendererRowFactory,document),this._element.classList.add(C+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((X=>this._handleLinkHover(X)))),this.register(this._linkifier2.onHideLinkUnderline((X=>this._handleLinkLeave(X)))),this.register((0,f.toDisposable)((()=>{this._element.classList.remove(C+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new _.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let M=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*M,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*M),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/M),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/M),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let P of this._rowElements)P.style.width=`${this.dimensions.css.canvas.width}px`,P.style.height=`${this.dimensions.css.cell.height}px`,P.style.lineHeight=`${this.dimensions.css.cell.height}px`,P.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));let K=`${this._terminalSelector} .${v} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=K,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(M){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let K=`${this._terminalSelector} .${v} { color: ${M.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;K+=`${this._terminalSelector} .${v} .xterm-dim { color: ${d.color.multiplyOpacity(M.foreground,.5).css};}`,K+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let P=`blink_underline_${this._terminalClass}`,D=`blink_bar_${this._terminalClass}`,F=`blink_block_${this._terminalClass}`;K+=`@keyframes ${P} { 50% { border-bottom-style: hidden; }}`,K+=`@keyframes ${D} { 50% { box-shadow: none; }}`,K+=`@keyframes ${F} { 0% { background-color: ${M.cursor.css}; color: ${M.cursorAccent.css}; } 50% { background-color: inherit; color: ${M.cursor.css}; }}`,K+=`${this._terminalSelector} .${v}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${P} 1s step-end infinite;}${this._terminalSelector} .${v}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${D} 1s step-end infinite;}${this._terminalSelector} .${v}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${F} 1s step-end infinite;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-block { background-color: ${M.cursor.css}; color: ${M.cursorAccent.css};}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${M.cursor.css} !important; color: ${M.cursorAccent.css} !important;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${M.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${M.cursor.css} inset;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${M.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,K+=`${this._terminalSelector} .${O} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${O} div { position: absolute; background-color: ${M.selectionBackgroundOpaque.css};}${this._terminalSelector} .${O} div { position: absolute; background-color: ${M.selectionInactiveBackgroundOpaque.css};}`;for(let[N,y]of M.ansi.entries())K+=`${this._terminalSelector} .${x}${N} { color: ${y.css}; }${this._terminalSelector} .${x}${N}.xterm-dim { color: ${d.color.multiplyOpacity(y,.5).css}; }${this._terminalSelector} .${b}${N} { background-color: ${y.css}; }`;K+=`${this._terminalSelector} .${x}${m.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(M.background).css}; }${this._terminalSelector} .${x}${m.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(M.background),.5).css}; }${this._terminalSelector} .${b}${m.INVERTED_DEFAULT_COLOR} { background-color: ${M.foreground.css}; }`,this._themeStyleElement.textContent=K}_setDefaultSpacing(){let M=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${M}px`,this._rowFactory.defaultSpacing=M}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(M,K){for(let P=this._rowElements.length;P<=K;P++){let D=this._document.createElement("div");this._rowContainer.appendChild(D),this._rowElements.push(D)}for(;this._rowElements.length>K;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(M,K){this._refreshRowElements(M,K),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(E),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(E),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(M,K,P){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(M,K,P),this.renderRows(0,this._bufferService.rows-1),!M||!K)return;this._selectionRenderModel.update(this._terminal,M,K,P);let D=this._selectionRenderModel.viewportStartRow,F=this._selectionRenderModel.viewportEndRow,N=this._selectionRenderModel.viewportCappedStartRow,y=this._selectionRenderModel.viewportCappedEndRow;if(N>=this._bufferService.rows||y<0)return;let T=this._document.createDocumentFragment();if(P){let k=M[0]>K[0];T.appendChild(this._createSelectionElement(N,k?K[0]:M[0],k?M[0]:K[0],y-N+1))}else{let k=D===N?M[0]:0,R=N===F?K[0]:this._bufferService.cols;T.appendChild(this._createSelectionElement(N,k,R));let U=y-N-1;if(T.appendChild(this._createSelectionElement(N+1,0,this._bufferService.cols,U)),N!==y){let G=F===y?K[0]:this._bufferService.cols;T.appendChild(this._createSelectionElement(y,0,G))}}this._selectionContainer.appendChild(T)}_createSelectionElement(M,K,P,D=1){let F=this._document.createElement("div"),N=K*this.dimensions.css.cell.width,y=this.dimensions.css.cell.width*(P-K);return N+y>this.dimensions.css.canvas.width&&(y=this.dimensions.css.canvas.width-N),F.style.height=D*this.dimensions.css.cell.height+"px",F.style.top=M*this.dimensions.css.cell.height+"px",F.style.left=`${N}px`,F.style.width=`${y}px`,F}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let M of this._rowElements)M.replaceChildren()}renderRows(M,K){let P=this._bufferService.buffer,D=P.ybase+P.y,F=Math.min(P.x,this._bufferService.cols-1),N=this._optionsService.rawOptions.cursorBlink,y=this._optionsService.rawOptions.cursorStyle,T=this._optionsService.rawOptions.cursorInactiveStyle;for(let k=M;k<=K;k++){let R=k+P.ydisp,U=this._rowElements[k],G=P.lines.get(R);if(!U||!G)break;U.replaceChildren(...this._rowFactory.createRow(G,R,R===D,y,T,F,N,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${C}${this._terminalClass}`}_handleLinkHover(M){this._setCellUnderline(M.x1,M.x2,M.y1,M.y2,M.cols,!0)}_handleLinkLeave(M){this._setCellUnderline(M.x1,M.x2,M.y1,M.y2,M.cols,!1)}_setCellUnderline(M,K,P,D,F,N){P<0&&(M=0),D<0&&(K=0);let y=this._bufferService.rows-1;P=Math.max(Math.min(P,y),0),D=Math.max(Math.min(D,y),0),F=Math.min(F,this._bufferService.cols);let T=this._bufferService.buffer,k=T.ybase+T.y,R=Math.min(T.x,F-1),U=this._optionsService.rawOptions.cursorBlink,G=this._optionsService.rawOptions.cursorStyle,J=this._optionsService.rawOptions.cursorInactiveStyle;for(let X=P;X<=D;++X){let W=X+T.ydisp,L=this._rowElements[X],I=T.lines.get(W);if(!L||!I)break;L.replaceChildren(...this._rowFactory.createRow(I,W,W===k,G,J,R,U,this.dimensions.css.cell.width,this._widthCache,N?X===P?M:0:-1,N?(X===D?K:F)-1:-1))}}};i.DomRenderer=H=o([u(7,g.IInstantiationService),u(8,c.ICharSizeService),u(9,g.IOptionsService),u(10,g.IBufferService),u(11,c.ICoreBrowserService),u(12,c.IThemeService)],H)},3787:function(a,i,n){var o=this&&this.__decorate||function(v,x,b,E){var O,B=arguments.length,H=B<3?x:E===null?E=Object.getOwnPropertyDescriptor(x,b):E;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H=Reflect.decorate(v,x,b,E);else for(var M=v.length-1;M>=0;M--)(O=v[M])&&(H=(B<3?O(H):B>3?O(x,b,H):O(x,b))||H);return B>3&&H&&Object.defineProperty(x,b,H),H},u=this&&this.__param||function(v,x){return function(b,E){x(b,E,v)}};Object.defineProperty(i,"__esModule",{value:!0}),i.DomRendererRowFactory=void 0;let l=n(2223),_=n(643),m=n(511),w=n(2585),p=n(8055),c=n(4725),d=n(4269),h=n(6171),f=n(3734),g=i.DomRendererRowFactory=class{constructor(v,x,b,E,O,B,H){this._document=v,this._characterJoinerService=x,this._optionsService=b,this._coreBrowserService=E,this._coreService=O,this._decorationService=B,this._themeService=H,this._workCell=new m.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(v,x,b){this._selectionStart=v,this._selectionEnd=x,this._columnSelectMode=b}createRow(v,x,b,E,O,B,H,M,K,P,D){let F=[],N=this._characterJoinerService.getJoinedCharacters(x),y=this._themeService.colors,T,k=v.getNoBgTrimmedLength();b&&k<B+1&&(k=B+1);let R=0,U="",G=0,J=0,X=0,W=!1,L=0,I=!1,z=0,$=[],q=P!==-1&&D!==-1;for(let ee=0;ee<k;ee++){v.loadCell(ee,this._workCell);let he=this._workCell.getWidth();if(he===0)continue;let de=!1,re=ee,Y=this._workCell;if(N.length>0&&ee===N[0][0]){de=!0;let _e=N.shift();Y=new d.JoinedCellData(this._workCell,v.translateToString(!0,_e[0],_e[1]),_e[1]-_e[0]),re=_e[1]-1,he=Y.getWidth()}let se=this._isCellInSelection(ee,x),be=b&&ee===B,fe=q&&ee>=P&&ee<=D,ge=!1;this._decorationService.forEachDecorationAtCell(ee,x,void 0,(_e=>{ge=!0}));let Le=Y.getChars()||_.WHITESPACE_CELL_CHAR;if(Le===" "&&(Y.isUnderline()||Y.isOverline())&&(Le="\xA0"),z=he*M-K.get(Le,Y.isBold(),Y.isItalic()),T){if(R&&(se&&I||!se&&!I&&Y.bg===G)&&(se&&I&&y.selectionForeground||Y.fg===J)&&Y.extended.ext===X&&fe===W&&z===L&&!be&&!de&&!ge){Y.isInvisible()?U+=_.WHITESPACE_CELL_CHAR:U+=Le,R++;continue}R&&(T.textContent=U),T=this._document.createElement("span"),R=0,U=""}else T=this._document.createElement("span");if(G=Y.bg,J=Y.fg,X=Y.extended.ext,W=fe,L=z,I=se,de&&B>=ee&&B<=re&&(B=ee),!this._coreService.isCursorHidden&&be&&this._coreService.isCursorInitialized){if($.push("xterm-cursor"),this._coreBrowserService.isFocused)H&&$.push("xterm-cursor-blink"),$.push(E==="bar"?"xterm-cursor-bar":E==="underline"?"xterm-cursor-underline":"xterm-cursor-block");else if(O)switch(O){case"outline":$.push("xterm-cursor-outline");break;case"block":$.push("xterm-cursor-block");break;case"bar":$.push("xterm-cursor-bar");break;case"underline":$.push("xterm-cursor-underline")}}if(Y.isBold()&&$.push("xterm-bold"),Y.isItalic()&&$.push("xterm-italic"),Y.isDim()&&$.push("xterm-dim"),U=Y.isInvisible()?_.WHITESPACE_CELL_CHAR:Y.getChars()||_.WHITESPACE_CELL_CHAR,Y.isUnderline()&&($.push(`xterm-underline-${Y.extended.underlineStyle}`),U===" "&&(U="\xA0"),!Y.isUnderlineColorDefault()))if(Y.isUnderlineColorRGB())T.style.textDecorationColor=`rgb(${f.AttributeData.toColorRGB(Y.getUnderlineColor()).join(",")})`;else{let _e=Y.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&Y.isBold()&&_e<8&&(_e+=8),T.style.textDecorationColor=y.ansi[_e].css}Y.isOverline()&&($.push("xterm-overline"),U===" "&&(U="\xA0")),Y.isStrikethrough()&&$.push("xterm-strikethrough"),fe&&(T.style.textDecoration="underline");let Ce=Y.getFgColor(),Z=Y.getFgColorMode(),te=Y.getBgColor(),le=Y.getBgColorMode(),ie=!!Y.isInverse();if(ie){let _e=Ce;Ce=te,te=_e;let Ie=Z;Z=le,le=Ie}let ne,oe,pe,we=!1;switch(this._decorationService.forEachDecorationAtCell(ee,x,void 0,(_e=>{_e.options.layer!=="top"&&we||(_e.backgroundColorRGB&&(le=50331648,te=_e.backgroundColorRGB.rgba>>8&16777215,ne=_e.backgroundColorRGB),_e.foregroundColorRGB&&(Z=50331648,Ce=_e.foregroundColorRGB.rgba>>8&16777215,oe=_e.foregroundColorRGB),we=_e.options.layer==="top")})),!we&&se&&(ne=this._coreBrowserService.isFocused?y.selectionBackgroundOpaque:y.selectionInactiveBackgroundOpaque,te=ne.rgba>>8&16777215,le=50331648,we=!0,y.selectionForeground&&(Z=50331648,Ce=y.selectionForeground.rgba>>8&16777215,oe=y.selectionForeground)),we&&$.push("xterm-decoration-top"),le){case 16777216:case 33554432:pe=y.ansi[te],$.push(`xterm-bg-${te}`);break;case 50331648:pe=p.channels.toColor(te>>16,te>>8&255,255&te),this._addStyle(T,`background-color:#${C((te>>>0).toString(16),"0",6)}`);break;default:ie?(pe=y.foreground,$.push(`xterm-bg-${l.INVERTED_DEFAULT_COLOR}`)):pe=y.background}switch(ne||Y.isDim()&&(ne=p.color.multiplyOpacity(pe,.5)),Z){case 16777216:case 33554432:Y.isBold()&&Ce<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(Ce+=8),this._applyMinimumContrast(T,pe,y.ansi[Ce],Y,ne,void 0)||$.push(`xterm-fg-${Ce}`);break;case 50331648:let _e=p.channels.toColor(Ce>>16&255,Ce>>8&255,255&Ce);this._applyMinimumContrast(T,pe,_e,Y,ne,oe)||this._addStyle(T,`color:#${C(Ce.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(T,pe,y.foreground,Y,ne,oe)||ie&&$.push(`xterm-fg-${l.INVERTED_DEFAULT_COLOR}`)}$.length&&(T.className=$.join(" "),$.length=0),be||de||ge?T.textContent=U:R++,z!==this.defaultSpacing&&(T.style.letterSpacing=`${z}px`),F.push(T),ee=re}return T&&R&&(T.textContent=U),F}_applyMinimumContrast(v,x,b,E,O,B){if(this._optionsService.rawOptions.minimumContrastRatio===1||(0,h.treatGlyphAsBackgroundColor)(E.getCode()))return!1;let H=this._getContrastCache(E),M;if(O||B||(M=H.getColor(x.rgba,b.rgba)),M===void 0){let K=this._optionsService.rawOptions.minimumContrastRatio/(E.isDim()?2:1);M=p.color.ensureContrastRatio(O||x,B||b,K),H.setColor((O||x).rgba,(B||b).rgba,M??null)}return!!M&&(this._addStyle(v,`color:${M.css}`),!0)}_getContrastCache(v){return v.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(v,x){v.setAttribute("style",`${v.getAttribute("style")||""}${x};`)}_isCellInSelection(v,x){let b=this._selectionStart,E=this._selectionEnd;return!(!b||!E)&&(this._columnSelectMode?b[0]<=E[0]?v>=b[0]&&x>=b[1]&&v<E[0]&&x<=E[1]:v<b[0]&&x>=b[1]&&v>=E[0]&&x<=E[1]:x>b[1]&&x<E[1]||b[1]===E[1]&&x===b[1]&&v>=b[0]&&v<E[0]||b[1]<E[1]&&x===E[1]&&v<E[0]||b[1]<E[1]&&x===b[1]&&v>=b[0])}};function C(v,x,b){for(;v.length<b;)v=x+v;return v}i.DomRendererRowFactory=g=o([u(1,c.ICharacterJoinerService),u(2,w.IOptionsService),u(3,c.ICoreBrowserService),u(4,w.ICoreService),u(5,w.IDecorationService),u(6,c.IThemeService)],g)},2550:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.WidthCache=void 0,i.WidthCache=class{constructor(n,o){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=n.createElement("div"),this._container.classList.add("xterm-width-cache-measure-container"),this._container.setAttribute("aria-hidden","true"),this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";let u=n.createElement("span");u.classList.add("xterm-char-measure-element");let l=n.createElement("span");l.classList.add("xterm-char-measure-element"),l.style.fontWeight="bold";let _=n.createElement("span");_.classList.add("xterm-char-measure-element"),_.style.fontStyle="italic";let m=n.createElement("span");m.classList.add("xterm-char-measure-element"),m.style.fontWeight="bold",m.style.fontStyle="italic",this._measureElements=[u,l,_,m],this._container.appendChild(u),this._container.appendChild(l),this._container.appendChild(_),this._container.appendChild(m),o.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(n,o,u,l){n===this._font&&o===this._fontSize&&u===this._weight&&l===this._weightBold||(this._font=n,this._fontSize=o,this._weight=u,this._weightBold=l,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${u}`,this._measureElements[1].style.fontWeight=`${l}`,this._measureElements[2].style.fontWeight=`${u}`,this._measureElements[3].style.fontWeight=`${l}`,this.clear())}get(n,o,u){let l=0;if(!o&&!u&&n.length===1&&(l=n.charCodeAt(0))<256){if(this._flat[l]!==-9999)return this._flat[l];let w=this._measure(n,0);return w>0&&(this._flat[l]=w),w}let _=n;o&&(_+="B"),u&&(_+="I");let m=this._holey.get(_);if(m===void 0){let w=0;o&&(w|=1),u&&(w|=2),m=this._measure(n,w),m>0&&this._holey.set(_,m)}return m}_measure(n,o){let u=this._measureElements[o];return u.textContent=n.repeat(32),u.offsetWidth/32}}},2223:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.TEXT_BASELINE=i.DIM_OPACITY=i.INVERTED_DEFAULT_COLOR=void 0;let o=n(6114);i.INVERTED_DEFAULT_COLOR=257,i.DIM_OPACITY=.5,i.TEXT_BASELINE=o.isFirefox||o.isLegacyEdge?"bottom":"ideographic"},6171:(a,i)=>{function n(u){return 57508<=u&&u<=57558}function o(u){return u>=128512&&u<=128591||u>=127744&&u<=128511||u>=128640&&u<=128767||u>=9728&&u<=9983||u>=9984&&u<=10175||u>=65024&&u<=65039||u>=129280&&u<=129535||u>=127462&&u<=127487}Object.defineProperty(i,"__esModule",{value:!0}),i.computeNextVariantOffset=i.createRenderDimensions=i.treatGlyphAsBackgroundColor=i.allowRescaling=i.isEmoji=i.isRestrictedPowerlineGlyph=i.isPowerlineGlyph=i.throwIfFalsy=void 0,i.throwIfFalsy=function(u){if(!u)throw new Error("value must not be falsy");return u},i.isPowerlineGlyph=n,i.isRestrictedPowerlineGlyph=function(u){return 57520<=u&&u<=57527},i.isEmoji=o,i.allowRescaling=function(u,l,_,m){return l===1&&_>Math.ceil(1.5*m)&&u!==void 0&&u>255&&!o(u)&&!n(u)&&!(function(w){return 57344<=w&&w<=63743})(u)},i.treatGlyphAsBackgroundColor=function(u){return n(u)||(function(l){return 9472<=l&&l<=9631})(u)},i.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},i.computeNextVariantOffset=function(u,l,_=0){return(u-(2*Math.round(l)-_))%(2*Math.round(l))}},6052:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.createSelectionRenderModel=void 0;class n{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(u,l,_,m=!1){if(this.selectionStart=l,this.selectionEnd=_,!l||!_||l[0]===_[0]&&l[1]===_[1])return void this.clear();let w=u.buffers.active.ydisp,p=l[1]-w,c=_[1]-w,d=Math.max(p,0),h=Math.min(c,u.rows-1);d>=u.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=m,this.viewportStartRow=p,this.viewportEndRow=c,this.viewportCappedStartRow=d,this.viewportCappedEndRow=h,this.startCol=l[0],this.endCol=_[0])}isCellSelected(u,l,_){return!!this.hasSelection&&(_-=u.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?l>=this.startCol&&_>=this.viewportCappedStartRow&&l<this.endCol&&_<=this.viewportCappedEndRow:l<this.startCol&&_>=this.viewportCappedStartRow&&l>=this.endCol&&_<=this.viewportCappedEndRow:_>this.viewportStartRow&&_<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&_===this.viewportStartRow&&l>=this.startCol&&l<this.endCol||this.viewportStartRow<this.viewportEndRow&&_===this.viewportEndRow&&l<this.endCol||this.viewportStartRow<this.viewportEndRow&&_===this.viewportStartRow&&l>=this.startCol)}}i.createSelectionRenderModel=function(){return new n}},456:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionModel=void 0,i.SelectionModel=class{constructor(n){this._bufferService=n,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let n=this.selectionStart[0]+this.selectionStartLength;return n>this._bufferService.cols?n%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)-1]:[n%this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)]:[n,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let n=this.selectionStart[0]+this.selectionStartLength;return n>this._bufferService.cols?[n%this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)]:[Math.max(n,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let n=this.selectionStart,o=this.selectionEnd;return!(!n||!o)&&(n[1]>o[1]||n[1]===o[1]&&n[0]>o[0])}handleTrim(n){return this.selectionStart&&(this.selectionStart[1]-=n),this.selectionEnd&&(this.selectionEnd[1]-=n),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(a,i,n){var o=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CharSizeService=void 0;let l=n(2585),_=n(8460),m=n(844),w=i.CharSizeService=class extends m.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(h,f,g){super(),this._optionsService=g,this.width=0,this.height=0,this._onCharSizeChange=this.register(new _.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new c(h,f,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],(()=>this.measure())))}measure(){let h=this._measureStrategy.measure();h.width===this.width&&h.height===this.height||(this.width=h.width,this.height=h.height,this._onCharSizeChange.fire())}};i.CharSizeService=w=o([u(2,l.IOptionsService)],w);class p extends m.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(f,g){f!==void 0&&f>0&&g!==void 0&&g>0&&(this._result.width=f,this._result.height=g)}}class c extends p{constructor(f,g,C){super(),this._document=f,this._parentElement=g,this._optionsService=C,this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends p{constructor(f){super(),this._optionsService=f,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");let g=this._ctx.measureText("W");if(!("width"in g&&"fontBoundingBoxAscent"in g&&"fontBoundingBoxDescent"in g))throw new Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let f=this._ctx.measureText("W");return this._validateAndSet(f.width,f.fontBoundingBoxAscent+f.fontBoundingBoxDescent),this._result}}},4269:function(a,i,n){var o=this&&this.__decorate||function(d,h,f,g){var C,v=arguments.length,x=v<3?h:g===null?g=Object.getOwnPropertyDescriptor(h,f):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(d,h,f,g);else for(var b=d.length-1;b>=0;b--)(C=d[b])&&(x=(v<3?C(x):v>3?C(h,f,x):C(h,f))||x);return v>3&&x&&Object.defineProperty(h,f,x),x},u=this&&this.__param||function(d,h){return function(f,g){h(f,g,d)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CharacterJoinerService=i.JoinedCellData=void 0;let l=n(3734),_=n(643),m=n(511),w=n(2585);class p extends l.AttributeData{constructor(h,f,g){super(),this.content=0,this.combinedData="",this.fg=h.fg,this.bg=h.bg,this.combinedData=f,this._width=g}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(h){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}i.JoinedCellData=p;let c=i.CharacterJoinerService=class ko{constructor(h){this._bufferService=h,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new m.CellData}register(h){let f={id:this._nextCharacterJoinerId++,handler:h};return this._characterJoiners.push(f),f.id}deregister(h){for(let f=0;f<this._characterJoiners.length;f++)if(this._characterJoiners[f].id===h)return this._characterJoiners.splice(f,1),!0;return!1}getJoinedCharacters(h){if(this._characterJoiners.length===0)return[];let f=this._bufferService.buffer.lines.get(h);if(!f||f.length===0)return[];let g=[],C=f.translateToString(!0),v=0,x=0,b=0,E=f.getFg(0),O=f.getBg(0);for(let B=0;B<f.getTrimmedLength();B++)if(f.loadCell(B,this._workCell),this._workCell.getWidth()!==0){if(this._workCell.fg!==E||this._workCell.bg!==O){if(B-v>1){let H=this._getJoinedRanges(C,b,x,f,v);for(let M=0;M<H.length;M++)g.push(H[M])}v=B,b=x,E=this._workCell.fg,O=this._workCell.bg}x+=this._workCell.getChars().length||_.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-v>1){let B=this._getJoinedRanges(C,b,x,f,v);for(let H=0;H<B.length;H++)g.push(B[H])}return g}_getJoinedRanges(h,f,g,C,v){let x=h.substring(f,g),b=[];try{b=this._characterJoiners[0].handler(x)}catch(E){console.error(E)}for(let E=1;E<this._characterJoiners.length;E++)try{let O=this._characterJoiners[E].handler(x);for(let B=0;B<O.length;B++)ko._mergeRanges(b,O[B])}catch(O){console.error(O)}return this._stringRangesToCellRanges(b,C,v),b}_stringRangesToCellRanges(h,f,g){let C=0,v=!1,x=0,b=h[C];if(b){for(let E=g;E<this._bufferService.cols;E++){let O=f.getWidth(E),B=f.getString(E).length||_.WHITESPACE_CELL_CHAR.length;if(O!==0){if(!v&&b[0]<=x&&(b[0]=E,v=!0),b[1]<=x){if(b[1]=E,b=h[++C],!b)break;b[0]<=x?(b[0]=E,v=!0):v=!1}x+=B}}b&&(b[1]=this._bufferService.cols)}}static _mergeRanges(h,f){let g=!1;for(let C=0;C<h.length;C++){let v=h[C];if(g){if(f[1]<=v[0])return h[C-1][1]=f[1],h;if(f[1]<=v[1])return h[C-1][1]=Math.max(f[1],v[1]),h.splice(C,1),h;h.splice(C,1),C--}else{if(f[1]<=v[0])return h.splice(C,0,f),h;if(f[1]<=v[1])return v[0]=Math.min(f[0],v[0]),h;f[0]<v[1]&&(v[0]=Math.min(f[0],v[0]),g=!0)}}return g?h[h.length-1][1]=f[1]:h.push(f),h}};i.CharacterJoinerService=c=o([u(0,w.IBufferService)],c)},5114:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CoreBrowserService=void 0;let o=n(844),u=n(8460),l=n(3656);class _ extends o.Disposable{constructor(p,c,d){super(),this._textarea=p,this._window=c,this.mainDocument=d,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new m(this._window),this._onDprChange=this.register(new u.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new u.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((h=>this._screenDprMonitor.setWindow(h)))),this.register((0,u.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener("focus",(()=>this._isFocused=!0)),this._textarea.addEventListener("blur",(()=>this._isFocused=!1))}get window(){return this._window}set window(p){this._window!==p&&(this._window=p,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}i.CoreBrowserService=_;class m extends o.Disposable{constructor(p){super(),this._parentWindow=p,this._windowResizeListener=this.register(new o.MutableDisposable),this._onDprChange=this.register(new u.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,o.toDisposable)((()=>this.clearListener())))}setWindow(p){this._parentWindow=p,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,l.addDisposableDomListener)(this._parentWindow,"resize",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.LinkProviderService=void 0;let o=n(844);class u extends o.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,o.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(_){return this.linkProviders.push(_),{dispose:()=>{let m=this.linkProviders.indexOf(_);m!==-1&&this.linkProviders.splice(m,1)}}}}i.LinkProviderService=u},8934:function(a,i,n){var o=this&&this.__decorate||function(w,p,c,d){var h,f=arguments.length,g=f<3?p:d===null?d=Object.getOwnPropertyDescriptor(p,c):d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")g=Reflect.decorate(w,p,c,d);else for(var C=w.length-1;C>=0;C--)(h=w[C])&&(g=(f<3?h(g):f>3?h(p,c,g):h(p,c))||g);return f>3&&g&&Object.defineProperty(p,c,g),g},u=this&&this.__param||function(w,p){return function(c,d){p(c,d,w)}};Object.defineProperty(i,"__esModule",{value:!0}),i.MouseService=void 0;let l=n(4725),_=n(9806),m=i.MouseService=class{constructor(w,p){this._renderService=w,this._charSizeService=p}getCoords(w,p,c,d,h){return(0,_.getCoords)(window,w,p,c,d,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,h)}getMouseReportCoords(w,p){let c=(0,_.getCoordsRelativeToElement)(window,w,p);if(this._charSizeService.hasValidSize)return c[0]=Math.min(Math.max(c[0],0),this._renderService.dimensions.css.canvas.width-1),c[1]=Math.min(Math.max(c[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(c[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(c[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(c[0]),y:Math.floor(c[1])}}};i.MouseService=m=o([u(0,l.IRenderService),u(1,l.ICharSizeService)],m)},3230:function(a,i,n){var o=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.RenderService=void 0;let l=n(6193),_=n(4725),m=n(8460),w=n(844),p=n(7226),c=n(2585),d=i.RenderService=class extends w.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(h,f,g,C,v,x,b,E){super(),this._rowCount=h,this._charSizeService=C,this._renderer=this.register(new w.MutableDisposable),this._pausedResizeTask=new p.DebouncedIdleTask,this._observerDisposable=this.register(new w.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new m.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new m.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new m.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new m.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new l.RenderDebouncer(((O,B)=>this._renderRows(O,B)),b),this.register(this._renderDebouncer),this.register(b.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(x.onResize((()=>this._fullRefresh()))),this.register(x.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(g.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(v.onDecorationRegistered((()=>this._fullRefresh()))),this.register(v.onDecorationRemoved((()=>this._fullRefresh()))),this.register(g.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],(()=>{this.clear(),this.handleResize(x.cols,x.rows),this._fullRefresh()}))),this.register(g.onMultipleOptionChange(["cursorBlink","cursorStyle"],(()=>this.refreshRows(x.buffer.y,x.buffer.y,!0)))),this.register(E.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(b.window,f),this.register(b.onWindowChange((O=>this._registerIntersectionObserver(O,f))))}_registerIntersectionObserver(h,f){if("IntersectionObserver"in h){let g=new h.IntersectionObserver((C=>this._handleIntersectionChange(C[C.length-1])),{threshold:0});g.observe(f),this._observerDisposable.value=(0,w.toDisposable)((()=>g.disconnect()))}}_handleIntersectionChange(h){this._isPaused=h.isIntersecting===void 0?h.intersectionRatio===0:!h.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(h,f,g=!1){this._isPaused?this._needsFullRefresh=!0:(g||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(h,f,this._rowCount))}_renderRows(h,f){this._renderer.value&&(h=Math.min(h,this._rowCount-1),f=Math.min(f,this._rowCount-1),this._renderer.value.renderRows(h,f),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:h,end:f}),this._onRender.fire({start:h,end:f}),this._isNextRenderRedrawOnly=!0)}resize(h,f){this._rowCount=f,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(h){this._renderer.value=h,this._renderer.value&&(this._renderer.value.onRequestRedraw((f=>this.refreshRows(f.start,f.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(h){return this._renderDebouncer.addRefreshCallback(h)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(h,f){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(h,f))):this._renderer.value.handleResize(h,f),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(h,f,g){this._selectionState.start=h,this._selectionState.end=f,this._selectionState.columnSelectMode=g,this._renderer.value?.handleSelectionChanged(h,f,g)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};i.RenderService=d=o([u(2,c.IOptionsService),u(3,_.ICharSizeService),u(4,c.IDecorationService),u(5,c.IBufferService),u(6,_.ICoreBrowserService),u(7,_.IThemeService)],d)},9312:function(a,i,n){var o=this&&this.__decorate||function(b,E,O,B){var H,M=arguments.length,K=M<3?E:B===null?B=Object.getOwnPropertyDescriptor(E,O):B;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")K=Reflect.decorate(b,E,O,B);else for(var P=b.length-1;P>=0;P--)(H=b[P])&&(K=(M<3?H(K):M>3?H(E,O,K):H(E,O))||K);return M>3&&K&&Object.defineProperty(E,O,K),K},u=this&&this.__param||function(b,E){return function(O,B){E(O,B,b)}};Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionService=void 0;let l=n(9806),_=n(9504),m=n(456),w=n(4725),p=n(8460),c=n(844),d=n(6114),h=n(4841),f=n(511),g=n(2585),C="\xA0",v=new RegExp(C,"g"),x=i.SelectionService=class extends c.Disposable{constructor(b,E,O,B,H,M,K,P,D){super(),this._element=b,this._screenElement=E,this._linkifier=O,this._bufferService=B,this._coreService=H,this._mouseService=M,this._optionsService=K,this._renderService=P,this._coreBrowserService=D,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new f.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new p.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new p.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new p.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new p.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=F=>this._handleMouseMove(F),this._mouseUpListener=F=>this._handleMouseUp(F),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((F=>this._handleTrim(F))),this.register(this._bufferService.buffers.onBufferActivate((F=>this._handleBufferActivate(F)))),this.enable(),this._model=new m.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,c.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let b=this._model.finalSelectionStart,E=this._model.finalSelectionEnd;return!(!b||!E||b[0]===E[0]&&b[1]===E[1])}get selectionText(){let b=this._model.finalSelectionStart,E=this._model.finalSelectionEnd;if(!b||!E)return"";let O=this._bufferService.buffer,B=[];if(this._activeSelectionMode===3){if(b[0]===E[0])return"";let H=b[0]<E[0]?b[0]:E[0],M=b[0]<E[0]?E[0]:b[0];for(let K=b[1];K<=E[1];K++){let P=O.translateBufferLineToString(K,!0,H,M);B.push(P)}}else{let H=b[1]===E[1]?E[0]:void 0;B.push(O.translateBufferLineToString(b[1],!0,b[0],H));for(let M=b[1]+1;M<=E[1]-1;M++){let K=O.lines.get(M),P=O.translateBufferLineToString(M,!0);K?.isWrapped?B[B.length-1]+=P:B.push(P)}if(b[1]!==E[1]){let M=O.lines.get(E[1]),K=O.translateBufferLineToString(E[1],!0,0,E[0]);M&&M.isWrapped?B[B.length-1]+=K:B.push(K)}}return B.map((H=>H.replace(v," "))).join(d.isWindows?`\r
5
+ WARNING: This link could potentially be dangerous`)){let d=window.open();if(d){try{d.opener=null}catch{}d.location.href=c}else console.warn("Opening link blocked as opener could not be cleared")}}i.OscLinkProvider=m=a([u(0,_.IBufferService),u(1,_.IOptionsService),u(2,_.IOscLinkService)],m)},6193:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.RenderDebouncer=void 0,i.RenderDebouncer=class{constructor(n,a){this._renderCallback=n,this._coreBrowserService=a,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(n){return this._refreshCallbacks.push(n),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(n,a,u){this._rowCount=u,n=n!==void 0?n:0,a=a!==void 0?a:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,n):n,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,a):a,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return void this._runRefreshCallbacks();let n=Math.max(this._rowStart,0),a=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(n,a),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let n of this._refreshCallbacks)n(0);this._refreshCallbacks=[]}}},3236:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Terminal=void 0;let a=n(3614),u=n(3656),l=n(3551),_=n(9042),m=n(3730),y=n(1680),p=n(3107),c=n(5744),d=n(2950),h=n(1296),f=n(428),g=n(4269),C=n(5114),v=n(8934),x=n(3230),b=n(9312),E=n(4725),O=n(6731),B=n(8055),N=n(8969),A=n(8460),K=n(844),P=n(6114),D=n(8437),H=n(2584),I=n(7399),S=n(5941),T=n(9074),k=n(2585),R=n(5435),z=n(4567),V=n(779);class X extends N.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(W={}){super(W),this.browser=P,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new K.MutableDisposable),this._onCursorMove=this.register(new A.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new A.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new A.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new A.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new A.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new A.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new A.EventEmitter),this._onBlur=this.register(new A.EventEmitter),this._onA11yCharEmitter=this.register(new A.EventEmitter),this._onA11yTabEmitter=this.register(new A.EventEmitter),this._onWillOpen=this.register(new A.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(T.DecorationService),this._instantiationService.setService(k.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(V.LinkProviderService),this._instantiationService.setService(E.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(m.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((L,F)=>this.refresh(L,F)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((L=>this._reportWindowsOptions(L)))),this.register(this._inputHandler.onColor((L=>this._handleColorEvent(L)))),this.register((0,A.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,A.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,A.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,A.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((L=>this._afterResize(L.cols,L.rows)))),this.register((0,K.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(W){if(this._themeService)for(let L of W){let F,$="";switch(L.index){case 256:F="foreground",$="10";break;case 257:F="background",$="11";break;case 258:F="cursor",$="12";break;default:F="ansi",$="4;"+L.index}switch(L.type){case 0:let j=B.color.toColorRGB(F==="ansi"?this._themeService.colors.ansi[L.index]:this._themeService.colors[F]);this.coreService.triggerDataEvent(`${H.C0.ESC}]${$};${(0,S.toRgbString)(j)}${H.C1_ESCAPED.ST}`);break;case 1:if(F==="ansi")this._themeService.modifyColors((Y=>Y.ansi[L.index]=B.channels.toColor(...L.color)));else{let Y=F;this._themeService.modifyColors((ee=>ee[Y]=B.channels.toColor(...L.color)))}break;case 2:this._themeService.restoreColor(L.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(W){W?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(z.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(W){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(H.C0.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(H.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let W=this.buffer.ybase+this.buffer.y,L=this.buffer.lines.get(W);if(!L)return;let F=Math.min(this.buffer.x,this.cols-1),$=this._renderService.dimensions.css.cell.height,j=L.getWidth(F),Y=this._renderService.dimensions.css.cell.width*j,ee=this.buffer.y*this._renderService.dimensions.css.cell.height,fe=F*this._renderService.dimensions.css.cell.width;this.textarea.style.left=fe+"px",this.textarea.style.top=ee+"px",this.textarea.style.width=Y+"px",this.textarea.style.height=$+"px",this.textarea.style.lineHeight=$+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,u.addDisposableDomListener)(this.element,"copy",(L=>{this.hasSelection()&&(0,a.copyHandler)(L,this._selectionService)})));let W=L=>(0,a.handlePasteEvent)(L,this.textarea,this.coreService,this.optionsService);this.register((0,u.addDisposableDomListener)(this.textarea,"paste",W)),this.register((0,u.addDisposableDomListener)(this.element,"paste",W)),P.isFirefox?this.register((0,u.addDisposableDomListener)(this.element,"mousedown",(L=>{L.button===2&&(0,a.rightClickHandler)(L,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,u.addDisposableDomListener)(this.element,"contextmenu",(L=>{(0,a.rightClickHandler)(L,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),P.isLinux&&this.register((0,u.addDisposableDomListener)(this.element,"auxclick",(L=>{L.button===1&&(0,a.moveTextAreaUnderMouseCursor)(L,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,u.addDisposableDomListener)(this.textarea,"keyup",(W=>this._keyUp(W)),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"keydown",(W=>this._keyDown(W)),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"keypress",(W=>this._keyPress(W)),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionupdate",(W=>this._compositionHelper.compositionupdate(W)))),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this.register((0,u.addDisposableDomListener)(this.textarea,"input",(W=>this._inputEvent(W)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(W){if(!W)throw new Error("Terminal requires a parent element.");if(W.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=W.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),W.appendChild(this.element);let L=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),L.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this.register((0,u.addDisposableDomListener)(this.screenElement,"mousemove",(F=>this.updateCursorStyle(F)))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),L.appendChild(this.screenElement),this.textarea=this._document.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",_.promptLabel),P.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(C.CoreBrowserService,this.textarea,W.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(E.ICoreBrowserService,this._coreBrowserService),this.register((0,u.addDisposableDomListener)(this.textarea,"focus",(F=>this._handleTextAreaFocus(F)))),this.register((0,u.addDisposableDomListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(f.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(E.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(O.ThemeService),this._instantiationService.setService(E.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(g.CharacterJoinerService),this._instantiationService.setService(E.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(x.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(E.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((F=>this._onRender.fire(F)))),this.onResize((F=>this._renderService.resize(F.cols,F.rows))),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(v.MouseService),this._instantiationService.setService(E.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(l.Linkifier,this.screenElement)),this.element.appendChild(L);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(y.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((F=>this.scrollLines(F.amount,F.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(b.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(E.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((F=>this.scrollLines(F.amount,F.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((F=>this._renderService.handleSelectionChanged(F.start,F.end,F.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((F=>{this.textarea.value=F,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((F=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,u.addDisposableDomListener)(this._viewportElement,"scroll",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(p.BufferDecorationRenderer,this.screenElement)),this.register((0,u.addDisposableDomListener)(this.element,"mousedown",(F=>this._selectionService.handleMouseDown(F)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(z.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",(F=>this._handleScreenReaderModeOptionChange(F)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(c.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",(F=>{!this._overviewRulerRenderer&&F&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(c.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(h.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let W=this,L=this.element;function F(Y){let ee=W._mouseService.getMouseReportCoords(Y,W.screenElement);if(!ee)return!1;let fe,ce;switch(Y.overrideType||Y.type){case"mousemove":ce=32,Y.buttons===void 0?(fe=3,Y.button!==void 0&&(fe=Y.button<3?Y.button:3)):fe=1&Y.buttons?0:4&Y.buttons?1:2&Y.buttons?2:3;break;case"mouseup":ce=0,fe=Y.button<3?Y.button:3;break;case"mousedown":ce=1,fe=Y.button<3?Y.button:3;break;case"wheel":if(W._customWheelEventHandler&&W._customWheelEventHandler(Y)===!1||W.viewport.getLinesScrolled(Y)===0)return!1;ce=Y.deltaY<0?0:1,fe=4;break;default:return!1}return!(ce===void 0||fe===void 0||fe>4)&&W.coreMouseService.triggerMouseEvent({col:ee.col,row:ee.row,x:ee.x,y:ee.y,button:fe,action:ce,ctrl:Y.ctrlKey,alt:Y.altKey,shift:Y.shiftKey})}let $={mouseup:null,wheel:null,mousedrag:null,mousemove:null},j={mouseup:Y=>(F(Y),Y.buttons||(this._document.removeEventListener("mouseup",$.mouseup),$.mousedrag&&this._document.removeEventListener("mousemove",$.mousedrag)),this.cancel(Y)),wheel:Y=>(F(Y),this.cancel(Y,!0)),mousedrag:Y=>{Y.buttons&&F(Y)},mousemove:Y=>{Y.buttons||F(Y)}};this.register(this.coreMouseService.onProtocolChange((Y=>{Y?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(Y)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&Y?$.mousemove||(L.addEventListener("mousemove",j.mousemove),$.mousemove=j.mousemove):(L.removeEventListener("mousemove",$.mousemove),$.mousemove=null),16&Y?$.wheel||(L.addEventListener("wheel",j.wheel,{passive:!1}),$.wheel=j.wheel):(L.removeEventListener("wheel",$.wheel),$.wheel=null),2&Y?$.mouseup||($.mouseup=j.mouseup):(this._document.removeEventListener("mouseup",$.mouseup),$.mouseup=null),4&Y?$.mousedrag||($.mousedrag=j.mousedrag):(this._document.removeEventListener("mousemove",$.mousedrag),$.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,u.addDisposableDomListener)(L,"mousedown",(Y=>{if(Y.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(Y))return F(Y),$.mouseup&&this._document.addEventListener("mouseup",$.mouseup),$.mousedrag&&this._document.addEventListener("mousemove",$.mousedrag),this.cancel(Y)}))),this.register((0,u.addDisposableDomListener)(L,"wheel",(Y=>{if(!$.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(Y)===!1)return!1;if(!this.buffer.hasScrollback){let ee=this.viewport.getLinesScrolled(Y);if(ee===0)return;let fe=H.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(Y.deltaY<0?"A":"B"),ce="";for(let se=0;se<Math.abs(ee);se++)ce+=fe;return this.coreService.triggerDataEvent(ce,!0),this.cancel(Y,!0)}return this.viewport.handleWheel(Y)?this.cancel(Y):void 0}}),{passive:!1})),this.register((0,u.addDisposableDomListener)(L,"touchstart",(Y=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(Y),this.cancel(Y)}),{passive:!0})),this.register((0,u.addDisposableDomListener)(L,"touchmove",(Y=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(Y)?void 0:this.cancel(Y)}),{passive:!1}))}refresh(W,L){this._renderService?.refreshRows(W,L)}updateCursorStyle(W){this._selectionService?.shouldColumnSelect(W)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(W,L,F=0){F===1?(super.scrollLines(W,L,F),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(W)}paste(W){(0,a.paste)(W,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(W){this._customKeyEventHandler=W}attachCustomWheelEventHandler(W){this._customWheelEventHandler=W}registerLinkProvider(W){return this._linkProviderService.registerLinkProvider(W)}registerCharacterJoiner(W){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");let L=this._characterJoinerService.register(W);return this.refresh(0,this.rows-1),L}deregisterCharacterJoiner(W){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(W)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(W){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+W)}registerDecoration(W){return this._decorationService.registerDecoration(W)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(W,L,F){this._selectionService.setSelection(W,L,F)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(W,L){this._selectionService?.selectLines(W,L)}_keyDown(W){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(W)===!1)return!1;let L=this.browser.isMac&&this.options.macOptionIsMeta&&W.altKey;if(!L&&!this._compositionHelper.keydown(W))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;L||W.key!=="Dead"&&W.key!=="AltGraph"||(this._unprocessedDeadKey=!0);let F=(0,I.evaluateKeyboardEvent)(W,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(W),F.type===3||F.type===2){let $=this.rows-1;return this.scrollLines(F.type===2?-$:$),this.cancel(W,!0)}return F.type===1&&this.selectAll(),!!this._isThirdLevelShift(this.browser,W)||(F.cancel&&this.cancel(W,!0),!F.key||!!(W.key&&!W.ctrlKey&&!W.altKey&&!W.metaKey&&W.key.length===1&&W.key.charCodeAt(0)>=65&&W.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(F.key!==H.C0.ETX&&F.key!==H.C0.CR||(this.textarea.value=""),this._onKey.fire({key:F.key,domEvent:W}),this._showCursor(),this.coreService.triggerDataEvent(F.key,!0),!this.optionsService.rawOptions.screenReaderMode||W.altKey||W.ctrlKey?this.cancel(W,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(W,L){let F=W.isMac&&!this.options.macOptionIsMeta&&L.altKey&&!L.ctrlKey&&!L.metaKey||W.isWindows&&L.altKey&&L.ctrlKey&&!L.metaKey||W.isWindows&&L.getModifierState("AltGraph");return L.type==="keypress"?F:F&&(!L.keyCode||L.keyCode>47)}_keyUp(W){this._keyDownSeen=!1,this._customKeyEventHandler&&this._customKeyEventHandler(W)===!1||((function(L){return L.keyCode===16||L.keyCode===17||L.keyCode===18})(W)||this.focus(),this.updateCursorStyle(W),this._keyPressHandled=!1)}_keyPress(W){let L;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(W)===!1)return!1;if(this.cancel(W),W.charCode)L=W.charCode;else if(W.which===null||W.which===void 0)L=W.keyCode;else{if(W.which===0||W.charCode===0)return!1;L=W.which}return!(!L||(W.altKey||W.ctrlKey||W.metaKey)&&!this._isThirdLevelShift(this.browser,W)||(L=String.fromCharCode(L),this._onKey.fire({key:L,domEvent:W}),this._showCursor(),this.coreService.triggerDataEvent(L,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(W){if(W.data&&W.inputType==="insertText"&&(!W.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let L=W.data;return this.coreService.triggerDataEvent(L,!0),this.cancel(W),!0}return!1}resize(W,L){W!==this.cols||L!==this.rows?super.resize(W,L):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(W,L){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(this.buffer.ybase!==0||this.buffer.y!==0){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let W=1;W<this.rows;W++)this.buffer.lines.push(this.buffer.getBlankLine(D.DEFAULT_ATTR_DATA));this._onScroll.fire({position:this.buffer.ydisp,source:0}),this.viewport?.reset(),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;let W=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this.viewport?.reset(),this._customKeyEventHandler=W,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains("focus")?this.coreService.triggerDataEvent(H.C0.ESC+"[I"):this.coreService.triggerDataEvent(H.C0.ESC+"[O")}_reportWindowsOptions(W){if(this._renderService)switch(W){case R.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:let L=this._renderService.dimensions.css.canvas.width.toFixed(0),F=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${H.C0.ESC}[4;${F};${L}t`);break;case R.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:let $=this._renderService.dimensions.css.cell.width.toFixed(0),j=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${H.C0.ESC}[6;${j};${$}t`)}}cancel(W,L){if(this.options.cancelEvents||L)return W.preventDefault(),W.stopPropagation(),!1}}i.Terminal=X},9924:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.TimeBasedDebouncer=void 0,i.TimeBasedDebouncer=class{constructor(n,a=1e3){this._renderCallback=n,this._debounceThresholdMS=a,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(n,a,u){this._rowCount=u,n=n!==void 0?n:0,a=a!==void 0?a:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,n):n,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,a):a;let l=Date.now();if(l-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=l,this._innerRefresh();else if(!this._additionalRefreshRequested){let _=l-this._lastRefreshMs,m=this._debounceThresholdMS-_;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),m)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let n=Math.max(this._rowStart,0),a=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(n,a)}}},1680:function(o,i,n){var a=this&&this.__decorate||function(d,h,f,g){var C,v=arguments.length,x=v<3?h:g===null?g=Object.getOwnPropertyDescriptor(h,f):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(d,h,f,g);else for(var b=d.length-1;b>=0;b--)(C=d[b])&&(x=(v<3?C(x):v>3?C(h,f,x):C(h,f))||x);return v>3&&x&&Object.defineProperty(h,f,x),x},u=this&&this.__param||function(d,h){return function(f,g){h(f,g,d)}};Object.defineProperty(i,"__esModule",{value:!0}),i.Viewport=void 0;let l=n(3656),_=n(4725),m=n(8460),y=n(844),p=n(2585),c=i.Viewport=class extends y.Disposable{constructor(d,h,f,g,C,v,x,b){super(),this._viewportElement=d,this._scrollArea=h,this._bufferService=f,this._optionsService=g,this._charSizeService=C,this._renderService=v,this._coreBrowserService=x,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new m.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,l.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((E=>this._activeBuffer=E.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((E=>this._renderDimensions=E))),this._handleThemeChange(b.colors),this.register(b.onChangeColors((E=>this._handleThemeChange(E)))),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(d){this._viewportElement.style.backgroundColor=d.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(d){if(d)return this._innerRefresh(),void(this._refreshAnimationFrame!==null&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));this._refreshAnimationFrame===null&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;let h=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==h&&(this._lastRecordedBufferHeight=h,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}let d=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==d&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=d),this._refreshAnimationFrame=null}syncScrollArea(d=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(d);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(d)}_handleScroll(d){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});let h=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:h,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||this._smoothScrollState.origin===-1||this._smoothScrollState.target===-1)return;let d=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(d*(this._smoothScrollState.target-this._smoothScrollState.origin)),d<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(d,h){let f=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(h<0&&this._viewportElement.scrollTop!==0||h>0&&f<this._lastRecordedBufferHeight)||(d.cancelable&&d.preventDefault(),!1)}handleWheel(d){let h=this._getPixelsScrolled(d);return h!==0&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target===-1?this._smoothScrollState.target=this._viewportElement.scrollTop+h:this._smoothScrollState.target+=h,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=h,this._bubbleScroll(d,h))}scrollLines(d){if(d!==0)if(this._optionsService.rawOptions.smoothScrollDuration){let h=d*this._currentRowHeight;this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target=this._smoothScrollState.origin+h,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()}else this._onRequestScrollLines.fire({amount:d,suppressScrollEvent:!1})}_getPixelsScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let h=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_LINE?h*=this._currentRowHeight:d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(h*=this._currentRowHeight*this._bufferService.rows),h}getBufferElements(d,h){let f,g="",C=[],v=h??this._bufferService.buffer.lines.length,x=this._bufferService.buffer.lines;for(let b=d;b<v;b++){let E=x.get(b);if(!E)continue;let O=x.get(b+1)?.isWrapped;if(g+=E.translateToString(!O),!O||b===x.length-1){let B=document.createElement("div");B.textContent=g,C.push(B),g.length>0&&(f=B),g=""}}return{bufferElements:C,cursorElement:f}}getLinesScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let h=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(h/=this._currentRowHeight+0,this._wheelPartialScroll+=h,h=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(h*=this._bufferService.rows),h}_applyScrollModifier(d,h){let f=this._optionsService.rawOptions.fastScrollModifier;return f==="alt"&&h.altKey||f==="ctrl"&&h.ctrlKey||f==="shift"&&h.shiftKey?d*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:d*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(d){this._lastTouchY=d.touches[0].pageY}handleTouchMove(d){let h=this._lastTouchY-d.touches[0].pageY;return this._lastTouchY=d.touches[0].pageY,h!==0&&(this._viewportElement.scrollTop+=h,this._bubbleScroll(d,h))}};i.Viewport=c=a([u(2,p.IBufferService),u(3,p.IOptionsService),u(4,_.ICharSizeService),u(5,_.IRenderService),u(6,_.ICoreBrowserService),u(7,_.IThemeService)],c)},3107:function(o,i,n){var a=this&&this.__decorate||function(p,c,d,h){var f,g=arguments.length,C=g<3?c:h===null?h=Object.getOwnPropertyDescriptor(c,d):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,c,d,h);else for(var v=p.length-1;v>=0;v--)(f=p[v])&&(C=(g<3?f(C):g>3?f(c,d,C):f(c,d))||C);return g>3&&C&&Object.defineProperty(c,d,C),C},u=this&&this.__param||function(p,c){return function(d,h){c(d,h,p)}};Object.defineProperty(i,"__esModule",{value:!0}),i.BufferDecorationRenderer=void 0;let l=n(4725),_=n(844),m=n(2585),y=i.BufferDecorationRenderer=class extends _.Disposable{constructor(p,c,d,h,f){super(),this._screenElement=p,this._bufferService=c,this._coreBrowserService=d,this._decorationService=h,this._renderService=f,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((g=>this._removeDecoration(g)))),this.register((0,_.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(let p of this._decorationService.decorations)this._renderDecoration(p);this._dimensionsChanged=!1}_renderDecoration(p){this._refreshStyle(p),this._dimensionsChanged&&this._refreshXPosition(p)}_createElement(p){let c=this._coreBrowserService.mainDocument.createElement("div");c.classList.add("xterm-decoration"),c.classList.toggle("xterm-decoration-top-layer",p?.options?.layer==="top"),c.style.width=`${Math.round((p.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,c.style.height=(p.options.height||1)*this._renderService.dimensions.css.cell.height+"px",c.style.top=(p.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",c.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let d=p.options.x??0;return d&&d>this._bufferService.cols&&(c.style.display="none"),this._refreshXPosition(p,c),c}_refreshStyle(p){let c=p.marker.line-this._bufferService.buffers.active.ydisp;if(c<0||c>=this._bufferService.rows)p.element&&(p.element.style.display="none",p.onRenderEmitter.fire(p.element));else{let d=this._decorationElements.get(p);d||(d=this._createElement(p),p.element=d,this._decorationElements.set(p,d),this._container.appendChild(d),p.onDispose((()=>{this._decorationElements.delete(p),d.remove()}))),d.style.top=c*this._renderService.dimensions.css.cell.height+"px",d.style.display=this._altBufferIsActive?"none":"block",p.onRenderEmitter.fire(d)}}_refreshXPosition(p,c=p.element){if(!c)return;let d=p.options.x??0;(p.options.anchor||"left")==="right"?c.style.right=d?d*this._renderService.dimensions.css.cell.width+"px":"":c.style.left=d?d*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(p){this._decorationElements.get(p)?.remove(),this._decorationElements.delete(p),p.dispose()}};i.BufferDecorationRenderer=y=a([u(1,m.IBufferService),u(2,l.ICoreBrowserService),u(3,m.IDecorationService),u(4,l.IRenderService)],y)},5871:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ColorZoneStore=void 0,i.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(n){if(n.options.overviewRulerOptions){for(let a of this._zones)if(a.color===n.options.overviewRulerOptions.color&&a.position===n.options.overviewRulerOptions.position){if(this._lineIntersectsZone(a,n.marker.line))return;if(this._lineAdjacentToZone(a,n.marker.line,n.options.overviewRulerOptions.position))return void this._addLineToZone(a,n.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=n.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=n.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=n.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=n.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:n.options.overviewRulerOptions.color,position:n.options.overviewRulerOptions.position,startBufferLine:n.marker.line,endBufferLine:n.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(n){this._linePadding=n}_lineIntersectsZone(n,a){return a>=n.startBufferLine&&a<=n.endBufferLine}_lineAdjacentToZone(n,a,u){return a>=n.startBufferLine-this._linePadding[u||"full"]&&a<=n.endBufferLine+this._linePadding[u||"full"]}_addLineToZone(n,a){n.startBufferLine=Math.min(n.startBufferLine,a),n.endBufferLine=Math.max(n.endBufferLine,a)}}},5744:function(o,i,n){var a=this&&this.__decorate||function(f,g,C,v){var x,b=arguments.length,E=b<3?g:v===null?v=Object.getOwnPropertyDescriptor(g,C):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(f,g,C,v);else for(var O=f.length-1;O>=0;O--)(x=f[O])&&(E=(b<3?x(E):b>3?x(g,C,E):x(g,C))||E);return b>3&&E&&Object.defineProperty(g,C,E),E},u=this&&this.__param||function(f,g){return function(C,v){g(C,v,f)}};Object.defineProperty(i,"__esModule",{value:!0}),i.OverviewRulerRenderer=void 0;let l=n(5871),_=n(4725),m=n(844),y=n(2585),p={full:0,left:0,center:0,right:0},c={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},h=i.OverviewRulerRenderer=class extends m.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(f,g,C,v,x,b,E){super(),this._viewportElement=f,this._screenElement=g,this._bufferService=C,this._decorationService=v,this._renderService=x,this._optionsService=b,this._coreBrowserService=E,this._colorZoneStore=new l.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);let O=this._canvas.getContext("2d");if(!O)throw new Error("Ctx cannot be null");this._ctx=O,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,m.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){let f=Math.floor(this._canvas.width/3),g=Math.ceil(this._canvas.width/3);c.full=this._canvas.width,c.left=f,c.center=g,c.right=f,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=c.left,d.right=c.left+c.center}_refreshDrawHeightConstants(){p.full=Math.round(2*this._coreBrowserService.dpr);let f=this._canvas.height/this._bufferService.buffer.lines.length,g=Math.round(Math.max(Math.min(f,12),6)*this._coreBrowserService.dpr);p.left=g,p.center=g,p.right=g}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*p.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let g of this._decorationService.decorations)this._colorZoneStore.addDecoration(g);this._ctx.lineWidth=1;let f=this._colorZoneStore.zones;for(let g of f)g.position!=="full"&&this._renderColorZone(g);for(let g of f)g.position==="full"&&this._renderColorZone(g);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(f){this._ctx.fillStyle=f.color,this._ctx.fillRect(d[f.position||"full"],Math.round((this._canvas.height-1)*(f.startBufferLine/this._bufferService.buffers.active.lines.length)-p[f.position||"full"]/2),c[f.position||"full"],Math.round((this._canvas.height-1)*((f.endBufferLine-f.startBufferLine)/this._bufferService.buffers.active.lines.length)+p[f.position||"full"]))}_queueRefresh(f,g){this._shouldUpdateDimensions=f||this._shouldUpdateDimensions,this._shouldUpdateAnchor=g||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};i.OverviewRulerRenderer=h=a([u(2,y.IBufferService),u(3,y.IDecorationService),u(4,_.IRenderService),u(5,y.IOptionsService),u(6,_.ICoreBrowserService)],h)},2950:function(o,i,n){var a=this&&this.__decorate||function(p,c,d,h){var f,g=arguments.length,C=g<3?c:h===null?h=Object.getOwnPropertyDescriptor(c,d):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,c,d,h);else for(var v=p.length-1;v>=0;v--)(f=p[v])&&(C=(g<3?f(C):g>3?f(c,d,C):f(c,d))||C);return g>3&&C&&Object.defineProperty(c,d,C),C},u=this&&this.__param||function(p,c){return function(d,h){c(d,h,p)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CompositionHelper=void 0;let l=n(4725),_=n(2585),m=n(2584),y=i.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(p,c,d,h,f,g){this._textarea=p,this._compositionView=c,this._bufferService=d,this._optionsService=h,this._coreService=f,this._renderService=g,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(p){this._compositionView.textContent=p.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(p){if(this._isComposing||this._isSendingComposition){if(p.keyCode===229||p.keyCode===16||p.keyCode===17||p.keyCode===18)return!1;this._finalizeComposition(!1)}return p.keyCode!==229||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(p){if(this._compositionView.classList.remove("active"),this._isComposing=!1,p){let c={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let d;this._isSendingComposition=!1,c.start+=this._dataAlreadySent.length,d=this._isComposing?this._textarea.value.substring(c.start,c.end):this._textarea.value.substring(c.start),d.length>0&&this._coreService.triggerDataEvent(d,!0)}}),0)}else{this._isSendingComposition=!1;let c=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(c,!0)}}_handleAnyTextareaChanges(){let p=this._textarea.value;setTimeout((()=>{if(!this._isComposing){let c=this._textarea.value,d=c.replace(p,"");this._dataAlreadySent=d,c.length>p.length?this._coreService.triggerDataEvent(d,!0):c.length<p.length?this._coreService.triggerDataEvent(`${m.C0.DEL}`,!0):c.length===p.length&&c!==p&&this._coreService.triggerDataEvent(c,!0)}}),0)}updateCompositionElements(p){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){let c=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),d=this._renderService.dimensions.css.cell.height,h=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,f=c*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=f+"px",this._compositionView.style.top=h+"px",this._compositionView.style.height=d+"px",this._compositionView.style.lineHeight=d+"px",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+"px";let g=this._compositionView.getBoundingClientRect();this._textarea.style.left=f+"px",this._textarea.style.top=h+"px",this._textarea.style.width=Math.max(g.width,1)+"px",this._textarea.style.height=Math.max(g.height,1)+"px",this._textarea.style.lineHeight=g.height+"px"}p||setTimeout((()=>this.updateCompositionElements(!0)),0)}}};i.CompositionHelper=y=a([u(2,_.IBufferService),u(3,_.IOptionsService),u(4,_.ICoreService),u(5,l.IRenderService)],y)},9806:(o,i)=>{function n(a,u,l){let _=l.getBoundingClientRect(),m=a.getComputedStyle(l),y=parseInt(m.getPropertyValue("padding-left")),p=parseInt(m.getPropertyValue("padding-top"));return[u.clientX-_.left-y,u.clientY-_.top-p]}Object.defineProperty(i,"__esModule",{value:!0}),i.getCoords=i.getCoordsRelativeToElement=void 0,i.getCoordsRelativeToElement=n,i.getCoords=function(a,u,l,_,m,y,p,c,d){if(!y)return;let h=n(a,u,l);return h?(h[0]=Math.ceil((h[0]+(d?p/2:0))/p),h[1]=Math.ceil(h[1]/c),h[0]=Math.min(Math.max(h[0],1),_+(d?1:0)),h[1]=Math.min(Math.max(h[1],1),m),h):void 0}},9504:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.moveToCellSequence=void 0;let a=n(2584);function u(c,d,h,f){let g=c-l(c,h),C=d-l(d,h),v=Math.abs(g-C)-(function(x,b,E){let O=0,B=x-l(x,E),N=b-l(b,E);for(let A=0;A<Math.abs(B-N);A++){let K=_(x,b)==="A"?-1:1;E.buffer.lines.get(B+K*A)?.isWrapped&&O++}return O})(c,d,h);return p(v,y(_(c,d),f))}function l(c,d){let h=0,f=d.buffer.lines.get(c),g=f?.isWrapped;for(;g&&c>=0&&c<d.rows;)h++,f=d.buffer.lines.get(--c),g=f?.isWrapped;return h}function _(c,d){return c>d?"A":"B"}function m(c,d,h,f,g,C){let v=c,x=d,b="";for(;v!==h||x!==f;)v+=g?1:-1,g&&v>C.cols-1?(b+=C.buffer.translateBufferLineToString(x,!1,c,v),v=0,c=0,x++):!g&&v<0&&(b+=C.buffer.translateBufferLineToString(x,!1,0,c+1),v=C.cols-1,c=v,x--);return b+C.buffer.translateBufferLineToString(x,!1,c,v)}function y(c,d){let h=d?"O":"[";return a.C0.ESC+h+c}function p(c,d){c=Math.floor(c);let h="";for(let f=0;f<c;f++)h+=d;return h}i.moveToCellSequence=function(c,d,h,f){let g=h.buffer.x,C=h.buffer.y;if(!h.buffer.hasScrollback)return(function(b,E,O,B,N,A){return u(E,B,N,A).length===0?"":p(m(b,E,b,E-l(E,N),!1,N).length,y("D",A))})(g,C,0,d,h,f)+u(C,d,h,f)+(function(b,E,O,B,N,A){let K;K=u(E,B,N,A).length>0?B-l(B,N):E;let P=B,D=(function(H,I,S,T,k,R){let z;return z=u(S,T,k,R).length>0?T-l(T,k):I,H<S&&z<=T||H>=S&&z<T?"C":"D"})(b,E,O,B,N,A);return p(m(b,K,O,P,D==="C",N).length,y(D,A))})(g,C,c,d,h,f);let v;if(C===d)return v=g>c?"D":"C",p(Math.abs(g-c),y(v,f));v=C>d?"D":"C";let x=Math.abs(C-d);return p((function(b,E){return E.cols-b})(C>d?c:g,h)+(x-1)*h.cols+1+((C>d?g:c)-1),y(v,f))}},1296:function(o,i,n){var a=this&&this.__decorate||function(A,K,P,D){var H,I=arguments.length,S=I<3?K:D===null?D=Object.getOwnPropertyDescriptor(K,P):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(A,K,P,D);else for(var T=A.length-1;T>=0;T--)(H=A[T])&&(S=(I<3?H(S):I>3?H(K,P,S):H(K,P))||S);return I>3&&S&&Object.defineProperty(K,P,S),S},u=this&&this.__param||function(A,K){return function(P,D){K(P,D,A)}};Object.defineProperty(i,"__esModule",{value:!0}),i.DomRenderer=void 0;let l=n(3787),_=n(2550),m=n(2223),y=n(6171),p=n(6052),c=n(4725),d=n(8055),h=n(8460),f=n(844),g=n(2585),C="xterm-dom-renderer-owner-",v="xterm-rows",x="xterm-fg-",b="xterm-bg-",E="xterm-focus",O="xterm-selection",B=1,N=i.DomRenderer=class extends f.Disposable{constructor(A,K,P,D,H,I,S,T,k,R,z,V,X){super(),this._terminal=A,this._document=K,this._element=P,this._screenElement=D,this._viewportElement=H,this._helperContainer=I,this._linkifier2=S,this._charSizeService=k,this._optionsService=R,this._bufferService=z,this._coreBrowserService=V,this._themeService=X,this._terminalClass=B++,this._rowElements=[],this._selectionRenderModel=(0,p.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new h.EventEmitter).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(v),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement("div"),this._selectionContainer.classList.add(O),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,y.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((Z=>this._injectCss(Z)))),this._injectCss(this._themeService.colors),this._rowFactory=T.createInstance(l.DomRendererRowFactory,document),this._element.classList.add(C+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((Z=>this._handleLinkHover(Z)))),this.register(this._linkifier2.onHideLinkUnderline((Z=>this._handleLinkLeave(Z)))),this.register((0,f.toDisposable)((()=>{this._element.classList.remove(C+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new _.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let A=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*A,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*A),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/A),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/A),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let P of this._rowElements)P.style.width=`${this.dimensions.css.canvas.width}px`,P.style.height=`${this.dimensions.css.cell.height}px`,P.style.lineHeight=`${this.dimensions.css.cell.height}px`,P.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));let K=`${this._terminalSelector} .${v} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=K,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(A){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let K=`${this._terminalSelector} .${v} { color: ${A.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;K+=`${this._terminalSelector} .${v} .xterm-dim { color: ${d.color.multiplyOpacity(A.foreground,.5).css};}`,K+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let P=`blink_underline_${this._terminalClass}`,D=`blink_bar_${this._terminalClass}`,H=`blink_block_${this._terminalClass}`;K+=`@keyframes ${P} { 50% { border-bottom-style: hidden; }}`,K+=`@keyframes ${D} { 50% { box-shadow: none; }}`,K+=`@keyframes ${H} { 0% { background-color: ${A.cursor.css}; color: ${A.cursorAccent.css}; } 50% { background-color: inherit; color: ${A.cursor.css}; }}`,K+=`${this._terminalSelector} .${v}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${P} 1s step-end infinite;}${this._terminalSelector} .${v}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${D} 1s step-end infinite;}${this._terminalSelector} .${v}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${H} 1s step-end infinite;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-block { background-color: ${A.cursor.css}; color: ${A.cursorAccent.css};}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${A.cursor.css} !important; color: ${A.cursorAccent.css} !important;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${A.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${A.cursor.css} inset;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${A.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,K+=`${this._terminalSelector} .${O} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${O} div { position: absolute; background-color: ${A.selectionBackgroundOpaque.css};}${this._terminalSelector} .${O} div { position: absolute; background-color: ${A.selectionInactiveBackgroundOpaque.css};}`;for(let[I,S]of A.ansi.entries())K+=`${this._terminalSelector} .${x}${I} { color: ${S.css}; }${this._terminalSelector} .${x}${I}.xterm-dim { color: ${d.color.multiplyOpacity(S,.5).css}; }${this._terminalSelector} .${b}${I} { background-color: ${S.css}; }`;K+=`${this._terminalSelector} .${x}${m.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(A.background).css}; }${this._terminalSelector} .${x}${m.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(A.background),.5).css}; }${this._terminalSelector} .${b}${m.INVERTED_DEFAULT_COLOR} { background-color: ${A.foreground.css}; }`,this._themeStyleElement.textContent=K}_setDefaultSpacing(){let A=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${A}px`,this._rowFactory.defaultSpacing=A}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(A,K){for(let P=this._rowElements.length;P<=K;P++){let D=this._document.createElement("div");this._rowContainer.appendChild(D),this._rowElements.push(D)}for(;this._rowElements.length>K;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(A,K){this._refreshRowElements(A,K),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(E),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(E),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(A,K,P){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(A,K,P),this.renderRows(0,this._bufferService.rows-1),!A||!K)return;this._selectionRenderModel.update(this._terminal,A,K,P);let D=this._selectionRenderModel.viewportStartRow,H=this._selectionRenderModel.viewportEndRow,I=this._selectionRenderModel.viewportCappedStartRow,S=this._selectionRenderModel.viewportCappedEndRow;if(I>=this._bufferService.rows||S<0)return;let T=this._document.createDocumentFragment();if(P){let k=A[0]>K[0];T.appendChild(this._createSelectionElement(I,k?K[0]:A[0],k?A[0]:K[0],S-I+1))}else{let k=D===I?A[0]:0,R=I===H?K[0]:this._bufferService.cols;T.appendChild(this._createSelectionElement(I,k,R));let z=S-I-1;if(T.appendChild(this._createSelectionElement(I+1,0,this._bufferService.cols,z)),I!==S){let V=H===S?K[0]:this._bufferService.cols;T.appendChild(this._createSelectionElement(S,0,V))}}this._selectionContainer.appendChild(T)}_createSelectionElement(A,K,P,D=1){let H=this._document.createElement("div"),I=K*this.dimensions.css.cell.width,S=this.dimensions.css.cell.width*(P-K);return I+S>this.dimensions.css.canvas.width&&(S=this.dimensions.css.canvas.width-I),H.style.height=D*this.dimensions.css.cell.height+"px",H.style.top=A*this.dimensions.css.cell.height+"px",H.style.left=`${I}px`,H.style.width=`${S}px`,H}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let A of this._rowElements)A.replaceChildren()}renderRows(A,K){let P=this._bufferService.buffer,D=P.ybase+P.y,H=Math.min(P.x,this._bufferService.cols-1),I=this._optionsService.rawOptions.cursorBlink,S=this._optionsService.rawOptions.cursorStyle,T=this._optionsService.rawOptions.cursorInactiveStyle;for(let k=A;k<=K;k++){let R=k+P.ydisp,z=this._rowElements[k],V=P.lines.get(R);if(!z||!V)break;z.replaceChildren(...this._rowFactory.createRow(V,R,R===D,S,T,H,I,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${C}${this._terminalClass}`}_handleLinkHover(A){this._setCellUnderline(A.x1,A.x2,A.y1,A.y2,A.cols,!0)}_handleLinkLeave(A){this._setCellUnderline(A.x1,A.x2,A.y1,A.y2,A.cols,!1)}_setCellUnderline(A,K,P,D,H,I){P<0&&(A=0),D<0&&(K=0);let S=this._bufferService.rows-1;P=Math.max(Math.min(P,S),0),D=Math.max(Math.min(D,S),0),H=Math.min(H,this._bufferService.cols);let T=this._bufferService.buffer,k=T.ybase+T.y,R=Math.min(T.x,H-1),z=this._optionsService.rawOptions.cursorBlink,V=this._optionsService.rawOptions.cursorStyle,X=this._optionsService.rawOptions.cursorInactiveStyle;for(let Z=P;Z<=D;++Z){let W=Z+T.ydisp,L=this._rowElements[Z],F=T.lines.get(W);if(!L||!F)break;L.replaceChildren(...this._rowFactory.createRow(F,W,W===k,V,X,R,z,this.dimensions.css.cell.width,this._widthCache,I?Z===P?A:0:-1,I?(Z===D?K:H)-1:-1))}}};i.DomRenderer=N=a([u(7,g.IInstantiationService),u(8,c.ICharSizeService),u(9,g.IOptionsService),u(10,g.IBufferService),u(11,c.ICoreBrowserService),u(12,c.IThemeService)],N)},3787:function(o,i,n){var a=this&&this.__decorate||function(v,x,b,E){var O,B=arguments.length,N=B<3?x:E===null?E=Object.getOwnPropertyDescriptor(x,b):E;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")N=Reflect.decorate(v,x,b,E);else for(var A=v.length-1;A>=0;A--)(O=v[A])&&(N=(B<3?O(N):B>3?O(x,b,N):O(x,b))||N);return B>3&&N&&Object.defineProperty(x,b,N),N},u=this&&this.__param||function(v,x){return function(b,E){x(b,E,v)}};Object.defineProperty(i,"__esModule",{value:!0}),i.DomRendererRowFactory=void 0;let l=n(2223),_=n(643),m=n(511),y=n(2585),p=n(8055),c=n(4725),d=n(4269),h=n(6171),f=n(3734),g=i.DomRendererRowFactory=class{constructor(v,x,b,E,O,B,N){this._document=v,this._characterJoinerService=x,this._optionsService=b,this._coreBrowserService=E,this._coreService=O,this._decorationService=B,this._themeService=N,this._workCell=new m.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(v,x,b){this._selectionStart=v,this._selectionEnd=x,this._columnSelectMode=b}createRow(v,x,b,E,O,B,N,A,K,P,D){let H=[],I=this._characterJoinerService.getJoinedCharacters(x),S=this._themeService.colors,T,k=v.getNoBgTrimmedLength();b&&k<B+1&&(k=B+1);let R=0,z="",V=0,X=0,Z=0,W=!1,L=0,F=!1,$=0,j=[],Y=P!==-1&&D!==-1;for(let ee=0;ee<k;ee++){v.loadCell(ee,this._workCell);let fe=this._workCell.getWidth();if(fe===0)continue;let ce=!1,se=ee,G=this._workCell;if(I.length>0&&ee===I[0][0]){ce=!0;let pe=I.shift();G=new d.JoinedCellData(this._workCell,v.translateToString(!0,pe[0],pe[1]),pe[1]-pe[0]),se=pe[1]-1,fe=G.getWidth()}let te=this._isCellInSelection(ee,x),ve=b&&ee===B,le=Y&&ee>=P&&ee<=D,be=!1;this._decorationService.forEachDecorationAtCell(ee,x,void 0,(pe=>{be=!0}));let Ae=G.getChars()||_.WHITESPACE_CELL_CHAR;if(Ae===" "&&(G.isUnderline()||G.isOverline())&&(Ae="\xA0"),$=fe*A-K.get(Ae,G.isBold(),G.isItalic()),T){if(R&&(te&&F||!te&&!F&&G.bg===V)&&(te&&F&&S.selectionForeground||G.fg===X)&&G.extended.ext===Z&&le===W&&$===L&&!ve&&!ce&&!be){G.isInvisible()?z+=_.WHITESPACE_CELL_CHAR:z+=Ae,R++;continue}R&&(T.textContent=z),T=this._document.createElement("span"),R=0,z=""}else T=this._document.createElement("span");if(V=G.bg,X=G.fg,Z=G.extended.ext,W=le,L=$,F=te,ce&&B>=ee&&B<=se&&(B=ee),!this._coreService.isCursorHidden&&ve&&this._coreService.isCursorInitialized){if(j.push("xterm-cursor"),this._coreBrowserService.isFocused)N&&j.push("xterm-cursor-blink"),j.push(E==="bar"?"xterm-cursor-bar":E==="underline"?"xterm-cursor-underline":"xterm-cursor-block");else if(O)switch(O){case"outline":j.push("xterm-cursor-outline");break;case"block":j.push("xterm-cursor-block");break;case"bar":j.push("xterm-cursor-bar");break;case"underline":j.push("xterm-cursor-underline")}}if(G.isBold()&&j.push("xterm-bold"),G.isItalic()&&j.push("xterm-italic"),G.isDim()&&j.push("xterm-dim"),z=G.isInvisible()?_.WHITESPACE_CELL_CHAR:G.getChars()||_.WHITESPACE_CELL_CHAR,G.isUnderline()&&(j.push(`xterm-underline-${G.extended.underlineStyle}`),z===" "&&(z="\xA0"),!G.isUnderlineColorDefault()))if(G.isUnderlineColorRGB())T.style.textDecorationColor=`rgb(${f.AttributeData.toColorRGB(G.getUnderlineColor()).join(",")})`;else{let pe=G.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&G.isBold()&&pe<8&&(pe+=8),T.style.textDecorationColor=S.ansi[pe].css}G.isOverline()&&(j.push("xterm-overline"),z===" "&&(z="\xA0")),G.isStrikethrough()&&j.push("xterm-strikethrough"),le&&(T.style.textDecoration="underline");let De=G.getFgColor(),Q=G.getFgColorMode(),re=G.getBgColor(),ie=G.getBgColorMode(),ae=!!G.isInverse();if(ae){let pe=De;De=re,re=pe;let Le=Q;Q=ie,ie=Le}let he,ne,me,we=!1;switch(this._decorationService.forEachDecorationAtCell(ee,x,void 0,(pe=>{pe.options.layer!=="top"&&we||(pe.backgroundColorRGB&&(ie=50331648,re=pe.backgroundColorRGB.rgba>>8&16777215,he=pe.backgroundColorRGB),pe.foregroundColorRGB&&(Q=50331648,De=pe.foregroundColorRGB.rgba>>8&16777215,ne=pe.foregroundColorRGB),we=pe.options.layer==="top")})),!we&&te&&(he=this._coreBrowserService.isFocused?S.selectionBackgroundOpaque:S.selectionInactiveBackgroundOpaque,re=he.rgba>>8&16777215,ie=50331648,we=!0,S.selectionForeground&&(Q=50331648,De=S.selectionForeground.rgba>>8&16777215,ne=S.selectionForeground)),we&&j.push("xterm-decoration-top"),ie){case 16777216:case 33554432:me=S.ansi[re],j.push(`xterm-bg-${re}`);break;case 50331648:me=p.channels.toColor(re>>16,re>>8&255,255&re),this._addStyle(T,`background-color:#${C((re>>>0).toString(16),"0",6)}`);break;default:ae?(me=S.foreground,j.push(`xterm-bg-${l.INVERTED_DEFAULT_COLOR}`)):me=S.background}switch(he||G.isDim()&&(he=p.color.multiplyOpacity(me,.5)),Q){case 16777216:case 33554432:G.isBold()&&De<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(De+=8),this._applyMinimumContrast(T,me,S.ansi[De],G,he,void 0)||j.push(`xterm-fg-${De}`);break;case 50331648:let pe=p.channels.toColor(De>>16&255,De>>8&255,255&De);this._applyMinimumContrast(T,me,pe,G,he,ne)||this._addStyle(T,`color:#${C(De.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(T,me,S.foreground,G,he,ne)||ae&&j.push(`xterm-fg-${l.INVERTED_DEFAULT_COLOR}`)}j.length&&(T.className=j.join(" "),j.length=0),ve||ce||be?T.textContent=z:R++,$!==this.defaultSpacing&&(T.style.letterSpacing=`${$}px`),H.push(T),ee=se}return T&&R&&(T.textContent=z),H}_applyMinimumContrast(v,x,b,E,O,B){if(this._optionsService.rawOptions.minimumContrastRatio===1||(0,h.treatGlyphAsBackgroundColor)(E.getCode()))return!1;let N=this._getContrastCache(E),A;if(O||B||(A=N.getColor(x.rgba,b.rgba)),A===void 0){let K=this._optionsService.rawOptions.minimumContrastRatio/(E.isDim()?2:1);A=p.color.ensureContrastRatio(O||x,B||b,K),N.setColor((O||x).rgba,(B||b).rgba,A??null)}return!!A&&(this._addStyle(v,`color:${A.css}`),!0)}_getContrastCache(v){return v.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(v,x){v.setAttribute("style",`${v.getAttribute("style")||""}${x};`)}_isCellInSelection(v,x){let b=this._selectionStart,E=this._selectionEnd;return!(!b||!E)&&(this._columnSelectMode?b[0]<=E[0]?v>=b[0]&&x>=b[1]&&v<E[0]&&x<=E[1]:v<b[0]&&x>=b[1]&&v>=E[0]&&x<=E[1]:x>b[1]&&x<E[1]||b[1]===E[1]&&x===b[1]&&v>=b[0]&&v<E[0]||b[1]<E[1]&&x===E[1]&&v<E[0]||b[1]<E[1]&&x===b[1]&&v>=b[0])}};function C(v,x,b){for(;v.length<b;)v=x+v;return v}i.DomRendererRowFactory=g=a([u(1,c.ICharacterJoinerService),u(2,y.IOptionsService),u(3,c.ICoreBrowserService),u(4,y.ICoreService),u(5,y.IDecorationService),u(6,c.IThemeService)],g)},2550:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.WidthCache=void 0,i.WidthCache=class{constructor(n,a){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=n.createElement("div"),this._container.classList.add("xterm-width-cache-measure-container"),this._container.setAttribute("aria-hidden","true"),this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";let u=n.createElement("span");u.classList.add("xterm-char-measure-element");let l=n.createElement("span");l.classList.add("xterm-char-measure-element"),l.style.fontWeight="bold";let _=n.createElement("span");_.classList.add("xterm-char-measure-element"),_.style.fontStyle="italic";let m=n.createElement("span");m.classList.add("xterm-char-measure-element"),m.style.fontWeight="bold",m.style.fontStyle="italic",this._measureElements=[u,l,_,m],this._container.appendChild(u),this._container.appendChild(l),this._container.appendChild(_),this._container.appendChild(m),a.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(n,a,u,l){n===this._font&&a===this._fontSize&&u===this._weight&&l===this._weightBold||(this._font=n,this._fontSize=a,this._weight=u,this._weightBold=l,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${u}`,this._measureElements[1].style.fontWeight=`${l}`,this._measureElements[2].style.fontWeight=`${u}`,this._measureElements[3].style.fontWeight=`${l}`,this.clear())}get(n,a,u){let l=0;if(!a&&!u&&n.length===1&&(l=n.charCodeAt(0))<256){if(this._flat[l]!==-9999)return this._flat[l];let y=this._measure(n,0);return y>0&&(this._flat[l]=y),y}let _=n;a&&(_+="B"),u&&(_+="I");let m=this._holey.get(_);if(m===void 0){let y=0;a&&(y|=1),u&&(y|=2),m=this._measure(n,y),m>0&&this._holey.set(_,m)}return m}_measure(n,a){let u=this._measureElements[a];return u.textContent=n.repeat(32),u.offsetWidth/32}}},2223:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.TEXT_BASELINE=i.DIM_OPACITY=i.INVERTED_DEFAULT_COLOR=void 0;let a=n(6114);i.INVERTED_DEFAULT_COLOR=257,i.DIM_OPACITY=.5,i.TEXT_BASELINE=a.isFirefox||a.isLegacyEdge?"bottom":"ideographic"},6171:(o,i)=>{function n(u){return 57508<=u&&u<=57558}function a(u){return u>=128512&&u<=128591||u>=127744&&u<=128511||u>=128640&&u<=128767||u>=9728&&u<=9983||u>=9984&&u<=10175||u>=65024&&u<=65039||u>=129280&&u<=129535||u>=127462&&u<=127487}Object.defineProperty(i,"__esModule",{value:!0}),i.computeNextVariantOffset=i.createRenderDimensions=i.treatGlyphAsBackgroundColor=i.allowRescaling=i.isEmoji=i.isRestrictedPowerlineGlyph=i.isPowerlineGlyph=i.throwIfFalsy=void 0,i.throwIfFalsy=function(u){if(!u)throw new Error("value must not be falsy");return u},i.isPowerlineGlyph=n,i.isRestrictedPowerlineGlyph=function(u){return 57520<=u&&u<=57527},i.isEmoji=a,i.allowRescaling=function(u,l,_,m){return l===1&&_>Math.ceil(1.5*m)&&u!==void 0&&u>255&&!a(u)&&!n(u)&&!(function(y){return 57344<=y&&y<=63743})(u)},i.treatGlyphAsBackgroundColor=function(u){return n(u)||(function(l){return 9472<=l&&l<=9631})(u)},i.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},i.computeNextVariantOffset=function(u,l,_=0){return(u-(2*Math.round(l)-_))%(2*Math.round(l))}},6052:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.createSelectionRenderModel=void 0;class n{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(u,l,_,m=!1){if(this.selectionStart=l,this.selectionEnd=_,!l||!_||l[0]===_[0]&&l[1]===_[1])return void this.clear();let y=u.buffers.active.ydisp,p=l[1]-y,c=_[1]-y,d=Math.max(p,0),h=Math.min(c,u.rows-1);d>=u.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=m,this.viewportStartRow=p,this.viewportEndRow=c,this.viewportCappedStartRow=d,this.viewportCappedEndRow=h,this.startCol=l[0],this.endCol=_[0])}isCellSelected(u,l,_){return!!this.hasSelection&&(_-=u.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?l>=this.startCol&&_>=this.viewportCappedStartRow&&l<this.endCol&&_<=this.viewportCappedEndRow:l<this.startCol&&_>=this.viewportCappedStartRow&&l>=this.endCol&&_<=this.viewportCappedEndRow:_>this.viewportStartRow&&_<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&_===this.viewportStartRow&&l>=this.startCol&&l<this.endCol||this.viewportStartRow<this.viewportEndRow&&_===this.viewportEndRow&&l<this.endCol||this.viewportStartRow<this.viewportEndRow&&_===this.viewportStartRow&&l>=this.startCol)}}i.createSelectionRenderModel=function(){return new n}},456:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionModel=void 0,i.SelectionModel=class{constructor(n){this._bufferService=n,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let n=this.selectionStart[0]+this.selectionStartLength;return n>this._bufferService.cols?n%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)-1]:[n%this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)]:[n,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let n=this.selectionStart[0]+this.selectionStartLength;return n>this._bufferService.cols?[n%this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)]:[Math.max(n,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let n=this.selectionStart,a=this.selectionEnd;return!(!n||!a)&&(n[1]>a[1]||n[1]===a[1]&&n[0]>a[0])}handleTrim(n){return this.selectionStart&&(this.selectionStart[1]-=n),this.selectionEnd&&(this.selectionEnd[1]-=n),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(o,i,n){var a=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CharSizeService=void 0;let l=n(2585),_=n(8460),m=n(844),y=i.CharSizeService=class extends m.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(h,f,g){super(),this._optionsService=g,this.width=0,this.height=0,this._onCharSizeChange=this.register(new _.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new c(h,f,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],(()=>this.measure())))}measure(){let h=this._measureStrategy.measure();h.width===this.width&&h.height===this.height||(this.width=h.width,this.height=h.height,this._onCharSizeChange.fire())}};i.CharSizeService=y=a([u(2,l.IOptionsService)],y);class p extends m.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(f,g){f!==void 0&&f>0&&g!==void 0&&g>0&&(this._result.width=f,this._result.height=g)}}class c extends p{constructor(f,g,C){super(),this._document=f,this._parentElement=g,this._optionsService=C,this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends p{constructor(f){super(),this._optionsService=f,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");let g=this._ctx.measureText("W");if(!("width"in g&&"fontBoundingBoxAscent"in g&&"fontBoundingBoxDescent"in g))throw new Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let f=this._ctx.measureText("W");return this._validateAndSet(f.width,f.fontBoundingBoxAscent+f.fontBoundingBoxDescent),this._result}}},4269:function(o,i,n){var a=this&&this.__decorate||function(d,h,f,g){var C,v=arguments.length,x=v<3?h:g===null?g=Object.getOwnPropertyDescriptor(h,f):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(d,h,f,g);else for(var b=d.length-1;b>=0;b--)(C=d[b])&&(x=(v<3?C(x):v>3?C(h,f,x):C(h,f))||x);return v>3&&x&&Object.defineProperty(h,f,x),x},u=this&&this.__param||function(d,h){return function(f,g){h(f,g,d)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CharacterJoinerService=i.JoinedCellData=void 0;let l=n(3734),_=n(643),m=n(511),y=n(2585);class p extends l.AttributeData{constructor(h,f,g){super(),this.content=0,this.combinedData="",this.fg=h.fg,this.bg=h.bg,this.combinedData=f,this._width=g}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(h){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}i.JoinedCellData=p;let c=i.CharacterJoinerService=class Jo{constructor(h){this._bufferService=h,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new m.CellData}register(h){let f={id:this._nextCharacterJoinerId++,handler:h};return this._characterJoiners.push(f),f.id}deregister(h){for(let f=0;f<this._characterJoiners.length;f++)if(this._characterJoiners[f].id===h)return this._characterJoiners.splice(f,1),!0;return!1}getJoinedCharacters(h){if(this._characterJoiners.length===0)return[];let f=this._bufferService.buffer.lines.get(h);if(!f||f.length===0)return[];let g=[],C=f.translateToString(!0),v=0,x=0,b=0,E=f.getFg(0),O=f.getBg(0);for(let B=0;B<f.getTrimmedLength();B++)if(f.loadCell(B,this._workCell),this._workCell.getWidth()!==0){if(this._workCell.fg!==E||this._workCell.bg!==O){if(B-v>1){let N=this._getJoinedRanges(C,b,x,f,v);for(let A=0;A<N.length;A++)g.push(N[A])}v=B,b=x,E=this._workCell.fg,O=this._workCell.bg}x+=this._workCell.getChars().length||_.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-v>1){let B=this._getJoinedRanges(C,b,x,f,v);for(let N=0;N<B.length;N++)g.push(B[N])}return g}_getJoinedRanges(h,f,g,C,v){let x=h.substring(f,g),b=[];try{b=this._characterJoiners[0].handler(x)}catch(E){console.error(E)}for(let E=1;E<this._characterJoiners.length;E++)try{let O=this._characterJoiners[E].handler(x);for(let B=0;B<O.length;B++)Jo._mergeRanges(b,O[B])}catch(O){console.error(O)}return this._stringRangesToCellRanges(b,C,v),b}_stringRangesToCellRanges(h,f,g){let C=0,v=!1,x=0,b=h[C];if(b){for(let E=g;E<this._bufferService.cols;E++){let O=f.getWidth(E),B=f.getString(E).length||_.WHITESPACE_CELL_CHAR.length;if(O!==0){if(!v&&b[0]<=x&&(b[0]=E,v=!0),b[1]<=x){if(b[1]=E,b=h[++C],!b)break;b[0]<=x?(b[0]=E,v=!0):v=!1}x+=B}}b&&(b[1]=this._bufferService.cols)}}static _mergeRanges(h,f){let g=!1;for(let C=0;C<h.length;C++){let v=h[C];if(g){if(f[1]<=v[0])return h[C-1][1]=f[1],h;if(f[1]<=v[1])return h[C-1][1]=Math.max(f[1],v[1]),h.splice(C,1),h;h.splice(C,1),C--}else{if(f[1]<=v[0])return h.splice(C,0,f),h;if(f[1]<=v[1])return v[0]=Math.min(f[0],v[0]),h;f[0]<v[1]&&(v[0]=Math.min(f[0],v[0]),g=!0)}}return g?h[h.length-1][1]=f[1]:h.push(f),h}};i.CharacterJoinerService=c=a([u(0,y.IBufferService)],c)},5114:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CoreBrowserService=void 0;let a=n(844),u=n(8460),l=n(3656);class _ extends a.Disposable{constructor(p,c,d){super(),this._textarea=p,this._window=c,this.mainDocument=d,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new m(this._window),this._onDprChange=this.register(new u.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new u.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((h=>this._screenDprMonitor.setWindow(h)))),this.register((0,u.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener("focus",(()=>this._isFocused=!0)),this._textarea.addEventListener("blur",(()=>this._isFocused=!1))}get window(){return this._window}set window(p){this._window!==p&&(this._window=p,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}i.CoreBrowserService=_;class m extends a.Disposable{constructor(p){super(),this._parentWindow=p,this._windowResizeListener=this.register(new a.MutableDisposable),this._onDprChange=this.register(new u.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,a.toDisposable)((()=>this.clearListener())))}setWindow(p){this._parentWindow=p,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,l.addDisposableDomListener)(this._parentWindow,"resize",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.LinkProviderService=void 0;let a=n(844);class u extends a.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,a.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(_){return this.linkProviders.push(_),{dispose:()=>{let m=this.linkProviders.indexOf(_);m!==-1&&this.linkProviders.splice(m,1)}}}}i.LinkProviderService=u},8934:function(o,i,n){var a=this&&this.__decorate||function(y,p,c,d){var h,f=arguments.length,g=f<3?p:d===null?d=Object.getOwnPropertyDescriptor(p,c):d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")g=Reflect.decorate(y,p,c,d);else for(var C=y.length-1;C>=0;C--)(h=y[C])&&(g=(f<3?h(g):f>3?h(p,c,g):h(p,c))||g);return f>3&&g&&Object.defineProperty(p,c,g),g},u=this&&this.__param||function(y,p){return function(c,d){p(c,d,y)}};Object.defineProperty(i,"__esModule",{value:!0}),i.MouseService=void 0;let l=n(4725),_=n(9806),m=i.MouseService=class{constructor(y,p){this._renderService=y,this._charSizeService=p}getCoords(y,p,c,d,h){return(0,_.getCoords)(window,y,p,c,d,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,h)}getMouseReportCoords(y,p){let c=(0,_.getCoordsRelativeToElement)(window,y,p);if(this._charSizeService.hasValidSize)return c[0]=Math.min(Math.max(c[0],0),this._renderService.dimensions.css.canvas.width-1),c[1]=Math.min(Math.max(c[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(c[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(c[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(c[0]),y:Math.floor(c[1])}}};i.MouseService=m=a([u(0,l.IRenderService),u(1,l.ICharSizeService)],m)},3230:function(o,i,n){var a=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.RenderService=void 0;let l=n(6193),_=n(4725),m=n(8460),y=n(844),p=n(7226),c=n(2585),d=i.RenderService=class extends y.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(h,f,g,C,v,x,b,E){super(),this._rowCount=h,this._charSizeService=C,this._renderer=this.register(new y.MutableDisposable),this._pausedResizeTask=new p.DebouncedIdleTask,this._observerDisposable=this.register(new y.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new m.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new m.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new m.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new m.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new l.RenderDebouncer(((O,B)=>this._renderRows(O,B)),b),this.register(this._renderDebouncer),this.register(b.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(x.onResize((()=>this._fullRefresh()))),this.register(x.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(g.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(v.onDecorationRegistered((()=>this._fullRefresh()))),this.register(v.onDecorationRemoved((()=>this._fullRefresh()))),this.register(g.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],(()=>{this.clear(),this.handleResize(x.cols,x.rows),this._fullRefresh()}))),this.register(g.onMultipleOptionChange(["cursorBlink","cursorStyle"],(()=>this.refreshRows(x.buffer.y,x.buffer.y,!0)))),this.register(E.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(b.window,f),this.register(b.onWindowChange((O=>this._registerIntersectionObserver(O,f))))}_registerIntersectionObserver(h,f){if("IntersectionObserver"in h){let g=new h.IntersectionObserver((C=>this._handleIntersectionChange(C[C.length-1])),{threshold:0});g.observe(f),this._observerDisposable.value=(0,y.toDisposable)((()=>g.disconnect()))}}_handleIntersectionChange(h){this._isPaused=h.isIntersecting===void 0?h.intersectionRatio===0:!h.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(h,f,g=!1){this._isPaused?this._needsFullRefresh=!0:(g||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(h,f,this._rowCount))}_renderRows(h,f){this._renderer.value&&(h=Math.min(h,this._rowCount-1),f=Math.min(f,this._rowCount-1),this._renderer.value.renderRows(h,f),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:h,end:f}),this._onRender.fire({start:h,end:f}),this._isNextRenderRedrawOnly=!0)}resize(h,f){this._rowCount=f,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(h){this._renderer.value=h,this._renderer.value&&(this._renderer.value.onRequestRedraw((f=>this.refreshRows(f.start,f.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(h){return this._renderDebouncer.addRefreshCallback(h)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(h,f){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(h,f))):this._renderer.value.handleResize(h,f),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(h,f,g){this._selectionState.start=h,this._selectionState.end=f,this._selectionState.columnSelectMode=g,this._renderer.value?.handleSelectionChanged(h,f,g)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};i.RenderService=d=a([u(2,c.IOptionsService),u(3,_.ICharSizeService),u(4,c.IDecorationService),u(5,c.IBufferService),u(6,_.ICoreBrowserService),u(7,_.IThemeService)],d)},9312:function(o,i,n){var a=this&&this.__decorate||function(b,E,O,B){var N,A=arguments.length,K=A<3?E:B===null?B=Object.getOwnPropertyDescriptor(E,O):B;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")K=Reflect.decorate(b,E,O,B);else for(var P=b.length-1;P>=0;P--)(N=b[P])&&(K=(A<3?N(K):A>3?N(E,O,K):N(E,O))||K);return A>3&&K&&Object.defineProperty(E,O,K),K},u=this&&this.__param||function(b,E){return function(O,B){E(O,B,b)}};Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionService=void 0;let l=n(9806),_=n(9504),m=n(456),y=n(4725),p=n(8460),c=n(844),d=n(6114),h=n(4841),f=n(511),g=n(2585),C="\xA0",v=new RegExp(C,"g"),x=i.SelectionService=class extends c.Disposable{constructor(b,E,O,B,N,A,K,P,D){super(),this._element=b,this._screenElement=E,this._linkifier=O,this._bufferService=B,this._coreService=N,this._mouseService=A,this._optionsService=K,this._renderService=P,this._coreBrowserService=D,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new f.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new p.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new p.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new p.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new p.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=H=>this._handleMouseMove(H),this._mouseUpListener=H=>this._handleMouseUp(H),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((H=>this._handleTrim(H))),this.register(this._bufferService.buffers.onBufferActivate((H=>this._handleBufferActivate(H)))),this.enable(),this._model=new m.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,c.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let b=this._model.finalSelectionStart,E=this._model.finalSelectionEnd;return!(!b||!E||b[0]===E[0]&&b[1]===E[1])}get selectionText(){let b=this._model.finalSelectionStart,E=this._model.finalSelectionEnd;if(!b||!E)return"";let O=this._bufferService.buffer,B=[];if(this._activeSelectionMode===3){if(b[0]===E[0])return"";let N=b[0]<E[0]?b[0]:E[0],A=b[0]<E[0]?E[0]:b[0];for(let K=b[1];K<=E[1];K++){let P=O.translateBufferLineToString(K,!0,N,A);B.push(P)}}else{let N=b[1]===E[1]?E[0]:void 0;B.push(O.translateBufferLineToString(b[1],!0,b[0],N));for(let A=b[1]+1;A<=E[1]-1;A++){let K=O.lines.get(A),P=O.translateBufferLineToString(A,!0);K?.isWrapped?B[B.length-1]+=P:B.push(P)}if(b[1]!==E[1]){let A=O.lines.get(E[1]),K=O.translateBufferLineToString(E[1],!0,0,E[0]);A&&A.isWrapped?B[B.length-1]+=K:B.push(K)}}return B.map((N=>N.replace(v," "))).join(d.isWindows?`\r
6
6
  `:`
7
- `)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(b){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&b&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(b){let E=this._getMouseBufferCoords(b),O=this._model.finalSelectionStart,B=this._model.finalSelectionEnd;return!!(O&&B&&E)&&this._areCoordsInSelection(E,O,B)}isCellInSelection(b,E){let O=this._model.finalSelectionStart,B=this._model.finalSelectionEnd;return!(!O||!B)&&this._areCoordsInSelection([b,E],O,B)}_areCoordsInSelection(b,E,O){return b[1]>E[1]&&b[1]<O[1]||E[1]===O[1]&&b[1]===E[1]&&b[0]>=E[0]&&b[0]<O[0]||E[1]<O[1]&&b[1]===O[1]&&b[0]<O[0]||E[1]<O[1]&&b[1]===E[1]&&b[0]>=E[0]}_selectWordAtCursor(b,E){let O=this._linkifier.currentLink?.link?.range;if(O)return this._model.selectionStart=[O.start.x-1,O.start.y-1],this._model.selectionStartLength=(0,h.getRangeLength)(O,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let B=this._getMouseBufferCoords(b);return!!B&&(this._selectWordAt(B,E),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(b,E){this._model.clearSelection(),b=Math.max(b,0),E=Math.min(E,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,b],this._model.selectionEnd=[this._bufferService.cols,E],this.refresh(),this._onSelectionChange.fire()}_handleTrim(b){this._model.handleTrim(b)&&this.refresh()}_getMouseBufferCoords(b){let E=this._mouseService.getCoords(b,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(E)return E[0]--,E[1]--,E[1]+=this._bufferService.buffer.ydisp,E}_getMouseEventScrollAmount(b){let E=(0,l.getCoordsRelativeToElement)(this._coreBrowserService.window,b,this._screenElement)[1],O=this._renderService.dimensions.css.canvas.height;return E>=0&&E<=O?0:(E>O&&(E-=O),E=Math.min(Math.max(E,-50),50),E/=50,E/Math.abs(E)+Math.round(14*E))}shouldForceSelection(b){return d.isMac?b.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:b.shiftKey}handleMouseDown(b){if(this._mouseDownTimeStamp=b.timeStamp,(b.button!==2||!this.hasSelection)&&b.button===0){if(!this._enabled){if(!this.shouldForceSelection(b))return;b.stopPropagation()}b.preventDefault(),this._dragScrollAmount=0,this._enabled&&b.shiftKey?this._handleIncrementalClick(b):b.detail===1?this._handleSingleClick(b):b.detail===2?this._handleDoubleClick(b):b.detail===3&&this._handleTripleClick(b),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(b){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(b))}_handleSingleClick(b){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(b)?3:0,this._model.selectionStart=this._getMouseBufferCoords(b),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let E=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);E&&E.length!==this._model.selectionStart[0]&&E.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(b){this._selectWordAtCursor(b,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(b){let E=this._getMouseBufferCoords(b);E&&(this._activeSelectionMode=2,this._selectLineAt(E[1]))}shouldColumnSelect(b){return b.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(b){if(b.stopImmediatePropagation(),!this._model.selectionStart)return;let E=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(b),!this._model.selectionEnd)return void this.refresh(!0);this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(b),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let O=this._bufferService.buffer;if(this._model.selectionEnd[1]<O.lines.length){let B=O.lines.get(this._model.selectionEnd[1]);B&&B.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}E&&E[0]===this._model.selectionEnd[0]&&E[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let b=this._bufferService.buffer;this._dragScrollAmount>0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(b.ydisp+this._bufferService.rows,b.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=b.ydisp),this.refresh()}}_handleMouseUp(b){let E=b.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&E<500&&b.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let O=this._mouseService.getCoords(b,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(O&&O[0]!==void 0&&O[1]!==void 0){let B=(0,_.moveToCellSequence)(O[0]-1,O[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(B,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let b=this._model.finalSelectionStart,E=this._model.finalSelectionEnd,O=!(!b||!E||b[0]===E[0]&&b[1]===E[1]);O?b&&E&&(this._oldSelectionStart&&this._oldSelectionEnd&&b[0]===this._oldSelectionStart[0]&&b[1]===this._oldSelectionStart[1]&&E[0]===this._oldSelectionEnd[0]&&E[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(b,E,O)):this._oldHasSelection&&this._fireOnSelectionChange(b,E,O)}_fireOnSelectionChange(b,E,O){this._oldSelectionStart=b,this._oldSelectionEnd=E,this._oldHasSelection=O,this._onSelectionChange.fire()}_handleBufferActivate(b){this.clearSelection(),this._trimListener.dispose(),this._trimListener=b.activeBuffer.lines.onTrim((E=>this._handleTrim(E)))}_convertViewportColToCharacterIndex(b,E){let O=E;for(let B=0;E>=B;B++){let H=b.loadCell(B,this._workCell).getChars().length;this._workCell.getWidth()===0?O--:H>1&&E!==B&&(O+=H-1)}return O}setSelection(b,E,O){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[b,E],this._model.selectionStartLength=O,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(b){this._isClickInSelection(b)||(this._selectWordAtCursor(b,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(b,E,O=!0,B=!0){if(b[0]>=this._bufferService.cols)return;let H=this._bufferService.buffer,M=H.lines.get(b[1]);if(!M)return;let K=H.translateBufferLineToString(b[1],!1),P=this._convertViewportColToCharacterIndex(M,b[0]),D=P,F=b[0]-P,N=0,y=0,T=0,k=0;if(K.charAt(P)===" "){for(;P>0&&K.charAt(P-1)===" ";)P--;for(;D<K.length&&K.charAt(D+1)===" ";)D++}else{let G=b[0],J=b[0];M.getWidth(G)===0&&(N++,G--),M.getWidth(J)===2&&(y++,J++);let X=M.getString(J).length;for(X>1&&(k+=X-1,D+=X-1);G>0&&P>0&&!this._isCharWordSeparator(M.loadCell(G-1,this._workCell));){M.loadCell(G-1,this._workCell);let W=this._workCell.getChars().length;this._workCell.getWidth()===0?(N++,G--):W>1&&(T+=W-1,P-=W-1),P--,G--}for(;J<M.length&&D+1<K.length&&!this._isCharWordSeparator(M.loadCell(J+1,this._workCell));){M.loadCell(J+1,this._workCell);let W=this._workCell.getChars().length;this._workCell.getWidth()===2?(y++,J++):W>1&&(k+=W-1,D+=W-1),D++,J++}}D++;let R=P+F-N+T,U=Math.min(this._bufferService.cols,D-P+N+y-T-k);if(E||K.slice(P,D).trim()!==""){if(O&&R===0&&M.getCodePoint(0)!==32){let G=H.lines.get(b[1]-1);if(G&&M.isWrapped&&G.getCodePoint(this._bufferService.cols-1)!==32){let J=this._getWordAt([this._bufferService.cols-1,b[1]-1],!1,!0,!1);if(J){let X=this._bufferService.cols-J.start;R-=X,U+=X}}}if(B&&R+U===this._bufferService.cols&&M.getCodePoint(this._bufferService.cols-1)!==32){let G=H.lines.get(b[1]+1);if(G?.isWrapped&&G.getCodePoint(0)!==32){let J=this._getWordAt([0,b[1]+1],!1,!1,!0);J&&(U+=J.length)}}return{start:R,length:U}}}_selectWordAt(b,E){let O=this._getWordAt(b,E);if(O){for(;O.start<0;)O.start+=this._bufferService.cols,b[1]--;this._model.selectionStart=[O.start,b[1]],this._model.selectionStartLength=O.length}}_selectToWordAt(b){let E=this._getWordAt(b,!0);if(E){let O=b[1];for(;E.start<0;)E.start+=this._bufferService.cols,O--;if(!this._model.areSelectionValuesReversed())for(;E.start+E.length>this._bufferService.cols;)E.length-=this._bufferService.cols,O++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?E.start:E.start+E.length,O]}}_isCharWordSeparator(b){return b.getWidth()!==0&&this._optionsService.rawOptions.wordSeparator.indexOf(b.getChars())>=0}_selectLineAt(b){let E=this._bufferService.buffer.getWrappedRangeForLine(b),O={start:{x:0,y:E.first},end:{x:this._bufferService.cols-1,y:E.last}};this._model.selectionStart=[0,E.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,h.getRangeLength)(O,this._bufferService.cols)}};i.SelectionService=x=o([u(3,g.IBufferService),u(4,g.ICoreService),u(5,w.IMouseService),u(6,g.IOptionsService),u(7,w.IRenderService),u(8,w.ICoreBrowserService)],x)},4725:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ILinkProviderService=i.IThemeService=i.ICharacterJoinerService=i.ISelectionService=i.IRenderService=i.IMouseService=i.ICoreBrowserService=i.ICharSizeService=void 0;let o=n(8343);i.ICharSizeService=(0,o.createDecorator)("CharSizeService"),i.ICoreBrowserService=(0,o.createDecorator)("CoreBrowserService"),i.IMouseService=(0,o.createDecorator)("MouseService"),i.IRenderService=(0,o.createDecorator)("RenderService"),i.ISelectionService=(0,o.createDecorator)("SelectionService"),i.ICharacterJoinerService=(0,o.createDecorator)("CharacterJoinerService"),i.IThemeService=(0,o.createDecorator)("ThemeService"),i.ILinkProviderService=(0,o.createDecorator)("LinkProviderService")},6731:function(a,i,n){var o=this&&this.__decorate||function(x,b,E,O){var B,H=arguments.length,M=H<3?b:O===null?O=Object.getOwnPropertyDescriptor(b,E):O;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")M=Reflect.decorate(x,b,E,O);else for(var K=x.length-1;K>=0;K--)(B=x[K])&&(M=(H<3?B(M):H>3?B(b,E,M):B(b,E))||M);return H>3&&M&&Object.defineProperty(b,E,M),M},u=this&&this.__param||function(x,b){return function(E,O){b(E,O,x)}};Object.defineProperty(i,"__esModule",{value:!0}),i.ThemeService=i.DEFAULT_ANSI_COLORS=void 0;let l=n(7239),_=n(8055),m=n(8460),w=n(844),p=n(2585),c=_.css.toColor("#ffffff"),d=_.css.toColor("#000000"),h=_.css.toColor("#ffffff"),f=_.css.toColor("#000000"),g={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};i.DEFAULT_ANSI_COLORS=Object.freeze((()=>{let x=[_.css.toColor("#2e3436"),_.css.toColor("#cc0000"),_.css.toColor("#4e9a06"),_.css.toColor("#c4a000"),_.css.toColor("#3465a4"),_.css.toColor("#75507b"),_.css.toColor("#06989a"),_.css.toColor("#d3d7cf"),_.css.toColor("#555753"),_.css.toColor("#ef2929"),_.css.toColor("#8ae234"),_.css.toColor("#fce94f"),_.css.toColor("#729fcf"),_.css.toColor("#ad7fa8"),_.css.toColor("#34e2e2"),_.css.toColor("#eeeeec")],b=[0,95,135,175,215,255];for(let E=0;E<216;E++){let O=b[E/36%6|0],B=b[E/6%6|0],H=b[E%6];x.push({css:_.channels.toCss(O,B,H),rgba:_.channels.toRgba(O,B,H)})}for(let E=0;E<24;E++){let O=8+10*E;x.push({css:_.channels.toCss(O,O,O),rgba:_.channels.toRgba(O,O,O)})}return x})());let C=i.ThemeService=class extends w.Disposable{get colors(){return this._colors}constructor(x){super(),this._optionsService=x,this._contrastCache=new l.ColorContrastCache,this._halfContrastCache=new l.ColorContrastCache,this._onChangeColors=this.register(new m.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:c,background:d,cursor:h,cursorAccent:f,selectionForeground:void 0,selectionBackgroundTransparent:g,selectionBackgroundOpaque:_.color.blend(d,g),selectionInactiveBackgroundTransparent:g,selectionInactiveBackgroundOpaque:_.color.blend(d,g),ansi:i.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange("theme",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(x={}){let b=this._colors;if(b.foreground=v(x.foreground,c),b.background=v(x.background,d),b.cursor=v(x.cursor,h),b.cursorAccent=v(x.cursorAccent,f),b.selectionBackgroundTransparent=v(x.selectionBackground,g),b.selectionBackgroundOpaque=_.color.blend(b.background,b.selectionBackgroundTransparent),b.selectionInactiveBackgroundTransparent=v(x.selectionInactiveBackground,b.selectionBackgroundTransparent),b.selectionInactiveBackgroundOpaque=_.color.blend(b.background,b.selectionInactiveBackgroundTransparent),b.selectionForeground=x.selectionForeground?v(x.selectionForeground,_.NULL_COLOR):void 0,b.selectionForeground===_.NULL_COLOR&&(b.selectionForeground=void 0),_.color.isOpaque(b.selectionBackgroundTransparent)&&(b.selectionBackgroundTransparent=_.color.opacity(b.selectionBackgroundTransparent,.3)),_.color.isOpaque(b.selectionInactiveBackgroundTransparent)&&(b.selectionInactiveBackgroundTransparent=_.color.opacity(b.selectionInactiveBackgroundTransparent,.3)),b.ansi=i.DEFAULT_ANSI_COLORS.slice(),b.ansi[0]=v(x.black,i.DEFAULT_ANSI_COLORS[0]),b.ansi[1]=v(x.red,i.DEFAULT_ANSI_COLORS[1]),b.ansi[2]=v(x.green,i.DEFAULT_ANSI_COLORS[2]),b.ansi[3]=v(x.yellow,i.DEFAULT_ANSI_COLORS[3]),b.ansi[4]=v(x.blue,i.DEFAULT_ANSI_COLORS[4]),b.ansi[5]=v(x.magenta,i.DEFAULT_ANSI_COLORS[5]),b.ansi[6]=v(x.cyan,i.DEFAULT_ANSI_COLORS[6]),b.ansi[7]=v(x.white,i.DEFAULT_ANSI_COLORS[7]),b.ansi[8]=v(x.brightBlack,i.DEFAULT_ANSI_COLORS[8]),b.ansi[9]=v(x.brightRed,i.DEFAULT_ANSI_COLORS[9]),b.ansi[10]=v(x.brightGreen,i.DEFAULT_ANSI_COLORS[10]),b.ansi[11]=v(x.brightYellow,i.DEFAULT_ANSI_COLORS[11]),b.ansi[12]=v(x.brightBlue,i.DEFAULT_ANSI_COLORS[12]),b.ansi[13]=v(x.brightMagenta,i.DEFAULT_ANSI_COLORS[13]),b.ansi[14]=v(x.brightCyan,i.DEFAULT_ANSI_COLORS[14]),b.ansi[15]=v(x.brightWhite,i.DEFAULT_ANSI_COLORS[15]),x.extendedAnsi){let E=Math.min(b.ansi.length-16,x.extendedAnsi.length);for(let O=0;O<E;O++)b.ansi[O+16]=v(x.extendedAnsi[O],i.DEFAULT_ANSI_COLORS[O+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(x){this._restoreColor(x),this._onChangeColors.fire(this.colors)}_restoreColor(x){if(x!==void 0)switch(x){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[x]=this._restoreColors.ansi[x]}else for(let b=0;b<this._restoreColors.ansi.length;++b)this._colors.ansi[b]=this._restoreColors.ansi[b]}modifyColors(x){x(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function v(x,b){if(x!==void 0)try{return _.css.toColor(x)}catch{}return b}i.ThemeService=C=o([u(0,p.IOptionsService)],C)},6349:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CircularList=void 0;let o=n(8460),u=n(844);class l extends u.Disposable{constructor(m){super(),this._maxLength=m,this.onDeleteEmitter=this.register(new o.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new o.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new o.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(m){if(this._maxLength===m)return;let w=new Array(m);for(let p=0;p<Math.min(m,this.length);p++)w[p]=this._array[this._getCyclicIndex(p)];this._array=w,this._maxLength=m,this._startIndex=0}get length(){return this._length}set length(m){if(m>this._length)for(let w=this._length;w<m;w++)this._array[w]=void 0;this._length=m}get(m){return this._array[this._getCyclicIndex(m)]}set(m,w){this._array[this._getCyclicIndex(m)]=w}push(m){this._array[this._getCyclicIndex(this._length)]=m,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(m,w,...p){if(w){for(let c=m;c<this._length-w;c++)this._array[this._getCyclicIndex(c)]=this._array[this._getCyclicIndex(c+w)];this._length-=w,this.onDeleteEmitter.fire({index:m,amount:w})}for(let c=this._length-1;c>=m;c--)this._array[this._getCyclicIndex(c+p.length)]=this._array[this._getCyclicIndex(c)];for(let c=0;c<p.length;c++)this._array[this._getCyclicIndex(m+c)]=p[c];if(p.length&&this.onInsertEmitter.fire({index:m,amount:p.length}),this._length+p.length>this._maxLength){let c=this._length+p.length-this._maxLength;this._startIndex+=c,this._length=this._maxLength,this.onTrimEmitter.fire(c)}else this._length+=p.length}trimStart(m){m>this._length&&(m=this._length),this._startIndex+=m,this._length-=m,this.onTrimEmitter.fire(m)}shiftElements(m,w,p){if(!(w<=0)){if(m<0||m>=this._length)throw new Error("start argument out of range");if(m+p<0)throw new Error("Cannot shift elements in list beyond index 0");if(p>0){for(let d=w-1;d>=0;d--)this.set(m+d+p,this.get(m+d));let c=m+w+p-this._length;if(c>0)for(this._length+=c;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let c=0;c<w;c++)this.set(m+c+p,this.get(m+c))}}_getCyclicIndex(m){return(this._startIndex+m)%this._maxLength}}i.CircularList=l},1439:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.clone=void 0,i.clone=function n(o,u=5){if(typeof o!="object")return o;let l=Array.isArray(o)?[]:{};for(let _ in o)l[_]=u<=1?o[_]:o[_]&&n(o[_],u-1);return l}},8055:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.contrastRatio=i.toPaddedHex=i.rgba=i.rgb=i.css=i.color=i.channels=i.NULL_COLOR=void 0;let n=0,o=0,u=0,l=0;var _,m,w,p,c;function d(f){let g=f.toString(16);return g.length<2?"0"+g:g}function h(f,g){return f<g?(g+.05)/(f+.05):(f+.05)/(g+.05)}i.NULL_COLOR={css:"#00000000",rgba:0},(function(f){f.toCss=function(g,C,v,x){return x!==void 0?`#${d(g)}${d(C)}${d(v)}${d(x)}`:`#${d(g)}${d(C)}${d(v)}`},f.toRgba=function(g,C,v,x=255){return(g<<24|C<<16|v<<8|x)>>>0},f.toColor=function(g,C,v,x){return{css:f.toCss(g,C,v,x),rgba:f.toRgba(g,C,v,x)}}})(_||(i.channels=_={})),(function(f){function g(C,v){return l=Math.round(255*v),[n,o,u]=c.toChannels(C.rgba),{css:_.toCss(n,o,u,l),rgba:_.toRgba(n,o,u,l)}}f.blend=function(C,v){if(l=(255&v.rgba)/255,l===1)return{css:v.css,rgba:v.rgba};let x=v.rgba>>24&255,b=v.rgba>>16&255,E=v.rgba>>8&255,O=C.rgba>>24&255,B=C.rgba>>16&255,H=C.rgba>>8&255;return n=O+Math.round((x-O)*l),o=B+Math.round((b-B)*l),u=H+Math.round((E-H)*l),{css:_.toCss(n,o,u),rgba:_.toRgba(n,o,u)}},f.isOpaque=function(C){return(255&C.rgba)==255},f.ensureContrastRatio=function(C,v,x){let b=c.ensureContrastRatio(C.rgba,v.rgba,x);if(b)return _.toColor(b>>24&255,b>>16&255,b>>8&255)},f.opaque=function(C){let v=(255|C.rgba)>>>0;return[n,o,u]=c.toChannels(v),{css:_.toCss(n,o,u),rgba:v}},f.opacity=g,f.multiplyOpacity=function(C,v){return l=255&C.rgba,g(C,l*v/255)},f.toColorRGB=function(C){return[C.rgba>>24&255,C.rgba>>16&255,C.rgba>>8&255]}})(m||(i.color=m={})),(function(f){let g,C;try{let v=document.createElement("canvas");v.width=1,v.height=1;let x=v.getContext("2d",{willReadFrequently:!0});x&&(g=x,g.globalCompositeOperation="copy",C=g.createLinearGradient(0,0,1,1))}catch{}f.toColor=function(v){if(v.match(/#[\da-f]{3,8}/i))switch(v.length){case 4:return n=parseInt(v.slice(1,2).repeat(2),16),o=parseInt(v.slice(2,3).repeat(2),16),u=parseInt(v.slice(3,4).repeat(2),16),_.toColor(n,o,u);case 5:return n=parseInt(v.slice(1,2).repeat(2),16),o=parseInt(v.slice(2,3).repeat(2),16),u=parseInt(v.slice(3,4).repeat(2),16),l=parseInt(v.slice(4,5).repeat(2),16),_.toColor(n,o,u,l);case 7:return{css:v,rgba:(parseInt(v.slice(1),16)<<8|255)>>>0};case 9:return{css:v,rgba:parseInt(v.slice(1),16)>>>0}}let x=v.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(x)return n=parseInt(x[1]),o=parseInt(x[2]),u=parseInt(x[3]),l=Math.round(255*(x[5]===void 0?1:parseFloat(x[5]))),_.toColor(n,o,u,l);if(!g||!C)throw new Error("css.toColor: Unsupported css format");if(g.fillStyle=C,g.fillStyle=v,typeof g.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(g.fillRect(0,0,1,1),[n,o,u,l]=g.getImageData(0,0,1,1).data,l!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:_.toRgba(n,o,u,l),css:v}}})(w||(i.css=w={})),(function(f){function g(C,v,x){let b=C/255,E=v/255,O=x/255;return .2126*(b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4))+.7152*(E<=.03928?E/12.92:Math.pow((E+.055)/1.055,2.4))+.0722*(O<=.03928?O/12.92:Math.pow((O+.055)/1.055,2.4))}f.relativeLuminance=function(C){return g(C>>16&255,C>>8&255,255&C)},f.relativeLuminance2=g})(p||(i.rgb=p={})),(function(f){function g(v,x,b){let E=v>>24&255,O=v>>16&255,B=v>>8&255,H=x>>24&255,M=x>>16&255,K=x>>8&255,P=h(p.relativeLuminance2(H,M,K),p.relativeLuminance2(E,O,B));for(;P<b&&(H>0||M>0||K>0);)H-=Math.max(0,Math.ceil(.1*H)),M-=Math.max(0,Math.ceil(.1*M)),K-=Math.max(0,Math.ceil(.1*K)),P=h(p.relativeLuminance2(H,M,K),p.relativeLuminance2(E,O,B));return(H<<24|M<<16|K<<8|255)>>>0}function C(v,x,b){let E=v>>24&255,O=v>>16&255,B=v>>8&255,H=x>>24&255,M=x>>16&255,K=x>>8&255,P=h(p.relativeLuminance2(H,M,K),p.relativeLuminance2(E,O,B));for(;P<b&&(H<255||M<255||K<255);)H=Math.min(255,H+Math.ceil(.1*(255-H))),M=Math.min(255,M+Math.ceil(.1*(255-M))),K=Math.min(255,K+Math.ceil(.1*(255-K))),P=h(p.relativeLuminance2(H,M,K),p.relativeLuminance2(E,O,B));return(H<<24|M<<16|K<<8|255)>>>0}f.blend=function(v,x){if(l=(255&x)/255,l===1)return x;let b=x>>24&255,E=x>>16&255,O=x>>8&255,B=v>>24&255,H=v>>16&255,M=v>>8&255;return n=B+Math.round((b-B)*l),o=H+Math.round((E-H)*l),u=M+Math.round((O-M)*l),_.toRgba(n,o,u)},f.ensureContrastRatio=function(v,x,b){let E=p.relativeLuminance(v>>8),O=p.relativeLuminance(x>>8);if(h(E,O)<b){if(O<E){let M=g(v,x,b),K=h(E,p.relativeLuminance(M>>8));if(K<b){let P=C(v,x,b);return K>h(E,p.relativeLuminance(P>>8))?M:P}return M}let B=C(v,x,b),H=h(E,p.relativeLuminance(B>>8));if(H<b){let M=g(v,x,b);return H>h(E,p.relativeLuminance(M>>8))?B:M}return B}},f.reduceLuminance=g,f.increaseLuminance=C,f.toChannels=function(v){return[v>>24&255,v>>16&255,v>>8&255,255&v]}})(c||(i.rgba=c={})),i.toPaddedHex=d,i.contrastRatio=h},8969:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CoreTerminal=void 0;let o=n(844),u=n(2585),l=n(4348),_=n(7866),m=n(744),w=n(7302),p=n(6975),c=n(8460),d=n(1753),h=n(1480),f=n(7994),g=n(9282),C=n(5435),v=n(5981),x=n(2660),b=!1;class E extends o.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new c.EventEmitter),this._onScroll.event((B=>{this._onScrollApi?.fire(B.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(B){for(let H in B)this.optionsService.options[H]=B[H]}constructor(B){super(),this._windowsWrappingHeuristics=this.register(new o.MutableDisposable),this._onBinary=this.register(new c.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new c.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new c.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new c.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new c.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new c.EventEmitter),this._instantiationService=new l.InstantiationService,this.optionsService=this.register(new w.OptionsService(B)),this._instantiationService.setService(u.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(m.BufferService)),this._instantiationService.setService(u.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(_.LogService)),this._instantiationService.setService(u.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(p.CoreService)),this._instantiationService.setService(u.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(u.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(h.UnicodeService)),this._instantiationService.setService(u.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(f.CharsetService),this._instantiationService.setService(u.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(x.OscLinkService),this._instantiationService.setService(u.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new C.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,c.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,c.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,c.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,c.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((H=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((H=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new v.WriteBuffer(((H,M)=>this._inputHandler.parse(H,M)))),this.register((0,c.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(B,H){this._writeBuffer.write(B,H)}writeSync(B,H){this._logService.logLevel<=u.LogLevelEnum.WARN&&!b&&(this._logService.warn("writeSync is unreliable and will be removed soon."),b=!0),this._writeBuffer.writeSync(B,H)}input(B,H=!0){this.coreService.triggerDataEvent(B,H)}resize(B,H){isNaN(B)||isNaN(H)||(B=Math.max(B,m.MINIMUM_COLS),H=Math.max(H,m.MINIMUM_ROWS),this._bufferService.resize(B,H))}scroll(B,H=!1){this._bufferService.scroll(B,H)}scrollLines(B,H,M){this._bufferService.scrollLines(B,H,M)}scrollPages(B){this.scrollLines(B*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(B){let H=B-this._bufferService.buffer.ydisp;H!==0&&this.scrollLines(H)}registerEscHandler(B,H){return this._inputHandler.registerEscHandler(B,H)}registerDcsHandler(B,H){return this._inputHandler.registerDcsHandler(B,H)}registerCsiHandler(B,H){return this._inputHandler.registerCsiHandler(B,H)}registerOscHandler(B,H){return this._inputHandler.registerOscHandler(B,H)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let B=!1,H=this.optionsService.rawOptions.windowsPty;H&&H.buildNumber!==void 0&&H.buildNumber!==void 0?B=H.backend==="conpty"&&H.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(B=!0),B?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let B=[];B.push(this.onLineFeed(g.updateWindowsModeWrappedState.bind(null,this._bufferService))),B.push(this.registerCsiHandler({final:"H"},(()=>((0,g.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,o.toDisposable)((()=>{for(let H of B)H.dispose()}))}}}i.CoreTerminal=E},8460:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.runAndSubscribe=i.forwardEvent=i.EventEmitter=void 0,i.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=n=>(this._listeners.push(n),{dispose:()=>{if(!this._disposed){for(let o=0;o<this._listeners.length;o++)if(this._listeners[o]===n)return void this._listeners.splice(o,1)}}})),this._event}fire(n,o){let u=[];for(let l=0;l<this._listeners.length;l++)u.push(this._listeners[l]);for(let l=0;l<u.length;l++)u[l].call(void 0,n,o)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},i.forwardEvent=function(n,o){return n((u=>o.fire(u)))},i.runAndSubscribe=function(n,o){return o(void 0),n((u=>o(u)))}},5435:function(a,i,n){var o=this&&this.__decorate||function(N,y,T,k){var R,U=arguments.length,G=U<3?y:k===null?k=Object.getOwnPropertyDescriptor(y,T):k;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")G=Reflect.decorate(N,y,T,k);else for(var J=N.length-1;J>=0;J--)(R=N[J])&&(G=(U<3?R(G):U>3?R(y,T,G):R(y,T))||G);return U>3&&G&&Object.defineProperty(y,T,G),G},u=this&&this.__param||function(N,y){return function(T,k){y(T,k,N)}};Object.defineProperty(i,"__esModule",{value:!0}),i.InputHandler=i.WindowsOptionsReportType=void 0;let l=n(2584),_=n(7116),m=n(2015),w=n(844),p=n(482),c=n(8437),d=n(8460),h=n(643),f=n(511),g=n(3734),C=n(2585),v=n(1480),x=n(6242),b=n(6351),E=n(5941),O={"(":0,")":1,"*":2,"+":3,"-":1,".":2},B=131072;function H(N,y){if(N>24)return y.setWinLines||!1;switch(N){case 1:return!!y.restoreWin;case 2:return!!y.minimizeWin;case 3:return!!y.setWinPosition;case 4:return!!y.setWinSizePixels;case 5:return!!y.raiseWin;case 6:return!!y.lowerWin;case 7:return!!y.refreshWin;case 8:return!!y.setWinSizeChars;case 9:return!!y.maximizeWin;case 10:return!!y.fullscreenWin;case 11:return!!y.getWinState;case 13:return!!y.getWinPosition;case 14:return!!y.getWinSizePixels;case 15:return!!y.getScreenSizePixels;case 16:return!!y.getCellSizePixels;case 18:return!!y.getWinSizeChars;case 19:return!!y.getScreenSizeChars;case 20:return!!y.getIconTitle;case 21:return!!y.getWinTitle;case 22:return!!y.pushTitle;case 23:return!!y.popTitle;case 24:return!!y.setWinLines}return!1}var M;(function(N){N[N.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",N[N.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"})(M||(i.WindowsOptionsReportType=M={}));let K=0;class P extends w.Disposable{getAttrData(){return this._curAttrData}constructor(y,T,k,R,U,G,J,X,W=new m.EscapeSequenceParser){super(),this._bufferService=y,this._charsetService=T,this._coreService=k,this._logService=R,this._optionsService=U,this._oscLinkService=G,this._coreMouseService=J,this._unicodeService=X,this._parser=W,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new p.StringToUtf32,this._utf8Decoder=new p.Utf8ToUtf32,this._workCell=new f.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=c.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=c.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new D(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((L=>this._activeBuffer=L.activeBuffer))),this._parser.setCsiHandlerFallback(((L,I)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(L),params:I.toArray()})})),this._parser.setEscHandlerFallback((L=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(L)})})),this._parser.setExecuteHandlerFallback((L=>{this._logService.debug("Unknown EXECUTE code: ",{code:L})})),this._parser.setOscHandlerFallback(((L,I,z)=>{this._logService.debug("Unknown OSC code: ",{identifier:L,action:I,data:z})})),this._parser.setDcsHandlerFallback(((L,I,z)=>{I==="HOOK"&&(z=z.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(L),action:I,payload:z})})),this._parser.setPrintHandler(((L,I,z)=>this.print(L,I,z))),this._parser.registerCsiHandler({final:"@"},(L=>this.insertChars(L))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(L=>this.scrollLeft(L))),this._parser.registerCsiHandler({final:"A"},(L=>this.cursorUp(L))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(L=>this.scrollRight(L))),this._parser.registerCsiHandler({final:"B"},(L=>this.cursorDown(L))),this._parser.registerCsiHandler({final:"C"},(L=>this.cursorForward(L))),this._parser.registerCsiHandler({final:"D"},(L=>this.cursorBackward(L))),this._parser.registerCsiHandler({final:"E"},(L=>this.cursorNextLine(L))),this._parser.registerCsiHandler({final:"F"},(L=>this.cursorPrecedingLine(L))),this._parser.registerCsiHandler({final:"G"},(L=>this.cursorCharAbsolute(L))),this._parser.registerCsiHandler({final:"H"},(L=>this.cursorPosition(L))),this._parser.registerCsiHandler({final:"I"},(L=>this.cursorForwardTab(L))),this._parser.registerCsiHandler({final:"J"},(L=>this.eraseInDisplay(L,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(L=>this.eraseInDisplay(L,!0))),this._parser.registerCsiHandler({final:"K"},(L=>this.eraseInLine(L,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(L=>this.eraseInLine(L,!0))),this._parser.registerCsiHandler({final:"L"},(L=>this.insertLines(L))),this._parser.registerCsiHandler({final:"M"},(L=>this.deleteLines(L))),this._parser.registerCsiHandler({final:"P"},(L=>this.deleteChars(L))),this._parser.registerCsiHandler({final:"S"},(L=>this.scrollUp(L))),this._parser.registerCsiHandler({final:"T"},(L=>this.scrollDown(L))),this._parser.registerCsiHandler({final:"X"},(L=>this.eraseChars(L))),this._parser.registerCsiHandler({final:"Z"},(L=>this.cursorBackwardTab(L))),this._parser.registerCsiHandler({final:"`"},(L=>this.charPosAbsolute(L))),this._parser.registerCsiHandler({final:"a"},(L=>this.hPositionRelative(L))),this._parser.registerCsiHandler({final:"b"},(L=>this.repeatPrecedingCharacter(L))),this._parser.registerCsiHandler({final:"c"},(L=>this.sendDeviceAttributesPrimary(L))),this._parser.registerCsiHandler({prefix:">",final:"c"},(L=>this.sendDeviceAttributesSecondary(L))),this._parser.registerCsiHandler({final:"d"},(L=>this.linePosAbsolute(L))),this._parser.registerCsiHandler({final:"e"},(L=>this.vPositionRelative(L))),this._parser.registerCsiHandler({final:"f"},(L=>this.hVPosition(L))),this._parser.registerCsiHandler({final:"g"},(L=>this.tabClear(L))),this._parser.registerCsiHandler({final:"h"},(L=>this.setMode(L))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(L=>this.setModePrivate(L))),this._parser.registerCsiHandler({final:"l"},(L=>this.resetMode(L))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(L=>this.resetModePrivate(L))),this._parser.registerCsiHandler({final:"m"},(L=>this.charAttributes(L))),this._parser.registerCsiHandler({final:"n"},(L=>this.deviceStatus(L))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(L=>this.deviceStatusPrivate(L))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(L=>this.softReset(L))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(L=>this.setCursorStyle(L))),this._parser.registerCsiHandler({final:"r"},(L=>this.setScrollRegion(L))),this._parser.registerCsiHandler({final:"s"},(L=>this.saveCursor(L))),this._parser.registerCsiHandler({final:"t"},(L=>this.windowOptions(L))),this._parser.registerCsiHandler({final:"u"},(L=>this.restoreCursor(L))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(L=>this.insertColumns(L))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(L=>this.deleteColumns(L))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(L=>this.selectProtected(L))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(L=>this.requestMode(L,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(L=>this.requestMode(L,!1))),this._parser.setExecuteHandler(l.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(l.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(l.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(l.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(l.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(l.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(l.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(l.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(l.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(l.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(l.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(l.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new x.OscHandler((L=>(this.setTitle(L),this.setIconName(L),!0)))),this._parser.registerOscHandler(1,new x.OscHandler((L=>this.setIconName(L)))),this._parser.registerOscHandler(2,new x.OscHandler((L=>this.setTitle(L)))),this._parser.registerOscHandler(4,new x.OscHandler((L=>this.setOrReportIndexedColor(L)))),this._parser.registerOscHandler(8,new x.OscHandler((L=>this.setHyperlink(L)))),this._parser.registerOscHandler(10,new x.OscHandler((L=>this.setOrReportFgColor(L)))),this._parser.registerOscHandler(11,new x.OscHandler((L=>this.setOrReportBgColor(L)))),this._parser.registerOscHandler(12,new x.OscHandler((L=>this.setOrReportCursorColor(L)))),this._parser.registerOscHandler(104,new x.OscHandler((L=>this.restoreIndexedColor(L)))),this._parser.registerOscHandler(110,new x.OscHandler((L=>this.restoreFgColor(L)))),this._parser.registerOscHandler(111,new x.OscHandler((L=>this.restoreBgColor(L)))),this._parser.registerOscHandler(112,new x.OscHandler((L=>this.restoreCursorColor(L)))),this._parser.registerEscHandler({final:"7"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:"8"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:"D"},(()=>this.index())),this._parser.registerEscHandler({final:"E"},(()=>this.nextLine())),this._parser.registerEscHandler({final:"H"},(()=>this.tabSet())),this._parser.registerEscHandler({final:"M"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:"="},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:">"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:"c"},(()=>this.fullReset())),this._parser.registerEscHandler({final:"n"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"o"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"|"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"}"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"~"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:"%",final:"@"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:"%",final:"G"},(()=>this.selectDefaultCharset()));for(let L in _.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:L},(()=>this.selectCharset("("+L))),this._parser.registerEscHandler({intermediates:")",final:L},(()=>this.selectCharset(")"+L))),this._parser.registerEscHandler({intermediates:"*",final:L},(()=>this.selectCharset("*"+L))),this._parser.registerEscHandler({intermediates:"+",final:L},(()=>this.selectCharset("+"+L))),this._parser.registerEscHandler({intermediates:"-",final:L},(()=>this.selectCharset("-"+L))),this._parser.registerEscHandler({intermediates:".",final:L},(()=>this.selectCharset("."+L))),this._parser.registerEscHandler({intermediates:"/",final:L},(()=>this.selectCharset("/"+L)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((L=>(this._logService.error("Parsing error: ",L),L))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new b.DcsHandler(((L,I)=>this.requestStatusString(L,I))))}_preserveStack(y,T,k,R){this._parseStack.paused=!0,this._parseStack.cursorStartX=y,this._parseStack.cursorStartY=T,this._parseStack.decodedLength=k,this._parseStack.position=R}_logSlowResolvingAsync(y){this._logService.logLevel<=C.LogLevelEnum.WARN&&Promise.race([y,new Promise(((T,k)=>setTimeout((()=>k("#SLOW_TIMEOUT")),5e3)))]).catch((T=>{if(T!=="#SLOW_TIMEOUT")throw T;console.warn("async parser handler taking longer than 5000 ms")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(y,T){let k,R=this._activeBuffer.x,U=this._activeBuffer.y,G=0,J=this._parseStack.paused;if(J){if(k=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,T))return this._logSlowResolvingAsync(k),k;R=this._parseStack.cursorStartX,U=this._parseStack.cursorStartY,this._parseStack.paused=!1,y.length>B&&(G=this._parseStack.position+B)}if(this._logService.logLevel<=C.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+(typeof y=="string"?` "${y}"`:` "${Array.prototype.map.call(y,(L=>String.fromCharCode(L))).join("")}"`),typeof y=="string"?y.split("").map((L=>L.charCodeAt(0))):y),this._parseBuffer.length<y.length&&this._parseBuffer.length<B&&(this._parseBuffer=new Uint32Array(Math.min(y.length,B))),J||this._dirtyRowTracker.clearRange(),y.length>B)for(let L=G;L<y.length;L+=B){let I=L+B<y.length?L+B:y.length,z=typeof y=="string"?this._stringDecoder.decode(y.substring(L,I),this._parseBuffer):this._utf8Decoder.decode(y.subarray(L,I),this._parseBuffer);if(k=this._parser.parse(this._parseBuffer,z))return this._preserveStack(R,U,z,L),this._logSlowResolvingAsync(k),k}else if(!J){let L=typeof y=="string"?this._stringDecoder.decode(y,this._parseBuffer):this._utf8Decoder.decode(y,this._parseBuffer);if(k=this._parser.parse(this._parseBuffer,L))return this._preserveStack(R,U,L,0),this._logSlowResolvingAsync(k),k}this._activeBuffer.x===R&&this._activeBuffer.y===U||this._onCursorMove.fire();let X=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),W=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);W<this._bufferService.rows&&this._onRequestRefreshRows.fire(Math.min(W,this._bufferService.rows-1),Math.min(X,this._bufferService.rows-1))}print(y,T,k){let R,U,G=this._charsetService.charset,J=this._optionsService.rawOptions.screenReaderMode,X=this._bufferService.cols,W=this._coreService.decPrivateModes.wraparound,L=this._coreService.modes.insertMode,I=this._curAttrData,z=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&k-T>0&&z.getWidth(this._activeBuffer.x-1)===2&&z.setCellFromCodepoint(this._activeBuffer.x-1,0,1,I);let $=this._parser.precedingJoinState;for(let q=T;q<k;++q){if(R=y[q],R<127&&G){let re=G[String.fromCharCode(R)];re&&(R=re.charCodeAt(0))}let ee=this._unicodeService.charProperties(R,$);U=v.UnicodeService.extractWidth(ee);let he=v.UnicodeService.extractShouldJoin(ee),de=he?v.UnicodeService.extractWidth($):0;if($=ee,J&&this._onA11yChar.fire((0,p.stringFromCodePoint)(R)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+U-de>X){if(W){let re=z,Y=this._activeBuffer.x-de;for(this._activeBuffer.x=de,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),z=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),de>0&&z instanceof c.BufferLine&&z.copyCellsFrom(re,Y,0,de,!1);Y<X;)re.setCellFromCodepoint(Y++,0,1,I)}else if(this._activeBuffer.x=X-1,U===2)continue}if(he&&this._activeBuffer.x){let re=z.getWidth(this._activeBuffer.x-1)?1:2;z.addCodepointToCell(this._activeBuffer.x-re,R,U);for(let Y=U-de;--Y>=0;)z.setCellFromCodepoint(this._activeBuffer.x++,0,0,I)}else if(L&&(z.insertCells(this._activeBuffer.x,U-de,this._activeBuffer.getNullCell(I)),z.getWidth(X-1)===2&&z.setCellFromCodepoint(X-1,h.NULL_CELL_CODE,h.NULL_CELL_WIDTH,I)),z.setCellFromCodepoint(this._activeBuffer.x++,R,U,I),U>0)for(;--U;)z.setCellFromCodepoint(this._activeBuffer.x++,0,0,I)}this._parser.precedingJoinState=$,this._activeBuffer.x<X&&k-T>0&&z.getWidth(this._activeBuffer.x)===0&&!z.hasContent(this._activeBuffer.x)&&z.setCellFromCodepoint(this._activeBuffer.x,0,1,I),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(y,T){return y.final!=="t"||y.prefix||y.intermediates?this._parser.registerCsiHandler(y,T):this._parser.registerCsiHandler(y,(k=>!H(k.params[0],this._optionsService.rawOptions.windowOptions)||T(k)))}registerDcsHandler(y,T){return this._parser.registerDcsHandler(y,new b.DcsHandler(T))}registerEscHandler(y,T){return this._parser.registerEscHandler(y,T)}registerOscHandler(y,T){return this._parser.registerOscHandler(y,new x.OscHandler(T))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let y=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);y.hasWidth(this._activeBuffer.x)&&!y.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let y=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-y),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(y=this._bufferService.cols-1){this._activeBuffer.x=Math.min(y,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(y,T){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=y,this._activeBuffer.y=this._activeBuffer.scrollTop+T):(this._activeBuffer.x=y,this._activeBuffer.y=T),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(y,T){this._restrictCursor(),this._setCursor(this._activeBuffer.x+y,this._activeBuffer.y+T)}cursorUp(y){let T=this._activeBuffer.y-this._activeBuffer.scrollTop;return T>=0?this._moveCursor(0,-Math.min(T,y.params[0]||1)):this._moveCursor(0,-(y.params[0]||1)),!0}cursorDown(y){let T=this._activeBuffer.scrollBottom-this._activeBuffer.y;return T>=0?this._moveCursor(0,Math.min(T,y.params[0]||1)):this._moveCursor(0,y.params[0]||1),!0}cursorForward(y){return this._moveCursor(y.params[0]||1,0),!0}cursorBackward(y){return this._moveCursor(-(y.params[0]||1),0),!0}cursorNextLine(y){return this.cursorDown(y),this._activeBuffer.x=0,!0}cursorPrecedingLine(y){return this.cursorUp(y),this._activeBuffer.x=0,!0}cursorCharAbsolute(y){return this._setCursor((y.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(y){return this._setCursor(y.length>=2?(y.params[1]||1)-1:0,(y.params[0]||1)-1),!0}charPosAbsolute(y){return this._setCursor((y.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(y){return this._moveCursor(y.params[0]||1,0),!0}linePosAbsolute(y){return this._setCursor(this._activeBuffer.x,(y.params[0]||1)-1),!0}vPositionRelative(y){return this._moveCursor(0,y.params[0]||1),!0}hVPosition(y){return this.cursorPosition(y),!0}tabClear(y){let T=y.params[0];return T===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:T===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(y){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let T=y.params[0]||1;for(;T--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(y){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let T=y.params[0]||1;for(;T--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(y){let T=y.params[0];return T===1&&(this._curAttrData.bg|=536870912),T!==2&&T!==0||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(y,T,k,R=!1,U=!1){let G=this._activeBuffer.lines.get(this._activeBuffer.ybase+y);G.replaceCells(T,k,this._activeBuffer.getNullCell(this._eraseAttrData()),U),R&&(G.isWrapped=!1)}_resetBufferLine(y,T=!1){let k=this._activeBuffer.lines.get(this._activeBuffer.ybase+y);k&&(k.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),T),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+y),k.isWrapped=!1)}eraseInDisplay(y,T=!1){let k;switch(this._restrictCursor(this._bufferService.cols),y.params[0]){case 0:for(k=this._activeBuffer.y,this._dirtyRowTracker.markDirty(k),this._eraseInBufferLine(k++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,T);k<this._bufferService.rows;k++)this._resetBufferLine(k,T);this._dirtyRowTracker.markDirty(k);break;case 1:for(k=this._activeBuffer.y,this._dirtyRowTracker.markDirty(k),this._eraseInBufferLine(k,0,this._activeBuffer.x+1,!0,T),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(k+1).isWrapped=!1);k--;)this._resetBufferLine(k,T);this._dirtyRowTracker.markDirty(0);break;case 2:for(k=this._bufferService.rows,this._dirtyRowTracker.markDirty(k-1);k--;)this._resetBufferLine(k,T);this._dirtyRowTracker.markDirty(0);break;case 3:let R=this._activeBuffer.lines.length-this._bufferService.rows;R>0&&(this._activeBuffer.lines.trimStart(R),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-R,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-R,0),this._onScroll.fire(0))}return!0}eraseInLine(y,T=!1){switch(this._restrictCursor(this._bufferService.cols),y.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,T);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,T);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,T)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(y){this._restrictCursor();let T=y.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let k=this._activeBuffer.ybase+this._activeBuffer.y,R=this._bufferService.rows-1-this._activeBuffer.scrollBottom,U=this._bufferService.rows-1+this._activeBuffer.ybase-R+1;for(;T--;)this._activeBuffer.lines.splice(U-1,1),this._activeBuffer.lines.splice(k,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(y){this._restrictCursor();let T=y.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let k=this._activeBuffer.ybase+this._activeBuffer.y,R;for(R=this._bufferService.rows-1-this._activeBuffer.scrollBottom,R=this._bufferService.rows-1+this._activeBuffer.ybase-R;T--;)this._activeBuffer.lines.splice(k,1),this._activeBuffer.lines.splice(R,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(y){this._restrictCursor();let T=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return T&&(T.insertCells(this._activeBuffer.x,y.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(y){this._restrictCursor();let T=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return T&&(T.deleteCells(this._activeBuffer.x,y.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(y){let T=y.params[0]||1;for(;T--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(y){let T=y.params[0]||1;for(;T--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(c.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(y){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=y.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.deleteCells(0,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(y){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=y.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.insertCells(0,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(y){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=y.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.insertCells(this._activeBuffer.x,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(y){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=y.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.deleteCells(this._activeBuffer.x,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(y){this._restrictCursor();let T=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return T&&(T.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(y.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(y){let T=this._parser.precedingJoinState;if(!T)return!0;let k=y.params[0]||1,R=v.UnicodeService.extractWidth(T),U=this._activeBuffer.x-R,G=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(U),J=new Uint32Array(G.length*k),X=0;for(let L=0;L<G.length;){let I=G.codePointAt(L)||0;J[X++]=I,L+=I>65535?2:1}let W=X;for(let L=1;L<k;++L)J.copyWithin(W,0,X),W+=X;return this.print(J,0,W),!0}sendDeviceAttributesPrimary(y){return y.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(l.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(l.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(y){return y.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(l.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(l.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(y.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(l.C0.ESC+"[>83;40003;0c")),!0}_is(y){return(this._optionsService.rawOptions.termName+"").indexOf(y)===0}setMode(y){for(let T=0;T<y.length;T++)switch(y.params[T]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(y){for(let T=0;T<y.length;T++)switch(y.params[T]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,_.DEFAULT_CHARSET),this._charsetService.setgCharset(1,_.DEFAULT_CHARSET),this._charsetService.setgCharset(2,_.DEFAULT_CHARSET),this._charsetService.setgCharset(3,_.DEFAULT_CHARSET);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol="X10";break;case 1e3:this._coreMouseService.activeProtocol="VT200";break;case 1002:this._coreMouseService.activeProtocol="DRAG";break;case 1003:this._coreMouseService.activeProtocol="ANY";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug("DECSET 1005 not supported (see #2507)");break;case 1006:this._coreMouseService.activeEncoding="SGR";break;case 1015:this._logService.debug("DECSET 1015 not supported (see #2507)");break;case 1016:this._coreMouseService.activeEncoding="SGR_PIXELS";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0}return!0}resetMode(y){for(let T=0;T<y.length;T++)switch(y.params[T]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(y){for(let T=0;T<y.length;T++)switch(y.params[T]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol="NONE";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug("DECRST 1005 not supported (see #2507)");break;case 1006:case 1016:this._coreMouseService.activeEncoding="DEFAULT";break;case 1015:this._logService.debug("DECRST 1015 not supported (see #2507)");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),y.params[T]===1049&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1}return!0}requestMode(y,T){let k=this._coreService.decPrivateModes,{activeProtocol:R,activeEncoding:U}=this._coreMouseService,G=this._coreService,{buffers:J,cols:X}=this._bufferService,{active:W,alt:L}=J,I=this._optionsService.rawOptions,z=he=>he?1:2,$=y.params[0];return q=$,ee=T?$===2?4:$===4?z(G.modes.insertMode):$===12?3:$===20?z(I.convertEol):0:$===1?z(k.applicationCursorKeys):$===3?I.windowOptions.setWinLines?X===80?2:X===132?1:0:0:$===6?z(k.origin):$===7?z(k.wraparound):$===8?3:$===9?z(R==="X10"):$===12?z(I.cursorBlink):$===25?z(!G.isCursorHidden):$===45?z(k.reverseWraparound):$===66?z(k.applicationKeypad):$===67?4:$===1e3?z(R==="VT200"):$===1002?z(R==="DRAG"):$===1003?z(R==="ANY"):$===1004?z(k.sendFocus):$===1005?4:$===1006?z(U==="SGR"):$===1015?4:$===1016?z(U==="SGR_PIXELS"):$===1048?1:$===47||$===1047||$===1049?z(W===L):$===2004?z(k.bracketedPasteMode):0,G.triggerDataEvent(`${l.C0.ESC}[${T?"":"?"}${q};${ee}$y`),!0;var q,ee}_updateAttrColor(y,T,k,R,U){return T===2?(y|=50331648,y&=-16777216,y|=g.AttributeData.fromColorRGB([k,R,U])):T===5&&(y&=-50331904,y|=33554432|255&k),y}_extractColor(y,T,k){let R=[0,0,-1,0,0,0],U=0,G=0;do{if(R[G+U]=y.params[T+G],y.hasSubParams(T+G)){let J=y.getSubParams(T+G),X=0;do R[1]===5&&(U=1),R[G+X+1+U]=J[X];while(++X<J.length&&X+G+1+U<R.length);break}if(R[1]===5&&G+U>=2||R[1]===2&&G+U>=5)break;R[1]&&(U=1)}while(++G+T<y.length&&G+U<R.length);for(let J=2;J<R.length;++J)R[J]===-1&&(R[J]=0);switch(R[0]){case 38:k.fg=this._updateAttrColor(k.fg,R[1],R[3],R[4],R[5]);break;case 48:k.bg=this._updateAttrColor(k.bg,R[1],R[3],R[4],R[5]);break;case 58:k.extended=k.extended.clone(),k.extended.underlineColor=this._updateAttrColor(k.extended.underlineColor,R[1],R[3],R[4],R[5])}return G}_processUnderline(y,T){T.extended=T.extended.clone(),(!~y||y>5)&&(y=1),T.extended.underlineStyle=y,T.fg|=268435456,y===0&&(T.fg&=-268435457),T.updateExtended()}_processSGR0(y){y.fg=c.DEFAULT_ATTR_DATA.fg,y.bg=c.DEFAULT_ATTR_DATA.bg,y.extended=y.extended.clone(),y.extended.underlineStyle=0,y.extended.underlineColor&=-67108864,y.updateExtended()}charAttributes(y){if(y.length===1&&y.params[0]===0)return this._processSGR0(this._curAttrData),!0;let T=y.length,k,R=this._curAttrData;for(let U=0;U<T;U++)k=y.params[U],k>=30&&k<=37?(R.fg&=-50331904,R.fg|=16777216|k-30):k>=40&&k<=47?(R.bg&=-50331904,R.bg|=16777216|k-40):k>=90&&k<=97?(R.fg&=-50331904,R.fg|=16777224|k-90):k>=100&&k<=107?(R.bg&=-50331904,R.bg|=16777224|k-100):k===0?this._processSGR0(R):k===1?R.fg|=134217728:k===3?R.bg|=67108864:k===4?(R.fg|=268435456,this._processUnderline(y.hasSubParams(U)?y.getSubParams(U)[0]:1,R)):k===5?R.fg|=536870912:k===7?R.fg|=67108864:k===8?R.fg|=1073741824:k===9?R.fg|=2147483648:k===2?R.bg|=134217728:k===21?this._processUnderline(2,R):k===22?(R.fg&=-134217729,R.bg&=-134217729):k===23?R.bg&=-67108865:k===24?(R.fg&=-268435457,this._processUnderline(0,R)):k===25?R.fg&=-536870913:k===27?R.fg&=-67108865:k===28?R.fg&=-1073741825:k===29?R.fg&=2147483647:k===39?(R.fg&=-67108864,R.fg|=16777215&c.DEFAULT_ATTR_DATA.fg):k===49?(R.bg&=-67108864,R.bg|=16777215&c.DEFAULT_ATTR_DATA.bg):k===38||k===48||k===58?U+=this._extractColor(y,U,R):k===53?R.bg|=1073741824:k===55?R.bg&=-1073741825:k===59?(R.extended=R.extended.clone(),R.extended.underlineColor=-1,R.updateExtended()):k===100?(R.fg&=-67108864,R.fg|=16777215&c.DEFAULT_ATTR_DATA.fg,R.bg&=-67108864,R.bg|=16777215&c.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",k);return!0}deviceStatus(y){switch(y.params[0]){case 5:this._coreService.triggerDataEvent(`${l.C0.ESC}[0n`);break;case 6:let T=this._activeBuffer.y+1,k=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${l.C0.ESC}[${T};${k}R`)}return!0}deviceStatusPrivate(y){if(y.params[0]===6){let T=this._activeBuffer.y+1,k=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${l.C0.ESC}[?${T};${k}R`)}return!0}softReset(y){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=c.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(y){let T=y.params[0]||1;switch(T){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}let k=T%2==1;return this._optionsService.options.cursorBlink=k,!0}setScrollRegion(y){let T=y.params[0]||1,k;return(y.length<2||(k=y.params[1])>this._bufferService.rows||k===0)&&(k=this._bufferService.rows),k>T&&(this._activeBuffer.scrollTop=T-1,this._activeBuffer.scrollBottom=k-1,this._setCursor(0,0)),!0}windowOptions(y){if(!H(y.params[0],this._optionsService.rawOptions.windowOptions))return!0;let T=y.length>1?y.params[1]:0;switch(y.params[0]){case 14:T!==2&&this._onRequestWindowsOptionsReport.fire(M.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(M.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${l.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:T!==0&&T!==2||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),T!==0&&T!==1||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:T!==0&&T!==2||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),T!==0&&T!==1||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(y){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(y){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(y){return this._windowTitle=y,this._onTitleChange.fire(y),!0}setIconName(y){return this._iconName=y,!0}setOrReportIndexedColor(y){let T=[],k=y.split(";");for(;k.length>1;){let R=k.shift(),U=k.shift();if(/^\d+$/.exec(R)){let G=parseInt(R);if(F(G))if(U==="?")T.push({type:0,index:G});else{let J=(0,E.parseColor)(U);J&&T.push({type:1,index:G,color:J})}}}return T.length&&this._onColor.fire(T),!0}setHyperlink(y){let T=y.split(";");return!(T.length<2)&&(T[1]?this._createHyperlink(T[0],T[1]):!T[0]&&this._finishHyperlink())}_createHyperlink(y,T){this._getCurrentLinkId()&&this._finishHyperlink();let k=y.split(":"),R,U=k.findIndex((G=>G.startsWith("id=")));return U!==-1&&(R=k[U].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:R,uri:T}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(y,T){let k=y.split(";");for(let R=0;R<k.length&&!(T>=this._specialColors.length);++R,++T)if(k[R]==="?")this._onColor.fire([{type:0,index:this._specialColors[T]}]);else{let U=(0,E.parseColor)(k[R]);U&&this._onColor.fire([{type:1,index:this._specialColors[T],color:U}])}return!0}setOrReportFgColor(y){return this._setOrReportSpecialColor(y,0)}setOrReportBgColor(y){return this._setOrReportSpecialColor(y,1)}setOrReportCursorColor(y){return this._setOrReportSpecialColor(y,2)}restoreIndexedColor(y){if(!y)return this._onColor.fire([{type:2}]),!0;let T=[],k=y.split(";");for(let R=0;R<k.length;++R)if(/^\d+$/.exec(k[R])){let U=parseInt(k[R]);F(U)&&T.push({type:2,index:U})}return T.length&&this._onColor.fire(T),!0}restoreFgColor(y){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(y){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(y){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,_.DEFAULT_CHARSET),!0}selectCharset(y){return y.length!==2?(this.selectDefaultCharset(),!0):(y[0]==="/"||this._charsetService.setgCharset(O[y[0]],_.CHARSETS[y[1]]||_.DEFAULT_CHARSET),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let y=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,y,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=c.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=c.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(y){return this._charsetService.setgLevel(y),!0}screenAlignmentPattern(){let y=new f.CellData;y.content=4194373,y.fg=this._curAttrData.fg,y.bg=this._curAttrData.bg,this._setCursor(0,0);for(let T=0;T<this._bufferService.rows;++T){let k=this._activeBuffer.ybase+this._activeBuffer.y+T,R=this._activeBuffer.lines.get(k);R&&(R.fill(y),R.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(y,T){let k=this._bufferService.buffer,R=this._optionsService.rawOptions;return(U=>(this._coreService.triggerDataEvent(`${l.C0.ESC}${U}${l.C0.ESC}\\`),!0))(y==='"q'?`P1$r${this._curAttrData.isProtected()?1:0}"q`:y==='"p'?'P1$r61;1"p':y==="r"?`P1$r${k.scrollTop+1};${k.scrollBottom+1}r`:y==="m"?"P1$r0m":y===" q"?`P1$r${{block:2,underline:4,bar:6}[R.cursorStyle]-(R.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(y,T){this._dirtyRowTracker.markRangeDirty(y,T)}}i.InputHandler=P;let D=class{constructor(N){this._bufferService=N,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(N){N<this.start?this.start=N:N>this.end&&(this.end=N)}markRangeDirty(N,y){N>y&&(K=N,N=y,y=K),N<this.start&&(this.start=N),y>this.end&&(this.end=y)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function F(N){return 0<=N&&N<256}D=o([u(0,C.IBufferService)],D)},844:(a,i)=>{function n(o){for(let u of o)u.dispose();o.length=0}Object.defineProperty(i,"__esModule",{value:!0}),i.getDisposeArrayDisposable=i.disposeArray=i.toDisposable=i.MutableDisposable=i.Disposable=void 0,i.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let o of this._disposables)o.dispose();this._disposables.length=0}register(o){return this._disposables.push(o),o}unregister(o){let u=this._disposables.indexOf(o);u!==-1&&this._disposables.splice(u,1)}},i.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(o){this._isDisposed||o===this._value||(this._value?.dispose(),this._value=o)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},i.toDisposable=function(o){return{dispose:o}},i.disposeArray=n,i.getDisposeArrayDisposable=function(o){return{dispose:()=>n(o)}}},1505:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.FourKeyMap=i.TwoKeyMap=void 0;class n{constructor(){this._data={}}set(u,l,_){this._data[u]||(this._data[u]={}),this._data[u][l]=_}get(u,l){return this._data[u]?this._data[u][l]:void 0}clear(){this._data={}}}i.TwoKeyMap=n,i.FourKeyMap=class{constructor(){this._data=new n}set(o,u,l,_,m){this._data.get(o,u)||this._data.set(o,u,new n),this._data.get(o,u).set(l,_,m)}get(o,u,l,_){return this._data.get(o,u)?.get(l,_)}clear(){this._data.clear()}}},6114:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.isChromeOS=i.isLinux=i.isWindows=i.isIphone=i.isIpad=i.isMac=i.getSafariVersion=i.isSafari=i.isLegacyEdge=i.isFirefox=i.isNode=void 0,i.isNode=typeof process<"u"&&"title"in process;let n=i.isNode?"node":navigator.userAgent,o=i.isNode?"node":navigator.platform;i.isFirefox=n.includes("Firefox"),i.isLegacyEdge=n.includes("Edge"),i.isSafari=/^((?!chrome|android).)*safari/i.test(n),i.getSafariVersion=function(){if(!i.isSafari)return 0;let u=n.match(/Version\/(\d+)/);return u===null||u.length<2?0:parseInt(u[1])},i.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(o),i.isIpad=o==="iPad",i.isIphone=o==="iPhone",i.isWindows=["Windows","Win16","Win32","WinCE"].includes(o),i.isLinux=o.indexOf("Linux")>=0,i.isChromeOS=/\bCrOS\b/.test(n)},6106:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.SortedList=void 0;let n=0;i.SortedList=class{constructor(o){this._getKey=o,this._array=[]}clear(){this._array.length=0}insert(o){this._array.length!==0?(n=this._search(this._getKey(o)),this._array.splice(n,0,o)):this._array.push(o)}delete(o){if(this._array.length===0)return!1;let u=this._getKey(o);if(u===void 0||(n=this._search(u),n===-1)||this._getKey(this._array[n])!==u)return!1;do if(this._array[n]===o)return this._array.splice(n,1),!0;while(++n<this._array.length&&this._getKey(this._array[n])===u);return!1}*getKeyIterator(o){if(this._array.length!==0&&(n=this._search(o),!(n<0||n>=this._array.length)&&this._getKey(this._array[n])===o))do yield this._array[n];while(++n<this._array.length&&this._getKey(this._array[n])===o)}forEachByKey(o,u){if(this._array.length!==0&&(n=this._search(o),!(n<0||n>=this._array.length)&&this._getKey(this._array[n])===o))do u(this._array[n]);while(++n<this._array.length&&this._getKey(this._array[n])===o)}values(){return[...this._array].values()}_search(o){let u=0,l=this._array.length-1;for(;l>=u;){let _=u+l>>1,m=this._getKey(this._array[_]);if(m>o)l=_-1;else{if(!(m<o)){for(;_>0&&this._getKey(this._array[_-1])===o;)_--;return _}u=_+1}}return u}}},7226:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DebouncedIdleTask=i.IdleTaskQueue=i.PriorityTaskQueue=void 0;let o=n(6114);class u{constructor(){this._tasks=[],this._i=0}enqueue(m){this._tasks.push(m),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(m){this._idleCallback=void 0;let w=0,p=0,c=m.timeRemaining(),d=0;for(;this._i<this._tasks.length;){if(w=Date.now(),this._tasks[this._i]()||this._i++,w=Math.max(1,Date.now()-w),p=Math.max(w,p),d=m.timeRemaining(),1.5*p>d)return c-w<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(c-w))}ms`),void this._start();c=d}this.clear()}}class l extends u{_requestCallback(m){return setTimeout((()=>m(this._createDeadline(16))))}_cancelCallback(m){clearTimeout(m)}_createDeadline(m){let w=Date.now()+m;return{timeRemaining:()=>Math.max(0,w-Date.now())}}}i.PriorityTaskQueue=l,i.IdleTaskQueue=!o.isNode&&"requestIdleCallback"in window?class extends u{_requestCallback(_){return requestIdleCallback(_)}_cancelCallback(_){cancelIdleCallback(_)}}:l,i.DebouncedIdleTask=class{constructor(){this._queue=new i.IdleTaskQueue}set(_){this._queue.clear(),this._queue.enqueue(_)}flush(){this._queue.flush()}}},9282:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.updateWindowsModeWrappedState=void 0;let o=n(643);i.updateWindowsModeWrappedState=function(u){let l=u.buffer.lines.get(u.buffer.ybase+u.buffer.y-1),_=l?.get(u.cols-1),m=u.buffer.lines.get(u.buffer.ybase+u.buffer.y);m&&_&&(m.isWrapped=_[o.CHAR_DATA_CODE_INDEX]!==o.NULL_CELL_CODE&&_[o.CHAR_DATA_CODE_INDEX]!==o.WHITESPACE_CELL_CODE)}},3734:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ExtendedAttrs=i.AttributeData=void 0;class n{constructor(){this.fg=0,this.bg=0,this.extended=new o}static toColorRGB(l){return[l>>>16&255,l>>>8&255,255&l]}static fromColorRGB(l){return(255&l[0])<<16|(255&l[1])<<8|255&l[2]}clone(){let l=new n;return l.fg=this.fg,l.bg=this.bg,l.extended=this.extended.clone(),l}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return(50331648&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}i.AttributeData=n;class o{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(l){this._ext=l}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(l){this._ext&=-469762049,this._ext|=l<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(l){this._ext&=-67108864,this._ext|=67108863&l}get urlId(){return this._urlId}set urlId(l){this._urlId=l}get underlineVariantOffset(){let l=(3758096384&this._ext)>>29;return l<0?4294967288^l:l}set underlineVariantOffset(l){this._ext&=536870911,this._ext|=l<<29&3758096384}constructor(l=0,_=0){this._ext=0,this._urlId=0,this._ext=l,this._urlId=_}clone(){return new o(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}i.ExtendedAttrs=o},9092:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Buffer=i.MAX_BUFFER_SIZE=void 0;let o=n(6349),u=n(7226),l=n(3734),_=n(8437),m=n(4634),w=n(511),p=n(643),c=n(4863),d=n(7116);i.MAX_BUFFER_SIZE=4294967295,i.Buffer=class{constructor(h,f,g){this._hasScrollback=h,this._optionsService=f,this._bufferService=g,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=_.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=w.CellData.fromCharData([0,p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE]),this._whitespaceCell=w.CellData.fromCharData([0,p.WHITESPACE_CELL_CHAR,p.WHITESPACE_CELL_WIDTH,p.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new u.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new o.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(h){return h?(this._nullCell.fg=h.fg,this._nullCell.bg=h.bg,this._nullCell.extended=h.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new l.ExtendedAttrs),this._nullCell}getWhitespaceCell(h){return h?(this._whitespaceCell.fg=h.fg,this._whitespaceCell.bg=h.bg,this._whitespaceCell.extended=h.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new l.ExtendedAttrs),this._whitespaceCell}getBlankLine(h,f){return new _.BufferLine(this._bufferService.cols,this.getNullCell(h),f)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let h=this.ybase+this.y-this.ydisp;return h>=0&&h<this._rows}_getCorrectBufferLength(h){if(!this._hasScrollback)return h;let f=h+this._optionsService.rawOptions.scrollback;return f>i.MAX_BUFFER_SIZE?i.MAX_BUFFER_SIZE:f}fillViewportRows(h){if(this.lines.length===0){h===void 0&&(h=_.DEFAULT_ATTR_DATA);let f=this._rows;for(;f--;)this.lines.push(this.getBlankLine(h))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new o.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(h,f){let g=this.getNullCell(_.DEFAULT_ATTR_DATA),C=0,v=this._getCorrectBufferLength(f);if(v>this.lines.maxLength&&(this.lines.maxLength=v),this.lines.length>0){if(this._cols<h)for(let b=0;b<this.lines.length;b++)C+=+this.lines.get(b).resize(h,g);let x=0;if(this._rows<f)for(let b=this._rows;b<f;b++)this.lines.length<f+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new _.BufferLine(h,g)):this.ybase>0&&this.lines.length<=this.ybase+this.y+x+1?(this.ybase--,x++,this.ydisp>0&&this.ydisp--):this.lines.push(new _.BufferLine(h,g)));else for(let b=this._rows;b>f;b--)this.lines.length>f+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(v<this.lines.maxLength){let b=this.lines.length-v;b>0&&(this.lines.trimStart(b),this.ybase=Math.max(this.ybase-b,0),this.ydisp=Math.max(this.ydisp-b,0),this.savedY=Math.max(this.savedY-b,0)),this.lines.maxLength=v}this.x=Math.min(this.x,h-1),this.y=Math.min(this.y,f-1),x&&(this.y+=x),this.savedX=Math.min(this.savedX,h-1),this.scrollTop=0}if(this.scrollBottom=f-1,this._isReflowEnabled&&(this._reflow(h,f),this._cols>h))for(let x=0;x<this.lines.length;x++)C+=+this.lines.get(x).resize(h,g);this._cols=h,this._rows=f,this._memoryCleanupQueue.clear(),C>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let h=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,h=!1);let f=0;for(;this._memoryCleanupPosition<this.lines.length;)if(f+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),f>100)return!0;return h}get _isReflowEnabled(){let h=this._optionsService.rawOptions.windowsPty;return h&&h.buildNumber?this._hasScrollback&&h.backend==="conpty"&&h.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(h,f){this._cols!==h&&(h>this._cols?this._reflowLarger(h,f):this._reflowSmaller(h,f))}_reflowLarger(h,f){let g=(0,m.reflowLargerGetLinesToRemove)(this.lines,this._cols,h,this.ybase+this.y,this.getNullCell(_.DEFAULT_ATTR_DATA));if(g.length>0){let C=(0,m.reflowLargerCreateNewLayout)(this.lines,g);(0,m.reflowLargerApplyNewLayout)(this.lines,C.layout),this._reflowLargerAdjustViewport(h,f,C.countRemoved)}}_reflowLargerAdjustViewport(h,f,g){let C=this.getNullCell(_.DEFAULT_ATTR_DATA),v=g;for(;v-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<f&&this.lines.push(new _.BufferLine(h,C))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-g,0)}_reflowSmaller(h,f){let g=this.getNullCell(_.DEFAULT_ATTR_DATA),C=[],v=0;for(let x=this.lines.length-1;x>=0;x--){let b=this.lines.get(x);if(!b||!b.isWrapped&&b.getTrimmedLength()<=h)continue;let E=[b];for(;b.isWrapped&&x>0;)b=this.lines.get(--x),E.unshift(b);let O=this.ybase+this.y;if(O>=x&&O<x+E.length)continue;let B=E[E.length-1].getTrimmedLength(),H=(0,m.reflowSmallerGetNewLineLengths)(E,this._cols,h),M=H.length-E.length,K;K=this.ybase===0&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+M):Math.max(0,this.lines.length-this.lines.maxLength+M);let P=[];for(let k=0;k<M;k++){let R=this.getBlankLine(_.DEFAULT_ATTR_DATA,!0);P.push(R)}P.length>0&&(C.push({start:x+E.length+v,newLines:P}),v+=P.length),E.push(...P);let D=H.length-1,F=H[D];F===0&&(D--,F=H[D]);let N=E.length-M-1,y=B;for(;N>=0;){let k=Math.min(y,F);if(E[D]===void 0)break;if(E[D].copyCellsFrom(E[N],y-k,F-k,k,!0),F-=k,F===0&&(D--,F=H[D]),y-=k,y===0){N--;let R=Math.max(N,0);y=(0,m.getWrappedLineTrimmedLength)(E,R,this._cols)}}for(let k=0;k<E.length;k++)H[k]<h&&E[k].setCell(H[k],g);let T=M-K;for(;T-- >0;)this.ybase===0?this.y<f-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+v)-f&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+M,this.ybase+f-1)}if(C.length>0){let x=[],b=[];for(let D=0;D<this.lines.length;D++)b.push(this.lines.get(D));let E=this.lines.length,O=E-1,B=0,H=C[B];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+v);let M=0;for(let D=Math.min(this.lines.maxLength-1,E+v-1);D>=0;D--)if(H&&H.start>O+M){for(let F=H.newLines.length-1;F>=0;F--)this.lines.set(D--,H.newLines[F]);D++,x.push({index:O+1,amount:H.newLines.length}),M+=H.newLines.length,H=C[++B]}else this.lines.set(D,b[O--]);let K=0;for(let D=x.length-1;D>=0;D--)x[D].index+=K,this.lines.onInsertEmitter.fire(x[D]),K+=x[D].amount;let P=Math.max(0,E+v-this.lines.maxLength);P>0&&this.lines.onTrimEmitter.fire(P)}}translateBufferLineToString(h,f,g=0,C){let v=this.lines.get(h);return v?v.translateToString(f,g,C):""}getWrappedRangeForLine(h){let f=h,g=h;for(;f>0&&this.lines.get(f).isWrapped;)f--;for(;g+1<this.lines.length&&this.lines.get(g+1).isWrapped;)g++;return{first:f,last:g}}setupTabStops(h){for(h!=null?this.tabs[h]||(h=this.prevStop(h)):(this.tabs={},h=0);h<this._cols;h+=this._optionsService.rawOptions.tabStopWidth)this.tabs[h]=!0}prevStop(h){for(h==null&&(h=this.x);!this.tabs[--h]&&h>0;);return h>=this._cols?this._cols-1:h<0?0:h}nextStop(h){for(h==null&&(h=this.x);!this.tabs[++h]&&h<this._cols;);return h>=this._cols?this._cols-1:h<0?0:h}clearMarkers(h){this._isClearing=!0;for(let f=0;f<this.markers.length;f++)this.markers[f].line===h&&(this.markers[f].dispose(),this.markers.splice(f--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let h=0;h<this.markers.length;h++)this.markers[h].dispose(),this.markers.splice(h--,1);this._isClearing=!1}addMarker(h){let f=new c.Marker(h);return this.markers.push(f),f.register(this.lines.onTrim((g=>{f.line-=g,f.line<0&&f.dispose()}))),f.register(this.lines.onInsert((g=>{f.line>=g.index&&(f.line+=g.amount)}))),f.register(this.lines.onDelete((g=>{f.line>=g.index&&f.line<g.index+g.amount&&f.dispose(),f.line>g.index&&(f.line-=g.amount)}))),f.register(f.onDispose((()=>this._removeMarker(f)))),f}_removeMarker(h){this._isClearing||this.markers.splice(this.markers.indexOf(h),1)}}},8437:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferLine=i.DEFAULT_ATTR_DATA=void 0;let o=n(3734),u=n(511),l=n(643),_=n(482);i.DEFAULT_ATTR_DATA=Object.freeze(new o.AttributeData);let m=0;class w{constructor(c,d,h=!1){this.isWrapped=h,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*c);let f=d||u.CellData.fromCharData([0,l.NULL_CELL_CHAR,l.NULL_CELL_WIDTH,l.NULL_CELL_CODE]);for(let g=0;g<c;++g)this.setCell(g,f);this.length=c}get(c){let d=this._data[3*c+0],h=2097151&d;return[this._data[3*c+1],2097152&d?this._combined[c]:h?(0,_.stringFromCodePoint)(h):"",d>>22,2097152&d?this._combined[c].charCodeAt(this._combined[c].length-1):h]}set(c,d){this._data[3*c+1]=d[l.CHAR_DATA_ATTR_INDEX],d[l.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[c]=d[1],this._data[3*c+0]=2097152|c|d[l.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*c+0]=d[l.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|d[l.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(c){return this._data[3*c+0]>>22}hasWidth(c){return 12582912&this._data[3*c+0]}getFg(c){return this._data[3*c+1]}getBg(c){return this._data[3*c+2]}hasContent(c){return 4194303&this._data[3*c+0]}getCodePoint(c){let d=this._data[3*c+0];return 2097152&d?this._combined[c].charCodeAt(this._combined[c].length-1):2097151&d}isCombined(c){return 2097152&this._data[3*c+0]}getString(c){let d=this._data[3*c+0];return 2097152&d?this._combined[c]:2097151&d?(0,_.stringFromCodePoint)(2097151&d):""}isProtected(c){return 536870912&this._data[3*c+2]}loadCell(c,d){return m=3*c,d.content=this._data[m+0],d.fg=this._data[m+1],d.bg=this._data[m+2],2097152&d.content&&(d.combinedData=this._combined[c]),268435456&d.bg&&(d.extended=this._extendedAttrs[c]),d}setCell(c,d){2097152&d.content&&(this._combined[c]=d.combinedData),268435456&d.bg&&(this._extendedAttrs[c]=d.extended),this._data[3*c+0]=d.content,this._data[3*c+1]=d.fg,this._data[3*c+2]=d.bg}setCellFromCodepoint(c,d,h,f){268435456&f.bg&&(this._extendedAttrs[c]=f.extended),this._data[3*c+0]=d|h<<22,this._data[3*c+1]=f.fg,this._data[3*c+2]=f.bg}addCodepointToCell(c,d,h){let f=this._data[3*c+0];2097152&f?this._combined[c]+=(0,_.stringFromCodePoint)(d):2097151&f?(this._combined[c]=(0,_.stringFromCodePoint)(2097151&f)+(0,_.stringFromCodePoint)(d),f&=-2097152,f|=2097152):f=d|4194304,h&&(f&=-12582913,f|=h<<22),this._data[3*c+0]=f}insertCells(c,d,h){if((c%=this.length)&&this.getWidth(c-1)===2&&this.setCellFromCodepoint(c-1,0,1,h),d<this.length-c){let f=new u.CellData;for(let g=this.length-c-d-1;g>=0;--g)this.setCell(c+d+g,this.loadCell(c+g,f));for(let g=0;g<d;++g)this.setCell(c+g,h)}else for(let f=c;f<this.length;++f)this.setCell(f,h);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,h)}deleteCells(c,d,h){if(c%=this.length,d<this.length-c){let f=new u.CellData;for(let g=0;g<this.length-c-d;++g)this.setCell(c+g,this.loadCell(c+d+g,f));for(let g=this.length-d;g<this.length;++g)this.setCell(g,h)}else for(let f=c;f<this.length;++f)this.setCell(f,h);c&&this.getWidth(c-1)===2&&this.setCellFromCodepoint(c-1,0,1,h),this.getWidth(c)!==0||this.hasContent(c)||this.setCellFromCodepoint(c,0,1,h)}replaceCells(c,d,h,f=!1){if(f)for(c&&this.getWidth(c-1)===2&&!this.isProtected(c-1)&&this.setCellFromCodepoint(c-1,0,1,h),d<this.length&&this.getWidth(d-1)===2&&!this.isProtected(d)&&this.setCellFromCodepoint(d,0,1,h);c<d&&c<this.length;)this.isProtected(c)||this.setCell(c,h),c++;else for(c&&this.getWidth(c-1)===2&&this.setCellFromCodepoint(c-1,0,1,h),d<this.length&&this.getWidth(d-1)===2&&this.setCellFromCodepoint(d,0,1,h);c<d&&c<this.length;)this.setCell(c++,h)}resize(c,d){if(c===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;let h=3*c;if(c>this.length){if(this._data.buffer.byteLength>=4*h)this._data=new Uint32Array(this._data.buffer,0,h);else{let f=new Uint32Array(h);f.set(this._data),this._data=f}for(let f=this.length;f<c;++f)this.setCell(f,d)}else{this._data=this._data.subarray(0,h);let f=Object.keys(this._combined);for(let C=0;C<f.length;C++){let v=parseInt(f[C],10);v>=c&&delete this._combined[v]}let g=Object.keys(this._extendedAttrs);for(let C=0;C<g.length;C++){let v=parseInt(g[C],10);v>=c&&delete this._extendedAttrs[v]}}return this.length=c,4*h*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){let c=new Uint32Array(this._data.length);return c.set(this._data),this._data=c,1}return 0}fill(c,d=!1){if(d)for(let h=0;h<this.length;++h)this.isProtected(h)||this.setCell(h,c);else{this._combined={},this._extendedAttrs={};for(let h=0;h<this.length;++h)this.setCell(h,c)}}copyFrom(c){this.length!==c.length?this._data=new Uint32Array(c._data):this._data.set(c._data),this.length=c.length,this._combined={};for(let d in c._combined)this._combined[d]=c._combined[d];this._extendedAttrs={};for(let d in c._extendedAttrs)this._extendedAttrs[d]=c._extendedAttrs[d];this.isWrapped=c.isWrapped}clone(){let c=new w(0);c._data=new Uint32Array(this._data),c.length=this.length;for(let d in this._combined)c._combined[d]=this._combined[d];for(let d in this._extendedAttrs)c._extendedAttrs[d]=this._extendedAttrs[d];return c.isWrapped=this.isWrapped,c}getTrimmedLength(){for(let c=this.length-1;c>=0;--c)if(4194303&this._data[3*c+0])return c+(this._data[3*c+0]>>22);return 0}getNoBgTrimmedLength(){for(let c=this.length-1;c>=0;--c)if(4194303&this._data[3*c+0]||50331648&this._data[3*c+2])return c+(this._data[3*c+0]>>22);return 0}copyCellsFrom(c,d,h,f,g){let C=c._data;if(g)for(let x=f-1;x>=0;x--){for(let b=0;b<3;b++)this._data[3*(h+x)+b]=C[3*(d+x)+b];268435456&C[3*(d+x)+2]&&(this._extendedAttrs[h+x]=c._extendedAttrs[d+x])}else for(let x=0;x<f;x++){for(let b=0;b<3;b++)this._data[3*(h+x)+b]=C[3*(d+x)+b];268435456&C[3*(d+x)+2]&&(this._extendedAttrs[h+x]=c._extendedAttrs[d+x])}let v=Object.keys(c._combined);for(let x=0;x<v.length;x++){let b=parseInt(v[x],10);b>=d&&(this._combined[b-d+h]=c._combined[b])}}translateToString(c,d,h,f){d=d??0,h=h??this.length,c&&(h=Math.min(h,this.getTrimmedLength())),f&&(f.length=0);let g="";for(;d<h;){let C=this._data[3*d+0],v=2097151&C,x=2097152&C?this._combined[d]:v?(0,_.stringFromCodePoint)(v):l.WHITESPACE_CELL_CHAR;if(g+=x,f)for(let b=0;b<x.length;++b)f.push(d);d+=C>>22||1}return f&&f.push(d),g}}i.BufferLine=w},4841:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getRangeLength=void 0,i.getRangeLength=function(n,o){if(n.start.y>n.end.y)throw new Error(`Buffer range end (${n.end.x}, ${n.end.y}) cannot be before start (${n.start.x}, ${n.start.y})`);return o*(n.end.y-n.start.y)+(n.end.x-n.start.x+1)}},4634:(a,i)=>{function n(o,u,l){if(u===o.length-1)return o[u].getTrimmedLength();let _=!o[u].hasContent(l-1)&&o[u].getWidth(l-1)===1,m=o[u+1].getWidth(0)===2;return _&&m?l-1:l}Object.defineProperty(i,"__esModule",{value:!0}),i.getWrappedLineTrimmedLength=i.reflowSmallerGetNewLineLengths=i.reflowLargerApplyNewLayout=i.reflowLargerCreateNewLayout=i.reflowLargerGetLinesToRemove=void 0,i.reflowLargerGetLinesToRemove=function(o,u,l,_,m){let w=[];for(let p=0;p<o.length-1;p++){let c=p,d=o.get(++c);if(!d.isWrapped)continue;let h=[o.get(p)];for(;c<o.length&&d.isWrapped;)h.push(d),d=o.get(++c);if(_>=p&&_<c){p+=h.length-1;continue}let f=0,g=n(h,f,u),C=1,v=0;for(;C<h.length;){let b=n(h,C,u),E=b-v,O=l-g,B=Math.min(E,O);h[f].copyCellsFrom(h[C],v,g,B,!1),g+=B,g===l&&(f++,g=0),v+=B,v===b&&(C++,v=0),g===0&&f!==0&&h[f-1].getWidth(l-1)===2&&(h[f].copyCellsFrom(h[f-1],l-1,g++,1,!1),h[f-1].setCell(l-1,m))}h[f].replaceCells(g,l,m);let x=0;for(let b=h.length-1;b>0&&(b>f||h[b].getTrimmedLength()===0);b--)x++;x>0&&(w.push(p+h.length-x),w.push(x)),p+=h.length-1}return w},i.reflowLargerCreateNewLayout=function(o,u){let l=[],_=0,m=u[_],w=0;for(let p=0;p<o.length;p++)if(m===p){let c=u[++_];o.onDeleteEmitter.fire({index:p-w,amount:c}),p+=c-1,w+=c,m=u[++_]}else l.push(p);return{layout:l,countRemoved:w}},i.reflowLargerApplyNewLayout=function(o,u){let l=[];for(let _=0;_<u.length;_++)l.push(o.get(u[_]));for(let _=0;_<l.length;_++)o.set(_,l[_]);o.length=u.length},i.reflowSmallerGetNewLineLengths=function(o,u,l){let _=[],m=o.map(((d,h)=>n(o,h,u))).reduce(((d,h)=>d+h)),w=0,p=0,c=0;for(;c<m;){if(m-c<l){_.push(m-c);break}w+=l;let d=n(o,p,u);w>d&&(w-=d,p++);let h=o[p].getWidth(w-1)===2;h&&w--;let f=h?l-1:l;_.push(f),c+=f}return _},i.getWrappedLineTrimmedLength=n},5295:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferSet=void 0;let o=n(8460),u=n(844),l=n(9092);class _ extends u.Disposable{constructor(w,p){super(),this._optionsService=w,this._bufferService=p,this._onBufferActivate=this.register(new o.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",(()=>this.setupTabStops())))}reset(){this._normal=new l.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new l.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(w){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(w),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(w,p){this._normal.resize(w,p),this._alt.resize(w,p),this.setupTabStops(w)}setupTabStops(w){this._normal.setupTabStops(w),this._alt.setupTabStops(w)}}i.BufferSet=_},511:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CellData=void 0;let o=n(482),u=n(643),l=n(3734);class _ extends l.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new l.ExtendedAttrs,this.combinedData=""}static fromCharData(w){let p=new _;return p.setFromCharData(w),p}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,o.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(w){this.fg=w[u.CHAR_DATA_ATTR_INDEX],this.bg=0;let p=!1;if(w[u.CHAR_DATA_CHAR_INDEX].length>2)p=!0;else if(w[u.CHAR_DATA_CHAR_INDEX].length===2){let c=w[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=c&&c<=56319){let d=w[u.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=d&&d<=57343?this.content=1024*(c-55296)+d-56320+65536|w[u.CHAR_DATA_WIDTH_INDEX]<<22:p=!0}else p=!0}else this.content=w[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|w[u.CHAR_DATA_WIDTH_INDEX]<<22;p&&(this.combinedData=w[u.CHAR_DATA_CHAR_INDEX],this.content=2097152|w[u.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}i.CellData=_},643:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.WHITESPACE_CELL_CODE=i.WHITESPACE_CELL_WIDTH=i.WHITESPACE_CELL_CHAR=i.NULL_CELL_CODE=i.NULL_CELL_WIDTH=i.NULL_CELL_CHAR=i.CHAR_DATA_CODE_INDEX=i.CHAR_DATA_WIDTH_INDEX=i.CHAR_DATA_CHAR_INDEX=i.CHAR_DATA_ATTR_INDEX=i.DEFAULT_EXT=i.DEFAULT_ATTR=i.DEFAULT_COLOR=void 0,i.DEFAULT_COLOR=0,i.DEFAULT_ATTR=256|i.DEFAULT_COLOR<<9,i.DEFAULT_EXT=0,i.CHAR_DATA_ATTR_INDEX=0,i.CHAR_DATA_CHAR_INDEX=1,i.CHAR_DATA_WIDTH_INDEX=2,i.CHAR_DATA_CODE_INDEX=3,i.NULL_CELL_CHAR="",i.NULL_CELL_WIDTH=1,i.NULL_CELL_CODE=0,i.WHITESPACE_CELL_CHAR=" ",i.WHITESPACE_CELL_WIDTH=1,i.WHITESPACE_CELL_CODE=32},4863:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Marker=void 0;let o=n(8460),u=n(844);class l{get id(){return this._id}constructor(m){this.line=m,this.isDisposed=!1,this._disposables=[],this._id=l._nextId++,this._onDispose=this.register(new o.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,u.disposeArray)(this._disposables),this._disposables.length=0)}register(m){return this._disposables.push(m),m}}i.Marker=l,l._nextId=1},7116:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_CHARSET=i.CHARSETS=void 0,i.CHARSETS={},i.DEFAULT_CHARSET=i.CHARSETS.B,i.CHARSETS[0]={"`":"\u25C6",a:"\u2592",b:"\u2409",c:"\u240C",d:"\u240D",e:"\u240A",f:"\xB0",g:"\xB1",h:"\u2424",i:"\u240B",j:"\u2518",k:"\u2510",l:"\u250C",m:"\u2514",n:"\u253C",o:"\u23BA",p:"\u23BB",q:"\u2500",r:"\u23BC",s:"\u23BD",t:"\u251C",u:"\u2524",v:"\u2534",w:"\u252C",x:"\u2502",y:"\u2264",z:"\u2265","{":"\u03C0","|":"\u2260","}":"\xA3","~":"\xB7"},i.CHARSETS.A={"#":"\xA3"},i.CHARSETS.B=void 0,i.CHARSETS[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"},i.CHARSETS.C=i.CHARSETS[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},i.CHARSETS.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"},i.CHARSETS.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"},i.CHARSETS.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"},i.CHARSETS.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"},i.CHARSETS.E=i.CHARSETS[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"},i.CHARSETS.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"},i.CHARSETS.H=i.CHARSETS[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},i.CHARSETS["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"}},2584:(a,i)=>{var n,o,u;Object.defineProperty(i,"__esModule",{value:!0}),i.C1_ESCAPED=i.C1=i.C0=void 0,(function(l){l.NUL="\0",l.SOH="",l.STX="",l.ETX="",l.EOT="",l.ENQ="",l.ACK="",l.BEL="\x07",l.BS="\b",l.HT=" ",l.LF=`
8
- `,l.VT="\v",l.FF="\f",l.CR="\r",l.SO="",l.SI="",l.DLE="",l.DC1="",l.DC2="",l.DC3="",l.DC4="",l.NAK="",l.SYN="",l.ETB="",l.CAN="",l.EM="",l.SUB="",l.ESC="\x1B",l.FS="",l.GS="",l.RS="",l.US="",l.SP=" ",l.DEL="\x7F"})(n||(i.C0=n={})),(function(l){l.PAD="\x80",l.HOP="\x81",l.BPH="\x82",l.NBH="\x83",l.IND="\x84",l.NEL="\x85",l.SSA="\x86",l.ESA="\x87",l.HTS="\x88",l.HTJ="\x89",l.VTS="\x8A",l.PLD="\x8B",l.PLU="\x8C",l.RI="\x8D",l.SS2="\x8E",l.SS3="\x8F",l.DCS="\x90",l.PU1="\x91",l.PU2="\x92",l.STS="\x93",l.CCH="\x94",l.MW="\x95",l.SPA="\x96",l.EPA="\x97",l.SOS="\x98",l.SGCI="\x99",l.SCI="\x9A",l.CSI="\x9B",l.ST="\x9C",l.OSC="\x9D",l.PM="\x9E",l.APC="\x9F"})(o||(i.C1=o={})),(function(l){l.ST=`${n.ESC}\\`})(u||(i.C1_ESCAPED=u={}))},7399:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.evaluateKeyboardEvent=void 0;let o=n(2584),u={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};i.evaluateKeyboardEvent=function(l,_,m,w){let p={type:0,cancel:!1,key:void 0},c=(l.shiftKey?1:0)|(l.altKey?2:0)|(l.ctrlKey?4:0)|(l.metaKey?8:0);switch(l.keyCode){case 0:l.key==="UIKeyInputUpArrow"?p.key=_?o.C0.ESC+"OA":o.C0.ESC+"[A":l.key==="UIKeyInputLeftArrow"?p.key=_?o.C0.ESC+"OD":o.C0.ESC+"[D":l.key==="UIKeyInputRightArrow"?p.key=_?o.C0.ESC+"OC":o.C0.ESC+"[C":l.key==="UIKeyInputDownArrow"&&(p.key=_?o.C0.ESC+"OB":o.C0.ESC+"[B");break;case 8:p.key=l.ctrlKey?"\b":o.C0.DEL,l.altKey&&(p.key=o.C0.ESC+p.key);break;case 9:if(l.shiftKey){p.key=o.C0.ESC+"[Z";break}p.key=o.C0.HT,p.cancel=!0;break;case 13:p.key=l.altKey?o.C0.ESC+o.C0.CR:o.C0.CR,p.cancel=!0;break;case 27:p.key=o.C0.ESC,l.altKey&&(p.key=o.C0.ESC+o.C0.ESC),p.cancel=!0;break;case 37:if(l.metaKey)break;c?(p.key=o.C0.ESC+"[1;"+(c+1)+"D",p.key===o.C0.ESC+"[1;3D"&&(p.key=o.C0.ESC+(m?"b":"[1;5D"))):p.key=_?o.C0.ESC+"OD":o.C0.ESC+"[D";break;case 39:if(l.metaKey)break;c?(p.key=o.C0.ESC+"[1;"+(c+1)+"C",p.key===o.C0.ESC+"[1;3C"&&(p.key=o.C0.ESC+(m?"f":"[1;5C"))):p.key=_?o.C0.ESC+"OC":o.C0.ESC+"[C";break;case 38:if(l.metaKey)break;c?(p.key=o.C0.ESC+"[1;"+(c+1)+"A",m||p.key!==o.C0.ESC+"[1;3A"||(p.key=o.C0.ESC+"[1;5A")):p.key=_?o.C0.ESC+"OA":o.C0.ESC+"[A";break;case 40:if(l.metaKey)break;c?(p.key=o.C0.ESC+"[1;"+(c+1)+"B",m||p.key!==o.C0.ESC+"[1;3B"||(p.key=o.C0.ESC+"[1;5B")):p.key=_?o.C0.ESC+"OB":o.C0.ESC+"[B";break;case 45:l.shiftKey||l.ctrlKey||(p.key=o.C0.ESC+"[2~");break;case 46:p.key=c?o.C0.ESC+"[3;"+(c+1)+"~":o.C0.ESC+"[3~";break;case 36:p.key=c?o.C0.ESC+"[1;"+(c+1)+"H":_?o.C0.ESC+"OH":o.C0.ESC+"[H";break;case 35:p.key=c?o.C0.ESC+"[1;"+(c+1)+"F":_?o.C0.ESC+"OF":o.C0.ESC+"[F";break;case 33:l.shiftKey?p.type=2:l.ctrlKey?p.key=o.C0.ESC+"[5;"+(c+1)+"~":p.key=o.C0.ESC+"[5~";break;case 34:l.shiftKey?p.type=3:l.ctrlKey?p.key=o.C0.ESC+"[6;"+(c+1)+"~":p.key=o.C0.ESC+"[6~";break;case 112:p.key=c?o.C0.ESC+"[1;"+(c+1)+"P":o.C0.ESC+"OP";break;case 113:p.key=c?o.C0.ESC+"[1;"+(c+1)+"Q":o.C0.ESC+"OQ";break;case 114:p.key=c?o.C0.ESC+"[1;"+(c+1)+"R":o.C0.ESC+"OR";break;case 115:p.key=c?o.C0.ESC+"[1;"+(c+1)+"S":o.C0.ESC+"OS";break;case 116:p.key=c?o.C0.ESC+"[15;"+(c+1)+"~":o.C0.ESC+"[15~";break;case 117:p.key=c?o.C0.ESC+"[17;"+(c+1)+"~":o.C0.ESC+"[17~";break;case 118:p.key=c?o.C0.ESC+"[18;"+(c+1)+"~":o.C0.ESC+"[18~";break;case 119:p.key=c?o.C0.ESC+"[19;"+(c+1)+"~":o.C0.ESC+"[19~";break;case 120:p.key=c?o.C0.ESC+"[20;"+(c+1)+"~":o.C0.ESC+"[20~";break;case 121:p.key=c?o.C0.ESC+"[21;"+(c+1)+"~":o.C0.ESC+"[21~";break;case 122:p.key=c?o.C0.ESC+"[23;"+(c+1)+"~":o.C0.ESC+"[23~";break;case 123:p.key=c?o.C0.ESC+"[24;"+(c+1)+"~":o.C0.ESC+"[24~";break;default:if(!l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)if(m&&!w||!l.altKey||l.metaKey)!m||l.altKey||l.ctrlKey||l.shiftKey||!l.metaKey?l.key&&!l.ctrlKey&&!l.altKey&&!l.metaKey&&l.keyCode>=48&&l.key.length===1?p.key=l.key:l.key&&l.ctrlKey&&(l.key==="_"&&(p.key=o.C0.US),l.key==="@"&&(p.key=o.C0.NUL)):l.keyCode===65&&(p.type=1);else{let d=u[l.keyCode],h=d?.[l.shiftKey?1:0];if(h)p.key=o.C0.ESC+h;else if(l.keyCode>=65&&l.keyCode<=90){let f=l.ctrlKey?l.keyCode-64:l.keyCode+32,g=String.fromCharCode(f);l.shiftKey&&(g=g.toUpperCase()),p.key=o.C0.ESC+g}else if(l.keyCode===32)p.key=o.C0.ESC+(l.ctrlKey?o.C0.NUL:" ");else if(l.key==="Dead"&&l.code.startsWith("Key")){let f=l.code.slice(3,4);l.shiftKey||(f=f.toLowerCase()),p.key=o.C0.ESC+f,p.cancel=!0}}else l.keyCode>=65&&l.keyCode<=90?p.key=String.fromCharCode(l.keyCode-64):l.keyCode===32?p.key=o.C0.NUL:l.keyCode>=51&&l.keyCode<=55?p.key=String.fromCharCode(l.keyCode-51+27):l.keyCode===56?p.key=o.C0.DEL:l.keyCode===219?p.key=o.C0.ESC:l.keyCode===220?p.key=o.C0.FS:l.keyCode===221&&(p.key=o.C0.GS)}return p}},482:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Utf8ToUtf32=i.StringToUtf32=i.utf32ToString=i.stringFromCodePoint=void 0,i.stringFromCodePoint=function(n){return n>65535?(n-=65536,String.fromCharCode(55296+(n>>10))+String.fromCharCode(n%1024+56320)):String.fromCharCode(n)},i.utf32ToString=function(n,o=0,u=n.length){let l="";for(let _=o;_<u;++_){let m=n[_];m>65535?(m-=65536,l+=String.fromCharCode(55296+(m>>10))+String.fromCharCode(m%1024+56320)):l+=String.fromCharCode(m)}return l},i.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(n,o){let u=n.length;if(!u)return 0;let l=0,_=0;if(this._interim){let m=n.charCodeAt(_++);56320<=m&&m<=57343?o[l++]=1024*(this._interim-55296)+m-56320+65536:(o[l++]=this._interim,o[l++]=m),this._interim=0}for(let m=_;m<u;++m){let w=n.charCodeAt(m);if(55296<=w&&w<=56319){if(++m>=u)return this._interim=w,l;let p=n.charCodeAt(m);56320<=p&&p<=57343?o[l++]=1024*(w-55296)+p-56320+65536:(o[l++]=w,o[l++]=p)}else w!==65279&&(o[l++]=w)}return l}},i.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(n,o){let u=n.length;if(!u)return 0;let l,_,m,w,p=0,c=0,d=0;if(this.interim[0]){let g=!1,C=this.interim[0];C&=(224&C)==192?31:(240&C)==224?15:7;let v,x=0;for(;(v=63&this.interim[++x])&&x<4;)C<<=6,C|=v;let b=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,E=b-x;for(;d<E;){if(d>=u)return 0;if(v=n[d++],(192&v)!=128){d--,g=!0;break}this.interim[x++]=v,C<<=6,C|=63&v}g||(b===2?C<128?d--:o[p++]=C:b===3?C<2048||C>=55296&&C<=57343||C===65279||(o[p++]=C):C<65536||C>1114111||(o[p++]=C)),this.interim.fill(0)}let h=u-4,f=d;for(;f<u;){for(;!(!(f<h)||128&(l=n[f])||128&(_=n[f+1])||128&(m=n[f+2])||128&(w=n[f+3]));)o[p++]=l,o[p++]=_,o[p++]=m,o[p++]=w,f+=4;if(l=n[f++],l<128)o[p++]=l;else if((224&l)==192){if(f>=u)return this.interim[0]=l,p;if(_=n[f++],(192&_)!=128){f--;continue}if(c=(31&l)<<6|63&_,c<128){f--;continue}o[p++]=c}else if((240&l)==224){if(f>=u)return this.interim[0]=l,p;if(_=n[f++],(192&_)!=128){f--;continue}if(f>=u)return this.interim[0]=l,this.interim[1]=_,p;if(m=n[f++],(192&m)!=128){f--;continue}if(c=(15&l)<<12|(63&_)<<6|63&m,c<2048||c>=55296&&c<=57343||c===65279)continue;o[p++]=c}else if((248&l)==240){if(f>=u)return this.interim[0]=l,p;if(_=n[f++],(192&_)!=128){f--;continue}if(f>=u)return this.interim[0]=l,this.interim[1]=_,p;if(m=n[f++],(192&m)!=128){f--;continue}if(f>=u)return this.interim[0]=l,this.interim[1]=_,this.interim[2]=m,p;if(w=n[f++],(192&w)!=128){f--;continue}if(c=(7&l)<<18|(63&_)<<12|(63&m)<<6|63&w,c<65536||c>1114111)continue;o[p++]=c}}return p}}},225:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.UnicodeV6=void 0;let o=n(1480),u=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],l=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],_;i.UnicodeV6=class{constructor(){if(this.version="6",!_){_=new Uint8Array(65536),_.fill(1),_[0]=0,_.fill(0,1,32),_.fill(0,127,160),_.fill(2,4352,4448),_[9001]=2,_[9002]=2,_.fill(2,11904,42192),_[12351]=1,_.fill(2,44032,55204),_.fill(2,63744,64256),_.fill(2,65040,65050),_.fill(2,65072,65136),_.fill(2,65280,65377),_.fill(2,65504,65511);for(let m=0;m<u.length;++m)_.fill(0,u[m][0],u[m][1]+1)}}wcwidth(m){return m<32?0:m<127?1:m<65536?_[m]:(function(w,p){let c,d=0,h=p.length-1;if(w<p[0][0]||w>p[h][1])return!1;for(;h>=d;)if(c=d+h>>1,w>p[c][1])d=c+1;else{if(!(w<p[c][0]))return!0;h=c-1}return!1})(m,l)?0:m>=131072&&m<=196605||m>=196608&&m<=262141?2:1}charProperties(m,w){let p=this.wcwidth(m),c=p===0&&w!==0;if(c){let d=o.UnicodeService.extractWidth(w);d===0?c=!1:d>p&&(p=d)}return o.UnicodeService.createPropertyValue(0,p,c)}}},5981:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.WriteBuffer=void 0;let o=n(8460),u=n(844);class l extends u.Disposable{constructor(m){super(),this._action=m,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new o.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(m,w){if(w!==void 0&&this._syncCalls>w)return void(this._syncCalls=0);if(this._pendingData+=m.length,this._writeBuffer.push(m),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let p;for(this._isSyncWriting=!0;p=this._writeBuffer.shift();){this._action(p);let c=this._callbacks.shift();c&&c()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(m,w){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=m.length,this._writeBuffer.push(m),this._callbacks.push(w),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=m.length,this._writeBuffer.push(m),this._callbacks.push(w)}_innerWrite(m=0,w=!0){let p=m||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){let c=this._writeBuffer[this._bufferOffset],d=this._action(c,w);if(d){let f=g=>Date.now()-p>=12?setTimeout((()=>this._innerWrite(0,g))):this._innerWrite(p,g);return void d.catch((g=>(queueMicrotask((()=>{throw g})),Promise.resolve(!1)))).then(f)}let h=this._callbacks[this._bufferOffset];if(h&&h(),this._bufferOffset++,this._pendingData-=c.length,Date.now()-p>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}i.WriteBuffer=l},5941:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.toRgbString=i.parseColor=void 0;let n=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,o=/^[\da-f]+$/;function u(l,_){let m=l.toString(16),w=m.length<2?"0"+m:m;switch(_){case 4:return m[0];case 8:return w;case 12:return(w+w).slice(0,3);default:return w+w}}i.parseColor=function(l){if(!l)return;let _=l.toLowerCase();if(_.indexOf("rgb:")===0){_=_.slice(4);let m=n.exec(_);if(m){let w=m[1]?15:m[4]?255:m[7]?4095:65535;return[Math.round(parseInt(m[1]||m[4]||m[7]||m[10],16)/w*255),Math.round(parseInt(m[2]||m[5]||m[8]||m[11],16)/w*255),Math.round(parseInt(m[3]||m[6]||m[9]||m[12],16)/w*255)]}}else if(_.indexOf("#")===0&&(_=_.slice(1),o.exec(_)&&[3,6,9,12].includes(_.length))){let m=_.length/3,w=[0,0,0];for(let p=0;p<3;++p){let c=parseInt(_.slice(m*p,m*p+m),16);w[p]=m===1?c<<4:m===2?c:m===3?c>>4:c>>8}return w}},i.toRgbString=function(l,_=16){let[m,w,p]=l;return`rgb:${u(m,_)}/${u(w,_)}/${u(p,_)}`}},5770:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.PAYLOAD_LIMIT=void 0,i.PAYLOAD_LIMIT=1e7},6351:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DcsHandler=i.DcsParser=void 0;let o=n(482),u=n(8742),l=n(5770),_=[];i.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=_,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=_}registerHandler(w,p){this._handlers[w]===void 0&&(this._handlers[w]=[]);let c=this._handlers[w];return c.push(p),{dispose:()=>{let d=c.indexOf(p);d!==-1&&c.splice(d,1)}}}clearHandler(w){this._handlers[w]&&delete this._handlers[w]}setHandlerFallback(w){this._handlerFb=w}reset(){if(this._active.length)for(let w=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;w>=0;--w)this._active[w].unhook(!1);this._stack.paused=!1,this._active=_,this._ident=0}hook(w,p){if(this.reset(),this._ident=w,this._active=this._handlers[w]||_,this._active.length)for(let c=this._active.length-1;c>=0;c--)this._active[c].hook(p);else this._handlerFb(this._ident,"HOOK",p)}put(w,p,c){if(this._active.length)for(let d=this._active.length-1;d>=0;d--)this._active[d].put(w,p,c);else this._handlerFb(this._ident,"PUT",(0,o.utf32ToString)(w,p,c))}unhook(w,p=!0){if(this._active.length){let c=!1,d=this._active.length-1,h=!1;if(this._stack.paused&&(d=this._stack.loopPosition-1,c=p,h=this._stack.fallThrough,this._stack.paused=!1),!h&&c===!1){for(;d>=0&&(c=this._active[d].unhook(w),c!==!0);d--)if(c instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!1,c;d--}for(;d>=0;d--)if(c=this._active[d].unhook(!1),c instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!0,c}else this._handlerFb(this._ident,"UNHOOK",w);this._active=_,this._ident=0}};let m=new u.Params;m.addParam(0),i.DcsHandler=class{constructor(w){this._handler=w,this._data="",this._params=m,this._hitLimit=!1}hook(w){this._params=w.length>1||w.params[0]?w.clone():m,this._data="",this._hitLimit=!1}put(w,p,c){this._hitLimit||(this._data+=(0,o.utf32ToString)(w,p,c),this._data.length>l.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(w){let p=!1;if(this._hitLimit)p=!1;else if(w&&(p=this._handler(this._data,this._params),p instanceof Promise))return p.then((c=>(this._params=m,this._data="",this._hitLimit=!1,c)));return this._params=m,this._data="",this._hitLimit=!1,p}}},2015:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.EscapeSequenceParser=i.VT500_TRANSITION_TABLE=i.TransitionTable=void 0;let o=n(844),u=n(8742),l=n(6242),_=n(6351);class m{constructor(d){this.table=new Uint8Array(d)}setDefault(d,h){this.table.fill(d<<4|h)}add(d,h,f,g){this.table[h<<8|d]=f<<4|g}addMany(d,h,f,g){for(let C=0;C<d.length;C++)this.table[h<<8|d[C]]=f<<4|g}}i.TransitionTable=m;let w=160;i.VT500_TRANSITION_TABLE=(function(){let c=new m(4095),d=Array.apply(null,Array(256)).map(((x,b)=>b)),h=(x,b)=>d.slice(x,b),f=h(32,127),g=h(0,24);g.push(25),g.push.apply(g,h(28,32));let C=h(0,14),v;for(v in c.setDefault(1,0),c.addMany(f,0,2,0),C)c.addMany([24,26,153,154],v,3,0),c.addMany(h(128,144),v,3,0),c.addMany(h(144,152),v,3,0),c.add(156,v,0,0),c.add(27,v,11,1),c.add(157,v,4,8),c.addMany([152,158,159],v,0,7),c.add(155,v,11,3),c.add(144,v,11,9);return c.addMany(g,0,3,0),c.addMany(g,1,3,1),c.add(127,1,0,1),c.addMany(g,8,0,8),c.addMany(g,3,3,3),c.add(127,3,0,3),c.addMany(g,4,3,4),c.add(127,4,0,4),c.addMany(g,6,3,6),c.addMany(g,5,3,5),c.add(127,5,0,5),c.addMany(g,2,3,2),c.add(127,2,0,2),c.add(93,1,4,8),c.addMany(f,8,5,8),c.add(127,8,5,8),c.addMany([156,27,24,26,7],8,6,0),c.addMany(h(28,32),8,0,8),c.addMany([88,94,95],1,0,7),c.addMany(f,7,0,7),c.addMany(g,7,0,7),c.add(156,7,0,0),c.add(127,7,0,7),c.add(91,1,11,3),c.addMany(h(64,127),3,7,0),c.addMany(h(48,60),3,8,4),c.addMany([60,61,62,63],3,9,4),c.addMany(h(48,60),4,8,4),c.addMany(h(64,127),4,7,0),c.addMany([60,61,62,63],4,0,6),c.addMany(h(32,64),6,0,6),c.add(127,6,0,6),c.addMany(h(64,127),6,0,0),c.addMany(h(32,48),3,9,5),c.addMany(h(32,48),5,9,5),c.addMany(h(48,64),5,0,6),c.addMany(h(64,127),5,7,0),c.addMany(h(32,48),4,9,5),c.addMany(h(32,48),1,9,2),c.addMany(h(32,48),2,9,2),c.addMany(h(48,127),2,10,0),c.addMany(h(48,80),1,10,0),c.addMany(h(81,88),1,10,0),c.addMany([89,90,92],1,10,0),c.addMany(h(96,127),1,10,0),c.add(80,1,11,9),c.addMany(g,9,0,9),c.add(127,9,0,9),c.addMany(h(28,32),9,0,9),c.addMany(h(32,48),9,9,12),c.addMany(h(48,60),9,8,10),c.addMany([60,61,62,63],9,9,10),c.addMany(g,11,0,11),c.addMany(h(32,128),11,0,11),c.addMany(h(28,32),11,0,11),c.addMany(g,10,0,10),c.add(127,10,0,10),c.addMany(h(28,32),10,0,10),c.addMany(h(48,60),10,8,10),c.addMany([60,61,62,63],10,0,11),c.addMany(h(32,48),10,9,12),c.addMany(g,12,0,12),c.add(127,12,0,12),c.addMany(h(28,32),12,0,12),c.addMany(h(32,48),12,9,12),c.addMany(h(48,64),12,0,11),c.addMany(h(64,127),12,12,13),c.addMany(h(64,127),10,12,13),c.addMany(h(64,127),9,12,13),c.addMany(g,13,13,13),c.addMany(f,13,13,13),c.add(127,13,0,13),c.addMany([27,156,24,26],13,14,0),c.add(w,0,2,0),c.add(w,8,5,8),c.add(w,6,0,6),c.add(w,11,0,11),c.add(w,13,13,13),c})();class p extends o.Disposable{constructor(d=i.VT500_TRANSITION_TABLE){super(),this._transitions=d,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new u.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(h,f,g)=>{},this._executeHandlerFb=h=>{},this._csiHandlerFb=(h,f)=>{},this._escHandlerFb=h=>{},this._errorHandlerFb=h=>h,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,o.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new l.OscParser),this._dcsParser=this.register(new _.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(d,h=[64,126]){let f=0;if(d.prefix){if(d.prefix.length>1)throw new Error("only one byte as prefix supported");if(f=d.prefix.charCodeAt(0),f&&60>f||f>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(d.intermediates){if(d.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let C=0;C<d.intermediates.length;++C){let v=d.intermediates.charCodeAt(C);if(32>v||v>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");f<<=8,f|=v}}if(d.final.length!==1)throw new Error("final must be a single byte");let g=d.final.charCodeAt(0);if(h[0]>g||g>h[1])throw new Error(`final must be in range ${h[0]} .. ${h[1]}`);return f<<=8,f|=g,f}identToString(d){let h=[];for(;d;)h.push(String.fromCharCode(255&d)),d>>=8;return h.reverse().join("")}setPrintHandler(d){this._printHandler=d}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(d,h){let f=this._identifier(d,[48,126]);this._escHandlers[f]===void 0&&(this._escHandlers[f]=[]);let g=this._escHandlers[f];return g.push(h),{dispose:()=>{let C=g.indexOf(h);C!==-1&&g.splice(C,1)}}}clearEscHandler(d){this._escHandlers[this._identifier(d,[48,126])]&&delete this._escHandlers[this._identifier(d,[48,126])]}setEscHandlerFallback(d){this._escHandlerFb=d}setExecuteHandler(d,h){this._executeHandlers[d.charCodeAt(0)]=h}clearExecuteHandler(d){this._executeHandlers[d.charCodeAt(0)]&&delete this._executeHandlers[d.charCodeAt(0)]}setExecuteHandlerFallback(d){this._executeHandlerFb=d}registerCsiHandler(d,h){let f=this._identifier(d);this._csiHandlers[f]===void 0&&(this._csiHandlers[f]=[]);let g=this._csiHandlers[f];return g.push(h),{dispose:()=>{let C=g.indexOf(h);C!==-1&&g.splice(C,1)}}}clearCsiHandler(d){this._csiHandlers[this._identifier(d)]&&delete this._csiHandlers[this._identifier(d)]}setCsiHandlerFallback(d){this._csiHandlerFb=d}registerDcsHandler(d,h){return this._dcsParser.registerHandler(this._identifier(d),h)}clearDcsHandler(d){this._dcsParser.clearHandler(this._identifier(d))}setDcsHandlerFallback(d){this._dcsParser.setHandlerFallback(d)}registerOscHandler(d,h){return this._oscParser.registerHandler(d,h)}clearOscHandler(d){this._oscParser.clearHandler(d)}setOscHandlerFallback(d){this._oscParser.setHandlerFallback(d)}setErrorHandler(d){this._errorHandler=d}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(d,h,f,g,C){this._parseStack.state=d,this._parseStack.handlers=h,this._parseStack.handlerPos=f,this._parseStack.transition=g,this._parseStack.chunkPos=C}parse(d,h,f){let g,C=0,v=0,x=0;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,x=this._parseStack.chunkPos+1;else{if(f===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");let b=this._parseStack.handlers,E=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(f===!1&&E>-1){for(;E>=0&&(g=b[E](this._params),g!==!0);E--)if(g instanceof Promise)return this._parseStack.handlerPos=E,g}this._parseStack.handlers=[];break;case 4:if(f===!1&&E>-1){for(;E>=0&&(g=b[E](),g!==!0);E--)if(g instanceof Promise)return this._parseStack.handlerPos=E,g}this._parseStack.handlers=[];break;case 6:if(C=d[this._parseStack.chunkPos],g=this._dcsParser.unhook(C!==24&&C!==26,f),g)return g;C===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(C=d[this._parseStack.chunkPos],g=this._oscParser.end(C!==24&&C!==26,f),g)return g;C===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,x=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let b=x;b<h;++b){switch(C=d[b],v=this._transitions.table[this.currentState<<8|(C<160?C:w)],v>>4){case 2:for(let M=b+1;;++M){if(M>=h||(C=d[M])<32||C>126&&C<w){this._printHandler(d,b,M),b=M-1;break}if(++M>=h||(C=d[M])<32||C>126&&C<w){this._printHandler(d,b,M),b=M-1;break}if(++M>=h||(C=d[M])<32||C>126&&C<w){this._printHandler(d,b,M),b=M-1;break}if(++M>=h||(C=d[M])<32||C>126&&C<w){this._printHandler(d,b,M),b=M-1;break}}break;case 3:this._executeHandlers[C]?this._executeHandlers[C]():this._executeHandlerFb(C),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:b,code:C,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let E=this._csiHandlers[this._collect<<8|C],O=E?E.length-1:-1;for(;O>=0&&(g=E[O](this._params),g!==!0);O--)if(g instanceof Promise)return this._preserveStack(3,E,O,v,b),g;O<0&&this._csiHandlerFb(this._collect<<8|C,this._params),this.precedingJoinState=0;break;case 8:do switch(C){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(C-48)}while(++b<h&&(C=d[b])>47&&C<60);b--;break;case 9:this._collect<<=8,this._collect|=C;break;case 10:let B=this._escHandlers[this._collect<<8|C],H=B?B.length-1:-1;for(;H>=0&&(g=B[H](),g!==!0);H--)if(g instanceof Promise)return this._preserveStack(4,B,H,v,b),g;H<0&&this._escHandlerFb(this._collect<<8|C),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|C,this._params);break;case 13:for(let M=b+1;;++M)if(M>=h||(C=d[M])===24||C===26||C===27||C>127&&C<w){this._dcsParser.put(d,b,M),b=M-1;break}break;case 14:if(g=this._dcsParser.unhook(C!==24&&C!==26),g)return this._preserveStack(6,[],0,v,b),g;C===27&&(v|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let M=b+1;;M++)if(M>=h||(C=d[M])<32||C>127&&C<w){this._oscParser.put(d,b,M),b=M-1;break}break;case 6:if(g=this._oscParser.end(C!==24&&C!==26),g)return this._preserveStack(5,[],0,v,b),g;C===27&&(v|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0}this.currentState=15&v}}}i.EscapeSequenceParser=p},6242:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.OscHandler=i.OscParser=void 0;let o=n(5770),u=n(482),l=[];i.OscParser=class{constructor(){this._state=0,this._active=l,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(_,m){this._handlers[_]===void 0&&(this._handlers[_]=[]);let w=this._handlers[_];return w.push(m),{dispose:()=>{let p=w.indexOf(m);p!==-1&&w.splice(p,1)}}}clearHandler(_){this._handlers[_]&&delete this._handlers[_]}setHandlerFallback(_){this._handlerFb=_}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=l}reset(){if(this._state===2)for(let _=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;_>=0;--_)this._active[_].end(!1);this._stack.paused=!1,this._active=l,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||l,this._active.length)for(let _=this._active.length-1;_>=0;_--)this._active[_].start();else this._handlerFb(this._id,"START")}_put(_,m,w){if(this._active.length)for(let p=this._active.length-1;p>=0;p--)this._active[p].put(_,m,w);else this._handlerFb(this._id,"PUT",(0,u.utf32ToString)(_,m,w))}start(){this.reset(),this._state=1}put(_,m,w){if(this._state!==3){if(this._state===1)for(;m<w;){let p=_[m++];if(p===59){this._state=2,this._start();break}if(p<48||57<p)return void(this._state=3);this._id===-1&&(this._id=0),this._id=10*this._id+p-48}this._state===2&&w-m>0&&this._put(_,m,w)}}end(_,m=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),this._active.length){let w=!1,p=this._active.length-1,c=!1;if(this._stack.paused&&(p=this._stack.loopPosition-1,w=m,c=this._stack.fallThrough,this._stack.paused=!1),!c&&w===!1){for(;p>=0&&(w=this._active[p].end(_),w!==!0);p--)if(w instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=p,this._stack.fallThrough=!1,w;p--}for(;p>=0;p--)if(w=this._active[p].end(!1),w instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=p,this._stack.fallThrough=!0,w}else this._handlerFb(this._id,"END",_);this._active=l,this._id=-1,this._state=0}}},i.OscHandler=class{constructor(_){this._handler=_,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(_,m,w){this._hitLimit||(this._data+=(0,u.utf32ToString)(_,m,w),this._data.length>o.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(_){let m=!1;if(this._hitLimit)m=!1;else if(_&&(m=this._handler(this._data),m instanceof Promise))return m.then((w=>(this._data="",this._hitLimit=!1,w)));return this._data="",this._hitLimit=!1,m}}},8742:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Params=void 0;let n=2147483647;class o{static fromArray(l){let _=new o;if(!l.length)return _;for(let m=Array.isArray(l[0])?1:0;m<l.length;++m){let w=l[m];if(Array.isArray(w))for(let p=0;p<w.length;++p)_.addSubParam(w[p]);else _.addParam(w)}return _}constructor(l=32,_=32){if(this.maxLength=l,this.maxSubParamsLength=_,_>256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(l),this.length=0,this._subParams=new Int32Array(_),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(l),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){let l=new o(this.maxLength,this.maxSubParamsLength);return l.params.set(this.params),l.length=this.length,l._subParams.set(this._subParams),l._subParamsLength=this._subParamsLength,l._subParamsIdx.set(this._subParamsIdx),l._rejectDigits=this._rejectDigits,l._rejectSubDigits=this._rejectSubDigits,l._digitIsSub=this._digitIsSub,l}toArray(){let l=[];for(let _=0;_<this.length;++_){l.push(this.params[_]);let m=this._subParamsIdx[_]>>8,w=255&this._subParamsIdx[_];w-m>0&&l.push(Array.prototype.slice.call(this._subParams,m,w))}return l}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(l){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(l<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=l>n?n:l}}addSubParam(l){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(l<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=l>n?n:l,this._subParamsIdx[this.length-1]++}}hasSubParams(l){return(255&this._subParamsIdx[l])-(this._subParamsIdx[l]>>8)>0}getSubParams(l){let _=this._subParamsIdx[l]>>8,m=255&this._subParamsIdx[l];return m-_>0?this._subParams.subarray(_,m):null}getSubParamsAll(){let l={};for(let _=0;_<this.length;++_){let m=this._subParamsIdx[_]>>8,w=255&this._subParamsIdx[_];w-m>0&&(l[_]=this._subParams.slice(m,w))}return l}addDigit(l){let _;if(this._rejectDigits||!(_=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let m=this._digitIsSub?this._subParams:this.params,w=m[_-1];m[_-1]=~w?Math.min(10*w+l,n):l}}i.Params=o},5741:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.AddonManager=void 0,i.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let n=this._addons.length-1;n>=0;n--)this._addons[n].instance.dispose()}loadAddon(n,o){let u={instance:o,dispose:o.dispose,isDisposed:!1};this._addons.push(u),o.dispose=()=>this._wrappedAddonDispose(u),o.activate(n)}_wrappedAddonDispose(n){if(n.isDisposed)return;let o=-1;for(let u=0;u<this._addons.length;u++)if(this._addons[u]===n){o=u;break}if(o===-1)throw new Error("Could not dispose an addon that has not been loaded");n.isDisposed=!0,n.dispose.apply(n.instance),this._addons.splice(o,1)}}},8771:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferApiView=void 0;let o=n(3785),u=n(511);i.BufferApiView=class{constructor(l,_){this._buffer=l,this.type=_}init(l){return this._buffer=l,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(l){let _=this._buffer.lines.get(l);if(_)return new o.BufferLineApiView(_)}getNullCell(){return new u.CellData}}},3785:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferLineApiView=void 0;let o=n(511);i.BufferLineApiView=class{constructor(u){this._line=u}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(u,l){if(!(u<0||u>=this._line.length))return l?(this._line.loadCell(u,l),l):this._line.loadCell(u,new o.CellData)}translateToString(u,l,_){return this._line.translateToString(u,l,_)}}},8285:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferNamespaceApi=void 0;let o=n(8771),u=n(8460),l=n(844);class _ extends l.Disposable{constructor(w){super(),this._core=w,this._onBufferChange=this.register(new u.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new o.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new o.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}i.BufferNamespaceApi=_},7975:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ParserApi=void 0,i.ParserApi=class{constructor(n){this._core=n}registerCsiHandler(n,o){return this._core.registerCsiHandler(n,(u=>o(u.toArray())))}addCsiHandler(n,o){return this.registerCsiHandler(n,o)}registerDcsHandler(n,o){return this._core.registerDcsHandler(n,((u,l)=>o(u,l.toArray())))}addDcsHandler(n,o){return this.registerDcsHandler(n,o)}registerEscHandler(n,o){return this._core.registerEscHandler(n,o)}addEscHandler(n,o){return this.registerEscHandler(n,o)}registerOscHandler(n,o){return this._core.registerOscHandler(n,o)}addOscHandler(n,o){return this.registerOscHandler(n,o)}}},7090:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.UnicodeApi=void 0,i.UnicodeApi=class{constructor(n){this._core=n}register(n){this._core.unicodeService.register(n)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(n){this._core.unicodeService.activeVersion=n}}},744:function(a,i,n){var o=this&&this.__decorate||function(c,d,h,f){var g,C=arguments.length,v=C<3?d:f===null?f=Object.getOwnPropertyDescriptor(d,h):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(c,d,h,f);else for(var x=c.length-1;x>=0;x--)(g=c[x])&&(v=(C<3?g(v):C>3?g(d,h,v):g(d,h))||v);return C>3&&v&&Object.defineProperty(d,h,v),v},u=this&&this.__param||function(c,d){return function(h,f){d(h,f,c)}};Object.defineProperty(i,"__esModule",{value:!0}),i.BufferService=i.MINIMUM_ROWS=i.MINIMUM_COLS=void 0;let l=n(8460),_=n(844),m=n(5295),w=n(2585);i.MINIMUM_COLS=2,i.MINIMUM_ROWS=1;let p=i.BufferService=class extends _.Disposable{get buffer(){return this.buffers.active}constructor(c){super(),this.isUserScrolling=!1,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new l.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(c.rawOptions.cols||0,i.MINIMUM_COLS),this.rows=Math.max(c.rawOptions.rows||0,i.MINIMUM_ROWS),this.buffers=this.register(new m.BufferSet(c,this))}resize(c,d){this.cols=c,this.rows=d,this.buffers.resize(c,d),this._onResize.fire({cols:c,rows:d})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(c,d=!1){let h=this.buffer,f;f=this._cachedBlankLine,f&&f.length===this.cols&&f.getFg(0)===c.fg&&f.getBg(0)===c.bg||(f=h.getBlankLine(c,d),this._cachedBlankLine=f),f.isWrapped=d;let g=h.ybase+h.scrollTop,C=h.ybase+h.scrollBottom;if(h.scrollTop===0){let v=h.lines.isFull;C===h.lines.length-1?v?h.lines.recycle().copyFrom(f):h.lines.push(f.clone()):h.lines.splice(C+1,0,f.clone()),v?this.isUserScrolling&&(h.ydisp=Math.max(h.ydisp-1,0)):(h.ybase++,this.isUserScrolling||h.ydisp++)}else{let v=C-g+1;h.lines.shiftElements(g+1,v-1,-1),h.lines.set(C,f.clone())}this.isUserScrolling||(h.ydisp=h.ybase),this._onScroll.fire(h.ydisp)}scrollLines(c,d,h){let f=this.buffer;if(c<0){if(f.ydisp===0)return;this.isUserScrolling=!0}else c+f.ydisp>=f.ybase&&(this.isUserScrolling=!1);let g=f.ydisp;f.ydisp=Math.max(Math.min(f.ydisp+c,f.ybase),0),g!==f.ydisp&&(d||this._onScroll.fire(f.ydisp))}};i.BufferService=p=o([u(0,w.IOptionsService)],p)},7994:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CharsetService=void 0,i.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(n){this.glevel=n,this.charset=this._charsets[n]}setgCharset(n,o){this._charsets[n]=o,this.glevel===n&&(this.charset=o)}}},1753:function(a,i,n){var o=this&&this.__decorate||function(f,g,C,v){var x,b=arguments.length,E=b<3?g:v===null?v=Object.getOwnPropertyDescriptor(g,C):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(f,g,C,v);else for(var O=f.length-1;O>=0;O--)(x=f[O])&&(E=(b<3?x(E):b>3?x(g,C,E):x(g,C))||E);return b>3&&E&&Object.defineProperty(g,C,E),E},u=this&&this.__param||function(f,g){return function(C,v){g(C,v,f)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CoreMouseService=void 0;let l=n(2585),_=n(8460),m=n(844),w={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:f=>f.button!==4&&f.action===1&&(f.ctrl=!1,f.alt=!1,f.shift=!1,!0)},VT200:{events:19,restrict:f=>f.action!==32},DRAG:{events:23,restrict:f=>f.action!==32||f.button!==3},ANY:{events:31,restrict:f=>!0}};function p(f,g){let C=(f.ctrl?16:0)|(f.shift?4:0)|(f.alt?8:0);return f.button===4?(C|=64,C|=f.action):(C|=3&f.button,4&f.button&&(C|=64),8&f.button&&(C|=128),f.action===32?C|=32:f.action!==0||g||(C|=3)),C}let c=String.fromCharCode,d={DEFAULT:f=>{let g=[p(f,!1)+32,f.col+32,f.row+32];return g[0]>255||g[1]>255||g[2]>255?"":`\x1B[M${c(g[0])}${c(g[1])}${c(g[2])}`},SGR:f=>{let g=f.action===0&&f.button!==4?"m":"M";return`\x1B[<${p(f,!0)};${f.col};${f.row}${g}`},SGR_PIXELS:f=>{let g=f.action===0&&f.button!==4?"m":"M";return`\x1B[<${p(f,!0)};${f.x};${f.y}${g}`}},h=i.CoreMouseService=class extends m.Disposable{constructor(f,g){super(),this._bufferService=f,this._coreService=g,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new _.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(let C of Object.keys(w))this.addProtocol(C,w[C]);for(let C of Object.keys(d))this.addEncoding(C,d[C]);this.reset()}addProtocol(f,g){this._protocols[f]=g}addEncoding(f,g){this._encodings[f]=g}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(f){if(!this._protocols[f])throw new Error(`unknown protocol "${f}"`);this._activeProtocol=f,this._onProtocolChange.fire(this._protocols[f].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(f){if(!this._encodings[f])throw new Error(`unknown encoding "${f}"`);this._activeEncoding=f}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(f){if(f.col<0||f.col>=this._bufferService.cols||f.row<0||f.row>=this._bufferService.rows||f.button===4&&f.action===32||f.button===3&&f.action!==32||f.button!==4&&(f.action===2||f.action===3)||(f.col++,f.row++,f.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,f,this._activeEncoding==="SGR_PIXELS"))||!this._protocols[this._activeProtocol].restrict(f))return!1;let g=this._encodings[this._activeEncoding](f);return g&&(this._activeEncoding==="DEFAULT"?this._coreService.triggerBinaryEvent(g):this._coreService.triggerDataEvent(g,!0)),this._lastEvent=f,!0}explainEvents(f){return{down:!!(1&f),up:!!(2&f),drag:!!(4&f),move:!!(8&f),wheel:!!(16&f)}}_equalEvents(f,g,C){if(C){if(f.x!==g.x||f.y!==g.y)return!1}else if(f.col!==g.col||f.row!==g.row)return!1;return f.button===g.button&&f.action===g.action&&f.ctrl===g.ctrl&&f.alt===g.alt&&f.shift===g.shift}};i.CoreMouseService=h=o([u(0,l.IBufferService),u(1,l.ICoreService)],h)},6975:function(a,i,n){var o=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CoreService=void 0;let l=n(1439),_=n(8460),m=n(844),w=n(2585),p=Object.freeze({insertMode:!1}),c=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0}),d=i.CoreService=class extends m.Disposable{constructor(h,f,g){super(),this._bufferService=h,this._logService=f,this._optionsService=g,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new _.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new _.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new _.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new _.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,l.clone)(p),this.decPrivateModes=(0,l.clone)(c)}reset(){this.modes=(0,l.clone)(p),this.decPrivateModes=(0,l.clone)(c)}triggerDataEvent(h,f=!1){if(this._optionsService.rawOptions.disableStdin)return;let g=this._bufferService.buffer;f&&this._optionsService.rawOptions.scrollOnUserInput&&g.ybase!==g.ydisp&&this._onRequestScrollToBottom.fire(),f&&this._onUserInput.fire(),this._logService.debug(`sending data "${h}"`,(()=>h.split("").map((C=>C.charCodeAt(0))))),this._onData.fire(h)}triggerBinaryEvent(h){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${h}"`,(()=>h.split("").map((f=>f.charCodeAt(0))))),this._onBinary.fire(h))}};i.CoreService=d=o([u(0,w.IBufferService),u(1,w.ILogService),u(2,w.IOptionsService)],d)},9074:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DecorationService=void 0;let o=n(8055),u=n(8460),l=n(844),_=n(6106),m=0,w=0;class p extends l.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new _.SortedList((h=>h?.marker.line)),this._onDecorationRegistered=this.register(new u.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new u.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,l.toDisposable)((()=>this.reset())))}registerDecoration(h){if(h.marker.isDisposed)return;let f=new c(h);if(f){let g=f.marker.onDispose((()=>f.dispose()));f.onDispose((()=>{f&&(this._decorations.delete(f)&&this._onDecorationRemoved.fire(f),g.dispose())})),this._decorations.insert(f),this._onDecorationRegistered.fire(f)}return f}reset(){for(let h of this._decorations.values())h.dispose();this._decorations.clear()}*getDecorationsAtCell(h,f,g){let C=0,v=0;for(let x of this._decorations.getKeyIterator(f))C=x.options.x??0,v=C+(x.options.width??1),h>=C&&h<v&&(!g||(x.options.layer??"bottom")===g)&&(yield x)}forEachDecorationAtCell(h,f,g,C){this._decorations.forEachByKey(f,(v=>{m=v.options.x??0,w=m+(v.options.width??1),h>=m&&h<w&&(!g||(v.options.layer??"bottom")===g)&&C(v)}))}}i.DecorationService=p;class c extends l.Disposable{get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=o.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=o.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(h){super(),this.options=h,this.onRenderEmitter=this.register(new u.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new u.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=h.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.InstantiationService=i.ServiceCollection=void 0;let o=n(2585),u=n(8343);class l{constructor(...m){this._entries=new Map;for(let[w,p]of m)this.set(w,p)}set(m,w){let p=this._entries.get(m);return this._entries.set(m,w),p}forEach(m){for(let[w,p]of this._entries.entries())m(w,p)}has(m){return this._entries.has(m)}get(m){return this._entries.get(m)}}i.ServiceCollection=l,i.InstantiationService=class{constructor(){this._services=new l,this._services.set(o.IInstantiationService,this)}setService(_,m){this._services.set(_,m)}getService(_){return this._services.get(_)}createInstance(_,...m){let w=(0,u.getServiceDependencies)(_).sort(((d,h)=>d.index-h.index)),p=[];for(let d of w){let h=this._services.get(d.id);if(!h)throw new Error(`[createInstance] ${_.name} depends on UNKNOWN service ${d.id}.`);p.push(h)}let c=w.length>0?w[0].index:m.length;if(m.length!==c)throw new Error(`[createInstance] First service dependency of ${_.name} at position ${c+1} conflicts with ${m.length} static arguments`);return new _(...m,...p)}}},7866:function(a,i,n){var o=this&&this.__decorate||function(c,d,h,f){var g,C=arguments.length,v=C<3?d:f===null?f=Object.getOwnPropertyDescriptor(d,h):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(c,d,h,f);else for(var x=c.length-1;x>=0;x--)(g=c[x])&&(v=(C<3?g(v):C>3?g(d,h,v):g(d,h))||v);return C>3&&v&&Object.defineProperty(d,h,v),v},u=this&&this.__param||function(c,d){return function(h,f){d(h,f,c)}};Object.defineProperty(i,"__esModule",{value:!0}),i.traceCall=i.setTraceLogger=i.LogService=void 0;let l=n(844),_=n(2585),m={trace:_.LogLevelEnum.TRACE,debug:_.LogLevelEnum.DEBUG,info:_.LogLevelEnum.INFO,warn:_.LogLevelEnum.WARN,error:_.LogLevelEnum.ERROR,off:_.LogLevelEnum.OFF},w,p=i.LogService=class extends l.Disposable{get logLevel(){return this._logLevel}constructor(c){super(),this._optionsService=c,this._logLevel=_.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),w=this}_updateLogLevel(){this._logLevel=m[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(c){for(let d=0;d<c.length;d++)typeof c[d]=="function"&&(c[d]=c[d]())}_log(c,d,h){this._evalLazyOptionalParams(h),c.call(console,(this._optionsService.options.logger?"":"xterm.js: ")+d,...h)}trace(c,...d){this._logLevel<=_.LogLevelEnum.TRACE&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,c,d)}debug(c,...d){this._logLevel<=_.LogLevelEnum.DEBUG&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,c,d)}info(c,...d){this._logLevel<=_.LogLevelEnum.INFO&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,c,d)}warn(c,...d){this._logLevel<=_.LogLevelEnum.WARN&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,c,d)}error(c,...d){this._logLevel<=_.LogLevelEnum.ERROR&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,c,d)}};i.LogService=p=o([u(0,_.IOptionsService)],p),i.setTraceLogger=function(c){w=c},i.traceCall=function(c,d,h){if(typeof h.value!="function")throw new Error("not supported");let f=h.value;h.value=function(...g){if(w.logLevel!==_.LogLevelEnum.TRACE)return f.apply(this,g);w.trace(`GlyphRenderer#${f.name}(${g.map((v=>JSON.stringify(v))).join(", ")})`);let C=f.apply(this,g);return w.trace(`GlyphRenderer#${f.name} return`,C),C}}},7302:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.OptionsService=i.DEFAULT_OPTIONS=void 0;let o=n(8460),u=n(844),l=n(6114);i.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:l.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};let _=["normal","bold","100","200","300","400","500","600","700","800","900"];class m extends u.Disposable{constructor(p){super(),this._onOptionChange=this.register(new o.EventEmitter),this.onOptionChange=this._onOptionChange.event;let c={...i.DEFAULT_OPTIONS};for(let d in p)if(d in c)try{let h=p[d];c[d]=this._sanitizeAndValidateOption(d,h)}catch(h){console.error(h)}this.rawOptions=c,this.options={...c},this._setupOptions(),this.register((0,u.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(p,c){return this.onOptionChange((d=>{d===p&&c(this.rawOptions[p])}))}onMultipleOptionChange(p,c){return this.onOptionChange((d=>{p.indexOf(d)!==-1&&c()}))}_setupOptions(){let p=d=>{if(!(d in i.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);return this.rawOptions[d]},c=(d,h)=>{if(!(d in i.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);h=this._sanitizeAndValidateOption(d,h),this.rawOptions[d]!==h&&(this.rawOptions[d]=h,this._onOptionChange.fire(d))};for(let d in this.rawOptions){let h={get:p.bind(this,d),set:c.bind(this,d)};Object.defineProperty(this.options,d,h)}}_sanitizeAndValidateOption(p,c){switch(p){case"cursorStyle":if(c||(c=i.DEFAULT_OPTIONS[p]),!(function(d){return d==="block"||d==="underline"||d==="bar"})(c))throw new Error(`"${c}" is not a valid value for ${p}`);break;case"wordSeparator":c||(c=i.DEFAULT_OPTIONS[p]);break;case"fontWeight":case"fontWeightBold":if(typeof c=="number"&&1<=c&&c<=1e3)break;c=_.includes(c)?c:i.DEFAULT_OPTIONS[p];break;case"cursorWidth":c=Math.floor(c);case"lineHeight":case"tabStopWidth":if(c<1)throw new Error(`${p} cannot be less than 1, value: ${c}`);break;case"minimumContrastRatio":c=Math.max(1,Math.min(21,Math.round(10*c)/10));break;case"scrollback":if((c=Math.min(c,4294967295))<0)throw new Error(`${p} cannot be less than 0, value: ${c}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(c<=0)throw new Error(`${p} cannot be less than or equal to 0, value: ${c}`);break;case"rows":case"cols":if(!c&&c!==0)throw new Error(`${p} must be numeric, value: ${c}`);break;case"windowsPty":c=c??{}}return c}}i.OptionsService=m},2660:function(a,i,n){var o=this&&this.__decorate||function(m,w,p,c){var d,h=arguments.length,f=h<3?w:c===null?c=Object.getOwnPropertyDescriptor(w,p):c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(m,w,p,c);else for(var g=m.length-1;g>=0;g--)(d=m[g])&&(f=(h<3?d(f):h>3?d(w,p,f):d(w,p))||f);return h>3&&f&&Object.defineProperty(w,p,f),f},u=this&&this.__param||function(m,w){return function(p,c){w(p,c,m)}};Object.defineProperty(i,"__esModule",{value:!0}),i.OscLinkService=void 0;let l=n(2585),_=i.OscLinkService=class{constructor(m){this._bufferService=m,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(m){let w=this._bufferService.buffer;if(m.id===void 0){let g=w.addMarker(w.ybase+w.y),C={data:m,id:this._nextId++,lines:[g]};return g.onDispose((()=>this._removeMarkerFromLink(C,g))),this._dataByLinkId.set(C.id,C),C.id}let p=m,c=this._getEntryIdKey(p),d=this._entriesWithId.get(c);if(d)return this.addLineToLink(d.id,w.ybase+w.y),d.id;let h=w.addMarker(w.ybase+w.y),f={id:this._nextId++,key:this._getEntryIdKey(p),data:p,lines:[h]};return h.onDispose((()=>this._removeMarkerFromLink(f,h))),this._entriesWithId.set(f.key,f),this._dataByLinkId.set(f.id,f),f.id}addLineToLink(m,w){let p=this._dataByLinkId.get(m);if(p&&p.lines.every((c=>c.line!==w))){let c=this._bufferService.buffer.addMarker(w);p.lines.push(c),c.onDispose((()=>this._removeMarkerFromLink(p,c)))}}getLinkData(m){return this._dataByLinkId.get(m)?.data}_getEntryIdKey(m){return`${m.id};;${m.uri}`}_removeMarkerFromLink(m,w){let p=m.lines.indexOf(w);p!==-1&&(m.lines.splice(p,1),m.lines.length===0&&(m.data.id!==void 0&&this._entriesWithId.delete(m.key),this._dataByLinkId.delete(m.id)))}};i.OscLinkService=_=o([u(0,l.IBufferService)],_)},8343:(a,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.createDecorator=i.getServiceDependencies=i.serviceRegistry=void 0;let n="di$target",o="di$dependencies";i.serviceRegistry=new Map,i.getServiceDependencies=function(u){return u[o]||[]},i.createDecorator=function(u){if(i.serviceRegistry.has(u))return i.serviceRegistry.get(u);let l=function(_,m,w){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(p,c,d){c[n]===c?c[o].push({id:p,index:d}):(c[o]=[{id:p,index:d}],c[n]=c)})(l,_,w)};return l.toString=()=>u,i.serviceRegistry.set(u,l),l}},2585:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.IDecorationService=i.IUnicodeService=i.IOscLinkService=i.IOptionsService=i.ILogService=i.LogLevelEnum=i.IInstantiationService=i.ICharsetService=i.ICoreService=i.ICoreMouseService=i.IBufferService=void 0;let o=n(8343);var u;i.IBufferService=(0,o.createDecorator)("BufferService"),i.ICoreMouseService=(0,o.createDecorator)("CoreMouseService"),i.ICoreService=(0,o.createDecorator)("CoreService"),i.ICharsetService=(0,o.createDecorator)("CharsetService"),i.IInstantiationService=(0,o.createDecorator)("InstantiationService"),(function(l){l[l.TRACE=0]="TRACE",l[l.DEBUG=1]="DEBUG",l[l.INFO=2]="INFO",l[l.WARN=3]="WARN",l[l.ERROR=4]="ERROR",l[l.OFF=5]="OFF"})(u||(i.LogLevelEnum=u={})),i.ILogService=(0,o.createDecorator)("LogService"),i.IOptionsService=(0,o.createDecorator)("OptionsService"),i.IOscLinkService=(0,o.createDecorator)("OscLinkService"),i.IUnicodeService=(0,o.createDecorator)("UnicodeService"),i.IDecorationService=(0,o.createDecorator)("DecorationService")},1480:(a,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.UnicodeService=void 0;let o=n(8460),u=n(225);class l{static extractShouldJoin(m){return(1&m)!=0}static extractWidth(m){return m>>1&3}static extractCharKind(m){return m>>3}static createPropertyValue(m,w,p=!1){return(16777215&m)<<3|(3&w)<<1|(p?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new o.EventEmitter,this.onChange=this._onChange.event;let m=new u.UnicodeV6;this.register(m),this._active=m.version,this._activeProvider=m}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(m){if(!this._providers[m])throw new Error(`unknown Unicode version "${m}"`);this._active=m,this._activeProvider=this._providers[m],this._onChange.fire(m)}register(m){this._providers[m.version]=m}wcwidth(m){return this._activeProvider.wcwidth(m)}getStringCellWidth(m){let w=0,p=0,c=m.length;for(let d=0;d<c;++d){let h=m.charCodeAt(d);if(55296<=h&&h<=56319){if(++d>=c)return w+this.wcwidth(h);let C=m.charCodeAt(d);56320<=C&&C<=57343?h=1024*(h-55296)+C-56320+65536:w+=this.wcwidth(C)}let f=this.charProperties(h,p),g=l.extractWidth(f);l.extractShouldJoin(f)&&(g-=l.extractWidth(p)),w+=g,p=f}return w}charProperties(m,w){return this._activeProvider.charProperties(m,w)}}i.UnicodeService=l}},t={};function r(a){var i=t[a];if(i!==void 0)return i.exports;var n=t[a]={exports:{}};return e[a].call(n.exports,n,n.exports,r),n.exports}var s={};return(()=>{var a=s;Object.defineProperty(a,"__esModule",{value:!0}),a.Terminal=void 0;let i=r(9042),n=r(3236),o=r(844),u=r(5741),l=r(8285),_=r(7975),m=r(7090),w=["cols","rows"];class p extends o.Disposable{constructor(d){super(),this._core=this.register(new n.Terminal(d)),this._addonManager=this.register(new u.AddonManager),this._publicOptions={...this._core.options};let h=g=>this._core.options[g],f=(g,C)=>{this._checkReadonlyOptions(g),this._core.options[g]=C};for(let g in this._core.options){let C={get:h.bind(this,g),set:f.bind(this,g)};Object.defineProperty(this._publicOptions,g,C)}}_checkReadonlyOptions(d){if(w.includes(d))throw new Error(`Option "${d}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new _.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new m.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new l.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let d=this._core.coreService.decPrivateModes,h="none";switch(this._core.coreMouseService.activeProtocol){case"X10":h="x10";break;case"VT200":h="vt200";break;case"DRAG":h="drag";break;case"ANY":h="any"}return{applicationCursorKeysMode:d.applicationCursorKeys,applicationKeypadMode:d.applicationKeypad,bracketedPasteMode:d.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:h,originMode:d.origin,reverseWraparoundMode:d.reverseWraparound,sendFocusMode:d.sendFocus,wraparoundMode:d.wraparound}}get options(){return this._publicOptions}set options(d){for(let h in d)this._publicOptions[h]=d[h]}blur(){this._core.blur()}focus(){this._core.focus()}input(d,h=!0){this._core.input(d,h)}resize(d,h){this._verifyIntegers(d,h),this._core.resize(d,h)}open(d){this._core.open(d)}attachCustomKeyEventHandler(d){this._core.attachCustomKeyEventHandler(d)}attachCustomWheelEventHandler(d){this._core.attachCustomWheelEventHandler(d)}registerLinkProvider(d){return this._core.registerLinkProvider(d)}registerCharacterJoiner(d){return this._checkProposedApi(),this._core.registerCharacterJoiner(d)}deregisterCharacterJoiner(d){this._checkProposedApi(),this._core.deregisterCharacterJoiner(d)}registerMarker(d=0){return this._verifyIntegers(d),this._core.registerMarker(d)}registerDecoration(d){return this._checkProposedApi(),this._verifyPositiveIntegers(d.x??0,d.width??0,d.height??0),this._core.registerDecoration(d)}hasSelection(){return this._core.hasSelection()}select(d,h,f){this._verifyIntegers(d,h,f),this._core.select(d,h,f)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(d,h){this._verifyIntegers(d,h),this._core.selectLines(d,h)}dispose(){super.dispose()}scrollLines(d){this._verifyIntegers(d),this._core.scrollLines(d)}scrollPages(d){this._verifyIntegers(d),this._core.scrollPages(d)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(d){this._verifyIntegers(d),this._core.scrollToLine(d)}clear(){this._core.clear()}write(d,h){this._core.write(d,h)}writeln(d,h){this._core.write(d),this._core.write(`\r
9
- `,h)}paste(d){this._core.paste(d)}refresh(d,h){this._verifyIntegers(d,h),this._core.refresh(d,h)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(d){this._addonManager.loadAddon(this,d)}static get strings(){return i}_verifyIntegers(...d){for(let h of d)if(h===1/0||isNaN(h)||h%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...d){for(let h of d)if(h&&(h===1/0||isNaN(h)||h%1!=0||h<0))throw new Error("This API only accepts positive integers")}}a.Terminal=p})(),s})()))});var Lo=Co((Ci,As)=>{(function(e,t){typeof Ci=="object"&&typeof As=="object"?As.exports=t():typeof define=="function"&&define.amd?define([],t):typeof Ci=="object"?Ci.FitAddon=t():e.FitAddon=t()})(self,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(r){this._terminal=r}dispose(){}fit(){let r=this.proposeDimensions();if(!r||!this._terminal||isNaN(r.cols)||isNaN(r.rows))return;let s=this._terminal._core;this._terminal.rows===r.rows&&this._terminal.cols===r.cols||(s._renderService.clear(),this._terminal.resize(r.cols,r.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let r=this._terminal._core,s=r._renderService.dimensions;if(s.css.cell.width===0||s.css.cell.height===0)return;let a=this._terminal.options.scrollback===0?0:r.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),n=parseInt(i.getPropertyValue("height")),o=Math.max(0,parseInt(i.getPropertyValue("width"))),u=window.getComputedStyle(this._terminal.element),l=n-(parseInt(u.getPropertyValue("padding-top"))+parseInt(u.getPropertyValue("padding-bottom"))),_=o-(parseInt(u.getPropertyValue("padding-right"))+parseInt(u.getPropertyValue("padding-left")))-a;return{cols:Math.max(2,Math.floor(_/s.css.cell.width)),rows:Math.max(1,Math.floor(l/s.css.cell.height))}}}})(),e})()))});var Xl=xo(Eo(),1),Zl=xo(Lo(),1);var xh=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?To.isErrorNoTelemetry(e)?new To(e.message+`
7
+ `)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(b){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&b&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(b){let E=this._getMouseBufferCoords(b),O=this._model.finalSelectionStart,B=this._model.finalSelectionEnd;return!!(O&&B&&E)&&this._areCoordsInSelection(E,O,B)}isCellInSelection(b,E){let O=this._model.finalSelectionStart,B=this._model.finalSelectionEnd;return!(!O||!B)&&this._areCoordsInSelection([b,E],O,B)}_areCoordsInSelection(b,E,O){return b[1]>E[1]&&b[1]<O[1]||E[1]===O[1]&&b[1]===E[1]&&b[0]>=E[0]&&b[0]<O[0]||E[1]<O[1]&&b[1]===O[1]&&b[0]<O[0]||E[1]<O[1]&&b[1]===E[1]&&b[0]>=E[0]}_selectWordAtCursor(b,E){let O=this._linkifier.currentLink?.link?.range;if(O)return this._model.selectionStart=[O.start.x-1,O.start.y-1],this._model.selectionStartLength=(0,h.getRangeLength)(O,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let B=this._getMouseBufferCoords(b);return!!B&&(this._selectWordAt(B,E),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(b,E){this._model.clearSelection(),b=Math.max(b,0),E=Math.min(E,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,b],this._model.selectionEnd=[this._bufferService.cols,E],this.refresh(),this._onSelectionChange.fire()}_handleTrim(b){this._model.handleTrim(b)&&this.refresh()}_getMouseBufferCoords(b){let E=this._mouseService.getCoords(b,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(E)return E[0]--,E[1]--,E[1]+=this._bufferService.buffer.ydisp,E}_getMouseEventScrollAmount(b){let E=(0,l.getCoordsRelativeToElement)(this._coreBrowserService.window,b,this._screenElement)[1],O=this._renderService.dimensions.css.canvas.height;return E>=0&&E<=O?0:(E>O&&(E-=O),E=Math.min(Math.max(E,-50),50),E/=50,E/Math.abs(E)+Math.round(14*E))}shouldForceSelection(b){return d.isMac?b.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:b.shiftKey}handleMouseDown(b){if(this._mouseDownTimeStamp=b.timeStamp,(b.button!==2||!this.hasSelection)&&b.button===0){if(!this._enabled){if(!this.shouldForceSelection(b))return;b.stopPropagation()}b.preventDefault(),this._dragScrollAmount=0,this._enabled&&b.shiftKey?this._handleIncrementalClick(b):b.detail===1?this._handleSingleClick(b):b.detail===2?this._handleDoubleClick(b):b.detail===3&&this._handleTripleClick(b),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(b){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(b))}_handleSingleClick(b){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(b)?3:0,this._model.selectionStart=this._getMouseBufferCoords(b),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let E=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);E&&E.length!==this._model.selectionStart[0]&&E.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(b){this._selectWordAtCursor(b,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(b){let E=this._getMouseBufferCoords(b);E&&(this._activeSelectionMode=2,this._selectLineAt(E[1]))}shouldColumnSelect(b){return b.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(b){if(b.stopImmediatePropagation(),!this._model.selectionStart)return;let E=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(b),!this._model.selectionEnd)return void this.refresh(!0);this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(b),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let O=this._bufferService.buffer;if(this._model.selectionEnd[1]<O.lines.length){let B=O.lines.get(this._model.selectionEnd[1]);B&&B.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}E&&E[0]===this._model.selectionEnd[0]&&E[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let b=this._bufferService.buffer;this._dragScrollAmount>0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(b.ydisp+this._bufferService.rows,b.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=b.ydisp),this.refresh()}}_handleMouseUp(b){let E=b.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&E<500&&b.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let O=this._mouseService.getCoords(b,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(O&&O[0]!==void 0&&O[1]!==void 0){let B=(0,_.moveToCellSequence)(O[0]-1,O[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(B,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let b=this._model.finalSelectionStart,E=this._model.finalSelectionEnd,O=!(!b||!E||b[0]===E[0]&&b[1]===E[1]);O?b&&E&&(this._oldSelectionStart&&this._oldSelectionEnd&&b[0]===this._oldSelectionStart[0]&&b[1]===this._oldSelectionStart[1]&&E[0]===this._oldSelectionEnd[0]&&E[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(b,E,O)):this._oldHasSelection&&this._fireOnSelectionChange(b,E,O)}_fireOnSelectionChange(b,E,O){this._oldSelectionStart=b,this._oldSelectionEnd=E,this._oldHasSelection=O,this._onSelectionChange.fire()}_handleBufferActivate(b){this.clearSelection(),this._trimListener.dispose(),this._trimListener=b.activeBuffer.lines.onTrim((E=>this._handleTrim(E)))}_convertViewportColToCharacterIndex(b,E){let O=E;for(let B=0;E>=B;B++){let N=b.loadCell(B,this._workCell).getChars().length;this._workCell.getWidth()===0?O--:N>1&&E!==B&&(O+=N-1)}return O}setSelection(b,E,O){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[b,E],this._model.selectionStartLength=O,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(b){this._isClickInSelection(b)||(this._selectWordAtCursor(b,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(b,E,O=!0,B=!0){if(b[0]>=this._bufferService.cols)return;let N=this._bufferService.buffer,A=N.lines.get(b[1]);if(!A)return;let K=N.translateBufferLineToString(b[1],!1),P=this._convertViewportColToCharacterIndex(A,b[0]),D=P,H=b[0]-P,I=0,S=0,T=0,k=0;if(K.charAt(P)===" "){for(;P>0&&K.charAt(P-1)===" ";)P--;for(;D<K.length&&K.charAt(D+1)===" ";)D++}else{let V=b[0],X=b[0];A.getWidth(V)===0&&(I++,V--),A.getWidth(X)===2&&(S++,X++);let Z=A.getString(X).length;for(Z>1&&(k+=Z-1,D+=Z-1);V>0&&P>0&&!this._isCharWordSeparator(A.loadCell(V-1,this._workCell));){A.loadCell(V-1,this._workCell);let W=this._workCell.getChars().length;this._workCell.getWidth()===0?(I++,V--):W>1&&(T+=W-1,P-=W-1),P--,V--}for(;X<A.length&&D+1<K.length&&!this._isCharWordSeparator(A.loadCell(X+1,this._workCell));){A.loadCell(X+1,this._workCell);let W=this._workCell.getChars().length;this._workCell.getWidth()===2?(S++,X++):W>1&&(k+=W-1,D+=W-1),D++,X++}}D++;let R=P+H-I+T,z=Math.min(this._bufferService.cols,D-P+I+S-T-k);if(E||K.slice(P,D).trim()!==""){if(O&&R===0&&A.getCodePoint(0)!==32){let V=N.lines.get(b[1]-1);if(V&&A.isWrapped&&V.getCodePoint(this._bufferService.cols-1)!==32){let X=this._getWordAt([this._bufferService.cols-1,b[1]-1],!1,!0,!1);if(X){let Z=this._bufferService.cols-X.start;R-=Z,z+=Z}}}if(B&&R+z===this._bufferService.cols&&A.getCodePoint(this._bufferService.cols-1)!==32){let V=N.lines.get(b[1]+1);if(V?.isWrapped&&V.getCodePoint(0)!==32){let X=this._getWordAt([0,b[1]+1],!1,!1,!0);X&&(z+=X.length)}}return{start:R,length:z}}}_selectWordAt(b,E){let O=this._getWordAt(b,E);if(O){for(;O.start<0;)O.start+=this._bufferService.cols,b[1]--;this._model.selectionStart=[O.start,b[1]],this._model.selectionStartLength=O.length}}_selectToWordAt(b){let E=this._getWordAt(b,!0);if(E){let O=b[1];for(;E.start<0;)E.start+=this._bufferService.cols,O--;if(!this._model.areSelectionValuesReversed())for(;E.start+E.length>this._bufferService.cols;)E.length-=this._bufferService.cols,O++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?E.start:E.start+E.length,O]}}_isCharWordSeparator(b){return b.getWidth()!==0&&this._optionsService.rawOptions.wordSeparator.indexOf(b.getChars())>=0}_selectLineAt(b){let E=this._bufferService.buffer.getWrappedRangeForLine(b),O={start:{x:0,y:E.first},end:{x:this._bufferService.cols-1,y:E.last}};this._model.selectionStart=[0,E.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,h.getRangeLength)(O,this._bufferService.cols)}};i.SelectionService=x=a([u(3,g.IBufferService),u(4,g.ICoreService),u(5,y.IMouseService),u(6,g.IOptionsService),u(7,y.IRenderService),u(8,y.ICoreBrowserService)],x)},4725:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ILinkProviderService=i.IThemeService=i.ICharacterJoinerService=i.ISelectionService=i.IRenderService=i.IMouseService=i.ICoreBrowserService=i.ICharSizeService=void 0;let a=n(8343);i.ICharSizeService=(0,a.createDecorator)("CharSizeService"),i.ICoreBrowserService=(0,a.createDecorator)("CoreBrowserService"),i.IMouseService=(0,a.createDecorator)("MouseService"),i.IRenderService=(0,a.createDecorator)("RenderService"),i.ISelectionService=(0,a.createDecorator)("SelectionService"),i.ICharacterJoinerService=(0,a.createDecorator)("CharacterJoinerService"),i.IThemeService=(0,a.createDecorator)("ThemeService"),i.ILinkProviderService=(0,a.createDecorator)("LinkProviderService")},6731:function(o,i,n){var a=this&&this.__decorate||function(x,b,E,O){var B,N=arguments.length,A=N<3?b:O===null?O=Object.getOwnPropertyDescriptor(b,E):O;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(x,b,E,O);else for(var K=x.length-1;K>=0;K--)(B=x[K])&&(A=(N<3?B(A):N>3?B(b,E,A):B(b,E))||A);return N>3&&A&&Object.defineProperty(b,E,A),A},u=this&&this.__param||function(x,b){return function(E,O){b(E,O,x)}};Object.defineProperty(i,"__esModule",{value:!0}),i.ThemeService=i.DEFAULT_ANSI_COLORS=void 0;let l=n(7239),_=n(8055),m=n(8460),y=n(844),p=n(2585),c=_.css.toColor("#ffffff"),d=_.css.toColor("#000000"),h=_.css.toColor("#ffffff"),f=_.css.toColor("#000000"),g={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};i.DEFAULT_ANSI_COLORS=Object.freeze((()=>{let x=[_.css.toColor("#2e3436"),_.css.toColor("#cc0000"),_.css.toColor("#4e9a06"),_.css.toColor("#c4a000"),_.css.toColor("#3465a4"),_.css.toColor("#75507b"),_.css.toColor("#06989a"),_.css.toColor("#d3d7cf"),_.css.toColor("#555753"),_.css.toColor("#ef2929"),_.css.toColor("#8ae234"),_.css.toColor("#fce94f"),_.css.toColor("#729fcf"),_.css.toColor("#ad7fa8"),_.css.toColor("#34e2e2"),_.css.toColor("#eeeeec")],b=[0,95,135,175,215,255];for(let E=0;E<216;E++){let O=b[E/36%6|0],B=b[E/6%6|0],N=b[E%6];x.push({css:_.channels.toCss(O,B,N),rgba:_.channels.toRgba(O,B,N)})}for(let E=0;E<24;E++){let O=8+10*E;x.push({css:_.channels.toCss(O,O,O),rgba:_.channels.toRgba(O,O,O)})}return x})());let C=i.ThemeService=class extends y.Disposable{get colors(){return this._colors}constructor(x){super(),this._optionsService=x,this._contrastCache=new l.ColorContrastCache,this._halfContrastCache=new l.ColorContrastCache,this._onChangeColors=this.register(new m.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:c,background:d,cursor:h,cursorAccent:f,selectionForeground:void 0,selectionBackgroundTransparent:g,selectionBackgroundOpaque:_.color.blend(d,g),selectionInactiveBackgroundTransparent:g,selectionInactiveBackgroundOpaque:_.color.blend(d,g),ansi:i.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange("theme",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(x={}){let b=this._colors;if(b.foreground=v(x.foreground,c),b.background=v(x.background,d),b.cursor=v(x.cursor,h),b.cursorAccent=v(x.cursorAccent,f),b.selectionBackgroundTransparent=v(x.selectionBackground,g),b.selectionBackgroundOpaque=_.color.blend(b.background,b.selectionBackgroundTransparent),b.selectionInactiveBackgroundTransparent=v(x.selectionInactiveBackground,b.selectionBackgroundTransparent),b.selectionInactiveBackgroundOpaque=_.color.blend(b.background,b.selectionInactiveBackgroundTransparent),b.selectionForeground=x.selectionForeground?v(x.selectionForeground,_.NULL_COLOR):void 0,b.selectionForeground===_.NULL_COLOR&&(b.selectionForeground=void 0),_.color.isOpaque(b.selectionBackgroundTransparent)&&(b.selectionBackgroundTransparent=_.color.opacity(b.selectionBackgroundTransparent,.3)),_.color.isOpaque(b.selectionInactiveBackgroundTransparent)&&(b.selectionInactiveBackgroundTransparent=_.color.opacity(b.selectionInactiveBackgroundTransparent,.3)),b.ansi=i.DEFAULT_ANSI_COLORS.slice(),b.ansi[0]=v(x.black,i.DEFAULT_ANSI_COLORS[0]),b.ansi[1]=v(x.red,i.DEFAULT_ANSI_COLORS[1]),b.ansi[2]=v(x.green,i.DEFAULT_ANSI_COLORS[2]),b.ansi[3]=v(x.yellow,i.DEFAULT_ANSI_COLORS[3]),b.ansi[4]=v(x.blue,i.DEFAULT_ANSI_COLORS[4]),b.ansi[5]=v(x.magenta,i.DEFAULT_ANSI_COLORS[5]),b.ansi[6]=v(x.cyan,i.DEFAULT_ANSI_COLORS[6]),b.ansi[7]=v(x.white,i.DEFAULT_ANSI_COLORS[7]),b.ansi[8]=v(x.brightBlack,i.DEFAULT_ANSI_COLORS[8]),b.ansi[9]=v(x.brightRed,i.DEFAULT_ANSI_COLORS[9]),b.ansi[10]=v(x.brightGreen,i.DEFAULT_ANSI_COLORS[10]),b.ansi[11]=v(x.brightYellow,i.DEFAULT_ANSI_COLORS[11]),b.ansi[12]=v(x.brightBlue,i.DEFAULT_ANSI_COLORS[12]),b.ansi[13]=v(x.brightMagenta,i.DEFAULT_ANSI_COLORS[13]),b.ansi[14]=v(x.brightCyan,i.DEFAULT_ANSI_COLORS[14]),b.ansi[15]=v(x.brightWhite,i.DEFAULT_ANSI_COLORS[15]),x.extendedAnsi){let E=Math.min(b.ansi.length-16,x.extendedAnsi.length);for(let O=0;O<E;O++)b.ansi[O+16]=v(x.extendedAnsi[O],i.DEFAULT_ANSI_COLORS[O+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(x){this._restoreColor(x),this._onChangeColors.fire(this.colors)}_restoreColor(x){if(x!==void 0)switch(x){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[x]=this._restoreColors.ansi[x]}else for(let b=0;b<this._restoreColors.ansi.length;++b)this._colors.ansi[b]=this._restoreColors.ansi[b]}modifyColors(x){x(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function v(x,b){if(x!==void 0)try{return _.css.toColor(x)}catch{}return b}i.ThemeService=C=a([u(0,p.IOptionsService)],C)},6349:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CircularList=void 0;let a=n(8460),u=n(844);class l extends u.Disposable{constructor(m){super(),this._maxLength=m,this.onDeleteEmitter=this.register(new a.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new a.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new a.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(m){if(this._maxLength===m)return;let y=new Array(m);for(let p=0;p<Math.min(m,this.length);p++)y[p]=this._array[this._getCyclicIndex(p)];this._array=y,this._maxLength=m,this._startIndex=0}get length(){return this._length}set length(m){if(m>this._length)for(let y=this._length;y<m;y++)this._array[y]=void 0;this._length=m}get(m){return this._array[this._getCyclicIndex(m)]}set(m,y){this._array[this._getCyclicIndex(m)]=y}push(m){this._array[this._getCyclicIndex(this._length)]=m,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(m,y,...p){if(y){for(let c=m;c<this._length-y;c++)this._array[this._getCyclicIndex(c)]=this._array[this._getCyclicIndex(c+y)];this._length-=y,this.onDeleteEmitter.fire({index:m,amount:y})}for(let c=this._length-1;c>=m;c--)this._array[this._getCyclicIndex(c+p.length)]=this._array[this._getCyclicIndex(c)];for(let c=0;c<p.length;c++)this._array[this._getCyclicIndex(m+c)]=p[c];if(p.length&&this.onInsertEmitter.fire({index:m,amount:p.length}),this._length+p.length>this._maxLength){let c=this._length+p.length-this._maxLength;this._startIndex+=c,this._length=this._maxLength,this.onTrimEmitter.fire(c)}else this._length+=p.length}trimStart(m){m>this._length&&(m=this._length),this._startIndex+=m,this._length-=m,this.onTrimEmitter.fire(m)}shiftElements(m,y,p){if(!(y<=0)){if(m<0||m>=this._length)throw new Error("start argument out of range");if(m+p<0)throw new Error("Cannot shift elements in list beyond index 0");if(p>0){for(let d=y-1;d>=0;d--)this.set(m+d+p,this.get(m+d));let c=m+y+p-this._length;if(c>0)for(this._length+=c;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let c=0;c<y;c++)this.set(m+c+p,this.get(m+c))}}_getCyclicIndex(m){return(this._startIndex+m)%this._maxLength}}i.CircularList=l},1439:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.clone=void 0,i.clone=function n(a,u=5){if(typeof a!="object")return a;let l=Array.isArray(a)?[]:{};for(let _ in a)l[_]=u<=1?a[_]:a[_]&&n(a[_],u-1);return l}},8055:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.contrastRatio=i.toPaddedHex=i.rgba=i.rgb=i.css=i.color=i.channels=i.NULL_COLOR=void 0;let n=0,a=0,u=0,l=0;var _,m,y,p,c;function d(f){let g=f.toString(16);return g.length<2?"0"+g:g}function h(f,g){return f<g?(g+.05)/(f+.05):(f+.05)/(g+.05)}i.NULL_COLOR={css:"#00000000",rgba:0},(function(f){f.toCss=function(g,C,v,x){return x!==void 0?`#${d(g)}${d(C)}${d(v)}${d(x)}`:`#${d(g)}${d(C)}${d(v)}`},f.toRgba=function(g,C,v,x=255){return(g<<24|C<<16|v<<8|x)>>>0},f.toColor=function(g,C,v,x){return{css:f.toCss(g,C,v,x),rgba:f.toRgba(g,C,v,x)}}})(_||(i.channels=_={})),(function(f){function g(C,v){return l=Math.round(255*v),[n,a,u]=c.toChannels(C.rgba),{css:_.toCss(n,a,u,l),rgba:_.toRgba(n,a,u,l)}}f.blend=function(C,v){if(l=(255&v.rgba)/255,l===1)return{css:v.css,rgba:v.rgba};let x=v.rgba>>24&255,b=v.rgba>>16&255,E=v.rgba>>8&255,O=C.rgba>>24&255,B=C.rgba>>16&255,N=C.rgba>>8&255;return n=O+Math.round((x-O)*l),a=B+Math.round((b-B)*l),u=N+Math.round((E-N)*l),{css:_.toCss(n,a,u),rgba:_.toRgba(n,a,u)}},f.isOpaque=function(C){return(255&C.rgba)==255},f.ensureContrastRatio=function(C,v,x){let b=c.ensureContrastRatio(C.rgba,v.rgba,x);if(b)return _.toColor(b>>24&255,b>>16&255,b>>8&255)},f.opaque=function(C){let v=(255|C.rgba)>>>0;return[n,a,u]=c.toChannels(v),{css:_.toCss(n,a,u),rgba:v}},f.opacity=g,f.multiplyOpacity=function(C,v){return l=255&C.rgba,g(C,l*v/255)},f.toColorRGB=function(C){return[C.rgba>>24&255,C.rgba>>16&255,C.rgba>>8&255]}})(m||(i.color=m={})),(function(f){let g,C;try{let v=document.createElement("canvas");v.width=1,v.height=1;let x=v.getContext("2d",{willReadFrequently:!0});x&&(g=x,g.globalCompositeOperation="copy",C=g.createLinearGradient(0,0,1,1))}catch{}f.toColor=function(v){if(v.match(/#[\da-f]{3,8}/i))switch(v.length){case 4:return n=parseInt(v.slice(1,2).repeat(2),16),a=parseInt(v.slice(2,3).repeat(2),16),u=parseInt(v.slice(3,4).repeat(2),16),_.toColor(n,a,u);case 5:return n=parseInt(v.slice(1,2).repeat(2),16),a=parseInt(v.slice(2,3).repeat(2),16),u=parseInt(v.slice(3,4).repeat(2),16),l=parseInt(v.slice(4,5).repeat(2),16),_.toColor(n,a,u,l);case 7:return{css:v,rgba:(parseInt(v.slice(1),16)<<8|255)>>>0};case 9:return{css:v,rgba:parseInt(v.slice(1),16)>>>0}}let x=v.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(x)return n=parseInt(x[1]),a=parseInt(x[2]),u=parseInt(x[3]),l=Math.round(255*(x[5]===void 0?1:parseFloat(x[5]))),_.toColor(n,a,u,l);if(!g||!C)throw new Error("css.toColor: Unsupported css format");if(g.fillStyle=C,g.fillStyle=v,typeof g.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(g.fillRect(0,0,1,1),[n,a,u,l]=g.getImageData(0,0,1,1).data,l!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:_.toRgba(n,a,u,l),css:v}}})(y||(i.css=y={})),(function(f){function g(C,v,x){let b=C/255,E=v/255,O=x/255;return .2126*(b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4))+.7152*(E<=.03928?E/12.92:Math.pow((E+.055)/1.055,2.4))+.0722*(O<=.03928?O/12.92:Math.pow((O+.055)/1.055,2.4))}f.relativeLuminance=function(C){return g(C>>16&255,C>>8&255,255&C)},f.relativeLuminance2=g})(p||(i.rgb=p={})),(function(f){function g(v,x,b){let E=v>>24&255,O=v>>16&255,B=v>>8&255,N=x>>24&255,A=x>>16&255,K=x>>8&255,P=h(p.relativeLuminance2(N,A,K),p.relativeLuminance2(E,O,B));for(;P<b&&(N>0||A>0||K>0);)N-=Math.max(0,Math.ceil(.1*N)),A-=Math.max(0,Math.ceil(.1*A)),K-=Math.max(0,Math.ceil(.1*K)),P=h(p.relativeLuminance2(N,A,K),p.relativeLuminance2(E,O,B));return(N<<24|A<<16|K<<8|255)>>>0}function C(v,x,b){let E=v>>24&255,O=v>>16&255,B=v>>8&255,N=x>>24&255,A=x>>16&255,K=x>>8&255,P=h(p.relativeLuminance2(N,A,K),p.relativeLuminance2(E,O,B));for(;P<b&&(N<255||A<255||K<255);)N=Math.min(255,N+Math.ceil(.1*(255-N))),A=Math.min(255,A+Math.ceil(.1*(255-A))),K=Math.min(255,K+Math.ceil(.1*(255-K))),P=h(p.relativeLuminance2(N,A,K),p.relativeLuminance2(E,O,B));return(N<<24|A<<16|K<<8|255)>>>0}f.blend=function(v,x){if(l=(255&x)/255,l===1)return x;let b=x>>24&255,E=x>>16&255,O=x>>8&255,B=v>>24&255,N=v>>16&255,A=v>>8&255;return n=B+Math.round((b-B)*l),a=N+Math.round((E-N)*l),u=A+Math.round((O-A)*l),_.toRgba(n,a,u)},f.ensureContrastRatio=function(v,x,b){let E=p.relativeLuminance(v>>8),O=p.relativeLuminance(x>>8);if(h(E,O)<b){if(O<E){let A=g(v,x,b),K=h(E,p.relativeLuminance(A>>8));if(K<b){let P=C(v,x,b);return K>h(E,p.relativeLuminance(P>>8))?A:P}return A}let B=C(v,x,b),N=h(E,p.relativeLuminance(B>>8));if(N<b){let A=g(v,x,b);return N>h(E,p.relativeLuminance(A>>8))?B:A}return B}},f.reduceLuminance=g,f.increaseLuminance=C,f.toChannels=function(v){return[v>>24&255,v>>16&255,v>>8&255,255&v]}})(c||(i.rgba=c={})),i.toPaddedHex=d,i.contrastRatio=h},8969:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CoreTerminal=void 0;let a=n(844),u=n(2585),l=n(4348),_=n(7866),m=n(744),y=n(7302),p=n(6975),c=n(8460),d=n(1753),h=n(1480),f=n(7994),g=n(9282),C=n(5435),v=n(5981),x=n(2660),b=!1;class E extends a.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new c.EventEmitter),this._onScroll.event((B=>{this._onScrollApi?.fire(B.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(B){for(let N in B)this.optionsService.options[N]=B[N]}constructor(B){super(),this._windowsWrappingHeuristics=this.register(new a.MutableDisposable),this._onBinary=this.register(new c.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new c.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new c.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new c.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new c.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new c.EventEmitter),this._instantiationService=new l.InstantiationService,this.optionsService=this.register(new y.OptionsService(B)),this._instantiationService.setService(u.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(m.BufferService)),this._instantiationService.setService(u.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(_.LogService)),this._instantiationService.setService(u.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(p.CoreService)),this._instantiationService.setService(u.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(u.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(h.UnicodeService)),this._instantiationService.setService(u.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(f.CharsetService),this._instantiationService.setService(u.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(x.OscLinkService),this._instantiationService.setService(u.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new C.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,c.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,c.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,c.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,c.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((N=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((N=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new v.WriteBuffer(((N,A)=>this._inputHandler.parse(N,A)))),this.register((0,c.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(B,N){this._writeBuffer.write(B,N)}writeSync(B,N){this._logService.logLevel<=u.LogLevelEnum.WARN&&!b&&(this._logService.warn("writeSync is unreliable and will be removed soon."),b=!0),this._writeBuffer.writeSync(B,N)}input(B,N=!0){this.coreService.triggerDataEvent(B,N)}resize(B,N){isNaN(B)||isNaN(N)||(B=Math.max(B,m.MINIMUM_COLS),N=Math.max(N,m.MINIMUM_ROWS),this._bufferService.resize(B,N))}scroll(B,N=!1){this._bufferService.scroll(B,N)}scrollLines(B,N,A){this._bufferService.scrollLines(B,N,A)}scrollPages(B){this.scrollLines(B*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(B){let N=B-this._bufferService.buffer.ydisp;N!==0&&this.scrollLines(N)}registerEscHandler(B,N){return this._inputHandler.registerEscHandler(B,N)}registerDcsHandler(B,N){return this._inputHandler.registerDcsHandler(B,N)}registerCsiHandler(B,N){return this._inputHandler.registerCsiHandler(B,N)}registerOscHandler(B,N){return this._inputHandler.registerOscHandler(B,N)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let B=!1,N=this.optionsService.rawOptions.windowsPty;N&&N.buildNumber!==void 0&&N.buildNumber!==void 0?B=N.backend==="conpty"&&N.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(B=!0),B?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let B=[];B.push(this.onLineFeed(g.updateWindowsModeWrappedState.bind(null,this._bufferService))),B.push(this.registerCsiHandler({final:"H"},(()=>((0,g.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,a.toDisposable)((()=>{for(let N of B)N.dispose()}))}}}i.CoreTerminal=E},8460:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.runAndSubscribe=i.forwardEvent=i.EventEmitter=void 0,i.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=n=>(this._listeners.push(n),{dispose:()=>{if(!this._disposed){for(let a=0;a<this._listeners.length;a++)if(this._listeners[a]===n)return void this._listeners.splice(a,1)}}})),this._event}fire(n,a){let u=[];for(let l=0;l<this._listeners.length;l++)u.push(this._listeners[l]);for(let l=0;l<u.length;l++)u[l].call(void 0,n,a)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},i.forwardEvent=function(n,a){return n((u=>a.fire(u)))},i.runAndSubscribe=function(n,a){return a(void 0),n((u=>a(u)))}},5435:function(o,i,n){var a=this&&this.__decorate||function(I,S,T,k){var R,z=arguments.length,V=z<3?S:k===null?k=Object.getOwnPropertyDescriptor(S,T):k;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V=Reflect.decorate(I,S,T,k);else for(var X=I.length-1;X>=0;X--)(R=I[X])&&(V=(z<3?R(V):z>3?R(S,T,V):R(S,T))||V);return z>3&&V&&Object.defineProperty(S,T,V),V},u=this&&this.__param||function(I,S){return function(T,k){S(T,k,I)}};Object.defineProperty(i,"__esModule",{value:!0}),i.InputHandler=i.WindowsOptionsReportType=void 0;let l=n(2584),_=n(7116),m=n(2015),y=n(844),p=n(482),c=n(8437),d=n(8460),h=n(643),f=n(511),g=n(3734),C=n(2585),v=n(1480),x=n(6242),b=n(6351),E=n(5941),O={"(":0,")":1,"*":2,"+":3,"-":1,".":2},B=131072;function N(I,S){if(I>24)return S.setWinLines||!1;switch(I){case 1:return!!S.restoreWin;case 2:return!!S.minimizeWin;case 3:return!!S.setWinPosition;case 4:return!!S.setWinSizePixels;case 5:return!!S.raiseWin;case 6:return!!S.lowerWin;case 7:return!!S.refreshWin;case 8:return!!S.setWinSizeChars;case 9:return!!S.maximizeWin;case 10:return!!S.fullscreenWin;case 11:return!!S.getWinState;case 13:return!!S.getWinPosition;case 14:return!!S.getWinSizePixels;case 15:return!!S.getScreenSizePixels;case 16:return!!S.getCellSizePixels;case 18:return!!S.getWinSizeChars;case 19:return!!S.getScreenSizeChars;case 20:return!!S.getIconTitle;case 21:return!!S.getWinTitle;case 22:return!!S.pushTitle;case 23:return!!S.popTitle;case 24:return!!S.setWinLines}return!1}var A;(function(I){I[I.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",I[I.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"})(A||(i.WindowsOptionsReportType=A={}));let K=0;class P extends y.Disposable{getAttrData(){return this._curAttrData}constructor(S,T,k,R,z,V,X,Z,W=new m.EscapeSequenceParser){super(),this._bufferService=S,this._charsetService=T,this._coreService=k,this._logService=R,this._optionsService=z,this._oscLinkService=V,this._coreMouseService=X,this._unicodeService=Z,this._parser=W,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new p.StringToUtf32,this._utf8Decoder=new p.Utf8ToUtf32,this._workCell=new f.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=c.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=c.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new D(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((L=>this._activeBuffer=L.activeBuffer))),this._parser.setCsiHandlerFallback(((L,F)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(L),params:F.toArray()})})),this._parser.setEscHandlerFallback((L=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(L)})})),this._parser.setExecuteHandlerFallback((L=>{this._logService.debug("Unknown EXECUTE code: ",{code:L})})),this._parser.setOscHandlerFallback(((L,F,$)=>{this._logService.debug("Unknown OSC code: ",{identifier:L,action:F,data:$})})),this._parser.setDcsHandlerFallback(((L,F,$)=>{F==="HOOK"&&($=$.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(L),action:F,payload:$})})),this._parser.setPrintHandler(((L,F,$)=>this.print(L,F,$))),this._parser.registerCsiHandler({final:"@"},(L=>this.insertChars(L))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(L=>this.scrollLeft(L))),this._parser.registerCsiHandler({final:"A"},(L=>this.cursorUp(L))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(L=>this.scrollRight(L))),this._parser.registerCsiHandler({final:"B"},(L=>this.cursorDown(L))),this._parser.registerCsiHandler({final:"C"},(L=>this.cursorForward(L))),this._parser.registerCsiHandler({final:"D"},(L=>this.cursorBackward(L))),this._parser.registerCsiHandler({final:"E"},(L=>this.cursorNextLine(L))),this._parser.registerCsiHandler({final:"F"},(L=>this.cursorPrecedingLine(L))),this._parser.registerCsiHandler({final:"G"},(L=>this.cursorCharAbsolute(L))),this._parser.registerCsiHandler({final:"H"},(L=>this.cursorPosition(L))),this._parser.registerCsiHandler({final:"I"},(L=>this.cursorForwardTab(L))),this._parser.registerCsiHandler({final:"J"},(L=>this.eraseInDisplay(L,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(L=>this.eraseInDisplay(L,!0))),this._parser.registerCsiHandler({final:"K"},(L=>this.eraseInLine(L,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(L=>this.eraseInLine(L,!0))),this._parser.registerCsiHandler({final:"L"},(L=>this.insertLines(L))),this._parser.registerCsiHandler({final:"M"},(L=>this.deleteLines(L))),this._parser.registerCsiHandler({final:"P"},(L=>this.deleteChars(L))),this._parser.registerCsiHandler({final:"S"},(L=>this.scrollUp(L))),this._parser.registerCsiHandler({final:"T"},(L=>this.scrollDown(L))),this._parser.registerCsiHandler({final:"X"},(L=>this.eraseChars(L))),this._parser.registerCsiHandler({final:"Z"},(L=>this.cursorBackwardTab(L))),this._parser.registerCsiHandler({final:"`"},(L=>this.charPosAbsolute(L))),this._parser.registerCsiHandler({final:"a"},(L=>this.hPositionRelative(L))),this._parser.registerCsiHandler({final:"b"},(L=>this.repeatPrecedingCharacter(L))),this._parser.registerCsiHandler({final:"c"},(L=>this.sendDeviceAttributesPrimary(L))),this._parser.registerCsiHandler({prefix:">",final:"c"},(L=>this.sendDeviceAttributesSecondary(L))),this._parser.registerCsiHandler({final:"d"},(L=>this.linePosAbsolute(L))),this._parser.registerCsiHandler({final:"e"},(L=>this.vPositionRelative(L))),this._parser.registerCsiHandler({final:"f"},(L=>this.hVPosition(L))),this._parser.registerCsiHandler({final:"g"},(L=>this.tabClear(L))),this._parser.registerCsiHandler({final:"h"},(L=>this.setMode(L))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(L=>this.setModePrivate(L))),this._parser.registerCsiHandler({final:"l"},(L=>this.resetMode(L))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(L=>this.resetModePrivate(L))),this._parser.registerCsiHandler({final:"m"},(L=>this.charAttributes(L))),this._parser.registerCsiHandler({final:"n"},(L=>this.deviceStatus(L))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(L=>this.deviceStatusPrivate(L))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(L=>this.softReset(L))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(L=>this.setCursorStyle(L))),this._parser.registerCsiHandler({final:"r"},(L=>this.setScrollRegion(L))),this._parser.registerCsiHandler({final:"s"},(L=>this.saveCursor(L))),this._parser.registerCsiHandler({final:"t"},(L=>this.windowOptions(L))),this._parser.registerCsiHandler({final:"u"},(L=>this.restoreCursor(L))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(L=>this.insertColumns(L))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(L=>this.deleteColumns(L))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(L=>this.selectProtected(L))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(L=>this.requestMode(L,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(L=>this.requestMode(L,!1))),this._parser.setExecuteHandler(l.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(l.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(l.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(l.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(l.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(l.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(l.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(l.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(l.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(l.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(l.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(l.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new x.OscHandler((L=>(this.setTitle(L),this.setIconName(L),!0)))),this._parser.registerOscHandler(1,new x.OscHandler((L=>this.setIconName(L)))),this._parser.registerOscHandler(2,new x.OscHandler((L=>this.setTitle(L)))),this._parser.registerOscHandler(4,new x.OscHandler((L=>this.setOrReportIndexedColor(L)))),this._parser.registerOscHandler(8,new x.OscHandler((L=>this.setHyperlink(L)))),this._parser.registerOscHandler(10,new x.OscHandler((L=>this.setOrReportFgColor(L)))),this._parser.registerOscHandler(11,new x.OscHandler((L=>this.setOrReportBgColor(L)))),this._parser.registerOscHandler(12,new x.OscHandler((L=>this.setOrReportCursorColor(L)))),this._parser.registerOscHandler(104,new x.OscHandler((L=>this.restoreIndexedColor(L)))),this._parser.registerOscHandler(110,new x.OscHandler((L=>this.restoreFgColor(L)))),this._parser.registerOscHandler(111,new x.OscHandler((L=>this.restoreBgColor(L)))),this._parser.registerOscHandler(112,new x.OscHandler((L=>this.restoreCursorColor(L)))),this._parser.registerEscHandler({final:"7"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:"8"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:"D"},(()=>this.index())),this._parser.registerEscHandler({final:"E"},(()=>this.nextLine())),this._parser.registerEscHandler({final:"H"},(()=>this.tabSet())),this._parser.registerEscHandler({final:"M"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:"="},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:">"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:"c"},(()=>this.fullReset())),this._parser.registerEscHandler({final:"n"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"o"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"|"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"}"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"~"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:"%",final:"@"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:"%",final:"G"},(()=>this.selectDefaultCharset()));for(let L in _.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:L},(()=>this.selectCharset("("+L))),this._parser.registerEscHandler({intermediates:")",final:L},(()=>this.selectCharset(")"+L))),this._parser.registerEscHandler({intermediates:"*",final:L},(()=>this.selectCharset("*"+L))),this._parser.registerEscHandler({intermediates:"+",final:L},(()=>this.selectCharset("+"+L))),this._parser.registerEscHandler({intermediates:"-",final:L},(()=>this.selectCharset("-"+L))),this._parser.registerEscHandler({intermediates:".",final:L},(()=>this.selectCharset("."+L))),this._parser.registerEscHandler({intermediates:"/",final:L},(()=>this.selectCharset("/"+L)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((L=>(this._logService.error("Parsing error: ",L),L))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new b.DcsHandler(((L,F)=>this.requestStatusString(L,F))))}_preserveStack(S,T,k,R){this._parseStack.paused=!0,this._parseStack.cursorStartX=S,this._parseStack.cursorStartY=T,this._parseStack.decodedLength=k,this._parseStack.position=R}_logSlowResolvingAsync(S){this._logService.logLevel<=C.LogLevelEnum.WARN&&Promise.race([S,new Promise(((T,k)=>setTimeout((()=>k("#SLOW_TIMEOUT")),5e3)))]).catch((T=>{if(T!=="#SLOW_TIMEOUT")throw T;console.warn("async parser handler taking longer than 5000 ms")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(S,T){let k,R=this._activeBuffer.x,z=this._activeBuffer.y,V=0,X=this._parseStack.paused;if(X){if(k=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,T))return this._logSlowResolvingAsync(k),k;R=this._parseStack.cursorStartX,z=this._parseStack.cursorStartY,this._parseStack.paused=!1,S.length>B&&(V=this._parseStack.position+B)}if(this._logService.logLevel<=C.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+(typeof S=="string"?` "${S}"`:` "${Array.prototype.map.call(S,(L=>String.fromCharCode(L))).join("")}"`),typeof S=="string"?S.split("").map((L=>L.charCodeAt(0))):S),this._parseBuffer.length<S.length&&this._parseBuffer.length<B&&(this._parseBuffer=new Uint32Array(Math.min(S.length,B))),X||this._dirtyRowTracker.clearRange(),S.length>B)for(let L=V;L<S.length;L+=B){let F=L+B<S.length?L+B:S.length,$=typeof S=="string"?this._stringDecoder.decode(S.substring(L,F),this._parseBuffer):this._utf8Decoder.decode(S.subarray(L,F),this._parseBuffer);if(k=this._parser.parse(this._parseBuffer,$))return this._preserveStack(R,z,$,L),this._logSlowResolvingAsync(k),k}else if(!X){let L=typeof S=="string"?this._stringDecoder.decode(S,this._parseBuffer):this._utf8Decoder.decode(S,this._parseBuffer);if(k=this._parser.parse(this._parseBuffer,L))return this._preserveStack(R,z,L,0),this._logSlowResolvingAsync(k),k}this._activeBuffer.x===R&&this._activeBuffer.y===z||this._onCursorMove.fire();let Z=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),W=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);W<this._bufferService.rows&&this._onRequestRefreshRows.fire(Math.min(W,this._bufferService.rows-1),Math.min(Z,this._bufferService.rows-1))}print(S,T,k){let R,z,V=this._charsetService.charset,X=this._optionsService.rawOptions.screenReaderMode,Z=this._bufferService.cols,W=this._coreService.decPrivateModes.wraparound,L=this._coreService.modes.insertMode,F=this._curAttrData,$=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&k-T>0&&$.getWidth(this._activeBuffer.x-1)===2&&$.setCellFromCodepoint(this._activeBuffer.x-1,0,1,F);let j=this._parser.precedingJoinState;for(let Y=T;Y<k;++Y){if(R=S[Y],R<127&&V){let se=V[String.fromCharCode(R)];se&&(R=se.charCodeAt(0))}let ee=this._unicodeService.charProperties(R,j);z=v.UnicodeService.extractWidth(ee);let fe=v.UnicodeService.extractShouldJoin(ee),ce=fe?v.UnicodeService.extractWidth(j):0;if(j=ee,X&&this._onA11yChar.fire((0,p.stringFromCodePoint)(R)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+z-ce>Z){if(W){let se=$,G=this._activeBuffer.x-ce;for(this._activeBuffer.x=ce,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),$=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),ce>0&&$ instanceof c.BufferLine&&$.copyCellsFrom(se,G,0,ce,!1);G<Z;)se.setCellFromCodepoint(G++,0,1,F)}else if(this._activeBuffer.x=Z-1,z===2)continue}if(fe&&this._activeBuffer.x){let se=$.getWidth(this._activeBuffer.x-1)?1:2;$.addCodepointToCell(this._activeBuffer.x-se,R,z);for(let G=z-ce;--G>=0;)$.setCellFromCodepoint(this._activeBuffer.x++,0,0,F)}else if(L&&($.insertCells(this._activeBuffer.x,z-ce,this._activeBuffer.getNullCell(F)),$.getWidth(Z-1)===2&&$.setCellFromCodepoint(Z-1,h.NULL_CELL_CODE,h.NULL_CELL_WIDTH,F)),$.setCellFromCodepoint(this._activeBuffer.x++,R,z,F),z>0)for(;--z;)$.setCellFromCodepoint(this._activeBuffer.x++,0,0,F)}this._parser.precedingJoinState=j,this._activeBuffer.x<Z&&k-T>0&&$.getWidth(this._activeBuffer.x)===0&&!$.hasContent(this._activeBuffer.x)&&$.setCellFromCodepoint(this._activeBuffer.x,0,1,F),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(S,T){return S.final!=="t"||S.prefix||S.intermediates?this._parser.registerCsiHandler(S,T):this._parser.registerCsiHandler(S,(k=>!N(k.params[0],this._optionsService.rawOptions.windowOptions)||T(k)))}registerDcsHandler(S,T){return this._parser.registerDcsHandler(S,new b.DcsHandler(T))}registerEscHandler(S,T){return this._parser.registerEscHandler(S,T)}registerOscHandler(S,T){return this._parser.registerOscHandler(S,new x.OscHandler(T))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let S=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);S.hasWidth(this._activeBuffer.x)&&!S.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let S=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-S),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(S=this._bufferService.cols-1){this._activeBuffer.x=Math.min(S,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(S,T){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=S,this._activeBuffer.y=this._activeBuffer.scrollTop+T):(this._activeBuffer.x=S,this._activeBuffer.y=T),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(S,T){this._restrictCursor(),this._setCursor(this._activeBuffer.x+S,this._activeBuffer.y+T)}cursorUp(S){let T=this._activeBuffer.y-this._activeBuffer.scrollTop;return T>=0?this._moveCursor(0,-Math.min(T,S.params[0]||1)):this._moveCursor(0,-(S.params[0]||1)),!0}cursorDown(S){let T=this._activeBuffer.scrollBottom-this._activeBuffer.y;return T>=0?this._moveCursor(0,Math.min(T,S.params[0]||1)):this._moveCursor(0,S.params[0]||1),!0}cursorForward(S){return this._moveCursor(S.params[0]||1,0),!0}cursorBackward(S){return this._moveCursor(-(S.params[0]||1),0),!0}cursorNextLine(S){return this.cursorDown(S),this._activeBuffer.x=0,!0}cursorPrecedingLine(S){return this.cursorUp(S),this._activeBuffer.x=0,!0}cursorCharAbsolute(S){return this._setCursor((S.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(S){return this._setCursor(S.length>=2?(S.params[1]||1)-1:0,(S.params[0]||1)-1),!0}charPosAbsolute(S){return this._setCursor((S.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(S){return this._moveCursor(S.params[0]||1,0),!0}linePosAbsolute(S){return this._setCursor(this._activeBuffer.x,(S.params[0]||1)-1),!0}vPositionRelative(S){return this._moveCursor(0,S.params[0]||1),!0}hVPosition(S){return this.cursorPosition(S),!0}tabClear(S){let T=S.params[0];return T===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:T===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(S){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let T=S.params[0]||1;for(;T--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(S){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let T=S.params[0]||1;for(;T--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(S){let T=S.params[0];return T===1&&(this._curAttrData.bg|=536870912),T!==2&&T!==0||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(S,T,k,R=!1,z=!1){let V=this._activeBuffer.lines.get(this._activeBuffer.ybase+S);V.replaceCells(T,k,this._activeBuffer.getNullCell(this._eraseAttrData()),z),R&&(V.isWrapped=!1)}_resetBufferLine(S,T=!1){let k=this._activeBuffer.lines.get(this._activeBuffer.ybase+S);k&&(k.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),T),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+S),k.isWrapped=!1)}eraseInDisplay(S,T=!1){let k;switch(this._restrictCursor(this._bufferService.cols),S.params[0]){case 0:for(k=this._activeBuffer.y,this._dirtyRowTracker.markDirty(k),this._eraseInBufferLine(k++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,T);k<this._bufferService.rows;k++)this._resetBufferLine(k,T);this._dirtyRowTracker.markDirty(k);break;case 1:for(k=this._activeBuffer.y,this._dirtyRowTracker.markDirty(k),this._eraseInBufferLine(k,0,this._activeBuffer.x+1,!0,T),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(k+1).isWrapped=!1);k--;)this._resetBufferLine(k,T);this._dirtyRowTracker.markDirty(0);break;case 2:for(k=this._bufferService.rows,this._dirtyRowTracker.markDirty(k-1);k--;)this._resetBufferLine(k,T);this._dirtyRowTracker.markDirty(0);break;case 3:let R=this._activeBuffer.lines.length-this._bufferService.rows;R>0&&(this._activeBuffer.lines.trimStart(R),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-R,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-R,0),this._onScroll.fire(0))}return!0}eraseInLine(S,T=!1){switch(this._restrictCursor(this._bufferService.cols),S.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,T);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,T);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,T)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(S){this._restrictCursor();let T=S.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let k=this._activeBuffer.ybase+this._activeBuffer.y,R=this._bufferService.rows-1-this._activeBuffer.scrollBottom,z=this._bufferService.rows-1+this._activeBuffer.ybase-R+1;for(;T--;)this._activeBuffer.lines.splice(z-1,1),this._activeBuffer.lines.splice(k,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(S){this._restrictCursor();let T=S.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let k=this._activeBuffer.ybase+this._activeBuffer.y,R;for(R=this._bufferService.rows-1-this._activeBuffer.scrollBottom,R=this._bufferService.rows-1+this._activeBuffer.ybase-R;T--;)this._activeBuffer.lines.splice(k,1),this._activeBuffer.lines.splice(R,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(S){this._restrictCursor();let T=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return T&&(T.insertCells(this._activeBuffer.x,S.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(S){this._restrictCursor();let T=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return T&&(T.deleteCells(this._activeBuffer.x,S.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(S){let T=S.params[0]||1;for(;T--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(S){let T=S.params[0]||1;for(;T--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(c.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(S){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=S.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.deleteCells(0,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(S){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=S.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.insertCells(0,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(S){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=S.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.insertCells(this._activeBuffer.x,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(S){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let T=S.params[0]||1;for(let k=this._activeBuffer.scrollTop;k<=this._activeBuffer.scrollBottom;++k){let R=this._activeBuffer.lines.get(this._activeBuffer.ybase+k);R.deleteCells(this._activeBuffer.x,T,this._activeBuffer.getNullCell(this._eraseAttrData())),R.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(S){this._restrictCursor();let T=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return T&&(T.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(S.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(S){let T=this._parser.precedingJoinState;if(!T)return!0;let k=S.params[0]||1,R=v.UnicodeService.extractWidth(T),z=this._activeBuffer.x-R,V=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(z),X=new Uint32Array(V.length*k),Z=0;for(let L=0;L<V.length;){let F=V.codePointAt(L)||0;X[Z++]=F,L+=F>65535?2:1}let W=Z;for(let L=1;L<k;++L)X.copyWithin(W,0,Z),W+=Z;return this.print(X,0,W),!0}sendDeviceAttributesPrimary(S){return S.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(l.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(l.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(S){return S.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(l.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(l.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(S.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(l.C0.ESC+"[>83;40003;0c")),!0}_is(S){return(this._optionsService.rawOptions.termName+"").indexOf(S)===0}setMode(S){for(let T=0;T<S.length;T++)switch(S.params[T]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(S){for(let T=0;T<S.length;T++)switch(S.params[T]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,_.DEFAULT_CHARSET),this._charsetService.setgCharset(1,_.DEFAULT_CHARSET),this._charsetService.setgCharset(2,_.DEFAULT_CHARSET),this._charsetService.setgCharset(3,_.DEFAULT_CHARSET);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol="X10";break;case 1e3:this._coreMouseService.activeProtocol="VT200";break;case 1002:this._coreMouseService.activeProtocol="DRAG";break;case 1003:this._coreMouseService.activeProtocol="ANY";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug("DECSET 1005 not supported (see #2507)");break;case 1006:this._coreMouseService.activeEncoding="SGR";break;case 1015:this._logService.debug("DECSET 1015 not supported (see #2507)");break;case 1016:this._coreMouseService.activeEncoding="SGR_PIXELS";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0}return!0}resetMode(S){for(let T=0;T<S.length;T++)switch(S.params[T]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(S){for(let T=0;T<S.length;T++)switch(S.params[T]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol="NONE";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug("DECRST 1005 not supported (see #2507)");break;case 1006:case 1016:this._coreMouseService.activeEncoding="DEFAULT";break;case 1015:this._logService.debug("DECRST 1015 not supported (see #2507)");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),S.params[T]===1049&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1}return!0}requestMode(S,T){let k=this._coreService.decPrivateModes,{activeProtocol:R,activeEncoding:z}=this._coreMouseService,V=this._coreService,{buffers:X,cols:Z}=this._bufferService,{active:W,alt:L}=X,F=this._optionsService.rawOptions,$=fe=>fe?1:2,j=S.params[0];return Y=j,ee=T?j===2?4:j===4?$(V.modes.insertMode):j===12?3:j===20?$(F.convertEol):0:j===1?$(k.applicationCursorKeys):j===3?F.windowOptions.setWinLines?Z===80?2:Z===132?1:0:0:j===6?$(k.origin):j===7?$(k.wraparound):j===8?3:j===9?$(R==="X10"):j===12?$(F.cursorBlink):j===25?$(!V.isCursorHidden):j===45?$(k.reverseWraparound):j===66?$(k.applicationKeypad):j===67?4:j===1e3?$(R==="VT200"):j===1002?$(R==="DRAG"):j===1003?$(R==="ANY"):j===1004?$(k.sendFocus):j===1005?4:j===1006?$(z==="SGR"):j===1015?4:j===1016?$(z==="SGR_PIXELS"):j===1048?1:j===47||j===1047||j===1049?$(W===L):j===2004?$(k.bracketedPasteMode):0,V.triggerDataEvent(`${l.C0.ESC}[${T?"":"?"}${Y};${ee}$y`),!0;var Y,ee}_updateAttrColor(S,T,k,R,z){return T===2?(S|=50331648,S&=-16777216,S|=g.AttributeData.fromColorRGB([k,R,z])):T===5&&(S&=-50331904,S|=33554432|255&k),S}_extractColor(S,T,k){let R=[0,0,-1,0,0,0],z=0,V=0;do{if(R[V+z]=S.params[T+V],S.hasSubParams(T+V)){let X=S.getSubParams(T+V),Z=0;do R[1]===5&&(z=1),R[V+Z+1+z]=X[Z];while(++Z<X.length&&Z+V+1+z<R.length);break}if(R[1]===5&&V+z>=2||R[1]===2&&V+z>=5)break;R[1]&&(z=1)}while(++V+T<S.length&&V+z<R.length);for(let X=2;X<R.length;++X)R[X]===-1&&(R[X]=0);switch(R[0]){case 38:k.fg=this._updateAttrColor(k.fg,R[1],R[3],R[4],R[5]);break;case 48:k.bg=this._updateAttrColor(k.bg,R[1],R[3],R[4],R[5]);break;case 58:k.extended=k.extended.clone(),k.extended.underlineColor=this._updateAttrColor(k.extended.underlineColor,R[1],R[3],R[4],R[5])}return V}_processUnderline(S,T){T.extended=T.extended.clone(),(!~S||S>5)&&(S=1),T.extended.underlineStyle=S,T.fg|=268435456,S===0&&(T.fg&=-268435457),T.updateExtended()}_processSGR0(S){S.fg=c.DEFAULT_ATTR_DATA.fg,S.bg=c.DEFAULT_ATTR_DATA.bg,S.extended=S.extended.clone(),S.extended.underlineStyle=0,S.extended.underlineColor&=-67108864,S.updateExtended()}charAttributes(S){if(S.length===1&&S.params[0]===0)return this._processSGR0(this._curAttrData),!0;let T=S.length,k,R=this._curAttrData;for(let z=0;z<T;z++)k=S.params[z],k>=30&&k<=37?(R.fg&=-50331904,R.fg|=16777216|k-30):k>=40&&k<=47?(R.bg&=-50331904,R.bg|=16777216|k-40):k>=90&&k<=97?(R.fg&=-50331904,R.fg|=16777224|k-90):k>=100&&k<=107?(R.bg&=-50331904,R.bg|=16777224|k-100):k===0?this._processSGR0(R):k===1?R.fg|=134217728:k===3?R.bg|=67108864:k===4?(R.fg|=268435456,this._processUnderline(S.hasSubParams(z)?S.getSubParams(z)[0]:1,R)):k===5?R.fg|=536870912:k===7?R.fg|=67108864:k===8?R.fg|=1073741824:k===9?R.fg|=2147483648:k===2?R.bg|=134217728:k===21?this._processUnderline(2,R):k===22?(R.fg&=-134217729,R.bg&=-134217729):k===23?R.bg&=-67108865:k===24?(R.fg&=-268435457,this._processUnderline(0,R)):k===25?R.fg&=-536870913:k===27?R.fg&=-67108865:k===28?R.fg&=-1073741825:k===29?R.fg&=2147483647:k===39?(R.fg&=-67108864,R.fg|=16777215&c.DEFAULT_ATTR_DATA.fg):k===49?(R.bg&=-67108864,R.bg|=16777215&c.DEFAULT_ATTR_DATA.bg):k===38||k===48||k===58?z+=this._extractColor(S,z,R):k===53?R.bg|=1073741824:k===55?R.bg&=-1073741825:k===59?(R.extended=R.extended.clone(),R.extended.underlineColor=-1,R.updateExtended()):k===100?(R.fg&=-67108864,R.fg|=16777215&c.DEFAULT_ATTR_DATA.fg,R.bg&=-67108864,R.bg|=16777215&c.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",k);return!0}deviceStatus(S){switch(S.params[0]){case 5:this._coreService.triggerDataEvent(`${l.C0.ESC}[0n`);break;case 6:let T=this._activeBuffer.y+1,k=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${l.C0.ESC}[${T};${k}R`)}return!0}deviceStatusPrivate(S){if(S.params[0]===6){let T=this._activeBuffer.y+1,k=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${l.C0.ESC}[?${T};${k}R`)}return!0}softReset(S){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=c.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(S){let T=S.params[0]||1;switch(T){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}let k=T%2==1;return this._optionsService.options.cursorBlink=k,!0}setScrollRegion(S){let T=S.params[0]||1,k;return(S.length<2||(k=S.params[1])>this._bufferService.rows||k===0)&&(k=this._bufferService.rows),k>T&&(this._activeBuffer.scrollTop=T-1,this._activeBuffer.scrollBottom=k-1,this._setCursor(0,0)),!0}windowOptions(S){if(!N(S.params[0],this._optionsService.rawOptions.windowOptions))return!0;let T=S.length>1?S.params[1]:0;switch(S.params[0]){case 14:T!==2&&this._onRequestWindowsOptionsReport.fire(A.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(A.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${l.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:T!==0&&T!==2||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),T!==0&&T!==1||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:T!==0&&T!==2||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),T!==0&&T!==1||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(S){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(S){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(S){return this._windowTitle=S,this._onTitleChange.fire(S),!0}setIconName(S){return this._iconName=S,!0}setOrReportIndexedColor(S){let T=[],k=S.split(";");for(;k.length>1;){let R=k.shift(),z=k.shift();if(/^\d+$/.exec(R)){let V=parseInt(R);if(H(V))if(z==="?")T.push({type:0,index:V});else{let X=(0,E.parseColor)(z);X&&T.push({type:1,index:V,color:X})}}}return T.length&&this._onColor.fire(T),!0}setHyperlink(S){let T=S.split(";");return!(T.length<2)&&(T[1]?this._createHyperlink(T[0],T[1]):!T[0]&&this._finishHyperlink())}_createHyperlink(S,T){this._getCurrentLinkId()&&this._finishHyperlink();let k=S.split(":"),R,z=k.findIndex((V=>V.startsWith("id=")));return z!==-1&&(R=k[z].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:R,uri:T}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(S,T){let k=S.split(";");for(let R=0;R<k.length&&!(T>=this._specialColors.length);++R,++T)if(k[R]==="?")this._onColor.fire([{type:0,index:this._specialColors[T]}]);else{let z=(0,E.parseColor)(k[R]);z&&this._onColor.fire([{type:1,index:this._specialColors[T],color:z}])}return!0}setOrReportFgColor(S){return this._setOrReportSpecialColor(S,0)}setOrReportBgColor(S){return this._setOrReportSpecialColor(S,1)}setOrReportCursorColor(S){return this._setOrReportSpecialColor(S,2)}restoreIndexedColor(S){if(!S)return this._onColor.fire([{type:2}]),!0;let T=[],k=S.split(";");for(let R=0;R<k.length;++R)if(/^\d+$/.exec(k[R])){let z=parseInt(k[R]);H(z)&&T.push({type:2,index:z})}return T.length&&this._onColor.fire(T),!0}restoreFgColor(S){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(S){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(S){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,_.DEFAULT_CHARSET),!0}selectCharset(S){return S.length!==2?(this.selectDefaultCharset(),!0):(S[0]==="/"||this._charsetService.setgCharset(O[S[0]],_.CHARSETS[S[1]]||_.DEFAULT_CHARSET),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let S=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,S,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=c.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=c.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(S){return this._charsetService.setgLevel(S),!0}screenAlignmentPattern(){let S=new f.CellData;S.content=4194373,S.fg=this._curAttrData.fg,S.bg=this._curAttrData.bg,this._setCursor(0,0);for(let T=0;T<this._bufferService.rows;++T){let k=this._activeBuffer.ybase+this._activeBuffer.y+T,R=this._activeBuffer.lines.get(k);R&&(R.fill(S),R.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(S,T){let k=this._bufferService.buffer,R=this._optionsService.rawOptions;return(z=>(this._coreService.triggerDataEvent(`${l.C0.ESC}${z}${l.C0.ESC}\\`),!0))(S==='"q'?`P1$r${this._curAttrData.isProtected()?1:0}"q`:S==='"p'?'P1$r61;1"p':S==="r"?`P1$r${k.scrollTop+1};${k.scrollBottom+1}r`:S==="m"?"P1$r0m":S===" q"?`P1$r${{block:2,underline:4,bar:6}[R.cursorStyle]-(R.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(S,T){this._dirtyRowTracker.markRangeDirty(S,T)}}i.InputHandler=P;let D=class{constructor(I){this._bufferService=I,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(I){I<this.start?this.start=I:I>this.end&&(this.end=I)}markRangeDirty(I,S){I>S&&(K=I,I=S,S=K),I<this.start&&(this.start=I),S>this.end&&(this.end=S)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function H(I){return 0<=I&&I<256}D=a([u(0,C.IBufferService)],D)},844:(o,i)=>{function n(a){for(let u of a)u.dispose();a.length=0}Object.defineProperty(i,"__esModule",{value:!0}),i.getDisposeArrayDisposable=i.disposeArray=i.toDisposable=i.MutableDisposable=i.Disposable=void 0,i.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let a of this._disposables)a.dispose();this._disposables.length=0}register(a){return this._disposables.push(a),a}unregister(a){let u=this._disposables.indexOf(a);u!==-1&&this._disposables.splice(u,1)}},i.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(a){this._isDisposed||a===this._value||(this._value?.dispose(),this._value=a)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},i.toDisposable=function(a){return{dispose:a}},i.disposeArray=n,i.getDisposeArrayDisposable=function(a){return{dispose:()=>n(a)}}},1505:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.FourKeyMap=i.TwoKeyMap=void 0;class n{constructor(){this._data={}}set(u,l,_){this._data[u]||(this._data[u]={}),this._data[u][l]=_}get(u,l){return this._data[u]?this._data[u][l]:void 0}clear(){this._data={}}}i.TwoKeyMap=n,i.FourKeyMap=class{constructor(){this._data=new n}set(a,u,l,_,m){this._data.get(a,u)||this._data.set(a,u,new n),this._data.get(a,u).set(l,_,m)}get(a,u,l,_){return this._data.get(a,u)?.get(l,_)}clear(){this._data.clear()}}},6114:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.isChromeOS=i.isLinux=i.isWindows=i.isIphone=i.isIpad=i.isMac=i.getSafariVersion=i.isSafari=i.isLegacyEdge=i.isFirefox=i.isNode=void 0,i.isNode=typeof process<"u"&&"title"in process;let n=i.isNode?"node":navigator.userAgent,a=i.isNode?"node":navigator.platform;i.isFirefox=n.includes("Firefox"),i.isLegacyEdge=n.includes("Edge"),i.isSafari=/^((?!chrome|android).)*safari/i.test(n),i.getSafariVersion=function(){if(!i.isSafari)return 0;let u=n.match(/Version\/(\d+)/);return u===null||u.length<2?0:parseInt(u[1])},i.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(a),i.isIpad=a==="iPad",i.isIphone=a==="iPhone",i.isWindows=["Windows","Win16","Win32","WinCE"].includes(a),i.isLinux=a.indexOf("Linux")>=0,i.isChromeOS=/\bCrOS\b/.test(n)},6106:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.SortedList=void 0;let n=0;i.SortedList=class{constructor(a){this._getKey=a,this._array=[]}clear(){this._array.length=0}insert(a){this._array.length!==0?(n=this._search(this._getKey(a)),this._array.splice(n,0,a)):this._array.push(a)}delete(a){if(this._array.length===0)return!1;let u=this._getKey(a);if(u===void 0||(n=this._search(u),n===-1)||this._getKey(this._array[n])!==u)return!1;do if(this._array[n]===a)return this._array.splice(n,1),!0;while(++n<this._array.length&&this._getKey(this._array[n])===u);return!1}*getKeyIterator(a){if(this._array.length!==0&&(n=this._search(a),!(n<0||n>=this._array.length)&&this._getKey(this._array[n])===a))do yield this._array[n];while(++n<this._array.length&&this._getKey(this._array[n])===a)}forEachByKey(a,u){if(this._array.length!==0&&(n=this._search(a),!(n<0||n>=this._array.length)&&this._getKey(this._array[n])===a))do u(this._array[n]);while(++n<this._array.length&&this._getKey(this._array[n])===a)}values(){return[...this._array].values()}_search(a){let u=0,l=this._array.length-1;for(;l>=u;){let _=u+l>>1,m=this._getKey(this._array[_]);if(m>a)l=_-1;else{if(!(m<a)){for(;_>0&&this._getKey(this._array[_-1])===a;)_--;return _}u=_+1}}return u}}},7226:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DebouncedIdleTask=i.IdleTaskQueue=i.PriorityTaskQueue=void 0;let a=n(6114);class u{constructor(){this._tasks=[],this._i=0}enqueue(m){this._tasks.push(m),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(m){this._idleCallback=void 0;let y=0,p=0,c=m.timeRemaining(),d=0;for(;this._i<this._tasks.length;){if(y=Date.now(),this._tasks[this._i]()||this._i++,y=Math.max(1,Date.now()-y),p=Math.max(y,p),d=m.timeRemaining(),1.5*p>d)return c-y<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(c-y))}ms`),void this._start();c=d}this.clear()}}class l extends u{_requestCallback(m){return setTimeout((()=>m(this._createDeadline(16))))}_cancelCallback(m){clearTimeout(m)}_createDeadline(m){let y=Date.now()+m;return{timeRemaining:()=>Math.max(0,y-Date.now())}}}i.PriorityTaskQueue=l,i.IdleTaskQueue=!a.isNode&&"requestIdleCallback"in window?class extends u{_requestCallback(_){return requestIdleCallback(_)}_cancelCallback(_){cancelIdleCallback(_)}}:l,i.DebouncedIdleTask=class{constructor(){this._queue=new i.IdleTaskQueue}set(_){this._queue.clear(),this._queue.enqueue(_)}flush(){this._queue.flush()}}},9282:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.updateWindowsModeWrappedState=void 0;let a=n(643);i.updateWindowsModeWrappedState=function(u){let l=u.buffer.lines.get(u.buffer.ybase+u.buffer.y-1),_=l?.get(u.cols-1),m=u.buffer.lines.get(u.buffer.ybase+u.buffer.y);m&&_&&(m.isWrapped=_[a.CHAR_DATA_CODE_INDEX]!==a.NULL_CELL_CODE&&_[a.CHAR_DATA_CODE_INDEX]!==a.WHITESPACE_CELL_CODE)}},3734:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ExtendedAttrs=i.AttributeData=void 0;class n{constructor(){this.fg=0,this.bg=0,this.extended=new a}static toColorRGB(l){return[l>>>16&255,l>>>8&255,255&l]}static fromColorRGB(l){return(255&l[0])<<16|(255&l[1])<<8|255&l[2]}clone(){let l=new n;return l.fg=this.fg,l.bg=this.bg,l.extended=this.extended.clone(),l}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return(50331648&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}i.AttributeData=n;class a{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(l){this._ext=l}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(l){this._ext&=-469762049,this._ext|=l<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(l){this._ext&=-67108864,this._ext|=67108863&l}get urlId(){return this._urlId}set urlId(l){this._urlId=l}get underlineVariantOffset(){let l=(3758096384&this._ext)>>29;return l<0?4294967288^l:l}set underlineVariantOffset(l){this._ext&=536870911,this._ext|=l<<29&3758096384}constructor(l=0,_=0){this._ext=0,this._urlId=0,this._ext=l,this._urlId=_}clone(){return new a(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}i.ExtendedAttrs=a},9092:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Buffer=i.MAX_BUFFER_SIZE=void 0;let a=n(6349),u=n(7226),l=n(3734),_=n(8437),m=n(4634),y=n(511),p=n(643),c=n(4863),d=n(7116);i.MAX_BUFFER_SIZE=4294967295,i.Buffer=class{constructor(h,f,g){this._hasScrollback=h,this._optionsService=f,this._bufferService=g,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=_.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=y.CellData.fromCharData([0,p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE]),this._whitespaceCell=y.CellData.fromCharData([0,p.WHITESPACE_CELL_CHAR,p.WHITESPACE_CELL_WIDTH,p.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new u.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new a.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(h){return h?(this._nullCell.fg=h.fg,this._nullCell.bg=h.bg,this._nullCell.extended=h.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new l.ExtendedAttrs),this._nullCell}getWhitespaceCell(h){return h?(this._whitespaceCell.fg=h.fg,this._whitespaceCell.bg=h.bg,this._whitespaceCell.extended=h.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new l.ExtendedAttrs),this._whitespaceCell}getBlankLine(h,f){return new _.BufferLine(this._bufferService.cols,this.getNullCell(h),f)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let h=this.ybase+this.y-this.ydisp;return h>=0&&h<this._rows}_getCorrectBufferLength(h){if(!this._hasScrollback)return h;let f=h+this._optionsService.rawOptions.scrollback;return f>i.MAX_BUFFER_SIZE?i.MAX_BUFFER_SIZE:f}fillViewportRows(h){if(this.lines.length===0){h===void 0&&(h=_.DEFAULT_ATTR_DATA);let f=this._rows;for(;f--;)this.lines.push(this.getBlankLine(h))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new a.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(h,f){let g=this.getNullCell(_.DEFAULT_ATTR_DATA),C=0,v=this._getCorrectBufferLength(f);if(v>this.lines.maxLength&&(this.lines.maxLength=v),this.lines.length>0){if(this._cols<h)for(let b=0;b<this.lines.length;b++)C+=+this.lines.get(b).resize(h,g);let x=0;if(this._rows<f)for(let b=this._rows;b<f;b++)this.lines.length<f+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new _.BufferLine(h,g)):this.ybase>0&&this.lines.length<=this.ybase+this.y+x+1?(this.ybase--,x++,this.ydisp>0&&this.ydisp--):this.lines.push(new _.BufferLine(h,g)));else for(let b=this._rows;b>f;b--)this.lines.length>f+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(v<this.lines.maxLength){let b=this.lines.length-v;b>0&&(this.lines.trimStart(b),this.ybase=Math.max(this.ybase-b,0),this.ydisp=Math.max(this.ydisp-b,0),this.savedY=Math.max(this.savedY-b,0)),this.lines.maxLength=v}this.x=Math.min(this.x,h-1),this.y=Math.min(this.y,f-1),x&&(this.y+=x),this.savedX=Math.min(this.savedX,h-1),this.scrollTop=0}if(this.scrollBottom=f-1,this._isReflowEnabled&&(this._reflow(h,f),this._cols>h))for(let x=0;x<this.lines.length;x++)C+=+this.lines.get(x).resize(h,g);this._cols=h,this._rows=f,this._memoryCleanupQueue.clear(),C>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let h=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,h=!1);let f=0;for(;this._memoryCleanupPosition<this.lines.length;)if(f+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),f>100)return!0;return h}get _isReflowEnabled(){let h=this._optionsService.rawOptions.windowsPty;return h&&h.buildNumber?this._hasScrollback&&h.backend==="conpty"&&h.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(h,f){this._cols!==h&&(h>this._cols?this._reflowLarger(h,f):this._reflowSmaller(h,f))}_reflowLarger(h,f){let g=(0,m.reflowLargerGetLinesToRemove)(this.lines,this._cols,h,this.ybase+this.y,this.getNullCell(_.DEFAULT_ATTR_DATA));if(g.length>0){let C=(0,m.reflowLargerCreateNewLayout)(this.lines,g);(0,m.reflowLargerApplyNewLayout)(this.lines,C.layout),this._reflowLargerAdjustViewport(h,f,C.countRemoved)}}_reflowLargerAdjustViewport(h,f,g){let C=this.getNullCell(_.DEFAULT_ATTR_DATA),v=g;for(;v-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<f&&this.lines.push(new _.BufferLine(h,C))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-g,0)}_reflowSmaller(h,f){let g=this.getNullCell(_.DEFAULT_ATTR_DATA),C=[],v=0;for(let x=this.lines.length-1;x>=0;x--){let b=this.lines.get(x);if(!b||!b.isWrapped&&b.getTrimmedLength()<=h)continue;let E=[b];for(;b.isWrapped&&x>0;)b=this.lines.get(--x),E.unshift(b);let O=this.ybase+this.y;if(O>=x&&O<x+E.length)continue;let B=E[E.length-1].getTrimmedLength(),N=(0,m.reflowSmallerGetNewLineLengths)(E,this._cols,h),A=N.length-E.length,K;K=this.ybase===0&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+A):Math.max(0,this.lines.length-this.lines.maxLength+A);let P=[];for(let k=0;k<A;k++){let R=this.getBlankLine(_.DEFAULT_ATTR_DATA,!0);P.push(R)}P.length>0&&(C.push({start:x+E.length+v,newLines:P}),v+=P.length),E.push(...P);let D=N.length-1,H=N[D];H===0&&(D--,H=N[D]);let I=E.length-A-1,S=B;for(;I>=0;){let k=Math.min(S,H);if(E[D]===void 0)break;if(E[D].copyCellsFrom(E[I],S-k,H-k,k,!0),H-=k,H===0&&(D--,H=N[D]),S-=k,S===0){I--;let R=Math.max(I,0);S=(0,m.getWrappedLineTrimmedLength)(E,R,this._cols)}}for(let k=0;k<E.length;k++)N[k]<h&&E[k].setCell(N[k],g);let T=A-K;for(;T-- >0;)this.ybase===0?this.y<f-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+v)-f&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+A,this.ybase+f-1)}if(C.length>0){let x=[],b=[];for(let D=0;D<this.lines.length;D++)b.push(this.lines.get(D));let E=this.lines.length,O=E-1,B=0,N=C[B];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+v);let A=0;for(let D=Math.min(this.lines.maxLength-1,E+v-1);D>=0;D--)if(N&&N.start>O+A){for(let H=N.newLines.length-1;H>=0;H--)this.lines.set(D--,N.newLines[H]);D++,x.push({index:O+1,amount:N.newLines.length}),A+=N.newLines.length,N=C[++B]}else this.lines.set(D,b[O--]);let K=0;for(let D=x.length-1;D>=0;D--)x[D].index+=K,this.lines.onInsertEmitter.fire(x[D]),K+=x[D].amount;let P=Math.max(0,E+v-this.lines.maxLength);P>0&&this.lines.onTrimEmitter.fire(P)}}translateBufferLineToString(h,f,g=0,C){let v=this.lines.get(h);return v?v.translateToString(f,g,C):""}getWrappedRangeForLine(h){let f=h,g=h;for(;f>0&&this.lines.get(f).isWrapped;)f--;for(;g+1<this.lines.length&&this.lines.get(g+1).isWrapped;)g++;return{first:f,last:g}}setupTabStops(h){for(h!=null?this.tabs[h]||(h=this.prevStop(h)):(this.tabs={},h=0);h<this._cols;h+=this._optionsService.rawOptions.tabStopWidth)this.tabs[h]=!0}prevStop(h){for(h==null&&(h=this.x);!this.tabs[--h]&&h>0;);return h>=this._cols?this._cols-1:h<0?0:h}nextStop(h){for(h==null&&(h=this.x);!this.tabs[++h]&&h<this._cols;);return h>=this._cols?this._cols-1:h<0?0:h}clearMarkers(h){this._isClearing=!0;for(let f=0;f<this.markers.length;f++)this.markers[f].line===h&&(this.markers[f].dispose(),this.markers.splice(f--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let h=0;h<this.markers.length;h++)this.markers[h].dispose(),this.markers.splice(h--,1);this._isClearing=!1}addMarker(h){let f=new c.Marker(h);return this.markers.push(f),f.register(this.lines.onTrim((g=>{f.line-=g,f.line<0&&f.dispose()}))),f.register(this.lines.onInsert((g=>{f.line>=g.index&&(f.line+=g.amount)}))),f.register(this.lines.onDelete((g=>{f.line>=g.index&&f.line<g.index+g.amount&&f.dispose(),f.line>g.index&&(f.line-=g.amount)}))),f.register(f.onDispose((()=>this._removeMarker(f)))),f}_removeMarker(h){this._isClearing||this.markers.splice(this.markers.indexOf(h),1)}}},8437:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferLine=i.DEFAULT_ATTR_DATA=void 0;let a=n(3734),u=n(511),l=n(643),_=n(482);i.DEFAULT_ATTR_DATA=Object.freeze(new a.AttributeData);let m=0;class y{constructor(c,d,h=!1){this.isWrapped=h,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*c);let f=d||u.CellData.fromCharData([0,l.NULL_CELL_CHAR,l.NULL_CELL_WIDTH,l.NULL_CELL_CODE]);for(let g=0;g<c;++g)this.setCell(g,f);this.length=c}get(c){let d=this._data[3*c+0],h=2097151&d;return[this._data[3*c+1],2097152&d?this._combined[c]:h?(0,_.stringFromCodePoint)(h):"",d>>22,2097152&d?this._combined[c].charCodeAt(this._combined[c].length-1):h]}set(c,d){this._data[3*c+1]=d[l.CHAR_DATA_ATTR_INDEX],d[l.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[c]=d[1],this._data[3*c+0]=2097152|c|d[l.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*c+0]=d[l.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|d[l.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(c){return this._data[3*c+0]>>22}hasWidth(c){return 12582912&this._data[3*c+0]}getFg(c){return this._data[3*c+1]}getBg(c){return this._data[3*c+2]}hasContent(c){return 4194303&this._data[3*c+0]}getCodePoint(c){let d=this._data[3*c+0];return 2097152&d?this._combined[c].charCodeAt(this._combined[c].length-1):2097151&d}isCombined(c){return 2097152&this._data[3*c+0]}getString(c){let d=this._data[3*c+0];return 2097152&d?this._combined[c]:2097151&d?(0,_.stringFromCodePoint)(2097151&d):""}isProtected(c){return 536870912&this._data[3*c+2]}loadCell(c,d){return m=3*c,d.content=this._data[m+0],d.fg=this._data[m+1],d.bg=this._data[m+2],2097152&d.content&&(d.combinedData=this._combined[c]),268435456&d.bg&&(d.extended=this._extendedAttrs[c]),d}setCell(c,d){2097152&d.content&&(this._combined[c]=d.combinedData),268435456&d.bg&&(this._extendedAttrs[c]=d.extended),this._data[3*c+0]=d.content,this._data[3*c+1]=d.fg,this._data[3*c+2]=d.bg}setCellFromCodepoint(c,d,h,f){268435456&f.bg&&(this._extendedAttrs[c]=f.extended),this._data[3*c+0]=d|h<<22,this._data[3*c+1]=f.fg,this._data[3*c+2]=f.bg}addCodepointToCell(c,d,h){let f=this._data[3*c+0];2097152&f?this._combined[c]+=(0,_.stringFromCodePoint)(d):2097151&f?(this._combined[c]=(0,_.stringFromCodePoint)(2097151&f)+(0,_.stringFromCodePoint)(d),f&=-2097152,f|=2097152):f=d|4194304,h&&(f&=-12582913,f|=h<<22),this._data[3*c+0]=f}insertCells(c,d,h){if((c%=this.length)&&this.getWidth(c-1)===2&&this.setCellFromCodepoint(c-1,0,1,h),d<this.length-c){let f=new u.CellData;for(let g=this.length-c-d-1;g>=0;--g)this.setCell(c+d+g,this.loadCell(c+g,f));for(let g=0;g<d;++g)this.setCell(c+g,h)}else for(let f=c;f<this.length;++f)this.setCell(f,h);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,h)}deleteCells(c,d,h){if(c%=this.length,d<this.length-c){let f=new u.CellData;for(let g=0;g<this.length-c-d;++g)this.setCell(c+g,this.loadCell(c+d+g,f));for(let g=this.length-d;g<this.length;++g)this.setCell(g,h)}else for(let f=c;f<this.length;++f)this.setCell(f,h);c&&this.getWidth(c-1)===2&&this.setCellFromCodepoint(c-1,0,1,h),this.getWidth(c)!==0||this.hasContent(c)||this.setCellFromCodepoint(c,0,1,h)}replaceCells(c,d,h,f=!1){if(f)for(c&&this.getWidth(c-1)===2&&!this.isProtected(c-1)&&this.setCellFromCodepoint(c-1,0,1,h),d<this.length&&this.getWidth(d-1)===2&&!this.isProtected(d)&&this.setCellFromCodepoint(d,0,1,h);c<d&&c<this.length;)this.isProtected(c)||this.setCell(c,h),c++;else for(c&&this.getWidth(c-1)===2&&this.setCellFromCodepoint(c-1,0,1,h),d<this.length&&this.getWidth(d-1)===2&&this.setCellFromCodepoint(d,0,1,h);c<d&&c<this.length;)this.setCell(c++,h)}resize(c,d){if(c===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;let h=3*c;if(c>this.length){if(this._data.buffer.byteLength>=4*h)this._data=new Uint32Array(this._data.buffer,0,h);else{let f=new Uint32Array(h);f.set(this._data),this._data=f}for(let f=this.length;f<c;++f)this.setCell(f,d)}else{this._data=this._data.subarray(0,h);let f=Object.keys(this._combined);for(let C=0;C<f.length;C++){let v=parseInt(f[C],10);v>=c&&delete this._combined[v]}let g=Object.keys(this._extendedAttrs);for(let C=0;C<g.length;C++){let v=parseInt(g[C],10);v>=c&&delete this._extendedAttrs[v]}}return this.length=c,4*h*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){let c=new Uint32Array(this._data.length);return c.set(this._data),this._data=c,1}return 0}fill(c,d=!1){if(d)for(let h=0;h<this.length;++h)this.isProtected(h)||this.setCell(h,c);else{this._combined={},this._extendedAttrs={};for(let h=0;h<this.length;++h)this.setCell(h,c)}}copyFrom(c){this.length!==c.length?this._data=new Uint32Array(c._data):this._data.set(c._data),this.length=c.length,this._combined={};for(let d in c._combined)this._combined[d]=c._combined[d];this._extendedAttrs={};for(let d in c._extendedAttrs)this._extendedAttrs[d]=c._extendedAttrs[d];this.isWrapped=c.isWrapped}clone(){let c=new y(0);c._data=new Uint32Array(this._data),c.length=this.length;for(let d in this._combined)c._combined[d]=this._combined[d];for(let d in this._extendedAttrs)c._extendedAttrs[d]=this._extendedAttrs[d];return c.isWrapped=this.isWrapped,c}getTrimmedLength(){for(let c=this.length-1;c>=0;--c)if(4194303&this._data[3*c+0])return c+(this._data[3*c+0]>>22);return 0}getNoBgTrimmedLength(){for(let c=this.length-1;c>=0;--c)if(4194303&this._data[3*c+0]||50331648&this._data[3*c+2])return c+(this._data[3*c+0]>>22);return 0}copyCellsFrom(c,d,h,f,g){let C=c._data;if(g)for(let x=f-1;x>=0;x--){for(let b=0;b<3;b++)this._data[3*(h+x)+b]=C[3*(d+x)+b];268435456&C[3*(d+x)+2]&&(this._extendedAttrs[h+x]=c._extendedAttrs[d+x])}else for(let x=0;x<f;x++){for(let b=0;b<3;b++)this._data[3*(h+x)+b]=C[3*(d+x)+b];268435456&C[3*(d+x)+2]&&(this._extendedAttrs[h+x]=c._extendedAttrs[d+x])}let v=Object.keys(c._combined);for(let x=0;x<v.length;x++){let b=parseInt(v[x],10);b>=d&&(this._combined[b-d+h]=c._combined[b])}}translateToString(c,d,h,f){d=d??0,h=h??this.length,c&&(h=Math.min(h,this.getTrimmedLength())),f&&(f.length=0);let g="";for(;d<h;){let C=this._data[3*d+0],v=2097151&C,x=2097152&C?this._combined[d]:v?(0,_.stringFromCodePoint)(v):l.WHITESPACE_CELL_CHAR;if(g+=x,f)for(let b=0;b<x.length;++b)f.push(d);d+=C>>22||1}return f&&f.push(d),g}}i.BufferLine=y},4841:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getRangeLength=void 0,i.getRangeLength=function(n,a){if(n.start.y>n.end.y)throw new Error(`Buffer range end (${n.end.x}, ${n.end.y}) cannot be before start (${n.start.x}, ${n.start.y})`);return a*(n.end.y-n.start.y)+(n.end.x-n.start.x+1)}},4634:(o,i)=>{function n(a,u,l){if(u===a.length-1)return a[u].getTrimmedLength();let _=!a[u].hasContent(l-1)&&a[u].getWidth(l-1)===1,m=a[u+1].getWidth(0)===2;return _&&m?l-1:l}Object.defineProperty(i,"__esModule",{value:!0}),i.getWrappedLineTrimmedLength=i.reflowSmallerGetNewLineLengths=i.reflowLargerApplyNewLayout=i.reflowLargerCreateNewLayout=i.reflowLargerGetLinesToRemove=void 0,i.reflowLargerGetLinesToRemove=function(a,u,l,_,m){let y=[];for(let p=0;p<a.length-1;p++){let c=p,d=a.get(++c);if(!d.isWrapped)continue;let h=[a.get(p)];for(;c<a.length&&d.isWrapped;)h.push(d),d=a.get(++c);if(_>=p&&_<c){p+=h.length-1;continue}let f=0,g=n(h,f,u),C=1,v=0;for(;C<h.length;){let b=n(h,C,u),E=b-v,O=l-g,B=Math.min(E,O);h[f].copyCellsFrom(h[C],v,g,B,!1),g+=B,g===l&&(f++,g=0),v+=B,v===b&&(C++,v=0),g===0&&f!==0&&h[f-1].getWidth(l-1)===2&&(h[f].copyCellsFrom(h[f-1],l-1,g++,1,!1),h[f-1].setCell(l-1,m))}h[f].replaceCells(g,l,m);let x=0;for(let b=h.length-1;b>0&&(b>f||h[b].getTrimmedLength()===0);b--)x++;x>0&&(y.push(p+h.length-x),y.push(x)),p+=h.length-1}return y},i.reflowLargerCreateNewLayout=function(a,u){let l=[],_=0,m=u[_],y=0;for(let p=0;p<a.length;p++)if(m===p){let c=u[++_];a.onDeleteEmitter.fire({index:p-y,amount:c}),p+=c-1,y+=c,m=u[++_]}else l.push(p);return{layout:l,countRemoved:y}},i.reflowLargerApplyNewLayout=function(a,u){let l=[];for(let _=0;_<u.length;_++)l.push(a.get(u[_]));for(let _=0;_<l.length;_++)a.set(_,l[_]);a.length=u.length},i.reflowSmallerGetNewLineLengths=function(a,u,l){let _=[],m=a.map(((d,h)=>n(a,h,u))).reduce(((d,h)=>d+h)),y=0,p=0,c=0;for(;c<m;){if(m-c<l){_.push(m-c);break}y+=l;let d=n(a,p,u);y>d&&(y-=d,p++);let h=a[p].getWidth(y-1)===2;h&&y--;let f=h?l-1:l;_.push(f),c+=f}return _},i.getWrappedLineTrimmedLength=n},5295:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferSet=void 0;let a=n(8460),u=n(844),l=n(9092);class _ extends u.Disposable{constructor(y,p){super(),this._optionsService=y,this._bufferService=p,this._onBufferActivate=this.register(new a.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",(()=>this.setupTabStops())))}reset(){this._normal=new l.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new l.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(y){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(y),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(y,p){this._normal.resize(y,p),this._alt.resize(y,p),this.setupTabStops(y)}setupTabStops(y){this._normal.setupTabStops(y),this._alt.setupTabStops(y)}}i.BufferSet=_},511:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CellData=void 0;let a=n(482),u=n(643),l=n(3734);class _ extends l.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new l.ExtendedAttrs,this.combinedData=""}static fromCharData(y){let p=new _;return p.setFromCharData(y),p}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,a.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(y){this.fg=y[u.CHAR_DATA_ATTR_INDEX],this.bg=0;let p=!1;if(y[u.CHAR_DATA_CHAR_INDEX].length>2)p=!0;else if(y[u.CHAR_DATA_CHAR_INDEX].length===2){let c=y[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=c&&c<=56319){let d=y[u.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=d&&d<=57343?this.content=1024*(c-55296)+d-56320+65536|y[u.CHAR_DATA_WIDTH_INDEX]<<22:p=!0}else p=!0}else this.content=y[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|y[u.CHAR_DATA_WIDTH_INDEX]<<22;p&&(this.combinedData=y[u.CHAR_DATA_CHAR_INDEX],this.content=2097152|y[u.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}i.CellData=_},643:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.WHITESPACE_CELL_CODE=i.WHITESPACE_CELL_WIDTH=i.WHITESPACE_CELL_CHAR=i.NULL_CELL_CODE=i.NULL_CELL_WIDTH=i.NULL_CELL_CHAR=i.CHAR_DATA_CODE_INDEX=i.CHAR_DATA_WIDTH_INDEX=i.CHAR_DATA_CHAR_INDEX=i.CHAR_DATA_ATTR_INDEX=i.DEFAULT_EXT=i.DEFAULT_ATTR=i.DEFAULT_COLOR=void 0,i.DEFAULT_COLOR=0,i.DEFAULT_ATTR=256|i.DEFAULT_COLOR<<9,i.DEFAULT_EXT=0,i.CHAR_DATA_ATTR_INDEX=0,i.CHAR_DATA_CHAR_INDEX=1,i.CHAR_DATA_WIDTH_INDEX=2,i.CHAR_DATA_CODE_INDEX=3,i.NULL_CELL_CHAR="",i.NULL_CELL_WIDTH=1,i.NULL_CELL_CODE=0,i.WHITESPACE_CELL_CHAR=" ",i.WHITESPACE_CELL_WIDTH=1,i.WHITESPACE_CELL_CODE=32},4863:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Marker=void 0;let a=n(8460),u=n(844);class l{get id(){return this._id}constructor(m){this.line=m,this.isDisposed=!1,this._disposables=[],this._id=l._nextId++,this._onDispose=this.register(new a.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,u.disposeArray)(this._disposables),this._disposables.length=0)}register(m){return this._disposables.push(m),m}}i.Marker=l,l._nextId=1},7116:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_CHARSET=i.CHARSETS=void 0,i.CHARSETS={},i.DEFAULT_CHARSET=i.CHARSETS.B,i.CHARSETS[0]={"`":"\u25C6",a:"\u2592",b:"\u2409",c:"\u240C",d:"\u240D",e:"\u240A",f:"\xB0",g:"\xB1",h:"\u2424",i:"\u240B",j:"\u2518",k:"\u2510",l:"\u250C",m:"\u2514",n:"\u253C",o:"\u23BA",p:"\u23BB",q:"\u2500",r:"\u23BC",s:"\u23BD",t:"\u251C",u:"\u2524",v:"\u2534",w:"\u252C",x:"\u2502",y:"\u2264",z:"\u2265","{":"\u03C0","|":"\u2260","}":"\xA3","~":"\xB7"},i.CHARSETS.A={"#":"\xA3"},i.CHARSETS.B=void 0,i.CHARSETS[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"},i.CHARSETS.C=i.CHARSETS[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},i.CHARSETS.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"},i.CHARSETS.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"},i.CHARSETS.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"},i.CHARSETS.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"},i.CHARSETS.E=i.CHARSETS[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"},i.CHARSETS.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"},i.CHARSETS.H=i.CHARSETS[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},i.CHARSETS["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"}},2584:(o,i)=>{var n,a,u;Object.defineProperty(i,"__esModule",{value:!0}),i.C1_ESCAPED=i.C1=i.C0=void 0,(function(l){l.NUL="\0",l.SOH="",l.STX="",l.ETX="",l.EOT="",l.ENQ="",l.ACK="",l.BEL="\x07",l.BS="\b",l.HT=" ",l.LF=`
8
+ `,l.VT="\v",l.FF="\f",l.CR="\r",l.SO="",l.SI="",l.DLE="",l.DC1="",l.DC2="",l.DC3="",l.DC4="",l.NAK="",l.SYN="",l.ETB="",l.CAN="",l.EM="",l.SUB="",l.ESC="\x1B",l.FS="",l.GS="",l.RS="",l.US="",l.SP=" ",l.DEL="\x7F"})(n||(i.C0=n={})),(function(l){l.PAD="\x80",l.HOP="\x81",l.BPH="\x82",l.NBH="\x83",l.IND="\x84",l.NEL="\x85",l.SSA="\x86",l.ESA="\x87",l.HTS="\x88",l.HTJ="\x89",l.VTS="\x8A",l.PLD="\x8B",l.PLU="\x8C",l.RI="\x8D",l.SS2="\x8E",l.SS3="\x8F",l.DCS="\x90",l.PU1="\x91",l.PU2="\x92",l.STS="\x93",l.CCH="\x94",l.MW="\x95",l.SPA="\x96",l.EPA="\x97",l.SOS="\x98",l.SGCI="\x99",l.SCI="\x9A",l.CSI="\x9B",l.ST="\x9C",l.OSC="\x9D",l.PM="\x9E",l.APC="\x9F"})(a||(i.C1=a={})),(function(l){l.ST=`${n.ESC}\\`})(u||(i.C1_ESCAPED=u={}))},7399:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.evaluateKeyboardEvent=void 0;let a=n(2584),u={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};i.evaluateKeyboardEvent=function(l,_,m,y){let p={type:0,cancel:!1,key:void 0},c=(l.shiftKey?1:0)|(l.altKey?2:0)|(l.ctrlKey?4:0)|(l.metaKey?8:0);switch(l.keyCode){case 0:l.key==="UIKeyInputUpArrow"?p.key=_?a.C0.ESC+"OA":a.C0.ESC+"[A":l.key==="UIKeyInputLeftArrow"?p.key=_?a.C0.ESC+"OD":a.C0.ESC+"[D":l.key==="UIKeyInputRightArrow"?p.key=_?a.C0.ESC+"OC":a.C0.ESC+"[C":l.key==="UIKeyInputDownArrow"&&(p.key=_?a.C0.ESC+"OB":a.C0.ESC+"[B");break;case 8:p.key=l.ctrlKey?"\b":a.C0.DEL,l.altKey&&(p.key=a.C0.ESC+p.key);break;case 9:if(l.shiftKey){p.key=a.C0.ESC+"[Z";break}p.key=a.C0.HT,p.cancel=!0;break;case 13:p.key=l.altKey?a.C0.ESC+a.C0.CR:a.C0.CR,p.cancel=!0;break;case 27:p.key=a.C0.ESC,l.altKey&&(p.key=a.C0.ESC+a.C0.ESC),p.cancel=!0;break;case 37:if(l.metaKey)break;c?(p.key=a.C0.ESC+"[1;"+(c+1)+"D",p.key===a.C0.ESC+"[1;3D"&&(p.key=a.C0.ESC+(m?"b":"[1;5D"))):p.key=_?a.C0.ESC+"OD":a.C0.ESC+"[D";break;case 39:if(l.metaKey)break;c?(p.key=a.C0.ESC+"[1;"+(c+1)+"C",p.key===a.C0.ESC+"[1;3C"&&(p.key=a.C0.ESC+(m?"f":"[1;5C"))):p.key=_?a.C0.ESC+"OC":a.C0.ESC+"[C";break;case 38:if(l.metaKey)break;c?(p.key=a.C0.ESC+"[1;"+(c+1)+"A",m||p.key!==a.C0.ESC+"[1;3A"||(p.key=a.C0.ESC+"[1;5A")):p.key=_?a.C0.ESC+"OA":a.C0.ESC+"[A";break;case 40:if(l.metaKey)break;c?(p.key=a.C0.ESC+"[1;"+(c+1)+"B",m||p.key!==a.C0.ESC+"[1;3B"||(p.key=a.C0.ESC+"[1;5B")):p.key=_?a.C0.ESC+"OB":a.C0.ESC+"[B";break;case 45:l.shiftKey||l.ctrlKey||(p.key=a.C0.ESC+"[2~");break;case 46:p.key=c?a.C0.ESC+"[3;"+(c+1)+"~":a.C0.ESC+"[3~";break;case 36:p.key=c?a.C0.ESC+"[1;"+(c+1)+"H":_?a.C0.ESC+"OH":a.C0.ESC+"[H";break;case 35:p.key=c?a.C0.ESC+"[1;"+(c+1)+"F":_?a.C0.ESC+"OF":a.C0.ESC+"[F";break;case 33:l.shiftKey?p.type=2:l.ctrlKey?p.key=a.C0.ESC+"[5;"+(c+1)+"~":p.key=a.C0.ESC+"[5~";break;case 34:l.shiftKey?p.type=3:l.ctrlKey?p.key=a.C0.ESC+"[6;"+(c+1)+"~":p.key=a.C0.ESC+"[6~";break;case 112:p.key=c?a.C0.ESC+"[1;"+(c+1)+"P":a.C0.ESC+"OP";break;case 113:p.key=c?a.C0.ESC+"[1;"+(c+1)+"Q":a.C0.ESC+"OQ";break;case 114:p.key=c?a.C0.ESC+"[1;"+(c+1)+"R":a.C0.ESC+"OR";break;case 115:p.key=c?a.C0.ESC+"[1;"+(c+1)+"S":a.C0.ESC+"OS";break;case 116:p.key=c?a.C0.ESC+"[15;"+(c+1)+"~":a.C0.ESC+"[15~";break;case 117:p.key=c?a.C0.ESC+"[17;"+(c+1)+"~":a.C0.ESC+"[17~";break;case 118:p.key=c?a.C0.ESC+"[18;"+(c+1)+"~":a.C0.ESC+"[18~";break;case 119:p.key=c?a.C0.ESC+"[19;"+(c+1)+"~":a.C0.ESC+"[19~";break;case 120:p.key=c?a.C0.ESC+"[20;"+(c+1)+"~":a.C0.ESC+"[20~";break;case 121:p.key=c?a.C0.ESC+"[21;"+(c+1)+"~":a.C0.ESC+"[21~";break;case 122:p.key=c?a.C0.ESC+"[23;"+(c+1)+"~":a.C0.ESC+"[23~";break;case 123:p.key=c?a.C0.ESC+"[24;"+(c+1)+"~":a.C0.ESC+"[24~";break;default:if(!l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)if(m&&!y||!l.altKey||l.metaKey)!m||l.altKey||l.ctrlKey||l.shiftKey||!l.metaKey?l.key&&!l.ctrlKey&&!l.altKey&&!l.metaKey&&l.keyCode>=48&&l.key.length===1?p.key=l.key:l.key&&l.ctrlKey&&(l.key==="_"&&(p.key=a.C0.US),l.key==="@"&&(p.key=a.C0.NUL)):l.keyCode===65&&(p.type=1);else{let d=u[l.keyCode],h=d?.[l.shiftKey?1:0];if(h)p.key=a.C0.ESC+h;else if(l.keyCode>=65&&l.keyCode<=90){let f=l.ctrlKey?l.keyCode-64:l.keyCode+32,g=String.fromCharCode(f);l.shiftKey&&(g=g.toUpperCase()),p.key=a.C0.ESC+g}else if(l.keyCode===32)p.key=a.C0.ESC+(l.ctrlKey?a.C0.NUL:" ");else if(l.key==="Dead"&&l.code.startsWith("Key")){let f=l.code.slice(3,4);l.shiftKey||(f=f.toLowerCase()),p.key=a.C0.ESC+f,p.cancel=!0}}else l.keyCode>=65&&l.keyCode<=90?p.key=String.fromCharCode(l.keyCode-64):l.keyCode===32?p.key=a.C0.NUL:l.keyCode>=51&&l.keyCode<=55?p.key=String.fromCharCode(l.keyCode-51+27):l.keyCode===56?p.key=a.C0.DEL:l.keyCode===219?p.key=a.C0.ESC:l.keyCode===220?p.key=a.C0.FS:l.keyCode===221&&(p.key=a.C0.GS)}return p}},482:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Utf8ToUtf32=i.StringToUtf32=i.utf32ToString=i.stringFromCodePoint=void 0,i.stringFromCodePoint=function(n){return n>65535?(n-=65536,String.fromCharCode(55296+(n>>10))+String.fromCharCode(n%1024+56320)):String.fromCharCode(n)},i.utf32ToString=function(n,a=0,u=n.length){let l="";for(let _=a;_<u;++_){let m=n[_];m>65535?(m-=65536,l+=String.fromCharCode(55296+(m>>10))+String.fromCharCode(m%1024+56320)):l+=String.fromCharCode(m)}return l},i.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(n,a){let u=n.length;if(!u)return 0;let l=0,_=0;if(this._interim){let m=n.charCodeAt(_++);56320<=m&&m<=57343?a[l++]=1024*(this._interim-55296)+m-56320+65536:(a[l++]=this._interim,a[l++]=m),this._interim=0}for(let m=_;m<u;++m){let y=n.charCodeAt(m);if(55296<=y&&y<=56319){if(++m>=u)return this._interim=y,l;let p=n.charCodeAt(m);56320<=p&&p<=57343?a[l++]=1024*(y-55296)+p-56320+65536:(a[l++]=y,a[l++]=p)}else y!==65279&&(a[l++]=y)}return l}},i.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(n,a){let u=n.length;if(!u)return 0;let l,_,m,y,p=0,c=0,d=0;if(this.interim[0]){let g=!1,C=this.interim[0];C&=(224&C)==192?31:(240&C)==224?15:7;let v,x=0;for(;(v=63&this.interim[++x])&&x<4;)C<<=6,C|=v;let b=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,E=b-x;for(;d<E;){if(d>=u)return 0;if(v=n[d++],(192&v)!=128){d--,g=!0;break}this.interim[x++]=v,C<<=6,C|=63&v}g||(b===2?C<128?d--:a[p++]=C:b===3?C<2048||C>=55296&&C<=57343||C===65279||(a[p++]=C):C<65536||C>1114111||(a[p++]=C)),this.interim.fill(0)}let h=u-4,f=d;for(;f<u;){for(;!(!(f<h)||128&(l=n[f])||128&(_=n[f+1])||128&(m=n[f+2])||128&(y=n[f+3]));)a[p++]=l,a[p++]=_,a[p++]=m,a[p++]=y,f+=4;if(l=n[f++],l<128)a[p++]=l;else if((224&l)==192){if(f>=u)return this.interim[0]=l,p;if(_=n[f++],(192&_)!=128){f--;continue}if(c=(31&l)<<6|63&_,c<128){f--;continue}a[p++]=c}else if((240&l)==224){if(f>=u)return this.interim[0]=l,p;if(_=n[f++],(192&_)!=128){f--;continue}if(f>=u)return this.interim[0]=l,this.interim[1]=_,p;if(m=n[f++],(192&m)!=128){f--;continue}if(c=(15&l)<<12|(63&_)<<6|63&m,c<2048||c>=55296&&c<=57343||c===65279)continue;a[p++]=c}else if((248&l)==240){if(f>=u)return this.interim[0]=l,p;if(_=n[f++],(192&_)!=128){f--;continue}if(f>=u)return this.interim[0]=l,this.interim[1]=_,p;if(m=n[f++],(192&m)!=128){f--;continue}if(f>=u)return this.interim[0]=l,this.interim[1]=_,this.interim[2]=m,p;if(y=n[f++],(192&y)!=128){f--;continue}if(c=(7&l)<<18|(63&_)<<12|(63&m)<<6|63&y,c<65536||c>1114111)continue;a[p++]=c}}return p}}},225:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.UnicodeV6=void 0;let a=n(1480),u=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],l=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],_;i.UnicodeV6=class{constructor(){if(this.version="6",!_){_=new Uint8Array(65536),_.fill(1),_[0]=0,_.fill(0,1,32),_.fill(0,127,160),_.fill(2,4352,4448),_[9001]=2,_[9002]=2,_.fill(2,11904,42192),_[12351]=1,_.fill(2,44032,55204),_.fill(2,63744,64256),_.fill(2,65040,65050),_.fill(2,65072,65136),_.fill(2,65280,65377),_.fill(2,65504,65511);for(let m=0;m<u.length;++m)_.fill(0,u[m][0],u[m][1]+1)}}wcwidth(m){return m<32?0:m<127?1:m<65536?_[m]:(function(y,p){let c,d=0,h=p.length-1;if(y<p[0][0]||y>p[h][1])return!1;for(;h>=d;)if(c=d+h>>1,y>p[c][1])d=c+1;else{if(!(y<p[c][0]))return!0;h=c-1}return!1})(m,l)?0:m>=131072&&m<=196605||m>=196608&&m<=262141?2:1}charProperties(m,y){let p=this.wcwidth(m),c=p===0&&y!==0;if(c){let d=a.UnicodeService.extractWidth(y);d===0?c=!1:d>p&&(p=d)}return a.UnicodeService.createPropertyValue(0,p,c)}}},5981:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.WriteBuffer=void 0;let a=n(8460),u=n(844);class l extends u.Disposable{constructor(m){super(),this._action=m,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new a.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(m,y){if(y!==void 0&&this._syncCalls>y)return void(this._syncCalls=0);if(this._pendingData+=m.length,this._writeBuffer.push(m),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let p;for(this._isSyncWriting=!0;p=this._writeBuffer.shift();){this._action(p);let c=this._callbacks.shift();c&&c()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(m,y){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=m.length,this._writeBuffer.push(m),this._callbacks.push(y),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=m.length,this._writeBuffer.push(m),this._callbacks.push(y)}_innerWrite(m=0,y=!0){let p=m||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){let c=this._writeBuffer[this._bufferOffset],d=this._action(c,y);if(d){let f=g=>Date.now()-p>=12?setTimeout((()=>this._innerWrite(0,g))):this._innerWrite(p,g);return void d.catch((g=>(queueMicrotask((()=>{throw g})),Promise.resolve(!1)))).then(f)}let h=this._callbacks[this._bufferOffset];if(h&&h(),this._bufferOffset++,this._pendingData-=c.length,Date.now()-p>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}i.WriteBuffer=l},5941:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.toRgbString=i.parseColor=void 0;let n=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,a=/^[\da-f]+$/;function u(l,_){let m=l.toString(16),y=m.length<2?"0"+m:m;switch(_){case 4:return m[0];case 8:return y;case 12:return(y+y).slice(0,3);default:return y+y}}i.parseColor=function(l){if(!l)return;let _=l.toLowerCase();if(_.indexOf("rgb:")===0){_=_.slice(4);let m=n.exec(_);if(m){let y=m[1]?15:m[4]?255:m[7]?4095:65535;return[Math.round(parseInt(m[1]||m[4]||m[7]||m[10],16)/y*255),Math.round(parseInt(m[2]||m[5]||m[8]||m[11],16)/y*255),Math.round(parseInt(m[3]||m[6]||m[9]||m[12],16)/y*255)]}}else if(_.indexOf("#")===0&&(_=_.slice(1),a.exec(_)&&[3,6,9,12].includes(_.length))){let m=_.length/3,y=[0,0,0];for(let p=0;p<3;++p){let c=parseInt(_.slice(m*p,m*p+m),16);y[p]=m===1?c<<4:m===2?c:m===3?c>>4:c>>8}return y}},i.toRgbString=function(l,_=16){let[m,y,p]=l;return`rgb:${u(m,_)}/${u(y,_)}/${u(p,_)}`}},5770:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.PAYLOAD_LIMIT=void 0,i.PAYLOAD_LIMIT=1e7},6351:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DcsHandler=i.DcsParser=void 0;let a=n(482),u=n(8742),l=n(5770),_=[];i.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=_,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=_}registerHandler(y,p){this._handlers[y]===void 0&&(this._handlers[y]=[]);let c=this._handlers[y];return c.push(p),{dispose:()=>{let d=c.indexOf(p);d!==-1&&c.splice(d,1)}}}clearHandler(y){this._handlers[y]&&delete this._handlers[y]}setHandlerFallback(y){this._handlerFb=y}reset(){if(this._active.length)for(let y=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;y>=0;--y)this._active[y].unhook(!1);this._stack.paused=!1,this._active=_,this._ident=0}hook(y,p){if(this.reset(),this._ident=y,this._active=this._handlers[y]||_,this._active.length)for(let c=this._active.length-1;c>=0;c--)this._active[c].hook(p);else this._handlerFb(this._ident,"HOOK",p)}put(y,p,c){if(this._active.length)for(let d=this._active.length-1;d>=0;d--)this._active[d].put(y,p,c);else this._handlerFb(this._ident,"PUT",(0,a.utf32ToString)(y,p,c))}unhook(y,p=!0){if(this._active.length){let c=!1,d=this._active.length-1,h=!1;if(this._stack.paused&&(d=this._stack.loopPosition-1,c=p,h=this._stack.fallThrough,this._stack.paused=!1),!h&&c===!1){for(;d>=0&&(c=this._active[d].unhook(y),c!==!0);d--)if(c instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!1,c;d--}for(;d>=0;d--)if(c=this._active[d].unhook(!1),c instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!0,c}else this._handlerFb(this._ident,"UNHOOK",y);this._active=_,this._ident=0}};let m=new u.Params;m.addParam(0),i.DcsHandler=class{constructor(y){this._handler=y,this._data="",this._params=m,this._hitLimit=!1}hook(y){this._params=y.length>1||y.params[0]?y.clone():m,this._data="",this._hitLimit=!1}put(y,p,c){this._hitLimit||(this._data+=(0,a.utf32ToString)(y,p,c),this._data.length>l.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(y){let p=!1;if(this._hitLimit)p=!1;else if(y&&(p=this._handler(this._data,this._params),p instanceof Promise))return p.then((c=>(this._params=m,this._data="",this._hitLimit=!1,c)));return this._params=m,this._data="",this._hitLimit=!1,p}}},2015:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.EscapeSequenceParser=i.VT500_TRANSITION_TABLE=i.TransitionTable=void 0;let a=n(844),u=n(8742),l=n(6242),_=n(6351);class m{constructor(d){this.table=new Uint8Array(d)}setDefault(d,h){this.table.fill(d<<4|h)}add(d,h,f,g){this.table[h<<8|d]=f<<4|g}addMany(d,h,f,g){for(let C=0;C<d.length;C++)this.table[h<<8|d[C]]=f<<4|g}}i.TransitionTable=m;let y=160;i.VT500_TRANSITION_TABLE=(function(){let c=new m(4095),d=Array.apply(null,Array(256)).map(((x,b)=>b)),h=(x,b)=>d.slice(x,b),f=h(32,127),g=h(0,24);g.push(25),g.push.apply(g,h(28,32));let C=h(0,14),v;for(v in c.setDefault(1,0),c.addMany(f,0,2,0),C)c.addMany([24,26,153,154],v,3,0),c.addMany(h(128,144),v,3,0),c.addMany(h(144,152),v,3,0),c.add(156,v,0,0),c.add(27,v,11,1),c.add(157,v,4,8),c.addMany([152,158,159],v,0,7),c.add(155,v,11,3),c.add(144,v,11,9);return c.addMany(g,0,3,0),c.addMany(g,1,3,1),c.add(127,1,0,1),c.addMany(g,8,0,8),c.addMany(g,3,3,3),c.add(127,3,0,3),c.addMany(g,4,3,4),c.add(127,4,0,4),c.addMany(g,6,3,6),c.addMany(g,5,3,5),c.add(127,5,0,5),c.addMany(g,2,3,2),c.add(127,2,0,2),c.add(93,1,4,8),c.addMany(f,8,5,8),c.add(127,8,5,8),c.addMany([156,27,24,26,7],8,6,0),c.addMany(h(28,32),8,0,8),c.addMany([88,94,95],1,0,7),c.addMany(f,7,0,7),c.addMany(g,7,0,7),c.add(156,7,0,0),c.add(127,7,0,7),c.add(91,1,11,3),c.addMany(h(64,127),3,7,0),c.addMany(h(48,60),3,8,4),c.addMany([60,61,62,63],3,9,4),c.addMany(h(48,60),4,8,4),c.addMany(h(64,127),4,7,0),c.addMany([60,61,62,63],4,0,6),c.addMany(h(32,64),6,0,6),c.add(127,6,0,6),c.addMany(h(64,127),6,0,0),c.addMany(h(32,48),3,9,5),c.addMany(h(32,48),5,9,5),c.addMany(h(48,64),5,0,6),c.addMany(h(64,127),5,7,0),c.addMany(h(32,48),4,9,5),c.addMany(h(32,48),1,9,2),c.addMany(h(32,48),2,9,2),c.addMany(h(48,127),2,10,0),c.addMany(h(48,80),1,10,0),c.addMany(h(81,88),1,10,0),c.addMany([89,90,92],1,10,0),c.addMany(h(96,127),1,10,0),c.add(80,1,11,9),c.addMany(g,9,0,9),c.add(127,9,0,9),c.addMany(h(28,32),9,0,9),c.addMany(h(32,48),9,9,12),c.addMany(h(48,60),9,8,10),c.addMany([60,61,62,63],9,9,10),c.addMany(g,11,0,11),c.addMany(h(32,128),11,0,11),c.addMany(h(28,32),11,0,11),c.addMany(g,10,0,10),c.add(127,10,0,10),c.addMany(h(28,32),10,0,10),c.addMany(h(48,60),10,8,10),c.addMany([60,61,62,63],10,0,11),c.addMany(h(32,48),10,9,12),c.addMany(g,12,0,12),c.add(127,12,0,12),c.addMany(h(28,32),12,0,12),c.addMany(h(32,48),12,9,12),c.addMany(h(48,64),12,0,11),c.addMany(h(64,127),12,12,13),c.addMany(h(64,127),10,12,13),c.addMany(h(64,127),9,12,13),c.addMany(g,13,13,13),c.addMany(f,13,13,13),c.add(127,13,0,13),c.addMany([27,156,24,26],13,14,0),c.add(y,0,2,0),c.add(y,8,5,8),c.add(y,6,0,6),c.add(y,11,0,11),c.add(y,13,13,13),c})();class p extends a.Disposable{constructor(d=i.VT500_TRANSITION_TABLE){super(),this._transitions=d,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new u.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(h,f,g)=>{},this._executeHandlerFb=h=>{},this._csiHandlerFb=(h,f)=>{},this._escHandlerFb=h=>{},this._errorHandlerFb=h=>h,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,a.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new l.OscParser),this._dcsParser=this.register(new _.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(d,h=[64,126]){let f=0;if(d.prefix){if(d.prefix.length>1)throw new Error("only one byte as prefix supported");if(f=d.prefix.charCodeAt(0),f&&60>f||f>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(d.intermediates){if(d.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let C=0;C<d.intermediates.length;++C){let v=d.intermediates.charCodeAt(C);if(32>v||v>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");f<<=8,f|=v}}if(d.final.length!==1)throw new Error("final must be a single byte");let g=d.final.charCodeAt(0);if(h[0]>g||g>h[1])throw new Error(`final must be in range ${h[0]} .. ${h[1]}`);return f<<=8,f|=g,f}identToString(d){let h=[];for(;d;)h.push(String.fromCharCode(255&d)),d>>=8;return h.reverse().join("")}setPrintHandler(d){this._printHandler=d}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(d,h){let f=this._identifier(d,[48,126]);this._escHandlers[f]===void 0&&(this._escHandlers[f]=[]);let g=this._escHandlers[f];return g.push(h),{dispose:()=>{let C=g.indexOf(h);C!==-1&&g.splice(C,1)}}}clearEscHandler(d){this._escHandlers[this._identifier(d,[48,126])]&&delete this._escHandlers[this._identifier(d,[48,126])]}setEscHandlerFallback(d){this._escHandlerFb=d}setExecuteHandler(d,h){this._executeHandlers[d.charCodeAt(0)]=h}clearExecuteHandler(d){this._executeHandlers[d.charCodeAt(0)]&&delete this._executeHandlers[d.charCodeAt(0)]}setExecuteHandlerFallback(d){this._executeHandlerFb=d}registerCsiHandler(d,h){let f=this._identifier(d);this._csiHandlers[f]===void 0&&(this._csiHandlers[f]=[]);let g=this._csiHandlers[f];return g.push(h),{dispose:()=>{let C=g.indexOf(h);C!==-1&&g.splice(C,1)}}}clearCsiHandler(d){this._csiHandlers[this._identifier(d)]&&delete this._csiHandlers[this._identifier(d)]}setCsiHandlerFallback(d){this._csiHandlerFb=d}registerDcsHandler(d,h){return this._dcsParser.registerHandler(this._identifier(d),h)}clearDcsHandler(d){this._dcsParser.clearHandler(this._identifier(d))}setDcsHandlerFallback(d){this._dcsParser.setHandlerFallback(d)}registerOscHandler(d,h){return this._oscParser.registerHandler(d,h)}clearOscHandler(d){this._oscParser.clearHandler(d)}setOscHandlerFallback(d){this._oscParser.setHandlerFallback(d)}setErrorHandler(d){this._errorHandler=d}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(d,h,f,g,C){this._parseStack.state=d,this._parseStack.handlers=h,this._parseStack.handlerPos=f,this._parseStack.transition=g,this._parseStack.chunkPos=C}parse(d,h,f){let g,C=0,v=0,x=0;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,x=this._parseStack.chunkPos+1;else{if(f===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");let b=this._parseStack.handlers,E=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(f===!1&&E>-1){for(;E>=0&&(g=b[E](this._params),g!==!0);E--)if(g instanceof Promise)return this._parseStack.handlerPos=E,g}this._parseStack.handlers=[];break;case 4:if(f===!1&&E>-1){for(;E>=0&&(g=b[E](),g!==!0);E--)if(g instanceof Promise)return this._parseStack.handlerPos=E,g}this._parseStack.handlers=[];break;case 6:if(C=d[this._parseStack.chunkPos],g=this._dcsParser.unhook(C!==24&&C!==26,f),g)return g;C===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(C=d[this._parseStack.chunkPos],g=this._oscParser.end(C!==24&&C!==26,f),g)return g;C===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,x=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let b=x;b<h;++b){switch(C=d[b],v=this._transitions.table[this.currentState<<8|(C<160?C:y)],v>>4){case 2:for(let A=b+1;;++A){if(A>=h||(C=d[A])<32||C>126&&C<y){this._printHandler(d,b,A),b=A-1;break}if(++A>=h||(C=d[A])<32||C>126&&C<y){this._printHandler(d,b,A),b=A-1;break}if(++A>=h||(C=d[A])<32||C>126&&C<y){this._printHandler(d,b,A),b=A-1;break}if(++A>=h||(C=d[A])<32||C>126&&C<y){this._printHandler(d,b,A),b=A-1;break}}break;case 3:this._executeHandlers[C]?this._executeHandlers[C]():this._executeHandlerFb(C),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:b,code:C,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let E=this._csiHandlers[this._collect<<8|C],O=E?E.length-1:-1;for(;O>=0&&(g=E[O](this._params),g!==!0);O--)if(g instanceof Promise)return this._preserveStack(3,E,O,v,b),g;O<0&&this._csiHandlerFb(this._collect<<8|C,this._params),this.precedingJoinState=0;break;case 8:do switch(C){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(C-48)}while(++b<h&&(C=d[b])>47&&C<60);b--;break;case 9:this._collect<<=8,this._collect|=C;break;case 10:let B=this._escHandlers[this._collect<<8|C],N=B?B.length-1:-1;for(;N>=0&&(g=B[N](),g!==!0);N--)if(g instanceof Promise)return this._preserveStack(4,B,N,v,b),g;N<0&&this._escHandlerFb(this._collect<<8|C),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|C,this._params);break;case 13:for(let A=b+1;;++A)if(A>=h||(C=d[A])===24||C===26||C===27||C>127&&C<y){this._dcsParser.put(d,b,A),b=A-1;break}break;case 14:if(g=this._dcsParser.unhook(C!==24&&C!==26),g)return this._preserveStack(6,[],0,v,b),g;C===27&&(v|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let A=b+1;;A++)if(A>=h||(C=d[A])<32||C>127&&C<y){this._oscParser.put(d,b,A),b=A-1;break}break;case 6:if(g=this._oscParser.end(C!==24&&C!==26),g)return this._preserveStack(5,[],0,v,b),g;C===27&&(v|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0}this.currentState=15&v}}}i.EscapeSequenceParser=p},6242:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.OscHandler=i.OscParser=void 0;let a=n(5770),u=n(482),l=[];i.OscParser=class{constructor(){this._state=0,this._active=l,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(_,m){this._handlers[_]===void 0&&(this._handlers[_]=[]);let y=this._handlers[_];return y.push(m),{dispose:()=>{let p=y.indexOf(m);p!==-1&&y.splice(p,1)}}}clearHandler(_){this._handlers[_]&&delete this._handlers[_]}setHandlerFallback(_){this._handlerFb=_}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=l}reset(){if(this._state===2)for(let _=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;_>=0;--_)this._active[_].end(!1);this._stack.paused=!1,this._active=l,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||l,this._active.length)for(let _=this._active.length-1;_>=0;_--)this._active[_].start();else this._handlerFb(this._id,"START")}_put(_,m,y){if(this._active.length)for(let p=this._active.length-1;p>=0;p--)this._active[p].put(_,m,y);else this._handlerFb(this._id,"PUT",(0,u.utf32ToString)(_,m,y))}start(){this.reset(),this._state=1}put(_,m,y){if(this._state!==3){if(this._state===1)for(;m<y;){let p=_[m++];if(p===59){this._state=2,this._start();break}if(p<48||57<p)return void(this._state=3);this._id===-1&&(this._id=0),this._id=10*this._id+p-48}this._state===2&&y-m>0&&this._put(_,m,y)}}end(_,m=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),this._active.length){let y=!1,p=this._active.length-1,c=!1;if(this._stack.paused&&(p=this._stack.loopPosition-1,y=m,c=this._stack.fallThrough,this._stack.paused=!1),!c&&y===!1){for(;p>=0&&(y=this._active[p].end(_),y!==!0);p--)if(y instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=p,this._stack.fallThrough=!1,y;p--}for(;p>=0;p--)if(y=this._active[p].end(!1),y instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=p,this._stack.fallThrough=!0,y}else this._handlerFb(this._id,"END",_);this._active=l,this._id=-1,this._state=0}}},i.OscHandler=class{constructor(_){this._handler=_,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(_,m,y){this._hitLimit||(this._data+=(0,u.utf32ToString)(_,m,y),this._data.length>a.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(_){let m=!1;if(this._hitLimit)m=!1;else if(_&&(m=this._handler(this._data),m instanceof Promise))return m.then((y=>(this._data="",this._hitLimit=!1,y)));return this._data="",this._hitLimit=!1,m}}},8742:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.Params=void 0;let n=2147483647;class a{static fromArray(l){let _=new a;if(!l.length)return _;for(let m=Array.isArray(l[0])?1:0;m<l.length;++m){let y=l[m];if(Array.isArray(y))for(let p=0;p<y.length;++p)_.addSubParam(y[p]);else _.addParam(y)}return _}constructor(l=32,_=32){if(this.maxLength=l,this.maxSubParamsLength=_,_>256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(l),this.length=0,this._subParams=new Int32Array(_),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(l),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){let l=new a(this.maxLength,this.maxSubParamsLength);return l.params.set(this.params),l.length=this.length,l._subParams.set(this._subParams),l._subParamsLength=this._subParamsLength,l._subParamsIdx.set(this._subParamsIdx),l._rejectDigits=this._rejectDigits,l._rejectSubDigits=this._rejectSubDigits,l._digitIsSub=this._digitIsSub,l}toArray(){let l=[];for(let _=0;_<this.length;++_){l.push(this.params[_]);let m=this._subParamsIdx[_]>>8,y=255&this._subParamsIdx[_];y-m>0&&l.push(Array.prototype.slice.call(this._subParams,m,y))}return l}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(l){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(l<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=l>n?n:l}}addSubParam(l){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(l<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=l>n?n:l,this._subParamsIdx[this.length-1]++}}hasSubParams(l){return(255&this._subParamsIdx[l])-(this._subParamsIdx[l]>>8)>0}getSubParams(l){let _=this._subParamsIdx[l]>>8,m=255&this._subParamsIdx[l];return m-_>0?this._subParams.subarray(_,m):null}getSubParamsAll(){let l={};for(let _=0;_<this.length;++_){let m=this._subParamsIdx[_]>>8,y=255&this._subParamsIdx[_];y-m>0&&(l[_]=this._subParams.slice(m,y))}return l}addDigit(l){let _;if(this._rejectDigits||!(_=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let m=this._digitIsSub?this._subParams:this.params,y=m[_-1];m[_-1]=~y?Math.min(10*y+l,n):l}}i.Params=a},5741:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.AddonManager=void 0,i.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let n=this._addons.length-1;n>=0;n--)this._addons[n].instance.dispose()}loadAddon(n,a){let u={instance:a,dispose:a.dispose,isDisposed:!1};this._addons.push(u),a.dispose=()=>this._wrappedAddonDispose(u),a.activate(n)}_wrappedAddonDispose(n){if(n.isDisposed)return;let a=-1;for(let u=0;u<this._addons.length;u++)if(this._addons[u]===n){a=u;break}if(a===-1)throw new Error("Could not dispose an addon that has not been loaded");n.isDisposed=!0,n.dispose.apply(n.instance),this._addons.splice(a,1)}}},8771:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferApiView=void 0;let a=n(3785),u=n(511);i.BufferApiView=class{constructor(l,_){this._buffer=l,this.type=_}init(l){return this._buffer=l,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(l){let _=this._buffer.lines.get(l);if(_)return new a.BufferLineApiView(_)}getNullCell(){return new u.CellData}}},3785:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferLineApiView=void 0;let a=n(511);i.BufferLineApiView=class{constructor(u){this._line=u}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(u,l){if(!(u<0||u>=this._line.length))return l?(this._line.loadCell(u,l),l):this._line.loadCell(u,new a.CellData)}translateToString(u,l,_){return this._line.translateToString(u,l,_)}}},8285:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.BufferNamespaceApi=void 0;let a=n(8771),u=n(8460),l=n(844);class _ extends l.Disposable{constructor(y){super(),this._core=y,this._onBufferChange=this.register(new u.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new a.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new a.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}i.BufferNamespaceApi=_},7975:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ParserApi=void 0,i.ParserApi=class{constructor(n){this._core=n}registerCsiHandler(n,a){return this._core.registerCsiHandler(n,(u=>a(u.toArray())))}addCsiHandler(n,a){return this.registerCsiHandler(n,a)}registerDcsHandler(n,a){return this._core.registerDcsHandler(n,((u,l)=>a(u,l.toArray())))}addDcsHandler(n,a){return this.registerDcsHandler(n,a)}registerEscHandler(n,a){return this._core.registerEscHandler(n,a)}addEscHandler(n,a){return this.registerEscHandler(n,a)}registerOscHandler(n,a){return this._core.registerOscHandler(n,a)}addOscHandler(n,a){return this.registerOscHandler(n,a)}}},7090:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.UnicodeApi=void 0,i.UnicodeApi=class{constructor(n){this._core=n}register(n){this._core.unicodeService.register(n)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(n){this._core.unicodeService.activeVersion=n}}},744:function(o,i,n){var a=this&&this.__decorate||function(c,d,h,f){var g,C=arguments.length,v=C<3?d:f===null?f=Object.getOwnPropertyDescriptor(d,h):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(c,d,h,f);else for(var x=c.length-1;x>=0;x--)(g=c[x])&&(v=(C<3?g(v):C>3?g(d,h,v):g(d,h))||v);return C>3&&v&&Object.defineProperty(d,h,v),v},u=this&&this.__param||function(c,d){return function(h,f){d(h,f,c)}};Object.defineProperty(i,"__esModule",{value:!0}),i.BufferService=i.MINIMUM_ROWS=i.MINIMUM_COLS=void 0;let l=n(8460),_=n(844),m=n(5295),y=n(2585);i.MINIMUM_COLS=2,i.MINIMUM_ROWS=1;let p=i.BufferService=class extends _.Disposable{get buffer(){return this.buffers.active}constructor(c){super(),this.isUserScrolling=!1,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new l.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(c.rawOptions.cols||0,i.MINIMUM_COLS),this.rows=Math.max(c.rawOptions.rows||0,i.MINIMUM_ROWS),this.buffers=this.register(new m.BufferSet(c,this))}resize(c,d){this.cols=c,this.rows=d,this.buffers.resize(c,d),this._onResize.fire({cols:c,rows:d})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(c,d=!1){let h=this.buffer,f;f=this._cachedBlankLine,f&&f.length===this.cols&&f.getFg(0)===c.fg&&f.getBg(0)===c.bg||(f=h.getBlankLine(c,d),this._cachedBlankLine=f),f.isWrapped=d;let g=h.ybase+h.scrollTop,C=h.ybase+h.scrollBottom;if(h.scrollTop===0){let v=h.lines.isFull;C===h.lines.length-1?v?h.lines.recycle().copyFrom(f):h.lines.push(f.clone()):h.lines.splice(C+1,0,f.clone()),v?this.isUserScrolling&&(h.ydisp=Math.max(h.ydisp-1,0)):(h.ybase++,this.isUserScrolling||h.ydisp++)}else{let v=C-g+1;h.lines.shiftElements(g+1,v-1,-1),h.lines.set(C,f.clone())}this.isUserScrolling||(h.ydisp=h.ybase),this._onScroll.fire(h.ydisp)}scrollLines(c,d,h){let f=this.buffer;if(c<0){if(f.ydisp===0)return;this.isUserScrolling=!0}else c+f.ydisp>=f.ybase&&(this.isUserScrolling=!1);let g=f.ydisp;f.ydisp=Math.max(Math.min(f.ydisp+c,f.ybase),0),g!==f.ydisp&&(d||this._onScroll.fire(f.ydisp))}};i.BufferService=p=a([u(0,y.IOptionsService)],p)},7994:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.CharsetService=void 0,i.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(n){this.glevel=n,this.charset=this._charsets[n]}setgCharset(n,a){this._charsets[n]=a,this.glevel===n&&(this.charset=a)}}},1753:function(o,i,n){var a=this&&this.__decorate||function(f,g,C,v){var x,b=arguments.length,E=b<3?g:v===null?v=Object.getOwnPropertyDescriptor(g,C):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(f,g,C,v);else for(var O=f.length-1;O>=0;O--)(x=f[O])&&(E=(b<3?x(E):b>3?x(g,C,E):x(g,C))||E);return b>3&&E&&Object.defineProperty(g,C,E),E},u=this&&this.__param||function(f,g){return function(C,v){g(C,v,f)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CoreMouseService=void 0;let l=n(2585),_=n(8460),m=n(844),y={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:f=>f.button!==4&&f.action===1&&(f.ctrl=!1,f.alt=!1,f.shift=!1,!0)},VT200:{events:19,restrict:f=>f.action!==32},DRAG:{events:23,restrict:f=>f.action!==32||f.button!==3},ANY:{events:31,restrict:f=>!0}};function p(f,g){let C=(f.ctrl?16:0)|(f.shift?4:0)|(f.alt?8:0);return f.button===4?(C|=64,C|=f.action):(C|=3&f.button,4&f.button&&(C|=64),8&f.button&&(C|=128),f.action===32?C|=32:f.action!==0||g||(C|=3)),C}let c=String.fromCharCode,d={DEFAULT:f=>{let g=[p(f,!1)+32,f.col+32,f.row+32];return g[0]>255||g[1]>255||g[2]>255?"":`\x1B[M${c(g[0])}${c(g[1])}${c(g[2])}`},SGR:f=>{let g=f.action===0&&f.button!==4?"m":"M";return`\x1B[<${p(f,!0)};${f.col};${f.row}${g}`},SGR_PIXELS:f=>{let g=f.action===0&&f.button!==4?"m":"M";return`\x1B[<${p(f,!0)};${f.x};${f.y}${g}`}},h=i.CoreMouseService=class extends m.Disposable{constructor(f,g){super(),this._bufferService=f,this._coreService=g,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new _.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(let C of Object.keys(y))this.addProtocol(C,y[C]);for(let C of Object.keys(d))this.addEncoding(C,d[C]);this.reset()}addProtocol(f,g){this._protocols[f]=g}addEncoding(f,g){this._encodings[f]=g}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(f){if(!this._protocols[f])throw new Error(`unknown protocol "${f}"`);this._activeProtocol=f,this._onProtocolChange.fire(this._protocols[f].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(f){if(!this._encodings[f])throw new Error(`unknown encoding "${f}"`);this._activeEncoding=f}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(f){if(f.col<0||f.col>=this._bufferService.cols||f.row<0||f.row>=this._bufferService.rows||f.button===4&&f.action===32||f.button===3&&f.action!==32||f.button!==4&&(f.action===2||f.action===3)||(f.col++,f.row++,f.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,f,this._activeEncoding==="SGR_PIXELS"))||!this._protocols[this._activeProtocol].restrict(f))return!1;let g=this._encodings[this._activeEncoding](f);return g&&(this._activeEncoding==="DEFAULT"?this._coreService.triggerBinaryEvent(g):this._coreService.triggerDataEvent(g,!0)),this._lastEvent=f,!0}explainEvents(f){return{down:!!(1&f),up:!!(2&f),drag:!!(4&f),move:!!(8&f),wheel:!!(16&f)}}_equalEvents(f,g,C){if(C){if(f.x!==g.x||f.y!==g.y)return!1}else if(f.col!==g.col||f.row!==g.row)return!1;return f.button===g.button&&f.action===g.action&&f.ctrl===g.ctrl&&f.alt===g.alt&&f.shift===g.shift}};i.CoreMouseService=h=a([u(0,l.IBufferService),u(1,l.ICoreService)],h)},6975:function(o,i,n){var a=this&&this.__decorate||function(h,f,g,C){var v,x=arguments.length,b=x<3?f:C===null?C=Object.getOwnPropertyDescriptor(f,g):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,f,g,C);else for(var E=h.length-1;E>=0;E--)(v=h[E])&&(b=(x<3?v(b):x>3?v(f,g,b):v(f,g))||b);return x>3&&b&&Object.defineProperty(f,g,b),b},u=this&&this.__param||function(h,f){return function(g,C){f(g,C,h)}};Object.defineProperty(i,"__esModule",{value:!0}),i.CoreService=void 0;let l=n(1439),_=n(8460),m=n(844),y=n(2585),p=Object.freeze({insertMode:!1}),c=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0}),d=i.CoreService=class extends m.Disposable{constructor(h,f,g){super(),this._bufferService=h,this._logService=f,this._optionsService=g,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new _.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new _.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new _.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new _.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,l.clone)(p),this.decPrivateModes=(0,l.clone)(c)}reset(){this.modes=(0,l.clone)(p),this.decPrivateModes=(0,l.clone)(c)}triggerDataEvent(h,f=!1){if(this._optionsService.rawOptions.disableStdin)return;let g=this._bufferService.buffer;f&&this._optionsService.rawOptions.scrollOnUserInput&&g.ybase!==g.ydisp&&this._onRequestScrollToBottom.fire(),f&&this._onUserInput.fire(),this._logService.debug(`sending data "${h}"`,(()=>h.split("").map((C=>C.charCodeAt(0))))),this._onData.fire(h)}triggerBinaryEvent(h){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${h}"`,(()=>h.split("").map((f=>f.charCodeAt(0))))),this._onBinary.fire(h))}};i.CoreService=d=a([u(0,y.IBufferService),u(1,y.ILogService),u(2,y.IOptionsService)],d)},9074:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.DecorationService=void 0;let a=n(8055),u=n(8460),l=n(844),_=n(6106),m=0,y=0;class p extends l.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new _.SortedList((h=>h?.marker.line)),this._onDecorationRegistered=this.register(new u.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new u.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,l.toDisposable)((()=>this.reset())))}registerDecoration(h){if(h.marker.isDisposed)return;let f=new c(h);if(f){let g=f.marker.onDispose((()=>f.dispose()));f.onDispose((()=>{f&&(this._decorations.delete(f)&&this._onDecorationRemoved.fire(f),g.dispose())})),this._decorations.insert(f),this._onDecorationRegistered.fire(f)}return f}reset(){for(let h of this._decorations.values())h.dispose();this._decorations.clear()}*getDecorationsAtCell(h,f,g){let C=0,v=0;for(let x of this._decorations.getKeyIterator(f))C=x.options.x??0,v=C+(x.options.width??1),h>=C&&h<v&&(!g||(x.options.layer??"bottom")===g)&&(yield x)}forEachDecorationAtCell(h,f,g,C){this._decorations.forEachByKey(f,(v=>{m=v.options.x??0,y=m+(v.options.width??1),h>=m&&h<y&&(!g||(v.options.layer??"bottom")===g)&&C(v)}))}}i.DecorationService=p;class c extends l.Disposable{get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=a.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=a.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(h){super(),this.options=h,this.onRenderEmitter=this.register(new u.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new u.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=h.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.InstantiationService=i.ServiceCollection=void 0;let a=n(2585),u=n(8343);class l{constructor(...m){this._entries=new Map;for(let[y,p]of m)this.set(y,p)}set(m,y){let p=this._entries.get(m);return this._entries.set(m,y),p}forEach(m){for(let[y,p]of this._entries.entries())m(y,p)}has(m){return this._entries.has(m)}get(m){return this._entries.get(m)}}i.ServiceCollection=l,i.InstantiationService=class{constructor(){this._services=new l,this._services.set(a.IInstantiationService,this)}setService(_,m){this._services.set(_,m)}getService(_){return this._services.get(_)}createInstance(_,...m){let y=(0,u.getServiceDependencies)(_).sort(((d,h)=>d.index-h.index)),p=[];for(let d of y){let h=this._services.get(d.id);if(!h)throw new Error(`[createInstance] ${_.name} depends on UNKNOWN service ${d.id}.`);p.push(h)}let c=y.length>0?y[0].index:m.length;if(m.length!==c)throw new Error(`[createInstance] First service dependency of ${_.name} at position ${c+1} conflicts with ${m.length} static arguments`);return new _(...m,...p)}}},7866:function(o,i,n){var a=this&&this.__decorate||function(c,d,h,f){var g,C=arguments.length,v=C<3?d:f===null?f=Object.getOwnPropertyDescriptor(d,h):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(c,d,h,f);else for(var x=c.length-1;x>=0;x--)(g=c[x])&&(v=(C<3?g(v):C>3?g(d,h,v):g(d,h))||v);return C>3&&v&&Object.defineProperty(d,h,v),v},u=this&&this.__param||function(c,d){return function(h,f){d(h,f,c)}};Object.defineProperty(i,"__esModule",{value:!0}),i.traceCall=i.setTraceLogger=i.LogService=void 0;let l=n(844),_=n(2585),m={trace:_.LogLevelEnum.TRACE,debug:_.LogLevelEnum.DEBUG,info:_.LogLevelEnum.INFO,warn:_.LogLevelEnum.WARN,error:_.LogLevelEnum.ERROR,off:_.LogLevelEnum.OFF},y,p=i.LogService=class extends l.Disposable{get logLevel(){return this._logLevel}constructor(c){super(),this._optionsService=c,this._logLevel=_.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),y=this}_updateLogLevel(){this._logLevel=m[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(c){for(let d=0;d<c.length;d++)typeof c[d]=="function"&&(c[d]=c[d]())}_log(c,d,h){this._evalLazyOptionalParams(h),c.call(console,(this._optionsService.options.logger?"":"xterm.js: ")+d,...h)}trace(c,...d){this._logLevel<=_.LogLevelEnum.TRACE&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,c,d)}debug(c,...d){this._logLevel<=_.LogLevelEnum.DEBUG&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,c,d)}info(c,...d){this._logLevel<=_.LogLevelEnum.INFO&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,c,d)}warn(c,...d){this._logLevel<=_.LogLevelEnum.WARN&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,c,d)}error(c,...d){this._logLevel<=_.LogLevelEnum.ERROR&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,c,d)}};i.LogService=p=a([u(0,_.IOptionsService)],p),i.setTraceLogger=function(c){y=c},i.traceCall=function(c,d,h){if(typeof h.value!="function")throw new Error("not supported");let f=h.value;h.value=function(...g){if(y.logLevel!==_.LogLevelEnum.TRACE)return f.apply(this,g);y.trace(`GlyphRenderer#${f.name}(${g.map((v=>JSON.stringify(v))).join(", ")})`);let C=f.apply(this,g);return y.trace(`GlyphRenderer#${f.name} return`,C),C}}},7302:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.OptionsService=i.DEFAULT_OPTIONS=void 0;let a=n(8460),u=n(844),l=n(6114);i.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:l.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};let _=["normal","bold","100","200","300","400","500","600","700","800","900"];class m extends u.Disposable{constructor(p){super(),this._onOptionChange=this.register(new a.EventEmitter),this.onOptionChange=this._onOptionChange.event;let c={...i.DEFAULT_OPTIONS};for(let d in p)if(d in c)try{let h=p[d];c[d]=this._sanitizeAndValidateOption(d,h)}catch(h){console.error(h)}this.rawOptions=c,this.options={...c},this._setupOptions(),this.register((0,u.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(p,c){return this.onOptionChange((d=>{d===p&&c(this.rawOptions[p])}))}onMultipleOptionChange(p,c){return this.onOptionChange((d=>{p.indexOf(d)!==-1&&c()}))}_setupOptions(){let p=d=>{if(!(d in i.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);return this.rawOptions[d]},c=(d,h)=>{if(!(d in i.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);h=this._sanitizeAndValidateOption(d,h),this.rawOptions[d]!==h&&(this.rawOptions[d]=h,this._onOptionChange.fire(d))};for(let d in this.rawOptions){let h={get:p.bind(this,d),set:c.bind(this,d)};Object.defineProperty(this.options,d,h)}}_sanitizeAndValidateOption(p,c){switch(p){case"cursorStyle":if(c||(c=i.DEFAULT_OPTIONS[p]),!(function(d){return d==="block"||d==="underline"||d==="bar"})(c))throw new Error(`"${c}" is not a valid value for ${p}`);break;case"wordSeparator":c||(c=i.DEFAULT_OPTIONS[p]);break;case"fontWeight":case"fontWeightBold":if(typeof c=="number"&&1<=c&&c<=1e3)break;c=_.includes(c)?c:i.DEFAULT_OPTIONS[p];break;case"cursorWidth":c=Math.floor(c);case"lineHeight":case"tabStopWidth":if(c<1)throw new Error(`${p} cannot be less than 1, value: ${c}`);break;case"minimumContrastRatio":c=Math.max(1,Math.min(21,Math.round(10*c)/10));break;case"scrollback":if((c=Math.min(c,4294967295))<0)throw new Error(`${p} cannot be less than 0, value: ${c}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(c<=0)throw new Error(`${p} cannot be less than or equal to 0, value: ${c}`);break;case"rows":case"cols":if(!c&&c!==0)throw new Error(`${p} must be numeric, value: ${c}`);break;case"windowsPty":c=c??{}}return c}}i.OptionsService=m},2660:function(o,i,n){var a=this&&this.__decorate||function(m,y,p,c){var d,h=arguments.length,f=h<3?y:c===null?c=Object.getOwnPropertyDescriptor(y,p):c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(m,y,p,c);else for(var g=m.length-1;g>=0;g--)(d=m[g])&&(f=(h<3?d(f):h>3?d(y,p,f):d(y,p))||f);return h>3&&f&&Object.defineProperty(y,p,f),f},u=this&&this.__param||function(m,y){return function(p,c){y(p,c,m)}};Object.defineProperty(i,"__esModule",{value:!0}),i.OscLinkService=void 0;let l=n(2585),_=i.OscLinkService=class{constructor(m){this._bufferService=m,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(m){let y=this._bufferService.buffer;if(m.id===void 0){let g=y.addMarker(y.ybase+y.y),C={data:m,id:this._nextId++,lines:[g]};return g.onDispose((()=>this._removeMarkerFromLink(C,g))),this._dataByLinkId.set(C.id,C),C.id}let p=m,c=this._getEntryIdKey(p),d=this._entriesWithId.get(c);if(d)return this.addLineToLink(d.id,y.ybase+y.y),d.id;let h=y.addMarker(y.ybase+y.y),f={id:this._nextId++,key:this._getEntryIdKey(p),data:p,lines:[h]};return h.onDispose((()=>this._removeMarkerFromLink(f,h))),this._entriesWithId.set(f.key,f),this._dataByLinkId.set(f.id,f),f.id}addLineToLink(m,y){let p=this._dataByLinkId.get(m);if(p&&p.lines.every((c=>c.line!==y))){let c=this._bufferService.buffer.addMarker(y);p.lines.push(c),c.onDispose((()=>this._removeMarkerFromLink(p,c)))}}getLinkData(m){return this._dataByLinkId.get(m)?.data}_getEntryIdKey(m){return`${m.id};;${m.uri}`}_removeMarkerFromLink(m,y){let p=m.lines.indexOf(y);p!==-1&&(m.lines.splice(p,1),m.lines.length===0&&(m.data.id!==void 0&&this._entriesWithId.delete(m.key),this._dataByLinkId.delete(m.id)))}};i.OscLinkService=_=a([u(0,l.IBufferService)],_)},8343:(o,i)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.createDecorator=i.getServiceDependencies=i.serviceRegistry=void 0;let n="di$target",a="di$dependencies";i.serviceRegistry=new Map,i.getServiceDependencies=function(u){return u[a]||[]},i.createDecorator=function(u){if(i.serviceRegistry.has(u))return i.serviceRegistry.get(u);let l=function(_,m,y){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(p,c,d){c[n]===c?c[a].push({id:p,index:d}):(c[a]=[{id:p,index:d}],c[n]=c)})(l,_,y)};return l.toString=()=>u,i.serviceRegistry.set(u,l),l}},2585:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.IDecorationService=i.IUnicodeService=i.IOscLinkService=i.IOptionsService=i.ILogService=i.LogLevelEnum=i.IInstantiationService=i.ICharsetService=i.ICoreService=i.ICoreMouseService=i.IBufferService=void 0;let a=n(8343);var u;i.IBufferService=(0,a.createDecorator)("BufferService"),i.ICoreMouseService=(0,a.createDecorator)("CoreMouseService"),i.ICoreService=(0,a.createDecorator)("CoreService"),i.ICharsetService=(0,a.createDecorator)("CharsetService"),i.IInstantiationService=(0,a.createDecorator)("InstantiationService"),(function(l){l[l.TRACE=0]="TRACE",l[l.DEBUG=1]="DEBUG",l[l.INFO=2]="INFO",l[l.WARN=3]="WARN",l[l.ERROR=4]="ERROR",l[l.OFF=5]="OFF"})(u||(i.LogLevelEnum=u={})),i.ILogService=(0,a.createDecorator)("LogService"),i.IOptionsService=(0,a.createDecorator)("OptionsService"),i.IOscLinkService=(0,a.createDecorator)("OscLinkService"),i.IUnicodeService=(0,a.createDecorator)("UnicodeService"),i.IDecorationService=(0,a.createDecorator)("DecorationService")},1480:(o,i,n)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.UnicodeService=void 0;let a=n(8460),u=n(225);class l{static extractShouldJoin(m){return(1&m)!=0}static extractWidth(m){return m>>1&3}static extractCharKind(m){return m>>3}static createPropertyValue(m,y,p=!1){return(16777215&m)<<3|(3&y)<<1|(p?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new a.EventEmitter,this.onChange=this._onChange.event;let m=new u.UnicodeV6;this.register(m),this._active=m.version,this._activeProvider=m}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(m){if(!this._providers[m])throw new Error(`unknown Unicode version "${m}"`);this._active=m,this._activeProvider=this._providers[m],this._onChange.fire(m)}register(m){this._providers[m.version]=m}wcwidth(m){return this._activeProvider.wcwidth(m)}getStringCellWidth(m){let y=0,p=0,c=m.length;for(let d=0;d<c;++d){let h=m.charCodeAt(d);if(55296<=h&&h<=56319){if(++d>=c)return y+this.wcwidth(h);let C=m.charCodeAt(d);56320<=C&&C<=57343?h=1024*(h-55296)+C-56320+65536:y+=this.wcwidth(C)}let f=this.charProperties(h,p),g=l.extractWidth(f);l.extractShouldJoin(f)&&(g-=l.extractWidth(p)),y+=g,p=f}return y}charProperties(m,y){return this._activeProvider.charProperties(m,y)}}i.UnicodeService=l}},t={};function r(o){var i=t[o];if(i!==void 0)return i.exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,r),n.exports}var s={};return(()=>{var o=s;Object.defineProperty(o,"__esModule",{value:!0}),o.Terminal=void 0;let i=r(9042),n=r(3236),a=r(844),u=r(5741),l=r(8285),_=r(7975),m=r(7090),y=["cols","rows"];class p extends a.Disposable{constructor(d){super(),this._core=this.register(new n.Terminal(d)),this._addonManager=this.register(new u.AddonManager),this._publicOptions={...this._core.options};let h=g=>this._core.options[g],f=(g,C)=>{this._checkReadonlyOptions(g),this._core.options[g]=C};for(let g in this._core.options){let C={get:h.bind(this,g),set:f.bind(this,g)};Object.defineProperty(this._publicOptions,g,C)}}_checkReadonlyOptions(d){if(y.includes(d))throw new Error(`Option "${d}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new _.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new m.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new l.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let d=this._core.coreService.decPrivateModes,h="none";switch(this._core.coreMouseService.activeProtocol){case"X10":h="x10";break;case"VT200":h="vt200";break;case"DRAG":h="drag";break;case"ANY":h="any"}return{applicationCursorKeysMode:d.applicationCursorKeys,applicationKeypadMode:d.applicationKeypad,bracketedPasteMode:d.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:h,originMode:d.origin,reverseWraparoundMode:d.reverseWraparound,sendFocusMode:d.sendFocus,wraparoundMode:d.wraparound}}get options(){return this._publicOptions}set options(d){for(let h in d)this._publicOptions[h]=d[h]}blur(){this._core.blur()}focus(){this._core.focus()}input(d,h=!0){this._core.input(d,h)}resize(d,h){this._verifyIntegers(d,h),this._core.resize(d,h)}open(d){this._core.open(d)}attachCustomKeyEventHandler(d){this._core.attachCustomKeyEventHandler(d)}attachCustomWheelEventHandler(d){this._core.attachCustomWheelEventHandler(d)}registerLinkProvider(d){return this._core.registerLinkProvider(d)}registerCharacterJoiner(d){return this._checkProposedApi(),this._core.registerCharacterJoiner(d)}deregisterCharacterJoiner(d){this._checkProposedApi(),this._core.deregisterCharacterJoiner(d)}registerMarker(d=0){return this._verifyIntegers(d),this._core.registerMarker(d)}registerDecoration(d){return this._checkProposedApi(),this._verifyPositiveIntegers(d.x??0,d.width??0,d.height??0),this._core.registerDecoration(d)}hasSelection(){return this._core.hasSelection()}select(d,h,f){this._verifyIntegers(d,h,f),this._core.select(d,h,f)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(d,h){this._verifyIntegers(d,h),this._core.selectLines(d,h)}dispose(){super.dispose()}scrollLines(d){this._verifyIntegers(d),this._core.scrollLines(d)}scrollPages(d){this._verifyIntegers(d),this._core.scrollPages(d)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(d){this._verifyIntegers(d),this._core.scrollToLine(d)}clear(){this._core.clear()}write(d,h){this._core.write(d,h)}writeln(d,h){this._core.write(d),this._core.write(`\r
9
+ `,h)}paste(d){this._core.paste(d)}refresh(d,h){this._verifyIntegers(d,h),this._core.refresh(d,h)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(d){this._addonManager.loadAddon(this,d)}static get strings(){return i}_verifyIntegers(...d){for(let h of d)if(h===1/0||isNaN(h)||h%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...d){for(let h of d)if(h&&(h===1/0||isNaN(h)||h%1!=0||h<0))throw new Error("This API only accepts positive integers")}}o.Terminal=p})(),s})()))});var Qo=Yo((Fs,Zi)=>{(function(e,t){typeof Fs=="object"&&typeof Zi=="object"?Zi.exports=t():typeof define=="function"&&define.amd?define([],t):typeof Fs=="object"?Fs.FitAddon=t():e.FitAddon=t()})(self,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(r){this._terminal=r}dispose(){}fit(){let r=this.proposeDimensions();if(!r||!this._terminal||isNaN(r.cols)||isNaN(r.rows))return;let s=this._terminal._core;this._terminal.rows===r.rows&&this._terminal.cols===r.cols||(s._renderService.clear(),this._terminal.resize(r.cols,r.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let r=this._terminal._core,s=r._renderService.dimensions;if(s.css.cell.width===0||s.css.cell.height===0)return;let o=this._terminal.options.scrollback===0?0:r.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),n=parseInt(i.getPropertyValue("height")),a=Math.max(0,parseInt(i.getPropertyValue("width"))),u=window.getComputedStyle(this._terminal.element),l=n-(parseInt(u.getPropertyValue("padding-top"))+parseInt(u.getPropertyValue("padding-bottom"))),_=a-(parseInt(u.getPropertyValue("padding-right"))+parseInt(u.getPropertyValue("padding-left")))-o;return{cols:Math.max(2,Math.floor(_/s.css.cell.width)),rows:Math.max(1,Math.floor(l/s.css.cell.height))}}}})(),e})()))});var xc=Xo(Zo(),1),kc=Xo(Qo(),1);var id=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?ea.isErrorNoTelemetry(e)?new ea(e.message+`
10
10
 
11
11
  `+e.stack):new Error(e.message+`
12
12
 
13
- `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},kh=new xh;function Ds(e){Eh(e)||kh.onUnexpectedError(e)}var Os="Canceled";function Eh(e){return e instanceof Lh?!0:e instanceof Error&&e.name===Os&&e.message===Os}var Lh=class extends Error{constructor(){super(Os),this.name=this.message}},To=class Is extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof Is)return t;let r=new Is;return r.message=t.message,r.stack=t.stack,r}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}};function Th(e,t,r=0,s=e.length){let a=r,i=s;for(;a<i;){let n=Math.floor((a+i)/2);t(e[n])?a=n+1:i=n}return a-1}var Rh=class Wo{constructor(t){this._array=t,this._findLastMonotonousLastIdx=0}findLastMonotonous(t){if(Wo.assertInvariants){if(this._prevFindLastPredicate){for(let s of this._array)if(this._prevFindLastPredicate(s)&&!t(s))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}let r=Th(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=r+1,r===-1?void 0:this._array[r]}};Rh.assertInvariants=!1;var Ns;(e=>{function t(i){return i<0}e.isLessThan=t;function r(i){return i<=0}e.isLessThanOrEqual=r;function s(i){return i>0}e.isGreaterThan=s;function a(i){return i===0}e.isNeitherLessOrGreaterThan=a,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(Ns||(Ns={}));function Mh(e,t){return(r,s)=>t(e(r),e(s))}var Ah=(e,t)=>e-t,Ro=class Hs{constructor(t){this.iterate=t}forEach(t){this.iterate(r=>(t(r),!0))}toArray(){let t=[];return this.iterate(r=>(t.push(r),!0)),t}filter(t){return new Hs(r=>this.iterate(s=>t(s)?r(s):!0))}map(t){return new Hs(r=>this.iterate(s=>r(t(s))))}some(t){let r=!1;return this.iterate(s=>(r=t(s),!r)),r}findFirst(t){let r;return this.iterate(s=>t(s)?(r=s,!1):!0),r}findLast(t){let r;return this.iterate(s=>(t(s)&&(r=s),!0)),r}findLastMaxBy(t){let r,s=!0;return this.iterate(a=>((s||Ns.isGreaterThan(t(a,r)))&&(s=!1,r=a),!0)),r}};Ro.empty=new Ro(e=>{});function Dh(e,t){let r=Object.create(null);for(let s of e){let a=t(s),i=r[a];i||(i=r[a]=[]),i.push(s)}return r}var Mo,Ao,cm=class{constructor(e,t){this.toKey=t,this._map=new Map,this[Mo]="SetWithKey";for(let r of e)this.add(r)}get size(){return this._map.size}add(e){let t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(let e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(let e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(r=>e.call(t,r,r,this))}[(Ao=Symbol.iterator,Mo=Symbol.toStringTag,Ao)](){return this.values()}},Ph=class{constructor(){this.map=new Map}add(e,t){let r=this.map.get(e);r||(r=new Set,this.map.set(e,r)),r.add(t)}delete(e,t){let r=this.map.get(e);r&&(r.delete(t),r.size===0&&this.map.delete(e))}forEach(e,t){let r=this.map.get(e);r&&r.forEach(t)}get(e){return this.map.get(e)||new Set}};function Bh(e,t){let r=this,s=!1,a;return function(){if(s)return a;if(s=!0,t)try{a=e.apply(r,arguments)}finally{t()}else a=e.apply(r,arguments);return a}}var Fs;(e=>{function t(v){return v&&typeof v=="object"&&typeof v[Symbol.iterator]=="function"}e.is=t;let r=Object.freeze([]);function s(){return r}e.empty=s;function*a(v){yield v}e.single=a;function i(v){return t(v)?v:a(v)}e.wrap=i;function n(v){return v||r}e.from=n;function*o(v){for(let x=v.length-1;x>=0;x--)yield v[x]}e.reverse=o;function u(v){return!v||v[Symbol.iterator]().next().done===!0}e.isEmpty=u;function l(v){return v[Symbol.iterator]().next().value}e.first=l;function _(v,x){let b=0;for(let E of v)if(x(E,b++))return!0;return!1}e.some=_;function m(v,x){for(let b of v)if(x(b))return b}e.find=m;function*w(v,x){for(let b of v)x(b)&&(yield b)}e.filter=w;function*p(v,x){let b=0;for(let E of v)yield x(E,b++)}e.map=p;function*c(v,x){let b=0;for(let E of v)yield*x(E,b++)}e.flatMap=c;function*d(...v){for(let x of v)yield*x}e.concat=d;function h(v,x,b){let E=b;for(let O of v)E=x(E,O);return E}e.reduce=h;function*f(v,x,b=v.length){for(x<0&&(x+=v.length),b<0?b+=v.length:b>v.length&&(b=v.length);x<b;x++)yield v[x]}e.slice=f;function g(v,x=Number.POSITIVE_INFINITY){let b=[];if(x===0)return[b,v];let E=v[Symbol.iterator]();for(let O=0;O<x;O++){let B=E.next();if(B.done)return[b,e.empty()];b.push(B.value)}return[b,{[Symbol.iterator](){return E}}]}e.consume=g;async function C(v){let x=[];for await(let b of v)x.push(b);return Promise.resolve(x)}e.asyncToArray=C})(Fs||(Fs={}));var Oh=!1,dr=null,Ih=class Uo{constructor(){this.livingDisposables=new Map}getDisposableData(t){let r=this.livingDisposables.get(t);return r||(r={parent:null,source:null,isSingleton:!1,value:t,idx:Uo.idx++},this.livingDisposables.set(t,r)),r}trackDisposable(t){let r=this.getDisposableData(t);r.source||(r.source=new Error().stack)}setParent(t,r){let s=this.getDisposableData(t);s.parent=r}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,r){let s=r.get(t);if(s)return s;let a=t.parent?this.getRootParent(this.getDisposableData(t.parent),r):t;return r.set(t,a),a}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,r])=>r.source!==null&&!this.getRootParent(r,t).isSingleton).flatMap(([r])=>r)}computeLeakingDisposables(t=10,r){let s;if(r)s=r;else{let u=new Map,l=[...this.livingDisposables.values()].filter(m=>m.source!==null&&!this.getRootParent(m,u).isSingleton);if(l.length===0)return;let _=new Set(l.map(m=>m.value));if(s=l.filter(m=>!(m.parent&&_.has(m.parent))),s.length===0)throw new Error("There are cyclic diposable chains!")}if(!s)return;function a(u){function l(m,w){for(;m.length>0&&w.some(p=>typeof p=="string"?p===m[0]:m[0].match(p));)m.shift()}let _=u.source.split(`
14
- `).map(m=>m.trim().replace("at ","")).filter(m=>m!=="");return l(_,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),_.reverse()}let i=new Ph;for(let u of s){let l=a(u);for(let _=0;_<=l.length;_++)i.add(l.slice(0,_).join(`
15
- `),u)}s.sort(Mh(u=>u.idx,Ah));let n="",o=0;for(let u of s.slice(0,t)){o++;let l=a(u),_=[];for(let m=0;m<l.length;m++){let w=l[m];w=`(shared with ${i.get(l.slice(0,m+1).join(`
16
- `)).size}/${s.length} leaks) at ${w}`;let p=i.get(l.slice(0,m).join(`
17
- `)),c=Dh([...p].map(d=>a(d)[m]),d=>d);delete c[l[m]];for(let[d,h]of Object.entries(c))_.unshift(` - stacktraces of ${h.length} other leaks continue with ${d}`);_.unshift(w)}n+=`
13
+ `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},nd=new id;function Qi(e){od(e)||nd.onUnexpectedError(e)}var rn="Canceled";function od(e){return e instanceof ad?!0:e instanceof Error&&e.name===rn&&e.message===rn}var ad=class extends Error{constructor(){super(rn),this.name=this.message}},ea=class sn extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof sn)return t;let r=new sn;return r.message=t.message,r.stack=t.stack,r}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}};function ld(e,t,r=0,s=e.length){let o=r,i=s;for(;o<i;){let n=Math.floor((o+i)/2);t(e[n])?o=n+1:i=n}return o-1}var cd=class ua{constructor(t){this._array=t,this._findLastMonotonousLastIdx=0}findLastMonotonous(t){if(ua.assertInvariants){if(this._prevFindLastPredicate){for(let s of this._array)if(this._prevFindLastPredicate(s)&&!t(s))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}let r=ld(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=r+1,r===-1?void 0:this._array[r]}};cd.assertInvariants=!1;var nn;(e=>{function t(i){return i<0}e.isLessThan=t;function r(i){return i<=0}e.isLessThanOrEqual=r;function s(i){return i>0}e.isGreaterThan=s;function o(i){return i===0}e.isNeitherLessOrGreaterThan=o,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(nn||(nn={}));function hd(e,t){return(r,s)=>t(e(r),e(s))}var dd=(e,t)=>e-t,ta=class on{constructor(t){this.iterate=t}forEach(t){this.iterate(r=>(t(r),!0))}toArray(){let t=[];return this.iterate(r=>(t.push(r),!0)),t}filter(t){return new on(r=>this.iterate(s=>t(s)?r(s):!0))}map(t){return new on(r=>this.iterate(s=>r(t(s))))}some(t){let r=!1;return this.iterate(s=>(r=t(s),!r)),r}findFirst(t){let r;return this.iterate(s=>t(s)?(r=s,!1):!0),r}findLast(t){let r;return this.iterate(s=>(t(s)&&(r=s),!0)),r}findLastMaxBy(t){let r,s=!0;return this.iterate(o=>((s||nn.isGreaterThan(t(o,r)))&&(s=!1,r=o),!0)),r}};ta.empty=new ta(e=>{});function ud(e,t){let r=Object.create(null);for(let s of e){let o=t(s),i=r[o];i||(i=r[o]=[]),i.push(s)}return r}var ra,sa,tg=class{constructor(e,t){this.toKey=t,this._map=new Map,this[ra]="SetWithKey";for(let r of e)this.add(r)}get size(){return this._map.size}add(e){let t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(let e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(let e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(r=>e.call(t,r,r,this))}[(sa=Symbol.iterator,ra=Symbol.toStringTag,sa)](){return this.values()}},fd=class{constructor(){this.map=new Map}add(e,t){let r=this.map.get(e);r||(r=new Set,this.map.set(e,r)),r.add(t)}delete(e,t){let r=this.map.get(e);r&&(r.delete(t),r.size===0&&this.map.delete(e))}forEach(e,t){let r=this.map.get(e);r&&r.forEach(t)}get(e){return this.map.get(e)||new Set}};function pd(e,t){let r=this,s=!1,o;return function(){if(s)return o;if(s=!0,t)try{o=e.apply(r,arguments)}finally{t()}else o=e.apply(r,arguments);return o}}var an;(e=>{function t(v){return v&&typeof v=="object"&&typeof v[Symbol.iterator]=="function"}e.is=t;let r=Object.freeze([]);function s(){return r}e.empty=s;function*o(v){yield v}e.single=o;function i(v){return t(v)?v:o(v)}e.wrap=i;function n(v){return v||r}e.from=n;function*a(v){for(let x=v.length-1;x>=0;x--)yield v[x]}e.reverse=a;function u(v){return!v||v[Symbol.iterator]().next().done===!0}e.isEmpty=u;function l(v){return v[Symbol.iterator]().next().value}e.first=l;function _(v,x){let b=0;for(let E of v)if(x(E,b++))return!0;return!1}e.some=_;function m(v,x){for(let b of v)if(x(b))return b}e.find=m;function*y(v,x){for(let b of v)x(b)&&(yield b)}e.filter=y;function*p(v,x){let b=0;for(let E of v)yield x(E,b++)}e.map=p;function*c(v,x){let b=0;for(let E of v)yield*x(E,b++)}e.flatMap=c;function*d(...v){for(let x of v)yield*x}e.concat=d;function h(v,x,b){let E=b;for(let O of v)E=x(E,O);return E}e.reduce=h;function*f(v,x,b=v.length){for(x<0&&(x+=v.length),b<0?b+=v.length:b>v.length&&(b=v.length);x<b;x++)yield v[x]}e.slice=f;function g(v,x=Number.POSITIVE_INFINITY){let b=[];if(x===0)return[b,v];let E=v[Symbol.iterator]();for(let O=0;O<x;O++){let B=E.next();if(B.done)return[b,e.empty()];b.push(B.value)}return[b,{[Symbol.iterator](){return E}}]}e.consume=g;async function C(v){let x=[];for await(let b of v)x.push(b);return Promise.resolve(x)}e.asyncToArray=C})(an||(an={}));var _d=!1,Er=null,md=class fa{constructor(){this.livingDisposables=new Map}getDisposableData(t){let r=this.livingDisposables.get(t);return r||(r={parent:null,source:null,isSingleton:!1,value:t,idx:fa.idx++},this.livingDisposables.set(t,r)),r}trackDisposable(t){let r=this.getDisposableData(t);r.source||(r.source=new Error().stack)}setParent(t,r){let s=this.getDisposableData(t);s.parent=r}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,r){let s=r.get(t);if(s)return s;let o=t.parent?this.getRootParent(this.getDisposableData(t.parent),r):t;return r.set(t,o),o}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,r])=>r.source!==null&&!this.getRootParent(r,t).isSingleton).flatMap(([r])=>r)}computeLeakingDisposables(t=10,r){let s;if(r)s=r;else{let u=new Map,l=[...this.livingDisposables.values()].filter(m=>m.source!==null&&!this.getRootParent(m,u).isSingleton);if(l.length===0)return;let _=new Set(l.map(m=>m.value));if(s=l.filter(m=>!(m.parent&&_.has(m.parent))),s.length===0)throw new Error("There are cyclic diposable chains!")}if(!s)return;function o(u){function l(m,y){for(;m.length>0&&y.some(p=>typeof p=="string"?p===m[0]:m[0].match(p));)m.shift()}let _=u.source.split(`
14
+ `).map(m=>m.trim().replace("at ","")).filter(m=>m!=="");return l(_,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),_.reverse()}let i=new fd;for(let u of s){let l=o(u);for(let _=0;_<=l.length;_++)i.add(l.slice(0,_).join(`
15
+ `),u)}s.sort(hd(u=>u.idx,dd));let n="",a=0;for(let u of s.slice(0,t)){a++;let l=o(u),_=[];for(let m=0;m<l.length;m++){let y=l[m];y=`(shared with ${i.get(l.slice(0,m+1).join(`
16
+ `)).size}/${s.length} leaks) at ${y}`;let p=i.get(l.slice(0,m).join(`
17
+ `)),c=ud([...p].map(d=>o(d)[m]),d=>d);delete c[l[m]];for(let[d,h]of Object.entries(c))_.unshift(` - stacktraces of ${h.length} other leaks continue with ${d}`);_.unshift(y)}n+=`
18
18
 
19
19
 
20
- ==================== Leaking disposable ${o}/${s.length}: ${u.value.constructor.name} ====================
20
+ ==================== Leaking disposable ${a}/${s.length}: ${u.value.constructor.name} ====================
21
21
  ${_.join(`
22
22
  `)}
23
23
  ============================================================
@@ -27,23 +27,23 @@ ${_.join(`
27
27
 
28
28
  ... and ${s.length-t} more leaking disposables
29
29
 
30
- `),{leaks:s,details:n}}};Ih.idx=0;function Nh(e){dr=e}if(Oh){let e="__is_disposable_tracked__";Nh(new class{trackDisposable(t){let r=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[e]||console.log(r)},3e3)}setParent(t,r){if(t&&t!==bt.None)try{t[e]=!0}catch{}}markAsDisposed(t){if(t&&t!==bt.None)try{t[e]=!0}catch{}}markAsSingleton(t){}})}function Ai(e){return dr?.trackDisposable(e),e}function Di(e){dr?.markAsDisposed(e)}function jr(e,t){dr?.setParent(e,t)}function Hh(e,t){if(dr)for(let r of e)dr.setParent(r,t)}function Ur(e){if(Fs.is(e)){let t=[];for(let r of e)if(r)try{r.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function jo(...e){let t=ur(()=>Ur(e));return Hh(e,t),t}function ur(e){let t=Ai({dispose:Bh(()=>{Di(t),e()})});return t}var zo=class $o{constructor(){this._toDispose=new Set,this._isDisposed=!1,Ai(this)}dispose(){this._isDisposed||(Di(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Ur(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return jr(t,this),this._isDisposed?$o.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),jr(t,null))}};zo.DISABLE_DISPOSED_WARNING=!1;var Ks=zo,bt=class{constructor(){this._store=new Ks,Ai(this),jr(this._store,this)}dispose(){Di(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};bt.None=Object.freeze({dispose(){}});var Ri=class{constructor(){this._isDisposed=!1,Ai(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&jr(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Di(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&jr(e,null),e}},Do=class Ws{constructor(t){this.element=t,this.next=Ws.Undefined,this.prev=Ws.Undefined}};Do.Undefined=new Do(void 0);var Fh=globalThis.performance&&typeof globalThis.performance.now=="function",Wh=class qo{static create(t){return new qo(t)}constructor(t){this._now=Fh&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},Uh=!1,Po=!1,jh=!1,Mi;(e=>{e.None=()=>bt.None;function t(P){if(jh){let{onDidAddListener:D}=P,F=zs.create(),N=0;P.onDidAddListener=()=>{++N===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),F.print()),D?.()}}}function r(P,D){return w(P,()=>{},0,void 0,!0,void 0,D)}e.defer=r;function s(P){return(D,F=null,N)=>{let y=!1,T;return T=P(k=>{if(!y)return T?T.dispose():y=!0,D.call(F,k)},null,N),y&&T.dispose(),T}}e.once=s;function a(P,D,F){return _((N,y=null,T)=>P(k=>N.call(y,D(k)),null,T),F)}e.map=a;function i(P,D,F){return _((N,y=null,T)=>P(k=>{D(k),N.call(y,k)},null,T),F)}e.forEach=i;function n(P,D,F){return _((N,y=null,T)=>P(k=>D(k)&&N.call(y,k),null,T),F)}e.filter=n;function o(P){return P}e.signal=o;function u(...P){return(D,F=null,N)=>{let y=jo(...P.map(T=>T(k=>D.call(F,k))));return m(y,N)}}e.any=u;function l(P,D,F,N){let y=F;return a(P,T=>(y=D(y,T),y),N)}e.reduce=l;function _(P,D){let F,N={onWillAddFirstListener(){F=P(y.fire,y)},onDidRemoveLastListener(){F?.dispose()}};D||t(N);let y=new vt(N);return D?.add(y),y.event}function m(P,D){return D instanceof Array?D.push(P):D&&D.add(P),P}function w(P,D,F=100,N=!1,y=!1,T,k){let R,U,G,J=0,X,W={leakWarningThreshold:T,onWillAddFirstListener(){R=P(I=>{J++,U=D(U,I),N&&!G&&(L.fire(U),U=void 0),X=()=>{let z=U;U=void 0,G=void 0,(!N||J>1)&&L.fire(z),J=0},typeof F=="number"?(clearTimeout(G),G=setTimeout(X,F)):G===void 0&&(G=0,queueMicrotask(X))})},onWillRemoveListener(){y&&J>0&&X?.()},onDidRemoveLastListener(){X=void 0,R.dispose()}};k||t(W);let L=new vt(W);return k?.add(L),L.event}e.debounce=w;function p(P,D=0,F){return e.debounce(P,(N,y)=>N?(N.push(y),N):[y],D,void 0,!0,void 0,F)}e.accumulate=p;function c(P,D=(N,y)=>N===y,F){let N=!0,y;return n(P,T=>{let k=N||!D(T,y);return N=!1,y=T,k},F)}e.latch=c;function d(P,D,F){return[e.filter(P,D,F),e.filter(P,N=>!D(N),F)]}e.split=d;function h(P,D=!1,F=[],N){let y=F.slice(),T=P(U=>{y?y.push(U):R.fire(U)});N&&N.add(T);let k=()=>{y?.forEach(U=>R.fire(U)),y=null},R=new vt({onWillAddFirstListener(){T||(T=P(U=>R.fire(U)),N&&N.add(T))},onDidAddFirstListener(){y&&(D?setTimeout(k):k())},onDidRemoveLastListener(){T&&T.dispose(),T=null}});return N&&N.add(R),R.event}e.buffer=h;function f(P,D){return(F,N,y)=>{let T=D(new C);return P(function(k){let R=T.evaluate(k);R!==g&&F.call(N,R)},void 0,y)}}e.chain=f;let g=Symbol("HaltChainable");class C{constructor(){this.steps=[]}map(D){return this.steps.push(D),this}forEach(D){return this.steps.push(F=>(D(F),F)),this}filter(D){return this.steps.push(F=>D(F)?F:g),this}reduce(D,F){let N=F;return this.steps.push(y=>(N=D(N,y),N)),this}latch(D=(F,N)=>F===N){let F=!0,N;return this.steps.push(y=>{let T=F||!D(y,N);return F=!1,N=y,T?y:g}),this}evaluate(D){for(let F of this.steps)if(D=F(D),D===g)break;return D}}function v(P,D,F=N=>N){let N=(...R)=>k.fire(F(...R)),y=()=>P.on(D,N),T=()=>P.removeListener(D,N),k=new vt({onWillAddFirstListener:y,onDidRemoveLastListener:T});return k.event}e.fromNodeEventEmitter=v;function x(P,D,F=N=>N){let N=(...R)=>k.fire(F(...R)),y=()=>P.addEventListener(D,N),T=()=>P.removeEventListener(D,N),k=new vt({onWillAddFirstListener:y,onDidRemoveLastListener:T});return k.event}e.fromDOMEventEmitter=x;function b(P){return new Promise(D=>s(P)(D))}e.toPromise=b;function E(P){let D=new vt;return P.then(F=>{D.fire(F)},()=>{D.fire(void 0)}).finally(()=>{D.dispose()}),D.event}e.fromPromise=E;function O(P,D){return P(F=>D.fire(F))}e.forward=O;function B(P,D,F){return D(F),P(N=>D(N))}e.runAndSubscribe=B;class H{constructor(D,F){this._observable=D,this._counter=0,this._hasChanged=!1;let N={onWillAddFirstListener:()=>{D.addObserver(this)},onDidRemoveLastListener:()=>{D.removeObserver(this)}};F||t(N),this.emitter=new vt(N),F&&F.add(this.emitter)}beginUpdate(D){this._counter++}handlePossibleChange(D){}handleChange(D,F){this._hasChanged=!0}endUpdate(D){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function M(P,D){return new H(P,D).emitter.event}e.fromObservable=M;function K(P){return(D,F,N)=>{let y=0,T=!1,k={beginUpdate(){y++},endUpdate(){y--,y===0&&(P.reportChanges(),T&&(T=!1,D.call(F)))},handlePossibleChange(){},handleChange(){T=!0}};P.addObserver(k),P.reportChanges();let R={dispose(){P.removeObserver(k)}};return N instanceof Ks?N.add(R):Array.isArray(N)&&N.push(R),R}}e.fromObservableLight=K})(Mi||(Mi={}));var Us=class js{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${js._idPool++}`,js.all.add(this)}start(t){this._stopWatch=new Wh,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};Us.all=new Set,Us._idPool=0;var zh=Us,Bo=-1,Ko=class Go{constructor(t,r,s=(Go._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=r,this.name=s,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,r){let s=this.threshold;if(s<=0||r<s)return;this._stacks||(this._stacks=new Map);let a=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,a+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=s*.5;let[i,n]=this.getMostFrequentStack(),o=`[${this.name}] potential listener LEAK detected, having ${r} listeners already. MOST frequent listener (${n}):`;console.warn(o),console.warn(i);let u=new qh(o,i);this._errorHandler(u)}return()=>{let i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,r=0;for(let[s,a]of this._stacks)(!t||r<a)&&(t=[s,a],r=a);return t}};Ko._idPool=1;var $h=Ko,zs=class Vo{constructor(t){this.value=t}static create(){let t=new Error;return new Vo(t.stack??"")}print(){console.warn(this.value.split(`
30
+ `),{leaks:s,details:n}}};md.idx=0;function gd(e){Er=e}if(_d){let e="__is_disposable_tracked__";gd(new class{trackDisposable(t){let r=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[e]||console.log(r)},3e3)}setParent(t,r){if(t&&t!==kt.None)try{t[e]=!0}catch{}}markAsDisposed(t){if(t&&t!==kt.None)try{t[e]=!0}catch{}}markAsSingleton(t){}})}function Gs(e){return Er?.trackDisposable(e),e}function Vs(e){Er?.markAsDisposed(e)}function ss(e,t){Er?.setParent(e,t)}function vd(e,t){if(Er)for(let r of e)Er.setParent(r,t)}function rs(e){if(an.is(e)){let t=[];for(let r of e)if(r)try{r.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function pa(...e){let t=Lr(()=>rs(e));return vd(e,t),t}function Lr(e){let t=Gs({dispose:pd(()=>{Vs(t),e()})});return t}var _a=class ma{constructor(){this._toDispose=new Set,this._isDisposed=!1,Gs(this)}dispose(){this._isDisposed||(Vs(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{rs(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return ss(t,this),this._isDisposed?ma.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),ss(t,null))}};_a.DISABLE_DISPOSED_WARNING=!1;var pn=_a,kt=class{constructor(){this._store=new pn,Gs(this),ss(this._store,this)}dispose(){Vs(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};kt.None=Object.freeze({dispose(){}});var qs=class{constructor(){this._isDisposed=!1,Gs(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&ss(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Vs(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&ss(e,null),e}},ia=class ln{constructor(t){this.element=t,this.next=ln.Undefined,this.prev=ln.Undefined}};ia.Undefined=new ia(void 0);var bd=globalThis.performance&&typeof globalThis.performance.now=="function",wd=class ga{static create(t){return new ga(t)}constructor(t){this._now=bd&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},yd=!1,na=!1,Sd=!1,Ks;(e=>{e.None=()=>kt.None;function t(P){if(Sd){let{onDidAddListener:D}=P,H=dn.create(),I=0;P.onDidAddListener=()=>{++I===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),H.print()),D?.()}}}function r(P,D){return y(P,()=>{},0,void 0,!0,void 0,D)}e.defer=r;function s(P){return(D,H=null,I)=>{let S=!1,T;return T=P(k=>{if(!S)return T?T.dispose():S=!0,D.call(H,k)},null,I),S&&T.dispose(),T}}e.once=s;function o(P,D,H){return _((I,S=null,T)=>P(k=>I.call(S,D(k)),null,T),H)}e.map=o;function i(P,D,H){return _((I,S=null,T)=>P(k=>{D(k),I.call(S,k)},null,T),H)}e.forEach=i;function n(P,D,H){return _((I,S=null,T)=>P(k=>D(k)&&I.call(S,k),null,T),H)}e.filter=n;function a(P){return P}e.signal=a;function u(...P){return(D,H=null,I)=>{let S=pa(...P.map(T=>T(k=>D.call(H,k))));return m(S,I)}}e.any=u;function l(P,D,H,I){let S=H;return o(P,T=>(S=D(S,T),S),I)}e.reduce=l;function _(P,D){let H,I={onWillAddFirstListener(){H=P(S.fire,S)},onDidRemoveLastListener(){H?.dispose()}};D||t(I);let S=new xt(I);return D?.add(S),S.event}function m(P,D){return D instanceof Array?D.push(P):D&&D.add(P),P}function y(P,D,H=100,I=!1,S=!1,T,k){let R,z,V,X=0,Z,W={leakWarningThreshold:T,onWillAddFirstListener(){R=P(F=>{X++,z=D(z,F),I&&!V&&(L.fire(z),z=void 0),Z=()=>{let $=z;z=void 0,V=void 0,(!I||X>1)&&L.fire($),X=0},typeof H=="number"?(clearTimeout(V),V=setTimeout(Z,H)):V===void 0&&(V=0,queueMicrotask(Z))})},onWillRemoveListener(){S&&X>0&&Z?.()},onDidRemoveLastListener(){Z=void 0,R.dispose()}};k||t(W);let L=new xt(W);return k?.add(L),L.event}e.debounce=y;function p(P,D=0,H){return e.debounce(P,(I,S)=>I?(I.push(S),I):[S],D,void 0,!0,void 0,H)}e.accumulate=p;function c(P,D=(I,S)=>I===S,H){let I=!0,S;return n(P,T=>{let k=I||!D(T,S);return I=!1,S=T,k},H)}e.latch=c;function d(P,D,H){return[e.filter(P,D,H),e.filter(P,I=>!D(I),H)]}e.split=d;function h(P,D=!1,H=[],I){let S=H.slice(),T=P(z=>{S?S.push(z):R.fire(z)});I&&I.add(T);let k=()=>{S?.forEach(z=>R.fire(z)),S=null},R=new xt({onWillAddFirstListener(){T||(T=P(z=>R.fire(z)),I&&I.add(T))},onDidAddFirstListener(){S&&(D?setTimeout(k):k())},onDidRemoveLastListener(){T&&T.dispose(),T=null}});return I&&I.add(R),R.event}e.buffer=h;function f(P,D){return(H,I,S)=>{let T=D(new C);return P(function(k){let R=T.evaluate(k);R!==g&&H.call(I,R)},void 0,S)}}e.chain=f;let g=Symbol("HaltChainable");class C{constructor(){this.steps=[]}map(D){return this.steps.push(D),this}forEach(D){return this.steps.push(H=>(D(H),H)),this}filter(D){return this.steps.push(H=>D(H)?H:g),this}reduce(D,H){let I=H;return this.steps.push(S=>(I=D(I,S),I)),this}latch(D=(H,I)=>H===I){let H=!0,I;return this.steps.push(S=>{let T=H||!D(S,I);return H=!1,I=S,T?S:g}),this}evaluate(D){for(let H of this.steps)if(D=H(D),D===g)break;return D}}function v(P,D,H=I=>I){let I=(...R)=>k.fire(H(...R)),S=()=>P.on(D,I),T=()=>P.removeListener(D,I),k=new xt({onWillAddFirstListener:S,onDidRemoveLastListener:T});return k.event}e.fromNodeEventEmitter=v;function x(P,D,H=I=>I){let I=(...R)=>k.fire(H(...R)),S=()=>P.addEventListener(D,I),T=()=>P.removeEventListener(D,I),k=new xt({onWillAddFirstListener:S,onDidRemoveLastListener:T});return k.event}e.fromDOMEventEmitter=x;function b(P){return new Promise(D=>s(P)(D))}e.toPromise=b;function E(P){let D=new xt;return P.then(H=>{D.fire(H)},()=>{D.fire(void 0)}).finally(()=>{D.dispose()}),D.event}e.fromPromise=E;function O(P,D){return P(H=>D.fire(H))}e.forward=O;function B(P,D,H){return D(H),P(I=>D(I))}e.runAndSubscribe=B;class N{constructor(D,H){this._observable=D,this._counter=0,this._hasChanged=!1;let I={onWillAddFirstListener:()=>{D.addObserver(this)},onDidRemoveLastListener:()=>{D.removeObserver(this)}};H||t(I),this.emitter=new xt(I),H&&H.add(this.emitter)}beginUpdate(D){this._counter++}handlePossibleChange(D){}handleChange(D,H){this._hasChanged=!0}endUpdate(D){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function A(P,D){return new N(P,D).emitter.event}e.fromObservable=A;function K(P){return(D,H,I)=>{let S=0,T=!1,k={beginUpdate(){S++},endUpdate(){S--,S===0&&(P.reportChanges(),T&&(T=!1,D.call(H)))},handlePossibleChange(){},handleChange(){T=!0}};P.addObserver(k),P.reportChanges();let R={dispose(){P.removeObserver(k)}};return I instanceof pn?I.add(R):Array.isArray(I)&&I.push(R),R}}e.fromObservableLight=K})(Ks||(Ks={}));var cn=class hn{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${hn._idPool++}`,hn.all.add(this)}start(t){this._stopWatch=new wd,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};cn.all=new Set,cn._idPool=0;var Cd=cn,oa=-1,va=class ba{constructor(t,r,s=(ba._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=r,this.name=s,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,r){let s=this.threshold;if(s<=0||r<s)return;this._stacks||(this._stacks=new Map);let o=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,o+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=s*.5;let[i,n]=this.getMostFrequentStack(),a=`[${this.name}] potential listener LEAK detected, having ${r} listeners already. MOST frequent listener (${n}):`;console.warn(a),console.warn(i);let u=new kd(a,i);this._errorHandler(u)}return()=>{let i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,r=0;for(let[s,o]of this._stacks)(!t||r<o)&&(t=[s,o],r=o);return t}};va._idPool=1;var xd=va,dn=class wa{constructor(t){this.value=t}static create(){let t=new Error;return new wa(t.stack??"")}print(){console.warn(this.value.split(`
31
31
  `).slice(2).join(`
32
- `))}},qh=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},Kh=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},Gh=0,ki=class{constructor(e){this.value=e,this.id=Gh++}},Vh=2,Yh=(e,t)=>{if(e instanceof ki)t(e);else for(let r=0;r<e.length;r++){let s=e[r];s&&t(s)}},Ei;if(Uh){let e=[];setInterval(()=>{e.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(e.join(`
33
- `)),e.length=0)},3e3),Ei=new FinalizationRegistry(t=>{typeof t=="string"&&e.push(t)})}var vt=class{constructor(e){this._size=0,this._options=e,this._leakageMon=Bo>0||this._options?.leakWarningThreshold?new $h(e?.onListenerError??Ds,this._options?.leakWarningThreshold??Bo):void 0,this._perfMon=this._options?._profName?new zh(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(Po){let e=this._listeners;queueMicrotask(()=>{Yh(e,t=>t.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??(this._event=(e,t,r)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let o=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(o);let u=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],l=new Kh(`${o}. HINT: Stack shows most frequent listener (${u[1]}-times)`,u[0]);return(this._options?.onListenerError||Ds)(l),bt.None}if(this._disposed)return bt.None;t&&(e=e.bind(t));let s=new ki(e),a,i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(s.stack=zs.create(),a=this._leakageMon.check(s.stack,this._size+1)),Po&&(s.stack=i??zs.create()),this._listeners?this._listeners instanceof ki?(this._deliveryQueue??(this._deliveryQueue=new Jh),this._listeners=[this._listeners,s]):this._listeners.push(s):(this._options?.onWillAddFirstListener?.(this),this._listeners=s,this._options?.onDidAddFirstListener?.(this)),this._size++;let n=ur(()=>{Ei?.unregister(n),a?.(),this._removeListener(s)});if(r instanceof Ks?r.add(n):Array.isArray(r)&&r.push(n),Ei){let o=new Error().stack.split(`
32
+ `))}},kd=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},Ed=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},Ld=0,Us=class{constructor(e){this.value=e,this.id=Ld++}},Td=2,Rd=(e,t)=>{if(e instanceof Us)t(e);else for(let r=0;r<e.length;r++){let s=e[r];s&&t(s)}},zs;if(yd){let e=[];setInterval(()=>{e.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(e.join(`
33
+ `)),e.length=0)},3e3),zs=new FinalizationRegistry(t=>{typeof t=="string"&&e.push(t)})}var xt=class{constructor(e){this._size=0,this._options=e,this._leakageMon=oa>0||this._options?.leakWarningThreshold?new xd(e?.onListenerError??Qi,this._options?.leakWarningThreshold??oa):void 0,this._perfMon=this._options?._profName?new Cd(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(na){let e=this._listeners;queueMicrotask(()=>{Rd(e,t=>t.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??(this._event=(e,t,r)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let a=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(a);let u=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],l=new Ed(`${a}. HINT: Stack shows most frequent listener (${u[1]}-times)`,u[0]);return(this._options?.onListenerError||Qi)(l),kt.None}if(this._disposed)return kt.None;t&&(e=e.bind(t));let s=new Us(e),o,i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(s.stack=dn.create(),o=this._leakageMon.check(s.stack,this._size+1)),na&&(s.stack=i??dn.create()),this._listeners?this._listeners instanceof Us?(this._deliveryQueue??(this._deliveryQueue=new Md),this._listeners=[this._listeners,s]):this._listeners.push(s):(this._options?.onWillAddFirstListener?.(this),this._listeners=s,this._options?.onDidAddFirstListener?.(this)),this._size++;let n=Lr(()=>{zs?.unregister(n),o?.(),this._removeListener(s)});if(r instanceof pn?r.add(n):Array.isArray(r)&&r.push(n),zs){let a=new Error().stack.split(`
34
34
  `).slice(2,3).join(`
35
- `).trim(),u=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(o);Ei.register(n,u?.[2]??o,n)}return n}),this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,r=t.indexOf(e);if(r===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[r]=void 0;let s=this._deliveryQueue.current===this;if(this._size*Vh<=t.length){let a=0;for(let i=0;i<t.length;i++)t[i]?t[a++]=t[i]:s&&(this._deliveryQueue.end--,a<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=a}}_deliver(e,t){if(!e)return;let r=this._options?.onListenerError||Ds;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof ki)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},Jh=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,r){this.i=0,this.end=r,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},Yo=Object.freeze(function(e,t){let r=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(r)}}}),Oo;(e=>{function t(r){return r===e.None||r===e.Cancelled||r instanceof Xh?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Mi.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Yo})})(Oo||(Oo={}));var Xh=class{constructor(){this._isCancelled=!1,this._emitter=null}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?Yo:(this._emitter||(this._emitter=new vt),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},hr="en",$s=!1,qs=!1,Li=!1,Zh=!1,Qh=!1,Jo=!1,ed=!1,td=!1,rd=!1,id=!1,xi,Ti=hr,Io=hr,sd,Rt,Mt=globalThis,Ze;typeof Mt.vscode<"u"&&typeof Mt.vscode.process<"u"?Ze=Mt.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(Ze=process);var Xo=typeof Ze?.versions?.electron=="string",nd=Xo&&Ze?.type==="renderer";if(typeof Ze=="object"){$s=Ze.platform==="win32",qs=Ze.platform==="darwin",Li=Ze.platform==="linux",Zh=Li&&!!Ze.env.SNAP&&!!Ze.env.SNAP_REVISION,ed=Xo,rd=!!Ze.env.CI||!!Ze.env.BUILD_ARTIFACTSTAGINGDIRECTORY,xi=hr,Ti=hr;let e=Ze.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);xi=t.userLocale,Io=t.osLocale,Ti=t.resolvedLanguage||hr,sd=t.languagePack?.translationsConfigFile}catch{}Qh=!0}else typeof navigator=="object"&&!nd?(Rt=navigator.userAgent,$s=Rt.indexOf("Windows")>=0,qs=Rt.indexOf("Macintosh")>=0,td=(Rt.indexOf("Macintosh")>=0||Rt.indexOf("iPad")>=0||Rt.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Li=Rt.indexOf("Linux")>=0,id=Rt?.indexOf("Mobi")>=0,Jo=!0,Ti=globalThis._VSCODE_NLS_LANGUAGE||hr,xi=navigator.language.toLowerCase(),Io=xi):console.error("Unable to resolve platform.");var Ps=0;qs?Ps=1:$s?Ps=3:Li&&(Ps=2);var od=Jo&&typeof Mt.importScripts=="function",hm=od?Mt.origin:void 0,wt=Rt,Ut=Ti,No;(e=>{function t(){return Ut}e.value=t;function r(){return Ut.length===2?Ut==="en":Ut.length>=3?Ut[0]==="e"&&Ut[1]==="n"&&Ut[2]==="-":!1}e.isDefaultVariant=r;function s(){return Ut==="en"}e.isDefault=s})(No||(No={}));var ad=typeof Mt.postMessage=="function"&&!Mt.importScripts,ld=(()=>{if(ad){let e=[];Mt.addEventListener("message",r=>{if(r.data&&r.data.vscodeScheduleAsyncWork)for(let s=0,a=e.length;s<a;s++){let i=e[s];if(i.id===r.data.vscodeScheduleAsyncWork){e.splice(s,1),i.callback();return}}});let t=0;return r=>{let s=++t;e.push({id:s,callback:r}),Mt.postMessage({vscodeScheduleAsyncWork:s},"*")}}return e=>setTimeout(e)})(),cd=!!(wt&&wt.indexOf("Chrome")>=0),dm=!!(wt&&wt.indexOf("Firefox")>=0),um=!!(!cd&&wt&&wt.indexOf("Safari")>=0),fm=!!(wt&&wt.indexOf("Edg/")>=0),pm=!!(wt&&wt.indexOf("Android")>=0);function Zo(e,t=0,r){let s=setTimeout(()=>{e(),r&&a.dispose()},t),a=ur(()=>{clearTimeout(s),r?.deleteAndLeak(a)});return r?.add(a),a}var hd,Bs;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?Bs=(e,t)=>{ld(()=>{if(r)return;let s=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,s-Date.now())}}))});let r=!1;return{dispose(){r||(r=!0)}}}:Bs=(e,t,r)=>{let s=e.requestIdleCallback(t,typeof r=="number"?{timeout:r}:void 0),a=!1;return{dispose(){a||(a=!0,e.cancelIdleCallback(s))}}},hd=e=>Bs(globalThis,e)})();var Ho;(e=>{async function t(s){let a,i=await Promise.all(s.map(n=>n.then(o=>o,o=>{a||(a=o)})));if(typeof a<"u")throw a;return i}e.settled=t;function r(s){return new Promise(async(a,i)=>{try{await s(a,i)}catch(n){i(n)}})}e.withAsyncBody=r})(Ho||(Ho={}));var Fo=class st{static fromArray(t){return new st(r=>{r.emitMany(t)})}static fromPromise(t){return new st(async r=>{r.emitMany(await t)})}static fromPromises(t){return new st(async r=>{await Promise.all(t.map(async s=>r.emitOne(await s)))})}static merge(t){return new st(async r=>{await Promise.all(t.map(async s=>{for await(let a of s)r.emitOne(a)}))})}constructor(t,r){this._state=0,this._results=[],this._error=null,this._onReturn=r,this._onStateChanged=new vt,queueMicrotask(async()=>{let s={emitOne:a=>this.emitOne(a),emitMany:a=>this.emitMany(a),reject:a=>this.reject(a)};try{await Promise.resolve(t(s)),this.resolve()}catch(a){this.reject(a)}finally{s.emitOne=void 0,s.emitMany=void 0,s.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await Mi.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,r){return new st(async s=>{for await(let a of t)s.emitOne(r(a))})}map(t){return st.map(this,t)}static filter(t,r){return new st(async s=>{for await(let a of t)r(a)&&s.emitOne(a)})}filter(t){return st.filter(this,t)}static coalesce(t){return st.filter(t,r=>!!r)}coalesce(){return st.coalesce(this)}static async toPromise(t){let r=[];for await(let s of t)r.push(s);return r}toPromise(){return st.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};Fo.EMPTY=Fo.fromArray([]);var dd=class extends bt{constructor(e){super(),this._terminal=e,this._linesCacheTimeout=this._register(new Ri),this._linesCacheDisposables=this._register(new Ri),this._register(ur(()=>this._destroyLinesCache()))}initLinesCache(){this._linesCache||(this._linesCache=new Array(this._terminal.buffer.active.length),this._linesCacheDisposables.value=jo(this._terminal.onLineFeed(()=>this._destroyLinesCache()),this._terminal.onCursorMove(()=>this._destroyLinesCache()),this._terminal.onResize(()=>this._destroyLinesCache()))),this._linesCacheTimeout.value=Zo(()=>this._destroyLinesCache(),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._linesCacheDisposables.clear(),this._linesCacheTimeout.clear()}getLineFromCache(e){return this._linesCache?.[e]}setLineInCache(e,t){this._linesCache&&(this._linesCache[e]=t)}translateBufferLineToStringWithWrap(e,t){let r=[],s=[0],a=this._terminal.buffer.active.getLine(e);for(;a;){let i=this._terminal.buffer.active.getLine(e+1),n=i?i.isWrapped:!1,o=a.translateToString(!n&&t);if(n&&i){let u=a.getCell(a.length-1);u&&u.getCode()===0&&u.getWidth()===1&&i.getCell(0)?.getWidth()===2&&(o=o.slice(0,-1))}if(r.push(o),n)s.push(s[s.length-1]+o.length);else break;e++,a=i}return[r.join(""),s]}},ud=class{get cachedSearchTerm(){return this._cachedSearchTerm}set cachedSearchTerm(e){this._cachedSearchTerm=e}get lastSearchOptions(){return this._lastSearchOptions}set lastSearchOptions(e){this._lastSearchOptions=e}isValidSearchTerm(e){return!!(e&&e.length>0)}didOptionsChange(e){return this._lastSearchOptions?e?this._lastSearchOptions.caseSensitive!==e.caseSensitive||this._lastSearchOptions.regex!==e.regex||this._lastSearchOptions.wholeWord!==e.wholeWord:!1:!0}shouldUpdateHighlighting(e,t){return t?.decorations?this._cachedSearchTerm===void 0||e!==this._cachedSearchTerm||this.didOptionsChange(t):!1}clearCachedTerm(){this._cachedSearchTerm=void 0}reset(){this._cachedSearchTerm=void 0,this._lastSearchOptions=void 0}},fd=class{constructor(e,t){this._terminal=e,this._lineCache=t}find(e,t,r,s){if(!e||e.length===0){this._terminal.clearSelection();return}if(r>this._terminal.cols)throw new Error(`Invalid col: ${r} to search in terminal of ${this._terminal.cols} cols`);this._lineCache.initLinesCache();let a={startRow:t,startCol:r},i=this._findInLine(e,a,s);if(!i)for(let n=t+1;n<this._terminal.buffer.active.baseY+this._terminal.rows&&(a.startRow=n,a.startCol=0,i=this._findInLine(e,a,s),!i);n++);return i}findNextWithSelection(e,t,r){if(!e||e.length===0){this._terminal.clearSelection();return}let s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let a=0,i=0;s&&(r===e?(a=s.end.x,i=s.end.y):(a=s.start.x,i=s.start.y)),this._lineCache.initLinesCache();let n={startRow:i,startCol:a},o=this._findInLine(e,n,t);if(!o)for(let u=i+1;u<this._terminal.buffer.active.baseY+this._terminal.rows&&(n.startRow=u,n.startCol=0,o=this._findInLine(e,n,t),!o);u++);if(!o&&i!==0)for(let u=0;u<i&&(n.startRow=u,n.startCol=0,o=this._findInLine(e,n,t),!o);u++);return!o&&s&&(n.startRow=s.start.y,n.startCol=0,o=this._findInLine(e,n,t)),o}findPreviousWithSelection(e,t,r){if(!e||e.length===0){this._terminal.clearSelection();return}let s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let a=this._terminal.buffer.active.baseY+this._terminal.rows-1,i=this._terminal.cols,n=!0;this._lineCache.initLinesCache();let o={startRow:a,startCol:i},u;if(s&&(o.startRow=a=s.start.y,o.startCol=i=s.start.x,r!==e&&(u=this._findInLine(e,o,t,!1),u||(o.startRow=a=s.end.y,o.startCol=i=s.end.x))),u||(u=this._findInLine(e,o,t,n)),!u){o.startCol=Math.max(o.startCol,this._terminal.cols);for(let l=a-1;l>=0&&(o.startRow=l,u=this._findInLine(e,o,t,n),!u);l--);}if(!u&&a!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let l=this._terminal.buffer.active.baseY+this._terminal.rows-1;l>=a&&(o.startRow=l,u=this._findInLine(e,o,t,n),!u);l--);return u}_isWholeWord(e,t,r){return(e===0||" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?".includes(t[e-1]))&&(e+r.length===t.length||" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?".includes(t[e+r.length]))}_findInLine(e,t,r={},s=!1){let a=t.startRow,i=t.startCol;if(this._terminal.buffer.active.getLine(a)?.isWrapped){if(s){t.startCol+=this._terminal.cols;return}return t.startRow--,t.startCol+=this._terminal.cols,this._findInLine(e,t,r)}let n=this._lineCache.getLineFromCache(a);n||(n=this._lineCache.translateBufferLineToStringWithWrap(a,!0),this._lineCache.setLineInCache(a,n));let[o,u]=n,l=this._bufferColsToStringOffset(a,i),_=e,m=o;r.regex||(_=r.caseSensitive?e:e.toLowerCase(),m=r.caseSensitive?o:o.toLowerCase());let w=-1;if(r.regex){let p=RegExp(_,r.caseSensitive?"g":"gi"),c;if(s)for(;c=p.exec(m.slice(0,l));)w=p.lastIndex-c[0].length,e=c[0],p.lastIndex-=e.length-1;else c=p.exec(m.slice(l)),c&&c[0].length>0&&(w=l+(p.lastIndex-c[0].length),e=c[0])}else s?l-_.length>=0&&(w=m.lastIndexOf(_,l-_.length)):w=m.indexOf(_,l);if(w>=0){if(r.wholeWord&&!this._isWholeWord(w,m,e))return;let p=0;for(;p<u.length-1&&w>=u[p+1];)p++;let c=p;for(;c<u.length-1&&w+e.length>=u[c+1];)c++;let d=w-u[p],h=w+e.length-u[c],f=this._stringLengthToBufferSize(a+p,d),g=this._stringLengthToBufferSize(a+c,h)-f+this._terminal.cols*(c-p);return{term:e,col:f,row:a+p,size:g}}}_stringLengthToBufferSize(e,t){let r=this._terminal.buffer.active.getLine(e);if(!r)return 0;for(let s=0;s<t;s++){let a=r.getCell(s);if(!a)break;let i=a.getChars();i.length>1&&(t-=i.length-1);let n=r.getCell(s+1);n&&n.getWidth()===0&&t++}return t}_bufferColsToStringOffset(e,t){let r=e,s=0,a=this._terminal.buffer.active.getLine(r);for(;t>0&&a;){for(let i=0;i<t&&i<this._terminal.cols;i++){let n=a.getCell(i);if(!n)break;n.getWidth()&&(s+=n.getCode()===0?1:n.getChars().length)}if(r++,a=this._terminal.buffer.active.getLine(r),a&&!a.isWrapped)break;t-=this._terminal.cols}return s}},pd=class extends bt{constructor(e){super(),this._terminal=e,this._highlightDecorations=[],this._highlightedLines=new Set,this._register(ur(()=>this.clearHighlightDecorations()))}createHighlightDecorations(e,t){this.clearHighlightDecorations();for(let r of e){let s=this._createResultDecorations(r,t,!1);if(s)for(let a of s)this._storeDecoration(a,r)}}createActiveDecoration(e,t){let r=this._createResultDecorations(e,t,!0);if(r)return{decorations:r,match:e,dispose(){Ur(r)}}}clearHighlightDecorations(){Ur(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear()}_storeDecoration(e,t){this._highlightedLines.add(e.marker.line),this._highlightDecorations.push({decoration:e,match:t,dispose(){e.dispose()}})}_applyStyles(e,t,r){e.classList.contains("xterm-find-result-decoration")||(e.classList.add("xterm-find-result-decoration"),t&&(e.style.outline=`1px solid ${t}`)),r&&e.classList.add("xterm-find-active-result-decoration")}_createResultDecorations(e,t,r){let s=[],a=e.col,i=e.size,n=-this._terminal.buffer.active.baseY-this._terminal.buffer.active.cursorY+e.row;for(;i>0;){let u=Math.min(this._terminal.cols-a,i);s.push([n,a,u]),a=0,i-=u,n++}let o=[];for(let u of s){let l=this._terminal.registerMarker(u[0]),_=this._terminal.registerDecoration({marker:l,x:u[1],width:u[2],backgroundColor:r?t.activeMatchBackground:t.matchBackground,overviewRulerOptions:this._highlightedLines.has(l.line)?void 0:{color:r?t.activeMatchColorOverviewRuler:t.matchOverviewRuler,position:"center"}});if(_){let m=[];m.push(l),m.push(_.onRender(w=>this._applyStyles(w,r?t.activeMatchBorder:t.matchBorder,!1))),m.push(_.onDispose(()=>Ur(m))),o.push(_)}}return o.length===0?void 0:o}},_d=class extends bt{constructor(){super(...arguments),this._searchResults=[],this._onDidChangeResults=this._register(new vt)}get onDidChangeResults(){return this._onDidChangeResults.event}get searchResults(){return this._searchResults}get selectedDecoration(){return this._selectedDecoration}set selectedDecoration(e){this._selectedDecoration=e}updateResults(e,t){this._searchResults=e.slice(0,t)}clearResults(){this._searchResults=[]}clearSelectedDecoration(){this._selectedDecoration&&(this._selectedDecoration.dispose(),this._selectedDecoration=void 0)}findResultIndex(e){for(let t=0;t<this._searchResults.length;t++){let r=this._searchResults[t];if(r.row===e.row&&r.col===e.col&&r.size===e.size)return t}return-1}fireResultsChanged(e){if(!e)return;let t=-1;this._selectedDecoration&&(t=this.findResultIndex(this._selectedDecoration.match)),this._onDidChangeResults.fire({resultIndex:t,resultCount:this._searchResults.length})}reset(){this.clearSelectedDecoration(),this.clearResults()}},Qo=class extends bt{constructor(e){super(),this._highlightTimeout=this._register(new Ri),this._lineCache=this._register(new Ri),this._state=new ud,this._resultTracker=this._register(new _d),this._highlightLimit=e?.highlightLimit??1e3}get onDidChangeResults(){return this._resultTracker.onDidChangeResults}activate(e){this._terminal=e,this._lineCache.value=new dd(e),this._engine=new fd(e,this._lineCache.value),this._decorationManager=new pd(e),this._register(this._terminal.onWriteParsed(()=>this._updateMatches())),this._register(this._terminal.onResize(()=>this._updateMatches())),this._register(ur(()=>this.clearDecorations()))}_updateMatches(){this._highlightTimeout.clear(),this._state.cachedSearchTerm&&this._state.lastSearchOptions?.decorations&&(this._highlightTimeout.value=Zo(()=>{let e=this._state.cachedSearchTerm;this._state.clearCachedTerm(),this.findPrevious(e,{...this._state.lastSearchOptions,incremental:!0},{noScroll:!0})},200))}clearDecorations(e){this._resultTracker.clearSelectedDecoration(),this._decorationManager?.clearHighlightDecorations(),this._resultTracker.clearResults(),e||this._state.clearCachedTerm()}clearActiveDecoration(){this._resultTracker.clearSelectedDecoration()}findNext(e,t,r){if(!this._terminal||!this._engine)throw new Error("Cannot use addon until it has been loaded");this._state.lastSearchOptions=t,this._state.shouldUpdateHighlighting(e,t)&&this._highlightAllMatches(e,t);let s=this._findNextAndSelect(e,t,r);return this._fireResults(t),this._state.cachedSearchTerm=e,s}_highlightAllMatches(e,t){if(!this._terminal||!this._engine||!this._decorationManager)throw new Error("Cannot use addon until it has been loaded");if(!this._state.isValidSearchTerm(e)){this.clearDecorations();return}this.clearDecorations(!0);let r=[],s,a=this._engine.find(e,0,0,t);for(;a&&(s?.row!==a.row||s?.col!==a.col)&&!(r.length>=this._highlightLimit);)s=a,r.push(s),a=this._engine.find(e,s.col+s.term.length>=this._terminal.cols?s.row+1:s.row,s.col+s.term.length>=this._terminal.cols?0:s.col+1,t);this._resultTracker.updateResults(r,this._highlightLimit),t.decorations&&this._decorationManager.createHighlightDecorations(r,t.decorations)}_findNextAndSelect(e,t,r){if(!this._terminal||!this._engine)return!1;if(!this._state.isValidSearchTerm(e))return this._terminal.clearSelection(),this.clearDecorations(),!1;let s=this._engine.findNextWithSelection(e,t,this._state.cachedSearchTerm);return this._selectResult(s,t?.decorations,r?.noScroll)}findPrevious(e,t,r){if(!this._terminal||!this._engine)throw new Error("Cannot use addon until it has been loaded");this._state.lastSearchOptions=t,this._state.shouldUpdateHighlighting(e,t)&&this._highlightAllMatches(e,t);let s=this._findPreviousAndSelect(e,t,r);return this._fireResults(t),this._state.cachedSearchTerm=e,s}_fireResults(e){this._resultTracker.fireResultsChanged(!!e?.decorations)}_findPreviousAndSelect(e,t,r){if(!this._terminal||!this._engine)return!1;if(!this._state.isValidSearchTerm(e))return this._terminal.clearSelection(),this.clearDecorations(),!1;let s=this._engine.findPreviousWithSelection(e,t,this._state.cachedSearchTerm);return this._selectResult(s,t?.decorations,r?.noScroll)}_selectResult(e,t,r){if(!this._terminal||!this._decorationManager)return!1;if(this._resultTracker.clearSelectedDecoration(),!e)return this._terminal.clearSelection(),!1;if(this._terminal.select(e.col,e.row,e.size),t){let s=this._decorationManager.createActiveDecoration(e,t);s&&(this._resultTracker.selectedDecoration=s)}if(!r&&(e.row>=this._terminal.buffer.active.viewportY+this._terminal.rows||e.row<this._terminal.buffer.active.viewportY)){let s=e.row-this._terminal.buffer.active.viewportY;s-=Math.floor(this._terminal.rows/2),this._terminal.scrollLines(s)}return!0}};var md=class{constructor(e,t,r,s={}){this._terminal=e,this._regex=t,this._handler=r,this._options=s}provideLinks(e,t){let r=vd.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(r))}_addCallbacks(e){return e.map(t=>(t.leave=this._options.leave,t.hover=(r,s)=>{if(this._options.hover){let{range:a}=t;this._options.hover(r,s,a)}},t))}};function gd(e){try{let t=new URL(e),r=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(r.toLocaleLowerCase())}catch{return!1}}var vd=class Pi{static computeLink(t,r,s,a){let i=new RegExp(r.source,(r.flags||"")+"g"),[n,o]=Pi._getWindowedLineStrings(t-1,s),u=n.join(""),l,_=[];for(;l=i.exec(u);){let m=l[0];if(!gd(m))continue;let[w,p]=Pi._mapStrIdx(s,o,0,l.index),[c,d]=Pi._mapStrIdx(s,w,p,m.length);if(w===-1||p===-1||c===-1||d===-1)continue;let h={start:{x:p+1,y:w+1},end:{x:d,y:c+1}};_.push({range:h,text:m,activate:a})}return _}static _getWindowedLineStrings(t,r){let s,a=t,i=t,n=0,o="",u=[];if(s=r.buffer.active.getLine(t)){let l=s.translateToString(!0);if(s.isWrapped&&l[0]!==" "){for(n=0;(s=r.buffer.active.getLine(--a))&&n<2048&&(o=s.translateToString(!0),n+=o.length,u.push(o),!(!s.isWrapped||o.indexOf(" ")!==-1)););u.reverse()}for(u.push(l),n=0;(s=r.buffer.active.getLine(++i))&&s.isWrapped&&n<2048&&(o=s.translateToString(!0),n+=o.length,u.push(o),o.indexOf(" ")===-1););}return[u,a]}static _mapStrIdx(t,r,s,a){let i=t.buffer.active,n=i.getNullCell(),o=s;for(;a;){let u=i.getLine(r);if(!u)return[-1,-1];for(let l=o;l<u.length;++l){u.getCell(l,n);let _=n.getChars();if(n.getWidth()&&(a-=_.length||1,l===u.length-1&&_==="")){let m=i.getLine(r+1);m&&m.isWrapped&&(m.getCell(0,n),n.getWidth()===2&&(a+=1))}if(a<0)return[r,l]}r++,o=0}return[r,o]}},bd=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function wd(e,t){let r=window.open();if(r){try{r.opener=null}catch{}r.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}var ea=class{constructor(e=wd,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,r=t.urlRegex||bd;this._linkProvider=this._terminal.registerLinkProvider(new md(this._terminal,r,this._handler,t))}dispose(){this._linkProvider?.dispose()}};var yd=Object.defineProperty,Sd=Object.getOwnPropertyDescriptor,Cd=(e,t,r,s)=>{for(var a=s>1?void 0:s?Sd(t,r):t,i=e.length-1,n;i>=0;i--)(n=e[i])&&(a=(s?n(t,r,a):n(a))||a);return s&&a&&yd(t,r,a),a},xd=(e,t)=>(r,s)=>t(r,s,e),kd=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?ta.isErrorNoTelemetry(e)?new ta(e.message+`
35
+ `).trim(),u=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(a);zs.register(n,u?.[2]??a,n)}return n}),this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,r=t.indexOf(e);if(r===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[r]=void 0;let s=this._deliveryQueue.current===this;if(this._size*Td<=t.length){let o=0;for(let i=0;i<t.length;i++)t[i]?t[o++]=t[i]:s&&(this._deliveryQueue.end--,o<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=o}}_deliver(e,t){if(!e)return;let r=this._options?.onListenerError||Qi;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof Us)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},Md=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,r){this.i=0,this.end=r,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},ya=Object.freeze(function(e,t){let r=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(r)}}}),aa;(e=>{function t(r){return r===e.None||r===e.Cancelled||r instanceof Ad?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Ks.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:ya})})(aa||(aa={}));var Ad=class{constructor(){this._isCancelled=!1,this._emitter=null}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?ya:(this._emitter||(this._emitter=new xt),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},kr="en",un=!1,fn=!1,js=!1,Dd=!1,Pd=!1,Sa=!1,Bd=!1,Od=!1,Id=!1,Nd=!1,Ws,$s=kr,la=kr,Hd,Ot,It=globalThis,tt;typeof It.vscode<"u"&&typeof It.vscode.process<"u"?tt=It.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(tt=process);var Ca=typeof tt?.versions?.electron=="string",Fd=Ca&&tt?.type==="renderer";if(typeof tt=="object"){un=tt.platform==="win32",fn=tt.platform==="darwin",js=tt.platform==="linux",Dd=js&&!!tt.env.SNAP&&!!tt.env.SNAP_REVISION,Bd=Ca,Id=!!tt.env.CI||!!tt.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Ws=kr,$s=kr;let e=tt.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);Ws=t.userLocale,la=t.osLocale,$s=t.resolvedLanguage||kr,Hd=t.languagePack?.translationsConfigFile}catch{}Pd=!0}else typeof navigator=="object"&&!Fd?(Ot=navigator.userAgent,un=Ot.indexOf("Windows")>=0,fn=Ot.indexOf("Macintosh")>=0,Od=(Ot.indexOf("Macintosh")>=0||Ot.indexOf("iPad")>=0||Ot.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,js=Ot.indexOf("Linux")>=0,Nd=Ot?.indexOf("Mobi")>=0,Sa=!0,$s=globalThis._VSCODE_NLS_LANGUAGE||kr,Ws=navigator.language.toLowerCase(),la=Ws):console.error("Unable to resolve platform.");var en=0;fn?en=1:un?en=3:js&&(en=2);var Wd=Sa&&typeof It.importScripts=="function",rg=Wd?It.origin:void 0,Et=Ot,Yt=$s,ca;(e=>{function t(){return Yt}e.value=t;function r(){return Yt.length===2?Yt==="en":Yt.length>=3?Yt[0]==="e"&&Yt[1]==="n"&&Yt[2]==="-":!1}e.isDefaultVariant=r;function s(){return Yt==="en"}e.isDefault=s})(ca||(ca={}));var Ud=typeof It.postMessage=="function"&&!It.importScripts,zd=(()=>{if(Ud){let e=[];It.addEventListener("message",r=>{if(r.data&&r.data.vscodeScheduleAsyncWork)for(let s=0,o=e.length;s<o;s++){let i=e[s];if(i.id===r.data.vscodeScheduleAsyncWork){e.splice(s,1),i.callback();return}}});let t=0;return r=>{let s=++t;e.push({id:s,callback:r}),It.postMessage({vscodeScheduleAsyncWork:s},"*")}}return e=>setTimeout(e)})(),jd=!!(Et&&Et.indexOf("Chrome")>=0),sg=!!(Et&&Et.indexOf("Firefox")>=0),ig=!!(!jd&&Et&&Et.indexOf("Safari")>=0),ng=!!(Et&&Et.indexOf("Edg/")>=0),og=!!(Et&&Et.indexOf("Android")>=0);function xa(e,t=0,r){let s=setTimeout(()=>{e(),r&&o.dispose()},t),o=Lr(()=>{clearTimeout(s),r?.deleteAndLeak(o)});return r?.add(o),o}var $d,tn;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?tn=(e,t)=>{zd(()=>{if(r)return;let s=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,s-Date.now())}}))});let r=!1;return{dispose(){r||(r=!0)}}}:tn=(e,t,r)=>{let s=e.requestIdleCallback(t,typeof r=="number"?{timeout:r}:void 0),o=!1;return{dispose(){o||(o=!0,e.cancelIdleCallback(s))}}},$d=e=>tn(globalThis,e)})();var ha;(e=>{async function t(s){let o,i=await Promise.all(s.map(n=>n.then(a=>a,a=>{o||(o=a)})));if(typeof o<"u")throw o;return i}e.settled=t;function r(s){return new Promise(async(o,i)=>{try{await s(o,i)}catch(n){i(n)}})}e.withAsyncBody=r})(ha||(ha={}));var da=class lt{static fromArray(t){return new lt(r=>{r.emitMany(t)})}static fromPromise(t){return new lt(async r=>{r.emitMany(await t)})}static fromPromises(t){return new lt(async r=>{await Promise.all(t.map(async s=>r.emitOne(await s)))})}static merge(t){return new lt(async r=>{await Promise.all(t.map(async s=>{for await(let o of s)r.emitOne(o)}))})}constructor(t,r){this._state=0,this._results=[],this._error=null,this._onReturn=r,this._onStateChanged=new xt,queueMicrotask(async()=>{let s={emitOne:o=>this.emitOne(o),emitMany:o=>this.emitMany(o),reject:o=>this.reject(o)};try{await Promise.resolve(t(s)),this.resolve()}catch(o){this.reject(o)}finally{s.emitOne=void 0,s.emitMany=void 0,s.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await Ks.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,r){return new lt(async s=>{for await(let o of t)s.emitOne(r(o))})}map(t){return lt.map(this,t)}static filter(t,r){return new lt(async s=>{for await(let o of t)r(o)&&s.emitOne(o)})}filter(t){return lt.filter(this,t)}static coalesce(t){return lt.filter(t,r=>!!r)}coalesce(){return lt.coalesce(this)}static async toPromise(t){let r=[];for await(let s of t)r.push(s);return r}toPromise(){return lt.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};da.EMPTY=da.fromArray([]);var qd=class extends kt{constructor(e){super(),this._terminal=e,this._linesCacheTimeout=this._register(new qs),this._linesCacheDisposables=this._register(new qs),this._register(Lr(()=>this._destroyLinesCache()))}initLinesCache(){this._linesCache||(this._linesCache=new Array(this._terminal.buffer.active.length),this._linesCacheDisposables.value=pa(this._terminal.onLineFeed(()=>this._destroyLinesCache()),this._terminal.onCursorMove(()=>this._destroyLinesCache()),this._terminal.onResize(()=>this._destroyLinesCache()))),this._linesCacheTimeout.value=xa(()=>this._destroyLinesCache(),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._linesCacheDisposables.clear(),this._linesCacheTimeout.clear()}getLineFromCache(e){return this._linesCache?.[e]}setLineInCache(e,t){this._linesCache&&(this._linesCache[e]=t)}translateBufferLineToStringWithWrap(e,t){let r=[],s=[0],o=this._terminal.buffer.active.getLine(e);for(;o;){let i=this._terminal.buffer.active.getLine(e+1),n=i?i.isWrapped:!1,a=o.translateToString(!n&&t);if(n&&i){let u=o.getCell(o.length-1);u&&u.getCode()===0&&u.getWidth()===1&&i.getCell(0)?.getWidth()===2&&(a=a.slice(0,-1))}if(r.push(a),n)s.push(s[s.length-1]+a.length);else break;e++,o=i}return[r.join(""),s]}},Kd=class{get cachedSearchTerm(){return this._cachedSearchTerm}set cachedSearchTerm(e){this._cachedSearchTerm=e}get lastSearchOptions(){return this._lastSearchOptions}set lastSearchOptions(e){this._lastSearchOptions=e}isValidSearchTerm(e){return!!(e&&e.length>0)}didOptionsChange(e){return this._lastSearchOptions?e?this._lastSearchOptions.caseSensitive!==e.caseSensitive||this._lastSearchOptions.regex!==e.regex||this._lastSearchOptions.wholeWord!==e.wholeWord:!1:!0}shouldUpdateHighlighting(e,t){return t?.decorations?this._cachedSearchTerm===void 0||e!==this._cachedSearchTerm||this.didOptionsChange(t):!1}clearCachedTerm(){this._cachedSearchTerm=void 0}reset(){this._cachedSearchTerm=void 0,this._lastSearchOptions=void 0}},Gd=class{constructor(e,t){this._terminal=e,this._lineCache=t}find(e,t,r,s){if(!e||e.length===0){this._terminal.clearSelection();return}if(r>this._terminal.cols)throw new Error(`Invalid col: ${r} to search in terminal of ${this._terminal.cols} cols`);this._lineCache.initLinesCache();let o={startRow:t,startCol:r},i=this._findInLine(e,o,s);if(!i)for(let n=t+1;n<this._terminal.buffer.active.baseY+this._terminal.rows&&(o.startRow=n,o.startCol=0,i=this._findInLine(e,o,s),!i);n++);return i}findNextWithSelection(e,t,r){if(!e||e.length===0){this._terminal.clearSelection();return}let s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let o=0,i=0;s&&(r===e?(o=s.end.x,i=s.end.y):(o=s.start.x,i=s.start.y)),this._lineCache.initLinesCache();let n={startRow:i,startCol:o},a=this._findInLine(e,n,t);if(!a)for(let u=i+1;u<this._terminal.buffer.active.baseY+this._terminal.rows&&(n.startRow=u,n.startCol=0,a=this._findInLine(e,n,t),!a);u++);if(!a&&i!==0)for(let u=0;u<i&&(n.startRow=u,n.startCol=0,a=this._findInLine(e,n,t),!a);u++);return!a&&s&&(n.startRow=s.start.y,n.startCol=0,a=this._findInLine(e,n,t)),a}findPreviousWithSelection(e,t,r){if(!e||e.length===0){this._terminal.clearSelection();return}let s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let o=this._terminal.buffer.active.baseY+this._terminal.rows-1,i=this._terminal.cols,n=!0;this._lineCache.initLinesCache();let a={startRow:o,startCol:i},u;if(s&&(a.startRow=o=s.start.y,a.startCol=i=s.start.x,r!==e&&(u=this._findInLine(e,a,t,!1),u||(a.startRow=o=s.end.y,a.startCol=i=s.end.x))),u||(u=this._findInLine(e,a,t,n)),!u){a.startCol=Math.max(a.startCol,this._terminal.cols);for(let l=o-1;l>=0&&(a.startRow=l,u=this._findInLine(e,a,t,n),!u);l--);}if(!u&&o!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let l=this._terminal.buffer.active.baseY+this._terminal.rows-1;l>=o&&(a.startRow=l,u=this._findInLine(e,a,t,n),!u);l--);return u}_isWholeWord(e,t,r){return(e===0||" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?".includes(t[e-1]))&&(e+r.length===t.length||" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?".includes(t[e+r.length]))}_findInLine(e,t,r={},s=!1){let o=t.startRow,i=t.startCol;if(this._terminal.buffer.active.getLine(o)?.isWrapped){if(s){t.startCol+=this._terminal.cols;return}return t.startRow--,t.startCol+=this._terminal.cols,this._findInLine(e,t,r)}let n=this._lineCache.getLineFromCache(o);n||(n=this._lineCache.translateBufferLineToStringWithWrap(o,!0),this._lineCache.setLineInCache(o,n));let[a,u]=n,l=this._bufferColsToStringOffset(o,i),_=e,m=a;r.regex||(_=r.caseSensitive?e:e.toLowerCase(),m=r.caseSensitive?a:a.toLowerCase());let y=-1;if(r.regex){let p=RegExp(_,r.caseSensitive?"g":"gi"),c;if(s)for(;c=p.exec(m.slice(0,l));)y=p.lastIndex-c[0].length,e=c[0],p.lastIndex-=e.length-1;else c=p.exec(m.slice(l)),c&&c[0].length>0&&(y=l+(p.lastIndex-c[0].length),e=c[0])}else s?l-_.length>=0&&(y=m.lastIndexOf(_,l-_.length)):y=m.indexOf(_,l);if(y>=0){if(r.wholeWord&&!this._isWholeWord(y,m,e))return;let p=0;for(;p<u.length-1&&y>=u[p+1];)p++;let c=p;for(;c<u.length-1&&y+e.length>=u[c+1];)c++;let d=y-u[p],h=y+e.length-u[c],f=this._stringLengthToBufferSize(o+p,d),g=this._stringLengthToBufferSize(o+c,h)-f+this._terminal.cols*(c-p);return{term:e,col:f,row:o+p,size:g}}}_stringLengthToBufferSize(e,t){let r=this._terminal.buffer.active.getLine(e);if(!r)return 0;for(let s=0;s<t;s++){let o=r.getCell(s);if(!o)break;let i=o.getChars();i.length>1&&(t-=i.length-1);let n=r.getCell(s+1);n&&n.getWidth()===0&&t++}return t}_bufferColsToStringOffset(e,t){let r=e,s=0,o=this._terminal.buffer.active.getLine(r);for(;t>0&&o;){for(let i=0;i<t&&i<this._terminal.cols;i++){let n=o.getCell(i);if(!n)break;n.getWidth()&&(s+=n.getCode()===0?1:n.getChars().length)}if(r++,o=this._terminal.buffer.active.getLine(r),o&&!o.isWrapped)break;t-=this._terminal.cols}return s}},Vd=class extends kt{constructor(e){super(),this._terminal=e,this._highlightDecorations=[],this._highlightedLines=new Set,this._register(Lr(()=>this.clearHighlightDecorations()))}createHighlightDecorations(e,t){this.clearHighlightDecorations();for(let r of e){let s=this._createResultDecorations(r,t,!1);if(s)for(let o of s)this._storeDecoration(o,r)}}createActiveDecoration(e,t){let r=this._createResultDecorations(e,t,!0);if(r)return{decorations:r,match:e,dispose(){rs(r)}}}clearHighlightDecorations(){rs(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear()}_storeDecoration(e,t){this._highlightedLines.add(e.marker.line),this._highlightDecorations.push({decoration:e,match:t,dispose(){e.dispose()}})}_applyStyles(e,t,r){e.classList.contains("xterm-find-result-decoration")||(e.classList.add("xterm-find-result-decoration"),t&&(e.style.outline=`1px solid ${t}`)),r&&e.classList.add("xterm-find-active-result-decoration")}_createResultDecorations(e,t,r){let s=[],o=e.col,i=e.size,n=-this._terminal.buffer.active.baseY-this._terminal.buffer.active.cursorY+e.row;for(;i>0;){let u=Math.min(this._terminal.cols-o,i);s.push([n,o,u]),o=0,i-=u,n++}let a=[];for(let u of s){let l=this._terminal.registerMarker(u[0]),_=this._terminal.registerDecoration({marker:l,x:u[1],width:u[2],backgroundColor:r?t.activeMatchBackground:t.matchBackground,overviewRulerOptions:this._highlightedLines.has(l.line)?void 0:{color:r?t.activeMatchColorOverviewRuler:t.matchOverviewRuler,position:"center"}});if(_){let m=[];m.push(l),m.push(_.onRender(y=>this._applyStyles(y,r?t.activeMatchBorder:t.matchBorder,!1))),m.push(_.onDispose(()=>rs(m))),a.push(_)}}return a.length===0?void 0:a}},Yd=class extends kt{constructor(){super(...arguments),this._searchResults=[],this._onDidChangeResults=this._register(new xt)}get onDidChangeResults(){return this._onDidChangeResults.event}get searchResults(){return this._searchResults}get selectedDecoration(){return this._selectedDecoration}set selectedDecoration(e){this._selectedDecoration=e}updateResults(e,t){this._searchResults=e.slice(0,t)}clearResults(){this._searchResults=[]}clearSelectedDecoration(){this._selectedDecoration&&(this._selectedDecoration.dispose(),this._selectedDecoration=void 0)}findResultIndex(e){for(let t=0;t<this._searchResults.length;t++){let r=this._searchResults[t];if(r.row===e.row&&r.col===e.col&&r.size===e.size)return t}return-1}fireResultsChanged(e){if(!e)return;let t=-1;this._selectedDecoration&&(t=this.findResultIndex(this._selectedDecoration.match)),this._onDidChangeResults.fire({resultIndex:t,resultCount:this._searchResults.length})}reset(){this.clearSelectedDecoration(),this.clearResults()}},ka=class extends kt{constructor(e){super(),this._highlightTimeout=this._register(new qs),this._lineCache=this._register(new qs),this._state=new Kd,this._resultTracker=this._register(new Yd),this._highlightLimit=e?.highlightLimit??1e3}get onDidChangeResults(){return this._resultTracker.onDidChangeResults}activate(e){this._terminal=e,this._lineCache.value=new qd(e),this._engine=new Gd(e,this._lineCache.value),this._decorationManager=new Vd(e),this._register(this._terminal.onWriteParsed(()=>this._updateMatches())),this._register(this._terminal.onResize(()=>this._updateMatches())),this._register(Lr(()=>this.clearDecorations()))}_updateMatches(){this._highlightTimeout.clear(),this._state.cachedSearchTerm&&this._state.lastSearchOptions?.decorations&&(this._highlightTimeout.value=xa(()=>{let e=this._state.cachedSearchTerm;this._state.clearCachedTerm(),this.findPrevious(e,{...this._state.lastSearchOptions,incremental:!0},{noScroll:!0})},200))}clearDecorations(e){this._resultTracker.clearSelectedDecoration(),this._decorationManager?.clearHighlightDecorations(),this._resultTracker.clearResults(),e||this._state.clearCachedTerm()}clearActiveDecoration(){this._resultTracker.clearSelectedDecoration()}findNext(e,t,r){if(!this._terminal||!this._engine)throw new Error("Cannot use addon until it has been loaded");this._state.lastSearchOptions=t,this._state.shouldUpdateHighlighting(e,t)&&this._highlightAllMatches(e,t);let s=this._findNextAndSelect(e,t,r);return this._fireResults(t),this._state.cachedSearchTerm=e,s}_highlightAllMatches(e,t){if(!this._terminal||!this._engine||!this._decorationManager)throw new Error("Cannot use addon until it has been loaded");if(!this._state.isValidSearchTerm(e)){this.clearDecorations();return}this.clearDecorations(!0);let r=[],s,o=this._engine.find(e,0,0,t);for(;o&&(s?.row!==o.row||s?.col!==o.col)&&!(r.length>=this._highlightLimit);)s=o,r.push(s),o=this._engine.find(e,s.col+s.term.length>=this._terminal.cols?s.row+1:s.row,s.col+s.term.length>=this._terminal.cols?0:s.col+1,t);this._resultTracker.updateResults(r,this._highlightLimit),t.decorations&&this._decorationManager.createHighlightDecorations(r,t.decorations)}_findNextAndSelect(e,t,r){if(!this._terminal||!this._engine)return!1;if(!this._state.isValidSearchTerm(e))return this._terminal.clearSelection(),this.clearDecorations(),!1;let s=this._engine.findNextWithSelection(e,t,this._state.cachedSearchTerm);return this._selectResult(s,t?.decorations,r?.noScroll)}findPrevious(e,t,r){if(!this._terminal||!this._engine)throw new Error("Cannot use addon until it has been loaded");this._state.lastSearchOptions=t,this._state.shouldUpdateHighlighting(e,t)&&this._highlightAllMatches(e,t);let s=this._findPreviousAndSelect(e,t,r);return this._fireResults(t),this._state.cachedSearchTerm=e,s}_fireResults(e){this._resultTracker.fireResultsChanged(!!e?.decorations)}_findPreviousAndSelect(e,t,r){if(!this._terminal||!this._engine)return!1;if(!this._state.isValidSearchTerm(e))return this._terminal.clearSelection(),this.clearDecorations(),!1;let s=this._engine.findPreviousWithSelection(e,t,this._state.cachedSearchTerm);return this._selectResult(s,t?.decorations,r?.noScroll)}_selectResult(e,t,r){if(!this._terminal||!this._decorationManager)return!1;if(this._resultTracker.clearSelectedDecoration(),!e)return this._terminal.clearSelection(),!1;if(this._terminal.select(e.col,e.row,e.size),t){let s=this._decorationManager.createActiveDecoration(e,t);s&&(this._resultTracker.selectedDecoration=s)}if(!r&&(e.row>=this._terminal.buffer.active.viewportY+this._terminal.rows||e.row<this._terminal.buffer.active.viewportY)){let s=e.row-this._terminal.buffer.active.viewportY;s-=Math.floor(this._terminal.rows/2),this._terminal.scrollLines(s)}return!0}};var Xd=class{constructor(e,t,r,s={}){this._terminal=e,this._regex=t,this._handler=r,this._options=s}provideLinks(e,t){let r=Zd.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(r))}_addCallbacks(e){return e.map(t=>(t.leave=this._options.leave,t.hover=(r,s)=>{if(this._options.hover){let{range:o}=t;this._options.hover(r,s,o)}},t))}};function Jd(e){try{let t=new URL(e),r=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(r.toLocaleLowerCase())}catch{return!1}}var Zd=class Ys{static computeLink(t,r,s,o){let i=new RegExp(r.source,(r.flags||"")+"g"),[n,a]=Ys._getWindowedLineStrings(t-1,s),u=n.join(""),l,_=[];for(;l=i.exec(u);){let m=l[0];if(!Jd(m))continue;let[y,p]=Ys._mapStrIdx(s,a,0,l.index),[c,d]=Ys._mapStrIdx(s,y,p,m.length);if(y===-1||p===-1||c===-1||d===-1)continue;let h={start:{x:p+1,y:y+1},end:{x:d,y:c+1}};_.push({range:h,text:m,activate:o})}return _}static _getWindowedLineStrings(t,r){let s,o=t,i=t,n=0,a="",u=[];if(s=r.buffer.active.getLine(t)){let l=s.translateToString(!0);if(s.isWrapped&&l[0]!==" "){for(n=0;(s=r.buffer.active.getLine(--o))&&n<2048&&(a=s.translateToString(!0),n+=a.length,u.push(a),!(!s.isWrapped||a.indexOf(" ")!==-1)););u.reverse()}for(u.push(l),n=0;(s=r.buffer.active.getLine(++i))&&s.isWrapped&&n<2048&&(a=s.translateToString(!0),n+=a.length,u.push(a),a.indexOf(" ")===-1););}return[u,o]}static _mapStrIdx(t,r,s,o){let i=t.buffer.active,n=i.getNullCell(),a=s;for(;o;){let u=i.getLine(r);if(!u)return[-1,-1];for(let l=a;l<u.length;++l){u.getCell(l,n);let _=n.getChars();if(n.getWidth()&&(o-=_.length||1,l===u.length-1&&_==="")){let m=i.getLine(r+1);m&&m.isWrapped&&(m.getCell(0,n),n.getWidth()===2&&(o+=1))}if(o<0)return[r,l]}r++,a=0}return[r,a]}},Qd=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function eu(e,t){let r=window.open();if(r){try{r.opener=null}catch{}r.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}var Ea=class{constructor(e=eu,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,r=t.urlRegex||Qd;this._linkProvider=this._terminal.registerLinkProvider(new Xd(this._terminal,r,this._handler,t))}dispose(){this._linkProvider?.dispose()}};var tu=Object.defineProperty,ru=Object.getOwnPropertyDescriptor,su=(e,t,r,s)=>{for(var o=s>1?void 0:s?ru(t,r):t,i=e.length-1,n;i>=0;i--)(n=e[i])&&(o=(s?n(t,r,o):n(o))||o);return s&&o&&tu(t,r,o),o},iu=(e,t)=>(r,s)=>t(r,s,e),nu=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?La.isErrorNoTelemetry(e)?new La(e.message+`
36
36
 
37
37
  `+e.stack):new Error(e.message+`
38
38
 
39
- `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},Ed=new kd;function Hi(e){Ld(e)||Ed.onUnexpectedError(e)}var ln="Canceled";function Ld(e){return e instanceof Td?!0:e instanceof Error&&e.name===ln&&e.message===ln}var Td=class extends Error{constructor(){super(ln),this.name=this.message}},ta=class cn extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof cn)return t;let r=new cn;return r.message=t.message,r.stack=t.stack,r}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}};function Rd(e,t,r=0,s=e.length){let a=r,i=s;for(;a<i;){let n=Math.floor((a+i)/2);t(e[n])?a=n+1:i=n}return a-1}var Md=class za{constructor(t){this._array=t,this._findLastMonotonousLastIdx=0}findLastMonotonous(t){if(za.assertInvariants){if(this._prevFindLastPredicate){for(let s of this._array)if(this._prevFindLastPredicate(s)&&!t(s))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}let r=Rd(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=r+1,r===-1?void 0:this._array[r]}};Md.assertInvariants=!1;var hn;(e=>{function t(i){return i<0}e.isLessThan=t;function r(i){return i<=0}e.isLessThanOrEqual=r;function s(i){return i>0}e.isGreaterThan=s;function a(i){return i===0}e.isNeitherLessOrGreaterThan=a,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(hn||(hn={}));function Ad(e,t){return(r,s)=>t(e(r),e(s))}var Dd=(e,t)=>e-t,ra=class dn{constructor(t){this.iterate=t}forEach(t){this.iterate(r=>(t(r),!0))}toArray(){let t=[];return this.iterate(r=>(t.push(r),!0)),t}filter(t){return new dn(r=>this.iterate(s=>t(s)?r(s):!0))}map(t){return new dn(r=>this.iterate(s=>r(t(s))))}some(t){let r=!1;return this.iterate(s=>(r=t(s),!r)),r}findFirst(t){let r;return this.iterate(s=>t(s)?(r=s,!1):!0),r}findLast(t){let r;return this.iterate(s=>(t(s)&&(r=s),!0)),r}findLastMaxBy(t){let r,s=!0;return this.iterate(a=>((s||hn.isGreaterThan(t(a,r)))&&(s=!1,r=a),!0)),r}};ra.empty=new ra(e=>{});function Pd(e,t){let r=Object.create(null);for(let s of e){let a=t(s),i=r[a];i||(i=r[a]=[]),i.push(s)}return r}var ia,sa,Hm=class{constructor(e,t){this.toKey=t,this._map=new Map,this[ia]="SetWithKey";for(let r of e)this.add(r)}get size(){return this._map.size}add(e){let t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(let e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(let e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(r=>e.call(t,r,r,this))}[(sa=Symbol.iterator,ia=Symbol.toStringTag,sa)](){return this.values()}},Bd=class{constructor(){this.map=new Map}add(e,t){let r=this.map.get(e);r||(r=new Set,this.map.set(e,r)),r.add(t)}delete(e,t){let r=this.map.get(e);r&&(r.delete(t),r.size===0&&this.map.delete(e))}forEach(e,t){let r=this.map.get(e);r&&r.forEach(t)}get(e){return this.map.get(e)||new Set}};function Od(e,t){let r=this,s=!1,a;return function(){if(s)return a;if(s=!0,t)try{a=e.apply(r,arguments)}finally{t()}else a=e.apply(r,arguments);return a}}var un;(e=>{function t(v){return v&&typeof v=="object"&&typeof v[Symbol.iterator]=="function"}e.is=t;let r=Object.freeze([]);function s(){return r}e.empty=s;function*a(v){yield v}e.single=a;function i(v){return t(v)?v:a(v)}e.wrap=i;function n(v){return v||r}e.from=n;function*o(v){for(let x=v.length-1;x>=0;x--)yield v[x]}e.reverse=o;function u(v){return!v||v[Symbol.iterator]().next().done===!0}e.isEmpty=u;function l(v){return v[Symbol.iterator]().next().value}e.first=l;function _(v,x){let b=0;for(let E of v)if(x(E,b++))return!0;return!1}e.some=_;function m(v,x){for(let b of v)if(x(b))return b}e.find=m;function*w(v,x){for(let b of v)x(b)&&(yield b)}e.filter=w;function*p(v,x){let b=0;for(let E of v)yield x(E,b++)}e.map=p;function*c(v,x){let b=0;for(let E of v)yield*x(E,b++)}e.flatMap=c;function*d(...v){for(let x of v)yield*x}e.concat=d;function h(v,x,b){let E=b;for(let O of v)E=x(E,O);return E}e.reduce=h;function*f(v,x,b=v.length){for(x<0&&(x+=v.length),b<0?b+=v.length:b>v.length&&(b=v.length);x<b;x++)yield v[x]}e.slice=f;function g(v,x=Number.POSITIVE_INFINITY){let b=[];if(x===0)return[b,v];let E=v[Symbol.iterator]();for(let O=0;O<x;O++){let B=E.next();if(B.done)return[b,e.empty()];b.push(B.value)}return[b,{[Symbol.iterator](){return E}}]}e.consume=g;async function C(v){let x=[];for await(let b of v)x.push(b);return Promise.resolve(x)}e.asyncToArray=C})(un||(un={}));var Id=!1,br=null,Nd=class $a{constructor(){this.livingDisposables=new Map}getDisposableData(t){let r=this.livingDisposables.get(t);return r||(r={parent:null,source:null,isSingleton:!1,value:t,idx:$a.idx++},this.livingDisposables.set(t,r)),r}trackDisposable(t){let r=this.getDisposableData(t);r.source||(r.source=new Error().stack)}setParent(t,r){let s=this.getDisposableData(t);s.parent=r}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,r){let s=r.get(t);if(s)return s;let a=t.parent?this.getRootParent(this.getDisposableData(t.parent),r):t;return r.set(t,a),a}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,r])=>r.source!==null&&!this.getRootParent(r,t).isSingleton).flatMap(([r])=>r)}computeLeakingDisposables(t=10,r){let s;if(r)s=r;else{let u=new Map,l=[...this.livingDisposables.values()].filter(m=>m.source!==null&&!this.getRootParent(m,u).isSingleton);if(l.length===0)return;let _=new Set(l.map(m=>m.value));if(s=l.filter(m=>!(m.parent&&_.has(m.parent))),s.length===0)throw new Error("There are cyclic diposable chains!")}if(!s)return;function a(u){function l(m,w){for(;m.length>0&&w.some(p=>typeof p=="string"?p===m[0]:m[0].match(p));)m.shift()}let _=u.source.split(`
40
- `).map(m=>m.trim().replace("at ","")).filter(m=>m!=="");return l(_,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),_.reverse()}let i=new Bd;for(let u of s){let l=a(u);for(let _=0;_<=l.length;_++)i.add(l.slice(0,_).join(`
41
- `),u)}s.sort(Ad(u=>u.idx,Dd));let n="",o=0;for(let u of s.slice(0,t)){o++;let l=a(u),_=[];for(let m=0;m<l.length;m++){let w=l[m];w=`(shared with ${i.get(l.slice(0,m+1).join(`
42
- `)).size}/${s.length} leaks) at ${w}`;let p=i.get(l.slice(0,m).join(`
43
- `)),c=Pd([...p].map(d=>a(d)[m]),d=>d);delete c[l[m]];for(let[d,h]of Object.entries(c))_.unshift(` - stacktraces of ${h.length} other leaks continue with ${d}`);_.unshift(w)}n+=`
39
+ `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},ou=new nu;function ei(e){au(e)||ou.onUnexpectedError(e)}var Rn="Canceled";function au(e){return e instanceof lu?!0:e instanceof Error&&e.name===Rn&&e.message===Rn}var lu=class extends Error{constructor(){super(Rn),this.name=this.message}},La=class Mn extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof Mn)return t;let r=new Mn;return r.message=t.message,r.stack=t.stack,r}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}};function cu(e,t,r=0,s=e.length){let o=r,i=s;for(;o<i;){let n=Math.floor((o+i)/2);t(e[n])?o=n+1:i=n}return o-1}var hu=class _l{constructor(t){this._array=t,this._findLastMonotonousLastIdx=0}findLastMonotonous(t){if(_l.assertInvariants){if(this._prevFindLastPredicate){for(let s of this._array)if(this._prevFindLastPredicate(s)&&!t(s))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}let r=cu(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=r+1,r===-1?void 0:this._array[r]}};hu.assertInvariants=!1;var An;(e=>{function t(i){return i<0}e.isLessThan=t;function r(i){return i<=0}e.isLessThanOrEqual=r;function s(i){return i>0}e.isGreaterThan=s;function o(i){return i===0}e.isNeitherLessOrGreaterThan=o,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(An||(An={}));function du(e,t){return(r,s)=>t(e(r),e(s))}var uu=(e,t)=>e-t,Ta=class Dn{constructor(t){this.iterate=t}forEach(t){this.iterate(r=>(t(r),!0))}toArray(){let t=[];return this.iterate(r=>(t.push(r),!0)),t}filter(t){return new Dn(r=>this.iterate(s=>t(s)?r(s):!0))}map(t){return new Dn(r=>this.iterate(s=>r(t(s))))}some(t){let r=!1;return this.iterate(s=>(r=t(s),!r)),r}findFirst(t){let r;return this.iterate(s=>t(s)?(r=s,!1):!0),r}findLast(t){let r;return this.iterate(s=>(t(s)&&(r=s),!0)),r}findLastMaxBy(t){let r,s=!0;return this.iterate(o=>((s||An.isGreaterThan(t(o,r)))&&(s=!1,r=o),!0)),r}};Ta.empty=new Ta(e=>{});function fu(e,t){let r=Object.create(null);for(let s of e){let o=t(s),i=r[o];i||(i=r[o]=[]),i.push(s)}return r}var Ra,Ma,Mg=class{constructor(e,t){this.toKey=t,this._map=new Map,this[Ra]="SetWithKey";for(let r of e)this.add(r)}get size(){return this._map.size}add(e){let t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(let e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(let e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(r=>e.call(t,r,r,this))}[(Ma=Symbol.iterator,Ra=Symbol.toStringTag,Ma)](){return this.values()}},pu=class{constructor(){this.map=new Map}add(e,t){let r=this.map.get(e);r||(r=new Set,this.map.set(e,r)),r.add(t)}delete(e,t){let r=this.map.get(e);r&&(r.delete(t),r.size===0&&this.map.delete(e))}forEach(e,t){let r=this.map.get(e);r&&r.forEach(t)}get(e){return this.map.get(e)||new Set}};function _u(e,t){let r=this,s=!1,o;return function(){if(s)return o;if(s=!0,t)try{o=e.apply(r,arguments)}finally{t()}else o=e.apply(r,arguments);return o}}var Pn;(e=>{function t(v){return v&&typeof v=="object"&&typeof v[Symbol.iterator]=="function"}e.is=t;let r=Object.freeze([]);function s(){return r}e.empty=s;function*o(v){yield v}e.single=o;function i(v){return t(v)?v:o(v)}e.wrap=i;function n(v){return v||r}e.from=n;function*a(v){for(let x=v.length-1;x>=0;x--)yield v[x]}e.reverse=a;function u(v){return!v||v[Symbol.iterator]().next().done===!0}e.isEmpty=u;function l(v){return v[Symbol.iterator]().next().value}e.first=l;function _(v,x){let b=0;for(let E of v)if(x(E,b++))return!0;return!1}e.some=_;function m(v,x){for(let b of v)if(x(b))return b}e.find=m;function*y(v,x){for(let b of v)x(b)&&(yield b)}e.filter=y;function*p(v,x){let b=0;for(let E of v)yield x(E,b++)}e.map=p;function*c(v,x){let b=0;for(let E of v)yield*x(E,b++)}e.flatMap=c;function*d(...v){for(let x of v)yield*x}e.concat=d;function h(v,x,b){let E=b;for(let O of v)E=x(E,O);return E}e.reduce=h;function*f(v,x,b=v.length){for(x<0&&(x+=v.length),b<0?b+=v.length:b>v.length&&(b=v.length);x<b;x++)yield v[x]}e.slice=f;function g(v,x=Number.POSITIVE_INFINITY){let b=[];if(x===0)return[b,v];let E=v[Symbol.iterator]();for(let O=0;O<x;O++){let B=E.next();if(B.done)return[b,e.empty()];b.push(B.value)}return[b,{[Symbol.iterator](){return E}}]}e.consume=g;async function C(v){let x=[];for await(let b of v)x.push(b);return Promise.resolve(x)}e.asyncToArray=C})(Pn||(Pn={}));var mu=!1,Br=null,gu=class ml{constructor(){this.livingDisposables=new Map}getDisposableData(t){let r=this.livingDisposables.get(t);return r||(r={parent:null,source:null,isSingleton:!1,value:t,idx:ml.idx++},this.livingDisposables.set(t,r)),r}trackDisposable(t){let r=this.getDisposableData(t);r.source||(r.source=new Error().stack)}setParent(t,r){let s=this.getDisposableData(t);s.parent=r}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,r){let s=r.get(t);if(s)return s;let o=t.parent?this.getRootParent(this.getDisposableData(t.parent),r):t;return r.set(t,o),o}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,r])=>r.source!==null&&!this.getRootParent(r,t).isSingleton).flatMap(([r])=>r)}computeLeakingDisposables(t=10,r){let s;if(r)s=r;else{let u=new Map,l=[...this.livingDisposables.values()].filter(m=>m.source!==null&&!this.getRootParent(m,u).isSingleton);if(l.length===0)return;let _=new Set(l.map(m=>m.value));if(s=l.filter(m=>!(m.parent&&_.has(m.parent))),s.length===0)throw new Error("There are cyclic diposable chains!")}if(!s)return;function o(u){function l(m,y){for(;m.length>0&&y.some(p=>typeof p=="string"?p===m[0]:m[0].match(p));)m.shift()}let _=u.source.split(`
40
+ `).map(m=>m.trim().replace("at ","")).filter(m=>m!=="");return l(_,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),_.reverse()}let i=new pu;for(let u of s){let l=o(u);for(let _=0;_<=l.length;_++)i.add(l.slice(0,_).join(`
41
+ `),u)}s.sort(du(u=>u.idx,uu));let n="",a=0;for(let u of s.slice(0,t)){a++;let l=o(u),_=[];for(let m=0;m<l.length;m++){let y=l[m];y=`(shared with ${i.get(l.slice(0,m+1).join(`
42
+ `)).size}/${s.length} leaks) at ${y}`;let p=i.get(l.slice(0,m).join(`
43
+ `)),c=fu([...p].map(d=>o(d)[m]),d=>d);delete c[l[m]];for(let[d,h]of Object.entries(c))_.unshift(` - stacktraces of ${h.length} other leaks continue with ${d}`);_.unshift(y)}n+=`
44
44
 
45
45
 
46
- ==================== Leaking disposable ${o}/${s.length}: ${u.value.constructor.name} ====================
46
+ ==================== Leaking disposable ${a}/${s.length}: ${u.value.constructor.name} ====================
47
47
  ${_.join(`
48
48
  `)}
49
49
  ============================================================
@@ -53,12 +53,12 @@ ${_.join(`
53
53
 
54
54
  ... and ${s.length-t} more leaking disposables
55
55
 
56
- `),{leaks:s,details:n}}};Nd.idx=0;function Hd(e){br=e}if(Id){let e="__is_disposable_tracked__";Hd(new class{trackDisposable(t){let r=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[e]||console.log(r)},3e3)}setParent(t,r){if(t&&t!==et.None)try{t[e]=!0}catch{}}markAsDisposed(t){if(t&&t!==et.None)try{t[e]=!0}catch{}}markAsSingleton(t){}})}function Vi(e){return br?.trackDisposable(e),e}function Yi(e){br?.markAsDisposed(e)}function Vr(e,t){br?.setParent(e,t)}function Fd(e,t){if(br)for(let r of e)br.setParent(r,t)}function qa(e){if(un.is(e)){let t=[];for(let r of e)if(r)try{r.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function Ka(...e){let t=$e(()=>qa(e));return Fd(e,t),t}function $e(e){let t=Vi({dispose:Od(()=>{Yi(t),e()})});return t}var Ga=class Va{constructor(){this._toDispose=new Set,this._isDisposed=!1,Vi(this)}dispose(){this._isDisposed||(Yi(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{qa(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return Vr(t,this),this._isDisposed?Va.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),Vr(t,null))}};Ga.DISABLE_DISPOSED_WARNING=!1;var vr=Ga,et=class{constructor(){this._store=new vr,Vi(this),Vr(this._store,this)}dispose(){Yi(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};et.None=Object.freeze({dispose(){}});var zr=class{constructor(){this._isDisposed=!1,Vi(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&Vr(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Yi(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&Vr(e,null),e}},yn=typeof process<"u"&&"title"in process,Jr=yn?"node":navigator.userAgent,Sn=yn?"node":navigator.platform,Wd=Jr.includes("Firefox"),Ud=Jr.includes("Edge"),Ya=/^((?!chrome|android).)*safari/i.test(Jr);function jd(){if(!Ya)return 0;let e=Jr.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}var Fm=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(Sn),Wm=["Windows","Win16","Win32","WinCE"].includes(Sn),Um=Sn.indexOf("Linux")>=0,jm=/\bCrOS\b/.test(Jr),zd="",Fe=0,We=0,Ue=0,Be=0,nt={css:"#00000000",rgba:0},Ge;(e=>{function t(a,i,n,o){return o!==void 0?`#${er(a)}${er(i)}${er(n)}${er(o)}`:`#${er(a)}${er(i)}${er(n)}`}e.toCss=t;function r(a,i,n,o=255){return(a<<24|i<<16|n<<8|o)>>>0}e.toRgba=r;function s(a,i,n,o){return{css:e.toCss(a,i,n,o),rgba:e.toRgba(a,i,n,o)}}e.toColor=s})(Ge||(Ge={}));var _r;(e=>{function t(u,l){if(Be=(l.rgba&255)/255,Be===1)return{css:l.css,rgba:l.rgba};let _=l.rgba>>24&255,m=l.rgba>>16&255,w=l.rgba>>8&255,p=u.rgba>>24&255,c=u.rgba>>16&255,d=u.rgba>>8&255;Fe=p+Math.round((_-p)*Be),We=c+Math.round((m-c)*Be),Ue=d+Math.round((w-d)*Be);let h=Ge.toCss(Fe,We,Ue),f=Ge.toRgba(Fe,We,Ue);return{css:h,rgba:f}}e.blend=t;function r(u){return(u.rgba&255)===255}e.isOpaque=r;function s(u,l,_){let m=Kt.ensureContrastRatio(u.rgba,l.rgba,_);if(m)return Ge.toColor(m>>24&255,m>>16&255,m>>8&255)}e.ensureContrastRatio=s;function a(u){let l=(u.rgba|255)>>>0;return[Fe,We,Ue]=Kt.toChannels(l),{css:Ge.toCss(Fe,We,Ue),rgba:l}}e.opaque=a;function i(u,l){return Be=Math.round(l*255),[Fe,We,Ue]=Kt.toChannels(u.rgba),{css:Ge.toCss(Fe,We,Ue,Be),rgba:Ge.toRgba(Fe,We,Ue,Be)}}e.opacity=i;function n(u,l){return Be=u.rgba&255,i(u,Be*l/255)}e.multiplyOpacity=n;function o(u){return[u.rgba>>24&255,u.rgba>>16&255,u.rgba>>8&255]}e.toColorRGB=o})(_r||(_r={}));var na;(e=>{let t,r;try{let a=document.createElement("canvas");a.width=1,a.height=1;let i=a.getContext("2d",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation="copy",r=t.createLinearGradient(0,0,1,1))}catch{}function s(a){if(a.match(/#[\da-f]{3,8}/i))switch(a.length){case 4:return Fe=parseInt(a.slice(1,2).repeat(2),16),We=parseInt(a.slice(2,3).repeat(2),16),Ue=parseInt(a.slice(3,4).repeat(2),16),Ge.toColor(Fe,We,Ue);case 5:return Fe=parseInt(a.slice(1,2).repeat(2),16),We=parseInt(a.slice(2,3).repeat(2),16),Ue=parseInt(a.slice(3,4).repeat(2),16),Be=parseInt(a.slice(4,5).repeat(2),16),Ge.toColor(Fe,We,Ue,Be);case 7:return{css:a,rgba:(parseInt(a.slice(1),16)<<8|255)>>>0};case 9:return{css:a,rgba:parseInt(a.slice(1),16)>>>0}}let i=a.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(i)return Fe=parseInt(i[1]),We=parseInt(i[2]),Ue=parseInt(i[3]),Be=Math.round((i[5]===void 0?1:parseFloat(i[5]))*255),Ge.toColor(Fe,We,Ue,Be);if(!t||!r)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=r,t.fillStyle=a,typeof t.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[Fe,We,Ue,Be]=t.getImageData(0,0,1,1).data,Be!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:Ge.toRgba(Fe,We,Ue,Be),css:a}}e.toColor=s})(na||(na={}));var Ke;(e=>{function t(s){return r(s>>16&255,s>>8&255,s&255)}e.relativeLuminance=t;function r(s,a,i){let n=s/255,o=a/255,u=i/255,l=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),_=o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4),m=u<=.03928?u/12.92:Math.pow((u+.055)/1.055,2.4);return l*.2126+_*.7152+m*.0722}e.relativeLuminance2=r})(Ke||(Ke={}));var Kt;(e=>{function t(n,o){if(Be=(o&255)/255,Be===1)return o;let u=o>>24&255,l=o>>16&255,_=o>>8&255,m=n>>24&255,w=n>>16&255,p=n>>8&255;return Fe=m+Math.round((u-m)*Be),We=w+Math.round((l-w)*Be),Ue=p+Math.round((_-p)*Be),Ge.toRgba(Fe,We,Ue)}e.blend=t;function r(n,o,u){let l=Ke.relativeLuminance(n>>8),_=Ke.relativeLuminance(o>>8);if(At(l,_)<u){if(_<l){let p=s(n,o,u),c=At(l,Ke.relativeLuminance(p>>8));if(c<u){let d=a(n,o,u),h=At(l,Ke.relativeLuminance(d>>8));return c>h?p:d}return p}let m=a(n,o,u),w=At(l,Ke.relativeLuminance(m>>8));if(w<u){let p=s(n,o,u),c=At(l,Ke.relativeLuminance(p>>8));return w>c?m:p}return m}}e.ensureContrastRatio=r;function s(n,o,u){let l=n>>24&255,_=n>>16&255,m=n>>8&255,w=o>>24&255,p=o>>16&255,c=o>>8&255,d=At(Ke.relativeLuminance2(w,p,c),Ke.relativeLuminance2(l,_,m));for(;d<u&&(w>0||p>0||c>0);)w-=Math.max(0,Math.ceil(w*.1)),p-=Math.max(0,Math.ceil(p*.1)),c-=Math.max(0,Math.ceil(c*.1)),d=At(Ke.relativeLuminance2(w,p,c),Ke.relativeLuminance2(l,_,m));return(w<<24|p<<16|c<<8|255)>>>0}e.reduceLuminance=s;function a(n,o,u){let l=n>>24&255,_=n>>16&255,m=n>>8&255,w=o>>24&255,p=o>>16&255,c=o>>8&255,d=At(Ke.relativeLuminance2(w,p,c),Ke.relativeLuminance2(l,_,m));for(;d<u&&(w<255||p<255||c<255);)w=Math.min(255,w+Math.ceil((255-w)*.1)),p=Math.min(255,p+Math.ceil((255-p)*.1)),c=Math.min(255,c+Math.ceil((255-c)*.1)),d=At(Ke.relativeLuminance2(w,p,c),Ke.relativeLuminance2(l,_,m));return(w<<24|p<<16|c<<8|255)>>>0}e.increaseLuminance=a;function i(n){return[n>>24&255,n>>16&255,n>>8&255,n&255]}e.toChannels=i})(Kt||(Kt={}));function er(e){let t=e.toString(16);return t.length<2?"0"+t:t}function At(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}function Oe(e){if(!e)throw new Error("value must not be falsy");return e}function Cn(e){return 57508<=e&&e<=57558}function $d(e){return 57520<=e&&e<=57527}function qd(e){return 57344<=e&&e<=63743}function Kd(e){return 9472<=e&&e<=9631}function Gd(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}function Vd(e,t,r,s){return t===1&&r>Math.ceil(s*1.5)&&e!==void 0&&e>255&&!Gd(e)&&!Cn(e)&&!qd(e)}function Ja(e){return Cn(e)||Kd(e)}function Yd(){return{css:{canvas:Bi(),cell:Bi()},device:{canvas:Bi(),cell:Bi(),char:{width:0,height:0,left:0,top:0}}}}function Bi(){return{width:0,height:0}}function Jd(e,t,r=0){return(e-(Math.round(t)*2-r))%(Math.round(t)*2)}var ze=0,He=0,yt=!1,Dt=!1,Oi=!1,Ye,Gs=0,Xd=class{constructor(e,t,r,s,a,i){this._terminal=e,this._optionService=t,this._selectionRenderModel=r,this._decorationService=s,this._coreBrowserService=a,this._themeService=i,this.result={fg:0,bg:0,ext:0}}resolve(e,t,r,s){if(this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=e.bg&268435456?e.extended.ext:0,He=0,ze=0,Dt=!1,yt=!1,Oi=!1,Ye=this._themeService.colors,Gs=0,e.getCode()!==0&&e.extended.underlineStyle===4){let a=Math.max(1,Math.floor(this._optionService.rawOptions.fontSize*this._coreBrowserService.dpr/15));Gs=t*s%(Math.round(a)*2)}if(this._decorationService.forEachDecorationAtCell(t,r,"bottom",a=>{a.backgroundColorRGB&&(He=a.backgroundColorRGB.rgba>>8&16777215,Dt=!0),a.foregroundColorRGB&&(ze=a.foregroundColorRGB.rgba>>8&16777215,yt=!0)}),Oi=this._selectionRenderModel.isCellSelected(this._terminal,t,r),Oi){if(this.result.fg&67108864||(this.result.bg&50331648)!==0){if(this.result.fg&67108864)switch(this.result.fg&50331648){case 16777216:case 33554432:He=this._themeService.colors.ansi[this.result.fg&255].rgba;break;case 50331648:He=(this.result.fg&16777215)<<8|255;break;default:He=this._themeService.colors.foreground.rgba}else switch(this.result.bg&50331648){case 16777216:case 33554432:He=this._themeService.colors.ansi[this.result.bg&255].rgba;break;case 50331648:He=(this.result.bg&16777215)<<8|255;break}He=Kt.blend(He,(this._coreBrowserService.isFocused?Ye.selectionBackgroundOpaque:Ye.selectionInactiveBackgroundOpaque).rgba&4294967040|128)>>8&16777215}else He=(this._coreBrowserService.isFocused?Ye.selectionBackgroundOpaque:Ye.selectionInactiveBackgroundOpaque).rgba>>8&16777215;if(Dt=!0,Ye.selectionForeground&&(ze=Ye.selectionForeground.rgba>>8&16777215,yt=!0),Ja(e.getCode())){if(this.result.fg&67108864&&(this.result.bg&50331648)===0)ze=(this._coreBrowserService.isFocused?Ye.selectionBackgroundOpaque:Ye.selectionInactiveBackgroundOpaque).rgba>>8&16777215;else{if(this.result.fg&67108864)switch(this.result.bg&50331648){case 16777216:case 33554432:ze=this._themeService.colors.ansi[this.result.bg&255].rgba;break;case 50331648:ze=(this.result.bg&16777215)<<8|255;break}else switch(this.result.fg&50331648){case 16777216:case 33554432:ze=this._themeService.colors.ansi[this.result.fg&255].rgba;break;case 50331648:ze=(this.result.fg&16777215)<<8|255;break;default:ze=this._themeService.colors.foreground.rgba}ze=Kt.blend(ze,(this._coreBrowserService.isFocused?Ye.selectionBackgroundOpaque:Ye.selectionInactiveBackgroundOpaque).rgba&4294967040|128)>>8&16777215}yt=!0}}this._decorationService.forEachDecorationAtCell(t,r,"top",a=>{a.backgroundColorRGB&&(He=a.backgroundColorRGB.rgba>>8&16777215,Dt=!0),a.foregroundColorRGB&&(ze=a.foregroundColorRGB.rgba>>8&16777215,yt=!0)}),Dt&&(Oi?He=e.bg&-16777216&-134217729|He|50331648:He=e.bg&-16777216|He|50331648),yt&&(ze=e.fg&-16777216&-67108865|ze|50331648),this.result.fg&67108864&&(Dt&&!yt&&((this.result.bg&50331648)===0?ze=this.result.fg&-134217728|Ye.background.rgba>>8&16777215&16777215|50331648:ze=this.result.fg&-134217728|this.result.bg&67108863,yt=!0),!Dt&&yt&&((this.result.fg&50331648)===0?He=this.result.bg&-67108864|Ye.foreground.rgba>>8&16777215&16777215|50331648:He=this.result.bg&-67108864|this.result.fg&67108863,Dt=!0)),Ye=void 0,this.result.bg=Dt?He:this.result.bg,this.result.fg=yt?ze:this.result.fg,this.result.ext&=536870911,this.result.ext|=Gs<<29&3758096384}},Zd=.5,Xa=Wd||Ud?"bottom":"ideographic",Qd={"\u2580":[{x:0,y:0,w:8,h:4}],"\u2581":[{x:0,y:7,w:8,h:1}],"\u2582":[{x:0,y:6,w:8,h:2}],"\u2583":[{x:0,y:5,w:8,h:3}],"\u2584":[{x:0,y:4,w:8,h:4}],"\u2585":[{x:0,y:3,w:8,h:5}],"\u2586":[{x:0,y:2,w:8,h:6}],"\u2587":[{x:0,y:1,w:8,h:7}],"\u2588":[{x:0,y:0,w:8,h:8}],"\u2589":[{x:0,y:0,w:7,h:8}],"\u258A":[{x:0,y:0,w:6,h:8}],"\u258B":[{x:0,y:0,w:5,h:8}],"\u258C":[{x:0,y:0,w:4,h:8}],"\u258D":[{x:0,y:0,w:3,h:8}],"\u258E":[{x:0,y:0,w:2,h:8}],"\u258F":[{x:0,y:0,w:1,h:8}],"\u2590":[{x:4,y:0,w:4,h:8}],"\u2594":[{x:0,y:0,w:8,h:1}],"\u2595":[{x:7,y:0,w:1,h:8}],"\u2596":[{x:0,y:4,w:4,h:4}],"\u2597":[{x:4,y:4,w:4,h:4}],"\u2598":[{x:0,y:0,w:4,h:4}],"\u2599":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u259A":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"\u259B":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"\u259C":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"\u259D":[{x:4,y:0,w:4,h:4}],"\u259E":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"\u259F":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u{1FB70}":[{x:1,y:0,w:1,h:8}],"\u{1FB71}":[{x:2,y:0,w:1,h:8}],"\u{1FB72}":[{x:3,y:0,w:1,h:8}],"\u{1FB73}":[{x:4,y:0,w:1,h:8}],"\u{1FB74}":[{x:5,y:0,w:1,h:8}],"\u{1FB75}":[{x:6,y:0,w:1,h:8}],"\u{1FB76}":[{x:0,y:1,w:8,h:1}],"\u{1FB77}":[{x:0,y:2,w:8,h:1}],"\u{1FB78}":[{x:0,y:3,w:8,h:1}],"\u{1FB79}":[{x:0,y:4,w:8,h:1}],"\u{1FB7A}":[{x:0,y:5,w:8,h:1}],"\u{1FB7B}":[{x:0,y:6,w:8,h:1}],"\u{1FB7C}":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB7D}":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7E}":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7F}":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB80}":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB81}":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB82}":[{x:0,y:0,w:8,h:2}],"\u{1FB83}":[{x:0,y:0,w:8,h:3}],"\u{1FB84}":[{x:0,y:0,w:8,h:5}],"\u{1FB85}":[{x:0,y:0,w:8,h:6}],"\u{1FB86}":[{x:0,y:0,w:8,h:7}],"\u{1FB87}":[{x:6,y:0,w:2,h:8}],"\u{1FB88}":[{x:5,y:0,w:3,h:8}],"\u{1FB89}":[{x:3,y:0,w:5,h:8}],"\u{1FB8A}":[{x:2,y:0,w:6,h:8}],"\u{1FB8B}":[{x:1,y:0,w:7,h:8}],"\u{1FB95}":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"\u{1FB96}":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"\u{1FB97}":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]},eu={"\u2591":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"\u2592":[[1,0],[0,0],[0,1],[0,0]],"\u2593":[[0,1],[1,1],[1,0],[1,1]]},tu={"\u2500":{1:"M0,.5 L1,.5"},"\u2501":{3:"M0,.5 L1,.5"},"\u2502":{1:"M.5,0 L.5,1"},"\u2503":{3:"M.5,0 L.5,1"},"\u250C":{1:"M0.5,1 L.5,.5 L1,.5"},"\u250F":{3:"M0.5,1 L.5,.5 L1,.5"},"\u2510":{1:"M0,.5 L.5,.5 L.5,1"},"\u2513":{3:"M0,.5 L.5,.5 L.5,1"},"\u2514":{1:"M.5,0 L.5,.5 L1,.5"},"\u2517":{3:"M.5,0 L.5,.5 L1,.5"},"\u2518":{1:"M.5,0 L.5,.5 L0,.5"},"\u251B":{3:"M.5,0 L.5,.5 L0,.5"},"\u251C":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2523":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2524":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252B":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252C":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2533":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2534":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253B":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253C":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u254B":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u2574":{1:"M.5,.5 L0,.5"},"\u2578":{3:"M.5,.5 L0,.5"},"\u2575":{1:"M.5,.5 L.5,0"},"\u2579":{3:"M.5,.5 L.5,0"},"\u2576":{1:"M.5,.5 L1,.5"},"\u257A":{3:"M.5,.5 L1,.5"},"\u2577":{1:"M.5,.5 L.5,1"},"\u257B":{3:"M.5,.5 L.5,1"},"\u2550":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"\u2551":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"\u2552":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"\u2553":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},"\u2554":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"\u2555":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},"\u2556":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},"\u2557":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},"\u2558":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},"\u2559":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"\u255A":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},"\u255B":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},"\u255C":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},"\u255D":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},"\u255E":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"\u255F":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},"\u2560":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"\u2561":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},"\u2562":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"\u2563":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},"\u2564":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},"\u2565":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},"\u2566":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"\u2567":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"\u2568":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"\u2569":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"\u256A":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"\u256B":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"\u256C":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"\u2571":{1:"M1,0 L0,1"},"\u2572":{1:"M0,0 L1,1"},"\u2573":{1:"M1,0 L0,1 M0,0 L1,1"},"\u257C":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u257D":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"\u257E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u257F":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u250D":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u250E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2511":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"\u2512":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2515":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"\u2516":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2519":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"\u251A":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"\u251D":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"\u251E":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u251F":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2520":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2521":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2522":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"\u2525":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"\u2526":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2527":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2528":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"\u2529":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"\u252A":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"\u252D":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u252E":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u252F":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"\u2530":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2531":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2532":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2535":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u2536":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u2537":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"\u2538":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2539":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u253A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"\u253D":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u253E":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u253F":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"\u2540":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2541":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2542":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2543":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u2544":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2545":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2546":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2547":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"\u2548":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2549":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u254A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u254C":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u254D":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u2504":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2505":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2508":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u2509":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u254E":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u254F":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u2506":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u2507":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u250A":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u250B":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u256D":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},"\u256E":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},"\u256F":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},"\u2570":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},Yr={"\uE0A0":{d:"M.3,1 L.03,1 L.03,.88 C.03,.82,.06,.78,.11,.73 C.15,.7,.2,.68,.28,.65 L.43,.6 C.49,.58,.53,.56,.56,.53 C.59,.5,.6,.47,.6,.43 L.6,.27 L.4,.27 L.69,.1 L.98,.27 L.78,.27 L.78,.46 C.78,.52,.76,.56,.72,.61 C.68,.66,.63,.67,.56,.7 L.48,.72 C.42,.74,.38,.76,.35,.78 C.32,.8,.31,.84,.31,.88 L.31,1 M.3,.5 L.03,.59 L.03,.09 L.3,.09 L.3,.655",type:0},"\uE0A1":{d:"M.7,.4 L.7,.47 L.2,.47 L.2,.03 L.355,.03 L.355,.4 L.705,.4 M.7,.5 L.86,.5 L.86,.95 L.69,.95 L.44,.66 L.46,.86 L.46,.95 L.3,.95 L.3,.49 L.46,.49 L.71,.78 L.69,.565 L.69,.5",type:0},"\uE0A2":{d:"M.25,.94 C.16,.94,.11,.92,.11,.87 L.11,.53 C.11,.48,.15,.455,.23,.45 L.23,.3 C.23,.25,.26,.22,.31,.19 C.36,.16,.43,.15,.51,.15 C.59,.15,.66,.16,.71,.19 C.77,.22,.79,.26,.79,.3 L.79,.45 C.87,.45,.91,.48,.91,.53 L.91,.87 C.91,.92,.86,.94,.77,.94 L.24,.94 M.53,.2 C.49,.2,.45,.21,.42,.23 C.39,.25,.38,.27,.38,.3 L.38,.45 L.68,.45 L.68,.3 C.68,.27,.67,.25,.64,.23 C.61,.21,.58,.2,.53,.2 M.58,.82 L.58,.66 C.63,.65,.65,.63,.65,.6 C.65,.58,.64,.57,.61,.56 C.58,.55,.56,.54,.52,.54 C.48,.54,.46,.55,.43,.56 C.4,.57,.39,.59,.39,.6 C.39,.63,.41,.64,.46,.66 L.46,.82 L.57,.82",type:0},"\uE0B0":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"\uE0B1":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B2":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"\uE0B3":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B4":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"\uE0B5":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"\uE0B6":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"\uE0B7":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"\uE0B8":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"\uE0B9":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BA":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"\uE0BC":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"\uE0BD":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BE":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}};Yr["\uE0BB"]=Yr["\uE0BD"];Yr["\uE0BF"]=Yr["\uE0B9"];function ru(e,t,r,s,a,i,n,o){let u=Qd[t];if(u)return iu(e,u,r,s,a,i),!0;let l=eu[t];if(l)return su(e,l,r,s,a,i),!0;let _=tu[t];if(_)return nu(e,_,r,s,a,i,o),!0;let m=Yr[t];return m?(ou(e,m,r,s,a,i,n,o),!0):!1}function iu(e,t,r,s,a,i){for(let n=0;n<t.length;n++){let o=t[n],u=a/8,l=i/8;e.fillRect(r+o.x*u,s+o.y*l,o.w*u,o.h*l)}}var oa=new Map;function su(e,t,r,s,a,i){let n=oa.get(t);n||(n=new Map,oa.set(t,n));let o=e.fillStyle;if(typeof o!="string")throw new Error(`Unexpected fillStyle type "${o}"`);let u=n.get(o);if(!u){let l=t[0].length,_=t.length,m=e.canvas.ownerDocument.createElement("canvas");m.width=l,m.height=_;let w=Oe(m.getContext("2d")),p=new ImageData(l,_),c,d,h,f;if(o.startsWith("#"))c=parseInt(o.slice(1,3),16),d=parseInt(o.slice(3,5),16),h=parseInt(o.slice(5,7),16),f=o.length>7&&parseInt(o.slice(7,9),16)||1;else if(o.startsWith("rgba"))[c,d,h,f]=o.substring(5,o.length-1).split(",").map(g=>parseFloat(g));else throw new Error(`Unexpected fillStyle color format "${o}" when drawing pattern glyph`);for(let g=0;g<_;g++)for(let C=0;C<l;C++)p.data[(g*l+C)*4]=c,p.data[(g*l+C)*4+1]=d,p.data[(g*l+C)*4+2]=h,p.data[(g*l+C)*4+3]=t[g][C]*(f*255);w.putImageData(p,0,0),u=Oe(e.createPattern(m,null)),n.set(o,u)}e.fillStyle=u,e.fillRect(r,s,a,i)}function nu(e,t,r,s,a,i,n){e.strokeStyle=e.fillStyle;for(let[o,u]of Object.entries(t)){e.beginPath(),e.lineWidth=n*Number.parseInt(o);let l;if(typeof u=="function"){let _=.15/i*a;l=u(.15,_)}else l=u;for(let _ of l.split(" ")){let m=_[0],w=Za[m];if(!w){console.error(`Could not find drawing instructions for "${m}"`);continue}let p=_.substring(1).split(",");!p[0]||!p[1]||w(e,Qa(p,a,i,r,s,!0,n))}e.stroke(),e.closePath()}}function ou(e,t,r,s,a,i,n,o){let u=new Path2D;u.rect(r,s,a,i),e.clip(u),e.beginPath();let l=n/12;e.lineWidth=o*l;for(let _ of t.d.split(" ")){let m=_[0],w=Za[m];if(!w){console.error(`Could not find drawing instructions for "${m}"`);continue}let p=_.substring(1).split(",");!p[0]||!p[1]||w(e,Qa(p,a,i,r,s,!1,o,(t.leftPadding??0)*(l/2),(t.rightPadding??0)*(l/2)))}t.type===1?(e.strokeStyle=e.fillStyle,e.stroke()):e.fill(),e.closePath()}function aa(e,t,r=0){return Math.max(Math.min(e,t),r)}var Za={C:(e,t)=>e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function Qa(e,t,r,s,a,i,n,o=0,u=0){let l=e.map(_=>parseFloat(_)||parseInt(_));if(l.length<2)throw new Error("Too few arguments for instruction");for(let _=0;_<l.length;_+=2)l[_]*=t-o*n-u*n,i&&l[_]!==0&&(l[_]=aa(Math.round(l[_]+.5)-.5,t,0)),l[_]+=s+o*n;for(let _=1;_<l.length;_+=2)l[_]*=r,i&&l[_]!==0&&(l[_]=aa(Math.round(l[_]+.5)-.5,r,0)),l[_]+=a;return l}var la=class{constructor(){this._data={}}set(e,t,r){this._data[e]||(this._data[e]={}),this._data[e][t]=r}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},ca=class{constructor(){this._data=new la}set(e,t,r,s,a){this._data.get(e,t)||this._data.set(e,t,new la),this._data.get(e,t).set(r,s,a)}get(e,t,r,s){return this._data.get(e,t)?.get(r,s)}clear(){this._data.clear()}},el=class{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,r=0,s=e.timeRemaining(),a=0;for(;this._i<this._tasks.length;){if(t=performance.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,performance.now()-t),r=Math.max(t,r),a=e.timeRemaining(),r*1.5>a){s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),this._start();return}s=a}this.clear()}},au=class extends el{_requestCallback(e){return setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){let t=performance.now()+e;return{timeRemaining:()=>Math.max(0,t-performance.now())}}},lu=class extends el{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}},cu=!yn&&"requestIdleCallback"in window?lu:au,mr=class tl{constructor(){this.fg=0,this.bg=0,this.extended=new rl}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new tl;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},rl=class il{constructor(t=0,r=0){this._ext=0,this._urlId=0,this._ext=t,this._urlId=r}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new il(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},ha=class fn{constructor(t){this.element=t,this.next=fn.Undefined,this.prev=fn.Undefined}};ha.Undefined=new ha(void 0);var hu=globalThis.performance&&typeof globalThis.performance.now=="function",du=class sl{static create(t){return new sl(t)}constructor(t){this._now=hu&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},uu=!1,da=!1,fu=!1,St;(e=>{e.None=()=>et.None;function t(P){if(fu){let{onDidAddListener:D}=P,F=mn.create(),N=0;P.onDidAddListener=()=>{++N===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),F.print()),D?.()}}}function r(P,D){return w(P,()=>{},0,void 0,!0,void 0,D)}e.defer=r;function s(P){return(D,F=null,N)=>{let y=!1,T;return T=P(k=>{if(!y)return T?T.dispose():y=!0,D.call(F,k)},null,N),y&&T.dispose(),T}}e.once=s;function a(P,D,F){return _((N,y=null,T)=>P(k=>N.call(y,D(k)),null,T),F)}e.map=a;function i(P,D,F){return _((N,y=null,T)=>P(k=>{D(k),N.call(y,k)},null,T),F)}e.forEach=i;function n(P,D,F){return _((N,y=null,T)=>P(k=>D(k)&&N.call(y,k),null,T),F)}e.filter=n;function o(P){return P}e.signal=o;function u(...P){return(D,F=null,N)=>{let y=Ka(...P.map(T=>T(k=>D.call(F,k))));return m(y,N)}}e.any=u;function l(P,D,F,N){let y=F;return a(P,T=>(y=D(y,T),y),N)}e.reduce=l;function _(P,D){let F,N={onWillAddFirstListener(){F=P(y.fire,y)},onDidRemoveLastListener(){F?.dispose()}};D||t(N);let y=new ke(N);return D?.add(y),y.event}function m(P,D){return D instanceof Array?D.push(P):D&&D.add(P),P}function w(P,D,F=100,N=!1,y=!1,T,k){let R,U,G,J=0,X,W={leakWarningThreshold:T,onWillAddFirstListener(){R=P(I=>{J++,U=D(U,I),N&&!G&&(L.fire(U),U=void 0),X=()=>{let z=U;U=void 0,G=void 0,(!N||J>1)&&L.fire(z),J=0},typeof F=="number"?(clearTimeout(G),G=setTimeout(X,F)):G===void 0&&(G=0,queueMicrotask(X))})},onWillRemoveListener(){y&&J>0&&X?.()},onDidRemoveLastListener(){X=void 0,R.dispose()}};k||t(W);let L=new ke(W);return k?.add(L),L.event}e.debounce=w;function p(P,D=0,F){return e.debounce(P,(N,y)=>N?(N.push(y),N):[y],D,void 0,!0,void 0,F)}e.accumulate=p;function c(P,D=(N,y)=>N===y,F){let N=!0,y;return n(P,T=>{let k=N||!D(T,y);return N=!1,y=T,k},F)}e.latch=c;function d(P,D,F){return[e.filter(P,D,F),e.filter(P,N=>!D(N),F)]}e.split=d;function h(P,D=!1,F=[],N){let y=F.slice(),T=P(U=>{y?y.push(U):R.fire(U)});N&&N.add(T);let k=()=>{y?.forEach(U=>R.fire(U)),y=null},R=new ke({onWillAddFirstListener(){T||(T=P(U=>R.fire(U)),N&&N.add(T))},onDidAddFirstListener(){y&&(D?setTimeout(k):k())},onDidRemoveLastListener(){T&&T.dispose(),T=null}});return N&&N.add(R),R.event}e.buffer=h;function f(P,D){return(F,N,y)=>{let T=D(new C);return P(function(k){let R=T.evaluate(k);R!==g&&F.call(N,R)},void 0,y)}}e.chain=f;let g=Symbol("HaltChainable");class C{constructor(){this.steps=[]}map(D){return this.steps.push(D),this}forEach(D){return this.steps.push(F=>(D(F),F)),this}filter(D){return this.steps.push(F=>D(F)?F:g),this}reduce(D,F){let N=F;return this.steps.push(y=>(N=D(N,y),N)),this}latch(D=(F,N)=>F===N){let F=!0,N;return this.steps.push(y=>{let T=F||!D(y,N);return F=!1,N=y,T?y:g}),this}evaluate(D){for(let F of this.steps)if(D=F(D),D===g)break;return D}}function v(P,D,F=N=>N){let N=(...R)=>k.fire(F(...R)),y=()=>P.on(D,N),T=()=>P.removeListener(D,N),k=new ke({onWillAddFirstListener:y,onDidRemoveLastListener:T});return k.event}e.fromNodeEventEmitter=v;function x(P,D,F=N=>N){let N=(...R)=>k.fire(F(...R)),y=()=>P.addEventListener(D,N),T=()=>P.removeEventListener(D,N),k=new ke({onWillAddFirstListener:y,onDidRemoveLastListener:T});return k.event}e.fromDOMEventEmitter=x;function b(P){return new Promise(D=>s(P)(D))}e.toPromise=b;function E(P){let D=new ke;return P.then(F=>{D.fire(F)},()=>{D.fire(void 0)}).finally(()=>{D.dispose()}),D.event}e.fromPromise=E;function O(P,D){return P(F=>D.fire(F))}e.forward=O;function B(P,D,F){return D(F),P(N=>D(N))}e.runAndSubscribe=B;class H{constructor(D,F){this._observable=D,this._counter=0,this._hasChanged=!1;let N={onWillAddFirstListener:()=>{D.addObserver(this)},onDidRemoveLastListener:()=>{D.removeObserver(this)}};F||t(N),this.emitter=new ke(N),F&&F.add(this.emitter)}beginUpdate(D){this._counter++}handlePossibleChange(D){}handleChange(D,F){this._hasChanged=!0}endUpdate(D){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function M(P,D){return new H(P,D).emitter.event}e.fromObservable=M;function K(P){return(D,F,N)=>{let y=0,T=!1,k={beginUpdate(){y++},endUpdate(){y--,y===0&&(P.reportChanges(),T&&(T=!1,D.call(F)))},handlePossibleChange(){},handleChange(){T=!0}};P.addObserver(k),P.reportChanges();let R={dispose(){P.removeObserver(k)}};return N instanceof vr?N.add(R):Array.isArray(N)&&N.push(R),R}}e.fromObservableLight=K})(St||(St={}));var pn=class _n{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${_n._idPool++}`,_n.all.add(this)}start(t){this._stopWatch=new du,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};pn.all=new Set,pn._idPool=0;var pu=pn,ua=-1,nl=class ol{constructor(t,r,s=(ol._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=r,this.name=s,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,r){let s=this.threshold;if(s<=0||r<s)return;this._stacks||(this._stacks=new Map);let a=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,a+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=s*.5;let[i,n]=this.getMostFrequentStack(),o=`[${this.name}] potential listener LEAK detected, having ${r} listeners already. MOST frequent listener (${n}):`;console.warn(o),console.warn(i);let u=new mu(o,i);this._errorHandler(u)}return()=>{let i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,r=0;for(let[s,a]of this._stacks)(!t||r<a)&&(t=[s,a],r=a);return t}};nl._idPool=1;var _u=nl,mn=class al{constructor(t){this.value=t}static create(){let t=new Error;return new al(t.stack??"")}print(){console.warn(this.value.split(`
56
+ `),{leaks:s,details:n}}};gu.idx=0;function vu(e){Br=e}if(mu){let e="__is_disposable_tracked__";vu(new class{trackDisposable(t){let r=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[e]||console.log(r)},3e3)}setParent(t,r){if(t&&t!==st.None)try{t[e]=!0}catch{}}markAsDisposed(t){if(t&&t!==st.None)try{t[e]=!0}catch{}}markAsSingleton(t){}})}function hi(e){return Br?.trackDisposable(e),e}function di(e){Br?.markAsDisposed(e)}function cs(e,t){Br?.setParent(e,t)}function bu(e,t){if(Br)for(let r of e)Br.setParent(r,t)}function gl(e){if(Pn.is(e)){let t=[];for(let r of e)if(r)try{r.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function vl(...e){let t=$e(()=>gl(e));return bu(e,t),t}function $e(e){let t=hi({dispose:_u(()=>{di(t),e()})});return t}var bl=class wl{constructor(){this._toDispose=new Set,this._isDisposed=!1,hi(this)}dispose(){this._isDisposed||(di(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{gl(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return cs(t,this),this._isDisposed?wl.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),cs(t,null))}};bl.DISABLE_DISPOSED_WARNING=!1;var Pr=bl,st=class{constructor(){this._store=new Pr,hi(this),cs(this._store,this)}dispose(){di(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};st.None=Object.freeze({dispose(){}});var is=class{constructor(){this._isDisposed=!1,hi(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&cs(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,di(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&cs(e,null),e}},zn=typeof process<"u"&&"title"in process,ds=zn?"node":navigator.userAgent,jn=zn?"node":navigator.platform,wu=ds.includes("Firefox"),yu=ds.includes("Edge"),yl=/^((?!chrome|android).)*safari/i.test(ds);function Su(){if(!yl)return 0;let e=ds.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}var Ag=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(jn),Dg=["Windows","Win16","Win32","WinCE"].includes(jn),Pg=jn.indexOf("Linux")>=0,Bg=/\bCrOS\b/.test(ds),Cu="",We=0,Ue=0,ze=0,Ie=0,ct={css:"#00000000",rgba:0},Ye;(e=>{function t(o,i,n,a){return a!==void 0?`#${dr(o)}${dr(i)}${dr(n)}${dr(a)}`:`#${dr(o)}${dr(i)}${dr(n)}`}e.toCss=t;function r(o,i,n,a=255){return(o<<24|i<<16|n<<8|a)>>>0}e.toRgba=r;function s(o,i,n,a){return{css:e.toCss(o,i,n,a),rgba:e.toRgba(o,i,n,a)}}e.toColor=s})(Ye||(Ye={}));var Mr;(e=>{function t(u,l){if(Ie=(l.rgba&255)/255,Ie===1)return{css:l.css,rgba:l.rgba};let _=l.rgba>>24&255,m=l.rgba>>16&255,y=l.rgba>>8&255,p=u.rgba>>24&255,c=u.rgba>>16&255,d=u.rgba>>8&255;We=p+Math.round((_-p)*Ie),Ue=c+Math.round((m-c)*Ie),ze=d+Math.round((y-d)*Ie);let h=Ye.toCss(We,Ue,ze),f=Ye.toRgba(We,Ue,ze);return{css:h,rgba:f}}e.blend=t;function r(u){return(u.rgba&255)===255}e.isOpaque=r;function s(u,l,_){let m=er.ensureContrastRatio(u.rgba,l.rgba,_);if(m)return Ye.toColor(m>>24&255,m>>16&255,m>>8&255)}e.ensureContrastRatio=s;function o(u){let l=(u.rgba|255)>>>0;return[We,Ue,ze]=er.toChannels(l),{css:Ye.toCss(We,Ue,ze),rgba:l}}e.opaque=o;function i(u,l){return Ie=Math.round(l*255),[We,Ue,ze]=er.toChannels(u.rgba),{css:Ye.toCss(We,Ue,ze,Ie),rgba:Ye.toRgba(We,Ue,ze,Ie)}}e.opacity=i;function n(u,l){return Ie=u.rgba&255,i(u,Ie*l/255)}e.multiplyOpacity=n;function a(u){return[u.rgba>>24&255,u.rgba>>16&255,u.rgba>>8&255]}e.toColorRGB=a})(Mr||(Mr={}));var Aa;(e=>{let t,r;try{let o=document.createElement("canvas");o.width=1,o.height=1;let i=o.getContext("2d",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation="copy",r=t.createLinearGradient(0,0,1,1))}catch{}function s(o){if(o.match(/#[\da-f]{3,8}/i))switch(o.length){case 4:return We=parseInt(o.slice(1,2).repeat(2),16),Ue=parseInt(o.slice(2,3).repeat(2),16),ze=parseInt(o.slice(3,4).repeat(2),16),Ye.toColor(We,Ue,ze);case 5:return We=parseInt(o.slice(1,2).repeat(2),16),Ue=parseInt(o.slice(2,3).repeat(2),16),ze=parseInt(o.slice(3,4).repeat(2),16),Ie=parseInt(o.slice(4,5).repeat(2),16),Ye.toColor(We,Ue,ze,Ie);case 7:return{css:o,rgba:(parseInt(o.slice(1),16)<<8|255)>>>0};case 9:return{css:o,rgba:parseInt(o.slice(1),16)>>>0}}let i=o.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(i)return We=parseInt(i[1]),Ue=parseInt(i[2]),ze=parseInt(i[3]),Ie=Math.round((i[5]===void 0?1:parseFloat(i[5]))*255),Ye.toColor(We,Ue,ze,Ie);if(!t||!r)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=r,t.fillStyle=o,typeof t.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[We,Ue,ze,Ie]=t.getImageData(0,0,1,1).data,Ie!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:Ye.toRgba(We,Ue,ze,Ie),css:o}}e.toColor=s})(Aa||(Aa={}));var Ve;(e=>{function t(s){return r(s>>16&255,s>>8&255,s&255)}e.relativeLuminance=t;function r(s,o,i){let n=s/255,a=o/255,u=i/255,l=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),_=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4),m=u<=.03928?u/12.92:Math.pow((u+.055)/1.055,2.4);return l*.2126+_*.7152+m*.0722}e.relativeLuminance2=r})(Ve||(Ve={}));var er;(e=>{function t(n,a){if(Ie=(a&255)/255,Ie===1)return a;let u=a>>24&255,l=a>>16&255,_=a>>8&255,m=n>>24&255,y=n>>16&255,p=n>>8&255;return We=m+Math.round((u-m)*Ie),Ue=y+Math.round((l-y)*Ie),ze=p+Math.round((_-p)*Ie),Ye.toRgba(We,Ue,ze)}e.blend=t;function r(n,a,u){let l=Ve.relativeLuminance(n>>8),_=Ve.relativeLuminance(a>>8);if(Nt(l,_)<u){if(_<l){let p=s(n,a,u),c=Nt(l,Ve.relativeLuminance(p>>8));if(c<u){let d=o(n,a,u),h=Nt(l,Ve.relativeLuminance(d>>8));return c>h?p:d}return p}let m=o(n,a,u),y=Nt(l,Ve.relativeLuminance(m>>8));if(y<u){let p=s(n,a,u),c=Nt(l,Ve.relativeLuminance(p>>8));return y>c?m:p}return m}}e.ensureContrastRatio=r;function s(n,a,u){let l=n>>24&255,_=n>>16&255,m=n>>8&255,y=a>>24&255,p=a>>16&255,c=a>>8&255,d=Nt(Ve.relativeLuminance2(y,p,c),Ve.relativeLuminance2(l,_,m));for(;d<u&&(y>0||p>0||c>0);)y-=Math.max(0,Math.ceil(y*.1)),p-=Math.max(0,Math.ceil(p*.1)),c-=Math.max(0,Math.ceil(c*.1)),d=Nt(Ve.relativeLuminance2(y,p,c),Ve.relativeLuminance2(l,_,m));return(y<<24|p<<16|c<<8|255)>>>0}e.reduceLuminance=s;function o(n,a,u){let l=n>>24&255,_=n>>16&255,m=n>>8&255,y=a>>24&255,p=a>>16&255,c=a>>8&255,d=Nt(Ve.relativeLuminance2(y,p,c),Ve.relativeLuminance2(l,_,m));for(;d<u&&(y<255||p<255||c<255);)y=Math.min(255,y+Math.ceil((255-y)*.1)),p=Math.min(255,p+Math.ceil((255-p)*.1)),c=Math.min(255,c+Math.ceil((255-c)*.1)),d=Nt(Ve.relativeLuminance2(y,p,c),Ve.relativeLuminance2(l,_,m));return(y<<24|p<<16|c<<8|255)>>>0}e.increaseLuminance=o;function i(n){return[n>>24&255,n>>16&255,n>>8&255,n&255]}e.toChannels=i})(er||(er={}));function dr(e){let t=e.toString(16);return t.length<2?"0"+t:t}function Nt(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}function He(e){if(!e)throw new Error("value must not be falsy");return e}function $n(e){return 57508<=e&&e<=57558}function xu(e){return 57520<=e&&e<=57527}function ku(e){return 57344<=e&&e<=63743}function Eu(e){return 9472<=e&&e<=9631}function Lu(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}function Tu(e,t,r,s){return t===1&&r>Math.ceil(s*1.5)&&e!==void 0&&e>255&&!Lu(e)&&!$n(e)&&!ku(e)}function Sl(e){return $n(e)||Eu(e)}function Ru(){return{css:{canvas:Xs(),cell:Xs()},device:{canvas:Xs(),cell:Xs(),char:{width:0,height:0,left:0,top:0}}}}function Xs(){return{width:0,height:0}}function Mu(e,t,r=0){return(e-(Math.round(t)*2-r))%(Math.round(t)*2)}var je=0,Fe=0,Lt=!1,Ht=!1,Js=!1,Ze,_n=0,Au=class{constructor(e,t,r,s,o,i){this._terminal=e,this._optionService=t,this._selectionRenderModel=r,this._decorationService=s,this._coreBrowserService=o,this._themeService=i,this.result={fg:0,bg:0,ext:0}}resolve(e,t,r,s){if(this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=e.bg&268435456?e.extended.ext:0,Fe=0,je=0,Ht=!1,Lt=!1,Js=!1,Ze=this._themeService.colors,_n=0,e.getCode()!==0&&e.extended.underlineStyle===4){let o=Math.max(1,Math.floor(this._optionService.rawOptions.fontSize*this._coreBrowserService.dpr/15));_n=t*s%(Math.round(o)*2)}if(this._decorationService.forEachDecorationAtCell(t,r,"bottom",o=>{o.backgroundColorRGB&&(Fe=o.backgroundColorRGB.rgba>>8&16777215,Ht=!0),o.foregroundColorRGB&&(je=o.foregroundColorRGB.rgba>>8&16777215,Lt=!0)}),Js=this._selectionRenderModel.isCellSelected(this._terminal,t,r),Js){if(this.result.fg&67108864||(this.result.bg&50331648)!==0){if(this.result.fg&67108864)switch(this.result.fg&50331648){case 16777216:case 33554432:Fe=this._themeService.colors.ansi[this.result.fg&255].rgba;break;case 50331648:Fe=(this.result.fg&16777215)<<8|255;break;default:Fe=this._themeService.colors.foreground.rgba}else switch(this.result.bg&50331648){case 16777216:case 33554432:Fe=this._themeService.colors.ansi[this.result.bg&255].rgba;break;case 50331648:Fe=(this.result.bg&16777215)<<8|255;break}Fe=er.blend(Fe,(this._coreBrowserService.isFocused?Ze.selectionBackgroundOpaque:Ze.selectionInactiveBackgroundOpaque).rgba&4294967040|128)>>8&16777215}else Fe=(this._coreBrowserService.isFocused?Ze.selectionBackgroundOpaque:Ze.selectionInactiveBackgroundOpaque).rgba>>8&16777215;if(Ht=!0,Ze.selectionForeground&&(je=Ze.selectionForeground.rgba>>8&16777215,Lt=!0),Sl(e.getCode())){if(this.result.fg&67108864&&(this.result.bg&50331648)===0)je=(this._coreBrowserService.isFocused?Ze.selectionBackgroundOpaque:Ze.selectionInactiveBackgroundOpaque).rgba>>8&16777215;else{if(this.result.fg&67108864)switch(this.result.bg&50331648){case 16777216:case 33554432:je=this._themeService.colors.ansi[this.result.bg&255].rgba;break;case 50331648:je=(this.result.bg&16777215)<<8|255;break}else switch(this.result.fg&50331648){case 16777216:case 33554432:je=this._themeService.colors.ansi[this.result.fg&255].rgba;break;case 50331648:je=(this.result.fg&16777215)<<8|255;break;default:je=this._themeService.colors.foreground.rgba}je=er.blend(je,(this._coreBrowserService.isFocused?Ze.selectionBackgroundOpaque:Ze.selectionInactiveBackgroundOpaque).rgba&4294967040|128)>>8&16777215}Lt=!0}}this._decorationService.forEachDecorationAtCell(t,r,"top",o=>{o.backgroundColorRGB&&(Fe=o.backgroundColorRGB.rgba>>8&16777215,Ht=!0),o.foregroundColorRGB&&(je=o.foregroundColorRGB.rgba>>8&16777215,Lt=!0)}),Ht&&(Js?Fe=e.bg&-16777216&-134217729|Fe|50331648:Fe=e.bg&-16777216|Fe|50331648),Lt&&(je=e.fg&-16777216&-67108865|je|50331648),this.result.fg&67108864&&(Ht&&!Lt&&((this.result.bg&50331648)===0?je=this.result.fg&-134217728|Ze.background.rgba>>8&16777215&16777215|50331648:je=this.result.fg&-134217728|this.result.bg&67108863,Lt=!0),!Ht&&Lt&&((this.result.fg&50331648)===0?Fe=this.result.bg&-67108864|Ze.foreground.rgba>>8&16777215&16777215|50331648:Fe=this.result.bg&-67108864|this.result.fg&67108863,Ht=!0)),Ze=void 0,this.result.bg=Ht?Fe:this.result.bg,this.result.fg=Lt?je:this.result.fg,this.result.ext&=536870911,this.result.ext|=_n<<29&3758096384}},Du=.5,Cl=wu||yu?"bottom":"ideographic",Pu={"\u2580":[{x:0,y:0,w:8,h:4}],"\u2581":[{x:0,y:7,w:8,h:1}],"\u2582":[{x:0,y:6,w:8,h:2}],"\u2583":[{x:0,y:5,w:8,h:3}],"\u2584":[{x:0,y:4,w:8,h:4}],"\u2585":[{x:0,y:3,w:8,h:5}],"\u2586":[{x:0,y:2,w:8,h:6}],"\u2587":[{x:0,y:1,w:8,h:7}],"\u2588":[{x:0,y:0,w:8,h:8}],"\u2589":[{x:0,y:0,w:7,h:8}],"\u258A":[{x:0,y:0,w:6,h:8}],"\u258B":[{x:0,y:0,w:5,h:8}],"\u258C":[{x:0,y:0,w:4,h:8}],"\u258D":[{x:0,y:0,w:3,h:8}],"\u258E":[{x:0,y:0,w:2,h:8}],"\u258F":[{x:0,y:0,w:1,h:8}],"\u2590":[{x:4,y:0,w:4,h:8}],"\u2594":[{x:0,y:0,w:8,h:1}],"\u2595":[{x:7,y:0,w:1,h:8}],"\u2596":[{x:0,y:4,w:4,h:4}],"\u2597":[{x:4,y:4,w:4,h:4}],"\u2598":[{x:0,y:0,w:4,h:4}],"\u2599":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u259A":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"\u259B":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"\u259C":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"\u259D":[{x:4,y:0,w:4,h:4}],"\u259E":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"\u259F":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u{1FB70}":[{x:1,y:0,w:1,h:8}],"\u{1FB71}":[{x:2,y:0,w:1,h:8}],"\u{1FB72}":[{x:3,y:0,w:1,h:8}],"\u{1FB73}":[{x:4,y:0,w:1,h:8}],"\u{1FB74}":[{x:5,y:0,w:1,h:8}],"\u{1FB75}":[{x:6,y:0,w:1,h:8}],"\u{1FB76}":[{x:0,y:1,w:8,h:1}],"\u{1FB77}":[{x:0,y:2,w:8,h:1}],"\u{1FB78}":[{x:0,y:3,w:8,h:1}],"\u{1FB79}":[{x:0,y:4,w:8,h:1}],"\u{1FB7A}":[{x:0,y:5,w:8,h:1}],"\u{1FB7B}":[{x:0,y:6,w:8,h:1}],"\u{1FB7C}":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB7D}":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7E}":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7F}":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB80}":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB81}":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB82}":[{x:0,y:0,w:8,h:2}],"\u{1FB83}":[{x:0,y:0,w:8,h:3}],"\u{1FB84}":[{x:0,y:0,w:8,h:5}],"\u{1FB85}":[{x:0,y:0,w:8,h:6}],"\u{1FB86}":[{x:0,y:0,w:8,h:7}],"\u{1FB87}":[{x:6,y:0,w:2,h:8}],"\u{1FB88}":[{x:5,y:0,w:3,h:8}],"\u{1FB89}":[{x:3,y:0,w:5,h:8}],"\u{1FB8A}":[{x:2,y:0,w:6,h:8}],"\u{1FB8B}":[{x:1,y:0,w:7,h:8}],"\u{1FB95}":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"\u{1FB96}":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"\u{1FB97}":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]},Bu={"\u2591":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"\u2592":[[1,0],[0,0],[0,1],[0,0]],"\u2593":[[0,1],[1,1],[1,0],[1,1]]},Ou={"\u2500":{1:"M0,.5 L1,.5"},"\u2501":{3:"M0,.5 L1,.5"},"\u2502":{1:"M.5,0 L.5,1"},"\u2503":{3:"M.5,0 L.5,1"},"\u250C":{1:"M0.5,1 L.5,.5 L1,.5"},"\u250F":{3:"M0.5,1 L.5,.5 L1,.5"},"\u2510":{1:"M0,.5 L.5,.5 L.5,1"},"\u2513":{3:"M0,.5 L.5,.5 L.5,1"},"\u2514":{1:"M.5,0 L.5,.5 L1,.5"},"\u2517":{3:"M.5,0 L.5,.5 L1,.5"},"\u2518":{1:"M.5,0 L.5,.5 L0,.5"},"\u251B":{3:"M.5,0 L.5,.5 L0,.5"},"\u251C":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2523":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2524":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252B":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252C":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2533":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2534":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253B":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253C":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u254B":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u2574":{1:"M.5,.5 L0,.5"},"\u2578":{3:"M.5,.5 L0,.5"},"\u2575":{1:"M.5,.5 L.5,0"},"\u2579":{3:"M.5,.5 L.5,0"},"\u2576":{1:"M.5,.5 L1,.5"},"\u257A":{3:"M.5,.5 L1,.5"},"\u2577":{1:"M.5,.5 L.5,1"},"\u257B":{3:"M.5,.5 L.5,1"},"\u2550":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"\u2551":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"\u2552":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"\u2553":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},"\u2554":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"\u2555":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},"\u2556":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},"\u2557":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},"\u2558":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},"\u2559":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"\u255A":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},"\u255B":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},"\u255C":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},"\u255D":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},"\u255E":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"\u255F":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},"\u2560":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"\u2561":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},"\u2562":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"\u2563":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},"\u2564":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},"\u2565":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},"\u2566":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"\u2567":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"\u2568":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"\u2569":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"\u256A":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"\u256B":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"\u256C":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"\u2571":{1:"M1,0 L0,1"},"\u2572":{1:"M0,0 L1,1"},"\u2573":{1:"M1,0 L0,1 M0,0 L1,1"},"\u257C":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u257D":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"\u257E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u257F":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u250D":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u250E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2511":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"\u2512":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2515":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"\u2516":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2519":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"\u251A":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"\u251D":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"\u251E":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u251F":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2520":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2521":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2522":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"\u2525":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"\u2526":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2527":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2528":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"\u2529":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"\u252A":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"\u252D":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u252E":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u252F":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"\u2530":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2531":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2532":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2535":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u2536":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u2537":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"\u2538":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2539":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u253A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"\u253D":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u253E":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u253F":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"\u2540":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2541":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2542":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2543":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u2544":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2545":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2546":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2547":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"\u2548":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2549":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u254A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u254C":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u254D":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u2504":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2505":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2508":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u2509":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u254E":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u254F":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u2506":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u2507":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u250A":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u250B":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u256D":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},"\u256E":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},"\u256F":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},"\u2570":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},hs={"\uE0A0":{d:"M.3,1 L.03,1 L.03,.88 C.03,.82,.06,.78,.11,.73 C.15,.7,.2,.68,.28,.65 L.43,.6 C.49,.58,.53,.56,.56,.53 C.59,.5,.6,.47,.6,.43 L.6,.27 L.4,.27 L.69,.1 L.98,.27 L.78,.27 L.78,.46 C.78,.52,.76,.56,.72,.61 C.68,.66,.63,.67,.56,.7 L.48,.72 C.42,.74,.38,.76,.35,.78 C.32,.8,.31,.84,.31,.88 L.31,1 M.3,.5 L.03,.59 L.03,.09 L.3,.09 L.3,.655",type:0},"\uE0A1":{d:"M.7,.4 L.7,.47 L.2,.47 L.2,.03 L.355,.03 L.355,.4 L.705,.4 M.7,.5 L.86,.5 L.86,.95 L.69,.95 L.44,.66 L.46,.86 L.46,.95 L.3,.95 L.3,.49 L.46,.49 L.71,.78 L.69,.565 L.69,.5",type:0},"\uE0A2":{d:"M.25,.94 C.16,.94,.11,.92,.11,.87 L.11,.53 C.11,.48,.15,.455,.23,.45 L.23,.3 C.23,.25,.26,.22,.31,.19 C.36,.16,.43,.15,.51,.15 C.59,.15,.66,.16,.71,.19 C.77,.22,.79,.26,.79,.3 L.79,.45 C.87,.45,.91,.48,.91,.53 L.91,.87 C.91,.92,.86,.94,.77,.94 L.24,.94 M.53,.2 C.49,.2,.45,.21,.42,.23 C.39,.25,.38,.27,.38,.3 L.38,.45 L.68,.45 L.68,.3 C.68,.27,.67,.25,.64,.23 C.61,.21,.58,.2,.53,.2 M.58,.82 L.58,.66 C.63,.65,.65,.63,.65,.6 C.65,.58,.64,.57,.61,.56 C.58,.55,.56,.54,.52,.54 C.48,.54,.46,.55,.43,.56 C.4,.57,.39,.59,.39,.6 C.39,.63,.41,.64,.46,.66 L.46,.82 L.57,.82",type:0},"\uE0B0":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"\uE0B1":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B2":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"\uE0B3":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B4":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"\uE0B5":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"\uE0B6":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"\uE0B7":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"\uE0B8":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"\uE0B9":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BA":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"\uE0BC":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"\uE0BD":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BE":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}};hs["\uE0BB"]=hs["\uE0BD"];hs["\uE0BF"]=hs["\uE0B9"];function Iu(e,t,r,s,o,i,n,a){let u=Pu[t];if(u)return Nu(e,u,r,s,o,i),!0;let l=Bu[t];if(l)return Hu(e,l,r,s,o,i),!0;let _=Ou[t];if(_)return Fu(e,_,r,s,o,i,a),!0;let m=hs[t];return m?(Wu(e,m,r,s,o,i,n,a),!0):!1}function Nu(e,t,r,s,o,i){for(let n=0;n<t.length;n++){let a=t[n],u=o/8,l=i/8;e.fillRect(r+a.x*u,s+a.y*l,a.w*u,a.h*l)}}var Da=new Map;function Hu(e,t,r,s,o,i){let n=Da.get(t);n||(n=new Map,Da.set(t,n));let a=e.fillStyle;if(typeof a!="string")throw new Error(`Unexpected fillStyle type "${a}"`);let u=n.get(a);if(!u){let l=t[0].length,_=t.length,m=e.canvas.ownerDocument.createElement("canvas");m.width=l,m.height=_;let y=He(m.getContext("2d")),p=new ImageData(l,_),c,d,h,f;if(a.startsWith("#"))c=parseInt(a.slice(1,3),16),d=parseInt(a.slice(3,5),16),h=parseInt(a.slice(5,7),16),f=a.length>7&&parseInt(a.slice(7,9),16)||1;else if(a.startsWith("rgba"))[c,d,h,f]=a.substring(5,a.length-1).split(",").map(g=>parseFloat(g));else throw new Error(`Unexpected fillStyle color format "${a}" when drawing pattern glyph`);for(let g=0;g<_;g++)for(let C=0;C<l;C++)p.data[(g*l+C)*4]=c,p.data[(g*l+C)*4+1]=d,p.data[(g*l+C)*4+2]=h,p.data[(g*l+C)*4+3]=t[g][C]*(f*255);y.putImageData(p,0,0),u=He(e.createPattern(m,null)),n.set(a,u)}e.fillStyle=u,e.fillRect(r,s,o,i)}function Fu(e,t,r,s,o,i,n){e.strokeStyle=e.fillStyle;for(let[a,u]of Object.entries(t)){e.beginPath(),e.lineWidth=n*Number.parseInt(a);let l;if(typeof u=="function"){let _=.15/i*o;l=u(.15,_)}else l=u;for(let _ of l.split(" ")){let m=_[0],y=xl[m];if(!y){console.error(`Could not find drawing instructions for "${m}"`);continue}let p=_.substring(1).split(",");!p[0]||!p[1]||y(e,kl(p,o,i,r,s,!0,n))}e.stroke(),e.closePath()}}function Wu(e,t,r,s,o,i,n,a){let u=new Path2D;u.rect(r,s,o,i),e.clip(u),e.beginPath();let l=n/12;e.lineWidth=a*l;for(let _ of t.d.split(" ")){let m=_[0],y=xl[m];if(!y){console.error(`Could not find drawing instructions for "${m}"`);continue}let p=_.substring(1).split(",");!p[0]||!p[1]||y(e,kl(p,o,i,r,s,!1,a,(t.leftPadding??0)*(l/2),(t.rightPadding??0)*(l/2)))}t.type===1?(e.strokeStyle=e.fillStyle,e.stroke()):e.fill(),e.closePath()}function Pa(e,t,r=0){return Math.max(Math.min(e,t),r)}var xl={C:(e,t)=>e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function kl(e,t,r,s,o,i,n,a=0,u=0){let l=e.map(_=>parseFloat(_)||parseInt(_));if(l.length<2)throw new Error("Too few arguments for instruction");for(let _=0;_<l.length;_+=2)l[_]*=t-a*n-u*n,i&&l[_]!==0&&(l[_]=Pa(Math.round(l[_]+.5)-.5,t,0)),l[_]+=s+a*n;for(let _=1;_<l.length;_+=2)l[_]*=r,i&&l[_]!==0&&(l[_]=Pa(Math.round(l[_]+.5)-.5,r,0)),l[_]+=o;return l}var Ba=class{constructor(){this._data={}}set(e,t,r){this._data[e]||(this._data[e]={}),this._data[e][t]=r}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},Oa=class{constructor(){this._data=new Ba}set(e,t,r,s,o){this._data.get(e,t)||this._data.set(e,t,new Ba),this._data.get(e,t).set(r,s,o)}get(e,t,r,s){return this._data.get(e,t)?.get(r,s)}clear(){this._data.clear()}},El=class{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,r=0,s=e.timeRemaining(),o=0;for(;this._i<this._tasks.length;){if(t=performance.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,performance.now()-t),r=Math.max(t,r),o=e.timeRemaining(),r*1.5>o){s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),this._start();return}s=o}this.clear()}},Uu=class extends El{_requestCallback(e){return setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){let t=performance.now()+e;return{timeRemaining:()=>Math.max(0,t-performance.now())}}},zu=class extends El{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}},ju=!zn&&"requestIdleCallback"in window?zu:Uu,Ar=class Ll{constructor(){this.fg=0,this.bg=0,this.extended=new Tl}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new Ll;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Tl=class Rl{constructor(t=0,r=0){this._ext=0,this._urlId=0,this._ext=t,this._urlId=r}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new Rl(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Ia=class Bn{constructor(t){this.element=t,this.next=Bn.Undefined,this.prev=Bn.Undefined}};Ia.Undefined=new Ia(void 0);var $u=globalThis.performance&&typeof globalThis.performance.now=="function",qu=class Ml{static create(t){return new Ml(t)}constructor(t){this._now=$u&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},Ku=!1,Na=!1,Gu=!1,Tt;(e=>{e.None=()=>st.None;function t(P){if(Gu){let{onDidAddListener:D}=P,H=Nn.create(),I=0;P.onDidAddListener=()=>{++I===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),H.print()),D?.()}}}function r(P,D){return y(P,()=>{},0,void 0,!0,void 0,D)}e.defer=r;function s(P){return(D,H=null,I)=>{let S=!1,T;return T=P(k=>{if(!S)return T?T.dispose():S=!0,D.call(H,k)},null,I),S&&T.dispose(),T}}e.once=s;function o(P,D,H){return _((I,S=null,T)=>P(k=>I.call(S,D(k)),null,T),H)}e.map=o;function i(P,D,H){return _((I,S=null,T)=>P(k=>{D(k),I.call(S,k)},null,T),H)}e.forEach=i;function n(P,D,H){return _((I,S=null,T)=>P(k=>D(k)&&I.call(S,k),null,T),H)}e.filter=n;function a(P){return P}e.signal=a;function u(...P){return(D,H=null,I)=>{let S=vl(...P.map(T=>T(k=>D.call(H,k))));return m(S,I)}}e.any=u;function l(P,D,H,I){let S=H;return o(P,T=>(S=D(S,T),S),I)}e.reduce=l;function _(P,D){let H,I={onWillAddFirstListener(){H=P(S.fire,S)},onDidRemoveLastListener(){H?.dispose()}};D||t(I);let S=new ke(I);return D?.add(S),S.event}function m(P,D){return D instanceof Array?D.push(P):D&&D.add(P),P}function y(P,D,H=100,I=!1,S=!1,T,k){let R,z,V,X=0,Z,W={leakWarningThreshold:T,onWillAddFirstListener(){R=P(F=>{X++,z=D(z,F),I&&!V&&(L.fire(z),z=void 0),Z=()=>{let $=z;z=void 0,V=void 0,(!I||X>1)&&L.fire($),X=0},typeof H=="number"?(clearTimeout(V),V=setTimeout(Z,H)):V===void 0&&(V=0,queueMicrotask(Z))})},onWillRemoveListener(){S&&X>0&&Z?.()},onDidRemoveLastListener(){Z=void 0,R.dispose()}};k||t(W);let L=new ke(W);return k?.add(L),L.event}e.debounce=y;function p(P,D=0,H){return e.debounce(P,(I,S)=>I?(I.push(S),I):[S],D,void 0,!0,void 0,H)}e.accumulate=p;function c(P,D=(I,S)=>I===S,H){let I=!0,S;return n(P,T=>{let k=I||!D(T,S);return I=!1,S=T,k},H)}e.latch=c;function d(P,D,H){return[e.filter(P,D,H),e.filter(P,I=>!D(I),H)]}e.split=d;function h(P,D=!1,H=[],I){let S=H.slice(),T=P(z=>{S?S.push(z):R.fire(z)});I&&I.add(T);let k=()=>{S?.forEach(z=>R.fire(z)),S=null},R=new ke({onWillAddFirstListener(){T||(T=P(z=>R.fire(z)),I&&I.add(T))},onDidAddFirstListener(){S&&(D?setTimeout(k):k())},onDidRemoveLastListener(){T&&T.dispose(),T=null}});return I&&I.add(R),R.event}e.buffer=h;function f(P,D){return(H,I,S)=>{let T=D(new C);return P(function(k){let R=T.evaluate(k);R!==g&&H.call(I,R)},void 0,S)}}e.chain=f;let g=Symbol("HaltChainable");class C{constructor(){this.steps=[]}map(D){return this.steps.push(D),this}forEach(D){return this.steps.push(H=>(D(H),H)),this}filter(D){return this.steps.push(H=>D(H)?H:g),this}reduce(D,H){let I=H;return this.steps.push(S=>(I=D(I,S),I)),this}latch(D=(H,I)=>H===I){let H=!0,I;return this.steps.push(S=>{let T=H||!D(S,I);return H=!1,I=S,T?S:g}),this}evaluate(D){for(let H of this.steps)if(D=H(D),D===g)break;return D}}function v(P,D,H=I=>I){let I=(...R)=>k.fire(H(...R)),S=()=>P.on(D,I),T=()=>P.removeListener(D,I),k=new ke({onWillAddFirstListener:S,onDidRemoveLastListener:T});return k.event}e.fromNodeEventEmitter=v;function x(P,D,H=I=>I){let I=(...R)=>k.fire(H(...R)),S=()=>P.addEventListener(D,I),T=()=>P.removeEventListener(D,I),k=new ke({onWillAddFirstListener:S,onDidRemoveLastListener:T});return k.event}e.fromDOMEventEmitter=x;function b(P){return new Promise(D=>s(P)(D))}e.toPromise=b;function E(P){let D=new ke;return P.then(H=>{D.fire(H)},()=>{D.fire(void 0)}).finally(()=>{D.dispose()}),D.event}e.fromPromise=E;function O(P,D){return P(H=>D.fire(H))}e.forward=O;function B(P,D,H){return D(H),P(I=>D(I))}e.runAndSubscribe=B;class N{constructor(D,H){this._observable=D,this._counter=0,this._hasChanged=!1;let I={onWillAddFirstListener:()=>{D.addObserver(this)},onDidRemoveLastListener:()=>{D.removeObserver(this)}};H||t(I),this.emitter=new ke(I),H&&H.add(this.emitter)}beginUpdate(D){this._counter++}handlePossibleChange(D){}handleChange(D,H){this._hasChanged=!0}endUpdate(D){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function A(P,D){return new N(P,D).emitter.event}e.fromObservable=A;function K(P){return(D,H,I)=>{let S=0,T=!1,k={beginUpdate(){S++},endUpdate(){S--,S===0&&(P.reportChanges(),T&&(T=!1,D.call(H)))},handlePossibleChange(){},handleChange(){T=!0}};P.addObserver(k),P.reportChanges();let R={dispose(){P.removeObserver(k)}};return I instanceof Pr?I.add(R):Array.isArray(I)&&I.push(R),R}}e.fromObservableLight=K})(Tt||(Tt={}));var On=class In{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${In._idPool++}`,In.all.add(this)}start(t){this._stopWatch=new qu,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};On.all=new Set,On._idPool=0;var Vu=On,Ha=-1,Al=class Dl{constructor(t,r,s=(Dl._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=r,this.name=s,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,r){let s=this.threshold;if(s<=0||r<s)return;this._stacks||(this._stacks=new Map);let o=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,o+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=s*.5;let[i,n]=this.getMostFrequentStack(),a=`[${this.name}] potential listener LEAK detected, having ${r} listeners already. MOST frequent listener (${n}):`;console.warn(a),console.warn(i);let u=new Xu(a,i);this._errorHandler(u)}return()=>{let i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,r=0;for(let[s,o]of this._stacks)(!t||r<o)&&(t=[s,o],r=o);return t}};Al._idPool=1;var Yu=Al,Nn=class Pl{constructor(t){this.value=t}static create(){let t=new Error;return new Pl(t.stack??"")}print(){console.warn(this.value.split(`
57
57
  `).slice(2).join(`
58
- `))}},mu=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},gu=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},vu=0,Fi=class{constructor(e){this.value=e,this.id=vu++}},bu=2,wu=(e,t)=>{if(e instanceof Fi)t(e);else for(let r=0;r<e.length;r++){let s=e[r];s&&t(s)}},Wi;if(uu){let e=[];setInterval(()=>{e.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(e.join(`
59
- `)),e.length=0)},3e3),Wi=new FinalizationRegistry(t=>{typeof t=="string"&&e.push(t)})}var ke=class{constructor(e){this._size=0,this._options=e,this._leakageMon=ua>0||this._options?.leakWarningThreshold?new _u(e?.onListenerError??Hi,this._options?.leakWarningThreshold??ua):void 0,this._perfMon=this._options?._profName?new pu(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(da){let e=this._listeners;queueMicrotask(()=>{wu(e,t=>t.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??(this._event=(e,t,r)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let o=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(o);let u=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],l=new gu(`${o}. HINT: Stack shows most frequent listener (${u[1]}-times)`,u[0]);return(this._options?.onListenerError||Hi)(l),et.None}if(this._disposed)return et.None;t&&(e=e.bind(t));let s=new Fi(e),a,i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(s.stack=mn.create(),a=this._leakageMon.check(s.stack,this._size+1)),da&&(s.stack=i??mn.create()),this._listeners?this._listeners instanceof Fi?(this._deliveryQueue??(this._deliveryQueue=new yu),this._listeners=[this._listeners,s]):this._listeners.push(s):(this._options?.onWillAddFirstListener?.(this),this._listeners=s,this._options?.onDidAddFirstListener?.(this)),this._size++;let n=$e(()=>{Wi?.unregister(n),a?.(),this._removeListener(s)});if(r instanceof vr?r.add(n):Array.isArray(r)&&r.push(n),Wi){let o=new Error().stack.split(`
58
+ `))}},Xu=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},Ju=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},Zu=0,ti=class{constructor(e){this.value=e,this.id=Zu++}},Qu=2,ef=(e,t)=>{if(e instanceof ti)t(e);else for(let r=0;r<e.length;r++){let s=e[r];s&&t(s)}},ri;if(Ku){let e=[];setInterval(()=>{e.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(e.join(`
59
+ `)),e.length=0)},3e3),ri=new FinalizationRegistry(t=>{typeof t=="string"&&e.push(t)})}var ke=class{constructor(e){this._size=0,this._options=e,this._leakageMon=Ha>0||this._options?.leakWarningThreshold?new Yu(e?.onListenerError??ei,this._options?.leakWarningThreshold??Ha):void 0,this._perfMon=this._options?._profName?new Vu(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(Na){let e=this._listeners;queueMicrotask(()=>{ef(e,t=>t.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??(this._event=(e,t,r)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let a=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(a);let u=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],l=new Ju(`${a}. HINT: Stack shows most frequent listener (${u[1]}-times)`,u[0]);return(this._options?.onListenerError||ei)(l),st.None}if(this._disposed)return st.None;t&&(e=e.bind(t));let s=new ti(e),o,i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(s.stack=Nn.create(),o=this._leakageMon.check(s.stack,this._size+1)),Na&&(s.stack=i??Nn.create()),this._listeners?this._listeners instanceof ti?(this._deliveryQueue??(this._deliveryQueue=new tf),this._listeners=[this._listeners,s]):this._listeners.push(s):(this._options?.onWillAddFirstListener?.(this),this._listeners=s,this._options?.onDidAddFirstListener?.(this)),this._size++;let n=$e(()=>{ri?.unregister(n),o?.(),this._removeListener(s)});if(r instanceof Pr?r.add(n):Array.isArray(r)&&r.push(n),ri){let a=new Error().stack.split(`
60
60
  `).slice(2,3).join(`
61
- `).trim(),u=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(o);Wi.register(n,u?.[2]??o,n)}return n}),this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,r=t.indexOf(e);if(r===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[r]=void 0;let s=this._deliveryQueue.current===this;if(this._size*bu<=t.length){let a=0;for(let i=0;i<t.length;i++)t[i]?t[a++]=t[i]:s&&(this._deliveryQueue.end--,a<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=a}}_deliver(e,t){if(!e)return;let r=this._options?.onListenerError||Hi;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof Fi)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},yu=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,r){this.i=0,this.end=r,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},fa={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}},$r=2,qr,$t=class pr{constructor(t,r,s){this._document=t,this._config=r,this._unicodeService=s,this._didWarmUp=!1,this._cacheMap=new ca,this._cacheMapCombined=new ca,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new mr,this._textureSize=512,this._onAddTextureAtlasCanvas=new ke,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new ke,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=ll(t,this._config.deviceCellWidth*4+$r*2,this._config.deviceCellHeight+$r*2),this._tmpCtx=Oe(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}get pages(){return this._pages}dispose(){this._tmpCanvas.remove();for(let t of this.pages)t.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){let t=new cu;for(let r=33;r<126;r++)t.enqueue(()=>{if(!this._cacheMap.get(r,0,0,0)){let s=this._drawToCache(r,0,0,0,!1,void 0);this._cacheMap.set(r,0,0,0,s)}})}beginFrame(){return this._requestClearModel}clearTexture(){if(!(this._pages[0].currentRow.x===0&&this._pages[0].currentRow.y===0)){for(let t of this._pages)t.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(pr.maxAtlasPages&&this._pages.length>=Math.max(4,pr.maxAtlasPages)){let r=this._pages.filter(l=>l.canvas.width*2<=(pr.maxTextureSize||4096)).sort((l,_)=>_.canvas.width!==l.canvas.width?_.canvas.width-l.canvas.width:_.percentageUsed-l.percentageUsed),s=-1,a=0;for(let l=0;l<r.length;l++)if(r[l].canvas.width!==a)s=l,a=r[l].canvas.width;else if(l-s===3)break;let i=r.slice(s,s+4),n=i.map(l=>l.glyphs[0].texturePage).sort((l,_)=>l>_?1:-1),o=this.pages.length-i.length,u=this._mergePages(i,o);u.version++;for(let l=n.length-1;l>=0;l--)this._deletePage(n[l]);this.pages.push(u),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(u.canvas)}let t=new Vs(this._document,this._textureSize);return this._pages.push(t),this._activePages.push(t),this._onAddTextureAtlasCanvas.fire(t.canvas),t}_mergePages(t,r){let s=t[0].canvas.width*2,a=new Vs(this._document,s,t);for(let[i,n]of t.entries()){let o=i*n.canvas.width%s,u=Math.floor(i/2)*n.canvas.height;a.ctx.drawImage(n.canvas,o,u);for(let _ of n.glyphs)_.texturePage=r,_.sizeClipSpace.x=_.size.x/s,_.sizeClipSpace.y=_.size.y/s,_.texturePosition.x+=o,_.texturePosition.y+=u,_.texturePositionClipSpace.x=_.texturePosition.x/s,_.texturePositionClipSpace.y=_.texturePosition.y/s;this._onRemoveTextureAtlasCanvas.fire(n.canvas);let l=this._activePages.indexOf(n);l!==-1&&this._activePages.splice(l,1)}return a}_deletePage(t){this._pages.splice(t,1);for(let r=t;r<this._pages.length;r++){let s=this._pages[r];for(let a of s.glyphs)a.texturePage--;s.version++}}getRasterizedGlyphCombinedChar(t,r,s,a,i,n){return this._getFromCacheMap(this._cacheMapCombined,t,r,s,a,i,n)}getRasterizedGlyph(t,r,s,a,i,n){return this._getFromCacheMap(this._cacheMap,t,r,s,a,i,n)}_getFromCacheMap(t,r,s,a,i,n,o){return qr=t.get(r,s,a,i),qr||(qr=this._drawToCache(r,s,a,i,n,o),t.set(r,s,a,i,qr)),qr}_getColorFromAnsiIndex(t){if(t>=this._config.colors.ansi.length)throw new Error("No color found for idx "+t);return this._config.colors.ansi[t]}_getBackgroundColor(t,r,s,a){if(this._config.allowTransparency)return nt;let i;switch(t){case 16777216:case 33554432:i=this._getColorFromAnsiIndex(r);break;case 50331648:let n=mr.toColorRGB(r);i=Ge.toColor(n[0],n[1],n[2]);break;default:s?i=_r.opaque(this._config.colors.foreground):i=this._config.colors.background;break}return this._config.allowTransparency||(i=_r.opaque(i)),i}_getForegroundColor(t,r,s,a,i,n,o,u,l,_){let m=this._getMinimumContrastColor(t,r,s,a,i,n,o,l,u,_);if(m)return m;let w;switch(i){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&l&&n<8&&(n+=8),w=this._getColorFromAnsiIndex(n);break;case 50331648:let p=mr.toColorRGB(n);w=Ge.toColor(p[0],p[1],p[2]);break;default:o?w=this._config.colors.background:w=this._config.colors.foreground}return this._config.allowTransparency&&(w=_r.opaque(w)),u&&(w=_r.multiplyOpacity(w,Zd)),w}_resolveBackgroundRgba(t,r,s){switch(t){case 16777216:case 33554432:return this._getColorFromAnsiIndex(r).rgba;case 50331648:return r<<8;default:return s?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(t,r,s,a){switch(t){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&a&&r<8&&(r+=8),this._getColorFromAnsiIndex(r).rgba;case 50331648:return r<<8;default:return s?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(t,r,s,a,i,n,o,u,l,_){if(this._config.minimumContrastRatio===1||_)return;let m=this._getContrastCache(l),w=m.getColor(t,a);if(w!==void 0)return w||void 0;let p=this._resolveBackgroundRgba(r,s,o),c=this._resolveForegroundRgba(i,n,o,u),d=Kt.ensureContrastRatio(p,c,this._config.minimumContrastRatio/(l?2:1));if(!d){m.setColor(t,a,null);return}let h=Ge.toColor(d>>24&255,d>>16&255,d>>8&255);return m.setColor(t,a,h),h}_getContrastCache(t){return t?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(t,r,s,a,i,n){let o=typeof t=="number"?String.fromCharCode(t):t;n&&this._tmpCanvas.parentElement!==n&&(this._tmpCanvas.style.display="none",n.append(this._tmpCanvas));let u=Math.min(this._config.deviceCellWidth*Math.max(o.length,2)+$r*2,this._config.deviceMaxTextureSize);this._tmpCanvas.width<u&&(this._tmpCanvas.width=u);let l=Math.min(this._config.deviceCellHeight+$r*4,this._textureSize);if(this._tmpCanvas.height<l&&(this._tmpCanvas.height=l),this._tmpCtx.save(),this._workAttributeData.fg=s,this._workAttributeData.bg=r,this._workAttributeData.extended.ext=a,!!this._workAttributeData.isInvisible())return fa;let _=!!this._workAttributeData.isBold(),m=!!this._workAttributeData.isInverse(),w=!!this._workAttributeData.isDim(),p=!!this._workAttributeData.isItalic(),c=!!this._workAttributeData.isUnderline(),d=!!this._workAttributeData.isStrikethrough(),h=!!this._workAttributeData.isOverline(),f=this._workAttributeData.getFgColor(),g=this._workAttributeData.getFgColorMode(),C=this._workAttributeData.getBgColor(),v=this._workAttributeData.getBgColorMode();if(m){let R=f;f=C,C=R;let U=g;g=v,v=U}let x=this._getBackgroundColor(v,C,m,w);this._tmpCtx.globalCompositeOperation="copy",this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.globalCompositeOperation="source-over";let b=_?this._config.fontWeightBold:this._config.fontWeight,E=p?"italic":"";this._tmpCtx.font=`${E} ${b} ${this._config.fontSize*this._config.devicePixelRatio}px ${this._config.fontFamily}`,this._tmpCtx.textBaseline=Xa;let O=o.length===1&&Cn(o.charCodeAt(0)),B=o.length===1&&$d(o.charCodeAt(0)),H=this._getForegroundColor(r,v,C,s,g,f,m,w,_,Ja(o.charCodeAt(0)));this._tmpCtx.fillStyle=H.css;let M=B?0:$r*2,K=!1;this._config.customGlyphs!==!1&&(K=ru(this._tmpCtx,o,M,M,this._config.deviceCellWidth,this._config.deviceCellHeight,this._config.fontSize,this._config.devicePixelRatio));let P=!O,D;if(typeof t=="number"?D=this._unicodeService.wcwidth(t):D=this._unicodeService.getStringCellWidth(t),c){this._tmpCtx.save();let R=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),U=R%2===1?.5:0;if(this._tmpCtx.lineWidth=R,this._workAttributeData.isUnderlineColorDefault())this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle;else if(this._workAttributeData.isUnderlineColorRGB())P=!1,this._tmpCtx.strokeStyle=`rgb(${mr.toColorRGB(this._workAttributeData.getUnderlineColor()).join(",")})`;else{P=!1;let I=this._workAttributeData.getUnderlineColor();this._config.drawBoldTextInBrightColors&&this._workAttributeData.isBold()&&I<8&&(I+=8),this._tmpCtx.strokeStyle=this._getColorFromAnsiIndex(I).css}this._tmpCtx.beginPath();let G=M,J=Math.ceil(M+this._config.deviceCharHeight)-U-(i?R*2:0),X=J+R,W=J+R*2,L=this._workAttributeData.getUnderlineVariantOffset();for(let I=0;I<D;I++){this._tmpCtx.save();let z=G+I*this._config.deviceCellWidth,$=G+(I+1)*this._config.deviceCellWidth,q=z+this._config.deviceCellWidth/2;switch(this._workAttributeData.extended.underlineStyle){case 2:this._tmpCtx.moveTo(z,J),this._tmpCtx.lineTo($,J),this._tmpCtx.moveTo(z,W),this._tmpCtx.lineTo($,W);break;case 3:let ee=R<=1?W:Math.ceil(M+this._config.deviceCharHeight-R/2)-U,he=R<=1?J:Math.ceil(M+this._config.deviceCharHeight+R/2)-U,de=new Path2D;de.rect(z,J,this._config.deviceCellWidth,W-J),this._tmpCtx.clip(de),this._tmpCtx.moveTo(z-this._config.deviceCellWidth/2,X),this._tmpCtx.bezierCurveTo(z-this._config.deviceCellWidth/2,he,z,he,z,X),this._tmpCtx.bezierCurveTo(z,ee,q,ee,q,X),this._tmpCtx.bezierCurveTo(q,he,$,he,$,X),this._tmpCtx.bezierCurveTo($,ee,$+this._config.deviceCellWidth/2,ee,$+this._config.deviceCellWidth/2,X);break;case 4:let re=L===0?0:L>=R?R*2-L:R-L;L>=R||re===0?(this._tmpCtx.setLineDash([Math.round(R),Math.round(R)]),this._tmpCtx.moveTo(z+re,J),this._tmpCtx.lineTo($,J)):(this._tmpCtx.setLineDash([Math.round(R),Math.round(R)]),this._tmpCtx.moveTo(z,J),this._tmpCtx.lineTo(z+re,J),this._tmpCtx.moveTo(z+re+R,J),this._tmpCtx.lineTo($,J)),L=Jd($-z,R,L);break;case 5:let Y=.6,se=.3,be=$-z,fe=Math.floor(Y*be),ge=Math.floor(se*be),Le=be-fe-ge;this._tmpCtx.setLineDash([fe,ge,Le]),this._tmpCtx.moveTo(z,J),this._tmpCtx.lineTo($,J);break;default:this._tmpCtx.moveTo(z,J),this._tmpCtx.lineTo($,J);break}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!K&&this._config.fontSize>=12&&!this._config.allowTransparency&&o!==" "){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";let I=this._tmpCtx.measureText(o);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in I&&I.actualBoundingBoxDescent>0){this._tmpCtx.save();let z=new Path2D;z.rect(G,J-Math.ceil(R/2),this._config.deviceCellWidth*D,W-J+Math.ceil(R/2)),this._tmpCtx.clip(z),this._tmpCtx.lineWidth=this._config.devicePixelRatio*3,this._tmpCtx.strokeStyle=x.css,this._tmpCtx.strokeText(o,M,M+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(h){let R=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),U=R%2===1?.5:0;this._tmpCtx.lineWidth=R,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(M,M+U),this._tmpCtx.lineTo(M+this._config.deviceCharWidth*D,M+U),this._tmpCtx.stroke()}if(K||this._tmpCtx.fillText(o,M,M+this._config.deviceCharHeight),o==="_"&&!this._config.allowTransparency){let R=Ys(this._tmpCtx.getImageData(M,M,this._config.deviceCellWidth,this._config.deviceCellHeight),x,H,P);if(R)for(let U=1;U<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(o,M,M+this._config.deviceCharHeight-U),R=Ys(this._tmpCtx.getImageData(M,M,this._config.deviceCellWidth,this._config.deviceCellHeight),x,H,P),!!R);U++);}if(d){let R=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),U=this._tmpCtx.lineWidth%2===1?.5:0;this._tmpCtx.lineWidth=R,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(M,M+Math.floor(this._config.deviceCharHeight/2)-U),this._tmpCtx.lineTo(M+this._config.deviceCharWidth*D,M+Math.floor(this._config.deviceCharHeight/2)-U),this._tmpCtx.stroke()}this._tmpCtx.restore();let F=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height),N;if(this._config.allowTransparency?N=Su(F):N=Ys(F,x,H,P),N)return fa;let y=this._findGlyphBoundingBox(F,this._workBoundingBox,u,B,K,M),T,k;for(;;){if(this._activePages.length===0){let R=this._createNewPage();T=R,k=R.currentRow,k.height=y.size.y;break}T=this._activePages[this._activePages.length-1],k=T.currentRow;for(let R of this._activePages)y.size.y<=R.currentRow.height&&(T=R,k=R.currentRow);for(let R=this._activePages.length-1;R>=0;R--)for(let U of this._activePages[R].fixedRows)U.height<=k.height&&y.size.y<=U.height&&(T=this._activePages[R],k=U);if(y.size.x>this._textureSize){this._overflowSizePage||(this._overflowSizePage=new Vs(this._document,this._config.deviceMaxTextureSize),this.pages.push(this._overflowSizePage),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(this._overflowSizePage.canvas)),T=this._overflowSizePage,k=this._overflowSizePage.currentRow,k.x+y.size.x>=T.canvas.width&&(k.x=0,k.y+=k.height,k.height=0);break}if(k.y+y.size.y>=T.canvas.height||k.height>y.size.y+2){let R=!1;if(T.currentRow.y+T.currentRow.height+y.size.y>=T.canvas.height){let U;for(let G of this._activePages)if(G.currentRow.y+G.currentRow.height+y.size.y<G.canvas.height){U=G;break}if(U)T=U;else if(pr.maxAtlasPages&&this._pages.length>=pr.maxAtlasPages&&k.y+y.size.y<=T.canvas.height&&k.height>=y.size.y&&k.x+y.size.x<=T.canvas.width)R=!0;else{let G=this._createNewPage();T=G,k=G.currentRow,k.height=y.size.y,R=!0}}R||(T.currentRow.height>0&&T.fixedRows.push(T.currentRow),k={x:0,y:T.currentRow.y+T.currentRow.height,height:y.size.y},T.fixedRows.push(k),T.currentRow={x:0,y:k.y+k.height,height:0})}if(k.x+y.size.x<=T.canvas.width)break;k===T.currentRow?(k.x=0,k.y+=k.height,k.height=0):T.fixedRows.splice(T.fixedRows.indexOf(k),1)}return y.texturePage=this._pages.indexOf(T),y.texturePosition.x=k.x,y.texturePosition.y=k.y,y.texturePositionClipSpace.x=k.x/T.canvas.width,y.texturePositionClipSpace.y=k.y/T.canvas.height,y.sizeClipSpace.x/=T.canvas.width,y.sizeClipSpace.y/=T.canvas.height,k.height=Math.max(k.height,y.size.y),k.x+=y.size.x,T.ctx.putImageData(F,y.texturePosition.x-this._workBoundingBox.left,y.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,y.size.x,y.size.y),T.addGlyph(y),T.version++,y}_findGlyphBoundingBox(t,r,s,a,i,n){r.top=0;let o=a?this._config.deviceCellHeight:this._tmpCanvas.height,u=a?this._config.deviceCellWidth:s,l=!1;for(let _=0;_<o;_++){for(let m=0;m<u;m++){let w=_*this._tmpCanvas.width*4+m*4+3;if(t.data[w]!==0){r.top=_,l=!0;break}}if(l)break}r.left=0,l=!1;for(let _=0;_<n+u;_++){for(let m=0;m<o;m++){let w=m*this._tmpCanvas.width*4+_*4+3;if(t.data[w]!==0){r.left=_,l=!0;break}}if(l)break}r.right=u,l=!1;for(let _=n+u-1;_>=n;_--){for(let m=0;m<o;m++){let w=m*this._tmpCanvas.width*4+_*4+3;if(t.data[w]!==0){r.right=_,l=!0;break}}if(l)break}r.bottom=o,l=!1;for(let _=o-1;_>=0;_--){for(let m=0;m<u;m++){let w=_*this._tmpCanvas.width*4+m*4+3;if(t.data[w]!==0){r.bottom=_,l=!0;break}}if(l)break}return{texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},size:{x:r.right-r.left+1,y:r.bottom-r.top+1},sizeClipSpace:{x:r.right-r.left+1,y:r.bottom-r.top+1},offset:{x:-r.left+n+(a||i?Math.floor((this._config.deviceCellWidth-this._config.deviceCharWidth)/2):0),y:-r.top+n+(a||i?this._config.lineHeight===1?0:Math.round((this._config.deviceCellHeight-this._config.deviceCharHeight)/2):0)}}}},Vs=class{constructor(e,t,r){if(this._usedPixels=0,this._glyphs=[],this.version=0,this.currentRow={x:0,y:0,height:0},this.fixedRows=[],r)for(let s of r)this._glyphs.push(...s.glyphs),this._usedPixels+=s._usedPixels;this.canvas=ll(e,t,t),this.ctx=Oe(this.canvas.getContext("2d",{alpha:!0}))}get percentageUsed(){return this._usedPixels/(this.canvas.width*this.canvas.height)}get glyphs(){return this._glyphs}addGlyph(e){this._glyphs.push(e),this._usedPixels+=e.size.x*e.size.y}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.currentRow.x=0,this.currentRow.y=0,this.currentRow.height=0,this.fixedRows.length=0,this.version++}};function Ys(e,t,r,s){let a=t.rgba>>>24,i=t.rgba>>>16&255,n=t.rgba>>>8&255,o=r.rgba>>>24,u=r.rgba>>>16&255,l=r.rgba>>>8&255,_=Math.floor((Math.abs(a-o)+Math.abs(i-u)+Math.abs(n-l))/12),m=!0;for(let w=0;w<e.data.length;w+=4)e.data[w]===a&&e.data[w+1]===i&&e.data[w+2]===n||s&&Math.abs(e.data[w]-a)+Math.abs(e.data[w+1]-i)+Math.abs(e.data[w+2]-n)<_?e.data[w+3]=0:m=!1;return m}function Su(e){for(let t=0;t<e.data.length;t+=4)if(e.data[t+3]>0)return!1;return!0}function ll(e,t,r){let s=e.createElement("canvas");return s.width=t,s.height=r,s}function Cu(e,t,r,s,a,i,n,o){let u={foreground:i.foreground,background:i.background,cursor:nt,cursorAccent:nt,selectionForeground:nt,selectionBackgroundTransparent:nt,selectionBackgroundOpaque:nt,selectionInactiveBackgroundTransparent:nt,selectionInactiveBackgroundOpaque:nt,overviewRulerBorder:nt,scrollbarSliderBackground:nt,scrollbarSliderHoverBackground:nt,scrollbarSliderActiveBackground:nt,ansi:i.ansi.slice(),contrastCache:i.contrastCache,halfContrastCache:i.halfContrastCache};return{customGlyphs:a.customGlyphs,devicePixelRatio:n,deviceMaxTextureSize:o,letterSpacing:a.letterSpacing,lineHeight:a.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:r,deviceCharHeight:s,fontFamily:a.fontFamily,fontSize:a.fontSize,fontWeight:a.fontWeight,fontWeightBold:a.fontWeightBold,allowTransparency:a.allowTransparency,drawBoldTextInBrightColors:a.drawBoldTextInBrightColors,minimumContrastRatio:a.minimumContrastRatio,colors:u}}function pa(e,t){for(let r=0;r<e.colors.ansi.length;r++)if(e.colors.ansi[r].rgba!==t.colors.ansi[r].rgba)return!1;return e.devicePixelRatio===t.devicePixelRatio&&e.customGlyphs===t.customGlyphs&&e.lineHeight===t.lineHeight&&e.letterSpacing===t.letterSpacing&&e.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.deviceCharWidth===t.deviceCharWidth&&e.deviceCharHeight===t.deviceCharHeight&&e.drawBoldTextInBrightColors===t.drawBoldTextInBrightColors&&e.minimumContrastRatio===t.minimumContrastRatio&&e.colors.foreground.rgba===t.colors.foreground.rgba&&e.colors.background.rgba===t.colors.background.rgba}function xu(e){return(e&50331648)===16777216||(e&50331648)===33554432}var at=[];function cl(e,t,r,s,a,i,n,o,u){let l=Cu(s,a,i,n,t,r,o,u);for(let w=0;w<at.length;w++){let p=at[w],c=p.ownedBy.indexOf(e);if(c>=0){if(pa(p.config,l))return p.atlas;p.ownedBy.length===1?(p.atlas.dispose(),at.splice(w,1)):p.ownedBy.splice(c,1);break}}for(let w=0;w<at.length;w++){let p=at[w];if(pa(p.config,l))return p.ownedBy.push(e),p.atlas}let _=e._core,m={atlas:new $t(document,l,_.unicodeService),config:l,ownedBy:[e]};return at.push(m),m.atlas}function _a(e){for(let t=0;t<at.length;t++){let r=at[t].ownedBy.indexOf(e);if(r!==-1){at[t].ownedBy.length===1?(at[t].atlas.dispose(),at.splice(t,1)):at[t].ownedBy.splice(r,1);break}}}var Ii=600,ku=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})))}_restartInterval(e=Ii){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout(()=>{if(this._animationTimeRestarted){let t=Ii-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,t>0){this._restartInterval(t);return}}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0}),this._blinkInterval=this._coreBrowserService.window.setInterval(()=>{if(this._animationTimeRestarted){let t=Ii-(Date.now()-this._animationTimeRestarted);this._animationTimeRestarted=void 0,this._restartInterval(t);return}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})},Ii)},e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}};function ma(e,t,r){let s=new t.ResizeObserver(a=>{let i=a.find(u=>u.target===e);if(!i)return;if(!("devicePixelContentBoxSize"in i)){s?.disconnect(),s=void 0;return}let n=i.devicePixelContentBoxSize[0].inlineSize,o=i.devicePixelContentBoxSize[0].blockSize;n>0&&o>0&&r(n,o)});try{s.observe(e,{box:["device-pixel-content-box"]})}catch{s.disconnect(),s=void 0}return $e(()=>s?.disconnect())}function Eu(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}var ga=class hl extends mr{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new rl,this.combinedData=""}static fromCharData(t){let r=new hl;return r.setFromCharData(t),r}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Eu(this.content&2097151):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(t){this.fg=t[0],this.bg=0;let r=!1;if(t[1].length>2)r=!0;else if(t[1].length===2){let s=t[1].charCodeAt(0);if(55296<=s&&s<=56319){let a=t[1].charCodeAt(1);56320<=a&&a<=57343?this.content=(s-55296)*1024+a-56320+65536|t[2]<<22:r=!0}else r=!0}else this.content=t[1].charCodeAt(0)|t[2]<<22;r&&(this.combinedData=t[1],this.content=2097152|t[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},dl=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]);function ul(e,t,r){let s=Oe(e.createProgram());if(e.attachShader(s,Oe(va(e,e.VERTEX_SHADER,t))),e.attachShader(s,Oe(va(e,e.FRAGMENT_SHADER,r))),e.linkProgram(s),e.getProgramParameter(s,e.LINK_STATUS))return s;console.error(e.getProgramInfoLog(s)),e.deleteProgram(s)}function va(e,t,r){let s=Oe(e.createShader(t));if(e.shaderSource(s,r),e.compileShader(s),e.getShaderParameter(s,e.COMPILE_STATUS))return s;console.error(e.getShaderInfoLog(s)),e.deleteShader(s)}function Lu(e,t){let r=Math.min(e.length*2,t),s=new Float32Array(r);for(let a=0;a<e.length;a++)s[a]=e[a];return s}var Tu=class{constructor(e){this.texture=e,this.version=-1}},Ru=`#version 300 es
61
+ `).trim(),u=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(a);ri.register(n,u?.[2]??a,n)}return n}),this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,r=t.indexOf(e);if(r===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[r]=void 0;let s=this._deliveryQueue.current===this;if(this._size*Qu<=t.length){let o=0;for(let i=0;i<t.length;i++)t[i]?t[o++]=t[i]:s&&(this._deliveryQueue.end--,o<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=o}}_deliver(e,t){if(!e)return;let r=this._options?.onListenerError||ei;if(!r){e.value(t);return}try{e.value(t)}catch(s){r(s)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof ti)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},tf=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,r){this.i=0,this.end=r,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},Fa={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}},ns=2,os,Zt=class Rr{constructor(t,r,s){this._document=t,this._config=r,this._unicodeService=s,this._didWarmUp=!1,this._cacheMap=new Oa,this._cacheMapCombined=new Oa,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new Ar,this._textureSize=512,this._onAddTextureAtlasCanvas=new ke,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new ke,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=Bl(t,this._config.deviceCellWidth*4+ns*2,this._config.deviceCellHeight+ns*2),this._tmpCtx=He(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}get pages(){return this._pages}dispose(){this._tmpCanvas.remove();for(let t of this.pages)t.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){let t=new ju;for(let r=33;r<126;r++)t.enqueue(()=>{if(!this._cacheMap.get(r,0,0,0)){let s=this._drawToCache(r,0,0,0,!1,void 0);this._cacheMap.set(r,0,0,0,s)}})}beginFrame(){return this._requestClearModel}clearTexture(){if(!(this._pages[0].currentRow.x===0&&this._pages[0].currentRow.y===0)){for(let t of this._pages)t.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(Rr.maxAtlasPages&&this._pages.length>=Math.max(4,Rr.maxAtlasPages)){let r=this._pages.filter(l=>l.canvas.width*2<=(Rr.maxTextureSize||4096)).sort((l,_)=>_.canvas.width!==l.canvas.width?_.canvas.width-l.canvas.width:_.percentageUsed-l.percentageUsed),s=-1,o=0;for(let l=0;l<r.length;l++)if(r[l].canvas.width!==o)s=l,o=r[l].canvas.width;else if(l-s===3)break;let i=r.slice(s,s+4),n=i.map(l=>l.glyphs[0].texturePage).sort((l,_)=>l>_?1:-1),a=this.pages.length-i.length,u=this._mergePages(i,a);u.version++;for(let l=n.length-1;l>=0;l--)this._deletePage(n[l]);this.pages.push(u),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(u.canvas)}let t=new mn(this._document,this._textureSize);return this._pages.push(t),this._activePages.push(t),this._onAddTextureAtlasCanvas.fire(t.canvas),t}_mergePages(t,r){let s=t[0].canvas.width*2,o=new mn(this._document,s,t);for(let[i,n]of t.entries()){let a=i*n.canvas.width%s,u=Math.floor(i/2)*n.canvas.height;o.ctx.drawImage(n.canvas,a,u);for(let _ of n.glyphs)_.texturePage=r,_.sizeClipSpace.x=_.size.x/s,_.sizeClipSpace.y=_.size.y/s,_.texturePosition.x+=a,_.texturePosition.y+=u,_.texturePositionClipSpace.x=_.texturePosition.x/s,_.texturePositionClipSpace.y=_.texturePosition.y/s;this._onRemoveTextureAtlasCanvas.fire(n.canvas);let l=this._activePages.indexOf(n);l!==-1&&this._activePages.splice(l,1)}return o}_deletePage(t){this._pages.splice(t,1);for(let r=t;r<this._pages.length;r++){let s=this._pages[r];for(let o of s.glyphs)o.texturePage--;s.version++}}getRasterizedGlyphCombinedChar(t,r,s,o,i,n){return this._getFromCacheMap(this._cacheMapCombined,t,r,s,o,i,n)}getRasterizedGlyph(t,r,s,o,i,n){return this._getFromCacheMap(this._cacheMap,t,r,s,o,i,n)}_getFromCacheMap(t,r,s,o,i,n,a){return os=t.get(r,s,o,i),os||(os=this._drawToCache(r,s,o,i,n,a),t.set(r,s,o,i,os)),os}_getColorFromAnsiIndex(t){if(t>=this._config.colors.ansi.length)throw new Error("No color found for idx "+t);return this._config.colors.ansi[t]}_getBackgroundColor(t,r,s,o){if(this._config.allowTransparency)return ct;let i;switch(t){case 16777216:case 33554432:i=this._getColorFromAnsiIndex(r);break;case 50331648:let n=Ar.toColorRGB(r);i=Ye.toColor(n[0],n[1],n[2]);break;default:s?i=Mr.opaque(this._config.colors.foreground):i=this._config.colors.background;break}return this._config.allowTransparency||(i=Mr.opaque(i)),i}_getForegroundColor(t,r,s,o,i,n,a,u,l,_){let m=this._getMinimumContrastColor(t,r,s,o,i,n,a,l,u,_);if(m)return m;let y;switch(i){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&l&&n<8&&(n+=8),y=this._getColorFromAnsiIndex(n);break;case 50331648:let p=Ar.toColorRGB(n);y=Ye.toColor(p[0],p[1],p[2]);break;default:a?y=this._config.colors.background:y=this._config.colors.foreground}return this._config.allowTransparency&&(y=Mr.opaque(y)),u&&(y=Mr.multiplyOpacity(y,Du)),y}_resolveBackgroundRgba(t,r,s){switch(t){case 16777216:case 33554432:return this._getColorFromAnsiIndex(r).rgba;case 50331648:return r<<8;default:return s?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(t,r,s,o){switch(t){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&o&&r<8&&(r+=8),this._getColorFromAnsiIndex(r).rgba;case 50331648:return r<<8;default:return s?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(t,r,s,o,i,n,a,u,l,_){if(this._config.minimumContrastRatio===1||_)return;let m=this._getContrastCache(l),y=m.getColor(t,o);if(y!==void 0)return y||void 0;let p=this._resolveBackgroundRgba(r,s,a),c=this._resolveForegroundRgba(i,n,a,u),d=er.ensureContrastRatio(p,c,this._config.minimumContrastRatio/(l?2:1));if(!d){m.setColor(t,o,null);return}let h=Ye.toColor(d>>24&255,d>>16&255,d>>8&255);return m.setColor(t,o,h),h}_getContrastCache(t){return t?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(t,r,s,o,i,n){let a=typeof t=="number"?String.fromCharCode(t):t;n&&this._tmpCanvas.parentElement!==n&&(this._tmpCanvas.style.display="none",n.append(this._tmpCanvas));let u=Math.min(this._config.deviceCellWidth*Math.max(a.length,2)+ns*2,this._config.deviceMaxTextureSize);this._tmpCanvas.width<u&&(this._tmpCanvas.width=u);let l=Math.min(this._config.deviceCellHeight+ns*4,this._textureSize);if(this._tmpCanvas.height<l&&(this._tmpCanvas.height=l),this._tmpCtx.save(),this._workAttributeData.fg=s,this._workAttributeData.bg=r,this._workAttributeData.extended.ext=o,!!this._workAttributeData.isInvisible())return Fa;let _=!!this._workAttributeData.isBold(),m=!!this._workAttributeData.isInverse(),y=!!this._workAttributeData.isDim(),p=!!this._workAttributeData.isItalic(),c=!!this._workAttributeData.isUnderline(),d=!!this._workAttributeData.isStrikethrough(),h=!!this._workAttributeData.isOverline(),f=this._workAttributeData.getFgColor(),g=this._workAttributeData.getFgColorMode(),C=this._workAttributeData.getBgColor(),v=this._workAttributeData.getBgColorMode();if(m){let R=f;f=C,C=R;let z=g;g=v,v=z}let x=this._getBackgroundColor(v,C,m,y);this._tmpCtx.globalCompositeOperation="copy",this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.globalCompositeOperation="source-over";let b=_?this._config.fontWeightBold:this._config.fontWeight,E=p?"italic":"";this._tmpCtx.font=`${E} ${b} ${this._config.fontSize*this._config.devicePixelRatio}px ${this._config.fontFamily}`,this._tmpCtx.textBaseline=Cl;let O=a.length===1&&$n(a.charCodeAt(0)),B=a.length===1&&xu(a.charCodeAt(0)),N=this._getForegroundColor(r,v,C,s,g,f,m,y,_,Sl(a.charCodeAt(0)));this._tmpCtx.fillStyle=N.css;let A=B?0:ns*2,K=!1;this._config.customGlyphs!==!1&&(K=Iu(this._tmpCtx,a,A,A,this._config.deviceCellWidth,this._config.deviceCellHeight,this._config.fontSize,this._config.devicePixelRatio));let P=!O,D;if(typeof t=="number"?D=this._unicodeService.wcwidth(t):D=this._unicodeService.getStringCellWidth(t),c){this._tmpCtx.save();let R=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),z=R%2===1?.5:0;if(this._tmpCtx.lineWidth=R,this._workAttributeData.isUnderlineColorDefault())this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle;else if(this._workAttributeData.isUnderlineColorRGB())P=!1,this._tmpCtx.strokeStyle=`rgb(${Ar.toColorRGB(this._workAttributeData.getUnderlineColor()).join(",")})`;else{P=!1;let F=this._workAttributeData.getUnderlineColor();this._config.drawBoldTextInBrightColors&&this._workAttributeData.isBold()&&F<8&&(F+=8),this._tmpCtx.strokeStyle=this._getColorFromAnsiIndex(F).css}this._tmpCtx.beginPath();let V=A,X=Math.ceil(A+this._config.deviceCharHeight)-z-(i?R*2:0),Z=X+R,W=X+R*2,L=this._workAttributeData.getUnderlineVariantOffset();for(let F=0;F<D;F++){this._tmpCtx.save();let $=V+F*this._config.deviceCellWidth,j=V+(F+1)*this._config.deviceCellWidth,Y=$+this._config.deviceCellWidth/2;switch(this._workAttributeData.extended.underlineStyle){case 2:this._tmpCtx.moveTo($,X),this._tmpCtx.lineTo(j,X),this._tmpCtx.moveTo($,W),this._tmpCtx.lineTo(j,W);break;case 3:let ee=R<=1?W:Math.ceil(A+this._config.deviceCharHeight-R/2)-z,fe=R<=1?X:Math.ceil(A+this._config.deviceCharHeight+R/2)-z,ce=new Path2D;ce.rect($,X,this._config.deviceCellWidth,W-X),this._tmpCtx.clip(ce),this._tmpCtx.moveTo($-this._config.deviceCellWidth/2,Z),this._tmpCtx.bezierCurveTo($-this._config.deviceCellWidth/2,fe,$,fe,$,Z),this._tmpCtx.bezierCurveTo($,ee,Y,ee,Y,Z),this._tmpCtx.bezierCurveTo(Y,fe,j,fe,j,Z),this._tmpCtx.bezierCurveTo(j,ee,j+this._config.deviceCellWidth/2,ee,j+this._config.deviceCellWidth/2,Z);break;case 4:let se=L===0?0:L>=R?R*2-L:R-L;L>=R||se===0?(this._tmpCtx.setLineDash([Math.round(R),Math.round(R)]),this._tmpCtx.moveTo($+se,X),this._tmpCtx.lineTo(j,X)):(this._tmpCtx.setLineDash([Math.round(R),Math.round(R)]),this._tmpCtx.moveTo($,X),this._tmpCtx.lineTo($+se,X),this._tmpCtx.moveTo($+se+R,X),this._tmpCtx.lineTo(j,X)),L=Mu(j-$,R,L);break;case 5:let G=.6,te=.3,ve=j-$,le=Math.floor(G*ve),be=Math.floor(te*ve),Ae=ve-le-be;this._tmpCtx.setLineDash([le,be,Ae]),this._tmpCtx.moveTo($,X),this._tmpCtx.lineTo(j,X);break;default:this._tmpCtx.moveTo($,X),this._tmpCtx.lineTo(j,X);break}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!K&&this._config.fontSize>=12&&!this._config.allowTransparency&&a!==" "){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";let F=this._tmpCtx.measureText(a);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in F&&F.actualBoundingBoxDescent>0){this._tmpCtx.save();let $=new Path2D;$.rect(V,X-Math.ceil(R/2),this._config.deviceCellWidth*D,W-X+Math.ceil(R/2)),this._tmpCtx.clip($),this._tmpCtx.lineWidth=this._config.devicePixelRatio*3,this._tmpCtx.strokeStyle=x.css,this._tmpCtx.strokeText(a,A,A+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(h){let R=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),z=R%2===1?.5:0;this._tmpCtx.lineWidth=R,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(A,A+z),this._tmpCtx.lineTo(A+this._config.deviceCharWidth*D,A+z),this._tmpCtx.stroke()}if(K||this._tmpCtx.fillText(a,A,A+this._config.deviceCharHeight),a==="_"&&!this._config.allowTransparency){let R=gn(this._tmpCtx.getImageData(A,A,this._config.deviceCellWidth,this._config.deviceCellHeight),x,N,P);if(R)for(let z=1;z<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(a,A,A+this._config.deviceCharHeight-z),R=gn(this._tmpCtx.getImageData(A,A,this._config.deviceCellWidth,this._config.deviceCellHeight),x,N,P),!!R);z++);}if(d){let R=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),z=this._tmpCtx.lineWidth%2===1?.5:0;this._tmpCtx.lineWidth=R,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(A,A+Math.floor(this._config.deviceCharHeight/2)-z),this._tmpCtx.lineTo(A+this._config.deviceCharWidth*D,A+Math.floor(this._config.deviceCharHeight/2)-z),this._tmpCtx.stroke()}this._tmpCtx.restore();let H=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height),I;if(this._config.allowTransparency?I=rf(H):I=gn(H,x,N,P),I)return Fa;let S=this._findGlyphBoundingBox(H,this._workBoundingBox,u,B,K,A),T,k;for(;;){if(this._activePages.length===0){let R=this._createNewPage();T=R,k=R.currentRow,k.height=S.size.y;break}T=this._activePages[this._activePages.length-1],k=T.currentRow;for(let R of this._activePages)S.size.y<=R.currentRow.height&&(T=R,k=R.currentRow);for(let R=this._activePages.length-1;R>=0;R--)for(let z of this._activePages[R].fixedRows)z.height<=k.height&&S.size.y<=z.height&&(T=this._activePages[R],k=z);if(S.size.x>this._textureSize){this._overflowSizePage||(this._overflowSizePage=new mn(this._document,this._config.deviceMaxTextureSize),this.pages.push(this._overflowSizePage),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(this._overflowSizePage.canvas)),T=this._overflowSizePage,k=this._overflowSizePage.currentRow,k.x+S.size.x>=T.canvas.width&&(k.x=0,k.y+=k.height,k.height=0);break}if(k.y+S.size.y>=T.canvas.height||k.height>S.size.y+2){let R=!1;if(T.currentRow.y+T.currentRow.height+S.size.y>=T.canvas.height){let z;for(let V of this._activePages)if(V.currentRow.y+V.currentRow.height+S.size.y<V.canvas.height){z=V;break}if(z)T=z;else if(Rr.maxAtlasPages&&this._pages.length>=Rr.maxAtlasPages&&k.y+S.size.y<=T.canvas.height&&k.height>=S.size.y&&k.x+S.size.x<=T.canvas.width)R=!0;else{let V=this._createNewPage();T=V,k=V.currentRow,k.height=S.size.y,R=!0}}R||(T.currentRow.height>0&&T.fixedRows.push(T.currentRow),k={x:0,y:T.currentRow.y+T.currentRow.height,height:S.size.y},T.fixedRows.push(k),T.currentRow={x:0,y:k.y+k.height,height:0})}if(k.x+S.size.x<=T.canvas.width)break;k===T.currentRow?(k.x=0,k.y+=k.height,k.height=0):T.fixedRows.splice(T.fixedRows.indexOf(k),1)}return S.texturePage=this._pages.indexOf(T),S.texturePosition.x=k.x,S.texturePosition.y=k.y,S.texturePositionClipSpace.x=k.x/T.canvas.width,S.texturePositionClipSpace.y=k.y/T.canvas.height,S.sizeClipSpace.x/=T.canvas.width,S.sizeClipSpace.y/=T.canvas.height,k.height=Math.max(k.height,S.size.y),k.x+=S.size.x,T.ctx.putImageData(H,S.texturePosition.x-this._workBoundingBox.left,S.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,S.size.x,S.size.y),T.addGlyph(S),T.version++,S}_findGlyphBoundingBox(t,r,s,o,i,n){r.top=0;let a=o?this._config.deviceCellHeight:this._tmpCanvas.height,u=o?this._config.deviceCellWidth:s,l=!1;for(let _=0;_<a;_++){for(let m=0;m<u;m++){let y=_*this._tmpCanvas.width*4+m*4+3;if(t.data[y]!==0){r.top=_,l=!0;break}}if(l)break}r.left=0,l=!1;for(let _=0;_<n+u;_++){for(let m=0;m<a;m++){let y=m*this._tmpCanvas.width*4+_*4+3;if(t.data[y]!==0){r.left=_,l=!0;break}}if(l)break}r.right=u,l=!1;for(let _=n+u-1;_>=n;_--){for(let m=0;m<a;m++){let y=m*this._tmpCanvas.width*4+_*4+3;if(t.data[y]!==0){r.right=_,l=!0;break}}if(l)break}r.bottom=a,l=!1;for(let _=a-1;_>=0;_--){for(let m=0;m<u;m++){let y=_*this._tmpCanvas.width*4+m*4+3;if(t.data[y]!==0){r.bottom=_,l=!0;break}}if(l)break}return{texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},size:{x:r.right-r.left+1,y:r.bottom-r.top+1},sizeClipSpace:{x:r.right-r.left+1,y:r.bottom-r.top+1},offset:{x:-r.left+n+(o||i?Math.floor((this._config.deviceCellWidth-this._config.deviceCharWidth)/2):0),y:-r.top+n+(o||i?this._config.lineHeight===1?0:Math.round((this._config.deviceCellHeight-this._config.deviceCharHeight)/2):0)}}}},mn=class{constructor(e,t,r){if(this._usedPixels=0,this._glyphs=[],this.version=0,this.currentRow={x:0,y:0,height:0},this.fixedRows=[],r)for(let s of r)this._glyphs.push(...s.glyphs),this._usedPixels+=s._usedPixels;this.canvas=Bl(e,t,t),this.ctx=He(this.canvas.getContext("2d",{alpha:!0}))}get percentageUsed(){return this._usedPixels/(this.canvas.width*this.canvas.height)}get glyphs(){return this._glyphs}addGlyph(e){this._glyphs.push(e),this._usedPixels+=e.size.x*e.size.y}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.currentRow.x=0,this.currentRow.y=0,this.currentRow.height=0,this.fixedRows.length=0,this.version++}};function gn(e,t,r,s){let o=t.rgba>>>24,i=t.rgba>>>16&255,n=t.rgba>>>8&255,a=r.rgba>>>24,u=r.rgba>>>16&255,l=r.rgba>>>8&255,_=Math.floor((Math.abs(o-a)+Math.abs(i-u)+Math.abs(n-l))/12),m=!0;for(let y=0;y<e.data.length;y+=4)e.data[y]===o&&e.data[y+1]===i&&e.data[y+2]===n||s&&Math.abs(e.data[y]-o)+Math.abs(e.data[y+1]-i)+Math.abs(e.data[y+2]-n)<_?e.data[y+3]=0:m=!1;return m}function rf(e){for(let t=0;t<e.data.length;t+=4)if(e.data[t+3]>0)return!1;return!0}function Bl(e,t,r){let s=e.createElement("canvas");return s.width=t,s.height=r,s}function sf(e,t,r,s,o,i,n,a){let u={foreground:i.foreground,background:i.background,cursor:ct,cursorAccent:ct,selectionForeground:ct,selectionBackgroundTransparent:ct,selectionBackgroundOpaque:ct,selectionInactiveBackgroundTransparent:ct,selectionInactiveBackgroundOpaque:ct,overviewRulerBorder:ct,scrollbarSliderBackground:ct,scrollbarSliderHoverBackground:ct,scrollbarSliderActiveBackground:ct,ansi:i.ansi.slice(),contrastCache:i.contrastCache,halfContrastCache:i.halfContrastCache};return{customGlyphs:o.customGlyphs,devicePixelRatio:n,deviceMaxTextureSize:a,letterSpacing:o.letterSpacing,lineHeight:o.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:r,deviceCharHeight:s,fontFamily:o.fontFamily,fontSize:o.fontSize,fontWeight:o.fontWeight,fontWeightBold:o.fontWeightBold,allowTransparency:o.allowTransparency,drawBoldTextInBrightColors:o.drawBoldTextInBrightColors,minimumContrastRatio:o.minimumContrastRatio,colors:u}}function Wa(e,t){for(let r=0;r<e.colors.ansi.length;r++)if(e.colors.ansi[r].rgba!==t.colors.ansi[r].rgba)return!1;return e.devicePixelRatio===t.devicePixelRatio&&e.customGlyphs===t.customGlyphs&&e.lineHeight===t.lineHeight&&e.letterSpacing===t.letterSpacing&&e.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.deviceCharWidth===t.deviceCharWidth&&e.deviceCharHeight===t.deviceCharHeight&&e.drawBoldTextInBrightColors===t.drawBoldTextInBrightColors&&e.minimumContrastRatio===t.minimumContrastRatio&&e.colors.foreground.rgba===t.colors.foreground.rgba&&e.colors.background.rgba===t.colors.background.rgba}function nf(e){return(e&50331648)===16777216||(e&50331648)===33554432}var dt=[];function Ol(e,t,r,s,o,i,n,a,u){let l=sf(s,o,i,n,t,r,a,u);for(let y=0;y<dt.length;y++){let p=dt[y],c=p.ownedBy.indexOf(e);if(c>=0){if(Wa(p.config,l))return p.atlas;p.ownedBy.length===1?(p.atlas.dispose(),dt.splice(y,1)):p.ownedBy.splice(c,1);break}}for(let y=0;y<dt.length;y++){let p=dt[y];if(Wa(p.config,l))return p.ownedBy.push(e),p.atlas}let _=e._core,m={atlas:new Zt(document,l,_.unicodeService),config:l,ownedBy:[e]};return dt.push(m),m.atlas}function Ua(e){for(let t=0;t<dt.length;t++){let r=dt[t].ownedBy.indexOf(e);if(r!==-1){dt[t].ownedBy.length===1?(dt[t].atlas.dispose(),dt.splice(t,1)):dt[t].ownedBy.splice(r,1);break}}}var Zs=600,of=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})))}_restartInterval(e=Zs){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout(()=>{if(this._animationTimeRestarted){let t=Zs-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,t>0){this._restartInterval(t);return}}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0}),this._blinkInterval=this._coreBrowserService.window.setInterval(()=>{if(this._animationTimeRestarted){let t=Zs-(Date.now()-this._animationTimeRestarted);this._animationTimeRestarted=void 0,this._restartInterval(t);return}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})},Zs)},e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}};function za(e,t,r){let s=new t.ResizeObserver(o=>{let i=o.find(u=>u.target===e);if(!i)return;if(!("devicePixelContentBoxSize"in i)){s?.disconnect(),s=void 0;return}let n=i.devicePixelContentBoxSize[0].inlineSize,a=i.devicePixelContentBoxSize[0].blockSize;n>0&&a>0&&r(n,a)});try{s.observe(e,{box:["device-pixel-content-box"]})}catch{s.disconnect(),s=void 0}return $e(()=>s?.disconnect())}function af(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}var ja=class Il extends Ar{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Tl,this.combinedData=""}static fromCharData(t){let r=new Il;return r.setFromCharData(t),r}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?af(this.content&2097151):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(t){this.fg=t[0],this.bg=0;let r=!1;if(t[1].length>2)r=!0;else if(t[1].length===2){let s=t[1].charCodeAt(0);if(55296<=s&&s<=56319){let o=t[1].charCodeAt(1);56320<=o&&o<=57343?this.content=(s-55296)*1024+o-56320+65536|t[2]<<22:r=!0}else r=!0}else this.content=t[1].charCodeAt(0)|t[2]<<22;r&&(this.combinedData=t[1],this.content=2097152|t[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Nl=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]);function Hl(e,t,r){let s=He(e.createProgram());if(e.attachShader(s,He($a(e,e.VERTEX_SHADER,t))),e.attachShader(s,He($a(e,e.FRAGMENT_SHADER,r))),e.linkProgram(s),e.getProgramParameter(s,e.LINK_STATUS))return s;console.error(e.getProgramInfoLog(s)),e.deleteProgram(s)}function $a(e,t,r){let s=He(e.createShader(t));if(e.shaderSource(s,r),e.compileShader(s),e.getShaderParameter(s,e.COMPILE_STATUS))return s;console.error(e.getShaderInfoLog(s)),e.deleteShader(s)}function lf(e,t){let r=Math.min(e.length*2,t),s=new Float32Array(r);for(let o=0;o<e.length;o++)s[o]=e[o];return s}var cf=class{constructor(e){this.texture=e,this.version=-1}},hf=`#version 300 es
62
62
  layout (location = 0) in vec2 a_unitquad;
63
63
  layout (location = 1) in vec2 a_cellpos;
64
64
  layout (location = 2) in vec2 a_offset;
@@ -78,7 +78,7 @@ void main() {
78
78
  gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);
79
79
  v_texpage = int(a_texpage);
80
80
  v_texcoord = a_texcoord + a_unitquad * a_texsize;
81
- }`;function Mu(e){let t="";for(let r=1;r<e;r++)t+=` else if (v_texpage == ${r}) { outColor = texture(u_texture[${r}], v_texcoord); }`;return`#version 300 es
81
+ }`;function df(e){let t="";for(let r=1;r<e;r++)t+=` else if (v_texpage == ${r}) { outColor = texture(u_texture[${r}], v_texcoord); }`;return`#version 300 es
82
82
  precision lowp float;
83
83
 
84
84
  in vec2 v_texcoord;
@@ -92,7 +92,7 @@ void main() {
92
92
  if (v_texpage == 0) {
93
93
  outColor = texture(u_texture[0], v_texcoord);
94
94
  } ${t}
95
- }`}var qt=11,fr=qt*Float32Array.BYTES_PER_ELEMENT,Au=2,Pe=0,Te,Js=0,Kr=0,Du=class extends et{constructor(e,t,r,s){super(),this._terminal=e,this._gl=t,this._dimensions=r,this._optionsService=s,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};let a=this._gl;$t.maxAtlasPages===void 0&&($t.maxAtlasPages=Math.min(32,Oe(a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS))),$t.maxTextureSize=Oe(a.getParameter(a.MAX_TEXTURE_SIZE))),this._program=Oe(ul(a,Ru,Mu($t.maxAtlasPages))),this._register($e(()=>a.deleteProgram(this._program))),this._projectionLocation=Oe(a.getUniformLocation(this._program,"u_projection")),this._resolutionLocation=Oe(a.getUniformLocation(this._program,"u_resolution")),this._textureLocation=Oe(a.getUniformLocation(this._program,"u_texture")),this._vertexArrayObject=a.createVertexArray(),a.bindVertexArray(this._vertexArrayObject);let i=new Float32Array([0,0,1,0,0,1,1,1]),n=a.createBuffer();this._register($e(()=>a.deleteBuffer(n))),a.bindBuffer(a.ARRAY_BUFFER,n),a.bufferData(a.ARRAY_BUFFER,i,a.STATIC_DRAW),a.enableVertexAttribArray(0),a.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);let o=new Uint8Array([0,1,2,3]),u=a.createBuffer();this._register($e(()=>a.deleteBuffer(u))),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,u),a.bufferData(a.ELEMENT_ARRAY_BUFFER,o,a.STATIC_DRAW),this._attributesBuffer=Oe(a.createBuffer()),this._register($e(()=>a.deleteBuffer(this._attributesBuffer))),a.bindBuffer(a.ARRAY_BUFFER,this._attributesBuffer),a.enableVertexAttribArray(2),a.vertexAttribPointer(2,2,a.FLOAT,!1,fr,0),a.vertexAttribDivisor(2,1),a.enableVertexAttribArray(3),a.vertexAttribPointer(3,2,a.FLOAT,!1,fr,2*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(3,1),a.enableVertexAttribArray(4),a.vertexAttribPointer(4,1,a.FLOAT,!1,fr,4*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(4,1),a.enableVertexAttribArray(5),a.vertexAttribPointer(5,2,a.FLOAT,!1,fr,5*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(5,1),a.enableVertexAttribArray(6),a.vertexAttribPointer(6,2,a.FLOAT,!1,fr,7*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(6,1),a.enableVertexAttribArray(1),a.vertexAttribPointer(1,2,a.FLOAT,!1,fr,9*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(1,1),a.useProgram(this._program);let l=new Int32Array($t.maxAtlasPages);for(let _=0;_<$t.maxAtlasPages;_++)l[_]=_;a.uniform1iv(this._textureLocation,l),a.uniformMatrix4fv(this._projectionLocation,!1,dl),this._atlasTextures=[];for(let _=0;_<$t.maxAtlasPages;_++){let m=new Tu(Oe(a.createTexture()));this._register($e(()=>a.deleteTexture(m.texture))),a.activeTexture(a.TEXTURE0+_),a.bindTexture(a.TEXTURE_2D,m.texture),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,1,1,0,a.RGBA,a.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[_]=m}a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return this._atlas?this._atlas.beginFrame():!0}updateCell(e,t,r,s,a,i,n,o,u){this._updateCell(this._vertices.attributes,e,t,r,s,a,i,n,o,u)}_updateCell(e,t,r,s,a,i,n,o,u,l){if(Pe=(r*this._terminal.cols+t)*qt,s===0||s===void 0){e.fill(0,Pe,Pe+qt-1-Au);return}this._atlas&&(o&&o.length>1?Te=this._atlas.getRasterizedGlyphCombinedChar(o,a,i,n,!1,this._terminal.element):Te=this._atlas.getRasterizedGlyph(s,a,i,n,!1,this._terminal.element),Js=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),a!==l&&Te.offset.x>Js?(Kr=Te.offset.x-Js,e[Pe]=-(Te.offset.x-Kr)+this._dimensions.device.char.left,e[Pe+1]=-Te.offset.y+this._dimensions.device.char.top,e[Pe+2]=(Te.size.x-Kr)/this._dimensions.device.canvas.width,e[Pe+3]=Te.size.y/this._dimensions.device.canvas.height,e[Pe+4]=Te.texturePage,e[Pe+5]=Te.texturePositionClipSpace.x+Kr/this._atlas.pages[Te.texturePage].canvas.width,e[Pe+6]=Te.texturePositionClipSpace.y,e[Pe+7]=Te.sizeClipSpace.x-Kr/this._atlas.pages[Te.texturePage].canvas.width,e[Pe+8]=Te.sizeClipSpace.y):(e[Pe]=-Te.offset.x+this._dimensions.device.char.left,e[Pe+1]=-Te.offset.y+this._dimensions.device.char.top,e[Pe+2]=Te.size.x/this._dimensions.device.canvas.width,e[Pe+3]=Te.size.y/this._dimensions.device.canvas.height,e[Pe+4]=Te.texturePage,e[Pe+5]=Te.texturePositionClipSpace.x,e[Pe+6]=Te.texturePositionClipSpace.y,e[Pe+7]=Te.sizeClipSpace.x,e[Pe+8]=Te.sizeClipSpace.y),this._optionsService.rawOptions.rescaleOverlappingGlyphs&&Vd(s,u,Te.size.x,this._dimensions.device.cell.width)&&(e[Pe+2]=(this._dimensions.device.cell.width-1)/this._dimensions.device.canvas.width))}clear(){let e=this._terminal,t=e.cols*e.rows*qt;this._vertices.count!==t?this._vertices.attributes=new Float32Array(t):this._vertices.attributes.fill(0);let r=0;for(;r<this._vertices.attributesBuffers.length;r++)this._vertices.count!==t?this._vertices.attributesBuffers[r]=new Float32Array(t):this._vertices.attributesBuffers[r].fill(0);this._vertices.count=t,r=0;for(let s=0;s<e.rows;s++)for(let a=0;a<e.cols;a++)this._vertices.attributes[r+9]=a/e.cols,this._vertices.attributes[r+10]=s/e.rows,r+=qt}handleResize(){let e=this._gl;e.useProgram(this._program),e.viewport(0,0,e.canvas.width,e.canvas.height),e.uniform2f(this._resolutionLocation,e.canvas.width,e.canvas.height),this.clear()}render(e){if(!this._atlas)return;let t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),this._activeBuffer=(this._activeBuffer+1)%2;let r=this._vertices.attributesBuffers[this._activeBuffer],s=0;for(let a=0;a<e.lineLengths.length;a++){let i=a*this._terminal.cols*qt,n=this._vertices.attributes.subarray(i,i+e.lineLengths[a]*qt);r.set(n,s),s+=n.length}t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,r.subarray(0,s),t.STREAM_DRAW);for(let a=0;a<this._atlas.pages.length;a++)this._atlas.pages[a].version!==this._atlasTextures[a].version&&this._bindAtlasPageTexture(t,this._atlas,a);t.drawElementsInstanced(t.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,s/qt)}setAtlas(e){this._atlas=e;for(let t of this._atlasTextures)t.version=-1}_bindAtlasPageTexture(e,t,r){e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,this._atlasTextures[r].texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.pages[r].canvas),e.generateMipmap(e.TEXTURE_2D),this._atlasTextures[r].version=t.pages[r].version}setDimensions(e){this._dimensions=e}},Pu=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,r,s=!1){if(this.selectionStart=t,this.selectionEnd=r,!t||!r||t[0]===r[0]&&t[1]===r[1]){this.clear();return}let a=e.buffers.active.ydisp,i=t[1]-a,n=r[1]-a,o=Math.max(i,0),u=Math.min(n,e.rows-1);if(o>=e.rows||u<0){this.clear();return}this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=i,this.viewportEndRow=n,this.viewportCappedStartRow=o,this.viewportCappedEndRow=u,this.startCol=t[0],this.endCol=r[0]}isCellSelected(e,t,r){return this.hasSelection?(r-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&r>=this.viewportCappedStartRow&&t<this.endCol&&r<=this.viewportCappedEndRow:t<this.startCol&&r>=this.viewportCappedStartRow&&t>=this.endCol&&r<=this.viewportCappedEndRow:r>this.viewportStartRow&&r<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&r===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&r===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&r===this.viewportStartRow&&t>=this.startCol):!1}};function Bu(){return new Pu}var Gi=4,Ui=1,ji=2,Xs=3,Ou=2147483648,Iu=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=Bu()}resize(e,t){let r=e*t*Gi;r!==this.cells.length&&(this.cells=new Uint32Array(r),this.lineLengths=new Uint32Array(t))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}},Nu=`#version 300 es
95
+ }`}var Qt=11,Tr=Qt*Float32Array.BYTES_PER_ELEMENT,uf=2,Oe=0,Re,vn=0,as=0,ff=class extends st{constructor(e,t,r,s){super(),this._terminal=e,this._gl=t,this._dimensions=r,this._optionsService=s,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};let o=this._gl;Zt.maxAtlasPages===void 0&&(Zt.maxAtlasPages=Math.min(32,He(o.getParameter(o.MAX_TEXTURE_IMAGE_UNITS))),Zt.maxTextureSize=He(o.getParameter(o.MAX_TEXTURE_SIZE))),this._program=He(Hl(o,hf,df(Zt.maxAtlasPages))),this._register($e(()=>o.deleteProgram(this._program))),this._projectionLocation=He(o.getUniformLocation(this._program,"u_projection")),this._resolutionLocation=He(o.getUniformLocation(this._program,"u_resolution")),this._textureLocation=He(o.getUniformLocation(this._program,"u_texture")),this._vertexArrayObject=o.createVertexArray(),o.bindVertexArray(this._vertexArrayObject);let i=new Float32Array([0,0,1,0,0,1,1,1]),n=o.createBuffer();this._register($e(()=>o.deleteBuffer(n))),o.bindBuffer(o.ARRAY_BUFFER,n),o.bufferData(o.ARRAY_BUFFER,i,o.STATIC_DRAW),o.enableVertexAttribArray(0),o.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);let a=new Uint8Array([0,1,2,3]),u=o.createBuffer();this._register($e(()=>o.deleteBuffer(u))),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,u),o.bufferData(o.ELEMENT_ARRAY_BUFFER,a,o.STATIC_DRAW),this._attributesBuffer=He(o.createBuffer()),this._register($e(()=>o.deleteBuffer(this._attributesBuffer))),o.bindBuffer(o.ARRAY_BUFFER,this._attributesBuffer),o.enableVertexAttribArray(2),o.vertexAttribPointer(2,2,o.FLOAT,!1,Tr,0),o.vertexAttribDivisor(2,1),o.enableVertexAttribArray(3),o.vertexAttribPointer(3,2,o.FLOAT,!1,Tr,2*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(3,1),o.enableVertexAttribArray(4),o.vertexAttribPointer(4,1,o.FLOAT,!1,Tr,4*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(4,1),o.enableVertexAttribArray(5),o.vertexAttribPointer(5,2,o.FLOAT,!1,Tr,5*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(5,1),o.enableVertexAttribArray(6),o.vertexAttribPointer(6,2,o.FLOAT,!1,Tr,7*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(6,1),o.enableVertexAttribArray(1),o.vertexAttribPointer(1,2,o.FLOAT,!1,Tr,9*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(1,1),o.useProgram(this._program);let l=new Int32Array(Zt.maxAtlasPages);for(let _=0;_<Zt.maxAtlasPages;_++)l[_]=_;o.uniform1iv(this._textureLocation,l),o.uniformMatrix4fv(this._projectionLocation,!1,Nl),this._atlasTextures=[];for(let _=0;_<Zt.maxAtlasPages;_++){let m=new cf(He(o.createTexture()));this._register($e(()=>o.deleteTexture(m.texture))),o.activeTexture(o.TEXTURE0+_),o.bindTexture(o.TEXTURE_2D,m.texture),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,1,1,0,o.RGBA,o.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[_]=m}o.enable(o.BLEND),o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return this._atlas?this._atlas.beginFrame():!0}updateCell(e,t,r,s,o,i,n,a,u){this._updateCell(this._vertices.attributes,e,t,r,s,o,i,n,a,u)}_updateCell(e,t,r,s,o,i,n,a,u,l){if(Oe=(r*this._terminal.cols+t)*Qt,s===0||s===void 0){e.fill(0,Oe,Oe+Qt-1-uf);return}this._atlas&&(a&&a.length>1?Re=this._atlas.getRasterizedGlyphCombinedChar(a,o,i,n,!1,this._terminal.element):Re=this._atlas.getRasterizedGlyph(s,o,i,n,!1,this._terminal.element),vn=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),o!==l&&Re.offset.x>vn?(as=Re.offset.x-vn,e[Oe]=-(Re.offset.x-as)+this._dimensions.device.char.left,e[Oe+1]=-Re.offset.y+this._dimensions.device.char.top,e[Oe+2]=(Re.size.x-as)/this._dimensions.device.canvas.width,e[Oe+3]=Re.size.y/this._dimensions.device.canvas.height,e[Oe+4]=Re.texturePage,e[Oe+5]=Re.texturePositionClipSpace.x+as/this._atlas.pages[Re.texturePage].canvas.width,e[Oe+6]=Re.texturePositionClipSpace.y,e[Oe+7]=Re.sizeClipSpace.x-as/this._atlas.pages[Re.texturePage].canvas.width,e[Oe+8]=Re.sizeClipSpace.y):(e[Oe]=-Re.offset.x+this._dimensions.device.char.left,e[Oe+1]=-Re.offset.y+this._dimensions.device.char.top,e[Oe+2]=Re.size.x/this._dimensions.device.canvas.width,e[Oe+3]=Re.size.y/this._dimensions.device.canvas.height,e[Oe+4]=Re.texturePage,e[Oe+5]=Re.texturePositionClipSpace.x,e[Oe+6]=Re.texturePositionClipSpace.y,e[Oe+7]=Re.sizeClipSpace.x,e[Oe+8]=Re.sizeClipSpace.y),this._optionsService.rawOptions.rescaleOverlappingGlyphs&&Tu(s,u,Re.size.x,this._dimensions.device.cell.width)&&(e[Oe+2]=(this._dimensions.device.cell.width-1)/this._dimensions.device.canvas.width))}clear(){let e=this._terminal,t=e.cols*e.rows*Qt;this._vertices.count!==t?this._vertices.attributes=new Float32Array(t):this._vertices.attributes.fill(0);let r=0;for(;r<this._vertices.attributesBuffers.length;r++)this._vertices.count!==t?this._vertices.attributesBuffers[r]=new Float32Array(t):this._vertices.attributesBuffers[r].fill(0);this._vertices.count=t,r=0;for(let s=0;s<e.rows;s++)for(let o=0;o<e.cols;o++)this._vertices.attributes[r+9]=o/e.cols,this._vertices.attributes[r+10]=s/e.rows,r+=Qt}handleResize(){let e=this._gl;e.useProgram(this._program),e.viewport(0,0,e.canvas.width,e.canvas.height),e.uniform2f(this._resolutionLocation,e.canvas.width,e.canvas.height),this.clear()}render(e){if(!this._atlas)return;let t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),this._activeBuffer=(this._activeBuffer+1)%2;let r=this._vertices.attributesBuffers[this._activeBuffer],s=0;for(let o=0;o<e.lineLengths.length;o++){let i=o*this._terminal.cols*Qt,n=this._vertices.attributes.subarray(i,i+e.lineLengths[o]*Qt);r.set(n,s),s+=n.length}t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,r.subarray(0,s),t.STREAM_DRAW);for(let o=0;o<this._atlas.pages.length;o++)this._atlas.pages[o].version!==this._atlasTextures[o].version&&this._bindAtlasPageTexture(t,this._atlas,o);t.drawElementsInstanced(t.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,s/Qt)}setAtlas(e){this._atlas=e;for(let t of this._atlasTextures)t.version=-1}_bindAtlasPageTexture(e,t,r){e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,this._atlasTextures[r].texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.pages[r].canvas),e.generateMipmap(e.TEXTURE_2D),this._atlasTextures[r].version=t.pages[r].version}setDimensions(e){this._dimensions=e}},pf=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,r,s=!1){if(this.selectionStart=t,this.selectionEnd=r,!t||!r||t[0]===r[0]&&t[1]===r[1]){this.clear();return}let o=e.buffers.active.ydisp,i=t[1]-o,n=r[1]-o,a=Math.max(i,0),u=Math.min(n,e.rows-1);if(a>=e.rows||u<0){this.clear();return}this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=i,this.viewportEndRow=n,this.viewportCappedStartRow=a,this.viewportCappedEndRow=u,this.startCol=t[0],this.endCol=r[0]}isCellSelected(e,t,r){return this.hasSelection?(r-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&r>=this.viewportCappedStartRow&&t<this.endCol&&r<=this.viewportCappedEndRow:t<this.startCol&&r>=this.viewportCappedStartRow&&t>=this.endCol&&r<=this.viewportCappedEndRow:r>this.viewportStartRow&&r<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&r===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&r===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&r===this.viewportStartRow&&t>=this.startCol):!1}};function _f(){return new pf}var ci=4,si=1,ii=2,bn=3,mf=2147483648,gf=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=_f()}resize(e,t){let r=e*t*ci;r!==this.cells.length&&(this.cells=new Uint32Array(r),this.lineLengths=new Uint32Array(t))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}},vf=`#version 300 es
96
96
  layout (location = 0) in vec2 a_position;
97
97
  layout (location = 1) in vec2 a_size;
98
98
  layout (location = 2) in vec4 a_color;
@@ -106,7 +106,7 @@ void main() {
106
106
  vec2 zeroToOne = a_position + (a_unitquad * a_size);
107
107
  gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);
108
108
  v_color = a_color;
109
- }`,Hu=`#version 300 es
109
+ }`,bf=`#version 300 es
110
110
  precision lowp float;
111
111
 
112
112
  in vec4 v_color;
@@ -115,7 +115,7 @@ out vec4 outColor;
115
115
 
116
116
  void main() {
117
117
  outColor = v_color;
118
- }`,Ot=8,Zs=Ot*Float32Array.BYTES_PER_ELEMENT,Fu=20*Ot,ba=class{constructor(){this.attributes=new Float32Array(Fu),this.count=0}},Pt=0,wa=0,ya=0,Sa=0,Ca=0,xa=0,ka=0,Wu=class extends et{constructor(e,t,r,s){super(),this._terminal=e,this._gl=t,this._dimensions=r,this._themeService=s,this._vertices=new ba,this._verticesCursor=new ba;let a=this._gl;this._program=Oe(ul(a,Nu,Hu)),this._register($e(()=>a.deleteProgram(this._program))),this._projectionLocation=Oe(a.getUniformLocation(this._program,"u_projection")),this._vertexArrayObject=a.createVertexArray(),a.bindVertexArray(this._vertexArrayObject);let i=new Float32Array([0,0,1,0,0,1,1,1]),n=a.createBuffer();this._register($e(()=>a.deleteBuffer(n))),a.bindBuffer(a.ARRAY_BUFFER,n),a.bufferData(a.ARRAY_BUFFER,i,a.STATIC_DRAW),a.enableVertexAttribArray(3),a.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);let o=new Uint8Array([0,1,2,3]),u=a.createBuffer();this._register($e(()=>a.deleteBuffer(u))),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,u),a.bufferData(a.ELEMENT_ARRAY_BUFFER,o,a.STATIC_DRAW),this._attributesBuffer=Oe(a.createBuffer()),this._register($e(()=>a.deleteBuffer(this._attributesBuffer))),a.bindBuffer(a.ARRAY_BUFFER,this._attributesBuffer),a.enableVertexAttribArray(0),a.vertexAttribPointer(0,2,a.FLOAT,!1,Zs,0),a.vertexAttribDivisor(0,1),a.enableVertexAttribArray(1),a.vertexAttribPointer(1,2,a.FLOAT,!1,Zs,2*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(1,1),a.enableVertexAttribArray(2),a.vertexAttribPointer(2,4,a.FLOAT,!1,Zs,4*Float32Array.BYTES_PER_ELEMENT),a.vertexAttribDivisor(2,1),this._updateCachedColors(s.colors),this._register(this._themeService.onChangeColors(l=>{this._updateCachedColors(l),this._updateViewportRectangle()}))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(e){let t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),t.uniformMatrix4fv(this._projectionLocation,!1,dl),t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,e.attributes,t.DYNAMIC_DRAW),t.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,e.count)}handleResize(){this._updateViewportRectangle()}setDimensions(e){this._dimensions=e}_updateCachedColors(e){this._bgFloat=this._colorToFloat32Array(e.background),this._cursorFloat=this._colorToFloat32Array(e.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(e){let t=this._terminal,r=this._vertices,s=1,a,i,n,o,u,l,_,m,w,p,c;for(a=0;a<t.rows;a++){for(n=-1,o=0,u=0,l=!1,i=0;i<t.cols;i++)_=(a*t.cols+i)*Gi,m=e.cells[_+Ui],w=e.cells[_+ji],p=!!(w&67108864),(m!==o||w!==u&&(l||p))&&((o!==0||l&&u!==0)&&(c=s++*Ot,this._updateRectangle(r,c,u,o,n,i,a)),n=i,o=m,u=w,l=p);(o!==0||l&&u!==0)&&(c=s++*Ot,this._updateRectangle(r,c,u,o,n,t.cols,a))}r.count=s}updateCursor(e){let t=this._verticesCursor,r=e.cursor;if(!r||r.style==="block"){t.count=0;return}let s,a=0;(r.style==="bar"||r.style==="outline")&&(s=a++*Ot,this._addRectangleFloat(t.attributes,s,r.x*this._dimensions.device.cell.width,r.y*this._dimensions.device.cell.height,r.style==="bar"?r.dpr*r.cursorWidth:r.dpr,this._dimensions.device.cell.height,this._cursorFloat)),(r.style==="underline"||r.style==="outline")&&(s=a++*Ot,this._addRectangleFloat(t.attributes,s,r.x*this._dimensions.device.cell.width,(r.y+1)*this._dimensions.device.cell.height-r.dpr,r.width*this._dimensions.device.cell.width,r.dpr,this._cursorFloat)),r.style==="outline"&&(s=a++*Ot,this._addRectangleFloat(t.attributes,s,r.x*this._dimensions.device.cell.width,r.y*this._dimensions.device.cell.height,r.width*this._dimensions.device.cell.width,r.dpr,this._cursorFloat),s=a++*Ot,this._addRectangleFloat(t.attributes,s,(r.x+r.width)*this._dimensions.device.cell.width-r.dpr,r.y*this._dimensions.device.cell.height,r.dpr,this._dimensions.device.cell.height,this._cursorFloat)),t.count=a}_updateRectangle(e,t,r,s,a,i,n){if(r&67108864)switch(r&50331648){case 16777216:case 33554432:Pt=this._themeService.colors.ansi[r&255].rgba;break;case 50331648:Pt=(r&16777215)<<8;break;default:Pt=this._themeService.colors.foreground.rgba}else switch(s&50331648){case 16777216:case 33554432:Pt=this._themeService.colors.ansi[s&255].rgba;break;case 50331648:Pt=(s&16777215)<<8;break;default:Pt=this._themeService.colors.background.rgba}e.attributes.length<t+4&&(e.attributes=Lu(e.attributes,this._terminal.rows*this._terminal.cols*Ot)),wa=a*this._dimensions.device.cell.width,ya=n*this._dimensions.device.cell.height,Sa=(Pt>>24&255)/255,Ca=(Pt>>16&255)/255,xa=(Pt>>8&255)/255,ka=1,this._addRectangle(e.attributes,t,wa,ya,(i-a)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,Sa,Ca,xa,ka)}_addRectangle(e,t,r,s,a,i,n,o,u,l){e[t]=r/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=a/this._dimensions.device.canvas.width,e[t+3]=i/this._dimensions.device.canvas.height,e[t+4]=n,e[t+5]=o,e[t+6]=u,e[t+7]=l}_addRectangleFloat(e,t,r,s,a,i,n){e[t]=r/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=a/this._dimensions.device.canvas.width,e[t+3]=i/this._dimensions.device.canvas.height,e[t+4]=n[0],e[t+5]=n[1],e[t+6]=n[2],e[t+7]=n[3]}_colorToFloat32Array(e){return new Float32Array([(e.rgba>>24&255)/255,(e.rgba>>16&255)/255,(e.rgba>>8&255)/255,(e.rgba&255)/255])}},Uu=class extends et{constructor(e,t,r,s,a,i,n,o){super(),this._container=t,this._alpha=a,this._coreBrowserService=i,this._optionsService=n,this._themeService=o,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add(`xterm-${r}-layer`),this._canvas.style.zIndex=s.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this._register(this._themeService.onChangeColors(u=>{this._refreshCharAtlas(e,u),this.reset(e)})),this._register($e(()=>{this._canvas.remove()}))}_initCanvas(){this._ctx=Oe(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(e){}handleFocus(e){}handleCursorMove(e){}handleGridChanged(e,t,r){}handleSelectionChanged(e,t,r,s=!1){}_setTransparency(e,t){if(t===this._alpha)return;let r=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,r),this._refreshCharAtlas(e,this._themeService.colors),this.handleGridChanged(e,0,e.rows-1)}_refreshCharAtlas(e,t){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=cl(e,this._optionsService.rawOptions,t,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr,2048),this._charAtlas.warmUp())}resize(e,t){this._deviceCellWidth=t.device.cell.width,this._deviceCellHeight=t.device.cell.height,this._deviceCharWidth=t.device.char.width,this._deviceCharHeight=t.device.char.height,this._deviceCharLeft=t.device.char.left,this._deviceCharTop=t.device.char.top,this._canvas.width=t.device.canvas.width,this._canvas.height=t.device.canvas.height,this._canvas.style.width=`${t.css.canvas.width}px`,this._canvas.style.height=`${t.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(e,this._themeService.colors)}_fillBottomLineAtCells(e,t,r=1){this._ctx.fillRect(e*this._deviceCellWidth,(t+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,r*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(e,t,r,s){this._alpha?this._ctx.clearRect(e*this._deviceCellWidth,t*this._deviceCellHeight,r*this._deviceCellWidth,s*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(e*this._deviceCellWidth,t*this._deviceCellHeight,r*this._deviceCellWidth,s*this._deviceCellHeight))}_fillCharTrueColor(e,t,r,s){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline=Xa,this._clipCell(r,s,t.getWidth()),this._ctx.fillText(t.getChars(),r*this._deviceCellWidth+this._deviceCharLeft,s*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(e,t,r){this._ctx.beginPath(),this._ctx.rect(e*this._deviceCellWidth,t*this._deviceCellHeight,r*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t,r){let s=t?e.options.fontWeightBold:e.options.fontWeight;return`${r?"italic":""} ${s} ${e.options.fontSize*this._coreBrowserService.dpr}px ${e.options.fontFamily}`}},ju=class extends Uu{constructor(e,t,r,s,a,i,n){super(r,e,"link",t,!0,a,i,n),this._register(s.onShowLinkUnderline(o=>this._handleShowLinkUnderline(o))),this._register(s.onHideLinkUnderline(o=>this._handleHideLinkUnderline(o)))}resize(e,t){super.resize(e,t),this._state=void 0}reset(e){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);let e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===257?this._ctx.fillStyle=this._themeService.colors.background.css:e.fg!==void 0&&xu(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e}_handleHideLinkUnderline(e){this._clearCurrentLink()}},pt=typeof window=="object"?window:globalThis,gn=class{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new ke,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new ke,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}getZoomLevel(t){return this.mapWindowIdToZoomLevel.get(this.getWindowId(t))??0}setZoomLevel(t,r){if(this.getZoomLevel(r)===t)return;let s=this.getWindowId(r);this.mapWindowIdToZoomLevel.set(s,t),this._onDidChangeZoomLevel.fire(s)}getZoomFactor(t){return this.mapWindowIdToZoomFactor.get(this.getWindowId(t))??1}setZoomFactor(t,r){this.mapWindowIdToZoomFactor.set(this.getWindowId(r),t)}setFullscreen(t,r){if(this.isFullscreen(r)===t)return;let s=this.getWindowId(r);this.mapWindowIdToFullScreen.set(s,t),this._onDidChangeFullscreen.fire(s)}isFullscreen(t){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(t))}getWindowId(t){return t.vscodeWindowId}};gn.INSTANCE=new gn;var fl=gn;function zu(e,t,r){typeof t=="string"&&(t=e.matchMedia(t)),t.addEventListener("change",r)}var $m=fl.INSTANCE.onDidChangeZoomLevel,qm=fl.INSTANCE.onDidChangeFullscreen,wr=typeof navigator=="object"?navigator.userAgent:"",Km=wr.indexOf("Firefox")>=0,Qs=wr.indexOf("AppleWebKit")>=0,$u=wr.indexOf("Chrome")>=0,qu=!$u&&wr.indexOf("Safari")>=0,Gm=wr.indexOf("Electron/")>=0,Vm=wr.indexOf("Android")>=0,zi=!1;if(typeof pt.matchMedia=="function"){let e=pt.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),t=pt.matchMedia("(display-mode: fullscreen)");zi=e.matches,zu(pt,e,({matches:r})=>{zi&&t.matches||(zi=r)})}function Ku(){return zi}var gr="en",vn=!1,bn=!1,$i=!1,Gu=!1,pl=!1,_l=!1,Vu=!1,Yu=!1,Ju=!1,Xu=!1,Ni,qi=gr,Ea=gr,Zu,Bt,Nt=globalThis,Qe;typeof Nt.vscode<"u"&&typeof Nt.vscode.process<"u"?Qe=Nt.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(Qe=process);var ml=typeof Qe?.versions?.electron=="string",Qu=ml&&Qe?.type==="renderer";if(typeof Qe=="object"){vn=Qe.platform==="win32",bn=Qe.platform==="darwin",$i=Qe.platform==="linux",Gu=$i&&!!Qe.env.SNAP&&!!Qe.env.SNAP_REVISION,Vu=ml,Ju=!!Qe.env.CI||!!Qe.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Ni=gr,qi=gr;let e=Qe.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);Ni=t.userLocale,Ea=t.osLocale,qi=t.resolvedLanguage||gr,Zu=t.languagePack?.translationsConfigFile}catch{}pl=!0}else typeof navigator=="object"&&!Qu?(Bt=navigator.userAgent,vn=Bt.indexOf("Windows")>=0,bn=Bt.indexOf("Macintosh")>=0,Yu=(Bt.indexOf("Macintosh")>=0||Bt.indexOf("iPad")>=0||Bt.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,$i=Bt.indexOf("Linux")>=0,Xu=Bt?.indexOf("Mobi")>=0,_l=!0,qi=globalThis._VSCODE_NLS_LANGUAGE||gr,Ni=navigator.language.toLowerCase(),Ea=Ni):console.error("Unable to resolve platform.");var en=0;bn?en=1:vn?en=3:$i&&(en=2);var tn=pl,ef=_l&&typeof Nt.importScripts=="function",Ym=ef?Nt.origin:void 0,Ct=Bt,jt=qi,La;(e=>{function t(){return jt}e.value=t;function r(){return jt.length===2?jt==="en":jt.length>=3?jt[0]==="e"&&jt[1]==="n"&&jt[2]==="-":!1}e.isDefaultVariant=r;function s(){return jt==="en"}e.isDefault=s})(La||(La={}));var tf=typeof Nt.postMessage=="function"&&!Nt.importScripts,rf=(()=>{if(tf){let e=[];Nt.addEventListener("message",r=>{if(r.data&&r.data.vscodeScheduleAsyncWork)for(let s=0,a=e.length;s<a;s++){let i=e[s];if(i.id===r.data.vscodeScheduleAsyncWork){e.splice(s,1),i.callback();return}}});let t=0;return r=>{let s=++t;e.push({id:s,callback:r}),Nt.postMessage({vscodeScheduleAsyncWork:s},"*")}}return e=>setTimeout(e)})(),sf=!!(Ct&&Ct.indexOf("Chrome")>=0),Jm=!!(Ct&&Ct.indexOf("Firefox")>=0),Xm=!!(!sf&&Ct&&Ct.indexOf("Safari")>=0),Zm=!!(Ct&&Ct.indexOf("Edg/")>=0),Qm=!!(Ct&&Ct.indexOf("Android")>=0),zt=typeof navigator=="object"?navigator:{},eg={clipboard:{writeText:tn||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(zt&&zt.clipboard&&zt.clipboard.writeText),readText:tn||!!(zt&&zt.clipboard&&zt.clipboard.readText)},keyboard:tn||Ku()?0:zt.keyboard||qu?1:2,touch:"ontouchstart"in pt||zt.maxTouchPoints>0,pointerEvents:pt.PointerEvent&&("ontouchstart"in pt||navigator.maxTouchPoints>0)},xn=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}},rn=new xn,Ta=new xn,Ra=new xn,tg=new Array(230),Ma;(e=>{function t(o){return rn.keyCodeToStr(o)}e.toString=t;function r(o){return rn.strToKeyCode(o)}e.fromString=r;function s(o){return Ta.keyCodeToStr(o)}e.toUserSettingsUS=s;function a(o){return Ra.keyCodeToStr(o)}e.toUserSettingsGeneral=a;function i(o){return Ta.strToKeyCode(o)||Ra.strToKeyCode(o)}e.fromUserSettings=i;function n(o){if(o>=98&&o<=113)return null;switch(o){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return rn.keyCodeToStr(o)}e.toElectronAccelerator=n})(Ma||(Ma={}));var gl=Object.freeze(function(e,t){let r=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(r)}}}),Aa;(e=>{function t(r){return r===e.None||r===e.Cancelled||r instanceof nf?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:St.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:gl})})(Aa||(Aa={}));var nf=class{constructor(){this._isCancelled=!1,this._emitter=null}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?gl:(this._emitter||(this._emitter=new ke),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}};var of,sn;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?sn=(e,t)=>{rf(()=>{if(r)return;let s=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,s-Date.now())}}))});let r=!1;return{dispose(){r||(r=!0)}}}:sn=(e,t,r)=>{let s=e.requestIdleCallback(t,typeof r=="number"?{timeout:r}:void 0),a=!1;return{dispose(){a||(a=!0,e.cancelIdleCallback(s))}}},of=e=>sn(globalThis,e)})();var Da;(e=>{async function t(s){let a,i=await Promise.all(s.map(n=>n.then(o=>o,o=>{a||(a=o)})));if(typeof a<"u")throw a;return i}e.settled=t;function r(s){return new Promise(async(a,i)=>{try{await s(a,i)}catch(n){i(n)}})}e.withAsyncBody=r})(Da||(Da={}));var Pa=class ot{static fromArray(t){return new ot(r=>{r.emitMany(t)})}static fromPromise(t){return new ot(async r=>{r.emitMany(await t)})}static fromPromises(t){return new ot(async r=>{await Promise.all(t.map(async s=>r.emitOne(await s)))})}static merge(t){return new ot(async r=>{await Promise.all(t.map(async s=>{for await(let a of s)r.emitOne(a)}))})}constructor(t,r){this._state=0,this._results=[],this._error=null,this._onReturn=r,this._onStateChanged=new ke,queueMicrotask(async()=>{let s={emitOne:a=>this.emitOne(a),emitMany:a=>this.emitMany(a),reject:a=>this.reject(a)};try{await Promise.resolve(t(s)),this.resolve()}catch(a){this.reject(a)}finally{s.emitOne=void 0,s.emitMany=void 0,s.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await St.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,r){return new ot(async s=>{for await(let a of t)s.emitOne(r(a))})}map(t){return ot.map(this,t)}static filter(t,r){return new ot(async s=>{for await(let a of t)r(a)&&s.emitOne(a)})}filter(t){return ot.filter(this,t)}static coalesce(t){return ot.filter(t,r=>!!r)}coalesce(){return ot.coalesce(this)}static async toPromise(t){let r=[];for await(let s of t)r.push(s);return r}toPromise(){return ot.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};Pa.EMPTY=Pa.fromArray([]);function af(e){return 55296<=e&&e<=56319}function Ba(e){return 56320<=e&&e<=57343}function lf(e,t){return(e-55296<<10)+(t-56320)+65536}function cf(e){return kn(e,0)}function kn(e,t){switch(typeof e){case"object":return e===null?It(349,t):Array.isArray(e)?df(e,t):uf(e,t);case"string":return vl(e,t);case"boolean":return hf(e,t);case"number":return It(e,t);case"undefined":return It(937,t);default:return It(617,t)}}function It(e,t){return(t<<5)-t+e|0}function hf(e,t){return It(e?433:863,t)}function vl(e,t){t=It(149417,t);for(let r=0,s=e.length;r<s;r++)t=It(e.charCodeAt(r),t);return t}function df(e,t){return t=It(104579,t),e.reduce((r,s)=>kn(s,r),t)}function uf(e,t){return t=It(181387,t),Object.keys(e).sort().reduce((r,s)=>(r=vl(s,r),kn(e[s],r)),t)}function nn(e,t,r=32){let s=r-t,a=~((1<<s)-1);return(e<<t|(a&e)>>>s)>>>0}function Oa(e,t=0,r=e.byteLength,s=0){for(let a=0;a<r;a++)e[t+a]=s}function ff(e,t,r="0"){for(;e.length<t;)e=r+e;return e}function Gr(e,t=32){return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map(r=>r.toString(16).padStart(2,"0")).join(""):ff((e>>>0).toString(16),t/4)}var pf=class bl{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(t){let r=t.length;if(r===0)return;let s=this._buff,a=this._buffLen,i=this._leftoverHighSurrogate,n,o;for(i!==0?(n=i,o=-1,i=0):(n=t.charCodeAt(0),o=0);;){let u=n;if(af(n))if(o+1<r){let l=t.charCodeAt(o+1);Ba(l)?(o++,u=lf(n,l)):u=65533}else{i=n;break}else Ba(n)&&(u=65533);if(a=this._push(s,a,u),o++,o<r)n=t.charCodeAt(o);else break}this._buffLen=a,this._leftoverHighSurrogate=i}_push(t,r,s){return s<128?t[r++]=s:s<2048?(t[r++]=192|(s&1984)>>>6,t[r++]=128|(s&63)>>>0):s<65536?(t[r++]=224|(s&61440)>>>12,t[r++]=128|(s&4032)>>>6,t[r++]=128|(s&63)>>>0):(t[r++]=240|(s&1835008)>>>18,t[r++]=128|(s&258048)>>>12,t[r++]=128|(s&4032)>>>6,t[r++]=128|(s&63)>>>0),r>=64&&(this._step(),r-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),r}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Gr(this._h0)+Gr(this._h1)+Gr(this._h2)+Gr(this._h3)+Gr(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,Oa(this._buff,this._buffLen),this._buffLen>56&&(this._step(),Oa(this._buff));let t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){let t=bl._bigBlock32,r=this._buffDV;for(let m=0;m<64;m+=4)t.setUint32(m,r.getUint32(m,!1),!1);for(let m=64;m<320;m+=4)t.setUint32(m,nn(t.getUint32(m-12,!1)^t.getUint32(m-32,!1)^t.getUint32(m-56,!1)^t.getUint32(m-64,!1),1),!1);let s=this._h0,a=this._h1,i=this._h2,n=this._h3,o=this._h4,u,l,_;for(let m=0;m<80;m++)m<20?(u=a&i|~a&n,l=1518500249):m<40?(u=a^i^n,l=1859775393):m<60?(u=a&i|a&n|i&n,l=2400959708):(u=a^i^n,l=3395469782),_=nn(s,5)+u+o+l+t.getUint32(m*4,!1)&4294967295,o=n,n=i,i=nn(a,30),a=s,s=_;this._h0=this._h0+s&4294967295,this._h1=this._h1+a&4294967295,this._h2=this._h2+i&4294967295,this._h3=this._h3+n&4294967295,this._h4=this._h4+o&4294967295}};pf._bigBlock32=new DataView(new ArrayBuffer(320));var{registerWindow:rg,getWindow:_f,getDocument:ig,getWindows:sg,getWindowsCount:ng,getWindowId:Ia,getWindowById:og,hasWindow:ag,onDidRegisterWindow:lg,onWillUnregisterWindow:cg,onDidUnregisterWindow:hg}=(function(){let e=new Map,t={window:pt,disposables:new vr};e.set(pt.vscodeWindowId,t);let r=new ke,s=new ke,a=new ke;function i(n,o){return(typeof n=="number"?e.get(n):void 0)??(o?t:void 0)}return{onDidRegisterWindow:r.event,onWillUnregisterWindow:a.event,onDidUnregisterWindow:s.event,registerWindow(n){if(e.has(n.vscodeWindowId))return et.None;let o=new vr,u={window:n,disposables:o.add(new vr)};return e.set(n.vscodeWindowId,u),o.add($e(()=>{e.delete(n.vscodeWindowId),s.fire(n)})),o.add(wn(n,vf.BEFORE_UNLOAD,()=>{a.fire(n)})),r.fire(u),o},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(n){return n.vscodeWindowId},hasWindow(n){return e.has(n)},getWindowById:i,getWindow(n){let o=n;if(o?.ownerDocument?.defaultView)return o.ownerDocument.defaultView.window;let u=n;return u?.view?u.view.window:pt},getDocument(n){return _f(n).document}}})(),mf=class{constructor(e,t,r,s){this._node=e,this._type=t,this._handler=r,this._options=s||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}};function wn(e,t,r,s){return new mf(e,t,r,s)}var gf,Na,on=class{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){Hi(e)}}static sort(e,t){return t.priority-e.priority}};(function(){let e=new Map,t=new Map,r=new Map,s=new Map,a=i=>{r.set(i,!1);let n=e.get(i)??[];for(t.set(i,n),e.set(i,[]),s.set(i,!0);n.length>0;)n.sort(on.sort),n.shift().execute();s.set(i,!1)};Na=(i,n,o=0)=>{let u=Ia(i),l=new on(n,o),_=e.get(u);return _||(_=[],e.set(u,_)),_.push(l),r.get(u)||(r.set(u,!0),i.requestAnimationFrame(()=>a(u))),l},gf=(i,n,o)=>{let u=Ia(i);if(s.get(u)){let l=new on(n,o),_=t.get(u);return _||(_=[],t.set(u,_)),_.push(l),l}else return Na(i,n,o)}})();var Ha=class Ki{constructor(t,r){this.width=t,this.height=r}with(t=this.width,r=this.height){return t!==this.width||r!==this.height?new Ki(t,r):this}static is(t){return typeof t=="object"&&typeof t.height=="number"&&typeof t.width=="number"}static lift(t){return t instanceof Ki?t:new Ki(t.width,t.height)}static equals(t,r){return t===r?!0:!t||!r?!1:t.width===r.width&&t.height===r.height}};Ha.None=new Ha(0,0);var dg=new class{constructor(){this.mutationObservers=new Map}observe(e,t,r){let s=this.mutationObservers.get(e);s||(s=new Map,this.mutationObservers.set(e,s));let a=cf(r),i=s.get(a);if(i)i.users+=1;else{let n=new ke,o=new MutationObserver(l=>n.fire(l));o.observe(e,r);let u=i={users:1,observer:o,onDidMutate:n.event};t.add($e(()=>{u.users-=1,u.users===0&&(n.dispose(),o.disconnect(),s?.delete(a),s?.size===0&&this.mutationObservers.delete(e))})),s.set(a,i)}return i.onDidMutate}},vf={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:Qs?"webkitAnimationStart":"animationstart",ANIMATION_END:Qs?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:Qs?"webkitAnimationIteration":"animationiteration"},bf=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;function wl(e,t,r,...s){let a=bf.exec(t);if(!a)throw new Error("Bad use of emmet");let i=a[1]||"div",n;return e!=="http://www.w3.org/1999/xhtml"?n=document.createElementNS(e,i):n=document.createElement(i),a[3]&&(n.id=a[3]),a[4]&&(n.className=a[4].replace(/\./g," ").trim()),r&&Object.entries(r).forEach(([o,u])=>{typeof u>"u"||(/^on\w+$/.test(o)?n[o]=u:o==="selected"?u&&n.setAttribute(o,"true"):n.setAttribute(o,u))}),n.append(...s),n}function wf(e,t,...r){return wl("http://www.w3.org/1999/xhtml",e,t,...r)}wf.SVG=function(e,t,...r){return wl("http://www.w3.org/2000/svg",e,t,...r)};var yf=class extends et{constructor(e,t,r,s,a,i,n,o,u){super(),this._terminal=e,this._characterJoinerService=t,this._charSizeService=r,this._coreBrowserService=s,this._coreService=a,this._decorationService=i,this._optionsService=n,this._themeService=o,this._cursorBlinkStateManager=new zr,this._charAtlasDisposable=this._register(new zr),this._observerDisposable=this._register(new zr),this._model=new Iu,this._workCell=new ga,this._workCell2=new ga,this._rectangleRenderer=this._register(new zr),this._glyphRenderer=this._register(new zr),this._onChangeTextureAtlas=this._register(new ke),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this._register(new ke),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this._register(new ke),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this._register(new ke),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this._register(new ke),this.onContextLoss=this._onContextLoss.event,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas");let l={antialias:!1,depth:!1,preserveDrawingBuffer:u};if(this._gl=this._canvas.getContext("webgl2",l),!this._gl)throw new Error("WebGL2 not supported "+this._gl);this._register(this._themeService.onChangeColors(()=>this._handleColorChange())),this._cellColorResolver=new Xd(this._terminal,this._optionsService,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new ju(this._core.screenElement,2,this._terminal,this._core.linkifier,this._coreBrowserService,n,this._themeService)],this.dimensions=Yd(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this._register(n.onOptionChange(()=>this._handleOptionsChanged())),this._deviceMaxTextureSize=this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),this._register(wn(this._canvas,"webglcontextlost",_=>{console.log("webglcontextlost event received"),_.preventDefault(),this._contextRestorationTimeout=setTimeout(()=>{this._contextRestorationTimeout=void 0,console.warn("webgl context not restored; firing onContextLoss"),this._onContextLoss.fire(_)},3e3)})),this._register(wn(this._canvas,"webglcontextrestored",_=>{console.warn("webglcontextrestored event received"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,_a(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()})),this._observerDisposable.value=ma(this._canvas,this._coreBrowserService.window,(_,m)=>this._setCanvasDevicePixelDimensions(_,m)),this._register(this._coreBrowserService.onWindowChange(_=>{this._observerDisposable.value=ma(this._canvas,_,(m,w)=>this._setCanvasDevicePixelDimensions(m,w))})),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._core.screenElement.isConnected,this._register($e(()=>{for(let _ of this._renderLayers)_.dispose();this._canvas.parentElement?.removeChild(this._canvas),_a(this._terminal)}))}get textureAtlas(){return this._charAtlas?.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(e,t){this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(let r of this._renderLayers)r.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,this._rectangleRenderer.value?.setDimensions(this.dimensions),this._rectangleRenderer.value?.handleResize(),this._glyphRenderer.value?.setDimensions(this.dimensions),this._glyphRenderer.value?.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){for(let e of this._renderLayers)e.handleBlur(this._terminal);this._cursorBlinkStateManager.value?.pause(),this._requestRedrawViewport()}handleFocus(){for(let e of this._renderLayers)e.handleFocus(this._terminal);this._cursorBlinkStateManager.value?.resume(),this._requestRedrawViewport()}handleSelectionChanged(e,t,r){for(let s of this._renderLayers)s.handleSelectionChanged(this._terminal,e,t,r);this._model.selection.update(this._core,e,t,r),this._requestRedrawViewport()}handleCursorMove(){for(let e of this._renderLayers)e.handleCursorMove(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new Wu(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new Du(this._terminal,this._gl,this.dimensions,this._optionsService),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0){this._isAttached=!1;return}let e=cl(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr,this._deviceMaxTextureSize);this._charAtlas!==e&&(this._onChangeTextureAtlas.fire(e.pages[0].canvas),this._charAtlasDisposable.value=Ka(St.forward(e.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),St.forward(e.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas))),this._charAtlas=e,this._charAtlas.warmUp(),this._glyphRenderer.value?.setAtlas(this._charAtlas)}_clearModel(e){this._model.clear(),e&&this._glyphRenderer.value?.clear()}clearTextureAtlas(){this._charAtlas?.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){this._clearModel(!0);for(let e of this._renderLayers)e.reset(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._updateCursorBlink()}renderRows(e,t){if(!this._isAttached)if(this._core.screenElement?.isConnected&&this._charSizeService.width&&this._charSizeService.height)this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0;else return;for(let r of this._renderLayers)r.handleGridChanged(this._terminal,e,t);!this._glyphRenderer.value||!this._rectangleRenderer.value||(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(e,t),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible)&&this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._coreService.decPrivateModes.cursorBlink??this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new ku(()=>{this._requestRedrawCursor()},this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(e,t){let r=this._core,s=this._workCell,a,i,n,o,u,l,_=0,m=!0,w,p,c,d,h,f,g,C,v;e=Fa(e,r.rows-1,0),t=Fa(t,r.rows-1,0);let x=this._coreService.decPrivateModes.cursorStyle??r.options.cursorStyle??"block",b=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,E=b-r.buffer.ydisp,O=Math.min(this._terminal.buffer.active.cursorX,r.cols-1),B=-1,H=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let M=!1;for(i=e;i<=t;i++)for(n=i+r.buffer.ydisp,o=r.buffer.lines.get(n),this._model.lineLengths[i]=0,c=b===n,_=0,u=this._characterJoinerService.getJoinedCharacters(n),C=0;C<r.cols;C++){if(a=this._cellColorResolver.result.bg,o.loadCell(C,s),C===0&&(a=this._cellColorResolver.result.bg),l=!1,m=C>=_,w=C,u.length>0&&C===u[0][0]&&m){p=u.shift();let K=this._model.selection.isCellSelected(this._terminal,p[0],n);for(g=p[0]+1;g<p[1];g++)m&&(m=K===this._model.selection.isCellSelected(this._terminal,g,n));m&&(m=!c||O<p[0]||O>=p[1]),m?(l=!0,s=new Sf(s,o.translateToString(!0,p[0],p[1]),p[1]-p[0]),w=p[1]-1):_=p[1]}if(d=s.getChars(),h=s.getCode(),g=(i*r.cols+C)*Gi,this._cellColorResolver.resolve(s,C,n,this.dimensions.device.cell.width),H&&n===b&&(C===O&&(this._model.cursor={x:O,y:E,width:s.getWidth(),style:this._coreBrowserService.isFocused?x:r.options.cursorInactiveStyle,cursorWidth:r.options.cursorWidth,dpr:this._devicePixelRatio},B=O+s.getWidth()-1),C>=O&&C<=B&&(this._coreBrowserService.isFocused&&x==="block"||this._coreBrowserService.isFocused===!1&&r.options.cursorInactiveStyle==="block")&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),h!==0&&(this._model.lineLengths[i]=C+1),!(this._model.cells[g]===h&&this._model.cells[g+Ui]===this._cellColorResolver.result.bg&&this._model.cells[g+ji]===this._cellColorResolver.result.fg&&this._model.cells[g+Xs]===this._cellColorResolver.result.ext)&&(M=!0,d.length>1&&(h|=Ou),this._model.cells[g]=h,this._model.cells[g+Ui]=this._cellColorResolver.result.bg,this._model.cells[g+ji]=this._cellColorResolver.result.fg,this._model.cells[g+Xs]=this._cellColorResolver.result.ext,f=s.getWidth(),this._glyphRenderer.value.updateCell(C,i,h,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,d,f,a),l)){for(s=this._workCell,C++;C<=w;C++)v=(i*r.cols+C)*Gi,this._glyphRenderer.value.updateCell(C,i,0,0,0,0,zd,0,0),this._model.cells[v]=0,this._model.cells[v+Ui]=this._cellColorResolver.result.bg,this._model.cells[v+ji]=this._cellColorResolver.result.fg,this._model.cells[v+Xs]=this._cellColorResolver.result.ext;C--}}M&&this._rectangleRenderer.value.updateBackgrounds(this._model),this._rectangleRenderer.value.updateCursor(this._model)}_updateDimensions(){!this._charSizeService.width||!this._charSizeService.height||(this.dimensions.device.char.width=Math.floor(this._charSizeService.width*this._devicePixelRatio),this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*this._devicePixelRatio),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.top=this._optionsService.rawOptions.lineHeight===1?0:Math.round((this.dimensions.device.cell.height-this.dimensions.device.char.height)/2),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.char.left=Math.floor(this._optionsService.rawOptions.letterSpacing/2),this.dimensions.device.canvas.height=this._terminal.rows*this.dimensions.device.cell.height,this.dimensions.device.canvas.width=this._terminal.cols*this.dimensions.device.cell.width,this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/this._devicePixelRatio),this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/this._devicePixelRatio),this.dimensions.css.cell.height=this.dimensions.device.cell.height/this._devicePixelRatio,this.dimensions.css.cell.width=this.dimensions.device.cell.width/this._devicePixelRatio)}_setCanvasDevicePixelDimensions(e,t){this._canvas.width===e&&this._canvas.height===t||(this._canvas.width=e,this._canvas.height=t,this._requestRedrawViewport())}_requestRedrawViewport(){this._onRequestRedraw.fire({start:0,end:this._terminal.rows-1})}_requestRedrawCursor(){let e=this._terminal.buffer.active.cursorY;this._onRequestRedraw.fire({start:e,end:e})}},Sf=class extends mr{constructor(e,t,r){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=r}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}};function Fa(e,t,r=0){return Math.max(Math.min(e,t),r)}var Wa="di$target",Ua="di$dependencies",an=new Map;function xt(e){if(an.has(e))return an.get(e);let t=function(r,s,a){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");Cf(t,r,a)};return t._id=e,an.set(e,t),t}function Cf(e,t,r){t[Wa]===t?t[Ua].push({id:e,index:r}):(t[Ua]=[{id:e,index:r}],t[Wa]=t)}var ug=xt("BufferService"),fg=xt("CoreMouseService"),pg=xt("CoreService"),_g=xt("CharsetService"),mg=xt("InstantiationService"),gg=xt("LogService"),xf=xt("OptionsService"),vg=xt("OscLinkService"),bg=xt("UnicodeService"),wg=xt("DecorationService"),kf={trace:0,debug:1,info:2,warn:3,error:4,off:5},Ef="xterm.js: ",ja=class extends et{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),yl=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=kf[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)typeof e[t]=="function"&&(e[t]=e[t]())}_log(e,t,r){this._evalLazyOptionalParams(r),e.call(console,(this._optionsService.options.logger?"":Ef)+t,...r)}trace(e,...t){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};ja=Cd([xd(0,xf)],ja);var yl;function Lf(e){yl=e}var Sl=class extends et{constructor(e){if(Ya&&jd()<16){let t={antialias:!1,depth:!1,preserveDrawingBuffer:!0};if(!document.createElement("canvas").getContext("webgl2",t))throw new Error("Webgl2 is only supported on Safari 16 and above")}super(),this._preserveDrawingBuffer=e,this._onChangeTextureAtlas=this._register(new ke),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this._register(new ke),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this._register(new ke),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this._register(new ke),this.onContextLoss=this._onContextLoss.event}activate(e){let t=e._core;if(!e.element){this._register(t.onWillOpen(()=>this.activate(e)));return}this._terminal=e;let r=t.coreService,s=t.optionsService,a=t,i=a._renderService,n=a._characterJoinerService,o=a._charSizeService,u=a._coreBrowserService,l=a._decorationService,_=a._logService,m=a._themeService;Lf(_),this._renderer=this._register(new yf(e,n,o,u,r,l,s,m,this._preserveDrawingBuffer)),this._register(St.forward(this._renderer.onContextLoss,this._onContextLoss)),this._register(St.forward(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this._register(St.forward(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this._register(St.forward(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),i.setRenderer(this._renderer),this._register($e(()=>{if(this._terminal._core._store._isDisposed)return;let w=this._terminal._core._renderService;w.setRenderer(this._terminal._core._createRenderer()),w.handleResize(e.cols,e.rows)}))}get textureAtlas(){return this._renderer?.textureAtlas}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}};var Cl=`/**
118
+ }`,Ut=8,wn=Ut*Float32Array.BYTES_PER_ELEMENT,wf=20*Ut,qa=class{constructor(){this.attributes=new Float32Array(wf),this.count=0}},Ft=0,Ka=0,Ga=0,Va=0,Ya=0,Xa=0,Ja=0,yf=class extends st{constructor(e,t,r,s){super(),this._terminal=e,this._gl=t,this._dimensions=r,this._themeService=s,this._vertices=new qa,this._verticesCursor=new qa;let o=this._gl;this._program=He(Hl(o,vf,bf)),this._register($e(()=>o.deleteProgram(this._program))),this._projectionLocation=He(o.getUniformLocation(this._program,"u_projection")),this._vertexArrayObject=o.createVertexArray(),o.bindVertexArray(this._vertexArrayObject);let i=new Float32Array([0,0,1,0,0,1,1,1]),n=o.createBuffer();this._register($e(()=>o.deleteBuffer(n))),o.bindBuffer(o.ARRAY_BUFFER,n),o.bufferData(o.ARRAY_BUFFER,i,o.STATIC_DRAW),o.enableVertexAttribArray(3),o.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);let a=new Uint8Array([0,1,2,3]),u=o.createBuffer();this._register($e(()=>o.deleteBuffer(u))),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,u),o.bufferData(o.ELEMENT_ARRAY_BUFFER,a,o.STATIC_DRAW),this._attributesBuffer=He(o.createBuffer()),this._register($e(()=>o.deleteBuffer(this._attributesBuffer))),o.bindBuffer(o.ARRAY_BUFFER,this._attributesBuffer),o.enableVertexAttribArray(0),o.vertexAttribPointer(0,2,o.FLOAT,!1,wn,0),o.vertexAttribDivisor(0,1),o.enableVertexAttribArray(1),o.vertexAttribPointer(1,2,o.FLOAT,!1,wn,2*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(1,1),o.enableVertexAttribArray(2),o.vertexAttribPointer(2,4,o.FLOAT,!1,wn,4*Float32Array.BYTES_PER_ELEMENT),o.vertexAttribDivisor(2,1),this._updateCachedColors(s.colors),this._register(this._themeService.onChangeColors(l=>{this._updateCachedColors(l),this._updateViewportRectangle()}))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(e){let t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),t.uniformMatrix4fv(this._projectionLocation,!1,Nl),t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,e.attributes,t.DYNAMIC_DRAW),t.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,e.count)}handleResize(){this._updateViewportRectangle()}setDimensions(e){this._dimensions=e}_updateCachedColors(e){this._bgFloat=this._colorToFloat32Array(e.background),this._cursorFloat=this._colorToFloat32Array(e.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(e){let t=this._terminal,r=this._vertices,s=1,o,i,n,a,u,l,_,m,y,p,c;for(o=0;o<t.rows;o++){for(n=-1,a=0,u=0,l=!1,i=0;i<t.cols;i++)_=(o*t.cols+i)*ci,m=e.cells[_+si],y=e.cells[_+ii],p=!!(y&67108864),(m!==a||y!==u&&(l||p))&&((a!==0||l&&u!==0)&&(c=s++*Ut,this._updateRectangle(r,c,u,a,n,i,o)),n=i,a=m,u=y,l=p);(a!==0||l&&u!==0)&&(c=s++*Ut,this._updateRectangle(r,c,u,a,n,t.cols,o))}r.count=s}updateCursor(e){let t=this._verticesCursor,r=e.cursor;if(!r||r.style==="block"){t.count=0;return}let s,o=0;(r.style==="bar"||r.style==="outline")&&(s=o++*Ut,this._addRectangleFloat(t.attributes,s,r.x*this._dimensions.device.cell.width,r.y*this._dimensions.device.cell.height,r.style==="bar"?r.dpr*r.cursorWidth:r.dpr,this._dimensions.device.cell.height,this._cursorFloat)),(r.style==="underline"||r.style==="outline")&&(s=o++*Ut,this._addRectangleFloat(t.attributes,s,r.x*this._dimensions.device.cell.width,(r.y+1)*this._dimensions.device.cell.height-r.dpr,r.width*this._dimensions.device.cell.width,r.dpr,this._cursorFloat)),r.style==="outline"&&(s=o++*Ut,this._addRectangleFloat(t.attributes,s,r.x*this._dimensions.device.cell.width,r.y*this._dimensions.device.cell.height,r.width*this._dimensions.device.cell.width,r.dpr,this._cursorFloat),s=o++*Ut,this._addRectangleFloat(t.attributes,s,(r.x+r.width)*this._dimensions.device.cell.width-r.dpr,r.y*this._dimensions.device.cell.height,r.dpr,this._dimensions.device.cell.height,this._cursorFloat)),t.count=o}_updateRectangle(e,t,r,s,o,i,n){if(r&67108864)switch(r&50331648){case 16777216:case 33554432:Ft=this._themeService.colors.ansi[r&255].rgba;break;case 50331648:Ft=(r&16777215)<<8;break;default:Ft=this._themeService.colors.foreground.rgba}else switch(s&50331648){case 16777216:case 33554432:Ft=this._themeService.colors.ansi[s&255].rgba;break;case 50331648:Ft=(s&16777215)<<8;break;default:Ft=this._themeService.colors.background.rgba}e.attributes.length<t+4&&(e.attributes=lf(e.attributes,this._terminal.rows*this._terminal.cols*Ut)),Ka=o*this._dimensions.device.cell.width,Ga=n*this._dimensions.device.cell.height,Va=(Ft>>24&255)/255,Ya=(Ft>>16&255)/255,Xa=(Ft>>8&255)/255,Ja=1,this._addRectangle(e.attributes,t,Ka,Ga,(i-o)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,Va,Ya,Xa,Ja)}_addRectangle(e,t,r,s,o,i,n,a,u,l){e[t]=r/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=o/this._dimensions.device.canvas.width,e[t+3]=i/this._dimensions.device.canvas.height,e[t+4]=n,e[t+5]=a,e[t+6]=u,e[t+7]=l}_addRectangleFloat(e,t,r,s,o,i,n){e[t]=r/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=o/this._dimensions.device.canvas.width,e[t+3]=i/this._dimensions.device.canvas.height,e[t+4]=n[0],e[t+5]=n[1],e[t+6]=n[2],e[t+7]=n[3]}_colorToFloat32Array(e){return new Float32Array([(e.rgba>>24&255)/255,(e.rgba>>16&255)/255,(e.rgba>>8&255)/255,(e.rgba&255)/255])}},Sf=class extends st{constructor(e,t,r,s,o,i,n,a){super(),this._container=t,this._alpha=o,this._coreBrowserService=i,this._optionsService=n,this._themeService=a,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add(`xterm-${r}-layer`),this._canvas.style.zIndex=s.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this._register(this._themeService.onChangeColors(u=>{this._refreshCharAtlas(e,u),this.reset(e)})),this._register($e(()=>{this._canvas.remove()}))}_initCanvas(){this._ctx=He(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(e){}handleFocus(e){}handleCursorMove(e){}handleGridChanged(e,t,r){}handleSelectionChanged(e,t,r,s=!1){}_setTransparency(e,t){if(t===this._alpha)return;let r=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,r),this._refreshCharAtlas(e,this._themeService.colors),this.handleGridChanged(e,0,e.rows-1)}_refreshCharAtlas(e,t){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=Ol(e,this._optionsService.rawOptions,t,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr,2048),this._charAtlas.warmUp())}resize(e,t){this._deviceCellWidth=t.device.cell.width,this._deviceCellHeight=t.device.cell.height,this._deviceCharWidth=t.device.char.width,this._deviceCharHeight=t.device.char.height,this._deviceCharLeft=t.device.char.left,this._deviceCharTop=t.device.char.top,this._canvas.width=t.device.canvas.width,this._canvas.height=t.device.canvas.height,this._canvas.style.width=`${t.css.canvas.width}px`,this._canvas.style.height=`${t.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(e,this._themeService.colors)}_fillBottomLineAtCells(e,t,r=1){this._ctx.fillRect(e*this._deviceCellWidth,(t+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,r*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(e,t,r,s){this._alpha?this._ctx.clearRect(e*this._deviceCellWidth,t*this._deviceCellHeight,r*this._deviceCellWidth,s*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(e*this._deviceCellWidth,t*this._deviceCellHeight,r*this._deviceCellWidth,s*this._deviceCellHeight))}_fillCharTrueColor(e,t,r,s){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline=Cl,this._clipCell(r,s,t.getWidth()),this._ctx.fillText(t.getChars(),r*this._deviceCellWidth+this._deviceCharLeft,s*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(e,t,r){this._ctx.beginPath(),this._ctx.rect(e*this._deviceCellWidth,t*this._deviceCellHeight,r*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t,r){let s=t?e.options.fontWeightBold:e.options.fontWeight;return`${r?"italic":""} ${s} ${e.options.fontSize*this._coreBrowserService.dpr}px ${e.options.fontFamily}`}},Cf=class extends Sf{constructor(e,t,r,s,o,i,n){super(r,e,"link",t,!0,o,i,n),this._register(s.onShowLinkUnderline(a=>this._handleShowLinkUnderline(a))),this._register(s.onHideLinkUnderline(a=>this._handleHideLinkUnderline(a)))}resize(e,t){super.resize(e,t),this._state=void 0}reset(e){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);let e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===257?this._ctx.fillStyle=this._themeService.colors.background.css:e.fg!==void 0&&nf(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e}_handleHideLinkUnderline(e){this._clearCurrentLink()}},gt=typeof window=="object"?window:globalThis,Hn=class{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new ke,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new ke,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}getZoomLevel(t){return this.mapWindowIdToZoomLevel.get(this.getWindowId(t))??0}setZoomLevel(t,r){if(this.getZoomLevel(r)===t)return;let s=this.getWindowId(r);this.mapWindowIdToZoomLevel.set(s,t),this._onDidChangeZoomLevel.fire(s)}getZoomFactor(t){return this.mapWindowIdToZoomFactor.get(this.getWindowId(t))??1}setZoomFactor(t,r){this.mapWindowIdToZoomFactor.set(this.getWindowId(r),t)}setFullscreen(t,r){if(this.isFullscreen(r)===t)return;let s=this.getWindowId(r);this.mapWindowIdToFullScreen.set(s,t),this._onDidChangeFullscreen.fire(s)}isFullscreen(t){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(t))}getWindowId(t){return t.vscodeWindowId}};Hn.INSTANCE=new Hn;var Fl=Hn;function xf(e,t,r){typeof t=="string"&&(t=e.matchMedia(t)),t.addEventListener("change",r)}var Ig=Fl.INSTANCE.onDidChangeZoomLevel,Ng=Fl.INSTANCE.onDidChangeFullscreen,Or=typeof navigator=="object"?navigator.userAgent:"",Hg=Or.indexOf("Firefox")>=0,yn=Or.indexOf("AppleWebKit")>=0,kf=Or.indexOf("Chrome")>=0,Ef=!kf&&Or.indexOf("Safari")>=0,Fg=Or.indexOf("Electron/")>=0,Wg=Or.indexOf("Android")>=0,ni=!1;if(typeof gt.matchMedia=="function"){let e=gt.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),t=gt.matchMedia("(display-mode: fullscreen)");ni=e.matches,xf(gt,e,({matches:r})=>{ni&&t.matches||(ni=r)})}function Lf(){return ni}var Dr="en",Fn=!1,Wn=!1,oi=!1,Tf=!1,Wl=!1,Ul=!1,Rf=!1,Mf=!1,Af=!1,Df=!1,Qs,ai=Dr,Za=Dr,Pf,Wt,jt=globalThis,rt;typeof jt.vscode<"u"&&typeof jt.vscode.process<"u"?rt=jt.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(rt=process);var zl=typeof rt?.versions?.electron=="string",Bf=zl&&rt?.type==="renderer";if(typeof rt=="object"){Fn=rt.platform==="win32",Wn=rt.platform==="darwin",oi=rt.platform==="linux",Tf=oi&&!!rt.env.SNAP&&!!rt.env.SNAP_REVISION,Rf=zl,Af=!!rt.env.CI||!!rt.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Qs=Dr,ai=Dr;let e=rt.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);Qs=t.userLocale,Za=t.osLocale,ai=t.resolvedLanguage||Dr,Pf=t.languagePack?.translationsConfigFile}catch{}Wl=!0}else typeof navigator=="object"&&!Bf?(Wt=navigator.userAgent,Fn=Wt.indexOf("Windows")>=0,Wn=Wt.indexOf("Macintosh")>=0,Mf=(Wt.indexOf("Macintosh")>=0||Wt.indexOf("iPad")>=0||Wt.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,oi=Wt.indexOf("Linux")>=0,Df=Wt?.indexOf("Mobi")>=0,Ul=!0,ai=globalThis._VSCODE_NLS_LANGUAGE||Dr,Qs=navigator.language.toLowerCase(),Za=Qs):console.error("Unable to resolve platform.");var Sn=0;Wn?Sn=1:Fn?Sn=3:oi&&(Sn=2);var Cn=Wl,Of=Ul&&typeof jt.importScripts=="function",Ug=Of?jt.origin:void 0,Rt=Wt,Xt=ai,Qa;(e=>{function t(){return Xt}e.value=t;function r(){return Xt.length===2?Xt==="en":Xt.length>=3?Xt[0]==="e"&&Xt[1]==="n"&&Xt[2]==="-":!1}e.isDefaultVariant=r;function s(){return Xt==="en"}e.isDefault=s})(Qa||(Qa={}));var If=typeof jt.postMessage=="function"&&!jt.importScripts,Nf=(()=>{if(If){let e=[];jt.addEventListener("message",r=>{if(r.data&&r.data.vscodeScheduleAsyncWork)for(let s=0,o=e.length;s<o;s++){let i=e[s];if(i.id===r.data.vscodeScheduleAsyncWork){e.splice(s,1),i.callback();return}}});let t=0;return r=>{let s=++t;e.push({id:s,callback:r}),jt.postMessage({vscodeScheduleAsyncWork:s},"*")}}return e=>setTimeout(e)})(),Hf=!!(Rt&&Rt.indexOf("Chrome")>=0),zg=!!(Rt&&Rt.indexOf("Firefox")>=0),jg=!!(!Hf&&Rt&&Rt.indexOf("Safari")>=0),$g=!!(Rt&&Rt.indexOf("Edg/")>=0),qg=!!(Rt&&Rt.indexOf("Android")>=0),Jt=typeof navigator=="object"?navigator:{},Kg={clipboard:{writeText:Cn||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(Jt&&Jt.clipboard&&Jt.clipboard.writeText),readText:Cn||!!(Jt&&Jt.clipboard&&Jt.clipboard.readText)},keyboard:Cn||Lf()?0:Jt.keyboard||Ef?1:2,touch:"ontouchstart"in gt||Jt.maxTouchPoints>0,pointerEvents:gt.PointerEvent&&("ontouchstart"in gt||navigator.maxTouchPoints>0)},qn=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}},xn=new qn,el=new qn,tl=new qn,Gg=new Array(230),rl;(e=>{function t(a){return xn.keyCodeToStr(a)}e.toString=t;function r(a){return xn.strToKeyCode(a)}e.fromString=r;function s(a){return el.keyCodeToStr(a)}e.toUserSettingsUS=s;function o(a){return tl.keyCodeToStr(a)}e.toUserSettingsGeneral=o;function i(a){return el.strToKeyCode(a)||tl.strToKeyCode(a)}e.fromUserSettings=i;function n(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return xn.keyCodeToStr(a)}e.toElectronAccelerator=n})(rl||(rl={}));var jl=Object.freeze(function(e,t){let r=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(r)}}}),sl;(e=>{function t(r){return r===e.None||r===e.Cancelled||r instanceof Ff?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Tt.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:jl})})(sl||(sl={}));var Ff=class{constructor(){this._isCancelled=!1,this._emitter=null}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?jl:(this._emitter||(this._emitter=new ke),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}};var Wf,kn;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?kn=(e,t)=>{Nf(()=>{if(r)return;let s=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,s-Date.now())}}))});let r=!1;return{dispose(){r||(r=!0)}}}:kn=(e,t,r)=>{let s=e.requestIdleCallback(t,typeof r=="number"?{timeout:r}:void 0),o=!1;return{dispose(){o||(o=!0,e.cancelIdleCallback(s))}}},Wf=e=>kn(globalThis,e)})();var il;(e=>{async function t(s){let o,i=await Promise.all(s.map(n=>n.then(a=>a,a=>{o||(o=a)})));if(typeof o<"u")throw o;return i}e.settled=t;function r(s){return new Promise(async(o,i)=>{try{await s(o,i)}catch(n){i(n)}})}e.withAsyncBody=r})(il||(il={}));var nl=class ht{static fromArray(t){return new ht(r=>{r.emitMany(t)})}static fromPromise(t){return new ht(async r=>{r.emitMany(await t)})}static fromPromises(t){return new ht(async r=>{await Promise.all(t.map(async s=>r.emitOne(await s)))})}static merge(t){return new ht(async r=>{await Promise.all(t.map(async s=>{for await(let o of s)r.emitOne(o)}))})}constructor(t,r){this._state=0,this._results=[],this._error=null,this._onReturn=r,this._onStateChanged=new ke,queueMicrotask(async()=>{let s={emitOne:o=>this.emitOne(o),emitMany:o=>this.emitMany(o),reject:o=>this.reject(o)};try{await Promise.resolve(t(s)),this.resolve()}catch(o){this.reject(o)}finally{s.emitOne=void 0,s.emitMany=void 0,s.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await Tt.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,r){return new ht(async s=>{for await(let o of t)s.emitOne(r(o))})}map(t){return ht.map(this,t)}static filter(t,r){return new ht(async s=>{for await(let o of t)r(o)&&s.emitOne(o)})}filter(t){return ht.filter(this,t)}static coalesce(t){return ht.filter(t,r=>!!r)}coalesce(){return ht.coalesce(this)}static async toPromise(t){let r=[];for await(let s of t)r.push(s);return r}toPromise(){return ht.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};nl.EMPTY=nl.fromArray([]);function Uf(e){return 55296<=e&&e<=56319}function ol(e){return 56320<=e&&e<=57343}function zf(e,t){return(e-55296<<10)+(t-56320)+65536}function jf(e){return Kn(e,0)}function Kn(e,t){switch(typeof e){case"object":return e===null?zt(349,t):Array.isArray(e)?qf(e,t):Kf(e,t);case"string":return $l(e,t);case"boolean":return $f(e,t);case"number":return zt(e,t);case"undefined":return zt(937,t);default:return zt(617,t)}}function zt(e,t){return(t<<5)-t+e|0}function $f(e,t){return zt(e?433:863,t)}function $l(e,t){t=zt(149417,t);for(let r=0,s=e.length;r<s;r++)t=zt(e.charCodeAt(r),t);return t}function qf(e,t){return t=zt(104579,t),e.reduce((r,s)=>Kn(s,r),t)}function Kf(e,t){return t=zt(181387,t),Object.keys(e).sort().reduce((r,s)=>(r=$l(s,r),Kn(e[s],r)),t)}function En(e,t,r=32){let s=r-t,o=~((1<<s)-1);return(e<<t|(o&e)>>>s)>>>0}function al(e,t=0,r=e.byteLength,s=0){for(let o=0;o<r;o++)e[t+o]=s}function Gf(e,t,r="0"){for(;e.length<t;)e=r+e;return e}function ls(e,t=32){return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map(r=>r.toString(16).padStart(2,"0")).join(""):Gf((e>>>0).toString(16),t/4)}var Vf=class ql{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(t){let r=t.length;if(r===0)return;let s=this._buff,o=this._buffLen,i=this._leftoverHighSurrogate,n,a;for(i!==0?(n=i,a=-1,i=0):(n=t.charCodeAt(0),a=0);;){let u=n;if(Uf(n))if(a+1<r){let l=t.charCodeAt(a+1);ol(l)?(a++,u=zf(n,l)):u=65533}else{i=n;break}else ol(n)&&(u=65533);if(o=this._push(s,o,u),a++,a<r)n=t.charCodeAt(a);else break}this._buffLen=o,this._leftoverHighSurrogate=i}_push(t,r,s){return s<128?t[r++]=s:s<2048?(t[r++]=192|(s&1984)>>>6,t[r++]=128|(s&63)>>>0):s<65536?(t[r++]=224|(s&61440)>>>12,t[r++]=128|(s&4032)>>>6,t[r++]=128|(s&63)>>>0):(t[r++]=240|(s&1835008)>>>18,t[r++]=128|(s&258048)>>>12,t[r++]=128|(s&4032)>>>6,t[r++]=128|(s&63)>>>0),r>=64&&(this._step(),r-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),r}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),ls(this._h0)+ls(this._h1)+ls(this._h2)+ls(this._h3)+ls(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,al(this._buff,this._buffLen),this._buffLen>56&&(this._step(),al(this._buff));let t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){let t=ql._bigBlock32,r=this._buffDV;for(let m=0;m<64;m+=4)t.setUint32(m,r.getUint32(m,!1),!1);for(let m=64;m<320;m+=4)t.setUint32(m,En(t.getUint32(m-12,!1)^t.getUint32(m-32,!1)^t.getUint32(m-56,!1)^t.getUint32(m-64,!1),1),!1);let s=this._h0,o=this._h1,i=this._h2,n=this._h3,a=this._h4,u,l,_;for(let m=0;m<80;m++)m<20?(u=o&i|~o&n,l=1518500249):m<40?(u=o^i^n,l=1859775393):m<60?(u=o&i|o&n|i&n,l=2400959708):(u=o^i^n,l=3395469782),_=En(s,5)+u+a+l+t.getUint32(m*4,!1)&4294967295,a=n,n=i,i=En(o,30),o=s,s=_;this._h0=this._h0+s&4294967295,this._h1=this._h1+o&4294967295,this._h2=this._h2+i&4294967295,this._h3=this._h3+n&4294967295,this._h4=this._h4+a&4294967295}};Vf._bigBlock32=new DataView(new ArrayBuffer(320));var{registerWindow:Vg,getWindow:Yf,getDocument:Yg,getWindows:Xg,getWindowsCount:Jg,getWindowId:ll,getWindowById:Zg,hasWindow:Qg,onDidRegisterWindow:ev,onWillUnregisterWindow:tv,onDidUnregisterWindow:rv}=(function(){let e=new Map,t={window:gt,disposables:new Pr};e.set(gt.vscodeWindowId,t);let r=new ke,s=new ke,o=new ke;function i(n,a){return(typeof n=="number"?e.get(n):void 0)??(a?t:void 0)}return{onDidRegisterWindow:r.event,onWillUnregisterWindow:o.event,onDidUnregisterWindow:s.event,registerWindow(n){if(e.has(n.vscodeWindowId))return st.None;let a=new Pr,u={window:n,disposables:a.add(new Pr)};return e.set(n.vscodeWindowId,u),a.add($e(()=>{e.delete(n.vscodeWindowId),s.fire(n)})),a.add(Un(n,Zf.BEFORE_UNLOAD,()=>{o.fire(n)})),r.fire(u),a},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(n){return n.vscodeWindowId},hasWindow(n){return e.has(n)},getWindowById:i,getWindow(n){let a=n;if(a?.ownerDocument?.defaultView)return a.ownerDocument.defaultView.window;let u=n;return u?.view?u.view.window:gt},getDocument(n){return Yf(n).document}}})(),Xf=class{constructor(e,t,r,s){this._node=e,this._type=t,this._handler=r,this._options=s||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}};function Un(e,t,r,s){return new Xf(e,t,r,s)}var Jf,cl,Ln=class{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){ei(e)}}static sort(e,t){return t.priority-e.priority}};(function(){let e=new Map,t=new Map,r=new Map,s=new Map,o=i=>{r.set(i,!1);let n=e.get(i)??[];for(t.set(i,n),e.set(i,[]),s.set(i,!0);n.length>0;)n.sort(Ln.sort),n.shift().execute();s.set(i,!1)};cl=(i,n,a=0)=>{let u=ll(i),l=new Ln(n,a),_=e.get(u);return _||(_=[],e.set(u,_)),_.push(l),r.get(u)||(r.set(u,!0),i.requestAnimationFrame(()=>o(u))),l},Jf=(i,n,a)=>{let u=ll(i);if(s.get(u)){let l=new Ln(n,a),_=t.get(u);return _||(_=[],t.set(u,_)),_.push(l),l}else return cl(i,n,a)}})();var hl=class li{constructor(t,r){this.width=t,this.height=r}with(t=this.width,r=this.height){return t!==this.width||r!==this.height?new li(t,r):this}static is(t){return typeof t=="object"&&typeof t.height=="number"&&typeof t.width=="number"}static lift(t){return t instanceof li?t:new li(t.width,t.height)}static equals(t,r){return t===r?!0:!t||!r?!1:t.width===r.width&&t.height===r.height}};hl.None=new hl(0,0);var sv=new class{constructor(){this.mutationObservers=new Map}observe(e,t,r){let s=this.mutationObservers.get(e);s||(s=new Map,this.mutationObservers.set(e,s));let o=jf(r),i=s.get(o);if(i)i.users+=1;else{let n=new ke,a=new MutationObserver(l=>n.fire(l));a.observe(e,r);let u=i={users:1,observer:a,onDidMutate:n.event};t.add($e(()=>{u.users-=1,u.users===0&&(n.dispose(),a.disconnect(),s?.delete(o),s?.size===0&&this.mutationObservers.delete(e))})),s.set(o,i)}return i.onDidMutate}},Zf={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:yn?"webkitAnimationStart":"animationstart",ANIMATION_END:yn?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:yn?"webkitAnimationIteration":"animationiteration"},Qf=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;function Kl(e,t,r,...s){let o=Qf.exec(t);if(!o)throw new Error("Bad use of emmet");let i=o[1]||"div",n;return e!=="http://www.w3.org/1999/xhtml"?n=document.createElementNS(e,i):n=document.createElement(i),o[3]&&(n.id=o[3]),o[4]&&(n.className=o[4].replace(/\./g," ").trim()),r&&Object.entries(r).forEach(([a,u])=>{typeof u>"u"||(/^on\w+$/.test(a)?n[a]=u:a==="selected"?u&&n.setAttribute(a,"true"):n.setAttribute(a,u))}),n.append(...s),n}function ep(e,t,...r){return Kl("http://www.w3.org/1999/xhtml",e,t,...r)}ep.SVG=function(e,t,...r){return Kl("http://www.w3.org/2000/svg",e,t,...r)};var tp=class extends st{constructor(e,t,r,s,o,i,n,a,u){super(),this._terminal=e,this._characterJoinerService=t,this._charSizeService=r,this._coreBrowserService=s,this._coreService=o,this._decorationService=i,this._optionsService=n,this._themeService=a,this._cursorBlinkStateManager=new is,this._charAtlasDisposable=this._register(new is),this._observerDisposable=this._register(new is),this._model=new gf,this._workCell=new ja,this._workCell2=new ja,this._rectangleRenderer=this._register(new is),this._glyphRenderer=this._register(new is),this._onChangeTextureAtlas=this._register(new ke),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this._register(new ke),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this._register(new ke),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this._register(new ke),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this._register(new ke),this.onContextLoss=this._onContextLoss.event,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas");let l={antialias:!1,depth:!1,preserveDrawingBuffer:u};if(this._gl=this._canvas.getContext("webgl2",l),!this._gl)throw new Error("WebGL2 not supported "+this._gl);this._register(this._themeService.onChangeColors(()=>this._handleColorChange())),this._cellColorResolver=new Au(this._terminal,this._optionsService,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new Cf(this._core.screenElement,2,this._terminal,this._core.linkifier,this._coreBrowserService,n,this._themeService)],this.dimensions=Ru(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this._register(n.onOptionChange(()=>this._handleOptionsChanged())),this._deviceMaxTextureSize=this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),this._register(Un(this._canvas,"webglcontextlost",_=>{console.log("webglcontextlost event received"),_.preventDefault(),this._contextRestorationTimeout=setTimeout(()=>{this._contextRestorationTimeout=void 0,console.warn("webgl context not restored; firing onContextLoss"),this._onContextLoss.fire(_)},3e3)})),this._register(Un(this._canvas,"webglcontextrestored",_=>{console.warn("webglcontextrestored event received"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,Ua(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()})),this._observerDisposable.value=za(this._canvas,this._coreBrowserService.window,(_,m)=>this._setCanvasDevicePixelDimensions(_,m)),this._register(this._coreBrowserService.onWindowChange(_=>{this._observerDisposable.value=za(this._canvas,_,(m,y)=>this._setCanvasDevicePixelDimensions(m,y))})),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._core.screenElement.isConnected,this._register($e(()=>{for(let _ of this._renderLayers)_.dispose();this._canvas.parentElement?.removeChild(this._canvas),Ua(this._terminal)}))}get textureAtlas(){return this._charAtlas?.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(e,t){this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(let r of this._renderLayers)r.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,this._rectangleRenderer.value?.setDimensions(this.dimensions),this._rectangleRenderer.value?.handleResize(),this._glyphRenderer.value?.setDimensions(this.dimensions),this._glyphRenderer.value?.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){for(let e of this._renderLayers)e.handleBlur(this._terminal);this._cursorBlinkStateManager.value?.pause(),this._requestRedrawViewport()}handleFocus(){for(let e of this._renderLayers)e.handleFocus(this._terminal);this._cursorBlinkStateManager.value?.resume(),this._requestRedrawViewport()}handleSelectionChanged(e,t,r){for(let s of this._renderLayers)s.handleSelectionChanged(this._terminal,e,t,r);this._model.selection.update(this._core,e,t,r),this._requestRedrawViewport()}handleCursorMove(){for(let e of this._renderLayers)e.handleCursorMove(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new yf(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new ff(this._terminal,this._gl,this.dimensions,this._optionsService),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0){this._isAttached=!1;return}let e=Ol(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr,this._deviceMaxTextureSize);this._charAtlas!==e&&(this._onChangeTextureAtlas.fire(e.pages[0].canvas),this._charAtlasDisposable.value=vl(Tt.forward(e.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),Tt.forward(e.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas))),this._charAtlas=e,this._charAtlas.warmUp(),this._glyphRenderer.value?.setAtlas(this._charAtlas)}_clearModel(e){this._model.clear(),e&&this._glyphRenderer.value?.clear()}clearTextureAtlas(){this._charAtlas?.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){this._clearModel(!0);for(let e of this._renderLayers)e.reset(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._updateCursorBlink()}renderRows(e,t){if(!this._isAttached)if(this._core.screenElement?.isConnected&&this._charSizeService.width&&this._charSizeService.height)this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0;else return;for(let r of this._renderLayers)r.handleGridChanged(this._terminal,e,t);!this._glyphRenderer.value||!this._rectangleRenderer.value||(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(e,t),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible)&&this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._coreService.decPrivateModes.cursorBlink??this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new of(()=>{this._requestRedrawCursor()},this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(e,t){let r=this._core,s=this._workCell,o,i,n,a,u,l,_=0,m=!0,y,p,c,d,h,f,g,C,v;e=dl(e,r.rows-1,0),t=dl(t,r.rows-1,0);let x=this._coreService.decPrivateModes.cursorStyle??r.options.cursorStyle??"block",b=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,E=b-r.buffer.ydisp,O=Math.min(this._terminal.buffer.active.cursorX,r.cols-1),B=-1,N=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let A=!1;for(i=e;i<=t;i++)for(n=i+r.buffer.ydisp,a=r.buffer.lines.get(n),this._model.lineLengths[i]=0,c=b===n,_=0,u=this._characterJoinerService.getJoinedCharacters(n),C=0;C<r.cols;C++){if(o=this._cellColorResolver.result.bg,a.loadCell(C,s),C===0&&(o=this._cellColorResolver.result.bg),l=!1,m=C>=_,y=C,u.length>0&&C===u[0][0]&&m){p=u.shift();let K=this._model.selection.isCellSelected(this._terminal,p[0],n);for(g=p[0]+1;g<p[1];g++)m&&(m=K===this._model.selection.isCellSelected(this._terminal,g,n));m&&(m=!c||O<p[0]||O>=p[1]),m?(l=!0,s=new rp(s,a.translateToString(!0,p[0],p[1]),p[1]-p[0]),y=p[1]-1):_=p[1]}if(d=s.getChars(),h=s.getCode(),g=(i*r.cols+C)*ci,this._cellColorResolver.resolve(s,C,n,this.dimensions.device.cell.width),N&&n===b&&(C===O&&(this._model.cursor={x:O,y:E,width:s.getWidth(),style:this._coreBrowserService.isFocused?x:r.options.cursorInactiveStyle,cursorWidth:r.options.cursorWidth,dpr:this._devicePixelRatio},B=O+s.getWidth()-1),C>=O&&C<=B&&(this._coreBrowserService.isFocused&&x==="block"||this._coreBrowserService.isFocused===!1&&r.options.cursorInactiveStyle==="block")&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),h!==0&&(this._model.lineLengths[i]=C+1),!(this._model.cells[g]===h&&this._model.cells[g+si]===this._cellColorResolver.result.bg&&this._model.cells[g+ii]===this._cellColorResolver.result.fg&&this._model.cells[g+bn]===this._cellColorResolver.result.ext)&&(A=!0,d.length>1&&(h|=mf),this._model.cells[g]=h,this._model.cells[g+si]=this._cellColorResolver.result.bg,this._model.cells[g+ii]=this._cellColorResolver.result.fg,this._model.cells[g+bn]=this._cellColorResolver.result.ext,f=s.getWidth(),this._glyphRenderer.value.updateCell(C,i,h,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,d,f,o),l)){for(s=this._workCell,C++;C<=y;C++)v=(i*r.cols+C)*ci,this._glyphRenderer.value.updateCell(C,i,0,0,0,0,Cu,0,0),this._model.cells[v]=0,this._model.cells[v+si]=this._cellColorResolver.result.bg,this._model.cells[v+ii]=this._cellColorResolver.result.fg,this._model.cells[v+bn]=this._cellColorResolver.result.ext;C--}}A&&this._rectangleRenderer.value.updateBackgrounds(this._model),this._rectangleRenderer.value.updateCursor(this._model)}_updateDimensions(){!this._charSizeService.width||!this._charSizeService.height||(this.dimensions.device.char.width=Math.floor(this._charSizeService.width*this._devicePixelRatio),this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*this._devicePixelRatio),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.top=this._optionsService.rawOptions.lineHeight===1?0:Math.round((this.dimensions.device.cell.height-this.dimensions.device.char.height)/2),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.char.left=Math.floor(this._optionsService.rawOptions.letterSpacing/2),this.dimensions.device.canvas.height=this._terminal.rows*this.dimensions.device.cell.height,this.dimensions.device.canvas.width=this._terminal.cols*this.dimensions.device.cell.width,this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/this._devicePixelRatio),this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/this._devicePixelRatio),this.dimensions.css.cell.height=this.dimensions.device.cell.height/this._devicePixelRatio,this.dimensions.css.cell.width=this.dimensions.device.cell.width/this._devicePixelRatio)}_setCanvasDevicePixelDimensions(e,t){this._canvas.width===e&&this._canvas.height===t||(this._canvas.width=e,this._canvas.height=t,this._requestRedrawViewport())}_requestRedrawViewport(){this._onRequestRedraw.fire({start:0,end:this._terminal.rows-1})}_requestRedrawCursor(){let e=this._terminal.buffer.active.cursorY;this._onRequestRedraw.fire({start:e,end:e})}},rp=class extends Ar{constructor(e,t,r){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=r}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}};function dl(e,t,r=0){return Math.max(Math.min(e,t),r)}var ul="di$target",fl="di$dependencies",Tn=new Map;function Mt(e){if(Tn.has(e))return Tn.get(e);let t=function(r,s,o){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");sp(t,r,o)};return t._id=e,Tn.set(e,t),t}function sp(e,t,r){t[ul]===t?t[fl].push({id:e,index:r}):(t[fl]=[{id:e,index:r}],t[ul]=t)}var iv=Mt("BufferService"),nv=Mt("CoreMouseService"),ov=Mt("CoreService"),av=Mt("CharsetService"),lv=Mt("InstantiationService"),cv=Mt("LogService"),ip=Mt("OptionsService"),hv=Mt("OscLinkService"),dv=Mt("UnicodeService"),uv=Mt("DecorationService"),np={trace:0,debug:1,info:2,warn:3,error:4,off:5},op="xterm.js: ",pl=class extends st{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),Gl=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=np[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)typeof e[t]=="function"&&(e[t]=e[t]())}_log(e,t,r){this._evalLazyOptionalParams(r),e.call(console,(this._optionsService.options.logger?"":op)+t,...r)}trace(e,...t){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};pl=su([iu(0,ip)],pl);var Gl;function ap(e){Gl=e}var Vl=class extends st{constructor(e){if(yl&&Su()<16){let t={antialias:!1,depth:!1,preserveDrawingBuffer:!0};if(!document.createElement("canvas").getContext("webgl2",t))throw new Error("Webgl2 is only supported on Safari 16 and above")}super(),this._preserveDrawingBuffer=e,this._onChangeTextureAtlas=this._register(new ke),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this._register(new ke),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this._register(new ke),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this._register(new ke),this.onContextLoss=this._onContextLoss.event}activate(e){let t=e._core;if(!e.element){this._register(t.onWillOpen(()=>this.activate(e)));return}this._terminal=e;let r=t.coreService,s=t.optionsService,o=t,i=o._renderService,n=o._characterJoinerService,a=o._charSizeService,u=o._coreBrowserService,l=o._decorationService,_=o._logService,m=o._themeService;ap(_),this._renderer=this._register(new tp(e,n,a,u,r,l,s,m,this._preserveDrawingBuffer)),this._register(Tt.forward(this._renderer.onContextLoss,this._onContextLoss)),this._register(Tt.forward(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this._register(Tt.forward(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this._register(Tt.forward(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),i.setRenderer(this._renderer),this._register($e(()=>{if(this._terminal._core._store._isDisposed)return;let y=this._terminal._core._renderService;y.setRenderer(this._terminal._core._createRenderer()),y.handleResize(e.cols,e.rows)}))}get textureAtlas(){return this._renderer?.textureAtlas}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}};var Yl=`/**
119
119
  * Copyright (c) 2014 The xterm.js authors. All rights reserved.
120
120
  * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
121
121
  * https://github.com/chjj/term.js
@@ -333,7 +333,7 @@ void main() {
333
333
  z-index: 2;
334
334
  position: relative;
335
335
  }
336
- `;var xl=`/* eslint-disable */
336
+ `;var Xl=`/* eslint-disable */
337
337
  /**
338
338
  * @hyzyn/dsh-tty \u2014 \u9762\u677F\u6837\u5F0F\u8868\u3002
339
339
  *
@@ -656,15 +656,63 @@ void main() {
656
656
  }
657
657
 
658
658
  /* ---- \u6807\u7B7E ---- */
659
- .tt_tabs {
659
+
660
+ /*
661
+ * \u6807\u7B7E\u533A\u5916\u58F3\uFF08D89\uFF09\uFF1A\u5934\u90E8\u91CC\u90A3\u4E2A\u300C\u5403\u6389\u5269\u4F59\u5BBD\u5EA6\u300D\u7684\u5F39\u6027\u9879\u662F**\u5B83**\uFF0C\u4E0D\u662F .tt_tabs\u3002
662
+ * \u597D\u5904\u662F\u300C+\u300D\u80FD\u540C\u65F6\u6EE1\u8DB3\u4E24\u4EF6\u4E8B\uFF1A\u6807\u7B7E\u4E0D\u591A\u65F6\u7D27\u8D34\u6700\u540E\u4E00\u4E2A\u6807\u7B7E\uFF08\u56E0\u4E3A .tt_tabs \u4E0D\u6491\u6EE1\uFF09\uFF0C
663
+ * \u6807\u7B7E\u680F\u6392\u6EE1\u65F6\u88AB\u9876\u5230\u53F3\u7AEF\u4F46\u4F9D\u7136\u5728\u6EDA\u52A8\u5BB9\u5668\u4E4B\u5916\uFF08\u4E0D\u4F1A\u88AB\u6EDA\u8D70 / \u6EDA\u51FA\u53EF\u89C6\u533A\uFF09\u3002
664
+ */
665
+ .tt_tabbar {
660
666
  flex: 1 1 0;
661
667
  display: flex;
662
668
  align-items: center;
663
669
  gap: var(--tt-gap-sm);
664
670
  min-width: 0;
671
+ }
672
+ .tt_tabs {
673
+ /*
674
+ * \u4E24\u7AEF\u7684\u6E10\u9690\u5E26\u5BBD\u3002**client-src \u91CC\u6709\u5B83\u7684\u5B6A\u751F\u5E38\u91CF** TAB_VISIBLE_MIN_PX\uFF08D90\uFF09\uFF1A
675
+ * \u53EA\u9732\u51FA\u4E0D\u5230\u6E10\u9690\u5E26\u7684\u6807\u7B7E\u8089\u773C\u770B\u4E0D\u89C1\uFF0C\u5FC5\u987B\u7B97\u8FDB\u300C\u9690\u85CF\u300D\uFF0C\u5426\u5219\u5B83\u4F1A\u65E2\u4E0D\u5728\u680F\u4E0A\u3001
676
+ * \u4E5F\u4E0D\u5728\u300C\u22EF\u300D\u5217\u8868\u91CC\u3002\u6539\u8FD9\u91CC\u8981\u56DE\u5934\u770B\u90A3\u4E00\u4E2A\u3002
677
+ */
678
+ --tt-tabfade: 22px;
679
+ /* \u4E0D\u6491\u6EE1\uFF1A\u5BBD\u5EA6\u5C31\u662F\u6807\u7B7E\u7684\u603B\u5BBD\uFF0C\u6240\u4EE5\u300C+\u300D\u8D34\u7740\u6700\u540E\u4E00\u4E2A\u6807\u7B7E\uFF1B\u6392\u4E0D\u4E0B\u65F6\u5B83\u624D\u6536\u7F29
680
+ \uFF08flex-shrink: 1 + min-width: 0\uFF09\u5E76\u51FA\u73B0\u6A2A\u5411\u6EDA\u52A8\u6761 */
681
+ flex: 0 1 auto;
682
+ display: flex;
683
+ align-items: center;
684
+ gap: var(--tt-gap-sm);
685
+ min-width: 0;
665
686
  padding: 1px 0;
666
687
  overflow-x: auto;
667
688
  overflow-y: hidden;
689
+ /*
690
+ * \u6EDA\u52A8\u6761\u5728\u6807\u7B7E\u884C\u91CC\u50CF\u4E00\u6839\u5F02\u7269\uFF080.23.0 \u7528\u6237\u53CD\u9988\uFF1A\u9875\u7B7E\u4E00\u591A\uFF0C\u4E00\u6761\u7070\u4EAE\u6761\u6A2A\u5728\u6807\u7B7E\u4E0B\u9762\uFF0C
691
+ * \u8FD8\u5360\u7740\u9AD8\u5EA6\uFF09\uFF0C\u6240\u4EE5**\u9690\u85CF\u5B83**\u2014\u2014\u624B\u6CD5\u4E0E .tt_statsBar \u4E00\u81F4\uFF1B\u66FF\u4EE3\u63D0\u793A\u662F\u4E0B\u9762\u90A3\u5957
692
+ * \u300C\u54EA\u8FB9\u8FD8\u6709\u6807\u7B7E\u3001\u54EA\u8FB9\u6E10\u9690\u300D\u7684\u906E\u7F69\uFF08data-edge \u7531 client-src \u7684 syncTabEdges \u7EF4\u62A4\uFF09\u3002
693
+ * \u6CE8\u610F .tt_modal * \u7ED9\u6240\u6709\u540E\u4EE3\u8BBE\u4E86 scrollbar-width: thin\uFF0C\u8FD9\u91CC\u5FC5\u987B\u663E\u5F0F\u8986\u76D6\u6210 none\uFF1A
694
+ * \u5B83\u662F\u7EE7\u627F\u5C5E\u6027\uFF0C\u7559\u7740 thin \u5C31\u7B49\u4E8E\u300C\u4E00\u6761\u4E3B\u9898\u8272\u7EC6\u6761\u300D\uFF08\u540C D86 \u7684\u6559\u8BAD\uFF09\u3002
695
+ */
696
+ scrollbar-width: none;
697
+ }
698
+ .tt_tabs::-webkit-scrollbar {
699
+ display: none;
700
+ }
701
+ /*
702
+ * \u6EA2\u51FA\u63D0\u793A\uFF1Adata-edge \u8BF4\u7684\u5C31\u662F\u300C\u54EA\u8FB9\u8FD8\u6709\u5185\u5BB9\u300D\u2014\u2014\u4E0D\u6EA2\u51FA\u65F6\u8BE5\u5C5E\u6027\u88AB\u5220\u6389\uFF0C
703
+ * \u4E8E\u662F**\u4E00\u70B9\u906E\u7F69\u90FD\u6CA1\u6709**\uFF08\u8FD9\u662F\u5E38\u89C1\u60C5\u5F62\uFF0C\u4E0D\u80FD\u8BA9\u4EBA\u4EE5\u4E3A\u6807\u7B7E\u88AB\u88C1\u4E86\uFF09\u3002
704
+ */
705
+ .tt_tabs[data-edge=end] {
706
+ -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - var(--tt-tabfade)), transparent);
707
+ mask-image: linear-gradient(90deg, #000 calc(100% - var(--tt-tabfade)), transparent);
708
+ }
709
+ .tt_tabs[data-edge=start] {
710
+ -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--tt-tabfade));
711
+ mask-image: linear-gradient(90deg, transparent, #000 var(--tt-tabfade));
712
+ }
713
+ .tt_tabs[data-edge=both] {
714
+ -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--tt-tabfade), #000 calc(100% - var(--tt-tabfade)), transparent);
715
+ mask-image: linear-gradient(90deg, transparent, #000 var(--tt-tabfade), #000 calc(100% - var(--tt-tabfade)), transparent);
668
716
  }
669
717
  .tt_tab {
670
718
  display: inline-flex;
@@ -768,7 +816,8 @@ void main() {
768
816
  font-size: 12px;
769
817
  box-sizing: border-box;
770
818
  }
771
- .tt_tabAdd {
819
+ .tt_tabAdd,
820
+ .tt_tabMore {
772
821
  display: inline-flex;
773
822
  align-items: center;
774
823
  justify-content: center;
@@ -783,7 +832,8 @@ void main() {
783
832
  cursor: pointer;
784
833
  transition: background var(--tt-dur) var(--tt-ease), color var(--tt-dur) var(--tt-ease), border-color var(--tt-dur) var(--tt-ease), transform var(--tt-dur) var(--tt-ease);
785
834
  }
786
- .tt_tabAdd:hover {
835
+ .tt_tabAdd:hover,
836
+ .tt_tabMore:hover {
787
837
  border-color: var(--tt-accent);
788
838
  border-style: solid;
789
839
  background: color-mix(in srgb, var(--tt-accent) 12%, transparent);
@@ -792,10 +842,19 @@ void main() {
792
842
  .tt_tabAdd:active {
793
843
  transform: rotate(90deg);
794
844
  }
795
- .tt_tabAdd:focus-visible {
845
+ .tt_tabAdd:focus-visible,
846
+ .tt_tabMore:focus-visible {
796
847
  outline: none;
797
848
  box-shadow: var(--tt-ring);
798
849
  }
850
+ /*
851
+ * \u300C\u22EF\u300D= \u6807\u7B7E\u5217\u8868\u5165\u53E3\uFF0C**\u53EA\u5728\u6807\u7B7E\u680F\u6EA2\u51FA\u65F6**\u51FA\u73B0\uFF08syncTabOverflow \u7EF4\u62A4 hidden\uFF09\u3002
852
+ * \u8FD9\u6761 [hidden] \u515C\u5E95\u4E0D\u662F\u5197\u4F59\uFF1A\u4E0A\u9762\u7ED9\u4E86\u4F5C\u8005\u6837\u5F0F\u7684 display:inline-flex\uFF0CUA \u8868\u90A3\u6761
853
+ * display:none \u4F1A\u88AB\u5B83\u76D6\u6389\u2014\u2014\u4E0D\u5199\u5C31\u662F\u300C\u6C38\u8FDC\u663E\u793A\u300D\uFF08\u540C .tt_statsBar[hidden] \u7684\u5751\uFF09\u3002
854
+ */
855
+ .tt_tabMore[hidden] {
856
+ display: none;
857
+ }
799
858
 
800
859
  /* ---- \u72B6\u6001\u80F6\u56CA ---- */
801
860
  .tt_status {
@@ -1312,6 +1371,31 @@ void main() {
1312
1371
  }
1313
1372
  .tt_term .xterm-viewport {
1314
1373
  background: transparent !important;
1374
+ /*
1375
+ * D86\uFF1A\u628A\u4E24\u4E2A\u300C\u6807\u51C6\u6EDA\u52A8\u6761\u5C5E\u6027\u300D\u90FD\u590D\u4F4D\u56DE auto\uFF0C\u8BA9\u89C6\u53E3\u91CD\u65B0\u8D70 \`::-webkit-scrollbar\`
1376
+ * \u90A3\u5957\u76AE\u80A4\uFF08\u4E0B\u9762\u4E09\u6761\u89C4\u5219\uFF09\u3002\u4E0A\u9762\u300C\u7EDF\u4E00\u7EC6\u6EDA\u52A8\u6761\u300D\u628A\u5B83\u4EEC\u8BBE\u5728\u4E86 \`.tt_modal *\`\uFF08\u4EE5\u53CA
1377
+ * .tt_card / .tt_tunnelPop \u7B49\uFF09\u4E0A\uFF0C\u800C\u4E24\u8005\u90FD\u662F**\u7EE7\u627F\u5C5E\u6027**\u2014\u2014\u9762\u677F\u91CC\u7684 \`.xterm-viewport\`
1378
+ * \u56E0\u6B64\u4E5F\u62FF\u5230 \`scrollbar-width: thin\` + \u4E3B\u9898 token \u8272\u3002
1379
+ *
1380
+ * Chromium \u7684\u89C4\u5219\u662F\uFF1A\u6EDA\u52A8\u5BB9\u5668\u53EA\u8981**\u4EFB\u4E00**\u6807\u51C6\u5C5E\u6027\u662F\u975E \`auto\`\uFF0C\u5C31\u5207\u5230\u300C\u6807\u51C6\u6EDA\u52A8\u6761\u300D
1381
+ * \u7ED8\u5236\u8DEF\u5F84\uFF0C\u8BE5\u5143\u7D20\u4E0A\u7684 \`::-webkit-scrollbar*\` \u6837\u5F0F**\u6574\u4F53\u5931\u6548**\u3002\u4E8E\u662F\u4E0B\u9762\u90A3\u5957 4px
1382
+ * \u6DE1\u767D\u80F6\u56CA\u88AB\u6362\u6210\u4E0D\u900F\u660E\u6761\uFF0C\u4EAE\u8272\u4E3B\u9898\u4E0B\u5C31\u662F \`--dsw-static-neutral-200\` = #e5e5e5 \u7684\u4E00\u6839
1383
+ * \u4EAE\u6761\uFF0C\u538B\u5728\u56FA\u5B9A\u6DF1\u8272\u7684\u7EC8\u7AEF\u533A\u4E0A\u767D\u5F97\u624E\u773C\uFF08\u7528\u6237\u622A\u56FE\u4E0A\u62A5\u7684\u5C31\u662F\u5B83\uFF09\u3002
1384
+ *
1385
+ * \u26A0\uFE0F **\u4E24\u4E2A\u90FD\u8981\u590D\u4F4D\uFF0C\u53EA\u590D\u4F4D color \u4E0D\u591F**\uFF1A\u5B9E\u6D4B\uFF08headless / DPR=2 / \u771F\u5B9E CSS\uFF0C\u4E09\u4E2A\u76D2\u5B50
1386
+ * \u53EA\u5DEE\u6807\u51C6\u5C5E\u6027\uFF09\u2014\u2014
1387
+ * X \`scrollbar-color: auto\` + \u7EE7\u627F\u6765\u7684 \`thin\` \u2192 22 device px \u7684**\u4E3B\u9898\u5916 UA \u4EAE\u6761**
1388
+ * \uFF08\u5256\u9762 232\u2502250\xD74\u2502193\xD712\u2502250\u2502237\uFF1A\u8F68\u9053 + \u9ED8\u8BA4\u6ED1\u5757\uFF09\uFF0C\u76AE\u80A4\u6CA1\u56DE\u6765\uFF1B
1389
+ * Y \`scrollbar-color: auto\` + \`scrollbar-width: auto\` \u2192 8 device px\u3001\u5256\u9762 53\xD78\uFF0C
1390
+ * \u6B63\u662F rgba(255,255,255,.16) \u53E0\u5728 #0b0e14 \u4E0A = \u76AE\u80A4\u56DE\u6765\u4E86\uFF1B
1391
+ * Z \u4E0D\u53D7\u9762\u677F\u89C4\u5219\u5F71\u54CD\uFF08\u5BF9\u7167\uFF09\u2192 \u4E0E Y \u4E00\u81F4\u3002
1392
+ * \u6240\u4EE5 \`scrollbar-width: auto\` \u8FD9\u4E00\u884C\u4E0D\u662F\u5197\u4F59\uFF0C\`test/scrollbar-skin.test.ts\` \u9489\u7740\u8FD9\u5C42\u5173\u7CFB\u3002
1393
+ *
1394
+ * \u53EA\u80FD\u5728\u89C6\u53E3\u672C\u4F53\u4E0A\u590D\u4F4D\u3001\u4E0D\u80FD\u9760\u7ED9 \`.tt_modal *\` \u52A0 \`:not()\` \u7ED5\u5F00\uFF1A\u7956\u5148\u4E0A\u7684\u503C\u7167\u6837\u7EE7\u627F\u3002
1395
+ * \u6EDA\u52A8\u6761**\u53EA\u5728\u771F\u6709\u53EF\u6EDA\u8303\u56F4\u65F6\u624D\u753B**\uFF08xterm \u7F13\u51B2\u591A\u51FA\u5386\u53F2 / \u56DE\u653E\u6B8B\u6E23\uFF09\uFF0C\u672C\u884C\u4E0D\u6539\u8BE5\u884C\u4E3A\u3002
1396
+ */
1397
+ scrollbar-color: auto;
1398
+ scrollbar-width: auto;
1315
1399
  }
1316
1400
  .tt_term .xterm-viewport::-webkit-scrollbar {
1317
1401
  width: 10px;
@@ -1751,6 +1835,55 @@ void main() {
1751
1835
  letter-spacing: .02em;
1752
1836
  }
1753
1837
 
1838
+ /* ---- \u300C\u22EF\u300D\u6807\u7B7E\u5217\u8868\uFF08\u6807\u7B7E\u680F\u6EA2\u51FA\u65F6\u7684\u515C\u5E95\u5165\u53E3\uFF0C0.23.0\uFF09 ---- */
1839
+ /*
1840
+ * \u76AE\u80A4\u590D\u7528 .tt_addMenu\uFF08\u542B D86 \u90A3\u5957\u6EDA\u52A8\u6761\u89C4\u5219\uFF09\uFF0C\u8FD9\u91CC\u53EA\u8865\u5B83\u7F3A\u7684\u4E09\u4EF6\uFF1A
1841
+ * \u5BBD\u5EA6\u3001\u884C\u6570\u4E0A\u9650\uFF08\u6807\u7B7E\u80FD\u6709\u51E0\u5341\u4E2A\uFF09\u3001\u4EE5\u53CA\u884C\u5185\u300C\u72B6\u6001\u70B9 + \u540D\u79F0 + \u76EE\u6807\u300D\u7684\u5355\u884C\u6392\u5E03\u3002
1842
+ * \u8BF4\u660E\uFF1A\u540D\u79F0\u4E0E\u76EE\u6807\u5E76\u6392\u800C\u4E0D\u662F\u4E0A\u4E0B\u4E24\u884C\u2014\u2014\u884C\u77EE\u4E00\u534A\uFF0C\u4E00\u5C4F\u80FD\u591A\u5217\u4E00\u500D\u6807\u7B7E\uFF1B\u76EE\u6807\u653E\u4E0D\u4E0B\u5C31\u7701\u7565\u3002
1843
+ */
1844
+ .tt_tabMenu {
1845
+ min-width: 260px;
1846
+ max-width: 320px;
1847
+ max-height: min(60vh, 420px);
1848
+ overflow-y: auto;
1849
+ }
1850
+ .tt_tabMenuItem {
1851
+ gap: var(--tt-gap-sm);
1852
+ }
1853
+ .tt_tabMenuItem[data-active] {
1854
+ background: color-mix(in srgb, var(--tt-accent) 13%, transparent);
1855
+ font-weight: 600;
1856
+ }
1857
+ .tt_tabMenuText {
1858
+ flex-direction: row;
1859
+ align-items: baseline;
1860
+ gap: var(--tt-gap-sm);
1861
+ }
1862
+ .tt_tabMenuText .tt_addMenuMain {
1863
+ flex: 0 1 auto;
1864
+ min-width: 0;
1865
+ }
1866
+ .tt_tabMenuMeta {
1867
+ flex: 1 1 auto;
1868
+ min-width: 0;
1869
+ overflow: hidden;
1870
+ text-overflow: ellipsis;
1871
+ color: var(--tt-label-3);
1872
+ font-size: 11px;
1873
+ }
1874
+ /*
1875
+ * \u5C3E\u90E8 \u2715\uFF1A\u9ED8\u8BA4\u538B\u6697\uFF08\u4E00\u5C4F\u5341\u51E0\u4E2A\u4EAE\u53C9\u5B50\u592A\u5435\uFF09\uFF0C\u884C hover / \u952E\u76D8\u805A\u7126\u65F6\u624D\u4EAE\u8D77\u6765\u3002
1876
+ * \u53EA\u6539\u900F\u660E\u5EA6\u3001\u4E0D\u52A8 pointer-events\u2014\u2014\u538B\u6697\u4E86\u4E5F\u7167\u6837\u70B9\u5F97\u5230\uFF08\u9884\u89C8\u65AD\u8A00\u76F4\u63A5\u70B9\u5B83\uFF09\u3002
1877
+ */
1878
+ .tt_tabMenuRow .tt_addMenuEdit {
1879
+ opacity: .45;
1880
+ transition: opacity var(--tt-dur) var(--tt-ease), background var(--tt-dur) var(--tt-ease), color var(--tt-dur) var(--tt-ease);
1881
+ }
1882
+ .tt_tabMenuRow:hover .tt_addMenuEdit,
1883
+ .tt_tabMenuRow .tt_addMenuEdit:focus-visible {
1884
+ opacity: 1;
1885
+ }
1886
+
1754
1887
  /* ======================= \u5BF9\u8BDD\u6846\u901A\u7528 ======================= */
1755
1888
 
1756
1889
  .tt_sshBackdrop {
@@ -2297,6 +2430,30 @@ void main() {
2297
2430
  .tt_shellList {
2298
2431
  margin-top: 6px;
2299
2432
  }
2433
+ /*
2434
+ * \u6A21\u578B\u8DEF\u7531\u7684\u5019\u9009\u8868\uFF1A**\u6D6E\u5C42**\uFF0C\u4E0D\u662F\u5185\u8054\u5217\u8868\u3002
2435
+ *
2436
+ * \u5185\u8054\uFF08\`.tt_shellList\` \u90A3\u79CD\u505A\u6CD5\uFF09\u4F1A\u628A\u8BBE\u7F6E\u5361\u7247\u9876\u9AD8\u3001\u628A\u4E0B\u9762\u7684\u5B57\u6BB5\u6574\u6BB5\u63A8\u8D70\u2014\u2014\u7528\u6237\u5B9E\u6D4B\u539F\u8BDD
2437
+ * \u300C\u4E0B\u62C9\u9009\u4F1A\u7834\u574F\u5E03\u5C40\u300D\u3002\u56FA\u5B9A\u5B9A\u4F4D + placePopover \u9010\u6B21\u5B9A\u4F4D\uFF0C\u4E0E\u300C+\u300D\u83DC\u5355\u3001\u7EC8\u7AEF\u90A3\u8FB9\u51E0\u4E2A\u6D6E\u5C42\u540C\u4E00\u5957\uFF1B
2438
+ * \u5BBD\u5EA6\u7531 JS \u5BF9\u9F50\u8F93\u5165\u6846\uFF08\u89C1 client-src \u7684\u5B9A\u4F4D effect\uFF09\u3002
2439
+ */
2440
+ .tt_routeList {
2441
+ position: fixed;
2442
+ z-index: 1400;
2443
+ max-width: min(560px, 92vw);
2444
+ max-height: 260px;
2445
+ box-shadow: var(--tt-shadow);
2446
+ }
2447
+ /* \u6A21\u578B\u8DEF\u7531\u662F**\u53EA\u8BFB**\u7684\uFF08\u53EA\u80FD\u9009\uFF0C\u4E0D\u80FD\u6253\u5B57\uFF09\uFF1A\u624B\u578B + \u85CF\u5149\u6807\uFF0C\u522B\u8BA9\u5B83\u770B\u8D77\u6765\u50CF\u80FD\u8F93 */
2448
+ .tt_routeInput {
2449
+ cursor: pointer;
2450
+ caret-color: transparent;
2451
+ }
2452
+ /* \u5F53\u524D\u751F\u6548\u7684\u90A3\u4E00\u6761\uFF08\u542B\u300C\u8DDF\u968F\u5BBF\u4E3B\u9ED8\u8BA4\u6A21\u578B\u300D\uFF09\uFF1A\u8BA9\u5B83\u4E00\u773C\u770B\u5F97\u51FA\u6765 */
2453
+ .tt_envItem[data-active] {
2454
+ background: var(--tt-hover);
2455
+ color: var(--tt-accent);
2456
+ }
2300
2457
  /*
2301
2458
  * \u8BBE\u7F6E\u5361\u7247\uFF08React \u4FA7\uFF09\u7F16\u8F91\u8868\u5355\u91CC\u7684\u5F15\u7528\u9009\u62E9\u5668\uFF1A**\u5185\u8054**\u5019\u9009\u5217\u8868\uFF0C\u4E0D\u505A\u6D6E\u5C42\u3002
2302
2459
  * \u5BF9\u8BDD\u6846\u90A3\u8FB9\u9760 \`.tt_sshRow > .tt_envList\` \u505A\u6D6E\u5C42\uFF08\u89C1\u4E0A\uFF09\uFF1B\u8FD9\u91CC\u523B\u610F\u4E0D\u590D\u7528 \`.tt_sshRow\`
@@ -2813,6 +2970,223 @@ void main() {
2813
2970
  color: var(--tt-danger);
2814
2971
  }
2815
2972
 
2973
+ /* ================== AI \u8F85\u52A9\u300C\u5931\u8D25\u5373\u89E3\u91CA\u300D\uFF080.24.0\uFF09 ================== */
2974
+
2975
+ /*
2976
+ * \u5FBD\u6807\u8D34\u5728\u7EC8\u7AEF\u533A\u53F3\u4E0B\u89D2\uFF0C**\u4E0D\u5360\u5E03\u5C40**\uFF1A\u9762\u677F\u91CC\u4EFB\u4F55\u9AD8\u5EA6\u53D8\u5316\u90FD\u4F1A\u7ECF\u65E2\u6709\u7684 ResizeObserver
2977
+ * \u89E6\u53D1\u4E00\u6B21 PTY refit\uFF08SIGWINCH \u2192 \u5168\u5C4F\u7A0B\u5E8F\u91CD\u7ED8\uFF09\u3002\u7EDD\u5BF9\u5B9A\u4F4D\u7684\u6D6E\u5C42\u8FDB\u51FA\u884C\u90FD\u4E0D\u52A8\u7EC8\u7AEF\uFF0C
2978
+ * hover \u7684\u4F4D\u79FB\u53EA\u8D70 transform\uFF08\u540C\u6837\u4E0D\u8FDB\u5E03\u5C40\uFF0C\u4E0D\u4F1A\u5E26\u6765\u4E00\u6B21 refit\uFF09\u3002
2979
+ */
2980
+ .tt_assistBadge {
2981
+ position: absolute;
2982
+ right: var(--tt-gap-lg);
2983
+ bottom: var(--tt-gap-lg);
2984
+ z-index: 4;
2985
+ display: inline-flex;
2986
+ align-items: center;
2987
+ gap: 6px;
2988
+ max-width: calc(100% - var(--tt-gap-xl) * 2);
2989
+ height: var(--tt-h-sm);
2990
+ padding: 0 10px;
2991
+ border: 1px solid var(--tt-border-strong);
2992
+ border-radius: var(--tt-r-pill);
2993
+ background: var(--tt-surface-solid);
2994
+ color: var(--tt-label-2);
2995
+ font: inherit;
2996
+ font-size: 12px;
2997
+ line-height: 1;
2998
+ white-space: nowrap;
2999
+ cursor: pointer;
3000
+ box-shadow: var(--tt-shadow);
3001
+ transition: color var(--tt-dur) var(--tt-ease), border-color var(--tt-dur) var(--tt-ease),
3002
+ box-shadow var(--tt-dur) var(--tt-ease), transform var(--tt-dur) var(--tt-ease);
3003
+ }
3004
+ /*
3005
+ * \u72B6\u6001\u5706\u70B9\uFF1A\u5FBD\u6807\u662F\u300C\u8FD9\u91CC\u51FA\u4E8B\u4E86\u300D\u7684\u4FE1\u53F7\uFF0C\u4E0D\u80FD\u53EA\u9760\u6587\u5B57\u2014\u2014\u4E0D\u7ED9\u8FD9\u4E2A\u5F62\u72B6\uFF0C\u5B83\u8DDF\u9762\u677F\u91CC
3006
+ * \u5176\u5B83 pill \u957F\u5F97\u4E00\u6A21\u4E00\u6837\uFF0C\u626B\u4E00\u773C\u5206\u4E0D\u51FA\u54EA\u4E2A\u662F\u8981\u5904\u7406\u7684\u3002
3007
+ */
3008
+ .tt_assistDot {
3009
+ flex: none;
3010
+ width: 6px;
3011
+ height: 6px;
3012
+ border-radius: var(--tt-r-pill);
3013
+ background: var(--tt-danger);
3014
+ }
3015
+ /* flex \u5B50\u9879\u7684 min-width \u9ED8\u8BA4\u662F auto\uFF0C\u4E0D\u5199\u8FD9\u6761\u7701\u7565\u53F7\u6C38\u8FDC\u4E0D\u751F\u6548\uFF08\u53EA\u4F1A\u628A\u6309\u94AE\u6491\u5BBD\uFF09 */
3016
+ .tt_assistBadgeText {
3017
+ min-width: 0;
3018
+ overflow: hidden;
3019
+ text-overflow: ellipsis;
3020
+ }
3021
+ .tt_assistBadge:hover {
3022
+ border-color: var(--tt-accent);
3023
+ color: var(--tt-accent);
3024
+ box-shadow: var(--tt-shadow-lg);
3025
+ transform: translateY(-1px);
3026
+ }
3027
+ .tt_assistBadge:active {
3028
+ transform: scale(.97);
3029
+ }
3030
+ .tt_assistBadge:focus-visible {
3031
+ outline: none;
3032
+ box-shadow: var(--tt-ring);
3033
+ }
3034
+ /*
3035
+ * \u8FD9\u6761 [hidden] \u515C\u5E95\u4E0D\u662F\u5197\u4F59\uFF1A\u4E0A\u9762\u7ED9\u4E86\u4F5C\u8005\u6837\u5F0F\u7684 display:inline-flex\uFF0CUA \u8868\u90A3\u6761
3036
+ * display:none \u4F1A\u88AB\u5B83\u76D6\u6389\u2014\u2014\u4E0D\u5199\u5C31\u662F\u300C\u6C38\u8FDC\u663E\u793A\u300D\uFF08\u540C .tt_statsBar[hidden] / .tt_tabAdd \u7684\u5751\uFF09\u3002
3037
+ */
3038
+ .tt_assistBadge[hidden] {
3039
+ display: none;
3040
+ }
3041
+
3042
+ /* \u7B54\u6848\u6D6E\u5C42\uFF1A\u76AE\u80A4\u590D\u7528 .tt_addMenu\uFF0C\u6362\u6389\u5B83\u7684\u83DC\u5355\u5185\u8FB9\u8DDD\u4E0E\u884C\u8DDD\uFF0C\u6539\u6210\u81EA\u5DF1\u6392\u7248\u7684\u5206\u6BB5\u5361\u7247 */
3043
+ .tt_assistMenu {
3044
+ width: 420px;
3045
+ max-width: min(92vw, 420px);
3046
+ /* \u8986\u76D6 .tt_addMenu \u7684 6px / 2px\uFF1A\u6BB5\u4E0E\u6BB5\u7684\u95F4\u9694\u7531\u5404\u81EA\u7684 margin \u51B3\u5B9A\uFF0C\u4E0D\u7528 gap */
3047
+ gap: 0;
3048
+ padding: 12px 14px 10px;
3049
+ }
3050
+ .tt_assistHead {
3051
+ display: flex;
3052
+ align-items: center;
3053
+ gap: var(--tt-gap-md);
3054
+ padding-bottom: 10px;
3055
+ border-bottom: 1px solid var(--tt-border);
3056
+ }
3057
+ /* \u6807\u9898\u524D\u7684\u7EA2\u70B9\u4E0E\u5FBD\u6807\u547C\u5E94\uFF1A\u4E00\u773C\u8BA4\u51FA\u8FD9\u662F\u300C\u521A\u624D\u90A3\u6761\u5931\u8D25\u300D\u7684\u540C\u4E00\u4E2A\u9762 */
3058
+ .tt_assistTitle {
3059
+ display: flex;
3060
+ align-items: center;
3061
+ gap: 7px;
3062
+ color: var(--tt-label);
3063
+ font-size: 13.5px;
3064
+ font-weight: 600;
3065
+ }
3066
+ .tt_assistTitle::before {
3067
+ content: '';
3068
+ flex: none;
3069
+ width: 6px;
3070
+ height: 6px;
3071
+ border-radius: var(--tt-r-pill);
3072
+ background: var(--tt-danger);
3073
+ }
3074
+ /* \u9000\u51FA\u7801\u505A\u6210\u836F\u4E38\uFF1A\u5B83\u662F\u8FD9\u4E00\u5C4F\u4FE1\u606F\u91CF\u6700\u5927\u7684\u4E00\u6761\uFF0C\u4E0D\u8BE5\u662F\u4E00\u884C\u53F3\u5BF9\u9F50\u7684\u7070\u8272\u5C0F\u5B57 */
3075
+ .tt_assistCode {
3076
+ margin-left: auto;
3077
+ padding: 2px 8px;
3078
+ border-radius: var(--tt-r-pill);
3079
+ background: color-mix(in srgb, var(--tt-danger) 12%, transparent);
3080
+ color: var(--tt-danger);
3081
+ font-family: var(--tt-mono);
3082
+ font-size: 11.5px;
3083
+ font-variant-numeric: tabular-nums;
3084
+ line-height: 1.5;
3085
+ }
3086
+ .tt_assistBody {
3087
+ max-height: 240px;
3088
+ margin-top: 10px;
3089
+ overflow-y: auto;
3090
+ color: var(--tt-label);
3091
+ font-size: 12.5px;
3092
+ line-height: 1.62;
3093
+ /* \u6A21\u578B\u7B54\u6848\u662F\u591A\u884C\u6587\u672C\uFF0C\u6362\u884C\u7167\u539F\u6837\u663E\u793A\uFF08\u5185\u5BB9\u4E00\u5F8B\u8D70 textContent\uFF0C\u7EDD\u4E0D innerHTML\uFF09 */
3094
+ white-space: pre-wrap;
3095
+ overflow-wrap: anywhere;
3096
+ }
3097
+ .tt_assistBusy {
3098
+ display: flex;
3099
+ align-items: center;
3100
+ gap: 8px;
3101
+ min-height: 32px;
3102
+ }
3103
+ /* \u7B49\u5F85\u5706\u73AF\uFF1A\u7EAF CSS\uFF0C\u4E0D\u5E26\u4EFB\u4F55\u56FE\u7247\u8D44\u6E90\uFF08\u9762\u677F\u662F\u6CE8\u5165\u8FDB\u5BBF\u4E3B\u9875\u9762\u7684\uFF0C\u4E0D\u80FD\u6709\u5916\u94FE\uFF09 */
3104
+ .tt_assistSpin {
3105
+ flex: none;
3106
+ width: 12px;
3107
+ height: 12px;
3108
+ border: 1.5px solid color-mix(in srgb, var(--tt-label-3) 40%, transparent);
3109
+ border-top-color: var(--tt-accent);
3110
+ border-radius: var(--tt-r-pill);
3111
+ animation: ttSpin .7s linear infinite;
3112
+ }
3113
+ @keyframes ttSpin {
3114
+ to {
3115
+ transform: rotate(360deg);
3116
+ }
3117
+ }
3118
+ /* \u7B49\u5F85\u6001\u7528\u4E8C\u7EA7\u7070\u800C\u975E\u4E09\u7EA7\uFF1A12px \u7684\u4E09\u7EA7\u7070\u5728\u767D\u5E95\u4E0A\u8BFB\u7740\u592A\u5403\u529B */
3119
+ .tt_assistMuted {
3120
+ color: var(--tt-label-2);
3121
+ }
3122
+ /* \u5BBF\u4E3B\u7ED9\u7684\u539F\u56E0\u505A\u6210\u544A\u8B66\u5757\uFF1A\u8981\u80FD\u4E00\u773C\u770B\u89C1\uFF0C\u800C\u4E0D\u662F\u6DF7\u5728\u6B63\u6587\u91CC\u5F53\u4E00\u6BB5\u8BDD */
3123
+ .tt_assistError {
3124
+ padding: 9px 10px;
3125
+ border-radius: var(--tt-r-md);
3126
+ border-left: 2px solid var(--tt-danger);
3127
+ background: color-mix(in srgb, var(--tt-danger) 8%, transparent);
3128
+ color: var(--tt-danger);
3129
+ }
3130
+ /*
3131
+ * \u5EFA\u8BAE\u547D\u4EE4\uFF1A\u6574\u5757\u6CBF\u7528\u7EC8\u7AEF\u5E95\u8272\uFF08\u5B83\u5C31\u662F\u8981\u6572\u8FDB\u7EC8\u7AEF\u7684\u4E00\u6761\u547D\u4EE4\uFF09\uFF0C\u4E0A\u9762\u52A0\u4E00\u884C\u5C0F\u6807\u9898\u3002
3132
+ * .tt_assistCmd **\u672C\u8EAB\u4ECD\u7136\u53EA\u88C5\u547D\u4EE4**\u2014\u2014\u9884\u89C8\u65AD\u8A00\u6309 textContent \u7CBE\u786E\u6BD4\u5BF9\u5B83\uFF0C\u6807\u9898\u5728\u5916\u5C42\u3002
3133
+ */
3134
+ .tt_assistCmdWrap {
3135
+ margin-top: 10px;
3136
+ border-radius: var(--tt-r-md);
3137
+ background: var(--tt-term-bg);
3138
+ overflow: hidden;
3139
+ }
3140
+ .tt_assistCmdLabel {
3141
+ display: block;
3142
+ padding: 6px 10px 0;
3143
+ color: color-mix(in srgb, var(--tt-term-fg) 55%, transparent);
3144
+ font-size: 11px;
3145
+ }
3146
+ .tt_assistCmd {
3147
+ padding: 3px 10px 8px;
3148
+ color: var(--tt-term-fg);
3149
+ font-family: var(--tt-mono);
3150
+ font-size: 12px;
3151
+ line-height: 1.5;
3152
+ white-space: pre-wrap;
3153
+ overflow-wrap: anywhere;
3154
+ }
3155
+ .tt_assistFoot {
3156
+ display: flex;
3157
+ align-items: center;
3158
+ gap: var(--tt-gap-sm);
3159
+ margin-top: 12px;
3160
+ }
3161
+ /* \u4E3B\u64CD\u4F5C\u505A\u5B9E\u5FC3\uFF1A\u4E09\u4E2A\u6309\u94AE\u91CC\u53EA\u6709\u300C\u586B\u5165\u300D\u4F1A\u52A8\u4F60\u7684\u7EC8\u7AEF\uFF0C\u5C42\u7EA7\u5C31\u8BE5\u8DDF\u53E6\u5916\u4E24\u4E2A\u4E0D\u4E00\u6837 */
3162
+ .tt_assistFill,
3163
+ .tt_assistFill:hover:not(:disabled) {
3164
+ border-color: transparent;
3165
+ background: var(--tt-accent);
3166
+ color: #fff;
3167
+ }
3168
+ .tt_assistFill:hover:not(:disabled) {
3169
+ background: color-mix(in srgb, var(--tt-accent) 86%, #000);
3170
+ }
3171
+ /* \u5173\u95ED\u662F\u300C\u4EC0\u4E48\u90FD\u4E0D\u505A\u300D\u7684\u90A3\u6761\u8DEF\uFF1A\u53BB\u8FB9\u6846\u3001\u63A8\u5230\u6700\u53F3\uFF0C\u4E0E\u4E24\u4E2A\u52A8\u4F5C\u5206\u5F00 */
3172
+ .tt_assistClose {
3173
+ margin-left: auto;
3174
+ border-color: transparent;
3175
+ background: transparent;
3176
+ }
3177
+ .tt_assistClose:hover:not(:disabled) {
3178
+ border-color: transparent;
3179
+ background: var(--tt-hover);
3180
+ color: var(--tt-label);
3181
+ }
3182
+ .tt_assistNote {
3183
+ display: block;
3184
+ margin-top: 8px;
3185
+ color: var(--tt-label-2);
3186
+ font-size: 11.5px;
3187
+ line-height: 1.5;
3188
+ }
3189
+
2816
3190
  /* ======================= \u52A8\u6548\u964D\u7EA7 ======================= */
2817
3191
 
2818
3192
  @media (prefers-reduced-motion: reduce) {
@@ -2822,8 +3196,8 @@ void main() {
2822
3196
  transition: none !important;
2823
3197
  }
2824
3198
  }
2825
- `;function En(e){let t=typeof e=="string"?e.trim():"";if(t==="")return;let r=t,s="",a=r.lastIndexOf("@");a>0&&(s=r.slice(0,a).trim(),r=r.slice(a+1).trim());let i=r,n=22,o=/^\[([^\]]+)\](?::(\d+))?$/.exec(r)??/^([^:]+):(\d+)$/.exec(r);if(o!==null){i=o[1];let l=Number(o[2]);Number.isInteger(l)&&l>=1&&l<=65535&&(n=l)}if(i==="")return;let u={host:i,port:n};return s!==""&&(u.username=s),u}function Ln(e){if(e===null||typeof e!="object")return"";let t=e,r=typeof t.host=="string"?t.host.trim():"";if(r==="")return"";let s=Number.isInteger(t.port)&&Number(t.port)>=1&&Number(t.port)<=65535?Number(t.port):22,a=typeof t.username=="string"&&t.username.trim()!==""?t.username.trim()+"@":"",i=r.includes(":")&&!r.startsWith("[")?`[${r}]`:r;return`${a}${i}${s===22?"":":"+String(s)}`}var Tn="\0global";function yr(e,t){return e===null?Tn:typeof e=="string"&&e!==""?e:typeof t=="string"&&t!==""?t:Tn}function Rn(e,t){return e===Tn?!0:typeof t=="string"&&t!==""&&e===t}var Mf="/api/dsh-tty/ws";function kl(e,t){let r=new URL(t??e,e);return(r.protocol==="https:"?"wss:":"ws:")+"//"+r.host+Mf}function Mn(e){return String(e??"").trim().toUpperCase().replace(/[^A-Z0-9]+/g,"_").replace(/^_+|_+$/g,"")}function El(e,t,r,s){let a=Mn(r),i=Mn(e);if(a===""||i==="")return"";let n=Mn(t),o=["DSH_TTY",a,i];return n!==""&&n!=="22"&&o.push(n),o.push(s),o.join("_")}function Ji(e){let t=Number(e);return Number.isInteger(t)&&t>=1&&t<=65535?t:0}function Ll(e,t,r){return`${e}-${t==="remote"?"R":"L"}${String(r)}`}function Tl(e,t=[],r=s=>s){let s=e??{},a=String(s.bookName??"")||String(t[0]??"")||"";if(a==="")return{ok:!1,error:r("error.tunnelNoBook")};if(s.direction==="remote"){let u=Ji(s.remotePort),l=Ji(s.localTargetPort);return u<1||l<1?{ok:!1,error:r("error.tunnelRemotePortRequired")}:{ok:!0,tunnel:{name:Ll(a,"remote",u),bookName:a,direction:"remote",remotePort:u,localTargetHost:"",localTargetPort:l,enabled:!0}}}let i=Ji(s.localPort),n=String(s.remoteHost??"").trim(),o=Ji(s.remotePort);return i<1||n===""||o<1?{ok:!1,error:r("error.tunnelLocalRequired")}:{ok:!0,tunnel:{name:Ll(a,"local",i),bookName:a,direction:"local",localPort:i,remoteHost:n,remotePort:o,enabled:!0}}}function Rl(e,t){return(Array.isArray(e)?e:[]).find(r=>String(r?.name??"")===String(t))}function Af(e,t,r){return(Array.isArray(e)?e:[]).find(s=>String(s?.name??"")!==String(t)&&String(s?.name??"")===String(r))}function Ml(e,t,r,s){let a=Array.isArray(e)?e:[],i=a.find(u=>String(u?.name??"")===String(t));if(i===void 0)return{ok:!1,reason:"missing",error:s("error.tunnelMissing",{name:String(t)})};if(Af(a,t,r.name)!==void 0)return{ok:!1,reason:"clash",error:s("error.tunnelClash",{name:String(r.name)})};let o={...r,enabled:i.enabled!==!1};return{ok:!0,tunnels:a.map(u=>String(u?.name??"")===String(t)?o:u)}}function Df(e){let t=e?.byId;if(!(t===null||typeof t!="object"))for(let r of Object.keys(t)){let s=t[r]?.retainedBy?.mainView??0;if(typeof s=="number"&&s>0)return r}}function Pf(e){let t=e?.current;return typeof t=="string"&&t!==""?t:Df(e)}function Al(e){let t=Pf(e);if(t===void 0)return;let r=e?.byId?.[t]?.cwd;return typeof r=="string"&&r!==""?r:void 0}function Bf(e,t){return Number.isFinite(e)&&Number.isFinite(t)&&e>0&&t>0}function Dl(e,t){if(e==null)return;let r=Math.floor(Number(e.cols)),s=Math.floor(Number(e.rows));if(!(!Number.isFinite(r)||!Number.isFinite(s))&&!(r<20||s<3)&&!(t==null||!Bf(Number(t.width),Number(t.height))))return{cols:Math.min(500,r),rows:Math.min(200,s)}}function Pl(e,t){return e==null?{text:"",state:""}:e.exited===!0?{text:e.statusText??t("status.exited"),state:e.statusState??""}:e.live===!0?{text:e.statusText??t("status.connected"),state:e.statusState??"connected"}:e.errored===!0?{text:e.statusText??t("status.errored"),state:e.statusState??"error"}:{text:e.statusText??t("status.connectingEllipsis"),state:e.statusState??""}}function Bl(e,t){return typeof e!="string"||e===""?!0:e===t}function Ol(e,t){return e===null?!1:e!==t}function tt(e){if(!Number.isFinite(e)||e<=0)return"";if(e<1024)return String(e)+" B";let t=["KB","MB","GB","TB"],r=e,s=-1;do r/=1024,s+=1;while(r>=1024&&s<t.length-1);return(r>=100?r.toFixed(0):r.toFixed(1))+" "+t[s]}function Xr(e){if(!Number.isFinite(e)||e<=0)return"";if(e<1024)return"<1 KB/s";let t=["KB","MB","GB","TB"],r=e,s=-1;do r/=1024,s+=1;while(r>=1024&&s<t.length-1);return(r>=100?r.toFixed(0):r.toFixed(1))+" "+t[s]+"/s"}function Nl(e){return Number.isFinite(e)?e>=90?"danger":e>=70?"warn":"":""}function Il(e,t){return!Number.isFinite(e)||e<0?t("list.none"):e<1024?Math.round(e)+" B/s":Xr(e)||t("list.none")}function Of(e,t){if(!Number.isFinite(e)||e<0)return t("list.none");let r=Math.floor(e),s=Math.floor(r/604800),a=Math.floor(r%604800/86400),i=Math.floor(r%86400/3600),n=Math.floor(r%3600/60),o=[];return s>0&&o.push(s+"w"),(s>0||a>0)&&o.push(a+"d"),(s>0||a>0||i>0)&&o.push(i+"h"),(s>0||a>0||i>0||n>0)&&o.push(n+"m"),o.length>0?o.join(""):r+"s"}function If(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?r("list.none"):(tt(e)||"0 B")+"/"+(tt(t)||"0 B")}function Hl(e,t){let r=e[t];return Number.isFinite(r)?t==="tempC"?r>-100&&r<200?r:null:t==="cores"?r>=1&&r<=4096?r:null:t==="cpuPct"||t==="memPct"||t==="diskPct"?r>=0&&r<=100?r:null:t==="uptimeSec"?r>=0&&r<=100*365*24*3600?r:null:t==="tcpConns"?r>=0&&r<=1e7?r:null:t==="rxRate"||t==="txRate"?r>=0&&r<=2**40?r:null:r>=0&&r<=2**50?r:null:null}var Nf=["cpuPct","cores","memUsed","memTotal","memPct","diskUsed","diskTotal","diskPct","uptimeSec","tcpConns","rxRate","txRate","tempC"];function Fl(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Nf.some(t=>Hl(e,t)!==null)}var Hf=8e3;function Wl(e,t=Date.now()){return t-(e||0)<=Hf}var Ul=23;function An(e){return[{key:"cpuPct",label:"CPU",kind:"pct",slot:4},{key:"memPct",label:e("meta.mem"),kind:"pct",slot:4},{key:"diskPct",label:e("meta.disk"),kind:"pct",slot:4},{key:"cores",label:e("meta.cores"),kind:"count",slot:4},{key:"mem",label:e("meta.mem"),kind:"pair",slot:17,used:"memUsed",total:"memTotal"},{key:"uptimeSec",label:e("meta.uptime"),kind:"uptime",slot:13},{key:"tcpConns",label:"TCP",kind:"count",slot:6},{key:"disk",label:e("meta.disk"),kind:"pair",slot:17,used:"diskUsed",total:"diskTotal"},{key:"tempC",label:e("meta.temp"),kind:"temp",slot:8},{key:"net",label:e("meta.net"),kind:"net",slot:Ul}]}function jl(e,t){let r=e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{},s=i=>Hl(r,i),a=(i,n,o,u=i.slot)=>({key:i.key,label:i.label,kind:i.kind,slot:u,pct:o??null,value:n,title:i.label+": "+n});return An(t).map(i=>{if(i.kind==="pct"){let o=s(i.key);return a(i,o===null?t("list.none"):Math.round(o)+"%",o)}if(i.kind==="pair")return a(i,If(s(i.used),s(i.total),t),null);if(i.kind==="uptime")return a(i,Of(s(i.key),t),null);if(i.kind==="temp"){let o=s(i.key);return a(i,o===null?t("list.none"):o.toFixed(1)+"\xB0C",null)}if(i.kind==="net"){let o=s("rxRate"),u=s("txRate");return o===null&&u===null?a(i,t("list.none"),null,0):a(i,"\u2193"+Il(o,t)+" \u2191"+Il(u,t),null,Ul)}let n=s(i.key);return a(i,n===null?t("list.none"):String(n),null)})}var Dn="tty",Nn={"error.credServiceMissing":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09","error.credServiceIncomplete":"\u51ED\u636E\u670D\u52A1\u4E0D\u5B8C\u6574","error.credStoreUnavailable":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09\uFF0C\u65E0\u6CD5\u5B58\u5165","error.credStoreFailed":"\u5B58\u5165\u51ED\u636E\u5B58\u50A8\u5931\u8D25\uFF1A{error}","error.credClearUnavailable":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09\uFF0C\u65E0\u6CD5\u6E05\u9664","error.credClearFailed":"\u6E05\u9664\u5931\u8D25\uFF1A{error}","error.credRefNeedsHost":"\u5148\u586B\u300C\u4E3B\u673A\u300D\u548C\u300C\u7528\u6237\u540D\u300D\u518D\u5B58\u5165\u2014\u2014\u5F15\u7528\u540D\u7531\u8FD9\u4E24\u8005\u6D3E\u751F","btn.reopen":"\u91CD\u65B0\u6253\u5F00","btn.reopenTitle":"\u4EE5\u539F\u8FDE\u63A5\u4FE1\u606F\u91CD\u5F00\u4F1A\u8BDD","btn.sftpTitle":"\u6253\u5F00\u8BE5\u8FDE\u63A5\u7684\u6587\u4EF6\u6D4F\u89C8\uFF08SFTP\uFF09","btn.tunnels":"\u96A7\u9053 {count}","btn.tunnelsTitle":"\u67E5\u770B\u8BE5\u8FDE\u63A5\u7684\u7AEF\u53E3\u8F6C\u53D1\u96A7\u9053","btn.more":"\u66F4\u591A","btn.moreTitle":"\u66F4\u591A\u64CD\u4F5C\uFF08\u7AEF\u53E3\u8F6C\u53D1\u2026\uFF09","btn.reopenSession":"\u91CD\u65B0\u6253\u5F00\u4F1A\u8BDD","status.exited":"\u4F1A\u8BDD\u5DF2\u9000\u51FA","status.ended":"\u4F1A\u8BDD\u5DF2\u7ED3\u675F","btn.clickReopen":"\u70B9\u51FB\u91CD\u65B0\u6253\u5F00","btn.clickRerun":"\u70B9\u51FB\u91CD\u65B0\u6267\u884C","msg.passwordNotStored":"\u51FA\u4E8E\u5B89\u5168\u8003\u8651\uFF0C\u660E\u6587\u5BC6\u7801/\u53E3\u4EE4\u4E0D\u968F\u6D4F\u89C8\u5668\u5B58\u50A8\u4FDD\u7559\uFF0C\u672C\u6B21\u8FDE\u63A5\u9700\u8981\u91CD\u65B0\u8F93\u5165\uFF1A\u91CD\u5F00\u6807\u7B7E\u65F6\u518D\u586B\u4E00\u6B21\uFF0C\u6216\u5728\u8BBE\u7F6E\u5361\u7247\u628A\u51ED\u636E\u6362\u6210 env: \u5F15\u7528\uFF08\u503C\u5B58\u5BBF\u4E3B\u51ED\u636E\u5B58\u50A8\uFF09\u3002","error.terminalNeedsCommand":"ttyTerminal \u9700\u8981 command","error.terminalCommandSingleLine":"command \u5FC5\u987B\u662F\u5355\u884C","error.terminalNeedsHost":"ttyTerminal.mount \u9700\u8981 HTMLElement \u4F5C\u4E3A\u6302\u8F7D\u70B9","error.panelNotReady":"ttyPanel.mountPane\uFF1A\u7EC8\u7AEF\u9762\u677F\u672A\u5C31\u7EEA","panel.dragHeight":"\u62D6\u52A8\u8C03\u6574\u9AD8\u5EA6","panel.dragWidth":"\u62D6\u52A8\u8C03\u6574\u5BBD\u5EA6","btn.closePane":"\u5173\u95ED\u4FA7\u680F","btn.expandPane":"\u5C55\u5F00\u4FA7\u680F","btn.collapsePane":"\u6536\u8D77\u4FA7\u680F","panel.tabLabel":"\u7EC8\u7AEF {n}","btn.close":"\u5173\u95ED","btn.closeTabAria":"\u5173\u95ED\u6807\u7B7E\uFF1A{label}","btn.newTab":"\u65B0\u5EFA\uFF08\u672C\u5730 / SSH\uFF09","meta.tunnelRemote":"\u8FDC\u7A0B:{host}:{port} \u2192 \u672C\u673A:{local}","meta.tunnelLocal":"\u672C\u673A:{local} \u2192 {host}:{port}","status.tmuxPersistedTitle":"\u5DF2\u7531 tmux \u6258\u7BA1 \u2014 \u65AD\u7EBF / \u5BBF\u4E3B\u91CD\u542F\u540E\u6309\u540D\u63A5\u56DE\u73B0\u573A","status.notPersisted":"\u672A\u6301\u4E45\u5316","status.tmuxUnavailableTitle":"\u8BF7\u6C42\u4E86\u6301\u4E45\u4F1A\u8BDD\uFF0C\u4F46 tmux \u4E0D\u53EF\u7528 \u2014 \u5F53\u524D\u4E3A\u666E\u901A\u4F1A\u8BDD","status.connected":"\u5DF2\u8FDE\u63A5","status.connecting":"\u8FDE\u63A5\u4E2D","status.errored":"\u8FDE\u63A5\u51FA\u9519","panel.tunnels":"\u7AEF\u53E3\u8F6C\u53D1","hint.tunnelsSettings":"\u5728 \u8BBE\u7F6E \u2192 \u63D2\u4EF6 \u2192 \u7EC8\u7AEF\u9762\u677F \u91CC\u914D\u7F6E","panel.tunnelsFor":"\u7AEF\u53E3\u8F6C\u53D1 \u2014 {name}","list.loading":"\u52A0\u8F7D\u4E2D\u2026","hint.tunnelsCard":"\u589E\u5220/\u542F\u505C\u5728 \u63D2\u4EF6\u914D\u7F6E \u2192 \u7EC8\u7AEF\u9762\u677F \u7684\u7AEF\u53E3\u8F6C\u53D1\u533A\u5757\u7EF4\u62A4","list.noActiveTunnels":"\u8BE5\u8FDE\u63A5\u6682\u65E0\u542F\u7528\u7684\u96A7\u9053","status.fatalSuffix":"\uFF08\u4E0D\u91CD\u8BD5\uFF0C\u9700\u4FEE\u914D\u7F6E\uFF09","msg.maxSessions":"\u4F1A\u8BDD\u6570\u5DF2\u8FBE\u4E0A\u9650\uFF08\u5171 {live} \u4E2A / \u4E0A\u9650 {max}\uFF1A\u672C\u7A97\u53E3 {own} \u4E2A{others}\uFF09\u2014\u2014\u5173\u95ED\u4E0D\u7528\u7684\u7A97\u53E3/\u6807\u7B7E\uFF0C\u6216\u5728\u8BBE\u7F6E\u5361\u7247\u8C03\u5927\u300C\u5E76\u53D1\u4F1A\u8BDD\u4E0A\u9650\u300D","msg.maxSessionsOthers":" + \u5176\u4ED6\u7A97\u53E3 {count} \u4E2A","error.probeHttp":"\u8FDE\u63A5\u6D4B\u8BD5\u5931\u8D25\uFF08HTTP {status}\uFF09","msg.probing":"\u8FDE\u63A5\u6D4B\u8BD5\u4E2D\u2026","meta.reachable":"\u901A","meta.unreachable":"\u4E0D\u901A","meta.probeBanner":"banner \u6B63\u5E38","meta.hostKeyMatched":"\u4E3B\u673A\u5BC6\u94A5\u5339\u914D","meta.hostKeyRecorded":"\u4E3B\u673A\u5BC6\u94A5\u5DF2\u8BB0\u5F55\uFF08TOFU\uFF09","meta.hostKeyMismatch":"\u4E3B\u673A\u5BC6\u94A5\u4E0D\u5339\u914D\uFF01","meta.authOkMs":"\u8BA4\u8BC1\u901A\u8FC7\uFF08{ms}ms\uFF09","meta.authOk":"\u8BA4\u8BC1\u901A\u8FC7","meta.probeOk":"\u2705 \u8FDE\u63A5\u6210\u529F\uFF1A{detail}","error.unknown":"\u672A\u77E5\u9519\u8BEF","btn.maxSessionsTitle":"\u4F1A\u8BDD\u6570\u5DF2\u8FBE\u4E0A\u9650\u2014\u2014\u70B9\u51FB\u67E5\u770B\u600E\u4E48\u529E","option.localTerminal":"\u672C\u5730\u7EC8\u7AEF","hint.tmuxHosted":"tmux \u6258\u7BA1 \xB7 \u5BBF\u4E3B\u91CD\u542F\u540E\u53EF\u6062\u590D","hint.openInSessionCwd":"\u5728\u5F53\u524D\u4F1A\u8BDD\u5DE5\u4F5C\u76EE\u5F55\u6253\u5F00","panel.sshBook":"SSH \u8FDE\u63A5\u7C3F","btn.sftpFileBrowse":"SFTP \u6587\u4EF6\u6D4F\u89C8","btn.editConnection":"\u7F16\u8F91\u8FDE\u63A5","list.emptySshBook":"\uFF08\u7A7A \u2014 \u5728\u8BBE\u7F6E\u5361\u7247\u6216\u300CSSH \u8FDE\u63A5\u2026\u300D\u91CC\u4FDD\u5B58\uFF09","option.sshConnect":"SSH \u8FDE\u63A5\u2026","hint.sshConnect":"\u624B\u52A8\u586B\u5199\u4E3B\u673A / \u7528\u6237 / \u8BA4\u8BC1\u65B9\u5F0F","panel.editConnection":"\u7F16\u8F91\u8FDE\u63A5 \xB7 {name}","panel.sshConnect":"SSH \u8FDE\u63A5","section.jump":"\u8DF3\u677F\u673A","field.jumpHost":"\u8DF3\u677F\u673A\uFF08[\u7528\u6237@]\u4E3B\u673A[:\u7AEF\u53E3]\uFF0C\u7559\u7A7A = \u76F4\u8FDE\uFF09","placeholder.jumpHost":"\u4F8B\u5982 bastion.corp:2222","check.jumpOwnCred":"\u8DF3\u677F\u673A\u4F7F\u7528\u72EC\u7ACB\u51ED\u636E","field.jumpUsername":"\u8DF3\u677F\u673A\u7528\u6237\u540D\uFF08\u7559\u7A7A\u6CBF\u7528\u76EE\u6807\uFF09","field.jumpAuth":"\u8DF3\u677F\u673A\u8BA4\u8BC1\u65B9\u5F0F\uFF08\u7559\u7A7A\u6CBF\u7528\u76EE\u6807\uFF09","hint.jumpInherit":"\u7559\u7A7A\u51ED\u636E = \u6CBF\u7528\u4E0A\u9762\u90A3\u53F0\u4E3B\u673A\u7684\u8BA4\u8BC1\u65B9\u5F0F\u4E0E\u94A5\u5319\uFF1B\u8DF3\u677F\u673A\u8FDE\u4E0D\u4E0A\u65F6\u9519\u8BEF\u6587\u6848\u4F1A\u70B9\u540D\u5B83\uFF08\u4E0D\u4F1A\u4F2A\u88C5\u6210\u76EE\u6807\u8D85\u65F6\uFF09\u3002","meta.jumpStage":"\u8DF3\u677F\u673A {label}","meta.viaJump":"\u21E2 \u7ECF {label}","meta.viaProxy":"\u21E2 \u7ECF\u4EE3\u7406\u547D\u4EE4","section.proxyCommand":"\u4EE3\u7406\u547D\u4EE4","field.proxyCommand":"\u4EE3\u7406\u547D\u4EE4\uFF08ProxyCommand\uFF0C\u7559\u7A7A = \u4E0D\u7528\uFF09","placeholder.proxyCommand":"\u4F8B\u5982 ssh -W %h:%p bastion","hint.proxyCommand":"\u672C\u673A\u6267\u884C\u7684\u547D\u4EE4\uFF0C\u5B83\u7684 stdin/stdout \u5C31\u662F\u5230\u76EE\u6807\u7684 SSH \u4F20\u8F93\uFF08\u7B49\u4EF7\u4E8E OpenSSH \u7684 ProxyCommand\uFF09\u3002\u652F\u6301 %h \u76EE\u6807\u4E3B\u673A\u3001%p \u7AEF\u53E3\u3001%r \u7528\u6237\u540D\u3001%n \u4E3B\u673A\u3001%% \u5B57\u9762 %\uFF1B\u5176\u4F59\u5199\u6CD5\u539F\u6837\u4FDD\u7559\u3002\u4E0E\u8DF3\u677F\u673A\u540C\u65F6\u586B\u65F6\u8DF3\u677F\u673A\u4F18\u5148\uFF08OpenSSH \u8BED\u4E49\uFF09\u3002\u9700\u8981\u4E0B\u9762\u90A3\u4E2A\u5F00\u5173\uFF0C~/.ssh/config \u5BFC\u5165\u4E0D\u4F1A\u81EA\u52A8\u5E26\u5165\u5B83\u3002","hint.proxyCommandDisabled":"\u26A0 \u5F53\u524D\u300C\u5141\u8BB8 ProxyCommand\u300D\u672A\u6253\u5F00\uFF1A\u8FD9\u6761\u547D\u4EE4\u4E0D\u4F1A\u6267\u884C\uFF0C\u8FDE\u63A5\u4F1A\u660E\u786E\u5931\u8D25\uFF08\u4E0D\u4F1A\u9000\u56DE\u76F4\u8FDE\uFF09\u3002\u5230 \u63D2\u4EF6\u914D\u7F6E \u2192 \u7EC8\u7AEF\u9762\u677F \u6253\u5F00\u5F00\u5173\u540E\u751F\u6548\u3002","hint.proxyCommandNotGranted":"\u26A0 \u8FD9\u6761\u80FD\u529B\u672A\u83B7\u5BBF\u4E3B\u6388\u6743\uFF1A\u70B9\u8FD9\u4E2A\u5F00\u5173\u4F1A\u5C31\u5730\u53D1\u8D77\u4E00\u6B21\u6388\u6743\uFF08\u9762\u677F\u7ED9\u4E00\u6761\u5728\u5BBF\u4E3B\u7EC8\u7AEF\u6267\u884C\u7684\u547D\u4EE4\uFF0C\u514D\u91CD\u542F\uFF09\uFF1B\u4E5F\u53EF\u4EE5\u8D70\u6700\u4E25\u7684\u90A3\u6761\u2014\u2014\u5728\u300C\u542F\u52A8 dsh \u7684\u90A3\u4E2A\u73AF\u5883\u300D\u91CC export DSH_TTY_ALLOW_PROXY_COMMAND=1 \u540E\u91CD\u542F\u5BBF\u4E3B\uFF08\u542F\u52A8\u4E4B\u540E\u518D\u8BBE\u4E0D\u7B97\u6388\u6743\uFF09\u3002\u8FD9\u6837\u5B89\u6392\u662F\u56E0\u4E3A\u8DE8\u7AD9\u9875\u9762\u4E0E\u9875\u5185\u811A\u672C\u90FD\u80FD\u53D1\u56DE\u73AF\u8BF7\u6C42\u2014\u2014\u82E5\u914D\u7F6E\u754C\u9762\u80FD\u51ED\u7A7A\u63D0\u6743\uFF0C\u8FD9\u9053\u95F8\u95E8\u7B49\u4E8E\u6CA1\u6709\uFF1B\u5173\u6389\u5B83\u5219\u968F\u65F6\u53EF\u7528\u3002","badge.notEffective":"\u672A\u751F\u6548\uFF1A\u672A\u83B7\u5BBF\u4E3B\u6388\u6743","elev.title":"\u5C31\u5730\u6388\u6743\uFF08\u514D\u91CD\u542F\uFF09","elev.lockedWhy":"\u672C\u673A\u4EFB\u610F\u8FDB\u7A0B\u90FD\u80FD\u53D1\u56DE\u73AF\u8BF7\u6C42\uFF0C\u6240\u4EE5\u300C\u6253\u5F00\u5371\u9669\u80FD\u529B\u300D\u8FD9\u4EF6\u4E8B\u4E0D\u80FD\u7531\u8FD9\u4E2A\u9875\u9762\u81EA\u5DF1\u8BF4\u4E86\u7B97\u2014\u2014\u5FC5\u987B\u5728\u5BBF\u4E3B\u7684\u6587\u4EF6\u7CFB\u7EDF\u4E0A\u786E\u8BA4\u4E00\u6B21\u3002","elev.step":"\u5728\u5BBF\u4E3B\u7684\u7EC8\u7AEF\u91CC\u6267\u884C\u4E0B\u4E00\u6761\u547D\u4EE4\uFF0C\u5F00\u5173\u4F1A\u81EA\u52A8\u89E3\u9501\uFF1A","elev.copy":"\u590D\u5236\u547D\u4EE4","elev.copied":"\u5DF2\u590D\u5236","elev.copyManual":"\u5F53\u524D\u73AF\u5883\u62FF\u4E0D\u5230\u526A\u8D34\u677F\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u4E0A\u9762\u90A3\u6761\u547D\u4EE4\u590D\u5236\u3002","elev.expiresIn":"{sec} \u79D2\u540E\u5931\u6548","elev.expired":"\u672C\u6B21\u786E\u8BA4\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u751F\u6210\u3002","elev.waiting":"\u7B49\u5F85\u786E\u8BA4\u2026\u6267\u884C\u5B8C\u547D\u4EE4\u8FD9\u91CC\u4F1A\u81EA\u52A8\u53D8\u6210\u5DF2\u6388\u6743\u3002","elev.regenerate":"\u91CD\u65B0\u751F\u6210","elev.loading":"\u6B63\u5728\u751F\u6210\u786E\u8BA4\u547D\u4EE4\u2026","elev.granted":"\u5DF2\u6388\u6743\u5E76\u751F\u6548\u3002","elev.grantedNeedSave":"\u5DF2\u6388\u6743\u3002\u70B9\u300C\u4FDD\u5B58\u300D\u540E\u751F\u6548\u3002","elev.grantedAt":"\u5DF2\u6388\u6743 \xB7 {time}","elev.revoke":"\u64A4\u9500\u5BBF\u4E3B\u6388\u6743","elev.revoked":"\u5DF2\u64A4\u9500\u5BBF\u4E3B\u6388\u6743\uFF08\u914D\u7F6E\u5F00\u5173\u4FDD\u6301\u4E0D\u53D8\uFF0C\u91CD\u65B0\u6388\u6743\u540E\u4F1A\u7ACB\u523B\u751F\u6548\uFF09\u3002","elev.viaEnv":"\u7531\u542F\u52A8\u73AF\u5883\u53D8\u91CF\u6388\u6743\uFF1B\u8981\u64A4\u9500\u9700\u5728\u542F\u52A8\u73AF\u5883\u91CC\u53BB\u6389\u5B83\u5E76\u91CD\u542F\u5BBF\u4E3B\u3002","elev.close":"\u6536\u8D77","elev.disableFirst":"\u5148\u5173\u6389\u8FD9\u4E2A\u914D\u7F6E\u5F00\u5173","elev.otherWay":"\u53E6\u4E00\u79CD\u65B9\u5F0F\uFF08\u6700\u5F3A\uFF0C\u9700\u8981\u91CD\u542F\u5BBF\u4E3B\uFF09","elev.envHow":"\u5728\u300C\u542F\u52A8 dsh \u7684\u90A3\u4E2A\u73AF\u5883\u300D\u91CC export {env}=1\uFF0C\u7136\u540E\u91CD\u542F\u5BBF\u4E3B\u3002\u6CE8\u610F\uFF1A\u542F\u52A8\u4E4B\u540E\u518D\u8BBE\u3001\u6216\u5199\u8FDB\u522B\u7684\u914D\u7F6E\u6587\u4EF6\u90FD\u4E0D\u7B97\u6388\u6743\u2014\u2014\u8FD9\u9053\u95F8\u95E8\u9632\u7684\u5C31\u662F\u300C\u8FD0\u884C\u671F\u80FD\u6539\u7684\u4E1C\u897F\u5192\u5145\u6388\u6743\u300D\u3002","elev.error":"\u5C31\u5730\u6388\u6743\u6CA1\u6210\u529F\uFF1A","meta.probeProxy":"\u4EE3\u7406\u547D\u4EE4","meta.probeProxyOff":"\u4EE3\u7406\u547D\u4EE4\uFF08\u672A\u542F\u7528\uFF09","meta.probeTcpSkipped":"\u76F4\u8FDE\u9884\u68C0\u5DF2\u8DF3\u8FC7\uFF08\u8D70\u4EE3\u7406\u547D\u4EE4\uFF09","section.connection":"\u8FDE\u63A5","field.host":"\u4E3B\u673A","placeholder.host":"example.com \u6216 IP","field.port":"\u7AEF\u53E3","field.username":"\u7528\u6237\u540D","section.auth":"\u8BA4\u8BC1","field.authMethod":"\u8BA4\u8BC1\u65B9\u5F0F","option.authInherit":"\uFF08\u6CBF\u7528\u76EE\u6807\uFF09","option.authAgent":"agent \u2014 \u4F7F\u7528\u672C\u673A ssh-agent","option.authKey":"key \u2014 \u79C1\u94A5\u6587\u4EF6","option.authPassword":"password \u2014 \u5BC6\u7801","field.keyPath":"\u79C1\u94A5\u8DEF\u5F84","field.passphrase":"\u79C1\u94A5\u53E3\u4EE4\uFF08\u53EF\u7A7A\uFF09","field.password":"\u5BC6\u7801","placeholder.credRef":"\u6216\uFF1A\u9009\u62E9\u51ED\u636E\u5B58\u50A8\u91CC\u7684\u5F15\u7528\u540D","hint.credRefCandidates":"\u5019\u9009 = \u51ED\u636E\u5B58\u50A8\u91CC\u5DF2\u6709\u7684\u5F15\u7528\u540D + \u672C\u673A\u8FDE\u63A5\u7C3F\u91CC\u5728\u7528\u7684\u5F15\u7528\u540D","list.credOverwrite":"{name}\uFF08\u518D\u70B9\u8986\u76D6\u5DF2\u586B\uFF09","list.moreMatches":"\u8FD8\u6709 {count} \u4E2A \u2014 \u7EE7\u7EED\u8F93\u5165\u7B5B\u9009","list.noCredRef":"\u6CA1\u6709\u5339\u914D\u7684\u5F15\u7528","check.rememberCredential":"\u4FDD\u5B58\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8","hint.rememberCredential":"\u52FE\u9009\u540E\uFF0C\u70B9\u300C\u4FDD\u5B58\u4FEE\u6539\u300D\u6216\u300C\u8FDE\u63A5\uFF08\u5E76\u4FDD\u5B58\uFF09\u300D\u65F6\u628A\u5BC6\u7801\u5199\u8FDB\u5B98\u65B9\u51ED\u636E\u5B58\u50A8\uFF0C\u5B57\u6BB5\u91CC\u53EA\u7559 env: \u5F15\u7528\uFF08\u503C\u5728 ~/.dsh/.credentials.yaml\uFF0C\u4E0D\u8FDB\u73AF\u5883\u3001\u4E0D\u56DE\u4F20\u6D4F\u89C8\u5668\uFF1B\u6321\u4E0D\u4F4F\u540C\u7528\u6237\u8FDB\u7A0B\u4E0E agent\uFF09\u3002\u4E0D\u52FE\u9009\u5219\u6309\u73B0\u72B6\u660E\u6587\u5199\u8FDB\u8BBE\u7F6E\u6587\u4EF6\u3002\u80FD\u7528\u5BC6\u94A5 / agent \u5C31\u522B\u5B58\u5BC6\u7801\u3002","btn.clearCredential":"\u6E05\u9664\u5DF2\u5B58\u51ED\u636E","error.credPlainUnavailable":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09\uFF0C\u53EA\u80FD\u660E\u6587\u4FDD\u5B58","error.credPlainIncomplete":"\u51ED\u636E\u670D\u52A1\u4E0D\u5B8C\u6574\uFF0C\u53EA\u80FD\u660E\u6587\u4FDD\u5B58","status.credUnreported":"\u5F15\u7528 {ref}\uFF1A\u5BBF\u4E3B\u672A\u62A5\u544A\u72B6\u6001","error.credStatusFailed":"\u8BFB\u53D6\u51ED\u636E\u72B6\u6001\u5931\u8D25\uFF1A{error}","status.credStored":"\u5DF2\u5B58\u5165{source} \xB7 {ref}","meta.credSource":"\uFF08\u6765\u6E90 {source}\uFF09","status.credUnknown":"\u5F15\u7528 {ref}\uFF1A\u5B58\u50A8\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u503C","hint.noCredRefPassphrase":"\u8FD8\u6CA1\u6709\u522B\u7684\u8FDE\u63A5\u7528\u8FC7\u51ED\u636E\u5F15\u7528 \u2014 \u53EF\u5728\u79C1\u94A5\u53E3\u4EE4\u6846\u76F4\u63A5\u624B\u8F93 env:NAME","hint.noCredRefPassword":"\u8FD8\u6CA1\u6709\u522B\u7684\u8FDE\u63A5\u7528\u8FC7\u51ED\u636E\u5F15\u7528 \u2014 \u52FE\u4E0A\u9762\u7684\u300C\u4FDD\u5B58\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8\u300D\u65B0\u5EFA\u4E00\u4E2A\uFF0C\u6216\u76F4\u63A5\u5728\u5BC6\u7801\u6846\u624B\u8F93 env:NAME","section.options":"\u9009\u9879","check.agentForward":"agent forwarding\uFF08\u8FDC\u7A0B\u53EF\u7528\u672C\u5730 ssh-agent \u94A5\u5319\uFF0C\u5982\u8FDC\u7A0B git clone\uFF09","check.persist":"\u6301\u4E45\u4F1A\u8BDD\uFF08tmux \u6258\u7BA1\uFF0C\u65AD\u7EBF/\u91CD\u542F\u540E\u6062\u590D\u73B0\u573A\uFF1B\u8FDC\u7A0B\u9700\u5B89\u88C5 tmux\uFF09","check.saveToBook":"\u4FDD\u5B58\u5230\u8FDE\u63A5\u7C3F\uFF08\u540C\u540D\u8986\u76D6\uFF09","field.bookName":"\u8FDE\u63A5\u7C3F\u540D\u79F0","placeholder.bookName":"\u7559\u7A7A\u5219\u7528\u4E3B\u673A\u540D","error.hostUserRequired":"\u4E3B\u673A\u4E0E\u7528\u6237\u540D\u5FC5\u586B","error.keyPathRequired":"auth=key \u9700\u8981\u79C1\u94A5\u8DEF\u5F84","error.passwordRequired":"auth=password \u9700\u8981\u5BC6\u7801","btn.cancel":"\u53D6\u6D88","btn.connect":"\u8FDE\u63A5","btn.fileBrowse":"\u6587\u4EF6\u6D4F\u89C8","btn.browseTitle":"\u4E0D\u52A8\u7EC8\u7AEF\uFF0C\u76F4\u63A5\u4EE5\u5F53\u524D\u586B\u5199\u7684\u4FE1\u606F\u6253\u5F00 SFTP \u6587\u4EF6\u6D4F\u89C8","btn.probe":"\u8BD5\u8FDE","btn.probeTitle":"\u6309\u5F53\u524D\u586B\u5199\u8BCA\u65AD\u8FDE\u63A5\uFF08TCP \u2192 \u4E3B\u673A\u5BC6\u94A5 \u2192 \u8BA4\u8BC1\uFF09\uFF1B\u4E0D\u4F1A\u65B0\u5EFA\u4F1A\u8BDD\uFF0C\u4E5F\u4E0D\u8BB0\u5F55\u4E3B\u673A\u6307\u7EB9","error.saveCredFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","btn.saveEdit":"\u4FDD\u5B58\u4FEE\u6539","error.saveBookFailed":"\u4FDD\u5B58\u8FDE\u63A5\u7C3F\u5931\u8D25\uFF1A{error}","error.bookNameTaken":"\u8FDE\u63A5\u7C3F\u91CC\u5DF2\u6709\u540C\u540D\u6761\u76EE: {name}","panel.sftpDual":"SFTP \u53CC\u680F \xB7 {label}","status.failed":"\u5931\u8D25","status.done":"\u5B8C\u6210","placeholder.localPath":"\u672C\u673A\u8DEF\u5F84\uFF08\u56DE\u8F66\u8DF3\u8F6C\uFF09","placeholder.remotePath":"\u8FDC\u7A0B\u8DEF\u5F84\uFF08\u56DE\u8F66\u8DF3\u8F6C\uFF09","btn.refresh":"\u5237\u65B0","btn.mkdir":"\u65B0\u5EFA\u76EE\u5F55","error.dirNotReady":"\u76EE\u5F55\u5C1A\u672A\u5B9A\u4F4D\u5B8C\u6210","meta.dir":"\u76EE\u5F55","btn.transferTo":"\u4F20\u8F93\u5230{target}\uFF1A{path}","meta.local":"\u672C\u673A","meta.remote":"\u8FDC\u7A0B","error.transferDirsNotReady":"\u4E24\u4FA7\u76EE\u5F55\u5C1A\u672A\u5B9A\u4F4D\u5B8C\u6210\uFF0C\u7B49\u5217\u8868\u52A0\u8F7D\u540E\u518D\u4F20\u8F93","msg.transferring":"\u4F20\u8F93 {name}\u2026","error.transferFailed":"\u4F20\u8F93\u5931\u8D25","error.noTaskId":"\u670D\u52A1\u7AEF\u672A\u8FD4\u56DE\u4EFB\u52A1 id","msg.transferCanceled":"\u5DF2\u53D6\u6D88\u4F20\u8F93 {name}","msg.transferred":"\u5DF2\u4F20\u8F93 {name}","btn.download":"\u4E0B\u8F7D {name}","btn.rename":"\u91CD\u547D\u540D {name}","placeholder.newName":"\u65B0\u540D\u79F0","btn.deleteEntry":"\u5220\u9664 {name}","btn.deleteEntryDir":"\u5220\u9664 {name}\uFF08\u542B\u5185\u5BB9\uFF09","msg.deleted":"\u5DF2\u5220\u9664 {name}","list.parentDir":"..\uFF08\u4E0A\u7EA7\u76EE\u5F55\uFF09","list.emptyDir":"\uFF08\u7A7A\u76EE\u5F55\uFF09","list.truncated":"\u2026\u5176\u4F59 {rest} \u9879\u672A\u6E32\u67D3\uFF08\u5171 {total} \u9879\uFF09\u2014\u2014\u7528\u4E0A\u65B9\u8DEF\u5F84\u6846\u8DF3\u8F6C\u5230\u5B50\u76EE\u5F55\u5B9A\u4F4D","list.itemCount":"{count} \u9879","placeholder.newDirName":"\u65B0\u76EE\u5F55\u540D\uFF08\u76F8\u5BF9\u5F53\u524D\u76EE\u5F55\uFF09","msg.creatingDir":"\u521B\u5EFA\u76EE\u5F55 {name}\u2026","btn.ok":"\u786E\u5B9A","btn.confirm":"\u786E\u8BA4?","btn.cancelTransfer":"\u53D6\u6D88\u4F20\u8F93","msg.downloadCanceled":"\u5DF2\u53D6\u6D88\u4E0B\u8F7D {name}","error.downloadFailed":"\u4E0B\u8F7D\u5931\u8D25","msg.downloaded":"\u5DF2\u4E0B\u8F7D {name}\uFF08{size}\uFF09","error.downloadTooBig":"\u6587\u4EF6\u8D85\u8FC7\u4E0B\u8F7D\u4E0A\u9650\uFF08{size}\uFF09\uFF1A\u8BF7\u7528\u53CC\u680F \u21E6 \u76F4\u4F20\u6216\u7EC8\u7AEF scp/rsync","msg.canceled":"\u5DF2\u53D6\u6D88","btn.upload":"\u4E0A\u4F20","btn.uploadTitle":"\u9009\u62E9\u6587\u4EF6\u4E0A\u4F20\uFF1B\u4E5F\u53EF\u4EE5\u628A\u6587\u4EF6 / \u6587\u4EF6\u5939\u76F4\u63A5\u62D6\u8FDB\u5217\u8868","msg.uploading":"\u4E0A\u4F20\u4E2D\u2026","msg.uploadDone":"\u4E0A\u4F20\u5B8C\u6210","error.uploadFailed":"\u4E0A\u4F20\u5931\u8D25","error.networkError":"\u7F51\u7EDC\u9519\u8BEF","error.uploadCountExceeded":"\u6587\u4EF6\u6570\u8D85\u8FC7\u4E0A\u9650\uFF08{max}\uFF09\uFF1A\u672C\u6B21 {count} \u4E2A\uFF0C\u8BF7\u5206\u6279\u4E0A\u4F20","status.overLimit":"\u8D85\u9650","error.uploadTooBig":"\u6587\u4EF6\u8D85\u8FC7\u4E0A\u4F20\u4E0A\u9650\uFF08{size}\uFF09\uFF1A{name}\uFF0C\u8BF7\u7528\u53CC\u680F \u21E8 \u76F4\u4F20\u6216\u7EC8\u7AEF scp/rsync","error.uploadTotalTooBig":"\u6587\u4EF6\u603B\u5927\u5C0F\u8D85\u8FC7\u4E0A\u4F20\u4E0A\u9650\uFF1A\u8BF7\u5206\u6279\u4E0A\u4F20\uFF08\u6216\u7528\u53CC\u680F \u21E8 \u76F4\u4F20\uFF09","msg.uploadCanceled":"\u5DF2\u53D6\u6D88\u4E0A\u4F20\uFF08\u5DF2\u4F20 {done}/{total} \u4E2A\uFF09","status.allDone":"\u5168\u90E8\u5B8C\u6210","msg.uploadDoneCount":"\u4E0A\u4F20\u5B8C\u6210 {count} \u4E2A\u6587\u4EF6","error.connectFailed":"\u8FDE\u63A5\u5931\u8D25\uFF1A{error}","status.connectingEllipsis":"\u8FDE\u63A5\u4E2D\u2026","status.connectedPid":"\u5DF2\u8FDE\u63A5 pid={pid}","status.connectedSsh":"SSH {target}\u5DF2\u8FDE\u63A5","status.exitedWith":"\u5DF2\u9000\u51FA {detail}","status.error":"\u9519\u8BEF\uFF1A{message}","status.retryHint":"{message} \xB7 \u70B9\u51FB\u91CD\u8BD5","btn.clickRetry":"\u70B9\u51FB\u91CD\u8BD5","status.disconnectedReconnecting":"\u8FDE\u63A5\u65AD\u5F00 \u2014 \u81EA\u52A8\u91CD\u8FDE\u4E2D","status.disconnected":"\u8FDE\u63A5\u65AD\u5F00","status.reconnecting":"\u81EA\u52A8\u91CD\u8FDE\u4E2D\u2026","error.copyFailed":"\u590D\u5236\u5931\u8D25\uFF1A\u5F53\u524D\u73AF\u5883\u4E0D\u5141\u8BB8\u8BBF\u95EE\u526A\u8D34\u677F\uFF08http \u8BBF\u95EE\u65F6\u8BF7\u6539\u7528 localhost \u6216\u7EC8\u7AEF\u5185\u5FEB\u6377\u952E\uFF09","error.pasteFailed":"\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u7F51\u9875\u8BFB\u53D6\u526A\u8D34\u677F\uFF08http \u8BBF\u95EE\u65F6\u5E38\u89C1\uFF09\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u91CC\u6309 Ctrl+V / Cmd+V \u7C98\u8D34","status.initializing":"\u521D\u59CB\u5316\u2026","placeholder.search":"\u641C\u7D22 (Enter \u4E0B\u4E00\u4E2A, Shift+Enter \u4E0A\u4E00\u4E2A)","btn.searchTitle":"\u641C\u7D22 (Ctrl+F)","btn.clearTitle":"\u6E05\u5C4F","btn.copyTitle":"\u590D\u5236\u9009\u4E2D\u5185\u5BB9","btn.pasteTitle":"\u7C98\u8D34","btn.minimizeTitle":"\u6700\u5C0F\u5316\uFF08\u4F1A\u8BDD\u4FDD\u6301\u8FD0\u884C\uFF0C\u72B6\u6001\u5E76\u5165\u4FA7\u8FB9\u680F\u5165\u53E3\uFF09","btn.closePanelTitle":"\u5173\u95ED\u9762\u677F\uFF08\u7ED3\u675F\u4F1A\u8BDD\uFF0C\u6807\u7B7E\u4FDD\u7559\uFF0C\u91CD\u5F00\u5373\u6062\u590D\u5217\u8868\uFF09","btn.restoreDock":"\u70B9\u51FB\u6062\u590D\u7EC8\u7AEF\u7A97\u53E3","panel.title":"\u7EC8\u7AEF","status.minimized":"\u7EC8\u7AEF\u5DF2\u6700\u5C0F\u5316 \u2014 \u70B9\u51FB\u6062\u590D","error.configLoadFailed":"\u8BFB\u53D6\u914D\u7F6E\u5931\u8D25","error.saveTunnelFailed":"\u4FDD\u5B58\u96A7\u9053\u5931\u8D25","error.tunnelNameTaken":"\u5DF2\u5B58\u5728\u540C\u540D\u96A7\u9053\u300C{name}\u300D\u2014\u2014\u540C\u4E00\u300C\u8FDE\u63A5\u7C3F\u6761\u76EE + \u65B9\u5411 + \u7AEF\u53E3\u300D\u53EA\u80FD\u6709\u4E00\u6761\u3002\u6539\u7AEF\u53E3\u4F1A\u5F97\u5230\u65B0\u540D\u5B57\uFF0C\u6216\u5148\u5220\u6389\u65E7\u7684\u90A3\u6761\u3002","msg.tunnelApplied":"\u96A7\u9053\u300C{name}\u300D\u5DF2\u751F\u6548","msg.tunnelUpdated":"\u96A7\u9053\u300C{name}\u300D\u5DF2\u66F4\u65B0","error.nameHostUserRequired":"\u540D\u79F0\u3001\u4E3B\u673A\u3001\u7528\u6237\u540D\u5FC5\u586B","msg.hostEdited":"\u5DF2\u4FEE\u6539\u6761\u76EE\u300C{name}\u300D\u2014 \u968F\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","error.probeFailed":"\u274C \u8FDE\u63A5\u5931\u8D25\uFF1A{error}","error.hostKeyDeleteFailed":"\u5220\u9664\u4E3B\u673A\u5BC6\u94A5\u8BB0\u5F55\u5931\u8D25","msg.hostKeyDeleted":"\u5DF2\u5220\u9664\u4E3B\u673A\u5BC6\u94A5\u8BB0\u5F55\uFF08\u4E0B\u6B21\u8FDE\u63A5\u91CD\u65B0\u8BB0\u5F55\u6307\u7EB9\uFF09","error.sshConfigReadFailed":"\u8BFB\u53D6 ~/.ssh/config \u5931\u8D25","msg.proxySkipped":"{count} \u6761\u7528\u4E86\u8DF3\u677F\u673A\u4F46\u89E3\u6790\u4E0D\u51FA\u8DF3\u677F\u673A\uFF08\u522B\u540D\u7F3A\u5931 / \u522B\u540D\u81EA\u5DF1\u8FD8\u4F9D\u8D56\u8DF3\u677F\u673A\uFF09\u672A\u5BFC\u5165\uFF1A{names}","msg.proxyCommandSkipped":"{count} \u6761\u53EA\u914D\u4E86\u4EE3\u7406\u547D\u4EE4\uFF08ProxyCommand\uFF09\u672A\u5BFC\u5165\uFF1A{names} \u2014\u2014 \u4EE3\u7406\u547D\u4EE4\u662F\u300C\u672C\u673A\u6267\u884C\u4E00\u6761\u547D\u4EE4\u300D\u90A3\u4E00\u6863\uFF0C\u5BFC\u5165\u4E0D\u4F1A\u81EA\u52A8\u5E26\u5165\uFF1B\u9700\u8981\u65F6\u5728\u8FDE\u63A5\u7C3F\u91CC\u624B\u586B\u5E76\u6253\u5F00\u300C\u5141\u8BB8 ProxyCommand\u300D","msg.skippedNotConcrete":"{count} \u6761\u4E0D\u662F\u5177\u4F53\u4E3B\u673A\uFF08\u901A\u914D / \u65E0 User\uFF09","list.separator":"\u3001","meta.etc":" \u7B49","msg.importOverflow":"\u8D85\u8FC7\u5BFC\u5165\u4E0A\u9650\u7684 {count} \u6761\u672A\u5BFC\u5165","list.separatorFull":"\uFF1B","msg.noNewEntries":"\u6CA1\u6709\u65B0\u6761\u76EE\uFF08{count} \u6761\u540C\u540D\u8DF3\u8FC7\uFF09","msg.noImportableHosts":"~/.ssh/config \u91CC\u6CA1\u6709\u53EF\u5BFC\u5165\u7684\u5177\u4F53\u4E3B\u673A","msg.importedHosts":"\u5DF2\u5BFC\u5165 {added} \u6761\uFF08\u540C\u540D\u8DF3\u8FC7 {skipped} \u6761\uFF09\uFF0C\u968F\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","error.knownHostsReadFailed":"\u8BFB\u53D6 ~/.ssh/known_hosts \u5931\u8D25","msg.noNewFingerprints":"\u6CA1\u6709\u65B0\u6307\u7EB9\uFF08{count} \u6761\u5DF2\u5B58\u5728\uFF09","msg.noImportableKnownHosts":"known_hosts \u91CC\u6CA1\u6709\u53EF\u5BFC\u5165\u7684\u5177\u4F53\u4E3B\u673A","error.saveHostKeysFailed":"\u4FDD\u5B58 hostKeys \u5931\u8D25","msg.importedFingerprints":"\u5DF2\u5BFC\u5165 {added} \u6761\u4E3B\u673A\u7684\u6307\u7EB9\uFF08\u8DF3\u8FC7 {skipped} \u6761\u5DF2\u5B58\u5728\uFF09","hint.knownHostsTruncated":"\uFF1B\u6CE8\u610F\uFF1Aknown_hosts \u8D85\u8FC7 500 \u6761\u4E3B\u673A\uFF0C\u672C\u6B21\u4EC5\u5BFC\u5165\u524D 500 \u6761","error.saveFailed":"\u4FDD\u5B58\u5931\u8D25","msg.saved":"\u5DF2\u4FDD\u5B58\u5E76\u70ED\u751F\u6548","check.rememberCredentialApply":"\u5E94\u7528\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8","hint.appliedOnSave":"\u968F\u5361\u7247\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","card.name":"\u7EC8\u7AEF\u9762\u677F","card.desc":"xterm \u7EC8\u7AEF\u9762\u677F\uFF1A\u591A\u6807\u7B7E\u9875\u3001\u65AD\u7EBF\u81EA\u52A8\u91CD\u8FDE\u3001cwd \u8DDF\u968F\u4F1A\u8BDD\u3001SSH \u8FDE\u63A5\u7C3F\u4E0E\u4E3B\u673A\u6307\u7EB9\u9489\u624E\u3001tmux \u4F1A\u8BDD\u6301\u4E45\u5316\u3002","card.descFull":"xterm \u7EC8\u7AEF\u9762\u677F\uFF1A\u591A\u6807\u7B7E\u9875\u3001\u65AD\u7EBF\u81EA\u52A8\u91CD\u8FDE\u3001cwd \u8DDF\u968F\u4F1A\u8BDD\u3001SSH \u8FDE\u63A5\u7C3F\u4E0E\u4E3B\u673A\u6307\u7EB9\u9489\u624E\u3001tmux \u4F1A\u8BDD\u6301\u4E45\u5316\uFF1Bshell / TERM / \u5E76\u53D1\u4E0A\u9650\u7B49\u4FDD\u5B58\u5373\u70ED\u751F\u6548\u3002","list.loadingConfig":"\u52A0\u8F7D\u914D\u7F6E\u4E2D\u2026","section.basic":"\u57FA\u7840","check.enabled":"\u542F\u7528\u63D2\u4EF6\uFF08\u4FDD\u5B58\u5373\u70ED\u751F\u6548\uFF1A\u5DE5\u5177\u4E0E\u9762\u677F\u5165\u53E3\u7ACB\u523B\u6536\u8D77\uFF0C\u4F1A\u8BDD\u8F6C\u4FDD\u6D3B\uFF09","check.announce":"\u5411 agent \u516C\u544A\u7EC8\u7AEF\u9762\u677F\u80FD\u529B","check.shellIntegration":"shell \u96C6\u6210\uFF08OSC 133/7 \u6CE8\u5165\uFF09","check.shellIntegrationWindows":"shell \u96C6\u6210\uFF08OSC 133/7 \u6CE8\u5165\uFF0Ctty_capture{last} \u4E0E cwd \u8DDF\u968F\u4F9D\u8D56\u5B83\uFF09","hint.shellIntegrationWindows":"Windows \u5BBF\u4E3B\u4E0A\u4E0D\u9002\u7528\uFF1A\u6CE8\u5165\u8D70\u7684\u662F POSIX \u7684 `-c` \u5305\u88C5\u5C42\u4E0E rc \u6869\uFF0Ccmd / PowerShell \u4E0A\u90FD\u4E0D\u6210\u7ACB\uFF08\u5B9E\u6D4B cmd \u5FFD\u7565 `-c` \u7A7A\u8DD1\u3001PowerShell \u62A5 export \u4E0D\u5B58\u5728\uFF09\u3002\u56E0\u6B64\u300C\u672C\u5730\u300D\u6807\u7B7E\u7684 cwd \u8DDF\u968F\u4E0E tty_capture{last} \u4E0D\u53EF\u7528\uFF1B\u8FDC\u7A0B Linux / macOS \u4E3B\u673A\u7167\u65E7\u652F\u6301\u3002","section.sftp":"SFTP \u6587\u4EF6\u4F20\u8F93","field.sftpStyle":"SFTP \u6587\u4EF6\u6D4F\u89C8\u98CE\u683C","option.sftpDialog":"\u5355\u7A97\u4F53 \u2014 \u8FDC\u7A0B\u76EE\u5F55 + \u4E0A\u4F20/\u4E0B\u8F7D/\u62D6\u62FD","option.sftpDual":"\u53CC\u680F \u2014 \u5DE6\u672C\u673A / \u53F3\u8FDC\u7A0B\uFF0C\u9009\u4E2D\u76F4\u4F20","hint.sftpDual":"\u53CC\u680F\u5728\u672C\u673A\u4E0E\u8FDC\u7A0B\u4E4B\u95F4\u5BF9\u62F7\u6587\u4EF6\uFF08\u76EE\u5F55\u9012\u5F52\u3001\u540C\u540D\u8986\u76D6\uFF09\uFF1B\u91CD\u65B0\u6253\u5F00 SFTP \u540E\u751F\u6548","field.sftpLimits":"SFTP \u4F20\u8F93\u9650\u5236\uFF080 = \u4E0D\u9650\uFF09","field.downloadLimit":"\u4E0B\u8F7D\u4E0A\u9650 (MB)","field.uploadLimit":"\u4E0A\u4F20\u4E0A\u9650 (MB)","field.uploadCountLimit":"\u6279\u91CF\u6587\u4EF6\u6570\u4E0A\u9650","hint.sftpLimits":"\u6D4F\u89C8\u5668\u4FA7\u4FDD\u62A4\uFF1A\u5355\u4E2A\u6587\u4EF6\u8D85\u8FC7\u4E0A\u9650\u65F6\u4E2D\u6B62\u4E0B\u8F7D/\u4E0A\u4F20\uFF08\u5927\u6587\u4EF6\u8BF7\u7528\u53CC\u680F \u21E8/\u21E6 \u76F4\u4F20\u6216\u7EC8\u7AEF scp/rsync\uFF0C\u4E0D\u5360\u6D4F\u89C8\u5668\u5185\u5B58\uFF09\uFF1B\u6587\u4EF6\u6570\u4E0A\u9650\u9488\u5BF9\u4E00\u6B21\u6279\u91CF/\u62D6\u62FD\u4E0A\u4F20\uFF1B\u4FDD\u5B58\u5373\u70ED\u751F\u6548","section.session":"\u4F1A\u8BDD","field.persistence":"\u4F1A\u8BDD\u6301\u4E45\u5316\uFF08tmux\uFF09","option.persistOff":"\u5173\u95ED \u2014 \u4F1A\u8BDD\u968F\u9762\u677F/\u5BBF\u4E3B\u7ED3\u675F\uFF08\u9ED8\u8BA4\uFF09","option.persistTmux":"tmux \u2014 \u65B0\u5F00\u7684\u7EC8\u7AEF/SSH \u6807\u7B7E\u9ED8\u8BA4\u6301\u4E45\u5316","hint.persistence":"\u5F00\u542F\u540E\u6240\u6709\u65B0\u6807\u7B7E\uFF08\u672C\u5730/SSH \u8FDE\u63A5\u7C3F/SSH \u8FDE\u63A5\u5BF9\u8BDD\u6846\uFF09\u9ED8\u8BA4\u7531 tmux \u6258\u7BA1\u3001\u53EF\u8DE8\u5BBF\u4E3B\u91CD\u542F\u6062\u590D\uFF1B\u9700\u672C\u673A/\u8FDC\u7A0B\u5B89\u88C5 tmux\uFF1BSSH \u5BF9\u8BDD\u6846\u53EF\u5BF9\u5355\u6B21\u8FDE\u63A5\u53D6\u6D88\u52FE\u9009\uFF1B\u5DF2\u6709\u6807\u7B7E\u4E0D\u53D7\u5F71\u54CD","hint.persistenceWindows":"\uFF1BWindows \u5BBF\u4E3B\u4E0A tmux \u4E0D\u53EF\u7528\uFF0C\u672C\u5730\u6807\u7B7E\u4F1A\u7167\u5E38\u6253\u5F00\u4F46\u4E0D\u53D7\u6258\u7BA1","check.endOnPageClose":"\u5173\u95ED\u9875\u9762\u540E\u7ED3\u675F\u6301\u4E45\u4F1A\u8BDD\uFF08\u4E0D\u4FDD\u6D3B\uFF09","check.statsEnabled":"\u670D\u52A1\u5668\u72B6\u6001\u6761\uFF08CPU / \u5185\u5B58 / \u78C1\u76D8 / \u5728\u7EBF / TCP / \u7F51\u901F\uFF1B\u91C7\u4E0D\u5230\u7684\u9879\u663E\u793A\u300C\u65E0\u300D\uFF09","hint.statsEnabled":"\u9ED8\u8BA4\u5173\u95ED\uFF1A\u6574\u4E2A\u9875\u9762\u5173\u95ED\u65F6\u6301\u4E45\u4F1A\u8BDD\u7559\u5B58\uFF08\u4FDD\u6D3B\u671F\u540E\u53EF\u518D\u6062\u590D\uFF09\uFF1B\u5F00\u542F\u5219\u9875\u9762\u65AD\u5F00\u4E14\u4FDD\u6D3B\u671F\u7ED3\u675F\u65F6\u8FDE tmux \u4F1A\u8BDD\u4E00\u8D77\u7ED3\u675F\u2014\u2014\u6CE8\u610F\u5237\u65B0\u9875\u9762\u5728\u4FDD\u6D3B\u671F\u5185\u4E0D\u53D7\u5F71\u54CD","check.allowProxyCommand":"\u5141\u8BB8 ProxyCommand\uFF08\u672C\u673A\u6267\u884C\u547D\u4EE4\uFF1B\u9ED8\u8BA4\u5173\uFF09","hint.allowProxyCommand":"\u6253\u5F00\u540E\uFF0C\u8FDE\u63A5\u7C3F\u6761\u76EE\u91CC\u586B\u7684\u4EE3\u7406\u547D\u4EE4\u4F1A\u5728\u8FD9\u53F0\u673A\u5668\u4E0A\u6267\u884C\uFF0C\u5B83\u7684 stdin/stdout \u5F53\u4F5C\u5230\u76EE\u6807\u7684 SSH \u4F20\u8F93\uFF08\u7B49\u4EF7\u4E8E OpenSSH \u7684 ProxyCommand\uFF09\u3002\u8FD9\u662F\u672C\u63D2\u4EF6\u552F\u4E00\u300C\u914D\u7F6E\u91CC\u5199\u4E00\u884C\u5C31\u5728\u672C\u673A\u8DD1\u547D\u4EE4\u300D\u7684\u5F00\u5173\uFF0C\u6240\u4EE5\u9ED8\u8BA4\u5173\uFF1A\u5173\u7740\u65F6\u643A\u5E26\u4EE3\u7406\u547D\u4EE4\u7684\u8FDE\u63A5\u4F1A\u660E\u786E\u5931\u8D25\uFF08\u4E0D\u4F1A\u9000\u56DE\u76F4\u8FDE\uFF09\u3002~/.ssh/config \u5BFC\u5165\u6C38\u4E0D\u81EA\u52A8\u5E26\u5165\u4EE3\u7406\u547D\u4EE4\u3002","field.maxSessions":"\u5E76\u53D1\u4F1A\u8BDD\u4E0A\u9650\uFF081~16\uFF09","hint.maxSessions":"\u8D85\u8FC7\u4E0A\u9650\u7684\u65B0\u6807\u7B7E\u4F1A\u88AB\u62D2\u7EDD\uFF1B\u4FDD\u5B58\u5373\u70ED\u751F\u6548","field.shell":"Shell \u8DEF\u5F84\uFF08\u9ED8\u8BA4 $SHELL\uFF09","field.shellWindows":"Shell \u8DEF\u5F84\uFF08\u9ED8\u8BA4 %COMSPEC%\uFF09","placeholder.shell":"\u7559\u7A7A\u4F7F\u7528 $SHELL","placeholder.shellWindows":"\u7559\u7A7A\u4F7F\u7528 %COMSPEC%\uFF08\u4E5F\u53EF\u586B powershell.exe / pwsh.exe \u5B8C\u6574\u8DEF\u5F84\uFF09","list.noShellCandidate":"\u6CA1\u6709\u5339\u914D\u7684\u5019\u9009 \u2014 \u76F4\u63A5\u8F93\u5165\u4EFB\u610F\u8DEF\u5F84\u5373\u53EF","hint.shellCandidatesWindows":"Windows \u5BBF\u4E3B\uFF1A\u5019\u9009\u6765\u81EA %COMSPEC% \u4E0E\u5DF2\u5B89\u88C5\u7684 PowerShell\uFF08Windows PowerShell 5.1 / PowerShell 7\uFF09\uFF0C\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u4EFB\u610F\u8DEF\u5F84\uFF1Bcmd / PowerShell \u6CA1\u6709 POSIX \u7684\u547D\u4EE4\u8FB9\u754C\u94A9\u5B50\uFF0C\u6240\u4EE5\u8FD9\u4E24\u8005\u4E0D\u652F\u6301 shell \u96C6\u6210","hint.shellCandidates":"\u53EF\u4E0B\u62C9\u9009\u62E9\u672C\u673A\u5DF2\u5B89\u88C5 shell\uFF08$SHELL \u4F18\u5148\uFF09\uFF0C\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u4EFB\u610F\u8DEF\u5F84\uFF1Bzsh / bash \u652F\u6301 shell \u96C6\u6210","hint.term":"TUI \u7A0B\u5E8F\u4F9D\u8D56\u6B64\u503C","field.cwd":"\u515C\u5E95\u5DE5\u4F5C\u76EE\u5F55\uFF08\u5BA2\u6237\u7AEF\u5F53\u524D\u4F1A\u8BDD cwd \u4F18\u5148\uFF09","placeholder.cwd":"\u7559\u7A7A\u4F7F\u7528\u5BBF\u4E3B\u8FDB\u7A0B\u542F\u52A8\u76EE\u5F55","field.grace":"\u65AD\u7EBF\u4FDD\u6D3B\uFF08\u79D2\uFF0C0 = \u7ACB\u5373\u7ED3\u675F\uFF09","hint.grace":"\u5237\u65B0\u9875\u9762/\u7F51\u7EDC\u6296\u52A8\u540E\u4F1A\u8BDD\u4FDD\u6D3B\u7B49\u5F85\u91CD\u8FDE\uFF0C\u8D85\u65F6\u540E\u7ED3\u675F\uFF1B\u4FDD\u5B58\u5373\u70ED\u751F\u6548","section.ssh":"SSH \u8FDE\u63A5","btn.probeRowTitle":"\u8BD5\u8FDE\u8BE5\u6761\u76EE\uFF1ATCP \u2192 \u4E3B\u673A\u5BC6\u94A5 \u2192 \u8BA4\u8BC1\u9010\u6BB5\u8BCA\u65AD","msg.testing":"\u6D4B\u8BD5\u4E2D\u2026","btn.test":"\u6D4B\u8BD5","btn.edit":"\u7F16\u8F91","btn.delete":"\u5220\u9664","list.emptySshHosts":"\u6682\u65E0\u6761\u76EE \u2014 \u7EC8\u7AEF\u9762\u677F\u300C+\u300D\u2192 SSH \u8FDE\u63A5\u2026 \u52FE\u9009\u300C\u4FDD\u5B58\u5230\u8FDE\u63A5\u7C3F\u300D\u5373\u53EF\u6DFB\u52A0","btn.importSshConfig":"\u4ECE ~/.ssh/config \u5BFC\u5165","hint.importSshConfig":"\u540C\u540D\u8DF3\u8FC7\uFF1B\u968F\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","hint.sshBook":"\u968F\u300C\u4FDD\u5B58\u300D\u4E00\u5E76\u5199\u5165\u914D\u7F6E\uFF1B\u5BC6\u7801/\u53E3\u4EE4\u652F\u6301 env:VAR \u5F15\u7528\uFF0C\u907F\u514D\u660E\u6587\u5165\u5E93","check.tunnelEnabled":"\u542F\u7528","list.emptyTunnels":"\u6682\u65E0\u96A7\u9053 \u2014 \u628A\u8FDC\u7A0B\u6570\u636E\u5E93/\u5185\u90E8\u670D\u52A1\u6620\u5C04\u5230\u672C\u5730\u7AEF\u53E3","field.direction":"\u8F6C\u53D1\u65B9\u5411","option.localForwardTitle":"\u672C\u5730\u8F6C\u53D1 -L\uFF1A\u672C\u673A\u76D1\u542C\uFF0C\u8FDE\u5230 SSH \u670D\u52A1\u5668\u4FA7\u7684\u76EE\u6807","option.localForward":"\u672C\u5730 -L","option.remoteForwardTitle":"\u8FDC\u7A0B\u8F6C\u53D1 -R\uFF1ASSH \u670D\u52A1\u5668\u4FA7\u76D1\u542C\uFF0C\u62E8\u56DE\u672C\u673A\u670D\u52A1","option.remoteForward":"\u8FDC\u7A0B -R","option.selectBook":"\u9009\u62E9\u8FDE\u63A5\u7C3F\u6761\u76EE","hint.tunnelViaBook":"\u7ECF {book} \u8FDE\u63A5 \u2014 \u96A7\u9053\u7684\u4E3B\u673A\u4E0E\u8BA4\u8BC1\u53D6\u81EA\u8BE5\u8FDE\u63A5\u7C3F\u6761\u76EE","hint.tunnelBookEmpty":"\u9009\u62E9\u8FD9\u6761\u96A7\u9053\u8981\u8D70\u54EA\u53F0 SSH \u8FDE\u63A5\uFF08\u4E3B\u673A\u4E0E\u8BA4\u8BC1\u53D6\u81EA\u8FDE\u63A5\u7C3F\uFF09","hint.localListenFixed":"\u672C\u673A\u76D1\u542C\u5730\u5740\u56FA\u5B9A 127.0.0.1\uFF08\u4E0D\u66B4\u9732\u5230\u5C40\u57DF\u7F51\uFF09","placeholder.localPort":"\u672C\u673A\u7AEF\u53E3","field.localListenPort":"\u672C\u673A\u76D1\u542C\u7AEF\u53E3","hint.flowLocalToRemote":"\u6570\u636E\u6D41\u5411\uFF1A\u672C\u673A \u2192 SSH \u670D\u52A1\u5668\u4FA7","placeholder.remoteHost":"\u670D\u52A1\u5668\u4FA7\u4E3B\u673A","hint.remoteHostTitle":"\u76EE\u6807\u4E3B\u673A\u540D\u6216 IP\uFF08\u7531 SSH \u670D\u52A1\u5668\u4FA7\u8BBF\u95EE\uFF1B127.0.0.1 = \u670D\u52A1\u5668\u81EA\u8EAB\uFF09","field.remoteHost":"\u670D\u52A1\u5668\u4FA7\u76EE\u6807\u4E3B\u673A","placeholder.port":"\u7AEF\u53E3","field.remotePort":"\u670D\u52A1\u5668\u4FA7\u76EE\u6807\u7AEF\u53E3","placeholder.remoteListenHost":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u5730\u5740","hint.remoteListenHost":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u5730\u5740\uFF08\u7F3A\u7701 127.0.0.1\uFF1B\u7559\u7A7A\u5373\u53EA\u8BA9\u670D\u52A1\u5668\u81EA\u5DF1\u8BBF\u95EE\uFF09","field.remoteListenHost":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u5730\u5740","placeholder.listenPort":"\u76D1\u542C\u7AEF\u53E3","field.remoteListenPort":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u7AEF\u53E3","hint.flowRemoteToLocal":"\u6570\u636E\u6D41\u5411\uFF1A\u672C\u673A \u2190 SSH \u670D\u52A1\u5668\u4FA7","hint.localDialFixed":"\u672C\u673A\u62E8\u53F7\u5730\u5740\u56FA\u5B9A 127.0.0.1","placeholder.localTargetPort":"\u672C\u673A\u670D\u52A1\u7AEF\u53E3","field.localTargetPort":"\u672C\u673A\u76EE\u6807\u7AEF\u53E3","hint.tunnelLocalSummary":"\u5DE6\uFF1A\u672C\u673A\u76D1\u542C\uFF08\u56FA\u5B9A 127.0.0.1\uFF09\u2192 \u53F3\uFF1A\u7531 SSH \u670D\u52A1\u5668\u4FA7\u8BBF\u95EE\u7684\u76EE\u6807","hint.tunnelRemoteSummary":"\u5DE6\uFF1ASSH \u670D\u52A1\u5668\u4FA7\u76D1\u542C \u2192 \u53F3\uFF1A\u672C\u673A\u88AB\u8BBF\u95EE\u7684\u670D\u52A1\uFF08\u56FA\u5B9A 127.0.0.1\uFF09","btn.addTunnel":"\u6DFB\u52A0\u96A7\u9053","hint.tunnelAdd":"\u6DFB\u52A0\u540E\u7ACB\u5373\u751F\u6548\uFF1B\u65AD\u7EBF\u81EA\u52A8\u91CD\u8FDE\uFF1B\u672C\u5730\u7AEF\u53E3\u5EFA\u8BAE 1024 \u4EE5\u4E0A\uFF1B\u8FDC\u7A0B\u4E3B\u673A\u7531 SSH \u670D\u52A1\u5668\u4FA7\u8BBF\u95EE\uFF08127.0.0.1 = \u670D\u52A1\u5668\u81EA\u8EAB\uFF09","hint.tunnelEditing":"\u6B63\u5728\u7F16\u8F91\u300C{name}\u300D\u2014\u2014\u6539\u7AEF\u53E3/\u6761\u76EE\u4F1A\u6309\u89C4\u5219\u751F\u6210\u65B0\u540D\u5B57\uFF1B\u4FDD\u5B58\u540E\u7ACB\u5373\u751F\u6548","panel.hostKeys":"SSH \u4E3B\u673A\u5BC6\u94A5\u8BB0\u5F55\uFF08TOFU\uFF09","btn.importKnownHosts":"\u4ECE known_hosts \u5BFC\u5165","list.emptyHostKeys":"\u6682\u65E0\u8BB0\u5F55 \u2014 \u9996\u6B21 SSH \u8FDE\u63A5\u6210\u529F\u540E\u81EA\u52A8\u8BB0\u5F55\u4E3B\u673A\u6307\u7EB9","hint.hostKeys":"\u4E00\u673A\u591A\u628A\u94A5\u5319\uFF08\u5982 rsa + ed25519\uFF09\u5404\u8BB0\u4E00\u6761\u6307\u7EB9\uFF0C\u4EFB\u4E00\u5339\u914D\u5373\u653E\u884C\uFF1B\u6307\u7EB9\u53D8\u66F4\u65F6\u8FDE\u63A5\u4F1A\u88AB\u62D2\u7EDD\uFF08\u9632\u4E2D\u95F4\u4EBA\uFF09\uFF0C\u786E\u8BA4\u5B89\u5168\u540E\u5220\u9664\u5BF9\u5E94\u8BB0\u5F55\u5373\u53EF\u91CD\u8FDE","msg.saving":"\u4FDD\u5B58\u4E2D\u2026","btn.save":"\u4FDD\u5B58","list.none":"\u65E0","meta.mem":"\u5185\u5B58","meta.disk":"\u78C1\u76D8","meta.cores":"\u6838\u5FC3","meta.uptime":"\u5728\u7EBF","meta.temp":"CPU\u6E29\u5EA6","meta.net":"\u7F51\u7EDC","error.tunnelNoBook":"\u8BF7\u5148\u5728\u8FDE\u63A5\u7C3F\u91CC\u6DFB\u52A0 SSH \u6761\u76EE","error.tunnelRemotePortRequired":"\u8FDC\u7A0B\u76D1\u542C\u7AEF\u53E3\u4E0E\u672C\u5730\u76EE\u6807\u7AEF\u53E3\u5FC5\u586B\uFF081~65535\uFF09","error.tunnelLocalRequired":"\u672C\u5730\u7AEF\u53E3\u3001\u8FDC\u7A0B\u4E3B\u673A\u3001\u8FDC\u7A0B\u7AEF\u53E3\u5FC5\u586B","error.tunnelMissing":"\u96A7\u9053\u300C{name}\u300D\u5DF2\u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u88AB\u53E6\u4E00\u4E2A\u7A97\u53E3\u5220\u9664\uFF09","error.tunnelClash":"\u5DF2\u5B58\u5728\u540C\u540D\u96A7\u9053\u300C{name}\u300D\u2014\u2014\u8BF7\u5148\u5904\u7406\u90A3\u6761\u540C\u540D\u7684\u3002","msg.renaming":"\u91CD\u547D\u540D {name}\u2026","msg.deleting":"\u5220\u9664 {name}\u2026","msg.downloading":"\u4E0B\u8F7D {name}\u2026","msg.uploadingName":"\u4E0A\u4F20 {name}","error.invalidTaskState":"\u670D\u52A1\u7AEF\u8FD4\u56DE\u4E86\u975E\u6CD5\u7684\u4EFB\u52A1\u72B6\u6001","hint.rememberCredentialApply":"\u52FE\u9009\u540E\uFF0C\u70B9\u300C\u5E94\u7528\u300D\u65F6\u628A\u5BC6\u7801\u5199\u8FDB\u5B98\u65B9\u51ED\u636E\u5B58\u50A8\uFF0C\u5B57\u6BB5\u91CC\u53EA\u7559 env: \u5F15\u7528\uFF08\u503C\u5728 ~/.dsh/.credentials.yaml\uFF0C\u4E0D\u8FDB\u73AF\u5883\u3001\u4E0D\u56DE\u4F20\u6D4F\u89C8\u5668\uFF1B\u6321\u4E0D\u4F4F\u540C\u7528\u6237\u8FDB\u7A0B\u4E0E agent\uFF09\u3002\u4E0D\u52FE\u9009\u5219\u6309\u73B0\u72B6\u660E\u6587\u5199\u8FDB\u8BBE\u7F6E\u6587\u4EF6\u3002\u80FD\u7528\u5BC6\u94A5 / agent \u5C31\u522B\u5B58\u5BC6\u7801\u3002","hint.noCredRefPasswordApply":"\u8FD8\u6CA1\u6709\u522B\u7684\u8FDE\u63A5\u7528\u8FC7\u51ED\u636E\u5F15\u7528 \u2014 \u52FE\u4E0A\u9762\u7684\u300C\u5E94\u7528\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8\u300D\u65B0\u5EFA\u4E00\u4E2A\uFF0C\u6216\u76F4\u63A5\u5728\u5BC6\u7801\u6846\u624B\u8F93 env:NAME","hint.bookNameConflict":"\u540C\u540D\u51B2\u7A81\u4F1A\u88AB\u62D2\u7EDD","btn.apply":"\u5E94\u7528"},Uf={"error.credServiceMissing":"The host does not provide the credential service (remote.credentials)","error.credServiceIncomplete":"The credential service is incomplete","error.credStoreUnavailable":"The host does not provide the credential service (remote.credentials); cannot store","error.credStoreFailed":"Failed to store the credential: {error}","error.credClearUnavailable":"The host does not provide the credential service (remote.credentials); cannot clear","error.credClearFailed":"Failed to clear: {error}","error.credRefNeedsHost":"Fill in host and username first \u2014 the reference name is derived from them","btn.reopen":"Reopen","btn.reopenTitle":"Reopen the session with the original connection settings","btn.sftpTitle":"Open the SFTP file browser for this connection","btn.tunnels":"Tunnels {count}","btn.tunnelsTitle":"View the port-forwarding tunnels of this connection","btn.more":"More","btn.moreTitle":"More actions (port forwarding\u2026)","btn.reopenSession":"Reopen session","status.exited":"Session exited","status.ended":"Session ended","btn.clickReopen":"Click to reopen","btn.clickRerun":"Click to run again","msg.passwordNotStored":"For security, plaintext passwords/passphrases are not kept in browser storage, so this connection needs them again: re-enter them when reopening the tab, or switch the credential to an env: reference in the settings card (the value lives in the host credential store).","error.terminalNeedsCommand":"ttyTerminal requires a command","error.terminalCommandSingleLine":"command must be a single line","error.terminalNeedsHost":"ttyTerminal.mount requires an HTMLElement as the mount point","error.panelNotReady":"ttyPanel.mountPane: the terminal panel is not ready","panel.dragHeight":"Drag to resize height","panel.dragWidth":"Drag to resize width","btn.closePane":"Close the side pane","btn.expandPane":"Expand the side pane","btn.collapsePane":"Collapse the side pane","panel.tabLabel":"Terminal {n}","btn.close":"Close","btn.closeTabAria":"Close tab: {label}","btn.newTab":"New (local / SSH)","meta.tunnelRemote":"remote:{host}:{port} \u2192 local:{local}","meta.tunnelLocal":"local:{local} \u2192 {host}:{port}","status.tmuxPersistedTitle":"Hosted by tmux \u2014 the session is reattached by name after a disconnect or host restart","status.notPersisted":"Not persisted","status.tmuxUnavailableTitle":"A persistent session was requested but tmux is unavailable \u2014 this is a plain session","status.connected":"Connected","status.connecting":"Connecting","status.errored":"Connection error","panel.tunnels":"Port forwarding","hint.tunnelsSettings":"Configure in Settings \u2192 Plugins \u2192 Terminal panel","panel.tunnelsFor":"Port forwarding \u2014 {name}","list.loading":"Loading\u2026","hint.tunnelsCard":"Add, remove, enable, or disable tunnels in the port-forwarding section of Settings \u2192 Plugins \u2192 Terminal panel","list.noActiveTunnels":"No enabled tunnels for this connection","status.fatalSuffix":" (no retry; fix the config)","msg.maxSessions":"Session limit reached ({live} total / max {max}: {own} in this window{others}) \u2014 close unused windows or tabs, or raise \u201CConcurrent session limit\u201D in the settings card","msg.maxSessionsOthers":" + {count} in other windows","error.probeHttp":"Connection test failed (HTTP {status})","msg.probing":"Testing the connection\u2026","meta.reachable":"reachable","meta.unreachable":"unreachable","meta.probeBanner":"banner ok","meta.hostKeyMatched":"Host key matched","meta.hostKeyRecorded":"Host key recorded (TOFU)","meta.hostKeyMismatch":"Host key mismatch!","meta.authOkMs":"Authenticated ({ms}ms)","meta.authOk":"Authenticated","meta.probeOk":"\u2705 Connected: {detail}","error.unknown":"Unknown error","btn.maxSessionsTitle":"Session limit reached \u2014 click to see what to do","option.localTerminal":"Local terminal","hint.tmuxHosted":"Hosted by tmux \xB7 recoverable after a host restart","hint.openInSessionCwd":"Open in the current session working directory","panel.sshBook":"SSH host book","btn.sftpFileBrowse":"SFTP file browser","btn.editConnection":"Edit connection","list.emptySshBook":"(empty \u2014 save one in the settings card or via \u201CSSH connection\u2026\u201D)","option.sshConnect":"SSH connection\u2026","hint.sshConnect":"Fill in host, user, and authentication manually","panel.editConnection":"Edit connection \xB7 {name}","panel.sshConnect":"SSH connection","section.jump":"Jump host","field.jumpHost":"Jump host ([user@]host[:port]; empty = direct)","placeholder.jumpHost":"e.g. bastion.corp:2222","check.jumpOwnCred":"Use separate credentials for the jump host","field.jumpUsername":"Jump host user (empty = same as the target)","field.jumpAuth":"Jump host auth (empty = same as the target)","hint.jumpInherit":"Empty credentials reuse the target host\u2019s auth method and keys. When the jump host itself is unreachable the error names it (it will not masquerade as a target timeout).","meta.jumpStage":"Jump host {label}","meta.viaJump":"\u21E2 via {label}","meta.viaProxy":"\u21E2 via proxy command","section.proxyCommand":"Proxy command","field.proxyCommand":"Proxy command (ProxyCommand; empty = unused)","placeholder.proxyCommand":"e.g. ssh -W %h:%p bastion","hint.proxyCommand":"A command run on this machine whose stdin/stdout become the SSH transport to the target (the same idea as OpenSSH\u2019s ProxyCommand). Supports %h host, %p port, %r user, %n host and %% for a literal %; anything else is left as written. If a jump host is set too, the jump host wins (OpenSSH semantics). It needs the switch below, and importing ~/.ssh/config never fills it in.","hint.proxyCommandDisabled":"\u26A0 \u201CAllow ProxyCommand\u201D is off right now: this command will not run and the connection fails explicitly (it does not fall back to a direct connection). Turn it on in Plugin settings \u2192 Terminal panel.","hint.proxyCommandNotGranted":"\u26A0 Not granted by the host: clicking this switch starts a grant in place (the panel shows one command to run in a terminal on the host \u2014 no restart), or use the strictest route \u2014 export DSH_TTY_ALLOW_PROXY_COMMAND=1 in the environment that launched dsh and restart the host (setting it after launch does not count). The reason: cross-site pages and in-page scripts can both send loopback requests, so if the settings UI could raise it out of thin air this gate would be pointless. Turning it off always works.","badge.notEffective":"Not effective: not granted by the host","elev.title":"Grant in place (no restart)","elev.lockedWhy":"Any local process can send loopback requests, so \u201Cturn on a dangerous capability\u201D cannot be decided by this page alone \u2014 it has to be confirmed on the host\u2019s filesystem once.","elev.step":"Run the command below in a terminal on the host and the switch unlocks by itself:","elev.copy":"Copy command","elev.copied":"Copied","elev.copyManual":"The clipboard is unavailable here \u2014 select the command above and copy it manually.","elev.expiresIn":"expires in {sec}s","elev.expired":"This confirmation has expired \u2014 generate a new one.","elev.waiting":"Waiting for confirmation\u2026 once you run the command this turns into \u201Cgranted\u201D automatically.","elev.regenerate":"Generate a new one","elev.loading":"Generating the confirmation command\u2026","elev.granted":"Granted and now in effect.","elev.grantedNeedSave":"Granted. Press \u201CSave\u201D to apply.","elev.grantedAt":"Granted \xB7 {time}","elev.revoke":"Revoke host grant","elev.revoked":"Host grant revoked (the config switch is left untouched; granting again takes effect immediately).","elev.viaEnv":"Granted by a launch environment variable; to revoke, remove it from the launch environment and restart the host.","elev.close":"Collapse","elev.disableFirst":"Turn this config switch off first","elev.otherWay":"The other way (strongest, needs a host restart)","elev.envHow":"In the environment that launched dsh: export {env}=1, then restart the host. Setting it after launch \u2014 or writing it into some other config file \u2014 does not count as a grant; that is exactly what this gate guards against.","elev.error":"In-place grant failed: ","meta.probeProxy":"Proxy command","meta.probeProxyOff":"Proxy command (disabled)","meta.probeTcpSkipped":"Direct TCP check skipped (using the proxy command)","section.connection":"Connection","field.host":"Host","placeholder.host":"example.com or IP","field.port":"Port","field.username":"Username","section.auth":"Authentication","field.authMethod":"Auth method","option.authInherit":"(same as the target)","option.authAgent":"agent \u2014 use the local ssh-agent","option.authKey":"key \u2014 private key file","option.authPassword":"password \u2014 password","field.keyPath":"Private key path","field.passphrase":"Key passphrase (optional)","field.password":"Password","placeholder.credRef":"Or: pick a reference name from the credential store","hint.credRefCandidates":"Candidates = reference names already in the credential store + those in use by the local host book","list.credOverwrite":"{name} (click again to overwrite)","list.moreMatches":"{count} more \u2014 keep typing to filter","list.noCredRef":"No matching reference","check.rememberCredential":"Store in the credential store on save","hint.rememberCredential":"When checked, \u201CSave changes\u201D or \u201CConnect (and save)\u201D writes the password into the official credential store and leaves only an env: reference in the field (the value lives in ~/.dsh/.credentials.yaml; it is not put into the environment and is not sent back to the browser; it does not protect against same-user processes or the agent). Unchecked keeps today's plaintext write into the settings file. If a key or the agent works, do not store a password.","btn.clearCredential":"Clear stored credential","error.credPlainUnavailable":"The host does not provide the credential service (remote.credentials); plaintext save only","error.credPlainIncomplete":"The credential service is incomplete; plaintext save only","status.credUnreported":"Reference {ref}: the host reported no status","error.credStatusFailed":"Failed to read the credential status: {error}","status.credStored":"Stored{source} \xB7 {ref}","meta.credSource":" (source: {source})","status.credUnknown":"Reference {ref}: the store does not have this value yet","hint.noCredRefPassphrase":"No other connection uses a credential reference yet \u2014 you can type env:NAME straight into the passphrase box","hint.noCredRefPassword":"No other connection uses a credential reference yet \u2014 check \u201CStore in the credential store on save\u201D above to create one, or type env:NAME straight into the password box","section.options":"Options","check.agentForward":"agent forwarding (the remote side can use local ssh-agent keys, e.g. remote git clone)","check.persist":"Persistent session (hosted by tmux, survives a disconnect/restart; tmux must be installed on the remote)","check.saveToBook":"Save to the host book (overwrite the same name)","field.bookName":"Host book name","placeholder.bookName":"Leave empty to use the host name","error.hostUserRequired":"Host and username are required","error.keyPathRequired":"auth=key requires a private key path","error.passwordRequired":"auth=password requires a password","btn.cancel":"Cancel","btn.connect":"Connect","btn.fileBrowse":"File browser","btn.browseTitle":"Open the SFTP file browser with the values currently filled in, without touching a terminal","btn.probe":"Test","btn.probeTitle":"Diagnose the connection with the values currently filled in (TCP \u2192 host key \u2192 authentication); no session is created and no host fingerprint is recorded","error.saveCredFailed":"Save failed: {error}","btn.saveEdit":"Save changes","error.saveBookFailed":"Failed to save the host book: {error}","error.bookNameTaken":"The host book already has an entry named: {name}","panel.sftpDual":"SFTP dual pane \xB7 {label}","status.failed":"Failed","status.done":"Done","placeholder.localPath":"Local path (Enter to go)","placeholder.remotePath":"Remote path (Enter to go)","btn.refresh":"Refresh","btn.mkdir":"New folder","error.dirNotReady":"The directory is not resolved yet","meta.dir":"folder","btn.transferTo":"Transfer to {target}: {path}","meta.local":"local","meta.remote":"remote","error.transferDirsNotReady":"Both directories are not resolved yet; wait for the lists to load before transferring","msg.transferring":"Transferring {name}\u2026","error.transferFailed":"Transfer failed","error.noTaskId":"The server returned no task id","msg.transferCanceled":"Transfer canceled: {name}","msg.transferred":"Transferred {name}","btn.download":"Download {name}","btn.rename":"Rename {name}","placeholder.newName":"New name","btn.deleteEntry":"Delete {name}","btn.deleteEntryDir":"Delete {name} (with contents)","msg.deleted":"Deleted {name}","list.parentDir":".. (parent folder)","list.emptyDir":"(empty folder)","list.truncated":"\u2026{rest} more not rendered ({total} total) \u2014 use the path box above to jump to a subfolder","list.itemCount":"{count} items","placeholder.newDirName":"New folder name (relative to the current folder)","msg.creatingDir":"Creating folder {name}\u2026","btn.ok":"OK","btn.confirm":"Confirm?","btn.cancelTransfer":"Cancel transfer","msg.downloadCanceled":"Download canceled: {name}","error.downloadFailed":"Download failed","msg.downloaded":"Downloaded {name} ({size})","error.downloadTooBig":"The file exceeds the download limit ({size}); use dual-pane \u21E6 direct transfer or scp/rsync in the terminal","msg.canceled":"Canceled","btn.upload":"Upload","btn.uploadTitle":"Pick files to upload, or drag files/folders straight into the list","msg.uploading":"Uploading\u2026","msg.uploadDone":"Upload finished","error.uploadFailed":"Upload failed","error.networkError":"Network error","error.uploadCountExceeded":"Too many files (limit {max}): {count} this time \u2014 upload in batches","status.overLimit":"Over the limit","error.uploadTooBig":"The file exceeds the upload limit ({size}): {name} \u2014 use dual-pane \u21E8 direct transfer or scp/rsync in the terminal","error.uploadTotalTooBig":"The total size exceeds the upload limit: upload in batches (or use dual-pane \u21E8 direct transfer)","msg.uploadCanceled":"Upload canceled ({done}/{total} done)","status.allDone":"All done","msg.uploadDoneCount":"Uploaded {count} files","error.connectFailed":"Connection failed: {error}","status.connectingEllipsis":"Connecting\u2026","status.connectedPid":"Connected pid={pid}","status.connectedSsh":"SSH {target}connected","status.exitedWith":"Exited {detail}","status.error":"Error: {message}","status.retryHint":"{message} \xB7 click to retry","btn.clickRetry":"Click to retry","status.disconnectedReconnecting":"Disconnected \u2014 reconnecting","status.disconnected":"Disconnected","status.reconnecting":"Reconnecting\u2026","error.copyFailed":"Copy failed: this environment does not allow clipboard access (over http, use localhost or the terminal's own shortcuts)","error.pasteFailed":"The browser does not allow pages to read the clipboard (common over http): paste with Ctrl+V / Cmd+V inside the terminal","status.initializing":"Initializing\u2026","placeholder.search":"Search (Enter next, Shift+Enter previous)","btn.searchTitle":"Search (Ctrl+F)","btn.clearTitle":"Clear","btn.copyTitle":"Copy selection","btn.pasteTitle":"Paste","btn.minimizeTitle":"Minimize (sessions keep running; the status moves into the sidebar entry)","btn.closePanelTitle":"Close the panel (ends sessions; tabs are kept and the list comes back on reopen)","btn.restoreDock":"Click to restore the terminal window","panel.title":"Terminal","status.minimized":"Terminal minimized \u2014 click to restore","error.configLoadFailed":"Failed to load the config","error.saveTunnelFailed":"Failed to save the tunnel","error.tunnelNameTaken":"A tunnel named \u201C{name}\u201D already exists \u2014 each \u201Chost book entry + direction + port\u201D combination can appear once. Change the port to get a new name, or delete the old one first.","msg.tunnelApplied":"Tunnel \u201C{name}\u201D is active","msg.tunnelUpdated":"Tunnel \u201C{name}\u201D updated","error.nameHostUserRequired":"Name, host, and username are required","msg.hostEdited":"Entry \u201C{name}\u201D updated \u2014 written to the config on \u201CSave\u201D","error.probeFailed":"\u274C Connection failed: {error}","error.hostKeyDeleteFailed":"Failed to delete the host key record","msg.hostKeyDeleted":"Host key record deleted (the fingerprint is recorded again on the next connection)","error.sshConfigReadFailed":"Failed to read ~/.ssh/config","msg.proxySkipped":"{count} entries use a jump host that could not be resolved (missing alias, or the alias itself needs a jump host) and were not imported: {names}","msg.proxyCommandSkipped":"{count} entries only set a proxy command (ProxyCommand) and were not imported: {names} \u2014 a proxy command is local command execution, so importing never fills it in; add it by hand on the connection-book entry and turn on \u201CAllow ProxyCommand\u201D","msg.skippedNotConcrete":"{count} entries are not a concrete host (wildcard / no User)","list.separator":", ","meta.etc":" etc.","msg.importOverflow":"{count} entries beyond the import limit were not imported","list.separatorFull":"; ","msg.noNewEntries":"No new entries ({count} skipped as duplicates)","msg.noImportableHosts":"~/.ssh/config has no concrete hosts to import","msg.importedHosts":"Imported {added} (skipped {skipped} duplicates); written to the config on \u201CSave\u201D","error.knownHostsReadFailed":"Failed to read ~/.ssh/known_hosts","msg.noNewFingerprints":"No new fingerprints ({count} already exist)","msg.noImportableKnownHosts":"known_hosts has no concrete hosts to import","error.saveHostKeysFailed":"Failed to save hostKeys","msg.importedFingerprints":"Imported fingerprints for {added} hosts (skipped {skipped} that already existed)","hint.knownHostsTruncated":"; note: known_hosts has more than 500 hosts \u2014 only the first 500 were imported","error.saveFailed":"Save failed","msg.saved":"Saved and applied live","check.rememberCredentialApply":"Store in the credential store on apply","hint.appliedOnSave":"Written to the config with the card's \u201CSave\u201D","card.name":"Terminal panel","card.desc":"xterm terminal panel: multiple tabs, automatic reconnect after a drop, cwd follows the session, SSH host book with host-key pinning, tmux session persistence.","card.descFull":"xterm terminal panel: multiple tabs, automatic reconnect after a drop, cwd follows the session, SSH host book with host-key pinning, tmux session persistence; shell / TERM / concurrency limits apply live on save.","list.loadingConfig":"Loading the config\u2026","section.basic":"Basics","check.enabled":"Enable the plugin (applies live on save: tools and the panel entry are withdrawn immediately, sessions move to keepalive)","check.announce":"Announce the terminal panel capabilities to the agent","check.shellIntegration":"Shell integration (OSC 133/7 injection)","check.shellIntegrationWindows":"Shell integration (OSC 133/7 injection; tty_capture{last} and cwd following depend on it)","hint.shellIntegrationWindows":"Not applicable on Windows hosts: injection relies on the POSIX `-c` wrapper and rc stubs, which do not hold for cmd / PowerShell (cmd ignores `-c` and exits, PowerShell reports that export does not exist). So cwd following and tty_capture{last} are unavailable for \u201Clocal\u201D tabs; remote Linux / macOS hosts are unaffected.","section.sftp":"SFTP file transfer","field.sftpStyle":"SFTP file browser style","option.sftpDialog":"Single pane \u2014 remote directory + upload/download/drag","option.sftpDual":"Dual pane \u2014 local on the left, remote on the right, direct transfer on selection","hint.sftpDual":"Dual pane copies files between local and remote (recursive, overwriting same names); takes effect after reopening SFTP","field.sftpLimits":"SFTP transfer limits (0 = unlimited)","field.downloadLimit":"Download limit (MB)","field.uploadLimit":"Upload limit (MB)","field.uploadCountLimit":"Batch file count limit","hint.sftpLimits":"Browser-side guard: a single file over the limit aborts the download/upload (for large files use dual-pane \u21E8/\u21E6 direct transfer or scp/rsync in the terminal; they do not consume browser memory); the file count limit applies to one batch/drag upload; applies live on save","section.session":"Sessions","field.persistence":"Session persistence (tmux)","option.persistOff":"Off \u2014 sessions end with the panel/host (default)","option.persistTmux":"tmux \u2014 new terminal/SSH tabs are persistent by default","hint.persistence":"When on, all new tabs (local / SSH host book / SSH connection dialog) are hosted by tmux by default and survive a host restart; tmux must be installed locally/remotely; the SSH dialog can opt out per connection; existing tabs are unaffected","hint.persistenceWindows":"; tmux is unavailable on Windows hosts, so local tabs still open but are not hosted","check.endOnPageClose":"End persistent sessions when the page closes (no keepalive)","check.statsEnabled":"Server stats bar (CPU / memory / disk / uptime / TCP / network; items that cannot be sampled show \u201CN/A\u201D)","hint.statsEnabled":"Off by default: persistent sessions survive closing the whole page (recoverable after the keepalive window); when on, they end together with the tmux session once the page disconnects and the keepalive window expires \u2014 note that refreshing the page within the keepalive window is unaffected","check.allowProxyCommand":"Allow ProxyCommand (runs a command on this machine; off by default)","hint.allowProxyCommand":"When on, a proxy command set on a connection-book entry runs on this machine, and its stdin/stdout become the SSH transport to the target (the same idea as OpenSSH\u2019s ProxyCommand). This is the only switch in this plugin that turns a settings field into local command execution, so it is off by default: while off, a connection carrying a proxy command fails explicitly (it does not fall back to a direct connection). Importing ~/.ssh/config never fills one in.","field.maxSessions":"Concurrent session limit (1\u201316)","hint.maxSessions":"New tabs beyond the limit are rejected; applies live on save","field.shell":"Shell path (defaults to $SHELL)","field.shellWindows":"Shell path (defaults to %COMSPEC%)","placeholder.shell":"Leave empty to use $SHELL","placeholder.shellWindows":"Leave empty to use %COMSPEC% (or enter the full path to powershell.exe / pwsh.exe)","list.noShellCandidate":"No matching candidate \u2014 just type any path","hint.shellCandidatesWindows":"Windows host: candidates come from %COMSPEC% and the installed PowerShell (Windows PowerShell 5.1 / PowerShell 7), and you can type any path; cmd / PowerShell have no POSIX command-boundary hooks, so shell integration is unsupported for them","hint.shellCandidates":"Pick an installed shell from the list ($SHELL first) or type any path; zsh / bash support shell integration","hint.term":"TUI programs depend on this value","field.cwd":"Fallback working directory (the client's current session cwd wins)","placeholder.cwd":"Leave empty to use the host process start directory","field.grace":"Disconnect keepalive (seconds, 0 = end immediately)","hint.grace":"Sessions are kept alive for reconnect after a page refresh or network hiccup and end on timeout; applies live on save","section.ssh":"SSH connections","btn.probeRowTitle":"Test this entry: per-stage diagnosis of TCP \u2192 host key \u2192 authentication","msg.testing":"Testing\u2026","btn.test":"Test","btn.edit":"Edit","btn.delete":"Delete","list.emptySshHosts":"No entries \u2014 add one via the terminal panel's \u201C+\u201D \u2192 SSH connection\u2026 and check \u201CSave to the host book\u201D","btn.importSshConfig":"Import from ~/.ssh/config","hint.importSshConfig":"Same names are skipped; written to the config on \u201CSave\u201D","hint.sshBook":"Written to the config together with \u201CSave\u201D; passwords/passphrases support env:VAR references to avoid plaintext storage","check.tunnelEnabled":"Enable","list.emptyTunnels":"No tunnels \u2014 map a remote database or internal service to a local port","field.direction":"Forwarding direction","option.localForwardTitle":"Local forward -L: listen locally and connect to a target on the SSH server side","option.localForward":"Local -L","option.remoteForwardTitle":"Remote forward -R: listen on the SSH server side and dial back to a local service","option.remoteForward":"Remote -R","option.selectBook":"Pick a host book entry","hint.tunnelViaBook":"Connects via {book} \u2014 the tunnel's host and credentials come from that host book entry","hint.tunnelBookEmpty":"Pick which SSH connection this tunnel uses (host and credentials come from the host book)","hint.localListenFixed":"The local listen address is fixed to 127.0.0.1 (not exposed to the LAN)","placeholder.localPort":"Local port","field.localListenPort":"Local listen port","hint.flowLocalToRemote":"Traffic flow: local \u2192 SSH server side","placeholder.remoteHost":"Server-side host","hint.remoteHostTitle":"Target host name or IP (reached from the SSH server side; 127.0.0.1 = the server itself)","field.remoteHost":"Server-side target host","placeholder.port":"Port","field.remotePort":"Server-side target port","placeholder.remoteListenHost":"Server-side listen address","hint.remoteListenHost":"Server-side listen address (defaults to 127.0.0.1; leave empty to allow only the server itself)","field.remoteListenHost":"Server-side listen address","placeholder.listenPort":"Listen port","field.remoteListenPort":"Server-side listen port","hint.flowRemoteToLocal":"Traffic flow: local \u2190 SSH server side","hint.localDialFixed":"The local dial address is fixed to 127.0.0.1","placeholder.localTargetPort":"Local service port","field.localTargetPort":"Local target port","hint.tunnelLocalSummary":"Left: local listener (fixed 127.0.0.1) \u2192 Right: target reached from the SSH server side","hint.tunnelRemoteSummary":"Left: SSH server-side listener \u2192 Right: local service being reached (fixed 127.0.0.1)","btn.addTunnel":"Add tunnel","hint.tunnelAdd":"Takes effect immediately; reconnects automatically after a drop; prefer local ports above 1024; remote hosts are reached from the SSH server side (127.0.0.1 = the server itself)","hint.tunnelEditing":"Editing \u201C{name}\u201D \u2014 changing the port/entry derives a new name by rule; takes effect immediately on save","panel.hostKeys":"SSH host key records (TOFU)","btn.importKnownHosts":"Import from known_hosts","list.emptyHostKeys":"No records \u2014 the host fingerprint is recorded automatically after the first successful SSH connection","hint.hostKeys":"A host with several keys (e.g. rsa + ed25519) gets one fingerprint each and any match is accepted; a changed fingerprint rejects the connection (MITM protection) \u2014 delete that record once you are sure it is safe, then reconnect","msg.saving":"Saving\u2026","btn.save":"Save","list.none":"N/A","meta.mem":"Memory","meta.disk":"Disk","meta.cores":"Cores","meta.uptime":"Uptime","meta.temp":"CPU temp","meta.net":"Network","error.tunnelNoBook":"Add an SSH entry to the host book first","error.tunnelRemotePortRequired":"A remote listen port and a local target port are required (1\u201365535)","error.tunnelLocalRequired":"Local port, remote host, and remote port are required","error.tunnelMissing":"Tunnel \u201C{name}\u201D no longer exists (it may have been deleted by another window)","error.tunnelClash":"A tunnel named \u201C{name}\u201D already exists \u2014 handle that one first.","msg.renaming":"Renaming {name}\u2026","msg.deleting":"Deleting {name}\u2026","msg.downloading":"Downloading {name}\u2026","msg.uploadingName":"Uploading {name}","error.invalidTaskState":"The server returned an invalid task state","hint.rememberCredentialApply":"When checked, \u201CApply\u201D writes the password into the official credential store and leaves only an env: reference in the field (the value lives in ~/.dsh/.credentials.yaml; it is not put into the environment and is not sent back to the browser; it does not protect against same-user processes or the agent). Unchecked keeps today's plaintext write into the settings file. If a key or the agent works, do not store a password.","hint.noCredRefPasswordApply":"No other connection uses a credential reference yet \u2014 check \u201CStore in the credential store on apply\u201D above to create one, or type env:NAME straight into the password box","hint.bookNameConflict":"A same-name conflict is rejected","btn.apply":"Apply"};function jf(e,t){return t===void 0?e:String(e).replace(/\{(\w+)\}/g,(r,s)=>t[s]===void 0?"":String(t[s]))}function Ql(e,t){return jf(Nn[e]!==void 0?Nn[e]:e,t)}var S=Ql;function zf(e){e.inject(["locale"],t=>{let r=t.locale.register(Dn,"zh",Nn),s=t.locale.register(Dn,"en",Uf);return S=t.locale.bind(Dn),()=>{s(),r(),S=Ql}})}function $f(){return kl(document.baseURI,globalThis.__DSH_TRANSPORT__?.streamBaseUrl)}function Ar(){return Lt!==null&&typeof Lt.describe=="function"?Lt:null}function kr(e){let t=String(e??"").trim();return t.startsWith("env:")?t.slice(4).trim():""}function qf(){let e=new Set;for(let t of Ht)for(let r of[t?.password,t?.passphrase]){let s=kr(r);s!==""&&e.add(s)}return[...e]}async function Kf(){try{let t=await(await fetch("/api/dsh-tty/credential-refs",{cache:"no-store"})).json();if(t.ok&&Array.isArray(t.names))return t.names.filter(r=>typeof r=="string"&&r!=="")}catch{}return[]}async function ec(){return[...new Set([...qf(),...await Kf()])].sort()}async function tc(e){let t=Ar();if(t===null)return{error:S(Lt===null?"error.credServiceMissing":"error.credServiceIncomplete")};try{let r=await t.describe([e]),s=r?.ok===!0?r.value?.[e]:void 0;return s===void 0?{unreported:!0}:{view:{configured:s.configured===!0,writable:s.writable===!0,source:typeof s.source=="string"?s.source:""}}}catch(r){return{error:r instanceof Error?r.message:String(r)}}}async function Gf(e,t){let r=Ar();if(r===null||typeof r.set!="function")return{error:S("error.credStoreUnavailable")};try{return await r.set(e,t),{value:"env:"+e}}catch(s){return{error:S("error.credStoreFailed",{error:s instanceof Error?s.message:String(s)})}}}async function rc(e){let t=Ar();if(t===null||typeof t.unset!="function")return{error:S("error.credClearUnavailable")};try{return await t.unset(e),{}}catch(r){return{error:S("error.credClearFailed",{error:r instanceof Error?r.message:String(r)})}}}async function ic(e,t,r,s,a,i){if(e!==!0)return{};let n=String(t??"").trim();if(n===""||n.startsWith("env:"))return{};let o=El(r,s,a,i);return o===""?{error:S("error.credRefNeedsHost")}:Gf(o,n)}function bs(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"t"+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}var Xi;function mi(){document.getElementById("dsh-tty-style")||(Xi=document.createElement("style"),Xi.id="dsh-tty-style",Xi.textContent=xl+`
2826
- `+Cl,document.head.appendChild(Xi))}var ws='<svg viewBox="0 0 16 16" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 5l3.5 3L3 11"/><path d="M8.5 11H13"/></svg>',Vf='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><circle cx="7" cy="7" r="4.4"/><path d="M10.4 10.4L14 14"/></svg>',Yf='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2.5 4.5h11"/><path d="M6 4.5V3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v1.5"/><path d="M4.5 4.5l.7 8.1a1 1 0 0 0 1 .9h3.6a1 1 0 0 0 1-.9l.7-8.1"/></svg>',Jf='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.4"/><path d="M3.5 10.5h-1v-8h8v1"/></svg>',Xf='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="3" width="9" height="11" rx="1.4"/><rect x="5.5" y="1.5" width="5" height="3" rx="1" fill="var(--dsw-alias-bg-base,#fff)"/></svg>',Zf='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.5 8a5.5 5.5 0 1 1-1.6-3.9"/><path d="M13.7 1.8v2.7H11"/></svg>',Qf='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1.8 12.8V4.2a1 1 0 0 1 1-1h3l1.4 1.6h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H2.8a1 1 0 0 1-1-1z"/></svg>',sc='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4.5 5.5L2 8l2.5 2.5"/><path d="M11.5 5.5L14 8l-2.5 2.5"/><path d="M2.8 8h10.4"/></svg>',ep='<svg viewBox="0 0 16 16" width="13" height="13" fill="currentColor" stroke="none" aria-hidden="true"><circle cx="3.4" cy="8" r="1.35"/><circle cx="8" cy="8" r="1.35"/><circle cx="12.6" cy="8" r="1.35"/></svg>',tp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><path d="M4 8h8"/></svg>',ys='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><path d="M4.5 4.5l7 7"/><path d="M11.5 4.5l-7 7"/></svg>',rp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><path d="M8 3.6v8.8"/><path d="M3.6 8h8.8"/></svg>',ci='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 12.4V3.9a.9.9 0 0 1 .9-.9h2.9l1.4 1.6h5.9a.9.9 0 0 1 .9.9v6.9a.9.9 0 0 1-.9.9H2.9a.9.9 0 0 1-.9-.9z"/></svg>',nc='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 2.6h4.4l3.6 3.6v7.2a.9.9 0 0 1-.9.9H4.9a.9.9 0 0 1-.9-.9V3.5a.9.9 0 0 1 .9-.9z"/><path d="M8.2 2.7v3.4h3.4"/></svg>',oc='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6.4 9.6l3.2-3.2"/><path d="M9.2 4.6l1-1a2.5 2.5 0 0 1 3.5 3.5l-1 1"/><path d="M6.8 11.4l-1 1a2.5 2.5 0 0 1-3.5-3.5l1-1"/></svg>',Zn='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 12.6V4.2"/><path d="M4.4 7.8L8 4.2l3.6 3.6"/></svg>',ac='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3v7.2"/><path d="M5 7.4L8 10.4l3-3"/><path d="M3.4 12.8h9.2"/></svg>',ip='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 10.4V3.2"/><path d="M5 6.2L8 3.2l3 3"/><path d="M3.4 12.8h9.2"/></svg>',Qn='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M11.2 2.9l1.9 1.9-7.3 7.3-2.4.5.5-2.4z"/></svg>',Er='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 4.6h10"/><path d="M6.2 4.6V3.4a.8.8 0 0 1 .8-.8h2a.8.8 0 0 1 .8.8v1.2"/><path d="M4.6 4.6l.6 8a.9.9 0 0 0 .9.8h3.8a.9.9 0 0 0 .9-.8l.6-8"/></svg>',eo='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.2 8a5.2 5.2 0 1 1-1.5-3.7"/><path d="M13.4 2.2v2.6h-2.6"/></svg>',lc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 12.4V3.9a.9.9 0 0 1 .9-.9h2.9l1.4 1.6h5.9a.9.9 0 0 1 .9.9v6.9a.9.9 0 0 1-.9.9H2.9a.9.9 0 0 1-.9-.9z"/><path d="M8 6.6v3.6"/><path d="M6.2 8.4h3.6"/></svg>',cc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3.4 8h9"/><path d="M9.2 4.8L12.4 8l-3.2 3.2"/></svg>',hc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.6 8h-9"/><path d="M6.8 4.8L3.6 8l3.2 3.2"/></svg>',sp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3.4v9"/><path d="M4.8 9.2L8 12.4l3.2-3.2"/></svg>',np='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.4" y="3.2" width="11.2" height="4" rx="1.2"/><rect x="2.4" y="8.8" width="11.2" height="4" rx="1.2"/><path d="M5 5.2h.01"/><path d="M5 10.8h.01"/></svg>',op='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2.6l5.8 10.4H2.2z"/><path d="M8 6.4v3.2"/><path d="M8 11.6h.01"/></svg>',ap='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><circle cx="8" cy="8" r="5.6"/><path d="M8 7.2v3.6"/><path d="M8 5.1h.01"/></svg>',dc='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="8" cy="8" r="5.6"/><path d="M6 6l4 4"/><path d="M10 6l-4 4"/></svg>',lp='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2.8v5"/><path d="M11.6 4.6a5.2 5.2 0 1 1-7.2 0"/></svg>',uc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="5.6" cy="6" r="2.8"/><path d="M7.8 7.9l5.4 5.4"/><path d="M10.6 10.7l1.2-1.2"/></svg>',fc=null,Ee=null,ce=null,os=null,hi=null,Lt=null,rr=null,or=null,kt=null,ei=null,ti=null,as=null,lt=null,ri=null,rt=null,ct=null,Je=null,Lr=null,di=!1,ii=null,qe=!1,Ve=null,ls=null,Dr=null,ar=null,cs=null,ir=null,si=1e3,hs="dsh-tty:tabs",ue=new Map,gi=new Set,to=()=>gi.size>0,Hn=new Set,Re=null,vi=0,Zi=!1,ht=null,Tr=null,Ht=[],ds=!0,_t=null,mt=null,ni=null,Qr=null,Fn=null,Wn=new Set;function Ss(e){return Wn.add(e),()=>Wn.delete(e)}Ss(({tab:e,addAction:t})=>{nr&&e.exited&&t(Zf,S("btn.reopen"),S("btn.reopenTitle"),()=>fs(e.sid))});Ss(({tab:e,addAction:t})=>{nr&&t(Qf,"SFTP",S("btn.sftpTitle"),()=>ks(e.spawnSpec,e.sid))});Ss(({bookName:e,addAction:t})=>{if(!nr)return;let r=e!==""?Pc(e):0;if(r>0){t(sc,S("btn.tunnels",{count:r}),S("btn.tunnelsTitle"),s=>Ec(s.currentTarget,e));return}e!==""&&t(ep,S("btn.more"),S("btn.moreTitle"),s=>Hp(s.currentTarget,e))});function bi(e,t){if(rr===null)return;rr.textContent=e.split("\u2014\u2014")[0],rr.title=e,or.dataset.state=t,os!==null&&(os.style.display=t==="connected"?"none":""),Dr!==null&&(Dr.textContent=e),ar!==null&&(ar.dataset.state=t);let r=document.querySelector("[data-dsh-tty-entry] .tt_sidebarBadgeDot");r!==null&&(r.dataset.state=t)}function Pn(e,t,r){let s=typeof e=="string"&&e!==""?e:null;if(s!==null){let a=ue.get(s);a!==void 0&&(a.statusText=t,a.statusState=r)}Bl(s,Re)&&(hi=s,bi(t,r))}function Qi(e,t){hi=null,bi(e,t)}function ro(){if(!Ol(hi,Re))return;let e=Re===null?void 0:ue.get(Re);hi=e===void 0?null:Re;let t=Pl(e,S);bi(t.text,t.state)}function Me(e){Ee!==null&&Ee.readyState===WebSocket.OPEN&&Ee.send(JSON.stringify(e))}function cp(){let e=[],t=document.createDocumentFragment();for(let r of An(S)){let s=document.createElement("span");s.className="tt_statsItem";let a=document.createElement("span");a.className="tt_statsLabel",a.textContent=r.label,s.appendChild(a);let i=null,n=null;r.kind==="pct"&&(i=document.createElement("span"),i.className="tt_statsMeter",n=document.createElement("span"),n.className="tt_statsMeterFill",i.appendChild(n),s.appendChild(i));let o=document.createElement("span");o.className="tt_statsValue",s.appendChild(o),t.appendChild(s),e.push({item:s,value:o,meter:i,fill:n,slot:null})}return _t!==null&&_t.appendChild(t),e}function hp(e,t){let r=jl(t!==void 0?t.stats:null,S);for(let s=0;s<e.length;s+=1){let a=e[s],i=r[s];if(i!==void 0&&(a.slot!==i.slot&&(a.slot=i.slot,a.value.style.minWidth=i.slot>0?i.slot+"ch":""),a.value.textContent!==i.value&&(a.value.textContent=i.value),a.item.getAttribute("title")!==i.title&&a.item.setAttribute("title",i.title),a.fill!==null&&a.meter!==null)){let n=i.pct===null?"0%":Math.max(0,Math.min(100,i.pct)).toFixed(1)+"%";a.fill.style.width!==n&&(a.fill.style.width=n);let o=Nl(i.pct);a.meter.dataset.level!==o&&(a.meter.dataset.level=o)}}}function Cs(){Qr=null,Fn=null}function dp(){if(ce===null||qe||!ds)return!1;let e=dt();return e===void 0||e.embedded===!0||e.exited===!0||e.stats===null||e.stats===void 0?!1:Wl(e.statsAt)}function zl(){if(qe)return;let e=dt();if(!(e===void 0||e.embedded===!0||e.fit===null)){try{e.fit.fit()}catch{return}try{e.spawned&&!e.exited&&Or(e)}catch{}}}function lr(){try{up()}catch(e){console.warn("[dsh-tty] \u72B6\u6001\u6761\u6E32\u67D3\u5931\u8D25\uFF08\u5DF2\u6536\u8D77\uFF09: "+(e instanceof Error?e.message:String(e)));try{_t!==null&&(_t.hidden=!0,_t.textContent=""),Cs(),rt!==null&&delete rt.dataset.stats}catch{}}}function up(){if(rt===null||_t===null)return;let e=dp(),t=rt.dataset.stats!==void 0!==e;if(!e){t&&delete rt.dataset.stats,_t.hidden=!0,Qr!==null&&(_t.textContent="",Cs()),t&&zl();return}_t.hidden=!1,Qr===null&&(Qr=cp());let r=dt(),s=r===void 0?"":r.sid+":"+String(r.statsAt||0);s!==Fn&&(Fn=s,hp(Qr,r)),t&&(rt.dataset.stats="",zl())}function pc(){ni===null&&(ni=setInterval(()=>lr(),1e3))}function _c(){ni!==null&&(clearInterval(ni),ni=null)}function mc(){if(ce===null||qe||!ds)return null;let e=dt();return e===void 0||e.embedded===!0||e.exited===!0?null:e.sid}function wi(){let e=mc();e!==mt&&(mt!==null&&Me({t:"statsOff",sid:mt}),mt=e,e!==null&&Me({t:"statsOn",sid:e}))}function fp(e){if(e!==mc()){wi();return}mt!==null&&mt!==e&&Me({t:"statsOff",sid:mt}),mt=e,Me({t:"statsOn",sid:e})}function dt(){return Re!==null?ue.get(Re):void 0}function Un(){try{return Al(fc?.list?.getSnapshot?.())}catch{return}}function pp(e){if(!(e.term===null||e.exited)){try{if(e.term.buffer.active.length<=e.term.rows)return}catch{return}e.term.reset(),Me({t:"refresh",sid:e.sid})}}var es=null;function gc(e){es!==null&&clearTimeout(es),es=setTimeout(()=>{es=null;let t=dt();t!==void 0&&pp(t)},e??200)}var _p=["password","passphrase"];function $l(e){if(e===null||typeof e!="object"||e.t!=="ssh")return e;let t=e.credsStripped===!0,r={...e};for(let s of _p){let a=r[s];typeof a=="string"&&a!==""&&!a.startsWith("env:")&&(delete r[s],t=!0)}return t&&(r.credsStripped=!0),r}var vc=1;function Xt(){try{let e=[...ue.values()].filter(t=>!t.exited&&t.embedded!==!0).map(t=>({sid:t.sid,spawnSpec:$l(t.spawnSpec),label:t.label}));e.length===0||ce===null?sessionStorage.removeItem(hs):sessionStorage.setItem(hs,JSON.stringify({v:vc,tabs:e})),mp([...ue.values()].filter(t=>t.embedded!==!0).map(t=>({spawnSpec:$l(t.spawnSpec),label:t.label})))}catch(e){console.warn("[dsh-tty] \u6807\u7B7E\u6301\u4E45\u5316\u5931\u8D25\uFF08\u672C\u6B21\u5237\u65B0\u540E\u6807\u7B7E\u5217\u8868\u53EF\u80FD\u4E22\u5931\uFF09: "+(e instanceof Error?e.message:String(e)))}}var jn="dsh-tty:persist-specs";function mp(e){try{let t=e.filter(r=>yi(r.spawnSpec)).map(r=>({spawnSpec:r.spawnSpec,label:r.label}));t.length===0?localStorage.removeItem(jn):localStorage.setItem(jn,JSON.stringify(t))}catch{}}function gp(){try{let e=localStorage.getItem(jn);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(r=>r!==null&&typeof r=="object"&&yi(r.spawnSpec)):[]}catch{return[]}}function vp(){try{let e=sessionStorage.getItem(hs);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(r=>r!==null&&typeof r=="object"&&typeof r.sid=="string"&&r.sid!==""&&r.spawnSpec!==null&&typeof r.spawnSpec=="object"):t!==null&&typeof t=="object"&&t.v===vc&&Array.isArray(t.tabs)?t.tabs.filter(r=>r!==null&&typeof r=="object"&&typeof r.sid=="string"&&r.sid!==""&&r.spawnSpec!==null&&typeof r.spawnSpec=="object"):[]}catch{return[]}}function us(e,t){let r=Ee;return new Promise(s=>{let a=null,i=n=>{let o;try{o=JSON.parse(n.data)}catch{return}o.t===e&&(a!==null&&clearTimeout(a),r.removeEventListener("message",i),s(r===Ee?o:null))};a=setTimeout(()=>{r.removeEventListener("message",i),s(null)},t),r.addEventListener("message",i)})}function bp(e){return e===void 0?null:e.embedded===!0?e.controller!==void 0&&e.controller!==null?e.controller.hostEl:null:e.termEl}function bc(e){if(e===void 0||e.fit===null||e.fit===void 0)return;let t;try{t=e.fit.proposeDimensions()}catch{return}let r=bp(e);return Dl(t,r==null?null:{width:r.clientWidth,height:r.clientHeight})}function Or(e){if(e===void 0||e.fit===void 0)return;let t=bc(e);t!==void 0&&(e.lastDims=t,Me({t:"resize",sid:e.sid,cols:t.cols,rows:t.rows}))}function wp(e){if(e===void 0||e.fit===void 0)return;let t=e.term,r=t!==null&&t.buffer!==void 0?t.buffer.active:null,s=r==null?null:{atBottom:r.viewportY>=r.baseY,line:r.viewportY};try{e.fit.fit()}catch{return}if(s!==null)try{s.atBottom?t.scrollToBottom():t.scrollToLine(Math.min(s.line,t.buffer.active.baseY))}catch{}e.exited||Or(e)}function Sr(e,t,r,s){if(e.overlayEl===null||e.overlayEl===void 0)return;let a=e.overlayEl;if(t===""||t===void 0){a.textContent="";return}let i=s==="error"||s==="info"?s:"exited";a.innerHTML='<div class="tt_overlayCard" data-kind="'+i+'"><span class="tt_overlayIcon">'+(i==="error"?dc:i==="info"?eo:lp)+'</span><span class="tt_overlayText"><span class="tt_overlayMain"></span>'+(r===void 0||r===""?"":'<span class="tt_overlayHint"></span>')+"</span></div>",a.querySelector(".tt_overlayMain").textContent=t,r!==void 0&&r!==""&&(a.querySelector(".tt_overlayHint").textContent=r)}function yp(e,t){try{let r=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return r!==""?r:t}catch{return t}}function Ir(e){let t=yp("--dsw-alias-state-business-primary","#7c9cff"),r=new Xl.Terminal({cursorBlink:!0,cursorStyle:"bar",cursorInactiveStyle:"outline",fontSize:13,fontFamily:'"JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace',fontWeight:400,fontWeightBold:600,lineHeight:1.35,scrollback:5e3,convertEol:!1,allowProposedApi:!0,theme:{background:"#0b0e14",foreground:"#d7dce5",cursor:t,cursorAccent:"#0b0e14",selectionBackground:"rgba(124, 156, 255, .30)",black:"#1b2028",red:"#f07178",green:"#7ec699",yellow:"#e6b673",blue:"#7aa2f7",magenta:"#c792ea",cyan:"#7fdbca",white:"#c8d0dc",brightBlack:"#556070",brightRed:"#ff8b92",brightGreen:"#9fe0b4",brightYellow:"#f5cc8c",brightBlue:"#9ab8ff",brightMagenta:"#dbb3ff",brightCyan:"#a3f0e2",brightWhite:"#eef2f8"}}),s=new Zl.FitAddon,a=new Qo;r.loadAddon(s),r.loadAddon(a),r.loadAddon(new ea);let i=document.createElement("div");i.className="tt_term";let n=document.createElement("div");n.className="tt_overlay",n.addEventListener("click",()=>{n.textContent="",fs(e.sid)}),n.setAttribute("role","button"),n.setAttribute("aria-label",S("btn.reopenSession")),n.tabIndex=0,n.addEventListener("keydown",o=>{(o.key==="Enter"||o.key===" "||o.key==="Spacebar")&&(o.preventDefault(),n.textContent="",fs(e.sid))}),i.appendChild(n),r.open(i);try{s.fit()}catch{}try{let o=new Sl;o.onContextLoss(()=>{try{o.dispose()}catch{}}),r.loadAddon(o)}catch{}r.onData(o=>{Me({t:"input",sid:e.sid,d:o})}),r.onResize(()=>{yi(e.spawnSpec)&&gc(200)}),r.attachCustomKeyEventHandler(o=>e.embedded===!0?!0:(o.ctrlKey||o.metaKey)&&o.key.toLowerCase()==="f"?(o.preventDefault(),zc(),!1):!0),e.term=r,e.fit=s,e.search=a,e.termEl=i,e.overlayEl=n}function ql(e){return e===null||typeof e!="object"?"":["t","name","host","port","username","command","cwd","persist","persistName"].map(r=>r+"="+String(e[r]??"")).join("\0")}function Sp(e){let t=ql(e);if(t==="")return null;for(let r of ue.values())if(r.exited!==!0&&r.embedded!==!0&&ql(r.spawnSpec)===t)return r;return null}function ui(e,t){let r=bs(),s={sid:r,term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:e??Qp(),label:t};return Ir(s),ue.set(r,s),vi+=1,it(),Zt(r),xs(s),Xt(),s}function Cp(e){if(Array.isArray(e))for(let t of e){if(t===null||typeof t!="object"||t.owner!=="agent"||t.exited===!0)continue;let r=typeof t.sid=="string"?t.sid:"";if(r===""||ue.has(r))continue;let s={sid:r,term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,agentOwned:!0,spawnSpec:{t:"spawn",cwd:typeof t.cwd=="string"?t.cwd:Un()},label:"agent"+(t.kind==="ssh"&&typeof t.target=="string"&&t.target!==""?" \xB7 "+t.target:"")};Ir(s),ue.set(r,s),vi+=1,it(),xp()&&s.termEl!==null&&rt!==null&&Re===null&&Zt(r),Me({t:"attach",sid:r}),kp()}}function xp(){return ce!==null&&qe!==!0}function kp(){try{Xt()}catch{}}function Ep(e){if(Cp(e),!Array.isArray(e))return;let t=new Set(e.filter(r=>r!==null&&typeof r=="object"&&r.owner==="agent").map(r=>r.sid));for(let[r,s]of[...ue])s.agentOwned===!0&&(t.has(r)||s.exited!==!0&&s.live===!0&&(s.exited=!0,s.live=!1,it()))}function Lp(e){if(ue.has(e.sid))return ue.get(e.sid);let t={sid:e.sid,term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:e.spawnSpec,label:typeof e.label=="string"?e.label:void 0};Ir(t),ue.set(t.sid,t),vi+=1,it(),Zt(t.sid),Me({t:"attach",sid:t.sid})}function Tp(e){if(!(e?.spawnSpec?.credsStripped!==!0||e.term===null))try{e.term.writeln("\x1B[2m[dsh-tty] "+S("msg.passwordNotStored")+"\x1B[0m")}catch{}}function xs(e){Tp(e);let t=bc(e);t!==void 0&&(e.lastDims=t);let r=t!==void 0?t:e.lastDims!==void 0?e.lastDims:{cols:80,rows:24},s={...e.spawnSpec,sid:e.sid,cols:r.cols,rows:r.rows};if(Ee===null||Ee.readyState!==WebSocket.OPEN){Hn.add({tab:e,frame:s});return}Me(s)}function Kl(e){let t={sid:bs(),term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:e.spawnSpec,label:typeof e.label=="string"?e.label:void 0};Ir(t),ue.set(t.sid,t),vi+=1,it(),Zt(t.sid),xs(t)}function fs(e){let t=ue.get(e);if(t===void 0)return;if(t.embedded===!0){Cc(t);return}let r=t.spawnSpec,s=t.label;if(Me({t:"kill",sid:e}),t.term!==null)try{t.term.dispose()}catch{}t.termEl!==null&&t.termEl.remove(),ue.delete(e);let a={sid:bs(),term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:r,label:s};Ir(a),ue.set(a.sid,a),it(),Zt(a.sid),xs(a),Xt()}function Gl(e){let t=ue.get(e);if(t!==void 0){if(gt!==null&&gt.ownerKey===e&&ai(!0),Me({t:"kill",sid:e}),ue.delete(e),gi.delete(e),t.term!==null)try{t.term.dispose()}catch{}if(t.termEl!==null&&t.termEl.remove(),Re===e){Re=null;let r=[...ue.entries()].filter(([,s])=>s.embedded!==!0).map(([s])=>s).pop()??null;r!==null&&Zt(r)}it(),ro(),[...ue.values()].some(r=>r.embedded!==!0)?Xt():_i()}}function wc(e){let t=typeof e?.command=="string"?e.command.trim():"";if(t==="")throw new Error(S("error.terminalNeedsCommand"));if(/[\r\n\0]/.test(t))throw new Error(S("error.terminalCommandSingleLine"));return t}function yc(e,t){return typeof e?.book=="string"&&e.book!==""?{t:"ssh",name:e.book,command:t}:e?.spec!==null&&typeof e?.spec=="object"?{t:"ssh",...e.spec,command:t}:{t:"spawn",...typeof e?.cwd=="string"&&e.cwd!==""?{cwd:e.cwd}:{},command:t}}function Rp(e){let t=e.controller;t===void 0||t.observer!==null||(t.observer=new ResizeObserver(()=>{if(!(t.disposed||t.tab!==e||e.term===null)){try{e.fit.fit()}catch{return}e.spawned&&!e.exited&&Or(e)}}),t.observer.observe(t.hostEl))}function Sc(e,t,r){let s={sid:bs(),term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,embedded:!0,controller:e,spawnSpec:t,label:r};return Ir(s),ue.set(s.sid,s),gi.add(s.sid),e.hostEl.appendChild(s.termEl),Rp(s),xs(s),s}function Cc(e){let t=e.controller;if(!(t===void 0||t.disposed)){e.exited||Me({t:"kill",sid:e.sid});try{e.term?.dispose()}catch{}return e.termEl?.remove(),ue.delete(e.sid),gi.delete(e.sid),t.observer!==null&&(t.observer.disconnect(),t.observer=null),t.tab=Sc(t,e.spawnSpec,e.label),Re===e.sid&&(Re=t.tab.sid,ro()),t.tab}}function Mp(e,t){if(!(e instanceof HTMLElement))throw new Error(S("error.terminalNeedsHost"));let r=wc(t),s=yc(t,r),a=typeof t?.label=="string"&&t.label!==""?t.label:void 0;mi();let i={hostEl:e,tab:null,observer:null,disposed:!1};return i.tab=Sc(i,s,a),t_(),()=>Ap(i)}function Ap(e){if(e.disposed)return;e.disposed=!0,e.observer!==null&&(e.observer.disconnect(),e.observer=null);let t=e.tab;if(t!==null){t.exited||Me({t:"kill",sid:t.sid});try{t.term?.dispose()}catch{}t.termEl?.remove(),ue.delete(t.sid),gi.delete(t.sid),e.tab=null}if(ce===null&&!to()&&Ee!==null){di=!0;try{Ee.close()}catch{}Ee=null}}var Dp=460,Pp=280,Bp=320,Op=160,gt=null,Cr=Dp,xr=Bp;function io(){let e=ce!==null?ce.querySelector(".tt_modal"):null,t=e!==null?e:ce;return t!==null?t.getBoundingClientRect():null}var so=e=>e==="bottom"?Op:Pp;function Ip(e){let t=io();if(t===null)return 900;let r=e==="bottom"?t.height:t.width;return Math.max(so(e),Math.round(r*.72))}function oi(e,t){return Math.min(Ip(e),Math.max(so(e),Math.round(t)))}function rs(){let e=gt;if(e!==null){if(e.collapsed){e.el.style.width="",e.el.style.height="",e.el.style.flexBasis="";return}if(e.side==="bottom"){xr=oi("bottom",xr),e.el.style.width="",e.el.style.height=String(xr)+"px",e.el.style.flexBasis=String(xr)+"px";return}Cr=oi("right",Cr),e.el.style.height="",e.el.style.width=String(Cr)+"px",e.el.style.flexBasis=String(Cr)+"px"}}function ai(e){let t=gt;if(t!==null){if(gt=null,t.disposed=!0,e&&t.onClose!==null)try{t.onClose()}catch(r){console.warn("[dsh-tty] ttyPanel.onClose \u629B\u9519\uFF1A"+(r instanceof Error?r.message:String(r)))}try{t.el.remove()}catch{}ct!==null&&delete ct.dataset.side}}function xc(e){if(Jn(),ct===null)throw new Error(S("error.panelNotReady"));gt!==null&&ai(!0),mi();let t=yr(e?.ownerSid,Re),r=e?.side==="bottom"?"bottom":"right",s=Math.max(r==="bottom"?120:200,Math.round(typeof e?.min=="number"&&Number.isFinite(e.min)?e.min:so(r)));if(typeof e?.size=="number"&&Number.isFinite(e.size)){let c=oi(r,e.size);r==="bottom"?xr=c:Cr=c}let a=document.createElement("div");a.className="tt_dockPane",a.dataset.side=r,ct.dataset.side=r,a.innerHTML='<div class="tt_dockPaneResize" title="'+S(r==="bottom"?"panel.dragHeight":"panel.dragWidth")+'"></div><div class="tt_dockPaneHead"><span class="tt_dockPaneTitle"></span><span class="tt_dockPaneHint"></span><span class="tt_dockPaneSpacer"></span><button class="tt_dockPaneFold" type="button"></button><button class="tt_dockPaneClose" type="button" title="'+S("btn.closePane")+'">'+ys+'</button></div><div class="tt_dockPaneBody"></div>',ct.appendChild(a);let i=a.querySelector(".tt_dockPaneTitle"),n=a.querySelector(".tt_dockPaneHint"),o=a.querySelector(".tt_dockPaneBody"),u=a.querySelector(".tt_dockPaneFold"),l=a.querySelector(".tt_dockPaneClose"),_=a.querySelector(".tt_dockPaneResize"),m={el:a,element:o,disposed:!1,collapsed:!1,side:r,minSize:s,ownerKey:t,onClose:typeof e?.onClose=="function"?e.onClose:null},w=()=>r==="bottom"?m.collapsed?Zn:sp:m.collapsed?hc:cc,p=c=>{m.collapsed=c===!0,m.collapsed?a.dataset.collapsed="1":delete a.dataset.collapsed,u.innerHTML=w(),u.title=m.collapsed?S("btn.expandPane"):S("btn.collapsePane"),u.setAttribute("aria-label",u.title),rs()};return m.setTitle=c=>{i.textContent=typeof c=="string"?c:""},m.setHint=c=>{n.textContent=typeof c=="string"?c:""},m.isCollapsed=()=>m.collapsed===!0,m.collapse=()=>p(!0),m.expand=()=>p(!1),m.toggle=()=>p(!m.collapsed),m.dispose=()=>{m.disposed||gt!==m||ai(!1)},_.addEventListener("mousedown",c=>{if(c.button!==0||m.collapsed)return;c.preventDefault();let d=c.clientX,h=c.clientY,f=a.getBoundingClientRect(),g=v=>{r==="bottom"?xr=oi("bottom",Math.max(s,f.height+(h-v.clientY))):Cr=oi("right",Math.max(s,f.width+(d-v.clientX))),rs()},C=()=>{document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",C),document.body.style.userSelect=""};document.body.style.userSelect="none",document.addEventListener("mousemove",g),document.addEventListener("mouseup",C)}),_.addEventListener("dblclick",()=>p(!m.collapsed)),u.addEventListener("click",()=>p(!m.collapsed)),l.addEventListener("click",()=>ai(!0)),m.setTitle(typeof e?.title=="string"?e.title:""),m.setHint(typeof e?.hint=="string"?e.hint:""),p(e?.collapsed===!0),gt=m,rs(),kc(),m}function kc(){let e=gt;if(e!==null){if(Rn(e.ownerKey,Re)){delete e.el.dataset.dockHidden,ct!==null&&(ct.dataset.side=e.side);return}e.el.dataset.dockHidden="1",ct!==null&&delete ct.dataset.side}}function Zt(e){let t=ue.get(e);if(t!==void 0&&t.embedded!==!0){Re=e;for(let[r,s]of ue)s.embedded!==!0&&s.termEl!==null&&(s.termEl.style.display=r===e?"":"none");t.embedded!==!0&&rt!==null&&t.termEl!==null&&t.termEl.parentElement!==rt&&rt.appendChild(t.termEl),wi(),lr(),it(),sr(),kc();try{t.fit.fit()}catch{}t.spawned&&!t.exited&&Or(t),Sr(t,t.exited?S("status.exited"):"",t.exited?S("btn.clickReopen"):"","exited"),ro()}}function Bn(e){if(kt===null)return;let t=ue.get(e);if(t===void 0)return;let s=kt.querySelector(`[data-sid="${e}"]`)?.querySelector(".tt_tabDot");s!=null&&(s.dataset.state=t.exited?"exited":t.live===!0?"connected":t.errored===!0?"error":"connecting")}var On=!1;function it(){if(kt===null)return;if(kt.querySelector(".tt_tabRename")!==null){On||(On=!0,setTimeout(()=>{On=!1,it()},1e3));return}kt.textContent="";for(let[r,s]of ue){if(s.embedded===!0)continue;let a=document.createElement("button");a.className="tt_tab",a.dataset.sid=r,r===Re&&(a.dataset.active="");let i=document.createElement("span");i.className="tt_tabDot",i.dataset.state=s.exited?"exited":s.live===!0?"connected":s.errored===!0?"error":"connecting",a.appendChild(i);let n=document.createElement("span");n.className="tt_tabLabel",n.textContent=s.label||S("panel.tabLabel",{n:Lc(r)}),n.addEventListener("dblclick",u=>{u.stopPropagation(),Fp(r,a)});let o=document.createElement("span");o.className="tt_tabClose",o.title=S("btn.close"),o.textContent="\u2715",o.setAttribute("role","button"),o.setAttribute("aria-label",S("btn.closeTabAria",{label:s.label||""})),o.tabIndex=0,o.addEventListener("keydown",u=>{(u.key==="Enter"||u.key===" "||u.key==="Spacebar")&&(u.preventDefault(),u.stopPropagation(),Gl(r))}),a.title=n.textContent,a.appendChild(n),a.appendChild(o),a.addEventListener("click",u=>{if(u.target.closest(".tt_tabClose")!==null){u.stopPropagation(),Gl(r);return}Zt(r)}),kt.appendChild(a)}let e=kt.querySelector("[data-active]");e!==null&&typeof e.scrollIntoView=="function"&&e.scrollIntoView({block:"nearest",inline:"nearest"});let t=document.createElement("button");t.className="tt_tabAdd",t.title=S("btn.newTab"),t.innerHTML=rp,t.addEventListener("click",()=>{zp(t)}),kt.appendChild(t)}function Np(e){return e?.direction==="remote"?S("meta.tunnelRemote",{host:e.remoteHost||"127.0.0.1",port:String(e.remotePort??0),local:String(e.localTargetPort??0)}):S("meta.tunnelLocal",{local:String(e?.localPort??0),host:e?.remoteHost??"?",port:String(e?.remotePort??0)})}function sr(){if(ei===null||as===null||ri===null||ti===null)return;ri.textContent="";let e=dt(),t=e?.spawnSpec??{};if(e===void 0||t.t!=="ssh"){ei.dataset.hidden="";return}delete ei.dataset.hidden;let r=Number(t.port);as.textContent=typeof e.target=="string"&&e.target!==""?e.target:typeof t.name=="string"&&t.name!==""?t.name:String(t.username??"")+"@"+String(t.host??"")+(Number.isInteger(r)&&r!==22?":"+r:""),lt!==null&&(e.persistTmux===!0?(lt.textContent="tmux",lt.dataset.state="ok",lt.title=S("status.tmuxPersistedTitle")):t.persist===!0&&e.spawned===!0?(lt.textContent=S("status.notPersisted"),lt.dataset.state="warn",lt.title=S("status.tmuxUnavailableTitle")):(lt.textContent="",delete lt.dataset.state,lt.removeAttribute("title")));let s=e.exited?"exited":e.live===!0?"connected":e.errored===!0?"error":"connecting";ti.dataset.state=s,ti.title=S(s==="connected"?"status.connected":s==="connecting"?"status.connecting":s==="error"?"status.errored":"status.exited");let a=(n,o,u,l)=>{let _=document.createElement("button");_.type="button",_.className="tt_toolBtn tt_connAct",_.title=u,_.innerHTML=n+"<span></span>",_.lastElementChild.textContent=o,_.addEventListener("click",l),ri.appendChild(_)};if(typeof t.command=="string"&&t.command!=="")return;let i=typeof t.name=="string"?t.name:"";for(let n of Wn)try{n({tab:e,spec:t,bookName:i,addAction:a})}catch(o){console.warn("[dsh-tty] connbar action failed: "+(o instanceof Error?o.message:String(o)))}}function Hp(e,t){if(Rr!==null){is();return}let r=document.createElement("div");r.className="tt_addMenu tt_connMore",Rr=r,Kn(r,S("panel.tunnels"),S("hint.tunnelsSettings"),()=>{is(),Ec(e,t)},void 0,sc),document.body.appendChild(r);let s=e.getBoundingClientRect(),a=r.offsetWidth,n=s.left+a>window.innerWidth-8?s.right-a:s.left;r.style.left=Math.max(8,Math.min(n,window.innerWidth-a-8))+"px",r.style.top=s.bottom+6+"px";let o=u=>{Rr===r&&(r.contains(u.target)||e.contains(u.target)||is())};ns=o,setTimeout(()=>document.addEventListener("mousedown",o,!0),0)}function is(){ns!==null&&(document.removeEventListener("mousedown",ns,!0),ns=null),Rr!==null&&(Rr.remove(),Rr=null)}var tr=null,ss=null,Rr=null,ns=null;function ps(){ss!==null&&(document.removeEventListener("mousedown",ss,!0),ss=null),tr!==null&&(tr.remove(),tr=null)}function Ec(e,t){if(tr!==null){ps();return}let r=document.createElement("div");r.className="tt_tunnelPop";let s=document.createElement("div");s.className="tt_tunnelPopTitle",s.textContent=S("panel.tunnelsFor",{name:t}),r.appendChild(s);let a=document.createElement("div");a.textContent=S("list.loading"),r.appendChild(a);let i=document.createElement("span");i.className="tt_cardHint",i.textContent=S("hint.tunnelsCard"),r.appendChild(i),document.body.appendChild(r),tr=r;let n=e.getBoundingClientRect();r.style.top=String(n.bottom+6)+"px",r.style.left=String(Math.max(8,n.right-340))+"px";let o=u=>{tr===r&&(r.contains(u.target)||e.contains(u.target)||ps())};ss=o,setTimeout(()=>document.addEventListener("mousedown",o,!0),0),(async()=>{let u=[];try{let m=await(await fetch("/api/dsh-tty/tunnels",{cache:"no-store"})).json();m.ok&&Array.isArray(m.tunnels)&&(u=m.tunnels)}catch{}if(tr!==r)return;a.textContent="";let l=no.filter(_=>_?.bookName===t&&_?.enabled!==!1);if(l.length===0){let _=document.createElement("span");_.className="tt_cardHint",_.textContent=S("list.noActiveTunnels"),a.appendChild(_);return}for(let _ of l){let m=u.find(h=>h?.name===_?.name),w=m?.state??"stopped",p=document.createElement("div");p.className="tt_tunnelPopRow";let c=document.createElement("span");c.className="tt_connDot",c.dataset.state=w==="active"?"connected":w==="error"?"error":"connecting";let d=document.createElement("span");d.className="tt_connTarget",d.title=String(m?.error??m?.lastForwardError??""),d.textContent=Np(_)+" \xB7 "+w+(m?.fatal===!0?S("status.fatalSuffix"):""),p.appendChild(c),p.appendChild(d),a.appendChild(p)}})()}function Lc(e){let t=1;for(let r of ue.keys()){if(r===e)return String(t);t+=1}return String(t)}function Fp(e,t){let r=ue.get(e);if(r===void 0||t.querySelector(".tt_tabRename")!==null)return;let s=t.querySelector(".tt_tabLabel");if(s===null)return;let a=document.createElement("input");a.className="tt_tabRename",a.value=r.label||S("panel.tabLabel",{n:Lc(e)}),s.replaceWith(a),a.focus(),a.select();let i=!1,n=()=>{if(i)return;i=!0;let u=a.value.trim();r.label=u!==""?u:void 0,it(),Xt()},o=()=>{i||(i=!0,it())};a.addEventListener("keydown",u=>{u.stopPropagation(),u.key==="Enter"?n():u.key==="Escape"&&o()}),a.addEventListener("blur",n),a.addEventListener("click",u=>u.stopPropagation())}var no=[],Tc="dialog",Yt="off",Jt={maxDownloadMb:1024,maxUploadMb:2048,maxUploadFiles:1e3},Mr=null,Rc=!1,Mc=!1,Vt=null,_s=null,nr=!1;function Ac(e){nr=e,_s!==null&&_s.set(e)}function Wp(e){Ac(!(e!==null&&typeof e=="object"&&e.enabled===!1)),e!==null&&typeof e=="object"&&typeof e.statsEnabled=="boolean"&&e.statsEnabled!==ds&&(ds=e.statsEnabled,wi(),lr())}function fi(e){Wp(e),e!==null&&typeof e=="object"&&Array.isArray(e.sshHosts)&&(Ht=e.sshHosts),e!==null&&typeof e=="object"&&Array.isArray(e.tunnels)&&(no=e.tunnels),e!==null&&typeof e=="object"&&(e.sftpStyle==="dual"||e.sftpStyle==="dialog")&&(Tc=e.sftpStyle),e!==null&&typeof e=="object"&&(e.persistence==="tmux"||e.persistence==="off")&&(Yt=e.persistence),e!==null&&typeof e=="object"&&typeof e.sftpLimits=="object"&&e.sftpLimits!==null&&(Jt={...Jt,...e.sftpLimits}),e!==null&&typeof e=="object"&&Number.isInteger(e.maxSessions)&&e.maxSessions>=1&&(Mr=e.maxSessions),e!==null&&typeof e=="object"&&typeof e.allowProxyCommand=="boolean"&&(Rc=e.allowProxyCommand),e!==null&&typeof e=="object"&&typeof e.allowProxyCommandGranted=="boolean"&&(Mc=e.allowProxyCommandGranted)}function Up(e,t){let r=t==="error"||t==="info"?t:"warn",s=document.createElement("div");s.className="tt_toast",s.dataset.kind=r,s.innerHTML='<span class="tt_toastIcon">'+(r==="error"?dc:r==="info"?ap:op)+'</span><span class="tt_toastText"></span>',s.lastElementChild.textContent=e,document.body.appendChild(s),setTimeout(()=>s.remove(),4e3)}async function Dc(){try{Me({t:"sessions"});let e=await us("sessions",3e3);if(e!==null&&Array.isArray(e.list))return Vt=e.list.length,Vt}catch{}return null}async function ms(){if(await Dc(),Mr===null||Vt===null||Vt<Mr)return null;let e=[...ue.values()].filter(a=>!a.exited).length,t=Math.max(0,Vt-e),r=t>0?S("msg.maxSessionsOthers",{count:t}):"",s=S("msg.maxSessions",{live:Vt,max:Mr,own:e,others:r});return Up(s),s}function jp(){return Mr!==null&&Vt!==null&&Vt>=Mr}function oo(){return Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4)}function Pc(e){return no.filter(t=>t?.bookName===e&&t?.enabled!==!1).length}function zn(e){let t=Number(e?.port),r=Number.isInteger(t)&&t!==22?":"+t:"",s=e?.auth==="key"?"key":e?.auth==="password"?"password":"agent",a=e?.agentForward===!0?" \xB7 fwd":"";return String(e?.username??"")+"@"+String(e?.host??"")+r+" \xB7 "+s+a}async function $n(e,t){let r=await fetch("/api/dsh-tty/probe",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...e,bookRecord:t===!0})}),s=await r.json().catch(()=>({}));return s&&s.ok===!1&&s.error?{error:String(s.error)}:s&&s.result?{result:s.result}:{error:String(s&&s.error?s.error:S("error.probeHttp",{status:r.status}))}}function qn(e,t){if(!e)return S("msg.probing");let r=e,s=typeof r.tcp?.ms=="number"?r.tcp.ms:null,a=typeof r.auth?.ms=="number"?r.auth.ms:null,i=[];if(r.jump!==null&&typeof r.jump=="object"&&typeof r.jump.label=="string"&&r.jump.label!==""){let _=typeof r.jump.tcp?.ms=="number"?r.jump.tcp.ms:null,m=r.jump.tcp?.ok?_!==null?_+"ms":S("meta.reachable"):S("meta.unreachable");i.push(S("meta.jumpStage",{label:r.jump.label})+" "+m)}r.proxy!==null&&typeof r.proxy=="object"&&i.push(r.proxy.active===!0?S("meta.probeProxy"):S("meta.probeProxyOff")),r.tcp?.ok?i.push("TCP "+(s!==null?s+"ms":S("meta.reachable"))):r.tcp?.skipped===!0&&i.push(S("meta.probeTcpSkipped")),r.banner?.ok&&i.push(S("meta.probeBanner"));let n=r.hostkey?.state;if(n==="matched"?i.push(S("meta.hostKeyMatched")):n==="recorded"?i.push(S("meta.hostKeyRecorded")):n==="mismatch"&&i.push(S("meta.hostKeyMismatch")),r.auth?.ok){let _=a!==null?S("meta.authOkMs",{ms:a}):S("meta.authOk");return S("meta.probeOk",{detail:_+(i.length?" \xB7 "+i.join(" \xB7 "):"")})}let o=r.tcp?.skipped===!0?"":r.tcp?.error,l=(r.auth?.error||o||S("error.unknown"))+(i.length?" \xB7 "+i.join(" \xB7 "):"");return t?.prefix!==void 0?t.prefix+l:S("error.probeFailed",{detail:l})}async function ao(){try{let t=await(await fetch("/api/dsh-tty/config",{cache:"no-store"})).json();if(t.ok&&typeof t.config=="object"&&t.config!==null){let r=Ht;fi(t.config),ht!==null&&Ht!==r&&Gn(ht)}}catch{}}function Bc(e){ht!==null&&(e.target instanceof Element&&(ht.contains(e.target)||e.target.closest(".tt_tabAdd")!==null)||Et())}function zp(e){if(ht!==null){Et();return}ao(),Dc().then(()=>{ht!==null&&Gn(ht)});let t=document.createElement("div");t.className="tt_addMenu",ht=t,Gn(t),document.body.appendChild(t);let r=e.getBoundingClientRect(),s=t.offsetWidth,i=r.left+s>window.innerWidth-8?r.right-s:r.left;t.style.left=Math.max(8,Math.min(i,window.innerWidth-s-8))+"px",t.style.top=r.bottom+6+"px",document.addEventListener("mousedown",Bc,!0)}function Et(){ht!==null&&(document.removeEventListener("mousedown",Bc,!0),ht.remove(),ht=null)}function Kn(e,t,r,s,a,i){let n=document.createElement("button");if(n.type="button",n.className="tt_addMenuItem",a===!0&&(n.setAttribute("data-soldout",""),n.title=S("btn.maxSessionsTitle")),i!==void 0){let l=document.createElement("span");l.className="tt_addMenuIcon",l.innerHTML=i,n.appendChild(l)}let o=document.createElement("span");o.className="tt_addMenuText";let u=document.createElement("span");if(u.className="tt_addMenuMain",u.textContent=t,o.appendChild(u),r!==""){let l=document.createElement("span");l.className="tt_addMenuSub",l.textContent=r,o.appendChild(l)}n.appendChild(o),n.addEventListener("click",s),e.appendChild(n)}function Gn(e){e.textContent="";let t=jp();Kn(e,S("option.localTerminal"),S(Yt==="tmux"?"hint.tmuxHosted":"hint.openInSessionCwd"),async()=>{await ms()||(Et(),ui())},t,ws);let r=document.createElement("div");r.className="tt_addMenuSep",e.appendChild(r);let s=document.createElement("div");s.className="tt_addMenuTitle",s.textContent=S("panel.sshBook"),e.appendChild(s);for(let i of Ht){if(i===null||typeof i!="object"||typeof i.name!="string"||i.name==="")continue;let n=document.createElement("div");n.className="tt_addMenuRow";let o=document.createElement("button");o.type="button",o.className="tt_addMenuItem",t&&(o.setAttribute("data-soldout",""),o.title=S("btn.maxSessionsTitle"));let u=document.createElement("span");u.className="tt_addMenuIcon",u.innerHTML=np;let l=document.createElement("span");l.className="tt_addMenuText";let _=document.createElement("span");_.className="tt_addMenuMain",_.textContent=i.name;let m=document.createElement("span");m.className="tt_addMenuSub";let w=Pc(i.name),p=Ln(i.jump);m.textContent=zn(i)+(p===""?"":" "+S("meta.viaJump",{label:p}))+(typeof i.proxyCommand=="string"&&i.proxyCommand.trim()!==""?" "+S("meta.viaProxy"):"")+(w>0?" \xB7 \u21C4"+String(w):""),l.appendChild(_),l.appendChild(m),o.appendChild(u),o.appendChild(l),o.addEventListener("click",async()=>{if(await ms())return;Et();let h=Yt==="tmux"&&i.persist!==!1?{persist:!0,persistName:oo()}:{};ui({t:"ssh",name:i.name,...h},i.name)});let c=document.createElement("button");c.type="button",c.className="tt_addMenuEdit",c.title=S("btn.sftpFileBrowse"),c.innerHTML=ci,c.addEventListener("click",()=>{Et(),ks({name:i.name})});let d=document.createElement("button");d.type="button",d.className="tt_addMenuEdit",d.title=S("btn.editConnection"),d.innerHTML=Qn,d.addEventListener("click",()=>{Et(),Vl(i)}),n.appendChild(o),n.appendChild(c),n.appendChild(d),e.appendChild(n)}if(Ht.length===0){let i=document.createElement("div");i.className="tt_addMenuTitle",i.textContent=S("list.emptySshBook"),e.appendChild(i)}let a=document.createElement("div");a.className="tt_addMenuSep",e.appendChild(a),Kn(e,S("option.sshConnect"),S("hint.sshConnect"),()=>{Et(),Vl()},!1,uc)}function Vl(e){if(Tr!==null)return;let t=e!==null&&typeof e=="object"?e:null,r=t!==null,s=document.createElement("div");s.className="tt_sshBackdrop";let a=document.createElement("div");a.className="tt_sshCard";let i=document.createElement("div");i.className="tt_sshTitle",i.innerHTML=uc+"<span></span>",i.lastElementChild.textContent=r?S("panel.editConnection",{name:String(t.name??"")}):S("panel.sshConnect"),a.appendChild(i);let n=Z=>{let te=document.createElement("div");return te.className="tt_sshSection",te.textContent=Z,te},o={},u=(Z,te,le)=>{let ie=document.createElement("label");ie.className="tt_sshRow";let ne=document.createElement("span");ne.className="tt_cardLabel",ne.textContent=te,ie.appendChild(ne);let oe;if(le?.select!==void 0){oe=document.createElement("select");for(let pe of le.select){let we=document.createElement("option");we.value=pe.value,we.textContent=pe.label,oe.appendChild(we)}}else oe=document.createElement("input"),oe.type=le?.type??"text",oe.placeholder=le?.placeholder??"";return oe.className="tt_cardInput",oe.autocomplete="off",oe.spellcheck=!1,ie.appendChild(oe),o[Z]=oe,ie};a.appendChild(n(S("section.connection")));let l=document.createElement("div");l.className="tt_sshGrid",l.appendChild(u("host",S("field.host"),{placeholder:S("placeholder.host")})),l.appendChild(u("port",S("field.port"),{placeholder:"22"})),a.appendChild(l),a.appendChild(u("username",S("field.username"),{placeholder:"root"})),a.appendChild(n(S("section.auth"))),a.appendChild(u("auth",S("field.authMethod"),{select:[{value:"agent",label:S("option.authAgent")},{value:"key",label:S("option.authKey")},{value:"password",label:S("option.authPassword")}]}));let _=u("keyPath",S("field.keyPath"),{placeholder:"~/.ssh/id_ed25519"}),m=u("passphrase",S("field.passphrase"),{type:"password"}),w=u("password",S("field.password"),{type:"password"}),p=(Z,te)=>{let le=document.createElement("div");le.className="tt_sshRow tt_envRow";let ie=document.createElement("input");ie.type="text",ie.className="tt_cardInput",ie.placeholder=S("placeholder.credRef"),ie.title=S("hint.credRefCandidates"),ie.autocomplete="off",ie.spellcheck=!1;let ne=document.createElement("span");ne.className="tt_cardHint tt_envEmpty",ne.textContent=te,ne.hidden=!0,ie.hidden=!0;let oe=document.createElement("div");oe.className="tt_envList",oe.dataset.hidden="";let pe=[],we=()=>{if(oe.textContent="",pe.length===0){let ye=document.createElement("span");ye.className="tt_cardHint",ye.textContent=te,oe.appendChild(ye);return}let _e=ie.value.trim().toUpperCase(),Ie=_e===""?pe:pe.filter(ye=>ye.toUpperCase().includes(_e));for(let ye of Ie.slice(0,30)){let ve=document.createElement("button");ve.type="button",ve.className="tt_envItem",ve.textContent=ye;let xe="env:"+ye,Ne=null,je=()=>{Ne!==null&&(clearTimeout(Ne),Ne=null),ve.textContent=ye,delete ve.dataset.danger};ve.addEventListener("mousedown",Qt=>Qt.preventDefault()),ve.addEventListener("click",()=>{let Qt=Z.value;if(Qt===""||Qt.startsWith("env:")||Ne!==null){je(),Z.value=xe,Z.focus(),Z.dispatchEvent(new Event("change"));return}ve.textContent=S("list.credOverwrite",{name:ye}),ve.dataset.danger="",Ne=setTimeout(je,4e3)}),oe.appendChild(ve)}if(Ie.length>30){let ye=document.createElement("span");ye.className="tt_envMore",ye.textContent=S("list.moreMatches",{count:Ie.length-30}),oe.appendChild(ye)}else if(Ie.length===0){let ye=document.createElement("span");ye.className="tt_envMore",ye.textContent=S("list.noCredRef"),oe.appendChild(ye)}};return ie.addEventListener("input",we),ie.addEventListener("focus",()=>{pe.length>0&&delete oe.dataset.hidden}),ie.addEventListener("blur",()=>{ie.value.trim()===""&&(oe.dataset.hidden="")}),le.appendChild(ie),le.appendChild(ne),le.appendChild(oe),{row:le,setNames(_e){pe=Array.isArray(_e)?_e:[];let Ie=pe.length>0;ie.hidden=!Ie,ne.hidden=Ie,we()}}},c=(Z,te)=>{let le=document.createElement("div");le.className="tt_sshRow tt_credRow";let ie=document.createElement("label");ie.className="tt_credToggle";let ne=document.createElement("input");ne.type="checkbox",ne.className="tt_cardCheckbox";let oe=document.createElement("span");oe.textContent=S("check.rememberCredential"),ie.appendChild(ne),ie.appendChild(oe),ne.checked=Lt!==null,ie.title=S("hint.rememberCredential");let pe=document.createElement("button");pe.type="button",pe.className="tt_toolBtn tt_credClear",pe.textContent=S("btn.clearCredential"),pe.dataset.hidden="";let we=document.createElement("span");we.className="tt_credStatus",le.appendChild(ie),le.appendChild(pe),le.appendChild(we);let _e=(ve,xe)=>{we.textContent=ve,we.dataset.kind=xe},Ie=async()=>{let ve=kr(Z.value),xe=ve!=="";if(ie.hidden=xe,pe.hidden=!xe,we.hidden=!1,Ar()===null){ne.disabled=!0,ne.checked=!1,pe.disabled=!0,_e(S(Lt===null?"error.credPlainUnavailable":"error.credPlainIncomplete"),"muted");return}if(ne.disabled=!1,!xe){we.hidden=!0,_e("","plain");return}let Ne=await tc(ve);if(Ne.unreported===!0){_e(S("status.credUnreported",{ref:ve}),"plain");return}if(Ne.error!==void 0){_e(S("error.credStatusFailed",{error:Ne.error}),"error");return}let je=Ne.view;_e(je.configured?S("status.credStored",{ref:ve,source:je.source!==""?S("meta.credSource",{source:je.source}):""}):S("status.credUnknown",{ref:ve}),je.configured?"ok":"plain"),pe.disabled=je.configured!==!0||je.writable!==!0};pe.addEventListener("click",()=>{(async()=>{let ve=kr(Z.value);if(ve==="")return;let xe=await rc(ve);if(xe.error!==void 0){_e(xe.error,"error");return}Z.value="",await Ie()})()});let ye=async()=>{let ve=await ic(ne.checked===!0,Z.value,o.host.value,o.port.value,o.username.value,te);return ve.value!==void 0&&(Z.value=ve.value,await Ie()),ve};return Z.addEventListener("change",()=>{Ie()}),{row:le,refresh:Ie,storeIfRequested:ye}},d=p(o.passphrase,S("hint.noCredRefPassphrase")),h=p(o.password,S("hint.noCredRefPassword")),f=c(o.password,"PASSWORD");(async()=>{let Z=await ec();d.setNames(Z),h.setNames(Z)})(),a.appendChild(_),a.appendChild(m),a.appendChild(d.row),a.appendChild(w),a.appendChild(f.row),a.appendChild(h.row),a.appendChild(n(S("section.jump")));let g=u("jumpHost",S("field.jumpHost"),{placeholder:S("placeholder.jumpHost")});a.appendChild(g);let C=document.createElement("label");C.className="tt_sshRow";let v=document.createElement("input");v.type="checkbox";let x=document.createElement("span");x.className="tt_cardLabel",x.textContent=S("check.jumpOwnCred"),C.appendChild(v),C.appendChild(x),a.appendChild(C);let b=u("jumpUsername",S("field.jumpUsername"),{placeholder:"root"}),E=u("jumpAuth",S("field.jumpAuth"),{select:[{value:"",label:S("option.authInherit")},{value:"agent",label:S("option.authAgent")},{value:"key",label:S("option.authKey")},{value:"password",label:S("option.authPassword")}]}),O=u("jumpKeyPath",S("field.keyPath"),{placeholder:"~/.ssh/id_ed25519"}),B=u("jumpPassphrase",S("field.passphrase"),{type:"password"}),H=u("jumpPassword",S("field.password"),{type:"password"});for(let Z of[b,E,O,B,H])a.appendChild(Z);let M=document.createElement("div");M.className="tt_cardHint",M.textContent=S("hint.jumpInherit"),a.appendChild(M),a.appendChild(n(S("section.proxyCommand")));let K=u("proxyCommand",S("field.proxyCommand"),{placeholder:S("placeholder.proxyCommand")});a.appendChild(K);let P=document.createElement("div");P.className="tt_cardHint",P.textContent=S("hint.proxyCommand"),a.appendChild(P);let D=document.createElement("div");D.className="tt_cardHint tt_sshProbeWarn",D.textContent=S("hint.proxyCommandDisabled"),a.appendChild(D);let F=()=>{let Z=o.proxyCommand.value.trim()!=="",te=Mc,le=te&&Rc;D.textContent=S(te?"hint.proxyCommandDisabled":"hint.proxyCommandNotGranted"),D.style.display=Z&&!le?"":"none"};o.proxyCommand.addEventListener("input",F),F();let N=()=>{let Z=En(o.jumpHost.value);if(Z===void 0)return;if(v.checked!==!0)return Z;let te={...Z},le=o.jumpUsername.value.trim();le!==""&&(te.username=le);let ie=o.jumpAuth.value;(ie==="agent"||ie==="key"||ie==="password")&&(te.auth=ie);let ne=o.jumpKeyPath.value.trim();return ne!==""&&(te.keyPath=ne),o.jumpPassphrase.value!==""&&(te.passphrase=o.jumpPassphrase.value),o.jumpPassword.value!==""&&(te.password=o.jumpPassword.value),te},y=()=>{let Z=o.proxyCommand.value.trim();return Z===""?void 0:Z},T=()=>{let Z=En(o.jumpHost.value)!==void 0,te=Z&&v.checked===!0;C.style.display=Z?"":"none";for(let le of[b,E,O,B,H])le.style.display=te?"":"none";O.style.display=te&&o.jumpAuth.value==="key"?"":"none",B.style.display=te&&o.jumpAuth.value==="key"?"":"none",H.style.display=te&&o.jumpAuth.value==="password"?"":"none",M.style.display=Z?"":"none"};o.jumpHost.addEventListener("input",T),o.jumpAuth.addEventListener("change",T),v.addEventListener("change",T),a.appendChild(n(S("section.options")));let k=document.createElement("label");k.className="tt_cardRow";let R=document.createElement("input");R.type="checkbox",R.className="tt_cardCheckbox";let U=document.createElement("span");U.className="tt_cardLabel",U.textContent=S("check.agentForward"),k.appendChild(R),k.appendChild(U),a.appendChild(k);let G=document.createElement("label");G.className="tt_cardRow";let J=document.createElement("input");J.type="checkbox",J.className="tt_cardCheckbox";let X=document.createElement("span");X.className="tt_cardLabel",X.textContent=S("check.persist"),G.appendChild(J),G.appendChild(X),J.checked=Yt==="tmux",Yt==="tmux"&&a.appendChild(G);let W=document.createElement("label");W.className="tt_cardRow";let L=document.createElement("input");L.type="checkbox",L.className="tt_cardCheckbox";let I=document.createElement("span");I.className="tt_cardLabel",I.textContent=S("check.saveToBook"),W.appendChild(L),W.appendChild(I),a.appendChild(W);let z=u("name",S("field.bookName"),{placeholder:S("placeholder.bookName")});if(z.style.display="none",a.appendChild(z),L.addEventListener("change",()=>{z.style.display=L.checked?"":"none",L.checked&&o.name.value.trim()===""&&o.host.value.trim()!==""&&(o.name.value=o.host.value.trim()),L.checked&&o.name.focus()}),r){W.style.display="none",o.name.value=String(t.name??""),z.style.display="",o.host.value=String(t.host??""),o.port.value=String(t.port??22),o.username.value=String(t.username??""),o.auth.value=t.auth==="key"||t.auth==="password"?String(t.auth):"agent",o.keyPath.value=String(t.keyPath??""),o.passphrase.value=String(t.passphrase??""),o.password.value=String(t.password??"");let Z=t.jump!==null&&typeof t.jump=="object"?t.jump:null;if(o.jumpHost.value=Ln(Z),Z!==null){let te=Z.auth!==void 0||Z.keyPath!==void 0||Z.password!==void 0||Z.passphrase!==void 0;v.checked=te,te&&(o.jumpUsername.value=String(Z.username??""),o.jumpAuth.value=Z.auth==="key"||Z.auth==="password"?String(Z.auth):"",o.jumpKeyPath.value=String(Z.keyPath??""),o.jumpPassphrase.value=String(Z.passphrase??""),o.jumpPassword.value=String(Z.password??""))}R.checked=t.agentForward===!0,o.proxyCommand.value=String(t.proxyCommand??""),F(),J.checked=Yt==="tmux"}let $=document.createElement("div");$.className="tt_sshStatus";let q=document.createElement("div");q.className="tt_sshError";let ee=document.createElement("div");ee.className="tt_sshProbeResult",$.appendChild(q),$.appendChild(ee),a.appendChild($),T();let he=()=>{q.textContent="";let Z=o.host.value.trim(),te=o.username.value.trim(),le=Number(o.port.value);if((!Number.isInteger(le)||le<1||le>65535)&&(le=22),Z===""||te==="")return q.textContent=S("error.hostUserRequired"),null;let ie=o.auth.value,ne={host:Z,port:le,username:te,auth:ie},oe=N();oe!==void 0&&(ne.jump=oe);let pe=y();if(pe!==void 0&&(ne.proxyCommand=pe),ie==="key"){let we=o.keyPath.value.trim();if(we==="")return q.textContent=S("error.keyPathRequired"),null;ne.keyPath=we;let _e=o.passphrase.value;_e!==""&&(ne.passphrase=_e)}if(ie==="password"){let we=o.password.value;if(we==="")return q.textContent=S("error.passwordRequired"),null;ne.password=we}return R.checked&&(ne.agentForward=!0),ne},de=document.createElement("div");de.className="tt_sshActions";let re=document.createElement("div");re.className="tt_sshActionsGroup";let Y=document.createElement("div");Y.className="tt_sshActionsGroup",de.appendChild(re),de.appendChild(Y);let se=document.createElement("button");se.type="button",se.className="tt_toolBtn",se.textContent=S("btn.cancel");let be=document.createElement("button");be.type="button",be.className="tt_cardSave",be.textContent=S("btn.connect"),re.appendChild(se);let fe=document.createElement("button");fe.type="button",fe.className="tt_toolBtn",fe.textContent=S("btn.fileBrowse"),fe.title=S("btn.browseTitle"),fe.addEventListener("click",()=>{q.textContent="";let Z=o.host.value.trim(),te=o.username.value.trim(),le=Number(o.port.value);if((!Number.isInteger(le)||le<1||le>65535)&&(le=22),Z===""||te===""){q.textContent=S("error.hostUserRequired");return}let ie=o.auth.value,ne={host:Z,port:le,username:te,auth:ie},oe=N();oe!==void 0&&(ne.jump=oe);let pe=y();if(pe!==void 0&&(ne.proxyCommand=pe),ie==="key"){let we=o.keyPath.value.trim();if(we===""){q.textContent=S("error.keyPathRequired");return}ne.keyPath=we;let _e=o.passphrase.value;_e!==""&&(ne.passphrase=_e)}if(ie==="password"){let we=o.password.value;if(we===""){q.textContent=S("error.passwordRequired");return}ne.password=we}R.checked&&(ne.agentForward=!0),Gt(),ks(ne)}),re.appendChild(fe);let ge=null;r&&(ge=document.createElement("button"),ge.type="button",ge.className="tt_toolBtn",ge.textContent=S("btn.saveEdit"),ge.addEventListener("click",()=>{q.textContent="";let Z=o.host.value.trim(),te=o.username.value.trim();if(Z===""||te===""){q.textContent=S("error.hostUserRequired");return}let le=Number(o.port.value);(!Number.isInteger(le)||le<1||le>65535)&&(le=22);let ie=o.auth.value,oe={name:o.name.value.trim()||Z,host:Z,port:le,username:te,auth:ie,keyPath:ie==="key"?o.keyPath.value.trim():"",passphrase:o.passphrase.value,password:o.password.value,agentForward:R.checked,persist:J.checked},pe=N();if(pe!==void 0&&(oe.jump=pe),oe.proxyCommand=o.proxyCommand.value.trim(),ie==="key"&&oe.keyPath===""){q.textContent=S("error.keyPathRequired");return}ge!==null&&(ge.disabled=!0),(async()=>{let we=await f.storeIfRequested();if(we.error!==void 0){q.textContent=we.error,ge!==null&&(ge.disabled=!1);return}we.value!==void 0&&(oe.password=we.value);let _e=await qp(String(t.name??""),oe);if(ge!==null&&(ge.disabled=!1),_e!==void 0){q.textContent=S("error.saveCredFailed",{error:_e});return}Gt()})()}),re.appendChild(ge));let Le=document.createElement("button");Le.type="button",Le.className="tt_toolBtn",Le.textContent=S("btn.probe"),Le.title=S("btn.probeTitle"),Le.addEventListener("click",()=>{let Z=he();Z!==null&&(ee.className="tt_sshProbeResult",ee.textContent=S("msg.probing"),Le.disabled=!0,$n(Z,!1).then(te=>{Le.disabled=!1,te.result?(ee.className="tt_sshProbeResult"+(te.result.auth?.ok===!0?" tt_sshProbeOk":" tt_sshProbeBad"),ee.textContent=qn(te.result)):(ee.className="tt_sshProbeResult tt_sshProbeBad",ee.textContent=S("error.probeFailed",{detail:String(te.error||S("error.unknown"))}))}))}),re.appendChild(Le),Y.appendChild(be),a.appendChild(de);let Ce=()=>{_.style.display=o.auth.value==="key"?"":"none",m.style.display=o.auth.value==="key"?"":"none",d.row.style.display=o.auth.value==="key"?"":"none",w.style.display=o.auth.value==="password"?"":"none",h.row.style.display=o.auth.value==="password"?"":"none",f.row.style.display=o.auth.value==="password"?"":"none"};o.auth.addEventListener("change",Ce),Ce(),f.refresh(),se.addEventListener("click",()=>Gt()),s.addEventListener("mousedown",Z=>{Z.target===s&&Gt()}),be.addEventListener("click",async()=>{q.textContent="";let Z=await ms();if(Z!==null){q.textContent=Z;return}let te=o.host.value.trim(),le=o.username.value.trim(),ie=Number(o.port.value);if((!Number.isInteger(ie)||ie<1||ie>65535)&&(ie=22),te===""||le===""){q.textContent=S("error.hostUserRequired");return}let ne=o.auth.value,oe={t:"ssh",host:te,port:ie,username:le,auth:ne},pe=N();pe!==void 0&&(oe.jump=pe);let we=y();if(we!==void 0&&(oe.proxyCommand=we),ne==="key"){let ve=o.keyPath.value.trim();ve!==""&&(oe.keyPath=ve);let xe=o.passphrase.value;xe!==""&&(oe.passphrase=xe)}if(ne==="password"){let ve=o.password.value;ve!==""&&(oe.password=ve)}R.checked&&(oe.agentForward=!0),J.checked&&(oe.persist=!0,oe.persistName=oo());let _e=ie!==22?le+"@"+te+":"+ie:le+"@"+te,Ie=ve=>{Gt(),ce!==null&&ui(oe,ve!==""?ve:_e)};if(!L.checked){Ie("");return}let ye=o.name.value.trim()||te;be.disabled=!0,(async()=>{let ve=await f.storeIfRequested();if(ve.error!==void 0){q.textContent=ve.error,be.disabled=!1;return}let xe=ve.value??oe.password??"",Ne=await $p({name:ye,host:te,port:ie,username:le,auth:ne,keyPath:oe.keyPath??"",passphrase:oe.passphrase??"",password:xe,agentForward:R.checked,persist:J.checked,...pe!==void 0?{jump:pe}:{},proxyCommand:o.proxyCommand.value.trim()});if(be.disabled=!1,Ne!==void 0){q.textContent=S("error.saveBookFailed",{error:Ne});return}Ie(ye)})()}),s.appendChild(a),document.body.appendChild(s),Tr=s,o.host.focus()}function Gt(){Tr!==null&&(Tr.remove(),Tr=null)}async function $p(e){let t=[...Ht.filter(r=>r?.name!==e.name),e];try{let r=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sshHosts:t})}),s=await r.json().catch(()=>({}));if(!r.ok||!s.ok)return String(s.error||"HTTP "+r.status);fi(s.config);return}catch(r){return String(r&&r.message?r.message:r)}}async function qp(e,t){if(t.name!==e&&Ht.some(s=>s?.name===t.name))return S("error.bookNameTaken",{name:t.name});let r=Ht.map(s=>s?.name===e?t:s);try{let s=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sshHosts:r})}),a=await s.json().catch(()=>({}));if(!s.ok||!a.ok)return String(a.error||"HTTP "+s.status);fi(a.config);return}catch(s){return String(s&&s.message?s.message:s)}}function Kp(e,t,r){let s=yr(r,Re);if(Ic(s))return;let a=document.createElement("div");a.className="tt_sftpDualCard";let i=document.createElement("div");i.className="tt_sftpTitleRow";let n=document.createElement("div");n.className="tt_sshTitle",n.innerHTML=ci+"<span></span>",n.lastElementChild.textContent=S("panel.sftpDual",{label:t});let o=document.createElement("button");o.type="button",o.className="tt_close",o.title=S("btn.close"),o.innerHTML=ys,o.addEventListener("click",()=>Br(s)),i.appendChild(n),i.appendChild(o),a.appendChild(i);let u=document.createElement("div");u.className="tt_sftpStatus";let l=(y,T)=>{u.textContent=y,T===void 0?delete u.dataset.state:u.dataset.state=T},_=!1,m=(y,T)=>{if(!(_||p.local.busy||p.remote.busy)){_=!0;for(let k of[p.local,p.remote])k.setBusy(!0);l(y,"busy"),Promise.resolve().then(T).catch(k=>{(k===null||typeof k!="object"||k.name!=="TransferCanceledError")&&P.fail(S("status.failed")),l(String(k&&k.message?k.message:k),"error")}).finally(()=>{_=!1;for(let k of[p.local,p.remote])k.setBusy(!1)})}},w=y=>{p[y].bar.after(d),d.style.display="",h.focus(),h.select()},p={},c=(y,T)=>{let k={kind:y,path:"",busy:!1},R=document.createElement("div");R.className="tt_sftpPane";let U=document.createElement("div");U.className="tt_sftpPaneHead";let G=document.createElement("span");G.textContent=T;let J=document.createElement("span");J.className="tt_sftpPaneMeta",U.appendChild(G),U.appendChild(J),R.appendChild(U);let X=document.createElement("div");X.className="tt_sftpBar";let W=document.createElement("input");W.type="text",W.className="tt_sftpPath",W.placeholder=S(y==="local"?"placeholder.localPath":"placeholder.remotePath"),W.spellcheck=!1,W.autocomplete="off";let L=document.createElement("button");L.type="button",L.className="tt_toolBtn",L.innerHTML=eo+"<span>"+S("btn.refresh")+"</span>";let I=document.createElement("button");I.type="button",I.className="tt_toolBtn",I.innerHTML=lc+"<span>"+S("btn.mkdir")+"</span>",X.appendChild(W),X.appendChild(L),X.appendChild(I),R.appendChild(X);let z=document.createElement("div");z.className="tt_sftpList",R.appendChild(z),k.bar=X;let $=Y=>{k.busy=Y;for(let se of[L,I])se.disabled=Y;W.disabled=Y},q=async(Y,se)=>{let be=y==="local"?"/api/dsh-tty/local-fs/":"/api/dsh-tty/sftp/",fe=y==="local"?se:{...e,...se},ge=await fetch(be+Y,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(fe)}),Le=await ge.json().catch(()=>({}));if(!ge.ok||Le.ok!==!0)throw new Error(String(Le.error||"HTTP "+ge.status));return Le},ee=(Y,se)=>{if(!(k.busy||_))return $(!0),l(Y,"busy"),Promise.resolve().then(se).catch(be=>l(String(be&&be.message?be.message:be),"error")).finally(()=>$(!1))},he=(Y,se)=>{if(Y===void 0||Y==="")throw new Error(S("error.dirNotReady"));return Y.endsWith("/")||Y.endsWith("\\")?Y+se:Y+"/"+se},de=Y=>{let se=he(k.path,Y.name),be=[];Y.isDir===!0?be.push(S("meta.dir")):be.push(tt(Number(Y.size))||"\u2014");let fe=Hc(Number(Y.mtime));fe!==""&&be.push(fe);let ge=x(Y.isDir?ci:Y.isSymlink?oc:nc,Y.name,be.join(" \xB7 "),Y.isDir===!0?"dir":Y.isSymlink===!0?"link":"file"),Le=()=>k.loadDir(k.path),Ce=y==="local"?p.remote:p.local;return Y.isDir===!0&&ge.addEventListener("click",Z=>{Z.target instanceof Element&&Z.target.closest(".tt_sftpAct")!==null||k.loadDir(se)}),b(ge,y==="local"?cc:hc,S("btn.transferTo",{target:S(y==="local"?"meta.remote":"meta.local"),path:Ce.path}),()=>{if(k.path===""||Ce.path===""){l(S("error.transferDirsNotReady"),"error");return}P.reset(),P.pulse(0),m(S("msg.transferring",{name:Y.name}),async()=>{let Z=await fetch("/api/dsh-tty/local-fs/transfer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"start",direction:y==="local"?"up":"down",...e,localPath:y==="local"?se:he(Ce.path,Y.name),remotePath:y==="local"?he(Ce.path,Y.name):se})}),te=await Z.json().catch(()=>({}));if(!Z.ok||te.ok!==!0)throw P.fail(S("error.transferFailed")),new Error(String(te.error||"HTTP "+Z.status));let le=te.job?.id;if(typeof le!="string"||le==="")throw P.fail(S("error.transferFailed")),new Error(S("error.noTaskId"));await D(le,Y.name)==="canceled"?(P.reset(),l(S("msg.transferCanceled",{name:Y.name}))):(P.done(S("status.done")),setTimeout(()=>P.reset(),1500),l(S("msg.transferred",{name:Y.name}))),await Ce.loadDir(Ce.path)})}),y!=="local"&&Y.isDir!==!0&&b(ge,ac,S("btn.download",{name:Y.name}),()=>{O(Y,se)}),b(ge,Qn,S("btn.rename",{name:Y.name}),()=>{h.placeholder=S("placeholder.newName"),h.value=Y.name,w(y),C=async()=>{let Z=h.value.trim();Z===""||Z===Y.name||(v(),await k.runTask(S("msg.renaming",{name:Y.name}),async()=>{await q("rename",{from:se,to:he(k.path,Z)}),await Le()}))}}),E(ge,()=>k.runTask(S("msg.deleting",{name:Y.name}),async()=>{await q("remove",{path:se,recursive:Y.isDir===!0}),await Le(),l(S("msg.deleted",{name:Y.name}))}),Y),ge},re=Y=>{if(z.textContent="",k.path!==""&&k.path!=="/"&&/^[A-Za-z]:[\\/]?$/.test(k.path)===!1){let fe=x(Zn,S("list.parentDir"),"","up");fe.addEventListener("click",()=>{let ge=y==="local"?Yp(k.path):Fc(k.path);ge!==null&&k.loadDir(ge)}),z.appendChild(fe)}let se=Array.isArray(Y)?Y:[];if(se.length===0){let fe=document.createElement("div");fe.className="tt_addMenuTitle",fe.textContent=S("list.emptyDir"),z.appendChild(fe);return}let be=500;for(let fe of se.slice(0,be))fe===null||typeof fe!="object"||typeof fe.name!="string"||fe.name===""||z.appendChild(de(fe));if(se.length>be){let fe=document.createElement("div");fe.className="tt_addMenuTitle",fe.textContent=S("list.truncated",{rest:se.length-be,total:se.length}),z.appendChild(fe)}};return k.loadDir=async Y=>{try{let se=await q("list",{path:Y??k.path});k.path=typeof se.path=="string"&&se.path!==""?se.path:k.path,W.value=k.path;let be=Array.isArray(se.entries)?se.entries.length:0;re(se.entries),J.textContent=S("list.itemCount",{count:be}),l(k.path)}catch(se){l(String(se&&se.message?se.message:se),"error")}},k.runTask=ee,k.setBusy=$,p[y]=k,L.addEventListener("click",()=>{k.runTask(S("list.loading"),()=>k.loadDir(k.path))}),I.addEventListener("click",()=>{k.busy||_||(h.placeholder=S("placeholder.newDirName"),h.value="",w(y),C=async()=>{let Y=h.value.trim();Y!==""&&(v(),await k.runTask(S("msg.creatingDir",{name:Y}),async()=>{await q("mkdir",{path:he(k.path,Y),parents:!0}),await k.loadDir(k.path)}))})}),W.addEventListener("keydown",Y=>{if(Y.key!=="Enter"||(Y.preventDefault(),k.busy||_))return;let se=W.value.trim();se!==""&&k.runTask(S("list.loading"),()=>k.loadDir(se))}),R},d=document.createElement("div");d.className="tt_sftpEditor",d.style.display="none";let h=document.createElement("input");h.type="text",h.className="tt_cardInput",h.spellcheck=!1,h.autocomplete="off";let f=document.createElement("button");f.type="button",f.className="tt_toolBtn",f.textContent=S("btn.ok");let g=document.createElement("button");g.type="button",g.className="tt_toolBtn",g.textContent=S("btn.cancel"),d.appendChild(h),d.appendChild(f),d.appendChild(g);let C=null,v=()=>{d.style.display="none",h.value="",C=null};f.addEventListener("click",()=>{C?.()}),g.addEventListener("click",v),h.addEventListener("keydown",y=>{y.key==="Enter"?(y.preventDefault(),C?.()):y.key==="Escape"&&(y.stopPropagation(),v())});let x=(y,T,k,R)=>{let U=document.createElement("button");U.type="button",U.className="tt_sftpRow";let G=document.createElement("span");G.className="tt_sftpIcon",G.innerHTML=y,R!==void 0&&(G.dataset.kind=R);let J=document.createElement("span");if(J.className="tt_sftpName",J.textContent=T,J.title=T,U.appendChild(G),U.appendChild(J),k!==""){let X=document.createElement("span");X.className="tt_sftpMeta",X.textContent=k,U.appendChild(X)}return U},b=(y,T,k,R)=>{let U=document.createElement("button");U.type="button",U.className="tt_sftpAct",U.innerHTML=T,U.title=k,U.addEventListener("click",G=>{G.stopPropagation(),R()}),y.appendChild(U)},E=(y,T,k)=>{let R=document.createElement("button");R.type="button",R.className="tt_sftpAct",R.innerHTML=Er,R.title=k.isDir?S("btn.deleteEntryDir",{name:k.name}):S("btn.deleteEntry",{name:k.name});let U=null;R.addEventListener("click",G=>{if(G.stopPropagation(),U!==null){clearTimeout(U),U=null,R.innerHTML=Er,delete R.dataset.danger,T();return}R.textContent=S("btn.confirm"),R.dataset.danger="",U=setTimeout(()=>{U=null,R.innerHTML=Er,delete R.dataset.danger},4e3)}),y.appendChild(R)},O=(y,T)=>p.remote.runTask(S("msg.downloading",{name:y.name}),async()=>{P.reset();let k;try{k=await Uc("/api/dsh-tty/sftp/download",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...e,path:T})},(R,U)=>{P.set(R,U)},Jt.maxDownloadMb,R=>P.setCancel(R))}catch(R){if(Vn(R)){P.reset(),l(S("msg.downloadCanceled",{name:y.name}));return}throw P.fail(S("error.downloadFailed")),R}P.done(S("status.done")),jc(k,y.name),setTimeout(()=>P.reset(),1500),l(S("msg.downloaded",{name:y.name,size:tt(k.size)||String(k.size)+" B"}))}),B=c("local",S("meta.local")),H=c("remote",S("meta.remote"));p.local.wrap=B,p.remote.wrap=H;let M=document.createElement("div");M.className="tt_sftpDual",M.appendChild(B),M.appendChild(H),a.appendChild(M),a.appendChild(d);let K=document.createElement("div");K.className="tt_sftpFoot";let P=Wc();K.appendChild(P.el),K.appendChild(u),a.appendChild(K);let D=async(y,T)=>{let k=!1;P.setCancel(()=>{k||(k=!0,fetch("/api/dsh-tty/local-fs/transfer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"cancel",job:y})}).catch(()=>{}))});try{for(;;){await new Promise(J=>setTimeout(J,400));let R=await fetch("/api/dsh-tty/local-fs/transfer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"status",job:y})}),U=await R.json().catch(()=>({}));if(!R.ok||U.ok!==!0){if(k)return"canceled";throw new Error(String(U.error||"HTTP "+R.status))}let G=U.job;if(G===null||typeof G!="object")throw new Error(S("error.invalidTaskState"));if(G.state==="running"){let J=typeof G.current=="string"&&G.current!==""?G.current:T;l(S("msg.transferring",{name:J}),"busy"),Number.isFinite(G.total)&&G.total>0?P.set(Number(G.bytes)||0,G.total):P.pulse(Number(G.bytes)||0);continue}if(G.state==="canceled")return"canceled";if(G.state!=="done")throw new Error(String(G.error||S("error.transferFailed")));return"done"}}finally{P.setCancel(null)}},F=io(),N=F===null?420:Math.round(F.height*.56);Nc(a,S("panel.sftpDual",{label:t}),N,s),p.local.loadDir(""),p.remote.loadDir("")}var Ft=null,Tt=null;function Oc(){return Tt!==null&&Rn(Tt.ownerKey,Re)?Tt.ownerKey:yr(void 0,Re)}var Ic=(e=Oc())=>Ft!==null||Tt!==null&&Tt.ownerKey===e;function Nc(e,t,r,s){let a=yr(s,Re),i=gt!==null&&gt.ownerKey===a;if(ce!==null&&!qe&&ct!==null&&!i)try{let o=xc({title:t,side:"bottom",size:r,min:200,ownerSid:a,onClose:()=>Br(a)});o.element.appendChild(e),Tt=o;return}catch(o){console.warn("[dsh-tty] SFTP \u6302\u5230\u7EC8\u7AEF\u6302\u8F7D\u4F4D\u5931\u8D25\uFF0C\u56DE\u9000\u5BF9\u8BDD\u6846\uFF1A"+(o instanceof Error?o.message:String(o)))}let n=document.createElement("div");n.className="tt_sshBackdrop",n.appendChild(e),n.addEventListener("mousedown",o=>{o.target===n&&Br()}),document.body.appendChild(n),Ft=n}var li=null;function Gp(){let e=li;if(li=null,e!==null)try{e.click()}catch{}}function Vp(e){let t=new TextEncoder().encode(e),r="";for(let s of t)r+=String.fromCharCode(s);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Hc(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=s=>String(s).padStart(2,"0");return t.getFullYear()+"-"+r(t.getMonth()+1)+"-"+r(t.getDate())+" "+r(t.getHours())+":"+r(t.getMinutes())}function Fc(e){let t=String(e).replace(/\/+$/,""),r=t.lastIndexOf("/");return r<=0?"/":t.slice(0,r)}function Yp(e){let t=String(e).trim();if(t===""||(t=t.replace(/[\\/]+$/,""),t===""))return null;let r=t.match(/^([A-Za-z]:)(.*)$/);if(r!==null){let a=r[2];if(a==="")return null;let i=Math.max(a.lastIndexOf("\\"),a.lastIndexOf("/"));return i<=0?r[1]+"\\":r[1]+a.slice(0,i)}if(t.startsWith("\\\\")||t.startsWith("//")){let a=t.slice(2);if(a.split(/[\\/]/).filter(o=>o!=="").length<=2)return null;let n=Math.max(a.lastIndexOf("\\"),a.lastIndexOf("/"));return t.slice(0,2)+a.slice(0,n)}let s=t.lastIndexOf("/");return s<=0?s===0?"/":null:t.slice(0,s)}function Zr(e,t){return e.endsWith("/")?e+t:e+"/"+t}function Wc(){let e=document.createElement("div");e.className="tt_sftpProgress";let t=document.createElement("div");t.className="tt_sftpTrack";let r=document.createElement("div");r.className="tt_sftpFill",t.appendChild(r);let s=document.createElement("span");s.className="tt_sftpPct",s.textContent="";let a=document.createElement("button");a.type="button",a.className="tt_sftpCancel",a.title=S("btn.cancelTransfer"),a.textContent="\u2715",a.style.display="none";let i=null;a.addEventListener("click",p=>{p.stopPropagation();let c=i;c!==null&&(a.disabled=!0,c())}),e.appendChild(t),e.appendChild(s),e.appendChild(a);let n=p=>{s.textContent=p},o="",u=-1,l=p=>{p!==o&&(o=p,s.textContent=p)},_=p=>{let c=Math.round(p);c!==u&&(u=c,r.style.width=c+"%")},m=()=>{i=null,li===a&&(li=null),a.style.display="none",a.disabled=!1};return{el:e,reset(){delete e.dataset.active,delete e.dataset.state,o="",u=-1,this._last=void 0,this._lastAt=0,this._rate=void 0,r.style.width="0%",s.textContent="",m()},setCancel(p){if(p==null){m();return}i=p,li=a,a.disabled=!1,a.style.display=""},set(p,c){e.dataset.active="",delete e.dataset.state;let d=Date.now();if(this._last!==void 0&&d>this._lastAt){let h=(p-this._last)/((d-this._lastAt)/1e3);this._rate=this._rate===void 0?h:this._rate*.7+h*.3}if(this._last=p,this._lastAt=d,Number.isFinite(c)&&c>0){let h=Math.min(100,Math.max(0,p/c*100));_(h);let f=this._rate!==void 0&&this._rate>=0?Xr(this._rate):"";l(Math.round(h)+"%"+(f!==""?" \xB7 "+f:""))}else{r.style.width="";let h=this._rate!==void 0&&this._rate>=0?Xr(this._rate):"";l(tt(p)+(h!==""?" \xB7 "+h:""))}},pulse(p){e.dataset.active="",delete e.dataset.state,r.style.width="45%",r.style.transition="none",setTimeout(()=>{r.style.transition="width .15s linear"},30);let c=Date.now();if(this._last!==void 0&&c>this._lastAt){let h=(p-this._last)/((c-this._lastAt)/1e3);this._rate=this._rate===void 0?h:this._rate*.7+h*.3}this._last=p,this._lastAt=c;let d=this._rate!==void 0&&this._rate>=0?Xr(this._rate):"";l((Number.isFinite(p)?tt(p):"\u2026")+(d!==""?" \xB7 "+d:""))},done(p){e.dataset.active="",e.dataset.state="done",r.style.width="100%",u=100,m(),l(p!==void 0&&p!==""?p:S("status.done"))},fail(p){e.dataset.active="",e.dataset.state="error",m(),l(p!==void 0&&p!==""?p:S("status.failed"))},text(p){delete e.dataset.state,p===void 0||p===""?(e.dataset.active="",o="",s.textContent=""):(e.dataset.active="",r.style.width="",u=-1,l(p))}}}async function Uc(e,t,r,s=0,a=null){let i=s>0?s*1024*1024:0,n=typeof AbortController=="function"?new AbortController:null,o=!1;n!==null&&(t={...t,signal:n.signal},typeof a=="function"&&a(()=>{o=!0,n.abort()}));let u=await fetch(e,t);if(!u.ok){let d="HTTP "+u.status;try{let h=await u.json();h!==null&&typeof h=="object"&&typeof h.error=="string"&&(d=h.error)}catch{}throw new Error(d)}let l=Number(u.headers.get("content-length")),_=Number.isFinite(l)&&l>0;if(i>0&&_&&l>i){try{await u.body?.cancel()}catch{}throw new Error(S("error.downloadTooBig",{size:tt(i)}))}let m=u.body;if(m===null||typeof m.getReader!="function"){let d=await u.blob();if(i>0&&d.size>i)throw new Error(S("error.downloadTooBig",{size:tt(i)}));return _&&r(l,l),d}let w=m.getReader(),p=[],c=0;try{for(;;){let{done:d,value:h}=await w.read();if(d)break;if(h!==void 0&&h.byteLength>0){if(c+=h.byteLength,i>0&&c>i){try{await w.cancel()}catch{}throw new Error(S("error.downloadTooBig",{size:tt(i)}))}p.push(h),r(c,_?l:NaN)}}}catch(d){if(o||d!==null&&typeof d=="object"&&d.name==="AbortError"){try{await w.cancel()}catch{}throw new Pr}throw d}return new Blob(p,{type:"application/octet-stream"})}var Pr=class extends Error{constructor(){super(S("msg.canceled")),this.name="TransferCanceledError"}};function Vn(e){return e instanceof Pr}function jc(e,t){let r=URL.createObjectURL(e),s=document.createElement("a");s.href=r,s.download=t,s.click(),setTimeout(()=>URL.revokeObjectURL(r),3e4)}async function Jp(e){if(e==null)return[];let t=typeof e.items<"u"?[...e.items]:[],r=[];for(let l of t){let _=typeof l.webkitGetAsEntry=="function"?l.webkitGetAsEntry():null;_!==null&&r.push(_)}if(r.length===0)return[...e.files??[]].map(l=>({relPath:l.name,file:l}));let s=[],a=Jt.maxUploadFiles,i=Jt.maxUploadMb>0?Jt.maxUploadMb*1024*1024:0,n=()=>a>0&&s.length>=a,o=0,u=(l,_)=>new Promise(m=>{if(n()){m();return}if(l.isFile===!0){l.file(c=>{i>0&&o+(c.size??0)>i?s._limitExceeded=!0:(s.push({relPath:_+l.name,file:c}),o+=c.size??0),m()},()=>m());return}if(l.isDirectory!==!0){m();return}let w=l.createReader(),p=()=>{w.readEntries(async c=>{if(c.length===0){m();return}for(let d of c){if(n())break;await u(d,_+l.name+"/")}if(n()){m();return}p()},()=>m())};p()});for(let l of r)await u(l,"");return s}function ks(e,t){let r=yr(t,Re);if(Ic(r))return;let s=e!==null&&typeof e=="object"?e:{},a={};if(typeof s.name=="string"&&s.name!=="")a.name=s.name;else{for(let I of["host","username","auth","keyPath","passphrase","password"])typeof s[I]=="string"&&s[I]!==""&&(a[I]=s[I]);let L=Number(s.port);Number.isInteger(L)&&L>=1&&L<=65535&&(a.port=L),s.agentForward===!0&&(a.agentForward=!0)}let i=a.name??(a.username!==void 0?a.username+"@"+String(a.host??""):String(a.host??""));if(Tc==="dual"){Kp(a,i,r);return}let n=document.createElement("div");n.className="tt_sftpCard";let o=document.createElement("div");o.className="tt_sftpTitleRow";let u=document.createElement("div");u.className="tt_sshTitle",u.innerHTML=ci+"<span></span>",u.lastElementChild.textContent="SFTP \xB7 "+i;let l=document.createElement("button");l.type="button",l.className="tt_close",l.title=S("btn.close"),l.innerHTML=ys,l.addEventListener("click",()=>Br(r)),o.appendChild(u),o.appendChild(l),n.appendChild(o);let _=document.createElement("div");_.className="tt_sftpBar";let m=document.createElement("input");m.type="text",m.className="tt_sftpPath",m.placeholder=S("placeholder.remotePath"),m.spellcheck=!1,m.autocomplete="off";let w=document.createElement("button");w.type="button",w.className="tt_toolBtn",w.innerHTML=eo+"<span>"+S("btn.refresh")+"</span>";let p=document.createElement("button");p.type="button",p.className="tt_toolBtn",p.innerHTML=lc+"<span>"+S("btn.mkdir")+"</span>";let c=document.createElement("button");c.type="button",c.className="tt_toolBtn",c.innerHTML=ip+"<span>"+S("btn.upload")+"</span>",c.title=S("btn.uploadTitle");let d=document.createElement("input");d.type="file",d.multiple=!0,d.style.display="none",_.appendChild(m),_.appendChild(w),_.appendChild(p),_.appendChild(c),n.appendChild(_),n.appendChild(d);let h=document.createElement("div");h.className="tt_sftpEditor",h.style.display="none";let f=document.createElement("input");f.type="text",f.className="tt_cardInput",f.spellcheck=!1,f.autocomplete="off";let g=document.createElement("button");g.type="button",g.className="tt_toolBtn",g.textContent=S("btn.ok");let C=document.createElement("button");C.type="button",C.className="tt_toolBtn",C.textContent=S("btn.cancel"),h.appendChild(f),h.appendChild(g),h.appendChild(C),n.appendChild(h);let v=null,x=()=>{h.style.display="none",v=null};g.addEventListener("click",()=>{v?.()}),C.addEventListener("click",x),f.addEventListener("keydown",L=>{L.key==="Enter"?(L.preventDefault(),v?.()):L.key==="Escape"&&(L.stopPropagation(),x())});let b=document.createElement("div");b.className="tt_sftpList",n.appendChild(b);let E=document.createElement("div");E.className="tt_sftpFoot";let O=document.createElement("div");O.className="tt_sftpStatus";let B=Wc();E.appendChild(B.el),E.appendChild(O),n.appendChild(E);let H={path:"",busy:!1},M=(L,I)=>{O.textContent=L,I===void 0?delete O.dataset.state:O.dataset.state=I},K=L=>{H.busy=L;for(let I of[w,p,c])I.disabled=L;m.disabled=L},P=async(L,I)=>{let z=await fetch("/api/dsh-tty/sftp/"+L,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...a,...I})}),$=await z.json().catch(()=>({}));if(!z.ok||$.ok!==!0)throw new Error(String($.error||"HTTP "+z.status));return $},D=async(L,I)=>{if(!H.busy){K(!0),M(L,"busy");try{await I()}catch(z){M(String(z&&z.message?z.message:z),"error")}finally{K(!1)}}},F=(L,I,z,$)=>{let q=document.createElement("button");q.type="button",q.className="tt_sftpRow";let ee=document.createElement("span");ee.className="tt_sftpIcon",ee.innerHTML=L,$!==void 0&&(ee.dataset.kind=$);let he=document.createElement("span");if(he.className="tt_sftpName",he.textContent=I,he.title=I,q.appendChild(ee),q.appendChild(he),z!==""){let de=document.createElement("span");de.className="tt_sftpMeta",de.textContent=z,q.appendChild(de)}return q},N=(L,I,z,$)=>{let q=document.createElement("button");q.type="button",q.className="tt_sftpAct",q.innerHTML=I,q.title=z,q.addEventListener("click",ee=>{ee.stopPropagation(),$()}),L.appendChild(q)},y=(L,I,z)=>{let $=document.createElement("button");$.type="button",$.className="tt_sftpAct",$.innerHTML=Er,$.title=I.isDir?S("btn.deleteEntryDir",{name:I.name}):S("btn.deleteEntry",{name:I.name});let q=null;$.addEventListener("click",ee=>{if(ee.stopPropagation(),!H.busy){if(q!==null){clearTimeout(q),q=null,$.innerHTML=Er,delete $.dataset.danger,D(S("msg.deleting",{name:I.name}),async()=>{await P("remove",{path:z,recursive:I.isDir===!0}),await k(H.path),M(S("msg.deleted",{name:I.name}))});return}$.textContent=S("btn.confirm"),$.dataset.danger="",q=setTimeout(()=>{q=null,$.innerHTML=Er,delete $.dataset.danger},4e3)}}),L.appendChild($)},T=L=>{if(b.textContent="",H.path!==""&&H.path!=="/"){let $=F(Zn,S("list.parentDir"),"","up");$.addEventListener("click",()=>{D(S("list.loading"),()=>k(Fc(H.path)))}),b.appendChild($)}let I=Array.isArray(L)?L:[];if(I.length===0){let $=document.createElement("div");$.className="tt_addMenuTitle",$.textContent=S("list.emptyDir"),b.appendChild($);return}let z=500;for(let $ of I.slice(0,z)){if($===null||typeof $!="object"||typeof $.name!="string"||$.name==="")continue;let q=Zr(H.path,$.name),ee=[];$.isDir===!0?ee.push(S("meta.dir")):ee.push(tt(Number($.size))||"\u2014");let he=Hc(Number($.mtime));he!==""&&ee.push(he);let de=F($.isDir?ci:$.isSymlink?oc:nc,$.name,ee.join(" \xB7 "),$.isDir===!0?"dir":$.isSymlink===!0?"link":"file");$.isDir===!0?de.addEventListener("click",re=>{re.target instanceof Element&&re.target.closest(".tt_sftpAct")!==null||D(S("list.loading"),()=>k(q))}):(de.addEventListener("click",re=>{re.target instanceof Element&&re.target.closest(".tt_sftpAct")!==null||R($,q)}),N(de,ac,S("btn.download",{name:$.name}),()=>{R($,q)})),N(de,Qn,S("btn.rename",{name:$.name}),()=>{f.placeholder=S("placeholder.newName"),f.value=$.name,h.style.display="",f.focus(),f.select(),v=async()=>{let re=f.value.trim();re===""||re===$.name||(x(),await D(S("msg.renaming",{name:$.name}),async()=>{await P("rename",{from:q,to:Zr(H.path,re)}),await k(H.path)}))}}),y(de,$,q),b.appendChild(de)}if(I.length>z){let $=document.createElement("div");$.className="tt_addMenuTitle",$.textContent=S("list.truncated",{rest:I.length-z,total:I.length}),b.appendChild($)}},k=async L=>{try{let I=await P("list",{path:L??H.path});H.path=typeof I.path=="string"&&I.path!==""?I.path:"/",m.value=H.path;let z=Array.isArray(I.entries)?I.entries.length:0;T(I.entries),M(H.path+" \u2014 "+S("list.itemCount",{count:z}))}catch(I){M(String(I&&I.message?I.message:I),"error")}},R=(L,I)=>D(S("msg.downloading",{name:L.name}),async()=>{B.reset();let z;try{z=await Uc("/api/dsh-tty/sftp/download",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...a,path:I})},($,q)=>{B.set($,q)},Jt.maxDownloadMb,$=>B.setCancel($))}catch($){if(Vn($)){B.reset(),M(S("msg.downloadCanceled",{name:L.name}));return}throw B.fail(S("error.downloadFailed")),$}B.done(S("status.done")),jc(z,L.name),setTimeout(()=>B.reset(),1500),M(S("msg.downloaded",{name:L.name,size:tt(z.size)||String(z.size)+" B"}))}),U=(L,I,z,$,q)=>new Promise((ee,he)=>{let de=Vp(JSON.stringify({...a,path:Zr(H.path,I)})),re=new XMLHttpRequest;q.abort=()=>{q.stopped=!0,re.abort()},re.open("POST","/api/dsh-tty/sftp/upload"),re.setRequestHeader("x-dsh-sftp-meta",de);let Y=$>1?String(z)+"/"+String($)+" ":"";M(S("msg.uploadingName",{name:Y+I}),"busy"),re.upload.addEventListener("progress",fe=>{fe.lengthComputable?B.set(fe.loaded,fe.total):B.pulse(0)});let se=!1,be=fe=>{se||(se=!0,fe===null?ee():he(fe))};re.addEventListener("load",()=>{if(re.status===200){$===1&&B.done(S("msg.uploadDone")),be(null);return}if(q.stopped)return;B.fail(S("error.uploadFailed"));let fe="HTTP "+re.status;try{let ge=JSON.parse(re.responseText);ge!==null&&typeof ge=="object"&&typeof ge.error=="string"&&(fe=ge.error)}catch{}be(new Error(fe))}),re.addEventListener("error",()=>{if(q.stopped){be(new Pr);return}B.fail(S("error.uploadFailed")),be(new Error(S("error.networkError")))}),re.addEventListener("abort",()=>{be(new Pr)}),re.send(L)}),G=async L=>D(S("msg.uploading"),async()=>{let I=Jt;if(I.maxUploadFiles>0&&L.length>I.maxUploadFiles){M(S("error.uploadCountExceeded",{max:I.maxUploadFiles,count:L.length}),"error"),B.fail(S("status.overLimit"));return}let z=I.maxUploadMb>0?I.maxUploadMb*1024*1024:0,$=L.find(re=>z>0&&(re.file?.size??0)>z);if($!==void 0){M(S("error.uploadTooBig",{size:tt(z),name:String($.relPath??"")}),"error"),B.fail(S("status.overLimit"));return}if(L._limitExceeded===!0){M(S("error.uploadTotalTooBig"),"error"),B.fail(S("status.overLimit"));return}let q=new Set;for(let re of L){let Y=re.relPath.lastIndexOf("/");if(Y<=0)continue;let se=re.relPath.slice(0,Y);q.has(se)||(q.add(se),await P("mkdir",{path:Zr(H.path,se),parents:!0}).catch(()=>{}))}B.reset();let ee={stopped:!1,abort:null};B.setCancel(()=>ee.abort?.());let he=0,de=0;try{for(let re of L){if(ee.stopped)break;he+=1,ee.abort=null;try{await U(re.file,re.relPath,he,L.length,ee),de+=1}catch(Y){if(Vn(Y)||ee.stopped)break;throw Y}}}finally{B.setCancel(null)}if(ee.stopped){B.reset(),M(S("msg.uploadCanceled",{done:de,total:L.length})),await k(H.path);return}B.done(S("status.allDone")),setTimeout(()=>B.reset(),1500),M(S("msg.uploadDoneCount",{count:L.length})),await k(H.path)});w.addEventListener("click",()=>{D(S("list.loading"),()=>k(H.path))}),p.addEventListener("click",()=>{H.busy||(f.placeholder=S("placeholder.newDirName"),f.value="",h.style.display="",f.focus(),v=async()=>{let L=f.value.trim();L!==""&&(x(),await D(S("msg.creatingDir",{name:L}),async()=>{await P("mkdir",{path:Zr(H.path,L)}),await k(H.path)}))})}),c.addEventListener("click",()=>{H.busy===!1&&d.click()}),d.addEventListener("change",()=>{let L=[...d.files??[]].map(I=>({relPath:I.name,file:I}));d.value="",L.length>0&&G(L)});let J=0,X=L=>{L?b.dataset.drag="":delete b.dataset.drag};n.addEventListener("dragenter",L=>{L.preventDefault(),J+=1,X(!0)}),n.addEventListener("dragover",L=>{L.preventDefault()}),n.addEventListener("dragleave",()=>{J=Math.max(0,J-1),J===0&&X(!1)}),n.addEventListener("drop",L=>{L.preventDefault(),J=0,X(!1),!H.busy&&Jp(L.dataTransfer).then(I=>{(I.length>0||I._limitExceeded===!0)&&G(I)})}),m.addEventListener("keydown",L=>{if(L.key!=="Enter"||(L.preventDefault(),H.busy))return;let I=m.value.trim();I!==""&&D(S("list.loading"),()=>k(I))});let W=io();Nc(n,"SFTP \xB7 "+i,W===null?340:Math.round(W.height*.46),r),D(S("status.connectingEllipsis"),()=>k(""))}function Br(e){let t=e===void 0?Oc():e,r=Ft,s=Tt!==null&&Tt.ownerKey===t?Tt:null;r===null&&s===null||(Gp(),Ft=null,s!==null&&(Tt=null),r!==null&&r.remove(),s!==null&&s.dispose())}function zc(){if(Je===null)return;let e=Je.style.display==="none"||Je.style.display==="";Je.style.display=e?"":"none";let t=ce!==null?ce.querySelector("[data-act=search]"):null;t!==null&&(e?t.dataset.on="":delete t.dataset.on),e&&Je.focus()}var Xp={matchBackground:"#3d2b00",matchBorder:"#8a5a00",activeMatchBackground:"#b06a00",activeMatchBorder:"#ffb84d",matchOverviewRuler:"#8a5a00",activeMatchColorOverviewRuler:"#ffb84d"};function Zp(e){let t=dt();if(t===void 0||t.search===void 0)return;let r=Je.value;if(r==="")return;let s={decorations:Xp};e?t.search.findPrevious(r,s):t.search.findNext(r,s)}function Yl(){di||ce===null&&!to()||ir!==null||(ir=setTimeout(()=>{ir=null,gs()},si),si=Math.min(si*2,5e3))}function yi(e){return e!==null&&typeof e=="object"&&e.persist===!0&&typeof e.persistName=="string"&&e.persistName!==""}function Yn(e){return yi(e)||e!==null&&typeof e=="object"&&typeof e.command=="string"&&e.command!==""}function Qp(){return Yt==="tmux"?{t:"spawn",cwd:Un(),persist:!0,persistName:oo()}:{t:"spawn",cwd:Un()}}async function $c(){if(!In){In=!0;try{await e_()}finally{In=!1}}}var In=!1;async function e_(){if(await ao(),ce===null){await r_();return}let e=vp(),t=gp();if(![...ue.values()].some(n=>n.embedded!==!0)){if(e.length>0||t.length>0){Me({t:"sessions"});let n=await us("sessions",4e3),o=new Map;if(n!==null&&Array.isArray(n.list))for(let l of n.list)l!==null&&typeof l=="object"&&l.attachable===!0&&o.set(l.sid,l);let u=new Set;for(let l of e){if(o.has(l.sid))Lp(l);else if(Yn(l.spawnSpec))Kl(l);else continue;yi(l.spawnSpec)&&u.add(l.spawnSpec.persistName)}for(let l of t){let _=l.spawnSpec.persistName;u.has(_)||(Kl(l),u.add(_))}Xt()}if(![...ue.values()].some(n=>n.embedded!==!0)){if(await ms())return;ui()}return}let r=[...ue.values()].filter(n=>!n.exited&&(n.embedded!==!0||n.spawned===!0)),s=r.filter(n=>Yn(n.spawnSpec)),a=null;if(s.length>0){Me({t:"sessions"});let n=await us("sessions",4e3),o=new Set((n!==null&&Array.isArray(n.list)?n.list:[]).map(u=>u?.sid).filter(u=>typeof u=="string"));a=s.filter(u=>!o.has(u.sid));for(let u of a)fs(u.sid)}let i=a!==null?new Set(a.map(n=>n.sid)):new Set;for(let n of r)i.has(n.sid)||Me({t:"attach",sid:n.sid})}function t_(){Ee!==null&&(Ee.readyState===WebSocket.OPEN||Ee.readyState===WebSocket.CONNECTING)||gs()}async function r_(){let e=[...ue.values()].filter(s=>s.embedded===!0&&!s.exited);if(e.length===0)return;Me({t:"sessions"});let t=await us("sessions",4e3),r=new Set((t!==null&&Array.isArray(t.list)?t.list:[]).map(s=>s?.sid).filter(s=>typeof s=="string"));for(let s of e)s.spawned===!0&&(r.has(s.sid)?Me({t:"attach",sid:s.sid}):Yn(s.spawnSpec)?Cc(s):(s.exited=!0,s.live=!1,Sr(s,S("status.ended"),S("btn.clickRerun"),"exited")))}function gs(){if(Ee!==null){try{Ee.close()}catch{}Ee=null}di=!1,clearTimeout(ir),ir=null,Zi=!0,Qi(S("status.connectingEllipsis"),"");try{Ee=new WebSocket($f())}catch(e){Zi=!1,Qi(S("error.connectFailed",{error:e.message}),"error"),Yl();return}Ee.onopen=()=>{Zi=!1,si=1e3,mt=null,Qi(S("status.connected"),"connected");for(let e of[...Hn])Hn.delete(e),ue.has(e.tab.sid)&&Me(e.frame);$c()},Ee.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}let r=t.sid;if(t.t==="ready"){let s=typeof t.target=="string"?t.target:"";Pn(r,t.kind==="ssh"?S("status.connectedSsh",{target:s!==""?s+" ":""}):S("status.connectedPid",{pid:t.pid}),"connected");let a=ue.get(r);if(a!==void 0){if(a.exited=!1,a.spawned=!0,a.live=!0,a.errored=!1,a.target=s,a.persistTmux=t.persist===!0,t.kind==="ssh"&&s!==""&&!a.label&&(a.label=s,it()),sr(),Bn(r),Sr(a,""),Or(a),t.persist===!0){let i=document.fonts!==void 0&&document.fonts.ready!==void 0?document.fonts.ready:Promise.resolve();Promise.race([i,new Promise(n=>setTimeout(n,500))]).then(()=>gc(150))}pi(),fp(r),Xt()}}else if(t.t==="sessions")Ep(t.list);else if(t.t==="data"){let s=ue.get(r);s!==void 0&&s.term!==null&&(s.term.write(String(t.d??"")),l_())}else if(t.t==="exit"){let s=ue.get(r);if(s!==void 0){s.exited=!0,s.live=!1,s.stats=null,r===Re&&lr();let a=t.code!==null&&t.code!==void 0?"code="+t.code:"",i=t.signal!==null&&t.signal!==void 0?"signal="+t.signal:"";Pn(r,S("status.exitedWith",{detail:[a,i].filter(Boolean).join(" ")}),""),sr(),Bn(r),Sr(s,S("status.exited"),S("btn.clickReopen"),"exited"),pi(),Xt()}}else if(t.t==="stats")try{let s=ue.get(r);if(s!==void 0){let a=t.stats;s.stats=Fl(a)?a:null,s.statsAt=Date.now(),r===Re&&lr()}}catch(s){console.warn("[dsh-tty] stats \u5E27\u5904\u7406\u5931\u8D25\uFF08\u5DF2\u5FFD\u7565\uFF09: "+(s instanceof Error?s.message:String(s)))}else if(t.t==="error")if(Pn(r,S("status.error",{message:String(t.m??"")}),"error"),typeof r=="string"){let s=ue.get(r);s!==void 0&&(s.live||(s.errored=!0),sr(),Bn(r),Sr(s,S("status.errored"),S("status.retryHint",{message:String(t.m??"")}),"error"))}else i_(S("btn.clickRetry"))},Ee.onclose=()=>{if(Zi=!1,!di){Qi(S("status.disconnectedReconnecting"),"error");for(let e of ue.values())e.exited||Sr(e,S("status.disconnected"),S("status.reconnecting"),"info");Yl()}},Ee.onerror=()=>{}}function i_(e){Lr!==null&&(Lr.textContent=e)}function Jn(){(ce===null||qe)&&Xn()}var ts="DSH_TTY_ALLOW_PROXY_COMMAND";function s_(e){let t=new Date(Number(e)*1e3);if(Number.isNaN(t.getTime()))return String(e);let r=s=>String(s).padStart(2,"0");return`${String(t.getFullYear())}-${r(t.getMonth()+1)}-${r(t.getDate())} ${r(t.getHours())}:${r(t.getMinutes())}:${r(t.getSeconds())}`}function lo(){return typeof navigator<"u"&&navigator.clipboard!==void 0&&typeof navigator.clipboard.writeText=="function"}async function n_(e){if(lo())try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let r=!1;try{r=document.execCommand("copy")}catch{r=!1}return t.remove(),r||bi(S("error.copyFailed"),"error"),r}async function o_(e){if(lo()&&typeof navigator.clipboard.readText=="function")try{let s=await navigator.clipboard.readText();return s!==""&&Me({t:"input",sid:e.sid,d:s}),!0}catch{}let t=document.createElement("textarea");t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus();let r=!1;try{r=document.execCommand("paste");let s=r?t.value:"";s!==""&&Me({t:"input",sid:e.sid,d:s})}catch{r=!1}return t.remove(),r||bi(S("error.pasteFailed"),"error"),r}function Xn(){if(ce!==null){qe&&qc();return}mi(),ce=document.createElement("div"),ce.className="tt_modalBackdrop",ce.innerHTML='<div class="tt_modal"><div class="tt_header"><span class="tt_titleIcon">'+ws+'</span><div class="tt_tabs"></div><div class="tt_status"><span class="tt_statusDot"></span><span class="tt_statusText">'+S("status.initializing")+'</span></div><input class="tt_searchInput" style="display:none" placeholder="'+S("placeholder.search")+'" /><span class="tt_toolGroup"><button class="tt_toolBtn tt_iconBtn" data-act="search" title="'+S("btn.searchTitle")+'">'+Vf+'</button><button class="tt_toolBtn tt_iconBtn" data-act="clear" title="'+S("btn.clearTitle")+'">'+Yf+'</button><button class="tt_toolBtn tt_iconBtn" data-act="copy" title="'+S("btn.copyTitle")+'">'+Jf+'</button><button class="tt_toolBtn tt_iconBtn" data-act="paste" title="'+S("btn.pasteTitle")+'">'+Xf+'</button></span><span class="tt_winGroup"><button class="tt_min" title="'+S("btn.minimizeTitle")+'">'+tp+'</button><button class="tt_close" title="'+S("btn.closePanelTitle")+'">'+ys+'</button></span></div><div class="tt_connbar" data-hidden><div class="tt_connArea"><span class="tt_connDot"></span><span class="tt_connTarget">\u2014</span><span class="tt_connBadge"></span></div><div class="tt_connActions"></div></div><div class="tt_work"><div class="tt_body"><div class="tt_statsBar" hidden></div><div class="tt_overlay"></div></div></div></div>',document.body.appendChild(ce),os=ce.querySelector(".tt_status"),rr=ce.querySelector(".tt_statusText"),or=ce.querySelector(".tt_statusDot"),kt=ce.querySelector(".tt_tabs"),ei=ce.querySelector(".tt_connbar"),ti=ce.querySelector(".tt_connDot"),as=ce.querySelector(".tt_connTarget"),lt=ce.querySelector(".tt_connBadge"),ri=ce.querySelector(".tt_connActions"),ct=ce.querySelector(".tt_work"),rt=ce.querySelector(".tt_body"),_t=ce.querySelector(".tt_statsBar"),Cs(),mt=null,pc(),Lr=ce.querySelector(".tt_body > .tt_overlay"),Je=ce.querySelector(".tt_searchInput"),Lr.addEventListener("click",()=>{Lr.textContent="",gs()});let e=ce.querySelector("[data-act=search]");e.addEventListener("click",()=>{zc(),Je.style.display!=="none"&&Je.focus()}),e.dataset.on="",Je.addEventListener("keydown",t=>{t.key==="Enter"?(t.preventDefault(),Zp(t.shiftKey)):t.key==="Escape"&&(t.stopPropagation(),Je.style.display="none")}),ce.querySelector("[data-act=clear]").addEventListener("click",()=>{let t=dt();t!==void 0&&t.term!==null&&t.term.clear()}),ce.querySelector("[data-act=copy]").addEventListener("click",()=>{let t=dt();if(t===void 0||t.term===null)return;let r=t.term.getSelection();r!==""&&n_(r)}),ce.querySelector("[data-act=paste]").addEventListener("click",()=>{let t=dt();t!==void 0&&o_(t)}),ce.querySelector(".tt_min").addEventListener("click",()=>{vs()}),ce.querySelector(".tt_close").addEventListener("click",()=>{_i()}),ce.addEventListener("mousedown",t=>{t.target===ce&&vs()}),document.addEventListener("keydown",Kc),ii=new ResizeObserver(()=>{qe||(rs(),wp(dt()))}),ii.observe(rt),it(),sr(),Ee!==null&&Ee.readyState===WebSocket.OPEN?$c():gs()}function a_(){Ve=document.createElement("div"),Ve.className="tt_dock",Ve.title=S("btn.restoreDock"),Ve.innerHTML='<span class="tt_dockTitle">'+ws+"<span>"+S("panel.title")+'</span><span class="tt_dockCount"></span></span><span class="tt_dockStatus"></span><span class="tt_dockDot"></span><button class="tt_dockClose" title="'+S("btn.closePanelTitle")+'">\u2715</button>',ls=Ve.querySelector(".tt_dockCount"),Dr=Ve.querySelector(".tt_dockStatus"),ar=Ve.querySelector(".tt_dockDot");let e=[...ue.values()].filter(t=>!t.exited).length;ls.textContent=ue.size>0?"\xB7 "+e+"/"+ue.size:"",rr!==null&&(Dr.textContent=rr.textContent),or!==null&&(ar.dataset.state=or.dataset.state??""),Ve.addEventListener("click",t=>{if(t.target.closest(".tt_dockClose")!==null){t.stopPropagation(),_i();return}qc()}),document.body.appendChild(Ve)}function vs(){ce===null||qe||(Et(),Gt(),qe=!0,Ft!==null&&(Ft.style.display="none"),Je!==null&&(Je.style.display="none"),ce.dataset.minimized="",_c(),wi(),lr(),document.querySelector("[data-dsh-tty-entry]")!==null?pi():(a_(),Ve.classList.add("tt_dockCompact")))}function pi(){let e=document.querySelector("[data-dsh-tty-entry]");if(e===null)return;let t=e.querySelector(".tt_sidebarEntryBadge");if(!qe){t!==null&&t.remove(),delete e.dataset.minimized,e.removeAttribute("title");return}t===null&&(t=document.createElement("span"),t.className="tt_sidebarEntryBadge",t.innerHTML='<span class="tt_sidebarBadgeDot"></span><span class="tt_sidebarBadgeCount"></span>',e.appendChild(t)),e.dataset.minimized="",e.title=S("status.minimized");let r=[...ue.values()].filter(a=>!a.exited).length;t.querySelector(".tt_sidebarBadgeCount").textContent=r+"/"+ue.size;let s=t.querySelector(".tt_sidebarBadgeDot");s!==null&&or!==null&&(s.dataset.state=or.dataset.state??"")}function l_(){if(!qe)return;let e=document.querySelector("[data-dsh-tty-entry] .tt_sidebarBadgeDot")??ar;e!==null&&(e.dataset.active="",clearTimeout(cs),cs=setTimeout(()=>{delete e.dataset.active},900))}function qc(){if(ce===null||!qe)return;qe=!1,delete ce.dataset.minimized,Ft!==null&&(Ft.style.display=""),clearTimeout(cs),Ve!==null&&(Ve.remove(),Ve=null),ls=null,Dr=null,ar=null,pi(),pc(),wi(),lr();let e=dt();if(e!==void 0&&e.fit!==void 0){try{e.fit.fit()}catch{}e.spawned&&!e.exited&&Or(e)}e!==void 0&&e.term!==null&&e.term.focus()}function _i(){if(ce===null)return;ai(!0);let e=to();if(di=!e,qe=!1,Et(),is(),ps(),Gt(),Br(),clearTimeout(cs),clearTimeout(ir),ir=null,si=1e3,Ve!==null&&(Ve.remove(),Ve=null),ls=null,Dr=null,ar=null,pi(),Ee!==null){for(let t of ue.values())!t.exited&&t.embedded!==!0&&Me({t:"kill",sid:t.sid});if(!e){try{Ee.close()}catch{}Ee=null}}ii!==null&&(ii.disconnect(),ii=null);for(let[t,r]of[...ue])if(r.embedded!==!0){if(r.term!==null)try{r.term.dispose()}catch{}ue.delete(t)}Re=null,hi=null,document.removeEventListener("keydown",Kc),ce.remove(),ce=null,ct=null,os=null,rr=null,or=null,kt=null,ei=null,ti=null,as=null,lt=null,ri=null,ps(),_c(),_t=null,Cs(),mt=null,rt=null,Lr=null,Je=null,vi=0;try{sessionStorage.removeItem(hs)}catch{}}function Kc(e){if(e.key==="Escape"&&ce!==null){if(e.preventDefault(),Ft!==null){Br();return}if(Tr!==null){Gt();return}if(ht!==null){Et();return}vs()}}function c_(){let e=document.querySelector('[data-pane="sidebar"], [class*="sidebarCol"]');if(e!==null)return e.querySelector('[class*="logoRow"]')?.parentElement??e.firstElementChild}function h_(e){let t=e.querySelector('button[class*="newSession"]');if(t!==null)return t;for(let r of e.children)if(r.tagName==="BUTTON")return r}function d_(){let e=document.createElement("div");return e.dataset.dshTtyEntry="",e.className="tt_sidebarEntry",e.setAttribute("role","button"),e.setAttribute("aria-label",S("panel.title")),e.tabIndex=0,e.innerHTML='<span class="tt_sidebarEntryIcon">'+ws+'</span><span class="tt_sidebarEntryLabel">'+S("panel.title")+"</span>",e.addEventListener("click",t=>{t.preventDefault(),Xn()}),e.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" "||t.key==="Spacebar")&&(t.preventDefault(),Xn())}),e}function Jl(e,t){let r=h_(e);if(r===void 0)return!1;if(t.parentElement!==e){let s=r.closest('[class*="logoRow"]'),a=s!==null&&s.parentElement===e?s:r,i=Array.from(e.children).filter(n=>n instanceof HTMLElement&&n.matches("[data-dsh-global-search-entry], [data-dsh-rss-entry], [data-dsh-taskboard-entry], [data-dsh-ssh-entry], [data-dsh-tty-entry]"));if(i.length>0){let n=i[i.length-1];e.insertBefore(t,n.nextSibling)}else e.insertBefore(t,a.nextElementSibling)}return!0}function u_(){if(mi(),typeof document<"u"&&document.querySelector("[data-dsh-tty-entry]")!==null)return()=>{};let e=d_(),t,r=!1,s=()=>{if(t!==void 0&&!t.isConnected&&(i.disconnect(),t=void 0,r=!1),r){if(document.body.contains(e))return;i.disconnect(),t=void 0,r=!1}t??(t=c_()),t!==void 0&&(r=Jl(t,e),r&&i.observe(t,{childList:!0,subtree:!0}))},a=new MutationObserver(()=>{s()});a.observe(document.body,{childList:!0,subtree:!0});let i=new MutationObserver(()=>{if(t===void 0||!t.isConnected){r=!1,s();return}t.contains(e)||(r=Jl(t,e))});return s(),()=>{a.disconnect(),i.disconnect(),e.remove()}}window.__ModuleLoader__.load({id:"@hyzyn/dsh-tty",factory:e=>{let t={},r=e("react"),{jsx:s,jsxs:a}=e("react/jsx-runtime"),i="M11.8486 5.5L11.4238 5.92383L8.69727 8.65137C8.44157 8.90706 8.21562 9.13382 8.01172 9.29785C7.79912 9.46883 7.55595 9.61756 7.25 9.66602C7.08435 9.69222 6.91565 9.69222 6.75 9.66602C6.44405 9.61756 6.20088 9.46883 5.98828 9.29785C5.78438 9.13382 5.55843 9.13382 5.30273 8.65137L2.57617 5.92383L2.15137 5.5L3 4.65137L3.42383 5.07617L6.15137 7.80273C6.42595 8.07732 6.59876 8.24849 6.74023 8.3623C6.87291 8.46904 6.92272 8.47813 6.9375 8.48047C6.97895 8.48703 7.02105 8.48703 7.0625 8.48047C7.07728 8.47813 7.12709 8.46904 7.25977 8.3623C7.40124 8.24849 7.57405 8.07732 7.84863 7.80273L10.5762 5.07617L11 4.65137L11.8486 5.5Z";function n(u){let l=u&&u.view,_=l==="page",[m,w]=r.useState(_),[p,c]=r.useState(null),[d,h]=r.useState(!1),[f,g]=r.useState(!1),[C,v]=r.useState({kind:"",text:""}),[x,b]=r.useState(null),[E,O]=r.useState(""),[B,H]=r.useState(!1),[M,K]=r.useState(Date.now()),P=r.useRef(null),D=r.useRef(null),[F,N]=r.useState([]),[y,T]=r.useState(!1),k=A=>s("div",{className:"tt_cardSection",children:A}),R=async()=>{try{let j=await(await fetch("/api/dsh-tty/config",{cache:"no-store"})).json();j.ok&&typeof j.config=="object"&&j.config!==null?(P.current=j.config,D.current=JSON.stringify(J(j.config)),c(j.config),fi(j.config)):v({kind:"error",text:String(j.error||S("error.configLoadFailed"))})}catch(A){v({kind:"error",text:String(A&&A.message?A.message:A)})}},U=async()=>{try{let j=await(await fetch("/api/dsh-tty/shells",{cache:"no-store"})).json();j.ok&&Array.isArray(j.shells)&&N(j.shells)}catch{}};r.useEffect(()=>{m&&!d&&(h(!0),R(),U())},[m]);let G=(A,j)=>c(V=>{let Q={...V||{},[A]:j};return P.current=Q,Q}),J=A=>{let j={};for(let V of["enabled","announceToAgent","maxSessions","shell","term","colorTerm","cwd","reconnectGraceSec","shellIntegration","sftpStyle","persistence","endOnPageClose","statsEnabled","allowProxyCommand"]){let Q=(A||{})[V];Q!==void 0&&Q!==""&&(j[V]=Q)}return j.sshHosts=Array.isArray(A?.sshHosts)?A.sshHosts:[],j.tunnels=Array.isArray(A?.tunnels)?A.tunnels:[],A?.sftpLimits&&typeof A.sftpLimits=="object"&&(j.sftpLimits={maxDownloadMb:Number(A.sftpLimits.maxDownloadMb)||0,maxUploadMb:Number(A.sftpLimits.maxUploadMb)||0,maxUploadFiles:Number(A.sftpLimits.maxUploadFiles)||0}),j};P.current=p;let X=(A,j)=>c(V=>({...V||{},sftpLimits:{...V?.sftpLimits??{},[A]:j}})),[W,L]=r.useState(null),[I,z]=r.useState(null),[$,q]=r.useState(""),[ee,he]=r.useState(null),[de,re]=r.useState(""),[Y,se]=r.useState(""),[be,fe]=r.useState(""),ge=r.useRef(null),[Le,Ce]=r.useState(!1),[Z,te]=r.useState({text:"",kind:""}),[le,ie]=r.useState(!1),[ne,oe]=r.useState({running:!1,ok:!1,text:""}),[pe,we]=r.useState({}),[_e,Ie]=r.useState([]),[ye,ve]=r.useState({direction:"local",localPort:"",remoteHost:"",remotePort:"",localTargetPort:"",bookName:""}),[xe,Ne]=r.useState(null);r.useEffect(()=>{if(!m)return;let A=!0,j=async()=>{try{let ae=await(await fetch("/api/dsh-tty/tunnels",{cache:"no-store"})).json();A&&ae.ok&&Array.isArray(ae.tunnels)&&Ie(ae.tunnels)}catch{}};j();let V=setInterval(j,2e3);return()=>{A=!1,clearInterval(V)}},[m]);let je=A=>j=>ve(V=>({...V||{},[A]:j.target.value})),Qt=(A,j)=>ve(V=>({...V||{},[A]:j})),Gc=A=>A?.direction==="remote"?S("meta.tunnelRemote",{host:A.remoteHost||"127.0.0.1",port:String(A.remotePort??0),local:String(A.localTargetPort??0)}):S("meta.tunnelLocal",{local:String(A?.localPort??0),host:A?.remoteHost??"?",port:String(A?.remotePort??0)}),co=(p?.sshHosts??[]).find(A=>A?.name===ye?.bookName),Es=async A=>{try{let j=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({tunnels:A})}),V=await j.json().catch(()=>({}));return!j.ok||!V.ok?(v({kind:"error",text:String(V.error||S("error.saveTunnelFailed"))}),!1):!0}catch(j){return v({kind:"error",text:String(j&&j.message?j.message:j)}),!1}},ho=()=>Tl(ye,(Array.isArray(p?.sshHosts)?p.sshHosts:[]).map(A=>A?.name),S),Vc=A=>{v({kind:"",text:""}),Ne(String(A?.name??"")),ve({direction:A?.direction==="remote"?"remote":"local",bookName:String(A?.bookName??""),localPort:A?.localPort?String(A.localPort):"",remoteHost:String(A?.remoteHost??""),remotePort:A?.remotePort?String(A.remotePort):"",localTargetPort:A?.localTargetPort?String(A.localTargetPort):""})},Yc=()=>{Ne(null),v({kind:"",text:""}),ve(A=>({...A||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""}))},Jc=()=>{v({kind:"",text:""});let A=ho();if(!A.ok){v({kind:"error",text:A.error});return}let j=A.tunnel,V=Array.isArray(p?.tunnels)?p.tunnels:[];if(Rl(V,j.name)!==void 0){v({kind:"error",text:S("error.tunnelNameTaken",{name:j.name})});return}let Q=[...V,j];c(ae=>({...ae||{},tunnels:Q})),ve(ae=>({...ae||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""})),Es(Q).then(ae=>{ae&&v({kind:"ok",text:S("msg.tunnelApplied",{name:j.name})})})},Xc=()=>{if(xe===null)return;v({kind:"",text:""});let A=ho();if(!A.ok){v({kind:"error",text:A.error});return}let j=Array.isArray(p?.tunnels)?p.tunnels:[],V=Ml(j,xe,A.tunnel,S);if(!V.ok){V.reason==="missing"&&Ne(null),v({kind:"error",text:V.error});return}let Q=V.tunnels;c(ae=>({...ae||{},tunnels:Q})),Es(Q).then(ae=>{if(ae!==!0){c(me=>({...me||{},tunnels:j}));return}Ne(null),ve(me=>({...me||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""})),v({kind:"ok",text:S("msg.tunnelUpdated",{name:A.tunnel.name})})})},uo=(A,j)=>{c(V=>({...V||{},tunnels:A})),Es(A).then(V=>{V!==!0&&c(Q=>({...Q||{},tunnels:j}))})},Zc=A=>{let j=Array.isArray(p?.tunnels)?p.tunnels:[];xe!==null&&String(A??"")===xe&&(Ne(null),ve(V=>({...V||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""}))),uo(j.filter(V=>V?.name!==A),j)},Qc=(A,j)=>{let V=Array.isArray(p?.tunnels)?p.tunnels:[];uo(V.map(Q=>Q?.name===A?{...Q,enabled:j}:Q),V)},eh=A=>{L(A?.name??null),q(""),oe({running:!1,ok:!1,text:""}),re(""),se(""),Ts(),Ce(Lt!==null),z({name:A?.name??"",host:A?.host??"",port:String(A?.port??22),username:A?.username??"",auth:A?.auth==="key"||A?.auth==="password"?A.auth:"agent",keyPath:A?.keyPath??"",passphrase:A?.passphrase??"",password:A?.password??"",agentForward:A?.agentForward===!0,persist:A?.persist!==!1}),ec().then(j=>he(j)),Rs(A?.password??"")},fo=()=>{L(null),z(null),q(""),oe({running:!1,ok:!1,text:""}),re(""),se(""),Ts()},th=async()=>{if(I===null)return;let A=I.name.trim(),j=I.host.trim(),V=I.username.trim();if(A===""||j===""||V===""){q(S("error.nameHostUserRequired"));return}let Q=Number(I.port);if((!Number.isInteger(Q)||Q<1||Q>65535)&&(Q=22),(p?.sshHosts??[]).some(me=>me?.name===A&&A!==W)){q(S("error.bookNameTaken",{name:A}));return}if(I.auth==="key"&&I.keyPath.trim()===""){q(S("error.keyPathRequired"));return}q("");let ae=I.password;if(I.auth==="password"){let me=await ic(Le,I.password,j,Q,V,"PASSWORD");if(me.error!==void 0){q(me.error);return}me.value!==void 0&&(ae=me.value)}c(me=>({...me||{},sshHosts:(Array.isArray(me?.sshHosts)?me.sshHosts:[]).map(Ae=>Ae?.name===W?{name:A,host:j,port:Q,username:V,auth:I.auth,keyPath:I.keyPath.trim(),passphrase:I.passphrase,password:ae,agentForward:I.agentForward,persist:I.persist===!0}:Ae)})),we(me=>{let Ae={...me};return delete Ae[A],W!==A&&delete Ae[W],Ae}),L(null),z(null),oe({running:!1,ok:!1,text:""}),v({kind:"ok",text:S("msg.hostEdited",{name:A})})},rh=A=>{W===A&&fo(),we(j=>{let V={...j};return delete V[A],V}),c(j=>({...j||{},sshHosts:(Array.isArray(j?.sshHosts)?j.sshHosts:[]).filter(V=>V?.name!==A)}))},ih=async A=>{let j=A?.name??"";if(j==="")return;let V={host:A?.host??"",port:Number(A?.port)||22,username:A?.username??"",auth:A?.auth==="key"||A?.auth==="password"?A.auth:"agent",keyPath:A?.keyPath??"",passphrase:A?.passphrase??"",password:A?.password??"",agentForward:A?.agentForward===!0};we(ae=>({...ae,[j]:{running:!0,text:S("msg.probing")}}));let Q=await $n(V,!0);we(ae=>{let me=ae[j]||{};if(Q.result){let Ae=Q.result.auth?.ok===!0;return{...ae,[j]:{running:!1,ok:Ae,text:qn(Q.result)}}}return{...ae,[j]:{running:!1,ok:!1,text:S("error.probeFailed",{detail:String(Q.error||S("error.unknown"))})}}})},sh=async A=>{let j=(Array.isArray(p?.hostKeys)?p.hostKeys:[]).filter(V=>!(V?.host===A?.host&&Number(V?.port)===Number(A?.port)));c(V=>({...V||{},hostKeys:j}));try{let V=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({hostKeys:j})}),Q=await V.json().catch(()=>({}));!V.ok||!Q.ok?v({kind:"error",text:String(Q.error||S("error.hostKeyDeleteFailed"))}):v({kind:"ok",text:S("msg.hostKeyDeleted")})}catch(V){v({kind:"error",text:String(V&&V.message?V.message:V)})}},nh=async()=>{v({kind:"",text:""});try{let j=await(await fetch("/api/dsh-tty/ssh-config",{cache:"no-store"})).json();if(!j.ok){v({kind:"error",text:String(j.error||S("error.sshConfigReadFailed"))});return}let V=Array.isArray(j.entries)?j.entries:[],Q=[...Array.isArray(p?.sshHosts)?p.sshHosts:[]],ae=new Set(Q.map(De=>De?.name)),me=0,Ae=0;for(let De of V)if(!(De===null||typeof De!="object"||typeof De.name!="string")){if(ae.has(De.name)){Ae+=1;continue}ae.add(De.name),Q.push({name:De.name,host:String(De.host??De.name),port:Number(De.port)||22,username:String(De.username??""),auth:De.auth==="key"?"key":"agent",keyPath:String(De.keyPath??""),passphrase:"",password:"",agentForward:!1}),me+=1}c(De=>({...De||{},sshHosts:Q}));let Se=Array.isArray(j.proxy)?j.proxy.filter(De=>typeof De=="string"):[],Xe=Number.isInteger(j.proxyCount)?j.proxyCount:Se.length,Wr=Array.isArray(j.proxyCommand)?j.proxyCommand.filter(De=>typeof De=="string"):[],ut=Number.isInteger(j.proxyCommandCount)?j.proxyCommandCount:Wr.length,cr=Number.isInteger(j.skippedOther)?j.skippedOther:0,Wt=Number.isInteger(j.droppedOverflow)?j.droppedOverflow:0,ft=[];Xe>0&&ft.push(S("msg.proxySkipped",{count:Xe,names:Se.slice(0,5).join(S("list.separator"))+(Xe>5?S("meta.etc"):"")})),ut>0&&ft.push(S("msg.proxyCommandSkipped",{count:ut,names:Wr.slice(0,5).join(S("list.separator"))+(ut>5?S("meta.etc"):"")})),cr>0&&ft.push(S("msg.skippedNotConcrete",{count:cr})),Wt>0&&ft.push(S("msg.importOverflow",{count:Wt}));let yo=ft.length>0?S("list.separatorFull")+ft.join(S("list.separatorFull")):"";if(me===0){let De=Ae>0?S("msg.noNewEntries",{count:Ae}):S("msg.noImportableHosts");v({kind:ft.length>0?"error":"ok",text:De+yo})}else v({kind:ft.length>0?"error":"ok",text:S("msg.importedHosts",{added:me,skipped:Ae})+yo})}catch(A){v({kind:"error",text:String(A&&A.message?A.message:A)})}},po=A=>A===null||typeof A!="object"?[]:Array.isArray(A.fingerprints)?A.fingerprints.filter(j=>typeof j=="string"&&j!==""):typeof A.fingerprint=="string"&&A.fingerprint!==""?[A.fingerprint]:[],oh=async()=>{v({kind:"",text:""});try{let j=await(await fetch("/api/dsh-tty/known-hosts",{cache:"no-store"})).json();if(!j.ok){v({kind:"error",text:String(j.error||S("error.knownHostsReadFailed"))});return}let V=Array.isArray(j.entries)?j.entries:[],Q=[...Array.isArray(p?.hostKeys)?p.hostKeys:[]],ae=new Map;for(let Se of Q)Se===null||typeof Se!="object"||ae.set(String(Se.host??"")+":"+String(Se.port??22),{record:Se,fps:new Set(po(Se))});let me=0,Ae=0;for(let Se of V){if(Se===null||typeof Se!="object"||typeof Se.host!="string")continue;let Xe=Array.isArray(Se.fingerprints)?Se.fingerprints.filter(Wt=>typeof Wt=="string"&&Wt!==""):[];if(typeof Se.fingerprint=="string"&&Se.fingerprint!==""&&Xe.push(Se.fingerprint),Xe.length===0)continue;let Wr=Se.host+":"+String(Se.port??22),ut=ae.get(Wr);if(ut!==void 0){let Wt=!1;for(let ft of Xe)ut.fps.has(ft)||ut.fps.size>=8||(ut.fps.add(ft),Wt=!0);if(!Wt){Ae+=1;continue}delete ut.record.fingerprint,ut.record.fingerprints=[...ut.fps],me+=1;continue}let cr={host:Se.host,port:Number(Se.port)||22,fingerprints:[...new Set(Xe)].slice(0,8)};ae.set(Wr,{record:cr,fps:new Set(cr.fingerprints)}),Q.push(cr),me+=1}if(me===0){v({kind:"ok",text:Ae>0?S("msg.noNewFingerprints",{count:Ae}):S("msg.noImportableKnownHosts")});return}c(Se=>({...Se||{},hostKeys:Q}));try{let Se=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({hostKeys:Q})}),Xe=await Se.json().catch(()=>({}));if(!Se.ok||!Xe.ok){v({kind:"error",text:String(Xe.error||S("error.saveHostKeysFailed"))});return}v({kind:"ok",text:S("msg.importedFingerprints",{added:me,skipped:Ae})+(j.truncated===!0?S("hint.knownHostsTruncated"):"")})}catch(Se){v({kind:"error",text:String(Se&&Se.message?Se.message:Se)})}}catch(A){v({kind:"error",text:String(A&&A.message?A.message:A)})}},_o=async A=>{let j=A??P.current??p;g(!0),v({kind:"",text:""});let V=J(j);try{let Q=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(V)}),ae=await Q.json();!Q.ok||!ae.ok?v({kind:"error",text:String(ae.error||S("error.saveFailed"))}):(v({kind:"ok",text:S("msg.saved")}),D.current=JSON.stringify(V),ae.config&&(P.current=ae.config,c(ae.config),fi(ae.config)))}catch(Q){v({kind:"error",text:String(Q&&Q.message?Q.message:Q)})}g(!1)},Ls=A=>"/api/dsh-tty/elevate"+A,mo=async()=>{try{let j=await(await fetch("/api/dsh-tty/config",{cache:"no-store"})).json(),V=j&&typeof j.config=="object"&&j.config!==null?j.config:null;if(V===null)return;c(Q=>{if(Q===null)return Q;let ae={...Q,allowProxyCommandGranted:V.allowProxyCommandGranted===!0,allowProxyCommandGrantSource:V.allowProxyCommandGrantSource??null,allowProxyCommandGrantedAt:Number.isFinite(V.allowProxyCommandGrantedAt)?V.allowProxyCommandGrantedAt:null};return P.current=ae,ae})}catch{}},go=async()=>{b(null),H(!1);let A=P.current||{},j=D.current!==null&&JSON.stringify(J(A))===D.current,V={...A,allowProxyCommand:!0};P.current=V,c(V),await mo(),j?(await _o(V),O(S("elev.granted"))):O(S("elev.grantedNeedSave"))},vo=async()=>{H(!1),O(""),b({phase:"loading"});try{let A=await fetch(Ls(""),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({capability:ts})}),j=await A.json().catch(()=>({}));if(!A.ok){b({phase:"error",error:String(j.error||A.status)});return}if(j.status==="granted"){await go();return}b({phase:"pending",command:String(j.command??""),expiresAt:Number(j.expiresAt)||0})}catch(A){b({phase:"error",error:String(A&&A.message?A.message:A)})}},ah=async()=>{O("");try{let A=await fetch(Ls("/revoke"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({capability:ts})}),j=await A.json().catch(()=>({}));if(!A.ok){O(S("elev.error")+String(j.error||A.status));return}await mo(),O(S("elev.revoked"))}catch(A){O(S("elev.error")+String(A&&A.message?A.message:A))}},lh=async()=>{let A=x===null?"":String(x.command??"");if(A!==""){if(lo())try{await navigator.clipboard.writeText(A),H(!0);return}catch{}H(!1),O(S("elev.copyManual"))}};r.useEffect(()=>{if(x===null||x.phase!=="pending")return;let A=setInterval(()=>K(Date.now()),1e3),j=setInterval(()=>{fetch(Ls("/status"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({capability:ts})}).then(V=>V.json()).then(V=>{V.status==="granted"&&go()}).catch(()=>{})},1500);return()=>{clearInterval(A),clearInterval(j)}},[x]);let ch=()=>{if(p.allowProxyCommandGrantSource==="env")return s("span",{className:"tt_cardHint",children:S("elev.viaEnv")});let A=p.allowProxyCommandGrantedAt;return a("span",{className:"tt_capState",children:[Number.isFinite(A)?s("span",{children:S("elev.grantedAt",{time:s_(A)})}):null,s("button",{type:"button",className:"tt_toolBtn tt_capRevoke",onClick:()=>{ah()},children:S("elev.revoke")})]})},hh=()=>{let A=String(x.command??""),j=x.expiresAt>0?Math.max(0,Math.ceil((x.expiresAt-M)/1e3)):0,V=x.phase==="pending"&&x.expiresAt>0&&j===0,Q=()=>{b(null),H(!1)};return a("div",{className:"tt_elevPanel",children:[a("div",{className:"tt_elevHead",children:[s("span",{className:"tt_cardLabel",children:S("elev.title")}),s("button",{type:"button",className:"tt_toolBtn",onClick:Q,children:S("elev.close")})]}),s("span",{className:"tt_cardHint",children:S("elev.lockedWhy")}),x.phase==="error"?s("span",{className:"tt_cardHint tt_sshProbeWarn",children:S("elev.error")+String(x.error??"")}):null,x.phase==="loading"?s("span",{className:"tt_cardHint",children:S("elev.loading")}):null,A===""?null:a("div",{className:"tt_elevSteps",children:[s("span",{className:"tt_cardHint",children:S("elev.step")}),s("div",{className:"tt_elevCommand",children:s("code",{children:A})}),a("div",{className:"tt_elevActions",children:[s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{lh()},children:S(B?"elev.copied":"elev.copy")}),V?s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{vo()},children:S("elev.regenerate")}):s("span",{className:"tt_cardHint",children:S("elev.expiresIn",{sec:j})})]}),s("span",{className:"tt_cardHint",children:S(V?"elev.expired":"elev.waiting")})]}),p.allowProxyCommand===!0&&p.allowProxyCommandGranted!==!0?s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{G("allowProxyCommand",!1),Q()},children:S("elev.disableFirst")}):null,s("span",{className:"tt_cardHint",children:S("elev.otherWay")}),s("span",{className:"tt_cardHint",children:S("elev.envHow",{env:ts})})]})},dh=()=>{let A=p.allowProxyCommandGranted===!0,j=p.allowProxyCommand===!0;return a("div",{className:"tt_capBlock",children:[a("label",{className:"tt_cardField tt_cardRow tt_cardToggle tt_cardDanger",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:j,onChange:V=>{if(!A){vo();return}G("allowProxyCommand",V.target.checked)}}),s("span",{className:"tt_cardLabel",children:S("check.allowProxyCommand")}),j&&!A?s("span",{className:"tt_badgeWarn",children:S("badge.notEffective")}):null]}),s("span",{className:"tt_cardHint",children:S("hint.allowProxyCommand")}),A?ch():s("span",{className:"tt_cardHint tt_sshProbeWarn",children:S("hint.proxyCommandNotGranted")}),E===""?null:s("span",{className:"tt_cardHint",children:E}),x===null?null:hh()]})},Ts=()=>{ge.current!==null&&(clearTimeout(ge.current),ge.current=null),fe("")},Rs=async A=>{let j=kr(A);if(Ar()===null){Ce(!1),ie(!1),te({text:S(Lt===null?"error.credPlainUnavailable":"error.credPlainIncomplete"),kind:"muted"});return}if(j===""){ie(!1),te({text:"",kind:""});return}let V=await tc(j);if(V.unreported===!0){ie(!1),te({text:S("status.credUnreported",{ref:j}),kind:"plain"});return}if(V.error!==void 0){ie(!1),te({text:S("error.credStatusFailed",{error:V.error}),kind:"error"});return}let Q=V.view;te({text:Q.configured?S("status.credStored",{ref:j,source:Q.source!==""?S("meta.credSource",{source:Q.source}):""}):S("status.credUnknown",{ref:j}),kind:Q.configured?"ok":"plain"}),ie(Q.configured===!0&&Q.writable===!0)},uh=async()=>{let A=kr(I?.password??"");if(A==="")return;let j=await rc(A);if(j.error!==void 0){te({text:j.error,kind:"error"});return}z(V=>({...V||{},password:""})),te({text:"",kind:""}),ie(!1)},fh=(A,j)=>{let V=String(I?.[A]??"");if(V===""||V.startsWith("env:")||be===j){Ts(),z(Q=>({...Q||{},[A]:"env:"+j})),re(""),A==="password"&&Rs("env:"+j);return}fe(j),ge.current!==null&&clearTimeout(ge.current),ge.current=setTimeout(()=>{ge.current=null,fe("")},4e3)},bo=(A,j)=>{if(ee===null)return null;if(ee.length===0)return s("span",{className:"tt_cardHint",children:j});let V=de===A,Q=Y.trim().toUpperCase(),ae=Q===""?ee:ee.filter(me=>me.toUpperCase().includes(Q));return a("div",{className:"tt_credPicker",children:[s("input",{className:"tt_cardInput",value:V?Y:"",placeholder:S("placeholder.credRef"),title:S("hint.credRefCandidates"),autoComplete:"off",spellCheck:!1,onFocus:()=>{re(A),se("")},onBlur:me=>{me.currentTarget.parentElement.contains(me.relatedTarget)||re("")},onChange:me=>{se(me.target.value),re(A)}}),...V?[s("div",{className:"tt_envList",children:[...ae.length===0?[s("span",{className:"tt_envMore",children:S("list.noCredRef")})]:ae.slice(0,30).map(me=>s("button",{type:"button",className:"tt_envItem","data-danger":be===me?"":void 0,onMouseDown:Ae=>Ae.preventDefault(),onClick:()=>fh(A,me),children:be===me?S("list.credOverwrite",{name:me}):me},me)),...ae.length>30?[s("span",{className:"tt_envMore",children:S("list.moreMatches",{count:ae.length-30})})]:[]]},"cred-list-"+A)]:[]]})},ph=()=>{let j=kr(I?.password??"")!=="",V=Ar()===null;return a("div",{className:"tt_sshRow tt_credRow",children:[j?s("button",{type:"button",className:"tt_toolBtn tt_credClear",disabled:le!==!0,onClick:()=>{uh()},children:S("btn.clearCredential")}):s("label",{className:"tt_credToggle",title:S("hint.rememberCredentialApply"),children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:Le,disabled:V,onChange:Q=>Ce(Q.target.checked)}),s("span",{children:S("check.rememberCredentialApply")})]}),Z.text===""?null:s("span",{className:"tt_credStatus","data-kind":Z.kind,children:Z.text}),V&&Z.text===""?s("span",{className:"tt_credStatus","data-kind":"muted",children:S("error.credPlainUnavailable")}):null]})},wo=()=>{let A=String(I?.host??"").trim(),j=String(I?.username??"").trim(),V=Number(I?.port);if((!Number.isInteger(V)||V<1||V>65535)&&(V=22),A===""||j==="")return q(S("error.hostUserRequired")),null;let Q=I?.auth,ae={host:A,port:V,username:j,auth:Q};if(Q==="key"){let me=String(I?.keyPath??"").trim();if(me==="")return q(S("error.keyPathRequired")),null;ae.keyPath=me,I?.passphrase!==""&&(ae.passphrase=I.passphrase)}if(Q==="password"){let me=String(I?.password??"");if(me==="")return q(S("error.passwordRequired")),null;ae.password=me}return I?.agentForward===!0&&(ae.agentForward=!0),ae},_h=()=>{q("");let A=wo();A!==null&&(oe({running:!0,ok:!1,text:S("msg.probing")}),$n(A,!1).then(j=>{if(j.result){let V=j.result.auth?.ok===!0;oe({running:!1,ok:V,text:qn(j.result)});return}oe({running:!1,ok:!1,text:S("error.probeFailed",{detail:String(j.error||S("error.unknown"))})})}))},mh=()=>{q("");let A=wo();A!==null&&ks(A)},gh=()=>{if(I===null)return null;let A=(j,V,Q,ae,me)=>a("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:j}),s("input",{className:"tt_cardInput",type:ae??"text",value:I[V]??"",placeholder:Q??"",autoComplete:"off",spellCheck:!1,onChange:Ae=>{let Se=Ae.target.value;z(Xe=>({...Xe||{},[V]:Se}))},...me??{}})]});return a("div",{className:"tt_sshEdit",children:[s("div",{className:"tt_sshSection",children:S("section.connection")}),a("div",{className:"tt_sshGrid",children:[A(S("field.bookName"),"name",S("hint.bookNameConflict")),A(S("field.port"),"port","22")]}),A(S("field.host"),"host",S("placeholder.host")),A(S("field.username"),"username","root"),s("div",{className:"tt_sshSection",children:S("section.auth")}),a("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:S("field.authMethod")}),a("select",{className:"tt_cardInput",value:I.auth,onChange:j=>z(V=>({...V||{},auth:j.target.value})),children:[s("option",{value:"agent",children:S("option.authAgent")}),s("option",{value:"key",children:S("option.authKey")}),s("option",{value:"password",children:S("option.authPassword")})]})]}),...I.auth==="key"?[A(S("field.keyPath"),"keyPath","~/.ssh/id_ed25519"),A(S("field.passphrase"),"passphrase","","password"),bo("passphrase",S("hint.noCredRefPassphrase"))]:[],...I.auth==="password"?[A(S("field.password"),"password","","password",{onBlur:()=>{Rs(I.password)}}),ph(),bo("password",S("hint.noCredRefPasswordApply"))]:[],s("div",{className:"tt_sshSection",children:S("section.options")}),a("label",{className:"tt_cardRow",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:I.agentForward===!0,onChange:j=>z(V=>({...V||{},agentForward:j.target.checked}))}),s("span",{className:"tt_cardLabel",children:S("check.agentForward")})]}),Yt==="tmux"?a("label",{className:"tt_cardRow",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:I.persist===!0,onChange:j=>z(V=>({...V||{},persist:j.target.checked}))}),s("span",{className:"tt_cardLabel",children:S("check.persist")})]}):null,ne.text!==""?s("div",{className:"tt_sshProbeResult"+(!ne.running&&ne.ok?" tt_sshProbeOk":"")+(!ne.running&&!ne.ok?" tt_sshProbeBad":""),children:ne.text}):null,$!==""?s("span",{className:"tt_cardMessage tt_cardMessageError",children:$}):null,a("div",{className:"tt_sshActions",children:[a("div",{className:"tt_sshActionsGroup",children:[s("button",{type:"button",className:"tt_toolBtn",onClick:fo,children:S("btn.cancel")}),s("button",{type:"button",className:"tt_toolBtn",title:S("btn.browseTitle"),onClick:mh,children:S("btn.fileBrowse")}),s("button",{type:"button",className:"tt_toolBtn",disabled:ne.running,title:S("btn.probeTitle"),onClick:_h,children:ne.running?S("msg.probing"):S("btn.probe")})]}),a("div",{className:"tt_sshActionsGroup",children:[s("button",{type:"button",className:"tt_cardSave",onClick:()=>{th()},children:S("btn.apply")}),s("span",{className:"tt_cardHint",children:S("hint.appliedOnSave")})]})]})]})},Nr=(A,j,V,Q)=>a("label",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:A}),s("input",{className:"tt_cardInput",value:p[j]??"",placeholder:V??"",onChange:ae=>G(j,ae.target.value)}),Q?s("span",{className:"tt_cardHint",children:Q}):null]}),Hr=(A,j,V,Q)=>a("label",{className:"tt_cardField tt_cardRow tt_cardToggle"+(typeof V=="string"&&V!==""?" "+V:""),children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:p[j]===!0,disabled:Q===!0&&p[j]!==!0,onChange:ae=>G(j,ae.target.checked)}),s("span",{className:"tt_cardLabel",children:A})]}),Fr=p?.platform==="win32";return l==="summary"?S("card.desc"):a(_?"div":"li",{className:_?"tt_pageHost":m?"tt_card tt_cardOpen":"tt_card",children:[_?null:a("button",{type:"button",className:"tt_cardHeader","aria-expanded":m,onClick:()=>w(A=>!A),children:[a("span",{className:"tt_cardHeadText",children:[s("span",{className:"tt_cardName",children:S("card.name")}),s("span",{className:"tt_cardDescription",children:S("card.descFull")})]}),s("span",{className:"dshkit_badge",children:"Kit"}),s("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:m?"tt_cardChevron tt_cardChevronOpen":"tt_cardChevron",children:s("path",{d:i,fill:"currentColor"})})]}),_||m?a("div",{className:"tt_cardBody",children:[p===null?s("div",{className:"tt_cardMessage",children:S("list.loadingConfig")}):a("div",{children:[k(S("section.basic")),Hr(S("check.enabled"),"enabled"),Hr(S("check.announce"),"announceToAgent"),Fr?a("div",{className:"tt_cardField",children:[a("label",{className:"tt_cardRow",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:!1,disabled:!0}),s("span",{className:"tt_cardLabel",children:S("check.shellIntegration")})]}),s("span",{className:"tt_cardHint",children:S("hint.shellIntegrationWindows")})]}):Hr(S("check.shellIntegrationWindows"),"shellIntegration"),k(S("section.sftp")),a("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:S("field.sftpStyle")}),a("select",{className:"tt_cardInput",value:p.sftpStyle==="dual"?"dual":"dialog",onChange:A=>G("sftpStyle",A.target.value),children:[s("option",{value:"dialog",children:S("option.sftpDialog")}),s("option",{value:"dual",children:S("option.sftpDual")})]}),s("span",{className:"tt_cardHint",children:S("hint.sftpDual")})]}),a("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:S("field.sftpLimits")}),a("div",{className:"tt_limitGrid",children:[a("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:S("field.downloadLimit")}),s("input",{className:"tt_cardInput",type:"number",min:0,value:String(Number.isFinite(Number(p?.sftpLimits?.maxDownloadMb))?Number(p.sftpLimits.maxDownloadMb):1024),onChange:A=>X("maxDownloadMb",Number(A.target.value)||0)})]}),a("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:S("field.uploadLimit")}),s("input",{className:"tt_cardInput",type:"number",min:0,value:String(Number.isFinite(Number(p?.sftpLimits?.maxUploadMb))?Number(p.sftpLimits.maxUploadMb):2048),onChange:A=>X("maxUploadMb",Number(A.target.value)||0)})]}),a("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:S("field.uploadCountLimit")}),s("input",{className:"tt_cardInput",type:"number",min:0,value:String(Number.isFinite(Number(p?.sftpLimits?.maxUploadFiles))?Number(p.sftpLimits.maxUploadFiles):1e3),onChange:A=>X("maxUploadFiles",Number(A.target.value)||0)})]})]}),s("span",{className:"tt_cardHint",children:S("hint.sftpLimits")})]}),k(S("section.session")),a("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:S("field.persistence")}),a("select",{className:"tt_cardInput",value:p.persistence==="tmux"?"tmux":"off",onChange:A=>G("persistence",A.target.value),children:[s("option",{value:"off",children:S("option.persistOff")}),s("option",{value:"tmux",children:S("option.persistTmux")})]}),s("span",{className:"tt_cardHint",children:S("hint.persistence")+(Fr?S("hint.persistenceWindows"):"")}),Hr(S("check.endOnPageClose"),"endOnPageClose"),Hr(S("check.statsEnabled"),"statsEnabled"),s("span",{className:"tt_cardHint",children:S("hint.statsEnabled")}),dh()]}),Nr(S("field.maxSessions"),"maxSessions","4",S("hint.maxSessions")),a("div",{className:"tt_cardField",onBlur:A=>{A.currentTarget.contains(A.relatedTarget)||T(!1)},children:[s("span",{className:"tt_cardLabel",children:S(Fr?"field.shellWindows":"field.shell")}),s("input",{className:"tt_cardInput",value:p.shell??"",placeholder:S(Fr?"placeholder.shellWindows":"placeholder.shell"),autoComplete:"off",spellCheck:!1,onFocus:()=>T(!0),onClick:()=>T(!0),onKeyDown:A=>{A.key==="Escape"&&T(!1)},onChange:A=>{G("shell",A.target.value),T(!0)}}),...y?[s("div",{className:"tt_envList tt_shellList",children:(()=>{let A=(p.shell??"").trim().toLowerCase(),j=A===""?F:F.filter(V=>V.toLowerCase().includes(A));return j.length===0?s("span",{className:"tt_envMore",children:S("list.noShellCandidate")}):j.map(V=>s("button",{type:"button",className:"tt_envItem",onMouseDown:Q=>Q.preventDefault(),onClick:()=>{G("shell",V),T(!1)},children:V},V))})()},"shell-list")]:[],s("span",{className:"tt_cardHint",children:S(Fr?"hint.shellCandidatesWindows":"hint.shellCandidates")})]},"shell-field"),Nr("TERM","term","xterm-256color",S("hint.term")),Nr("COLORTERM","colorTerm","truecolor",""),Nr(S("field.cwd"),"cwd","",S("placeholder.cwd")),Nr(S("field.grace"),"reconnectGraceSec","120",S("hint.grace")),k(S("section.ssh")),a("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:S("panel.sshBook")}),...Array.isArray(p.sshHosts)&&p.sshHosts.length>0?[s("div",{className:"tt_hostList","data-editing":W!==null?"":void 0,children:p.sshHosts.map(A=>a("div",{children:[a("div",{className:"tt_sshHostRow",children:[s("div",{className:"tt_sshHostMeta",children:[s("span",{className:"tt_sshHostName",children:A?.name??""}),s("span",{className:"tt_sshHostTarget",children:zn(A??{})})]}),s("button",{type:"button",className:"tt_toolBtn",disabled:pe[A?.name]?.running===!0,onClick:()=>{ih(A)},title:S("btn.probeRowTitle"),children:pe[A?.name]?.running===!0?S("msg.testing"):S("btn.test")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>eh(A),children:S("btn.edit")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>rh(A?.name),children:S("btn.delete")})]}),pe[A?.name]&&pe[A?.name].text?s("div",{className:"tt_sshProbeResult"+(pe[A?.name].ok?" tt_sshProbeOk":" tt_sshProbeBad"),children:pe[A?.name].text}):null,W===A?.name?gh():null]},String(A?.name??"")))})]:[s("span",{className:"tt_cardHint",children:S("list.emptySshHosts")})],a("div",{className:"tt_cardRow",children:[s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{nh()},children:S("btn.importSshConfig")}),s("span",{className:"tt_cardHint",children:S("hint.importSshConfig")})]}),s("span",{className:"tt_cardHint",children:S("hint.sshBook")})]}),a("div",{className:"tt_cardField",children:[a("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:S("panel.tunnels")}),...Array.isArray(p.tunnels)&&p.tunnels.length>0?[s("div",{children:p.tunnels.map(A=>{let j=_e.find(ae=>ae.name===A?.name),V=j?.state??"stopped",Q=xe!==null&&String(A?.name??"")===xe;return a("div",{className:"tt_sshHostRow","data-editing":Q?"":void 0,children:[s("span",{className:"tt_tunnelDot","data-state":V,title:V}),s("div",{className:"tt_sshHostMeta",children:[s("span",{className:"tt_sshHostName",children:(A?.name??"")+" \xB7 "+Gc(A??{})}),s("span",{className:"tt_sshHostTarget",children:(A?.bookName??"")+(j?.error?" \xB7 "+j.error:"")+(j?.lastForwardError?" \xB7 "+j.lastForwardError:"")})]}),s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:A?.enabled!==!1,title:S("check.tunnelEnabled"),onChange:ae=>Qc(A?.name,ae.target.checked)}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>Vc(A),children:S("btn.edit")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>Zc(A?.name),children:S("btn.delete")})]},String(A?.name??""))})})]:[s("span",{className:"tt_cardHint",children:S("list.emptyTunnels")})],a("div",{className:"tt_sshEdit",children:[a("div",{className:"tt_cardRow tt_tunnelHead",children:[a("div",{className:"tt_segmented",role:"group","aria-label":S("field.direction"),children:[s("button",{type:"button",className:"tt_segmentedBtn","data-active":ye.direction!=="remote"?"":void 0,title:S("option.localForwardTitle"),onClick:()=>Qt("direction","local"),children:S("option.localForward")}),s("button",{type:"button",className:"tt_segmentedBtn","data-active":ye.direction==="remote"?"":void 0,title:S("option.remoteForwardTitle"),onClick:()=>Qt("direction","remote"),children:S("option.remoteForward")})]}),a("select",{className:"tt_cardInput",value:ye.bookName,onChange:je("bookName"),children:[s("option",{value:"",children:S("option.selectBook")}),...Array.isArray(p?.sshHosts)?p.sshHosts.map(A=>s("option",{value:A?.name??"",children:A?.name??""})):[]]})]}),s("span",{className:"tt_cardHint",children:co!==void 0?S("hint.tunnelViaBook",{book:zn(co)}):S("hint.tunnelBookEmpty")}),ye.direction==="local"?a("div",{className:"tt_tunnelEndpoints",children:[a("div",{className:"tt_tunnelHop",children:[a("div",{className:"tt_tunnelEndpoint",children:[s("span",{className:"tt_tunnelEndpointStatic",title:S("hint.localListenFixed"),children:"127.0.0.1"}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:S("placeholder.localPort"),value:ye.localPort,autoComplete:"off",inputMode:"numeric","aria-label":S("field.localListenPort"),onChange:je("localPort")})]}),s("span",{className:"tt_tunnelArrow","data-direction":"local",title:S("hint.flowLocalToRemote"),"aria-hidden":"true",children:"\u2192"})]}),a("div",{className:"tt_tunnelEndpoint",children:[s("input",{className:"tt_cardInput tt_tunnelHost",placeholder:S("placeholder.remoteHost"),title:S("hint.remoteHostTitle"),value:ye.remoteHost,autoComplete:"off","aria-label":S("field.remoteHost"),onChange:je("remoteHost")}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:S("placeholder.port"),value:ye.remotePort,autoComplete:"off",inputMode:"numeric","aria-label":S("field.remotePort"),onChange:je("remotePort")})]})]}):a("div",{className:"tt_tunnelEndpoints",children:[a("div",{className:"tt_tunnelHop",children:[a("div",{className:"tt_tunnelEndpoint",children:[s("input",{className:"tt_cardInput tt_tunnelHost",placeholder:S("placeholder.remoteListenHost"),title:S("hint.remoteListenHost"),value:ye.remoteHost,autoComplete:"off","aria-label":S("field.remoteListenHost"),onChange:je("remoteHost")}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:S("placeholder.listenPort"),value:ye.remotePort,autoComplete:"off",inputMode:"numeric","aria-label":S("field.remoteListenPort"),onChange:je("remotePort")})]}),s("span",{className:"tt_tunnelArrow","data-direction":"remote",title:S("hint.flowRemoteToLocal"),"aria-hidden":"true",children:"\u2192"})]}),a("div",{className:"tt_tunnelEndpoint",children:[s("span",{className:"tt_tunnelEndpointStatic",title:S("hint.localDialFixed"),children:"127.0.0.1"}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:S("placeholder.localTargetPort"),value:ye.localTargetPort,autoComplete:"off",inputMode:"numeric","aria-label":S("field.localTargetPort"),onChange:je("localTargetPort")})]})]}),s("div",{className:"tt_tunnelEndpoints",children:[s("span",{className:"tt_tunnelEndLabel",children:ye.direction==="local"?S("hint.tunnelLocalSummary"):S("hint.tunnelRemoteSummary")})]}),s("div",{className:"tt_cardRow tt_tunnelActions",children:[xe===null?s("button",{type:"button",className:"tt_cardSave",onClick:Jc,children:S("btn.addTunnel")}):s("button",{type:"button",className:"tt_cardSave",onClick:Xc,children:S("btn.saveEdit")}),xe===null?null:s("button",{type:"button",className:"tt_toolBtn",onClick:Yc,children:S("btn.cancel")}),s("span",{className:"tt_cardHint",children:xe===null?S("hint.tunnelAdd"):S("hint.tunnelEditing",{name:xe})})]})]})]}),a("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:S("panel.hostKeys")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{oh()},children:S("btn.importKnownHosts")})]}),...Array.isArray(p.hostKeys)&&p.hostKeys.length>0?[s("div",{className:"tt_hostList",children:p.hostKeys.map((A,j)=>a("div",{className:"tt_sshHostRow",children:[s("div",{className:"tt_sshHostMeta",children:[s("span",{className:"tt_sshHostName",children:String(A?.host??"")+":"+String(A?.port??22)}),s("span",{className:"tt_sshHostTarget",children:po(A).map(V=>"sha256:"+V).join(" / ")})]}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{sh(A)},children:S("btn.delete")})]},String(A?.host??"")+":"+String(A?.port??22)+"#"+String(j)))})]:[s("span",{className:"tt_cardHint",children:S("list.emptyHostKeys")})],s("span",{className:"tt_cardHint",children:S("hint.hostKeys")})]}),a("div",{className:"tt_cardField tt_cardRow",children:[s("button",{className:"tt_cardSave",disabled:f,onClick:()=>{_o()},children:S(f?"msg.saving":"btn.save")}),s("span",{className:"tt_cardMessage"+(C.kind==="ok"?" tt_cardMessageOk":C.kind==="error"?" tt_cardMessageError":""),children:C.text})]})]})]}):null]})}t.inject=["slots","sessions"];let o=["@hyzyn/dsh-tty#tty","@hyzyn/dsh-all#tty"];return t.apply=u=>{zf(u),fc=u.sessions,u.inject(["remote","remote.credentials"],c=>(Lt=c.remote?.credentials??c["remote.credentials"]??null,()=>{Lt=null}));let l=!1,_=()=>{};_s={set(c){if(c!==l){if(l=c,c){_=u_();return}_(),_=()=>{},_i(),sr()}}},Ac(!0),ao();for(let c of o)u.slots.inject("plugins.row.config",()=>u.slots.register({name:"plugins.row.config",key:c},n));u.slots.inject("settings.kit.item",()=>u.slots.register({name:"settings.kit.item",id:"tty",order:80,label:()=>S("card.name")},n)),u.slots.inject("settings.plugin.item",()=>u.slots.register({name:"settings.plugin.item",key:"tty",order:100},n));let m=u.provide("ttyConnbar",{version:1,addAction:Ss,requestRender(){sr()}}),w=u.provide("ttyTerminal",{version:3,open(c){if(!nr)return;let d=wc(c),h=yc(c,d),f=typeof c?.label=="string"&&c.label!==""?c.label:void 0;if(mi(),c?.reuse!==!1){let g=Sp(h);if(g!==null)return Jn(),Zt(g.sid),g}return Jn(),ui(h,f)},mount(c,d){return nr?Mp(c,d):()=>{}}}),p=u.provide("ttyPanel",{version:2,isOpen(){return ce!==null&&!qe},mountPane(c){return xc(c)},minimize(){return vs(),ce!==null&&qe}});return()=>{_s=null,nr=!1,_(),p(),w(),m(),_i()}},t}});})();
3199
+ `;function Gn(e){let t=typeof e=="string"?e.trim():"";if(t==="")return;let r=t,s="",o=r.lastIndexOf("@");o>0&&(s=r.slice(0,o).trim(),r=r.slice(o+1).trim());let i=r,n=22,a=/^\[([^\]]+)\](?::(\d+))?$/.exec(r)??/^([^:]+):(\d+)$/.exec(r);if(a!==null){i=a[1];let l=Number(a[2]);Number.isInteger(l)&&l>=1&&l<=65535&&(n=l)}if(i==="")return;let u={host:i,port:n};return s!==""&&(u.username=s),u}function Vn(e){if(e===null||typeof e!="object")return"";let t=e,r=typeof t.host=="string"?t.host.trim():"";if(r==="")return"";let s=Number.isInteger(t.port)&&Number(t.port)>=1&&Number(t.port)<=65535?Number(t.port):22,o=typeof t.username=="string"&&t.username.trim()!==""?t.username.trim()+"@":"",i=r.includes(":")&&!r.startsWith("[")?`[${r}]`:r;return`${o}${i}${s===22?"":":"+String(s)}`}var Yn="\0global";function Ir(e,t){return e===null?Yn:typeof e=="string"&&e!==""?e:typeof t=="string"&&t!==""?t:Yn}function Xn(e,t){return e===Yn?!0:typeof t=="string"&&t!==""&&e===t}var hp="/api/dsh-tty/ws";function Jl(e,t){let r=new URL(t??e,e);return(r.protocol==="https:"?"wss:":"ws:")+"//"+r.host+hp}function Jn(e){return String(e??"").trim().toUpperCase().replace(/[^A-Z0-9]+/g,"_").replace(/^_+|_+$/g,"")}function Zl(e,t,r,s){let o=Jn(r),i=Jn(e);if(o===""||i==="")return"";let n=Jn(t),a=["DSH_TTY",o,i];return n!==""&&n!=="22"&&a.push(n),a.push(s),a.join("_")}function ui(e){let t=Number(e);return Number.isInteger(t)&&t>=1&&t<=65535?t:0}function Ql(e,t,r){return`${e}-${t==="remote"?"R":"L"}${String(r)}`}function ec(e,t=[],r=s=>s){let s=e??{},o=String(s.bookName??"")||String(t[0]??"")||"";if(o==="")return{ok:!1,error:r("error.tunnelNoBook")};if(s.direction==="remote"){let u=ui(s.remotePort),l=ui(s.localTargetPort);return u<1||l<1?{ok:!1,error:r("error.tunnelRemotePortRequired")}:{ok:!0,tunnel:{name:Ql(o,"remote",u),bookName:o,direction:"remote",remotePort:u,localTargetHost:"",localTargetPort:l,enabled:!0}}}let i=ui(s.localPort),n=String(s.remoteHost??"").trim(),a=ui(s.remotePort);return i<1||n===""||a<1?{ok:!1,error:r("error.tunnelLocalRequired")}:{ok:!0,tunnel:{name:Ql(o,"local",i),bookName:o,direction:"local",localPort:i,remoteHost:n,remotePort:a,enabled:!0}}}function tc(e,t){return(Array.isArray(e)?e:[]).find(r=>String(r?.name??"")===String(t))}function dp(e,t,r){return(Array.isArray(e)?e:[]).find(s=>String(s?.name??"")!==String(t)&&String(s?.name??"")===String(r))}function rc(e,t,r,s){let o=Array.isArray(e)?e:[],i=o.find(u=>String(u?.name??"")===String(t));if(i===void 0)return{ok:!1,reason:"missing",error:s("error.tunnelMissing",{name:String(t)})};if(dp(o,t,r.name)!==void 0)return{ok:!1,reason:"clash",error:s("error.tunnelClash",{name:String(r.name)})};let a={...r,enabled:i.enabled!==!1};return{ok:!0,tunnels:o.map(u=>String(u?.name??"")===String(t)?a:u)}}function up(e){let t=e?.byId;if(!(t===null||typeof t!="object"))for(let r of Object.keys(t)){let s=t[r]?.retainedBy?.mainView??0;if(typeof s=="number"&&s>0)return r}}function fp(e){let t=e?.current;return typeof t=="string"&&t!==""?t:up(e)}function sc(e){let t=fp(e);if(t===void 0)return;let r=e?.byId?.[t]?.cwd;return typeof r=="string"&&r!==""?r:void 0}function pp(e,t){return Number.isFinite(e)&&Number.isFinite(t)&&e>0&&t>0}function ic(e,t){if(e==null)return;let r=Math.floor(Number(e.cols)),s=Math.floor(Number(e.rows));if(!(!Number.isFinite(r)||!Number.isFinite(s))&&!(r<20||s<3)&&!(t==null||!pp(Number(t.width),Number(t.height))))return{cols:Math.min(500,r),rows:Math.min(200,s)}}function nc(e){return e!==null&&typeof e=="object"&&e.exited!==!0}function oc(e){if(!Array.isArray(e))return 0;let t=0;for(let r of e)nc(r)&&(t+=1);return t}function fi(e){let t=new Set;if(!Array.isArray(e))return t;for(let r of e)nc(r)&&typeof r.sid=="string"&&r.sid!==""&&t.add(r.sid);return t}function ac(e,t){return e==null?{text:"",state:""}:e.exited===!0?{text:e.statusText??t("status.exited"),state:e.statusState??""}:e.live===!0?{text:e.statusText??t("status.connected"),state:e.statusState??"connected"}:e.errored===!0?{text:e.statusText??t("status.errored"),state:e.statusState??"error"}:{text:e.statusText??t("status.connectingEllipsis"),state:e.statusState??""}}function lc(e,t){return typeof e!="string"||e===""?!0:e===t}function cc(e,t){return e===null?!1:e!==t}function it(e){if(!Number.isFinite(e)||e<=0)return"";if(e<1024)return String(e)+" B";let t=["KB","MB","GB","TB"],r=e,s=-1;do r/=1024,s+=1;while(r>=1024&&s<t.length-1);return(r>=100?r.toFixed(0):r.toFixed(1))+" "+t[s]}function us(e){if(!Number.isFinite(e)||e<=0)return"";if(e<1024)return"<1 KB/s";let t=["KB","MB","GB","TB"],r=e,s=-1;do r/=1024,s+=1;while(r>=1024&&s<t.length-1);return(r>=100?r.toFixed(0):r.toFixed(1))+" "+t[s]+"/s"}function dc(e){return Number.isFinite(e)?e>=90?"danger":e>=70?"warn":"":""}function hc(e,t){return!Number.isFinite(e)||e<0?t("list.none"):e<1024?Math.round(e)+" B/s":us(e)||t("list.none")}function _p(e,t){if(!Number.isFinite(e)||e<0)return t("list.none");let r=Math.floor(e),s=Math.floor(r/604800),o=Math.floor(r%604800/86400),i=Math.floor(r%86400/3600),n=Math.floor(r%3600/60),a=[];return s>0&&a.push(s+"w"),(s>0||o>0)&&a.push(o+"d"),(s>0||o>0||i>0)&&a.push(i+"h"),(s>0||o>0||i>0||n>0)&&a.push(n+"m"),a.length>0?a.join(""):r+"s"}function mp(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?r("list.none"):(it(e)||"0 B")+"/"+(it(t)||"0 B")}function uc(e,t){let r=e[t];return Number.isFinite(r)?t==="tempC"?r>-100&&r<200?r:null:t==="cores"?r>=1&&r<=4096?r:null:t==="cpuPct"||t==="memPct"||t==="diskPct"?r>=0&&r<=100?r:null:t==="uptimeSec"?r>=0&&r<=100*365*24*3600?r:null:t==="tcpConns"?r>=0&&r<=1e7?r:null:t==="rxRate"||t==="txRate"?r>=0&&r<=2**40?r:null:r>=0&&r<=2**50?r:null:null}var gp=["cpuPct","cores","memUsed","memTotal","memPct","diskUsed","diskTotal","diskPct","uptimeSec","tcpConns","rxRate","txRate","tempC"];function fc(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:gp.some(t=>uc(e,t)!==null)}var vp=8e3;function pc(e,t=Date.now()){return t-(e||0)<=vp}var _c=23;function Zn(e){return[{key:"cpuPct",label:"CPU",kind:"pct",slot:4},{key:"memPct",label:e("meta.mem"),kind:"pct",slot:4},{key:"diskPct",label:e("meta.disk"),kind:"pct",slot:4},{key:"cores",label:e("meta.cores"),kind:"count",slot:4},{key:"mem",label:e("meta.mem"),kind:"pair",slot:17,used:"memUsed",total:"memTotal"},{key:"uptimeSec",label:e("meta.uptime"),kind:"uptime",slot:13},{key:"tcpConns",label:"TCP",kind:"count",slot:6},{key:"disk",label:e("meta.disk"),kind:"pair",slot:17,used:"diskUsed",total:"diskTotal"},{key:"tempC",label:e("meta.temp"),kind:"temp",slot:8},{key:"net",label:e("meta.net"),kind:"net",slot:_c}]}function mc(e,t){let r=e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{},s=i=>uc(r,i),o=(i,n,a,u=i.slot)=>({key:i.key,label:i.label,kind:i.kind,slot:u,pct:a??null,value:n,title:i.label+": "+n});return Zn(t).map(i=>{if(i.kind==="pct"){let a=s(i.key);return o(i,a===null?t("list.none"):Math.round(a)+"%",a)}if(i.kind==="pair")return o(i,mp(s(i.used),s(i.total),t),null);if(i.kind==="uptime")return o(i,_p(s(i.key),t),null);if(i.kind==="temp"){let a=s(i.key);return o(i,a===null?t("list.none"):a.toFixed(1)+"\xB0C",null)}if(i.kind==="net"){let a=s("rxRate"),u=s("txRate");return a===null&&u===null?o(i,t("list.none"),null,0):o(i,"\u2193"+hc(a,t)+" \u2191"+hc(u,t),null,_c)}let n=s(i.key);return o(i,n===null?t("list.none"):String(n),null)})}var Qn="tty",Ci={"error.credServiceMissing":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09","error.credServiceIncomplete":"\u51ED\u636E\u670D\u52A1\u4E0D\u5B8C\u6574","error.credStoreUnavailable":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09\uFF0C\u65E0\u6CD5\u5B58\u5165","error.credStoreFailed":"\u5B58\u5165\u51ED\u636E\u5B58\u50A8\u5931\u8D25\uFF1A{error}","error.credClearUnavailable":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09\uFF0C\u65E0\u6CD5\u6E05\u9664","error.credClearFailed":"\u6E05\u9664\u5931\u8D25\uFF1A{error}","error.credRefNeedsHost":"\u5148\u586B\u300C\u4E3B\u673A\u300D\u548C\u300C\u7528\u6237\u540D\u300D\u518D\u5B58\u5165\u2014\u2014\u5F15\u7528\u540D\u7531\u8FD9\u4E24\u8005\u6D3E\u751F","btn.reopen":"\u91CD\u65B0\u6253\u5F00","btn.reopenTitle":"\u4EE5\u539F\u8FDE\u63A5\u4FE1\u606F\u91CD\u5F00\u4F1A\u8BDD","btn.sftpTitle":"\u6253\u5F00\u8BE5\u8FDE\u63A5\u7684\u6587\u4EF6\u6D4F\u89C8\uFF08SFTP\uFF09","btn.tunnels":"\u96A7\u9053 {count}","btn.tunnelsTitle":"\u67E5\u770B\u8BE5\u8FDE\u63A5\u7684\u7AEF\u53E3\u8F6C\u53D1\u96A7\u9053","btn.more":"\u66F4\u591A","btn.moreTitle":"\u66F4\u591A\u64CD\u4F5C\uFF08\u7AEF\u53E3\u8F6C\u53D1\u2026\uFF09","btn.reopenSession":"\u91CD\u65B0\u6253\u5F00\u4F1A\u8BDD","status.exited":"\u4F1A\u8BDD\u5DF2\u9000\u51FA","status.ended":"\u4F1A\u8BDD\u5DF2\u7ED3\u675F","btn.clickReopen":"\u70B9\u51FB\u91CD\u65B0\u6253\u5F00","btn.clickRerun":"\u70B9\u51FB\u91CD\u65B0\u6267\u884C","msg.passwordNotStored":"\u51FA\u4E8E\u5B89\u5168\u8003\u8651\uFF0C\u660E\u6587\u5BC6\u7801/\u53E3\u4EE4\u4E0D\u968F\u6D4F\u89C8\u5668\u5B58\u50A8\u4FDD\u7559\uFF0C\u672C\u6B21\u8FDE\u63A5\u9700\u8981\u91CD\u65B0\u8F93\u5165\uFF1A\u91CD\u5F00\u6807\u7B7E\u65F6\u518D\u586B\u4E00\u6B21\uFF0C\u6216\u5728\u8BBE\u7F6E\u5361\u7247\u628A\u51ED\u636E\u6362\u6210 env: \u5F15\u7528\uFF08\u503C\u5B58\u5BBF\u4E3B\u51ED\u636E\u5B58\u50A8\uFF09\u3002","error.terminalNeedsCommand":"ttyTerminal \u9700\u8981 command","error.terminalCommandSingleLine":"command \u5FC5\u987B\u662F\u5355\u884C","error.terminalNeedsHost":"ttyTerminal.mount \u9700\u8981 HTMLElement \u4F5C\u4E3A\u6302\u8F7D\u70B9","error.panelNotReady":"ttyPanel.mountPane\uFF1A\u7EC8\u7AEF\u9762\u677F\u672A\u5C31\u7EEA","panel.dragHeight":"\u62D6\u52A8\u8C03\u6574\u9AD8\u5EA6","panel.dragWidth":"\u62D6\u52A8\u8C03\u6574\u5BBD\u5EA6","btn.closePane":"\u5173\u95ED\u4FA7\u680F","btn.expandPane":"\u5C55\u5F00\u4FA7\u680F","btn.collapsePane":"\u6536\u8D77\u4FA7\u680F","panel.tabLabel":"\u7EC8\u7AEF {n}","btn.close":"\u5173\u95ED","btn.closeTabAria":"\u5173\u95ED\u6807\u7B7E\uFF1A{label}","btn.newTab":"\u65B0\u5EFA\uFF08\u672C\u5730 / SSH\uFF09","btn.tabList":"\u6807\u7B7E\u5217\u8868","btn.tabListTitle":"\u6807\u7B7E\u5217\u8868\uFF08{n} \u4E2A\uFF09","list.tabsAllVisible":"\u6CA1\u6709\u85CF\u5728\u89C6\u91CE\u5916\u7684\u6807\u7B7E","meta.tunnelRemote":"\u8FDC\u7A0B:{host}:{port} \u2192 \u672C\u673A:{local}","meta.tunnelLocal":"\u672C\u673A:{local} \u2192 {host}:{port}","status.tmuxPersistedTitle":"\u5DF2\u7531 tmux \u6258\u7BA1 \u2014 \u65AD\u7EBF / \u5BBF\u4E3B\u91CD\u542F\u540E\u6309\u540D\u63A5\u56DE\u73B0\u573A","status.notPersisted":"\u672A\u6301\u4E45\u5316","status.tmuxUnavailableTitle":"\u8BF7\u6C42\u4E86\u6301\u4E45\u4F1A\u8BDD\uFF0C\u4F46 tmux \u4E0D\u53EF\u7528 \u2014 \u5F53\u524D\u4E3A\u666E\u901A\u4F1A\u8BDD","status.connected":"\u5DF2\u8FDE\u63A5","status.connecting":"\u8FDE\u63A5\u4E2D","status.errored":"\u8FDE\u63A5\u51FA\u9519","panel.tunnels":"\u7AEF\u53E3\u8F6C\u53D1","hint.tunnelsSettings":"\u5728 \u8BBE\u7F6E \u2192 \u63D2\u4EF6 \u2192 \u7EC8\u7AEF\u9762\u677F \u91CC\u914D\u7F6E","panel.tunnelsFor":"\u7AEF\u53E3\u8F6C\u53D1 \u2014 {name}","list.loading":"\u52A0\u8F7D\u4E2D\u2026","hint.tunnelsCard":"\u589E\u5220/\u542F\u505C\u5728 \u63D2\u4EF6\u914D\u7F6E \u2192 \u7EC8\u7AEF\u9762\u677F \u7684\u7AEF\u53E3\u8F6C\u53D1\u533A\u5757\u7EF4\u62A4","list.noActiveTunnels":"\u8BE5\u8FDE\u63A5\u6682\u65E0\u542F\u7528\u7684\u96A7\u9053","status.fatalSuffix":"\uFF08\u4E0D\u91CD\u8BD5\uFF0C\u9700\u4FEE\u914D\u7F6E\uFF09","msg.maxSessions":"\u4F1A\u8BDD\u6570\u5DF2\u8FBE\u4E0A\u9650\uFF08\u5171 {live} \u4E2A / \u4E0A\u9650 {max}\uFF1A\u672C\u7A97\u53E3 {own} \u4E2A{others}\uFF09\u2014\u2014\u5173\u95ED\u4E0D\u7528\u7684\u7A97\u53E3/\u6807\u7B7E\uFF0C\u6216\u5728\u8BBE\u7F6E\u5361\u7247\u8C03\u5927\u300C\u5E76\u53D1\u4F1A\u8BDD\u4E0A\u9650\u300D","msg.maxSessionsOthers":" + \u5176\u4ED6\u7A97\u53E3 {count} \u4E2A","error.probeHttp":"\u8FDE\u63A5\u6D4B\u8BD5\u5931\u8D25\uFF08HTTP {status}\uFF09","msg.probing":"\u8FDE\u63A5\u6D4B\u8BD5\u4E2D\u2026","meta.reachable":"\u901A","meta.unreachable":"\u4E0D\u901A","meta.probeBanner":"banner \u6B63\u5E38","meta.hostKeyMatched":"\u4E3B\u673A\u5BC6\u94A5\u5339\u914D","meta.hostKeyRecorded":"\u4E3B\u673A\u5BC6\u94A5\u5DF2\u8BB0\u5F55\uFF08TOFU\uFF09","meta.hostKeyMismatch":"\u4E3B\u673A\u5BC6\u94A5\u4E0D\u5339\u914D\uFF01","meta.authOkMs":"\u8BA4\u8BC1\u901A\u8FC7\uFF08{ms}ms\uFF09","meta.authOk":"\u8BA4\u8BC1\u901A\u8FC7","meta.probeOk":"\u2705 \u8FDE\u63A5\u6210\u529F\uFF1A{detail}","error.unknown":"\u672A\u77E5\u9519\u8BEF","btn.maxSessionsTitle":"\u4F1A\u8BDD\u6570\u5DF2\u8FBE\u4E0A\u9650\u2014\u2014\u70B9\u51FB\u67E5\u770B\u600E\u4E48\u529E","option.localTerminal":"\u672C\u5730\u7EC8\u7AEF","hint.tmuxHosted":"tmux \u6258\u7BA1 \xB7 \u5BBF\u4E3B\u91CD\u542F\u540E\u53EF\u6062\u590D","hint.openInSessionCwd":"\u5728\u5F53\u524D\u4F1A\u8BDD\u5DE5\u4F5C\u76EE\u5F55\u6253\u5F00","panel.sshBook":"SSH \u8FDE\u63A5\u7C3F","btn.sftpFileBrowse":"SFTP \u6587\u4EF6\u6D4F\u89C8","btn.editConnection":"\u7F16\u8F91\u8FDE\u63A5","list.emptySshBook":"\uFF08\u7A7A \u2014 \u5728\u8BBE\u7F6E\u5361\u7247\u6216\u300CSSH \u8FDE\u63A5\u2026\u300D\u91CC\u4FDD\u5B58\uFF09","option.sshConnect":"SSH \u8FDE\u63A5\u2026","hint.sshConnect":"\u624B\u52A8\u586B\u5199\u4E3B\u673A / \u7528\u6237 / \u8BA4\u8BC1\u65B9\u5F0F","panel.editConnection":"\u7F16\u8F91\u8FDE\u63A5 \xB7 {name}","panel.sshConnect":"SSH \u8FDE\u63A5","section.jump":"\u8DF3\u677F\u673A","field.jumpHost":"\u8DF3\u677F\u673A\uFF08[\u7528\u6237@]\u4E3B\u673A[:\u7AEF\u53E3]\uFF0C\u7559\u7A7A = \u76F4\u8FDE\uFF09","placeholder.jumpHost":"\u4F8B\u5982 bastion.corp:2222","check.jumpOwnCred":"\u8DF3\u677F\u673A\u4F7F\u7528\u72EC\u7ACB\u51ED\u636E","field.jumpUsername":"\u8DF3\u677F\u673A\u7528\u6237\u540D\uFF08\u7559\u7A7A\u6CBF\u7528\u76EE\u6807\uFF09","field.jumpAuth":"\u8DF3\u677F\u673A\u8BA4\u8BC1\u65B9\u5F0F\uFF08\u7559\u7A7A\u6CBF\u7528\u76EE\u6807\uFF09","hint.jumpInherit":"\u7559\u7A7A\u51ED\u636E = \u6CBF\u7528\u4E0A\u9762\u90A3\u53F0\u4E3B\u673A\u7684\u8BA4\u8BC1\u65B9\u5F0F\u4E0E\u94A5\u5319\uFF1B\u8DF3\u677F\u673A\u8FDE\u4E0D\u4E0A\u65F6\u9519\u8BEF\u6587\u6848\u4F1A\u70B9\u540D\u5B83\uFF08\u4E0D\u4F1A\u4F2A\u88C5\u6210\u76EE\u6807\u8D85\u65F6\uFF09\u3002","meta.jumpStage":"\u8DF3\u677F\u673A {label}","meta.viaJump":"\u21E2 \u7ECF {label}","meta.viaProxy":"\u21E2 \u7ECF\u4EE3\u7406\u547D\u4EE4","section.proxyCommand":"\u4EE3\u7406\u547D\u4EE4","field.proxyCommand":"\u4EE3\u7406\u547D\u4EE4\uFF08ProxyCommand\uFF0C\u7559\u7A7A = \u4E0D\u7528\uFF09","placeholder.proxyCommand":"\u4F8B\u5982 ssh -W %h:%p bastion","hint.proxyCommand":"\u672C\u673A\u6267\u884C\u7684\u547D\u4EE4\uFF0C\u5B83\u7684 stdin/stdout \u5C31\u662F\u5230\u76EE\u6807\u7684 SSH \u4F20\u8F93\uFF08\u7B49\u4EF7\u4E8E OpenSSH \u7684 ProxyCommand\uFF09\u3002\u652F\u6301 %h \u76EE\u6807\u4E3B\u673A\u3001%p \u7AEF\u53E3\u3001%r \u7528\u6237\u540D\u3001%n \u4E3B\u673A\u3001%% \u5B57\u9762 %\uFF1B\u5176\u4F59\u5199\u6CD5\u539F\u6837\u4FDD\u7559\u3002\u4E0E\u8DF3\u677F\u673A\u540C\u65F6\u586B\u65F6\u8DF3\u677F\u673A\u4F18\u5148\uFF08OpenSSH \u8BED\u4E49\uFF09\u3002\u9700\u8981\u4E0B\u9762\u90A3\u4E2A\u5F00\u5173\uFF0C~/.ssh/config \u5BFC\u5165\u4E0D\u4F1A\u81EA\u52A8\u5E26\u5165\u5B83\u3002","hint.proxyCommandDisabled":"\u26A0 \u5F53\u524D\u300C\u5141\u8BB8 ProxyCommand\u300D\u672A\u6253\u5F00\uFF1A\u8FD9\u6761\u547D\u4EE4\u4E0D\u4F1A\u6267\u884C\uFF0C\u8FDE\u63A5\u4F1A\u660E\u786E\u5931\u8D25\uFF08\u4E0D\u4F1A\u9000\u56DE\u76F4\u8FDE\uFF09\u3002\u5230 \u63D2\u4EF6\u914D\u7F6E \u2192 \u7EC8\u7AEF\u9762\u677F \u6253\u5F00\u5F00\u5173\u540E\u751F\u6548\u3002","hint.proxyCommandNotGranted":"\u26A0 \u8FD9\u6761\u80FD\u529B\u672A\u83B7\u5BBF\u4E3B\u6388\u6743\uFF1A\u70B9\u8FD9\u4E2A\u5F00\u5173\u4F1A\u5C31\u5730\u53D1\u8D77\u4E00\u6B21\u6388\u6743\uFF08\u9762\u677F\u7ED9\u4E00\u6761\u5728\u5BBF\u4E3B\u7EC8\u7AEF\u6267\u884C\u7684\u547D\u4EE4\uFF0C\u514D\u91CD\u542F\uFF09\uFF1B\u4E5F\u53EF\u4EE5\u8D70\u6700\u4E25\u7684\u90A3\u6761\u2014\u2014\u5728\u300C\u542F\u52A8 dsh \u7684\u90A3\u4E2A\u73AF\u5883\u300D\u91CC export DSH_TTY_ALLOW_PROXY_COMMAND=1 \u540E\u91CD\u542F\u5BBF\u4E3B\uFF08\u542F\u52A8\u4E4B\u540E\u518D\u8BBE\u4E0D\u7B97\u6388\u6743\uFF09\u3002\u8FD9\u6837\u5B89\u6392\u662F\u56E0\u4E3A\u8DE8\u7AD9\u9875\u9762\u4E0E\u9875\u5185\u811A\u672C\u90FD\u80FD\u53D1\u56DE\u73AF\u8BF7\u6C42\u2014\u2014\u82E5\u914D\u7F6E\u754C\u9762\u80FD\u51ED\u7A7A\u63D0\u6743\uFF0C\u8FD9\u9053\u95F8\u95E8\u7B49\u4E8E\u6CA1\u6709\uFF1B\u5173\u6389\u5B83\u5219\u968F\u65F6\u53EF\u7528\u3002","badge.notEffective":"\u672A\u751F\u6548\uFF1A\u672A\u83B7\u5BBF\u4E3B\u6388\u6743","elev.title":"\u5C31\u5730\u6388\u6743\uFF08\u514D\u91CD\u542F\uFF09","elev.lockedWhy":"\u672C\u673A\u4EFB\u610F\u8FDB\u7A0B\u90FD\u80FD\u53D1\u56DE\u73AF\u8BF7\u6C42\uFF0C\u6240\u4EE5\u300C\u6253\u5F00\u5371\u9669\u80FD\u529B\u300D\u8FD9\u4EF6\u4E8B\u4E0D\u80FD\u7531\u8FD9\u4E2A\u9875\u9762\u81EA\u5DF1\u8BF4\u4E86\u7B97\u2014\u2014\u5FC5\u987B\u5728\u5BBF\u4E3B\u7684\u6587\u4EF6\u7CFB\u7EDF\u4E0A\u786E\u8BA4\u4E00\u6B21\u3002","elev.step":"\u5728\u5BBF\u4E3B\u7684\u7EC8\u7AEF\u91CC\u6267\u884C\u4E0B\u4E00\u6761\u547D\u4EE4\uFF0C\u5F00\u5173\u4F1A\u81EA\u52A8\u89E3\u9501\uFF1A","elev.copy":"\u590D\u5236\u547D\u4EE4","elev.copied":"\u5DF2\u590D\u5236","elev.copyManual":"\u5F53\u524D\u73AF\u5883\u62FF\u4E0D\u5230\u526A\u8D34\u677F\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u4E0A\u9762\u90A3\u6761\u547D\u4EE4\u590D\u5236\u3002","elev.expiresIn":"{sec} \u79D2\u540E\u5931\u6548","elev.expired":"\u672C\u6B21\u786E\u8BA4\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u751F\u6210\u3002","elev.waiting":"\u7B49\u5F85\u786E\u8BA4\u2026\u6267\u884C\u5B8C\u547D\u4EE4\u8FD9\u91CC\u4F1A\u81EA\u52A8\u53D8\u6210\u5DF2\u6388\u6743\u3002","elev.regenerate":"\u91CD\u65B0\u751F\u6210","elev.loading":"\u6B63\u5728\u751F\u6210\u786E\u8BA4\u547D\u4EE4\u2026","elev.granted":"\u5DF2\u6388\u6743\u5E76\u751F\u6548\u3002","elev.grantedNeedSave":"\u5DF2\u6388\u6743\u3002\u70B9\u300C\u4FDD\u5B58\u300D\u540E\u751F\u6548\u3002","elev.grantedAt":"\u5DF2\u6388\u6743 \xB7 {time}","elev.revoke":"\u64A4\u9500\u5BBF\u4E3B\u6388\u6743","elev.revoked":"\u5DF2\u64A4\u9500\u5BBF\u4E3B\u6388\u6743\uFF08\u914D\u7F6E\u5F00\u5173\u4FDD\u6301\u4E0D\u53D8\uFF0C\u91CD\u65B0\u6388\u6743\u540E\u4F1A\u7ACB\u523B\u751F\u6548\uFF09\u3002","elev.viaEnv":"\u7531\u542F\u52A8\u73AF\u5883\u53D8\u91CF\u6388\u6743\uFF1B\u8981\u64A4\u9500\u9700\u5728\u542F\u52A8\u73AF\u5883\u91CC\u53BB\u6389\u5B83\u5E76\u91CD\u542F\u5BBF\u4E3B\u3002","elev.close":"\u6536\u8D77","elev.disableFirst":"\u5148\u5173\u6389\u8FD9\u4E2A\u914D\u7F6E\u5F00\u5173","elev.otherWay":"\u53E6\u4E00\u79CD\u65B9\u5F0F\uFF08\u6700\u5F3A\uFF0C\u9700\u8981\u91CD\u542F\u5BBF\u4E3B\uFF09","elev.envHow":"\u5728\u300C\u542F\u52A8 dsh \u7684\u90A3\u4E2A\u73AF\u5883\u300D\u91CC export {env}=1\uFF0C\u7136\u540E\u91CD\u542F\u5BBF\u4E3B\u3002\u6CE8\u610F\uFF1A\u542F\u52A8\u4E4B\u540E\u518D\u8BBE\u3001\u6216\u5199\u8FDB\u522B\u7684\u914D\u7F6E\u6587\u4EF6\u90FD\u4E0D\u7B97\u6388\u6743\u2014\u2014\u8FD9\u9053\u95F8\u95E8\u9632\u7684\u5C31\u662F\u300C\u8FD0\u884C\u671F\u80FD\u6539\u7684\u4E1C\u897F\u5192\u5145\u6388\u6743\u300D\u3002","elev.error":"\u5C31\u5730\u6388\u6743\u6CA1\u6210\u529F\uFF1A","meta.probeProxy":"\u4EE3\u7406\u547D\u4EE4","meta.probeProxyOff":"\u4EE3\u7406\u547D\u4EE4\uFF08\u672A\u542F\u7528\uFF09","meta.probeTcpSkipped":"\u76F4\u8FDE\u9884\u68C0\u5DF2\u8DF3\u8FC7\uFF08\u8D70\u4EE3\u7406\u547D\u4EE4\uFF09","section.connection":"\u8FDE\u63A5","field.host":"\u4E3B\u673A","placeholder.host":"example.com \u6216 IP","field.port":"\u7AEF\u53E3","field.username":"\u7528\u6237\u540D","section.auth":"\u8BA4\u8BC1","field.authMethod":"\u8BA4\u8BC1\u65B9\u5F0F","option.authInherit":"\uFF08\u6CBF\u7528\u76EE\u6807\uFF09","option.authAgent":"agent \u2014 \u4F7F\u7528\u672C\u673A ssh-agent","option.authKey":"key \u2014 \u79C1\u94A5\u6587\u4EF6","option.authPassword":"password \u2014 \u5BC6\u7801","field.keyPath":"\u79C1\u94A5\u8DEF\u5F84","field.passphrase":"\u79C1\u94A5\u53E3\u4EE4\uFF08\u53EF\u7A7A\uFF09","field.password":"\u5BC6\u7801","placeholder.credRef":"\u6216\uFF1A\u9009\u62E9\u51ED\u636E\u5B58\u50A8\u91CC\u7684\u5F15\u7528\u540D","hint.credRefCandidates":"\u5019\u9009 = \u51ED\u636E\u5B58\u50A8\u91CC\u5DF2\u6709\u7684\u5F15\u7528\u540D + \u672C\u673A\u8FDE\u63A5\u7C3F\u91CC\u5728\u7528\u7684\u5F15\u7528\u540D","list.credOverwrite":"{name}\uFF08\u518D\u70B9\u8986\u76D6\u5DF2\u586B\uFF09","list.moreMatches":"\u8FD8\u6709 {count} \u4E2A \u2014 \u7EE7\u7EED\u8F93\u5165\u7B5B\u9009","list.noCredRef":"\u6CA1\u6709\u5339\u914D\u7684\u5F15\u7528","check.rememberCredential":"\u4FDD\u5B58\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8","hint.rememberCredential":"\u52FE\u9009\u540E\uFF0C\u70B9\u300C\u4FDD\u5B58\u4FEE\u6539\u300D\u6216\u300C\u8FDE\u63A5\uFF08\u5E76\u4FDD\u5B58\uFF09\u300D\u65F6\u628A\u5BC6\u7801\u5199\u8FDB\u5B98\u65B9\u51ED\u636E\u5B58\u50A8\uFF0C\u5B57\u6BB5\u91CC\u53EA\u7559 env: \u5F15\u7528\uFF08\u503C\u5728 ~/.dsh/.credentials.yaml\uFF0C\u4E0D\u8FDB\u73AF\u5883\u3001\u4E0D\u56DE\u4F20\u6D4F\u89C8\u5668\uFF1B\u6321\u4E0D\u4F4F\u540C\u7528\u6237\u8FDB\u7A0B\u4E0E agent\uFF09\u3002\u4E0D\u52FE\u9009\u5219\u6309\u73B0\u72B6\u660E\u6587\u5199\u8FDB\u8BBE\u7F6E\u6587\u4EF6\u3002\u80FD\u7528\u5BC6\u94A5 / agent \u5C31\u522B\u5B58\u5BC6\u7801\u3002","btn.clearCredential":"\u6E05\u9664\u5DF2\u5B58\u51ED\u636E","error.credPlainUnavailable":"\u5BBF\u4E3B\u672A\u63D0\u4F9B\u51ED\u636E\u670D\u52A1\uFF08remote.credentials\uFF09\uFF0C\u53EA\u80FD\u660E\u6587\u4FDD\u5B58","error.credPlainIncomplete":"\u51ED\u636E\u670D\u52A1\u4E0D\u5B8C\u6574\uFF0C\u53EA\u80FD\u660E\u6587\u4FDD\u5B58","status.credUnreported":"\u5F15\u7528 {ref}\uFF1A\u5BBF\u4E3B\u672A\u62A5\u544A\u72B6\u6001","error.credStatusFailed":"\u8BFB\u53D6\u51ED\u636E\u72B6\u6001\u5931\u8D25\uFF1A{error}","status.credStored":"\u5DF2\u5B58\u5165{source} \xB7 {ref}","meta.credSource":"\uFF08\u6765\u6E90 {source}\uFF09","status.credUnknown":"\u5F15\u7528 {ref}\uFF1A\u5B58\u50A8\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u503C","hint.noCredRefPassphrase":"\u8FD8\u6CA1\u6709\u522B\u7684\u8FDE\u63A5\u7528\u8FC7\u51ED\u636E\u5F15\u7528 \u2014 \u53EF\u5728\u79C1\u94A5\u53E3\u4EE4\u6846\u76F4\u63A5\u624B\u8F93 env:NAME","hint.noCredRefPassword":"\u8FD8\u6CA1\u6709\u522B\u7684\u8FDE\u63A5\u7528\u8FC7\u51ED\u636E\u5F15\u7528 \u2014 \u52FE\u4E0A\u9762\u7684\u300C\u4FDD\u5B58\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8\u300D\u65B0\u5EFA\u4E00\u4E2A\uFF0C\u6216\u76F4\u63A5\u5728\u5BC6\u7801\u6846\u624B\u8F93 env:NAME","section.options":"\u9009\u9879","check.agentForward":"agent forwarding\uFF08\u8FDC\u7A0B\u53EF\u7528\u672C\u5730 ssh-agent \u94A5\u5319\uFF0C\u5982\u8FDC\u7A0B git clone\uFF09","check.persist":"\u6301\u4E45\u4F1A\u8BDD\uFF08tmux \u6258\u7BA1\uFF0C\u65AD\u7EBF/\u91CD\u542F\u540E\u6062\u590D\u73B0\u573A\uFF1B\u8FDC\u7A0B\u9700\u5B89\u88C5 tmux\uFF09","check.saveToBook":"\u4FDD\u5B58\u5230\u8FDE\u63A5\u7C3F\uFF08\u540C\u540D\u8986\u76D6\uFF09","field.bookName":"\u8FDE\u63A5\u7C3F\u540D\u79F0","placeholder.bookName":"\u7559\u7A7A\u5219\u7528\u4E3B\u673A\u540D","error.hostUserRequired":"\u4E3B\u673A\u4E0E\u7528\u6237\u540D\u5FC5\u586B","error.keyPathRequired":"auth=key \u9700\u8981\u79C1\u94A5\u8DEF\u5F84","error.passwordRequired":"auth=password \u9700\u8981\u5BC6\u7801","btn.cancel":"\u53D6\u6D88","btn.connect":"\u8FDE\u63A5","btn.fileBrowse":"\u6587\u4EF6\u6D4F\u89C8","btn.browseTitle":"\u4E0D\u52A8\u7EC8\u7AEF\uFF0C\u76F4\u63A5\u4EE5\u5F53\u524D\u586B\u5199\u7684\u4FE1\u606F\u6253\u5F00 SFTP \u6587\u4EF6\u6D4F\u89C8","btn.probe":"\u8BD5\u8FDE","btn.probeTitle":"\u6309\u5F53\u524D\u586B\u5199\u8BCA\u65AD\u8FDE\u63A5\uFF08TCP \u2192 \u4E3B\u673A\u5BC6\u94A5 \u2192 \u8BA4\u8BC1\uFF09\uFF1B\u4E0D\u4F1A\u65B0\u5EFA\u4F1A\u8BDD\uFF0C\u4E5F\u4E0D\u8BB0\u5F55\u4E3B\u673A\u6307\u7EB9","error.saveCredFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","btn.saveEdit":"\u4FDD\u5B58\u4FEE\u6539","error.saveBookFailed":"\u4FDD\u5B58\u8FDE\u63A5\u7C3F\u5931\u8D25\uFF1A{error}","error.bookNameTaken":"\u8FDE\u63A5\u7C3F\u91CC\u5DF2\u6709\u540C\u540D\u6761\u76EE: {name}","panel.sftpDual":"SFTP \u53CC\u680F \xB7 {label}","status.failed":"\u5931\u8D25","status.done":"\u5B8C\u6210","placeholder.localPath":"\u672C\u673A\u8DEF\u5F84\uFF08\u56DE\u8F66\u8DF3\u8F6C\uFF09","placeholder.remotePath":"\u8FDC\u7A0B\u8DEF\u5F84\uFF08\u56DE\u8F66\u8DF3\u8F6C\uFF09","btn.refresh":"\u5237\u65B0","btn.mkdir":"\u65B0\u5EFA\u76EE\u5F55","error.dirNotReady":"\u76EE\u5F55\u5C1A\u672A\u5B9A\u4F4D\u5B8C\u6210","meta.dir":"\u76EE\u5F55","btn.transferTo":"\u4F20\u8F93\u5230{target}\uFF1A{path}","meta.local":"\u672C\u673A","meta.remote":"\u8FDC\u7A0B","error.transferDirsNotReady":"\u4E24\u4FA7\u76EE\u5F55\u5C1A\u672A\u5B9A\u4F4D\u5B8C\u6210\uFF0C\u7B49\u5217\u8868\u52A0\u8F7D\u540E\u518D\u4F20\u8F93","msg.transferring":"\u4F20\u8F93 {name}\u2026","error.transferFailed":"\u4F20\u8F93\u5931\u8D25","error.noTaskId":"\u670D\u52A1\u7AEF\u672A\u8FD4\u56DE\u4EFB\u52A1 id","msg.transferCanceled":"\u5DF2\u53D6\u6D88\u4F20\u8F93 {name}","msg.transferred":"\u5DF2\u4F20\u8F93 {name}","btn.download":"\u4E0B\u8F7D {name}","btn.rename":"\u91CD\u547D\u540D {name}","placeholder.newName":"\u65B0\u540D\u79F0","btn.deleteEntry":"\u5220\u9664 {name}","btn.deleteEntryDir":"\u5220\u9664 {name}\uFF08\u542B\u5185\u5BB9\uFF09","msg.deleted":"\u5DF2\u5220\u9664 {name}","list.parentDir":"..\uFF08\u4E0A\u7EA7\u76EE\u5F55\uFF09","list.emptyDir":"\uFF08\u7A7A\u76EE\u5F55\uFF09","list.truncated":"\u2026\u5176\u4F59 {rest} \u9879\u672A\u6E32\u67D3\uFF08\u5171 {total} \u9879\uFF09\u2014\u2014\u7528\u4E0A\u65B9\u8DEF\u5F84\u6846\u8DF3\u8F6C\u5230\u5B50\u76EE\u5F55\u5B9A\u4F4D","list.itemCount":"{count} \u9879","placeholder.newDirName":"\u65B0\u76EE\u5F55\u540D\uFF08\u76F8\u5BF9\u5F53\u524D\u76EE\u5F55\uFF09","msg.creatingDir":"\u521B\u5EFA\u76EE\u5F55 {name}\u2026","btn.ok":"\u786E\u5B9A","btn.confirm":"\u786E\u8BA4?","btn.cancelTransfer":"\u53D6\u6D88\u4F20\u8F93","msg.downloadCanceled":"\u5DF2\u53D6\u6D88\u4E0B\u8F7D {name}","error.downloadFailed":"\u4E0B\u8F7D\u5931\u8D25","msg.downloaded":"\u5DF2\u4E0B\u8F7D {name}\uFF08{size}\uFF09","error.downloadTooBig":"\u6587\u4EF6\u8D85\u8FC7\u4E0B\u8F7D\u4E0A\u9650\uFF08{size}\uFF09\uFF1A\u8BF7\u7528\u53CC\u680F \u21E6 \u76F4\u4F20\u6216\u7EC8\u7AEF scp/rsync","msg.canceled":"\u5DF2\u53D6\u6D88","btn.upload":"\u4E0A\u4F20","btn.uploadTitle":"\u9009\u62E9\u6587\u4EF6\u4E0A\u4F20\uFF1B\u4E5F\u53EF\u4EE5\u628A\u6587\u4EF6 / \u6587\u4EF6\u5939\u76F4\u63A5\u62D6\u8FDB\u5217\u8868","msg.uploading":"\u4E0A\u4F20\u4E2D\u2026","msg.uploadDone":"\u4E0A\u4F20\u5B8C\u6210","error.uploadFailed":"\u4E0A\u4F20\u5931\u8D25","error.networkError":"\u7F51\u7EDC\u9519\u8BEF","error.uploadCountExceeded":"\u6587\u4EF6\u6570\u8D85\u8FC7\u4E0A\u9650\uFF08{max}\uFF09\uFF1A\u672C\u6B21 {count} \u4E2A\uFF0C\u8BF7\u5206\u6279\u4E0A\u4F20","status.overLimit":"\u8D85\u9650","error.uploadTooBig":"\u6587\u4EF6\u8D85\u8FC7\u4E0A\u4F20\u4E0A\u9650\uFF08{size}\uFF09\uFF1A{name}\uFF0C\u8BF7\u7528\u53CC\u680F \u21E8 \u76F4\u4F20\u6216\u7EC8\u7AEF scp/rsync","error.uploadTotalTooBig":"\u6587\u4EF6\u603B\u5927\u5C0F\u8D85\u8FC7\u4E0A\u4F20\u4E0A\u9650\uFF1A\u8BF7\u5206\u6279\u4E0A\u4F20\uFF08\u6216\u7528\u53CC\u680F \u21E8 \u76F4\u4F20\uFF09","msg.uploadCanceled":"\u5DF2\u53D6\u6D88\u4E0A\u4F20\uFF08\u5DF2\u4F20 {done}/{total} \u4E2A\uFF09","status.allDone":"\u5168\u90E8\u5B8C\u6210","msg.uploadDoneCount":"\u4E0A\u4F20\u5B8C\u6210 {count} \u4E2A\u6587\u4EF6","error.connectFailed":"\u8FDE\u63A5\u5931\u8D25\uFF1A{error}","status.connectingEllipsis":"\u8FDE\u63A5\u4E2D\u2026","status.connectedPid":"\u5DF2\u8FDE\u63A5 pid={pid}","status.connectedSsh":"SSH {target}\u5DF2\u8FDE\u63A5","status.exitedWith":"\u5DF2\u9000\u51FA {detail}","status.error":"\u9519\u8BEF\uFF1A{message}","status.retryHint":"{message} \xB7 \u70B9\u51FB\u91CD\u8BD5","btn.clickRetry":"\u70B9\u51FB\u91CD\u8BD5","status.disconnectedReconnecting":"\u8FDE\u63A5\u65AD\u5F00 \u2014 \u81EA\u52A8\u91CD\u8FDE\u4E2D","status.disconnected":"\u8FDE\u63A5\u65AD\u5F00","status.reconnecting":"\u81EA\u52A8\u91CD\u8FDE\u4E2D\u2026","error.copyFailed":"\u590D\u5236\u5931\u8D25\uFF1A\u5F53\u524D\u73AF\u5883\u4E0D\u5141\u8BB8\u8BBF\u95EE\u526A\u8D34\u677F\uFF08http \u8BBF\u95EE\u65F6\u8BF7\u6539\u7528 localhost \u6216\u7EC8\u7AEF\u5185\u5FEB\u6377\u952E\uFF09","error.pasteFailed":"\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u7F51\u9875\u8BFB\u53D6\u526A\u8D34\u677F\uFF08http \u8BBF\u95EE\u65F6\u5E38\u89C1\uFF09\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u91CC\u6309 Ctrl+V / Cmd+V \u7C98\u8D34","status.initializing":"\u521D\u59CB\u5316\u2026","placeholder.search":"\u641C\u7D22 (Enter \u4E0B\u4E00\u4E2A, Shift+Enter \u4E0A\u4E00\u4E2A)","btn.searchTitle":"\u641C\u7D22 (Ctrl+F)","btn.clearTitle":"\u6E05\u5C4F","btn.copyTitle":"\u590D\u5236\u9009\u4E2D\u5185\u5BB9","btn.pasteTitle":"\u7C98\u8D34","btn.minimizeTitle":"\u6700\u5C0F\u5316\uFF08\u4F1A\u8BDD\u4FDD\u6301\u8FD0\u884C\uFF0C\u72B6\u6001\u5E76\u5165\u4FA7\u8FB9\u680F\u5165\u53E3\uFF09","btn.closePanelTitle":"\u5173\u95ED\u9762\u677F\uFF08\u7ED3\u675F\u4F1A\u8BDD\uFF0C\u6807\u7B7E\u4FDD\u7559\uFF0C\u91CD\u5F00\u5373\u6062\u590D\u5217\u8868\uFF09","btn.restoreDock":"\u70B9\u51FB\u6062\u590D\u7EC8\u7AEF\u7A97\u53E3","panel.title":"\u7EC8\u7AEF","status.minimized":"\u7EC8\u7AEF\u5DF2\u6700\u5C0F\u5316 \u2014 \u70B9\u51FB\u6062\u590D","error.configLoadFailed":"\u8BFB\u53D6\u914D\u7F6E\u5931\u8D25","error.saveTunnelFailed":"\u4FDD\u5B58\u96A7\u9053\u5931\u8D25","error.tunnelNameTaken":"\u5DF2\u5B58\u5728\u540C\u540D\u96A7\u9053\u300C{name}\u300D\u2014\u2014\u540C\u4E00\u300C\u8FDE\u63A5\u7C3F\u6761\u76EE + \u65B9\u5411 + \u7AEF\u53E3\u300D\u53EA\u80FD\u6709\u4E00\u6761\u3002\u6539\u7AEF\u53E3\u4F1A\u5F97\u5230\u65B0\u540D\u5B57\uFF0C\u6216\u5148\u5220\u6389\u65E7\u7684\u90A3\u6761\u3002","msg.tunnelApplied":"\u96A7\u9053\u300C{name}\u300D\u5DF2\u751F\u6548","msg.tunnelUpdated":"\u96A7\u9053\u300C{name}\u300D\u5DF2\u66F4\u65B0","error.nameHostUserRequired":"\u540D\u79F0\u3001\u4E3B\u673A\u3001\u7528\u6237\u540D\u5FC5\u586B","msg.hostEdited":"\u5DF2\u4FEE\u6539\u6761\u76EE\u300C{name}\u300D\u2014 \u968F\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","error.probeFailed":"\u274C \u8FDE\u63A5\u5931\u8D25\uFF1A{error}","error.hostKeyDeleteFailed":"\u5220\u9664\u4E3B\u673A\u5BC6\u94A5\u8BB0\u5F55\u5931\u8D25","msg.hostKeyDeleted":"\u5DF2\u5220\u9664\u4E3B\u673A\u5BC6\u94A5\u8BB0\u5F55\uFF08\u4E0B\u6B21\u8FDE\u63A5\u91CD\u65B0\u8BB0\u5F55\u6307\u7EB9\uFF09","error.sshConfigReadFailed":"\u8BFB\u53D6 ~/.ssh/config \u5931\u8D25","msg.proxySkipped":"{count} \u6761\u7528\u4E86\u8DF3\u677F\u673A\u4F46\u89E3\u6790\u4E0D\u51FA\u8DF3\u677F\u673A\uFF08\u522B\u540D\u7F3A\u5931 / \u522B\u540D\u81EA\u5DF1\u8FD8\u4F9D\u8D56\u8DF3\u677F\u673A\uFF09\u672A\u5BFC\u5165\uFF1A{names}","msg.proxyCommandSkipped":"{count} \u6761\u53EA\u914D\u4E86\u4EE3\u7406\u547D\u4EE4\uFF08ProxyCommand\uFF09\u672A\u5BFC\u5165\uFF1A{names} \u2014\u2014 \u4EE3\u7406\u547D\u4EE4\u662F\u300C\u672C\u673A\u6267\u884C\u4E00\u6761\u547D\u4EE4\u300D\u90A3\u4E00\u6863\uFF0C\u5BFC\u5165\u4E0D\u4F1A\u81EA\u52A8\u5E26\u5165\uFF1B\u9700\u8981\u65F6\u5728\u8FDE\u63A5\u7C3F\u91CC\u624B\u586B\u5E76\u6253\u5F00\u300C\u5141\u8BB8 ProxyCommand\u300D","msg.skippedNotConcrete":"{count} \u6761\u4E0D\u662F\u5177\u4F53\u4E3B\u673A\uFF08\u901A\u914D / \u65E0 User\uFF09","list.separator":"\u3001","meta.etc":" \u7B49","msg.importOverflow":"\u8D85\u8FC7\u5BFC\u5165\u4E0A\u9650\u7684 {count} \u6761\u672A\u5BFC\u5165","list.separatorFull":"\uFF1B","msg.noNewEntries":"\u6CA1\u6709\u65B0\u6761\u76EE\uFF08{count} \u6761\u540C\u540D\u8DF3\u8FC7\uFF09","msg.noImportableHosts":"~/.ssh/config \u91CC\u6CA1\u6709\u53EF\u5BFC\u5165\u7684\u5177\u4F53\u4E3B\u673A","msg.importedHosts":"\u5DF2\u5BFC\u5165 {added} \u6761\uFF08\u540C\u540D\u8DF3\u8FC7 {skipped} \u6761\uFF09\uFF0C\u968F\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","error.knownHostsReadFailed":"\u8BFB\u53D6 ~/.ssh/known_hosts \u5931\u8D25","msg.noNewFingerprints":"\u6CA1\u6709\u65B0\u6307\u7EB9\uFF08{count} \u6761\u5DF2\u5B58\u5728\uFF09","msg.noImportableKnownHosts":"known_hosts \u91CC\u6CA1\u6709\u53EF\u5BFC\u5165\u7684\u5177\u4F53\u4E3B\u673A","error.saveHostKeysFailed":"\u4FDD\u5B58 hostKeys \u5931\u8D25","msg.importedFingerprints":"\u5DF2\u5BFC\u5165 {added} \u6761\u4E3B\u673A\u7684\u6307\u7EB9\uFF08\u8DF3\u8FC7 {skipped} \u6761\u5DF2\u5B58\u5728\uFF09","hint.knownHostsTruncated":"\uFF1B\u6CE8\u610F\uFF1Aknown_hosts \u8D85\u8FC7 500 \u6761\u4E3B\u673A\uFF0C\u672C\u6B21\u4EC5\u5BFC\u5165\u524D 500 \u6761","error.saveFailed":"\u4FDD\u5B58\u5931\u8D25","msg.saved":"\u5DF2\u4FDD\u5B58\u5E76\u70ED\u751F\u6548","check.rememberCredentialApply":"\u5E94\u7528\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8","hint.appliedOnSave":"\u968F\u5361\u7247\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","card.name":"\u7EC8\u7AEF\u9762\u677F","card.desc":"xterm \u7EC8\u7AEF\u9762\u677F\uFF1A\u591A\u6807\u7B7E\u9875\u3001\u65AD\u7EBF\u81EA\u52A8\u91CD\u8FDE\u3001cwd \u8DDF\u968F\u4F1A\u8BDD\u3001SSH \u8FDE\u63A5\u7C3F\u4E0E\u4E3B\u673A\u6307\u7EB9\u9489\u624E\u3001tmux \u4F1A\u8BDD\u6301\u4E45\u5316\u3002","card.descFull":"xterm \u7EC8\u7AEF\u9762\u677F\uFF1A\u591A\u6807\u7B7E\u9875\u3001\u65AD\u7EBF\u81EA\u52A8\u91CD\u8FDE\u3001cwd \u8DDF\u968F\u4F1A\u8BDD\u3001SSH \u8FDE\u63A5\u7C3F\u4E0E\u4E3B\u673A\u6307\u7EB9\u9489\u624E\u3001tmux \u4F1A\u8BDD\u6301\u4E45\u5316\uFF1Bshell / TERM / \u5E76\u53D1\u4E0A\u9650\u7B49\u4FDD\u5B58\u5373\u70ED\u751F\u6548\u3002","list.loadingConfig":"\u52A0\u8F7D\u914D\u7F6E\u4E2D\u2026","section.basic":"\u57FA\u7840","check.enabled":"\u542F\u7528\u63D2\u4EF6\uFF08\u4FDD\u5B58\u5373\u70ED\u751F\u6548\uFF1A\u5DE5\u5177\u4E0E\u9762\u677F\u5165\u53E3\u7ACB\u523B\u6536\u8D77\uFF0C\u4F1A\u8BDD\u8F6C\u4FDD\u6D3B\uFF09","check.announce":"\u5411 agent \u516C\u544A\u7EC8\u7AEF\u9762\u677F\u80FD\u529B","check.shellIntegration":"shell \u96C6\u6210\uFF08OSC 133/7 \u6CE8\u5165\uFF09","check.shellIntegrationWindows":"shell \u96C6\u6210\uFF08OSC 133/7 \u6CE8\u5165\uFF0Ctty_capture{last} \u4E0E cwd \u8DDF\u968F\u4F9D\u8D56\u5B83\uFF09","hint.shellIntegrationWindows":"Windows \u5BBF\u4E3B\u4E0A\u4E0D\u9002\u7528\uFF1A\u6CE8\u5165\u8D70\u7684\u662F POSIX \u7684 `-c` \u5305\u88C5\u5C42\u4E0E rc \u6869\uFF0Ccmd / PowerShell \u4E0A\u90FD\u4E0D\u6210\u7ACB\uFF08\u5B9E\u6D4B cmd \u5FFD\u7565 `-c` \u7A7A\u8DD1\u3001PowerShell \u62A5 export \u4E0D\u5B58\u5728\uFF09\u3002\u56E0\u6B64\u300C\u672C\u5730\u300D\u6807\u7B7E\u7684 cwd \u8DDF\u968F\u4E0E tty_capture{last} \u4E0D\u53EF\u7528\uFF1B\u8FDC\u7A0B Linux / macOS \u4E3B\u673A\u7167\u65E7\u652F\u6301\u3002","section.sftp":"SFTP \u6587\u4EF6\u4F20\u8F93","field.sftpStyle":"SFTP \u6587\u4EF6\u6D4F\u89C8\u98CE\u683C","option.sftpDialog":"\u5355\u7A97\u4F53 \u2014 \u8FDC\u7A0B\u76EE\u5F55 + \u4E0A\u4F20/\u4E0B\u8F7D/\u62D6\u62FD","option.sftpDual":"\u53CC\u680F \u2014 \u5DE6\u672C\u673A / \u53F3\u8FDC\u7A0B\uFF0C\u9009\u4E2D\u76F4\u4F20","hint.sftpDual":"\u53CC\u680F\u5728\u672C\u673A\u4E0E\u8FDC\u7A0B\u4E4B\u95F4\u5BF9\u62F7\u6587\u4EF6\uFF08\u76EE\u5F55\u9012\u5F52\u3001\u540C\u540D\u8986\u76D6\uFF09\uFF1B\u91CD\u65B0\u6253\u5F00 SFTP \u540E\u751F\u6548","field.sftpLimits":"SFTP \u4F20\u8F93\u9650\u5236\uFF080 = \u4E0D\u9650\uFF09","field.downloadLimit":"\u4E0B\u8F7D\u4E0A\u9650 (MB)","field.uploadLimit":"\u4E0A\u4F20\u4E0A\u9650 (MB)","field.uploadCountLimit":"\u6279\u91CF\u6587\u4EF6\u6570\u4E0A\u9650","hint.sftpLimits":"\u6D4F\u89C8\u5668\u4FA7\u4FDD\u62A4\uFF1A\u5355\u4E2A\u6587\u4EF6\u8D85\u8FC7\u4E0A\u9650\u65F6\u4E2D\u6B62\u4E0B\u8F7D/\u4E0A\u4F20\uFF08\u5927\u6587\u4EF6\u8BF7\u7528\u53CC\u680F \u21E8/\u21E6 \u76F4\u4F20\u6216\u7EC8\u7AEF scp/rsync\uFF0C\u4E0D\u5360\u6D4F\u89C8\u5668\u5185\u5B58\uFF09\uFF1B\u6587\u4EF6\u6570\u4E0A\u9650\u9488\u5BF9\u4E00\u6B21\u6279\u91CF/\u62D6\u62FD\u4E0A\u4F20\uFF1B\u4FDD\u5B58\u5373\u70ED\u751F\u6548","section.session":"\u4F1A\u8BDD","field.persistence":"\u4F1A\u8BDD\u6301\u4E45\u5316\uFF08tmux\uFF09","option.persistOff":"\u5173\u95ED \u2014 \u4F1A\u8BDD\u968F\u9762\u677F/\u5BBF\u4E3B\u7ED3\u675F\uFF08\u9ED8\u8BA4\uFF09","option.persistTmux":"tmux \u2014 \u65B0\u5F00\u7684\u7EC8\u7AEF/SSH \u6807\u7B7E\u9ED8\u8BA4\u6301\u4E45\u5316","hint.persistence":"\u5F00\u542F\u540E\u6240\u6709\u65B0\u6807\u7B7E\uFF08\u672C\u5730/SSH \u8FDE\u63A5\u7C3F/SSH \u8FDE\u63A5\u5BF9\u8BDD\u6846\uFF09\u9ED8\u8BA4\u7531 tmux \u6258\u7BA1\u3001\u53EF\u8DE8\u5BBF\u4E3B\u91CD\u542F\u6062\u590D\uFF1B\u9700\u672C\u673A/\u8FDC\u7A0B\u5B89\u88C5 tmux\uFF1BSSH \u5BF9\u8BDD\u6846\u53EF\u5BF9\u5355\u6B21\u8FDE\u63A5\u53D6\u6D88\u52FE\u9009\uFF1B\u5DF2\u6709\u6807\u7B7E\u4E0D\u53D7\u5F71\u54CD","hint.persistenceWindows":"\uFF1BWindows \u5BBF\u4E3B\u4E0A tmux \u4E0D\u53EF\u7528\uFF0C\u672C\u5730\u6807\u7B7E\u4F1A\u7167\u5E38\u6253\u5F00\u4F46\u4E0D\u53D7\u6258\u7BA1","check.endOnPageClose":"\u5173\u95ED\u9875\u9762\u540E\u7ED3\u675F\u6301\u4E45\u4F1A\u8BDD\uFF08\u4E0D\u4FDD\u6D3B\uFF09","check.statsEnabled":"\u670D\u52A1\u5668\u72B6\u6001\u6761\uFF08CPU / \u5185\u5B58 / \u78C1\u76D8 / \u5728\u7EBF / TCP / \u7F51\u901F\uFF1B\u91C7\u4E0D\u5230\u7684\u9879\u663E\u793A\u300C\u65E0\u300D\uFF09","hint.statsEnabled":"\u9ED8\u8BA4\u5173\u95ED\uFF1A\u6574\u4E2A\u9875\u9762\u5173\u95ED\u65F6\u6301\u4E45\u4F1A\u8BDD\u7559\u5B58\uFF08\u4FDD\u6D3B\u671F\u540E\u53EF\u518D\u6062\u590D\uFF09\uFF1B\u5F00\u542F\u5219\u9875\u9762\u65AD\u5F00\u4E14\u4FDD\u6D3B\u671F\u7ED3\u675F\u65F6\u8FDE tmux \u4F1A\u8BDD\u4E00\u8D77\u7ED3\u675F\u2014\u2014\u6CE8\u610F\u5237\u65B0\u9875\u9762\u5728\u4FDD\u6D3B\u671F\u5185\u4E0D\u53D7\u5F71\u54CD","check.allowProxyCommand":"\u5141\u8BB8 ProxyCommand\uFF08\u672C\u673A\u6267\u884C\u547D\u4EE4\uFF1B\u9ED8\u8BA4\u5173\uFF09","hint.allowProxyCommand":"\u6253\u5F00\u540E\uFF0C\u8FDE\u63A5\u7C3F\u6761\u76EE\u91CC\u586B\u7684\u4EE3\u7406\u547D\u4EE4\u4F1A\u5728\u8FD9\u53F0\u673A\u5668\u4E0A\u6267\u884C\uFF0C\u5B83\u7684 stdin/stdout \u5F53\u4F5C\u5230\u76EE\u6807\u7684 SSH \u4F20\u8F93\uFF08\u7B49\u4EF7\u4E8E OpenSSH \u7684 ProxyCommand\uFF09\u3002\u8FD9\u662F\u672C\u63D2\u4EF6\u552F\u4E00\u300C\u914D\u7F6E\u91CC\u5199\u4E00\u884C\u5C31\u5728\u672C\u673A\u8DD1\u547D\u4EE4\u300D\u7684\u5F00\u5173\uFF0C\u6240\u4EE5\u9ED8\u8BA4\u5173\uFF1A\u5173\u7740\u65F6\u643A\u5E26\u4EE3\u7406\u547D\u4EE4\u7684\u8FDE\u63A5\u4F1A\u660E\u786E\u5931\u8D25\uFF08\u4E0D\u4F1A\u9000\u56DE\u76F4\u8FDE\uFF09\u3002~/.ssh/config \u5BFC\u5165\u6C38\u4E0D\u81EA\u52A8\u5E26\u5165\u4EE3\u7406\u547D\u4EE4\u3002","field.maxSessions":"\u5E76\u53D1\u4F1A\u8BDD\u4E0A\u9650\uFF081~16\uFF09","hint.maxSessions":"\u8D85\u8FC7\u4E0A\u9650\u7684\u65B0\u6807\u7B7E\u4F1A\u88AB\u62D2\u7EDD\uFF1B\u4FDD\u5B58\u5373\u70ED\u751F\u6548","field.shell":"Shell \u8DEF\u5F84\uFF08\u9ED8\u8BA4 $SHELL\uFF09","field.shellWindows":"Shell \u8DEF\u5F84\uFF08\u9ED8\u8BA4 %COMSPEC%\uFF09","placeholder.shell":"\u7559\u7A7A\u4F7F\u7528 $SHELL","placeholder.shellWindows":"\u7559\u7A7A\u4F7F\u7528 %COMSPEC%\uFF08\u4E5F\u53EF\u586B powershell.exe / pwsh.exe \u5B8C\u6574\u8DEF\u5F84\uFF09","list.noShellCandidate":"\u6CA1\u6709\u5339\u914D\u7684\u5019\u9009 \u2014 \u76F4\u63A5\u8F93\u5165\u4EFB\u610F\u8DEF\u5F84\u5373\u53EF","hint.shellCandidatesWindows":"Windows \u5BBF\u4E3B\uFF1A\u5019\u9009\u6765\u81EA %COMSPEC% \u4E0E\u5DF2\u5B89\u88C5\u7684 PowerShell\uFF08Windows PowerShell 5.1 / PowerShell 7\uFF09\uFF0C\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u4EFB\u610F\u8DEF\u5F84\uFF1Bcmd / PowerShell \u6CA1\u6709 POSIX \u7684\u547D\u4EE4\u8FB9\u754C\u94A9\u5B50\uFF0C\u6240\u4EE5\u8FD9\u4E24\u8005\u4E0D\u652F\u6301 shell \u96C6\u6210","hint.shellCandidates":"\u53EF\u4E0B\u62C9\u9009\u62E9\u672C\u673A\u5DF2\u5B89\u88C5 shell\uFF08$SHELL \u4F18\u5148\uFF09\uFF0C\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u4EFB\u610F\u8DEF\u5F84\uFF1Bzsh / bash \u652F\u6301 shell \u96C6\u6210","hint.term":"TUI \u7A0B\u5E8F\u4F9D\u8D56\u6B64\u503C","field.cwd":"\u515C\u5E95\u5DE5\u4F5C\u76EE\u5F55\uFF08\u5BA2\u6237\u7AEF\u5F53\u524D\u4F1A\u8BDD cwd \u4F18\u5148\uFF09","placeholder.cwd":"\u7559\u7A7A\u4F7F\u7528\u5BBF\u4E3B\u8FDB\u7A0B\u542F\u52A8\u76EE\u5F55","field.grace":"\u65AD\u7EBF\u4FDD\u6D3B\uFF08\u79D2\uFF0C0 = \u7ACB\u5373\u7ED3\u675F\uFF09","hint.grace":"\u5237\u65B0\u9875\u9762/\u7F51\u7EDC\u6296\u52A8\u540E\u4F1A\u8BDD\u4FDD\u6D3B\u7B49\u5F85\u91CD\u8FDE\uFF0C\u8D85\u65F6\u540E\u7ED3\u675F\uFF1B\u4FDD\u5B58\u5373\u70ED\u751F\u6548","section.assist":"AI \u8F85\u52A9","check.assistEnabled":"\u5931\u8D25\u5373\u89E3\u91CA\uFF08\u547D\u4EE4\u975E\u96F6\u9000\u51FA\u65F6\u95EE\u6A21\u578B\u300C\u4E3A\u4EC0\u4E48 / \u4E0B\u4E00\u6B65\u300D\uFF09","hint.assistEnabled":"\u9ED8\u8BA4\u5173\u3002\u5F00\u542F\u540E\uFF0C\u547D\u4EE4\u4EE5\u975E\u96F6\u72B6\u6001\u7ED3\u675F\u65F6\u7EC8\u7AEF\u53F3\u4E0B\u89D2\u4F1A\u51FA\u73B0\u4E00\u679A\u5FBD\u6807\uFF1B\u70B9\u5B83\u624D\u628A\u90A3\u6761\u547D\u4EE4\u7684\u300C\u8F93\u51FA\u5C3E\u90E8\u300D\uFF08\u5265\u79BB\u989C\u8272\u4E0E\u8FDB\u5EA6\u6761\u3001\u6298\u6389\u91CD\u590D\u884C\u3001\u5BC6\u94A5/token \u5DF2\u906E\u76D6\uFF09\u8FDE\u540C\u5F53\u524D\u5C4F\u5E55\u53D1\u7ED9\u6A21\u578B\uFF0C\u4E0D\u53D1 scrollback\u3002\u6A21\u578B\u7ED9\u7684\u547D\u4EE4\u53EA\u4F1A\u300C\u586B\u5165\u300D\u547D\u4EE4\u884C\uFF0C\u6C38\u4E0D\u66FF\u4F60\u56DE\u8F66\u3002","field.assistRoute":"\u6A21\u578B\u8DEF\u7531\uFF08\u53EF\u9009\uFF09","hint.assistRoute":"\u7559\u7A7A\u8DDF\u968F\u5BBF\u4E3B\u9ED8\u8BA4\u6A21\u578B","option.followHostModel":"\u8DDF\u968F\u5BBF\u4E3B\u9ED8\u8BA4\u6A21\u578B","list.modelLoading":"\u6B63\u5728\u53D6\u5019\u9009\u2026","list.noModelCandidate":"\u5BBF\u4E3B\u6CA1\u6709\u53EF\u7528\u7684\u6A21\u578B","list.modelCatalogFailed":"\u62FF\u4E0D\u5230\u5019\u9009\uFF1A\u5BBF\u4E3B\u53EF\u80FD\u8FD8\u6CA1\u91CD\u542F\uFF0C\u6216\u6CA1\u6709\u63D0\u4F9B\u6A21\u578B\u76EE\u5F55\uFF08\u624B\u8F93\u8BF7\u6309 provider/model\uFF09","badge.assistFailed":"\u547D\u4EE4\u5931\u8D25\uFF08{code}\uFF09\xB7 \u89E3\u91CA\u4E00\u4E0B","panel.assistTitle":"\u8FD9\u6761\u547D\u4EE4\u4E3A\u4EC0\u4E48\u5931\u8D25","panel.assistCommand":"\u5EFA\u8BAE\u547D\u4EE4","status.assistThinking":"\u6B63\u5728\u95EE\u6A21\u578B\u2026","error.assistRequest":"\u89E3\u91CA\u5931\u8D25\uFF1A{message}","btn.assistFill":"\u586B\u5165\u547D\u4EE4\u884C","btn.assistCopy":"\u590D\u5236\u7B54\u6848","btn.assistCopyError":"\u590D\u5236\u62A5\u9519","btn.assistClose":"\u5173\u95ED","hint.assistFillNoEnter":"\u53EA\u5199\u8FDB\u547D\u4EE4\u884C\uFF0C\u4E0D\u4F1A\u66FF\u4F60\u56DE\u8F66","hint.assistNoCommand":"\u6A21\u578B\u6CA1\u7ED9\u51FA\u53EF\u76F4\u63A5\u586B\u7684\u547D\u4EE4 \u2014 \u7528\u300C\u590D\u5236\u300D\u81EA\u5DF1\u6311","section.ssh":"SSH \u8FDE\u63A5","btn.probeRowTitle":"\u8BD5\u8FDE\u8BE5\u6761\u76EE\uFF1ATCP \u2192 \u4E3B\u673A\u5BC6\u94A5 \u2192 \u8BA4\u8BC1\u9010\u6BB5\u8BCA\u65AD","msg.testing":"\u6D4B\u8BD5\u4E2D\u2026","btn.test":"\u6D4B\u8BD5","btn.edit":"\u7F16\u8F91","btn.delete":"\u5220\u9664","list.emptySshHosts":"\u6682\u65E0\u6761\u76EE \u2014 \u7EC8\u7AEF\u9762\u677F\u300C+\u300D\u2192 SSH \u8FDE\u63A5\u2026 \u52FE\u9009\u300C\u4FDD\u5B58\u5230\u8FDE\u63A5\u7C3F\u300D\u5373\u53EF\u6DFB\u52A0","btn.importSshConfig":"\u4ECE ~/.ssh/config \u5BFC\u5165","hint.importSshConfig":"\u540C\u540D\u8DF3\u8FC7\uFF1B\u968F\u300C\u4FDD\u5B58\u300D\u5199\u5165\u914D\u7F6E","hint.sshBook":"\u968F\u300C\u4FDD\u5B58\u300D\u4E00\u5E76\u5199\u5165\u914D\u7F6E\uFF1B\u5BC6\u7801/\u53E3\u4EE4\u652F\u6301 env:VAR \u5F15\u7528\uFF0C\u907F\u514D\u660E\u6587\u5165\u5E93","check.tunnelEnabled":"\u542F\u7528","list.emptyTunnels":"\u6682\u65E0\u96A7\u9053 \u2014 \u628A\u8FDC\u7A0B\u6570\u636E\u5E93/\u5185\u90E8\u670D\u52A1\u6620\u5C04\u5230\u672C\u5730\u7AEF\u53E3","field.direction":"\u8F6C\u53D1\u65B9\u5411","option.localForwardTitle":"\u672C\u5730\u8F6C\u53D1 -L\uFF1A\u672C\u673A\u76D1\u542C\uFF0C\u8FDE\u5230 SSH \u670D\u52A1\u5668\u4FA7\u7684\u76EE\u6807","option.localForward":"\u672C\u5730 -L","option.remoteForwardTitle":"\u8FDC\u7A0B\u8F6C\u53D1 -R\uFF1ASSH \u670D\u52A1\u5668\u4FA7\u76D1\u542C\uFF0C\u62E8\u56DE\u672C\u673A\u670D\u52A1","option.remoteForward":"\u8FDC\u7A0B -R","option.selectBook":"\u9009\u62E9\u8FDE\u63A5\u7C3F\u6761\u76EE","hint.tunnelViaBook":"\u7ECF {book} \u8FDE\u63A5 \u2014 \u96A7\u9053\u7684\u4E3B\u673A\u4E0E\u8BA4\u8BC1\u53D6\u81EA\u8BE5\u8FDE\u63A5\u7C3F\u6761\u76EE","hint.tunnelBookEmpty":"\u9009\u62E9\u8FD9\u6761\u96A7\u9053\u8981\u8D70\u54EA\u53F0 SSH \u8FDE\u63A5\uFF08\u4E3B\u673A\u4E0E\u8BA4\u8BC1\u53D6\u81EA\u8FDE\u63A5\u7C3F\uFF09","hint.localListenFixed":"\u672C\u673A\u76D1\u542C\u5730\u5740\u56FA\u5B9A 127.0.0.1\uFF08\u4E0D\u66B4\u9732\u5230\u5C40\u57DF\u7F51\uFF09","placeholder.localPort":"\u672C\u673A\u7AEF\u53E3","field.localListenPort":"\u672C\u673A\u76D1\u542C\u7AEF\u53E3","hint.flowLocalToRemote":"\u6570\u636E\u6D41\u5411\uFF1A\u672C\u673A \u2192 SSH \u670D\u52A1\u5668\u4FA7","placeholder.remoteHost":"\u670D\u52A1\u5668\u4FA7\u4E3B\u673A","hint.remoteHostTitle":"\u76EE\u6807\u4E3B\u673A\u540D\u6216 IP\uFF08\u7531 SSH \u670D\u52A1\u5668\u4FA7\u8BBF\u95EE\uFF1B127.0.0.1 = \u670D\u52A1\u5668\u81EA\u8EAB\uFF09","field.remoteHost":"\u670D\u52A1\u5668\u4FA7\u76EE\u6807\u4E3B\u673A","placeholder.port":"\u7AEF\u53E3","field.remotePort":"\u670D\u52A1\u5668\u4FA7\u76EE\u6807\u7AEF\u53E3","placeholder.remoteListenHost":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u5730\u5740","hint.remoteListenHost":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u5730\u5740\uFF08\u7F3A\u7701 127.0.0.1\uFF1B\u7559\u7A7A\u5373\u53EA\u8BA9\u670D\u52A1\u5668\u81EA\u5DF1\u8BBF\u95EE\uFF09","field.remoteListenHost":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u5730\u5740","placeholder.listenPort":"\u76D1\u542C\u7AEF\u53E3","field.remoteListenPort":"\u670D\u52A1\u5668\u4FA7\u76D1\u542C\u7AEF\u53E3","hint.flowRemoteToLocal":"\u6570\u636E\u6D41\u5411\uFF1A\u672C\u673A \u2190 SSH \u670D\u52A1\u5668\u4FA7","hint.localDialFixed":"\u672C\u673A\u62E8\u53F7\u5730\u5740\u56FA\u5B9A 127.0.0.1","placeholder.localTargetPort":"\u672C\u673A\u670D\u52A1\u7AEF\u53E3","field.localTargetPort":"\u672C\u673A\u76EE\u6807\u7AEF\u53E3","hint.tunnelLocalSummary":"\u5DE6\uFF1A\u672C\u673A\u76D1\u542C\uFF08\u56FA\u5B9A 127.0.0.1\uFF09\u2192 \u53F3\uFF1A\u7531 SSH \u670D\u52A1\u5668\u4FA7\u8BBF\u95EE\u7684\u76EE\u6807","hint.tunnelRemoteSummary":"\u5DE6\uFF1ASSH \u670D\u52A1\u5668\u4FA7\u76D1\u542C \u2192 \u53F3\uFF1A\u672C\u673A\u88AB\u8BBF\u95EE\u7684\u670D\u52A1\uFF08\u56FA\u5B9A 127.0.0.1\uFF09","btn.addTunnel":"\u6DFB\u52A0\u96A7\u9053","hint.tunnelAdd":"\u6DFB\u52A0\u540E\u7ACB\u5373\u751F\u6548\uFF1B\u65AD\u7EBF\u81EA\u52A8\u91CD\u8FDE\uFF1B\u672C\u5730\u7AEF\u53E3\u5EFA\u8BAE 1024 \u4EE5\u4E0A\uFF1B\u8FDC\u7A0B\u4E3B\u673A\u7531 SSH \u670D\u52A1\u5668\u4FA7\u8BBF\u95EE\uFF08127.0.0.1 = \u670D\u52A1\u5668\u81EA\u8EAB\uFF09","hint.tunnelEditing":"\u6B63\u5728\u7F16\u8F91\u300C{name}\u300D\u2014\u2014\u6539\u7AEF\u53E3/\u6761\u76EE\u4F1A\u6309\u89C4\u5219\u751F\u6210\u65B0\u540D\u5B57\uFF1B\u4FDD\u5B58\u540E\u7ACB\u5373\u751F\u6548","panel.hostKeys":"SSH \u4E3B\u673A\u5BC6\u94A5\u8BB0\u5F55\uFF08TOFU\uFF09","btn.importKnownHosts":"\u4ECE known_hosts \u5BFC\u5165","list.emptyHostKeys":"\u6682\u65E0\u8BB0\u5F55 \u2014 \u9996\u6B21 SSH \u8FDE\u63A5\u6210\u529F\u540E\u81EA\u52A8\u8BB0\u5F55\u4E3B\u673A\u6307\u7EB9","hint.hostKeys":"\u4E00\u673A\u591A\u628A\u94A5\u5319\uFF08\u5982 rsa + ed25519\uFF09\u5404\u8BB0\u4E00\u6761\u6307\u7EB9\uFF0C\u4EFB\u4E00\u5339\u914D\u5373\u653E\u884C\uFF1B\u6307\u7EB9\u53D8\u66F4\u65F6\u8FDE\u63A5\u4F1A\u88AB\u62D2\u7EDD\uFF08\u9632\u4E2D\u95F4\u4EBA\uFF09\uFF0C\u786E\u8BA4\u5B89\u5168\u540E\u5220\u9664\u5BF9\u5E94\u8BB0\u5F55\u5373\u53EF\u91CD\u8FDE","msg.saving":"\u4FDD\u5B58\u4E2D\u2026","btn.save":"\u4FDD\u5B58","list.none":"\u65E0","meta.mem":"\u5185\u5B58","meta.disk":"\u78C1\u76D8","meta.cores":"\u6838\u5FC3","meta.uptime":"\u5728\u7EBF","meta.temp":"CPU\u6E29\u5EA6","meta.net":"\u7F51\u7EDC","error.tunnelNoBook":"\u8BF7\u5148\u5728\u8FDE\u63A5\u7C3F\u91CC\u6DFB\u52A0 SSH \u6761\u76EE","error.tunnelRemotePortRequired":"\u8FDC\u7A0B\u76D1\u542C\u7AEF\u53E3\u4E0E\u672C\u5730\u76EE\u6807\u7AEF\u53E3\u5FC5\u586B\uFF081~65535\uFF09","error.tunnelLocalRequired":"\u672C\u5730\u7AEF\u53E3\u3001\u8FDC\u7A0B\u4E3B\u673A\u3001\u8FDC\u7A0B\u7AEF\u53E3\u5FC5\u586B","error.tunnelMissing":"\u96A7\u9053\u300C{name}\u300D\u5DF2\u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u88AB\u53E6\u4E00\u4E2A\u7A97\u53E3\u5220\u9664\uFF09","error.tunnelClash":"\u5DF2\u5B58\u5728\u540C\u540D\u96A7\u9053\u300C{name}\u300D\u2014\u2014\u8BF7\u5148\u5904\u7406\u90A3\u6761\u540C\u540D\u7684\u3002","msg.renaming":"\u91CD\u547D\u540D {name}\u2026","msg.deleting":"\u5220\u9664 {name}\u2026","msg.downloading":"\u4E0B\u8F7D {name}\u2026","msg.uploadingName":"\u4E0A\u4F20 {name}","error.invalidTaskState":"\u670D\u52A1\u7AEF\u8FD4\u56DE\u4E86\u975E\u6CD5\u7684\u4EFB\u52A1\u72B6\u6001","hint.rememberCredentialApply":"\u52FE\u9009\u540E\uFF0C\u70B9\u300C\u5E94\u7528\u300D\u65F6\u628A\u5BC6\u7801\u5199\u8FDB\u5B98\u65B9\u51ED\u636E\u5B58\u50A8\uFF0C\u5B57\u6BB5\u91CC\u53EA\u7559 env: \u5F15\u7528\uFF08\u503C\u5728 ~/.dsh/.credentials.yaml\uFF0C\u4E0D\u8FDB\u73AF\u5883\u3001\u4E0D\u56DE\u4F20\u6D4F\u89C8\u5668\uFF1B\u6321\u4E0D\u4F4F\u540C\u7528\u6237\u8FDB\u7A0B\u4E0E agent\uFF09\u3002\u4E0D\u52FE\u9009\u5219\u6309\u73B0\u72B6\u660E\u6587\u5199\u8FDB\u8BBE\u7F6E\u6587\u4EF6\u3002\u80FD\u7528\u5BC6\u94A5 / agent \u5C31\u522B\u5B58\u5BC6\u7801\u3002","hint.noCredRefPasswordApply":"\u8FD8\u6CA1\u6709\u522B\u7684\u8FDE\u63A5\u7528\u8FC7\u51ED\u636E\u5F15\u7528 \u2014 \u52FE\u4E0A\u9762\u7684\u300C\u5E94\u7528\u65F6\u5B58\u5165\u51ED\u636E\u5B58\u50A8\u300D\u65B0\u5EFA\u4E00\u4E2A\uFF0C\u6216\u76F4\u63A5\u5728\u5BC6\u7801\u6846\u624B\u8F93 env:NAME","hint.bookNameConflict":"\u540C\u540D\u51B2\u7A81\u4F1A\u88AB\u62D2\u7EDD","btn.apply":"\u5E94\u7528"},yp={"error.credServiceMissing":"The host does not provide the credential service (remote.credentials)","error.credServiceIncomplete":"The credential service is incomplete","error.credStoreUnavailable":"The host does not provide the credential service (remote.credentials); cannot store","error.credStoreFailed":"Failed to store the credential: {error}","error.credClearUnavailable":"The host does not provide the credential service (remote.credentials); cannot clear","error.credClearFailed":"Failed to clear: {error}","error.credRefNeedsHost":"Fill in host and username first \u2014 the reference name is derived from them","btn.reopen":"Reopen","btn.reopenTitle":"Reopen the session with the original connection settings","btn.sftpTitle":"Open the SFTP file browser for this connection","btn.tunnels":"Tunnels {count}","btn.tunnelsTitle":"View the port-forwarding tunnels of this connection","btn.more":"More","btn.moreTitle":"More actions (port forwarding\u2026)","btn.reopenSession":"Reopen session","status.exited":"Session exited","status.ended":"Session ended","btn.clickReopen":"Click to reopen","btn.clickRerun":"Click to run again","msg.passwordNotStored":"For security, plaintext passwords/passphrases are not kept in browser storage, so this connection needs them again: re-enter them when reopening the tab, or switch the credential to an env: reference in the settings card (the value lives in the host credential store).","error.terminalNeedsCommand":"ttyTerminal requires a command","error.terminalCommandSingleLine":"command must be a single line","error.terminalNeedsHost":"ttyTerminal.mount requires an HTMLElement as the mount point","error.panelNotReady":"ttyPanel.mountPane: the terminal panel is not ready","panel.dragHeight":"Drag to resize height","panel.dragWidth":"Drag to resize width","btn.closePane":"Close the side pane","btn.expandPane":"Expand the side pane","btn.collapsePane":"Collapse the side pane","panel.tabLabel":"Terminal {n}","btn.close":"Close","btn.closeTabAria":"Close tab: {label}","btn.newTab":"New (local / SSH)","btn.tabList":"Tab list","btn.tabListTitle":"Tab list ({n})","list.tabsAllVisible":"No tabs are out of view","meta.tunnelRemote":"remote:{host}:{port} \u2192 local:{local}","meta.tunnelLocal":"local:{local} \u2192 {host}:{port}","status.tmuxPersistedTitle":"Hosted by tmux \u2014 the session is reattached by name after a disconnect or host restart","status.notPersisted":"Not persisted","status.tmuxUnavailableTitle":"A persistent session was requested but tmux is unavailable \u2014 this is a plain session","status.connected":"Connected","status.connecting":"Connecting","status.errored":"Connection error","panel.tunnels":"Port forwarding","hint.tunnelsSettings":"Configure in Settings \u2192 Plugins \u2192 Terminal panel","panel.tunnelsFor":"Port forwarding \u2014 {name}","list.loading":"Loading\u2026","hint.tunnelsCard":"Add, remove, enable, or disable tunnels in the port-forwarding section of Settings \u2192 Plugins \u2192 Terminal panel","list.noActiveTunnels":"No enabled tunnels for this connection","status.fatalSuffix":" (no retry; fix the config)","msg.maxSessions":"Session limit reached ({live} total / max {max}: {own} in this window{others}) \u2014 close unused windows or tabs, or raise \u201CConcurrent session limit\u201D in the settings card","msg.maxSessionsOthers":" + {count} in other windows","error.probeHttp":"Connection test failed (HTTP {status})","msg.probing":"Testing the connection\u2026","meta.reachable":"reachable","meta.unreachable":"unreachable","meta.probeBanner":"banner ok","meta.hostKeyMatched":"Host key matched","meta.hostKeyRecorded":"Host key recorded (TOFU)","meta.hostKeyMismatch":"Host key mismatch!","meta.authOkMs":"Authenticated ({ms}ms)","meta.authOk":"Authenticated","meta.probeOk":"\u2705 Connected: {detail}","error.unknown":"Unknown error","btn.maxSessionsTitle":"Session limit reached \u2014 click to see what to do","option.localTerminal":"Local terminal","hint.tmuxHosted":"Hosted by tmux \xB7 recoverable after a host restart","hint.openInSessionCwd":"Open in the current session working directory","panel.sshBook":"SSH host book","btn.sftpFileBrowse":"SFTP file browser","btn.editConnection":"Edit connection","list.emptySshBook":"(empty \u2014 save one in the settings card or via \u201CSSH connection\u2026\u201D)","option.sshConnect":"SSH connection\u2026","hint.sshConnect":"Fill in host, user, and authentication manually","panel.editConnection":"Edit connection \xB7 {name}","panel.sshConnect":"SSH connection","section.jump":"Jump host","field.jumpHost":"Jump host ([user@]host[:port]; empty = direct)","placeholder.jumpHost":"e.g. bastion.corp:2222","check.jumpOwnCred":"Use separate credentials for the jump host","field.jumpUsername":"Jump host user (empty = same as the target)","field.jumpAuth":"Jump host auth (empty = same as the target)","hint.jumpInherit":"Empty credentials reuse the target host\u2019s auth method and keys. When the jump host itself is unreachable the error names it (it will not masquerade as a target timeout).","meta.jumpStage":"Jump host {label}","meta.viaJump":"\u21E2 via {label}","meta.viaProxy":"\u21E2 via proxy command","section.proxyCommand":"Proxy command","field.proxyCommand":"Proxy command (ProxyCommand; empty = unused)","placeholder.proxyCommand":"e.g. ssh -W %h:%p bastion","hint.proxyCommand":"A command run on this machine whose stdin/stdout become the SSH transport to the target (the same idea as OpenSSH\u2019s ProxyCommand). Supports %h host, %p port, %r user, %n host and %% for a literal %; anything else is left as written. If a jump host is set too, the jump host wins (OpenSSH semantics). It needs the switch below, and importing ~/.ssh/config never fills it in.","hint.proxyCommandDisabled":"\u26A0 \u201CAllow ProxyCommand\u201D is off right now: this command will not run and the connection fails explicitly (it does not fall back to a direct connection). Turn it on in Plugin settings \u2192 Terminal panel.","hint.proxyCommandNotGranted":"\u26A0 Not granted by the host: clicking this switch starts a grant in place (the panel shows one command to run in a terminal on the host \u2014 no restart), or use the strictest route \u2014 export DSH_TTY_ALLOW_PROXY_COMMAND=1 in the environment that launched dsh and restart the host (setting it after launch does not count). The reason: cross-site pages and in-page scripts can both send loopback requests, so if the settings UI could raise it out of thin air this gate would be pointless. Turning it off always works.","badge.notEffective":"Not effective: not granted by the host","elev.title":"Grant in place (no restart)","elev.lockedWhy":"Any local process can send loopback requests, so \u201Cturn on a dangerous capability\u201D cannot be decided by this page alone \u2014 it has to be confirmed on the host\u2019s filesystem once.","elev.step":"Run the command below in a terminal on the host and the switch unlocks by itself:","elev.copy":"Copy command","elev.copied":"Copied","elev.copyManual":"The clipboard is unavailable here \u2014 select the command above and copy it manually.","elev.expiresIn":"expires in {sec}s","elev.expired":"This confirmation has expired \u2014 generate a new one.","elev.waiting":"Waiting for confirmation\u2026 once you run the command this turns into \u201Cgranted\u201D automatically.","elev.regenerate":"Generate a new one","elev.loading":"Generating the confirmation command\u2026","elev.granted":"Granted and now in effect.","elev.grantedNeedSave":"Granted. Press \u201CSave\u201D to apply.","elev.grantedAt":"Granted \xB7 {time}","elev.revoke":"Revoke host grant","elev.revoked":"Host grant revoked (the config switch is left untouched; granting again takes effect immediately).","elev.viaEnv":"Granted by a launch environment variable; to revoke, remove it from the launch environment and restart the host.","elev.close":"Collapse","elev.disableFirst":"Turn this config switch off first","elev.otherWay":"The other way (strongest, needs a host restart)","elev.envHow":"In the environment that launched dsh: export {env}=1, then restart the host. Setting it after launch \u2014 or writing it into some other config file \u2014 does not count as a grant; that is exactly what this gate guards against.","elev.error":"In-place grant failed: ","meta.probeProxy":"Proxy command","meta.probeProxyOff":"Proxy command (disabled)","meta.probeTcpSkipped":"Direct TCP check skipped (using the proxy command)","section.connection":"Connection","field.host":"Host","placeholder.host":"example.com or IP","field.port":"Port","field.username":"Username","section.auth":"Authentication","field.authMethod":"Auth method","option.authInherit":"(same as the target)","option.authAgent":"agent \u2014 use the local ssh-agent","option.authKey":"key \u2014 private key file","option.authPassword":"password \u2014 password","field.keyPath":"Private key path","field.passphrase":"Key passphrase (optional)","field.password":"Password","placeholder.credRef":"Or: pick a reference name from the credential store","hint.credRefCandidates":"Candidates = reference names already in the credential store + those in use by the local host book","list.credOverwrite":"{name} (click again to overwrite)","list.moreMatches":"{count} more \u2014 keep typing to filter","list.noCredRef":"No matching reference","check.rememberCredential":"Store in the credential store on save","hint.rememberCredential":"When checked, \u201CSave changes\u201D or \u201CConnect (and save)\u201D writes the password into the official credential store and leaves only an env: reference in the field (the value lives in ~/.dsh/.credentials.yaml; it is not put into the environment and is not sent back to the browser; it does not protect against same-user processes or the agent). Unchecked keeps today's plaintext write into the settings file. If a key or the agent works, do not store a password.","btn.clearCredential":"Clear stored credential","error.credPlainUnavailable":"The host does not provide the credential service (remote.credentials); plaintext save only","error.credPlainIncomplete":"The credential service is incomplete; plaintext save only","status.credUnreported":"Reference {ref}: the host reported no status","error.credStatusFailed":"Failed to read the credential status: {error}","status.credStored":"Stored{source} \xB7 {ref}","meta.credSource":" (source: {source})","status.credUnknown":"Reference {ref}: the store does not have this value yet","hint.noCredRefPassphrase":"No other connection uses a credential reference yet \u2014 you can type env:NAME straight into the passphrase box","hint.noCredRefPassword":"No other connection uses a credential reference yet \u2014 check \u201CStore in the credential store on save\u201D above to create one, or type env:NAME straight into the password box","section.options":"Options","check.agentForward":"agent forwarding (the remote side can use local ssh-agent keys, e.g. remote git clone)","check.persist":"Persistent session (hosted by tmux, survives a disconnect/restart; tmux must be installed on the remote)","check.saveToBook":"Save to the host book (overwrite the same name)","field.bookName":"Host book name","placeholder.bookName":"Leave empty to use the host name","error.hostUserRequired":"Host and username are required","error.keyPathRequired":"auth=key requires a private key path","error.passwordRequired":"auth=password requires a password","btn.cancel":"Cancel","btn.connect":"Connect","btn.fileBrowse":"File browser","btn.browseTitle":"Open the SFTP file browser with the values currently filled in, without touching a terminal","btn.probe":"Test","btn.probeTitle":"Diagnose the connection with the values currently filled in (TCP \u2192 host key \u2192 authentication); no session is created and no host fingerprint is recorded","error.saveCredFailed":"Save failed: {error}","btn.saveEdit":"Save changes","error.saveBookFailed":"Failed to save the host book: {error}","error.bookNameTaken":"The host book already has an entry named: {name}","panel.sftpDual":"SFTP dual pane \xB7 {label}","status.failed":"Failed","status.done":"Done","placeholder.localPath":"Local path (Enter to go)","placeholder.remotePath":"Remote path (Enter to go)","btn.refresh":"Refresh","btn.mkdir":"New folder","error.dirNotReady":"The directory is not resolved yet","meta.dir":"folder","btn.transferTo":"Transfer to {target}: {path}","meta.local":"local","meta.remote":"remote","error.transferDirsNotReady":"Both directories are not resolved yet; wait for the lists to load before transferring","msg.transferring":"Transferring {name}\u2026","error.transferFailed":"Transfer failed","error.noTaskId":"The server returned no task id","msg.transferCanceled":"Transfer canceled: {name}","msg.transferred":"Transferred {name}","btn.download":"Download {name}","btn.rename":"Rename {name}","placeholder.newName":"New name","btn.deleteEntry":"Delete {name}","btn.deleteEntryDir":"Delete {name} (with contents)","msg.deleted":"Deleted {name}","list.parentDir":".. (parent folder)","list.emptyDir":"(empty folder)","list.truncated":"\u2026{rest} more not rendered ({total} total) \u2014 use the path box above to jump to a subfolder","list.itemCount":"{count} items","placeholder.newDirName":"New folder name (relative to the current folder)","msg.creatingDir":"Creating folder {name}\u2026","btn.ok":"OK","btn.confirm":"Confirm?","btn.cancelTransfer":"Cancel transfer","msg.downloadCanceled":"Download canceled: {name}","error.downloadFailed":"Download failed","msg.downloaded":"Downloaded {name} ({size})","error.downloadTooBig":"The file exceeds the download limit ({size}); use dual-pane \u21E6 direct transfer or scp/rsync in the terminal","msg.canceled":"Canceled","btn.upload":"Upload","btn.uploadTitle":"Pick files to upload, or drag files/folders straight into the list","msg.uploading":"Uploading\u2026","msg.uploadDone":"Upload finished","error.uploadFailed":"Upload failed","error.networkError":"Network error","error.uploadCountExceeded":"Too many files (limit {max}): {count} this time \u2014 upload in batches","status.overLimit":"Over the limit","error.uploadTooBig":"The file exceeds the upload limit ({size}): {name} \u2014 use dual-pane \u21E8 direct transfer or scp/rsync in the terminal","error.uploadTotalTooBig":"The total size exceeds the upload limit: upload in batches (or use dual-pane \u21E8 direct transfer)","msg.uploadCanceled":"Upload canceled ({done}/{total} done)","status.allDone":"All done","msg.uploadDoneCount":"Uploaded {count} files","error.connectFailed":"Connection failed: {error}","status.connectingEllipsis":"Connecting\u2026","status.connectedPid":"Connected pid={pid}","status.connectedSsh":"SSH {target}connected","status.exitedWith":"Exited {detail}","status.error":"Error: {message}","status.retryHint":"{message} \xB7 click to retry","btn.clickRetry":"Click to retry","status.disconnectedReconnecting":"Disconnected \u2014 reconnecting","status.disconnected":"Disconnected","status.reconnecting":"Reconnecting\u2026","error.copyFailed":"Copy failed: this environment does not allow clipboard access (over http, use localhost or the terminal's own shortcuts)","error.pasteFailed":"The browser does not allow pages to read the clipboard (common over http): paste with Ctrl+V / Cmd+V inside the terminal","status.initializing":"Initializing\u2026","placeholder.search":"Search (Enter next, Shift+Enter previous)","btn.searchTitle":"Search (Ctrl+F)","btn.clearTitle":"Clear","btn.copyTitle":"Copy selection","btn.pasteTitle":"Paste","btn.minimizeTitle":"Minimize (sessions keep running; the status moves into the sidebar entry)","btn.closePanelTitle":"Close the panel (ends sessions; tabs are kept and the list comes back on reopen)","btn.restoreDock":"Click to restore the terminal window","panel.title":"Terminal","status.minimized":"Terminal minimized \u2014 click to restore","error.configLoadFailed":"Failed to load the config","error.saveTunnelFailed":"Failed to save the tunnel","error.tunnelNameTaken":"A tunnel named \u201C{name}\u201D already exists \u2014 each \u201Chost book entry + direction + port\u201D combination can appear once. Change the port to get a new name, or delete the old one first.","msg.tunnelApplied":"Tunnel \u201C{name}\u201D is active","msg.tunnelUpdated":"Tunnel \u201C{name}\u201D updated","error.nameHostUserRequired":"Name, host, and username are required","msg.hostEdited":"Entry \u201C{name}\u201D updated \u2014 written to the config on \u201CSave\u201D","error.probeFailed":"\u274C Connection failed: {error}","error.hostKeyDeleteFailed":"Failed to delete the host key record","msg.hostKeyDeleted":"Host key record deleted (the fingerprint is recorded again on the next connection)","error.sshConfigReadFailed":"Failed to read ~/.ssh/config","msg.proxySkipped":"{count} entries use a jump host that could not be resolved (missing alias, or the alias itself needs a jump host) and were not imported: {names}","msg.proxyCommandSkipped":"{count} entries only set a proxy command (ProxyCommand) and were not imported: {names} \u2014 a proxy command is local command execution, so importing never fills it in; add it by hand on the connection-book entry and turn on \u201CAllow ProxyCommand\u201D","msg.skippedNotConcrete":"{count} entries are not a concrete host (wildcard / no User)","list.separator":", ","meta.etc":" etc.","msg.importOverflow":"{count} entries beyond the import limit were not imported","list.separatorFull":"; ","msg.noNewEntries":"No new entries ({count} skipped as duplicates)","msg.noImportableHosts":"~/.ssh/config has no concrete hosts to import","msg.importedHosts":"Imported {added} (skipped {skipped} duplicates); written to the config on \u201CSave\u201D","error.knownHostsReadFailed":"Failed to read ~/.ssh/known_hosts","msg.noNewFingerprints":"No new fingerprints ({count} already exist)","msg.noImportableKnownHosts":"known_hosts has no concrete hosts to import","error.saveHostKeysFailed":"Failed to save hostKeys","msg.importedFingerprints":"Imported fingerprints for {added} hosts (skipped {skipped} that already existed)","hint.knownHostsTruncated":"; note: known_hosts has more than 500 hosts \u2014 only the first 500 were imported","error.saveFailed":"Save failed","msg.saved":"Saved and applied live","check.rememberCredentialApply":"Store in the credential store on apply","hint.appliedOnSave":"Written to the config with the card's \u201CSave\u201D","card.name":"Terminal panel","card.desc":"xterm terminal panel: multiple tabs, automatic reconnect after a drop, cwd follows the session, SSH host book with host-key pinning, tmux session persistence.","card.descFull":"xterm terminal panel: multiple tabs, automatic reconnect after a drop, cwd follows the session, SSH host book with host-key pinning, tmux session persistence; shell / TERM / concurrency limits apply live on save.","list.loadingConfig":"Loading the config\u2026","section.basic":"Basics","check.enabled":"Enable the plugin (applies live on save: tools and the panel entry are withdrawn immediately, sessions move to keepalive)","check.announce":"Announce the terminal panel capabilities to the agent","check.shellIntegration":"Shell integration (OSC 133/7 injection)","check.shellIntegrationWindows":"Shell integration (OSC 133/7 injection; tty_capture{last} and cwd following depend on it)","hint.shellIntegrationWindows":"Not applicable on Windows hosts: injection relies on the POSIX `-c` wrapper and rc stubs, which do not hold for cmd / PowerShell (cmd ignores `-c` and exits, PowerShell reports that export does not exist). So cwd following and tty_capture{last} are unavailable for \u201Clocal\u201D tabs; remote Linux / macOS hosts are unaffected.","section.sftp":"SFTP file transfer","field.sftpStyle":"SFTP file browser style","option.sftpDialog":"Single pane \u2014 remote directory + upload/download/drag","option.sftpDual":"Dual pane \u2014 local on the left, remote on the right, direct transfer on selection","hint.sftpDual":"Dual pane copies files between local and remote (recursive, overwriting same names); takes effect after reopening SFTP","field.sftpLimits":"SFTP transfer limits (0 = unlimited)","field.downloadLimit":"Download limit (MB)","field.uploadLimit":"Upload limit (MB)","field.uploadCountLimit":"Batch file count limit","hint.sftpLimits":"Browser-side guard: a single file over the limit aborts the download/upload (for large files use dual-pane \u21E8/\u21E6 direct transfer or scp/rsync in the terminal; they do not consume browser memory); the file count limit applies to one batch/drag upload; applies live on save","section.session":"Sessions","field.persistence":"Session persistence (tmux)","option.persistOff":"Off \u2014 sessions end with the panel/host (default)","option.persistTmux":"tmux \u2014 new terminal/SSH tabs are persistent by default","hint.persistence":"When on, all new tabs (local / SSH host book / SSH connection dialog) are hosted by tmux by default and survive a host restart; tmux must be installed locally/remotely; the SSH dialog can opt out per connection; existing tabs are unaffected","hint.persistenceWindows":"; tmux is unavailable on Windows hosts, so local tabs still open but are not hosted","check.endOnPageClose":"End persistent sessions when the page closes (no keepalive)","check.statsEnabled":"Server stats bar (CPU / memory / disk / uptime / TCP / network; items that cannot be sampled show \u201CN/A\u201D)","hint.statsEnabled":"Off by default: persistent sessions survive closing the whole page (recoverable after the keepalive window); when on, they end together with the tmux session once the page disconnects and the keepalive window expires \u2014 note that refreshing the page within the keepalive window is unaffected","check.allowProxyCommand":"Allow ProxyCommand (runs a command on this machine; off by default)","hint.allowProxyCommand":"When on, a proxy command set on a connection-book entry runs on this machine, and its stdin/stdout become the SSH transport to the target (the same idea as OpenSSH\u2019s ProxyCommand). This is the only switch in this plugin that turns a settings field into local command execution, so it is off by default: while off, a connection carrying a proxy command fails explicitly (it does not fall back to a direct connection). Importing ~/.ssh/config never fills one in.","field.maxSessions":"Concurrent session limit (1\u201316)","hint.maxSessions":"New tabs beyond the limit are rejected; applies live on save","field.shell":"Shell path (defaults to $SHELL)","field.shellWindows":"Shell path (defaults to %COMSPEC%)","placeholder.shell":"Leave empty to use $SHELL","placeholder.shellWindows":"Leave empty to use %COMSPEC% (or enter the full path to powershell.exe / pwsh.exe)","list.noShellCandidate":"No matching candidate \u2014 just type any path","hint.shellCandidatesWindows":"Windows host: candidates come from %COMSPEC% and the installed PowerShell (Windows PowerShell 5.1 / PowerShell 7), and you can type any path; cmd / PowerShell have no POSIX command-boundary hooks, so shell integration is unsupported for them","hint.shellCandidates":"Pick an installed shell from the list ($SHELL first) or type any path; zsh / bash support shell integration","hint.term":"TUI programs depend on this value","field.cwd":"Fallback working directory (the client's current session cwd wins)","placeholder.cwd":"Leave empty to use the host process start directory","field.grace":"Disconnect keepalive (seconds, 0 = end immediately)","hint.grace":"Sessions are kept alive for reconnect after a page refresh or network hiccup and end on timeout; applies live on save","section.assist":"AI assist","check.assistEnabled":'Explain failures (ask the model "why / what next" when a command exits non-zero)',"hint.assistEnabled":"Off by default. When on, a chip appears in the corner of the terminal after a command exits non-zero; clicking it sends that command's output tail (colors and progress bars stripped, repeated lines collapsed, keys/tokens masked) together with the current screen to the model \u2014 never the scrollback. A suggested command is only ever typed into the prompt line, never submitted for you.","field.assistRoute":"Model route (optional)","hint.assistRoute":"Empty follows the host default model","option.followHostModel":"Follow the host default model","list.modelLoading":"Loading candidates\u2026","list.noModelCandidate":"The host advertises no models","list.modelCatalogFailed":"Candidates unavailable \u2014 the host may not have restarted, or serves no model catalog (type provider/model to enter one manually)","badge.assistFailed":"Command failed ({code}) \xB7 explain","panel.assistTitle":"Why this command failed","panel.assistCommand":"Suggested command","status.assistThinking":"Asking the model\u2026","error.assistRequest":"Explanation failed: {message}","btn.assistFill":"Insert command","btn.assistCopy":"Copy answer","btn.assistCopyError":"Copy error","btn.assistClose":"Close","hint.assistFillNoEnter":"Types it into the prompt line; never submits","hint.assistNoCommand":"The model gave no directly-insertable command \u2014 use Copy and pick one yourself","section.ssh":"SSH connections","btn.probeRowTitle":"Test this entry: per-stage diagnosis of TCP \u2192 host key \u2192 authentication","msg.testing":"Testing\u2026","btn.test":"Test","btn.edit":"Edit","btn.delete":"Delete","list.emptySshHosts":"No entries \u2014 add one via the terminal panel's \u201C+\u201D \u2192 SSH connection\u2026 and check \u201CSave to the host book\u201D","btn.importSshConfig":"Import from ~/.ssh/config","hint.importSshConfig":"Same names are skipped; written to the config on \u201CSave\u201D","hint.sshBook":"Written to the config together with \u201CSave\u201D; passwords/passphrases support env:VAR references to avoid plaintext storage","check.tunnelEnabled":"Enable","list.emptyTunnels":"No tunnels \u2014 map a remote database or internal service to a local port","field.direction":"Forwarding direction","option.localForwardTitle":"Local forward -L: listen locally and connect to a target on the SSH server side","option.localForward":"Local -L","option.remoteForwardTitle":"Remote forward -R: listen on the SSH server side and dial back to a local service","option.remoteForward":"Remote -R","option.selectBook":"Pick a host book entry","hint.tunnelViaBook":"Connects via {book} \u2014 the tunnel's host and credentials come from that host book entry","hint.tunnelBookEmpty":"Pick which SSH connection this tunnel uses (host and credentials come from the host book)","hint.localListenFixed":"The local listen address is fixed to 127.0.0.1 (not exposed to the LAN)","placeholder.localPort":"Local port","field.localListenPort":"Local listen port","hint.flowLocalToRemote":"Traffic flow: local \u2192 SSH server side","placeholder.remoteHost":"Server-side host","hint.remoteHostTitle":"Target host name or IP (reached from the SSH server side; 127.0.0.1 = the server itself)","field.remoteHost":"Server-side target host","placeholder.port":"Port","field.remotePort":"Server-side target port","placeholder.remoteListenHost":"Server-side listen address","hint.remoteListenHost":"Server-side listen address (defaults to 127.0.0.1; leave empty to allow only the server itself)","field.remoteListenHost":"Server-side listen address","placeholder.listenPort":"Listen port","field.remoteListenPort":"Server-side listen port","hint.flowRemoteToLocal":"Traffic flow: local \u2190 SSH server side","hint.localDialFixed":"The local dial address is fixed to 127.0.0.1","placeholder.localTargetPort":"Local service port","field.localTargetPort":"Local target port","hint.tunnelLocalSummary":"Left: local listener (fixed 127.0.0.1) \u2192 Right: target reached from the SSH server side","hint.tunnelRemoteSummary":"Left: SSH server-side listener \u2192 Right: local service being reached (fixed 127.0.0.1)","btn.addTunnel":"Add tunnel","hint.tunnelAdd":"Takes effect immediately; reconnects automatically after a drop; prefer local ports above 1024; remote hosts are reached from the SSH server side (127.0.0.1 = the server itself)","hint.tunnelEditing":"Editing \u201C{name}\u201D \u2014 changing the port/entry derives a new name by rule; takes effect immediately on save","panel.hostKeys":"SSH host key records (TOFU)","btn.importKnownHosts":"Import from known_hosts","list.emptyHostKeys":"No records \u2014 the host fingerprint is recorded automatically after the first successful SSH connection","hint.hostKeys":"A host with several keys (e.g. rsa + ed25519) gets one fingerprint each and any match is accepted; a changed fingerprint rejects the connection (MITM protection) \u2014 delete that record once you are sure it is safe, then reconnect","msg.saving":"Saving\u2026","btn.save":"Save","list.none":"N/A","meta.mem":"Memory","meta.disk":"Disk","meta.cores":"Cores","meta.uptime":"Uptime","meta.temp":"CPU temp","meta.net":"Network","error.tunnelNoBook":"Add an SSH entry to the host book first","error.tunnelRemotePortRequired":"A remote listen port and a local target port are required (1\u201365535)","error.tunnelLocalRequired":"Local port, remote host, and remote port are required","error.tunnelMissing":"Tunnel \u201C{name}\u201D no longer exists (it may have been deleted by another window)","error.tunnelClash":"A tunnel named \u201C{name}\u201D already exists \u2014 handle that one first.","msg.renaming":"Renaming {name}\u2026","msg.deleting":"Deleting {name}\u2026","msg.downloading":"Downloading {name}\u2026","msg.uploadingName":"Uploading {name}","error.invalidTaskState":"The server returned an invalid task state","hint.rememberCredentialApply":"When checked, \u201CApply\u201D writes the password into the official credential store and leaves only an env: reference in the field (the value lives in ~/.dsh/.credentials.yaml; it is not put into the environment and is not sent back to the browser; it does not protect against same-user processes or the agent). Unchecked keeps today's plaintext write into the settings file. If a key or the agent works, do not store a password.","hint.noCredRefPasswordApply":"No other connection uses a credential reference yet \u2014 check \u201CStore in the credential store on apply\u201D above to create one, or type env:NAME straight into the password box","hint.bookNameConflict":"A same-name conflict is rejected","btn.apply":"Apply"};function Sp(e,t){return t===void 0?e:String(e).replace(/\{(\w+)\}/g,(r,s)=>t[s]===void 0?"":String(t[s]))}function Ec(e,t){return Sp(Ci[e]!==void 0?Ci[e]:e,t)}var w=Ec;function Cp(e){e.inject(["locale"],t=>{let r=t.locale.register(Qn,"zh",Ci),s=t.locale.register(Qn,"en",yp);return w=t.locale.bind(Qn),()=>{s(),r(),w=Ec}})}function xp(){return Jl(document.baseURI,globalThis.__DSH_TRANSPORT__?.streamBaseUrl)}function Gr(){return Dt!==null&&typeof Dt.describe=="function"?Dt:null}function Wr(e){let t=String(e??"").trim();return t.startsWith("env:")?t.slice(4).trim():""}function kp(){let e=new Set;for(let t of $t)for(let r of[t?.password,t?.passphrase]){let s=Wr(r);s!==""&&e.add(s)}return[...e]}async function Ep(){try{let t=await(await fetch("/api/dsh-tty/credential-refs",{cache:"no-store"})).json();if(t.ok&&Array.isArray(t.names))return t.names.filter(r=>typeof r=="string"&&r!=="")}catch{}return[]}async function Lc(){return[...new Set([...kp(),...await Ep()])].sort()}async function Tc(e){let t=Gr();if(t===null)return{error:w(Dt===null?"error.credServiceMissing":"error.credServiceIncomplete")};try{let r=await t.describe([e]),s=r?.ok===!0?r.value?.[e]:void 0;return s===void 0?{unreported:!0}:{view:{configured:s.configured===!0,writable:s.writable===!0,source:typeof s.source=="string"?s.source:""}}}catch(r){return{error:r instanceof Error?r.message:String(r)}}}async function Lp(e,t){let r=Gr();if(r===null||typeof r.set!="function")return{error:w("error.credStoreUnavailable")};try{return await r.set(e,t),{value:"env:"+e}}catch(s){return{error:w("error.credStoreFailed",{error:s instanceof Error?s.message:String(s)})}}}async function Rc(e){let t=Gr();if(t===null||typeof t.unset!="function")return{error:w("error.credClearUnavailable")};try{return await t.unset(e),{}}catch(r){return{error:w("error.credClearFailed",{error:r instanceof Error?r.message:String(r)})}}}async function Mc(e,t,r,s,o,i){if(e!==!0)return{};let n=String(t??"").trim();if(n===""||n.startsWith("env:"))return{};let a=Zl(r,s,o,i);return a===""?{error:w("error.credRefNeedsHost")}:Lp(a,n)}function Wi(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"t"+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}var pi;function As(){document.getElementById("dsh-tty-style")||(pi=document.createElement("style"),pi.id="dsh-tty-style",pi.textContent=Xl+`
3200
+ `+Yl,document.head.appendChild(pi))}var Ui='<svg viewBox="0 0 16 16" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 5l3.5 3L3 11"/><path d="M8.5 11H13"/></svg>',Tp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><circle cx="7" cy="7" r="4.4"/><path d="M10.4 10.4L14 14"/></svg>',Rp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2.5 4.5h11"/><path d="M6 4.5V3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v1.5"/><path d="M4.5 4.5l.7 8.1a1 1 0 0 0 1 .9h3.6a1 1 0 0 0 1-.9l.7-8.1"/></svg>',Mp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.4"/><path d="M3.5 10.5h-1v-8h8v1"/></svg>',Ap='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="3" width="9" height="11" rx="1.4"/><rect x="5.5" y="1.5" width="5" height="3" rx="1" fill="var(--dsw-alias-bg-base,#fff)"/></svg>',Dp='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.5 8a5.5 5.5 0 1 1-1.6-3.9"/><path d="M13.7 1.8v2.7H11"/></svg>',Pp='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1.8 12.8V4.2a1 1 0 0 1 1-1h3l1.4 1.6h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H2.8a1 1 0 0 1-1-1z"/></svg>',Ac='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4.5 5.5L2 8l2.5 2.5"/><path d="M11.5 5.5L14 8l-2.5 2.5"/><path d="M2.8 8h10.4"/></svg>',Dc='<svg viewBox="0 0 16 16" width="13" height="13" fill="currentColor" stroke="none" aria-hidden="true"><circle cx="3.4" cy="8" r="1.35"/><circle cx="8" cy="8" r="1.35"/><circle cx="12.6" cy="8" r="1.35"/></svg>',Bp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><path d="M4 8h8"/></svg>',zi='<svg viewBox="0 0 16 16" width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><path d="M4.5 4.5l7 7"/><path d="M11.5 4.5l-7 7"/></svg>',Op='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><path d="M8 3.6v8.8"/><path d="M3.6 8h8.8"/></svg>',xs='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 12.4V3.9a.9.9 0 0 1 .9-.9h2.9l1.4 1.6h5.9a.9.9 0 0 1 .9.9v6.9a.9.9 0 0 1-.9.9H2.9a.9.9 0 0 1-.9-.9z"/></svg>',Pc='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 2.6h4.4l3.6 3.6v7.2a.9.9 0 0 1-.9.9H4.9a.9.9 0 0 1-.9-.9V3.5a.9.9 0 0 1 .9-.9z"/><path d="M8.2 2.7v3.4h3.4"/></svg>',Bc='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6.4 9.6l3.2-3.2"/><path d="M9.2 4.6l1-1a2.5 2.5 0 0 1 3.5 3.5l-1 1"/><path d="M6.8 11.4l-1 1a2.5 2.5 0 0 1-3.5-3.5l1-1"/></svg>',Co='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 12.6V4.2"/><path d="M4.4 7.8L8 4.2l3.6 3.6"/></svg>',Oc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3v7.2"/><path d="M5 7.4L8 10.4l3-3"/><path d="M3.4 12.8h9.2"/></svg>',Ip='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 10.4V3.2"/><path d="M5 6.2L8 3.2l3 3"/><path d="M3.4 12.8h9.2"/></svg>',xo='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M11.2 2.9l1.9 1.9-7.3 7.3-2.4.5.5-2.4z"/></svg>',Ur='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 4.6h10"/><path d="M6.2 4.6V3.4a.8.8 0 0 1 .8-.8h2a.8.8 0 0 1 .8.8v1.2"/><path d="M4.6 4.6l.6 8a.9.9 0 0 0 .9.8h3.8a.9.9 0 0 0 .9-.8l.6-8"/></svg>',ko='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M13.2 8a5.2 5.2 0 1 1-1.5-3.7"/><path d="M13.4 2.2v2.6h-2.6"/></svg>',Ic='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 12.4V3.9a.9.9 0 0 1 .9-.9h2.9l1.4 1.6h5.9a.9.9 0 0 1 .9.9v6.9a.9.9 0 0 1-.9.9H2.9a.9.9 0 0 1-.9-.9z"/><path d="M8 6.6v3.6"/><path d="M6.2 8.4h3.6"/></svg>',Nc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3.4 8h9"/><path d="M9.2 4.8L12.4 8l-3.2 3.2"/></svg>',Hc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.6 8h-9"/><path d="M6.8 4.8L3.6 8l3.2 3.2"/></svg>',Np='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3.4v9"/><path d="M4.8 9.2L8 12.4l3.2-3.2"/></svg>',Hp='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.4" y="3.2" width="11.2" height="4" rx="1.2"/><rect x="2.4" y="8.8" width="11.2" height="4" rx="1.2"/><path d="M5 5.2h.01"/><path d="M5 10.8h.01"/></svg>',Fp='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2.6l5.8 10.4H2.2z"/><path d="M8 6.4v3.2"/><path d="M8 11.6h.01"/></svg>',Wp='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><circle cx="8" cy="8" r="5.6"/><path d="M8 7.2v3.6"/><path d="M8 5.1h.01"/></svg>',Fc='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="8" cy="8" r="5.6"/><path d="M6 6l4 4"/><path d="M10 6l-4 4"/></svg>',Up='<svg viewBox="0 0 16 16" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2.8v5"/><path d="M11.6 4.6a5.2 5.2 0 1 1-7.2 0"/></svg>',Wc='<svg viewBox="0 0 16 16" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="5.6" cy="6" r="2.8"/><path d="M7.8 7.9l5.4 5.4"/><path d="M10.6 10.7l1.2-1.2"/></svg>',Uc=null,Ee=null,de=null,xi=null,ks=null,Dt=null,fr=null,vr=null,Ce=null,At=null,_s=null,ms=null,ki=null,ut=null,gs=null,nt=null,ft=null,Qe=null,zr=null,Es=!1,vs=null,qe=!1,Xe=null,Ei=null,Vr=null,br=null,Li=null,pr=null,bs=1e3,Ti="dsh-tty:tabs",ue=new Map,Ds=new Set,Eo=()=>Ds.size>0,io=new Set,Se=null,Ps=0,_i=!1,pt=null,Ri=!1,ar=new Map,_r=null,wr=null,jr=null,tr=null,Mi=null,ot=null,$r=null,$t=[],Ai=!0,bt=null,wt=null,ws=null,ps=null,no=null,oo=new Set;function ji(e){return oo.add(e),()=>oo.delete(e)}ji(({tab:e,addAction:t})=>{gr&&e.exited&&t(Dp,w("btn.reopen"),w("btn.reopenTitle"),()=>Pi(e.sid))});ji(({tab:e,addAction:t})=>{gr&&t(Pp,"SFTP",w("btn.sftpTitle"),()=>Ki(e.spawnSpec,e.sid))});ji(({bookName:e,addAction:t})=>{if(!gr)return;let r=e!==""?oh(e):0;if(r>0){t(Ac,w("btn.tunnels",{count:r}),w("btn.tunnelsTitle"),s=>eh(s.currentTarget,e));return}e!==""&&t(Dc,w("btn.more"),w("btn.moreTitle"),s=>v_(s.currentTarget,e))});function Bs(e,t){if(fr===null)return;fr.textContent=e.split("\u2014\u2014")[0],fr.title=e,vr.dataset.state=t,xi!==null&&(xi.style.display=t==="connected"?"none":""),Vr!==null&&(Vr.textContent=e),br!==null&&(br.dataset.state=t);let r=document.querySelector("[data-dsh-tty-entry] .tt_sidebarBadgeDot");r!==null&&(r.dataset.state=t)}function eo(e,t,r){let s=typeof e=="string"&&e!==""?e:null;if(s!==null){let o=ue.get(s);o!==void 0&&(o.statusText=t,o.statusState=r)}lc(s,Se)&&(ks=s,Bs(t,r))}function mi(e,t){ks=null,Bs(e,t)}function Lo(){if(!cc(ks,Se))return;let e=Se===null?void 0:ue.get(Se);ks=e===void 0?null:Se;let t=ac(e,w);Bs(t.text,t.state)}function Me(e){Ee!==null&&Ee.readyState===WebSocket.OPEN&&Ee.send(JSON.stringify(e))}function zp(){let e=[],t=document.createDocumentFragment();for(let r of Zn(w)){let s=document.createElement("span");s.className="tt_statsItem";let o=document.createElement("span");o.className="tt_statsLabel",o.textContent=r.label,s.appendChild(o);let i=null,n=null;r.kind==="pct"&&(i=document.createElement("span"),i.className="tt_statsMeter",n=document.createElement("span"),n.className="tt_statsMeterFill",i.appendChild(n),s.appendChild(i));let a=document.createElement("span");a.className="tt_statsValue",s.appendChild(a),t.appendChild(s),e.push({item:s,value:a,meter:i,fill:n,slot:null})}return bt!==null&&bt.appendChild(t),e}function jp(e,t){let r=mc(t!==void 0?t.stats:null,w);for(let s=0;s<e.length;s+=1){let o=e[s],i=r[s];if(i!==void 0&&(o.slot!==i.slot&&(o.slot=i.slot,o.value.style.minWidth=i.slot>0?i.slot+"ch":""),o.value.textContent!==i.value&&(o.value.textContent=i.value),o.item.getAttribute("title")!==i.title&&o.item.setAttribute("title",i.title),o.fill!==null&&o.meter!==null)){let n=i.pct===null?"0%":Math.max(0,Math.min(100,i.pct)).toFixed(1)+"%";o.fill.style.width!==n&&(o.fill.style.width=n);let a=dc(i.pct);o.meter.dataset.level!==a&&(o.meter.dataset.level=a)}}}function $i(){ps=null,no=null}function $p(){if(de===null||qe||!Ai)return!1;let e=_t();return e===void 0||e.embedded===!0||e.exited===!0||e.stats===null||e.stats===void 0?!1:pc(e.statsAt)}function gc(){if(qe)return;let e=_t();if(!(e===void 0||e.embedded===!0||e.fit===null)){try{e.fit.fit()}catch{return}try{e.spawned&&!e.exited&&Jr(e)}catch{}}}function yr(){try{qp()}catch(e){console.warn("[dsh-tty] \u72B6\u6001\u6761\u6E32\u67D3\u5931\u8D25\uFF08\u5DF2\u6536\u8D77\uFF09: "+(e instanceof Error?e.message:String(e)));try{bt!==null&&(bt.hidden=!0,bt.textContent=""),$i(),nt!==null&&delete nt.dataset.stats}catch{}}}function qp(){if(nt===null||bt===null)return;let e=$p(),t=nt.dataset.stats!==void 0!==e;if(!e){t&&delete nt.dataset.stats,bt.hidden=!0,ps!==null&&(bt.textContent="",$i()),t&&gc();return}bt.hidden=!1,ps===null&&(ps=zp());let r=_t(),s=r===void 0?"":r.sid+":"+String(r.statsAt||0);s!==no&&(no=s,jp(ps,r)),t&&(nt.dataset.stats="",gc())}function zc(){ws===null&&(ws=setInterval(()=>yr(),1e3))}function jc(){ws!==null&&(clearInterval(ws),ws=null)}function $c(){if(de===null||qe||!Ai)return null;let e=_t();return e===void 0||e.embedded===!0||e.exited===!0?null:e.sid}function Os(){let e=$c();e!==wt&&(wt!==null&&Me({t:"statsOff",sid:wt}),wt=e,e!==null&&Me({t:"statsOn",sid:e}))}function Kp(e){if(e!==$c()){Os();return}wt!==null&&wt!==e&&Me({t:"statsOff",sid:wt}),wt=e,Me({t:"statsOn",sid:e})}function _t(){return Se!==null?ue.get(Se):void 0}function ao(){try{return sc(Uc?.list?.getSnapshot?.())}catch{return}}function Gp(e){if(!(e.term===null||e.exited)){try{if(e.term.buffer.active.length<=e.term.rows)return}catch{return}e.term.reset(),Me({t:"refresh",sid:e.sid})}}var gi=null;function qc(e){gi!==null&&clearTimeout(gi),gi=setTimeout(()=>{gi=null;let t=_t();t!==void 0&&Gp(t)},e??200)}var Vp=["password","passphrase"];function vc(e){if(e===null||typeof e!="object"||e.t!=="ssh")return e;let t=e.credsStripped===!0,r={...e};for(let s of Vp){let o=r[s];typeof o=="string"&&o!==""&&!o.startsWith("env:")&&(delete r[s],t=!0)}return t&&(r.credsStripped=!0),r}var Kc=1;function or(){try{let e=[...ue.values()].filter(t=>!t.exited&&t.embedded!==!0).map(t=>({sid:t.sid,spawnSpec:vc(t.spawnSpec),label:t.label}));e.length===0||de===null?sessionStorage.removeItem(Ti):sessionStorage.setItem(Ti,JSON.stringify({v:Kc,tabs:e})),Yp([...ue.values()].filter(t=>t.embedded!==!0).map(t=>({spawnSpec:vc(t.spawnSpec),label:t.label})))}catch(e){console.warn("[dsh-tty] \u6807\u7B7E\u6301\u4E45\u5316\u5931\u8D25\uFF08\u672C\u6B21\u5237\u65B0\u540E\u6807\u7B7E\u5217\u8868\u53EF\u80FD\u4E22\u5931\uFF09: "+(e instanceof Error?e.message:String(e)))}}var lo="dsh-tty:persist-specs";function Yp(e){try{let t=e.filter(r=>Ns(r.spawnSpec)).map(r=>({spawnSpec:r.spawnSpec,label:r.label}));t.length===0?localStorage.removeItem(lo):localStorage.setItem(lo,JSON.stringify(t))}catch{}}function Xp(){try{let e=localStorage.getItem(lo);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(r=>r!==null&&typeof r=="object"&&Ns(r.spawnSpec)):[]}catch{return[]}}function Jp(){try{let e=sessionStorage.getItem(Ti);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(r=>r!==null&&typeof r=="object"&&typeof r.sid=="string"&&r.sid!==""&&r.spawnSpec!==null&&typeof r.spawnSpec=="object"):t!==null&&typeof t=="object"&&t.v===Kc&&Array.isArray(t.tabs)?t.tabs.filter(r=>r!==null&&typeof r=="object"&&typeof r.sid=="string"&&r.sid!==""&&r.spawnSpec!==null&&typeof r.spawnSpec=="object"):[]}catch{return[]}}function Di(e,t){let r=Ee;return new Promise(s=>{let o=null,i=n=>{let a;try{a=JSON.parse(n.data)}catch{return}a.t===e&&(o!==null&&clearTimeout(o),r.removeEventListener("message",i),s(r===Ee?a:null))};o=setTimeout(()=>{r.removeEventListener("message",i),s(null)},t),r.addEventListener("message",i)})}function Zp(e){return e===void 0?null:e.embedded===!0?e.controller!==void 0&&e.controller!==null?e.controller.hostEl:null:e.termEl}function Gc(e){if(e===void 0||e.fit===null||e.fit===void 0)return;let t;try{t=e.fit.proposeDimensions()}catch{return}let r=Zp(e);return ic(t,r==null?null:{width:r.clientWidth,height:r.clientHeight})}function Jr(e){if(e===void 0||e.fit===void 0)return;let t=Gc(e);t!==void 0&&(e.lastDims=t,Me({t:"resize",sid:e.sid,cols:t.cols,rows:t.rows}))}function Qp(e){if(e===void 0||e.fit===void 0)return;let t=e.term,r=t!==null&&t.buffer!==void 0?t.buffer.active:null,s=r==null?null:{atBottom:r.viewportY>=r.baseY,line:r.viewportY};try{e.fit.fit()}catch{return}if(s!==null)try{s.atBottom?t.scrollToBottom():t.scrollToLine(Math.min(s.line,t.buffer.active.baseY))}catch{}e.exited||Jr(e)}function Nr(e,t,r,s){if(e.overlayEl===null||e.overlayEl===void 0)return;let o=e.overlayEl;if(t===""||t===void 0){o.textContent="";return}let i=s==="error"||s==="info"?s:"exited";o.innerHTML='<div class="tt_overlayCard" data-kind="'+i+'"><span class="tt_overlayIcon">'+(i==="error"?Fc:i==="info"?ko:Up)+'</span><span class="tt_overlayText"><span class="tt_overlayMain"></span>'+(r===void 0||r===""?"":'<span class="tt_overlayHint"></span>')+"</span></div>",o.querySelector(".tt_overlayMain").textContent=t,r!==void 0&&r!==""&&(o.querySelector(".tt_overlayHint").textContent=r)}function e_(e,t){try{let r=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return r!==""?r:t}catch{return t}}function Zr(e){let t=e_("--dsw-alias-state-business-primary","#7c9cff"),r=new xc.Terminal({cursorBlink:!0,cursorStyle:"bar",cursorInactiveStyle:"outline",fontSize:13,fontFamily:'"JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace',fontWeight:400,fontWeightBold:600,lineHeight:1.35,scrollback:5e3,convertEol:!1,allowProposedApi:!0,theme:{background:"#0b0e14",foreground:"#d7dce5",cursor:t,cursorAccent:"#0b0e14",selectionBackground:"rgba(124, 156, 255, .30)",black:"#1b2028",red:"#f07178",green:"#7ec699",yellow:"#e6b673",blue:"#7aa2f7",magenta:"#c792ea",cyan:"#7fdbca",white:"#c8d0dc",brightBlack:"#556070",brightRed:"#ff8b92",brightGreen:"#9fe0b4",brightYellow:"#f5cc8c",brightBlue:"#9ab8ff",brightMagenta:"#dbb3ff",brightCyan:"#a3f0e2",brightWhite:"#eef2f8"}}),s=new kc.FitAddon,o=new ka;r.loadAddon(s),r.loadAddon(o),r.loadAddon(new Ea);let i=document.createElement("div");i.className="tt_term";let n=document.createElement("div");n.className="tt_overlay",n.addEventListener("click",()=>{n.textContent="",Pi(e.sid)}),n.setAttribute("role","button"),n.setAttribute("aria-label",w("btn.reopenSession")),n.tabIndex=0,n.addEventListener("keydown",a=>{(a.key==="Enter"||a.key===" "||a.key==="Spacebar")&&(a.preventDefault(),n.textContent="",Pi(e.sid))}),i.appendChild(n),r.open(i);try{s.fit()}catch{}try{let a=new Vl;a.onContextLoss(()=>{try{a.dispose()}catch{}}),r.loadAddon(a)}catch{}r.onData(a=>{Me({t:"input",sid:e.sid,d:a}),ar.delete(e.sid)&&Sr()}),r.onResize(()=>{Ns(e.spawnSpec)&&qc(200)}),r.attachCustomKeyEventHandler(a=>e.embedded===!0?!0:(a.ctrlKey||a.metaKey)&&a.key.toLowerCase()==="f"?(a.preventDefault(),bh(),!1):!0),e.term=r,e.fit=s,e.search=o,e.termEl=i,e.overlayEl=n}function bc(e){return e===null||typeof e!="object"?"":["t","name","host","port","username","command","cwd","persist","persistName"].map(r=>r+"="+String(e[r]??"")).join("\0")}function t_(e){let t=bc(e);if(t==="")return null;for(let r of ue.values())if(r.exited!==!0&&r.embedded!==!0&&bc(r.spawnSpec)===t)return r;return null}function Ls(e,t){let r=Wi(),s={sid:r,term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:e??K_(),label:t};return Zr(s),ue.set(r,s),Ps+=1,at(),Kt(r),qi(s),or(),s}function r_(e){if(Array.isArray(e))for(let t of e){if(t===null||typeof t!="object"||t.owner!=="agent"||t.exited===!0)continue;let r=typeof t.sid=="string"?t.sid:"";if(r===""||ue.has(r))continue;let s={sid:r,term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,agentOwned:!0,spawnSpec:{t:"spawn",cwd:typeof t.cwd=="string"?t.cwd:ao()},label:"agent"+(t.kind==="ssh"&&typeof t.target=="string"&&t.target!==""?" \xB7 "+t.target:"")};Zr(s),ue.set(r,s),Ps+=1,at(),s_()&&s.termEl!==null&&nt!==null&&Se===null&&Kt(r),Me({t:"attach",sid:r}),i_()}}function s_(){return de!==null&&qe!==!0}function i_(){try{or()}catch{}}function n_(e){if(r_(e),!Array.isArray(e))return;let t=fi(e.filter(r=>r!==null&&typeof r=="object"&&r.owner==="agent"));for(let[r,s]of[...ue])s.agentOwned===!0&&(t.has(r)||s.exited!==!0&&s.live===!0&&(s.exited=!0,s.live=!1,at()))}function o_(e){if(ue.has(e.sid))return ue.get(e.sid);let t={sid:e.sid,term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:e.spawnSpec,label:typeof e.label=="string"?e.label:void 0};Zr(t),ue.set(t.sid,t),Ps+=1,at(),Kt(t.sid),Me({t:"attach",sid:t.sid})}function a_(e){if(!(e?.spawnSpec?.credsStripped!==!0||e.term===null))try{e.term.writeln("\x1B[2m[dsh-tty] "+w("msg.passwordNotStored")+"\x1B[0m")}catch{}}function qi(e){a_(e);let t=Gc(e);t!==void 0&&(e.lastDims=t);let r=t!==void 0?t:e.lastDims!==void 0?e.lastDims:{cols:80,rows:24},s={...e.spawnSpec,sid:e.sid,cols:r.cols,rows:r.rows};if(Ee===null||Ee.readyState!==WebSocket.OPEN){io.add({tab:e,frame:s});return}Me(s)}function wc(e){let t={sid:Wi(),term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:e.spawnSpec,label:typeof e.label=="string"?e.label:void 0};Zr(t),ue.set(t.sid,t),Ps+=1,at(),Kt(t.sid),qi(t)}function Pi(e){let t=ue.get(e);if(t===void 0)return;if(t.embedded===!0){Jc(t);return}let r=t.spawnSpec,s=t.label;if(Me({t:"kill",sid:e}),t.term!==null)try{t.term.dispose()}catch{}t.termEl!==null&&t.termEl.remove(),ue.delete(e);let o={sid:Wi(),term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,spawnSpec:r,label:s};Zr(o),ue.set(o.sid,o),at(),Kt(o.sid),qi(o),or()}function co(e){let t=ue.get(e);if(t!==void 0){if(yt!==null&&yt.ownerKey===e&&Ss(!0),Me({t:"kill",sid:e}),ue.delete(e),wr===e&&St(),ar.delete(e),Sr(),Ds.delete(e),t.term!==null)try{t.term.dispose()}catch{}if(t.termEl!==null&&t.termEl.remove(),Se===e){Se=null;let r=[...ue.entries()].filter(([,s])=>s.embedded!==!0).map(([s])=>s).pop()??null;r!==null&&Kt(r)}at(),Lo(),[...ue.values()].some(r=>r.embedded!==!0)?or():Ms()}}function Vc(e){let t=typeof e?.command=="string"?e.command.trim():"";if(t==="")throw new Error(w("error.terminalNeedsCommand"));if(/[\r\n\0]/.test(t))throw new Error(w("error.terminalCommandSingleLine"));return t}function Yc(e,t){return typeof e?.book=="string"&&e.book!==""?{t:"ssh",name:e.book,command:t}:e?.spec!==null&&typeof e?.spec=="object"?{t:"ssh",...e.spec,command:t}:{t:"spawn",...typeof e?.cwd=="string"&&e.cwd!==""?{cwd:e.cwd}:{},command:t}}function l_(e){let t=e.controller;t===void 0||t.observer!==null||(t.observer=new ResizeObserver(()=>{if(!(t.disposed||t.tab!==e||e.term===null)){try{e.fit.fit()}catch{return}e.spawned&&!e.exited&&Jr(e)}}),t.observer.observe(t.hostEl))}function Xc(e,t,r){let s={sid:Wi(),term:null,fit:null,search:null,termEl:null,overlayEl:null,exited:!1,spawned:!1,embedded:!0,controller:e,spawnSpec:t,label:r};return Zr(s),ue.set(s.sid,s),Ds.add(s.sid),e.hostEl.appendChild(s.termEl),l_(s),qi(s),s}function Jc(e){let t=e.controller;if(!(t===void 0||t.disposed)){e.exited||Me({t:"kill",sid:e.sid});try{e.term?.dispose()}catch{}return e.termEl?.remove(),ue.delete(e.sid),Ds.delete(e.sid),t.observer!==null&&(t.observer.disconnect(),t.observer=null),t.tab=Xc(t,e.spawnSpec,e.label),Se===e.sid&&(Se=t.tab.sid,Lo()),t.tab}}function c_(e,t){if(!(e instanceof HTMLElement))throw new Error(w("error.terminalNeedsHost"));let r=Vc(t),s=Yc(t,r),o=typeof t?.label=="string"&&t.label!==""?t.label:void 0;As();let i={hostEl:e,tab:null,observer:null,disposed:!1};return i.tab=Xc(i,s,o),V_(),()=>h_(i)}function h_(e){if(e.disposed)return;e.disposed=!0,e.observer!==null&&(e.observer.disconnect(),e.observer=null);let t=e.tab;if(t!==null){t.exited||Me({t:"kill",sid:t.sid});try{t.term?.dispose()}catch{}t.termEl?.remove(),ue.delete(t.sid),Ds.delete(t.sid),e.tab=null}if(de===null&&!Eo()&&Ee!==null){Es=!0;try{Ee.close()}catch{}Ee=null}}var d_=460,u_=280,f_=320,p_=160,yt=null,Hr=d_,Fr=f_;function To(){let e=de!==null?de.querySelector(".tt_modal"):null,t=e!==null?e:de;return t!==null?t.getBoundingClientRect():null}var Ro=e=>e==="bottom"?p_:u_;function __(e){let t=To();if(t===null)return 900;let r=e==="bottom"?t.height:t.width;return Math.max(Ro(e),Math.round(r*.72))}function ys(e,t){return Math.min(__(e),Math.max(Ro(e),Math.round(t)))}function bi(){let e=yt;if(e!==null){if(e.collapsed){e.el.style.width="",e.el.style.height="",e.el.style.flexBasis="";return}if(e.side==="bottom"){Fr=ys("bottom",Fr),e.el.style.width="",e.el.style.height=String(Fr)+"px",e.el.style.flexBasis=String(Fr)+"px";return}Hr=ys("right",Hr),e.el.style.height="",e.el.style.width=String(Hr)+"px",e.el.style.flexBasis=String(Hr)+"px"}}function Ss(e){let t=yt;if(t!==null){if(yt=null,t.disposed=!0,e&&t.onClose!==null)try{t.onClose()}catch(r){console.warn("[dsh-tty] ttyPanel.onClose \u629B\u9519\uFF1A"+(r instanceof Error?r.message:String(r)))}try{t.el.remove()}catch{}ft!==null&&delete ft.dataset.side}}function Zc(e){if(wo(),ft===null)throw new Error(w("error.panelNotReady"));yt!==null&&Ss(!0),As();let t=Ir(e?.ownerSid,Se),r=e?.side==="bottom"?"bottom":"right",s=Math.max(r==="bottom"?120:200,Math.round(typeof e?.min=="number"&&Number.isFinite(e.min)?e.min:Ro(r)));if(typeof e?.size=="number"&&Number.isFinite(e.size)){let c=ys(r,e.size);r==="bottom"?Fr=c:Hr=c}let o=document.createElement("div");o.className="tt_dockPane",o.dataset.side=r,ft.dataset.side=r,o.innerHTML='<div class="tt_dockPaneResize" title="'+w(r==="bottom"?"panel.dragHeight":"panel.dragWidth")+'"></div><div class="tt_dockPaneHead"><span class="tt_dockPaneTitle"></span><span class="tt_dockPaneHint"></span><span class="tt_dockPaneSpacer"></span><button class="tt_dockPaneFold" type="button"></button><button class="tt_dockPaneClose" type="button" title="'+w("btn.closePane")+'">'+zi+'</button></div><div class="tt_dockPaneBody"></div>',ft.appendChild(o);let i=o.querySelector(".tt_dockPaneTitle"),n=o.querySelector(".tt_dockPaneHint"),a=o.querySelector(".tt_dockPaneBody"),u=o.querySelector(".tt_dockPaneFold"),l=o.querySelector(".tt_dockPaneClose"),_=o.querySelector(".tt_dockPaneResize"),m={el:o,element:a,disposed:!1,collapsed:!1,side:r,minSize:s,ownerKey:t,onClose:typeof e?.onClose=="function"?e.onClose:null},y=()=>r==="bottom"?m.collapsed?Co:Np:m.collapsed?Hc:Nc,p=c=>{m.collapsed=c===!0,m.collapsed?o.dataset.collapsed="1":delete o.dataset.collapsed,u.innerHTML=y(),u.title=m.collapsed?w("btn.expandPane"):w("btn.collapsePane"),u.setAttribute("aria-label",u.title),bi()};return m.setTitle=c=>{i.textContent=typeof c=="string"?c:""},m.setHint=c=>{n.textContent=typeof c=="string"?c:""},m.isCollapsed=()=>m.collapsed===!0,m.collapse=()=>p(!0),m.expand=()=>p(!1),m.toggle=()=>p(!m.collapsed),m.dispose=()=>{m.disposed||yt!==m||Ss(!1)},_.addEventListener("mousedown",c=>{if(c.button!==0||m.collapsed)return;c.preventDefault();let d=c.clientX,h=c.clientY,f=o.getBoundingClientRect(),g=v=>{r==="bottom"?Fr=ys("bottom",Math.max(s,f.height+(h-v.clientY))):Hr=ys("right",Math.max(s,f.width+(d-v.clientX))),bi()},C=()=>{document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",C),document.body.style.userSelect=""};document.body.style.userSelect="none",document.addEventListener("mousemove",g),document.addEventListener("mouseup",C)}),_.addEventListener("dblclick",()=>p(!m.collapsed)),u.addEventListener("click",()=>p(!m.collapsed)),l.addEventListener("click",()=>Ss(!0)),m.setTitle(typeof e?.title=="string"?e.title:""),m.setHint(typeof e?.hint=="string"?e.hint:""),p(e?.collapsed===!0),yt=m,bi(),Qc(),m}function Qc(){let e=yt;if(e!==null){if(Xn(e.ownerKey,Se)){delete e.el.dataset.dockHidden,ft!==null&&(ft.dataset.side=e.side);return}e.el.dataset.dockHidden="1",ft!==null&&delete ft.dataset.side}}function Kt(e){let t=ue.get(e);if(t!==void 0&&t.embedded!==!0){Se=e,St(),Sr();for(let[r,s]of ue)s.embedded!==!0&&s.termEl!==null&&(s.termEl.style.display=r===e?"":"none");t.embedded!==!0&&nt!==null&&t.termEl!==null&&t.termEl.parentElement!==nt&&nt.appendChild(t.termEl),Os(),yr(),at(),mr(),Qc();try{t.fit.fit()}catch{}t.spawned&&!t.exited&&Jr(t),Nr(t,t.exited?w("status.exited"):"",t.exited?w("btn.clickReopen"):"","exited"),Lo()}}function to(e){if(Ce===null)return;let t=ue.get(e);if(t===void 0)return;let s=Ce.querySelector(`[data-sid="${e}"]`)?.querySelector(".tt_tabDot");if(s==null)return;s.dataset.state=Bi(t);let o=ot===null?null:ot.querySelector('[data-sid="'+e+'"] .tt_tabDot');o!==null&&(o.dataset.state=Bi(t))}var ro=!1;function at(){if(Ce===null)return;if(Ce.querySelector(".tt_tabRename")!==null){ro||(ro=!0,setTimeout(()=>{ro=!1,at()},1e3));return}Ce.textContent="";for(let[t,r]of ue){if(r.embedded===!0)continue;let s=document.createElement("button");s.className="tt_tab",s.dataset.sid=t,t===Se&&(s.dataset.active="");let o=document.createElement("span");o.className="tt_tabDot",o.dataset.state=Bi(r),s.appendChild(o);let i=document.createElement("span");i.className="tt_tabLabel",i.textContent=r.label||w("panel.tabLabel",{n:Mo(t)}),i.addEventListener("dblclick",a=>{a.stopPropagation(),b_(t,s)});let n=document.createElement("span");n.className="tt_tabClose",n.title=w("btn.close"),n.textContent="\u2715",n.setAttribute("role","button"),n.setAttribute("aria-label",w("btn.closeTabAria",{label:r.label||""})),n.tabIndex=0,n.addEventListener("keydown",a=>{(a.key==="Enter"||a.key===" "||a.key==="Spacebar")&&(a.preventDefault(),a.stopPropagation(),co(t))}),s.title=i.textContent,s.appendChild(i),s.appendChild(n),s.addEventListener("click",a=>{if(a.target.closest(".tt_tabClose")!==null){a.stopPropagation(),co(t);return}Kt(t)}),Ce.appendChild(s)}let e=Ce.querySelector("[data-active]");e!==null&&typeof e.scrollIntoView=="function"&&e.scrollIntoView({block:"nearest",inline:"nearest"}),ho(),ot!==null&&ue.size===0&&Gt()}function ho(){if(Ce===null)return;let e=Ce.scrollWidth-Ce.clientWidth,t=e>1;if(At!==null&&(At.hidden=!t,t?At.title=w("btn.tabListTitle",{n:ue.size}):ot!==null&&Gt()),!t){delete Ce.dataset.edge;return}let r=Ce.scrollLeft>1,s=Ce.scrollLeft<e-1;Ce.dataset.edge=r&&s?"both":s?"end":"start",ot!==null&&hh()}function Bi(e){return e.exited?"exited":e.live===!0?"connected":e.errored===!0?"error":"connecting"}function m_(e){if(Ce===null||Math.abs(e.deltaY)<=Math.abs(e.deltaX))return;let t=Ce.scrollWidth-Ce.clientWidth;if(t<=1)return;let r=Math.max(0,Math.min(t,Ce.scrollLeft+e.deltaY));r!==Ce.scrollLeft&&(e.preventDefault(),Ce.scrollLeft=r)}function g_(e){return e?.direction==="remote"?w("meta.tunnelRemote",{host:e.remoteHost||"127.0.0.1",port:String(e.remotePort??0),local:String(e.localTargetPort??0)}):w("meta.tunnelLocal",{local:String(e?.localPort??0),host:e?.remoteHost??"?",port:String(e?.remotePort??0)})}function mr(){if(_s===null||ki===null||gs===null||ms===null)return;gs.textContent="";let e=_t(),t=e?.spawnSpec??{};if(e===void 0||t.t!=="ssh"){_s.dataset.hidden="";return}delete _s.dataset.hidden;let r=Number(t.port);ki.textContent=typeof e.target=="string"&&e.target!==""?e.target:typeof t.name=="string"&&t.name!==""?t.name:String(t.username??"")+"@"+String(t.host??"")+(Number.isInteger(r)&&r!==22?":"+r:""),ut!==null&&(e.persistTmux===!0?(ut.textContent="tmux",ut.dataset.state="ok",ut.title=w("status.tmuxPersistedTitle")):t.persist===!0&&e.spawned===!0?(ut.textContent=w("status.notPersisted"),ut.dataset.state="warn",ut.title=w("status.tmuxUnavailableTitle")):(ut.textContent="",delete ut.dataset.state,ut.removeAttribute("title")));let s=e.exited?"exited":e.live===!0?"connected":e.errored===!0?"error":"connecting";ms.dataset.state=s,ms.title=w(s==="connected"?"status.connected":s==="connecting"?"status.connecting":s==="error"?"status.errored":"status.exited");let o=(n,a,u,l)=>{let _=document.createElement("button");_.type="button",_.className="tt_toolBtn tt_connAct",_.title=u,_.innerHTML=n+"<span></span>",_.lastElementChild.textContent=a,_.addEventListener("click",l),gs.appendChild(_)};if(typeof t.command=="string"&&t.command!=="")return;let i=typeof t.name=="string"?t.name:"";for(let n of oo)try{n({tab:e,spec:t,bookName:i,addAction:o})}catch(a){console.warn("[dsh-tty] connbar action failed: "+(a instanceof Error?a.message:String(a)))}}function v_(e,t){if(qr!==null){wi();return}let r=document.createElement("div");r.className="tt_addMenu tt_connMore",qr=r,mo(r,w("panel.tunnels"),w("hint.tunnelsSettings"),()=>{wi(),eh(e,t)},void 0,Ac),document.body.appendChild(r);let s=e.getBoundingClientRect(),o=r.offsetWidth,n=s.left+o>window.innerWidth-8?s.right-o:s.left;r.style.left=Math.max(8,Math.min(n,window.innerWidth-o-8))+"px",r.style.top=s.bottom+6+"px";let a=u=>{qr===r&&(r.contains(u.target)||e.contains(u.target)||wi())};Si=a,setTimeout(()=>document.addEventListener("mousedown",a,!0),0)}function wi(){Si!==null&&(document.removeEventListener("mousedown",Si,!0),Si=null),qr!==null&&(qr.remove(),qr=null)}var ur=null,yi=null,qr=null,Si=null;function Oi(){yi!==null&&(document.removeEventListener("mousedown",yi,!0),yi=null),ur!==null&&(ur.remove(),ur=null)}function eh(e,t){if(ur!==null){Oi();return}let r=document.createElement("div");r.className="tt_tunnelPop";let s=document.createElement("div");s.className="tt_tunnelPopTitle",s.textContent=w("panel.tunnelsFor",{name:t}),r.appendChild(s);let o=document.createElement("div");o.textContent=w("list.loading"),r.appendChild(o);let i=document.createElement("span");i.className="tt_cardHint",i.textContent=w("hint.tunnelsCard"),r.appendChild(i),document.body.appendChild(r),ur=r;let n=e.getBoundingClientRect();r.style.top=String(n.bottom+6)+"px",r.style.left=String(Math.max(8,n.right-340))+"px";let a=u=>{ur===r&&(r.contains(u.target)||e.contains(u.target)||Oi())};yi=a,setTimeout(()=>document.addEventListener("mousedown",a,!0),0),(async()=>{let u=[];try{let m=await(await fetch("/api/dsh-tty/tunnels",{cache:"no-store"})).json();m.ok&&Array.isArray(m.tunnels)&&(u=m.tunnels)}catch{}if(ur!==r)return;o.textContent="";let l=Ao.filter(_=>_?.bookName===t&&_?.enabled!==!1);if(l.length===0){let _=document.createElement("span");_.className="tt_cardHint",_.textContent=w("list.noActiveTunnels"),o.appendChild(_);return}for(let _ of l){let m=u.find(h=>h?.name===_?.name),y=m?.state??"stopped",p=document.createElement("div");p.className="tt_tunnelPopRow";let c=document.createElement("span");c.className="tt_connDot",c.dataset.state=y==="active"?"connected":y==="error"?"error":"connecting";let d=document.createElement("span");d.className="tt_connTarget",d.title=String(m?.error??m?.lastForwardError??""),d.textContent=g_(_)+" \xB7 "+y+(m?.fatal===!0?w("status.fatalSuffix"):""),p.appendChild(c),p.appendChild(d),o.appendChild(p)}})()}function Mo(e){let t=1;for(let r of ue.keys()){if(r===e)return String(t);t+=1}return String(t)}function b_(e,t){let r=ue.get(e);if(r===void 0||t.querySelector(".tt_tabRename")!==null)return;let s=t.querySelector(".tt_tabLabel");if(s===null)return;let o=document.createElement("input");o.className="tt_tabRename",o.value=r.label||w("panel.tabLabel",{n:Mo(e)}),s.replaceWith(o),o.focus(),o.select();let i=!1,n=()=>{if(i)return;i=!0;let u=o.value.trim();r.label=u!==""?u:void 0,at(),or()},a=()=>{i||(i=!0,at())};o.addEventListener("keydown",u=>{u.stopPropagation(),u.key==="Enter"?n():u.key==="Escape"&&a()}),o.addEventListener("blur",n),o.addEventListener("click",u=>u.stopPropagation())}var Ao=[],th="dialog",ir="off",nr={maxDownloadMb:1024,maxUploadMb:2048,maxUploadFiles:1e3},Kr=null,rh=!1,sh=!1,sr=null,Ii=null,gr=!1;function ih(e){gr=e,Ii!==null&&Ii.set(e)}function w_(e){ih(!(e!==null&&typeof e=="object"&&e.enabled===!1)),e!==null&&typeof e=="object"&&typeof e.statsEnabled=="boolean"&&e.statsEnabled!==Ai&&(Ai=e.statsEnabled,Os(),yr())}function Ts(e){w_(e),e!==null&&typeof e=="object"&&Array.isArray(e.sshHosts)&&($t=e.sshHosts),e!==null&&typeof e=="object"&&Array.isArray(e.tunnels)&&(Ao=e.tunnels),e!==null&&typeof e=="object"&&(e.sftpStyle==="dual"||e.sftpStyle==="dialog")&&(th=e.sftpStyle),e!==null&&typeof e=="object"&&(e.persistence==="tmux"||e.persistence==="off")&&(ir=e.persistence),e!==null&&typeof e=="object"&&typeof e.sftpLimits=="object"&&e.sftpLimits!==null&&(nr={...nr,...e.sftpLimits}),e!==null&&typeof e=="object"&&Number.isInteger(e.maxSessions)&&e.maxSessions>=1&&(Kr=e.maxSessions),e!==null&&typeof e=="object"&&typeof e.allowProxyCommand=="boolean"&&(rh=e.allowProxyCommand),e!==null&&typeof e=="object"&&typeof e.assistEnabled=="boolean"&&(Ri=e.assistEnabled,Ri||St(),Sr()),e!==null&&typeof e=="object"&&typeof e.allowProxyCommandGranted=="boolean"&&(sh=e.allowProxyCommandGranted)}function y_(e,t){let r=t==="error"||t==="info"?t:"warn",s=document.createElement("div");s.className="tt_toast",s.dataset.kind=r,s.innerHTML='<span class="tt_toastIcon">'+(r==="error"?Fc:r==="info"?Wp:Fp)+'</span><span class="tt_toastText"></span>',s.lastElementChild.textContent=e,document.body.appendChild(s),setTimeout(()=>s.remove(),4e3)}async function nh(){try{Me({t:"sessions"});let e=await Di("sessions",3e3);if(e!==null&&Array.isArray(e.list))return sr=oc(e.list),sr}catch{}return null}async function Ni(){if(await nh(),Kr===null||sr===null||sr<Kr)return null;let e=[...ue.values()].filter(o=>!o.exited).length,t=Math.max(0,sr-e),r=t>0?w("msg.maxSessionsOthers",{count:t}):"",s=w("msg.maxSessions",{live:sr,max:Kr,own:e,others:r});return y_(s),s}function S_(){return Kr!==null&&sr!==null&&sr>=Kr}function Do(){return Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4)}function oh(e){return Ao.filter(t=>t?.bookName===e&&t?.enabled!==!1).length}function uo(e){let t=Number(e?.port),r=Number.isInteger(t)&&t!==22?":"+t:"",s=e?.auth==="key"?"key":e?.auth==="password"?"password":"agent",o=e?.agentForward===!0?" \xB7 fwd":"";return String(e?.username??"")+"@"+String(e?.host??"")+r+" \xB7 "+s+o}async function fo(e,t){let r=await fetch("/api/dsh-tty/probe",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...e,bookRecord:t===!0})}),s=await r.json().catch(()=>({}));return s&&s.ok===!1&&s.error?{error:String(s.error)}:s&&s.result?{result:s.result}:{error:String(s&&s.error?s.error:w("error.probeHttp",{status:r.status}))}}function po(e,t){if(!e)return w("msg.probing");let r=e,s=typeof r.tcp?.ms=="number"?r.tcp.ms:null,o=typeof r.auth?.ms=="number"?r.auth.ms:null,i=[];if(r.jump!==null&&typeof r.jump=="object"&&typeof r.jump.label=="string"&&r.jump.label!==""){let _=typeof r.jump.tcp?.ms=="number"?r.jump.tcp.ms:null,m=r.jump.tcp?.ok?_!==null?_+"ms":w("meta.reachable"):w("meta.unreachable");i.push(w("meta.jumpStage",{label:r.jump.label})+" "+m)}r.proxy!==null&&typeof r.proxy=="object"&&i.push(r.proxy.active===!0?w("meta.probeProxy"):w("meta.probeProxyOff")),r.tcp?.ok?i.push("TCP "+(s!==null?s+"ms":w("meta.reachable"))):r.tcp?.skipped===!0&&i.push(w("meta.probeTcpSkipped")),r.banner?.ok&&i.push(w("meta.probeBanner"));let n=r.hostkey?.state;if(n==="matched"?i.push(w("meta.hostKeyMatched")):n==="recorded"?i.push(w("meta.hostKeyRecorded")):n==="mismatch"&&i.push(w("meta.hostKeyMismatch")),r.auth?.ok){let _=o!==null?w("meta.authOkMs",{ms:o}):w("meta.authOk");return w("meta.probeOk",{detail:_+(i.length?" \xB7 "+i.join(" \xB7 "):"")})}let a=r.tcp?.skipped===!0?"":r.tcp?.error,l=(r.auth?.error||a||w("error.unknown"))+(i.length?" \xB7 "+i.join(" \xB7 "):"");return t?.prefix!==void 0?t.prefix+l:w("error.probeFailed",{detail:l})}async function Po(){try{let t=await(await fetch("/api/dsh-tty/config",{cache:"no-store"})).json();if(t.ok&&typeof t.config=="object"&&t.config!==null){let r=$t;Ts(t.config),pt!==null&&$t!==r&&go(pt)}}catch{}}function ah(e){pt!==null&&(e.target instanceof Element&&(pt.contains(e.target)||e.target.closest(".tt_tabAdd")!==null)||vt())}function Is(e,t){let r=t.getBoundingClientRect(),s=e.offsetWidth,o=e.offsetHeight,n=r.left+s>window.innerWidth-8?r.right-s:r.left;e.style.left=Math.max(8,Math.min(n,window.innerWidth-s-8))+"px";let a=r.bottom+6,u=r.top-o-6;e.style.top=(a+o>window.innerHeight-8&&u>=8?u:Math.min(a,Math.max(8,window.innerHeight-o-8)))+"px"}function C_(e){if(pt!==null){vt();return}Gt(),Po(),nh().then(()=>{pt!==null&&go(pt)});let t=document.createElement("div");t.className="tt_addMenu",pt=t,go(t),document.body.appendChild(t),Is(t,e),document.addEventListener("mousedown",ah,!0)}function vt(){pt!==null&&(document.removeEventListener("mousedown",ah,!0),pt.remove(),pt=null)}function x_(e){if(ot!==null){Gt();return}vt();let t=document.createElement("div");t.className="tt_addMenu tt_tabMenu",ot=t,hh(),document.body.appendChild(t),Is(t,e),document.addEventListener("mousedown",lh,!0),document.addEventListener("keydown",ch,!0)}function Gt(){ot!==null&&(document.removeEventListener("mousedown",lh,!0),document.removeEventListener("keydown",ch,!0),ot.remove(),ot=null)}function lh(e){ot!==null&&(e.target instanceof Element&&(ot.contains(e.target)||e.target.closest(".tt_tabMore")!==null)||Gt())}function ch(e){e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),Gt())}function hh(){let e=ot;if(e===null)return;e.textContent="";let t=L_();if(t.length===0){let s=document.createElement("div");s.className="tt_addMenuTitle",s.textContent=w("list.tabsAllVisible"),e.appendChild(s);return}for(let[s,o]of t){let i=o.label||w("panel.tabLabel",{n:Mo(s)}),n=T_(o),a=document.createElement("div");a.className="tt_addMenuRow tt_tabMenuRow",a.dataset.sid=s;let u=document.createElement("button");u.type="button",u.className="tt_addMenuItem tt_tabMenuItem",s===Se&&(u.dataset.active="");let l=document.createElement("span");l.className="tt_tabDot",l.dataset.state=Bi(o),u.appendChild(l);let _=document.createElement("span");_.className="tt_addMenuText tt_tabMenuText";let m=document.createElement("span");if(m.className="tt_addMenuMain",m.textContent=i,_.appendChild(m),n!==""){let p=document.createElement("span");p.className="tt_tabMenuMeta",p.textContent=n,_.appendChild(p)}u.appendChild(_),u.title=n===""?i:i+" \xB7 "+n,u.addEventListener("click",()=>{Kt(s),Gt()}),a.appendChild(u);let y=document.createElement("button");y.type="button",y.className="tt_addMenuEdit",y.textContent="\u2715",y.title=w("btn.close"),y.setAttribute("aria-label",w("btn.closeTabAria",{label:i})),y.addEventListener("click",()=>{co(s)}),a.appendChild(y),e.appendChild(a)}let r=e.querySelector(".tt_tabMenuItem[data-active]");r!==null&&typeof r.scrollIntoView=="function"&&r.scrollIntoView({block:"nearest"})}var k_=40;function E_(e,t){let r=e.getBoundingClientRect();return Math.max(0,Math.min(r.right,t.right)-Math.max(r.left,t.left))}function L_(){let e=[];if(Ce===null)return e;let t=Ce.getBoundingClientRect();for(let[r,s]of ue){if(s.embedded===!0)continue;let o=Ce.querySelector('[data-sid="'+r+'"]');o!==null&&E_(o,t)<k_&&e.push([r,s])}return e}function T_(e){return typeof e.target=="string"?e.target:""}function R_(){return w("panel.assistTitle")===Ci["panel.assistTitle"]?"zh":"en"}function M_(e){let t=e!=null&&typeof e.exitCode=="number"?String(e.exitCode):"?";return w("badge.assistFailed",{code:t})}function Sr(){if(tr===null)return;let e=Se===null?void 0:ar.get(Se),t=Ri&&e!==void 0&&e.dismissed!==!0;if(tr.hidden=!t,t){let r=tr.querySelector(".tt_assistBadgeText");r!==null&&(r.textContent=M_(e))}}function St(){jr!==null&&(jr.abort(),jr=null),_r!==null&&(_r.remove(),_r=null),wr=null,Mi=null}function A_(e){_r!==null&&(e.target instanceof Element&&(_r.contains(e.target)||e.target.closest(".tt_assistBadge")!==null)||St())}function D_(e){e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),St())}function P_(e){let t=Se;if(t===null)return;St();let r=document.createElement("div");r.className="tt_addMenu tt_assistMenu",_r=r,wr=t,Mi=e,document.body.appendChild(r),document.addEventListener("mousedown",A_,!0),document.addEventListener("keydown",D_,!0),_o(),Is(r,e),B_(t)}async function B_(e){let t=ar.get(e);if(t===void 0||t.busy===!0||(t.error===null||t.error===void 0)&&t.answer!==null&&t.answer!==void 0)return;t.busy=!0,t.answer=null,t.command="",t.error=null,_o();let r=new AbortController;jr=r;try{let s=await fetch("/api/dsh-tty/assist",{method:"POST",cache:"no-store",headers:{"content-type":"application/json"},body:JSON.stringify({sid:e,kind:"failure",lang:R_()}),signal:r.signal}),o=await s.json().catch(()=>null);if(wr!==e)return;t.busy=!1,s.ok&&o!==null&&o.ok===!0?(t.answer=String(o.answer!==void 0?o.answer:""),t.command=String(o.command!==void 0?o.command:"")):t.error=o!==null&&o.error!==void 0?String(o.error):"HTTP "+String(s.status)}catch(s){if(r.signal.aborted||wr!==e)return;t.busy=!1,t.error=s instanceof Error?s.message:String(s)}finally{jr===r&&(jr=null),t.busy=!1,_o()}}function _o(){let e=_r;if(e===null)return;let t=wr,r=t===null?void 0:ar.get(t);e.textContent="";let s=document.createElement("div");s.className="tt_assistHead";let o=document.createElement("span");if(o.className="tt_assistTitle",o.textContent=w("panel.assistTitle"),s.appendChild(o),r!==void 0&&typeof r.exitCode=="number"){let m=document.createElement("span");m.className="tt_assistCode",m.textContent="exit="+String(r.exitCode),s.appendChild(m)}e.appendChild(s);let i=r!==void 0&&typeof r.error=="string"&&r.error!=="",n=document.createElement("div");if(n.className="tt_assistBody",r===void 0||r.busy===!0){n.classList.add("tt_assistMuted","tt_assistBusy");let m=document.createElement("span");m.className="tt_assistSpin",n.appendChild(m),n.appendChild(document.createTextNode(w("status.assistThinking")))}else if(i)n.textContent=w("error.assistRequest",{message:r.error}),n.classList.add("tt_assistError");else{let m=r.answer!==null&&r.answer!==void 0?r.answer:"";n.textContent=m,n.classList.add("tt_assistAnswer"),m===""&&(n.hidden=!0)}if(e.appendChild(n),r===void 0||r.busy===!0)return;let a=r.command!=="";if(a){let m=document.createElement("div");m.className="tt_assistCmdWrap";let y=document.createElement("span");y.className="tt_assistCmdLabel",y.textContent=w("panel.assistCommand"),m.appendChild(y);let p=document.createElement("div");p.className="tt_assistCmd",p.textContent=r.command,m.appendChild(p),e.appendChild(m)}let u=document.createElement("div");if(u.className="tt_assistFoot",a){let m=document.createElement("button");m.type="button",m.className="tt_toolBtn tt_assistFill",m.textContent=w("btn.assistFill"),m.title=w("hint.assistFillNoEnter"),m.addEventListener("click",O_),u.appendChild(m)}let l=document.createElement("button");l.type="button",l.className="tt_toolBtn",l.textContent=w(i?"btn.assistCopyError":"btn.assistCopy"),l.addEventListener("click",()=>{if(i){yo(w("error.assistRequest",{message:r.error}));return}yo(r.answer!==null&&r.answer!==void 0?r.answer:"")}),u.appendChild(l);let _=document.createElement("button");if(_.type="button",_.className="tt_toolBtn tt_assistClose",_.textContent=w("btn.assistClose"),_.addEventListener("click",()=>{St()}),u.appendChild(_),e.appendChild(u),!i){let m=document.createElement("span");m.className="tt_assistNote",m.textContent=w(a?"hint.assistFillNoEnter":"hint.assistNoCommand"),e.appendChild(m)}Mi!==null&&Is(e,Mi)}function O_(){let e=wr,t=e===null?void 0:ar.get(e);if(e===null||t===void 0||t.command==="")return;Me({t:"input",sid:e,d:""+t.command});let r=ue.get(e);St(),I_(e),r!==void 0&&r.term!==null&&r.term.focus()}function I_(e){let t=ar.get(e);t!==void 0&&(t.dismissed=!0),Sr()}function mo(e,t,r,s,o,i){let n=document.createElement("button");if(n.type="button",n.className="tt_addMenuItem",o===!0&&(n.setAttribute("data-soldout",""),n.title=w("btn.maxSessionsTitle")),i!==void 0){let l=document.createElement("span");l.className="tt_addMenuIcon",l.innerHTML=i,n.appendChild(l)}let a=document.createElement("span");a.className="tt_addMenuText";let u=document.createElement("span");if(u.className="tt_addMenuMain",u.textContent=t,a.appendChild(u),r!==""){let l=document.createElement("span");l.className="tt_addMenuSub",l.textContent=r,a.appendChild(l)}n.appendChild(a),n.addEventListener("click",s),e.appendChild(n)}function go(e){e.textContent="";let t=S_();mo(e,w("option.localTerminal"),w(ir==="tmux"?"hint.tmuxHosted":"hint.openInSessionCwd"),async()=>{await Ni()||(vt(),Ls())},t,Ui);let r=document.createElement("div");r.className="tt_addMenuSep",e.appendChild(r);let s=document.createElement("div");s.className="tt_addMenuTitle",s.textContent=w("panel.sshBook"),e.appendChild(s);for(let i of $t){if(i===null||typeof i!="object"||typeof i.name!="string"||i.name==="")continue;let n=document.createElement("div");n.className="tt_addMenuRow";let a=document.createElement("button");a.type="button",a.className="tt_addMenuItem",t&&(a.setAttribute("data-soldout",""),a.title=w("btn.maxSessionsTitle"));let u=document.createElement("span");u.className="tt_addMenuIcon",u.innerHTML=Hp;let l=document.createElement("span");l.className="tt_addMenuText";let _=document.createElement("span");_.className="tt_addMenuMain",_.textContent=i.name;let m=document.createElement("span");m.className="tt_addMenuSub";let y=oh(i.name),p=Vn(i.jump);m.textContent=uo(i)+(p===""?"":" "+w("meta.viaJump",{label:p}))+(typeof i.proxyCommand=="string"&&i.proxyCommand.trim()!==""?" "+w("meta.viaProxy"):"")+(y>0?" \xB7 \u21C4"+String(y):""),l.appendChild(_),l.appendChild(m),a.appendChild(u),a.appendChild(l),a.addEventListener("click",async()=>{if(await Ni())return;vt();let h=ir==="tmux"&&i.persist!==!1?{persist:!0,persistName:Do()}:{};Ls({t:"ssh",name:i.name,...h},i.name)});let c=document.createElement("button");c.type="button",c.className="tt_addMenuEdit",c.title=w("btn.sftpFileBrowse"),c.innerHTML=xs,c.addEventListener("click",()=>{vt(),Ki({name:i.name})});let d=document.createElement("button");d.type="button",d.className="tt_addMenuEdit",d.title=w("btn.editConnection"),d.innerHTML=xo,d.addEventListener("click",()=>{vt(),yc(i)}),n.appendChild(a),n.appendChild(c),n.appendChild(d),e.appendChild(n)}if($t.length===0){let i=document.createElement("div");i.className="tt_addMenuTitle",i.textContent=w("list.emptySshBook"),e.appendChild(i)}let o=document.createElement("div");o.className="tt_addMenuSep",e.appendChild(o),mo(e,w("option.sshConnect"),w("hint.sshConnect"),()=>{vt(),yc()},!1,Wc)}function yc(e){if($r!==null)return;let t=e!==null&&typeof e=="object"?e:null,r=t!==null,s=document.createElement("div");s.className="tt_sshBackdrop";let o=document.createElement("div");o.className="tt_sshCard";let i=document.createElement("div");i.className="tt_sshTitle",i.innerHTML=Wc+"<span></span>",i.lastElementChild.textContent=r?w("panel.editConnection",{name:String(t.name??"")}):w("panel.sshConnect"),o.appendChild(i);let n=Q=>{let re=document.createElement("div");return re.className="tt_sshSection",re.textContent=Q,re},a={},u=(Q,re,ie)=>{let ae=document.createElement("label");ae.className="tt_sshRow";let he=document.createElement("span");he.className="tt_cardLabel",he.textContent=re,ae.appendChild(he);let ne;if(ie?.select!==void 0){ne=document.createElement("select");for(let me of ie.select){let we=document.createElement("option");we.value=me.value,we.textContent=me.label,ne.appendChild(we)}}else ne=document.createElement("input"),ne.type=ie?.type??"text",ne.placeholder=ie?.placeholder??"";return ne.className="tt_cardInput",ne.autocomplete="off",ne.spellcheck=!1,ae.appendChild(ne),a[Q]=ne,ae};o.appendChild(n(w("section.connection")));let l=document.createElement("div");l.className="tt_sshGrid",l.appendChild(u("host",w("field.host"),{placeholder:w("placeholder.host")})),l.appendChild(u("port",w("field.port"),{placeholder:"22"})),o.appendChild(l),o.appendChild(u("username",w("field.username"),{placeholder:"root"})),o.appendChild(n(w("section.auth"))),o.appendChild(u("auth",w("field.authMethod"),{select:[{value:"agent",label:w("option.authAgent")},{value:"key",label:w("option.authKey")},{value:"password",label:w("option.authPassword")}]}));let _=u("keyPath",w("field.keyPath"),{placeholder:"~/.ssh/id_ed25519"}),m=u("passphrase",w("field.passphrase"),{type:"password"}),y=u("password",w("field.password"),{type:"password"}),p=(Q,re)=>{let ie=document.createElement("div");ie.className="tt_sshRow tt_envRow";let ae=document.createElement("input");ae.type="text",ae.className="tt_cardInput",ae.placeholder=w("placeholder.credRef"),ae.title=w("hint.credRefCandidates"),ae.autocomplete="off",ae.spellcheck=!1;let he=document.createElement("span");he.className="tt_cardHint tt_envEmpty",he.textContent=re,he.hidden=!0,ae.hidden=!0;let ne=document.createElement("div");ne.className="tt_envList",ne.dataset.hidden="";let me=[],we=()=>{if(ne.textContent="",me.length===0){let Te=document.createElement("span");Te.className="tt_cardHint",Te.textContent=re,ne.appendChild(Te);return}let pe=ae.value.trim().toUpperCase(),Le=pe===""?me:me.filter(Te=>Te.toUpperCase().includes(pe));for(let Te of Le.slice(0,30)){let ge=document.createElement("button");ge.type="button",ge.className="tt_envItem",ge.textContent=Te;let Pe="env:"+Te,Ne=null,Ke=()=>{Ne!==null&&(clearTimeout(Ne),Ne=null),ge.textContent=Te,delete ge.dataset.danger};ge.addEventListener("mousedown",Bt=>Bt.preventDefault()),ge.addEventListener("click",()=>{let Bt=Q.value;if(Bt===""||Bt.startsWith("env:")||Ne!==null){Ke(),Q.value=Pe,Q.focus(),Q.dispatchEvent(new Event("change"));return}ge.textContent=w("list.credOverwrite",{name:Te}),ge.dataset.danger="",Ne=setTimeout(Ke,4e3)}),ne.appendChild(ge)}if(Le.length>30){let Te=document.createElement("span");Te.className="tt_envMore",Te.textContent=w("list.moreMatches",{count:Le.length-30}),ne.appendChild(Te)}else if(Le.length===0){let Te=document.createElement("span");Te.className="tt_envMore",Te.textContent=w("list.noCredRef"),ne.appendChild(Te)}};return ae.addEventListener("input",we),ae.addEventListener("focus",()=>{me.length>0&&delete ne.dataset.hidden}),ae.addEventListener("blur",()=>{ae.value.trim()===""&&(ne.dataset.hidden="")}),ie.appendChild(ae),ie.appendChild(he),ie.appendChild(ne),{row:ie,setNames(pe){me=Array.isArray(pe)?pe:[];let Le=me.length>0;ae.hidden=!Le,he.hidden=Le,we()}}},c=(Q,re)=>{let ie=document.createElement("div");ie.className="tt_sshRow tt_credRow";let ae=document.createElement("label");ae.className="tt_credToggle";let he=document.createElement("input");he.type="checkbox",he.className="tt_cardCheckbox";let ne=document.createElement("span");ne.textContent=w("check.rememberCredential"),ae.appendChild(he),ae.appendChild(ne),he.checked=Dt!==null,ae.title=w("hint.rememberCredential");let me=document.createElement("button");me.type="button",me.className="tt_toolBtn tt_credClear",me.textContent=w("btn.clearCredential"),me.dataset.hidden="";let we=document.createElement("span");we.className="tt_credStatus",ie.appendChild(ae),ie.appendChild(me),ie.appendChild(we);let pe=(ge,Pe)=>{we.textContent=ge,we.dataset.kind=Pe},Le=async()=>{let ge=Wr(Q.value),Pe=ge!=="";if(ae.hidden=Pe,me.hidden=!Pe,we.hidden=!1,Gr()===null){he.disabled=!0,he.checked=!1,me.disabled=!0,pe(w(Dt===null?"error.credPlainUnavailable":"error.credPlainIncomplete"),"muted");return}if(he.disabled=!1,!Pe){we.hidden=!0,pe("","plain");return}let Ne=await Tc(ge);if(Ne.unreported===!0){pe(w("status.credUnreported",{ref:ge}),"plain");return}if(Ne.error!==void 0){pe(w("error.credStatusFailed",{error:Ne.error}),"error");return}let Ke=Ne.view;pe(Ke.configured?w("status.credStored",{ref:ge,source:Ke.source!==""?w("meta.credSource",{source:Ke.source}):""}):w("status.credUnknown",{ref:ge}),Ke.configured?"ok":"plain"),me.disabled=Ke.configured!==!0||Ke.writable!==!0};me.addEventListener("click",()=>{(async()=>{let ge=Wr(Q.value);if(ge==="")return;let Pe=await Rc(ge);if(Pe.error!==void 0){pe(Pe.error,"error");return}Q.value="",await Le()})()});let Te=async()=>{let ge=await Mc(he.checked===!0,Q.value,a.host.value,a.port.value,a.username.value,re);return ge.value!==void 0&&(Q.value=ge.value,await Le()),ge};return Q.addEventListener("change",()=>{Le()}),{row:ie,refresh:Le,storeIfRequested:Te}},d=p(a.passphrase,w("hint.noCredRefPassphrase")),h=p(a.password,w("hint.noCredRefPassword")),f=c(a.password,"PASSWORD");(async()=>{let Q=await Lc();d.setNames(Q),h.setNames(Q)})(),o.appendChild(_),o.appendChild(m),o.appendChild(d.row),o.appendChild(y),o.appendChild(f.row),o.appendChild(h.row),o.appendChild(n(w("section.jump")));let g=u("jumpHost",w("field.jumpHost"),{placeholder:w("placeholder.jumpHost")});o.appendChild(g);let C=document.createElement("label");C.className="tt_sshRow";let v=document.createElement("input");v.type="checkbox";let x=document.createElement("span");x.className="tt_cardLabel",x.textContent=w("check.jumpOwnCred"),C.appendChild(v),C.appendChild(x),o.appendChild(C);let b=u("jumpUsername",w("field.jumpUsername"),{placeholder:"root"}),E=u("jumpAuth",w("field.jumpAuth"),{select:[{value:"",label:w("option.authInherit")},{value:"agent",label:w("option.authAgent")},{value:"key",label:w("option.authKey")},{value:"password",label:w("option.authPassword")}]}),O=u("jumpKeyPath",w("field.keyPath"),{placeholder:"~/.ssh/id_ed25519"}),B=u("jumpPassphrase",w("field.passphrase"),{type:"password"}),N=u("jumpPassword",w("field.password"),{type:"password"});for(let Q of[b,E,O,B,N])o.appendChild(Q);let A=document.createElement("div");A.className="tt_cardHint",A.textContent=w("hint.jumpInherit"),o.appendChild(A),o.appendChild(n(w("section.proxyCommand")));let K=u("proxyCommand",w("field.proxyCommand"),{placeholder:w("placeholder.proxyCommand")});o.appendChild(K);let P=document.createElement("div");P.className="tt_cardHint",P.textContent=w("hint.proxyCommand"),o.appendChild(P);let D=document.createElement("div");D.className="tt_cardHint tt_sshProbeWarn",D.textContent=w("hint.proxyCommandDisabled"),o.appendChild(D);let H=()=>{let Q=a.proxyCommand.value.trim()!=="",re=sh,ie=re&&rh;D.textContent=w(re?"hint.proxyCommandDisabled":"hint.proxyCommandNotGranted"),D.style.display=Q&&!ie?"":"none"};a.proxyCommand.addEventListener("input",H),H();let I=()=>{let Q=Gn(a.jumpHost.value);if(Q===void 0)return;if(v.checked!==!0)return Q;let re={...Q},ie=a.jumpUsername.value.trim();ie!==""&&(re.username=ie);let ae=a.jumpAuth.value;(ae==="agent"||ae==="key"||ae==="password")&&(re.auth=ae);let he=a.jumpKeyPath.value.trim();return he!==""&&(re.keyPath=he),a.jumpPassphrase.value!==""&&(re.passphrase=a.jumpPassphrase.value),a.jumpPassword.value!==""&&(re.password=a.jumpPassword.value),re},S=()=>{let Q=a.proxyCommand.value.trim();return Q===""?void 0:Q},T=()=>{let Q=Gn(a.jumpHost.value)!==void 0,re=Q&&v.checked===!0;C.style.display=Q?"":"none";for(let ie of[b,E,O,B,N])ie.style.display=re?"":"none";O.style.display=re&&a.jumpAuth.value==="key"?"":"none",B.style.display=re&&a.jumpAuth.value==="key"?"":"none",N.style.display=re&&a.jumpAuth.value==="password"?"":"none",A.style.display=Q?"":"none"};a.jumpHost.addEventListener("input",T),a.jumpAuth.addEventListener("change",T),v.addEventListener("change",T),o.appendChild(n(w("section.options")));let k=document.createElement("label");k.className="tt_cardRow";let R=document.createElement("input");R.type="checkbox",R.className="tt_cardCheckbox";let z=document.createElement("span");z.className="tt_cardLabel",z.textContent=w("check.agentForward"),k.appendChild(R),k.appendChild(z),o.appendChild(k);let V=document.createElement("label");V.className="tt_cardRow";let X=document.createElement("input");X.type="checkbox",X.className="tt_cardCheckbox";let Z=document.createElement("span");Z.className="tt_cardLabel",Z.textContent=w("check.persist"),V.appendChild(X),V.appendChild(Z),X.checked=ir==="tmux",ir==="tmux"&&o.appendChild(V);let W=document.createElement("label");W.className="tt_cardRow";let L=document.createElement("input");L.type="checkbox",L.className="tt_cardCheckbox";let F=document.createElement("span");F.className="tt_cardLabel",F.textContent=w("check.saveToBook"),W.appendChild(L),W.appendChild(F),o.appendChild(W);let $=u("name",w("field.bookName"),{placeholder:w("placeholder.bookName")});if($.style.display="none",o.appendChild($),L.addEventListener("change",()=>{$.style.display=L.checked?"":"none",L.checked&&a.name.value.trim()===""&&a.host.value.trim()!==""&&(a.name.value=a.host.value.trim()),L.checked&&a.name.focus()}),r){W.style.display="none",a.name.value=String(t.name??""),$.style.display="",a.host.value=String(t.host??""),a.port.value=String(t.port??22),a.username.value=String(t.username??""),a.auth.value=t.auth==="key"||t.auth==="password"?String(t.auth):"agent",a.keyPath.value=String(t.keyPath??""),a.passphrase.value=String(t.passphrase??""),a.password.value=String(t.password??"");let Q=t.jump!==null&&typeof t.jump=="object"?t.jump:null;if(a.jumpHost.value=Vn(Q),Q!==null){let re=Q.auth!==void 0||Q.keyPath!==void 0||Q.password!==void 0||Q.passphrase!==void 0;v.checked=re,re&&(a.jumpUsername.value=String(Q.username??""),a.jumpAuth.value=Q.auth==="key"||Q.auth==="password"?String(Q.auth):"",a.jumpKeyPath.value=String(Q.keyPath??""),a.jumpPassphrase.value=String(Q.passphrase??""),a.jumpPassword.value=String(Q.password??""))}R.checked=t.agentForward===!0,a.proxyCommand.value=String(t.proxyCommand??""),H(),X.checked=ir==="tmux"}let j=document.createElement("div");j.className="tt_sshStatus";let Y=document.createElement("div");Y.className="tt_sshError";let ee=document.createElement("div");ee.className="tt_sshProbeResult",j.appendChild(Y),j.appendChild(ee),o.appendChild(j),T();let fe=()=>{Y.textContent="";let Q=a.host.value.trim(),re=a.username.value.trim(),ie=Number(a.port.value);if((!Number.isInteger(ie)||ie<1||ie>65535)&&(ie=22),Q===""||re==="")return Y.textContent=w("error.hostUserRequired"),null;let ae=a.auth.value,he={host:Q,port:ie,username:re,auth:ae},ne=I();ne!==void 0&&(he.jump=ne);let me=S();if(me!==void 0&&(he.proxyCommand=me),ae==="key"){let we=a.keyPath.value.trim();if(we==="")return Y.textContent=w("error.keyPathRequired"),null;he.keyPath=we;let pe=a.passphrase.value;pe!==""&&(he.passphrase=pe)}if(ae==="password"){let we=a.password.value;if(we==="")return Y.textContent=w("error.passwordRequired"),null;he.password=we}return R.checked&&(he.agentForward=!0),he},ce=document.createElement("div");ce.className="tt_sshActions";let se=document.createElement("div");se.className="tt_sshActionsGroup";let G=document.createElement("div");G.className="tt_sshActionsGroup",ce.appendChild(se),ce.appendChild(G);let te=document.createElement("button");te.type="button",te.className="tt_toolBtn",te.textContent=w("btn.cancel");let ve=document.createElement("button");ve.type="button",ve.className="tt_cardSave",ve.textContent=w("btn.connect"),se.appendChild(te);let le=document.createElement("button");le.type="button",le.className="tt_toolBtn",le.textContent=w("btn.fileBrowse"),le.title=w("btn.browseTitle"),le.addEventListener("click",()=>{Y.textContent="";let Q=a.host.value.trim(),re=a.username.value.trim(),ie=Number(a.port.value);if((!Number.isInteger(ie)||ie<1||ie>65535)&&(ie=22),Q===""||re===""){Y.textContent=w("error.hostUserRequired");return}let ae=a.auth.value,he={host:Q,port:ie,username:re,auth:ae},ne=I();ne!==void 0&&(he.jump=ne);let me=S();if(me!==void 0&&(he.proxyCommand=me),ae==="key"){let we=a.keyPath.value.trim();if(we===""){Y.textContent=w("error.keyPathRequired");return}he.keyPath=we;let pe=a.passphrase.value;pe!==""&&(he.passphrase=pe)}if(ae==="password"){let we=a.password.value;if(we===""){Y.textContent=w("error.passwordRequired");return}he.password=we}R.checked&&(he.agentForward=!0),rr(),Ki(he)}),se.appendChild(le);let be=null;r&&(be=document.createElement("button"),be.type="button",be.className="tt_toolBtn",be.textContent=w("btn.saveEdit"),be.addEventListener("click",()=>{Y.textContent="";let Q=a.host.value.trim(),re=a.username.value.trim();if(Q===""||re===""){Y.textContent=w("error.hostUserRequired");return}let ie=Number(a.port.value);(!Number.isInteger(ie)||ie<1||ie>65535)&&(ie=22);let ae=a.auth.value,ne={name:a.name.value.trim()||Q,host:Q,port:ie,username:re,auth:ae,keyPath:ae==="key"?a.keyPath.value.trim():"",passphrase:a.passphrase.value,password:a.password.value,agentForward:R.checked,persist:X.checked},me=I();if(me!==void 0&&(ne.jump=me),ne.proxyCommand=a.proxyCommand.value.trim(),ae==="key"&&ne.keyPath===""){Y.textContent=w("error.keyPathRequired");return}be!==null&&(be.disabled=!0),(async()=>{let we=await f.storeIfRequested();if(we.error!==void 0){Y.textContent=we.error,be!==null&&(be.disabled=!1);return}we.value!==void 0&&(ne.password=we.value);let pe=await H_(String(t.name??""),ne);if(be!==null&&(be.disabled=!1),pe!==void 0){Y.textContent=w("error.saveCredFailed",{error:pe});return}rr()})()}),se.appendChild(be));let Ae=document.createElement("button");Ae.type="button",Ae.className="tt_toolBtn",Ae.textContent=w("btn.probe"),Ae.title=w("btn.probeTitle"),Ae.addEventListener("click",()=>{let Q=fe();Q!==null&&(ee.className="tt_sshProbeResult",ee.textContent=w("msg.probing"),Ae.disabled=!0,fo(Q,!1).then(re=>{Ae.disabled=!1,re.result?(ee.className="tt_sshProbeResult"+(re.result.auth?.ok===!0?" tt_sshProbeOk":" tt_sshProbeBad"),ee.textContent=po(re.result)):(ee.className="tt_sshProbeResult tt_sshProbeBad",ee.textContent=w("error.probeFailed",{detail:String(re.error||w("error.unknown"))}))}))}),se.appendChild(Ae),G.appendChild(ve),o.appendChild(ce);let De=()=>{_.style.display=a.auth.value==="key"?"":"none",m.style.display=a.auth.value==="key"?"":"none",d.row.style.display=a.auth.value==="key"?"":"none",y.style.display=a.auth.value==="password"?"":"none",h.row.style.display=a.auth.value==="password"?"":"none",f.row.style.display=a.auth.value==="password"?"":"none"};a.auth.addEventListener("change",De),De(),f.refresh(),te.addEventListener("click",()=>rr()),s.addEventListener("mousedown",Q=>{Q.target===s&&rr()}),ve.addEventListener("click",async()=>{Y.textContent="";let Q=await Ni();if(Q!==null){Y.textContent=Q;return}let re=a.host.value.trim(),ie=a.username.value.trim(),ae=Number(a.port.value);if((!Number.isInteger(ae)||ae<1||ae>65535)&&(ae=22),re===""||ie===""){Y.textContent=w("error.hostUserRequired");return}let he=a.auth.value,ne={t:"ssh",host:re,port:ae,username:ie,auth:he},me=I();me!==void 0&&(ne.jump=me);let we=S();if(we!==void 0&&(ne.proxyCommand=we),he==="key"){let ge=a.keyPath.value.trim();ge!==""&&(ne.keyPath=ge);let Pe=a.passphrase.value;Pe!==""&&(ne.passphrase=Pe)}if(he==="password"){let ge=a.password.value;ge!==""&&(ne.password=ge)}R.checked&&(ne.agentForward=!0),X.checked&&(ne.persist=!0,ne.persistName=Do());let pe=ae!==22?ie+"@"+re+":"+ae:ie+"@"+re,Le=ge=>{rr(),de!==null&&Ls(ne,ge!==""?ge:pe)};if(!L.checked){Le("");return}let Te=a.name.value.trim()||re;ve.disabled=!0,(async()=>{let ge=await f.storeIfRequested();if(ge.error!==void 0){Y.textContent=ge.error,ve.disabled=!1;return}let Pe=ge.value??ne.password??"",Ne=await N_({name:Te,host:re,port:ae,username:ie,auth:he,keyPath:ne.keyPath??"",passphrase:ne.passphrase??"",password:Pe,agentForward:R.checked,persist:X.checked,...me!==void 0?{jump:me}:{},proxyCommand:a.proxyCommand.value.trim()});if(ve.disabled=!1,Ne!==void 0){Y.textContent=w("error.saveBookFailed",{error:Ne});return}Le(Te)})()}),s.appendChild(o),document.body.appendChild(s),$r=s,a.host.focus()}function rr(){$r!==null&&($r.remove(),$r=null)}async function N_(e){let t=[...$t.filter(r=>r?.name!==e.name),e];try{let r=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sshHosts:t})}),s=await r.json().catch(()=>({}));if(!r.ok||!s.ok)return String(s.error||"HTTP "+r.status);Ts(s.config);return}catch(r){return String(r&&r.message?r.message:r)}}async function H_(e,t){if(t.name!==e&&$t.some(s=>s?.name===t.name))return w("error.bookNameTaken",{name:t.name});let r=$t.map(s=>s?.name===e?t:s);try{let s=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sshHosts:r})}),o=await s.json().catch(()=>({}));if(!s.ok||!o.ok)return String(o.error||"HTTP "+s.status);Ts(o.config);return}catch(s){return String(s&&s.message?s.message:s)}}function F_(e,t,r){let s=Ir(r,Se);if(uh(s))return;let o=document.createElement("div");o.className="tt_sftpDualCard";let i=document.createElement("div");i.className="tt_sftpTitleRow";let n=document.createElement("div");n.className="tt_sshTitle",n.innerHTML=xs+"<span></span>",n.lastElementChild.textContent=w("panel.sftpDual",{label:t});let a=document.createElement("button");a.type="button",a.className="tt_close",a.title=w("btn.close"),a.innerHTML=zi,a.addEventListener("click",()=>Xr(s)),i.appendChild(n),i.appendChild(a),o.appendChild(i);let u=document.createElement("div");u.className="tt_sftpStatus";let l=(S,T)=>{u.textContent=S,T===void 0?delete u.dataset.state:u.dataset.state=T},_=!1,m=(S,T)=>{if(!(_||p.local.busy||p.remote.busy)){_=!0;for(let k of[p.local,p.remote])k.setBusy(!0);l(S,"busy"),Promise.resolve().then(T).catch(k=>{(k===null||typeof k!="object"||k.name!=="TransferCanceledError")&&P.fail(w("status.failed")),l(String(k&&k.message?k.message:k),"error")}).finally(()=>{_=!1;for(let k of[p.local,p.remote])k.setBusy(!1)})}},y=S=>{p[S].bar.after(d),d.style.display="",h.focus(),h.select()},p={},c=(S,T)=>{let k={kind:S,path:"",busy:!1},R=document.createElement("div");R.className="tt_sftpPane";let z=document.createElement("div");z.className="tt_sftpPaneHead";let V=document.createElement("span");V.textContent=T;let X=document.createElement("span");X.className="tt_sftpPaneMeta",z.appendChild(V),z.appendChild(X),R.appendChild(z);let Z=document.createElement("div");Z.className="tt_sftpBar";let W=document.createElement("input");W.type="text",W.className="tt_sftpPath",W.placeholder=w(S==="local"?"placeholder.localPath":"placeholder.remotePath"),W.spellcheck=!1,W.autocomplete="off";let L=document.createElement("button");L.type="button",L.className="tt_toolBtn",L.innerHTML=ko+"<span>"+w("btn.refresh")+"</span>";let F=document.createElement("button");F.type="button",F.className="tt_toolBtn",F.innerHTML=Ic+"<span>"+w("btn.mkdir")+"</span>",Z.appendChild(W),Z.appendChild(L),Z.appendChild(F),R.appendChild(Z);let $=document.createElement("div");$.className="tt_sftpList",R.appendChild($),k.bar=Z;let j=G=>{k.busy=G;for(let te of[L,F])te.disabled=G;W.disabled=G},Y=async(G,te)=>{let ve=S==="local"?"/api/dsh-tty/local-fs/":"/api/dsh-tty/sftp/",le=S==="local"?te:{...e,...te},be=await fetch(ve+G,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(le)}),Ae=await be.json().catch(()=>({}));if(!be.ok||Ae.ok!==!0)throw new Error(String(Ae.error||"HTTP "+be.status));return Ae},ee=(G,te)=>{if(!(k.busy||_))return j(!0),l(G,"busy"),Promise.resolve().then(te).catch(ve=>l(String(ve&&ve.message?ve.message:ve),"error")).finally(()=>j(!1))},fe=(G,te)=>{if(G===void 0||G==="")throw new Error(w("error.dirNotReady"));return G.endsWith("/")||G.endsWith("\\")?G+te:G+"/"+te},ce=G=>{let te=fe(k.path,G.name),ve=[];G.isDir===!0?ve.push(w("meta.dir")):ve.push(it(Number(G.size))||"\u2014");let le=ph(Number(G.mtime));le!==""&&ve.push(le);let be=x(G.isDir?xs:G.isSymlink?Bc:Pc,G.name,ve.join(" \xB7 "),G.isDir===!0?"dir":G.isSymlink===!0?"link":"file"),Ae=()=>k.loadDir(k.path),De=S==="local"?p.remote:p.local;return G.isDir===!0&&be.addEventListener("click",Q=>{Q.target instanceof Element&&Q.target.closest(".tt_sftpAct")!==null||k.loadDir(te)}),b(be,S==="local"?Nc:Hc,w("btn.transferTo",{target:w(S==="local"?"meta.remote":"meta.local"),path:De.path}),()=>{if(k.path===""||De.path===""){l(w("error.transferDirsNotReady"),"error");return}P.reset(),P.pulse(0),m(w("msg.transferring",{name:G.name}),async()=>{let Q=await fetch("/api/dsh-tty/local-fs/transfer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"start",direction:S==="local"?"up":"down",...e,localPath:S==="local"?te:fe(De.path,G.name),remotePath:S==="local"?fe(De.path,G.name):te})}),re=await Q.json().catch(()=>({}));if(!Q.ok||re.ok!==!0)throw P.fail(w("error.transferFailed")),new Error(String(re.error||"HTTP "+Q.status));let ie=re.job?.id;if(typeof ie!="string"||ie==="")throw P.fail(w("error.transferFailed")),new Error(w("error.noTaskId"));await D(ie,G.name)==="canceled"?(P.reset(),l(w("msg.transferCanceled",{name:G.name}))):(P.done(w("status.done")),setTimeout(()=>P.reset(),1500),l(w("msg.transferred",{name:G.name}))),await De.loadDir(De.path)})}),S!=="local"&&G.isDir!==!0&&b(be,Oc,w("btn.download",{name:G.name}),()=>{O(G,te)}),b(be,xo,w("btn.rename",{name:G.name}),()=>{h.placeholder=w("placeholder.newName"),h.value=G.name,y(S),C=async()=>{let Q=h.value.trim();Q===""||Q===G.name||(v(),await k.runTask(w("msg.renaming",{name:G.name}),async()=>{await Y("rename",{from:te,to:fe(k.path,Q)}),await Ae()}))}}),E(be,()=>k.runTask(w("msg.deleting",{name:G.name}),async()=>{await Y("remove",{path:te,recursive:G.isDir===!0}),await Ae(),l(w("msg.deleted",{name:G.name}))}),G),be},se=G=>{if($.textContent="",k.path!==""&&k.path!=="/"&&/^[A-Za-z]:[\\/]?$/.test(k.path)===!1){let le=x(Co,w("list.parentDir"),"","up");le.addEventListener("click",()=>{let be=S==="local"?z_(k.path):_h(k.path);be!==null&&k.loadDir(be)}),$.appendChild(le)}let te=Array.isArray(G)?G:[];if(te.length===0){let le=document.createElement("div");le.className="tt_addMenuTitle",le.textContent=w("list.emptyDir"),$.appendChild(le);return}let ve=500;for(let le of te.slice(0,ve))le===null||typeof le!="object"||typeof le.name!="string"||le.name===""||$.appendChild(ce(le));if(te.length>ve){let le=document.createElement("div");le.className="tt_addMenuTitle",le.textContent=w("list.truncated",{rest:te.length-ve,total:te.length}),$.appendChild(le)}};return k.loadDir=async G=>{try{let te=await Y("list",{path:G??k.path});k.path=typeof te.path=="string"&&te.path!==""?te.path:k.path,W.value=k.path;let ve=Array.isArray(te.entries)?te.entries.length:0;se(te.entries),X.textContent=w("list.itemCount",{count:ve}),l(k.path)}catch(te){l(String(te&&te.message?te.message:te),"error")}},k.runTask=ee,k.setBusy=j,p[S]=k,L.addEventListener("click",()=>{k.runTask(w("list.loading"),()=>k.loadDir(k.path))}),F.addEventListener("click",()=>{k.busy||_||(h.placeholder=w("placeholder.newDirName"),h.value="",y(S),C=async()=>{let G=h.value.trim();G!==""&&(v(),await k.runTask(w("msg.creatingDir",{name:G}),async()=>{await Y("mkdir",{path:fe(k.path,G),parents:!0}),await k.loadDir(k.path)}))})}),W.addEventListener("keydown",G=>{if(G.key!=="Enter"||(G.preventDefault(),k.busy||_))return;let te=W.value.trim();te!==""&&k.runTask(w("list.loading"),()=>k.loadDir(te))}),R},d=document.createElement("div");d.className="tt_sftpEditor",d.style.display="none";let h=document.createElement("input");h.type="text",h.className="tt_cardInput",h.spellcheck=!1,h.autocomplete="off";let f=document.createElement("button");f.type="button",f.className="tt_toolBtn",f.textContent=w("btn.ok");let g=document.createElement("button");g.type="button",g.className="tt_toolBtn",g.textContent=w("btn.cancel"),d.appendChild(h),d.appendChild(f),d.appendChild(g);let C=null,v=()=>{d.style.display="none",h.value="",C=null};f.addEventListener("click",()=>{C?.()}),g.addEventListener("click",v),h.addEventListener("keydown",S=>{S.key==="Enter"?(S.preventDefault(),C?.()):S.key==="Escape"&&(S.stopPropagation(),v())});let x=(S,T,k,R)=>{let z=document.createElement("button");z.type="button",z.className="tt_sftpRow";let V=document.createElement("span");V.className="tt_sftpIcon",V.innerHTML=S,R!==void 0&&(V.dataset.kind=R);let X=document.createElement("span");if(X.className="tt_sftpName",X.textContent=T,X.title=T,z.appendChild(V),z.appendChild(X),k!==""){let Z=document.createElement("span");Z.className="tt_sftpMeta",Z.textContent=k,z.appendChild(Z)}return z},b=(S,T,k,R)=>{let z=document.createElement("button");z.type="button",z.className="tt_sftpAct",z.innerHTML=T,z.title=k,z.addEventListener("click",V=>{V.stopPropagation(),R()}),S.appendChild(z)},E=(S,T,k)=>{let R=document.createElement("button");R.type="button",R.className="tt_sftpAct",R.innerHTML=Ur,R.title=k.isDir?w("btn.deleteEntryDir",{name:k.name}):w("btn.deleteEntry",{name:k.name});let z=null;R.addEventListener("click",V=>{if(V.stopPropagation(),z!==null){clearTimeout(z),z=null,R.innerHTML=Ur,delete R.dataset.danger,T();return}R.textContent=w("btn.confirm"),R.dataset.danger="",z=setTimeout(()=>{z=null,R.innerHTML=Ur,delete R.dataset.danger},4e3)}),S.appendChild(R)},O=(S,T)=>p.remote.runTask(w("msg.downloading",{name:S.name}),async()=>{P.reset();let k;try{k=await gh("/api/dsh-tty/sftp/download",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...e,path:T})},(R,z)=>{P.set(R,z)},nr.maxDownloadMb,R=>P.setCancel(R))}catch(R){if(vo(R)){P.reset(),l(w("msg.downloadCanceled",{name:S.name}));return}throw P.fail(w("error.downloadFailed")),R}P.done(w("status.done")),vh(k,S.name),setTimeout(()=>P.reset(),1500),l(w("msg.downloaded",{name:S.name,size:it(k.size)||String(k.size)+" B"}))}),B=c("local",w("meta.local")),N=c("remote",w("meta.remote"));p.local.wrap=B,p.remote.wrap=N;let A=document.createElement("div");A.className="tt_sftpDual",A.appendChild(B),A.appendChild(N),o.appendChild(A),o.appendChild(d);let K=document.createElement("div");K.className="tt_sftpFoot";let P=mh();K.appendChild(P.el),K.appendChild(u),o.appendChild(K);let D=async(S,T)=>{let k=!1;P.setCancel(()=>{k||(k=!0,fetch("/api/dsh-tty/local-fs/transfer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"cancel",job:S})}).catch(()=>{}))});try{for(;;){await new Promise(X=>setTimeout(X,400));let R=await fetch("/api/dsh-tty/local-fs/transfer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"status",job:S})}),z=await R.json().catch(()=>({}));if(!R.ok||z.ok!==!0){if(k)return"canceled";throw new Error(String(z.error||"HTTP "+R.status))}let V=z.job;if(V===null||typeof V!="object")throw new Error(w("error.invalidTaskState"));if(V.state==="running"){let X=typeof V.current=="string"&&V.current!==""?V.current:T;l(w("msg.transferring",{name:X}),"busy"),Number.isFinite(V.total)&&V.total>0?P.set(Number(V.bytes)||0,V.total):P.pulse(Number(V.bytes)||0);continue}if(V.state==="canceled")return"canceled";if(V.state!=="done")throw new Error(String(V.error||w("error.transferFailed")));return"done"}}finally{P.setCancel(null)}},H=To(),I=H===null?420:Math.round(H.height*.56);fh(o,w("panel.sftpDual",{label:t}),I,s),p.local.loadDir(""),p.remote.loadDir("")}var qt=null,Pt=null;function dh(){return Pt!==null&&Xn(Pt.ownerKey,Se)?Pt.ownerKey:Ir(void 0,Se)}var uh=(e=dh())=>qt!==null||Pt!==null&&Pt.ownerKey===e;function fh(e,t,r,s){let o=Ir(s,Se),i=yt!==null&&yt.ownerKey===o;if(de!==null&&!qe&&ft!==null&&!i)try{let a=Zc({title:t,side:"bottom",size:r,min:200,ownerSid:o,onClose:()=>Xr(o)});a.element.appendChild(e),Pt=a;return}catch(a){console.warn("[dsh-tty] SFTP \u6302\u5230\u7EC8\u7AEF\u6302\u8F7D\u4F4D\u5931\u8D25\uFF0C\u56DE\u9000\u5BF9\u8BDD\u6846\uFF1A"+(a instanceof Error?a.message:String(a)))}let n=document.createElement("div");n.className="tt_sshBackdrop",n.appendChild(e),n.addEventListener("mousedown",a=>{a.target===n&&Xr()}),document.body.appendChild(n),qt=n}var Cs=null;function W_(){let e=Cs;if(Cs=null,e!==null)try{e.click()}catch{}}function U_(e){let t=new TextEncoder().encode(e),r="";for(let s of t)r+=String.fromCharCode(s);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function ph(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=s=>String(s).padStart(2,"0");return t.getFullYear()+"-"+r(t.getMonth()+1)+"-"+r(t.getDate())+" "+r(t.getHours())+":"+r(t.getMinutes())}function _h(e){let t=String(e).replace(/\/+$/,""),r=t.lastIndexOf("/");return r<=0?"/":t.slice(0,r)}function z_(e){let t=String(e).trim();if(t===""||(t=t.replace(/[\\/]+$/,""),t===""))return null;let r=t.match(/^([A-Za-z]:)(.*)$/);if(r!==null){let o=r[2];if(o==="")return null;let i=Math.max(o.lastIndexOf("\\"),o.lastIndexOf("/"));return i<=0?r[1]+"\\":r[1]+o.slice(0,i)}if(t.startsWith("\\\\")||t.startsWith("//")){let o=t.slice(2);if(o.split(/[\\/]/).filter(a=>a!=="").length<=2)return null;let n=Math.max(o.lastIndexOf("\\"),o.lastIndexOf("/"));return t.slice(0,2)+o.slice(0,n)}let s=t.lastIndexOf("/");return s<=0?s===0?"/":null:t.slice(0,s)}function fs(e,t){return e.endsWith("/")?e+t:e+"/"+t}function mh(){let e=document.createElement("div");e.className="tt_sftpProgress";let t=document.createElement("div");t.className="tt_sftpTrack";let r=document.createElement("div");r.className="tt_sftpFill",t.appendChild(r);let s=document.createElement("span");s.className="tt_sftpPct",s.textContent="";let o=document.createElement("button");o.type="button",o.className="tt_sftpCancel",o.title=w("btn.cancelTransfer"),o.textContent="\u2715",o.style.display="none";let i=null;o.addEventListener("click",p=>{p.stopPropagation();let c=i;c!==null&&(o.disabled=!0,c())}),e.appendChild(t),e.appendChild(s),e.appendChild(o);let n=p=>{s.textContent=p},a="",u=-1,l=p=>{p!==a&&(a=p,s.textContent=p)},_=p=>{let c=Math.round(p);c!==u&&(u=c,r.style.width=c+"%")},m=()=>{i=null,Cs===o&&(Cs=null),o.style.display="none",o.disabled=!1};return{el:e,reset(){delete e.dataset.active,delete e.dataset.state,a="",u=-1,this._last=void 0,this._lastAt=0,this._rate=void 0,r.style.width="0%",s.textContent="",m()},setCancel(p){if(p==null){m();return}i=p,Cs=o,o.disabled=!1,o.style.display=""},set(p,c){e.dataset.active="",delete e.dataset.state;let d=Date.now();if(this._last!==void 0&&d>this._lastAt){let h=(p-this._last)/((d-this._lastAt)/1e3);this._rate=this._rate===void 0?h:this._rate*.7+h*.3}if(this._last=p,this._lastAt=d,Number.isFinite(c)&&c>0){let h=Math.min(100,Math.max(0,p/c*100));_(h);let f=this._rate!==void 0&&this._rate>=0?us(this._rate):"";l(Math.round(h)+"%"+(f!==""?" \xB7 "+f:""))}else{r.style.width="";let h=this._rate!==void 0&&this._rate>=0?us(this._rate):"";l(it(p)+(h!==""?" \xB7 "+h:""))}},pulse(p){e.dataset.active="",delete e.dataset.state,r.style.width="45%",r.style.transition="none",setTimeout(()=>{r.style.transition="width .15s linear"},30);let c=Date.now();if(this._last!==void 0&&c>this._lastAt){let h=(p-this._last)/((c-this._lastAt)/1e3);this._rate=this._rate===void 0?h:this._rate*.7+h*.3}this._last=p,this._lastAt=c;let d=this._rate!==void 0&&this._rate>=0?us(this._rate):"";l((Number.isFinite(p)?it(p):"\u2026")+(d!==""?" \xB7 "+d:""))},done(p){e.dataset.active="",e.dataset.state="done",r.style.width="100%",u=100,m(),l(p!==void 0&&p!==""?p:w("status.done"))},fail(p){e.dataset.active="",e.dataset.state="error",m(),l(p!==void 0&&p!==""?p:w("status.failed"))},text(p){delete e.dataset.state,p===void 0||p===""?(e.dataset.active="",a="",s.textContent=""):(e.dataset.active="",r.style.width="",u=-1,l(p))}}}async function gh(e,t,r,s=0,o=null){let i=s>0?s*1024*1024:0,n=typeof AbortController=="function"?new AbortController:null,a=!1;n!==null&&(t={...t,signal:n.signal},typeof o=="function"&&o(()=>{a=!0,n.abort()}));let u=await fetch(e,t);if(!u.ok){let d="HTTP "+u.status;try{let h=await u.json();h!==null&&typeof h=="object"&&typeof h.error=="string"&&(d=h.error)}catch{}throw new Error(d)}let l=Number(u.headers.get("content-length")),_=Number.isFinite(l)&&l>0;if(i>0&&_&&l>i){try{await u.body?.cancel()}catch{}throw new Error(w("error.downloadTooBig",{size:it(i)}))}let m=u.body;if(m===null||typeof m.getReader!="function"){let d=await u.blob();if(i>0&&d.size>i)throw new Error(w("error.downloadTooBig",{size:it(i)}));return _&&r(l,l),d}let y=m.getReader(),p=[],c=0;try{for(;;){let{done:d,value:h}=await y.read();if(d)break;if(h!==void 0&&h.byteLength>0){if(c+=h.byteLength,i>0&&c>i){try{await y.cancel()}catch{}throw new Error(w("error.downloadTooBig",{size:it(i)}))}p.push(h),r(c,_?l:NaN)}}}catch(d){if(a||d!==null&&typeof d=="object"&&d.name==="AbortError"){try{await y.cancel()}catch{}throw new Yr}throw d}return new Blob(p,{type:"application/octet-stream"})}var Yr=class extends Error{constructor(){super(w("msg.canceled")),this.name="TransferCanceledError"}};function vo(e){return e instanceof Yr}function vh(e,t){let r=URL.createObjectURL(e),s=document.createElement("a");s.href=r,s.download=t,s.click(),setTimeout(()=>URL.revokeObjectURL(r),3e4)}async function j_(e){if(e==null)return[];let t=typeof e.items<"u"?[...e.items]:[],r=[];for(let l of t){let _=typeof l.webkitGetAsEntry=="function"?l.webkitGetAsEntry():null;_!==null&&r.push(_)}if(r.length===0)return[...e.files??[]].map(l=>({relPath:l.name,file:l}));let s=[],o=nr.maxUploadFiles,i=nr.maxUploadMb>0?nr.maxUploadMb*1024*1024:0,n=()=>o>0&&s.length>=o,a=0,u=(l,_)=>new Promise(m=>{if(n()){m();return}if(l.isFile===!0){l.file(c=>{i>0&&a+(c.size??0)>i?s._limitExceeded=!0:(s.push({relPath:_+l.name,file:c}),a+=c.size??0),m()},()=>m());return}if(l.isDirectory!==!0){m();return}let y=l.createReader(),p=()=>{y.readEntries(async c=>{if(c.length===0){m();return}for(let d of c){if(n())break;await u(d,_+l.name+"/")}if(n()){m();return}p()},()=>m())};p()});for(let l of r)await u(l,"");return s}function Ki(e,t){let r=Ir(t,Se);if(uh(r))return;let s=e!==null&&typeof e=="object"?e:{},o={};if(typeof s.name=="string"&&s.name!=="")o.name=s.name;else{for(let F of["host","username","auth","keyPath","passphrase","password"])typeof s[F]=="string"&&s[F]!==""&&(o[F]=s[F]);let L=Number(s.port);Number.isInteger(L)&&L>=1&&L<=65535&&(o.port=L),s.agentForward===!0&&(o.agentForward=!0)}let i=o.name??(o.username!==void 0?o.username+"@"+String(o.host??""):String(o.host??""));if(th==="dual"){F_(o,i,r);return}let n=document.createElement("div");n.className="tt_sftpCard";let a=document.createElement("div");a.className="tt_sftpTitleRow";let u=document.createElement("div");u.className="tt_sshTitle",u.innerHTML=xs+"<span></span>",u.lastElementChild.textContent="SFTP \xB7 "+i;let l=document.createElement("button");l.type="button",l.className="tt_close",l.title=w("btn.close"),l.innerHTML=zi,l.addEventListener("click",()=>Xr(r)),a.appendChild(u),a.appendChild(l),n.appendChild(a);let _=document.createElement("div");_.className="tt_sftpBar";let m=document.createElement("input");m.type="text",m.className="tt_sftpPath",m.placeholder=w("placeholder.remotePath"),m.spellcheck=!1,m.autocomplete="off";let y=document.createElement("button");y.type="button",y.className="tt_toolBtn",y.innerHTML=ko+"<span>"+w("btn.refresh")+"</span>";let p=document.createElement("button");p.type="button",p.className="tt_toolBtn",p.innerHTML=Ic+"<span>"+w("btn.mkdir")+"</span>";let c=document.createElement("button");c.type="button",c.className="tt_toolBtn",c.innerHTML=Ip+"<span>"+w("btn.upload")+"</span>",c.title=w("btn.uploadTitle");let d=document.createElement("input");d.type="file",d.multiple=!0,d.style.display="none",_.appendChild(m),_.appendChild(y),_.appendChild(p),_.appendChild(c),n.appendChild(_),n.appendChild(d);let h=document.createElement("div");h.className="tt_sftpEditor",h.style.display="none";let f=document.createElement("input");f.type="text",f.className="tt_cardInput",f.spellcheck=!1,f.autocomplete="off";let g=document.createElement("button");g.type="button",g.className="tt_toolBtn",g.textContent=w("btn.ok");let C=document.createElement("button");C.type="button",C.className="tt_toolBtn",C.textContent=w("btn.cancel"),h.appendChild(f),h.appendChild(g),h.appendChild(C),n.appendChild(h);let v=null,x=()=>{h.style.display="none",v=null};g.addEventListener("click",()=>{v?.()}),C.addEventListener("click",x),f.addEventListener("keydown",L=>{L.key==="Enter"?(L.preventDefault(),v?.()):L.key==="Escape"&&(L.stopPropagation(),x())});let b=document.createElement("div");b.className="tt_sftpList",n.appendChild(b);let E=document.createElement("div");E.className="tt_sftpFoot";let O=document.createElement("div");O.className="tt_sftpStatus";let B=mh();E.appendChild(B.el),E.appendChild(O),n.appendChild(E);let N={path:"",busy:!1},A=(L,F)=>{O.textContent=L,F===void 0?delete O.dataset.state:O.dataset.state=F},K=L=>{N.busy=L;for(let F of[y,p,c])F.disabled=L;m.disabled=L},P=async(L,F)=>{let $=await fetch("/api/dsh-tty/sftp/"+L,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...o,...F})}),j=await $.json().catch(()=>({}));if(!$.ok||j.ok!==!0)throw new Error(String(j.error||"HTTP "+$.status));return j},D=async(L,F)=>{if(!N.busy){K(!0),A(L,"busy");try{await F()}catch($){A(String($&&$.message?$.message:$),"error")}finally{K(!1)}}},H=(L,F,$,j)=>{let Y=document.createElement("button");Y.type="button",Y.className="tt_sftpRow";let ee=document.createElement("span");ee.className="tt_sftpIcon",ee.innerHTML=L,j!==void 0&&(ee.dataset.kind=j);let fe=document.createElement("span");if(fe.className="tt_sftpName",fe.textContent=F,fe.title=F,Y.appendChild(ee),Y.appendChild(fe),$!==""){let ce=document.createElement("span");ce.className="tt_sftpMeta",ce.textContent=$,Y.appendChild(ce)}return Y},I=(L,F,$,j)=>{let Y=document.createElement("button");Y.type="button",Y.className="tt_sftpAct",Y.innerHTML=F,Y.title=$,Y.addEventListener("click",ee=>{ee.stopPropagation(),j()}),L.appendChild(Y)},S=(L,F,$)=>{let j=document.createElement("button");j.type="button",j.className="tt_sftpAct",j.innerHTML=Ur,j.title=F.isDir?w("btn.deleteEntryDir",{name:F.name}):w("btn.deleteEntry",{name:F.name});let Y=null;j.addEventListener("click",ee=>{if(ee.stopPropagation(),!N.busy){if(Y!==null){clearTimeout(Y),Y=null,j.innerHTML=Ur,delete j.dataset.danger,D(w("msg.deleting",{name:F.name}),async()=>{await P("remove",{path:$,recursive:F.isDir===!0}),await k(N.path),A(w("msg.deleted",{name:F.name}))});return}j.textContent=w("btn.confirm"),j.dataset.danger="",Y=setTimeout(()=>{Y=null,j.innerHTML=Ur,delete j.dataset.danger},4e3)}}),L.appendChild(j)},T=L=>{if(b.textContent="",N.path!==""&&N.path!=="/"){let j=H(Co,w("list.parentDir"),"","up");j.addEventListener("click",()=>{D(w("list.loading"),()=>k(_h(N.path)))}),b.appendChild(j)}let F=Array.isArray(L)?L:[];if(F.length===0){let j=document.createElement("div");j.className="tt_addMenuTitle",j.textContent=w("list.emptyDir"),b.appendChild(j);return}let $=500;for(let j of F.slice(0,$)){if(j===null||typeof j!="object"||typeof j.name!="string"||j.name==="")continue;let Y=fs(N.path,j.name),ee=[];j.isDir===!0?ee.push(w("meta.dir")):ee.push(it(Number(j.size))||"\u2014");let fe=ph(Number(j.mtime));fe!==""&&ee.push(fe);let ce=H(j.isDir?xs:j.isSymlink?Bc:Pc,j.name,ee.join(" \xB7 "),j.isDir===!0?"dir":j.isSymlink===!0?"link":"file");j.isDir===!0?ce.addEventListener("click",se=>{se.target instanceof Element&&se.target.closest(".tt_sftpAct")!==null||D(w("list.loading"),()=>k(Y))}):(ce.addEventListener("click",se=>{se.target instanceof Element&&se.target.closest(".tt_sftpAct")!==null||R(j,Y)}),I(ce,Oc,w("btn.download",{name:j.name}),()=>{R(j,Y)})),I(ce,xo,w("btn.rename",{name:j.name}),()=>{f.placeholder=w("placeholder.newName"),f.value=j.name,h.style.display="",f.focus(),f.select(),v=async()=>{let se=f.value.trim();se===""||se===j.name||(x(),await D(w("msg.renaming",{name:j.name}),async()=>{await P("rename",{from:Y,to:fs(N.path,se)}),await k(N.path)}))}}),S(ce,j,Y),b.appendChild(ce)}if(F.length>$){let j=document.createElement("div");j.className="tt_addMenuTitle",j.textContent=w("list.truncated",{rest:F.length-$,total:F.length}),b.appendChild(j)}},k=async L=>{try{let F=await P("list",{path:L??N.path});N.path=typeof F.path=="string"&&F.path!==""?F.path:"/",m.value=N.path;let $=Array.isArray(F.entries)?F.entries.length:0;T(F.entries),A(N.path+" \u2014 "+w("list.itemCount",{count:$}))}catch(F){A(String(F&&F.message?F.message:F),"error")}},R=(L,F)=>D(w("msg.downloading",{name:L.name}),async()=>{B.reset();let $;try{$=await gh("/api/dsh-tty/sftp/download",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...o,path:F})},(j,Y)=>{B.set(j,Y)},nr.maxDownloadMb,j=>B.setCancel(j))}catch(j){if(vo(j)){B.reset(),A(w("msg.downloadCanceled",{name:L.name}));return}throw B.fail(w("error.downloadFailed")),j}B.done(w("status.done")),vh($,L.name),setTimeout(()=>B.reset(),1500),A(w("msg.downloaded",{name:L.name,size:it($.size)||String($.size)+" B"}))}),z=(L,F,$,j,Y)=>new Promise((ee,fe)=>{let ce=U_(JSON.stringify({...o,path:fs(N.path,F)})),se=new XMLHttpRequest;Y.abort=()=>{Y.stopped=!0,se.abort()},se.open("POST","/api/dsh-tty/sftp/upload"),se.setRequestHeader("x-dsh-sftp-meta",ce);let G=j>1?String($)+"/"+String(j)+" ":"";A(w("msg.uploadingName",{name:G+F}),"busy"),se.upload.addEventListener("progress",le=>{le.lengthComputable?B.set(le.loaded,le.total):B.pulse(0)});let te=!1,ve=le=>{te||(te=!0,le===null?ee():fe(le))};se.addEventListener("load",()=>{if(se.status===200){j===1&&B.done(w("msg.uploadDone")),ve(null);return}if(Y.stopped)return;B.fail(w("error.uploadFailed"));let le="HTTP "+se.status;try{let be=JSON.parse(se.responseText);be!==null&&typeof be=="object"&&typeof be.error=="string"&&(le=be.error)}catch{}ve(new Error(le))}),se.addEventListener("error",()=>{if(Y.stopped){ve(new Yr);return}B.fail(w("error.uploadFailed")),ve(new Error(w("error.networkError")))}),se.addEventListener("abort",()=>{ve(new Yr)}),se.send(L)}),V=async L=>D(w("msg.uploading"),async()=>{let F=nr;if(F.maxUploadFiles>0&&L.length>F.maxUploadFiles){A(w("error.uploadCountExceeded",{max:F.maxUploadFiles,count:L.length}),"error"),B.fail(w("status.overLimit"));return}let $=F.maxUploadMb>0?F.maxUploadMb*1024*1024:0,j=L.find(se=>$>0&&(se.file?.size??0)>$);if(j!==void 0){A(w("error.uploadTooBig",{size:it($),name:String(j.relPath??"")}),"error"),B.fail(w("status.overLimit"));return}if(L._limitExceeded===!0){A(w("error.uploadTotalTooBig"),"error"),B.fail(w("status.overLimit"));return}let Y=new Set;for(let se of L){let G=se.relPath.lastIndexOf("/");if(G<=0)continue;let te=se.relPath.slice(0,G);Y.has(te)||(Y.add(te),await P("mkdir",{path:fs(N.path,te),parents:!0}).catch(()=>{}))}B.reset();let ee={stopped:!1,abort:null};B.setCancel(()=>ee.abort?.());let fe=0,ce=0;try{for(let se of L){if(ee.stopped)break;fe+=1,ee.abort=null;try{await z(se.file,se.relPath,fe,L.length,ee),ce+=1}catch(G){if(vo(G)||ee.stopped)break;throw G}}}finally{B.setCancel(null)}if(ee.stopped){B.reset(),A(w("msg.uploadCanceled",{done:ce,total:L.length})),await k(N.path);return}B.done(w("status.allDone")),setTimeout(()=>B.reset(),1500),A(w("msg.uploadDoneCount",{count:L.length})),await k(N.path)});y.addEventListener("click",()=>{D(w("list.loading"),()=>k(N.path))}),p.addEventListener("click",()=>{N.busy||(f.placeholder=w("placeholder.newDirName"),f.value="",h.style.display="",f.focus(),v=async()=>{let L=f.value.trim();L!==""&&(x(),await D(w("msg.creatingDir",{name:L}),async()=>{await P("mkdir",{path:fs(N.path,L)}),await k(N.path)}))})}),c.addEventListener("click",()=>{N.busy===!1&&d.click()}),d.addEventListener("change",()=>{let L=[...d.files??[]].map(F=>({relPath:F.name,file:F}));d.value="",L.length>0&&V(L)});let X=0,Z=L=>{L?b.dataset.drag="":delete b.dataset.drag};n.addEventListener("dragenter",L=>{L.preventDefault(),X+=1,Z(!0)}),n.addEventListener("dragover",L=>{L.preventDefault()}),n.addEventListener("dragleave",()=>{X=Math.max(0,X-1),X===0&&Z(!1)}),n.addEventListener("drop",L=>{L.preventDefault(),X=0,Z(!1),!N.busy&&j_(L.dataTransfer).then(F=>{(F.length>0||F._limitExceeded===!0)&&V(F)})}),m.addEventListener("keydown",L=>{if(L.key!=="Enter"||(L.preventDefault(),N.busy))return;let F=m.value.trim();F!==""&&D(w("list.loading"),()=>k(F))});let W=To();fh(n,"SFTP \xB7 "+i,W===null?340:Math.round(W.height*.46),r),D(w("status.connectingEllipsis"),()=>k(""))}function Xr(e){let t=e===void 0?dh():e,r=qt,s=Pt!==null&&Pt.ownerKey===t?Pt:null;r===null&&s===null||(W_(),qt=null,s!==null&&(Pt=null),r!==null&&r.remove(),s!==null&&s.dispose())}function bh(){if(Qe===null)return;let e=Qe.style.display==="none"||Qe.style.display==="";Qe.style.display=e?"":"none";let t=de!==null?de.querySelector("[data-act=search]"):null;t!==null&&(e?t.dataset.on="":delete t.dataset.on),e&&Qe.focus()}var $_={matchBackground:"#3d2b00",matchBorder:"#8a5a00",activeMatchBackground:"#b06a00",activeMatchBorder:"#ffb84d",matchOverviewRuler:"#8a5a00",activeMatchColorOverviewRuler:"#ffb84d"};function q_(e){let t=_t();if(t===void 0||t.search===void 0)return;let r=Qe.value;if(r==="")return;let s={decorations:$_};e?t.search.findPrevious(r,s):t.search.findNext(r,s)}function Sc(){Es||de===null&&!Eo()||pr!==null||(pr=setTimeout(()=>{pr=null,Hi()},bs),bs=Math.min(bs*2,5e3))}function Ns(e){return e!==null&&typeof e=="object"&&e.persist===!0&&typeof e.persistName=="string"&&e.persistName!==""}function bo(e){return Ns(e)||e!==null&&typeof e=="object"&&typeof e.command=="string"&&e.command!==""}function K_(){return ir==="tmux"?{t:"spawn",cwd:ao(),persist:!0,persistName:Do()}:{t:"spawn",cwd:ao()}}async function wh(){if(!so){so=!0;try{await G_()}finally{so=!1}}}var so=!1;async function G_(){if(await Po(),de===null){await Y_();return}let e=Jp(),t=Xp();if(![...ue.values()].some(n=>n.embedded!==!0)){if(e.length>0||t.length>0){Me({t:"sessions"});let n=await Di("sessions",4e3),a=new Map;if(n!==null&&Array.isArray(n.list))for(let l of n.list)l!==null&&typeof l=="object"&&l.attachable===!0&&a.set(l.sid,l);let u=new Set;for(let l of e){if(a.has(l.sid))o_(l);else if(bo(l.spawnSpec))wc(l);else continue;Ns(l.spawnSpec)&&u.add(l.spawnSpec.persistName)}for(let l of t){let _=l.spawnSpec.persistName;u.has(_)||(wc(l),u.add(_))}or()}if(![...ue.values()].some(n=>n.embedded!==!0)){if(await Ni())return;Ls()}return}let r=[...ue.values()].filter(n=>!n.exited&&(n.embedded!==!0||n.spawned===!0)),s=r.filter(n=>bo(n.spawnSpec)),o=null;if(s.length>0){Me({t:"sessions"});let n=await Di("sessions",4e3),a=fi(n!==null?n.list:[]);o=s.filter(u=>!a.has(u.sid));for(let u of o)Pi(u.sid)}let i=o!==null?new Set(o.map(n=>n.sid)):new Set;for(let n of r)i.has(n.sid)||Me({t:"attach",sid:n.sid})}function V_(){Ee!==null&&(Ee.readyState===WebSocket.OPEN||Ee.readyState===WebSocket.CONNECTING)||Hi()}async function Y_(){let e=[...ue.values()].filter(s=>s.embedded===!0&&!s.exited);if(e.length===0)return;Me({t:"sessions"});let t=await Di("sessions",4e3),r=fi(t!==null?t.list:[]);for(let s of e)s.spawned===!0&&(r.has(s.sid)?Me({t:"attach",sid:s.sid}):bo(s.spawnSpec)?Jc(s):(s.exited=!0,s.live=!1,Nr(s,w("status.ended"),w("btn.clickRerun"),"exited")))}function Hi(){if(Ee!==null){try{Ee.close()}catch{}Ee=null}Es=!1,clearTimeout(pr),pr=null,_i=!0,mi(w("status.connectingEllipsis"),"");try{Ee=new WebSocket(xp())}catch(e){_i=!1,mi(w("error.connectFailed",{error:e.message}),"error"),Sc();return}Ee.onopen=()=>{_i=!1,bs=1e3,wt=null,mi(w("status.connected"),"connected");for(let e of[...io])io.delete(e),ue.has(e.tab.sid)&&Me(e.frame);wh()},Ee.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}let r=t.sid;if(t.t==="ready"){let s=typeof t.target=="string"?t.target:"";eo(r,t.kind==="ssh"?w("status.connectedSsh",{target:s!==""?s+" ":""}):w("status.connectedPid",{pid:t.pid}),"connected");let o=ue.get(r);if(o!==void 0){if(o.exited=!1,o.spawned=!0,o.live=!0,o.errored=!1,o.target=s,o.persistTmux=t.persist===!0,t.kind==="ssh"&&s!==""&&!o.label&&(o.label=s,at()),mr(),to(r),Nr(o,""),Jr(o),t.persist===!0){let i=document.fonts!==void 0&&document.fonts.ready!==void 0?document.fonts.ready:Promise.resolve();Promise.race([i,new Promise(n=>setTimeout(n,500))]).then(()=>qc(150))}Rs(),Kp(r),or()}}else if(t.t==="sessions")n_(t.list);else if(t.t==="data"){let s=ue.get(r);s!==void 0&&s.term!==null&&(s.term.write(String(t.d??"")),em())}else if(t.t==="exit"){let s=ue.get(r);if(s!==void 0){s.exited=!0,s.live=!1,s.stats=null,r===Se&&yr();let o=t.code!==null&&t.code!==void 0?"code="+t.code:"",i=t.signal!==null&&t.signal!==void 0?"signal="+t.signal:"";eo(r,w("status.exitedWith",{detail:[o,i].filter(Boolean).join(" ")}),""),mr(),to(r),Nr(s,w("status.exited"),w("btn.clickReopen"),"exited"),Rs(),or()}}else if(t.t==="stats")try{let s=ue.get(r);if(s!==void 0){let o=t.stats;s.stats=fc(o)?o:null,s.statsAt=Date.now(),r===Se&&yr()}}catch(s){console.warn("[dsh-tty] stats \u5E27\u5904\u7406\u5931\u8D25\uFF08\u5DF2\u5FFD\u7565\uFF09: "+(s instanceof Error?s.message:String(s)))}else if(t.t==="hint"){if(!Ri||t.kind!=="failure"||typeof r!="string"||r==="")return;ar.set(r,{exitCode:typeof t.exitCode=="number"?t.exitCode:null,at:typeof t.at=="number"?t.at:Date.now(),dismissed:!1,busy:!1,answer:null,command:"",error:null}),r===Se&&Sr()}else if(t.t==="error")if(eo(r,w("status.error",{message:String(t.m??"")}),"error"),typeof r=="string"){let s=ue.get(r);s!==void 0&&(s.live||(s.errored=!0),mr(),to(r),Nr(s,w("status.errored"),w("status.retryHint",{message:String(t.m??"")}),"error"))}else X_(w("btn.clickRetry"))},Ee.onclose=()=>{if(_i=!1,!Es){mi(w("status.disconnectedReconnecting"),"error");for(let e of ue.values())e.exited||Nr(e,w("status.disconnected"),w("status.reconnecting"),"info");Sc()}},Ee.onerror=()=>{}}function X_(e){zr!==null&&(zr.textContent=e)}function wo(){(de===null||qe)&&So()}var vi="DSH_TTY_ALLOW_PROXY_COMMAND";function J_(e){let t=new Date(Number(e)*1e3);if(Number.isNaN(t.getTime()))return String(e);let r=s=>String(s).padStart(2,"0");return`${String(t.getFullYear())}-${r(t.getMonth()+1)}-${r(t.getDate())} ${r(t.getHours())}:${r(t.getMinutes())}:${r(t.getSeconds())}`}function Bo(){return typeof navigator<"u"&&navigator.clipboard!==void 0&&typeof navigator.clipboard.writeText=="function"}async function yo(e){if(Bo())try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let r=!1;try{r=document.execCommand("copy")}catch{r=!1}return t.remove(),r||Bs(w("error.copyFailed"),"error"),r}async function Z_(e){if(Bo()&&typeof navigator.clipboard.readText=="function")try{let s=await navigator.clipboard.readText();return s!==""&&Me({t:"input",sid:e.sid,d:s}),!0}catch{}let t=document.createElement("textarea");t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus();let r=!1;try{r=document.execCommand("paste");let s=r?t.value:"";s!==""&&Me({t:"input",sid:e.sid,d:s})}catch{r=!1}return t.remove(),r||Bs(w("error.pasteFailed"),"error"),r}function So(){if(de!==null){qe&&yh();return}As(),de=document.createElement("div"),de.className="tt_modalBackdrop",de.innerHTML='<div class="tt_modal"><div class="tt_header"><span class="tt_titleIcon">'+Ui+'</span><div class="tt_tabbar"><div class="tt_tabs"></div><button type="button" class="tt_tabMore" hidden></button><button type="button" class="tt_tabAdd"></button></div><div class="tt_status"><span class="tt_statusDot"></span><span class="tt_statusText">'+w("status.initializing")+'</span></div><input class="tt_searchInput" style="display:none" placeholder="'+w("placeholder.search")+'" /><span class="tt_toolGroup"><button class="tt_toolBtn tt_iconBtn" data-act="search" title="'+w("btn.searchTitle")+'">'+Tp+'</button><button class="tt_toolBtn tt_iconBtn" data-act="clear" title="'+w("btn.clearTitle")+'">'+Rp+'</button><button class="tt_toolBtn tt_iconBtn" data-act="copy" title="'+w("btn.copyTitle")+'">'+Mp+'</button><button class="tt_toolBtn tt_iconBtn" data-act="paste" title="'+w("btn.pasteTitle")+'">'+Ap+'</button></span><span class="tt_winGroup"><button class="tt_min" title="'+w("btn.minimizeTitle")+'">'+Bp+'</button><button class="tt_close" title="'+w("btn.closePanelTitle")+'">'+zi+'</button></span></div><div class="tt_connbar" data-hidden><div class="tt_connArea"><span class="tt_connDot"></span><span class="tt_connTarget">\u2014</span><span class="tt_connBadge"></span></div><div class="tt_connActions"></div></div><div class="tt_work"><div class="tt_body"><div class="tt_statsBar" hidden></div><button type="button" class="tt_assistBadge" hidden><span class="tt_assistDot"></span><span class="tt_assistBadgeText"></span></button><div class="tt_overlay"></div></div></div></div>',document.body.appendChild(de),xi=de.querySelector(".tt_status"),fr=de.querySelector(".tt_statusText"),vr=de.querySelector(".tt_statusDot"),Ce=de.querySelector(".tt_tabs");let e=de.querySelector(".tt_tabAdd");e!==null&&(e.title=w("btn.newTab"),e.innerHTML=Op,e.addEventListener("click",()=>{C_(e)})),At=de.querySelector(".tt_tabMore"),At!==null&&(At.innerHTML=Dc,At.title=w("btn.tabList"),At.addEventListener("click",()=>{x_(At)})),Ce.addEventListener("scroll",ho),Ce.addEventListener("wheel",m_,{passive:!1}),_s=de.querySelector(".tt_connbar"),ms=de.querySelector(".tt_connDot"),ki=de.querySelector(".tt_connTarget"),ut=de.querySelector(".tt_connBadge"),gs=de.querySelector(".tt_connActions"),ft=de.querySelector(".tt_work"),nt=de.querySelector(".tt_body"),bt=de.querySelector(".tt_statsBar"),$i(),wt=null,zc(),zr=de.querySelector(".tt_body > .tt_overlay"),tr=de.querySelector(".tt_assistBadge"),tr!==null&&tr.addEventListener("click",()=>{tr!==null&&P_(tr)}),St(),Sr(),Qe=de.querySelector(".tt_searchInput"),zr.addEventListener("click",()=>{zr.textContent="",Hi()});let t=de.querySelector("[data-act=search]");t.addEventListener("click",()=>{bh(),Qe.style.display!=="none"&&Qe.focus()}),t.dataset.on="",Qe.addEventListener("keydown",r=>{r.key==="Enter"?(r.preventDefault(),q_(r.shiftKey)):r.key==="Escape"&&(r.stopPropagation(),Qe.style.display="none")}),de.querySelector("[data-act=clear]").addEventListener("click",()=>{let r=_t();r!==void 0&&r.term!==null&&r.term.clear()}),de.querySelector("[data-act=copy]").addEventListener("click",()=>{let r=_t();if(r===void 0||r.term===null)return;let s=r.term.getSelection();s!==""&&yo(s)}),de.querySelector("[data-act=paste]").addEventListener("click",()=>{let r=_t();r!==void 0&&Z_(r)}),de.querySelector(".tt_min").addEventListener("click",()=>{Fi()}),de.querySelector(".tt_close").addEventListener("click",()=>{Ms()}),de.addEventListener("mousedown",r=>{r.target===de&&Fi()}),document.addEventListener("keydown",Sh),vs=new ResizeObserver(()=>{qe||(bi(),Qp(_t()),ho())}),vs.observe(nt),at(),mr(),Ee!==null&&Ee.readyState===WebSocket.OPEN?wh():Hi()}function Q_(){Xe=document.createElement("div"),Xe.className="tt_dock",Xe.title=w("btn.restoreDock"),Xe.innerHTML='<span class="tt_dockTitle">'+Ui+"<span>"+w("panel.title")+'</span><span class="tt_dockCount"></span></span><span class="tt_dockStatus"></span><span class="tt_dockDot"></span><button class="tt_dockClose" title="'+w("btn.closePanelTitle")+'">\u2715</button>',Ei=Xe.querySelector(".tt_dockCount"),Vr=Xe.querySelector(".tt_dockStatus"),br=Xe.querySelector(".tt_dockDot");let e=[...ue.values()].filter(t=>!t.exited).length;Ei.textContent=ue.size>0?"\xB7 "+e+"/"+ue.size:"",fr!==null&&(Vr.textContent=fr.textContent),vr!==null&&(br.dataset.state=vr.dataset.state??""),Xe.addEventListener("click",t=>{if(t.target.closest(".tt_dockClose")!==null){t.stopPropagation(),Ms();return}yh()}),document.body.appendChild(Xe)}function Fi(){de===null||qe||(vt(),Gt(),St(),rr(),qe=!0,qt!==null&&(qt.style.display="none"),Qe!==null&&(Qe.style.display="none"),de.dataset.minimized="",jc(),Os(),yr(),document.querySelector("[data-dsh-tty-entry]")!==null?Rs():(Q_(),Xe.classList.add("tt_dockCompact")))}function Rs(){let e=document.querySelector("[data-dsh-tty-entry]");if(e===null)return;let t=e.querySelector(".tt_sidebarEntryBadge");if(!qe){t!==null&&t.remove(),delete e.dataset.minimized,e.removeAttribute("title");return}t===null&&(t=document.createElement("span"),t.className="tt_sidebarEntryBadge",t.innerHTML='<span class="tt_sidebarBadgeDot"></span><span class="tt_sidebarBadgeCount"></span>',e.appendChild(t)),e.dataset.minimized="",e.title=w("status.minimized");let r=[...ue.values()].filter(o=>!o.exited).length;t.querySelector(".tt_sidebarBadgeCount").textContent=r+"/"+ue.size;let s=t.querySelector(".tt_sidebarBadgeDot");s!==null&&vr!==null&&(s.dataset.state=vr.dataset.state??"")}function em(){if(!qe)return;let e=document.querySelector("[data-dsh-tty-entry] .tt_sidebarBadgeDot")??br;e!==null&&(e.dataset.active="",clearTimeout(Li),Li=setTimeout(()=>{delete e.dataset.active},900))}function yh(){if(de===null||!qe)return;qe=!1,delete de.dataset.minimized,qt!==null&&(qt.style.display=""),clearTimeout(Li),Xe!==null&&(Xe.remove(),Xe=null),Ei=null,Vr=null,br=null,Rs(),zc(),Os(),yr();let e=_t();if(e!==void 0&&e.fit!==void 0){try{e.fit.fit()}catch{}e.spawned&&!e.exited&&Jr(e)}e!==void 0&&e.term!==null&&e.term.focus()}function Ms(){if(de===null)return;Ss(!0);let e=Eo();if(Es=!e,qe=!1,vt(),Gt(),St(),wi(),Oi(),rr(),Xr(),clearTimeout(Li),clearTimeout(pr),pr=null,bs=1e3,Xe!==null&&(Xe.remove(),Xe=null),Ei=null,Vr=null,br=null,Rs(),Ee!==null){for(let t of ue.values())!t.exited&&t.embedded!==!0&&Me({t:"kill",sid:t.sid});if(!e){try{Ee.close()}catch{}Ee=null}}vs!==null&&(vs.disconnect(),vs=null);for(let[t,r]of[...ue])if(r.embedded!==!0){if(r.term!==null)try{r.term.dispose()}catch{}ue.delete(t)}Se=null,ks=null,document.removeEventListener("keydown",Sh),de.remove(),de=null,ft=null,xi=null,fr=null,vr=null,Ce=null,At=null,_s=null,ms=null,ki=null,ut=null,gs=null,Oi(),jc(),bt=null,$i(),wt=null,nt=null,zr=null,Qe=null,Ps=0;try{sessionStorage.removeItem(Ti)}catch{}}function Sh(e){if(e.key==="Escape"&&de!==null){if(e.preventDefault(),qt!==null){Xr();return}if($r!==null){rr();return}if(pt!==null){vt();return}Fi()}}function tm(){let e=document.querySelector('[data-pane="sidebar"], [class*="sidebarCol"]');if(e!==null)return e.querySelector('[class*="logoRow"]')?.parentElement??e.firstElementChild}function rm(e){let t=e.querySelector('button[class*="newSession"]');if(t!==null)return t;for(let r of e.children)if(r.tagName==="BUTTON")return r}function sm(){let e=document.createElement("div");return e.dataset.dshTtyEntry="",e.className="tt_sidebarEntry",e.setAttribute("role","button"),e.setAttribute("aria-label",w("panel.title")),e.tabIndex=0,e.innerHTML='<span class="tt_sidebarEntryIcon">'+Ui+'</span><span class="tt_sidebarEntryLabel">'+w("panel.title")+"</span>",e.addEventListener("click",t=>{t.preventDefault(),So()}),e.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" "||t.key==="Spacebar")&&(t.preventDefault(),So())}),e}function Cc(e,t){let r=rm(e);if(r===void 0)return!1;if(t.parentElement!==e){let s=r.closest('[class*="logoRow"]'),o=s!==null&&s.parentElement===e?s:r,i=Array.from(e.children).filter(n=>n instanceof HTMLElement&&n.matches("[data-dsh-global-search-entry], [data-dsh-rss-entry], [data-dsh-taskboard-entry], [data-dsh-ssh-entry], [data-dsh-tty-entry]"));if(i.length>0){let n=i[i.length-1];e.insertBefore(t,n.nextSibling)}else e.insertBefore(t,o.nextElementSibling)}return!0}function im(){if(As(),typeof document<"u"&&document.querySelector("[data-dsh-tty-entry]")!==null)return()=>{};let e=sm(),t,r=!1,s=()=>{if(t!==void 0&&!t.isConnected&&(i.disconnect(),t=void 0,r=!1),r){if(document.body.contains(e))return;i.disconnect(),t=void 0,r=!1}t??(t=tm()),t!==void 0&&(r=Cc(t,e),r&&i.observe(t,{childList:!0,subtree:!0}))},o=new MutationObserver(()=>{s()});o.observe(document.body,{childList:!0,subtree:!0});let i=new MutationObserver(()=>{if(t===void 0||!t.isConnected){r=!1,s();return}t.contains(e)||(r=Cc(t,e))});return s(),()=>{o.disconnect(),i.disconnect(),e.remove()}}window.__ModuleLoader__.load({id:"@hyzyn/dsh-tty",factory:e=>{let t={},r=e("react"),{jsx:s,jsxs:o}=e("react/jsx-runtime"),i="M11.8486 5.5L11.4238 5.92383L8.69727 8.65137C8.44157 8.90706 8.21562 9.13382 8.01172 9.29785C7.79912 9.46883 7.55595 9.61756 7.25 9.66602C7.08435 9.69222 6.91565 9.69222 6.75 9.66602C6.44405 9.61756 6.20088 9.46883 5.98828 9.29785C5.78438 9.13382 5.55843 9.13382 5.30273 8.65137L2.57617 5.92383L2.15137 5.5L3 4.65137L3.42383 5.07617L6.15137 7.80273C6.42595 8.07732 6.59876 8.24849 6.74023 8.3623C6.87291 8.46904 6.92272 8.47813 6.9375 8.48047C6.97895 8.48703 7.02105 8.48703 7.0625 8.48047C7.07728 8.47813 7.12709 8.46904 7.25977 8.3623C7.40124 8.24849 7.57405 8.07732 7.84863 7.80273L10.5762 5.07617L11 4.65137L11.8486 5.5Z";function n(u){let l=u&&u.view,_=l==="page",[m,y]=r.useState(_),[p,c]=r.useState(null),[d,h]=r.useState(!1),[f,g]=r.useState(!1),[C,v]=r.useState({kind:"",text:""}),[x,b]=r.useState(null),[E,O]=r.useState(""),[B,N]=r.useState(!1),[A,K]=r.useState(Date.now()),P=r.useRef(null),D=r.useRef(null),[H,I]=r.useState([]),[S,T]=r.useState(!1),[k,R]=r.useState({groups:[],loading:!1,failed:!1}),[z,V]=r.useState(!1),X=r.useRef(null),Z=r.useRef(0),W=M=>s("div",{className:"tt_cardSection",children:M}),L=async()=>{try{let U=await(await fetch("/api/dsh-tty/config",{cache:"no-store"})).json();U.ok&&typeof U.config=="object"&&U.config!==null?(P.current=U.config,D.current=JSON.stringify(ee(U.config)),c(U.config),Ts(U.config)):v({kind:"error",text:String(U.error||w("error.configLoadFailed"))})}catch(M){v({kind:"error",text:String(M&&M.message?M.message:M)})}},F=async()=>{try{let U=await(await fetch("/api/dsh-tty/shells",{cache:"no-store"})).json();U.ok&&Array.isArray(U.shells)&&I(U.shells)}catch{}};r.useLayoutEffect(()=>{if(!z)return;let M=()=>{let U=X.current,q=U===null||U.parentElement===null?null:U.parentElement.querySelector(".tt_routeList");U===null||q===null||(q.style.width=String(Math.round(U.getBoundingClientRect().width))+"px",Is(q,U))};return M(),window.addEventListener("scroll",M,!0),window.addEventListener("resize",M),()=>{window.removeEventListener("scroll",M,!0),window.removeEventListener("resize",M)}},[z,k.loading,k.failed,k.groups]);let $=async()=>{let M=Z.current+1;Z.current=M,R(U=>({...U,loading:!0}));try{let q=await(await fetch("/api/dsh-tty/model-catalog",{cache:"no-store"})).json();if(q.ok===!0&&M===Z.current){R({groups:Array.isArray(q.groups)?q.groups:[],loading:!1,failed:!1});return}}catch{}M===Z.current&&R({groups:[],loading:!1,failed:!0})};r.useEffect(()=>{m&&!d&&(h(!0),L(),F(),$())},[m]);let j=(M,U)=>c(q=>{let J={...q||{},[M]:U};return P.current=J,J}),Y=new Set(["toolsRegistered","platform","allowProxyCommandGranted","allowProxyCommandGrantSource","allowProxyCommandGrantedAt"]),ee=M=>{let U={};for(let[q,J]of Object.entries(M||{}))Y.has(q)||J!==void 0&&(U[q]=J);return U.sshHosts=Array.isArray(M?.sshHosts)?M.sshHosts:[],U.tunnels=Array.isArray(M?.tunnels)?M.tunnels:[],M?.sftpLimits&&typeof M.sftpLimits=="object"&&(U.sftpLimits={maxDownloadMb:Number(M.sftpLimits.maxDownloadMb)||0,maxUploadMb:Number(M.sftpLimits.maxUploadMb)||0,maxUploadFiles:Number(M.sftpLimits.maxUploadFiles)||0}),U};P.current=p;let fe=(M,U)=>c(q=>({...q||{},sftpLimits:{...q?.sftpLimits??{},[M]:U}})),[ce,se]=r.useState(null),[G,te]=r.useState(null),[ve,le]=r.useState(""),[be,Ae]=r.useState(null),[De,Q]=r.useState(""),[re,ie]=r.useState(""),[ae,he]=r.useState(""),ne=r.useRef(null),[me,we]=r.useState(!1),[pe,Le]=r.useState({text:"",kind:""}),[Te,ge]=r.useState(!1),[Pe,Ne]=r.useState({running:!1,ok:!1,text:""}),[Ke,Bt]=r.useState({}),[Ch,xh]=r.useState([]),[et,lr]=r.useState({direction:"local",localPort:"",remoteHost:"",remotePort:"",localTargetPort:"",bookName:""}),[Ct,Qr]=r.useState(null);r.useEffect(()=>{if(!m)return;let M=!0,U=async()=>{try{let oe=await(await fetch("/api/dsh-tty/tunnels",{cache:"no-store"})).json();M&&oe.ok&&Array.isArray(oe.tunnels)&&xh(oe.tunnels)}catch{}};U();let q=setInterval(U,2e3);return()=>{M=!1,clearInterval(q)}},[m]);let cr=M=>U=>lr(q=>({...q||{},[M]:U.target.value})),Oo=(M,U)=>lr(q=>({...q||{},[M]:U})),kh=M=>M?.direction==="remote"?w("meta.tunnelRemote",{host:M.remoteHost||"127.0.0.1",port:String(M.remotePort??0),local:String(M.localTargetPort??0)}):w("meta.tunnelLocal",{local:String(M?.localPort??0),host:M?.remoteHost??"?",port:String(M?.remotePort??0)}),Io=(p?.sshHosts??[]).find(M=>M?.name===et?.bookName),Gi=async M=>{try{let U=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({tunnels:M})}),q=await U.json().catch(()=>({}));return!U.ok||!q.ok?(v({kind:"error",text:String(q.error||w("error.saveTunnelFailed"))}),!1):!0}catch(U){return v({kind:"error",text:String(U&&U.message?U.message:U)}),!1}},No=()=>ec(et,(Array.isArray(p?.sshHosts)?p.sshHosts:[]).map(M=>M?.name),w),Eh=M=>{v({kind:"",text:""}),Qr(String(M?.name??"")),lr({direction:M?.direction==="remote"?"remote":"local",bookName:String(M?.bookName??""),localPort:M?.localPort?String(M.localPort):"",remoteHost:String(M?.remoteHost??""),remotePort:M?.remotePort?String(M.remotePort):"",localTargetPort:M?.localTargetPort?String(M.localTargetPort):""})},Lh=()=>{Qr(null),v({kind:"",text:""}),lr(M=>({...M||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""}))},Th=()=>{v({kind:"",text:""});let M=No();if(!M.ok){v({kind:"error",text:M.error});return}let U=M.tunnel,q=Array.isArray(p?.tunnels)?p.tunnels:[];if(tc(q,U.name)!==void 0){v({kind:"error",text:w("error.tunnelNameTaken",{name:U.name})});return}let J=[...q,U];c(oe=>({...oe||{},tunnels:J})),lr(oe=>({...oe||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""})),Gi(J).then(oe=>{oe&&v({kind:"ok",text:w("msg.tunnelApplied",{name:U.name})})})},Rh=()=>{if(Ct===null)return;v({kind:"",text:""});let M=No();if(!M.ok){v({kind:"error",text:M.error});return}let U=Array.isArray(p?.tunnels)?p.tunnels:[],q=rc(U,Ct,M.tunnel,w);if(!q.ok){q.reason==="missing"&&Qr(null),v({kind:"error",text:q.error});return}let J=q.tunnels;c(oe=>({...oe||{},tunnels:J})),Gi(J).then(oe=>{if(oe!==!0){c(_e=>({..._e||{},tunnels:U}));return}Qr(null),lr(_e=>({..._e||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""})),v({kind:"ok",text:w("msg.tunnelUpdated",{name:M.tunnel.name})})})},Ho=(M,U)=>{c(q=>({...q||{},tunnels:M})),Gi(M).then(q=>{q!==!0&&c(J=>({...J||{},tunnels:U}))})},Mh=M=>{let U=Array.isArray(p?.tunnels)?p.tunnels:[];Ct!==null&&String(M??"")===Ct&&(Qr(null),lr(q=>({...q||{},localPort:"",remoteHost:"",remotePort:"",localTargetPort:""}))),Ho(U.filter(q=>q?.name!==M),U)},Ah=(M,U)=>{let q=Array.isArray(p?.tunnels)?p.tunnels:[];Ho(q.map(J=>J?.name===M?{...J,enabled:U}:J),q)},Dh=M=>{se(M?.name??null),le(""),Ne({running:!1,ok:!1,text:""}),Q(""),ie(""),Yi(),we(Dt!==null),te({name:M?.name??"",host:M?.host??"",port:String(M?.port??22),username:M?.username??"",auth:M?.auth==="key"||M?.auth==="password"?M.auth:"agent",keyPath:M?.keyPath??"",passphrase:M?.passphrase??"",password:M?.password??"",agentForward:M?.agentForward===!0,persist:M?.persist!==!1}),Lc().then(U=>Ae(U)),Xi(M?.password??"")},Fo=()=>{se(null),te(null),le(""),Ne({running:!1,ok:!1,text:""}),Q(""),ie(""),Yi()},Ph=async()=>{if(G===null)return;let M=G.name.trim(),U=G.host.trim(),q=G.username.trim();if(M===""||U===""||q===""){le(w("error.nameHostUserRequired"));return}let J=Number(G.port);if((!Number.isInteger(J)||J<1||J>65535)&&(J=22),(p?.sshHosts??[]).some(_e=>_e?.name===M&&M!==ce)){le(w("error.bookNameTaken",{name:M}));return}if(G.auth==="key"&&G.keyPath.trim()===""){le(w("error.keyPathRequired"));return}le("");let oe=G.password;if(G.auth==="password"){let _e=await Mc(me,G.password,U,J,q,"PASSWORD");if(_e.error!==void 0){le(_e.error);return}_e.value!==void 0&&(oe=_e.value)}c(_e=>({..._e||{},sshHosts:(Array.isArray(_e?.sshHosts)?_e.sshHosts:[]).map(xe=>xe?.name===ce?{name:M,host:U,port:J,username:q,auth:G.auth,keyPath:G.keyPath.trim(),passphrase:G.passphrase,password:oe,agentForward:G.agentForward,persist:G.persist===!0}:xe)})),Bt(_e=>{let xe={..._e};return delete xe[M],ce!==M&&delete xe[ce],xe}),se(null),te(null),Ne({running:!1,ok:!1,text:""}),v({kind:"ok",text:w("msg.hostEdited",{name:M})})},Bh=M=>{ce===M&&Fo(),Bt(U=>{let q={...U};return delete q[M],q}),c(U=>({...U||{},sshHosts:(Array.isArray(U?.sshHosts)?U.sshHosts:[]).filter(q=>q?.name!==M)}))},Oh=async M=>{let U=M?.name??"";if(U==="")return;let q={host:M?.host??"",port:Number(M?.port)||22,username:M?.username??"",auth:M?.auth==="key"||M?.auth==="password"?M.auth:"agent",keyPath:M?.keyPath??"",passphrase:M?.passphrase??"",password:M?.password??"",agentForward:M?.agentForward===!0};Bt(oe=>({...oe,[U]:{running:!0,text:w("msg.probing")}}));let J=await fo(q,!0);Bt(oe=>{let _e=oe[U]||{};if(J.result){let xe=J.result.auth?.ok===!0;return{...oe,[U]:{running:!1,ok:xe,text:po(J.result)}}}return{...oe,[U]:{running:!1,ok:!1,text:w("error.probeFailed",{detail:String(J.error||w("error.unknown"))})}}})},Ih=async M=>{let U=(Array.isArray(p?.hostKeys)?p.hostKeys:[]).filter(q=>!(q?.host===M?.host&&Number(q?.port)===Number(M?.port)));c(q=>({...q||{},hostKeys:U}));try{let q=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({hostKeys:U})}),J=await q.json().catch(()=>({}));!q.ok||!J.ok?v({kind:"error",text:String(J.error||w("error.hostKeyDeleteFailed"))}):v({kind:"ok",text:w("msg.hostKeyDeleted")})}catch(q){v({kind:"error",text:String(q&&q.message?q.message:q)})}},Nh=async()=>{v({kind:"",text:""});try{let U=await(await fetch("/api/dsh-tty/ssh-config",{cache:"no-store"})).json();if(!U.ok){v({kind:"error",text:String(U.error||w("error.sshConfigReadFailed"))});return}let q=Array.isArray(U.entries)?U.entries:[],J=[...Array.isArray(p?.sshHosts)?p.sshHosts:[]],oe=new Set(J.map(Be=>Be?.name)),_e=0,xe=0;for(let Be of q)if(!(Be===null||typeof Be!="object"||typeof Be.name!="string")){if(oe.has(Be.name)){xe+=1;continue}oe.add(Be.name),J.push({name:Be.name,host:String(Be.host??Be.name),port:Number(Be.port)||22,username:String(Be.username??""),auth:Be.auth==="key"?"key":"agent",keyPath:String(Be.keyPath??""),passphrase:"",password:"",agentForward:!1}),_e+=1}c(Be=>({...Be||{},sshHosts:J}));let ye=Array.isArray(U.proxy)?U.proxy.filter(Be=>typeof Be=="string"):[],Ge=Number.isInteger(U.proxyCount)?U.proxyCount:ye.length,hr=Array.isArray(U.proxyCommand)?U.proxyCommand.filter(Be=>typeof Be=="string"):[],Je=Number.isInteger(U.proxyCommandCount)?U.proxyCommandCount:hr.length,xr=Number.isInteger(U.skippedOther)?U.skippedOther:0,Vt=Number.isInteger(U.droppedOverflow)?U.droppedOverflow:0,mt=[];Ge>0&&mt.push(w("msg.proxySkipped",{count:Ge,names:ye.slice(0,5).join(w("list.separator"))+(Ge>5?w("meta.etc"):"")})),Je>0&&mt.push(w("msg.proxyCommandSkipped",{count:Je,names:hr.slice(0,5).join(w("list.separator"))+(Je>5?w("meta.etc"):"")})),xr>0&&mt.push(w("msg.skippedNotConcrete",{count:xr})),Vt>0&&mt.push(w("msg.importOverflow",{count:Vt}));let Go=mt.length>0?w("list.separatorFull")+mt.join(w("list.separatorFull")):"";if(_e===0){let Be=xe>0?w("msg.noNewEntries",{count:xe}):w("msg.noImportableHosts");v({kind:mt.length>0?"error":"ok",text:Be+Go})}else v({kind:mt.length>0?"error":"ok",text:w("msg.importedHosts",{added:_e,skipped:xe})+Go})}catch(M){v({kind:"error",text:String(M&&M.message?M.message:M)})}},Wo=M=>M===null||typeof M!="object"?[]:Array.isArray(M.fingerprints)?M.fingerprints.filter(U=>typeof U=="string"&&U!==""):typeof M.fingerprint=="string"&&M.fingerprint!==""?[M.fingerprint]:[],Hh=async()=>{v({kind:"",text:""});try{let U=await(await fetch("/api/dsh-tty/known-hosts",{cache:"no-store"})).json();if(!U.ok){v({kind:"error",text:String(U.error||w("error.knownHostsReadFailed"))});return}let q=Array.isArray(U.entries)?U.entries:[],J=[...Array.isArray(p?.hostKeys)?p.hostKeys:[]],oe=new Map;for(let ye of J)ye===null||typeof ye!="object"||oe.set(String(ye.host??"")+":"+String(ye.port??22),{record:ye,fps:new Set(Wo(ye))});let _e=0,xe=0;for(let ye of q){if(ye===null||typeof ye!="object"||typeof ye.host!="string")continue;let Ge=Array.isArray(ye.fingerprints)?ye.fingerprints.filter(Vt=>typeof Vt=="string"&&Vt!==""):[];if(typeof ye.fingerprint=="string"&&ye.fingerprint!==""&&Ge.push(ye.fingerprint),Ge.length===0)continue;let hr=ye.host+":"+String(ye.port??22),Je=oe.get(hr);if(Je!==void 0){let Vt=!1;for(let mt of Ge)Je.fps.has(mt)||Je.fps.size>=8||(Je.fps.add(mt),Vt=!0);if(!Vt){xe+=1;continue}delete Je.record.fingerprint,Je.record.fingerprints=[...Je.fps],_e+=1;continue}let xr={host:ye.host,port:Number(ye.port)||22,fingerprints:[...new Set(Ge)].slice(0,8)};oe.set(hr,{record:xr,fps:new Set(xr.fingerprints)}),J.push(xr),_e+=1}if(_e===0){v({kind:"ok",text:xe>0?w("msg.noNewFingerprints",{count:xe}):w("msg.noImportableKnownHosts")});return}c(ye=>({...ye||{},hostKeys:J}));try{let ye=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({hostKeys:J})}),Ge=await ye.json().catch(()=>({}));if(!ye.ok||!Ge.ok){v({kind:"error",text:String(Ge.error||w("error.saveHostKeysFailed"))});return}v({kind:"ok",text:w("msg.importedFingerprints",{added:_e,skipped:xe})+(U.truncated===!0?w("hint.knownHostsTruncated"):"")})}catch(ye){v({kind:"error",text:String(ye&&ye.message?ye.message:ye)})}}catch(M){v({kind:"error",text:String(M&&M.message?M.message:M)})}},Uo=async M=>{let U=M??P.current??p;g(!0),v({kind:"",text:""});let q=ee(U);try{let J=await fetch("/api/dsh-tty/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(q)}),oe=await J.json();!J.ok||!oe.ok?v({kind:"error",text:String(oe.error||w("error.saveFailed"))}):(v({kind:"ok",text:w("msg.saved")}),D.current=JSON.stringify(q),oe.config&&(P.current=oe.config,c(oe.config),Ts(oe.config)))}catch(J){v({kind:"error",text:String(J&&J.message?J.message:J)})}g(!1)},Vi=M=>"/api/dsh-tty/elevate"+M,zo=async()=>{try{let U=await(await fetch("/api/dsh-tty/config",{cache:"no-store"})).json(),q=U&&typeof U.config=="object"&&U.config!==null?U.config:null;if(q===null)return;c(J=>{if(J===null)return J;let oe={...J,allowProxyCommandGranted:q.allowProxyCommandGranted===!0,allowProxyCommandGrantSource:q.allowProxyCommandGrantSource??null,allowProxyCommandGrantedAt:Number.isFinite(q.allowProxyCommandGrantedAt)?q.allowProxyCommandGrantedAt:null};return P.current=oe,oe})}catch{}},jo=async()=>{b(null),N(!1);let M=P.current||{},U=D.current!==null&&JSON.stringify(ee(M))===D.current,q={...M,allowProxyCommand:!0};P.current=q,c(q),await zo(),U?(await Uo(q),O(w("elev.granted"))):O(w("elev.grantedNeedSave"))},$o=async()=>{N(!1),O(""),b({phase:"loading"});try{let M=await fetch(Vi(""),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({capability:vi})}),U=await M.json().catch(()=>({}));if(!M.ok){b({phase:"error",error:String(U.error||M.status)});return}if(U.status==="granted"){await jo();return}b({phase:"pending",command:String(U.command??""),expiresAt:Number(U.expiresAt)||0})}catch(M){b({phase:"error",error:String(M&&M.message?M.message:M)})}},Fh=async()=>{O("");try{let M=await fetch(Vi("/revoke"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({capability:vi})}),U=await M.json().catch(()=>({}));if(!M.ok){O(w("elev.error")+String(U.error||M.status));return}await zo(),O(w("elev.revoked"))}catch(M){O(w("elev.error")+String(M&&M.message?M.message:M))}},Wh=async()=>{let M=x===null?"":String(x.command??"");if(M!==""){if(Bo())try{await navigator.clipboard.writeText(M),N(!0);return}catch{}N(!1),O(w("elev.copyManual"))}};r.useEffect(()=>{if(x===null||x.phase!=="pending")return;let M=setInterval(()=>K(Date.now()),1e3),U=setInterval(()=>{fetch(Vi("/status"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({capability:vi})}).then(q=>q.json()).then(q=>{q.status==="granted"&&jo()}).catch(()=>{})},1500);return()=>{clearInterval(M),clearInterval(U)}},[x]);let Uh=()=>{if(p.allowProxyCommandGrantSource==="env")return s("span",{className:"tt_cardHint",children:w("elev.viaEnv")});let M=p.allowProxyCommandGrantedAt;return o("span",{className:"tt_capState",children:[Number.isFinite(M)?s("span",{children:w("elev.grantedAt",{time:J_(M)})}):null,s("button",{type:"button",className:"tt_toolBtn tt_capRevoke",onClick:()=>{Fh()},children:w("elev.revoke")})]})},zh=()=>{let M=String(x.command??""),U=x.expiresAt>0?Math.max(0,Math.ceil((x.expiresAt-A)/1e3)):0,q=x.phase==="pending"&&x.expiresAt>0&&U===0,J=()=>{b(null),N(!1)};return o("div",{className:"tt_elevPanel",children:[o("div",{className:"tt_elevHead",children:[s("span",{className:"tt_cardLabel",children:w("elev.title")}),s("button",{type:"button",className:"tt_toolBtn",onClick:J,children:w("elev.close")})]}),s("span",{className:"tt_cardHint",children:w("elev.lockedWhy")}),x.phase==="error"?s("span",{className:"tt_cardHint tt_sshProbeWarn",children:w("elev.error")+String(x.error??"")}):null,x.phase==="loading"?s("span",{className:"tt_cardHint",children:w("elev.loading")}):null,M===""?null:o("div",{className:"tt_elevSteps",children:[s("span",{className:"tt_cardHint",children:w("elev.step")}),s("div",{className:"tt_elevCommand",children:s("code",{children:M})}),o("div",{className:"tt_elevActions",children:[s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{Wh()},children:w(B?"elev.copied":"elev.copy")}),q?s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{$o()},children:w("elev.regenerate")}):s("span",{className:"tt_cardHint",children:w("elev.expiresIn",{sec:U})})]}),s("span",{className:"tt_cardHint",children:w(q?"elev.expired":"elev.waiting")})]}),p.allowProxyCommand===!0&&p.allowProxyCommandGranted!==!0?s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{j("allowProxyCommand",!1),J()},children:w("elev.disableFirst")}):null,s("span",{className:"tt_cardHint",children:w("elev.otherWay")}),s("span",{className:"tt_cardHint",children:w("elev.envHow",{env:vi})})]})},jh=()=>{let M=p.allowProxyCommandGranted===!0,U=p.allowProxyCommand===!0;return o("div",{className:"tt_capBlock",children:[o("label",{className:"tt_cardField tt_cardRow tt_cardToggle tt_cardDanger",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:U,onChange:q=>{if(!M){$o();return}j("allowProxyCommand",q.target.checked)}}),s("span",{className:"tt_cardLabel",children:w("check.allowProxyCommand")}),U&&!M?s("span",{className:"tt_badgeWarn",children:w("badge.notEffective")}):null]}),s("span",{className:"tt_cardHint",children:w("hint.allowProxyCommand")}),M?Uh():s("span",{className:"tt_cardHint tt_sshProbeWarn",children:w("hint.proxyCommandNotGranted")}),E===""?null:s("span",{className:"tt_cardHint",children:E}),x===null?null:zh()]})},Yi=()=>{ne.current!==null&&(clearTimeout(ne.current),ne.current=null),he("")},Xi=async M=>{let U=Wr(M);if(Gr()===null){we(!1),ge(!1),Le({text:w(Dt===null?"error.credPlainUnavailable":"error.credPlainIncomplete"),kind:"muted"});return}if(U===""){ge(!1),Le({text:"",kind:""});return}let q=await Tc(U);if(q.unreported===!0){ge(!1),Le({text:w("status.credUnreported",{ref:U}),kind:"plain"});return}if(q.error!==void 0){ge(!1),Le({text:w("error.credStatusFailed",{error:q.error}),kind:"error"});return}let J=q.view;Le({text:J.configured?w("status.credStored",{ref:U,source:J.source!==""?w("meta.credSource",{source:J.source}):""}):w("status.credUnknown",{ref:U}),kind:J.configured?"ok":"plain"}),ge(J.configured===!0&&J.writable===!0)},$h=async()=>{let M=Wr(G?.password??"");if(M==="")return;let U=await Rc(M);if(U.error!==void 0){Le({text:U.error,kind:"error"});return}te(q=>({...q||{},password:""})),Le({text:"",kind:""}),ge(!1)},qh=(M,U)=>{let q=String(G?.[M]??"");if(q===""||q.startsWith("env:")||ae===U){Yi(),te(J=>({...J||{},[M]:"env:"+U})),Q(""),M==="password"&&Xi("env:"+U);return}he(U),ne.current!==null&&clearTimeout(ne.current),ne.current=setTimeout(()=>{ne.current=null,he("")},4e3)},qo=(M,U)=>{if(be===null)return null;if(be.length===0)return s("span",{className:"tt_cardHint",children:U});let q=De===M,J=re.trim().toUpperCase(),oe=J===""?be:be.filter(_e=>_e.toUpperCase().includes(J));return o("div",{className:"tt_credPicker",children:[s("input",{className:"tt_cardInput",value:q?re:"",placeholder:w("placeholder.credRef"),title:w("hint.credRefCandidates"),autoComplete:"off",spellCheck:!1,onFocus:()=>{Q(M),ie("")},onBlur:_e=>{_e.currentTarget.parentElement.contains(_e.relatedTarget)||Q("")},onChange:_e=>{ie(_e.target.value),Q(M)}}),...q?[s("div",{className:"tt_envList",children:[...oe.length===0?[s("span",{className:"tt_envMore",children:w("list.noCredRef")})]:oe.slice(0,30).map(_e=>s("button",{type:"button",className:"tt_envItem","data-danger":ae===_e?"":void 0,onMouseDown:xe=>xe.preventDefault(),onClick:()=>qh(M,_e),children:ae===_e?w("list.credOverwrite",{name:_e}):_e},_e)),...oe.length>30?[s("span",{className:"tt_envMore",children:w("list.moreMatches",{count:oe.length-30})})]:[]]},"cred-list-"+M)]:[]]})},Kh=()=>{let U=Wr(G?.password??"")!=="",q=Gr()===null;return o("div",{className:"tt_sshRow tt_credRow",children:[U?s("button",{type:"button",className:"tt_toolBtn tt_credClear",disabled:Te!==!0,onClick:()=>{$h()},children:w("btn.clearCredential")}):s("label",{className:"tt_credToggle",title:w("hint.rememberCredentialApply"),children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:me,disabled:q,onChange:J=>we(J.target.checked)}),s("span",{children:w("check.rememberCredentialApply")})]}),pe.text===""?null:s("span",{className:"tt_credStatus","data-kind":pe.kind,children:pe.text}),q&&pe.text===""?s("span",{className:"tt_credStatus","data-kind":"muted",children:w("error.credPlainUnavailable")}):null]})},Ko=()=>{let M=String(G?.host??"").trim(),U=String(G?.username??"").trim(),q=Number(G?.port);if((!Number.isInteger(q)||q<1||q>65535)&&(q=22),M===""||U==="")return le(w("error.hostUserRequired")),null;let J=G?.auth,oe={host:M,port:q,username:U,auth:J};if(J==="key"){let _e=String(G?.keyPath??"").trim();if(_e==="")return le(w("error.keyPathRequired")),null;oe.keyPath=_e,G?.passphrase!==""&&(oe.passphrase=G.passphrase)}if(J==="password"){let _e=String(G?.password??"");if(_e==="")return le(w("error.passwordRequired")),null;oe.password=_e}return G?.agentForward===!0&&(oe.agentForward=!0),oe},Gh=()=>{le("");let M=Ko();M!==null&&(Ne({running:!0,ok:!1,text:w("msg.probing")}),fo(M,!1).then(U=>{if(U.result){let q=U.result.auth?.ok===!0;Ne({running:!1,ok:q,text:po(U.result)});return}Ne({running:!1,ok:!1,text:w("error.probeFailed",{detail:String(U.error||w("error.unknown"))})})}))},Vh=()=>{le("");let M=Ko();M!==null&&Ki(M)},Yh=()=>{if(G===null)return null;let M=(U,q,J,oe,_e)=>o("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:U}),s("input",{className:"tt_cardInput",type:oe??"text",value:G[q]??"",placeholder:J??"",autoComplete:"off",spellCheck:!1,onChange:xe=>{let ye=xe.target.value;te(Ge=>({...Ge||{},[q]:ye}))},..._e??{}})]});return o("div",{className:"tt_sshEdit",children:[s("div",{className:"tt_sshSection",children:w("section.connection")}),o("div",{className:"tt_sshGrid",children:[M(w("field.bookName"),"name",w("hint.bookNameConflict")),M(w("field.port"),"port","22")]}),M(w("field.host"),"host",w("placeholder.host")),M(w("field.username"),"username","root"),s("div",{className:"tt_sshSection",children:w("section.auth")}),o("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:w("field.authMethod")}),o("select",{className:"tt_cardInput",value:G.auth,onChange:U=>te(q=>({...q||{},auth:U.target.value})),children:[s("option",{value:"agent",children:w("option.authAgent")}),s("option",{value:"key",children:w("option.authKey")}),s("option",{value:"password",children:w("option.authPassword")})]})]}),...G.auth==="key"?[M(w("field.keyPath"),"keyPath","~/.ssh/id_ed25519"),M(w("field.passphrase"),"passphrase","","password"),qo("passphrase",w("hint.noCredRefPassphrase"))]:[],...G.auth==="password"?[M(w("field.password"),"password","","password",{onBlur:()=>{Xi(G.password)}}),Kh(),qo("password",w("hint.noCredRefPasswordApply"))]:[],s("div",{className:"tt_sshSection",children:w("section.options")}),o("label",{className:"tt_cardRow",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:G.agentForward===!0,onChange:U=>te(q=>({...q||{},agentForward:U.target.checked}))}),s("span",{className:"tt_cardLabel",children:w("check.agentForward")})]}),ir==="tmux"?o("label",{className:"tt_cardRow",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:G.persist===!0,onChange:U=>te(q=>({...q||{},persist:U.target.checked}))}),s("span",{className:"tt_cardLabel",children:w("check.persist")})]}):null,Pe.text!==""?s("div",{className:"tt_sshProbeResult"+(!Pe.running&&Pe.ok?" tt_sshProbeOk":"")+(!Pe.running&&!Pe.ok?" tt_sshProbeBad":""),children:Pe.text}):null,ve!==""?s("span",{className:"tt_cardMessage tt_cardMessageError",children:ve}):null,o("div",{className:"tt_sshActions",children:[o("div",{className:"tt_sshActionsGroup",children:[s("button",{type:"button",className:"tt_toolBtn",onClick:Fo,children:w("btn.cancel")}),s("button",{type:"button",className:"tt_toolBtn",title:w("btn.browseTitle"),onClick:Vh,children:w("btn.fileBrowse")}),s("button",{type:"button",className:"tt_toolBtn",disabled:Pe.running,title:w("btn.probeTitle"),onClick:Gh,children:Pe.running?w("msg.probing"):w("btn.probe")})]}),o("div",{className:"tt_sshActionsGroup",children:[s("button",{type:"button",className:"tt_cardSave",onClick:()=>{Ph()},children:w("btn.apply")}),s("span",{className:"tt_cardHint",children:w("hint.appliedOnSave")})]})]})]})},Xh=M=>{let U=typeof M?.assistProvider=="string"?M.assistProvider.trim():"",q=typeof M?.assistModel=="string"?M.assistModel.trim():"";return U!==""&&q!==""?U+"/"+q:U!==""?U:q},Jh=()=>{if(k.loading)return s("span",{className:"tt_envMore",children:w("list.modelLoading")});if(k.failed)return s("span",{className:"tt_envMore",children:w("list.modelCatalogFailed")});let M=[],U=(p?.assistProvider??"")===""&&(p?.assistModel??"")==="";M.push(s("button",{type:"button",className:"tt_envItem",...U?{"data-active":""}:{},onMouseDown:q=>q.preventDefault(),onClick:()=>{c(q=>({...q||{},assistProvider:"",assistModel:""})),V(!1)},children:w("option.followHostModel")},"assist-route-default"));for(let q of k.groups){let J=String(q.id??"");if(J==="")continue;let oe=String(q.name??J),_e=Array.isArray(q.models)?q.models:[];if(_e.length!==0){M.push(s("span",{className:"tt_envMore",children:oe},"group-"+J));for(let xe of _e){let ye=String(xe.id??"");if(ye==="")continue;let Ge=String(xe.name??"")===""?ye:String(xe.name),hr=(p?.assistProvider??"")===J&&(p?.assistModel??"")===ye;M.push(s("button",{type:"button",className:"tt_envItem",...hr?{"data-active":""}:{},title:J+"/"+ye,onMouseDown:Je=>Je.preventDefault(),onClick:()=>{c(Je=>({...Je||{},assistProvider:J,assistModel:ye})),V(!1)},children:Ge===ye?ye:Ge},J+"/"+ye))}}}return k.groups.length===0&&M.push(s("span",{className:"tt_envMore",children:w("list.noModelCandidate")},"assist-route-empty")),M},es=(M,U,q,J)=>o("label",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:M}),s("input",{className:"tt_cardInput",value:p[U]??"",placeholder:q??"",onChange:oe=>j(U,oe.target.value)}),J?s("span",{className:"tt_cardHint",children:J}):null]}),Cr=(M,U,q,J)=>o("label",{className:"tt_cardField tt_cardRow tt_cardToggle"+(typeof q=="string"&&q!==""?" "+q:""),children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:p[U]===!0,disabled:J===!0&&p[U]!==!0,onChange:oe=>j(U,oe.target.checked)}),s("span",{className:"tt_cardLabel",children:M})]}),ts=p?.platform==="win32";return l==="summary"?w("card.desc"):o(_?"div":"li",{className:_?"tt_pageHost":m?"tt_card tt_cardOpen":"tt_card",children:[_?null:o("button",{type:"button",className:"tt_cardHeader","aria-expanded":m,onClick:()=>y(M=>!M),children:[o("span",{className:"tt_cardHeadText",children:[s("span",{className:"tt_cardName",children:w("card.name")}),s("span",{className:"tt_cardDescription",children:w("card.descFull")})]}),s("span",{className:"dshkit_badge",children:"Kit"}),s("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:m?"tt_cardChevron tt_cardChevronOpen":"tt_cardChevron",children:s("path",{d:i,fill:"currentColor"})})]}),_||m?o("div",{className:"tt_cardBody",children:[p===null?s("div",{className:"tt_cardMessage",children:w("list.loadingConfig")}):o("div",{children:[W(w("section.basic")),Cr(w("check.enabled"),"enabled"),Cr(w("check.announce"),"announceToAgent"),ts?o("div",{className:"tt_cardField",children:[o("label",{className:"tt_cardRow",children:[s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:!1,disabled:!0}),s("span",{className:"tt_cardLabel",children:w("check.shellIntegration")})]}),s("span",{className:"tt_cardHint",children:w("hint.shellIntegrationWindows")})]}):Cr(w("check.shellIntegrationWindows"),"shellIntegration"),W(w("section.sftp")),o("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:w("field.sftpStyle")}),o("select",{className:"tt_cardInput",value:p.sftpStyle==="dual"?"dual":"dialog",onChange:M=>j("sftpStyle",M.target.value),children:[s("option",{value:"dialog",children:w("option.sftpDialog")}),s("option",{value:"dual",children:w("option.sftpDual")})]}),s("span",{className:"tt_cardHint",children:w("hint.sftpDual")})]}),o("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:w("field.sftpLimits")}),o("div",{className:"tt_limitGrid",children:[o("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:w("field.downloadLimit")}),s("input",{className:"tt_cardInput",type:"number",min:0,value:String(Number.isFinite(Number(p?.sftpLimits?.maxDownloadMb))?Number(p.sftpLimits.maxDownloadMb):1024),onChange:M=>fe("maxDownloadMb",Number(M.target.value)||0)})]}),o("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:w("field.uploadLimit")}),s("input",{className:"tt_cardInput",type:"number",min:0,value:String(Number.isFinite(Number(p?.sftpLimits?.maxUploadMb))?Number(p.sftpLimits.maxUploadMb):2048),onChange:M=>fe("maxUploadMb",Number(M.target.value)||0)})]}),o("label",{className:"tt_sshRow",children:[s("span",{className:"tt_cardLabel",children:w("field.uploadCountLimit")}),s("input",{className:"tt_cardInput",type:"number",min:0,value:String(Number.isFinite(Number(p?.sftpLimits?.maxUploadFiles))?Number(p.sftpLimits.maxUploadFiles):1e3),onChange:M=>fe("maxUploadFiles",Number(M.target.value)||0)})]})]}),s("span",{className:"tt_cardHint",children:w("hint.sftpLimits")})]}),W(w("section.session")),o("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:w("field.persistence")}),o("select",{className:"tt_cardInput",value:p.persistence==="tmux"?"tmux":"off",onChange:M=>j("persistence",M.target.value),children:[s("option",{value:"off",children:w("option.persistOff")}),s("option",{value:"tmux",children:w("option.persistTmux")})]}),s("span",{className:"tt_cardHint",children:w("hint.persistence")+(ts?w("hint.persistenceWindows"):"")}),Cr(w("check.endOnPageClose"),"endOnPageClose"),Cr(w("check.statsEnabled"),"statsEnabled"),s("span",{className:"tt_cardHint",children:w("hint.statsEnabled")}),jh()]}),W(w("section.assist")),Cr(w("check.assistEnabled"),"assistEnabled"),s("span",{className:"tt_cardHint",children:w("hint.assistEnabled")}),o("div",{className:"tt_cardField",onBlur:M=>{M.currentTarget.contains(M.relatedTarget)||V(!1)},children:[s("span",{className:"tt_cardLabel",children:w("field.assistRoute")}),s("input",{className:"tt_cardInput tt_routeInput",ref:X,readOnly:!0,value:Xh(p),autoComplete:"off",spellCheck:!1,onFocus:()=>{V(!0),k.groups.length===0&&!k.loading&&$()},onClick:()=>{V(!0),k.groups.length===0&&!k.loading&&$()},onKeyDown:M=>{M.key==="Escape"&&V(!1)}}),...z?[s("div",{className:"tt_envList tt_routeList",children:Jh()},"assist-route-list")]:[],s("span",{className:"tt_cardHint",children:w("hint.assistRoute")})]},"assist-route-field"),es(w("field.maxSessions"),"maxSessions","4",w("hint.maxSessions")),o("div",{className:"tt_cardField",onBlur:M=>{M.currentTarget.contains(M.relatedTarget)||T(!1)},children:[s("span",{className:"tt_cardLabel",children:w(ts?"field.shellWindows":"field.shell")}),s("input",{className:"tt_cardInput",value:p.shell??"",placeholder:w(ts?"placeholder.shellWindows":"placeholder.shell"),autoComplete:"off",spellCheck:!1,onFocus:()=>T(!0),onClick:()=>T(!0),onKeyDown:M=>{M.key==="Escape"&&T(!1)},onChange:M=>{j("shell",M.target.value),T(!0)}}),...S?[s("div",{className:"tt_envList tt_shellList",children:(()=>{let M=(p.shell??"").trim().toLowerCase(),U=M===""?H:H.filter(q=>q.toLowerCase().includes(M));return U.length===0?s("span",{className:"tt_envMore",children:w("list.noShellCandidate")}):U.map(q=>s("button",{type:"button",className:"tt_envItem",onMouseDown:J=>J.preventDefault(),onClick:()=>{j("shell",q),T(!1)},children:q},q))})()},"shell-list")]:[],s("span",{className:"tt_cardHint",children:w(ts?"hint.shellCandidatesWindows":"hint.shellCandidates")})]},"shell-field"),es("TERM","term","xterm-256color",w("hint.term")),es("COLORTERM","colorTerm","truecolor",""),es(w("field.cwd"),"cwd","",w("placeholder.cwd")),es(w("field.grace"),"reconnectGraceSec","120",w("hint.grace")),W(w("section.ssh")),o("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:w("panel.sshBook")}),...Array.isArray(p.sshHosts)&&p.sshHosts.length>0?[s("div",{className:"tt_hostList","data-editing":ce!==null?"":void 0,children:p.sshHosts.map(M=>o("div",{children:[o("div",{className:"tt_sshHostRow",children:[s("div",{className:"tt_sshHostMeta",children:[s("span",{className:"tt_sshHostName",children:M?.name??""}),s("span",{className:"tt_sshHostTarget",children:uo(M??{})})]}),s("button",{type:"button",className:"tt_toolBtn",disabled:Ke[M?.name]?.running===!0,onClick:()=>{Oh(M)},title:w("btn.probeRowTitle"),children:Ke[M?.name]?.running===!0?w("msg.testing"):w("btn.test")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>Dh(M),children:w("btn.edit")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>Bh(M?.name),children:w("btn.delete")})]}),Ke[M?.name]&&Ke[M?.name].text?s("div",{className:"tt_sshProbeResult"+(Ke[M?.name].ok?" tt_sshProbeOk":" tt_sshProbeBad"),children:Ke[M?.name].text}):null,ce===M?.name?Yh():null]},String(M?.name??"")))})]:[s("span",{className:"tt_cardHint",children:w("list.emptySshHosts")})],o("div",{className:"tt_cardRow",children:[s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{Nh()},children:w("btn.importSshConfig")}),s("span",{className:"tt_cardHint",children:w("hint.importSshConfig")})]}),s("span",{className:"tt_cardHint",children:w("hint.sshBook")})]}),o("div",{className:"tt_cardField",children:[o("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:w("panel.tunnels")}),...Array.isArray(p.tunnels)&&p.tunnels.length>0?[s("div",{children:p.tunnels.map(M=>{let U=Ch.find(oe=>oe.name===M?.name),q=U?.state??"stopped",J=Ct!==null&&String(M?.name??"")===Ct;return o("div",{className:"tt_sshHostRow","data-editing":J?"":void 0,children:[s("span",{className:"tt_tunnelDot","data-state":q,title:q}),s("div",{className:"tt_sshHostMeta",children:[s("span",{className:"tt_sshHostName",children:(M?.name??"")+" \xB7 "+kh(M??{})}),s("span",{className:"tt_sshHostTarget",children:(M?.bookName??"")+(U?.error?" \xB7 "+U.error:"")+(U?.lastForwardError?" \xB7 "+U.lastForwardError:"")})]}),s("input",{type:"checkbox",className:"tt_cardCheckbox",checked:M?.enabled!==!1,title:w("check.tunnelEnabled"),onChange:oe=>Ah(M?.name,oe.target.checked)}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>Eh(M),children:w("btn.edit")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>Mh(M?.name),children:w("btn.delete")})]},String(M?.name??""))})})]:[s("span",{className:"tt_cardHint",children:w("list.emptyTunnels")})],o("div",{className:"tt_sshEdit",children:[o("div",{className:"tt_cardRow tt_tunnelHead",children:[o("div",{className:"tt_segmented",role:"group","aria-label":w("field.direction"),children:[s("button",{type:"button",className:"tt_segmentedBtn","data-active":et.direction!=="remote"?"":void 0,title:w("option.localForwardTitle"),onClick:()=>Oo("direction","local"),children:w("option.localForward")}),s("button",{type:"button",className:"tt_segmentedBtn","data-active":et.direction==="remote"?"":void 0,title:w("option.remoteForwardTitle"),onClick:()=>Oo("direction","remote"),children:w("option.remoteForward")})]}),o("select",{className:"tt_cardInput",value:et.bookName,onChange:cr("bookName"),children:[s("option",{value:"",children:w("option.selectBook")}),...Array.isArray(p?.sshHosts)?p.sshHosts.map(M=>s("option",{value:M?.name??"",children:M?.name??""})):[]]})]}),s("span",{className:"tt_cardHint",children:Io!==void 0?w("hint.tunnelViaBook",{book:uo(Io)}):w("hint.tunnelBookEmpty")}),et.direction==="local"?o("div",{className:"tt_tunnelEndpoints",children:[o("div",{className:"tt_tunnelHop",children:[o("div",{className:"tt_tunnelEndpoint",children:[s("span",{className:"tt_tunnelEndpointStatic",title:w("hint.localListenFixed"),children:"127.0.0.1"}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:w("placeholder.localPort"),value:et.localPort,autoComplete:"off",inputMode:"numeric","aria-label":w("field.localListenPort"),onChange:cr("localPort")})]}),s("span",{className:"tt_tunnelArrow","data-direction":"local",title:w("hint.flowLocalToRemote"),"aria-hidden":"true",children:"\u2192"})]}),o("div",{className:"tt_tunnelEndpoint",children:[s("input",{className:"tt_cardInput tt_tunnelHost",placeholder:w("placeholder.remoteHost"),title:w("hint.remoteHostTitle"),value:et.remoteHost,autoComplete:"off","aria-label":w("field.remoteHost"),onChange:cr("remoteHost")}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:w("placeholder.port"),value:et.remotePort,autoComplete:"off",inputMode:"numeric","aria-label":w("field.remotePort"),onChange:cr("remotePort")})]})]}):o("div",{className:"tt_tunnelEndpoints",children:[o("div",{className:"tt_tunnelHop",children:[o("div",{className:"tt_tunnelEndpoint",children:[s("input",{className:"tt_cardInput tt_tunnelHost",placeholder:w("placeholder.remoteListenHost"),title:w("hint.remoteListenHost"),value:et.remoteHost,autoComplete:"off","aria-label":w("field.remoteListenHost"),onChange:cr("remoteHost")}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:w("placeholder.listenPort"),value:et.remotePort,autoComplete:"off",inputMode:"numeric","aria-label":w("field.remoteListenPort"),onChange:cr("remotePort")})]}),s("span",{className:"tt_tunnelArrow","data-direction":"remote",title:w("hint.flowRemoteToLocal"),"aria-hidden":"true",children:"\u2192"})]}),o("div",{className:"tt_tunnelEndpoint",children:[s("span",{className:"tt_tunnelEndpointStatic",title:w("hint.localDialFixed"),children:"127.0.0.1"}),s("span",{className:"tt_tunnelColon",children:":"}),s("input",{className:"tt_cardInput tt_tunnelPort",placeholder:w("placeholder.localTargetPort"),value:et.localTargetPort,autoComplete:"off",inputMode:"numeric","aria-label":w("field.localTargetPort"),onChange:cr("localTargetPort")})]})]}),s("div",{className:"tt_tunnelEndpoints",children:[s("span",{className:"tt_tunnelEndLabel",children:et.direction==="local"?w("hint.tunnelLocalSummary"):w("hint.tunnelRemoteSummary")})]}),s("div",{className:"tt_cardRow tt_tunnelActions",children:[Ct===null?s("button",{type:"button",className:"tt_cardSave",onClick:Th,children:w("btn.addTunnel")}):s("button",{type:"button",className:"tt_cardSave",onClick:Rh,children:w("btn.saveEdit")}),Ct===null?null:s("button",{type:"button",className:"tt_toolBtn",onClick:Lh,children:w("btn.cancel")}),s("span",{className:"tt_cardHint",children:Ct===null?w("hint.tunnelAdd"):w("hint.tunnelEditing",{name:Ct})})]})]})]}),o("div",{className:"tt_cardField",children:[s("span",{className:"tt_cardLabel",children:w("panel.hostKeys")}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{Hh()},children:w("btn.importKnownHosts")})]}),...Array.isArray(p.hostKeys)&&p.hostKeys.length>0?[s("div",{className:"tt_hostList",children:p.hostKeys.map((M,U)=>o("div",{className:"tt_sshHostRow",children:[s("div",{className:"tt_sshHostMeta",children:[s("span",{className:"tt_sshHostName",children:String(M?.host??"")+":"+String(M?.port??22)}),s("span",{className:"tt_sshHostTarget",children:Wo(M).map(q=>"sha256:"+q).join(" / ")})]}),s("button",{type:"button",className:"tt_toolBtn",onClick:()=>{Ih(M)},children:w("btn.delete")})]},String(M?.host??"")+":"+String(M?.port??22)+"#"+String(U)))})]:[s("span",{className:"tt_cardHint",children:w("list.emptyHostKeys")})],s("span",{className:"tt_cardHint",children:w("hint.hostKeys")})]}),o("div",{className:"tt_cardField tt_cardRow",children:[s("button",{className:"tt_cardSave",disabled:f,onClick:()=>{Uo()},children:w(f?"msg.saving":"btn.save")}),s("span",{className:"tt_cardMessage"+(C.kind==="ok"?" tt_cardMessageOk":C.kind==="error"?" tt_cardMessageError":""),children:C.text})]})]})]}):null]})}t.inject=["slots","sessions"];let a=["@hyzyn/dsh-tty#tty","@hyzyn/dsh-all#tty"];return t.apply=u=>{Cp(u),Uc=u.sessions,u.inject(["remote","remote.credentials"],C=>(Dt=C.remote?.credentials??C["remote.credentials"]??null,()=>{Dt=null}));let l=!1,_=()=>{};Ii={set(C){if(C!==l){if(l=C,C){_=im();return}_(),_=()=>{},Ms(),mr()}}},ih(!0),Po();let m="@hyzyn/dsh-all",p=[...new Set(a.map(C=>C.split("#")[0]))].find(C=>C!==m),c=!1,d=[];p!==void 0&&u.slots.inject("plugins.bundle.config",()=>{for(c=!0;d.length>0;){let C=d.pop();typeof C=="function"&&C()}return u.slots.register({name:"plugins.bundle.config",key:p},n)});for(let C of a)u.slots.inject("plugins.row.config",()=>{let v=C.split("#")[0]===p;if(v&&c)return;let x=u.slots.register({name:"plugins.row.config",key:C},n);return v&&d.push(x),x});u.slots.inject("settings.kit.item",()=>u.slots.register({name:"settings.kit.item",id:"tty",order:80,label:()=>w("card.name")},n)),u.slots.inject("settings.plugin.item",()=>u.slots.register({name:"settings.plugin.item",key:"tty",order:100},n));let h=u.provide("ttyConnbar",{version:1,addAction:ji,requestRender(){mr()}}),f=u.provide("ttyTerminal",{version:3,open(C){if(!gr)return;let v=Vc(C),x=Yc(C,v),b=typeof C?.label=="string"&&C.label!==""?C.label:void 0;if(As(),C?.reuse!==!1){let E=t_(x);if(E!==null)return wo(),Kt(E.sid),E}return wo(),Ls(x,b)},mount(C,v){return gr?c_(C,v):()=>{}}}),g=u.provide("ttyPanel",{version:2,isOpen(){return de!==null&&!qe},mountPane(C){return Zc(C)},minimize(){return Fi(),de!==null&&qe}});return()=>{Ii=null,gr=!1,_(),g(),f(),h(),Ms()}},t}});})();
2827
3201
  /*! Bundled license information:
2828
3202
 
2829
3203
  @xterm/addon-search/lib/addon-search.mjs: