]> git.proxmox.com Git - pve-xtermjs.git/blobdiff - src/www/xterm.js
upgrade xterm.js to version 4.3.0
[pve-xtermjs.git] / src / www / xterm.js
index cf27b6a51c026787b8e20cd60d9fd078478acda1..aebe9e9f07640486acb158b6136d15815c2a1e2a 100644 (file)
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Terminal = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Strings = require("./Strings");
-var Platform_1 = require("./common/Platform");
-var RenderDebouncer_1 = require("./ui/RenderDebouncer");
-var Lifecycle_1 = require("./ui/Lifecycle");
-var Lifecycle_2 = require("./common/Lifecycle");
-var MAX_ROWS_TO_READ = 20;
-var AccessibilityManager = (function (_super) {
-    __extends(AccessibilityManager, _super);
-    function AccessibilityManager(_terminal) {
-        var _this = _super.call(this) || this;
-        _this._terminal = _terminal;
-        _this._liveRegionLineCount = 0;
-        _this._charsToConsume = [];
-        _this._accessibilityTreeRoot = document.createElement('div');
-        _this._accessibilityTreeRoot.classList.add('xterm-accessibility');
-        _this._rowContainer = document.createElement('div');
-        _this._rowContainer.classList.add('xterm-accessibility-tree');
-        _this._rowElements = [];
-        for (var i = 0; i < _this._terminal.rows; i++) {
-            _this._rowElements[i] = _this._createAccessibilityTreeNode();
-            _this._rowContainer.appendChild(_this._rowElements[i]);
-        }
-        _this._topBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 0); };
-        _this._bottomBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 1); };
-        _this._rowElements[0].addEventListener('focus', _this._topBoundaryFocusListener);
-        _this._rowElements[_this._rowElements.length - 1].addEventListener('focus', _this._bottomBoundaryFocusListener);
-        _this._refreshRowsDimensions();
-        _this._accessibilityTreeRoot.appendChild(_this._rowContainer);
-        _this._renderRowsDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._renderRows.bind(_this));
-        _this._refreshRows();
-        _this._liveRegion = document.createElement('div');
-        _this._liveRegion.classList.add('live-region');
-        _this._liveRegion.setAttribute('aria-live', 'assertive');
-        _this._accessibilityTreeRoot.appendChild(_this._liveRegion);
-        _this._terminal.element.insertAdjacentElement('afterbegin', _this._accessibilityTreeRoot);
-        _this.register(_this._renderRowsDebouncer);
-        _this.register(_this._terminal.onResize(function (e) { return _this._onResize(e.rows); }));
-        _this.register(_this._terminal.onRender(function (e) { return _this._refreshRows(e.start, e.end); }));
-        _this.register(_this._terminal.onScroll(function () { return _this._refreshRows(); }));
-        _this.register(_this._terminal.addDisposableListener('a11y.char', function (char) { return _this._onChar(char); }));
-        _this.register(_this._terminal.onLineFeed(function () { return _this._onChar('\n'); }));
-        _this.register(_this._terminal.addDisposableListener('a11y.tab', function (spaceCount) { return _this._onTab(spaceCount); }));
-        _this.register(_this._terminal.onKey(function (e) { return _this._onKey(e.key); }));
-        _this.register(_this._terminal.addDisposableListener('blur', function () { return _this._clearLiveRegion(); }));
-        _this.register(_this._terminal.addDisposableListener('dprchange', function () { return _this._refreshRowsDimensions(); }));
-        _this.register(_this._terminal.renderer.onCanvasResize(function () { return _this._refreshRowsDimensions(); }));
-        _this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this._refreshRowsDimensions(); }));
-        return _this;
-    }
-    AccessibilityManager.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        this._terminal.element.removeChild(this._accessibilityTreeRoot);
-        this._rowElements.length = 0;
-    };
-    AccessibilityManager.prototype._onBoundaryFocus = function (e, position) {
-        var boundaryElement = e.target;
-        var beforeBoundaryElement = this._rowElements[position === 0 ? 1 : this._rowElements.length - 2];
-        var posInSet = boundaryElement.getAttribute('aria-posinset');
-        var lastRowPos = position === 0 ? '1' : "" + this._terminal.buffer.lines.length;
-        if (posInSet === lastRowPos) {
-            return;
-        }
-        if (e.relatedTarget !== beforeBoundaryElement) {
-            return;
-        }
-        var topBoundaryElement;
-        var bottomBoundaryElement;
-        if (position === 0) {
-            topBoundaryElement = boundaryElement;
-            bottomBoundaryElement = this._rowElements.pop();
-            this._rowContainer.removeChild(bottomBoundaryElement);
-        }
-        else {
-            topBoundaryElement = this._rowElements.shift();
-            bottomBoundaryElement = boundaryElement;
-            this._rowContainer.removeChild(topBoundaryElement);
-        }
-        topBoundaryElement.removeEventListener('focus', this._topBoundaryFocusListener);
-        bottomBoundaryElement.removeEventListener('focus', this._bottomBoundaryFocusListener);
-        if (position === 0) {
-            var newElement = this._createAccessibilityTreeNode();
-            this._rowElements.unshift(newElement);
-            this._rowContainer.insertAdjacentElement('afterbegin', newElement);
-        }
-        else {
-            var newElement = this._createAccessibilityTreeNode();
-            this._rowElements.push(newElement);
-            this._rowContainer.appendChild(newElement);
-        }
-        this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);
-        this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);
-        this._terminal.scrollLines(position === 0 ? -1 : 1);
-        this._rowElements[position === 0 ? 1 : this._rowElements.length - 2].focus();
-        e.preventDefault();
-        e.stopImmediatePropagation();
-    };
-    AccessibilityManager.prototype._onResize = function (rows) {
-        this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener);
-        for (var i = this._rowContainer.children.length; i < this._terminal.rows; i++) {
-            this._rowElements[i] = this._createAccessibilityTreeNode();
-            this._rowContainer.appendChild(this._rowElements[i]);
-        }
-        while (this._rowElements.length > rows) {
-            this._rowContainer.removeChild(this._rowElements.pop());
-        }
-        this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);
-        this._refreshRowsDimensions();
-    };
-    AccessibilityManager.prototype._createAccessibilityTreeNode = function () {
-        var element = document.createElement('div');
-        element.setAttribute('role', 'listitem');
-        element.tabIndex = -1;
-        this._refreshRowDimensions(element);
-        return element;
-    };
-    AccessibilityManager.prototype._onTab = function (spaceCount) {
-        for (var i = 0; i < spaceCount; i++) {
-            this._onChar(' ');
-        }
-    };
-    AccessibilityManager.prototype._onChar = function (char) {
-        var _this = this;
-        if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {
-            if (this._charsToConsume.length > 0) {
-                var shiftedChar = this._charsToConsume.shift();
-                if (shiftedChar !== char) {
-                    this._announceCharacter(char);
-                }
-            }
-            else {
-                this._announceCharacter(char);
-            }
-            if (char === '\n') {
-                this._liveRegionLineCount++;
-                if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {
-                    this._liveRegion.textContent += Strings.tooMuchOutput;
-                }
-            }
-            if (Platform_1.isMac) {
-                if (this._liveRegion.textContent && this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) {
-                    setTimeout(function () {
-                        _this._accessibilityTreeRoot.appendChild(_this._liveRegion);
-                    }, 0);
-                }
-            }
-        }
-    };
-    AccessibilityManager.prototype._clearLiveRegion = function () {
-        this._liveRegion.textContent = '';
-        this._liveRegionLineCount = 0;
-        if (Platform_1.isMac) {
-            if (this._liveRegion.parentNode) {
-                this._accessibilityTreeRoot.removeChild(this._liveRegion);
-            }
-        }
-    };
-    AccessibilityManager.prototype._onKey = function (keyChar) {
-        this._clearLiveRegion();
-        this._charsToConsume.push(keyChar);
-    };
-    AccessibilityManager.prototype._refreshRows = function (start, end) {
-        this._renderRowsDebouncer.refresh(start, end, this._terminal.rows);
-    };
-    AccessibilityManager.prototype._renderRows = function (start, end) {
-        var buffer = this._terminal.buffer;
-        var setSize = buffer.lines.length.toString();
-        for (var i = start; i <= end; i++) {
-            var lineData = buffer.translateBufferLineToString(buffer.ydisp + i, true);
-            var posInSet = (buffer.ydisp + i + 1).toString();
-            var element = this._rowElements[i];
-            if (element) {
-                element.textContent = lineData.length === 0 ? Strings.blankLine : lineData;
-                element.setAttribute('aria-posinset', posInSet);
-                element.setAttribute('aria-setsize', setSize);
-            }
-        }
-    };
-    AccessibilityManager.prototype._refreshRowsDimensions = function () {
-        if (!this._terminal.renderer.dimensions.actualCellHeight) {
-            return;
-        }
-        if (this._rowElements.length !== this._terminal.rows) {
-            this._onResize(this._terminal.rows);
-        }
-        for (var i = 0; i < this._terminal.rows; i++) {
-            this._refreshRowDimensions(this._rowElements[i]);
-        }
-    };
-    AccessibilityManager.prototype._refreshRowDimensions = function (element) {
-        element.style.height = this._terminal.renderer.dimensions.actualCellHeight + "px";
-    };
-    AccessibilityManager.prototype._announceCharacter = function (char) {
-        if (char === ' ') {
-            this._liveRegion.innerHTML += '&nbsp;';
-        }
-        else {
-            this._liveRegion.textContent += char;
-        }
-    };
-    return AccessibilityManager;
-}(Lifecycle_2.Disposable));
-exports.AccessibilityManager = AccessibilityManager;
-
-},{"./Strings":18,"./common/Lifecycle":26,"./common/Platform":27,"./ui/Lifecycle":55,"./ui/RenderDebouncer":56}],2:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var CircularList_1 = require("./common/CircularList");
-var BufferLine_1 = require("./BufferLine");
-var BufferReflow_1 = require("./BufferReflow");
-var Types_1 = require("./renderer/atlas/Types");
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var Lifecycle_1 = require("../lib/common/Lifecycle");
-exports.DEFAULT_ATTR = (0 << 18) | (Types_1.DEFAULT_COLOR << 9) | (256 << 0);
-exports.DEFAULT_ATTR_DATA = new BufferLine_1.AttributeData();
-exports.CHAR_DATA_ATTR_INDEX = 0;
-exports.CHAR_DATA_CHAR_INDEX = 1;
-exports.CHAR_DATA_WIDTH_INDEX = 2;
-exports.CHAR_DATA_CODE_INDEX = 3;
-exports.MAX_BUFFER_SIZE = 4294967295;
-exports.NULL_CELL_CHAR = '';
-exports.NULL_CELL_WIDTH = 1;
-exports.NULL_CELL_CODE = 0;
-exports.WHITESPACE_CELL_CHAR = ' ';
-exports.WHITESPACE_CELL_WIDTH = 1;
-exports.WHITESPACE_CELL_CODE = 32;
-var Buffer = (function () {
-    function Buffer(_terminal, _hasScrollback) {
-        this._terminal = _terminal;
-        this._hasScrollback = _hasScrollback;
-        this.savedCurAttrData = exports.DEFAULT_ATTR_DATA.clone();
-        this.markers = [];
-        this._nullCell = BufferLine_1.CellData.fromCharData([0, exports.NULL_CELL_CHAR, exports.NULL_CELL_WIDTH, exports.NULL_CELL_CODE]);
-        this._whitespaceCell = BufferLine_1.CellData.fromCharData([0, exports.WHITESPACE_CELL_CHAR, exports.WHITESPACE_CELL_WIDTH, exports.WHITESPACE_CELL_CODE]);
-        this._cols = this._terminal.cols;
-        this._rows = this._terminal.rows;
-        this.clear();
-    }
-    Buffer.prototype.getNullCell = function (attr) {
-        if (attr) {
-            this._nullCell.fg = attr.fg;
-            this._nullCell.bg = attr.bg;
-        }
-        else {
-            this._nullCell.fg = 0;
-            this._nullCell.bg = 0;
-        }
-        return this._nullCell;
-    };
-    Buffer.prototype.getWhitespaceCell = function (attr) {
-        if (attr) {
-            this._whitespaceCell.fg = attr.fg;
-            this._whitespaceCell.bg = attr.bg;
-        }
-        else {
-            this._whitespaceCell.fg = 0;
-            this._whitespaceCell.bg = 0;
-        }
-        return this._whitespaceCell;
-    };
-    Buffer.prototype.getBlankLine = function (attr, isWrapped) {
-        return new BufferLine_1.BufferLine(this._terminal.cols, this.getNullCell(attr), isWrapped);
-    };
-    Object.defineProperty(Buffer.prototype, "hasScrollback", {
-        get: function () {
-            return this._hasScrollback && this.lines.maxLength > this._rows;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Buffer.prototype, "isCursorInViewport", {
-        get: function () {
-            var absoluteY = this.ybase + this.y;
-            var relativeY = absoluteY - this.ydisp;
-            return (relativeY >= 0 && relativeY < this._rows);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Buffer.prototype._getCorrectBufferLength = function (rows) {
-        if (!this._hasScrollback) {
-            return rows;
-        }
-        var correctBufferLength = rows + this._terminal.options.scrollback;
-        return correctBufferLength > exports.MAX_BUFFER_SIZE ? exports.MAX_BUFFER_SIZE : correctBufferLength;
-    };
-    Buffer.prototype.fillViewportRows = function (fillAttr) {
-        if (this.lines.length === 0) {
-            if (fillAttr === undefined) {
-                fillAttr = exports.DEFAULT_ATTR_DATA;
-            }
-            var i = this._rows;
-            while (i--) {
-                this.lines.push(this.getBlankLine(fillAttr));
-            }
-        }
-    };
-    Buffer.prototype.clear = function () {
-        this.ydisp = 0;
-        this.ybase = 0;
-        this.y = 0;
-        this.x = 0;
-        this.lines = new CircularList_1.CircularList(this._getCorrectBufferLength(this._rows));
-        this.scrollTop = 0;
-        this.scrollBottom = this._rows - 1;
-        this.setupTabStops();
-    };
-    Buffer.prototype.resize = function (newCols, newRows) {
-        var nullCell = this.getNullCell(exports.DEFAULT_ATTR_DATA);
-        var newMaxLength = this._getCorrectBufferLength(newRows);
-        if (newMaxLength > this.lines.maxLength) {
-            this.lines.maxLength = newMaxLength;
-        }
-        if (this.lines.length > 0) {
-            if (this._cols < newCols) {
-                for (var i = 0; i < this.lines.length; i++) {
-                    this.lines.get(i).resize(newCols, nullCell);
-                }
-            }
-            var addToY = 0;
-            if (this._rows < newRows) {
-                for (var y = this._rows; y < newRows; y++) {
-                    if (this.lines.length < newRows + this.ybase) {
-                        if (this.ybase > 0 && this.lines.length <= this.ybase + this.y + addToY + 1) {
-                            this.ybase--;
-                            addToY++;
-                            if (this.ydisp > 0) {
-                                this.ydisp--;
-                            }
-                        }
-                        else {
-                            this.lines.push(new BufferLine_1.BufferLine(newCols, nullCell));
-                        }
-                    }
-                }
-            }
-            else {
-                for (var y = this._rows; y > newRows; y--) {
-                    if (this.lines.length > newRows + this.ybase) {
-                        if (this.lines.length > this.ybase + this.y + 1) {
-                            this.lines.pop();
-                        }
-                        else {
-                            this.ybase++;
-                            this.ydisp++;
-                        }
-                    }
-                }
-            }
-            if (newMaxLength < this.lines.maxLength) {
-                var amountToTrim = this.lines.length - newMaxLength;
-                if (amountToTrim > 0) {
-                    this.lines.trimStart(amountToTrim);
-                    this.ybase = Math.max(this.ybase - amountToTrim, 0);
-                    this.ydisp = Math.max(this.ydisp - amountToTrim, 0);
-                }
-                this.lines.maxLength = newMaxLength;
-            }
-            this.x = Math.min(this.x, newCols - 1);
-            this.y = Math.min(this.y, newRows - 1);
-            if (addToY) {
-                this.y += addToY;
-            }
-            this.savedY = Math.min(this.savedY, newRows - 1);
-            this.savedX = Math.min(this.savedX, newCols - 1);
-            this.scrollTop = 0;
-        }
-        this.scrollBottom = newRows - 1;
-        if (this._isReflowEnabled) {
-            this._reflow(newCols, newRows);
-            if (this._cols > newCols) {
-                for (var i = 0; i < this.lines.length; i++) {
-                    this.lines.get(i).resize(newCols, nullCell);
-                }
-            }
-        }
-        this._cols = newCols;
-        this._rows = newRows;
-    };
-    Object.defineProperty(Buffer.prototype, "_isReflowEnabled", {
-        get: function () {
-            return this._hasScrollback && !this._terminal.options.windowsMode;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Buffer.prototype._reflow = function (newCols, newRows) {
-        if (this._cols === newCols) {
-            return;
-        }
-        if (newCols > this._cols) {
-            this._reflowLarger(newCols, newRows);
-        }
-        else {
-            this._reflowSmaller(newCols, newRows);
-        }
-    };
-    Buffer.prototype._reflowLarger = function (newCols, newRows) {
-        var toRemove = BufferReflow_1.reflowLargerGetLinesToRemove(this.lines, this._cols, newCols, this.ybase + this.y, this.getNullCell(exports.DEFAULT_ATTR_DATA));
-        if (toRemove.length > 0) {
-            var newLayoutResult = BufferReflow_1.reflowLargerCreateNewLayout(this.lines, toRemove);
-            BufferReflow_1.reflowLargerApplyNewLayout(this.lines, newLayoutResult.layout);
-            this._reflowLargerAdjustViewport(newCols, newRows, newLayoutResult.countRemoved);
-        }
-    };
-    Buffer.prototype._reflowLargerAdjustViewport = function (newCols, newRows, countRemoved) {
-        var nullCell = this.getNullCell(exports.DEFAULT_ATTR_DATA);
-        var viewportAdjustments = countRemoved;
-        while (viewportAdjustments-- > 0) {
-            if (this.ybase === 0) {
-                if (this.y > 0) {
-                    this.y--;
-                }
-                if (this.lines.length < newRows) {
-                    this.lines.push(new BufferLine_1.BufferLine(newCols, nullCell));
-                }
-            }
-            else {
-                if (this.ydisp === this.ybase) {
-                    this.ydisp--;
-                }
-                this.ybase--;
-            }
-        }
-    };
-    Buffer.prototype._reflowSmaller = function (newCols, newRows) {
-        var nullCell = this.getNullCell(exports.DEFAULT_ATTR_DATA);
-        var toInsert = [];
-        var countToInsert = 0;
-        for (var y = this.lines.length - 1; y >= 0; y--) {
-            var nextLine = this.lines.get(y);
-            if (!nextLine.isWrapped && nextLine.getTrimmedLength() <= newCols) {
-                continue;
-            }
-            var wrappedLines = [nextLine];
-            while (nextLine.isWrapped && y > 0) {
-                nextLine = this.lines.get(--y);
-                wrappedLines.unshift(nextLine);
-            }
-            var absoluteY = this.ybase + this.y;
-            if (absoluteY >= y && absoluteY < y + wrappedLines.length) {
-                continue;
-            }
-            var lastLineLength = wrappedLines[wrappedLines.length - 1].getTrimmedLength();
-            var destLineLengths = BufferReflow_1.reflowSmallerGetNewLineLengths(wrappedLines, this._cols, newCols);
-            var linesToAdd = destLineLengths.length - wrappedLines.length;
-            var trimmedLines = void 0;
-            if (this.ybase === 0 && this.y !== this.lines.length - 1) {
-                trimmedLines = Math.max(0, this.y - this.lines.maxLength + linesToAdd);
-            }
-            else {
-                trimmedLines = Math.max(0, this.lines.length - this.lines.maxLength + linesToAdd);
-            }
-            var newLines = [];
-            for (var i = 0; i < linesToAdd; i++) {
-                var newLine = this.getBlankLine(exports.DEFAULT_ATTR_DATA, true);
-                newLines.push(newLine);
-            }
-            if (newLines.length > 0) {
-                toInsert.push({
-                    start: y + wrappedLines.length + countToInsert,
-                    newLines: newLines
-                });
-                countToInsert += newLines.length;
-            }
-            wrappedLines.push.apply(wrappedLines, newLines);
-            var destLineIndex = destLineLengths.length - 1;
-            var destCol = destLineLengths[destLineIndex];
-            if (destCol === 0) {
-                destLineIndex--;
-                destCol = destLineLengths[destLineIndex];
-            }
-            var srcLineIndex = wrappedLines.length - linesToAdd - 1;
-            var srcCol = lastLineLength;
-            while (srcLineIndex >= 0) {
-                var cellsToCopy = Math.min(srcCol, destCol);
-                wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[srcLineIndex], srcCol - cellsToCopy, destCol - cellsToCopy, cellsToCopy, true);
-                destCol -= cellsToCopy;
-                if (destCol === 0) {
-                    destLineIndex--;
-                    destCol = destLineLengths[destLineIndex];
-                }
-                srcCol -= cellsToCopy;
-                if (srcCol === 0) {
-                    srcLineIndex--;
-                    var wrappedLinesIndex = Math.max(srcLineIndex, 0);
-                    srcCol = BufferReflow_1.getWrappedLineTrimmedLength(wrappedLines, wrappedLinesIndex, this._cols);
-                }
-            }
-            for (var i = 0; i < wrappedLines.length; i++) {
-                if (destLineLengths[i] < newCols) {
-                    wrappedLines[i].setCell(destLineLengths[i], nullCell);
-                }
-            }
-            var viewportAdjustments = linesToAdd - trimmedLines;
-            while (viewportAdjustments-- > 0) {
-                if (this.ybase === 0) {
-                    if (this.y < newRows - 1) {
-                        this.y++;
-                        this.lines.pop();
-                    }
-                    else {
-                        this.ybase++;
-                        this.ydisp++;
-                    }
-                }
-                else {
-                    if (this.ybase < Math.min(this.lines.maxLength, this.lines.length + countToInsert) - newRows) {
-                        if (this.ybase === this.ydisp) {
-                            this.ydisp++;
-                        }
-                        this.ybase++;
-                    }
-                }
-            }
-        }
-        if (toInsert.length > 0) {
-            var insertEvents = [];
-            var originalLines = [];
-            for (var i = 0; i < this.lines.length; i++) {
-                originalLines.push(this.lines.get(i));
-            }
-            var originalLinesLength = this.lines.length;
-            var originalLineIndex = originalLinesLength - 1;
-            var nextToInsertIndex = 0;
-            var nextToInsert = toInsert[nextToInsertIndex];
-            this.lines.length = Math.min(this.lines.maxLength, this.lines.length + countToInsert);
-            var countInsertedSoFar = 0;
-            for (var i = Math.min(this.lines.maxLength - 1, originalLinesLength + countToInsert - 1); i >= 0; i--) {
-                if (nextToInsert && nextToInsert.start > originalLineIndex + countInsertedSoFar) {
-                    for (var nextI = nextToInsert.newLines.length - 1; nextI >= 0; nextI--) {
-                        this.lines.set(i--, nextToInsert.newLines[nextI]);
-                    }
-                    i++;
-                    insertEvents.push({
-                        index: originalLineIndex + 1,
-                        amount: nextToInsert.newLines.length
-                    });
-                    countInsertedSoFar += nextToInsert.newLines.length;
-                    nextToInsert = toInsert[++nextToInsertIndex];
-                }
-                else {
-                    this.lines.set(i, originalLines[originalLineIndex--]);
-                }
-            }
-            var insertCountEmitted = 0;
-            for (var i = insertEvents.length - 1; i >= 0; i--) {
-                insertEvents[i].index += insertCountEmitted;
-                this.lines.onInsertEmitter.fire(insertEvents[i]);
-                insertCountEmitted += insertEvents[i].amount;
-            }
-            var amountToTrim = Math.max(0, originalLinesLength + countToInsert - this.lines.maxLength);
-            if (amountToTrim > 0) {
-                this.lines.onTrimEmitter.fire(amountToTrim);
-            }
-        }
-    };
-    Buffer.prototype.stringIndexToBufferIndex = function (lineIndex, stringIndex, trimRight) {
-        if (trimRight === void 0) { trimRight = false; }
-        while (stringIndex) {
-            var line = this.lines.get(lineIndex);
-            if (!line) {
-                return [-1, -1];
-            }
-            var length_1 = (trimRight) ? line.getTrimmedLength() : line.length;
-            for (var i = 0; i < length_1; ++i) {
-                if (line.get(i)[exports.CHAR_DATA_WIDTH_INDEX]) {
-                    stringIndex -= line.get(i)[exports.CHAR_DATA_CHAR_INDEX].length || 1;
-                }
-                if (stringIndex < 0) {
-                    return [lineIndex, i];
-                }
-            }
-            lineIndex++;
-        }
-        return [lineIndex, 0];
-    };
-    Buffer.prototype.translateBufferLineToString = function (lineIndex, trimRight, startCol, endCol) {
-        if (startCol === void 0) { startCol = 0; }
-        var line = this.lines.get(lineIndex);
-        if (!line) {
-            return '';
-        }
-        return line.translateToString(trimRight, startCol, endCol);
-    };
-    Buffer.prototype.getWrappedRangeForLine = function (y) {
-        var first = y;
-        var last = y;
-        while (first > 0 && this.lines.get(first).isWrapped) {
-            first--;
-        }
-        while (last + 1 < this.lines.length && this.lines.get(last + 1).isWrapped) {
-            last++;
-        }
-        return { first: first, last: last };
-    };
-    Buffer.prototype.setupTabStops = function (i) {
-        if (i !== null && i !== undefined) {
-            if (!this.tabs[i]) {
-                i = this.prevStop(i);
-            }
-        }
-        else {
-            this.tabs = {};
-            i = 0;
-        }
-        for (; i < this._cols; i += this._terminal.options.tabStopWidth) {
-            this.tabs[i] = true;
-        }
-    };
-    Buffer.prototype.prevStop = function (x) {
-        if (x === null || x === undefined) {
-            x = this.x;
-        }
-        while (!this.tabs[--x] && x > 0)
-            ;
-        return x >= this._cols ? this._cols - 1 : x < 0 ? 0 : x;
-    };
-    Buffer.prototype.nextStop = function (x) {
-        if (x === null || x === undefined) {
-            x = this.x;
-        }
-        while (!this.tabs[++x] && x < this._cols)
-            ;
-        return x >= this._cols ? this._cols - 1 : x < 0 ? 0 : x;
-    };
-    Buffer.prototype.addMarker = function (y) {
-        var _this = this;
-        var marker = new Marker(y);
-        this.markers.push(marker);
-        marker.register(this.lines.onTrim(function (amount) {
-            marker.line -= amount;
-            if (marker.line < 0) {
-                marker.dispose();
-            }
-        }));
-        marker.register(this.lines.onInsert(function (event) {
-            if (marker.line >= event.index) {
-                marker.line += event.amount;
-            }
-        }));
-        marker.register(this.lines.onDelete(function (event) {
-            if (marker.line >= event.index && marker.line < event.index + event.amount) {
-                marker.dispose();
-            }
-            if (marker.line > event.index) {
-                marker.line -= event.amount;
-            }
-        }));
-        marker.register(marker.onDispose(function () { return _this._removeMarker(marker); }));
-        return marker;
-    };
-    Buffer.prototype._removeMarker = function (marker) {
-        this.markers.splice(this.markers.indexOf(marker), 1);
-    };
-    Buffer.prototype.iterator = function (trimRight, startIndex, endIndex, startOverscan, endOverscan) {
-        return new BufferStringIterator(this, trimRight, startIndex, endIndex, startOverscan, endOverscan);
-    };
-    return Buffer;
-}());
-exports.Buffer = Buffer;
-var Marker = (function (_super) {
-    __extends(Marker, _super);
-    function Marker(line) {
-        var _this = _super.call(this) || this;
-        _this.line = line;
-        _this._id = Marker._nextId++;
-        _this.isDisposed = false;
-        _this._onDispose = new EventEmitter2_1.EventEmitter2();
-        return _this;
-    }
-    Object.defineProperty(Marker.prototype, "id", {
-        get: function () { return this._id; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Marker.prototype, "onDispose", {
-        get: function () { return this._onDispose.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Marker.prototype.dispose = function () {
-        if (this.isDisposed) {
-            return;
-        }
-        this.isDisposed = true;
-        this._onDispose.fire();
-    };
-    Marker._nextId = 1;
-    return Marker;
-}(Lifecycle_1.Disposable));
-exports.Marker = Marker;
-var BufferStringIterator = (function () {
-    function BufferStringIterator(_buffer, _trimRight, _startIndex, _endIndex, _startOverscan, _endOverscan) {
-        if (_startIndex === void 0) { _startIndex = 0; }
-        if (_endIndex === void 0) { _endIndex = _buffer.lines.length; }
-        if (_startOverscan === void 0) { _startOverscan = 0; }
-        if (_endOverscan === void 0) { _endOverscan = 0; }
-        this._buffer = _buffer;
-        this._trimRight = _trimRight;
-        this._startIndex = _startIndex;
-        this._endIndex = _endIndex;
-        this._startOverscan = _startOverscan;
-        this._endOverscan = _endOverscan;
-        if (this._startIndex < 0) {
-            this._startIndex = 0;
-        }
-        if (this._endIndex > this._buffer.lines.length) {
-            this._endIndex = this._buffer.lines.length;
-        }
-        this._current = this._startIndex;
-    }
-    BufferStringIterator.prototype.hasNext = function () {
-        return this._current < this._endIndex;
-    };
-    BufferStringIterator.prototype.next = function () {
-        var range = this._buffer.getWrappedRangeForLine(this._current);
-        if (range.first < this._startIndex - this._startOverscan) {
-            range.first = this._startIndex - this._startOverscan;
-        }
-        if (range.last > this._endIndex + this._endOverscan) {
-            range.last = this._endIndex + this._endOverscan;
-        }
-        range.first = Math.max(range.first, 0);
-        range.last = Math.min(range.last, this._buffer.lines.length);
-        var result = '';
-        for (var i = range.first; i <= range.last; ++i) {
-            result += this._buffer.translateBufferLineToString(i, this._trimRight);
-        }
-        this._current = range.last + 1;
-        return { range: range, content: result };
-    };
-    return BufferStringIterator;
-}());
-exports.BufferStringIterator = BufferStringIterator;
-
-},{"../lib/common/Lifecycle":26,"./BufferLine":3,"./BufferReflow":4,"./common/CircularList":22,"./common/EventEmitter2":25,"./renderer/atlas/Types":52}],3:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Buffer_1 = require("./Buffer");
-var TextDecoder_1 = require("./core/input/TextDecoder");
-var CELL_SIZE = 3;
-var AttributeData = (function () {
-    function AttributeData() {
-        this.fg = 0;
-        this.bg = 0;
-    }
-    AttributeData.toColorRGB = function (value) {
-        return [
-            value >>> 16 & 255,
-            value >>> 8 & 255,
-            value & 255
-        ];
-    };
-    AttributeData.fromColorRGB = function (value) {
-        return (value[0] & 255) << 16 | (value[1] & 255) << 8 | value[2] & 255;
-    };
-    AttributeData.prototype.clone = function () {
-        var newObj = new AttributeData();
-        newObj.fg = this.fg;
-        newObj.bg = this.bg;
-        return newObj;
-    };
-    AttributeData.prototype.isInverse = function () { return this.fg & 67108864; };
-    AttributeData.prototype.isBold = function () { return this.fg & 134217728; };
-    AttributeData.prototype.isUnderline = function () { return this.fg & 268435456; };
-    AttributeData.prototype.isBlink = function () { return this.fg & 536870912; };
-    AttributeData.prototype.isInvisible = function () { return this.fg & 1073741824; };
-    AttributeData.prototype.isItalic = function () { return this.bg & 67108864; };
-    AttributeData.prototype.isDim = function () { return this.bg & 134217728; };
-    AttributeData.prototype.getFgColorMode = function () { return this.fg & 50331648; };
-    AttributeData.prototype.getBgColorMode = function () { return this.bg & 50331648; };
-    AttributeData.prototype.isFgRGB = function () { return (this.fg & 50331648) === 50331648; };
-    AttributeData.prototype.isBgRGB = function () { return (this.bg & 50331648) === 50331648; };
-    AttributeData.prototype.isFgPalette = function () { return (this.fg & 50331648) === 16777216 || (this.fg & 50331648) === 33554432; };
-    AttributeData.prototype.isBgPalette = function () { return (this.bg & 50331648) === 16777216 || (this.bg & 50331648) === 33554432; };
-    AttributeData.prototype.isFgDefault = function () { return (this.fg & 50331648) === 0; };
-    AttributeData.prototype.isBgDefault = function () { return (this.bg & 50331648) === 0; };
-    AttributeData.prototype.getFgColor = function () {
-        switch (this.fg & 50331648) {
-            case 16777216:
-            case 33554432: return this.fg & 255;
-            case 50331648: return this.fg & 16777215;
-            default: return -1;
-        }
-    };
-    AttributeData.prototype.getBgColor = function () {
-        switch (this.bg & 50331648) {
-            case 16777216:
-            case 33554432: return this.bg & 255;
-            case 50331648: return this.bg & 16777215;
-            default: return -1;
-        }
-    };
-    return AttributeData;
-}());
-exports.AttributeData = AttributeData;
-var CellData = (function (_super) {
-    __extends(CellData, _super);
-    function CellData() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.content = 0;
-        _this.fg = 0;
-        _this.bg = 0;
-        _this.combinedData = '';
-        return _this;
-    }
-    CellData.fromCharData = function (value) {
-        var obj = new CellData();
-        obj.setFromCharData(value);
-        return obj;
-    };
-    CellData.prototype.isCombined = function () {
-        return this.content & 2097152;
-    };
-    CellData.prototype.getWidth = function () {
-        return this.content >> 22;
-    };
-    CellData.prototype.getChars = function () {
-        if (this.content & 2097152) {
-            return this.combinedData;
-        }
-        if (this.content & 2097151) {
-            return TextDecoder_1.stringFromCodePoint(this.content & 2097151);
-        }
-        return '';
-    };
-    CellData.prototype.getCode = function () {
-        return (this.isCombined())
-            ? this.combinedData.charCodeAt(this.combinedData.length - 1)
-            : this.content & 2097151;
-    };
-    CellData.prototype.setFromCharData = function (value) {
-        this.fg = value[Buffer_1.CHAR_DATA_ATTR_INDEX];
-        this.bg = 0;
-        var combined = false;
-        if (value[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 2) {
-            combined = true;
-        }
-        else if (value[Buffer_1.CHAR_DATA_CHAR_INDEX].length === 2) {
-            var code = value[Buffer_1.CHAR_DATA_CHAR_INDEX].charCodeAt(0);
-            if (0xD800 <= code && code <= 0xDBFF) {
-                var second = value[Buffer_1.CHAR_DATA_CHAR_INDEX].charCodeAt(1);
-                if (0xDC00 <= second && second <= 0xDFFF) {
-                    this.content = ((code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000) | (value[Buffer_1.CHAR_DATA_WIDTH_INDEX] << 22);
-                }
-                else {
-                    combined = true;
-                }
-            }
-            else {
-                combined = true;
-            }
-        }
-        else {
-            this.content = value[Buffer_1.CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[Buffer_1.CHAR_DATA_WIDTH_INDEX] << 22);
-        }
-        if (combined) {
-            this.combinedData = value[Buffer_1.CHAR_DATA_CHAR_INDEX];
-            this.content = 2097152 | (value[Buffer_1.CHAR_DATA_WIDTH_INDEX] << 22);
-        }
-    };
-    CellData.prototype.getAsCharData = function () {
-        return [this.fg, this.getChars(), this.getWidth(), this.getCode()];
-    };
-    return CellData;
-}(AttributeData));
-exports.CellData = CellData;
-var BufferLine = (function () {
-    function BufferLine(cols, fillCellData, isWrapped) {
-        if (isWrapped === void 0) { isWrapped = false; }
-        this.isWrapped = isWrapped;
-        this._data = null;
-        this._combined = {};
-        if (cols) {
-            this._data = new Uint32Array(cols * CELL_SIZE);
-            var cell = fillCellData || CellData.fromCharData([0, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);
-            for (var i = 0; i < cols; ++i) {
-                this.setCell(i, cell);
-            }
-        }
-        this.length = cols;
-    }
-    BufferLine.prototype.get = function (index) {
-        var content = this._data[index * CELL_SIZE + 0];
-        var cp = content & 2097151;
-        return [
-            this._data[index * CELL_SIZE + 1],
-            (content & 2097152)
-                ? this._combined[index]
-                : (cp) ? TextDecoder_1.stringFromCodePoint(cp) : '',
-            content >> 22,
-            (content & 2097152)
-                ? this._combined[index].charCodeAt(this._combined[index].length - 1)
-                : cp
-        ];
-    };
-    BufferLine.prototype.set = function (index, value) {
-        this._data[index * CELL_SIZE + 1] = value[Buffer_1.CHAR_DATA_ATTR_INDEX];
-        if (value[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {
-            this._combined[index] = value[1];
-            this._data[index * CELL_SIZE + 0] = index | 2097152 | (value[Buffer_1.CHAR_DATA_WIDTH_INDEX] << 22);
-        }
-        else {
-            this._data[index * CELL_SIZE + 0] = value[Buffer_1.CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[Buffer_1.CHAR_DATA_WIDTH_INDEX] << 22);
-        }
-    };
-    BufferLine.prototype.getWidth = function (index) {
-        return this._data[index * CELL_SIZE + 0] >> 22;
-    };
-    BufferLine.prototype.hasWidth = function (index) {
-        return this._data[index * CELL_SIZE + 0] & 12582912;
-    };
-    BufferLine.prototype.getFg = function (index) {
-        return this._data[index * CELL_SIZE + 1];
-    };
-    BufferLine.prototype.getBg = function (index) {
-        return this._data[index * CELL_SIZE + 2];
-    };
-    BufferLine.prototype.hasContent = function (index) {
-        return this._data[index * CELL_SIZE + 0] & 4194303;
-    };
-    BufferLine.prototype.getCodePoint = function (index) {
-        var content = this._data[index * CELL_SIZE + 0];
-        if (content & 2097152) {
-            return this._combined[index].charCodeAt(this._combined[index].length - 1);
-        }
-        return content & 2097151;
-    };
-    BufferLine.prototype.isCombined = function (index) {
-        return this._data[index * CELL_SIZE + 0] & 2097152;
-    };
-    BufferLine.prototype.getString = function (index) {
-        var content = this._data[index * CELL_SIZE + 0];
-        if (content & 2097152) {
-            return this._combined[index];
-        }
-        if (content & 2097151) {
-            return TextDecoder_1.stringFromCodePoint(content & 2097151);
-        }
-        return '';
-    };
-    BufferLine.prototype.loadCell = function (index, cell) {
-        var startIndex = index * CELL_SIZE;
-        cell.content = this._data[startIndex + 0];
-        cell.fg = this._data[startIndex + 1];
-        cell.bg = this._data[startIndex + 2];
-        if (cell.content & 2097152) {
-            cell.combinedData = this._combined[index];
-        }
-        return cell;
-    };
-    BufferLine.prototype.setCell = function (index, cell) {
-        if (cell.content & 2097152) {
-            this._combined[index] = cell.combinedData;
-        }
-        this._data[index * CELL_SIZE + 0] = cell.content;
-        this._data[index * CELL_SIZE + 1] = cell.fg;
-        this._data[index * CELL_SIZE + 2] = cell.bg;
-    };
-    BufferLine.prototype.setCellFromCodePoint = function (index, codePoint, width, fg, bg) {
-        this._data[index * CELL_SIZE + 0] = codePoint | (width << 22);
-        this._data[index * CELL_SIZE + 1] = fg;
-        this._data[index * CELL_SIZE + 2] = bg;
-    };
-    BufferLine.prototype.addCodepointToCell = function (index, codePoint) {
-        var content = this._data[index * CELL_SIZE + 0];
-        if (content & 2097152) {
-            this._combined[index] += TextDecoder_1.stringFromCodePoint(codePoint);
-        }
-        else {
-            if (content & 2097151) {
-                this._combined[index] = TextDecoder_1.stringFromCodePoint(content & 2097151) + TextDecoder_1.stringFromCodePoint(codePoint);
-                content &= ~2097151;
-                content |= 2097152;
-            }
-            else {
-                content = codePoint | (1 << 22);
-            }
-            this._data[index * CELL_SIZE + 0] = content;
-        }
-    };
-    BufferLine.prototype.insertCells = function (pos, n, fillCellData) {
-        pos %= this.length;
-        if (n < this.length - pos) {
-            var cell = new CellData();
-            for (var i = this.length - pos - n - 1; i >= 0; --i) {
-                this.setCell(pos + n + i, this.loadCell(pos + i, cell));
-            }
-            for (var i = 0; i < n; ++i) {
-                this.setCell(pos + i, fillCellData);
-            }
-        }
-        else {
-            for (var i = pos; i < this.length; ++i) {
-                this.setCell(i, fillCellData);
-            }
-        }
-    };
-    BufferLine.prototype.deleteCells = function (pos, n, fillCellData) {
-        pos %= this.length;
-        if (n < this.length - pos) {
-            var cell = new CellData();
-            for (var i = 0; i < this.length - pos - n; ++i) {
-                this.setCell(pos + i, this.loadCell(pos + n + i, cell));
-            }
-            for (var i = this.length - n; i < this.length; ++i) {
-                this.setCell(i, fillCellData);
-            }
-        }
-        else {
-            for (var i = pos; i < this.length; ++i) {
-                this.setCell(i, fillCellData);
-            }
-        }
-    };
-    BufferLine.prototype.replaceCells = function (start, end, fillCellData) {
-        while (start < end && start < this.length) {
-            this.setCell(start++, fillCellData);
-        }
-    };
-    BufferLine.prototype.resize = function (cols, fillCellData) {
-        if (cols === this.length) {
-            return;
-        }
-        if (cols > this.length) {
-            var data = new Uint32Array(cols * CELL_SIZE);
-            if (this.length) {
-                if (cols * CELL_SIZE < this._data.length) {
-                    data.set(this._data.subarray(0, cols * CELL_SIZE));
-                }
-                else {
-                    data.set(this._data);
-                }
-            }
-            this._data = data;
-            for (var i = this.length; i < cols; ++i) {
-                this.setCell(i, fillCellData);
-            }
-        }
-        else {
-            if (cols) {
-                var data = new Uint32Array(cols * CELL_SIZE);
-                data.set(this._data.subarray(0, cols * CELL_SIZE));
-                this._data = data;
-                var keys = Object.keys(this._combined);
-                for (var i = 0; i < keys.length; i++) {
-                    var key = parseInt(keys[i], 10);
-                    if (key >= cols) {
-                        delete this._combined[key];
-                    }
-                }
-            }
-            else {
-                this._data = null;
-                this._combined = {};
-            }
-        }
-        this.length = cols;
-    };
-    BufferLine.prototype.fill = function (fillCellData) {
-        this._combined = {};
-        for (var i = 0; i < this.length; ++i) {
-            this.setCell(i, fillCellData);
-        }
-    };
-    BufferLine.prototype.copyFrom = function (line) {
-        if (this.length !== line.length) {
-            this._data = new Uint32Array(line._data);
-        }
-        else {
-            this._data.set(line._data);
-        }
-        this.length = line.length;
-        this._combined = {};
-        for (var el in line._combined) {
-            this._combined[el] = line._combined[el];
-        }
-        this.isWrapped = line.isWrapped;
-    };
-    BufferLine.prototype.clone = function () {
-        var newLine = new BufferLine(0);
-        newLine._data = new Uint32Array(this._data);
-        newLine.length = this.length;
-        for (var el in this._combined) {
-            newLine._combined[el] = this._combined[el];
-        }
-        newLine.isWrapped = this.isWrapped;
-        return newLine;
-    };
-    BufferLine.prototype.getTrimmedLength = function () {
-        for (var i = this.length - 1; i >= 0; --i) {
-            if ((this._data[i * CELL_SIZE + 0] & 4194303)) {
-                return i + (this._data[i * CELL_SIZE + 0] >> 22);
-            }
-        }
-        return 0;
-    };
-    BufferLine.prototype.copyCellsFrom = function (src, srcCol, destCol, length, applyInReverse) {
-        var srcData = src._data;
-        if (applyInReverse) {
-            for (var cell = length - 1; cell >= 0; cell--) {
-                for (var i = 0; i < CELL_SIZE; i++) {
-                    this._data[(destCol + cell) * CELL_SIZE + i] = srcData[(srcCol + cell) * CELL_SIZE + i];
-                }
-            }
-        }
-        else {
-            for (var cell = 0; cell < length; cell++) {
-                for (var i = 0; i < CELL_SIZE; i++) {
-                    this._data[(destCol + cell) * CELL_SIZE + i] = srcData[(srcCol + cell) * CELL_SIZE + i];
-                }
-            }
-        }
-        var srcCombinedKeys = Object.keys(src._combined);
-        for (var i = 0; i < srcCombinedKeys.length; i++) {
-            var key = parseInt(srcCombinedKeys[i], 10);
-            if (key >= srcCol) {
-                this._combined[key - srcCol + destCol] = src._combined[key];
-            }
-        }
-    };
-    BufferLine.prototype.translateToString = function (trimRight, startCol, endCol) {
-        if (trimRight === void 0) { trimRight = false; }
-        if (startCol === void 0) { startCol = 0; }
-        if (endCol === void 0) { endCol = this.length; }
-        if (trimRight) {
-            endCol = Math.min(endCol, this.getTrimmedLength());
-        }
-        var result = '';
-        while (startCol < endCol) {
-            var content = this._data[startCol * CELL_SIZE + 0];
-            var cp = content & 2097151;
-            result += (content & 2097152) ? this._combined[startCol] : (cp) ? TextDecoder_1.stringFromCodePoint(cp) : Buffer_1.WHITESPACE_CELL_CHAR;
-            startCol += (content >> 22) || 1;
-        }
-        return result;
-    };
-    return BufferLine;
-}());
-exports.BufferLine = BufferLine;
-
-},{"./Buffer":2,"./core/input/TextDecoder":32}],4:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function reflowLargerGetLinesToRemove(lines, oldCols, newCols, bufferAbsoluteY, nullCell) {
-    var toRemove = [];
-    for (var y = 0; y < lines.length - 1; y++) {
-        var i = y;
-        var nextLine = lines.get(++i);
-        if (!nextLine.isWrapped) {
-            continue;
-        }
-        var wrappedLines = [lines.get(y)];
-        while (i < lines.length && nextLine.isWrapped) {
-            wrappedLines.push(nextLine);
-            nextLine = lines.get(++i);
-        }
-        if (bufferAbsoluteY >= y && bufferAbsoluteY < i) {
-            y += wrappedLines.length - 1;
-            continue;
-        }
-        var destLineIndex = 0;
-        var destCol = getWrappedLineTrimmedLength(wrappedLines, destLineIndex, oldCols);
-        var srcLineIndex = 1;
-        var srcCol = 0;
-        while (srcLineIndex < wrappedLines.length) {
-            var srcTrimmedTineLength = getWrappedLineTrimmedLength(wrappedLines, srcLineIndex, oldCols);
-            var srcRemainingCells = srcTrimmedTineLength - srcCol;
-            var destRemainingCells = newCols - destCol;
-            var cellsToCopy = Math.min(srcRemainingCells, destRemainingCells);
-            wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[srcLineIndex], srcCol, destCol, cellsToCopy, false);
-            destCol += cellsToCopy;
-            if (destCol === newCols) {
-                destLineIndex++;
-                destCol = 0;
-            }
-            srcCol += cellsToCopy;
-            if (srcCol === srcTrimmedTineLength) {
-                srcLineIndex++;
-                srcCol = 0;
-            }
-            if (destCol === 0 && destLineIndex !== 0) {
-                if (wrappedLines[destLineIndex - 1].getWidth(newCols - 1) === 2) {
-                    wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[destLineIndex - 1], newCols - 1, destCol++, 1, false);
-                    wrappedLines[destLineIndex - 1].setCell(newCols - 1, nullCell);
-                }
-            }
-        }
-        wrappedLines[destLineIndex].replaceCells(destCol, newCols, nullCell);
-        var countToRemove = 0;
-        for (var i_1 = wrappedLines.length - 1; i_1 > 0; i_1--) {
-            if (i_1 > destLineIndex || wrappedLines[i_1].getTrimmedLength() === 0) {
-                countToRemove++;
-            }
-            else {
-                break;
-            }
-        }
-        if (countToRemove > 0) {
-            toRemove.push(y + wrappedLines.length - countToRemove);
-            toRemove.push(countToRemove);
-        }
-        y += wrappedLines.length - 1;
-    }
-    return toRemove;
-}
-exports.reflowLargerGetLinesToRemove = reflowLargerGetLinesToRemove;
-function reflowLargerCreateNewLayout(lines, toRemove) {
-    var layout = [];
-    var nextToRemoveIndex = 0;
-    var nextToRemoveStart = toRemove[nextToRemoveIndex];
-    var countRemovedSoFar = 0;
-    for (var i = 0; i < lines.length; i++) {
-        if (nextToRemoveStart === i) {
-            var countToRemove = toRemove[++nextToRemoveIndex];
-            lines.onDeleteEmitter.fire({
-                index: i - countRemovedSoFar,
-                amount: countToRemove
-            });
-            i += countToRemove - 1;
-            countRemovedSoFar += countToRemove;
-            nextToRemoveStart = toRemove[++nextToRemoveIndex];
-        }
-        else {
-            layout.push(i);
-        }
-    }
-    return {
-        layout: layout,
-        countRemoved: countRemovedSoFar
-    };
-}
-exports.reflowLargerCreateNewLayout = reflowLargerCreateNewLayout;
-function reflowLargerApplyNewLayout(lines, newLayout) {
-    var newLayoutLines = [];
-    for (var i = 0; i < newLayout.length; i++) {
-        newLayoutLines.push(lines.get(newLayout[i]));
-    }
-    for (var i = 0; i < newLayoutLines.length; i++) {
-        lines.set(i, newLayoutLines[i]);
-    }
-    lines.length = newLayout.length;
-}
-exports.reflowLargerApplyNewLayout = reflowLargerApplyNewLayout;
-function reflowSmallerGetNewLineLengths(wrappedLines, oldCols, newCols) {
-    var newLineLengths = [];
-    var cellsNeeded = wrappedLines.map(function (l, i) { return getWrappedLineTrimmedLength(wrappedLines, i, oldCols); }).reduce(function (p, c) { return p + c; });
-    var srcCol = 0;
-    var srcLine = 0;
-    var cellsAvailable = 0;
-    while (cellsAvailable < cellsNeeded) {
-        if (cellsNeeded - cellsAvailable < newCols) {
-            newLineLengths.push(cellsNeeded - cellsAvailable);
-            break;
-        }
-        srcCol += newCols;
-        var oldTrimmedLength = getWrappedLineTrimmedLength(wrappedLines, srcLine, oldCols);
-        if (srcCol > oldTrimmedLength) {
-            srcCol -= oldTrimmedLength;
-            srcLine++;
-        }
-        var endsWithWide = wrappedLines[srcLine].getWidth(srcCol - 1) === 2;
-        if (endsWithWide) {
-            srcCol--;
-        }
-        var lineLength = endsWithWide ? newCols - 1 : newCols;
-        newLineLengths.push(lineLength);
-        cellsAvailable += lineLength;
-    }
-    return newLineLengths;
-}
-exports.reflowSmallerGetNewLineLengths = reflowSmallerGetNewLineLengths;
-function getWrappedLineTrimmedLength(lines, i, cols) {
-    if (i === lines.length - 1) {
-        return lines[i].getTrimmedLength();
-    }
-    var endsInNull = !(lines[i].hasContent(cols - 1)) && lines[i].getWidth(cols - 1) === 1;
-    var followingLineStartsWithWide = lines[i + 1].getWidth(0) === 2;
-    if (endsInNull && followingLineStartsWithWide) {
-        return cols - 1;
-    }
-    return cols;
-}
-exports.getWrappedLineTrimmedLength = getWrappedLineTrimmedLength;
-
-},{}],5:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Buffer_1 = require("./Buffer");
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var BufferSet = (function () {
-    function BufferSet(_terminal) {
-        this._terminal = _terminal;
-        this._onBufferActivate = new EventEmitter2_1.EventEmitter2();
-        this._normal = new Buffer_1.Buffer(this._terminal, true);
-        this._normal.fillViewportRows();
-        this._alt = new Buffer_1.Buffer(this._terminal, false);
-        this._activeBuffer = this._normal;
-        this.setupTabStops();
-    }
-    Object.defineProperty(BufferSet.prototype, "onBufferActivate", {
-        get: function () { return this._onBufferActivate.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(BufferSet.prototype, "alt", {
-        get: function () {
-            return this._alt;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(BufferSet.prototype, "active", {
-        get: function () {
-            return this._activeBuffer;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(BufferSet.prototype, "normal", {
-        get: function () {
-            return this._normal;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    BufferSet.prototype.activateNormalBuffer = function () {
-        if (this._activeBuffer === this._normal) {
-            return;
-        }
-        this._normal.x = this._alt.x;
-        this._normal.y = this._alt.y;
-        this._alt.clear();
-        this._activeBuffer = this._normal;
-        this._onBufferActivate.fire({
-            activeBuffer: this._normal,
-            inactiveBuffer: this._alt
-        });
-    };
-    BufferSet.prototype.activateAltBuffer = function (fillAttr) {
-        if (this._activeBuffer === this._alt) {
-            return;
-        }
-        this._alt.fillViewportRows(fillAttr);
-        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
-        });
-    };
-    BufferSet.prototype.resize = function (newCols, newRows) {
-        this._normal.resize(newCols, newRows);
-        this._alt.resize(newCols, newRows);
-    };
-    BufferSet.prototype.setupTabStops = function (i) {
-        this._normal.setupTabStops(i);
-        this._alt.setupTabStops(i);
-    };
-    return BufferSet;
-}());
-exports.BufferSet = BufferSet;
-
-},{"./Buffer":2,"./common/EventEmitter2":25}],6:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var CharMeasure = (function () {
-    function CharMeasure(document, parentElement) {
-        this._onCharSizeChanged = new EventEmitter2_1.EventEmitter2();
-        this._document = document;
-        this._parentElement = parentElement;
-        this._measureElement = this._document.createElement('span');
-        this._measureElement.classList.add('xterm-char-measure-element');
-        this._measureElement.textContent = 'W';
-        this._measureElement.setAttribute('aria-hidden', 'true');
-        this._parentElement.appendChild(this._measureElement);
-    }
-    Object.defineProperty(CharMeasure.prototype, "onCharSizeChanged", {
-        get: function () { return this._onCharSizeChanged.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(CharMeasure.prototype, "width", {
-        get: function () {
-            return this._width;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(CharMeasure.prototype, "height", {
-        get: function () {
-            return this._height;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    CharMeasure.prototype.measure = function (options) {
-        this._measureElement.style.fontFamily = options.fontFamily;
-        this._measureElement.style.fontSize = options.fontSize + "px";
-        var geometry = this._measureElement.getBoundingClientRect();
-        if (geometry.width === 0 || geometry.height === 0) {
-            return;
-        }
-        var adjustedHeight = Math.ceil(geometry.height);
-        if (this._width !== geometry.width || this._height !== adjustedHeight) {
-            this._width = geometry.width;
-            this._height = adjustedHeight;
-            this._onCharSizeChanged.fire();
-        }
-    };
-    return CharMeasure;
-}());
-exports.CharMeasure = CharMeasure;
-
-},{"./common/EventEmitter2":25}],7:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var TypedArrayUtils_1 = require("./common/TypedArrayUtils");
-exports.wcwidth = (function (opts) {
-    var COMBINING_BMP = [
-        [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],
-        [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],
-        [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],
-        [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],
-        [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],
-        [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],
-        [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],
-        [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],
-        [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],
-        [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],
-        [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],
-        [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],
-        [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],
-        [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],
-        [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],
-        [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],
-        [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],
-        [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],
-        [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],
-        [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],
-        [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],
-        [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],
-        [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],
-        [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],
-        [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],
-        [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],
-        [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],
-        [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],
-        [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],
-        [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],
-        [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],
-        [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],
-        [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],
-        [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],
-        [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],
-        [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],
-        [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],
-        [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],
-        [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],
-        [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],
-        [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],
-        [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],
-        [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]
-    ];
-    var COMBINING_HIGH = [
-        [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],
-        [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],
-        [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],
-        [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],
-        [0xE0100, 0xE01EF]
-    ];
-    function bisearch(ucs, data) {
-        var min = 0;
-        var max = data.length - 1;
-        var mid;
-        if (ucs < data[0][0] || ucs > data[max][1]) {
-            return false;
-        }
-        while (max >= min) {
-            mid = (min + max) >> 1;
-            if (ucs > data[mid][1]) {
-                min = mid + 1;
-            }
-            else if (ucs < data[mid][0]) {
-                max = mid - 1;
-            }
-            else {
-                return true;
-            }
-        }
-        return false;
-    }
-    function wcwidthHigh(ucs) {
-        if (bisearch(ucs, COMBINING_HIGH)) {
-            return 0;
-        }
-        if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) {
-            return 2;
-        }
-        return 1;
-    }
-    var control = opts.control | 0;
-    var table = new Uint8Array(65536);
-    TypedArrayUtils_1.fill(table, 1);
-    table[0] = opts.nul;
-    TypedArrayUtils_1.fill(table, opts.control, 1, 32);
-    TypedArrayUtils_1.fill(table, opts.control, 0x7f, 0xa0);
-    TypedArrayUtils_1.fill(table, 2, 0x1100, 0x1160);
-    table[0x2329] = 2;
-    table[0x232a] = 2;
-    TypedArrayUtils_1.fill(table, 2, 0x2e80, 0xa4d0);
-    table[0x303f] = 1;
-    TypedArrayUtils_1.fill(table, 2, 0xac00, 0xd7a4);
-    TypedArrayUtils_1.fill(table, 2, 0xf900, 0xfb00);
-    TypedArrayUtils_1.fill(table, 2, 0xfe10, 0xfe1a);
-    TypedArrayUtils_1.fill(table, 2, 0xfe30, 0xfe70);
-    TypedArrayUtils_1.fill(table, 2, 0xff00, 0xff61);
-    TypedArrayUtils_1.fill(table, 2, 0xffe0, 0xffe7);
-    for (var r = 0; r < COMBINING_BMP.length; ++r) {
-        TypedArrayUtils_1.fill(table, 0, COMBINING_BMP[r][0], COMBINING_BMP[r][1] + 1);
-    }
-    return function (num) {
-        if (num < 32) {
-            return control | 0;
-        }
-        if (num < 127) {
-            return 1;
-        }
-        if (num < 65536) {
-            return table[num];
-        }
-        return wcwidthHigh(num);
-    };
-})({ nul: 0, control: 0 });
-function getStringCellWidth(s) {
-    var result = 0;
-    var length = s.length;
-    for (var i = 0; i < length; ++i) {
-        var code = s.charCodeAt(i);
-        if (0xD800 <= code && code <= 0xDBFF) {
-            if (++i >= length) {
-                return result + exports.wcwidth(code);
-            }
-            var second = s.charCodeAt(i);
-            if (0xDC00 <= second && second <= 0xDFFF) {
-                code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
-            }
-            else {
-                result += exports.wcwidth(second);
-            }
-        }
-        result += exports.wcwidth(code);
-    }
-    return result;
-}
-exports.getStringCellWidth = getStringCellWidth;
-
-},{"./common/TypedArrayUtils":28}],8:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function prepareTextForTerminal(text) {
-    return text.replace(/\r?\n/g, '\r');
-}
-exports.prepareTextForTerminal = prepareTextForTerminal;
-function bracketTextForPaste(text, bracketedPasteMode) {
-    if (bracketedPasteMode) {
-        return '\x1b[200~' + text + '\x1b[201~';
-    }
-    return text;
-}
-exports.bracketTextForPaste = bracketTextForPaste;
-function copyHandler(ev, term, selectionManager) {
-    if (term.browser.isMSIE) {
-        window.clipboardData.setData('Text', selectionManager.selectionText);
-    }
-    else {
-        ev.clipboardData.setData('text/plain', selectionManager.selectionText);
-    }
-    ev.preventDefault();
-}
-exports.copyHandler = copyHandler;
-function pasteHandler(ev, term) {
-    ev.stopPropagation();
-    var text;
-    var dispatchPaste = function (text) {
-        text = prepareTextForTerminal(text);
-        text = bracketTextForPaste(text, term.bracketedPasteMode);
-        term.handler(text);
-        term.textarea.value = '';
-        term.emit('paste', text);
-        term.cancel(ev);
-    };
-    if (term.browser.isMSIE) {
-        if (window.clipboardData) {
-            text = window.clipboardData.getData('Text');
-            dispatchPaste(text);
-        }
-    }
-    else {
-        if (ev.clipboardData) {
-            text = ev.clipboardData.getData('text/plain');
-            dispatchPaste(text);
-        }
-    }
-}
-exports.pasteHandler = pasteHandler;
-function moveTextAreaUnderMouseCursor(ev, term) {
-    var pos = term.screenElement.getBoundingClientRect();
-    var left = ev.clientX - pos.left - 10;
-    var top = ev.clientY - pos.top - 10;
-    term.textarea.style.position = 'absolute';
-    term.textarea.style.width = '20px';
-    term.textarea.style.height = '20px';
-    term.textarea.style.left = left + "px";
-    term.textarea.style.top = top + "px";
-    term.textarea.style.zIndex = '1000';
-    term.textarea.focus();
-    setTimeout(function () {
-        term.textarea.style.position = null;
-        term.textarea.style.width = null;
-        term.textarea.style.height = null;
-        term.textarea.style.left = null;
-        term.textarea.style.top = null;
-        term.textarea.style.zIndex = null;
-    }, 200);
-}
-exports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor;
-function rightClickHandler(ev, term, selectionManager, shouldSelectWord) {
-    moveTextAreaUnderMouseCursor(ev, term);
-    if (shouldSelectWord && !selectionManager.isClickInSelection(ev)) {
-        selectionManager.selectWordAtCursor(ev);
-    }
-    term.textarea.value = selectionManager.selectionText;
-    term.textarea.select();
-}
-exports.rightClickHandler = rightClickHandler;
-
-},{}],9:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var CompositionHelper = (function () {
-    function CompositionHelper(_textarea, _compositionView, _terminal) {
-        this._textarea = _textarea;
-        this._compositionView = _compositionView;
-        this._terminal = _terminal;
-        this._isComposing = false;
-        this._isSendingComposition = false;
-        this._compositionPosition = { start: null, end: null };
-    }
-    CompositionHelper.prototype.compositionstart = function () {
-        this._isComposing = true;
-        this._compositionPosition.start = this._textarea.value.length;
-        this._compositionView.textContent = '';
-        this._compositionView.classList.add('active');
-    };
-    CompositionHelper.prototype.compositionupdate = function (ev) {
-        var _this = this;
-        this._compositionView.textContent = ev.data;
-        this.updateCompositionElements();
-        setTimeout(function () {
-            _this._compositionPosition.end = _this._textarea.value.length;
-        }, 0);
-    };
-    CompositionHelper.prototype.compositionend = function () {
-        this._finalizeComposition(true);
-    };
-    CompositionHelper.prototype.keydown = function (ev) {
-        if (this._isComposing || this._isSendingComposition) {
-            if (ev.keyCode === 229) {
-                return false;
-            }
-            else if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {
-                return false;
-            }
-            this._finalizeComposition(false);
-        }
-        if (ev.keyCode === 229) {
-            this._handleAnyTextareaChanges();
-            return false;
-        }
-        return true;
-    };
-    CompositionHelper.prototype._finalizeComposition = function (waitForPropagation) {
-        var _this = this;
-        this._compositionView.classList.remove('active');
-        this._isComposing = false;
-        this._clearTextareaPosition();
-        if (!waitForPropagation) {
-            this._isSendingComposition = false;
-            var input = this._textarea.value.substring(this._compositionPosition.start, this._compositionPosition.end);
-            this._terminal.handler(input);
-        }
-        else {
-            var currentCompositionPosition_1 = {
-                start: this._compositionPosition.start,
-                end: this._compositionPosition.end
-            };
-            this._isSendingComposition = true;
-            setTimeout(function () {
-                if (_this._isSendingComposition) {
-                    _this._isSendingComposition = false;
-                    var input = void 0;
-                    if (_this._isComposing) {
-                        input = _this._textarea.value.substring(currentCompositionPosition_1.start, currentCompositionPosition_1.end);
-                    }
-                    else {
-                        input = _this._textarea.value.substring(currentCompositionPosition_1.start);
-                    }
-                    _this._terminal.handler(input);
-                }
-            }, 0);
-        }
-    };
-    CompositionHelper.prototype._handleAnyTextareaChanges = function () {
-        var _this = this;
-        var oldValue = this._textarea.value;
-        setTimeout(function () {
-            if (!_this._isComposing) {
-                var newValue = _this._textarea.value;
-                var diff = newValue.replace(oldValue, '');
-                if (diff.length > 0) {
-                    _this._terminal.handler(diff);
-                }
-            }
-        }, 0);
-    };
-    CompositionHelper.prototype.updateCompositionElements = function (dontRecurse) {
-        var _this = this;
-        if (!this._isComposing) {
-            return;
-        }
-        if (this._terminal.buffer.isCursorInViewport) {
-            var cellHeight = Math.ceil(this._terminal.charMeasure.height * this._terminal.options.lineHeight);
-            var cursorTop = this._terminal.buffer.y * cellHeight;
-            var cursorLeft = this._terminal.buffer.x * this._terminal.charMeasure.width;
-            this._compositionView.style.left = cursorLeft + 'px';
-            this._compositionView.style.top = cursorTop + 'px';
-            this._compositionView.style.height = cellHeight + 'px';
-            this._compositionView.style.lineHeight = cellHeight + 'px';
-            this._compositionView.style.fontFamily = this._terminal.options.fontFamily;
-            this._compositionView.style.fontSize = this._terminal.options.fontSize + 'px';
-            var compositionViewBounds = this._compositionView.getBoundingClientRect();
-            this._textarea.style.left = cursorLeft + 'px';
-            this._textarea.style.top = cursorTop + 'px';
-            this._textarea.style.width = compositionViewBounds.width + 'px';
-            this._textarea.style.height = compositionViewBounds.height + 'px';
-            this._textarea.style.lineHeight = compositionViewBounds.height + 'px';
-        }
-        if (!dontRecurse) {
-            setTimeout(function () { return _this.updateCompositionElements(true); }, 0);
-        }
-    };
-    CompositionHelper.prototype._clearTextareaPosition = function () {
-        this._textarea.style.left = '';
-        this._textarea.style.top = '';
-    };
-    return CompositionHelper;
-}());
-exports.CompositionHelper = CompositionHelper;
-
-},{}],10:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Lifecycle_1 = require("./common/Lifecycle");
-var TextDecoder_1 = require("./core/input/TextDecoder");
-function r(low, high) {
-    var c = high - low;
-    var arr = new Array(c);
-    while (c--) {
-        arr[c] = --high;
-    }
-    return arr;
-}
-var TransitionTable = (function () {
-    function TransitionTable(length) {
-        this.table = (typeof Uint8Array === 'undefined')
-            ? new Array(length)
-            : new Uint8Array(length);
-    }
-    TransitionTable.prototype.add = function (code, state, action, next) {
-        this.table[state << 8 | code] = ((action | 0) << 4) | ((next === undefined) ? state : next);
-    };
-    TransitionTable.prototype.addMany = function (codes, state, action, next) {
-        for (var i = 0; i < codes.length; i++) {
-            this.add(codes[i], state, action, next);
-        }
-    };
-    return TransitionTable;
-}());
-exports.TransitionTable = TransitionTable;
-var PRINTABLES = r(0x20, 0x7f);
-var EXECUTABLES = r(0x00, 0x18);
-EXECUTABLES.push(0x19);
-EXECUTABLES.push.apply(EXECUTABLES, r(0x1c, 0x20));
-var NON_ASCII_PRINTABLE = 0xA0;
-exports.VT500_TRANSITION_TABLE = (function () {
-    var table = new TransitionTable(4095);
-    var states = r(0, 13 + 1);
-    var state;
-    for (state in states) {
-        for (var code = 0; code <= NON_ASCII_PRINTABLE; ++code) {
-            table.add(code, state, 1, 0);
-        }
-    }
-    table.addMany(PRINTABLES, 0, 2, 0);
-    for (state in states) {
-        table.addMany([0x18, 0x1a, 0x99, 0x9a], state, 3, 0);
-        table.addMany(r(0x80, 0x90), state, 3, 0);
-        table.addMany(r(0x90, 0x98), state, 3, 0);
-        table.add(0x9c, state, 0, 0);
-        table.add(0x1b, state, 11, 1);
-        table.add(0x9d, state, 4, 8);
-        table.addMany([0x98, 0x9e, 0x9f], state, 0, 7);
-        table.add(0x9b, state, 11, 3);
-        table.add(0x90, state, 11, 9);
-    }
-    table.addMany(EXECUTABLES, 0, 3, 0);
-    table.addMany(EXECUTABLES, 1, 3, 1);
-    table.add(0x7f, 1, 0, 1);
-    table.addMany(EXECUTABLES, 8, 0, 8);
-    table.addMany(EXECUTABLES, 3, 3, 3);
-    table.add(0x7f, 3, 0, 3);
-    table.addMany(EXECUTABLES, 4, 3, 4);
-    table.add(0x7f, 4, 0, 4);
-    table.addMany(EXECUTABLES, 6, 3, 6);
-    table.addMany(EXECUTABLES, 5, 3, 5);
-    table.add(0x7f, 5, 0, 5);
-    table.addMany(EXECUTABLES, 2, 3, 2);
-    table.add(0x7f, 2, 0, 2);
-    table.add(0x5d, 1, 4, 8);
-    table.addMany(PRINTABLES, 8, 5, 8);
-    table.add(0x7f, 8, 5, 8);
-    table.addMany([0x9c, 0x1b, 0x18, 0x1a, 0x07], 8, 6, 0);
-    table.addMany(r(0x1c, 0x20), 8, 0, 8);
-    table.addMany([0x58, 0x5e, 0x5f], 1, 0, 7);
-    table.addMany(PRINTABLES, 7, 0, 7);
-    table.addMany(EXECUTABLES, 7, 0, 7);
-    table.add(0x9c, 7, 0, 0);
-    table.add(0x7f, 7, 0, 7);
-    table.add(0x5b, 1, 11, 3);
-    table.addMany(r(0x40, 0x7f), 3, 7, 0);
-    table.addMany(r(0x30, 0x3a), 3, 8, 4);
-    table.add(0x3b, 3, 8, 4);
-    table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 3, 9, 4);
-    table.addMany(r(0x30, 0x3a), 4, 8, 4);
-    table.add(0x3b, 4, 8, 4);
-    table.addMany(r(0x40, 0x7f), 4, 7, 0);
-    table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 4, 0, 6);
-    table.addMany(r(0x20, 0x40), 6, 0, 6);
-    table.add(0x7f, 6, 0, 6);
-    table.addMany(r(0x40, 0x7f), 6, 0, 0);
-    table.add(0x3a, 3, 0, 6);
-    table.addMany(r(0x20, 0x30), 3, 9, 5);
-    table.addMany(r(0x20, 0x30), 5, 9, 5);
-    table.addMany(r(0x30, 0x40), 5, 0, 6);
-    table.addMany(r(0x40, 0x7f), 5, 7, 0);
-    table.addMany(r(0x20, 0x30), 4, 9, 5);
-    table.addMany(r(0x20, 0x30), 1, 9, 2);
-    table.addMany(r(0x20, 0x30), 2, 9, 2);
-    table.addMany(r(0x30, 0x7f), 2, 10, 0);
-    table.addMany(r(0x30, 0x50), 1, 10, 0);
-    table.addMany(r(0x51, 0x58), 1, 10, 0);
-    table.addMany([0x59, 0x5a, 0x5c], 1, 10, 0);
-    table.addMany(r(0x60, 0x7f), 1, 10, 0);
-    table.add(0x50, 1, 11, 9);
-    table.addMany(EXECUTABLES, 9, 0, 9);
-    table.add(0x7f, 9, 0, 9);
-    table.addMany(r(0x1c, 0x20), 9, 0, 9);
-    table.addMany(r(0x20, 0x30), 9, 9, 12);
-    table.add(0x3a, 9, 0, 11);
-    table.addMany(r(0x30, 0x3a), 9, 8, 10);
-    table.add(0x3b, 9, 8, 10);
-    table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 9, 9, 10);
-    table.addMany(EXECUTABLES, 11, 0, 11);
-    table.addMany(r(0x20, 0x80), 11, 0, 11);
-    table.addMany(r(0x1c, 0x20), 11, 0, 11);
-    table.addMany(EXECUTABLES, 10, 0, 10);
-    table.add(0x7f, 10, 0, 10);
-    table.addMany(r(0x1c, 0x20), 10, 0, 10);
-    table.addMany(r(0x30, 0x3a), 10, 8, 10);
-    table.add(0x3b, 10, 8, 10);
-    table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 10, 0, 11);
-    table.addMany(r(0x20, 0x30), 10, 9, 12);
-    table.addMany(EXECUTABLES, 12, 0, 12);
-    table.add(0x7f, 12, 0, 12);
-    table.addMany(r(0x1c, 0x20), 12, 0, 12);
-    table.addMany(r(0x20, 0x30), 12, 9, 12);
-    table.addMany(r(0x30, 0x40), 12, 0, 11);
-    table.addMany(r(0x40, 0x7f), 12, 12, 13);
-    table.addMany(r(0x40, 0x7f), 10, 12, 13);
-    table.addMany(r(0x40, 0x7f), 9, 12, 13);
-    table.addMany(EXECUTABLES, 13, 13, 13);
-    table.addMany(PRINTABLES, 13, 13, 13);
-    table.add(0x7f, 13, 0, 13);
-    table.addMany([0x1b, 0x9c], 13, 14, 0);
-    table.add(NON_ASCII_PRINTABLE, 8, 5, 8);
-    return table;
-})();
-var DcsDummy = (function () {
-    function DcsDummy() {
-    }
-    DcsDummy.prototype.hook = function (collect, params, flag) { };
-    DcsDummy.prototype.put = function (data, start, end) { };
-    DcsDummy.prototype.unhook = function () { };
-    return DcsDummy;
-}());
-var EscapeSequenceParser = (function (_super) {
-    __extends(EscapeSequenceParser, _super);
-    function EscapeSequenceParser(TRANSITIONS) {
-        if (TRANSITIONS === void 0) { TRANSITIONS = exports.VT500_TRANSITION_TABLE; }
-        var _this = _super.call(this) || this;
-        _this.TRANSITIONS = TRANSITIONS;
-        _this.initialState = 0;
-        _this.currentState = _this.initialState;
-        _this._osc = '';
-        _this._params = [0];
-        _this._collect = '';
-        _this._printHandlerFb = function (data, start, end) { };
-        _this._executeHandlerFb = function (code) { };
-        _this._csiHandlerFb = function (collect, params, flag) { };
-        _this._escHandlerFb = function (collect, flag) { };
-        _this._oscHandlerFb = function (identifier, data) { };
-        _this._dcsHandlerFb = new DcsDummy();
-        _this._errorHandlerFb = function (state) { return state; };
-        _this._printHandler = _this._printHandlerFb;
-        _this._executeHandlers = Object.create(null);
-        _this._csiHandlers = Object.create(null);
-        _this._escHandlers = Object.create(null);
-        _this._oscHandlers = Object.create(null);
-        _this._dcsHandlers = Object.create(null);
-        _this._activeDcsHandler = null;
-        _this._errorHandler = _this._errorHandlerFb;
-        _this.setEscHandler('\\', function () { });
-        return _this;
-    }
-    EscapeSequenceParser.prototype.dispose = function () {
-        this._printHandlerFb = null;
-        this._executeHandlerFb = null;
-        this._csiHandlerFb = null;
-        this._escHandlerFb = null;
-        this._oscHandlerFb = null;
-        this._dcsHandlerFb = null;
-        this._errorHandlerFb = null;
-        this._printHandler = null;
-        this._executeHandlers = null;
-        this._escHandlers = null;
-        this._csiHandlers = null;
-        this._oscHandlers = null;
-        this._dcsHandlers = null;
-        this._activeDcsHandler = null;
-        this._errorHandler = null;
-    };
-    EscapeSequenceParser.prototype.setPrintHandler = function (callback) {
-        this._printHandler = callback;
-    };
-    EscapeSequenceParser.prototype.clearPrintHandler = function () {
-        this._printHandler = this._printHandlerFb;
-    };
-    EscapeSequenceParser.prototype.setExecuteHandler = function (flag, callback) {
-        this._executeHandlers[flag.charCodeAt(0)] = callback;
-    };
-    EscapeSequenceParser.prototype.clearExecuteHandler = function (flag) {
-        if (this._executeHandlers[flag.charCodeAt(0)])
-            delete this._executeHandlers[flag.charCodeAt(0)];
-    };
-    EscapeSequenceParser.prototype.setExecuteHandlerFallback = function (callback) {
-        this._executeHandlerFb = callback;
-    };
-    EscapeSequenceParser.prototype.addCsiHandler = function (flag, callback) {
-        var index = flag.charCodeAt(0);
-        if (this._csiHandlers[index] === undefined) {
-            this._csiHandlers[index] = [];
-        }
-        var handlerList = this._csiHandlers[index];
-        handlerList.push(callback);
-        return {
-            dispose: function () {
-                var handlerIndex = handlerList.indexOf(callback);
-                if (handlerIndex !== -1) {
-                    handlerList.splice(handlerIndex, 1);
-                }
-            }
-        };
-    };
-    EscapeSequenceParser.prototype.setCsiHandler = function (flag, callback) {
-        this._csiHandlers[flag.charCodeAt(0)] = [callback];
-    };
-    EscapeSequenceParser.prototype.clearCsiHandler = function (flag) {
-        if (this._csiHandlers[flag.charCodeAt(0)])
-            delete this._csiHandlers[flag.charCodeAt(0)];
-    };
-    EscapeSequenceParser.prototype.setCsiHandlerFallback = function (callback) {
-        this._csiHandlerFb = callback;
-    };
-    EscapeSequenceParser.prototype.setEscHandler = function (collectAndFlag, callback) {
-        this._escHandlers[collectAndFlag] = callback;
-    };
-    EscapeSequenceParser.prototype.clearEscHandler = function (collectAndFlag) {
-        if (this._escHandlers[collectAndFlag])
-            delete this._escHandlers[collectAndFlag];
-    };
-    EscapeSequenceParser.prototype.setEscHandlerFallback = function (callback) {
-        this._escHandlerFb = callback;
-    };
-    EscapeSequenceParser.prototype.addOscHandler = function (ident, callback) {
-        if (this._oscHandlers[ident] === undefined) {
-            this._oscHandlers[ident] = [];
-        }
-        var handlerList = this._oscHandlers[ident];
-        handlerList.push(callback);
-        return {
-            dispose: function () {
-                var handlerIndex = handlerList.indexOf(callback);
-                if (handlerIndex !== -1) {
-                    handlerList.splice(handlerIndex, 1);
-                }
-            }
-        };
-    };
-    EscapeSequenceParser.prototype.setOscHandler = function (ident, callback) {
-        this._oscHandlers[ident] = [callback];
-    };
-    EscapeSequenceParser.prototype.clearOscHandler = function (ident) {
-        if (this._oscHandlers[ident])
-            delete this._oscHandlers[ident];
-    };
-    EscapeSequenceParser.prototype.setOscHandlerFallback = function (callback) {
-        this._oscHandlerFb = callback;
-    };
-    EscapeSequenceParser.prototype.setDcsHandler = function (collectAndFlag, handler) {
-        this._dcsHandlers[collectAndFlag] = handler;
-    };
-    EscapeSequenceParser.prototype.clearDcsHandler = function (collectAndFlag) {
-        if (this._dcsHandlers[collectAndFlag])
-            delete this._dcsHandlers[collectAndFlag];
-    };
-    EscapeSequenceParser.prototype.setDcsHandlerFallback = function (handler) {
-        this._dcsHandlerFb = handler;
-    };
-    EscapeSequenceParser.prototype.setErrorHandler = function (callback) {
-        this._errorHandler = callback;
-    };
-    EscapeSequenceParser.prototype.clearErrorHandler = function () {
-        this._errorHandler = this._errorHandlerFb;
-    };
-    EscapeSequenceParser.prototype.reset = function () {
-        this.currentState = this.initialState;
-        this._osc = '';
-        this._params = [0];
-        this._collect = '';
-        this._activeDcsHandler = null;
-    };
-    EscapeSequenceParser.prototype.parse = function (data, length) {
-        var code = 0;
-        var transition = 0;
-        var error = false;
-        var currentState = this.currentState;
-        var print = -1;
-        var dcs = -1;
-        var osc = this._osc;
-        var collect = this._collect;
-        var params = this._params;
-        var table = this.TRANSITIONS.table;
-        var dcsHandler = this._activeDcsHandler;
-        var callback = null;
-        for (var i = 0; i < length; ++i) {
-            code = data[i];
-            if (currentState === 0 && code > 0x1f && code < 0x80) {
-                print = (~print) ? print : i;
-                do
-                    i++;
-                while (i < length && data[i] > 0x1f && data[i] < 0x80);
-                i--;
-                continue;
-            }
-            if (currentState === 4 && (code > 0x2f && code < 0x39)) {
-                params[params.length - 1] = params[params.length - 1] * 10 + code - 48;
-                continue;
-            }
-            transition = table[currentState << 8 | (code < 0xa0 ? code : NON_ASCII_PRINTABLE)];
-            switch (transition >> 4) {
-                case 2:
-                    print = (~print) ? print : i;
-                    break;
-                case 3:
-                    if (~print) {
-                        this._printHandler(data, print, i);
-                        print = -1;
-                    }
-                    callback = this._executeHandlers[code];
-                    if (callback)
-                        callback();
-                    else
-                        this._executeHandlerFb(code);
-                    break;
-                case 0:
-                    if (~print) {
-                        this._printHandler(data, print, i);
-                        print = -1;
-                    }
-                    else if (~dcs) {
-                        dcsHandler.put(data, dcs, i);
-                        dcs = -1;
-                    }
-                    break;
-                case 1:
-                    if (code > 0x9f) {
-                        switch (currentState) {
-                            case 0:
-                                print = (~print) ? print : i;
-                                break;
-                            case 6:
-                                transition |= 6;
-                                break;
-                            case 11:
-                                transition |= 11;
-                                break;
-                            case 13:
-                                dcs = (~dcs) ? dcs : i;
-                                transition |= 13;
-                                break;
-                            default:
-                                error = true;
-                        }
-                    }
-                    else {
-                        error = true;
-                    }
-                    if (error) {
-                        var inject = this._errorHandler({
-                            position: i,
-                            code: code,
-                            currentState: currentState,
-                            print: print,
-                            dcs: dcs,
-                            osc: osc,
-                            collect: collect,
-                            params: params,
-                            abort: false
-                        });
-                        if (inject.abort)
-                            return;
-                        error = false;
-                    }
-                    break;
-                case 7:
-                    var handlers = this._csiHandlers[code];
-                    var j = handlers ? handlers.length - 1 : -1;
-                    for (; j >= 0; j--) {
-                        if (handlers[j](params, collect) !== false) {
-                            break;
-                        }
-                    }
-                    if (j < 0) {
-                        this._csiHandlerFb(collect, params, code);
-                    }
-                    break;
-                case 8:
-                    if (code === 0x3b)
-                        params.push(0);
-                    else
-                        params[params.length - 1] = params[params.length - 1] * 10 + code - 48;
-                    break;
-                case 9:
-                    collect += String.fromCharCode(code);
-                    break;
-                case 10:
-                    callback = this._escHandlers[collect + String.fromCharCode(code)];
-                    if (callback)
-                        callback(collect, code);
-                    else
-                        this._escHandlerFb(collect, code);
-                    break;
-                case 11:
-                    if (~print) {
-                        this._printHandler(data, print, i);
-                        print = -1;
-                    }
-                    osc = '';
-                    params = [0];
-                    collect = '';
-                    dcs = -1;
-                    break;
-                case 12:
-                    dcsHandler = this._dcsHandlers[collect + String.fromCharCode(code)];
-                    if (!dcsHandler)
-                        dcsHandler = this._dcsHandlerFb;
-                    dcsHandler.hook(collect, params, code);
-                    break;
-                case 13:
-                    dcs = (~dcs) ? dcs : i;
-                    break;
-                case 14:
-                    if (dcsHandler) {
-                        if (~dcs)
-                            dcsHandler.put(data, dcs, i);
-                        dcsHandler.unhook();
-                        dcsHandler = null;
-                    }
-                    if (code === 0x1b)
-                        transition |= 1;
-                    osc = '';
-                    params = [0];
-                    collect = '';
-                    dcs = -1;
-                    break;
-                case 4:
-                    if (~print) {
-                        this._printHandler(data, print, i);
-                        print = -1;
-                    }
-                    osc = '';
-                    break;
-                case 5:
-                    for (var j_1 = i + 1;; j_1++) {
-                        if (j_1 >= length
-                            || (code = data[j_1]) < 0x20
-                            || (code > 0x7f && code <= 0x9f)) {
-                            osc += TextDecoder_1.utf32ToString(data, i, j_1);
-                            i = j_1 - 1;
-                            break;
-                        }
-                    }
-                    break;
-                case 6:
-                    if (osc && code !== 0x18 && code !== 0x1a) {
-                        var idx = osc.indexOf(';');
-                        if (idx === -1) {
-                            this._oscHandlerFb(-1, osc);
-                        }
-                        else {
-                            var identifier = parseInt(osc.substring(0, idx));
-                            var content = osc.substring(idx + 1);
-                            var handlers_1 = this._oscHandlers[identifier];
-                            var j_2 = handlers_1 ? handlers_1.length - 1 : -1;
-                            for (; j_2 >= 0; j_2--) {
-                                if (handlers_1[j_2](content) !== false) {
-                                    break;
-                                }
-                            }
-                            if (j_2 < 0) {
-                                this._oscHandlerFb(identifier, content);
-                            }
-                        }
-                    }
-                    if (code === 0x1b)
-                        transition |= 1;
-                    osc = '';
-                    params = [0];
-                    collect = '';
-                    dcs = -1;
-                    break;
-            }
-            currentState = transition & 15;
-        }
-        if (currentState === 0 && ~print) {
-            this._printHandler(data, print, length);
-        }
-        else if (currentState === 13 && ~dcs && dcsHandler) {
-            dcsHandler.put(data, dcs, length);
-        }
-        this._osc = osc;
-        this._collect = collect;
-        this._params = params;
-        this._activeDcsHandler = dcsHandler;
-        this.currentState = currentState;
-    };
-    return EscapeSequenceParser;
-}(Lifecycle_1.Disposable));
-exports.EscapeSequenceParser = EscapeSequenceParser;
-
-},{"./common/Lifecycle":26,"./core/input/TextDecoder":32}],11:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var EscapeSequences_1 = require("./common/data/EscapeSequences");
-var Charsets_1 = require("./core/data/Charsets");
-var Buffer_1 = require("./Buffer");
-var CharWidth_1 = require("./CharWidth");
-var EscapeSequenceParser_1 = require("./EscapeSequenceParser");
-var Lifecycle_1 = require("./common/Lifecycle");
-var TypedArrayUtils_1 = require("./common/TypedArrayUtils");
-var TextDecoder_1 = require("./core/input/TextDecoder");
-var BufferLine_1 = require("./BufferLine");
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var GLEVEL = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };
-var DECRQSS = (function () {
-    function DECRQSS(_terminal) {
-        this._terminal = _terminal;
-        this._data = new Uint32Array(0);
-    }
-    DECRQSS.prototype.hook = function (collect, params, flag) {
-        this._data = new Uint32Array(0);
-    };
-    DECRQSS.prototype.put = function (data, start, end) {
-        this._data = TypedArrayUtils_1.concat(this._data, data.subarray(start, end));
-    };
-    DECRQSS.prototype.unhook = function () {
-        var data = TextDecoder_1.utf32ToString(this._data);
-        this._data = new Uint32Array(0);
-        switch (data) {
-            case '"q':
-                return this._terminal.handler(EscapeSequences_1.C0.ESC + "P1$r0\"q" + EscapeSequences_1.C0.ESC + "\\");
-            case '"p':
-                return this._terminal.handler(EscapeSequences_1.C0.ESC + "P1$r61\"p" + EscapeSequences_1.C0.ESC + "\\");
-            case 'r':
-                var pt = '' + (this._terminal.buffer.scrollTop + 1) +
-                    ';' + (this._terminal.buffer.scrollBottom + 1) + 'r';
-                return this._terminal.handler(EscapeSequences_1.C0.ESC + "P1$r" + pt + EscapeSequences_1.C0.ESC + "\\");
-            case 'm':
-                return this._terminal.handler(EscapeSequences_1.C0.ESC + "P1$r0m" + EscapeSequences_1.C0.ESC + "\\");
-            case ' q':
-                var STYLES = { 'block': 2, 'underline': 4, 'bar': 6 };
-                var style = STYLES[this._terminal.getOption('cursorStyle')];
-                style -= this._terminal.getOption('cursorBlink');
-                return this._terminal.handler(EscapeSequences_1.C0.ESC + "P1$r" + style + " q" + EscapeSequences_1.C0.ESC + "\\");
-            default:
-                this._terminal.error('Unknown DCS $q %s', data);
-                this._terminal.handler(EscapeSequences_1.C0.ESC + "P0$r" + EscapeSequences_1.C0.ESC + "\\");
-        }
-    };
-    return DECRQSS;
-}());
-var InputHandler = (function (_super) {
-    __extends(InputHandler, _super);
-    function InputHandler(_terminal, _parser) {
-        if (_parser === void 0) { _parser = new EscapeSequenceParser_1.EscapeSequenceParser(); }
-        var _this = _super.call(this) || this;
-        _this._terminal = _terminal;
-        _this._parser = _parser;
-        _this._parseBuffer = new Uint32Array(4096);
-        _this._stringDecoder = new TextDecoder_1.StringToUtf32();
-        _this._workCell = new BufferLine_1.CellData();
-        _this._onCursorMove = new EventEmitter2_1.EventEmitter2();
-        _this._onData = new EventEmitter2_1.EventEmitter2();
-        _this._onLineFeed = new EventEmitter2_1.EventEmitter2();
-        _this._onScroll = new EventEmitter2_1.EventEmitter2();
-        _this.register(_this._parser);
-        _this._parser.setCsiHandlerFallback(function (collect, params, flag) {
-            _this._terminal.error('Unknown CSI code: ', { collect: collect, params: params, flag: String.fromCharCode(flag) });
-        });
-        _this._parser.setEscHandlerFallback(function (collect, flag) {
-            _this._terminal.error('Unknown ESC code: ', { collect: collect, flag: String.fromCharCode(flag) });
-        });
-        _this._parser.setExecuteHandlerFallback(function (code) {
-            _this._terminal.error('Unknown EXECUTE code: ', { code: code });
-        });
-        _this._parser.setOscHandlerFallback(function (identifier, data) {
-            _this._terminal.error('Unknown OSC code: ', { identifier: identifier, data: data });
-        });
-        _this._parser.setPrintHandler(function (data, start, end) { return _this.print(data, start, end); });
-        _this._parser.setCsiHandler('@', function (params, collect) { return _this.insertChars(params); });
-        _this._parser.setCsiHandler('A', function (params, collect) { return _this.cursorUp(params); });
-        _this._parser.setCsiHandler('B', function (params, collect) { return _this.cursorDown(params); });
-        _this._parser.setCsiHandler('C', function (params, collect) { return _this.cursorForward(params); });
-        _this._parser.setCsiHandler('D', function (params, collect) { return _this.cursorBackward(params); });
-        _this._parser.setCsiHandler('E', function (params, collect) { return _this.cursorNextLine(params); });
-        _this._parser.setCsiHandler('F', function (params, collect) { return _this.cursorPrecedingLine(params); });
-        _this._parser.setCsiHandler('G', function (params, collect) { return _this.cursorCharAbsolute(params); });
-        _this._parser.setCsiHandler('H', function (params, collect) { return _this.cursorPosition(params); });
-        _this._parser.setCsiHandler('I', function (params, collect) { return _this.cursorForwardTab(params); });
-        _this._parser.setCsiHandler('J', function (params, collect) { return _this.eraseInDisplay(params); });
-        _this._parser.setCsiHandler('K', function (params, collect) { return _this.eraseInLine(params); });
-        _this._parser.setCsiHandler('L', function (params, collect) { return _this.insertLines(params); });
-        _this._parser.setCsiHandler('M', function (params, collect) { return _this.deleteLines(params); });
-        _this._parser.setCsiHandler('P', function (params, collect) { return _this.deleteChars(params); });
-        _this._parser.setCsiHandler('S', function (params, collect) { return _this.scrollUp(params); });
-        _this._parser.setCsiHandler('T', function (params, collect) { return _this.scrollDown(params, collect); });
-        _this._parser.setCsiHandler('X', function (params, collect) { return _this.eraseChars(params); });
-        _this._parser.setCsiHandler('Z', function (params, collect) { return _this.cursorBackwardTab(params); });
-        _this._parser.setCsiHandler('`', function (params, collect) { return _this.charPosAbsolute(params); });
-        _this._parser.setCsiHandler('a', function (params, collect) { return _this.hPositionRelative(params); });
-        _this._parser.setCsiHandler('b', function (params, collect) { return _this.repeatPrecedingCharacter(params); });
-        _this._parser.setCsiHandler('c', function (params, collect) { return _this.sendDeviceAttributes(params, collect); });
-        _this._parser.setCsiHandler('d', function (params, collect) { return _this.linePosAbsolute(params); });
-        _this._parser.setCsiHandler('e', function (params, collect) { return _this.vPositionRelative(params); });
-        _this._parser.setCsiHandler('f', function (params, collect) { return _this.hVPosition(params); });
-        _this._parser.setCsiHandler('g', function (params, collect) { return _this.tabClear(params); });
-        _this._parser.setCsiHandler('h', function (params, collect) { return _this.setMode(params, collect); });
-        _this._parser.setCsiHandler('l', function (params, collect) { return _this.resetMode(params, collect); });
-        _this._parser.setCsiHandler('m', function (params, collect) { return _this.charAttributes(params); });
-        _this._parser.setCsiHandler('n', function (params, collect) { return _this.deviceStatus(params, collect); });
-        _this._parser.setCsiHandler('p', function (params, collect) { return _this.softReset(params, collect); });
-        _this._parser.setCsiHandler('q', function (params, collect) { return _this.setCursorStyle(params, collect); });
-        _this._parser.setCsiHandler('r', function (params, collect) { return _this.setScrollRegion(params, collect); });
-        _this._parser.setCsiHandler('s', function (params, collect) { return _this.saveCursor(params); });
-        _this._parser.setCsiHandler('u', function (params, collect) { return _this.restoreCursor(params); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.BEL, function () { return _this.bell(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.LF, function () { return _this.lineFeed(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.VT, function () { return _this.lineFeed(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.FF, function () { return _this.lineFeed(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.CR, function () { return _this.carriageReturn(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.BS, function () { return _this.backspace(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.HT, function () { return _this.tab(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.SO, function () { return _this.shiftOut(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C0.SI, function () { return _this.shiftIn(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C1.IND, function () { return _this.index(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C1.NEL, function () { return _this.nextLine(); });
-        _this._parser.setExecuteHandler(EscapeSequences_1.C1.HTS, function () { return _this.tabSet(); });
-        _this._parser.setOscHandler(0, function (data) { return _this.setTitle(data); });
-        _this._parser.setOscHandler(2, function (data) { return _this.setTitle(data); });
-        _this._parser.setEscHandler('7', function () { return _this.saveCursor([]); });
-        _this._parser.setEscHandler('8', function () { return _this.restoreCursor([]); });
-        _this._parser.setEscHandler('D', function () { return _this.index(); });
-        _this._parser.setEscHandler('E', function () { return _this.nextLine(); });
-        _this._parser.setEscHandler('H', function () { return _this.tabSet(); });
-        _this._parser.setEscHandler('M', function () { return _this.reverseIndex(); });
-        _this._parser.setEscHandler('=', function () { return _this.keypadApplicationMode(); });
-        _this._parser.setEscHandler('>', function () { return _this.keypadNumericMode(); });
-        _this._parser.setEscHandler('c', function () { return _this.reset(); });
-        _this._parser.setEscHandler('n', function () { return _this.setgLevel(2); });
-        _this._parser.setEscHandler('o', function () { return _this.setgLevel(3); });
-        _this._parser.setEscHandler('|', function () { return _this.setgLevel(3); });
-        _this._parser.setEscHandler('}', function () { return _this.setgLevel(2); });
-        _this._parser.setEscHandler('~', function () { return _this.setgLevel(1); });
-        _this._parser.setEscHandler('%@', function () { return _this.selectDefaultCharset(); });
-        _this._parser.setEscHandler('%G', function () { return _this.selectDefaultCharset(); });
-        var _loop_1 = function (flag) {
-            this_1._parser.setEscHandler('(' + flag, function () { return _this.selectCharset('(' + flag); });
-            this_1._parser.setEscHandler(')' + flag, function () { return _this.selectCharset(')' + flag); });
-            this_1._parser.setEscHandler('*' + flag, function () { return _this.selectCharset('*' + flag); });
-            this_1._parser.setEscHandler('+' + flag, function () { return _this.selectCharset('+' + flag); });
-            this_1._parser.setEscHandler('-' + flag, function () { return _this.selectCharset('-' + flag); });
-            this_1._parser.setEscHandler('.' + flag, function () { return _this.selectCharset('.' + flag); });
-            this_1._parser.setEscHandler('/' + flag, function () { return _this.selectCharset('/' + flag); });
-        };
-        var this_1 = this;
-        for (var flag in Charsets_1.CHARSETS) {
-            _loop_1(flag);
-        }
-        _this._parser.setErrorHandler(function (state) {
-            _this._terminal.error('Parsing error: ', state);
-            return state;
-        });
-        _this._parser.setDcsHandler('$q', new DECRQSS(_this._terminal));
-        return _this;
-    }
-    Object.defineProperty(InputHandler.prototype, "onCursorMove", {
-        get: function () { return this._onCursorMove.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(InputHandler.prototype, "onData", {
-        get: function () { return this._onData.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(InputHandler.prototype, "onLineFeed", {
-        get: function () { return this._onLineFeed.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(InputHandler.prototype, "onScroll", {
-        get: function () { return this._onScroll.event; },
-        enumerable: true,
-        configurable: true
-    });
-    InputHandler.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        this._terminal = null;
-    };
-    InputHandler.prototype.parse = function (data) {
-        if (!this._terminal) {
-            return;
-        }
-        var buffer = this._terminal.buffer;
-        var cursorStartX = buffer.x;
-        var cursorStartY = buffer.y;
-        if (this._terminal.debug) {
-            this._terminal.log('data: ' + data);
-        }
-        if (this._parseBuffer.length < data.length) {
-            this._parseBuffer = new Uint32Array(data.length);
-        }
-        this._parser.parse(this._parseBuffer, this._stringDecoder.decode(data, this._parseBuffer));
-        buffer = this._terminal.buffer;
-        if (buffer.x !== cursorStartX || buffer.y !== cursorStartY) {
-            this._onCursorMove.fire();
-        }
-    };
-    InputHandler.prototype.print = function (data, start, end) {
-        var code;
-        var chWidth;
-        var buffer = this._terminal.buffer;
-        var charset = this._terminal.charset;
-        var screenReaderMode = this._terminal.options.screenReaderMode;
-        var cols = this._terminal.cols;
-        var wraparoundMode = this._terminal.wraparoundMode;
-        var insertMode = this._terminal.insertMode;
-        var curAttr = this._terminal.curAttrData;
-        var bufferRow = buffer.lines.get(buffer.y + buffer.ybase);
-        this._terminal.updateRange(buffer.y);
-        for (var pos = start; pos < end; ++pos) {
-            code = data[pos];
-            chWidth = CharWidth_1.wcwidth(code);
-            if (code < 127 && charset) {
-                var ch = charset[String.fromCharCode(code)];
-                if (ch) {
-                    code = ch.charCodeAt(0);
-                }
-            }
-            if (screenReaderMode) {
-                this._terminal.emit('a11y.char', TextDecoder_1.stringFromCodePoint(code));
-            }
-            if (!chWidth && buffer.x) {
-                if (!bufferRow.getWidth(buffer.x - 1)) {
-                    bufferRow.addCodepointToCell(buffer.x - 2, code);
-                }
-                else {
-                    bufferRow.addCodepointToCell(buffer.x - 1, code);
-                }
-                continue;
-            }
-            if (buffer.x + chWidth - 1 >= cols) {
-                if (wraparoundMode) {
-                    buffer.x = 0;
-                    buffer.y++;
-                    if (buffer.y > buffer.scrollBottom) {
-                        buffer.y--;
-                        this._terminal.scroll(true);
-                    }
-                    else {
-                        buffer.lines.get(buffer.y).isWrapped = true;
-                    }
-                    bufferRow = buffer.lines.get(buffer.y + buffer.ybase);
-                }
-                else {
-                    if (chWidth === 2) {
-                        continue;
-                    }
-                }
-            }
-            if (insertMode) {
-                bufferRow.insertCells(buffer.x, chWidth, buffer.getNullCell(curAttr));
-                if (bufferRow.getWidth(cols - 1) === 2) {
-                    bufferRow.setCellFromCodePoint(cols - 1, Buffer_1.NULL_CELL_CODE, Buffer_1.NULL_CELL_WIDTH, curAttr.fg, curAttr.bg);
-                }
-            }
-            bufferRow.setCellFromCodePoint(buffer.x++, code, chWidth, curAttr.fg, curAttr.bg);
-            if (chWidth > 0) {
-                while (--chWidth) {
-                    bufferRow.setCellFromCodePoint(buffer.x++, 0, 0, curAttr.fg, curAttr.bg);
-                }
-            }
-        }
-        this._terminal.updateRange(buffer.y);
-    };
-    InputHandler.prototype.addCsiHandler = function (flag, callback) {
-        return this._parser.addCsiHandler(flag, callback);
-    };
-    InputHandler.prototype.addOscHandler = function (ident, callback) {
-        return this._parser.addOscHandler(ident, callback);
-    };
-    InputHandler.prototype.bell = function () {
-        this._terminal.bell();
-    };
-    InputHandler.prototype.lineFeed = function () {
-        var buffer = this._terminal.buffer;
-        if (this._terminal.options.convertEol) {
-            buffer.x = 0;
-        }
-        buffer.y++;
-        if (buffer.y > buffer.scrollBottom) {
-            buffer.y--;
-            this._terminal.scroll();
-        }
-        if (buffer.x >= this._terminal.cols) {
-            buffer.x--;
-        }
-        this._onLineFeed.fire();
-    };
-    InputHandler.prototype.carriageReturn = function () {
-        this._terminal.buffer.x = 0;
-    };
-    InputHandler.prototype.backspace = function () {
-        if (this._terminal.buffer.x > 0) {
-            this._terminal.buffer.x--;
-        }
-    };
-    InputHandler.prototype.tab = function () {
-        var originalX = this._terminal.buffer.x;
-        this._terminal.buffer.x = this._terminal.buffer.nextStop();
-        if (this._terminal.options.screenReaderMode) {
-            this._terminal.emit('a11y.tab', this._terminal.buffer.x - originalX);
-        }
-    };
-    InputHandler.prototype.shiftOut = function () {
-        this._terminal.setgLevel(1);
-    };
-    InputHandler.prototype.shiftIn = function () {
-        this._terminal.setgLevel(0);
-    };
-    InputHandler.prototype.insertChars = function (params) {
-        this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).insertCells(this._terminal.buffer.x, params[0] || 1, this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));
-        this._terminal.updateRange(this._terminal.buffer.y);
-    };
-    InputHandler.prototype.cursorUp = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.y -= param;
-        if (this._terminal.buffer.y < 0) {
-            this._terminal.buffer.y = 0;
-        }
-    };
-    InputHandler.prototype.cursorDown = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.y += param;
-        if (this._terminal.buffer.y >= this._terminal.rows) {
-            this._terminal.buffer.y = this._terminal.rows - 1;
-        }
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x--;
-        }
-    };
-    InputHandler.prototype.cursorForward = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.x += param;
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x = this._terminal.cols - 1;
-        }
-    };
-    InputHandler.prototype.cursorBackward = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x--;
-        }
-        this._terminal.buffer.x -= param;
-        if (this._terminal.buffer.x < 0) {
-            this._terminal.buffer.x = 0;
-        }
-    };
-    InputHandler.prototype.cursorNextLine = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.y += param;
-        if (this._terminal.buffer.y >= this._terminal.rows) {
-            this._terminal.buffer.y = this._terminal.rows - 1;
-        }
-        this._terminal.buffer.x = 0;
-    };
-    InputHandler.prototype.cursorPrecedingLine = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.y -= param;
-        if (this._terminal.buffer.y < 0) {
-            this._terminal.buffer.y = 0;
-        }
-        this._terminal.buffer.x = 0;
-    };
-    InputHandler.prototype.cursorCharAbsolute = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.x = param - 1;
-    };
-    InputHandler.prototype.cursorPosition = function (params) {
-        var col;
-        var row = params[0] - 1;
-        if (params.length >= 2) {
-            col = params[1] - 1;
-        }
-        else {
-            col = 0;
-        }
-        if (row < 0) {
-            row = 0;
-        }
-        else if (row >= this._terminal.rows) {
-            row = this._terminal.rows - 1;
-        }
-        if (col < 0) {
-            col = 0;
-        }
-        else if (col >= this._terminal.cols) {
-            col = this._terminal.cols - 1;
-        }
-        this._terminal.buffer.x = col;
-        this._terminal.buffer.y = row;
-    };
-    InputHandler.prototype.cursorForwardTab = function (params) {
-        var param = params[0] || 1;
-        while (param--) {
-            this._terminal.buffer.x = this._terminal.buffer.nextStop();
-        }
-    };
-    InputHandler.prototype._eraseInBufferLine = function (y, start, end, clearWrap) {
-        if (clearWrap === void 0) { clearWrap = false; }
-        var line = this._terminal.buffer.lines.get(this._terminal.buffer.ybase + y);
-        line.replaceCells(start, end, this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));
-        if (clearWrap) {
-            line.isWrapped = false;
-        }
-    };
-    InputHandler.prototype._resetBufferLine = function (y) {
-        this._eraseInBufferLine(y, 0, this._terminal.cols, true);
-    };
-    InputHandler.prototype.eraseInDisplay = function (params) {
-        var j;
-        switch (params[0]) {
-            case 0:
-                j = this._terminal.buffer.y;
-                this._terminal.updateRange(j);
-                this._eraseInBufferLine(j++, this._terminal.buffer.x, this._terminal.cols, this._terminal.buffer.x === 0);
-                for (; j < this._terminal.rows; j++) {
-                    this._resetBufferLine(j);
-                }
-                this._terminal.updateRange(j);
-                break;
-            case 1:
-                j = this._terminal.buffer.y;
-                this._terminal.updateRange(j);
-                this._eraseInBufferLine(j, 0, this._terminal.buffer.x + 1, true);
-                if (this._terminal.buffer.x + 1 >= this._terminal.cols) {
-                    this._terminal.buffer.lines.get(j + 1).isWrapped = false;
-                }
-                while (j--) {
-                    this._resetBufferLine(j);
-                }
-                this._terminal.updateRange(0);
-                break;
-            case 2:
-                j = this._terminal.rows;
-                this._terminal.updateRange(j - 1);
-                while (j--) {
-                    this._resetBufferLine(j);
-                }
-                this._terminal.updateRange(0);
-                break;
-            case 3:
-                var scrollBackSize = this._terminal.buffer.lines.length - this._terminal.rows;
-                if (scrollBackSize > 0) {
-                    this._terminal.buffer.lines.trimStart(scrollBackSize);
-                    this._terminal.buffer.ybase = Math.max(this._terminal.buffer.ybase - scrollBackSize, 0);
-                    this._terminal.buffer.ydisp = Math.max(this._terminal.buffer.ydisp - scrollBackSize, 0);
-                    this._onScroll.fire(0);
-                }
-                break;
-        }
-    };
-    InputHandler.prototype.eraseInLine = function (params) {
-        switch (params[0]) {
-            case 0:
-                this._eraseInBufferLine(this._terminal.buffer.y, this._terminal.buffer.x, this._terminal.cols);
-                break;
-            case 1:
-                this._eraseInBufferLine(this._terminal.buffer.y, 0, this._terminal.buffer.x + 1);
-                break;
-            case 2:
-                this._eraseInBufferLine(this._terminal.buffer.y, 0, this._terminal.cols);
-                break;
-        }
-        this._terminal.updateRange(this._terminal.buffer.y);
-    };
-    InputHandler.prototype.insertLines = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        var buffer = this._terminal.buffer;
-        var row = buffer.y + buffer.ybase;
-        var scrollBottomRowsOffset = this._terminal.rows - 1 - buffer.scrollBottom;
-        var scrollBottomAbsolute = this._terminal.rows - 1 + buffer.ybase - scrollBottomRowsOffset + 1;
-        while (param--) {
-            buffer.lines.splice(scrollBottomAbsolute - 1, 1);
-            buffer.lines.splice(row, 0, buffer.getBlankLine(this._terminal.eraseAttrData()));
-        }
-        this._terminal.updateRange(buffer.y);
-        this._terminal.updateRange(buffer.scrollBottom);
-    };
-    InputHandler.prototype.deleteLines = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        var buffer = this._terminal.buffer;
-        var row = buffer.y + buffer.ybase;
-        var j;
-        j = this._terminal.rows - 1 - buffer.scrollBottom;
-        j = this._terminal.rows - 1 + buffer.ybase - j;
-        while (param--) {
-            buffer.lines.splice(row, 1);
-            buffer.lines.splice(j, 0, buffer.getBlankLine(this._terminal.eraseAttrData()));
-        }
-        this._terminal.updateRange(buffer.y);
-        this._terminal.updateRange(buffer.scrollBottom);
-    };
-    InputHandler.prototype.deleteChars = function (params) {
-        this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).deleteCells(this._terminal.buffer.x, params[0] || 1, this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));
-        this._terminal.updateRange(this._terminal.buffer.y);
-    };
-    InputHandler.prototype.scrollUp = function (params) {
-        var param = params[0] || 1;
-        var buffer = this._terminal.buffer;
-        while (param--) {
-            buffer.lines.splice(buffer.ybase + buffer.scrollTop, 1);
-            buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 0, buffer.getBlankLine(Buffer_1.DEFAULT_ATTR_DATA));
-        }
-        this._terminal.updateRange(buffer.scrollTop);
-        this._terminal.updateRange(buffer.scrollBottom);
-    };
-    InputHandler.prototype.scrollDown = function (params, collect) {
-        if (params.length < 2 && !collect) {
-            var param = params[0] || 1;
-            var buffer = this._terminal.buffer;
-            while (param--) {
-                buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 1);
-                buffer.lines.splice(buffer.ybase + buffer.scrollTop, 0, buffer.getBlankLine(Buffer_1.DEFAULT_ATTR_DATA));
-            }
-            this._terminal.updateRange(buffer.scrollTop);
-            this._terminal.updateRange(buffer.scrollBottom);
-        }
-    };
-    InputHandler.prototype.eraseChars = function (params) {
-        this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).replaceCells(this._terminal.buffer.x, this._terminal.buffer.x + (params[0] || 1), this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));
-    };
-    InputHandler.prototype.cursorBackwardTab = function (params) {
-        var param = params[0] || 1;
-        var buffer = this._terminal.buffer;
-        while (param--) {
-            buffer.x = buffer.prevStop();
-        }
-    };
-    InputHandler.prototype.charPosAbsolute = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.x = param - 1;
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x = this._terminal.cols - 1;
-        }
-    };
-    InputHandler.prototype.hPositionRelative = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.x += param;
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x = this._terminal.cols - 1;
-        }
-    };
-    InputHandler.prototype.repeatPrecedingCharacter = function (params) {
-        var buffer = this._terminal.buffer;
-        var line = buffer.lines.get(buffer.ybase + buffer.y);
-        line.loadCell(buffer.x - 1, this._workCell);
-        line.replaceCells(buffer.x, buffer.x + (params[0] || 1), (this._workCell.content !== undefined) ? this._workCell : buffer.getNullCell(Buffer_1.DEFAULT_ATTR_DATA));
-    };
-    InputHandler.prototype.sendDeviceAttributes = function (params, collect) {
-        if (params[0] > 0) {
-            return;
-        }
-        if (!collect) {
-            if (this._terminal.is('xterm') || this._terminal.is('rxvt-unicode') || this._terminal.is('screen')) {
-                this._terminal.handler(EscapeSequences_1.C0.ESC + '[?1;2c');
-            }
-            else if (this._terminal.is('linux')) {
-                this._terminal.handler(EscapeSequences_1.C0.ESC + '[?6c');
-            }
-        }
-        else if (collect === '>') {
-            if (this._terminal.is('xterm')) {
-                this._terminal.handler(EscapeSequences_1.C0.ESC + '[>0;276;0c');
-            }
-            else if (this._terminal.is('rxvt-unicode')) {
-                this._terminal.handler(EscapeSequences_1.C0.ESC + '[>85;95;0c');
-            }
-            else if (this._terminal.is('linux')) {
-                this._terminal.handler(params[0] + 'c');
-            }
-            else if (this._terminal.is('screen')) {
-                this._terminal.handler(EscapeSequences_1.C0.ESC + '[>83;40003;0c');
-            }
-        }
-    };
-    InputHandler.prototype.linePosAbsolute = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.y = param - 1;
-        if (this._terminal.buffer.y >= this._terminal.rows) {
-            this._terminal.buffer.y = this._terminal.rows - 1;
-        }
-    };
-    InputHandler.prototype.vPositionRelative = function (params) {
-        var param = params[0];
-        if (param < 1) {
-            param = 1;
-        }
-        this._terminal.buffer.y += param;
-        if (this._terminal.buffer.y >= this._terminal.rows) {
-            this._terminal.buffer.y = this._terminal.rows - 1;
-        }
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x--;
-        }
-    };
-    InputHandler.prototype.hVPosition = function (params) {
-        if (params[0] < 1)
-            params[0] = 1;
-        if (params[1] < 1)
-            params[1] = 1;
-        this._terminal.buffer.y = params[0] - 1;
-        if (this._terminal.buffer.y >= this._terminal.rows) {
-            this._terminal.buffer.y = this._terminal.rows - 1;
-        }
-        this._terminal.buffer.x = params[1] - 1;
-        if (this._terminal.buffer.x >= this._terminal.cols) {
-            this._terminal.buffer.x = this._terminal.cols - 1;
-        }
-    };
-    InputHandler.prototype.tabClear = function (params) {
-        var param = params[0];
-        if (param <= 0) {
-            delete this._terminal.buffer.tabs[this._terminal.buffer.x];
-        }
-        else if (param === 3) {
-            this._terminal.buffer.tabs = {};
-        }
-    };
-    InputHandler.prototype.setMode = function (params, collect) {
-        if (params.length > 1) {
-            for (var i = 0; i < params.length; i++) {
-                this.setMode([params[i]]);
-            }
-            return;
-        }
-        if (!collect) {
-            switch (params[0]) {
-                case 4:
-                    this._terminal.insertMode = true;
-                    break;
-                case 20:
-                    break;
-            }
-        }
-        else if (collect === '?') {
-            switch (params[0]) {
-                case 1:
-                    this._terminal.applicationCursor = true;
-                    break;
-                case 2:
-                    this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);
-                    this._terminal.setgCharset(1, Charsets_1.DEFAULT_CHARSET);
-                    this._terminal.setgCharset(2, Charsets_1.DEFAULT_CHARSET);
-                    this._terminal.setgCharset(3, Charsets_1.DEFAULT_CHARSET);
-                    break;
-                case 3:
-                    this._terminal.savedCols = this._terminal.cols;
-                    this._terminal.resize(132, this._terminal.rows);
-                    break;
-                case 6:
-                    this._terminal.originMode = true;
-                    break;
-                case 7:
-                    this._terminal.wraparoundMode = true;
-                    break;
-                case 12:
-                    break;
-                case 66:
-                    this._terminal.log('Serial port requested application keypad.');
-                    this._terminal.applicationKeypad = true;
-                    if (this._terminal.viewport) {
-                        this._terminal.viewport.syncScrollArea();
-                    }
-                    break;
-                case 9:
-                case 1000:
-                case 1002:
-                case 1003:
-                    this._terminal.x10Mouse = params[0] === 9;
-                    this._terminal.vt200Mouse = params[0] === 1000;
-                    this._terminal.normalMouse = params[0] > 1000;
-                    this._terminal.mouseEvents = true;
-                    if (this._terminal.element) {
-                        this._terminal.element.classList.add('enable-mouse-events');
-                    }
-                    if (this._terminal.selectionManager) {
-                        this._terminal.selectionManager.disable();
-                    }
-                    this._terminal.log('Binding to mouse events.');
-                    break;
-                case 1004:
-                    this._terminal.sendFocus = true;
-                    break;
-                case 1005:
-                    this._terminal.utfMouse = true;
-                    break;
-                case 1006:
-                    this._terminal.sgrMouse = true;
-                    break;
-                case 1015:
-                    this._terminal.urxvtMouse = true;
-                    break;
-                case 25:
-                    this._terminal.cursorHidden = false;
-                    break;
-                case 1048:
-                    this.saveCursor(params);
-                    break;
-                case 1049:
-                    this.saveCursor(params);
-                case 47:
-                case 1047:
-                    this._terminal.buffers.activateAltBuffer(this._terminal.eraseAttrData());
-                    this._terminal.refresh(0, this._terminal.rows - 1);
-                    if (this._terminal.viewport) {
-                        this._terminal.viewport.syncScrollArea();
-                    }
-                    this._terminal.showCursor();
-                    break;
-                case 2004:
-                    this._terminal.bracketedPasteMode = true;
-                    break;
-            }
-        }
-    };
-    InputHandler.prototype.resetMode = function (params, collect) {
-        if (params.length > 1) {
-            for (var i = 0; i < params.length; i++) {
-                this.resetMode([params[i]]);
-            }
-            return;
-        }
-        if (!collect) {
-            switch (params[0]) {
-                case 4:
-                    this._terminal.insertMode = false;
-                    break;
-                case 20:
-                    break;
-            }
-        }
-        else if (collect === '?') {
-            switch (params[0]) {
-                case 1:
-                    this._terminal.applicationCursor = false;
-                    break;
-                case 3:
-                    if (this._terminal.cols === 132 && this._terminal.savedCols) {
-                        this._terminal.resize(this._terminal.savedCols, this._terminal.rows);
-                    }
-                    delete this._terminal.savedCols;
-                    break;
-                case 6:
-                    this._terminal.originMode = false;
-                    break;
-                case 7:
-                    this._terminal.wraparoundMode = false;
-                    break;
-                case 12:
-                    break;
-                case 66:
-                    this._terminal.log('Switching back to normal keypad.');
-                    this._terminal.applicationKeypad = false;
-                    if (this._terminal.viewport) {
-                        this._terminal.viewport.syncScrollArea();
-                    }
-                    break;
-                case 9:
-                case 1000:
-                case 1002:
-                case 1003:
-                    this._terminal.x10Mouse = false;
-                    this._terminal.vt200Mouse = false;
-                    this._terminal.normalMouse = false;
-                    this._terminal.mouseEvents = false;
-                    if (this._terminal.element) {
-                        this._terminal.element.classList.remove('enable-mouse-events');
-                    }
-                    if (this._terminal.selectionManager) {
-                        this._terminal.selectionManager.enable();
-                    }
-                    break;
-                case 1004:
-                    this._terminal.sendFocus = false;
-                    break;
-                case 1005:
-                    this._terminal.utfMouse = false;
-                    break;
-                case 1006:
-                    this._terminal.sgrMouse = false;
-                    break;
-                case 1015:
-                    this._terminal.urxvtMouse = false;
-                    break;
-                case 25:
-                    this._terminal.cursorHidden = true;
-                    break;
-                case 1048:
-                    this.restoreCursor(params);
-                    break;
-                case 1049:
-                case 47:
-                case 1047:
-                    this._terminal.buffers.activateNormalBuffer();
-                    if (params[0] === 1049) {
-                        this.restoreCursor(params);
-                    }
-                    this._terminal.refresh(0, this._terminal.rows - 1);
-                    if (this._terminal.viewport) {
-                        this._terminal.viewport.syncScrollArea();
-                    }
-                    this._terminal.showCursor();
-                    break;
-                case 2004:
-                    this._terminal.bracketedPasteMode = false;
-                    break;
-            }
-        }
-    };
-    InputHandler.prototype.charAttributes = function (params) {
-        if (params.length === 1 && params[0] === 0) {
-            this._terminal.curAttrData.fg = Buffer_1.DEFAULT_ATTR_DATA.fg;
-            this._terminal.curAttrData.bg = Buffer_1.DEFAULT_ATTR_DATA.bg;
-            return;
-        }
-        var l = params.length;
-        var p;
-        var attr = this._terminal.curAttrData;
-        for (var i = 0; i < l; i++) {
-            p = params[i];
-            if (p >= 30 && p <= 37) {
-                attr.fg &= ~(50331648 | 255);
-                attr.fg |= 16777216 | (p - 30);
-            }
-            else if (p >= 40 && p <= 47) {
-                attr.bg &= ~(50331648 | 255);
-                attr.bg |= 16777216 | (p - 40);
-            }
-            else if (p >= 90 && p <= 97) {
-                attr.fg &= ~(50331648 | 255);
-                attr.fg |= 16777216 | (p - 90) | 8;
-            }
-            else if (p >= 100 && p <= 107) {
-                attr.bg &= ~(50331648 | 255);
-                attr.bg |= 16777216 | (p - 100) | 8;
-            }
-            else if (p === 0) {
-                attr.fg = Buffer_1.DEFAULT_ATTR_DATA.fg;
-                attr.bg = Buffer_1.DEFAULT_ATTR_DATA.bg;
-            }
-            else if (p === 1) {
-                attr.fg |= 134217728;
-            }
-            else if (p === 3) {
-                attr.bg |= 67108864;
-            }
-            else if (p === 4) {
-                attr.fg |= 268435456;
-            }
-            else if (p === 5) {
-                attr.fg |= 536870912;
-            }
-            else if (p === 7) {
-                attr.fg |= 67108864;
-            }
-            else if (p === 8) {
-                attr.fg |= 1073741824;
-            }
-            else if (p === 2) {
-                attr.bg |= 134217728;
-            }
-            else if (p === 22) {
-                attr.fg &= ~134217728;
-                attr.bg &= ~134217728;
-            }
-            else if (p === 23) {
-                attr.bg &= ~67108864;
-            }
-            else if (p === 24) {
-                attr.fg &= ~268435456;
-            }
-            else if (p === 25) {
-                attr.fg &= ~536870912;
-            }
-            else if (p === 27) {
-                attr.fg &= ~67108864;
-            }
-            else if (p === 28) {
-                attr.fg &= ~1073741824;
-            }
-            else if (p === 39) {
-                attr.fg &= ~(50331648 | 16777215);
-                attr.fg |= Buffer_1.DEFAULT_ATTR_DATA.fg & (255 | 16777215);
-            }
-            else if (p === 49) {
-                attr.bg &= ~(50331648 | 16777215);
-                attr.bg |= Buffer_1.DEFAULT_ATTR_DATA.bg & (255 | 16777215);
-            }
-            else if (p === 38) {
-                if (params[i + 1] === 2) {
-                    i += 2;
-                    attr.fg |= 50331648;
-                    attr.fg &= ~16777215;
-                    attr.fg |= BufferLine_1.AttributeData.fromColorRGB([params[i], params[i + 1], params[i + 2]]);
-                    i += 2;
-                }
-                else if (params[i + 1] === 5) {
-                    i += 2;
-                    p = params[i] & 0xff;
-                    attr.fg &= ~255;
-                    attr.fg |= 33554432 | p;
-                }
-            }
-            else if (p === 48) {
-                if (params[i + 1] === 2) {
-                    i += 2;
-                    attr.bg |= 50331648;
-                    attr.bg &= ~16777215;
-                    attr.bg |= BufferLine_1.AttributeData.fromColorRGB([params[i], params[i + 1], params[i + 2]]);
-                    i += 2;
-                }
-                else if (params[i + 1] === 5) {
-                    i += 2;
-                    p = params[i] & 0xff;
-                    attr.bg &= ~255;
-                    attr.bg |= 33554432 | p;
-                }
-            }
-            else if (p === 100) {
-                attr.fg &= ~(50331648 | 16777215);
-                attr.fg |= Buffer_1.DEFAULT_ATTR_DATA.fg & (255 | 16777215);
-                attr.bg &= ~(50331648 | 16777215);
-                attr.bg |= Buffer_1.DEFAULT_ATTR_DATA.bg & (255 | 16777215);
-            }
-            else {
-                this._terminal.error('Unknown SGR attribute: %d.', p);
-            }
-        }
-    };
-    InputHandler.prototype.deviceStatus = function (params, collect) {
-        if (!collect) {
-            switch (params[0]) {
-                case 5:
-                    this._onData.fire(EscapeSequences_1.C0.ESC + "[0n");
-                    break;
-                case 6:
-                    var y = this._terminal.buffer.y + 1;
-                    var x = this._terminal.buffer.x + 1;
-                    this._onData.fire(EscapeSequences_1.C0.ESC + "[" + y + ";" + x + "R");
-                    break;
-            }
-        }
-        else if (collect === '?') {
-            switch (params[0]) {
-                case 6:
-                    var y = this._terminal.buffer.y + 1;
-                    var x = this._terminal.buffer.x + 1;
-                    this._onData.fire(EscapeSequences_1.C0.ESC + "[?" + y + ";" + x + "R");
-                    break;
-                case 15:
-                    break;
-                case 25:
-                    break;
-                case 26:
-                    break;
-                case 53:
-                    break;
-            }
-        }
-    };
-    InputHandler.prototype.softReset = function (params, collect) {
-        if (collect === '!') {
-            this._terminal.cursorHidden = false;
-            this._terminal.insertMode = false;
-            this._terminal.originMode = false;
-            this._terminal.wraparoundMode = true;
-            this._terminal.applicationKeypad = false;
-            if (this._terminal.viewport) {
-                this._terminal.viewport.syncScrollArea();
-            }
-            this._terminal.applicationCursor = false;
-            this._terminal.buffer.scrollTop = 0;
-            this._terminal.buffer.scrollBottom = this._terminal.rows - 1;
-            this._terminal.curAttrData = Buffer_1.DEFAULT_ATTR_DATA;
-            this._terminal.buffer.x = this._terminal.buffer.y = 0;
-            this._terminal.charset = null;
-            this._terminal.glevel = 0;
-            this._terminal.charsets = [null];
-        }
-    };
-    InputHandler.prototype.setCursorStyle = function (params, collect) {
-        if (collect === ' ') {
-            var param = params[0] < 1 ? 1 : params[0];
-            switch (param) {
-                case 1:
-                case 2:
-                    this._terminal.setOption('cursorStyle', 'block');
-                    break;
-                case 3:
-                case 4:
-                    this._terminal.setOption('cursorStyle', 'underline');
-                    break;
-                case 5:
-                case 6:
-                    this._terminal.setOption('cursorStyle', 'bar');
-                    break;
-            }
-            var isBlinking = param % 2 === 1;
-            this._terminal.setOption('cursorBlink', isBlinking);
-        }
-    };
-    InputHandler.prototype.setScrollRegion = function (params, collect) {
-        if (collect) {
-            return;
-        }
-        this._terminal.buffer.scrollTop = (params[0] || 1) - 1;
-        this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;
-        this._terminal.buffer.x = 0;
-        this._terminal.buffer.y = 0;
-    };
-    InputHandler.prototype.saveCursor = function (params) {
-        this._terminal.buffer.savedX = this._terminal.buffer.x;
-        this._terminal.buffer.savedY = this._terminal.buffer.y;
-        this._terminal.buffer.savedCurAttrData.fg = this._terminal.curAttrData.fg;
-        this._terminal.buffer.savedCurAttrData.bg = this._terminal.curAttrData.bg;
-    };
-    InputHandler.prototype.restoreCursor = function (params) {
-        this._terminal.buffer.x = this._terminal.buffer.savedX || 0;
-        this._terminal.buffer.y = this._terminal.buffer.savedY || 0;
-        this._terminal.curAttrData.fg = this._terminal.buffer.savedCurAttrData.fg;
-        this._terminal.curAttrData.bg = this._terminal.buffer.savedCurAttrData.bg;
-    };
-    InputHandler.prototype.setTitle = function (data) {
-        this._terminal.handleTitle(data);
-    };
-    InputHandler.prototype.nextLine = function () {
-        this._terminal.buffer.x = 0;
-        this.index();
-    };
-    InputHandler.prototype.keypadApplicationMode = function () {
-        this._terminal.log('Serial port requested application keypad.');
-        this._terminal.applicationKeypad = true;
-        if (this._terminal.viewport) {
-            this._terminal.viewport.syncScrollArea();
-        }
-    };
-    InputHandler.prototype.keypadNumericMode = function () {
-        this._terminal.log('Switching back to normal keypad.');
-        this._terminal.applicationKeypad = false;
-        if (this._terminal.viewport) {
-            this._terminal.viewport.syncScrollArea();
-        }
-    };
-    InputHandler.prototype.selectDefaultCharset = function () {
-        this._terminal.setgLevel(0);
-        this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);
-    };
-    InputHandler.prototype.selectCharset = function (collectAndFlag) {
-        if (collectAndFlag.length !== 2) {
-            this.selectDefaultCharset();
-            return;
-        }
-        if (collectAndFlag[0] === '/') {
-            return;
-        }
-        this._terminal.setgCharset(GLEVEL[collectAndFlag[0]], Charsets_1.CHARSETS[collectAndFlag[1]] || Charsets_1.DEFAULT_CHARSET);
-        return;
-    };
-    InputHandler.prototype.index = function () {
-        this._terminal.index();
-    };
-    InputHandler.prototype.tabSet = function () {
-        this._terminal.tabSet();
-    };
-    InputHandler.prototype.reverseIndex = function () {
-        this._terminal.reverseIndex();
-    };
-    InputHandler.prototype.reset = function () {
-        this._parser.reset();
-        this._terminal.reset();
-    };
-    InputHandler.prototype.setgLevel = function (level) {
-        this._terminal.setgLevel(level);
-    };
-    return InputHandler;
-}(Lifecycle_1.Disposable));
-exports.InputHandler = InputHandler;
-
-},{"./Buffer":2,"./BufferLine":3,"./CharWidth":7,"./EscapeSequenceParser":10,"./common/EventEmitter2":25,"./common/Lifecycle":26,"./common/TypedArrayUtils":28,"./common/data/EscapeSequences":29,"./core/data/Charsets":30,"./core/input/TextDecoder":32}],12:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var MouseZoneManager_1 = require("./MouseZoneManager");
-var CharWidth_1 = require("./CharWidth");
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var Linkifier = (function () {
-    function Linkifier(_terminal) {
-        this._terminal = _terminal;
-        this._linkMatchers = [];
-        this._nextLinkMatcherId = 0;
-        this._onLinkHover = new EventEmitter2_1.EventEmitter2();
-        this._onLinkLeave = new EventEmitter2_1.EventEmitter2();
-        this._onLinkTooltip = new EventEmitter2_1.EventEmitter2();
-        this._rowsToLinkify = {
-            start: null,
-            end: null
-        };
-    }
-    Object.defineProperty(Linkifier.prototype, "onLinkHover", {
-        get: function () { return this._onLinkHover.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Linkifier.prototype, "onLinkLeave", {
-        get: function () { return this._onLinkLeave.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Linkifier.prototype, "onLinkTooltip", {
-        get: function () { return this._onLinkTooltip.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Linkifier.prototype.attachToDom = function (mouseZoneManager) {
-        this._mouseZoneManager = mouseZoneManager;
-    };
-    Linkifier.prototype.linkifyRows = function (start, end) {
-        var _this = this;
-        if (!this._mouseZoneManager) {
-            return;
-        }
-        if (this._rowsToLinkify.start === null) {
-            this._rowsToLinkify.start = start;
-            this._rowsToLinkify.end = end;
-        }
-        else {
-            this._rowsToLinkify.start = Math.min(this._rowsToLinkify.start, start);
-            this._rowsToLinkify.end = Math.max(this._rowsToLinkify.end, end);
-        }
-        this._mouseZoneManager.clearAll(start, end);
-        if (this._rowsTimeoutId) {
-            clearTimeout(this._rowsTimeoutId);
-        }
-        this._rowsTimeoutId = setTimeout(function () { return _this._linkifyRows(); }, Linkifier.TIME_BEFORE_LINKIFY);
-    };
-    Linkifier.prototype._linkifyRows = function () {
-        this._rowsTimeoutId = null;
-        var buffer = this._terminal.buffer;
-        var absoluteRowIndexStart = buffer.ydisp + this._rowsToLinkify.start;
-        if (absoluteRowIndexStart >= buffer.lines.length) {
-            return;
-        }
-        var absoluteRowIndexEnd = buffer.ydisp + Math.min(this._rowsToLinkify.end, this._terminal.rows) + 1;
-        var overscanLineLimit = Math.ceil(Linkifier.OVERSCAN_CHAR_LIMIT / this._terminal.cols);
-        var iterator = this._terminal.buffer.iterator(false, absoluteRowIndexStart, absoluteRowIndexEnd, overscanLineLimit, overscanLineLimit);
-        while (iterator.hasNext()) {
-            var lineData = iterator.next();
-            for (var i = 0; i < this._linkMatchers.length; i++) {
-                this._doLinkifyRow(lineData.range.first, lineData.content, this._linkMatchers[i]);
-            }
-        }
-        this._rowsToLinkify.start = null;
-        this._rowsToLinkify.end = null;
-    };
-    Linkifier.prototype.registerLinkMatcher = function (regex, handler, options) {
-        if (options === void 0) { options = {}; }
-        if (!handler) {
-            throw new Error('handler must be defined');
-        }
-        var matcher = {
-            id: this._nextLinkMatcherId++,
-            regex: regex,
-            handler: handler,
-            matchIndex: options.matchIndex,
-            validationCallback: options.validationCallback,
-            hoverTooltipCallback: options.tooltipCallback,
-            hoverLeaveCallback: options.leaveCallback,
-            willLinkActivate: options.willLinkActivate,
-            priority: options.priority || 0
-        };
-        this._addLinkMatcherToList(matcher);
-        return matcher.id;
-    };
-    Linkifier.prototype._addLinkMatcherToList = function (matcher) {
-        if (this._linkMatchers.length === 0) {
-            this._linkMatchers.push(matcher);
-            return;
-        }
-        for (var i = this._linkMatchers.length - 1; i >= 0; i--) {
-            if (matcher.priority <= this._linkMatchers[i].priority) {
-                this._linkMatchers.splice(i + 1, 0, matcher);
-                return;
-            }
-        }
-        this._linkMatchers.splice(0, 0, matcher);
-    };
-    Linkifier.prototype.deregisterLinkMatcher = function (matcherId) {
-        for (var i = 0; i < this._linkMatchers.length; i++) {
-            if (this._linkMatchers[i].id === matcherId) {
-                this._linkMatchers.splice(i, 1);
-                return true;
-            }
-        }
-        return false;
-    };
-    Linkifier.prototype._doLinkifyRow = function (rowIndex, text, matcher) {
-        var _this = this;
-        var rex = new RegExp(matcher.regex.source, matcher.regex.flags + 'g');
-        var match;
-        var stringIndex = -1;
-        var _loop_1 = function () {
-            var uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];
-            if (!uri) {
-                if (this_1._terminal.debug) {
-                    console.log({ match: match, matcher: matcher });
-                    throw new Error('match found without corresponding matchIndex');
-                }
-                return "break";
-            }
-            stringIndex = text.indexOf(uri, stringIndex + 1);
-            rex.lastIndex = stringIndex + uri.length;
-            if (stringIndex < 0) {
-                return "break";
-            }
-            var bufferIndex = this_1._terminal.buffer.stringIndexToBufferIndex(rowIndex, stringIndex);
-            if (bufferIndex[0] < 0) {
-                return "break";
-            }
-            var line = this_1._terminal.buffer.lines.get(bufferIndex[0]);
-            var attr = line.getFg(bufferIndex[1]);
-            var fg;
-            if (attr) {
-                fg = (attr >> 9) & 0x1ff;
-            }
-            if (matcher.validationCallback) {
-                matcher.validationCallback(uri, function (isValid) {
-                    if (_this._rowsTimeoutId) {
-                        return;
-                    }
-                    if (isValid) {
-                        _this._addLink(bufferIndex[1], bufferIndex[0] - _this._terminal.buffer.ydisp, uri, matcher, fg);
-                    }
-                });
-            }
-            else {
-                this_1._addLink(bufferIndex[1], bufferIndex[0] - this_1._terminal.buffer.ydisp, uri, matcher, fg);
-            }
-        };
-        var this_1 = this;
-        while ((match = rex.exec(text)) !== null) {
-            var state_1 = _loop_1();
-            if (state_1 === "break")
-                break;
-        }
-    };
-    Linkifier.prototype._addLink = function (x, y, uri, matcher, fg) {
-        var _this = this;
-        var width = CharWidth_1.getStringCellWidth(uri);
-        var x1 = x % this._terminal.cols;
-        var y1 = y + Math.floor(x / this._terminal.cols);
-        var x2 = (x1 + width) % this._terminal.cols;
-        var y2 = y1 + Math.floor((x1 + width) / this._terminal.cols);
-        if (x2 === 0) {
-            x2 = this._terminal.cols;
-            y2--;
-        }
-        this._mouseZoneManager.add(new MouseZoneManager_1.MouseZone(x1 + 1, y1 + 1, x2 + 1, y2 + 1, function (e) {
-            if (matcher.handler) {
-                return matcher.handler(e, uri);
-            }
-            window.open(uri, '_blank');
-        }, function () {
-            _this._onLinkHover.fire(_this._createLinkHoverEvent(x1, y1, x2, y2, fg));
-            _this._terminal.element.classList.add('xterm-cursor-pointer');
-        }, function (e) {
-            _this._onLinkTooltip.fire(_this._createLinkHoverEvent(x1, y1, x2, y2, fg));
-            if (matcher.hoverTooltipCallback) {
-                matcher.hoverTooltipCallback(e, uri);
-            }
-        }, function () {
-            _this._onLinkLeave.fire(_this._createLinkHoverEvent(x1, y1, x2, y2, fg));
-            _this._terminal.element.classList.remove('xterm-cursor-pointer');
-            if (matcher.hoverLeaveCallback) {
-                matcher.hoverLeaveCallback();
-            }
-        }, function (e) {
-            if (matcher.willLinkActivate) {
-                return matcher.willLinkActivate(e, uri);
-            }
-            return true;
-        }));
-    };
-    Linkifier.prototype._createLinkHoverEvent = function (x1, y1, x2, y2, fg) {
-        return { x1: x1, y1: y1, x2: x2, y2: y2, cols: this._terminal.cols, fg: fg };
-    };
-    Linkifier.TIME_BEFORE_LINKIFY = 200;
-    Linkifier.OVERSCAN_CHAR_LIMIT = 2000;
-    return Linkifier;
-}());
-exports.Linkifier = Linkifier;
-
-},{"./CharWidth":7,"./MouseZoneManager":14,"./common/EventEmitter2":25}],13:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var MouseHelper = (function () {
-    function MouseHelper(_renderer) {
-        this._renderer = _renderer;
-    }
-    MouseHelper.prototype.setRenderer = function (renderer) {
-        this._renderer = renderer;
-    };
-    MouseHelper.getCoordsRelativeToElement = function (event, element) {
-        var rect = element.getBoundingClientRect();
-        return [event.clientX - rect.left, event.clientY - rect.top];
-    };
-    MouseHelper.prototype.getCoords = function (event, element, charMeasure, colCount, rowCount, isSelection) {
-        if (!charMeasure.width || !charMeasure.height) {
-            return null;
-        }
-        var coords = MouseHelper.getCoordsRelativeToElement(event, element);
-        if (!coords) {
-            return null;
-        }
-        coords[0] = Math.ceil((coords[0] + (isSelection ? this._renderer.dimensions.actualCellWidth / 2 : 0)) / this._renderer.dimensions.actualCellWidth);
-        coords[1] = Math.ceil(coords[1] / this._renderer.dimensions.actualCellHeight);
-        coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));
-        coords[1] = Math.min(Math.max(coords[1], 1), rowCount);
-        return coords;
-    };
-    MouseHelper.prototype.getRawByteCoords = function (event, element, charMeasure, colCount, rowCount) {
-        var coords = this.getCoords(event, element, charMeasure, colCount, rowCount);
-        var x = coords[0];
-        var y = coords[1];
-        x += 32;
-        y += 32;
-        return { x: x, y: y };
-    };
-    return MouseHelper;
-}());
-exports.MouseHelper = MouseHelper;
-
-},{}],14:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Lifecycle_1 = require("./common/Lifecycle");
-var Lifecycle_2 = require("./ui/Lifecycle");
-var HOVER_DURATION = 500;
-var MouseZoneManager = (function (_super) {
-    __extends(MouseZoneManager, _super);
-    function MouseZoneManager(_terminal) {
-        var _this = _super.call(this) || this;
-        _this._terminal = _terminal;
-        _this._zones = [];
-        _this._areZonesActive = false;
-        _this._tooltipTimeout = null;
-        _this._currentZone = null;
-        _this._lastHoverCoords = [null, null];
-        _this.register(Lifecycle_2.addDisposableDomListener(_this._terminal.element, 'mousedown', function (e) { return _this._onMouseDown(e); }));
-        _this._mouseMoveListener = function (e) { return _this._onMouseMove(e); };
-        _this._mouseLeaveListener = function (e) { return _this._onMouseLeave(e); };
-        _this._clickListener = function (e) { return _this._onClick(e); };
-        return _this;
-    }
-    MouseZoneManager.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        this._deactivate();
-    };
-    MouseZoneManager.prototype.add = function (zone) {
-        this._zones.push(zone);
-        if (this._zones.length === 1) {
-            this._activate();
-        }
-    };
-    MouseZoneManager.prototype.clearAll = function (start, end) {
-        if (this._zones.length === 0) {
-            return;
-        }
-        if (!end) {
-            start = 0;
-            end = this._terminal.rows - 1;
-        }
-        for (var i = 0; i < this._zones.length; i++) {
-            var zone = this._zones[i];
-            if ((zone.y1 > start && zone.y1 <= end + 1) ||
-                (zone.y2 > start && zone.y2 <= end + 1) ||
-                (zone.y1 < start && zone.y2 > end + 1)) {
-                if (this._currentZone && this._currentZone === zone) {
-                    this._currentZone.leaveCallback();
-                    this._currentZone = null;
-                }
-                this._zones.splice(i--, 1);
-            }
-        }
-        if (this._zones.length === 0) {
-            this._deactivate();
-        }
-    };
-    MouseZoneManager.prototype._activate = function () {
-        if (!this._areZonesActive) {
-            this._areZonesActive = true;
-            this._terminal.element.addEventListener('mousemove', this._mouseMoveListener);
-            this._terminal.element.addEventListener('mouseleave', this._mouseLeaveListener);
-            this._terminal.element.addEventListener('click', this._clickListener);
-        }
-    };
-    MouseZoneManager.prototype._deactivate = function () {
-        if (this._areZonesActive) {
-            this._areZonesActive = false;
-            this._terminal.element.removeEventListener('mousemove', this._mouseMoveListener);
-            this._terminal.element.removeEventListener('mouseleave', this._mouseLeaveListener);
-            this._terminal.element.removeEventListener('click', this._clickListener);
-        }
-    };
-    MouseZoneManager.prototype._onMouseMove = function (e) {
-        if (this._lastHoverCoords[0] !== e.pageX || this._lastHoverCoords[1] !== e.pageY) {
-            this._onHover(e);
-            this._lastHoverCoords = [e.pageX, e.pageY];
-        }
-    };
-    MouseZoneManager.prototype._onHover = function (e) {
-        var _this = this;
-        var zone = this._findZoneEventAt(e);
-        if (zone === this._currentZone) {
-            return;
-        }
-        if (this._currentZone) {
-            this._currentZone.leaveCallback();
-            this._currentZone = null;
-            if (this._tooltipTimeout) {
-                clearTimeout(this._tooltipTimeout);
-            }
-        }
-        if (!zone) {
-            return;
-        }
-        this._currentZone = zone;
-        if (zone.hoverCallback) {
-            zone.hoverCallback(e);
-        }
-        this._tooltipTimeout = setTimeout(function () { return _this._onTooltip(e); }, HOVER_DURATION);
-    };
-    MouseZoneManager.prototype._onTooltip = function (e) {
-        this._tooltipTimeout = null;
-        var zone = this._findZoneEventAt(e);
-        if (zone && zone.tooltipCallback) {
-            zone.tooltipCallback(e);
-        }
-    };
-    MouseZoneManager.prototype._onMouseDown = function (e) {
-        this._initialSelectionLength = this._terminal.getSelection().length;
-        if (!this._areZonesActive) {
-            return;
-        }
-        var zone = this._findZoneEventAt(e);
-        if (zone) {
-            if (zone.willLinkActivate(e)) {
-                e.preventDefault();
-                e.stopImmediatePropagation();
-            }
-        }
-    };
-    MouseZoneManager.prototype._onMouseLeave = function (e) {
-        if (this._currentZone) {
-            this._currentZone.leaveCallback();
-            this._currentZone = null;
-            if (this._tooltipTimeout) {
-                clearTimeout(this._tooltipTimeout);
-            }
-        }
-    };
-    MouseZoneManager.prototype._onClick = function (e) {
-        var zone = this._findZoneEventAt(e);
-        var currentSelectionLength = this._terminal.getSelection().length;
-        if (zone && currentSelectionLength === this._initialSelectionLength) {
-            zone.clickCallback(e);
-            e.preventDefault();
-            e.stopImmediatePropagation();
-        }
-    };
-    MouseZoneManager.prototype._findZoneEventAt = function (e) {
-        var coords = this._terminal.mouseHelper.getCoords(e, this._terminal.screenElement, this._terminal.charMeasure, this._terminal.cols, this._terminal.rows);
-        if (!coords) {
-            return null;
-        }
-        var x = coords[0];
-        var y = coords[1];
-        for (var i = 0; i < this._zones.length; i++) {
-            var zone = this._zones[i];
-            if (zone.y1 === zone.y2) {
-                if (y === zone.y1 && x >= zone.x1 && x < zone.x2) {
-                    return zone;
-                }
-            }
-            else {
-                if ((y === zone.y1 && x >= zone.x1) ||
-                    (y === zone.y2 && x < zone.x2) ||
-                    (y > zone.y1 && y < zone.y2)) {
-                    return zone;
-                }
-            }
-        }
-        return null;
-    };
-    return MouseZoneManager;
-}(Lifecycle_1.Disposable));
-exports.MouseZoneManager = MouseZoneManager;
-var MouseZone = (function () {
-    function MouseZone(x1, y1, x2, y2, clickCallback, hoverCallback, tooltipCallback, leaveCallback, willLinkActivate) {
-        this.x1 = x1;
-        this.y1 = y1;
-        this.x2 = x2;
-        this.y2 = y2;
-        this.clickCallback = clickCallback;
-        this.hoverCallback = hoverCallback;
-        this.tooltipCallback = tooltipCallback;
-        this.leaveCallback = leaveCallback;
-        this.willLinkActivate = willLinkActivate;
-    }
-    return MouseZone;
-}());
-exports.MouseZone = MouseZone;
-
-},{"./common/Lifecycle":26,"./ui/Lifecycle":55}],15:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var MouseHelper_1 = require("./MouseHelper");
-var Browser = require("./common/Platform");
-var SelectionModel_1 = require("./SelectionModel");
-var AltClickHandler_1 = require("./handlers/AltClickHandler");
-var BufferLine_1 = require("./BufferLine");
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var DRAG_SCROLL_MAX_THRESHOLD = 50;
-var DRAG_SCROLL_MAX_SPEED = 15;
-var DRAG_SCROLL_INTERVAL = 50;
-var ALT_CLICK_MOVE_CURSOR_TIME = 500;
-var WORD_SEPARATORS = ' ()[]{}\'"';
-var NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);
-var ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');
-var SelectionManager = (function () {
-    function SelectionManager(_terminal, _charMeasure) {
-        this._terminal = _terminal;
-        this._charMeasure = _charMeasure;
-        this._enabled = true;
-        this._workCell = new BufferLine_1.CellData();
-        this._onLinuxMouseSelection = new EventEmitter2_1.EventEmitter2();
-        this._onRedrawRequest = new EventEmitter2_1.EventEmitter2();
-        this._onSelectionChange = new EventEmitter2_1.EventEmitter2();
-        this._initListeners();
-        this.enable();
-        this._model = new SelectionModel_1.SelectionModel(_terminal);
-        this._activeSelectionMode = 0;
-    }
-    Object.defineProperty(SelectionManager.prototype, "onLinuxMouseSelection", {
-        get: function () { return this._onLinuxMouseSelection.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SelectionManager.prototype, "onRedrawRequest", {
-        get: function () { return this._onRedrawRequest.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SelectionManager.prototype, "onSelectionChange", {
-        get: function () { return this._onSelectionChange.event; },
-        enumerable: true,
-        configurable: true
-    });
-    SelectionManager.prototype.dispose = function () {
-        this._removeMouseDownListeners();
-    };
-    Object.defineProperty(SelectionManager.prototype, "_buffer", {
-        get: function () {
-            return this._terminal.buffers.active;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SelectionManager.prototype._initListeners = function () {
-        var _this = this;
-        this._mouseMoveListener = function (event) { return _this._onMouseMove(event); };
-        this._mouseUpListener = function (event) { return _this._onMouseUp(event); };
-        this.initBuffersListeners();
-    };
-    SelectionManager.prototype.initBuffersListeners = function () {
-        var _this = this;
-        this._trimListener = this._terminal.buffer.lines.onTrim(function (amount) { return _this._onTrim(amount); });
-        this._terminal.buffers.onBufferActivate(function (e) { return _this._onBufferActivate(e); });
-    };
-    SelectionManager.prototype.disable = function () {
-        this.clearSelection();
-        this._enabled = false;
-    };
-    SelectionManager.prototype.enable = function () {
-        this._enabled = true;
-    };
-    Object.defineProperty(SelectionManager.prototype, "selectionStart", {
-        get: function () { return this._model.finalSelectionStart; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SelectionManager.prototype, "selectionEnd", {
-        get: function () { return this._model.finalSelectionEnd; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SelectionManager.prototype, "hasSelection", {
-        get: function () {
-            var start = this._model.finalSelectionStart;
-            var end = this._model.finalSelectionEnd;
-            if (!start || !end) {
-                return false;
-            }
-            return start[0] !== end[0] || start[1] !== end[1];
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SelectionManager.prototype, "selectionText", {
-        get: function () {
-            var start = this._model.finalSelectionStart;
-            var end = this._model.finalSelectionEnd;
-            if (!start || !end) {
-                return '';
-            }
-            var result = [];
-            if (this._activeSelectionMode === 3) {
-                if (start[0] === end[0]) {
-                    return '';
-                }
-                for (var i = start[1]; i <= end[1]; i++) {
-                    var lineText = this._buffer.translateBufferLineToString(i, true, start[0], end[0]);
-                    result.push(lineText);
-                }
-            }
-            else {
-                var startRowEndCol = start[1] === end[1] ? end[0] : undefined;
-                result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));
-                for (var i = start[1] + 1; i <= end[1] - 1; i++) {
-                    var bufferLine = this._buffer.lines.get(i);
-                    var lineText = this._buffer.translateBufferLineToString(i, true);
-                    if (bufferLine.isWrapped) {
-                        result[result.length - 1] += lineText;
-                    }
-                    else {
-                        result.push(lineText);
-                    }
-                }
-                if (start[1] !== end[1]) {
-                    var bufferLine = this._buffer.lines.get(end[1]);
-                    var lineText = this._buffer.translateBufferLineToString(end[1], true, 0, end[0]);
-                    if (bufferLine.isWrapped) {
-                        result[result.length - 1] += lineText;
-                    }
-                    else {
-                        result.push(lineText);
-                    }
-                }
-            }
-            var formattedResult = result.map(function (line) {
-                return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');
-            }).join(Browser.isMSWindows ? '\r\n' : '\n');
-            return formattedResult;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SelectionManager.prototype.clearSelection = function () {
-        this._model.clearSelection();
-        this._removeMouseDownListeners();
-        this.refresh();
-    };
-    SelectionManager.prototype.refresh = function (isLinuxMouseSelection) {
-        var _this = this;
-        if (!this._refreshAnimationFrame) {
-            this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); });
-        }
-        if (Browser.isLinux && isLinuxMouseSelection) {
-            var selectionText = this.selectionText;
-            if (selectionText.length) {
-                this._onLinuxMouseSelection.fire(this.selectionText);
-            }
-        }
-    };
-    SelectionManager.prototype._refresh = function () {
-        this._refreshAnimationFrame = null;
-        this._onRedrawRequest.fire({
-            start: this._model.finalSelectionStart,
-            end: this._model.finalSelectionEnd,
-            columnSelectMode: this._activeSelectionMode === 3
-        });
-    };
-    SelectionManager.prototype.isClickInSelection = function (event) {
-        var coords = this._getMouseBufferCoords(event);
-        var start = this._model.finalSelectionStart;
-        var end = this._model.finalSelectionEnd;
-        if (!start || !end) {
-            return false;
-        }
-        return this._areCoordsInSelection(coords, start, end);
-    };
-    SelectionManager.prototype._areCoordsInSelection = function (coords, start, end) {
-        return (coords[1] > start[1] && coords[1] < end[1]) ||
-            (start[1] === end[1] && coords[1] === start[1] && coords[0] >= start[0] && coords[0] < end[0]) ||
-            (start[1] < end[1] && coords[1] === end[1] && coords[0] < end[0]) ||
-            (start[1] < end[1] && coords[1] === start[1] && coords[0] >= start[0]);
-    };
-    SelectionManager.prototype.selectWordAtCursor = function (event) {
-        var coords = this._getMouseBufferCoords(event);
-        if (coords) {
-            this._selectWordAt(coords, false);
-            this._model.selectionEnd = null;
-            this.refresh(true);
-        }
-    };
-    SelectionManager.prototype.selectAll = function () {
-        this._model.isSelectAllActive = true;
-        this.refresh();
-        this._onSelectionChange.fire();
-    };
-    SelectionManager.prototype.selectLines = function (start, end) {
-        this._model.clearSelection();
-        start = Math.max(start, 0);
-        end = Math.min(end, this._terminal.buffer.lines.length - 1);
-        this._model.selectionStart = [0, start];
-        this._model.selectionEnd = [this._terminal.cols, end];
-        this.refresh();
-        this._onSelectionChange.fire();
-    };
-    SelectionManager.prototype._onTrim = function (amount) {
-        var needsRefresh = this._model.onTrim(amount);
-        if (needsRefresh) {
-            this.refresh();
-        }
-    };
-    SelectionManager.prototype._getMouseBufferCoords = function (event) {
-        var coords = this._terminal.mouseHelper.getCoords(event, this._terminal.screenElement, this._charMeasure, this._terminal.cols, this._terminal.rows, true);
-        if (!coords) {
-            return null;
-        }
-        coords[0]--;
-        coords[1]--;
-        coords[1] += this._terminal.buffer.ydisp;
-        return coords;
-    };
-    SelectionManager.prototype._getMouseEventScrollAmount = function (event) {
-        var offset = MouseHelper_1.MouseHelper.getCoordsRelativeToElement(event, this._terminal.screenElement)[1];
-        var terminalHeight = this._terminal.rows * Math.ceil(this._charMeasure.height * this._terminal.options.lineHeight);
-        if (offset >= 0 && offset <= terminalHeight) {
-            return 0;
-        }
-        if (offset > terminalHeight) {
-            offset -= terminalHeight;
-        }
-        offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);
-        offset /= DRAG_SCROLL_MAX_THRESHOLD;
-        return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));
-    };
-    SelectionManager.prototype.shouldForceSelection = function (event) {
-        if (Browser.isMac) {
-            return event.altKey && this._terminal.options.macOptionClickForcesSelection;
-        }
-        return event.shiftKey;
-    };
-    SelectionManager.prototype.onMouseDown = function (event) {
-        this._mouseDownTimeStamp = event.timeStamp;
-        if (event.button === 2 && this.hasSelection) {
-            return;
-        }
-        if (event.button !== 0) {
-            return;
-        }
-        if (!this._enabled) {
-            if (!this.shouldForceSelection(event)) {
-                return;
-            }
-            event.stopPropagation();
-        }
-        event.preventDefault();
-        this._dragScrollAmount = 0;
-        if (this._enabled && event.shiftKey) {
-            this._onIncrementalClick(event);
-        }
-        else {
-            if (event.detail === 1) {
-                this._onSingleClick(event);
-            }
-            else if (event.detail === 2) {
-                this._onDoubleClick(event);
-            }
-            else if (event.detail === 3) {
-                this._onTripleClick(event);
-            }
-        }
-        this._addMouseDownListeners();
-        this.refresh(true);
-    };
-    SelectionManager.prototype._addMouseDownListeners = function () {
-        var _this = this;
-        this._terminal.element.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);
-        this._terminal.element.ownerDocument.addEventListener('mouseup', this._mouseUpListener);
-        this._dragScrollIntervalTimer = setInterval(function () { return _this._dragScroll(); }, DRAG_SCROLL_INTERVAL);
-    };
-    SelectionManager.prototype._removeMouseDownListeners = function () {
-        if (this._terminal.element.ownerDocument) {
-            this._terminal.element.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);
-            this._terminal.element.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);
-        }
-        clearInterval(this._dragScrollIntervalTimer);
-        this._dragScrollIntervalTimer = null;
-    };
-    SelectionManager.prototype._onIncrementalClick = function (event) {
-        if (this._model.selectionStart) {
-            this._model.selectionEnd = this._getMouseBufferCoords(event);
-        }
-    };
-    SelectionManager.prototype._onSingleClick = function (event) {
-        this._model.selectionStartLength = 0;
-        this._model.isSelectAllActive = false;
-        this._activeSelectionMode = this.shouldColumnSelect(event) ? 3 : 0;
-        this._model.selectionStart = this._getMouseBufferCoords(event);
-        if (!this._model.selectionStart) {
-            return;
-        }
-        this._model.selectionEnd = null;
-        var line = this._buffer.lines.get(this._model.selectionStart[1]);
-        if (!line) {
-            return;
-        }
-        if (line.length >= this._model.selectionStart[0]) {
-            return;
-        }
-        if (line.hasWidth(this._model.selectionStart[0]) === 0) {
-            this._model.selectionStart[0]++;
-        }
-    };
-    SelectionManager.prototype._onDoubleClick = function (event) {
-        var coords = this._getMouseBufferCoords(event);
-        if (coords) {
-            this._activeSelectionMode = 1;
-            this._selectWordAt(coords, true);
-        }
-    };
-    SelectionManager.prototype._onTripleClick = function (event) {
-        var coords = this._getMouseBufferCoords(event);
-        if (coords) {
-            this._activeSelectionMode = 2;
-            this._selectLineAt(coords[1]);
-        }
-    };
-    SelectionManager.prototype.shouldColumnSelect = function (event) {
-        return event.altKey && !(Browser.isMac && this._terminal.options.macOptionClickForcesSelection);
-    };
-    SelectionManager.prototype._onMouseMove = function (event) {
-        event.stopImmediatePropagation();
-        var previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;
-        this._model.selectionEnd = this._getMouseBufferCoords(event);
-        if (!this._model.selectionEnd) {
-            this.refresh(true);
-            return;
-        }
-        if (this._activeSelectionMode === 2) {
-            if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {
-                this._model.selectionEnd[0] = 0;
-            }
-            else {
-                this._model.selectionEnd[0] = this._terminal.cols;
-            }
-        }
-        else if (this._activeSelectionMode === 1) {
-            this._selectToWordAt(this._model.selectionEnd);
-        }
-        this._dragScrollAmount = this._getMouseEventScrollAmount(event);
-        if (this._activeSelectionMode !== 3) {
-            if (this._dragScrollAmount > 0) {
-                this._model.selectionEnd[0] = this._terminal.cols;
-            }
-            else if (this._dragScrollAmount < 0) {
-                this._model.selectionEnd[0] = 0;
-            }
-        }
-        if (this._model.selectionEnd[1] < this._buffer.lines.length) {
-            if (this._buffer.lines.get(this._model.selectionEnd[1]).hasWidth(this._model.selectionEnd[0]) === 0) {
-                this._model.selectionEnd[0]++;
-            }
-        }
-        if (!previousSelectionEnd ||
-            previousSelectionEnd[0] !== this._model.selectionEnd[0] ||
-            previousSelectionEnd[1] !== this._model.selectionEnd[1]) {
-            this.refresh(true);
-        }
-    };
-    SelectionManager.prototype._dragScroll = function () {
-        if (this._dragScrollAmount) {
-            this._terminal.scrollLines(this._dragScrollAmount, false);
-            if (this._dragScrollAmount > 0) {
-                if (this._activeSelectionMode !== 3) {
-                    this._model.selectionEnd[0] = this._terminal.cols;
-                }
-                this._model.selectionEnd[1] = Math.min(this._terminal.buffer.ydisp + this._terminal.rows, this._terminal.buffer.lines.length - 1);
-            }
-            else {
-                if (this._activeSelectionMode !== 3) {
-                    this._model.selectionEnd[0] = 0;
-                }
-                this._model.selectionEnd[1] = this._terminal.buffer.ydisp;
-            }
-            this.refresh();
-        }
-    };
-    SelectionManager.prototype._onMouseUp = function (event) {
-        var timeElapsed = event.timeStamp - this._mouseDownTimeStamp;
-        this._removeMouseDownListeners();
-        if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME) {
-            (new AltClickHandler_1.AltClickHandler(event, this._terminal)).move();
-        }
-        else if (this.hasSelection) {
-            this._onSelectionChange.fire();
-        }
-    };
-    SelectionManager.prototype._onBufferActivate = function (e) {
-        var _this = this;
-        this.clearSelection();
-        if (this._trimListener) {
-            this._trimListener.dispose();
-        }
-        this._trimListener = e.activeBuffer.lines.onTrim(function (amount) { return _this._onTrim(amount); });
-    };
-    SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) {
-        var charIndex = coords[0];
-        for (var i = 0; coords[0] >= i; i++) {
-            var length_1 = bufferLine.loadCell(i, this._workCell).getChars().length;
-            if (this._workCell.getWidth() === 0) {
-                charIndex--;
-            }
-            else if (length_1 > 1 && coords[0] !== i) {
-                charIndex += length_1 - 1;
-            }
-        }
-        return charIndex;
-    };
-    SelectionManager.prototype.setSelection = function (col, row, length) {
-        this._model.clearSelection();
-        this._removeMouseDownListeners();
-        this._model.selectionStart = [col, row];
-        this._model.selectionStartLength = length;
-        this.refresh();
-    };
-    SelectionManager.prototype._getWordAt = function (coords, allowWhitespaceOnlySelection, followWrappedLinesAbove, followWrappedLinesBelow) {
-        if (followWrappedLinesAbove === void 0) { followWrappedLinesAbove = true; }
-        if (followWrappedLinesBelow === void 0) { followWrappedLinesBelow = true; }
-        if (coords[0] >= this._terminal.cols) {
-            return null;
-        }
-        var bufferLine = this._buffer.lines.get(coords[1]);
-        if (!bufferLine) {
-            return null;
-        }
-        var line = this._buffer.translateBufferLineToString(coords[1], false);
-        var startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords);
-        var endIndex = startIndex;
-        var charOffset = coords[0] - startIndex;
-        var leftWideCharCount = 0;
-        var rightWideCharCount = 0;
-        var leftLongCharOffset = 0;
-        var rightLongCharOffset = 0;
-        if (line.charAt(startIndex) === ' ') {
-            while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {
-                startIndex--;
-            }
-            while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {
-                endIndex++;
-            }
-        }
-        else {
-            var startCol = coords[0];
-            var endCol = coords[0];
-            if (bufferLine.getWidth(startCol) === 0) {
-                leftWideCharCount++;
-                startCol--;
-            }
-            if (bufferLine.getWidth(endCol) === 2) {
-                rightWideCharCount++;
-                endCol++;
-            }
-            var length_2 = bufferLine.getString(endCol).length;
-            if (length_2 > 1) {
-                rightLongCharOffset += length_2 - 1;
-                endIndex += length_2 - 1;
-            }
-            while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine.loadCell(startCol - 1, this._workCell))) {
-                bufferLine.loadCell(startCol - 1, this._workCell);
-                var length_3 = this._workCell.getChars().length;
-                if (this._workCell.getWidth() === 0) {
-                    leftWideCharCount++;
-                    startCol--;
-                }
-                else if (length_3 > 1) {
-                    leftLongCharOffset += length_3 - 1;
-                    startIndex -= length_3 - 1;
-                }
-                startIndex--;
-                startCol--;
-            }
-            while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine.loadCell(endCol + 1, this._workCell))) {
-                bufferLine.loadCell(endCol + 1, this._workCell);
-                var length_4 = this._workCell.getChars().length;
-                if (this._workCell.getWidth() === 2) {
-                    rightWideCharCount++;
-                    endCol++;
-                }
-                else if (length_4 > 1) {
-                    rightLongCharOffset += length_4 - 1;
-                    endIndex += length_4 - 1;
-                }
-                endIndex++;
-                endCol++;
-            }
-        }
-        endIndex++;
-        var start = startIndex
-            + charOffset
-            - leftWideCharCount
-            + leftLongCharOffset;
-        var length = Math.min(this._terminal.cols, endIndex
-            - startIndex
-            + leftWideCharCount
-            + rightWideCharCount
-            - leftLongCharOffset
-            - rightLongCharOffset);
-        if (!allowWhitespaceOnlySelection && line.slice(startIndex, endIndex).trim() === '') {
-            return null;
-        }
-        if (followWrappedLinesAbove) {
-            if (start === 0 && bufferLine.getCodePoint(0) !== 32) {
-                var previousBufferLine = this._buffer.lines.get(coords[1] - 1);
-                if (previousBufferLine && bufferLine.isWrapped && previousBufferLine.getCodePoint(this._terminal.cols - 1) !== 32) {
-                    var previousLineWordPosition = this._getWordAt([this._terminal.cols - 1, coords[1] - 1], false, true, false);
-                    if (previousLineWordPosition) {
-                        var offset = this._terminal.cols - previousLineWordPosition.start;
-                        start -= offset;
-                        length += offset;
-                    }
-                }
-            }
-        }
-        if (followWrappedLinesBelow) {
-            if (start + length === this._terminal.cols && bufferLine.getCodePoint(this._terminal.cols - 1) !== 32) {
-                var nextBufferLine = this._buffer.lines.get(coords[1] + 1);
-                if (nextBufferLine && nextBufferLine.isWrapped && nextBufferLine.getCodePoint(0) !== 32) {
-                    var nextLineWordPosition = this._getWordAt([0, coords[1] + 1], false, false, true);
-                    if (nextLineWordPosition) {
-                        length += nextLineWordPosition.length;
-                    }
-                }
-            }
-        }
-        return { start: start, length: length };
-    };
-    SelectionManager.prototype._selectWordAt = function (coords, allowWhitespaceOnlySelection) {
-        var wordPosition = this._getWordAt(coords, allowWhitespaceOnlySelection);
-        if (wordPosition) {
-            while (wordPosition.start < 0) {
-                wordPosition.start += this._terminal.cols;
-                coords[1]--;
-            }
-            this._model.selectionStart = [wordPosition.start, coords[1]];
-            this._model.selectionStartLength = wordPosition.length;
-        }
-    };
-    SelectionManager.prototype._selectToWordAt = function (coords) {
-        var wordPosition = this._getWordAt(coords, true);
-        if (wordPosition) {
-            var endRow = coords[1];
-            while (wordPosition.start < 0) {
-                wordPosition.start += this._terminal.cols;
-                endRow--;
-            }
-            if (!this._model.areSelectionValuesReversed()) {
-                while (wordPosition.start + wordPosition.length > this._terminal.cols) {
-                    wordPosition.length -= this._terminal.cols;
-                    endRow++;
-                }
-            }
-            this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : wordPosition.start + wordPosition.length, endRow];
-        }
-    };
-    SelectionManager.prototype._isCharWordSeparator = function (cell) {
-        if (cell.getWidth() === 0) {
-            return false;
-        }
-        return WORD_SEPARATORS.indexOf(cell.getChars()) >= 0;
-    };
-    SelectionManager.prototype._selectLineAt = function (line) {
-        var wrappedRange = this._buffer.getWrappedRangeForLine(line);
-        this._model.selectionStart = [0, wrappedRange.first];
-        this._model.selectionEnd = [this._terminal.cols, wrappedRange.last];
-        this._model.selectionStartLength = 0;
-    };
-    return SelectionManager;
-}());
-exports.SelectionManager = SelectionManager;
-
-},{"./BufferLine":3,"./MouseHelper":13,"./SelectionModel":16,"./common/EventEmitter2":25,"./common/Platform":27,"./handlers/AltClickHandler":33}],16:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var SelectionModel = (function () {
-    function SelectionModel(_terminal) {
-        this._terminal = _terminal;
-        this.clearSelection();
-    }
-    SelectionModel.prototype.clearSelection = function () {
-        this.selectionStart = null;
-        this.selectionEnd = null;
-        this.isSelectAllActive = false;
-        this.selectionStartLength = 0;
-    };
-    Object.defineProperty(SelectionModel.prototype, "finalSelectionStart", {
-        get: function () {
-            if (this.isSelectAllActive) {
-                return [0, 0];
-            }
-            if (!this.selectionEnd || !this.selectionStart) {
-                return this.selectionStart;
-            }
-            return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SelectionModel.prototype, "finalSelectionEnd", {
-        get: function () {
-            if (this.isSelectAllActive) {
-                return [this._terminal.cols, this._terminal.buffer.ybase + this._terminal.rows - 1];
-            }
-            if (!this.selectionStart) {
-                return null;
-            }
-            if (!this.selectionEnd || this.areSelectionValuesReversed()) {
-                var startPlusLength = this.selectionStart[0] + this.selectionStartLength;
-                if (startPlusLength > this._terminal.cols) {
-                    return [startPlusLength % this._terminal.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._terminal.cols)];
-                }
-                return [startPlusLength, this.selectionStart[1]];
-            }
-            if (this.selectionStartLength) {
-                if (this.selectionEnd[1] === this.selectionStart[1]) {
-                    return [Math.max(this.selectionStart[0] + this.selectionStartLength, this.selectionEnd[0]), this.selectionEnd[1]];
-                }
-            }
-            return this.selectionEnd;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SelectionModel.prototype.areSelectionValuesReversed = function () {
-        var start = this.selectionStart;
-        var end = this.selectionEnd;
-        if (!start || !end) {
-            return false;
-        }
-        return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);
-    };
-    SelectionModel.prototype.onTrim = function (amount) {
-        if (this.selectionStart) {
-            this.selectionStart[1] -= amount;
-        }
-        if (this.selectionEnd) {
-            this.selectionEnd[1] -= amount;
-        }
-        if (this.selectionEnd && this.selectionEnd[1] < 0) {
-            this.clearSelection();
-            return true;
-        }
-        if (this.selectionStart && this.selectionStart[1] < 0) {
-            this.selectionStart[1] = 0;
-        }
-        return false;
-    };
-    return SelectionModel;
-}());
-exports.SelectionModel = SelectionModel;
-
-},{}],17:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.DEFAULT_BELL_SOUND = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==';
-var SoundManager = (function () {
-    function SoundManager(_terminal) {
-        this._terminal = _terminal;
-    }
-    Object.defineProperty(SoundManager, "audioContext", {
-        get: function () {
-            if (!SoundManager._audioContext) {
-                var audioContextCtor = window.AudioContext || window.webkitAudioContext;
-                if (!audioContextCtor) {
-                    console.warn('Web Audio API is not supported by this browser. Consider upgrading to the latest version');
-                    return null;
-                }
-                SoundManager._audioContext = new audioContextCtor();
-            }
-            return SoundManager._audioContext;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SoundManager.prototype.playBellSound = function () {
-        var ctx = SoundManager.audioContext;
-        if (!ctx) {
-            return;
-        }
-        var bellAudioSource = ctx.createBufferSource();
-        ctx.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._terminal.options.bellSound)), function (buffer) {
-            bellAudioSource.buffer = buffer;
-            bellAudioSource.connect(ctx.destination);
-            bellAudioSource.start(0);
-        });
-    };
-    SoundManager.prototype._base64ToArrayBuffer = function (base64) {
-        var binaryString = window.atob(base64);
-        var len = binaryString.length;
-        var bytes = new Uint8Array(len);
-        for (var i = 0; i < len; i++) {
-            bytes[i] = binaryString.charCodeAt(i);
-        }
-        return bytes.buffer;
-    };
-    SoundManager.prototype._removeMimeType = function (dataURI) {
-        var splitUri = dataURI.split(',');
-        return splitUri[1];
-    };
-    return SoundManager;
-}());
-exports.SoundManager = SoundManager;
-
-},{}],18:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.blankLine = 'Blank line';
-exports.promptLabel = 'Terminal input';
-exports.tooMuchOutput = 'Too much output to announce, navigate to rows manually to read';
-
-},{}],19:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var BufferSet_1 = require("./BufferSet");
-var Buffer_1 = require("./Buffer");
-var CompositionHelper_1 = require("./CompositionHelper");
-var EventEmitter_1 = require("./common/EventEmitter");
-var Viewport_1 = require("./Viewport");
-var Clipboard_1 = require("./Clipboard");
-var EscapeSequences_1 = require("./common/data/EscapeSequences");
-var InputHandler_1 = require("./InputHandler");
-var Renderer_1 = require("./renderer/Renderer");
-var Linkifier_1 = require("./Linkifier");
-var SelectionManager_1 = require("./SelectionManager");
-var CharMeasure_1 = require("./CharMeasure");
-var Browser = require("./common/Platform");
-var Lifecycle_1 = require("./ui/Lifecycle");
-var Strings = require("./Strings");
-var MouseHelper_1 = require("./MouseHelper");
-var SoundManager_1 = require("./SoundManager");
-var MouseZoneManager_1 = require("./MouseZoneManager");
-var AccessibilityManager_1 = require("./AccessibilityManager");
-var ScreenDprMonitor_1 = require("./ui/ScreenDprMonitor");
-var CharAtlasCache_1 = require("./renderer/atlas/CharAtlasCache");
-var DomRenderer_1 = require("./renderer/dom/DomRenderer");
-var Keyboard_1 = require("./core/input/Keyboard");
-var Clone_1 = require("./common/Clone");
-var EventEmitter2_1 = require("./common/EventEmitter2");
-var WindowsMode_1 = require("./WindowsMode");
-var document = (typeof window !== 'undefined') ? window.document : null;
-var WRITE_BUFFER_PAUSE_THRESHOLD = 5;
-var WRITE_TIMEOUT_MS = 12;
-var MINIMUM_COLS = 2;
-var MINIMUM_ROWS = 1;
-var CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows'];
-var DEFAULT_OPTIONS = {
-    cols: 80,
-    rows: 24,
-    convertEol: false,
-    termName: 'xterm',
-    cursorBlink: false,
-    cursorStyle: 'block',
-    bellSound: SoundManager_1.DEFAULT_BELL_SOUND,
-    bellStyle: 'none',
-    drawBoldTextInBrightColors: true,
-    enableBold: true,
-    experimentalCharAtlas: 'static',
-    fontFamily: 'courier-new, courier, monospace',
-    fontSize: 15,
-    fontWeight: 'normal',
-    fontWeightBold: 'bold',
-    lineHeight: 1.0,
-    letterSpacing: 0,
-    scrollback: 1000,
-    screenKeys: false,
-    screenReaderMode: false,
-    debug: false,
-    macOptionIsMeta: false,
-    macOptionClickForcesSelection: false,
-    cancelEvents: false,
-    disableStdin: false,
-    useFlowControl: false,
-    allowTransparency: false,
-    tabStopWidth: 8,
-    theme: null,
-    rightClickSelectsWord: Browser.isMac,
-    rendererType: 'canvas',
-    windowsMode: false
-};
-var Terminal = (function (_super) {
-    __extends(Terminal, _super);
-    function Terminal(options) {
-        if (options === void 0) { options = {}; }
-        var _this = _super.call(this) || this;
-        _this.browser = Browser;
-        _this._blankLine = null;
-        _this._onCursorMove = new EventEmitter2_1.EventEmitter2();
-        _this._onData = new EventEmitter2_1.EventEmitter2();
-        _this._onKey = new EventEmitter2_1.EventEmitter2();
-        _this._onLineFeed = new EventEmitter2_1.EventEmitter2();
-        _this._onRender = new EventEmitter2_1.EventEmitter2();
-        _this._onResize = new EventEmitter2_1.EventEmitter2();
-        _this._onScroll = new EventEmitter2_1.EventEmitter2();
-        _this._onSelectionChange = new EventEmitter2_1.EventEmitter2();
-        _this._onTitleChange = new EventEmitter2_1.EventEmitter2();
-        _this.options = Clone_1.clone(options);
-        _this._setup();
-        _this.onCursorMove(function () { return _this.emit('cursormove'); });
-        _this.onData(function (e) { return _this.emit('data', e); });
-        _this.onKey(function (e) { return _this.emit('key', e.key, e.domEvent); });
-        _this.onLineFeed(function () { return _this.emit('linefeed'); });
-        _this.onRender(function (e) { return _this.emit('refresh', e); });
-        _this.onResize(function (e) { return _this.emit('resize', e); });
-        _this.onSelectionChange(function () { return _this.emit('selection'); });
-        _this.onScroll(function (e) { return _this.emit('scroll', e); });
-        _this.onTitleChange(function (e) { return _this.emit('title', e); });
-        return _this;
-    }
-    Object.defineProperty(Terminal.prototype, "onCursorMove", {
-        get: function () { return this._onCursorMove.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onData", {
-        get: function () { return this._onData.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onKey", {
-        get: function () { return this._onKey.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onLineFeed", {
-        get: function () { return this._onLineFeed.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onRender", {
-        get: function () { return this._onRender.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onResize", {
-        get: function () { return this._onResize.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onScroll", {
-        get: function () { return this._onScroll.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onSelectionChange", {
-        get: function () { return this._onSelectionChange.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onTitleChange", {
-        get: function () { return this._onTitleChange.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Terminal.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        if (this._windowsMode) {
-            this._windowsMode.dispose();
-            this._windowsMode = undefined;
-        }
-        this._customKeyEventHandler = null;
-        CharAtlasCache_1.removeTerminalFromCache(this);
-        this.handler = function () { };
-        this.write = function () { };
-        if (this.element && this.element.parentNode) {
-            this.element.parentNode.removeChild(this.element);
-        }
-    };
-    Terminal.prototype.destroy = function () {
-        this.dispose();
-    };
-    Terminal.prototype._setup = function () {
-        var _this = this;
-        Object.keys(DEFAULT_OPTIONS).forEach(function (key) {
-            if (_this.options[key] === null || _this.options[key] === undefined) {
-                _this.options[key] = DEFAULT_OPTIONS[key];
-            }
-        });
-        this._parent = document ? document.body : null;
-        this.cols = Math.max(this.options.cols, MINIMUM_COLS);
-        this.rows = Math.max(this.options.rows, MINIMUM_ROWS);
-        if (this.options.handler) {
-            this.onData(this.options.handler);
-        }
-        this.cursorState = 0;
-        this.cursorHidden = false;
-        this._customKeyEventHandler = null;
-        this.applicationKeypad = false;
-        this.applicationCursor = false;
-        this.originMode = false;
-        this.insertMode = false;
-        this.wraparoundMode = true;
-        this.bracketedPasteMode = false;
-        this.charset = null;
-        this.gcharset = null;
-        this.glevel = 0;
-        this.charsets = [null];
-        this.curAttrData = Buffer_1.DEFAULT_ATTR_DATA.clone();
-        this._eraseAttrData = Buffer_1.DEFAULT_ATTR_DATA.clone();
-        this.params = [];
-        this.currentParam = 0;
-        this.writeBuffer = [];
-        this._writeInProgress = false;
-        this._xoffSentToCatchUp = false;
-        this._userScrolling = false;
-        this._inputHandler = new InputHandler_1.InputHandler(this);
-        this._inputHandler.onCursorMove(function () { return _this._onCursorMove.fire(); });
-        this._inputHandler.onLineFeed(function () { return _this._onLineFeed.fire(); });
-        this._inputHandler.onData(function (e) { return _this._onData.fire(e); });
-        this.register(this._inputHandler);
-        this.renderer = this.renderer || null;
-        this.selectionManager = this.selectionManager || null;
-        this.linkifier = this.linkifier || new Linkifier_1.Linkifier(this);
-        this._mouseZoneManager = this._mouseZoneManager || null;
-        this.soundManager = this.soundManager || new SoundManager_1.SoundManager(this);
-        this.buffers = new BufferSet_1.BufferSet(this);
-        if (this.selectionManager) {
-            this.selectionManager.clearSelection();
-            this.selectionManager.initBuffersListeners();
-        }
-        if (this.options.windowsMode) {
-            this._windowsMode = WindowsMode_1.applyWindowsMode(this);
-        }
-    };
-    Object.defineProperty(Terminal.prototype, "buffer", {
-        get: function () {
-            return this.buffers.active;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Terminal.prototype.eraseAttrData = function () {
-        this._eraseAttrData.bg &= ~(50331648 | 0xFFFFFF);
-        this._eraseAttrData.bg |= this.curAttrData.bg & ~0xFC000000;
-        return this._eraseAttrData;
-    };
-    Terminal.prototype.focus = function () {
-        if (this.textarea) {
-            this.textarea.focus({ preventScroll: true });
-        }
-    };
-    Object.defineProperty(Terminal.prototype, "isFocused", {
-        get: function () {
-            return document.activeElement === this.textarea && document.hasFocus();
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Terminal.prototype.getOption = function (key) {
-        if (!(key in DEFAULT_OPTIONS)) {
-            throw new Error('No option with key "' + key + '"');
-        }
-        return this.options[key];
-    };
-    Terminal.prototype.setOption = function (key, value) {
-        if (!(key in DEFAULT_OPTIONS)) {
-            throw new Error('No option with key "' + key + '"');
-        }
-        if (CONSTRUCTOR_ONLY_OPTIONS.indexOf(key) !== -1) {
-            console.error("Option \"" + key + "\" can only be set in the constructor");
-        }
-        if (this.options[key] === value) {
-            return;
-        }
-        switch (key) {
-            case 'bellStyle':
-                if (!value) {
-                    value = 'none';
-                }
-                break;
-            case 'cursorStyle':
-                if (!value) {
-                    value = 'block';
-                }
-                break;
-            case 'fontWeight':
-                if (!value) {
-                    value = 'normal';
-                }
-                break;
-            case 'fontWeightBold':
-                if (!value) {
-                    value = 'bold';
-                }
-                break;
-            case 'lineHeight':
-                if (value < 1) {
-                    console.warn(key + " cannot be less than 1, value: " + value);
-                    return;
-                }
-            case 'rendererType':
-                if (!value) {
-                    value = 'canvas';
-                }
-                break;
-            case 'tabStopWidth':
-                if (value < 1) {
-                    console.warn(key + " cannot be less than 1, value: " + value);
-                    return;
-                }
-                break;
-            case 'theme':
-                if (this.renderer) {
-                    this._setTheme(value);
-                    return;
-                }
-                break;
-            case 'scrollback':
-                value = Math.min(value, Buffer_1.MAX_BUFFER_SIZE);
-                if (value < 0) {
-                    console.warn(key + " cannot be less than 0, value: " + value);
-                    return;
-                }
-                if (this.options[key] !== value) {
-                    var newBufferLength = this.rows + value;
-                    if (this.buffer.lines.length > newBufferLength) {
-                        var amountToTrim = this.buffer.lines.length - newBufferLength;
-                        var needsRefresh = (this.buffer.ydisp - amountToTrim < 0);
-                        this.buffer.lines.trimStart(amountToTrim);
-                        this.buffer.ybase = Math.max(this.buffer.ybase - amountToTrim, 0);
-                        this.buffer.ydisp = Math.max(this.buffer.ydisp - amountToTrim, 0);
-                        if (needsRefresh) {
-                            this.refresh(0, this.rows - 1);
-                        }
-                    }
-                }
-                break;
-        }
-        this.options[key] = value;
-        switch (key) {
-            case 'fontFamily':
-            case 'fontSize':
-                if (this.renderer) {
-                    this.renderer.clear();
-                    this.charMeasure.measure(this.options);
-                }
-                break;
-            case 'drawBoldTextInBrightColors':
-            case 'experimentalCharAtlas':
-            case 'enableBold':
-            case 'letterSpacing':
-            case 'lineHeight':
-            case 'fontWeight':
-            case 'fontWeightBold':
-                if (this.renderer) {
-                    this.renderer.clear();
-                    this.renderer.onResize(this.cols, this.rows);
-                    this.refresh(0, this.rows - 1);
-                }
-                break;
-            case 'rendererType':
-                if (this.renderer) {
-                    this.unregister(this.renderer);
-                    this.renderer.dispose();
-                    this.renderer = null;
-                }
-                this._setupRenderer();
-                this.renderer.onCharSizeChanged();
-                if (this._theme) {
-                    this.renderer.setTheme(this._theme);
-                }
-                this.mouseHelper.setRenderer(this.renderer);
-                break;
-            case 'scrollback':
-                this.buffers.resize(this.cols, this.rows);
-                if (this.viewport) {
-                    this.viewport.syncScrollArea();
-                }
-                break;
-            case 'screenReaderMode':
-                if (value) {
-                    if (!this._accessibilityManager) {
-                        this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);
-                    }
-                }
-                else {
-                    if (this._accessibilityManager) {
-                        this._accessibilityManager.dispose();
-                        this._accessibilityManager = null;
-                    }
-                }
-                break;
-            case 'tabStopWidth':
-                this.buffers.setupTabStops();
-                break;
-            case 'windowsMode':
-                if (value) {
-                    if (!this._windowsMode) {
-                        this._windowsMode = WindowsMode_1.applyWindowsMode(this);
-                    }
-                }
-                else {
-                    if (this._windowsMode) {
-                        this._windowsMode.dispose();
-                        this._windowsMode = undefined;
-                    }
-                }
-                break;
-        }
-        if (this.renderer) {
-            this.renderer.onOptionsChanged();
-        }
-    };
-    Terminal.prototype._onTextAreaFocus = function (ev) {
-        if (this.sendFocus) {
-            this.handler(EscapeSequences_1.C0.ESC + '[I');
-        }
-        this.updateCursorStyle(ev);
-        this.element.classList.add('focus');
-        this.showCursor();
-        this.emit('focus');
-    };
-    Terminal.prototype.blur = function () {
-        return this.textarea.blur();
-    };
-    Terminal.prototype._onTextAreaBlur = function () {
-        this.textarea.value = '';
-        this.refresh(this.buffer.y, this.buffer.y);
-        if (this.sendFocus) {
-            this.handler(EscapeSequences_1.C0.ESC + '[O');
-        }
-        this.element.classList.remove('focus');
-        this.emit('blur');
-    };
-    Terminal.prototype._initGlobal = function () {
-        var _this = this;
-        this._bindKeys();
-        this.register(Lifecycle_1.addDisposableDomListener(this.element, 'copy', function (event) {
-            if (!_this.hasSelection()) {
-                return;
-            }
-            Clipboard_1.copyHandler(event, _this, _this.selectionManager);
-        }));
-        var pasteHandlerWrapper = function (event) { return Clipboard_1.pasteHandler(event, _this); };
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'paste', pasteHandlerWrapper));
-        this.register(Lifecycle_1.addDisposableDomListener(this.element, 'paste', pasteHandlerWrapper));
-        if (Browser.isFirefox) {
-            this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (event) {
-                if (event.button === 2) {
-                    Clipboard_1.rightClickHandler(event, _this, _this.selectionManager, _this.options.rightClickSelectsWord);
-                }
-            }));
-        }
-        else {
-            this.register(Lifecycle_1.addDisposableDomListener(this.element, 'contextmenu', function (event) {
-                Clipboard_1.rightClickHandler(event, _this, _this.selectionManager, _this.options.rightClickSelectsWord);
-            }));
-        }
-        if (Browser.isLinux) {
-            this.register(Lifecycle_1.addDisposableDomListener(this.element, 'auxclick', function (event) {
-                if (event.button === 1) {
-                    Clipboard_1.moveTextAreaUnderMouseCursor(event, _this);
-                }
-            }));
-        }
-    };
-    Terminal.prototype._bindKeys = function () {
-        var _this = this;
-        var self = this;
-        this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keydown', function (ev) {
-            if (document.activeElement !== this) {
-                return;
-            }
-            self._keyDown(ev);
-        }, true));
-        this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keypress', function (ev) {
-            if (document.activeElement !== this) {
-                return;
-            }
-            self._keyPress(ev);
-        }, true));
-        this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keyup', function (ev) {
-            if (!wasModifierKeyOnlyEvent(ev)) {
-                _this.focus();
-            }
-            self._keyUp(ev);
-        }, true));
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keydown', function (ev) { return _this._keyDown(ev); }, true));
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keypress', function (ev) { return _this._keyPress(ev); }, true));
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionstart', function () { return _this._compositionHelper.compositionstart(); }));
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionupdate', function (e) { return _this._compositionHelper.compositionupdate(e); }));
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionend', function () { return _this._compositionHelper.compositionend(); }));
-        this.register(this.onRender(function () { return _this._compositionHelper.updateCompositionElements(); }));
-        this.register(this.onRender(function (e) { return _this._queueLinkification(e.start, e.end); }));
-    };
-    Terminal.prototype.open = function (parent) {
-        var _this = this;
-        this._parent = parent || this._parent;
-        if (!this._parent) {
-            throw new Error('Terminal requires a parent element.');
-        }
-        this._context = this._parent.ownerDocument.defaultView;
-        this._document = this._parent.ownerDocument;
-        this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();
-        this._screenDprMonitor.setListener(function () { return _this.emit('dprchange', window.devicePixelRatio); });
-        this.register(this._screenDprMonitor);
-        this.element = this._document.createElement('div');
-        this.element.dir = 'ltr';
-        this.element.classList.add('terminal');
-        this.element.classList.add('xterm');
-        this.element.setAttribute('tabindex', '0');
-        this._parent.appendChild(this.element);
-        var fragment = document.createDocumentFragment();
-        this._viewportElement = document.createElement('div');
-        this._viewportElement.classList.add('xterm-viewport');
-        fragment.appendChild(this._viewportElement);
-        this._viewportScrollArea = document.createElement('div');
-        this._viewportScrollArea.classList.add('xterm-scroll-area');
-        this._viewportElement.appendChild(this._viewportScrollArea);
-        this.screenElement = document.createElement('div');
-        this.screenElement.classList.add('xterm-screen');
-        this._helperContainer = document.createElement('div');
-        this._helperContainer.classList.add('xterm-helpers');
-        this.screenElement.appendChild(this._helperContainer);
-        fragment.appendChild(this.screenElement);
-        this._mouseZoneManager = new MouseZoneManager_1.MouseZoneManager(this);
-        this.register(this._mouseZoneManager);
-        this.register(this.onScroll(function () { return _this._mouseZoneManager.clearAll(); }));
-        this.linkifier.attachToDom(this._mouseZoneManager);
-        this.textarea = document.createElement('textarea');
-        this.textarea.classList.add('xterm-helper-textarea');
-        this.textarea.setAttribute('aria-label', Strings.promptLabel);
-        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.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'focus', function (ev) { return _this._onTextAreaFocus(ev); }));
-        this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'blur', function () { return _this._onTextAreaBlur(); }));
-        this._helperContainer.appendChild(this.textarea);
-        this._compositionView = document.createElement('div');
-        this._compositionView.classList.add('composition-view');
-        this._compositionHelper = new CompositionHelper_1.CompositionHelper(this.textarea, this._compositionView, this);
-        this._helperContainer.appendChild(this._compositionView);
-        this.charMeasure = new CharMeasure_1.CharMeasure(document, this._helperContainer);
-        this.element.appendChild(fragment);
-        this._setupRenderer();
-        this._theme = this.options.theme;
-        this.options.theme = null;
-        this.viewport = new Viewport_1.Viewport(this, this._viewportElement, this._viewportScrollArea, this.charMeasure);
-        this.viewport.onThemeChanged(this.renderer.colorManager.colors);
-        this.register(this.viewport);
-        this.register(this.onCursorMove(function () { return _this.renderer.onCursorMove(); }));
-        this.register(this.onResize(function () { return _this.renderer.onResize(_this.cols, _this.rows); }));
-        this.register(this.addDisposableListener('blur', function () { return _this.renderer.onBlur(); }));
-        this.register(this.addDisposableListener('focus', function () { return _this.renderer.onFocus(); }));
-        this.register(this.addDisposableListener('dprchange', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));
-        this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));
-        this.register(this.charMeasure.onCharSizeChanged(function () { return _this.renderer.onCharSizeChanged(); }));
-        this.register(this.renderer.onCanvasResize(function () { return _this.viewport.syncScrollArea(); }));
-        this.selectionManager = new SelectionManager_1.SelectionManager(this, this.charMeasure);
-        this.register(this.selectionManager.onSelectionChange(function () { return _this._onSelectionChange.fire(); }));
-        this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (e) { return _this.selectionManager.onMouseDown(e); }));
-        this.register(this.selectionManager.onRedrawRequest(function (e) { return _this.renderer.onSelectionChanged(e.start, e.end, e.columnSelectMode); }));
-        this.register(this.selectionManager.onLinuxMouseSelection(function (text) {
-            _this.textarea.value = text;
-            _this.textarea.focus();
-            _this.textarea.select();
-        }));
-        this.register(this.onScroll(function () {
-            _this.viewport.syncScrollArea();
-            _this.selectionManager.refresh();
-        }));
-        this.register(Lifecycle_1.addDisposableDomListener(this._viewportElement, 'scroll', function () { return _this.selectionManager.refresh(); }));
-        this.mouseHelper = new MouseHelper_1.MouseHelper(this.renderer);
-        this.element.classList.toggle('enable-mouse-events', this.mouseEvents);
-        if (this.mouseEvents) {
-            this.selectionManager.disable();
-        }
-        else {
-            this.selectionManager.enable();
-        }
-        if (this.options.screenReaderMode) {
-            this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);
-        }
-        this.charMeasure.measure(this.options);
-        this.refresh(0, this.rows - 1);
-        this._initGlobal();
-        this.bindMouse();
-    };
-    Terminal.prototype._setupRenderer = function () {
-        var _this = this;
-        switch (this.options.rendererType) {
-            case 'canvas':
-                this.renderer = new Renderer_1.Renderer(this, this.options.theme);
-                break;
-            case 'dom':
-                this.renderer = new DomRenderer_1.DomRenderer(this, this.options.theme);
-                break;
-            default: throw new Error("Unrecognized rendererType \"" + this.options.rendererType + "\"");
-        }
-        this.renderer.onRender(function (e) { return _this._onRender.fire(e); });
-        this.register(this.renderer);
-    };
-    Terminal.prototype._setTheme = function (theme) {
-        this._theme = theme;
-        var colors = this.renderer.setTheme(theme);
-        if (this.viewport) {
-            this.viewport.onThemeChanged(colors);
-        }
-    };
-    Terminal.prototype.bindMouse = function () {
-        var _this = this;
-        var el = this.element;
-        var self = this;
-        var pressed = 32;
-        function sendButton(ev) {
-            var button;
-            var pos;
-            button = getButton(ev);
-            pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.cols, self.rows);
-            if (!pos)
-                return;
-            sendEvent(button, pos);
-            switch (ev.overrideType || ev.type) {
-                case 'mousedown':
-                    pressed = button;
-                    break;
-                case 'mouseup':
-                    pressed = 32;
-                    break;
-                case 'wheel':
-                    break;
-            }
-        }
-        function sendMove(ev) {
-            var button = pressed;
-            var pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.cols, self.rows);
-            if (!pos)
-                return;
-            button += 32;
-            sendEvent(button, pos);
-        }
-        function encode(data, ch) {
-            if (!self.utfMouse) {
-                if (ch === 255) {
-                    data.push(0);
-                    return;
-                }
-                if (ch > 127)
-                    ch = 127;
-                data.push(ch);
-            }
-            else {
-                if (ch > 2047) {
-                    data.push(2047);
-                    return;
-                }
-                data.push(ch);
-            }
-        }
-        function sendEvent(button, pos) {
-            if (self._vt300Mouse) {
-                button &= 3;
-                pos.x -= 32;
-                pos.y -= 32;
-                var data_1 = EscapeSequences_1.C0.ESC + '[24';
-                if (button === 0)
-                    data_1 += '1';
-                else if (button === 1)
-                    data_1 += '3';
-                else if (button === 2)
-                    data_1 += '5';
-                else if (button === 3)
-                    return;
-                else
-                    data_1 += '0';
-                data_1 += '~[' + pos.x + ',' + pos.y + ']\r';
-                self.handler(data_1);
-                return;
-            }
-            if (self._decLocator) {
-                button &= 3;
-                pos.x -= 32;
-                pos.y -= 32;
-                if (button === 0)
-                    button = 2;
-                else if (button === 1)
-                    button = 4;
-                else if (button === 2)
-                    button = 6;
-                else if (button === 3)
-                    button = 3;
-                self.handler(EscapeSequences_1.C0.ESC + '['
-                    + button
-                    + ';'
-                    + (button === 3 ? 4 : 0)
-                    + ';'
-                    + pos.y
-                    + ';'
-                    + pos.x
-                    + ';'
-                    + pos.page || 0
-                    + '&w');
-                return;
-            }
-            if (self.urxvtMouse) {
-                pos.x -= 32;
-                pos.y -= 32;
-                pos.x++;
-                pos.y++;
-                self.handler(EscapeSequences_1.C0.ESC + '[' + button + ';' + pos.x + ';' + pos.y + 'M');
-                return;
-            }
-            if (self.sgrMouse) {
-                pos.x -= 32;
-                pos.y -= 32;
-                self.handler(EscapeSequences_1.C0.ESC + '[<'
-                    + (((button & 3) === 3 ? button & ~3 : button) - 32)
-                    + ';'
-                    + pos.x
-                    + ';'
-                    + pos.y
-                    + ((button & 3) === 3 ? 'm' : 'M'));
-                return;
-            }
-            var data = [];
-            encode(data, button);
-            encode(data, pos.x);
-            encode(data, pos.y);
-            self.handler(EscapeSequences_1.C0.ESC + '[M' + String.fromCharCode.apply(String, data));
-        }
-        function getButton(ev) {
-            var button;
-            var shift;
-            var meta;
-            var ctrl;
-            var mod;
-            switch (ev.overrideType || ev.type) {
-                case 'mousedown':
-                    button = ev.button !== null && ev.button !== undefined
-                        ? +ev.button
-                        : ev.which !== null && ev.which !== undefined
-                            ? ev.which - 1
-                            : null;
-                    if (Browser.isMSIE) {
-                        button = button === 1 ? 0 : button === 4 ? 1 : button;
-                    }
-                    break;
-                case 'mouseup':
-                    button = 3;
-                    break;
-                case 'DOMMouseScroll':
-                    button = ev.detail < 0
-                        ? 64
-                        : 65;
-                    break;
-                case 'wheel':
-                    button = ev.deltaY < 0
-                        ? 64
-                        : 65;
-                    break;
-            }
-            shift = ev.shiftKey ? 4 : 0;
-            meta = ev.metaKey ? 8 : 0;
-            ctrl = ev.ctrlKey ? 16 : 0;
-            mod = shift | meta | ctrl;
-            if (self.vt200Mouse) {
-                mod &= ctrl;
-            }
-            else if (!self.normalMouse) {
-                mod = 0;
-            }
-            button = (32 + (mod << 2)) + button;
-            return button;
-        }
-        this.register(Lifecycle_1.addDisposableDomListener(el, 'mousedown', function (ev) {
-            ev.preventDefault();
-            _this.focus();
-            if (!_this.mouseEvents || _this.selectionManager.shouldForceSelection(ev)) {
-                return;
-            }
-            sendButton(ev);
-            if (_this.vt200Mouse) {
-                ev.overrideType = 'mouseup';
-                sendButton(ev);
-                return _this.cancel(ev);
-            }
-            var moveHandler;
-            if (_this.normalMouse) {
-                moveHandler = function (event) {
-                    if (!_this.normalMouse) {
-                        return;
-                    }
-                    sendMove(event);
-                };
-                _this._document.addEventListener('mousemove', moveHandler);
-            }
-            var handler = function (ev) {
-                if (_this.normalMouse && !_this.x10Mouse) {
-                    sendButton(ev);
-                }
-                if (moveHandler) {
-                    _this._document.removeEventListener('mousemove', moveHandler);
-                    moveHandler = null;
-                }
-                _this._document.removeEventListener('mouseup', handler);
-                return _this.cancel(ev);
-            };
-            _this._document.addEventListener('mouseup', handler);
-            return _this.cancel(ev);
-        }));
-        this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {
-            if (!_this.mouseEvents) {
-                if (!_this.buffer.hasScrollback) {
-                    var amount = _this.viewport.getLinesScrolled(ev);
-                    if (amount === 0) {
-                        return;
-                    }
-                    var sequence = EscapeSequences_1.C0.ESC + (_this.applicationCursor ? 'O' : '[') + (ev.deltaY < 0 ? 'A' : 'B');
-                    var data = '';
-                    for (var i = 0; i < Math.abs(amount); i++) {
-                        data += sequence;
-                    }
-                    _this.handler(data);
-                }
-                return;
-            }
-            if (_this.x10Mouse || _this._vt300Mouse || _this._decLocator)
-                return;
-            sendButton(ev);
-            ev.preventDefault();
-        }));
-        this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {
-            if (_this.mouseEvents)
-                return;
-            _this.viewport.onWheel(ev);
-            return _this.cancel(ev);
-        }));
-        this.register(Lifecycle_1.addDisposableDomListener(el, 'touchstart', function (ev) {
-            if (_this.mouseEvents)
-                return;
-            _this.viewport.onTouchStart(ev);
-            return _this.cancel(ev);
-        }));
-        this.register(Lifecycle_1.addDisposableDomListener(el, 'touchmove', function (ev) {
-            if (_this.mouseEvents)
-                return;
-            _this.viewport.onTouchMove(ev);
-            return _this.cancel(ev);
-        }));
-    };
-    Terminal.prototype.refresh = function (start, end) {
-        if (this.renderer) {
-            this.renderer.refreshRows(start, end);
-        }
-    };
-    Terminal.prototype._queueLinkification = function (start, end) {
-        if (this.linkifier) {
-            this.linkifier.linkifyRows(start, end);
-        }
-    };
-    Terminal.prototype.updateCursorStyle = function (ev) {
-        if (this.selectionManager && this.selectionManager.shouldColumnSelect(ev)) {
-            this.element.classList.add('column-select');
-        }
-        else {
-            this.element.classList.remove('column-select');
-        }
-    };
-    Terminal.prototype.showCursor = function () {
-        if (!this.cursorState) {
-            this.cursorState = 1;
-            this.refresh(this.buffer.y, this.buffer.y);
-        }
-    };
-    Terminal.prototype.scroll = function (isWrapped) {
-        if (isWrapped === void 0) { isWrapped = false; }
-        var newLine;
-        newLine = this._blankLine;
-        var eraseAttr = this.eraseAttrData();
-        if (!newLine || newLine.length !== this.cols || newLine.getFg(0) !== eraseAttr.fg || newLine.getBg(0) !== eraseAttr.bg) {
-            newLine = this.buffer.getBlankLine(eraseAttr, isWrapped);
-            this._blankLine = newLine;
-        }
-        newLine.isWrapped = isWrapped;
-        var topRow = this.buffer.ybase + this.buffer.scrollTop;
-        var bottomRow = this.buffer.ybase + this.buffer.scrollBottom;
-        if (this.buffer.scrollTop === 0) {
-            var willBufferBeTrimmed = this.buffer.lines.isFull;
-            if (bottomRow === this.buffer.lines.length - 1) {
-                if (willBufferBeTrimmed) {
-                    this.buffer.lines.recycle().copyFrom(newLine);
-                }
-                else {
-                    this.buffer.lines.push(newLine.clone());
-                }
-            }
-            else {
-                this.buffer.lines.splice(bottomRow + 1, 0, newLine.clone());
-            }
-            if (!willBufferBeTrimmed) {
-                this.buffer.ybase++;
-                if (!this._userScrolling) {
-                    this.buffer.ydisp++;
-                }
-            }
-            else {
-                if (this._userScrolling) {
-                    this.buffer.ydisp = Math.max(this.buffer.ydisp - 1, 0);
-                }
-            }
-        }
-        else {
-            var scrollRegionHeight = bottomRow - topRow + 1;
-            this.buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1);
-            this.buffer.lines.set(bottomRow, newLine.clone());
-        }
-        if (!this._userScrolling) {
-            this.buffer.ydisp = this.buffer.ybase;
-        }
-        this.updateRange(this.buffer.scrollTop);
-        this.updateRange(this.buffer.scrollBottom);
-        this._onScroll.fire(this.buffer.ydisp);
-    };
-    Terminal.prototype.scrollLines = function (disp, suppressScrollEvent) {
-        if (disp < 0) {
-            if (this.buffer.ydisp === 0) {
-                return;
-            }
-            this._userScrolling = true;
-        }
-        else if (disp + this.buffer.ydisp >= this.buffer.ybase) {
-            this._userScrolling = false;
-        }
-        var oldYdisp = this.buffer.ydisp;
-        this.buffer.ydisp = Math.max(Math.min(this.buffer.ydisp + disp, this.buffer.ybase), 0);
-        if (oldYdisp === this.buffer.ydisp) {
-            return;
-        }
-        if (!suppressScrollEvent) {
-            this._onScroll.fire(this.buffer.ydisp);
-        }
-        this.refresh(0, this.rows - 1);
-    };
-    Terminal.prototype.scrollPages = function (pageCount) {
-        this.scrollLines(pageCount * (this.rows - 1));
-    };
-    Terminal.prototype.scrollToTop = function () {
-        this.scrollLines(-this.buffer.ydisp);
-    };
-    Terminal.prototype.scrollToBottom = function () {
-        this.scrollLines(this.buffer.ybase - this.buffer.ydisp);
-    };
-    Terminal.prototype.scrollToLine = function (line) {
-        var scrollAmount = line - this.buffer.ydisp;
-        if (scrollAmount !== 0) {
-            this.scrollLines(scrollAmount);
-        }
-    };
-    Terminal.prototype.write = function (data) {
-        var _this = this;
-        if (this._isDisposed) {
-            return;
-        }
-        if (!data) {
-            return;
-        }
-        this.writeBuffer.push(data);
-        if (this.options.useFlowControl && !this._xoffSentToCatchUp && this.writeBuffer.length >= WRITE_BUFFER_PAUSE_THRESHOLD) {
-            this.handler(EscapeSequences_1.C0.DC3);
-            this._xoffSentToCatchUp = true;
-        }
-        if (!this._writeInProgress && this.writeBuffer.length > 0) {
-            this._writeInProgress = true;
-            setTimeout(function () {
-                _this._innerWrite();
-            });
-        }
-    };
-    Terminal.prototype._innerWrite = function (bufferOffset) {
-        var _this = this;
-        if (bufferOffset === void 0) { bufferOffset = 0; }
-        if (this._isDisposed) {
-            this.writeBuffer = [];
-        }
-        var startTime = Date.now();
-        while (this.writeBuffer.length > bufferOffset) {
-            var data = this.writeBuffer[bufferOffset];
-            bufferOffset++;
-            if (this._xoffSentToCatchUp && this.writeBuffer.length === bufferOffset) {
-                this.handler(EscapeSequences_1.C0.DC1);
-                this._xoffSentToCatchUp = false;
-            }
-            this._refreshStart = this.buffer.y;
-            this._refreshEnd = this.buffer.y;
-            this._inputHandler.parse(data);
-            this.updateRange(this.buffer.y);
-            this.refresh(this._refreshStart, this._refreshEnd);
-            if (Date.now() - startTime >= WRITE_TIMEOUT_MS) {
-                break;
-            }
-        }
-        if (this.writeBuffer.length > bufferOffset) {
-            setTimeout(function () { return _this._innerWrite(bufferOffset); }, 0);
-        }
-        else {
-            this._writeInProgress = false;
-            this.writeBuffer = [];
-        }
-    };
-    Terminal.prototype.writeln = function (data) {
-        this.write(data + '\r\n');
-    };
-    Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {
-        this._customKeyEventHandler = customKeyEventHandler;
-    };
-    Terminal.prototype.addCsiHandler = function (flag, callback) {
-        return this._inputHandler.addCsiHandler(flag, callback);
-    };
-    Terminal.prototype.addOscHandler = function (ident, callback) {
-        return this._inputHandler.addOscHandler(ident, callback);
-    };
-    Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {
-        var matcherId = this.linkifier.registerLinkMatcher(regex, handler, options);
-        this.refresh(0, this.rows - 1);
-        return matcherId;
-    };
-    Terminal.prototype.deregisterLinkMatcher = function (matcherId) {
-        if (this.linkifier.deregisterLinkMatcher(matcherId)) {
-            this.refresh(0, this.rows - 1);
-        }
-    };
-    Terminal.prototype.registerCharacterJoiner = function (handler) {
-        var joinerId = this.renderer.registerCharacterJoiner(handler);
-        this.refresh(0, this.rows - 1);
-        return joinerId;
-    };
-    Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {
-        if (this.renderer.deregisterCharacterJoiner(joinerId)) {
-            this.refresh(0, this.rows - 1);
-        }
-    };
-    Object.defineProperty(Terminal.prototype, "markers", {
-        get: function () {
-            return this.buffer.markers;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Terminal.prototype.addMarker = function (cursorYOffset) {
-        if (this.buffer !== this.buffers.normal) {
-            return;
-        }
-        return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);
-    };
-    Terminal.prototype.hasSelection = function () {
-        return this.selectionManager ? this.selectionManager.hasSelection : false;
-    };
-    Terminal.prototype.getSelection = function () {
-        return this.selectionManager ? this.selectionManager.selectionText : '';
-    };
-    Terminal.prototype.clearSelection = function () {
-        if (this.selectionManager) {
-            this.selectionManager.clearSelection();
-        }
-    };
-    Terminal.prototype.selectAll = function () {
-        if (this.selectionManager) {
-            this.selectionManager.selectAll();
-        }
-    };
-    Terminal.prototype.selectLines = function (start, end) {
-        if (this.selectionManager) {
-            this.selectionManager.selectLines(start, end);
-        }
-    };
-    Terminal.prototype._keyDown = function (event) {
-        if (this._customKeyEventHandler && this._customKeyEventHandler(event) === false) {
-            return false;
-        }
-        if (!this._compositionHelper.keydown(event)) {
-            if (this.buffer.ybase !== this.buffer.ydisp) {
-                this.scrollToBottom();
-            }
-            return false;
-        }
-        var result = Keyboard_1.evaluateKeyboardEvent(event, this.applicationCursor, this.browser.isMac, this.options.macOptionIsMeta);
-        this.updateCursorStyle(event);
-        if (result.type === 3 || result.type === 2) {
-            var scrollCount = this.rows - 1;
-            this.scrollLines(result.type === 2 ? -scrollCount : scrollCount);
-            return this.cancel(event, true);
-        }
-        if (result.type === 1) {
-            this.selectAll();
-        }
-        if (this._isThirdLevelShift(this.browser, event)) {
-            return true;
-        }
-        if (result.cancel) {
-            this.cancel(event, true);
-        }
-        if (!result.key) {
-            return true;
-        }
-        this.emit('keydown', event);
-        this._onKey.fire({ key: result.key, domEvent: event });
-        this.showCursor();
-        this.handler(result.key);
-        return this.cancel(event, true);
-    };
-    Terminal.prototype._isThirdLevelShift = function (browser, ev) {
-        var thirdLevelKey = (browser.isMac && !this.options.macOptionIsMeta && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||
-            (browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);
-        if (ev.type === 'keypress') {
-            return thirdLevelKey;
-        }
-        return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);
-    };
-    Terminal.prototype.setgLevel = function (g) {
-        this.glevel = g;
-        this.charset = this.charsets[g];
-    };
-    Terminal.prototype.setgCharset = function (g, charset) {
-        this.charsets[g] = charset;
-        if (this.glevel === g) {
-            this.charset = charset;
-        }
-    };
-    Terminal.prototype._keyUp = function (ev) {
-        this.updateCursorStyle(ev);
-    };
-    Terminal.prototype._keyPress = function (ev) {
-        var key;
-        if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {
-            return false;
-        }
-        this.cancel(ev);
-        if (ev.charCode) {
-            key = ev.charCode;
-        }
-        else if (ev.which === null || ev.which === undefined) {
-            key = ev.keyCode;
-        }
-        else if (ev.which !== 0 && ev.charCode !== 0) {
-            key = ev.which;
-        }
-        else {
-            return false;
-        }
-        if (!key || ((ev.altKey || ev.ctrlKey || ev.metaKey) && !this._isThirdLevelShift(this.browser, ev))) {
-            return false;
-        }
-        key = String.fromCharCode(key);
-        this.emit('keypress', key, ev);
-        this._onKey.fire({ key: key, domEvent: ev });
-        this.showCursor();
-        this.handler(key);
-        return true;
-    };
-    Terminal.prototype.bell = function () {
-        var _this = this;
-        this.emit('bell');
-        if (this._soundBell()) {
-            this.soundManager.playBellSound();
-        }
-        if (this._visualBell()) {
-            this.element.classList.add('visual-bell-active');
-            clearTimeout(this._visualBellTimer);
-            this._visualBellTimer = window.setTimeout(function () {
-                _this.element.classList.remove('visual-bell-active');
-            }, 200);
-        }
-    };
-    Terminal.prototype.log = function (text, data) {
-        if (!this.options.debug)
-            return;
-        if (!this._context.console || !this._context.console.log)
-            return;
-        this._context.console.log(text, data);
-    };
-    Terminal.prototype.error = function (text, data) {
-        if (!this.options.debug)
-            return;
-        if (!this._context.console || !this._context.console.error)
-            return;
-        this._context.console.error(text, data);
-    };
-    Terminal.prototype.resize = function (x, y) {
-        if (isNaN(x) || isNaN(y)) {
-            return;
-        }
-        if (x === this.cols && y === this.rows) {
-            if (this.charMeasure && (!this.charMeasure.width || !this.charMeasure.height)) {
-                this.charMeasure.measure(this.options);
-            }
-            return;
-        }
-        if (x < MINIMUM_COLS)
-            x = MINIMUM_COLS;
-        if (y < MINIMUM_ROWS)
-            y = MINIMUM_ROWS;
-        this.buffers.resize(x, y);
-        this.cols = x;
-        this.rows = y;
-        this.buffers.setupTabStops(this.cols);
-        if (this.charMeasure) {
-            this.charMeasure.measure(this.options);
-        }
-        this.refresh(0, this.rows - 1);
-        this._onResize.fire({ cols: x, rows: y });
-    };
-    Terminal.prototype.updateRange = function (y) {
-        if (y < this._refreshStart)
-            this._refreshStart = y;
-        if (y > this._refreshEnd)
-            this._refreshEnd = y;
-    };
-    Terminal.prototype.maxRange = function () {
-        this._refreshStart = 0;
-        this._refreshEnd = this.rows - 1;
-    };
-    Terminal.prototype.clear = function () {
-        if (this.buffer.ybase === 0 && this.buffer.y === 0) {
-            return;
-        }
-        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 (var i = 1; i < this.rows; i++) {
-            this.buffer.lines.push(this.buffer.getBlankLine(Buffer_1.DEFAULT_ATTR_DATA));
-        }
-        this.refresh(0, this.rows - 1);
-        this._onScroll.fire(this.buffer.ydisp);
-    };
-    Terminal.prototype.is = function (term) {
-        return (this.options.termName + '').indexOf(term) === 0;
-    };
-    Terminal.prototype.handler = function (data) {
-        if (this.options.disableStdin) {
-            return;
-        }
-        if (this.selectionManager && this.selectionManager.hasSelection) {
-            this.selectionManager.clearSelection();
-        }
-        if (this.buffer.ybase !== this.buffer.ydisp) {
-            this.scrollToBottom();
-        }
-        this._onData.fire(data);
-    };
-    Terminal.prototype.handleTitle = function (title) {
-        this._onTitleChange.fire(title);
-    };
-    Terminal.prototype.index = function () {
-        this.buffer.y++;
-        if (this.buffer.y > this.buffer.scrollBottom) {
-            this.buffer.y--;
-            this.scroll();
-        }
-        if (this.buffer.x >= this.cols) {
-            this.buffer.x--;
-        }
-    };
-    Terminal.prototype.reverseIndex = function () {
-        if (this.buffer.y === this.buffer.scrollTop) {
-            var scrollRegionHeight = this.buffer.scrollBottom - this.buffer.scrollTop;
-            this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, scrollRegionHeight, 1);
-            this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.buffer.getBlankLine(this.eraseAttrData()));
-            this.updateRange(this.buffer.scrollTop);
-            this.updateRange(this.buffer.scrollBottom);
-        }
-        else {
-            this.buffer.y--;
-        }
-    };
-    Terminal.prototype.reset = function () {
-        this.options.rows = this.rows;
-        this.options.cols = this.cols;
-        var customKeyEventHandler = this._customKeyEventHandler;
-        var inputHandler = this._inputHandler;
-        var cursorState = this.cursorState;
-        this._setup();
-        this._customKeyEventHandler = customKeyEventHandler;
-        this._inputHandler = inputHandler;
-        this.cursorState = cursorState;
-        this.refresh(0, this.rows - 1);
-        if (this.viewport) {
-            this.viewport.syncScrollArea();
-        }
-    };
-    Terminal.prototype.tabSet = function () {
-        this.buffer.tabs[this.buffer.x] = true;
-    };
-    Terminal.prototype.cancel = function (ev, force) {
-        if (!this.options.cancelEvents && !force) {
-            return;
-        }
-        ev.preventDefault();
-        ev.stopPropagation();
-        return false;
-    };
-    Terminal.prototype._visualBell = function () {
-        return false;
-    };
-    Terminal.prototype._soundBell = function () {
-        return this.options.bellStyle === 'sound';
-    };
-    return Terminal;
-}(EventEmitter_1.EventEmitter));
-exports.Terminal = Terminal;
-function wasModifierKeyOnlyEvent(ev) {
-    return ev.keyCode === 16 ||
-        ev.keyCode === 17 ||
-        ev.keyCode === 18;
-}
-
-},{"./AccessibilityManager":1,"./Buffer":2,"./BufferSet":5,"./CharMeasure":6,"./Clipboard":8,"./CompositionHelper":9,"./InputHandler":11,"./Linkifier":12,"./MouseHelper":13,"./MouseZoneManager":14,"./SelectionManager":15,"./SoundManager":17,"./Strings":18,"./Viewport":20,"./WindowsMode":21,"./common/Clone":23,"./common/EventEmitter":24,"./common/EventEmitter2":25,"./common/Platform":27,"./common/data/EscapeSequences":29,"./core/input/Keyboard":31,"./renderer/Renderer":41,"./renderer/atlas/CharAtlasCache":45,"./renderer/dom/DomRenderer":53,"./ui/Lifecycle":55,"./ui/ScreenDprMonitor":57}],20:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Lifecycle_1 = require("./common/Lifecycle");
-var Lifecycle_2 = require("./ui/Lifecycle");
-var FALLBACK_SCROLL_BAR_WIDTH = 15;
-var Viewport = (function (_super) {
-    __extends(Viewport, _super);
-    function Viewport(_terminal, _viewportElement, _scrollArea, _charMeasure) {
-        var _this = _super.call(this) || this;
-        _this._terminal = _terminal;
-        _this._viewportElement = _viewportElement;
-        _this._scrollArea = _scrollArea;
-        _this._charMeasure = _charMeasure;
-        _this.scrollBarWidth = 0;
-        _this._currentRowHeight = 0;
-        _this._lastRecordedBufferLength = 0;
-        _this._lastRecordedViewportHeight = 0;
-        _this._lastRecordedBufferHeight = 0;
-        _this._lastScrollTop = 0;
-        _this._wheelPartialScroll = 0;
-        _this._refreshAnimationFrame = null;
-        _this._ignoreNextScrollEvent = false;
-        _this.scrollBarWidth = (_this._viewportElement.offsetWidth - _this._scrollArea.offsetWidth) || FALLBACK_SCROLL_BAR_WIDTH;
-        _this.register(Lifecycle_2.addDisposableDomListener(_this._viewportElement, 'scroll', _this._onScroll.bind(_this)));
-        setTimeout(function () { return _this.syncScrollArea(); }, 0);
-        return _this;
-    }
-    Viewport.prototype.onThemeChanged = function (colors) {
-        this._viewportElement.style.backgroundColor = colors.background.css;
-    };
-    Viewport.prototype._refresh = function () {
-        var _this = this;
-        if (this._refreshAnimationFrame === null) {
-            this._refreshAnimationFrame = requestAnimationFrame(function () { return _this._innerRefresh(); });
-        }
-    };
-    Viewport.prototype._innerRefresh = function () {
-        if (this._charMeasure.height > 0) {
-            this._currentRowHeight = this._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio;
-            this._lastRecordedViewportHeight = this._viewportElement.offsetHeight;
-            var newBufferHeight = Math.round(this._currentRowHeight * this._lastRecordedBufferLength) + (this._lastRecordedViewportHeight - this._terminal.renderer.dimensions.canvasHeight);
-            if (this._lastRecordedBufferHeight !== newBufferHeight) {
-                this._lastRecordedBufferHeight = newBufferHeight;
-                this._scrollArea.style.height = this._lastRecordedBufferHeight + 'px';
-            }
-        }
-        var scrollTop = this._terminal.buffer.ydisp * this._currentRowHeight;
-        if (this._viewportElement.scrollTop !== scrollTop) {
-            this._ignoreNextScrollEvent = true;
-            this._viewportElement.scrollTop = scrollTop;
-        }
-        this._refreshAnimationFrame = null;
-    };
-    Viewport.prototype.syncScrollArea = function () {
-        if (this._lastRecordedBufferLength !== this._terminal.buffer.lines.length) {
-            this._lastRecordedBufferLength = this._terminal.buffer.lines.length;
-            this._refresh();
-            return;
-        }
-        if (this._lastRecordedViewportHeight !== this._terminal.renderer.dimensions.canvasHeight) {
-            this._refresh();
-            return;
-        }
-        var newScrollTop = this._terminal.buffer.ydisp * this._currentRowHeight;
-        if (this._lastScrollTop !== newScrollTop) {
-            this._refresh();
-            return;
-        }
-        if (this._lastScrollTop !== this._viewportElement.scrollTop) {
-            this._refresh();
-            return;
-        }
-        if (this._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio !== this._currentRowHeight) {
-            this._refresh();
-            return;
-        }
-    };
-    Viewport.prototype._onScroll = function (ev) {
-        this._lastScrollTop = this._viewportElement.scrollTop;
-        if (!this._viewportElement.offsetParent) {
-            return;
-        }
-        if (this._ignoreNextScrollEvent) {
-            this._ignoreNextScrollEvent = false;
-            return;
-        }
-        var newRow = Math.round(this._lastScrollTop / this._currentRowHeight);
-        var diff = newRow - this._terminal.buffer.ydisp;
-        this._terminal.scrollLines(diff, true);
-    };
-    Viewport.prototype.onWheel = function (ev) {
-        var amount = this._getPixelsScrolled(ev);
-        if (amount === 0) {
-            return;
-        }
-        this._viewportElement.scrollTop += amount;
-        ev.preventDefault();
-    };
-    Viewport.prototype._getPixelsScrolled = function (ev) {
-        if (ev.deltaY === 0) {
-            return 0;
-        }
-        var amount = ev.deltaY;
-        if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) {
-            amount *= this._currentRowHeight;
-        }
-        else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {
-            amount *= this._currentRowHeight * this._terminal.rows;
-        }
-        return amount;
-    };
-    Viewport.prototype.getLinesScrolled = function (ev) {
-        if (ev.deltaY === 0) {
-            return 0;
-        }
-        var amount = ev.deltaY;
-        if (ev.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {
-            amount /= this._currentRowHeight + 0.0;
-            this._wheelPartialScroll += amount;
-            amount = Math.floor(Math.abs(this._wheelPartialScroll)) * (this._wheelPartialScroll > 0 ? 1 : -1);
-            this._wheelPartialScroll %= 1;
-        }
-        else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {
-            amount *= this._terminal.rows;
-        }
-        return amount;
-    };
-    Viewport.prototype.onTouchStart = function (ev) {
-        this._lastTouchY = ev.touches[0].pageY;
-    };
-    Viewport.prototype.onTouchMove = function (ev) {
-        var deltaY = this._lastTouchY - ev.touches[0].pageY;
-        this._lastTouchY = ev.touches[0].pageY;
-        if (deltaY === 0) {
-            return;
-        }
-        this._viewportElement.scrollTop += deltaY;
-        ev.preventDefault();
-    };
-    return Viewport;
-}(Lifecycle_1.Disposable));
-exports.Viewport = Viewport;
-
-},{"./common/Lifecycle":26,"./ui/Lifecycle":55}],21:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Buffer_1 = require("./Buffer");
-function applyWindowsMode(terminal) {
-    return terminal.onLineFeed(function () {
-        var line = terminal.buffer.lines.get(terminal.buffer.ybase + terminal.buffer.y - 1);
-        var lastChar = line.get(terminal.cols - 1);
-        if (lastChar[Buffer_1.CHAR_DATA_CODE_INDEX] !== Buffer_1.NULL_CELL_CODE && lastChar[Buffer_1.CHAR_DATA_CODE_INDEX] !== Buffer_1.WHITESPACE_CELL_CODE) {
-            var nextLine = terminal.buffer.lines.get(terminal.buffer.ybase + terminal.buffer.y);
-            nextLine.isWrapped = true;
-        }
-    });
-}
-exports.applyWindowsMode = applyWindowsMode;
-
-},{"./Buffer":2}],22:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EventEmitter2_1 = require("./EventEmitter2");
-var CircularList = (function () {
-    function CircularList(_maxLength) {
-        this._maxLength = _maxLength;
-        this.onDeleteEmitter = new EventEmitter2_1.EventEmitter2();
-        this.onInsertEmitter = new EventEmitter2_1.EventEmitter2();
-        this.onTrimEmitter = new EventEmitter2_1.EventEmitter2();
-        this._array = new Array(this._maxLength);
-        this._startIndex = 0;
-        this._length = 0;
-    }
-    Object.defineProperty(CircularList.prototype, "onDelete", {
-        get: function () { return this.onDeleteEmitter.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(CircularList.prototype, "onInsert", {
-        get: function () { return this.onInsertEmitter.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(CircularList.prototype, "onTrim", {
-        get: function () { return this.onTrimEmitter.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(CircularList.prototype, "maxLength", {
-        get: function () {
-            return this._maxLength;
-        },
-        set: function (newMaxLength) {
-            if (this._maxLength === newMaxLength) {
-                return;
-            }
-            var newArray = new Array(newMaxLength);
-            for (var i = 0; i < Math.min(newMaxLength, this.length); i++) {
-                newArray[i] = this._array[this._getCyclicIndex(i)];
-            }
-            this._array = newArray;
-            this._maxLength = newMaxLength;
-            this._startIndex = 0;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(CircularList.prototype, "length", {
-        get: function () {
-            return this._length;
-        },
-        set: function (newLength) {
-            if (newLength > this._length) {
-                for (var i = this._length; i < newLength; i++) {
-                    this._array[i] = undefined;
-                }
-            }
-            this._length = newLength;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    CircularList.prototype.get = function (index) {
-        return this._array[this._getCyclicIndex(index)];
-    };
-    CircularList.prototype.set = function (index, value) {
-        this._array[this._getCyclicIndex(index)] = value;
-    };
-    CircularList.prototype.push = function (value) {
-        this._array[this._getCyclicIndex(this._length)] = value;
-        if (this._length === this._maxLength) {
-            this._startIndex = ++this._startIndex % this._maxLength;
-            this.onTrimEmitter.fire(1);
-        }
-        else {
-            this._length++;
-        }
-    };
-    CircularList.prototype.recycle = function () {
-        if (this._length !== this._maxLength) {
-            throw new Error('Can only recycle when the buffer is full');
-        }
-        this._startIndex = ++this._startIndex % this._maxLength;
-        this.onTrimEmitter.fire(1);
-        return this._array[this._getCyclicIndex(this._length - 1)];
-    };
-    Object.defineProperty(CircularList.prototype, "isFull", {
-        get: function () {
-            return this._length === this._maxLength;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    CircularList.prototype.pop = function () {
-        return this._array[this._getCyclicIndex(this._length-- - 1)];
-    };
-    CircularList.prototype.splice = function (start, deleteCount) {
-        var items = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            items[_i - 2] = arguments[_i];
-        }
-        if (deleteCount) {
-            for (var i = start; i < this._length - deleteCount; i++) {
-                this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)];
-            }
-            this._length -= deleteCount;
-        }
-        for (var i = this._length - 1; i >= start; i--) {
-            this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)];
-        }
-        for (var i = 0; i < items.length; i++) {
-            this._array[this._getCyclicIndex(start + i)] = items[i];
-        }
-        if (this._length + items.length > this._maxLength) {
-            var countToTrim = (this._length + items.length) - this._maxLength;
-            this._startIndex += countToTrim;
-            this._length = this._maxLength;
-            this.onTrimEmitter.fire(countToTrim);
-        }
-        else {
-            this._length += items.length;
-        }
-    };
-    CircularList.prototype.trimStart = function (count) {
-        if (count > this._length) {
-            count = this._length;
-        }
-        this._startIndex += count;
-        this._length -= count;
-        this.onTrimEmitter.fire(count);
-    };
-    CircularList.prototype.shiftElements = function (start, count, offset) {
-        if (count <= 0) {
-            return;
-        }
-        if (start < 0 || start >= this._length) {
-            throw new Error('start argument out of range');
-        }
-        if (start + offset < 0) {
-            throw new Error('Cannot shift elements in list beyond index 0');
-        }
-        if (offset > 0) {
-            for (var i = count - 1; i >= 0; i--) {
-                this.set(start + i + offset, this.get(start + i));
-            }
-            var expandListBy = (start + count + offset) - this._length;
-            if (expandListBy > 0) {
-                this._length += expandListBy;
-                while (this._length > this._maxLength) {
-                    this._length--;
-                    this._startIndex++;
-                    this.onTrimEmitter.fire(1);
-                }
-            }
-        }
-        else {
-            for (var i = 0; i < count; i++) {
-                this.set(start + i + offset, this.get(start + i));
-            }
-        }
-    };
-    CircularList.prototype._getCyclicIndex = function (index) {
-        return (this._startIndex + index) % this._maxLength;
-    };
-    return CircularList;
-}());
-exports.CircularList = CircularList;
-
-},{"./EventEmitter2":25}],23:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function clone(val, depth) {
-    if (depth === void 0) { depth = 5; }
-    if (typeof val !== 'object') {
-        return val;
-    }
-    if (val === null) {
-        return null;
-    }
-    var clonedObject = Array.isArray(val) ? [] : {};
-    for (var key in val) {
-        clonedObject[key] = depth <= 1 ? val[key] : clone(val[key], depth - 1);
-    }
-    return clonedObject;
-}
-exports.clone = clone;
-
-},{}],24:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Lifecycle_1 = require("./Lifecycle");
-var EventEmitter = (function (_super) {
-    __extends(EventEmitter, _super);
-    function EventEmitter() {
-        var _this = _super.call(this) || this;
-        _this._events = _this._events || {};
-        return _this;
-    }
-    EventEmitter.prototype.on = function (type, listener) {
-        this._events[type] = this._events[type] || [];
-        this._events[type].push(listener);
-    };
-    EventEmitter.prototype.addDisposableListener = function (type, handler) {
-        var _this = this;
-        this.on(type, handler);
-        var disposed = false;
-        return {
-            dispose: function () {
-                if (disposed) {
-                    return;
-                }
-                _this.off(type, handler);
-                disposed = true;
-            }
-        };
-    };
-    EventEmitter.prototype.off = function (type, listener) {
-        if (!this._events[type]) {
-            return;
-        }
-        var obj = this._events[type];
-        var i = obj.length;
-        while (i--) {
-            if (obj[i] === listener) {
-                obj.splice(i, 1);
-                return;
-            }
-        }
-    };
-    EventEmitter.prototype.removeAllListeners = function (type) {
-        if (this._events[type]) {
-            delete this._events[type];
-        }
-    };
-    EventEmitter.prototype.emit = function (type) {
-        var args = [];
-        for (var _i = 1; _i < arguments.length; _i++) {
-            args[_i - 1] = arguments[_i];
-        }
-        if (!this._events[type]) {
-            return;
-        }
-        var obj = this._events[type];
-        for (var i = 0; i < obj.length; i++) {
-            obj[i].apply(this, args);
-        }
-    };
-    EventEmitter.prototype.emitMayRemoveListeners = function (type) {
-        var args = [];
-        for (var _i = 1; _i < arguments.length; _i++) {
-            args[_i - 1] = arguments[_i];
-        }
-        if (!this._events[type]) {
-            return;
-        }
-        var obj = this._events[type];
-        var length = obj.length;
-        for (var i = 0; i < obj.length; i++) {
-            obj[i].apply(this, args);
-            i -= length - obj.length;
-            length = obj.length;
-        }
-    };
-    EventEmitter.prototype.listeners = function (type) {
-        return this._events[type] || [];
-    };
-    EventEmitter.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        this._events = {};
-    };
-    return EventEmitter;
-}(Lifecycle_1.Disposable));
-exports.EventEmitter = EventEmitter;
-
-},{"./Lifecycle":26}],25:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EventEmitter2 = (function () {
-    function EventEmitter2() {
-        this._listeners = [];
-    }
-    Object.defineProperty(EventEmitter2.prototype, "event", {
-        get: function () {
-            var _this = this;
-            if (!this._event) {
-                this._event = function (listener) {
-                    _this._listeners.push(listener);
-                    var disposable = {
-                        dispose: function () {
-                            for (var i = 0; i < _this._listeners.length; i++) {
-                                if (_this._listeners[i] === listener) {
-                                    _this._listeners.splice(i, 1);
-                                    return;
-                                }
-                            }
-                        }
-                    };
-                    return disposable;
-                };
-            }
-            return this._event;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    EventEmitter2.prototype.fire = function (data) {
-        var queue = [];
-        for (var i = 0; i < this._listeners.length; i++) {
-            queue.push(this._listeners[i]);
-        }
-        for (var i = 0; i < queue.length; i++) {
-            queue[i].call(undefined, data);
-        }
-    };
-    return EventEmitter2;
-}());
-exports.EventEmitter2 = EventEmitter2;
-
-},{}],26:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Disposable = (function () {
-    function Disposable() {
-        this._disposables = [];
-        this._isDisposed = false;
-    }
-    Disposable.prototype.dispose = function () {
-        this._isDisposed = true;
-        this._disposables.forEach(function (d) { return d.dispose(); });
-        this._disposables.length = 0;
-    };
-    Disposable.prototype.register = function (d) {
-        this._disposables.push(d);
-    };
-    Disposable.prototype.unregister = function (d) {
-        var index = this._disposables.indexOf(d);
-        if (index !== -1) {
-            this._disposables.splice(index, 1);
-        }
-    };
-    return Disposable;
-}());
-exports.Disposable = Disposable;
-
-},{}],27:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var isNode = (typeof navigator === 'undefined') ? true : false;
-var userAgent = (isNode) ? 'node' : navigator.userAgent;
-var platform = (isNode) ? 'node' : navigator.platform;
-exports.isFirefox = !!~userAgent.indexOf('Firefox');
-exports.isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);
-exports.isMSIE = !!~userAgent.indexOf('MSIE') || !!~userAgent.indexOf('Trident');
-exports.isMac = contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);
-exports.isIpad = platform === 'iPad';
-exports.isIphone = platform === 'iPhone';
-exports.isMSWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);
-exports.isLinux = platform.indexOf('Linux') >= 0;
-function contains(arr, el) {
-    return arr.indexOf(el) >= 0;
-}
-
-},{}],28:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function fill(array, value, start, end) {
-    if (array.fill) {
-        return array.fill(value, start, end);
-    }
-    return fillFallback(array, value, start, end);
-}
-exports.fill = fill;
-function fillFallback(array, value, start, end) {
-    if (start === void 0) { start = 0; }
-    if (end === void 0) { end = array.length; }
-    if (start >= array.length) {
-        return array;
-    }
-    start = (array.length + start) % array.length;
-    if (end >= array.length) {
-        end = array.length;
-    }
-    else {
-        end = (array.length + end) % array.length;
-    }
-    for (var i = start; i < end; ++i) {
-        array[i] = value;
-    }
-    return array;
-}
-exports.fillFallback = fillFallback;
-function concat(a, b) {
-    var result = new a.constructor(a.length + b.length);
-    result.set(a);
-    result.set(b, a.length);
-    return result;
-}
-exports.concat = concat;
-
-},{}],29:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var C0;
-(function (C0) {
-    C0.NUL = '\x00';
-    C0.SOH = '\x01';
-    C0.STX = '\x02';
-    C0.ETX = '\x03';
-    C0.EOT = '\x04';
-    C0.ENQ = '\x05';
-    C0.ACK = '\x06';
-    C0.BEL = '\x07';
-    C0.BS = '\x08';
-    C0.HT = '\x09';
-    C0.LF = '\x0a';
-    C0.VT = '\x0b';
-    C0.FF = '\x0c';
-    C0.CR = '\x0d';
-    C0.SO = '\x0e';
-    C0.SI = '\x0f';
-    C0.DLE = '\x10';
-    C0.DC1 = '\x11';
-    C0.DC2 = '\x12';
-    C0.DC3 = '\x13';
-    C0.DC4 = '\x14';
-    C0.NAK = '\x15';
-    C0.SYN = '\x16';
-    C0.ETB = '\x17';
-    C0.CAN = '\x18';
-    C0.EM = '\x19';
-    C0.SUB = '\x1a';
-    C0.ESC = '\x1b';
-    C0.FS = '\x1c';
-    C0.GS = '\x1d';
-    C0.RS = '\x1e';
-    C0.US = '\x1f';
-    C0.SP = '\x20';
-    C0.DEL = '\x7f';
-})(C0 = exports.C0 || (exports.C0 = {}));
-var C1;
-(function (C1) {
-    C1.PAD = '\x80';
-    C1.HOP = '\x81';
-    C1.BPH = '\x82';
-    C1.NBH = '\x83';
-    C1.IND = '\x84';
-    C1.NEL = '\x85';
-    C1.SSA = '\x86';
-    C1.ESA = '\x87';
-    C1.HTS = '\x88';
-    C1.HTJ = '\x89';
-    C1.VTS = '\x8a';
-    C1.PLD = '\x8b';
-    C1.PLU = '\x8c';
-    C1.RI = '\x8d';
-    C1.SS2 = '\x8e';
-    C1.SS3 = '\x8f';
-    C1.DCS = '\x90';
-    C1.PU1 = '\x91';
-    C1.PU2 = '\x92';
-    C1.STS = '\x93';
-    C1.CCH = '\x94';
-    C1.MW = '\x95';
-    C1.SPA = '\x96';
-    C1.EPA = '\x97';
-    C1.SOS = '\x98';
-    C1.SGCI = '\x99';
-    C1.SCI = '\x9a';
-    C1.CSI = '\x9b';
-    C1.ST = '\x9c';
-    C1.OSC = '\x9d';
-    C1.PM = '\x9e';
-    C1.APC = '\x9f';
-})(C1 = exports.C1 || (exports.C1 = {}));
-
-},{}],30:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.CHARSETS = {};
-exports.DEFAULT_CHARSET = exports.CHARSETS['B'];
-exports.CHARSETS['0'] = {
-    '`': '\u25c6',
-    'a': '\u2592',
-    'b': '\u0009',
-    'c': '\u000c',
-    'd': '\u000d',
-    'e': '\u000a',
-    'f': '\u00b0',
-    'g': '\u00b1',
-    'h': '\u2424',
-    'i': '\u000b',
-    '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',
-    '}': '\u00a3',
-    '~': '\u00b7'
-};
-exports.CHARSETS['A'] = {
-    '#': '£'
-};
-exports.CHARSETS['B'] = null;
-exports.CHARSETS['4'] = {
-    '#': '£',
-    '@': '¾',
-    '[': 'ij',
-    '\\': '½',
-    ']': '|',
-    '{': '¨',
-    '|': 'f',
-    '}': '¼',
-    '~': '´'
-};
-exports.CHARSETS['C'] =
-    exports.CHARSETS['5'] = {
-        '[': 'Ä',
-        '\\': 'Ö',
-        ']': 'Å',
-        '^': 'Ü',
-        '`': 'é',
-        '{': 'ä',
-        '|': 'ö',
-        '}': 'å',
-        '~': 'ü'
-    };
-exports.CHARSETS['R'] = {
-    '#': '£',
-    '@': 'à',
-    '[': '°',
-    '\\': 'ç',
-    ']': '§',
-    '{': 'é',
-    '|': 'ù',
-    '}': 'è',
-    '~': '¨'
-};
-exports.CHARSETS['Q'] = {
-    '@': 'à',
-    '[': 'â',
-    '\\': 'ç',
-    ']': 'ê',
-    '^': 'î',
-    '`': 'ô',
-    '{': 'é',
-    '|': 'ù',
-    '}': 'è',
-    '~': 'û'
-};
-exports.CHARSETS['K'] = {
-    '@': '§',
-    '[': 'Ä',
-    '\\': 'Ö',
-    ']': 'Ü',
-    '{': 'ä',
-    '|': 'ö',
-    '}': 'ü',
-    '~': 'ß'
-};
-exports.CHARSETS['Y'] = {
-    '#': '£',
-    '@': '§',
-    '[': '°',
-    '\\': 'ç',
-    ']': 'é',
-    '`': 'ù',
-    '{': 'à',
-    '|': 'ò',
-    '}': 'è',
-    '~': 'ì'
-};
-exports.CHARSETS['E'] =
-    exports.CHARSETS['6'] = {
-        '@': 'Ä',
-        '[': 'Æ',
-        '\\': 'Ø',
-        ']': 'Å',
-        '^': 'Ü',
-        '`': 'ä',
-        '{': 'æ',
-        '|': 'ø',
-        '}': 'å',
-        '~': 'ü'
-    };
-exports.CHARSETS['Z'] = {
-    '#': '£',
-    '@': '§',
-    '[': '¡',
-    '\\': 'Ñ',
-    ']': '¿',
-    '{': '°',
-    '|': 'ñ',
-    '}': 'ç'
-};
-exports.CHARSETS['H'] =
-    exports.CHARSETS['7'] = {
-        '@': 'É',
-        '[': 'Ä',
-        '\\': 'Ö',
-        ']': 'Å',
-        '^': 'Ü',
-        '`': 'é',
-        '{': 'ä',
-        '|': 'ö',
-        '}': 'å',
-        '~': 'ü'
-    };
-exports.CHARSETS['='] = {
-    '#': 'ù',
-    '@': 'à',
-    '[': 'é',
-    '\\': 'ç',
-    ']': 'ê',
-    '^': 'î',
-    '_': 'è',
-    '`': 'ô',
-    '{': 'ä',
-    '|': 'ö',
-    '}': 'ü',
-    '~': 'û'
-};
-
-},{}],31:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EscapeSequences_1 = require("../../common/data/EscapeSequences");
-var KEYCODE_KEY_MAPPINGS = {
-    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: ['\'', '"']
-};
-function evaluateKeyboardEvent(ev, applicationCursorMode, isMac, macOptionIsMeta) {
-    var result = {
-        type: 0,
-        cancel: false,
-        key: undefined
-    };
-    var modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0);
-    switch (ev.keyCode) {
-        case 0:
-            if (ev.key === 'UIKeyInputUpArrow') {
-                if (applicationCursorMode) {
-                    result.key = EscapeSequences_1.C0.ESC + 'OA';
-                }
-                else {
-                    result.key = EscapeSequences_1.C0.ESC + '[A';
-                }
-            }
-            else if (ev.key === 'UIKeyInputLeftArrow') {
-                if (applicationCursorMode) {
-                    result.key = EscapeSequences_1.C0.ESC + 'OD';
-                }
-                else {
-                    result.key = EscapeSequences_1.C0.ESC + '[D';
-                }
-            }
-            else if (ev.key === 'UIKeyInputRightArrow') {
-                if (applicationCursorMode) {
-                    result.key = EscapeSequences_1.C0.ESC + 'OC';
-                }
-                else {
-                    result.key = EscapeSequences_1.C0.ESC + '[C';
-                }
-            }
-            else if (ev.key === 'UIKeyInputDownArrow') {
-                if (applicationCursorMode) {
-                    result.key = EscapeSequences_1.C0.ESC + 'OB';
-                }
-                else {
-                    result.key = EscapeSequences_1.C0.ESC + '[B';
-                }
-            }
-            break;
-        case 8:
-            if (ev.shiftKey) {
-                result.key = EscapeSequences_1.C0.BS;
-                break;
-            }
-            else if (ev.altKey) {
-                result.key = EscapeSequences_1.C0.ESC + EscapeSequences_1.C0.DEL;
-                break;
-            }
-            result.key = EscapeSequences_1.C0.DEL;
-            break;
-        case 9:
-            if (ev.shiftKey) {
-                result.key = EscapeSequences_1.C0.ESC + '[Z';
-                break;
-            }
-            result.key = EscapeSequences_1.C0.HT;
-            result.cancel = true;
-            break;
-        case 13:
-            result.key = EscapeSequences_1.C0.CR;
-            result.cancel = true;
-            break;
-        case 27:
-            result.key = EscapeSequences_1.C0.ESC;
-            result.cancel = true;
-            break;
-        case 37:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'D';
-                if (result.key === EscapeSequences_1.C0.ESC + '[1;3D') {
-                    result.key = isMac ? EscapeSequences_1.C0.ESC + 'b' : EscapeSequences_1.C0.ESC + '[1;5D';
-                }
-            }
-            else if (applicationCursorMode) {
-                result.key = EscapeSequences_1.C0.ESC + 'OD';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[D';
-            }
-            break;
-        case 39:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'C';
-                if (result.key === EscapeSequences_1.C0.ESC + '[1;3C') {
-                    result.key = isMac ? EscapeSequences_1.C0.ESC + 'f' : EscapeSequences_1.C0.ESC + '[1;5C';
-                }
-            }
-            else if (applicationCursorMode) {
-                result.key = EscapeSequences_1.C0.ESC + 'OC';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[C';
-            }
-            break;
-        case 38:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'A';
-                if (result.key === EscapeSequences_1.C0.ESC + '[1;3A') {
-                    result.key = EscapeSequences_1.C0.ESC + '[1;5A';
-                }
-            }
-            else if (applicationCursorMode) {
-                result.key = EscapeSequences_1.C0.ESC + 'OA';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[A';
-            }
-            break;
-        case 40:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'B';
-                if (result.key === EscapeSequences_1.C0.ESC + '[1;3B') {
-                    result.key = EscapeSequences_1.C0.ESC + '[1;5B';
-                }
-            }
-            else if (applicationCursorMode) {
-                result.key = EscapeSequences_1.C0.ESC + 'OB';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[B';
-            }
-            break;
-        case 45:
-            if (!ev.shiftKey && !ev.ctrlKey) {
-                result.key = EscapeSequences_1.C0.ESC + '[2~';
-            }
-            break;
-        case 46:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[3;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[3~';
-            }
-            break;
-        case 36:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'H';
-            }
-            else if (applicationCursorMode) {
-                result.key = EscapeSequences_1.C0.ESC + 'OH';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[H';
-            }
-            break;
-        case 35:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'F';
-            }
-            else if (applicationCursorMode) {
-                result.key = EscapeSequences_1.C0.ESC + 'OF';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[F';
-            }
-            break;
-        case 33:
-            if (ev.shiftKey) {
-                result.type = 2;
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[5~';
-            }
-            break;
-        case 34:
-            if (ev.shiftKey) {
-                result.type = 3;
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[6~';
-            }
-            break;
-        case 112:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'P';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + 'OP';
-            }
-            break;
-        case 113:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'Q';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + 'OQ';
-            }
-            break;
-        case 114:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'R';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + 'OR';
-            }
-            break;
-        case 115:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'S';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + 'OS';
-            }
-            break;
-        case 116:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[15;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[15~';
-            }
-            break;
-        case 117:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[17;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[17~';
-            }
-            break;
-        case 118:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[18;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[18~';
-            }
-            break;
-        case 119:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[19;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[19~';
-            }
-            break;
-        case 120:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[20;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[20~';
-            }
-            break;
-        case 121:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[21;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[21~';
-            }
-            break;
-        case 122:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[23;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[23~';
-            }
-            break;
-        case 123:
-            if (modifiers) {
-                result.key = EscapeSequences_1.C0.ESC + '[24;' + (modifiers + 1) + '~';
-            }
-            else {
-                result.key = EscapeSequences_1.C0.ESC + '[24~';
-            }
-            break;
-        default:
-            if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {
-                if (ev.keyCode >= 65 && ev.keyCode <= 90) {
-                    result.key = String.fromCharCode(ev.keyCode - 64);
-                }
-                else if (ev.keyCode === 32) {
-                    result.key = String.fromCharCode(0);
-                }
-                else if (ev.keyCode >= 51 && ev.keyCode <= 55) {
-                    result.key = String.fromCharCode(ev.keyCode - 51 + 27);
-                }
-                else if (ev.keyCode === 56) {
-                    result.key = String.fromCharCode(127);
-                }
-                else if (ev.keyCode === 219) {
-                    result.key = String.fromCharCode(27);
-                }
-                else if (ev.keyCode === 220) {
-                    result.key = String.fromCharCode(28);
-                }
-                else if (ev.keyCode === 221) {
-                    result.key = String.fromCharCode(29);
-                }
-            }
-            else if ((!isMac || macOptionIsMeta) && ev.altKey && !ev.metaKey) {
-                var keyMapping = KEYCODE_KEY_MAPPINGS[ev.keyCode];
-                var key = keyMapping && keyMapping[!ev.shiftKey ? 0 : 1];
-                if (key) {
-                    result.key = EscapeSequences_1.C0.ESC + key;
-                }
-                else if (ev.keyCode >= 65 && ev.keyCode <= 90) {
-                    var keyCode = ev.ctrlKey ? ev.keyCode - 64 : ev.keyCode + 32;
-                    result.key = EscapeSequences_1.C0.ESC + String.fromCharCode(keyCode);
-                }
-            }
-            else if (isMac && !ev.altKey && !ev.ctrlKey && ev.metaKey) {
-                if (ev.keyCode === 65) {
-                    result.type = 1;
-                }
-            }
-            else if (ev.key && !ev.ctrlKey && !ev.altKey && !ev.metaKey && ev.keyCode >= 48 && ev.key.length === 1) {
-                result.key = ev.key;
-            }
-            else if (ev.key && ev.ctrlKey) {
-                if (ev.key === '_') {
-                    result.key = EscapeSequences_1.C0.US;
-                }
-            }
-            break;
-    }
-    return result;
-}
-exports.evaluateKeyboardEvent = evaluateKeyboardEvent;
-
-},{"../../common/data/EscapeSequences":29}],32:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var StringToUtf32 = (function () {
-    function StringToUtf32() {
-        this._interim = 0;
-    }
-    StringToUtf32.prototype.clear = function () {
-        this._interim = 0;
-    };
-    StringToUtf32.prototype.decode = function (input, target) {
-        var length = input.length;
-        if (!length) {
-            return 0;
-        }
-        var size = 0;
-        var startPos = 0;
-        if (this._interim) {
-            var second = input.charCodeAt(startPos++);
-            if (0xDC00 <= second && second <= 0xDFFF) {
-                target[size++] = (this._interim - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
-            }
-            else {
-                target[size++] = this._interim;
-                target[size++] = second;
-            }
-            this._interim = 0;
-        }
-        for (var i = startPos; i < length; ++i) {
-            var code = input.charCodeAt(i);
-            if (0xD800 <= code && code <= 0xDBFF) {
-                if (++i >= length) {
-                    this._interim = code;
-                    return size;
-                }
-                var second = input.charCodeAt(i);
-                if (0xDC00 <= second && second <= 0xDFFF) {
-                    target[size++] = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
-                }
-                else {
-                    target[size++] = code;
-                    target[size++] = second;
-                }
-                continue;
-            }
-            target[size++] = code;
-        }
-        return size;
-    };
-    return StringToUtf32;
-}());
-exports.StringToUtf32 = StringToUtf32;
-function stringFromCodePoint(codePoint) {
-    if (codePoint > 0xFFFF) {
-        codePoint -= 0x10000;
-        return String.fromCharCode((codePoint >> 10) + 0xD800) + String.fromCharCode((codePoint % 0x400) + 0xDC00);
-    }
-    return String.fromCharCode(codePoint);
-}
-exports.stringFromCodePoint = stringFromCodePoint;
-function utf32ToString(data, start, end) {
-    if (start === void 0) { start = 0; }
-    if (end === void 0) { end = data.length; }
-    var result = '';
-    for (var i = start; i < end; ++i) {
-        var codepoint = data[i];
-        if (codepoint > 0xFFFF) {
-            codepoint -= 0x10000;
-            result += String.fromCharCode((codepoint >> 10) + 0xD800) + String.fromCharCode((codepoint % 0x400) + 0xDC00);
-        }
-        else {
-            result += String.fromCharCode(codepoint);
-        }
-    }
-    return result;
-}
-exports.utf32ToString = utf32ToString;
-
-},{}],33:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EscapeSequences_1 = require("../common/data/EscapeSequences");
-var AltClickHandler = (function () {
-    function AltClickHandler(_mouseEvent, _terminal) {
-        var _a;
-        this._mouseEvent = _mouseEvent;
-        this._terminal = _terminal;
-        this._lines = this._terminal.buffer.lines;
-        this._startCol = this._terminal.buffer.x;
-        this._startRow = this._terminal.buffer.y;
-        var coordinates = this._terminal.mouseHelper.getCoords(this._mouseEvent, this._terminal.element, this._terminal.charMeasure, this._terminal.cols, this._terminal.rows, false);
-        if (coordinates) {
-            _a = coordinates.map(function (coordinate) {
-                return coordinate - 1;
-            }), this._endCol = _a[0], this._endRow = _a[1];
-        }
-    }
-    AltClickHandler.prototype.move = function () {
-        if (this._mouseEvent.altKey && this._endCol !== undefined && this._endRow !== undefined) {
-            this._terminal.handler(this._arrowSequences());
-        }
-    };
-    AltClickHandler.prototype._arrowSequences = function () {
-        if (!this._terminal.buffer.hasScrollback) {
-            return this._resetStartingRow() + this._moveToRequestedRow() + this._moveToRequestedCol();
-        }
-        return this._moveHorizontallyOnly();
-    };
-    AltClickHandler.prototype._resetStartingRow = function () {
-        if (this._moveToRequestedRow().length === 0) {
-            return '';
-        }
-        return repeat(this._bufferLine(this._startCol, this._startRow, this._startCol, this._startRow - this._wrappedRowsForRow(this._startRow), false).length, this._sequence("D"));
-    };
-    AltClickHandler.prototype._moveToRequestedRow = function () {
-        var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);
-        var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);
-        var rowsToMove = Math.abs(startRow - endRow) - this._wrappedRowsCount();
-        return repeat(rowsToMove, this._sequence(this._verticalDirection()));
-    };
-    AltClickHandler.prototype._moveToRequestedCol = function () {
-        var startRow;
-        if (this._moveToRequestedRow().length > 0) {
-            startRow = this._endRow - this._wrappedRowsForRow(this._endRow);
-        }
-        else {
-            startRow = this._startRow;
-        }
-        var endRow = this._endRow;
-        var direction = this._horizontalDirection();
-        return repeat(this._bufferLine(this._startCol, startRow, this._endCol, endRow, direction === "C").length, this._sequence(direction));
-    };
-    AltClickHandler.prototype._moveHorizontallyOnly = function () {
-        var direction = this._horizontalDirection();
-        return repeat(Math.abs(this._startCol - this._endCol), this._sequence(direction));
-    };
-    AltClickHandler.prototype._wrappedRowsCount = function () {
-        var wrappedRows = 0;
-        var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);
-        var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);
-        for (var i = 0; i < Math.abs(startRow - endRow); i++) {
-            var direction = this._verticalDirection() === "A" ? -1 : 1;
-            if (this._lines.get(startRow + (direction * i)).isWrapped) {
-                wrappedRows++;
-            }
-        }
-        return wrappedRows;
-    };
-    AltClickHandler.prototype._wrappedRowsForRow = function (currentRow) {
-        var rowCount = 0;
-        var lineWraps = this._lines.get(currentRow).isWrapped;
-        while (lineWraps && currentRow >= 0 && currentRow < this._terminal.rows) {
-            rowCount++;
-            currentRow--;
-            lineWraps = this._lines.get(currentRow).isWrapped;
-        }
-        return rowCount;
-    };
-    AltClickHandler.prototype._horizontalDirection = function () {
-        var startRow;
-        if (this._moveToRequestedRow().length > 0) {
-            startRow = this._endRow - this._wrappedRowsForRow(this._endRow);
-        }
-        else {
-            startRow = this._startRow;
-        }
-        if ((this._startCol < this._endCol &&
-            startRow <= this._endRow) ||
-            (this._startCol >= this._endCol &&
-                startRow < this._endRow)) {
-            return "C";
-        }
-        return "D";
-    };
-    AltClickHandler.prototype._verticalDirection = function () {
-        if (this._startRow > this._endRow) {
-            return "A";
-        }
-        return "B";
-    };
-    AltClickHandler.prototype._bufferLine = function (startCol, startRow, endCol, endRow, forward) {
-        var currentCol = startCol;
-        var currentRow = startRow;
-        var bufferStr = '';
-        while (currentCol !== endCol || currentRow !== endRow) {
-            currentCol += forward ? 1 : -1;
-            if (forward && currentCol > this._terminal.cols - 1) {
-                bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);
-                currentCol = 0;
-                startCol = 0;
-                currentRow++;
-            }
-            else if (!forward && currentCol < 0) {
-                bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, 0, startCol + 1);
-                currentCol = this._terminal.cols - 1;
-                startCol = currentCol;
-                currentRow--;
-            }
-        }
-        return bufferStr + this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);
-    };
-    AltClickHandler.prototype._sequence = function (direction) {
-        var mod = this._terminal.applicationCursor ? 'O' : '[';
-        return EscapeSequences_1.C0.ESC + mod + direction;
-    };
-    return AltClickHandler;
-}());
-exports.AltClickHandler = AltClickHandler;
-function repeat(count, str) {
-    count = Math.floor(count);
-    var rpt = '';
-    for (var i = 0; i < count; i++) {
-        rpt += str;
-    }
-    return rpt;
-}
-
-},{"../common/data/EscapeSequences":29}],34:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Terminal_1 = require("../Terminal");
-var Strings = require("../Strings");
-var Terminal = (function () {
-    function Terminal(options) {
-        this._core = new Terminal_1.Terminal(options);
-    }
-    Object.defineProperty(Terminal.prototype, "onCursorMove", {
-        get: function () { return this._core.onCursorMove; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onLineFeed", {
-        get: function () { return this._core.onLineFeed; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onSelectionChange", {
-        get: function () { return this._core.onSelectionChange; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onData", {
-        get: function () { return this._core.onData; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onTitleChange", {
-        get: function () { return this._core.onTitleChange; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onScroll", {
-        get: function () { return this._core.onScroll; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onKey", {
-        get: function () { return this._core.onKey; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onRender", {
-        get: function () { return this._core.onRender; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "onResize", {
-        get: function () { return this._core.onResize; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "element", {
-        get: function () { return this._core.element; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "textarea", {
-        get: function () { return this._core.textarea; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "rows", {
-        get: function () { return this._core.rows; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "cols", {
-        get: function () { return this._core.cols; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Terminal.prototype, "markers", {
-        get: function () { return this._core.markers; },
-        enumerable: true,
-        configurable: true
-    });
-    Terminal.prototype.blur = function () {
-        this._core.blur();
-    };
-    Terminal.prototype.focus = function () {
-        this._core.focus();
-    };
-    Terminal.prototype.on = function (type, listener) {
-        this._core.on(type, listener);
-    };
-    Terminal.prototype.off = function (type, listener) {
-        this._core.off(type, listener);
-    };
-    Terminal.prototype.emit = function (type, data) {
-        this._core.emit(type, data);
-    };
-    Terminal.prototype.addDisposableListener = function (type, handler) {
-        return this._core.addDisposableListener(type, handler);
-    };
-    Terminal.prototype.resize = function (columns, rows) {
-        this._core.resize(columns, rows);
-    };
-    Terminal.prototype.writeln = function (data) {
-        this._core.writeln(data);
-    };
-    Terminal.prototype.open = function (parent) {
-        this._core.open(parent);
-    };
-    Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {
-        this._core.attachCustomKeyEventHandler(customKeyEventHandler);
-    };
-    Terminal.prototype.addCsiHandler = function (flag, callback) {
-        return this._core.addCsiHandler(flag, callback);
-    };
-    Terminal.prototype.addOscHandler = function (ident, callback) {
-        return this._core.addOscHandler(ident, callback);
-    };
-    Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {
-        return this._core.registerLinkMatcher(regex, handler, options);
-    };
-    Terminal.prototype.deregisterLinkMatcher = function (matcherId) {
-        this._core.deregisterLinkMatcher(matcherId);
-    };
-    Terminal.prototype.registerCharacterJoiner = function (handler) {
-        return this._core.registerCharacterJoiner(handler);
-    };
-    Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {
-        this._core.deregisterCharacterJoiner(joinerId);
-    };
-    Terminal.prototype.addMarker = function (cursorYOffset) {
-        return this._core.addMarker(cursorYOffset);
-    };
-    Terminal.prototype.hasSelection = function () {
-        return this._core.hasSelection();
-    };
-    Terminal.prototype.getSelection = function () {
-        return this._core.getSelection();
-    };
-    Terminal.prototype.clearSelection = function () {
-        this._core.clearSelection();
-    };
-    Terminal.prototype.selectAll = function () {
-        this._core.selectAll();
-    };
-    Terminal.prototype.selectLines = function (start, end) {
-        this._core.selectLines(start, end);
-    };
-    Terminal.prototype.dispose = function () {
-        this._core.dispose();
-    };
-    Terminal.prototype.destroy = function () {
-        this._core.destroy();
-    };
-    Terminal.prototype.scrollLines = function (amount) {
-        this._core.scrollLines(amount);
-    };
-    Terminal.prototype.scrollPages = function (pageCount) {
-        this._core.scrollPages(pageCount);
-    };
-    Terminal.prototype.scrollToTop = function () {
-        this._core.scrollToTop();
-    };
-    Terminal.prototype.scrollToBottom = function () {
-        this._core.scrollToBottom();
-    };
-    Terminal.prototype.scrollToLine = function (line) {
-        this._core.scrollToLine(line);
-    };
-    Terminal.prototype.clear = function () {
-        this._core.clear();
-    };
-    Terminal.prototype.write = function (data) {
-        this._core.write(data);
-    };
-    Terminal.prototype.getOption = function (key) {
-        return this._core.getOption(key);
-    };
-    Terminal.prototype.setOption = function (key, value) {
-        this._core.setOption(key, value);
-    };
-    Terminal.prototype.refresh = function (start, end) {
-        this._core.refresh(start, end);
-    };
-    Terminal.prototype.reset = function () {
-        this._core.reset();
-    };
-    Terminal.applyAddon = function (addon) {
-        addon.apply(Terminal);
-    };
-    Object.defineProperty(Terminal, "strings", {
-        get: function () {
-            return Strings;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    return Terminal;
-}());
-exports.Terminal = Terminal;
-
-},{"../Strings":18,"../Terminal":19}],35:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Types_1 = require("./atlas/Types");
-var CharAtlasCache_1 = require("./atlas/CharAtlasCache");
-var BufferLine_1 = require("../BufferLine");
-var Buffer_1 = require("../Buffer");
-var CharacterJoinerRegistry_1 = require("./CharacterJoinerRegistry");
-var BaseRenderLayer = (function () {
-    function BaseRenderLayer(_container, id, zIndex, _alpha, _colors) {
-        this._container = _container;
-        this._alpha = _alpha;
-        this._colors = _colors;
-        this._scaledCharWidth = 0;
-        this._scaledCharHeight = 0;
-        this._scaledCellWidth = 0;
-        this._scaledCellHeight = 0;
-        this._scaledCharLeft = 0;
-        this._scaledCharTop = 0;
-        this._currentGlyphIdentifier = {
-            chars: '',
-            code: 0,
-            bg: 0,
-            fg: 0,
-            bold: false,
-            dim: false,
-            italic: false
-        };
-        this._canvas = document.createElement('canvas');
-        this._canvas.classList.add("xterm-" + id + "-layer");
-        this._canvas.style.zIndex = zIndex.toString();
-        this._initCanvas();
-        this._container.appendChild(this._canvas);
-    }
-    BaseRenderLayer.prototype.dispose = function () {
-        this._container.removeChild(this._canvas);
-        if (this._charAtlas) {
-            this._charAtlas.dispose();
-        }
-    };
-    BaseRenderLayer.prototype._initCanvas = function () {
-        this._ctx = this._canvas.getContext('2d', { alpha: this._alpha });
-        if (!this._alpha) {
-            this.clearAll();
-        }
-    };
-    BaseRenderLayer.prototype.onOptionsChanged = function (terminal) { };
-    BaseRenderLayer.prototype.onBlur = function (terminal) { };
-    BaseRenderLayer.prototype.onFocus = function (terminal) { };
-    BaseRenderLayer.prototype.onCursorMove = function (terminal) { };
-    BaseRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { };
-    BaseRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {
-        if (columnSelectMode === void 0) { columnSelectMode = false; }
-    };
-    BaseRenderLayer.prototype.onThemeChanged = function (terminal, colorSet) {
-        this._refreshCharAtlas(terminal, colorSet);
-    };
-    BaseRenderLayer.prototype.setTransparency = function (terminal, alpha) {
-        if (alpha === this._alpha) {
-            return;
-        }
-        var oldCanvas = this._canvas;
-        this._alpha = alpha;
-        this._canvas = this._canvas.cloneNode();
-        this._initCanvas();
-        this._container.replaceChild(this._canvas, oldCanvas);
-        this._refreshCharAtlas(terminal, this._colors);
-        this.onGridChanged(terminal, 0, terminal.rows - 1);
-    };
-    BaseRenderLayer.prototype._refreshCharAtlas = function (terminal, colorSet) {
-        if (this._scaledCharWidth <= 0 && this._scaledCharHeight <= 0) {
-            return;
-        }
-        this._charAtlas = CharAtlasCache_1.acquireCharAtlas(terminal, colorSet, this._scaledCharWidth, this._scaledCharHeight);
-        this._charAtlas.warmUp();
-    };
-    BaseRenderLayer.prototype.resize = function (terminal, dim) {
-        this._scaledCellWidth = dim.scaledCellWidth;
-        this._scaledCellHeight = dim.scaledCellHeight;
-        this._scaledCharWidth = dim.scaledCharWidth;
-        this._scaledCharHeight = dim.scaledCharHeight;
-        this._scaledCharLeft = dim.scaledCharLeft;
-        this._scaledCharTop = dim.scaledCharTop;
-        this._canvas.width = dim.scaledCanvasWidth;
-        this._canvas.height = dim.scaledCanvasHeight;
-        this._canvas.style.width = dim.canvasWidth + "px";
-        this._canvas.style.height = dim.canvasHeight + "px";
-        if (!this._alpha) {
-            this.clearAll();
-        }
-        this._refreshCharAtlas(terminal, this._colors);
-    };
-    BaseRenderLayer.prototype.fillCells = function (x, y, width, height) {
-        this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);
-    };
-    BaseRenderLayer.prototype.fillBottomLineAtCells = function (x, y, width) {
-        if (width === void 0) { width = 1; }
-        this._ctx.fillRect(x * this._scaledCellWidth, (y + 1) * this._scaledCellHeight - window.devicePixelRatio - 1, width * this._scaledCellWidth, window.devicePixelRatio);
-    };
-    BaseRenderLayer.prototype.fillLeftLineAtCell = function (x, y) {
-        this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, window.devicePixelRatio, this._scaledCellHeight);
-    };
-    BaseRenderLayer.prototype.strokeRectAtCell = function (x, y, width, height) {
-        this._ctx.lineWidth = window.devicePixelRatio;
-        this._ctx.strokeRect(x * this._scaledCellWidth + window.devicePixelRatio / 2, y * this._scaledCellHeight + (window.devicePixelRatio / 2), width * this._scaledCellWidth - window.devicePixelRatio, (height * this._scaledCellHeight) - window.devicePixelRatio);
-    };
-    BaseRenderLayer.prototype.clearAll = function () {
-        if (this._alpha) {
-            this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
-        }
-        else {
-            this._ctx.fillStyle = this._colors.background.css;
-            this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);
-        }
-    };
-    BaseRenderLayer.prototype.clearCells = function (x, y, width, height) {
-        if (this._alpha) {
-            this._ctx.clearRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);
-        }
-        else {
-            this._ctx.fillStyle = this._colors.background.css;
-            this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);
-        }
-    };
-    BaseRenderLayer.prototype.fillCharTrueColor = function (terminal, cell, x, y) {
-        this._ctx.font = this._getFont(terminal, false, false);
-        this._ctx.textBaseline = 'middle';
-        this._clipRow(terminal, y);
-        this._ctx.fillText(cell.getChars(), x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop + this._scaledCharHeight / 2);
-    };
-    BaseRenderLayer.prototype.drawChars = function (terminal, cell, x, y) {
-        if (cell.isFgRGB() || cell.isBgRGB() || cell instanceof CharacterJoinerRegistry_1.JoinedCellData) {
-            this._drawUncachedChars(terminal, cell, x, y);
-            return;
-        }
-        var fg;
-        var bg;
-        if (cell.isInverse()) {
-            fg = (cell.isBgDefault()) ? Types_1.INVERTED_DEFAULT_COLOR : cell.getBgColor();
-            bg = (cell.isFgDefault()) ? Types_1.INVERTED_DEFAULT_COLOR : cell.getFgColor();
-        }
-        else {
-            bg = (cell.isBgDefault()) ? Types_1.DEFAULT_COLOR : cell.getBgColor();
-            fg = (cell.isFgDefault()) ? Types_1.DEFAULT_COLOR : cell.getFgColor();
-        }
-        var drawInBrightColor = terminal.options.drawBoldTextInBrightColors && cell.isBold() && fg < 8 && fg !== Types_1.INVERTED_DEFAULT_COLOR;
-        fg += drawInBrightColor ? 8 : 0;
-        this._currentGlyphIdentifier.chars = cell.getChars() || Buffer_1.WHITESPACE_CELL_CHAR;
-        this._currentGlyphIdentifier.code = cell.getCode() || Buffer_1.WHITESPACE_CELL_CODE;
-        this._currentGlyphIdentifier.bg = bg;
-        this._currentGlyphIdentifier.fg = fg;
-        this._currentGlyphIdentifier.bold = cell.isBold() && terminal.options.enableBold;
-        this._currentGlyphIdentifier.dim = !!cell.isDim();
-        this._currentGlyphIdentifier.italic = !!cell.isItalic();
-        var atlasDidDraw = this._charAtlas && this._charAtlas.draw(this._ctx, this._currentGlyphIdentifier, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);
-        if (!atlasDidDraw) {
-            this._drawUncachedChars(terminal, cell, x, y);
-        }
-    };
-    BaseRenderLayer.prototype._drawUncachedChars = function (terminal, cell, x, y) {
-        this._ctx.save();
-        this._ctx.font = this._getFont(terminal, cell.isBold() && terminal.options.enableBold, !!cell.isItalic());
-        this._ctx.textBaseline = 'middle';
-        if (cell.isInverse()) {
-            if (cell.isBgDefault()) {
-                this._ctx.fillStyle = this._colors.background.css;
-            }
-            else if (cell.isBgRGB()) {
-                this._ctx.fillStyle = "rgb(" + BufferLine_1.AttributeData.toColorRGB(cell.getBgColor()).join(',') + ")";
-            }
-            else {
-                this._ctx.fillStyle = this._colors.ansi[cell.getBgColor()].css;
-            }
-        }
-        else {
-            if (cell.isFgDefault()) {
-                this._ctx.fillStyle = this._colors.foreground.css;
-            }
-            else if (cell.isFgRGB()) {
-                this._ctx.fillStyle = "rgb(" + BufferLine_1.AttributeData.toColorRGB(cell.getFgColor()).join(',') + ")";
-            }
-            else {
-                var fg = cell.getFgColor();
-                if (terminal.options.drawBoldTextInBrightColors && cell.isBold() && fg < 8) {
-                    fg += 8;
-                }
-                this._ctx.fillStyle = this._colors.ansi[fg].css;
-            }
-        }
-        this._clipRow(terminal, y);
-        if (cell.isDim()) {
-            this._ctx.globalAlpha = Types_1.DIM_OPACITY;
-        }
-        this._ctx.fillText(cell.getChars(), x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop + this._scaledCharHeight / 2);
-        this._ctx.restore();
-    };
-    BaseRenderLayer.prototype._clipRow = function (terminal, y) {
-        this._ctx.beginPath();
-        this._ctx.rect(0, y * this._scaledCellHeight, terminal.cols * this._scaledCellWidth, this._scaledCellHeight);
-        this._ctx.clip();
-    };
-    BaseRenderLayer.prototype._getFont = function (terminal, isBold, isItalic) {
-        var fontWeight = isBold ? terminal.options.fontWeightBold : terminal.options.fontWeight;
-        var fontStyle = isItalic ? 'italic' : '';
-        return fontStyle + " " + fontWeight + " " + terminal.options.fontSize * window.devicePixelRatio + "px " + terminal.options.fontFamily;
-    };
-    return BaseRenderLayer;
-}());
-exports.BaseRenderLayer = BaseRenderLayer;
-
-},{"../Buffer":2,"../BufferLine":3,"./CharacterJoinerRegistry":36,"./atlas/CharAtlasCache":45,"./atlas/Types":52}],36:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var BufferLine_1 = require("../BufferLine");
-var Buffer_1 = require("../Buffer");
-var JoinedCellData = (function (_super) {
-    __extends(JoinedCellData, _super);
-    function JoinedCellData(firstCell, chars, width) {
-        var _this = _super.call(this) || this;
-        _this.content = 0;
-        _this.combinedData = '';
-        _this.fg = firstCell.fg;
-        _this.bg = firstCell.bg;
-        _this.combinedData = chars;
-        _this._width = width;
-        return _this;
-    }
-    JoinedCellData.prototype.isCombined = function () {
-        return 2097152;
-    };
-    JoinedCellData.prototype.getWidth = function () {
-        return this._width;
-    };
-    JoinedCellData.prototype.getChars = function () {
-        return this.combinedData;
-    };
-    JoinedCellData.prototype.getCode = function () {
-        return 0x1FFFFF;
-    };
-    JoinedCellData.prototype.setFromCharData = function (value) {
-        throw new Error('not implemented');
-    };
-    JoinedCellData.prototype.getAsCharData = function () {
-        return [this.fg, this.getChars(), this.getWidth(), this.getCode()];
-    };
-    return JoinedCellData;
-}(BufferLine_1.AttributeData));
-exports.JoinedCellData = JoinedCellData;
-var CharacterJoinerRegistry = (function () {
-    function CharacterJoinerRegistry(_terminal) {
-        this._terminal = _terminal;
-        this._characterJoiners = [];
-        this._nextCharacterJoinerId = 0;
-        this._workCell = new BufferLine_1.CellData();
-    }
-    CharacterJoinerRegistry.prototype.registerCharacterJoiner = function (handler) {
-        var joiner = {
-            id: this._nextCharacterJoinerId++,
-            handler: handler
-        };
-        this._characterJoiners.push(joiner);
-        return joiner.id;
-    };
-    CharacterJoinerRegistry.prototype.deregisterCharacterJoiner = function (joinerId) {
-        for (var i = 0; i < this._characterJoiners.length; i++) {
-            if (this._characterJoiners[i].id === joinerId) {
-                this._characterJoiners.splice(i, 1);
-                return true;
-            }
-        }
-        return false;
-    };
-    CharacterJoinerRegistry.prototype.getJoinedCharacters = function (row) {
-        if (this._characterJoiners.length === 0) {
-            return [];
-        }
-        var line = this._terminal.buffer.lines.get(row);
-        if (line.length === 0) {
-            return [];
-        }
-        var ranges = [];
-        var lineStr = line.translateToString(true);
-        var rangeStartColumn = 0;
-        var currentStringIndex = 0;
-        var rangeStartStringIndex = 0;
-        var rangeAttrFG = line.getFg(0);
-        var rangeAttrBG = line.getBg(0);
-        for (var x = 0; x < line.getTrimmedLength(); x++) {
-            line.loadCell(x, this._workCell);
-            if (this._workCell.getWidth() === 0) {
-                continue;
-            }
-            if (this._workCell.fg !== rangeAttrFG || this._workCell.bg !== rangeAttrBG) {
-                if (x - rangeStartColumn > 1) {
-                    var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);
-                    for (var i = 0; i < joinedRanges.length; i++) {
-                        ranges.push(joinedRanges[i]);
-                    }
-                }
-                rangeStartColumn = x;
-                rangeStartStringIndex = currentStringIndex;
-                rangeAttrFG = this._workCell.fg;
-                rangeAttrBG = this._workCell.bg;
-            }
-            currentStringIndex += this._workCell.getChars().length || Buffer_1.WHITESPACE_CELL_CHAR.length;
-        }
-        if (this._terminal.cols - rangeStartColumn > 1) {
-            var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);
-            for (var i = 0; i < joinedRanges.length; i++) {
-                ranges.push(joinedRanges[i]);
-            }
-        }
-        return ranges;
-    };
-    CharacterJoinerRegistry.prototype._getJoinedRanges = function (line, startIndex, endIndex, lineData, startCol) {
-        var text = line.substring(startIndex, endIndex);
-        var joinedRanges = this._characterJoiners[0].handler(text);
-        for (var i = 1; i < this._characterJoiners.length; i++) {
-            var joinerRanges = this._characterJoiners[i].handler(text);
-            for (var j = 0; j < joinerRanges.length; j++) {
-                CharacterJoinerRegistry._mergeRanges(joinedRanges, joinerRanges[j]);
-            }
-        }
-        this._stringRangesToCellRanges(joinedRanges, lineData, startCol);
-        return joinedRanges;
-    };
-    CharacterJoinerRegistry.prototype._stringRangesToCellRanges = function (ranges, line, startCol) {
-        var currentRangeIndex = 0;
-        var currentRangeStarted = false;
-        var currentStringIndex = 0;
-        var currentRange = ranges[currentRangeIndex];
-        if (!currentRange) {
-            return;
-        }
-        for (var x = startCol; x < this._terminal.cols; x++) {
-            var width = line.getWidth(x);
-            var length_1 = line.getString(x).length || Buffer_1.WHITESPACE_CELL_CHAR.length;
-            if (width === 0) {
-                continue;
-            }
-            if (!currentRangeStarted && currentRange[0] <= currentStringIndex) {
-                currentRange[0] = x;
-                currentRangeStarted = true;
-            }
-            if (currentRange[1] <= currentStringIndex) {
-                currentRange[1] = x;
-                currentRange = ranges[++currentRangeIndex];
-                if (!currentRange) {
-                    break;
-                }
-                if (currentRange[0] <= currentStringIndex) {
-                    currentRange[0] = x;
-                    currentRangeStarted = true;
-                }
-                else {
-                    currentRangeStarted = false;
-                }
-            }
-            currentStringIndex += length_1;
-        }
-        if (currentRange) {
-            currentRange[1] = this._terminal.cols;
-        }
-    };
-    CharacterJoinerRegistry._mergeRanges = function (ranges, newRange) {
-        var inRange = false;
-        for (var i = 0; i < ranges.length; i++) {
-            var range = ranges[i];
-            if (!inRange) {
-                if (newRange[1] <= range[0]) {
-                    ranges.splice(i, 0, newRange);
-                    return ranges;
-                }
-                if (newRange[1] <= range[1]) {
-                    range[0] = Math.min(newRange[0], range[0]);
-                    return ranges;
-                }
-                if (newRange[0] < range[1]) {
-                    range[0] = Math.min(newRange[0], range[0]);
-                    inRange = true;
-                }
-                continue;
-            }
-            else {
-                if (newRange[1] <= range[0]) {
-                    ranges[i - 1][1] = newRange[1];
-                    return ranges;
-                }
-                if (newRange[1] <= range[1]) {
-                    ranges[i - 1][1] = Math.max(newRange[1], range[1]);
-                    ranges.splice(i, 1);
-                    inRange = false;
-                    return ranges;
-                }
-                ranges.splice(i, 1);
-                i--;
-            }
-        }
-        if (inRange) {
-            ranges[ranges.length - 1][1] = newRange[1];
-        }
-        else {
-            ranges.push(newRange);
-        }
-        return ranges;
-    };
-    return CharacterJoinerRegistry;
-}());
-exports.CharacterJoinerRegistry = CharacterJoinerRegistry;
-
-},{"../Buffer":2,"../BufferLine":3}],37:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var DEFAULT_FOREGROUND = fromHex('#ffffff');
-var DEFAULT_BACKGROUND = fromHex('#000000');
-var DEFAULT_CURSOR = fromHex('#ffffff');
-var DEFAULT_CURSOR_ACCENT = fromHex('#000000');
-var DEFAULT_SELECTION = {
-    css: 'rgba(255, 255, 255, 0.3)',
-    rgba: 0xFFFFFF77
-};
-exports.DEFAULT_ANSI_COLORS = (function () {
-    var colors = [
-        fromHex('#2e3436'),
-        fromHex('#cc0000'),
-        fromHex('#4e9a06'),
-        fromHex('#c4a000'),
-        fromHex('#3465a4'),
-        fromHex('#75507b'),
-        fromHex('#06989a'),
-        fromHex('#d3d7cf'),
-        fromHex('#555753'),
-        fromHex('#ef2929'),
-        fromHex('#8ae234'),
-        fromHex('#fce94f'),
-        fromHex('#729fcf'),
-        fromHex('#ad7fa8'),
-        fromHex('#34e2e2'),
-        fromHex('#eeeeec')
-    ];
-    var v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];
-    for (var i = 0; i < 216; i++) {
-        var r = v[(i / 36) % 6 | 0];
-        var g = v[(i / 6) % 6 | 0];
-        var b = v[i % 6];
-        colors.push({
-            css: "#" + toPaddedHex(r) + toPaddedHex(g) + toPaddedHex(b),
-            rgba: ((r << 24) | (g << 16) | (b << 8) | 0xFF) >>> 0
-        });
-    }
-    for (var i = 0; i < 24; i++) {
-        var c = 8 + i * 10;
-        var ch = toPaddedHex(c);
-        colors.push({
-            css: "#" + ch + ch + ch,
-            rgba: ((c << 24) | (c << 16) | (c << 8) | 0xFF) >>> 0
-        });
-    }
-    return colors;
-})();
-function fromHex(css) {
-    return {
-        css: css,
-        rgba: parseInt(css.slice(1), 16) << 8 | 0xFF
-    };
-}
-function toPaddedHex(c) {
-    var s = c.toString(16);
-    return s.length < 2 ? '0' + s : s;
-}
-var ColorManager = (function () {
-    function ColorManager(document, allowTransparency) {
-        this.allowTransparency = allowTransparency;
-        var canvas = document.createElement('canvas');
-        canvas.width = 1;
-        canvas.height = 1;
-        this._ctx = canvas.getContext('2d');
-        this._ctx.globalCompositeOperation = 'copy';
-        this._litmusColor = this._ctx.createLinearGradient(0, 0, 1, 1);
-        this.colors = {
-            foreground: DEFAULT_FOREGROUND,
-            background: DEFAULT_BACKGROUND,
-            cursor: DEFAULT_CURSOR,
-            cursorAccent: DEFAULT_CURSOR_ACCENT,
-            selection: DEFAULT_SELECTION,
-            ansi: exports.DEFAULT_ANSI_COLORS.slice()
-        };
-    }
-    ColorManager.prototype.setTheme = function (theme) {
-        this.colors.foreground = this._parseColor(theme.foreground, DEFAULT_FOREGROUND);
-        this.colors.background = this._parseColor(theme.background, DEFAULT_BACKGROUND);
-        this.colors.cursor = this._parseColor(theme.cursor, DEFAULT_CURSOR, true);
-        this.colors.cursorAccent = this._parseColor(theme.cursorAccent, DEFAULT_CURSOR_ACCENT, true);
-        this.colors.selection = this._parseColor(theme.selection, DEFAULT_SELECTION, true);
-        this.colors.ansi[0] = this._parseColor(theme.black, exports.DEFAULT_ANSI_COLORS[0]);
-        this.colors.ansi[1] = this._parseColor(theme.red, exports.DEFAULT_ANSI_COLORS[1]);
-        this.colors.ansi[2] = this._parseColor(theme.green, exports.DEFAULT_ANSI_COLORS[2]);
-        this.colors.ansi[3] = this._parseColor(theme.yellow, exports.DEFAULT_ANSI_COLORS[3]);
-        this.colors.ansi[4] = this._parseColor(theme.blue, exports.DEFAULT_ANSI_COLORS[4]);
-        this.colors.ansi[5] = this._parseColor(theme.magenta, exports.DEFAULT_ANSI_COLORS[5]);
-        this.colors.ansi[6] = this._parseColor(theme.cyan, exports.DEFAULT_ANSI_COLORS[6]);
-        this.colors.ansi[7] = this._parseColor(theme.white, exports.DEFAULT_ANSI_COLORS[7]);
-        this.colors.ansi[8] = this._parseColor(theme.brightBlack, exports.DEFAULT_ANSI_COLORS[8]);
-        this.colors.ansi[9] = this._parseColor(theme.brightRed, exports.DEFAULT_ANSI_COLORS[9]);
-        this.colors.ansi[10] = this._parseColor(theme.brightGreen, exports.DEFAULT_ANSI_COLORS[10]);
-        this.colors.ansi[11] = this._parseColor(theme.brightYellow, exports.DEFAULT_ANSI_COLORS[11]);
-        this.colors.ansi[12] = this._parseColor(theme.brightBlue, exports.DEFAULT_ANSI_COLORS[12]);
-        this.colors.ansi[13] = this._parseColor(theme.brightMagenta, exports.DEFAULT_ANSI_COLORS[13]);
-        this.colors.ansi[14] = this._parseColor(theme.brightCyan, exports.DEFAULT_ANSI_COLORS[14]);
-        this.colors.ansi[15] = this._parseColor(theme.brightWhite, exports.DEFAULT_ANSI_COLORS[15]);
-    };
-    ColorManager.prototype._parseColor = function (css, fallback, allowTransparency) {
-        if (allowTransparency === void 0) { allowTransparency = this.allowTransparency; }
-        if (!css) {
-            return fallback;
-        }
-        this._ctx.fillStyle = this._litmusColor;
-        this._ctx.fillStyle = css;
-        if (typeof this._ctx.fillStyle !== 'string') {
-            console.warn("Color: " + css + " is invalid using fallback " + fallback.css);
-            return fallback;
-        }
-        this._ctx.fillRect(0, 0, 1, 1);
-        var data = this._ctx.getImageData(0, 0, 1, 1).data;
-        if (!allowTransparency && data[3] !== 0xFF) {
-            console.warn("Color: " + css + " is using transparency, but allowTransparency is false. " +
-                ("Using fallback " + fallback.css + "."));
-            return fallback;
-        }
-        return {
-            css: css,
-            rgba: (data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3]) >>> 0
-        };
-    };
-    return ColorManager;
-}());
-exports.ColorManager = ColorManager;
-
-},{}],38:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var BaseRenderLayer_1 = require("./BaseRenderLayer");
-var BufferLine_1 = require("../BufferLine");
-var BLINK_INTERVAL = 600;
-var CursorRenderLayer = (function (_super) {
-    __extends(CursorRenderLayer, _super);
-    function CursorRenderLayer(container, zIndex, colors) {
-        var _this = _super.call(this, container, 'cursor', zIndex, true, colors) || this;
-        _this._cell = new BufferLine_1.CellData();
-        _this._state = {
-            x: null,
-            y: null,
-            isFocused: null,
-            style: null,
-            width: null
-        };
-        _this._cursorRenderers = {
-            'bar': _this._renderBarCursor.bind(_this),
-            'block': _this._renderBlockCursor.bind(_this),
-            'underline': _this._renderUnderlineCursor.bind(_this)
-        };
-        return _this;
-    }
-    CursorRenderLayer.prototype.resize = function (terminal, dim) {
-        _super.prototype.resize.call(this, terminal, dim);
-        this._state = {
-            x: null,
-            y: null,
-            isFocused: null,
-            style: null,
-            width: null
-        };
-    };
-    CursorRenderLayer.prototype.reset = function (terminal) {
-        this._clearCursor();
-        if (this._cursorBlinkStateManager) {
-            this._cursorBlinkStateManager.dispose();
-            this._cursorBlinkStateManager = null;
-            this.onOptionsChanged(terminal);
-        }
-    };
-    CursorRenderLayer.prototype.onBlur = function (terminal) {
-        if (this._cursorBlinkStateManager) {
-            this._cursorBlinkStateManager.pause();
-        }
-        terminal.refresh(terminal.buffer.y, terminal.buffer.y);
-    };
-    CursorRenderLayer.prototype.onFocus = function (terminal) {
-        if (this._cursorBlinkStateManager) {
-            this._cursorBlinkStateManager.resume(terminal);
-        }
-        else {
-            terminal.refresh(terminal.buffer.y, terminal.buffer.y);
-        }
-    };
-    CursorRenderLayer.prototype.onOptionsChanged = function (terminal) {
-        var _this = this;
-        if (terminal.options.cursorBlink) {
-            if (!this._cursorBlinkStateManager) {
-                this._cursorBlinkStateManager = new CursorBlinkStateManager(terminal, function () {
-                    _this._render(terminal, true);
-                });
-            }
-        }
-        else {
-            if (this._cursorBlinkStateManager) {
-                this._cursorBlinkStateManager.dispose();
-                this._cursorBlinkStateManager = null;
-            }
-            terminal.refresh(terminal.buffer.y, terminal.buffer.y);
-        }
-    };
-    CursorRenderLayer.prototype.onCursorMove = function (terminal) {
-        if (this._cursorBlinkStateManager) {
-            this._cursorBlinkStateManager.restartBlinkAnimation(terminal);
-        }
-    };
-    CursorRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) {
-        if (!this._cursorBlinkStateManager || this._cursorBlinkStateManager.isPaused) {
-            this._render(terminal, false);
-        }
-        else {
-            this._cursorBlinkStateManager.restartBlinkAnimation(terminal);
-        }
-    };
-    CursorRenderLayer.prototype._render = function (terminal, triggeredByAnimationFrame) {
-        if (!terminal.cursorState || terminal.cursorHidden) {
-            this._clearCursor();
-            return;
-        }
-        var cursorY = terminal.buffer.ybase + terminal.buffer.y;
-        var viewportRelativeCursorY = cursorY - terminal.buffer.ydisp;
-        if (viewportRelativeCursorY < 0 || viewportRelativeCursorY >= terminal.rows) {
-            this._clearCursor();
-            return;
-        }
-        terminal.buffer.lines.get(cursorY).loadCell(terminal.buffer.x, this._cell);
-        if (this._cell.content === undefined) {
-            return;
-        }
-        if (!terminal.isFocused) {
-            this._clearCursor();
-            this._ctx.save();
-            this._ctx.fillStyle = this._colors.cursor.css;
-            this._renderBlurCursor(terminal, terminal.buffer.x, viewportRelativeCursorY, this._cell);
-            this._ctx.restore();
-            this._state.x = terminal.buffer.x;
-            this._state.y = viewportRelativeCursorY;
-            this._state.isFocused = false;
-            this._state.style = terminal.options.cursorStyle;
-            this._state.width = this._cell.getWidth();
-            return;
-        }
-        if (this._cursorBlinkStateManager && !this._cursorBlinkStateManager.isCursorVisible) {
-            this._clearCursor();
-            return;
-        }
-        if (this._state) {
-            if (this._state.x === terminal.buffer.x &&
-                this._state.y === viewportRelativeCursorY &&
-                this._state.isFocused === terminal.isFocused &&
-                this._state.style === terminal.options.cursorStyle &&
-                this._state.width === this._cell.getWidth()) {
-                return;
-            }
-            this._clearCursor();
-        }
-        this._ctx.save();
-        this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, this._cell);
-        this._ctx.restore();
-        this._state.x = terminal.buffer.x;
-        this._state.y = viewportRelativeCursorY;
-        this._state.isFocused = false;
-        this._state.style = terminal.options.cursorStyle;
-        this._state.width = this._cell.getWidth();
-    };
-    CursorRenderLayer.prototype._clearCursor = function () {
-        if (this._state) {
-            this.clearCells(this._state.x, this._state.y, this._state.width, 1);
-            this._state = {
-                x: null,
-                y: null,
-                isFocused: null,
-                style: null,
-                width: null
-            };
-        }
-    };
-    CursorRenderLayer.prototype._renderBarCursor = function (terminal, x, y, cell) {
-        this._ctx.save();
-        this._ctx.fillStyle = this._colors.cursor.css;
-        this.fillLeftLineAtCell(x, y);
-        this._ctx.restore();
-    };
-    CursorRenderLayer.prototype._renderBlockCursor = function (terminal, x, y, cell) {
-        this._ctx.save();
-        this._ctx.fillStyle = this._colors.cursor.css;
-        this.fillCells(x, y, cell.getWidth(), 1);
-        this._ctx.fillStyle = this._colors.cursorAccent.css;
-        this.fillCharTrueColor(terminal, cell, x, y);
-        this._ctx.restore();
-    };
-    CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, cell) {
-        this._ctx.save();
-        this._ctx.fillStyle = this._colors.cursor.css;
-        this.fillBottomLineAtCells(x, y);
-        this._ctx.restore();
-    };
-    CursorRenderLayer.prototype._renderBlurCursor = function (terminal, x, y, cell) {
-        this._ctx.save();
-        this._ctx.strokeStyle = this._colors.cursor.css;
-        this.strokeRectAtCell(x, y, cell.getWidth(), 1);
-        this._ctx.restore();
-    };
-    return CursorRenderLayer;
-}(BaseRenderLayer_1.BaseRenderLayer));
-exports.CursorRenderLayer = CursorRenderLayer;
-var CursorBlinkStateManager = (function () {
-    function CursorBlinkStateManager(terminal, _renderCallback) {
-        this._renderCallback = _renderCallback;
-        this.isCursorVisible = true;
-        if (terminal.isFocused) {
-            this._restartInterval();
-        }
-    }
-    Object.defineProperty(CursorBlinkStateManager.prototype, "isPaused", {
-        get: function () { return !(this._blinkStartTimeout || this._blinkInterval); },
-        enumerable: true,
-        configurable: true
-    });
-    CursorBlinkStateManager.prototype.dispose = function () {
-        if (this._blinkInterval) {
-            window.clearInterval(this._blinkInterval);
-            this._blinkInterval = null;
-        }
-        if (this._blinkStartTimeout) {
-            window.clearTimeout(this._blinkStartTimeout);
-            this._blinkStartTimeout = null;
-        }
-        if (this._animationFrame) {
-            window.cancelAnimationFrame(this._animationFrame);
-            this._animationFrame = null;
-        }
-    };
-    CursorBlinkStateManager.prototype.restartBlinkAnimation = function (terminal) {
-        var _this = this;
-        if (this.isPaused) {
-            return;
-        }
-        this._animationTimeRestarted = Date.now();
-        this.isCursorVisible = true;
-        if (!this._animationFrame) {
-            this._animationFrame = window.requestAnimationFrame(function () {
-                _this._renderCallback();
-                _this._animationFrame = null;
-            });
-        }
-    };
-    CursorBlinkStateManager.prototype._restartInterval = function (timeToStart) {
-        var _this = this;
-        if (timeToStart === void 0) { timeToStart = BLINK_INTERVAL; }
-        if (this._blinkInterval) {
-            window.clearInterval(this._blinkInterval);
-        }
-        this._blinkStartTimeout = setTimeout(function () {
-            if (_this._animationTimeRestarted) {
-                var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);
-                _this._animationTimeRestarted = null;
-                if (time > 0) {
-                    _this._restartInterval(time);
-                    return;
-                }
-            }
-            _this.isCursorVisible = false;
-            _this._animationFrame = window.requestAnimationFrame(function () {
-                _this._renderCallback();
-                _this._animationFrame = null;
-            });
-            _this._blinkInterval = setInterval(function () {
-                if (_this._animationTimeRestarted) {
-                    var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);
-                    _this._animationTimeRestarted = null;
-                    _this._restartInterval(time);
-                    return;
-                }
-                _this.isCursorVisible = !_this.isCursorVisible;
-                _this._animationFrame = window.requestAnimationFrame(function () {
-                    _this._renderCallback();
-                    _this._animationFrame = null;
-                });
-            }, BLINK_INTERVAL);
-        }, timeToStart);
-    };
-    CursorBlinkStateManager.prototype.pause = function () {
-        this.isCursorVisible = true;
-        if (this._blinkInterval) {
-            window.clearInterval(this._blinkInterval);
-            this._blinkInterval = null;
-        }
-        if (this._blinkStartTimeout) {
-            window.clearTimeout(this._blinkStartTimeout);
-            this._blinkStartTimeout = null;
-        }
-        if (this._animationFrame) {
-            window.cancelAnimationFrame(this._animationFrame);
-            this._animationFrame = null;
-        }
-    };
-    CursorBlinkStateManager.prototype.resume = function (terminal) {
-        this._animationTimeRestarted = null;
-        this._restartInterval();
-        this.restartBlinkAnimation(terminal);
-    };
-    return CursorBlinkStateManager;
-}());
-
-},{"../BufferLine":3,"./BaseRenderLayer":35}],39:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var GridCache = (function () {
-    function GridCache() {
-        this.cache = [];
-    }
-    GridCache.prototype.resize = function (width, height) {
-        for (var x = 0; x < width; x++) {
-            if (this.cache.length <= x) {
-                this.cache.push([]);
-            }
-            for (var y = this.cache[x].length; y < height; y++) {
-                this.cache[x].push(null);
-            }
-            this.cache[x].length = height;
-        }
-        this.cache.length = width;
-    };
-    GridCache.prototype.clear = function () {
-        for (var x = 0; x < this.cache.length; x++) {
-            for (var y = 0; y < this.cache[x].length; y++) {
-                this.cache[x][y] = null;
-            }
-        }
-    };
-    return GridCache;
-}());
-exports.GridCache = GridCache;
-
-},{}],40:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var BaseRenderLayer_1 = require("./BaseRenderLayer");
-var Types_1 = require("./atlas/Types");
-var CharAtlasUtils_1 = require("./atlas/CharAtlasUtils");
-var LinkRenderLayer = (function (_super) {
-    __extends(LinkRenderLayer, _super);
-    function LinkRenderLayer(container, zIndex, colors, terminal) {
-        var _this = _super.call(this, container, 'link', zIndex, true, colors) || this;
-        _this._state = null;
-        terminal.linkifier.onLinkHover(function (e) { return _this._onLinkHover(e); });
-        terminal.linkifier.onLinkLeave(function (e) { return _this._onLinkLeave(e); });
-        return _this;
-    }
-    LinkRenderLayer.prototype.resize = function (terminal, dim) {
-        _super.prototype.resize.call(this, terminal, dim);
-        this._state = null;
-    };
-    LinkRenderLayer.prototype.reset = function (terminal) {
-        this._clearCurrentLink();
-    };
-    LinkRenderLayer.prototype._clearCurrentLink = function () {
-        if (this._state) {
-            this.clearCells(this._state.x1, this._state.y1, this._state.cols - this._state.x1, 1);
-            var middleRowCount = this._state.y2 - this._state.y1 - 1;
-            if (middleRowCount > 0) {
-                this.clearCells(0, this._state.y1 + 1, this._state.cols, middleRowCount);
-            }
-            this.clearCells(0, this._state.y2, this._state.x2, 1);
-            this._state = null;
-        }
-    };
-    LinkRenderLayer.prototype._onLinkHover = function (e) {
-        if (e.fg === Types_1.INVERTED_DEFAULT_COLOR) {
-            this._ctx.fillStyle = this._colors.background.css;
-        }
-        else if (CharAtlasUtils_1.is256Color(e.fg)) {
-            this._ctx.fillStyle = this._colors.ansi[e.fg].css;
-        }
-        else {
-            this._ctx.fillStyle = this._colors.foreground.css;
-        }
-        if (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 (var y = e.y1 + 1; y < e.y2; y++) {
-                this.fillBottomLineAtCells(0, y, e.cols);
-            }
-            this.fillBottomLineAtCells(0, e.y2, e.x2);
-        }
-        this._state = e;
-    };
-    LinkRenderLayer.prototype._onLinkLeave = function (e) {
-        this._clearCurrentLink();
-    };
-    return LinkRenderLayer;
-}(BaseRenderLayer_1.BaseRenderLayer));
-exports.LinkRenderLayer = LinkRenderLayer;
-
-},{"./BaseRenderLayer":35,"./atlas/CharAtlasUtils":47,"./atlas/Types":52}],41:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var TextRenderLayer_1 = require("./TextRenderLayer");
-var SelectionRenderLayer_1 = require("./SelectionRenderLayer");
-var CursorRenderLayer_1 = require("./CursorRenderLayer");
-var ColorManager_1 = require("./ColorManager");
-var LinkRenderLayer_1 = require("./LinkRenderLayer");
-var RenderDebouncer_1 = require("../ui/RenderDebouncer");
-var ScreenDprMonitor_1 = require("../ui/ScreenDprMonitor");
-var CharacterJoinerRegistry_1 = require("../renderer/CharacterJoinerRegistry");
-var EventEmitter2_1 = require("../common/EventEmitter2");
-var Lifecycle_1 = require("../common/Lifecycle");
-var Renderer = (function (_super) {
-    __extends(Renderer, _super);
-    function Renderer(_terminal, theme) {
-        var _this = _super.call(this) || this;
-        _this._terminal = _terminal;
-        _this._isPaused = false;
-        _this._needsFullRefresh = false;
-        _this._onCanvasResize = new EventEmitter2_1.EventEmitter2();
-        _this._onRender = new EventEmitter2_1.EventEmitter2();
-        var allowTransparency = _this._terminal.options.allowTransparency;
-        _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);
-        _this._characterJoinerRegistry = new CharacterJoinerRegistry_1.CharacterJoinerRegistry(_terminal);
-        if (theme) {
-            _this.colorManager.setTheme(theme);
-        }
-        _this._renderLayers = [
-            new TextRenderLayer_1.TextRenderLayer(_this._terminal.screenElement, 0, _this.colorManager.colors, _this._characterJoinerRegistry, allowTransparency),
-            new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.screenElement, 1, _this.colorManager.colors),
-            new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.screenElement, 2, _this.colorManager.colors, _this._terminal),
-            new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.screenElement, 3, _this.colorManager.colors)
-        ];
-        _this.dimensions = {
-            scaledCharWidth: null,
-            scaledCharHeight: null,
-            scaledCellWidth: null,
-            scaledCellHeight: null,
-            scaledCharLeft: null,
-            scaledCharTop: null,
-            scaledCanvasWidth: null,
-            scaledCanvasHeight: null,
-            canvasWidth: null,
-            canvasHeight: null,
-            actualCellWidth: null,
-            actualCellHeight: null
-        };
-        _this._devicePixelRatio = window.devicePixelRatio;
-        _this._updateDimensions();
-        _this.onOptionsChanged();
-        _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._renderRows.bind(_this));
-        _this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();
-        _this._screenDprMonitor.setListener(function () { return _this.onWindowResize(window.devicePixelRatio); });
-        _this.register(_this._screenDprMonitor);
-        if ('IntersectionObserver' in window) {
-            var observer_1 = new IntersectionObserver(function (e) { return _this.onIntersectionChange(e[e.length - 1]); }, { threshold: 0 });
-            observer_1.observe(_this._terminal.element);
-            _this.register({ dispose: function () { return observer_1.disconnect(); } });
-        }
-        return _this;
-    }
-    Object.defineProperty(Renderer.prototype, "onCanvasResize", {
-        get: function () { return this._onCanvasResize.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(Renderer.prototype, "onRender", {
-        get: function () { return this._onRender.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Renderer.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        this._renderLayers.forEach(function (l) { return l.dispose(); });
-    };
-    Renderer.prototype.onIntersectionChange = function (entry) {
-        this._isPaused = entry.intersectionRatio === 0;
-        if (!this._isPaused && this._needsFullRefresh) {
-            this._terminal.refresh(0, this._terminal.rows - 1);
-            this._needsFullRefresh = false;
-        }
-    };
-    Renderer.prototype.onWindowResize = function (devicePixelRatio) {
-        if (this._devicePixelRatio !== devicePixelRatio) {
-            this._devicePixelRatio = devicePixelRatio;
-            this.onResize(this._terminal.cols, this._terminal.rows);
-        }
-    };
-    Renderer.prototype.setTheme = function (theme) {
-        var _this = this;
-        this.colorManager.setTheme(theme);
-        this._renderLayers.forEach(function (l) {
-            l.onThemeChanged(_this._terminal, _this.colorManager.colors);
-            l.reset(_this._terminal);
-        });
-        if (this._isPaused) {
-            this._needsFullRefresh = true;
-        }
-        else {
-            this._terminal.refresh(0, this._terminal.rows - 1);
-        }
-        return this.colorManager.colors;
-    };
-    Renderer.prototype.onResize = function (cols, rows) {
-        var _this = this;
-        this._updateDimensions();
-        this._renderLayers.forEach(function (l) { return l.resize(_this._terminal, _this.dimensions); });
-        if (this._isPaused) {
-            this._needsFullRefresh = true;
-        }
-        else {
-            this._terminal.refresh(0, this._terminal.rows - 1);
-        }
-        this._terminal.screenElement.style.width = this.dimensions.canvasWidth + "px";
-        this._terminal.screenElement.style.height = this.dimensions.canvasHeight + "px";
-        this._onCanvasResize.fire({
-            width: this.dimensions.canvasWidth,
-            height: this.dimensions.canvasHeight
-        });
-    };
-    Renderer.prototype.onCharSizeChanged = function () {
-        this.onResize(this._terminal.cols, this._terminal.rows);
-    };
-    Renderer.prototype.onBlur = function () {
-        var _this = this;
-        this._runOperation(function (l) { return l.onBlur(_this._terminal); });
-    };
-    Renderer.prototype.onFocus = function () {
-        var _this = this;
-        this._runOperation(function (l) { return l.onFocus(_this._terminal); });
-    };
-    Renderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {
-        var _this = this;
-        if (columnSelectMode === void 0) { columnSelectMode = false; }
-        this._runOperation(function (l) { return l.onSelectionChanged(_this._terminal, start, end, columnSelectMode); });
-    };
-    Renderer.prototype.onCursorMove = function () {
-        var _this = this;
-        this._runOperation(function (l) { return l.onCursorMove(_this._terminal); });
-    };
-    Renderer.prototype.onOptionsChanged = function () {
-        var _this = this;
-        this.colorManager.allowTransparency = this._terminal.options.allowTransparency;
-        this._runOperation(function (l) { return l.onOptionsChanged(_this._terminal); });
-    };
-    Renderer.prototype.clear = function () {
-        var _this = this;
-        this._runOperation(function (l) { return l.reset(_this._terminal); });
-    };
-    Renderer.prototype._runOperation = function (operation) {
-        if (this._isPaused) {
-            this._needsFullRefresh = true;
-        }
-        else {
-            this._renderLayers.forEach(function (l) { return operation(l); });
-        }
-    };
-    Renderer.prototype.refreshRows = function (start, end) {
-        if (this._isPaused) {
-            this._needsFullRefresh = true;
-            return;
-        }
-        this._renderDebouncer.refresh(start, end, this._terminal.rows);
-    };
-    Renderer.prototype._renderRows = function (start, end) {
-        var _this = this;
-        this._renderLayers.forEach(function (l) { return l.onGridChanged(_this._terminal, start, end); });
-        this._onRender.fire({ start: start, end: end });
-    };
-    Renderer.prototype._updateDimensions = function () {
-        if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) {
-            return;
-        }
-        this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio);
-        this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);
-        this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);
-        this.dimensions.scaledCharTop = this._terminal.options.lineHeight === 1 ? 0 : Math.round((this.dimensions.scaledCellHeight - this.dimensions.scaledCharHeight) / 2);
-        this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);
-        this.dimensions.scaledCharLeft = Math.floor(this._terminal.options.letterSpacing / 2);
-        this.dimensions.scaledCanvasHeight = this._terminal.rows * this.dimensions.scaledCellHeight;
-        this.dimensions.scaledCanvasWidth = this._terminal.cols * this.dimensions.scaledCellWidth;
-        this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);
-        this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);
-        this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;
-        this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;
-    };
-    Renderer.prototype.registerCharacterJoiner = function (handler) {
-        return this._characterJoinerRegistry.registerCharacterJoiner(handler);
-    };
-    Renderer.prototype.deregisterCharacterJoiner = function (joinerId) {
-        return this._characterJoinerRegistry.deregisterCharacterJoiner(joinerId);
-    };
-    return Renderer;
-}(Lifecycle_1.Disposable));
-exports.Renderer = Renderer;
-
-},{"../common/EventEmitter2":25,"../common/Lifecycle":26,"../renderer/CharacterJoinerRegistry":36,"../ui/RenderDebouncer":56,"../ui/ScreenDprMonitor":57,"./ColorManager":37,"./CursorRenderLayer":38,"./LinkRenderLayer":40,"./SelectionRenderLayer":42,"./TextRenderLayer":43}],42:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var BaseRenderLayer_1 = require("./BaseRenderLayer");
-var SelectionRenderLayer = (function (_super) {
-    __extends(SelectionRenderLayer, _super);
-    function SelectionRenderLayer(container, zIndex, colors) {
-        var _this = _super.call(this, container, 'selection', zIndex, true, colors) || this;
-        _this._clearState();
-        return _this;
-    }
-    SelectionRenderLayer.prototype._clearState = function () {
-        this._state = {
-            start: null,
-            end: null,
-            columnSelectMode: null,
-            ydisp: null
-        };
-    };
-    SelectionRenderLayer.prototype.resize = function (terminal, dim) {
-        _super.prototype.resize.call(this, terminal, dim);
-        this._clearState();
-    };
-    SelectionRenderLayer.prototype.reset = function (terminal) {
-        if (this._state.start && this._state.end) {
-            this._clearState();
-            this.clearAll();
-        }
-    };
-    SelectionRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {
-        if (!this._didStateChange(start, end, columnSelectMode, terminal.buffer.ydisp)) {
-            return;
-        }
-        this.clearAll();
-        if (!start || !end) {
-            this._clearState();
-            return;
-        }
-        var viewportStartRow = start[1] - terminal.buffer.ydisp;
-        var viewportEndRow = end[1] - terminal.buffer.ydisp;
-        var viewportCappedStartRow = Math.max(viewportStartRow, 0);
-        var viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1);
-        if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) {
-            return;
-        }
-        this._ctx.fillStyle = this._colors.selection.css;
-        if (columnSelectMode) {
-            var startCol = start[0];
-            var width = end[0] - startCol;
-            var height = viewportCappedEndRow - viewportCappedStartRow + 1;
-            this.fillCells(startCol, viewportCappedStartRow, width, height);
-        }
-        else {
-            var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;
-            var startRowEndCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : terminal.cols;
-            this.fillCells(startCol, viewportCappedStartRow, startRowEndCol - startCol, 1);
-            var middleRowsCount = Math.max(viewportCappedEndRow - viewportCappedStartRow - 1, 0);
-            this.fillCells(0, viewportCappedStartRow + 1, terminal.cols, middleRowsCount);
-            if (viewportCappedStartRow !== viewportCappedEndRow) {
-                var endCol = viewportEndRow === viewportCappedEndRow ? end[0] : terminal.cols;
-                this.fillCells(0, viewportCappedEndRow, endCol, 1);
-            }
-        }
-        this._state.start = [start[0], start[1]];
-        this._state.end = [end[0], end[1]];
-        this._state.columnSelectMode = columnSelectMode;
-        this._state.ydisp = terminal.buffer.ydisp;
-    };
-    SelectionRenderLayer.prototype._didStateChange = function (start, end, columnSelectMode, ydisp) {
-        return !this._areCoordinatesEqual(start, this._state.start) ||
-            !this._areCoordinatesEqual(end, this._state.end) ||
-            columnSelectMode !== this._state.columnSelectMode ||
-            ydisp !== this._state.ydisp;
-    };
-    SelectionRenderLayer.prototype._areCoordinatesEqual = function (coord1, coord2) {
-        if (!coord1 || !coord2) {
-            return false;
-        }
-        return coord1[0] === coord2[0] && coord1[1] === coord2[1];
-    };
-    return SelectionRenderLayer;
-}(BaseRenderLayer_1.BaseRenderLayer));
-exports.SelectionRenderLayer = SelectionRenderLayer;
-
-},{"./BaseRenderLayer":35}],43:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Buffer_1 = require("../Buffer");
-var GridCache_1 = require("./GridCache");
-var BaseRenderLayer_1 = require("./BaseRenderLayer");
-var BufferLine_1 = require("../BufferLine");
-var CharacterJoinerRegistry_1 = require("./CharacterJoinerRegistry");
-var TextRenderLayer = (function (_super) {
-    __extends(TextRenderLayer, _super);
-    function TextRenderLayer(container, zIndex, colors, characterJoinerRegistry, alpha) {
-        var _this = _super.call(this, container, 'text', zIndex, alpha, colors) || this;
-        _this._characterOverlapCache = {};
-        _this._workCell = new BufferLine_1.CellData();
-        _this._state = new GridCache_1.GridCache();
-        _this._characterJoinerRegistry = characterJoinerRegistry;
-        return _this;
-    }
-    TextRenderLayer.prototype.resize = function (terminal, dim) {
-        _super.prototype.resize.call(this, terminal, dim);
-        var terminalFont = this._getFont(terminal, false, false);
-        if (this._characterWidth !== dim.scaledCharWidth || this._characterFont !== terminalFont) {
-            this._characterWidth = dim.scaledCharWidth;
-            this._characterFont = terminalFont;
-            this._characterOverlapCache = {};
-        }
-        this._state.clear();
-        this._state.resize(terminal.cols, terminal.rows);
-    };
-    TextRenderLayer.prototype.reset = function (terminal) {
-        this._state.clear();
-        this.clearAll();
-    };
-    TextRenderLayer.prototype._forEachCell = function (terminal, firstRow, lastRow, joinerRegistry, callback) {
-        for (var y = firstRow; y <= lastRow; y++) {
-            var row = y + terminal.buffer.ydisp;
-            var line = terminal.buffer.lines.get(row);
-            var joinedRanges = joinerRegistry ? joinerRegistry.getJoinedCharacters(row) : [];
-            for (var x = 0; x < terminal.cols; x++) {
-                line.loadCell(x, this._workCell);
-                var cell = this._workCell;
-                var isJoined = false;
-                var lastCharX = x;
-                if (cell.getWidth() === 0) {
-                    continue;
-                }
-                if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {
-                    isJoined = true;
-                    var range = joinedRanges.shift();
-                    cell = new CharacterJoinerRegistry_1.JoinedCellData(this._workCell, line.translateToString(true, range[0], range[1]), range[1] - range[0]);
-                    lastCharX = range[1] - 1;
-                }
-                if (!isJoined && this._isOverlapping(cell)) {
-                    if (lastCharX < line.length - 1 && line.getCodePoint(lastCharX + 1) === Buffer_1.NULL_CELL_CODE) {
-                        cell.content &= ~12582912;
-                        cell.content |= 2 << 22;
-                    }
-                }
-                callback(cell, x, y);
-                x = lastCharX;
-            }
-        }
-    };
-    TextRenderLayer.prototype._drawBackground = function (terminal, firstRow, lastRow) {
-        var _this = this;
-        var ctx = this._ctx;
-        var cols = terminal.cols;
-        var startX = 0;
-        var startY = 0;
-        var prevFillStyle = null;
-        ctx.save();
-        this._forEachCell(terminal, firstRow, lastRow, null, function (cell, x, y) {
-            var nextFillStyle = null;
-            if (cell.isInverse()) {
-                if (cell.isFgDefault()) {
-                    nextFillStyle = _this._colors.foreground.css;
-                }
-                else if (cell.isFgRGB()) {
-                    nextFillStyle = "rgb(" + BufferLine_1.AttributeData.toColorRGB(cell.getFgColor()).join(',') + ")";
-                }
-                else {
-                    nextFillStyle = _this._colors.ansi[cell.getFgColor()].css;
-                }
-            }
-            else if (cell.isBgRGB()) {
-                nextFillStyle = "rgb(" + BufferLine_1.AttributeData.toColorRGB(cell.getBgColor()).join(',') + ")";
-            }
-            else if (cell.isBgPalette()) {
-                nextFillStyle = _this._colors.ansi[cell.getBgColor()].css;
-            }
-            if (prevFillStyle === null) {
-                startX = x;
-                startY = y;
-            }
-            if (y !== startY) {
-                ctx.fillStyle = prevFillStyle;
-                _this.fillCells(startX, startY, cols - startX, 1);
-                startX = x;
-                startY = y;
-            }
-            else if (prevFillStyle !== nextFillStyle) {
-                ctx.fillStyle = prevFillStyle;
-                _this.fillCells(startX, startY, x - startX, 1);
-                startX = x;
-                startY = y;
-            }
-            prevFillStyle = nextFillStyle;
-        });
-        if (prevFillStyle !== null) {
-            ctx.fillStyle = prevFillStyle;
-            this.fillCells(startX, startY, cols - startX, 1);
-        }
-        ctx.restore();
-    };
-    TextRenderLayer.prototype._drawForeground = function (terminal, firstRow, lastRow) {
-        var _this = this;
-        this._forEachCell(terminal, firstRow, lastRow, this._characterJoinerRegistry, function (cell, x, y) {
-            if (cell.isInvisible()) {
-                return;
-            }
-            if (cell.isUnderline()) {
-                _this._ctx.save();
-                if (cell.isInverse()) {
-                    if (cell.isBgDefault()) {
-                        _this._ctx.fillStyle = _this._colors.background.css;
-                    }
-                    else if (cell.isBgRGB()) {
-                        _this._ctx.fillStyle = "rgb(" + BufferLine_1.AttributeData.toColorRGB(cell.getBgColor()).join(',') + ")";
-                    }
-                    else {
-                        _this._ctx.fillStyle = _this._colors.ansi[cell.getBgColor()].css;
-                    }
-                }
-                else {
-                    if (cell.isFgDefault()) {
-                        _this._ctx.fillStyle = _this._colors.foreground.css;
-                    }
-                    else if (cell.isFgRGB()) {
-                        _this._ctx.fillStyle = "rgb(" + BufferLine_1.AttributeData.toColorRGB(cell.getFgColor()).join(',') + ")";
-                    }
-                    else {
-                        var fg = cell.getFgColor();
-                        if (terminal.options.drawBoldTextInBrightColors && cell.isBold() && fg < 8) {
-                            fg += 8;
-                        }
-                        _this._ctx.fillStyle = _this._colors.ansi[fg].css;
-                    }
-                }
-                _this.fillBottomLineAtCells(x, y, cell.getWidth());
-                _this._ctx.restore();
-            }
-            _this.drawChars(terminal, cell, x, y);
-        });
-    };
-    TextRenderLayer.prototype.onGridChanged = function (terminal, firstRow, lastRow) {
-        if (this._state.cache.length === 0) {
-            return;
-        }
-        if (this._charAtlas) {
-            this._charAtlas.beginFrame();
-        }
-        this.clearCells(0, firstRow, terminal.cols, lastRow - firstRow + 1);
-        this._drawBackground(terminal, firstRow, lastRow);
-        this._drawForeground(terminal, firstRow, lastRow);
-    };
-    TextRenderLayer.prototype.onOptionsChanged = function (terminal) {
-        this.setTransparency(terminal, terminal.options.allowTransparency);
-    };
-    TextRenderLayer.prototype._isOverlapping = function (cell) {
-        if (cell.getWidth() !== 1) {
-            return false;
-        }
-        if (cell.getCode() < 256) {
-            return false;
-        }
-        var chars = cell.getChars();
-        if (this._characterOverlapCache.hasOwnProperty(chars)) {
-            return this._characterOverlapCache[chars];
-        }
-        this._ctx.save();
-        this._ctx.font = this._characterFont;
-        var overlaps = Math.floor(this._ctx.measureText(chars).width) > this._characterWidth;
-        this._ctx.restore();
-        this._characterOverlapCache[chars] = overlaps;
-        return overlaps;
-    };
-    return TextRenderLayer;
-}(BaseRenderLayer_1.BaseRenderLayer));
-exports.TextRenderLayer = TextRenderLayer;
-
-},{"../Buffer":2,"../BufferLine":3,"./BaseRenderLayer":35,"./CharacterJoinerRegistry":36,"./GridCache":39}],44:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var BaseCharAtlas = (function () {
-    function BaseCharAtlas() {
-        this._didWarmUp = false;
-    }
-    BaseCharAtlas.prototype.dispose = function () { };
-    BaseCharAtlas.prototype.warmUp = function () {
-        if (!this._didWarmUp) {
-            this._doWarmUp();
-            this._didWarmUp = true;
-        }
-    };
-    BaseCharAtlas.prototype._doWarmUp = function () { };
-    BaseCharAtlas.prototype.beginFrame = function () { };
-    return BaseCharAtlas;
-}());
-exports.default = BaseCharAtlas;
-
-},{}],45:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var CharAtlasUtils_1 = require("./CharAtlasUtils");
-var DynamicCharAtlas_1 = require("./DynamicCharAtlas");
-var NoneCharAtlas_1 = require("./NoneCharAtlas");
-var StaticCharAtlas_1 = require("./StaticCharAtlas");
-var charAtlasImplementations = {
-    'none': NoneCharAtlas_1.default,
-    'static': StaticCharAtlas_1.default,
-    'dynamic': DynamicCharAtlas_1.default
-};
-var charAtlasCache = [];
-function acquireCharAtlas(terminal, colors, scaledCharWidth, scaledCharHeight) {
-    var newConfig = CharAtlasUtils_1.generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors);
-    for (var i = 0; i < charAtlasCache.length; i++) {
-        var entry = charAtlasCache[i];
-        var ownedByIndex = entry.ownedBy.indexOf(terminal);
-        if (ownedByIndex >= 0) {
-            if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {
-                return entry.atlas;
-            }
-            if (entry.ownedBy.length === 1) {
-                entry.atlas.dispose();
-                charAtlasCache.splice(i, 1);
-            }
-            else {
-                entry.ownedBy.splice(ownedByIndex, 1);
-            }
-            break;
-        }
-    }
-    for (var i = 0; i < charAtlasCache.length; i++) {
-        var entry = charAtlasCache[i];
-        if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {
-            entry.ownedBy.push(terminal);
-            return entry.atlas;
-        }
-    }
-    var newEntry = {
-        atlas: new charAtlasImplementations[terminal.options.experimentalCharAtlas](document, newConfig),
-        config: newConfig,
-        ownedBy: [terminal]
-    };
-    charAtlasCache.push(newEntry);
-    return newEntry.atlas;
-}
-exports.acquireCharAtlas = acquireCharAtlas;
-function removeTerminalFromCache(terminal) {
-    for (var i = 0; i < charAtlasCache.length; i++) {
-        var index = charAtlasCache[i].ownedBy.indexOf(terminal);
-        if (index !== -1) {
-            if (charAtlasCache[i].ownedBy.length === 1) {
-                charAtlasCache[i].atlas.dispose();
-                charAtlasCache.splice(i, 1);
-            }
-            else {
-                charAtlasCache[i].ownedBy.splice(index, 1);
-            }
-            break;
-        }
-    }
-}
-exports.removeTerminalFromCache = removeTerminalFromCache;
-
-},{"./CharAtlasUtils":47,"./DynamicCharAtlas":48,"./NoneCharAtlas":50,"./StaticCharAtlas":51}],46:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Platform_1 = require("../../common/Platform");
-var Types_1 = require("./Types");
-function generateStaticCharAtlasTexture(context, canvasFactory, config) {
-    var cellWidth = config.scaledCharWidth + Types_1.CHAR_ATLAS_CELL_SPACING;
-    var cellHeight = config.scaledCharHeight + Types_1.CHAR_ATLAS_CELL_SPACING;
-    var canvas = canvasFactory(255 * cellWidth, (2 + 16 + 16) * cellHeight);
-    var ctx = canvas.getContext('2d', { alpha: config.allowTransparency });
-    ctx.fillStyle = config.colors.background.css;
-    ctx.fillRect(0, 0, canvas.width, canvas.height);
-    ctx.save();
-    ctx.fillStyle = config.colors.foreground.css;
-    ctx.font = getFont(config.fontWeight, config);
-    ctx.textBaseline = 'middle';
-    for (var i = 0; i < 256; i++) {
-        ctx.save();
-        ctx.beginPath();
-        ctx.rect(i * cellWidth, 0, cellWidth, cellHeight);
-        ctx.clip();
-        ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight / 2);
-        ctx.restore();
-    }
-    ctx.save();
-    ctx.font = getFont(config.fontWeightBold, config);
-    for (var i = 0; i < 256; i++) {
-        ctx.save();
-        ctx.beginPath();
-        ctx.rect(i * cellWidth, cellHeight, cellWidth, cellHeight);
-        ctx.clip();
-        ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight * 1.5);
-        ctx.restore();
-    }
-    ctx.restore();
-    ctx.font = getFont(config.fontWeight, config);
-    for (var colorIndex = 0; colorIndex < 16; colorIndex++) {
-        var y = (colorIndex + 2) * cellHeight;
-        for (var i = 0; i < 256; i++) {
-            ctx.save();
-            ctx.beginPath();
-            ctx.rect(i * cellWidth, y, cellWidth, cellHeight);
-            ctx.clip();
-            ctx.fillStyle = config.colors.ansi[colorIndex].css;
-            ctx.fillText(String.fromCharCode(i), i * cellWidth, y + cellHeight / 2);
-            ctx.restore();
-        }
-    }
-    ctx.font = getFont(config.fontWeightBold, config);
-    for (var colorIndex = 0; colorIndex < 16; colorIndex++) {
-        var y = (colorIndex + 2 + 16) * cellHeight;
-        for (var i = 0; i < 256; i++) {
-            ctx.save();
-            ctx.beginPath();
-            ctx.rect(i * cellWidth, y, cellWidth, cellHeight);
-            ctx.clip();
-            ctx.fillStyle = config.colors.ansi[colorIndex].css;
-            ctx.fillText(String.fromCharCode(i), i * cellWidth, y + cellHeight / 2);
-            ctx.restore();
-        }
-    }
-    ctx.restore();
-    if (!('createImageBitmap' in context) || Platform_1.isFirefox || Platform_1.isSafari) {
-        return canvas;
-    }
-    var charAtlasImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
-    clearColor(charAtlasImageData, config.colors.background);
-    return context.createImageBitmap(charAtlasImageData);
-}
-exports.generateStaticCharAtlasTexture = generateStaticCharAtlasTexture;
-function clearColor(imageData, color) {
-    var isEmpty = true;
-    var r = color.rgba >>> 24;
-    var g = color.rgba >>> 16 & 0xFF;
-    var b = color.rgba >>> 8 & 0xFF;
-    for (var offset = 0; offset < imageData.data.length; offset += 4) {
-        if (imageData.data[offset] === r &&
-            imageData.data[offset + 1] === g &&
-            imageData.data[offset + 2] === b) {
-            imageData.data[offset + 3] = 0;
-        }
-        else {
-            isEmpty = false;
-        }
-    }
-    return isEmpty;
-}
-exports.clearColor = clearColor;
-function getFont(fontWeight, config) {
-    return fontWeight + " " + config.fontSize * config.devicePixelRatio + "px " + config.fontFamily;
-}
-
-},{"../../common/Platform":27,"./Types":52}],47:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Types_1 = require("./Types");
-function generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors) {
-    var clonedColors = {
-        foreground: colors.foreground,
-        background: colors.background,
-        cursor: null,
-        cursorAccent: null,
-        selection: null,
-        ansi: colors.ansi.slice(0, 16)
-    };
-    return {
-        type: terminal.options.experimentalCharAtlas,
-        devicePixelRatio: window.devicePixelRatio,
-        scaledCharWidth: scaledCharWidth,
-        scaledCharHeight: scaledCharHeight,
-        fontFamily: terminal.options.fontFamily,
-        fontSize: terminal.options.fontSize,
-        fontWeight: terminal.options.fontWeight,
-        fontWeightBold: terminal.options.fontWeightBold,
-        allowTransparency: terminal.options.allowTransparency,
-        colors: clonedColors
-    };
-}
-exports.generateConfig = generateConfig;
-function configEquals(a, b) {
-    for (var i = 0; i < a.colors.ansi.length; i++) {
-        if (a.colors.ansi[i].rgba !== b.colors.ansi[i].rgba) {
-            return false;
-        }
-    }
-    return a.type === b.type &&
-        a.devicePixelRatio === b.devicePixelRatio &&
-        a.fontFamily === b.fontFamily &&
-        a.fontSize === b.fontSize &&
-        a.fontWeight === b.fontWeight &&
-        a.fontWeightBold === b.fontWeightBold &&
-        a.allowTransparency === b.allowTransparency &&
-        a.scaledCharWidth === b.scaledCharWidth &&
-        a.scaledCharHeight === b.scaledCharHeight &&
-        a.colors.foreground === b.colors.foreground &&
-        a.colors.background === b.colors.background;
-}
-exports.configEquals = configEquals;
-function is256Color(colorCode) {
-    return colorCode < Types_1.DEFAULT_COLOR;
-}
-exports.is256Color = is256Color;
-
-},{"./Types":52}],48:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Types_1 = require("./Types");
-var BaseCharAtlas_1 = require("./BaseCharAtlas");
-var ColorManager_1 = require("../ColorManager");
-var CharAtlasGenerator_1 = require("./CharAtlasGenerator");
-var LRUMap_1 = require("./LRUMap");
-var Platform_1 = require("../../common/Platform");
-var TEXTURE_WIDTH = 1024;
-var TEXTURE_HEIGHT = 1024;
-var TRANSPARENT_COLOR = {
-    css: 'rgba(0, 0, 0, 0)',
-    rgba: 0
-};
-var FRAME_CACHE_DRAW_LIMIT = 100;
-var GLYPH_BITMAP_COMMIT_DELAY = 100;
-function getGlyphCacheKey(glyph) {
-    return glyph.code << 21 | glyph.bg << 12 | glyph.fg << 3 | (glyph.bold ? 0 : 4) + (glyph.dim ? 0 : 2) + (glyph.italic ? 0 : 1);
-}
-exports.getGlyphCacheKey = getGlyphCacheKey;
-var DynamicCharAtlas = (function (_super) {
-    __extends(DynamicCharAtlas, _super);
-    function DynamicCharAtlas(document, _config) {
-        var _this = _super.call(this) || this;
-        _this._config = _config;
-        _this._drawToCacheCount = 0;
-        _this._glyphsWaitingOnBitmap = [];
-        _this._bitmapCommitTimeout = null;
-        _this._bitmap = null;
-        _this._cacheCanvas = document.createElement('canvas');
-        _this._cacheCanvas.width = TEXTURE_WIDTH;
-        _this._cacheCanvas.height = TEXTURE_HEIGHT;
-        _this._cacheCtx = _this._cacheCanvas.getContext('2d', { alpha: true });
-        var tmpCanvas = document.createElement('canvas');
-        tmpCanvas.width = _this._config.scaledCharWidth;
-        tmpCanvas.height = _this._config.scaledCharHeight;
-        _this._tmpCtx = tmpCanvas.getContext('2d', { alpha: _this._config.allowTransparency });
-        _this._width = Math.floor(TEXTURE_WIDTH / _this._config.scaledCharWidth);
-        _this._height = Math.floor(TEXTURE_HEIGHT / _this._config.scaledCharHeight);
-        var capacity = _this._width * _this._height;
-        _this._cacheMap = new LRUMap_1.default(capacity);
-        _this._cacheMap.prealloc(capacity);
-        return _this;
-    }
-    DynamicCharAtlas.prototype.dispose = function () {
-        if (this._bitmapCommitTimeout !== null) {
-            window.clearTimeout(this._bitmapCommitTimeout);
-            this._bitmapCommitTimeout = null;
-        }
-    };
-    DynamicCharAtlas.prototype.beginFrame = function () {
-        this._drawToCacheCount = 0;
-    };
-    DynamicCharAtlas.prototype.draw = function (ctx, glyph, x, y) {
-        if (glyph.code === 32) {
-            return true;
-        }
-        if (!this._canCache(glyph)) {
-            return false;
-        }
-        var glyphKey = getGlyphCacheKey(glyph);
-        var cacheValue = this._cacheMap.get(glyphKey);
-        if (cacheValue !== null && cacheValue !== undefined) {
-            this._drawFromCache(ctx, cacheValue, x, y);
-            return true;
-        }
-        else if (this._drawToCacheCount < FRAME_CACHE_DRAW_LIMIT) {
-            var index = void 0;
-            if (this._cacheMap.size < this._cacheMap.capacity) {
-                index = this._cacheMap.size;
-            }
-            else {
-                index = this._cacheMap.peek().index;
-            }
-            var cacheValue_1 = this._drawToCache(glyph, index);
-            this._cacheMap.set(glyphKey, cacheValue_1);
-            this._drawFromCache(ctx, cacheValue_1, x, y);
-            return true;
-        }
-        return false;
-    };
-    DynamicCharAtlas.prototype._canCache = function (glyph) {
-        return glyph.code < 256;
-    };
-    DynamicCharAtlas.prototype._toCoordinateX = function (index) {
-        return (index % this._width) * this._config.scaledCharWidth;
-    };
-    DynamicCharAtlas.prototype._toCoordinateY = function (index) {
-        return Math.floor(index / this._width) * this._config.scaledCharHeight;
-    };
-    DynamicCharAtlas.prototype._drawFromCache = function (ctx, cacheValue, x, y) {
-        if (cacheValue.isEmpty) {
-            return;
-        }
-        var cacheX = this._toCoordinateX(cacheValue.index);
-        var cacheY = this._toCoordinateY(cacheValue.index);
-        ctx.drawImage(cacheValue.inBitmap ? this._bitmap : this._cacheCanvas, cacheX, cacheY, this._config.scaledCharWidth, this._config.scaledCharHeight, x, y, this._config.scaledCharWidth, this._config.scaledCharHeight);
-    };
-    DynamicCharAtlas.prototype._getColorFromAnsiIndex = function (idx) {
-        if (idx < this._config.colors.ansi.length) {
-            return this._config.colors.ansi[idx];
-        }
-        return ColorManager_1.DEFAULT_ANSI_COLORS[idx];
-    };
-    DynamicCharAtlas.prototype._getBackgroundColor = function (glyph) {
-        if (this._config.allowTransparency) {
-            return TRANSPARENT_COLOR;
-        }
-        else if (glyph.bg === Types_1.INVERTED_DEFAULT_COLOR) {
-            return this._config.colors.foreground;
-        }
-        else if (glyph.bg < 256) {
-            return this._getColorFromAnsiIndex(glyph.bg);
-        }
-        return this._config.colors.background;
-    };
-    DynamicCharAtlas.prototype._getForegroundColor = function (glyph) {
-        if (glyph.fg === Types_1.INVERTED_DEFAULT_COLOR) {
-            return this._config.colors.background;
-        }
-        else if (glyph.fg < 256) {
-            return this._getColorFromAnsiIndex(glyph.fg);
-        }
-        return this._config.colors.foreground;
-    };
-    DynamicCharAtlas.prototype._drawToCache = function (glyph, index) {
-        this._drawToCacheCount++;
-        this._tmpCtx.save();
-        var backgroundColor = this._getBackgroundColor(glyph);
-        this._tmpCtx.globalCompositeOperation = 'copy';
-        this._tmpCtx.fillStyle = backgroundColor.css;
-        this._tmpCtx.fillRect(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);
-        this._tmpCtx.globalCompositeOperation = 'source-over';
-        var fontWeight = glyph.bold ? this._config.fontWeightBold : this._config.fontWeight;
-        var fontStyle = glyph.italic ? 'italic' : '';
-        this._tmpCtx.font =
-            fontStyle + " " + fontWeight + " " + this._config.fontSize * this._config.devicePixelRatio + "px " + this._config.fontFamily;
-        this._tmpCtx.textBaseline = 'middle';
-        this._tmpCtx.fillStyle = this._getForegroundColor(glyph).css;
-        if (glyph.dim) {
-            this._tmpCtx.globalAlpha = Types_1.DIM_OPACITY;
-        }
-        this._tmpCtx.fillText(glyph.chars, 0, this._config.scaledCharHeight / 2);
-        this._tmpCtx.restore();
-        var imageData = this._tmpCtx.getImageData(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);
-        var isEmpty = false;
-        if (!this._config.allowTransparency) {
-            isEmpty = CharAtlasGenerator_1.clearColor(imageData, backgroundColor);
-        }
-        var x = this._toCoordinateX(index);
-        var y = this._toCoordinateY(index);
-        this._cacheCtx.putImageData(imageData, x, y);
-        var cacheValue = {
-            index: index,
-            isEmpty: isEmpty,
-            inBitmap: false
-        };
-        this._addGlyphToBitmap(cacheValue);
-        return cacheValue;
-    };
-    DynamicCharAtlas.prototype._addGlyphToBitmap = function (cacheValue) {
-        var _this = this;
-        if (!('createImageBitmap' in window) || Platform_1.isFirefox || Platform_1.isSafari) {
-            return;
-        }
-        this._glyphsWaitingOnBitmap.push(cacheValue);
-        if (this._bitmapCommitTimeout !== null) {
-            return;
-        }
-        this._bitmapCommitTimeout = window.setTimeout(function () { return _this._generateBitmap(); }, GLYPH_BITMAP_COMMIT_DELAY);
-    };
-    DynamicCharAtlas.prototype._generateBitmap = function () {
-        var _this = this;
-        var glyphsMovingToBitmap = this._glyphsWaitingOnBitmap;
-        this._glyphsWaitingOnBitmap = [];
-        window.createImageBitmap(this._cacheCanvas).then(function (bitmap) {
-            _this._bitmap = bitmap;
-            for (var i = 0; i < glyphsMovingToBitmap.length; i++) {
-                var value = glyphsMovingToBitmap[i];
-                value.inBitmap = true;
-            }
-        });
-        this._bitmapCommitTimeout = null;
-    };
-    return DynamicCharAtlas;
-}(BaseCharAtlas_1.default));
-exports.default = DynamicCharAtlas;
-
-},{"../../common/Platform":27,"../ColorManager":37,"./BaseCharAtlas":44,"./CharAtlasGenerator":46,"./LRUMap":49,"./Types":52}],49:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var LRUMap = (function () {
-    function LRUMap(capacity) {
-        this.capacity = capacity;
-        this._map = {};
-        this._head = null;
-        this._tail = null;
-        this._nodePool = [];
-        this.size = 0;
-    }
-    LRUMap.prototype._unlinkNode = function (node) {
-        var prev = node.prev;
-        var next = node.next;
-        if (node === this._head) {
-            this._head = next;
-        }
-        if (node === this._tail) {
-            this._tail = prev;
-        }
-        if (prev !== null) {
-            prev.next = next;
-        }
-        if (next !== null) {
-            next.prev = prev;
-        }
-    };
-    LRUMap.prototype._appendNode = function (node) {
-        var tail = this._tail;
-        if (tail !== null) {
-            tail.next = node;
-        }
-        node.prev = tail;
-        node.next = null;
-        this._tail = node;
-        if (this._head === null) {
-            this._head = node;
-        }
-    };
-    LRUMap.prototype.prealloc = function (count) {
-        var nodePool = this._nodePool;
-        for (var i = 0; i < count; i++) {
-            nodePool.push({
-                prev: null,
-                next: null,
-                key: null,
-                value: null
-            });
-        }
-    };
-    LRUMap.prototype.get = function (key) {
-        var node = this._map[key];
-        if (node !== undefined) {
-            this._unlinkNode(node);
-            this._appendNode(node);
-            return node.value;
-        }
-        return null;
-    };
-    LRUMap.prototype.peekValue = function (key) {
-        var node = this._map[key];
-        if (node !== undefined) {
-            return node.value;
-        }
-        return null;
-    };
-    LRUMap.prototype.peek = function () {
-        var head = this._head;
-        return head === null ? null : head.value;
-    };
-    LRUMap.prototype.set = function (key, value) {
-        var node = this._map[key];
-        if (node !== undefined) {
-            node = this._map[key];
-            this._unlinkNode(node);
-            node.value = value;
-        }
-        else if (this.size >= this.capacity) {
-            node = this._head;
-            this._unlinkNode(node);
-            delete this._map[node.key];
-            node.key = key;
-            node.value = value;
-            this._map[key] = node;
-        }
-        else {
-            var nodePool = this._nodePool;
-            if (nodePool.length > 0) {
-                node = nodePool.pop();
-                node.key = key;
-                node.value = value;
-            }
-            else {
-                node = {
-                    prev: null,
-                    next: null,
-                    key: key,
-                    value: value
-                };
-            }
-            this._map[key] = node;
-            this.size++;
-        }
-        this._appendNode(node);
-    };
-    return LRUMap;
-}());
-exports.default = LRUMap;
-
-},{}],50:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var BaseCharAtlas_1 = require("./BaseCharAtlas");
-var NoneCharAtlas = (function (_super) {
-    __extends(NoneCharAtlas, _super);
-    function NoneCharAtlas(document, config) {
-        return _super.call(this) || this;
-    }
-    NoneCharAtlas.prototype.draw = function (ctx, glyph, x, y) {
-        return false;
-    };
-    return NoneCharAtlas;
-}(BaseCharAtlas_1.default));
-exports.default = NoneCharAtlas;
-
-},{"./BaseCharAtlas":44}],51:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Types_1 = require("./Types");
-var CharAtlasGenerator_1 = require("./CharAtlasGenerator");
-var BaseCharAtlas_1 = require("./BaseCharAtlas");
-var CharAtlasUtils_1 = require("./CharAtlasUtils");
-var StaticCharAtlas = (function (_super) {
-    __extends(StaticCharAtlas, _super);
-    function StaticCharAtlas(_document, _config) {
-        var _this = _super.call(this) || this;
-        _this._document = _document;
-        _this._config = _config;
-        _this._canvasFactory = function (width, height) {
-            var canvas = _this._document.createElement('canvas');
-            canvas.width = width;
-            canvas.height = height;
-            return canvas;
-        };
-        return _this;
-    }
-    StaticCharAtlas.prototype._doWarmUp = function () {
-        var _this = this;
-        var result = CharAtlasGenerator_1.generateStaticCharAtlasTexture(window, this._canvasFactory, this._config);
-        if (result instanceof HTMLCanvasElement) {
-            this._texture = result;
-        }
-        else {
-            result.then(function (texture) {
-                _this._texture = texture;
-            });
-        }
-    };
-    StaticCharAtlas.prototype._isCached = function (glyph, colorIndex) {
-        var isAscii = glyph.code < 256;
-        var isBasicColor = glyph.fg < 16;
-        var isDefaultColor = glyph.fg === Types_1.DEFAULT_COLOR;
-        var isDefaultBackground = glyph.bg === Types_1.DEFAULT_COLOR;
-        return isAscii && (isBasicColor || isDefaultColor) && isDefaultBackground && !glyph.italic;
-    };
-    StaticCharAtlas.prototype.draw = function (ctx, glyph, x, y) {
-        if (this._texture === null || this._texture === undefined) {
-            return false;
-        }
-        var colorIndex = 0;
-        if (CharAtlasUtils_1.is256Color(glyph.fg)) {
-            colorIndex = 2 + glyph.fg + (glyph.bold ? 16 : 0);
-        }
-        else if (glyph.fg === Types_1.DEFAULT_COLOR) {
-            if (glyph.bold) {
-                colorIndex = 1;
-            }
-        }
-        if (!this._isCached(glyph, colorIndex)) {
-            return false;
-        }
-        ctx.save();
-        var charAtlasCellWidth = this._config.scaledCharWidth + Types_1.CHAR_ATLAS_CELL_SPACING;
-        var charAtlasCellHeight = this._config.scaledCharHeight + Types_1.CHAR_ATLAS_CELL_SPACING;
-        if (glyph.dim) {
-            ctx.globalAlpha = Types_1.DIM_OPACITY;
-        }
-        ctx.drawImage(this._texture, glyph.code * charAtlasCellWidth, colorIndex * charAtlasCellHeight, charAtlasCellWidth, this._config.scaledCharHeight, x, y, charAtlasCellWidth, this._config.scaledCharHeight);
-        ctx.restore();
-        return true;
-    };
-    return StaticCharAtlas;
-}(BaseCharAtlas_1.default));
-exports.default = StaticCharAtlas;
-
-},{"./BaseCharAtlas":44,"./CharAtlasGenerator":46,"./CharAtlasUtils":47,"./Types":52}],52:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.DEFAULT_COLOR = 256;
-exports.INVERTED_DEFAULT_COLOR = 257;
-exports.DIM_OPACITY = 0.5;
-exports.CHAR_ATLAS_CELL_SPACING = 1;
-
-},{}],53:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var ColorManager_1 = require("../ColorManager");
-var RenderDebouncer_1 = require("../../ui/RenderDebouncer");
-var DomRendererRowFactory_1 = require("./DomRendererRowFactory");
-var Types_1 = require("../atlas/Types");
-var EventEmitter2_1 = require("../../common/EventEmitter2");
-var Lifecycle_1 = require("../../common/Lifecycle");
-var TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';
-var ROW_CONTAINER_CLASS = 'xterm-rows';
-var FG_CLASS_PREFIX = 'xterm-fg-';
-var BG_CLASS_PREFIX = 'xterm-bg-';
-var FOCUS_CLASS = 'xterm-focus';
-var SELECTION_CLASS = 'xterm-selection';
-var nextTerminalId = 1;
-var DomRenderer = (function (_super) {
-    __extends(DomRenderer, _super);
-    function DomRenderer(_terminal, theme) {
-        var _this = _super.call(this) || this;
-        _this._terminal = _terminal;
-        _this._terminalClass = nextTerminalId++;
-        _this._rowElements = [];
-        _this._onCanvasResize = new EventEmitter2_1.EventEmitter2();
-        _this._onRender = new EventEmitter2_1.EventEmitter2();
-        var allowTransparency = _this._terminal.options.allowTransparency;
-        _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);
-        _this.setTheme(theme);
-        _this._rowContainer = document.createElement('div');
-        _this._rowContainer.classList.add(ROW_CONTAINER_CLASS);
-        _this._rowContainer.style.lineHeight = 'normal';
-        _this._rowContainer.setAttribute('aria-hidden', 'true');
-        _this._refreshRowElements(_this._terminal.cols, _this._terminal.rows);
-        _this._selectionContainer = document.createElement('div');
-        _this._selectionContainer.classList.add(SELECTION_CLASS);
-        _this._selectionContainer.setAttribute('aria-hidden', 'true');
-        _this.dimensions = {
-            scaledCharWidth: null,
-            scaledCharHeight: null,
-            scaledCellWidth: null,
-            scaledCellHeight: null,
-            scaledCharLeft: null,
-            scaledCharTop: null,
-            scaledCanvasWidth: null,
-            scaledCanvasHeight: null,
-            canvasWidth: null,
-            canvasHeight: null,
-            actualCellWidth: null,
-            actualCellHeight: null
-        };
-        _this._updateDimensions();
-        _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._renderRows.bind(_this));
-        _this._rowFactory = new DomRendererRowFactory_1.DomRendererRowFactory(_terminal.options, document);
-        _this._terminal.element.classList.add(TERMINAL_CLASS_PREFIX + _this._terminalClass);
-        _this._terminal.screenElement.appendChild(_this._rowContainer);
-        _this._terminal.screenElement.appendChild(_this._selectionContainer);
-        _this._terminal.linkifier.onLinkHover(function (e) { return _this._onLinkHover(e); });
-        _this._terminal.linkifier.onLinkLeave(function (e) { return _this._onLinkLeave(e); });
-        return _this;
-    }
-    Object.defineProperty(DomRenderer.prototype, "onCanvasResize", {
-        get: function () { return this._onCanvasResize.event; },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(DomRenderer.prototype, "onRender", {
-        get: function () { return this._onRender.event; },
-        enumerable: true,
-        configurable: true
-    });
-    DomRenderer.prototype.dispose = function () {
-        this._terminal.element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);
-        this._terminal.screenElement.removeChild(this._rowContainer);
-        this._terminal.screenElement.removeChild(this._selectionContainer);
-        this._terminal.screenElement.removeChild(this._themeStyleElement);
-        this._terminal.screenElement.removeChild(this._dimensionsStyleElement);
-        _super.prototype.dispose.call(this);
-    };
-    DomRenderer.prototype._updateDimensions = function () {
-        var _this = this;
-        this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio);
-        this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);
-        this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);
-        this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);
-        this.dimensions.scaledCharLeft = 0;
-        this.dimensions.scaledCharTop = 0;
-        this.dimensions.scaledCanvasWidth = this.dimensions.scaledCellWidth * this._terminal.cols;
-        this.dimensions.scaledCanvasHeight = this.dimensions.scaledCellHeight * this._terminal.rows;
-        this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);
-        this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);
-        this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;
-        this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;
-        this._rowElements.forEach(function (element) {
-            element.style.width = _this.dimensions.canvasWidth + "px";
-            element.style.height = _this.dimensions.actualCellHeight + "px";
-            element.style.lineHeight = _this.dimensions.actualCellHeight + "px";
-            element.style.overflow = 'hidden';
-        });
-        if (!this._dimensionsStyleElement) {
-            this._dimensionsStyleElement = document.createElement('style');
-            this._terminal.screenElement.appendChild(this._dimensionsStyleElement);
-        }
-        var styles = this._terminalSelector + " ." + ROW_CONTAINER_CLASS + " span {" +
-            " display: inline-block;" +
-            " height: 100%;" +
-            " vertical-align: top;" +
-            (" width: " + this.dimensions.actualCellWidth + "px") +
-            "}";
-        this._dimensionsStyleElement.innerHTML = styles;
-        this._selectionContainer.style.height = this._terminal._viewportElement.style.height;
-        this._terminal.screenElement.style.width = this.dimensions.canvasWidth + "px";
-        this._terminal.screenElement.style.height = this.dimensions.canvasHeight + "px";
-    };
-    DomRenderer.prototype.setTheme = function (theme) {
-        var _this = this;
-        if (theme) {
-            this.colorManager.setTheme(theme);
-        }
-        if (!this._themeStyleElement) {
-            this._themeStyleElement = document.createElement('style');
-            this._terminal.screenElement.appendChild(this._themeStyleElement);
-        }
-        var styles = this._terminalSelector + " ." + ROW_CONTAINER_CLASS + " {" +
-            (" color: " + this.colorManager.colors.foreground.css + ";") +
-            (" background-color: " + this.colorManager.colors.background.css + ";") +
-            (" font-family: " + this._terminal.getOption('fontFamily') + ";") +
-            (" font-size: " + this._terminal.getOption('fontSize') + "px;") +
-            "}";
-        styles +=
-            this._terminalSelector + " span:not(." + DomRendererRowFactory_1.BOLD_CLASS + ") {" +
-                (" font-weight: " + this._terminal.options.fontWeight + ";") +
-                "}" +
-                (this._terminalSelector + " span." + DomRendererRowFactory_1.BOLD_CLASS + " {") +
-                (" font-weight: " + this._terminal.options.fontWeightBold + ";") +
-                "}" +
-                (this._terminalSelector + " span." + DomRendererRowFactory_1.ITALIC_CLASS + " {") +
-                " font-style: italic;" +
-                "}";
-        styles +=
-            "@keyframes blink {" +
-                " 0% { opacity: 1.0; }" +
-                " 50% { opacity: 0.0; }" +
-                " 100% { opacity: 1.0; }" +
-                "}";
-        styles +=
-            this._terminalSelector + " ." + ROW_CONTAINER_CLASS + ":not(." + FOCUS_CLASS + ") ." + DomRendererRowFactory_1.CURSOR_CLASS + " {" +
-                (" outline: 1px solid " + this.colorManager.colors.cursor.css + ";") +
-                " outline-offset: -1px;" +
-                "}" +
-                (this._terminalSelector + " ." + ROW_CONTAINER_CLASS + "." + FOCUS_CLASS + " ." + DomRendererRowFactory_1.CURSOR_CLASS + "." + DomRendererRowFactory_1.CURSOR_BLINK_CLASS + " {") +
-                " animation: blink 1s step-end infinite;" +
-                "}" +
-                (this._terminalSelector + " ." + ROW_CONTAINER_CLASS + "." + FOCUS_CLASS + " ." + DomRendererRowFactory_1.CURSOR_CLASS + "." + DomRendererRowFactory_1.CURSOR_STYLE_BLOCK_CLASS + " {") +
-                (" background-color: " + this.colorManager.colors.cursor.css + ";") +
-                (" color: " + this.colorManager.colors.cursorAccent.css + ";") +
-                "}" +
-                (this._terminalSelector + " ." + ROW_CONTAINER_CLASS + "." + FOCUS_CLASS + " ." + DomRendererRowFactory_1.CURSOR_CLASS + "." + DomRendererRowFactory_1.CURSOR_STYLE_BAR_CLASS + " {") +
-                (" box-shadow: 1px 0 0 " + this.colorManager.colors.cursor.css + " inset;") +
-                "}" +
-                (this._terminalSelector + " ." + ROW_CONTAINER_CLASS + "." + FOCUS_CLASS + " ." + DomRendererRowFactory_1.CURSOR_CLASS + "." + DomRendererRowFactory_1.CURSOR_STYLE_UNDERLINE_CLASS + " {") +
-                (" box-shadow: 0 -1px 0 " + this.colorManager.colors.cursor.css + " inset;") +
-                "}";
-        styles +=
-            this._terminalSelector + " ." + SELECTION_CLASS + " {" +
-                " position: absolute;" +
-                " top: 0;" +
-                " left: 0;" +
-                " z-index: 1;" +
-                " pointer-events: none;" +
-                "}" +
-                (this._terminalSelector + " ." + SELECTION_CLASS + " div {") +
-                " position: absolute;" +
-                (" background-color: " + this.colorManager.colors.selection.css + ";") +
-                "}";
-        this.colorManager.colors.ansi.forEach(function (c, i) {
-            styles +=
-                _this._terminalSelector + " ." + FG_CLASS_PREFIX + i + " { color: " + c.css + "; }" +
-                    (_this._terminalSelector + " ." + BG_CLASS_PREFIX + i + " { background-color: " + c.css + "; }");
-        });
-        styles +=
-            this._terminalSelector + " ." + FG_CLASS_PREFIX + Types_1.INVERTED_DEFAULT_COLOR + " { color: " + this.colorManager.colors.background.css + "; }" +
-                (this._terminalSelector + " ." + BG_CLASS_PREFIX + Types_1.INVERTED_DEFAULT_COLOR + " { background-color: " + this.colorManager.colors.foreground.css + "; }");
-        this._themeStyleElement.innerHTML = styles;
-        return this.colorManager.colors;
-    };
-    DomRenderer.prototype.onWindowResize = function (devicePixelRatio) {
-        this._updateDimensions();
-    };
-    DomRenderer.prototype._refreshRowElements = function (cols, rows) {
-        for (var i = this._rowElements.length; i <= rows; i++) {
-            var row = document.createElement('div');
-            this._rowContainer.appendChild(row);
-            this._rowElements.push(row);
-        }
-        while (this._rowElements.length > rows) {
-            this._rowContainer.removeChild(this._rowElements.pop());
-        }
-    };
-    DomRenderer.prototype.onResize = function (cols, rows) {
-        this._refreshRowElements(cols, rows);
-        this._updateDimensions();
-        this._onCanvasResize.fire({
-            width: this.dimensions.canvasWidth,
-            height: this.dimensions.canvasHeight
-        });
-    };
-    DomRenderer.prototype.onCharSizeChanged = function () {
-        this._updateDimensions();
-    };
-    DomRenderer.prototype.onBlur = function () {
-        this._rowContainer.classList.remove(FOCUS_CLASS);
-    };
-    DomRenderer.prototype.onFocus = function () {
-        this._rowContainer.classList.add(FOCUS_CLASS);
-    };
-    DomRenderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {
-        while (this._selectionContainer.children.length) {
-            this._selectionContainer.removeChild(this._selectionContainer.children[0]);
-        }
-        if (!start || !end) {
-            return;
-        }
-        var viewportStartRow = start[1] - this._terminal.buffer.ydisp;
-        var viewportEndRow = end[1] - this._terminal.buffer.ydisp;
-        var viewportCappedStartRow = Math.max(viewportStartRow, 0);
-        var viewportCappedEndRow = Math.min(viewportEndRow, this._terminal.rows - 1);
-        if (viewportCappedStartRow >= this._terminal.rows || viewportCappedEndRow < 0) {
-            return;
-        }
-        var documentFragment = document.createDocumentFragment();
-        if (columnSelectMode) {
-            documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, start[0], end[0], viewportCappedEndRow - viewportCappedStartRow + 1));
-        }
-        else {
-            var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;
-            var endCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : this._terminal.cols;
-            documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, startCol, endCol));
-            var middleRowsCount = viewportCappedEndRow - viewportCappedStartRow - 1;
-            documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow + 1, 0, this._terminal.cols, middleRowsCount));
-            if (viewportCappedStartRow !== viewportCappedEndRow) {
-                var endCol_1 = viewportEndRow === viewportCappedEndRow ? end[0] : this._terminal.cols;
-                documentFragment.appendChild(this._createSelectionElement(viewportCappedEndRow, 0, endCol_1));
-            }
-        }
-        this._selectionContainer.appendChild(documentFragment);
-    };
-    DomRenderer.prototype._createSelectionElement = function (row, colStart, colEnd, rowCount) {
-        if (rowCount === void 0) { rowCount = 1; }
-        var element = document.createElement('div');
-        element.style.height = rowCount * this.dimensions.actualCellHeight + "px";
-        element.style.top = row * this.dimensions.actualCellHeight + "px";
-        element.style.left = colStart * this.dimensions.actualCellWidth + "px";
-        element.style.width = this.dimensions.actualCellWidth * (colEnd - colStart) + "px";
-        return element;
-    };
-    DomRenderer.prototype.onCursorMove = function () {
-    };
-    DomRenderer.prototype.onOptionsChanged = function () {
-        this._updateDimensions();
-        this.setTheme(undefined);
-        this._terminal.refresh(0, this._terminal.rows - 1);
-    };
-    DomRenderer.prototype.clear = function () {
-        this._rowElements.forEach(function (e) { return e.innerHTML = ''; });
-    };
-    DomRenderer.prototype.refreshRows = function (start, end) {
-        this._renderDebouncer.refresh(start, end, this._terminal.rows);
-    };
-    DomRenderer.prototype._renderRows = function (start, end) {
-        var terminal = this._terminal;
-        var cursorAbsoluteY = terminal.buffer.ybase + terminal.buffer.y;
-        var cursorX = this._terminal.buffer.x;
-        var cursorBlink = this._terminal.options.cursorBlink;
-        for (var y = start; y <= end; y++) {
-            var rowElement = this._rowElements[y];
-            rowElement.innerHTML = '';
-            var row = y + terminal.buffer.ydisp;
-            var lineData = terminal.buffer.lines.get(row);
-            var cursorStyle = terminal.options.cursorStyle;
-            rowElement.appendChild(this._rowFactory.createRow(lineData, row === cursorAbsoluteY, cursorStyle, cursorX, cursorBlink, this.dimensions.actualCellWidth, terminal.cols));
-        }
-        this._onRender.fire({ start: start, end: end });
-    };
-    Object.defineProperty(DomRenderer.prototype, "_terminalSelector", {
-        get: function () {
-            return "." + TERMINAL_CLASS_PREFIX + this._terminalClass;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    DomRenderer.prototype.registerCharacterJoiner = function (handler) { return -1; };
-    DomRenderer.prototype.deregisterCharacterJoiner = function (joinerId) { return false; };
-    DomRenderer.prototype._onLinkHover = function (e) {
-        this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, true);
-    };
-    DomRenderer.prototype._onLinkLeave = function (e) {
-        this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, false);
-    };
-    DomRenderer.prototype._setCellUnderline = function (x, x2, y, y2, cols, enabled) {
-        while (x !== x2 || y !== y2) {
-            var row = this._rowElements[y];
-            if (!row) {
-                return;
-            }
-            var span = row.children[x];
-            if (span) {
-                span.style.textDecoration = enabled ? 'underline' : 'none';
-            }
-            if (++x >= cols) {
-                x = 0;
-                y++;
-            }
-        }
-    };
-    return DomRenderer;
-}(Lifecycle_1.Disposable));
-exports.DomRenderer = DomRenderer;
-
-},{"../../common/EventEmitter2":25,"../../common/Lifecycle":26,"../../ui/RenderDebouncer":56,"../ColorManager":37,"../atlas/Types":52,"./DomRendererRowFactory":54}],54:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Buffer_1 = require("../../Buffer");
-var Types_1 = require("../atlas/Types");
-var BufferLine_1 = require("../../BufferLine");
-exports.BOLD_CLASS = 'xterm-bold';
-exports.DIM_CLASS = 'xterm-dim';
-exports.ITALIC_CLASS = 'xterm-italic';
-exports.UNDERLINE_CLASS = 'xterm-underline';
-exports.CURSOR_CLASS = 'xterm-cursor';
-exports.CURSOR_BLINK_CLASS = 'xterm-cursor-blink';
-exports.CURSOR_STYLE_BLOCK_CLASS = 'xterm-cursor-block';
-exports.CURSOR_STYLE_BAR_CLASS = 'xterm-cursor-bar';
-exports.CURSOR_STYLE_UNDERLINE_CLASS = 'xterm-cursor-underline';
-var DomRendererRowFactory = (function () {
-    function DomRendererRowFactory(_terminalOptions, _document) {
-        this._terminalOptions = _terminalOptions;
-        this._document = _document;
-        this._workCell = new BufferLine_1.CellData();
-    }
-    DomRendererRowFactory.prototype.createRow = function (lineData, isCursorRow, cursorStyle, cursorX, cursorBlink, cellWidth, cols) {
-        var fragment = this._document.createDocumentFragment();
-        var lineLength = 0;
-        for (var x = Math.min(lineData.length, cols) - 1; x >= 0; x--) {
-            if (lineData.loadCell(x, this._workCell).getCode() !== Buffer_1.NULL_CELL_CODE || (isCursorRow && x === cursorX)) {
-                lineLength = x + 1;
-                break;
-            }
-        }
-        for (var x = 0; x < lineLength; x++) {
-            lineData.loadCell(x, this._workCell);
-            var width = this._workCell.getWidth();
-            if (width === 0) {
-                continue;
-            }
-            var charElement = this._document.createElement('span');
-            if (width > 1) {
-                charElement.style.width = cellWidth * width + "px";
-            }
-            if (isCursorRow && x === cursorX) {
-                charElement.classList.add(exports.CURSOR_CLASS);
-                if (cursorBlink) {
-                    charElement.classList.add(exports.CURSOR_BLINK_CLASS);
-                }
-                switch (cursorStyle) {
-                    case 'bar':
-                        charElement.classList.add(exports.CURSOR_STYLE_BAR_CLASS);
-                        break;
-                    case 'underline':
-                        charElement.classList.add(exports.CURSOR_STYLE_UNDERLINE_CLASS);
-                        break;
-                    default:
-                        charElement.classList.add(exports.CURSOR_STYLE_BLOCK_CLASS);
-                        break;
-                }
-            }
-            if (this._workCell.isBold() && this._terminalOptions.enableBold) {
-                charElement.classList.add(exports.BOLD_CLASS);
-            }
-            if (this._workCell.isItalic()) {
-                charElement.classList.add(exports.ITALIC_CLASS);
-            }
-            if (this._workCell.isDim()) {
-                charElement.classList.add(exports.DIM_CLASS);
-            }
-            if (this._workCell.isUnderline()) {
-                charElement.classList.add(exports.UNDERLINE_CLASS);
-            }
-            charElement.textContent = this._workCell.getChars() || Buffer_1.WHITESPACE_CELL_CHAR;
-            var swapColor = this._workCell.isInverse();
-            if (this._workCell.isFgRGB()) {
-                var style = charElement.getAttribute('style') || '';
-                style += (swapColor ? 'background-' : '') + "color:rgb(" + (BufferLine_1.AttributeData.toColorRGB(this._workCell.getFgColor())).join(',') + ");";
-                charElement.setAttribute('style', style);
-            }
-            else if (this._workCell.isFgPalette()) {
-                var fg = this._workCell.getFgColor();
-                if (this._workCell.isBold() && fg < 8 && !swapColor &&
-                    this._terminalOptions.enableBold && this._terminalOptions.drawBoldTextInBrightColors) {
-                    fg += 8;
-                }
-                charElement.classList.add("xterm-" + (swapColor ? 'b' : 'f') + "g-" + fg);
-            }
-            else if (swapColor) {
-                charElement.classList.add("xterm-bg-" + Types_1.INVERTED_DEFAULT_COLOR);
-            }
-            if (this._workCell.isBgRGB()) {
-                var style = charElement.getAttribute('style') || '';
-                style += (swapColor ? '' : 'background-') + "color:rgb(" + (BufferLine_1.AttributeData.toColorRGB(this._workCell.getBgColor())).join(',') + ");";
-                charElement.setAttribute('style', style);
-            }
-            else if (this._workCell.isBgPalette()) {
-                charElement.classList.add("xterm-" + (swapColor ? 'f' : 'b') + "g-" + this._workCell.getBgColor());
-            }
-            else if (swapColor) {
-                charElement.classList.add("xterm-fg-" + Types_1.INVERTED_DEFAULT_COLOR);
-            }
-            fragment.appendChild(charElement);
-        }
-        return fragment;
-    };
-    return DomRendererRowFactory;
-}());
-exports.DomRendererRowFactory = DomRendererRowFactory;
-
-},{"../../Buffer":2,"../../BufferLine":3,"../atlas/Types":52}],55:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function addDisposableDomListener(node, type, handler, useCapture) {
-    node.addEventListener(type, handler, useCapture);
-    return {
-        dispose: function () {
-            if (!handler) {
-                return;
-            }
-            node.removeEventListener(type, handler, useCapture);
-        }
-    };
-}
-exports.addDisposableDomListener = addDisposableDomListener;
-
-},{}],56:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var RenderDebouncer = (function () {
-    function RenderDebouncer(_renderCallback) {
-        this._renderCallback = _renderCallback;
-    }
-    RenderDebouncer.prototype.dispose = function () {
-        if (this._animationFrame) {
-            window.cancelAnimationFrame(this._animationFrame);
-            this._animationFrame = undefined;
-        }
-    };
-    RenderDebouncer.prototype.refresh = function (rowStart, rowEnd, rowCount) {
-        var _this = this;
-        this._rowCount = rowCount;
-        rowStart = rowStart !== undefined ? rowStart : 0;
-        rowEnd = rowEnd !== undefined ? rowEnd : this._rowCount - 1;
-        this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;
-        this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;
-        if (this._animationFrame) {
-            return;
-        }
-        this._animationFrame = window.requestAnimationFrame(function () { return _this._innerRefresh(); });
-    };
-    RenderDebouncer.prototype._innerRefresh = function () {
-        if (this._rowStart === undefined || this._rowEnd === undefined || this._rowCount === undefined) {
-            return;
-        }
-        this._rowStart = Math.max(this._rowStart, 0);
-        this._rowEnd = Math.min(this._rowEnd, this._rowCount - 1);
-        this._renderCallback(this._rowStart, this._rowEnd);
-        this._rowStart = undefined;
-        this._rowEnd = undefined;
-        this._animationFrame = undefined;
-    };
-    return RenderDebouncer;
-}());
-exports.RenderDebouncer = RenderDebouncer;
-
-},{}],57:[function(require,module,exports){
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Lifecycle_1 = require("../common/Lifecycle");
-var ScreenDprMonitor = (function (_super) {
-    __extends(ScreenDprMonitor, _super);
-    function ScreenDprMonitor() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this._currentDevicePixelRatio = window.devicePixelRatio;
-        return _this;
-    }
-    ScreenDprMonitor.prototype.setListener = function (listener) {
-        var _this = this;
-        if (this._listener) {
-            this.clearListener();
-        }
-        this._listener = listener;
-        this._outerListener = function () {
-            if (!_this._listener) {
-                return;
-            }
-            _this._listener(window.devicePixelRatio, _this._currentDevicePixelRatio);
-            _this._updateDpr();
-        };
-        this._updateDpr();
-    };
-    ScreenDprMonitor.prototype.dispose = function () {
-        _super.prototype.dispose.call(this);
-        this.clearListener();
-    };
-    ScreenDprMonitor.prototype._updateDpr = function () {
-        if (!this._resolutionMediaMatchList || !this._outerListener) {
-            return;
-        }
-        this._resolutionMediaMatchList.removeListener(this._outerListener);
-        this._currentDevicePixelRatio = window.devicePixelRatio;
-        this._resolutionMediaMatchList = window.matchMedia("screen and (resolution: " + window.devicePixelRatio + "dppx)");
-        this._resolutionMediaMatchList.addListener(this._outerListener);
-    };
-    ScreenDprMonitor.prototype.clearListener = function () {
-        if (!this._resolutionMediaMatchList || !this._listener || !this._outerListener) {
-            return;
-        }
-        this._resolutionMediaMatchList.removeListener(this._outerListener);
-        this._resolutionMediaMatchList = undefined;
-        this._listener = undefined;
-        this._outerListener = undefined;
-    };
-    return ScreenDprMonitor;
-}(Lifecycle_1.Disposable));
-exports.ScreenDprMonitor = ScreenDprMonitor;
-
-},{"../common/Lifecycle":26}],58:[function(require,module,exports){
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Terminal_1 = require("./public/Terminal");
-module.exports = Terminal_1.Terminal;
-
-},{"./public/Terminal":34}]},{},[58])(58)
-});
-//# sourceMappingURL=xterm.js.map
+!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(window,function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=33)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(14);t.IBufferService=i.createDecorator("BufferService"),t.ICoreMouseService=i.createDecorator("CoreMouseService"),t.ICoreService=i.createDecorator("CoreService"),t.IDirtyRowService=i.createDecorator("DirtyRowService"),t.IInstantiationService=i.createDecorator("InstantiationService"),t.ILogService=i.createDecorator("LogService"),t.IOptionsService=i.createDecorator("OptionsService")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._listeners=[],this._disposed=!1}return Object.defineProperty(e.prototype,"event",{get:function(){var e=this;return this._event||(this._event=function(t){return e._listeners.push(t),{dispose:function(){if(!e._disposed)for(var r=0;r<e._listeners.length;r++)if(e._listeners[r]===t)return void e._listeners.splice(r,1)}}}),this._event},enumerable:!0,configurable:!0}),e.prototype.fire=function(e){for(var t=[],r=0;r<this._listeners.length;r++)t.push(this._listeners[r]);for(r=0;r<t.length;r++)t[r].call(void 0,e)},e.prototype.dispose=function(){this._listeners&&(this._listeners.length=0),this._disposed=!0},e}();t.EventEmitter=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._disposables=[],this._isDisposed=!1}return e.prototype.dispose=function(){this._isDisposed=!0,this._disposables.forEach(function(e){return e.dispose()}),this._disposables.length=0},e.prototype.register=function(e){this._disposables.push(e)},e.prototype.unregister=function(e){var t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)},e}();t.Disposable=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_COLOR=256,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(14);t.ICharSizeService=i.createDecorator("CharSizeService"),t.ICoreBrowserService=i.createDecorator("CoreBrowserService"),t.IMouseService=i.createDecorator("MouseService"),t.IRenderService=i.createDecorator("RenderService"),t.ISelectionService=i.createDecorator("SelectionService"),t.ISoundService=i.createDecorator("SoundService")},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),s=r(3),a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.content=0,t.fg=0,t.bg=0,t.combinedData="",t}return n(t,e),t.fromCharData=function(e){var r=new t;return r.setFromCharData(e),r},t.prototype.isCombined=function(){return 2097152&this.content},t.prototype.getWidth=function(){return this.content>>22},t.prototype.getChars=function(){return 2097152&this.content?this.combinedData:2097151&this.content?o.stringFromCodePoint(2097151&this.content):""},t.prototype.getCode=function(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content},t.prototype.setFromCharData=function(e){this.fg=e[s.CHAR_DATA_ATTR_INDEX],this.bg=0;var t=!1;if(e[s.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[s.CHAR_DATA_CHAR_INDEX].length){var r=e[s.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=r&&r<=56319){var i=e[s.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=i&&i<=57343?this.content=1024*(r-55296)+i-56320+65536|e[s.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[s.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[s.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[s.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[s.CHAR_DATA_WIDTH_INDEX]<<22)},t.prototype.getAsCharData=function(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]},t}(r(6).AttributeData);t.CellData=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.fg=0,this.bg=0}return e.toColorRGB=function(e){return[e>>>16&255,e>>>8&255,255&e]},e.fromColorRGB=function(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]},e.prototype.clone=function(){var t=new e;return t.fg=this.fg,t.bg=this.bg,t},e.prototype.isInverse=function(){return 67108864&this.fg},e.prototype.isBold=function(){return 134217728&this.fg},e.prototype.isUnderline=function(){return 268435456&this.fg},e.prototype.isBlink=function(){return 536870912&this.fg},e.prototype.isInvisible=function(){return 1073741824&this.fg},e.prototype.isItalic=function(){return 67108864&this.bg},e.prototype.isDim=function(){return 134217728&this.bg},e.prototype.getFgColorMode=function(){return 50331648&this.fg},e.prototype.getBgColorMode=function(){return 50331648&this.bg},e.prototype.isFgRGB=function(){return 50331648==(50331648&this.fg)},e.prototype.isBgRGB=function(){return 50331648==(50331648&this.bg)},e.prototype.isFgPalette=function(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)},e.prototype.isBgPalette=function(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)},e.prototype.isFgDefault=function(){return 0==(50331648&this.fg)},e.prototype.isBgDefault=function(){return 0==(50331648&this.bg)},e.prototype.getFgColor=function(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}},e.prototype.getBgColor=function(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}},e}();t.AttributeData=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=function(e,t,r,i){return e.addEventListener(t,r,i),{dispose:function(){r&&e.removeEventListener(t,r,i)}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t,r){void 0===t&&(t=0),void 0===r&&(r=e.length);for(var i="",n=t;n<r;++n){var o=e[n];o>65535?(o-=65536,i+=String.fromCharCode(55296+(o>>10))+String.fromCharCode(o%1024+56320)):i+=String.fromCharCode(o)}return i};var i=function(){function e(){this._interim=0}return e.prototype.clear=function(){this._interim=0},e.prototype.decode=function(e,t){var r=e.length;if(!r)return 0;var i=0,n=0;this._interim&&(56320<=(a=e.charCodeAt(n++))&&a<=57343?t[i++]=1024*(this._interim-55296)+a-56320+65536:(t[i++]=this._interim,t[i++]=a),this._interim=0);for(var o=n;o<r;++o){var s=e.charCodeAt(o);if(55296<=s&&s<=56319){if(++o>=r)return this._interim=s,i;var a;56320<=(a=e.charCodeAt(o))&&a<=57343?t[i++]=1024*(s-55296)+a-56320+65536:(t[i++]=s,t[i++]=a)}else t[i++]=s}return i},e}();t.StringToUtf32=i;var n=function(){function e(){this.interim=new Uint8Array(3)}return e.prototype.clear=function(){this.interim.fill(0)},e.prototype.decode=function(e,t){var r=e.length;if(!r)return 0;var i,n,o,s,a=0,c=0,l=0;if(this.interim[0]){var h=!1,u=this.interim[0];u&=192==(224&u)?31:224==(240&u)?15:7;for(var f=0,_=void 0;(_=63&this.interim[++f])&&f<4;)u<<=6,u|=_;for(var d=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,p=d-f;l<p;){if(l>=r)return 0;if(128!=(192&(_=e[l++]))){l--,h=!0;break}this.interim[f++]=_,u<<=6,u|=63&_}h||(2===d?u<128?l--:t[a++]=u:3===d?u<2048||u>=55296&&u<=57343||(t[a++]=u):u<65536||u>1114111||(t[a++]=u)),this.interim.fill(0)}for(var v=r-4,g=l;g<r;){for(;!(!(g<v)||128&(i=e[g])||128&(n=e[g+1])||128&(o=e[g+2])||128&(s=e[g+3]));)t[a++]=i,t[a++]=n,t[a++]=o,t[a++]=s,g+=4;if((i=e[g++])<128)t[a++]=i;else if(192==(224&i)){if(g>=r)return this.interim[0]=i,a;if(128!=(192&(n=e[g++]))){g--;continue}if((c=(31&i)<<6|63&n)<128){g--;continue}t[a++]=c}else if(224==(240&i)){if(g>=r)return this.interim[0]=i,a;if(128!=(192&(n=e[g++]))){g--;continue}if(g>=r)return this.interim[0]=i,this.interim[1]=n,a;if(128!=(192&(o=e[g++]))){g--;continue}if((c=(15&i)<<12|(63&n)<<6|63&o)<2048||c>=55296&&c<=57343)continue;t[a++]=c}else if(240==(248&i)){if(g>=r)return this.interim[0]=i,a;if(128!=(192&(n=e[g++]))){g--;continue}if(g>=r)return this.interim[0]=i,this.interim[1]=n,a;if(128!=(192&(o=e[g++]))){g--;continue}if(g>=r)return this.interim[0]=i,this.interim[1]=n,this.interim[2]=o,a;if(128!=(192&(s=e[g++]))){g--;continue}if((c=(7&i)<<18|(63&n)<<12|(63&o)<<6|63&s)<65536||c>1114111)continue;t[a++]=c}}return a},e}();t.Utf8ToUtf32=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.CHAR_ATLAS_CELL_SPACING=1},function(e,t,r){"use strict";function i(e){var t=e.toString(16);return t.length<2?"0"+t:t}function n(e,t,r,n){return void 0!==n?"#"+i(e)+i(t)+i(r)+i(n):"#"+i(e)+i(t)+i(r)}function o(e,t,r,i){return void 0===i&&(i=255),(e<<24|t<<16|r<<8|i)>>>0}function s(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}function a(e){return c(e>>16&255,e>>8&255,255&e)}function c(e,t,r){var i=e/255,n=t/255,o=r/255;return.2126*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}function l(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}function h(e,t,r){return{css:n(e,t,r),rgba:o(e,t,r)}}function u(e,t,r){var i=a(e>>8),n=a(t>>8);if(l(i,n)<r)return n<i?f(e,t,r):_(e,t,r)}function f(e,t,r){for(var i=e>>24&255,n=e>>16&255,o=e>>8&255,s=t>>24&255,a=t>>16&255,h=t>>8&255,u=l(c(s,h,a),c(i,n,o));u<r&&(s>0||a>0||h>0);)s-=Math.max(0,Math.ceil(.1*s)),a-=Math.max(0,Math.ceil(.1*a)),u=l(c(s,h-=Math.max(0,Math.ceil(.1*h)),a),c(i,n,o));return(s<<24|a<<16|h<<8|255)>>>0}function _(e,t,r){for(var i=e>>24&255,n=e>>16&255,o=e>>8&255,s=t>>24&255,a=t>>16&255,h=t>>8&255,u=l(c(s,h,a),c(i,n,o));u<r&&(s<255||a<255||h<255);)s=Math.min(255,s+Math.ceil(.1*(255-s))),a=Math.min(255,a+Math.ceil(.1*(255-a))),u=l(c(s,h=Math.min(255,h+Math.ceil(.1*(255-h))),a),c(i,n,o));return(s<<24|a<<16|h<<8|255)>>>0}Object.defineProperty(t,"__esModule",{value:!0}),t.blend=function(e,t){var r=(255&t.rgba)/255;if(1===r)return{css:t.css,rgba:t.rgba};var i=t.rgba>>24&255,s=t.rgba>>16&255,a=t.rgba>>8&255,c=e.rgba>>24&255,l=e.rgba>>16&255,h=e.rgba>>8&255,u=c+Math.round((i-c)*r),f=l+Math.round((s-l)*r),_=h+Math.round((a-h)*r);return{css:n(u,f,_),rgba:o(u,f,_)}},t.fromCss=function(e){return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0}},t.toPaddedHex=i,t.toCss=n,t.toRgba=o,t.fromRgba=s,t.opaque=function(e){var t=(255|e.rgba)>>>0,r=s(t);return{css:n(r[0],r[1],r[2]),rgba:t}},t.rgbRelativeLuminance=a,t.rgbRelativeLuminance2=c,t.contrastRatio=l,t.rgbaToColor=h,t.ensureContrastRatioRgba=u,t.ensureContrastRatio=function(e,t,r){var i=u(e.rgba,t.rgba,r);if(i)return h(i>>24&255,i>>16&255,i>>8&255)},t.reduceLuminance=f,t.increaseLuminance=_},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="undefined"==typeof navigator,n=i?"node":navigator.userAgent,o=i?"node":navigator.platform;function s(e,t){return e.indexOf(t)>=0}t.isFirefox=!!~n.indexOf("Firefox"),t.isSafari=/^((?!chrome|android).)*safari/i.test(n),t.isMac=s(["Macintosh","MacIntel","MacPPC","Mac68K"],o),t.isIpad="iPad"===o,t.isIphone="iPhone"===o,t.isWindows=s(["Windows","Win16","Win32","WinCE"],o),t.isLinux=o.indexOf("Linux")>=0},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.NUL="\0",e.SOH="\ 1",e.STX="\ 2",e.ETX="\ 3",e.EOT="\ 4",e.ENQ="\ 5",e.ACK="\ 6",e.BEL="\a",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="\ e",e.SI="\ f",e.DLE="\10",e.DC1="\11",e.DC2="\12",e.DC3="\13",e.DC4="\14",e.NAK="\15",e.SYN="\16",e.ETB="\17",e.CAN="\18",e.EM="\19",e.SUB="\1a",e.ESC="\e",e.FS="\1c",e.GS="\1d",e.RS="\1e",e.US="\1f",e.SP=" ",e.DEL="\7f"}(t.C0||(t.C0={})),function(e){e.PAD="\80",e.HOP="\81",e.BPH="\82",e.NBH="\83",e.IND="\84",e.NEL="\85",e.SSA="\86",e.ESA="\87",e.HTS="\88",e.HTJ="\89",e.VTS="\8a",e.PLD="\8b",e.PLU="\8c",e.RI="\8d",e.SS2="\8e",e.SS3="\8f",e.DCS="\90",e.PU1="\91",e.PU2="\92",e.STS="\93",e.CCH="\94",e.MW="\95",e.SPA="\96",e.EPA="\97",e.SOS="\98",e.SGCI="\99",e.SCI="\9a",e.CSI="\9b",e.ST="\9c",e.OSC="\9d",e.PM="\9e",e.APC="\9f"}(t.C1||(t.C1={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(3),n=r(9),o=r(24),s=r(6),a=r(27),c=r(10),l=function(){function e(e,t,r,i,n,o,s,a){this._container=e,this._alpha=i,this._colors=n,this._rendererId=o,this._bufferService=s,this._optionsService=a,this._scaledCharWidth=0,this._scaledCharHeight=0,this._scaledCellWidth=0,this._scaledCellHeight=0,this._scaledCharLeft=0,this._scaledCharTop=0,this._currentGlyphIdentifier={chars:"",code:0,bg:0,fg:0,bold:!1,dim:!1,italic:!1},this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-"+t+"-layer"),this._canvas.style.zIndex=r.toString(),this._initCanvas(),this._container.appendChild(this._canvas)}return e.prototype.dispose=function(){var e;this._container.removeChild(this._canvas),null===(e=this._charAtlas)||void 0===e||e.dispose()},e.prototype._initCanvas=function(){this._ctx=a.throwIfFalsy(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()},e.prototype.onOptionsChanged=function(){},e.prototype.onBlur=function(){},e.prototype.onFocus=function(){},e.prototype.onCursorMove=function(){},e.prototype.onGridChanged=function(e,t){},e.prototype.onSelectionChanged=function(e,t,r){void 0===r&&(r=!1)},e.prototype.setColors=function(e){this._refreshCharAtlas(e)},e.prototype._setTransparency=function(e){if(e!==this._alpha){var t=this._canvas;this._alpha=e,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,t),this._refreshCharAtlas(this._colors),this.onGridChanged(0,this._bufferService.rows-1)}},e.prototype._refreshCharAtlas=function(e){this._scaledCharWidth<=0&&this._scaledCharHeight<=0||(this._charAtlas=o.acquireCharAtlas(this._optionsService.options,this._rendererId,e,this._scaledCharWidth,this._scaledCharHeight),this._charAtlas.warmUp())},e.prototype.resize=function(e){this._scaledCellWidth=e.scaledCellWidth,this._scaledCellHeight=e.scaledCellHeight,this._scaledCharWidth=e.scaledCharWidth,this._scaledCharHeight=e.scaledCharHeight,this._scaledCharLeft=e.scaledCharLeft,this._scaledCharTop=e.scaledCharTop,this._canvas.width=e.scaledCanvasWidth,this._canvas.height=e.scaledCanvasHeight,this._canvas.style.width=e.canvasWidth+"px",this._canvas.style.height=e.canvasHeight+"px",this._alpha||this._clearAll(),this._refreshCharAtlas(this._colors)},e.prototype._fillCells=function(e,t,r,i){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,r*this._scaledCellWidth,i*this._scaledCellHeight)},e.prototype._fillBottomLineAtCells=function(e,t,r){void 0===r&&(r=1),this._ctx.fillRect(e*this._scaledCellWidth,(t+1)*this._scaledCellHeight-window.devicePixelRatio-1,r*this._scaledCellWidth,window.devicePixelRatio)},e.prototype._fillLeftLineAtCell=function(e,t){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,window.devicePixelRatio,this._scaledCellHeight)},e.prototype._strokeRectAtCell=function(e,t,r,i){this._ctx.lineWidth=window.devicePixelRatio,this._ctx.strokeRect(e*this._scaledCellWidth+window.devicePixelRatio/2,t*this._scaledCellHeight+window.devicePixelRatio/2,r*this._scaledCellWidth-window.devicePixelRatio,i*this._scaledCellHeight-window.devicePixelRatio)},e.prototype._clearAll=function(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))},e.prototype._clearCells=function(e,t,r,i){this._alpha?this._ctx.clearRect(e*this._scaledCellWidth,t*this._scaledCellHeight,r*this._scaledCellWidth,i*this._scaledCellHeight):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,r*this._scaledCellWidth,i*this._scaledCellHeight))},e.prototype._fillCharTrueColor=function(e,t,r){this._ctx.font=this._getFont(!1,!1),this._ctx.textBaseline="middle",this._clipRow(r),this._ctx.fillText(e.getChars(),t*this._scaledCellWidth+this._scaledCharLeft,r*this._scaledCellHeight+this._scaledCharTop+this._scaledCharHeight/2)},e.prototype._drawChars=function(e,t,r){var o,s,a=this._getContrastColor(e);a||e.isFgRGB()||e.isBgRGB()?this._drawUncachedChars(e,t,r,a):(e.isInverse()?(o=e.isBgDefault()?n.INVERTED_DEFAULT_COLOR:e.getBgColor(),s=e.isFgDefault()?n.INVERTED_DEFAULT_COLOR:e.getFgColor()):(s=e.isBgDefault()?i.DEFAULT_COLOR:e.getBgColor(),o=e.isFgDefault()?i.DEFAULT_COLOR:e.getFgColor()),o+=this._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&o<8?8:0,this._currentGlyphIdentifier.chars=e.getChars()||i.WHITESPACE_CELL_CHAR,this._currentGlyphIdentifier.code=e.getCode()||i.WHITESPACE_CELL_CODE,this._currentGlyphIdentifier.bg=s,this._currentGlyphIdentifier.fg=o,this._currentGlyphIdentifier.bold=!!e.isBold(),this._currentGlyphIdentifier.dim=!!e.isDim(),this._currentGlyphIdentifier.italic=!!e.isItalic(),this._charAtlas&&this._charAtlas.draw(this._ctx,this._currentGlyphIdentifier,t*this._scaledCellWidth+this._scaledCharLeft,r*this._scaledCellHeight+this._scaledCharTop)||this._drawUncachedChars(e,t,r))},e.prototype._drawUncachedChars=function(e,t,r,i){if(this._ctx.save(),this._ctx.font=this._getFont(!!e.isBold(),!!e.isItalic()),this._ctx.textBaseline="middle",e.isInverse())if(i)this._ctx.fillStyle=i.css;else if(e.isBgDefault())this._ctx.fillStyle=c.opaque(this._colors.background).css;else if(e.isBgRGB())this._ctx.fillStyle="rgb("+s.AttributeData.toColorRGB(e.getBgColor()).join(",")+")";else{var o=e.getBgColor();this._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&o<8&&(o+=8),this._ctx.fillStyle=this._colors.ansi[o].css}else if(i)this._ctx.fillStyle=i.css;else if(e.isFgDefault())this._ctx.fillStyle=this._colors.foreground.css;else if(e.isFgRGB())this._ctx.fillStyle="rgb("+s.AttributeData.toColorRGB(e.getFgColor()).join(",")+")";else{var a=e.getFgColor();this._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&a<8&&(a+=8),this._ctx.fillStyle=this._colors.ansi[a].css}this._clipRow(r),e.isDim()&&(this._ctx.globalAlpha=n.DIM_OPACITY),this._ctx.fillText(e.getChars(),t*this._scaledCellWidth+this._scaledCharLeft,r*this._scaledCellHeight+this._scaledCharTop+this._scaledCharHeight/2),this._ctx.restore()},e.prototype._clipRow=function(e){this._ctx.beginPath(),this._ctx.rect(0,e*this._scaledCellHeight,this._bufferService.cols*this._scaledCellWidth,this._scaledCellHeight),this._ctx.clip()},e.prototype._getFont=function(e,t){return(t?"italic":"")+" "+(e?this._optionsService.options.fontWeightBold:this._optionsService.options.fontWeight)+" "+this._optionsService.options.fontSize*window.devicePixelRatio+"px "+this._optionsService.options.fontFamily},e.prototype._getContrastColor=function(e){if(1!==this._optionsService.options.minimumContrastRatio){var t=this._colors.contrastCache.getColor(e.bg,e.fg);if(void 0!==t)return t||void 0;var r=e.getFgColor(),i=e.getFgColorMode(),n=e.getBgColor(),o=e.getBgColorMode(),s=!!e.isInverse(),a=!!e.isInverse();if(s){var l=r;r=n,n=l;var h=i;i=o,o=h}var u=this._resolveBackgroundRgba(o,n,s),f=this._resolveForegroundRgba(i,r,s,a),_=c.ensureContrastRatioRgba(u,f,this._optionsService.options.minimumContrastRatio);if(_){var d={css:c.toCss(_>>24&255,_>>16&255,_>>8&255),rgba:_};return this._colors.contrastCache.setColor(e.bg,e.fg,d),d}this._colors.contrastCache.setColor(e.bg,e.fg,null)}},e.prototype._resolveBackgroundRgba=function(e,t,r){switch(e){case 16777216:case 33554432:return this._colors.ansi[t].rgba;case 50331648:return t<<8;case 0:default:return r?this._colors.foreground.rgba:this._colors.background.rgba}},e.prototype._resolveForegroundRgba=function(e,t,r,i){switch(e){case 16777216:case 33554432:return this._optionsService.options.drawBoldTextInBrightColors&&i&&t<8&&(t+=8),this._colors.ansi[t].rgba;case 50331648:return t<<8;case 0:default:return r?this._colors.background.rgba:this._colors.foreground.rgba}},e}();t.BaseRenderLayer=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="di$target",n="di$dependencies";function o(e,t,r){t[i]===t?t[n].push({id:e,index:r}):(t[n]=[{id:e,index:r}],t[i]=t)}t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[n]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);var r=function(e,t,i){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");o(r,e,i)};return r.toString=function(){return e},t.serviceRegistry.set(e,r),r}},function(e,t,r){"use strict";function i(e,t,r,i){if(void 0===r&&(r=0),void 0===i&&(i=e.length),r>=e.length)return e;r=(e.length+r)%e.length,i=i>=e.length?e.length:(e.length+i)%e.length;for(var n=r;n<i;++n)e[n]=t;return e}Object.defineProperty(t,"__esModule",{value:!0}),t.fill=function(e,t,r,n){return e.fill?e.fill(t,r,n):i(e,t,r,n)},t.fillFallback=i,t.concat=function(e,t){var r=new e.constructor(e.length+t.length);return r.set(e),r.set(t,e.length),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(8),n=r(3),o=r(5),s=r(6),a=3;t.DEFAULT_ATTR_DATA=Object.freeze(new s.AttributeData);var c=function(){function e(e,t,r){void 0===r&&(r=!1),this.isWrapped=r,this._combined={},this._data=new Uint32Array(e*a);for(var i=t||o.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]),s=0;s<e;++s)this.setCell(s,i);this.length=e}return e.prototype.get=function(e){var t=this._data[e*a+0],r=2097151&t;return[this._data[e*a+1],2097152&t?this._combined[e]:r?i.stringFromCodePoint(r):"",t>>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):r]},e.prototype.set=function(e,t){this._data[e*a+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[e*a+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[e*a+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22},e.prototype.getWidth=function(e){return this._data[e*a+0]>>22},e.prototype.hasWidth=function(e){return 12582912&this._data[e*a+0]},e.prototype.getFg=function(e){return this._data[e*a+1]},e.prototype.getBg=function(e){return this._data[e*a+2]},e.prototype.hasContent=function(e){return 4194303&this._data[e*a+0]},e.prototype.getCodePoint=function(e){var t=this._data[e*a+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t},e.prototype.isCombined=function(e){return 2097152&this._data[e*a+0]},e.prototype.getString=function(e){var t=this._data[e*a+0];return 2097152&t?this._combined[e]:2097151&t?i.stringFromCodePoint(2097151&t):""},e.prototype.loadCell=function(e,t){var r=e*a;return t.content=this._data[r+0],t.fg=this._data[r+1],t.bg=this._data[r+2],2097152&t.content&&(t.combinedData=this._combined[e]),t},e.prototype.setCell=function(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),this._data[e*a+0]=t.content,this._data[e*a+1]=t.fg,this._data[e*a+2]=t.bg},e.prototype.setCellFromCodePoint=function(e,t,r,i,n){this._data[e*a+0]=t|r<<22,this._data[e*a+1]=i,this._data[e*a+2]=n},e.prototype.addCodepointToCell=function(e,t){var r=this._data[e*a+0];2097152&r?this._combined[e]+=i.stringFromCodePoint(t):(2097151&r?(this._combined[e]=i.stringFromCodePoint(2097151&r)+i.stringFromCodePoint(t),r&=-2097152,r|=2097152):r=t|1<<22,this._data[e*a+0]=r)},e.prototype.insertCells=function(e,t,r){if(e%=this.length,t<this.length-e){for(var i=new o.CellData,n=this.length-e-t-1;n>=0;--n)this.setCell(e+t+n,this.loadCell(e+n,i));for(n=0;n<t;++n)this.setCell(e+n,r)}else for(n=e;n<this.length;++n)this.setCell(n,r)},e.prototype.deleteCells=function(e,t,r){if(e%=this.length,t<this.length-e){for(var i=new o.CellData,n=0;n<this.length-e-t;++n)this.setCell(e+n,this.loadCell(e+t+n,i));for(n=this.length-t;n<this.length;++n)this.setCell(n,r)}else for(n=e;n<this.length;++n)this.setCell(n,r)},e.prototype.replaceCells=function(e,t,r){for(;e<t&&e<this.length;)this.setCell(e++,r)},e.prototype.resize=function(e,t){if(e!==this.length){if(e>this.length){var r=new Uint32Array(e*a);this.length&&(e*a<this._data.length?r.set(this._data.subarray(0,e*a)):r.set(this._data)),this._data=r;for(var i=this.length;i<e;++i)this.setCell(i,t)}else if(e){(r=new Uint32Array(e*a)).set(this._data.subarray(0,e*a)),this._data=r;var n=Object.keys(this._combined);for(i=0;i<n.length;i++){var o=parseInt(n[i],10);o>=e&&delete this._combined[o]}}else this._data=new Uint32Array(0),this._combined={};this.length=e}},e.prototype.fill=function(e){this._combined={};for(var t=0;t<this.length;++t)this.setCell(t,e)},e.prototype.copyFrom=function(e){for(var t in this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={},e._combined)this._combined[t]=e._combined[t];this.isWrapped=e.isWrapped},e.prototype.clone=function(){var t=new e(0);for(var r in t._data=new Uint32Array(this._data),t.length=this.length,this._combined)t._combined[r]=this._combined[r];return t.isWrapped=this.isWrapped,t},e.prototype.getTrimmedLength=function(){for(var e=this.length-1;e>=0;--e)if(4194303&this._data[e*a+0])return e+(this._data[e*a+0]>>22);return 0},e.prototype.copyCellsFrom=function(e,t,r,i,n){var o=e._data;if(n)for(var s=i-1;s>=0;s--)for(var c=0;c<a;c++)this._data[(r+s)*a+c]=o[(t+s)*a+c];else for(s=0;s<i;s++)for(c=0;c<a;c++)this._data[(r+s)*a+c]=o[(t+s)*a+c];var l=Object.keys(e._combined);for(c=0;c<l.length;c++){var h=parseInt(l[c],10);h>=t&&(this._combined[h-t+r]=e._combined[h])}},e.prototype.translateToString=function(e,t,r){void 0===e&&(e=!1),void 0===t&&(t=0),void 0===r&&(r=this.length),e&&(r=Math.min(r,this.getTrimmedLength()));for(var o="";t<r;){var s=this._data[t*a+0],c=2097151&s;o+=2097152&s?this._combined[t]:c?i.stringFromCodePoint(c):n.WHITESPACE_CELL_CHAR,t+=s>>22||1}return o},e}();t.BufferLine=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"\t",c:"\f",d:"\r",e:"\n",f:"°",g:"±",h:"␤",i:"\v",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=null,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(15);t.wcwidth=function(e){var t=[[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]],r=[[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]];var n=0|e.control,o=new Uint8Array(65536);i.fill(o,1),o[0]=e.nul,i.fill(o,e.control,1,32),i.fill(o,e.control,127,160),i.fill(o,2,4352,4448),o[9001]=2,o[9002]=2,i.fill(o,2,11904,42192),o[12351]=1,i.fill(o,2,44032,55204),i.fill(o,2,63744,64256),i.fill(o,2,65040,65050),i.fill(o,2,65072,65136),i.fill(o,2,65280,65377),i.fill(o,2,65504,65511);for(var s=0;s<t.length;++s)i.fill(o,0,t[s][0],t[s][1]+1);return function(e){return e<32?0|n:e<127?1:e<65536?o[e]:function(e,t){var r,i=0,n=t.length-1;if(e<t[0][0]||e>t[n][1])return!1;for(;n>=i;)if(e>t[r=i+n>>1][1])i=r+1;else{if(!(e<t[r][0]))return!0;n=r-1}return!1}(t=e,r)?0:t>=131072&&t<=196605||t>=196608&&t<=262141?2:1;var t}}({nul:0,control:0}),t.getStringCellWidth=function(e){for(var r=0,i=e.length,n=0;n<i;++n){var o=e.charCodeAt(n);if(55296<=o&&o<=56319){if(++n>=i)return r+t.wcwidth(o);var s=e.charCodeAt(n);56320<=s&&s<=57343?o=1024*(o-55296)+s-56320+65536:r+=t.wcwidth(s)}r+=t.wcwidth(o)}return r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=256,n=function(){function e(e,t){if(void 0===e&&(e=32),void 0===t&&(t=32),this.maxLength=e,this.maxSubParamsLength=t,t>i)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}return e.fromArray=function(t){var r=new e;if(!t.length)return r;for(var i=t[0]instanceof Array?1:0;i<t.length;++i){var n=t[i];if(n instanceof Array)for(var o=0;o<n.length;++o)r.addSubParam(n[o]);else r.addParam(n)}return r},e.prototype.clone=function(){var t=new e(this.maxLength,this.maxSubParamsLength);return t.params.set(this.params),t.length=this.length,t._subParams.set(this._subParams),t._subParamsLength=this._subParamsLength,t._subParamsIdx.set(this._subParamsIdx),t._rejectDigits=this._rejectDigits,t._rejectSubDigits=this._rejectSubDigits,t._digitIsSub=this._digitIsSub,t},e.prototype.toArray=function(){for(var e=[],t=0;t<this.length;++t){e.push(this.params[t]);var r=this._subParamsIdx[t]>>8,i=255&this._subParamsIdx[t];i-r>0&&e.push(Array.prototype.slice.call(this._subParams,r,i))}return e},e.prototype.reset=function(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1},e.prototype.addParam=function(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>2147483647?2147483647:e}},e.prototype.addSubParam=function(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>2147483647?2147483647:e,this._subParamsIdx[this.length-1]++}},e.prototype.hasSubParams=function(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0},e.prototype.getSubParams=function(e){var t=this._subParamsIdx[e]>>8,r=255&this._subParamsIdx[e];return r-t>0?this._subParams.subarray(t,r):null},e.prototype.getSubParamsAll=function(){for(var e={},t=0;t<this.length;++t){var r=this._subParamsIdx[t]>>8,i=255&this._subParamsIdx[t];i-r>0&&(e[t]=this._subParams.slice(r,i))}return e},e.prototype.addDigit=function(e){var t;if(!(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)){var r=this._digitIsSub?this._subParams:this.params,i=r[t-1];r[t-1]=~i?Math.min(10*i+e,2147483647):e}},e}();t.Params=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(22),n=r(8),o=function(){function e(){this._state=0,this._id=-1,this._handlers=Object.create(null),this._handlerFb=function(){}}return e.prototype.addHandler=function(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);var r=this._handlers[e];return r.push(t),{dispose:function(){var e=r.indexOf(t);-1!==e&&r.splice(e,1)}}},e.prototype.setHandler=function(e,t){this._handlers[e]=[t]},e.prototype.clearHandler=function(e){this._handlers[e]&&delete this._handlers[e]},e.prototype.setHandlerFallback=function(e){this._handlerFb=e},e.prototype.dispose=function(){this._handlers=Object.create(null),this._handlerFb=function(){}},e.prototype.reset=function(){2===this._state&&this.end(!1),this._id=-1,this._state=0},e.prototype._start=function(){var e=this._handlers[this._id];if(e)for(var t=e.length-1;t>=0;t--)e[t].start();else this._handlerFb(this._id,"START")},e.prototype._put=function(e,t,r){var i=this._handlers[this._id];if(i)for(var o=i.length-1;o>=0;o--)i[o].put(e,t,r);else this._handlerFb(this._id,"PUT",n.utf32ToString(e,t,r))},e.prototype._end=function(e){var t=this._handlers[this._id];if(t){for(var r=t.length-1;r>=0&&!1===t[r].end(e);r--);for(r--;r>=0;r--)t[r].end(!1)}else this._handlerFb(this._id,"END",e)},e.prototype.start=function(){this.reset(),this._id=-1,this._state=1},e.prototype.put=function(e,t,r){if(3!==this._state){if(1===this._state)for(;t<r;){var i=e[t++];if(59===i){this._state=2,this._start();break}if(i<48||57<i)return void(this._state=3);-1===this._id&&(this._id=0),this._id=10*this._id+i-48}2===this._state&&r-t>0&&this._put(e,t,r)}},e.prototype.end=function(e){0!==this._state&&(3!==this._state&&(1===this._state&&this._start(),this._end(e)),this._id=-1,this._state=0)},e}();t.OscParser=o;var s=function(){function e(e){this._handler=e,this._data="",this._hitLimit=!1}return e.prototype.start=function(){this._data="",this._hitLimit=!1},e.prototype.put=function(e,t,r){this._hitLimit||(this._data+=n.utf32ToString(e,t,r),this._data.length>i.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))},e.prototype.end=function(e){var t;return this._hitLimit?t=!1:e&&(t=this._handler(this._data)),this._data="",this._hitLimit=!1,t},e}();t.OscHandler=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=1e7},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(8),n=r(20),o=r(22),s=[],a=function(){function e(){this._handlers=Object.create(null),this._active=s,this._ident=0,this._handlerFb=function(){}}return e.prototype.dispose=function(){this._handlers=Object.create(null),this._handlerFb=function(){}},e.prototype.addHandler=function(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);var r=this._handlers[e];return r.push(t),{dispose:function(){var e=r.indexOf(t);-1!==e&&r.splice(e,1)}}},e.prototype.setHandler=function(e,t){this._handlers[e]=[t]},e.prototype.clearHandler=function(e){this._handlers[e]&&delete this._handlers[e]},e.prototype.setHandlerFallback=function(e){this._handlerFb=e},e.prototype.reset=function(){this._active.length&&this.unhook(!1),this._active=s,this._ident=0},e.prototype.hook=function(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||s,this._active.length)for(var r=this._active.length-1;r>=0;r--)this._active[r].hook(t);else this._handlerFb(this._ident,"HOOK",t)},e.prototype.put=function(e,t,r){if(this._active.length)for(var n=this._active.length-1;n>=0;n--)this._active[n].put(e,t,r);else this._handlerFb(this._ident,"PUT",i.utf32ToString(e,t,r))},e.prototype.unhook=function(e){if(this._active.length){for(var t=this._active.length-1;t>=0&&!1===this._active[t].unhook(e);t--);for(t--;t>=0;t--)this._active[t].unhook(!1)}else this._handlerFb(this._ident,"UNHOOK",e);this._active=s,this._ident=0},e}();t.DcsParser=a;var c=function(){function e(e){this._handler=e,this._data="",this._hitLimit=!1}return e.prototype.hook=function(e){this._params=e.clone(),this._data="",this._hitLimit=!1},e.prototype.put=function(e,t,r){this._hitLimit||(this._data+=i.utf32ToString(e,t,r),this._data.length>o.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))},e.prototype.unhook=function(e){var t;return this._hitLimit?t=!1:e&&(t=this._handler(this._data,this._params?this._params:new n.Params)),this._params=void 0,this._data="",this._hitLimit=!1,t},e}();t.DcsHandler=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(25),n=r(43),o=[];t.acquireCharAtlas=function(e,t,r,s,a){for(var c=i.generateConfig(s,a,e,r),l=0;l<o.length;l++){var h=(u=o[l]).ownedBy.indexOf(t);if(h>=0){if(i.configEquals(u.config,c))return u.atlas;1===u.ownedBy.length?(u.atlas.dispose(),o.splice(l,1)):u.ownedBy.splice(h,1);break}}for(l=0;l<o.length;l++){var u=o[l];if(i.configEquals(u.config,c))return u.ownedBy.push(t),u.atlas}var f={atlas:new n.DynamicCharAtlas(document,c),config:c,ownedBy:[t]};return o.push(f),f.atlas},t.removeTerminalFromCache=function(e){for(var t=0;t<o.length;t++){var r=o[t].ownedBy.indexOf(e);if(-1!==r){1===o[t].ownedBy.length?(o[t].atlas.dispose(),o.splice(t,1)):o[t].ownedBy.splice(r,1);break}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(3);t.generateConfig=function(e,t,r,i){var n={foreground:i.foreground,background:i.background,cursor:void 0,cursorAccent:void 0,selection:void 0,ansi:i.ansi.slice(0,16)};return{devicePixelRatio:window.devicePixelRatio,scaledCharWidth:e,scaledCharHeight:t,fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight,fontWeightBold:r.fontWeightBold,allowTransparency:r.allowTransparency,colors:n}},t.configEquals=function(e,t){for(var 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.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.scaledCharWidth===t.scaledCharWidth&&e.scaledCharHeight===t.scaledCharHeight&&e.colors.foreground===t.colors.foreground&&e.colors.background===t.colors.background},t.is256Color=function(e){return e<i.DEFAULT_COLOR}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(10),n=r(45),o=i.fromCss("#ffffff"),s=i.fromCss("#000000"),a=i.fromCss("#ffffff"),c=i.fromCss("#000000"),l={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=function(){for(var e=[i.fromCss("#2e3436"),i.fromCss("#cc0000"),i.fromCss("#4e9a06"),i.fromCss("#c4a000"),i.fromCss("#3465a4"),i.fromCss("#75507b"),i.fromCss("#06989a"),i.fromCss("#d3d7cf"),i.fromCss("#555753"),i.fromCss("#ef2929"),i.fromCss("#8ae234"),i.fromCss("#fce94f"),i.fromCss("#729fcf"),i.fromCss("#ad7fa8"),i.fromCss("#34e2e2"),i.fromCss("#eeeeec")],t=[0,95,135,175,215,255],r=0;r<216;r++){var n=t[r/36%6|0],o=t[r/6%6|0],s=t[r%6];e.push({css:i.toCss(n,o,s),rgba:i.toRgba(n,o,s)})}for(r=0;r<24;r++){var a=8+10*r;e.push({css:i.toCss(a,a,a),rgba:i.toRgba(a,a,a)})}return e}();var h=function(){function e(e,r){this.allowTransparency=r;var h=e.createElement("canvas");h.width=1,h.height=1;var u=h.getContext("2d");if(!u)throw new Error("Could not get rendering context");this._ctx=u,this._ctx.globalCompositeOperation="copy",this._litmusColor=this._ctx.createLinearGradient(0,0,1,1),this._contrastCache=new n.ColorContrastCache,this.colors={foreground:o,background:s,cursor:a,cursorAccent:c,selection:l,selectionOpaque:i.blend(s,l),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache}}return e.prototype.onOptionsChange=function(e){"minimumContrastRatio"===e&&this._contrastCache.clear()},e.prototype.setTheme=function(e){void 0===e&&(e={}),this.colors.foreground=this._parseColor(e.foreground,o),this.colors.background=this._parseColor(e.background,s),this.colors.cursor=this._parseColor(e.cursor,a,!0),this.colors.cursorAccent=this._parseColor(e.cursorAccent,c,!0),this.colors.selection=this._parseColor(e.selection,l,!0),this.colors.selectionOpaque=i.blend(this.colors.background,this.colors.selection),this.colors.ansi[0]=this._parseColor(e.black,t.DEFAULT_ANSI_COLORS[0]),this.colors.ansi[1]=this._parseColor(e.red,t.DEFAULT_ANSI_COLORS[1]),this.colors.ansi[2]=this._parseColor(e.green,t.DEFAULT_ANSI_COLORS[2]),this.colors.ansi[3]=this._parseColor(e.yellow,t.DEFAULT_ANSI_COLORS[3]),this.colors.ansi[4]=this._parseColor(e.blue,t.DEFAULT_ANSI_COLORS[4]),this.colors.ansi[5]=this._parseColor(e.magenta,t.DEFAULT_ANSI_COLORS[5]),this.colors.ansi[6]=this._parseColor(e.cyan,t.DEFAULT_ANSI_COLORS[6]),this.colors.ansi[7]=this._parseColor(e.white,t.DEFAULT_ANSI_COLORS[7]),this.colors.ansi[8]=this._parseColor(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),this.colors.ansi[9]=this._parseColor(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),this.colors.ansi[10]=this._parseColor(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),this.colors.ansi[11]=this._parseColor(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),this.colors.ansi[12]=this._parseColor(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),this.colors.ansi[13]=this._parseColor(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),this.colors.ansi[14]=this._parseColor(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),this.colors.ansi[15]=this._parseColor(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),this._contrastCache.clear()},e.prototype._parseColor=function(e,t,r){if(void 0===r&&(r=this.allowTransparency),void 0===e)return t;if(this._ctx.fillStyle=this._litmusColor,this._ctx.fillStyle=e,"string"!=typeof this._ctx.fillStyle)return console.warn("Color: "+e+" is invalid using fallback "+t.css),t;this._ctx.fillRect(0,0,1,1);var n=this._ctx.getImageData(0,0,1,1).data;if(255!==n[3]){if(!r)return console.warn("Color: "+e+" is using transparency, but allowTransparency is false. Using fallback "+t.css+"."),t;var o=void 0,s=void 0,a=void 0,c=void 0,l=void 0;if(5===e.length){var h=parseInt(e.substr(1),16);o=16*(h>>12&15),s=16*(h>>8&15),a=16*(h>>4&15),c=16*(15&h),l=i.toRgba(o,s,a,c)}else o=(l=parseInt(e.substr(1),16))>>24&255,s=l>>16&255,a=l>>8&255,c=255&l;return{rgba:l,css:i.toCss(o,s,a,c)}}return{css:e,rgba:i.toRgba(n[0],n[1],n[2],n[3])}},e}();t.ColorManager=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e}},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(6),s=r(3),a=r(5),c=function(e){function t(t,r,i){var n=e.call(this)||this;return n.content=0,n.combinedData="",n.fg=t.fg,n.bg=t.bg,n.combinedData=r,n._width=i,n}return n(t,e),t.prototype.isCombined=function(){return 2097152},t.prototype.getWidth=function(){return this._width},t.prototype.getChars=function(){return this.combinedData},t.prototype.getCode=function(){return 2097151},t.prototype.setFromCharData=function(e){throw new Error("not implemented")},t.prototype.getAsCharData=function(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]},t}(o.AttributeData);t.JoinedCellData=c;var l=function(){function e(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}return e.prototype.registerCharacterJoiner=function(e){var t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id},e.prototype.deregisterCharacterJoiner=function(e){for(var t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1},e.prototype.getJoinedCharacters=function(e){if(0===this._characterJoiners.length)return[];var t=this._bufferService.buffer.lines.get(e);if(!t||0===t.length)return[];for(var r=[],i=t.translateToString(!0),n=0,o=0,a=0,c=t.getFg(0),l=t.getBg(0),h=0;h<t.getTrimmedLength();h++)if(t.loadCell(h,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==c||this._workCell.bg!==l){if(h-n>1)for(var u=this._getJoinedRanges(i,a,o,t,n),f=0;f<u.length;f++)r.push(u[f]);n=h,a=o,c=this._workCell.fg,l=this._workCell.bg}o+=this._workCell.getChars().length||s.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-n>1)for(u=this._getJoinedRanges(i,a,o,t,n),f=0;f<u.length;f++)r.push(u[f]);return r},e.prototype._getJoinedRanges=function(t,r,i,n,o){for(var s=t.substring(r,i),a=this._characterJoiners[0].handler(s),c=1;c<this._characterJoiners.length;c++)for(var l=this._characterJoiners[c].handler(s),h=0;h<l.length;h++)e._mergeRanges(a,l[h]);return this._stringRangesToCellRanges(a,n,o),a},e.prototype._stringRangesToCellRanges=function(e,t,r){var i=0,n=!1,o=0,a=e[i];if(a){for(var c=r;c<this._bufferService.cols;c++){var l=t.getWidth(c),h=t.getString(c).length||s.WHITESPACE_CELL_CHAR.length;if(0!==l){if(!n&&a[0]<=o&&(a[0]=c,n=!0),a[1]<=o){if(a[1]=c,!(a=e[++i]))break;a[0]<=o?(a[0]=c,n=!0):n=!1}o+=h}}a&&(a[1]=this._bufferService.cols)}},e._mergeRanges=function(e,t){for(var r=!1,i=0;i<e.length;i++){var n=e[i];if(r){if(t[1]<=n[0])return e[i-1][1]=t[1],e;if(t[1]<=n[1])return e[i-1][1]=Math.max(t[1],n[1]),e.splice(i,1),e;e.splice(i,1),i--}else{if(t[1]<=n[0])return e.splice(i,0,t),e;if(t[1]<=n[1])return n[0]=Math.min(t[0],n[0]),e;t[0]<n[1]&&(n[0]=Math.min(t[0],n[0]),r=!0)}}return r?e[e.length-1][1]=t[1]:e.push(t),e},e}();t.CharacterJoinerRegistry=l},function(e,t,r){"use strict";function i(e,t){var r=t.getBoundingClientRect();return[e.clientX-r.left,e.clientY-r.top]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,r,n,o,s,a,c){if(o){var l=i(e,t);if(l)return l[0]=Math.ceil((l[0]+(c?s/2:0))/s),l[1]=Math.ceil(l[1]/a),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l}},t.getRawByteCoords=function(e){if(e)return{x:e[0]+32,y:e[1]+32}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._renderCallback=e}return e.prototype.dispose=function(){this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)},e.prototype.refresh=function(e,t,r){var i=this;this._rowCount=r,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){return i._innerRefresh()}))},e.prototype._innerRefresh=function(){void 0!==this._rowStart&&void 0!==this._rowEnd&&void 0!==this._rowCount&&(this._rowStart=Math.max(this._rowStart,0),this._rowEnd=Math.min(this._rowEnd,this._rowCount-1),this._renderCallback(this._rowStart,this._rowEnd),this._rowStart=void 0,this._rowEnd=void 0,this._animationFrame=void 0)},e}();t.RenderDebouncer=i},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._currentDevicePixelRatio=window.devicePixelRatio,t}return n(t,e),t.prototype.setListener=function(e){var t=this;this._listener&&this.clearListener(),this._listener=e,this._outerListener=function(){t._listener&&(t._listener(window.devicePixelRatio,t._currentDevicePixelRatio),t._updateDpr())},this._updateDpr()},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.clearListener()},t.prototype._updateDpr=function(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._currentDevicePixelRatio=window.devicePixelRatio,this._resolutionMediaMatchList=window.matchMedia("screen and (resolution: "+window.devicePixelRatio+"dppx)"),this._resolutionMediaMatchList.addListener(this._outerListener))},t.prototype.clearListener=function(){this._resolutionMediaMatchList&&this._listener&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._listener=void 0,this._outerListener=void 0)},t}(r(2).Disposable);t.ScreenDprMonitor=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clone=function e(t,r){if(void 0===r&&(r=5),"object"!=typeof t)return t;var i=Array.isArray(t)?[]:{};for(var n in t)i[n]=r<=1?t[n]:t[n]?e(t[n],r-1):t[n];return i}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(34),n=r(17),o=r(78),s=function(){function e(e){this._core=new i.Terminal(e),this._addonManager=new o.AddonManager}return Object.defineProperty(e.prototype,"onCursorMove",{get:function(){return this._core.onCursorMove},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLineFeed",{get:function(){return this._core.onLineFeed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onSelectionChange",{get:function(){return this._core.onSelectionChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onData",{get:function(){return this._core.onData},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onBinary",{get:function(){return this._core.onBinary},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onTitleChange",{get:function(){return this._core.onTitleChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onScroll",{get:function(){return this._core.onScroll},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onKey",{get:function(){return this._core.onKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onRender",{get:function(){return this._core.onRender},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onResize",{get:function(){return this._core.onResize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this._core.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parser",{get:function(){return this._parser||(this._parser=new h(this._core)),this._parser},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textarea",{get:function(){return this._core.textarea},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rows",{get:function(){return this._core.rows},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cols",{get:function(){return this._core.cols},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"buffer",{get:function(){return new a(this._core.buffer)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"markers",{get:function(){return this._core.markers},enumerable:!0,configurable:!0}),e.prototype.blur=function(){this._core.blur()},e.prototype.focus=function(){this._core.focus()},e.prototype.resize=function(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)},e.prototype.open=function(e){this._core.open(e)},e.prototype.attachCustomKeyEventHandler=function(e){this._core.attachCustomKeyEventHandler(e)},e.prototype.registerLinkMatcher=function(e,t,r){return this._core.registerLinkMatcher(e,t,r)},e.prototype.deregisterLinkMatcher=function(e){this._core.deregisterLinkMatcher(e)},e.prototype.registerCharacterJoiner=function(e){return this._core.registerCharacterJoiner(e)},e.prototype.deregisterCharacterJoiner=function(e){this._core.deregisterCharacterJoiner(e)},e.prototype.addMarker=function(e){return this._verifyIntegers(e),this._core.addMarker(e)},e.prototype.hasSelection=function(){return this._core.hasSelection()},e.prototype.select=function(e,t,r){this._verifyIntegers(e,t,r),this._core.select(e,t,r)},e.prototype.getSelection=function(){return this._core.getSelection()},e.prototype.getSelectionPosition=function(){return this._core.getSelectionPosition()},e.prototype.clearSelection=function(){this._core.clearSelection()},e.prototype.selectAll=function(){this._core.selectAll()},e.prototype.selectLines=function(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)},e.prototype.dispose=function(){this._addonManager.dispose(),this._core.dispose()},e.prototype.scrollLines=function(e){this._verifyIntegers(e),this._core.scrollLines(e)},e.prototype.scrollPages=function(e){this._verifyIntegers(e),this._core.scrollPages(e)},e.prototype.scrollToTop=function(){this._core.scrollToTop()},e.prototype.scrollToBottom=function(){this._core.scrollToBottom()},e.prototype.scrollToLine=function(e){this._verifyIntegers(e),this._core.scrollToLine(e)},e.prototype.clear=function(){this._core.clear()},e.prototype.write=function(e,t){this._core.write(e,t)},e.prototype.writeUtf8=function(e,t){this._core.write(e,t)},e.prototype.writeln=function(e,t){this._core.write(e),this._core.write("\r\n",t)},e.prototype.paste=function(e){this._core.paste(e)},e.prototype.getOption=function(e){return this._core.optionsService.getOption(e)},e.prototype.setOption=function(e,t){this._core.optionsService.setOption(e,t)},e.prototype.refresh=function(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)},e.prototype.reset=function(){this._core.reset()},e.prototype.loadAddon=function(e){return this._addonManager.loadAddon(this,e)},Object.defineProperty(e,"strings",{get:function(){return n},enumerable:!0,configurable:!0}),e.prototype._verifyIntegers=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.forEach(function(e){if(e===1/0||isNaN(e)||e%1!=0)throw new Error("This API only accepts integers")})},e}();t.Terminal=s;var a=function(){function e(e){this._buffer=e}return Object.defineProperty(e.prototype,"cursorY",{get:function(){return this._buffer.y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorX",{get:function(){return this._buffer.x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"viewportY",{get:function(){return this._buffer.ydisp},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseY",{get:function(){return this._buffer.ybase},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this._buffer.lines.length},enumerable:!0,configurable:!0}),e.prototype.getLine=function(e){var t=this._buffer.lines.get(e);if(t)return new c(t)},e}(),c=function(){function e(e){this._line=e}return Object.defineProperty(e.prototype,"isWrapped",{get:function(){return this._line.isWrapped},enumerable:!0,configurable:!0}),e.prototype.getCell=function(e){if(!(e<0||e>=this._line.length))return new l(this._line,e)},e.prototype.translateToString=function(e,t,r){return this._line.translateToString(e,t,r)},e}(),l=function(){function e(e,t){this._line=e,this._x=t}return Object.defineProperty(e.prototype,"char",{get:function(){return this._line.getString(this._x)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._line.getWidth(this._x)},enumerable:!0,configurable:!0}),e}(),h=function(){function e(e){this._core=e}return e.prototype.addCsiHandler=function(e,t){return this._core.addCsiHandler(e,function(e){return t(e.toArray())})},e.prototype.addDcsHandler=function(e,t){return this._core.addDcsHandler(e,function(e,r){return t(e,r.toArray())})},e.prototype.addEscHandler=function(e,t){return this._core.addEscHandler(e,t)},e.prototype.addOscHandler=function(e,t){return this._core.addOscHandler(e,t)},e}()},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(35),s=r(36),a=r(37),c=r(12),l=r(38),h=r(40),u=r(50),f=r(51),_=r(11),d=r(7),p=r(17),v=r(54),g=r(55),y=r(56),b=r(57),m=r(59),C=r(1),S=r(16),w=r(60),E=r(26),L=r(61),A=r(0),R=r(62),x=r(4),k=r(63),D=r(64),T=r(2),M=r(70),O=r(71),P=r(72),H=r(73),I=r(74),B=r(75),F=r(76),j=r(77),q="undefined"!=typeof window?window.document:null,W=function(e){function t(t){void 0===t&&(t={});var r=e.call(this)||this;return r.browser=_,r.mouseEvents=0,r._keyDownHandled=!1,r._blankLine=null,r._onCursorMove=new C.EventEmitter,r._onData=new C.EventEmitter,r._onBinary=new C.EventEmitter,r._onKey=new C.EventEmitter,r._onLineFeed=new C.EventEmitter,r._onRender=new C.EventEmitter,r._onResize=new C.EventEmitter,r._onScroll=new C.EventEmitter,r._onSelectionChange=new C.EventEmitter,r._onTitleChange=new C.EventEmitter,r._onFocus=new C.EventEmitter,r._onBlur=new C.EventEmitter,r.onA11yCharEmitter=new C.EventEmitter,r.onA11yTabEmitter=new C.EventEmitter,r._instantiationService=new I.InstantiationService,r.optionsService=new R.OptionsService(t),r._instantiationService.setService(A.IOptionsService,r.optionsService),r._bufferService=r._instantiationService.createInstance(D.BufferService),r._instantiationService.setService(A.IBufferService,r._bufferService),r._logService=r._instantiationService.createInstance(P.LogService),r._instantiationService.setService(A.ILogService,r._logService),r._coreService=r._instantiationService.createInstance(O.CoreService,function(){return r.scrollToBottom()}),r._instantiationService.setService(A.ICoreService,r._coreService),r._coreService.onData(function(e){return r._onData.fire(e)}),r._coreService.onBinary(function(e){return r._onBinary.fire(e)}),r._coreMouseService=r._instantiationService.createInstance(B.CoreMouseService),r._instantiationService.setService(A.ICoreMouseService,r._coreMouseService),r._dirtyRowService=r._instantiationService.createInstance(H.DirtyRowService),r._instantiationService.setService(A.IDirtyRowService,r._dirtyRowService),r._setupOptionsListeners(),r._setup(),r._writeBuffer=new F.WriteBuffer(function(e){return r._inputHandler.parse(e)}),r}return n(t,e),Object.defineProperty(t.prototype,"options",{get:function(){return this.optionsService.options},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cols",{get:function(){return this._bufferService.cols},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._bufferService.rows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onCursorMove",{get:function(){return this._onCursorMove.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onData",{get:function(){return this._onData.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onBinary",{get:function(){return this._onBinary.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onKey",{get:function(){return this._onKey.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onLineFeed",{get:function(){return this._onLineFeed.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onRender",{get:function(){return this._onRender.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onResize",{get:function(){return this._onResize.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onScroll",{get:function(){return this._onScroll.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onSelectionChange",{get:function(){return this._onSelectionChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onTitleChange",{get:function(){return this._onTitleChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onFocus",{get:function(){return this._onFocus.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onBlur",{get:function(){return this._onBlur.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onA11yChar",{get:function(){return this.onA11yCharEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onA11yTab",{get:function(){return this.onA11yTabEmitter.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t,r,i,n;this._isDisposed||(e.prototype.dispose.call(this),null===(t=this._windowsMode)||void 0===t||t.dispose(),this._windowsMode=void 0,null===(r=this._renderService)||void 0===r||r.dispose(),this._customKeyEventHandler=null,this.write=function(){},null===(n=null===(i=this.element)||void 0===i?void 0:i.parentNode)||void 0===n||n.removeChild(this.element))},t.prototype._setup=function(){var e=this;this._parent=q?q.body:null,this._customKeyEventHandler=null,this.applicationKeypad=!1,this.originMode=!1,this.insertMode=!1,this.wraparoundMode=!0,this.bracketedPasteMode=!1,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.curAttrData=S.DEFAULT_ATTR_DATA.clone(),this._eraseAttrData=S.DEFAULT_ATTR_DATA.clone(),this.params=[],this.currentParam=0,this._userScrolling=!1,this._inputHandler=new l.InputHandler(this,this._bufferService,this._coreService,this._dirtyRowService,this._logService,this.optionsService,this._coreMouseService),this._inputHandler.onCursorMove(function(){return e._onCursorMove.fire()}),this._inputHandler.onLineFeed(function(){return e._onLineFeed.fire()}),this.register(this._inputHandler),this.linkifier=this.linkifier||new u.Linkifier(this._bufferService,this._logService),this.options.windowsMode&&this._enableWindowsMode()},t.prototype._enableWindowsMode=function(){this._windowsMode||(this._windowsMode=this.onLineFeed(w.handleWindowsModeLineFeed.bind(null,this._bufferService)))},Object.defineProperty(t.prototype,"buffer",{get:function(){return this.buffers.active},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buffers",{get:function(){return this._bufferService.buffers},enumerable:!0,configurable:!0}),t.prototype.eraseAttrData=function(){return this._eraseAttrData.bg&=-67108864,this._eraseAttrData.bg|=67108863&this.curAttrData.bg,this._eraseAttrData},t.prototype.focus=function(){this.textarea&&this.textarea.focus({preventScroll:!0})},t.prototype._setupOptionsListeners=function(){var e=this;this.optionsService.onOptionChange(function(t){var r,i,n,o,s;switch(t){case"fontFamily":case"fontSize":null===(r=e._renderService)||void 0===r||r.clear(),null===(i=e._charSizeService)||void 0===i||i.measure();break;case"drawBoldTextInBrightColors":case"letterSpacing":case"lineHeight":case"fontWeight":case"fontWeightBold":case"minimumContrastRatio":e._renderService&&(e._renderService.clear(),e._renderService.onResize(e.cols,e.rows),e.refresh(0,e.rows-1));break;case"rendererType":e._renderService&&(e._renderService.setRenderer(e._createRenderer()),e._renderService.onResize(e.cols,e.rows));break;case"scrollback":e.buffers.resize(e.cols,e.rows),null===(n=e.viewport)||void 0===n||n.syncScrollArea();break;case"screenReaderMode":e.optionsService.options.screenReaderMode?!e._accessibilityManager&&e._renderService&&(e._accessibilityManager=new y.AccessibilityManager(e,e._renderService)):(null===(o=e._accessibilityManager)||void 0===o||o.dispose(),e._accessibilityManager=null);break;case"tabStopWidth":e.buffers.setupTabStops();break;case"theme":e._setTheme(e.optionsService.options.theme);break;case"windowsMode":e.optionsService.options.windowsMode?e._enableWindowsMode():(null===(s=e._windowsMode)||void 0===s||s.dispose(),e._windowsMode=void 0)}})},t.prototype._onTextAreaFocus=function(e){this.sendFocus&&this._coreService.triggerDataEvent(c.C0.ESC+"[I"),this.updateCursorStyle(e),this.element.classList.add("focus"),this.showCursor(),this._onFocus.fire()},t.prototype.blur=function(){return this.textarea.blur()},t.prototype._onTextAreaBlur=function(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.sendFocus&&this._coreService.triggerDataEvent(c.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()},t.prototype._initGlobal=function(){var e=this;this._bindKeys(),this.register(d.addDisposableDomListener(this.element,"copy",function(t){e.hasSelection()&&a.copyHandler(t,e._selectionService)}));var t=function(t){return a.handlePasteEvent(t,e.textarea,e.bracketedPasteMode,e._coreService)};this.register(d.addDisposableDomListener(this.textarea,"paste",t)),this.register(d.addDisposableDomListener(this.element,"paste",t)),_.isFirefox?this.register(d.addDisposableDomListener(this.element,"mousedown",function(t){2===t.button&&a.rightClickHandler(t,e.textarea,e.screenElement,e._selectionService,e.options.rightClickSelectsWord)})):this.register(d.addDisposableDomListener(this.element,"contextmenu",function(t){a.rightClickHandler(t,e.textarea,e.screenElement,e._selectionService,e.options.rightClickSelectsWord)})),_.isLinux&&this.register(d.addDisposableDomListener(this.element,"auxclick",function(t){1===t.button&&a.moveTextAreaUnderMouseCursor(t,e.textarea,e.screenElement)}))},t.prototype._bindKeys=function(){var e=this;this.register(d.addDisposableDomListener(this.textarea,"keyup",function(t){return e._keyUp(t)},!0)),this.register(d.addDisposableDomListener(this.textarea,"keydown",function(t){return e._keyDown(t)},!0)),this.register(d.addDisposableDomListener(this.textarea,"keypress",function(t){return e._keyPress(t)},!0)),this.register(d.addDisposableDomListener(this.textarea,"compositionstart",function(){return e._compositionHelper.compositionstart()})),this.register(d.addDisposableDomListener(this.textarea,"compositionupdate",function(t){return e._compositionHelper.compositionupdate(t)})),this.register(d.addDisposableDomListener(this.textarea,"compositionend",function(){return e._compositionHelper.compositionend()})),this.register(this.onRender(function(){return e._compositionHelper.updateCompositionElements()})),this.register(this.onRender(function(t){return e._queueLinkification(t.start,t.end)}))},t.prototype.open=function(e){var t=this;if(this._parent=e||this._parent,!this._parent)throw new Error("Terminal requires a parent element.");q.body.contains(e)||this._logService.warn("Terminal.open was called on an element that was not attached to the DOM"),this._document=this._parent.ownerDocument,this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),this.element.setAttribute("tabindex","0"),this._parent.appendChild(this.element);var r=q.createDocumentFragment();this._viewportElement=q.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),r.appendChild(this._viewportElement),this._viewportScrollArea=q.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=q.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=q.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),r.appendChild(this.screenElement),this.textarea=q.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",p.promptLabel),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.register(d.addDisposableDomListener(this.textarea,"focus",function(e){return t._onTextAreaFocus(e)})),this.register(d.addDisposableDomListener(this.textarea,"blur",function(){return t._onTextAreaBlur()})),this._helperContainer.appendChild(this.textarea);var i=this._instantiationService.createInstance(j.CoreBrowserService,this.textarea);this._instantiationService.setService(x.ICoreBrowserService,i),this._charSizeService=this._instantiationService.createInstance(k.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(x.ICharSizeService,this._charSizeService),this._compositionView=q.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(o.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild(r),this._theme=this.options.theme||this._theme,this.options.theme=void 0,this._colorManager=new E.ColorManager(q,this.options.allowTransparency),this.optionsService.onOptionChange(function(e){return t._colorManager.onOptionsChange(e)}),this._colorManager.setTheme(this._theme);var n=this._createRenderer();this._renderService=this._instantiationService.createInstance(L.RenderService,n,this.rows,this.screenElement),this._instantiationService.setService(x.IRenderService,this._renderService),this._renderService.onRender(function(e){return t._onRender.fire(e)}),this.onResize(function(e){return t._renderService.resize(e.cols,e.rows)}),this._soundService=this._instantiationService.createInstance(v.SoundService),this._instantiationService.setService(x.ISoundService,this._soundService),this._mouseService=this._instantiationService.createInstance(M.MouseService),this._instantiationService.setService(x.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(s.Viewport,function(e,r){return t.scrollLines(e,r)},this._viewportElement,this._viewportScrollArea),this.viewport.onThemeChange(this._colorManager.colors),this.register(this.viewport),this.register(this.onCursorMove(function(){return t._renderService.onCursorMove()})),this.register(this.onResize(function(){return t._renderService.onResize(t.cols,t.rows)})),this.register(this.onBlur(function(){return t._renderService.onBlur()})),this.register(this.onFocus(function(){return t._renderService.onFocus()})),this.register(this._renderService.onDimensionsChange(function(){return t.viewport.syncScrollArea()})),this._selectionService=this._instantiationService.createInstance(f.SelectionService,function(e,r){return t.scrollLines(e,r)},this.element,this.screenElement),this._instantiationService.setService(x.ISelectionService,this._selectionService),this.register(this._selectionService.onSelectionChange(function(){return t._onSelectionChange.fire()})),this.register(this._selectionService.onRedrawRequest(function(e){return t._renderService.onSelectionChanged(e.start,e.end,e.columnSelectMode)})),this.register(this._selectionService.onLinuxMouseSelection(function(e){t.textarea.value=e,t.textarea.focus(),t.textarea.select()})),this.register(this.onScroll(function(){t.viewport.syncScrollArea(),t._selectionService.refresh()})),this.register(d.addDisposableDomListener(this._viewportElement,"scroll",function(){return t._selectionService.refresh()})),this._mouseZoneManager=this._instantiationService.createInstance(g.MouseZoneManager,this.element,this.screenElement),this.register(this._mouseZoneManager),this.register(this.onScroll(function(){return t._mouseZoneManager.clearAll()})),this.linkifier.attachToDom(this.element,this._mouseZoneManager),this.register(d.addDisposableDomListener(this.element,"mousedown",function(e){return t._selectionService.onMouseDown(e)})),this.mouseEvents?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager=new y.AccessibilityManager(this,this._renderService)),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()},t.prototype._createRenderer=function(){switch(this.options.rendererType){case"canvas":return this._instantiationService.createInstance(h.Renderer,this._colorManager.colors,this.screenElement,this.linkifier);case"dom":return this._instantiationService.createInstance(b.DomRenderer,this._colorManager.colors,this.element,this.screenElement,this._viewportElement,this.linkifier);default:throw new Error('Unrecognized rendererType "'+this.options.rendererType+'"')}},t.prototype._setTheme=function(e){var t,r,i;this._theme=e,null===(t=this._colorManager)||void 0===t||t.setTheme(e),null===(r=this._renderService)||void 0===r||r.setColors(this._colorManager.colors),null===(i=this.viewport)||void 0===i||i.onThemeChange(this._colorManager.colors)},t.prototype.bindMouse=function(){var e=this,t=this,r=this.element;function i(e){var r,i,n;if(!(r=t._mouseService.getRawByteCoords(e,t.screenElement,t.cols,t.rows)))return!1;switch(e.overrideType||e.type){case"mousemove":n=32,void 0===e.buttons?(i=3,void 0!==e.button&&(i=e.button<3?e.button:3)):i=1&e.buttons?0:4&e.buttons?1:2&e.buttons?2:3;break;case"mouseup":n=0,i=e.button<3?e.button:3;break;case"mousedown":n=1,i=e.button<3?e.button:3;break;case"wheel":0!==e.deltaY&&(n=e.deltaY<0?0:1),i=4;break;default:return!1}return!(void 0===n||void 0===i||i>4)&&t._coreMouseService.triggerMouseEvent({col:r.x-33,row:r.y-33,button:i,action:n,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey})}var n={mouseup:null,wheel:null,mousedrag:null,mousemove:null},o=function(t){return i(t),t.buttons||(e._document.removeEventListener("mouseup",n.mouseup),n.mousedrag&&e._document.removeEventListener("mousemove",n.mousedrag)),e.cancel(t)},s=function(t){return i(t),t.preventDefault(),e.cancel(t)},a=function(e){e.buttons&&i(e)},l=function(e){e.buttons||i(e)};this._coreMouseService.onProtocolChange(function(t){e.mouseEvents=t,t?("debug"===e.optionsService.options.logLevel&&e._logService.debug("Binding to mouse events:",e._coreMouseService.explainEvents(t)),e.element.classList.add("enable-mouse-events"),e._selectionService.disable()):(e._logService.debug("Unbinding from mouse events."),e.element.classList.remove("enable-mouse-events"),e._selectionService.enable()),8&t?n.mousemove||(r.addEventListener("mousemove",l),n.mousemove=l):(r.removeEventListener("mousemove",n.mousemove),n.mousemove=null),16&t?n.wheel||(r.addEventListener("wheel",s),n.wheel=s):(r.removeEventListener("wheel",n.wheel),n.wheel=null),2&t?n.mouseup||(n.mouseup=o):(e._document.removeEventListener("mouseup",n.mouseup),n.mouseup=null),4&t?n.mousedrag||(n.mousedrag=a):(e._document.removeEventListener("mousemove",n.mousedrag),n.mousedrag=null)}),this._coreMouseService.activeProtocol=this._coreMouseService.activeProtocol,this.register(d.addDisposableDomListener(r,"mousedown",function(t){if(t.preventDefault(),e.focus(),e.mouseEvents&&!e._selectionService.shouldForceSelection(t))return i(t),n.mouseup&&e._document.addEventListener("mouseup",n.mouseup),n.mousedrag&&e._document.addEventListener("mousemove",n.mousedrag),e.cancel(t)})),this.register(d.addDisposableDomListener(r,"wheel",function(t){if(n.wheel);else if(!e.buffer.hasScrollback){var r=e.viewport.getLinesScrolled(t);if(0===r)return;for(var i=c.C0.ESC+(e._coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(t.deltaY<0?"A":"B"),o="",s=0;s<Math.abs(r);s++)o+=i;e._coreService.triggerDataEvent(o,!0)}})),this.register(d.addDisposableDomListener(r,"wheel",function(t){if(!n.wheel)return e.viewport.onWheel(t)?void 0:e.cancel(t)})),this.register(d.addDisposableDomListener(r,"touchstart",function(t){if(!e.mouseEvents)return e.viewport.onTouchStart(t),e.cancel(t)})),this.register(d.addDisposableDomListener(r,"touchmove",function(t){if(!e.mouseEvents)return e.viewport.onTouchMove(t)?void 0:e.cancel(t)}))},t.prototype.refresh=function(e,t){var r;null===(r=this._renderService)||void 0===r||r.refreshRows(e,t)},t.prototype._queueLinkification=function(e,t){var r;null===(r=this.linkifier)||void 0===r||r.linkifyRows(e,t)},t.prototype.updateCursorStyle=function(e){this._selectionService&&this._selectionService.shouldColumnSelect(e)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")},t.prototype.showCursor=function(){this._coreService.isCursorInitialized||(this._coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))},t.prototype.scroll=function(e){var t;void 0===e&&(e=!1),t=this._blankLine;var r=this.eraseAttrData();t&&t.length===this.cols&&t.getFg(0)===r.fg&&t.getBg(0)===r.bg||(t=this.buffer.getBlankLine(r,e),this._blankLine=t),t.isWrapped=e;var i=this.buffer.ybase+this.buffer.scrollTop,n=this.buffer.ybase+this.buffer.scrollBottom;if(0===this.buffer.scrollTop){var o=this.buffer.lines.isFull;n===this.buffer.lines.length-1?o?this.buffer.lines.recycle().copyFrom(t):this.buffer.lines.push(t.clone()):this.buffer.lines.splice(n+1,0,t.clone()),o?this._userScrolling&&(this.buffer.ydisp=Math.max(this.buffer.ydisp-1,0)):(this.buffer.ybase++,this._userScrolling||this.buffer.ydisp++)}else{var s=n-i+1;this.buffer.lines.shiftElements(i+1,s-1,-1),this.buffer.lines.set(n,t.clone())}this._userScrolling||(this.buffer.ydisp=this.buffer.ybase),this._dirtyRowService.markRangeDirty(this.buffer.scrollTop,this.buffer.scrollBottom),this._onScroll.fire(this.buffer.ydisp)},t.prototype.scrollLines=function(e,t){if(e<0){if(0===this.buffer.ydisp)return;this._userScrolling=!0}else e+this.buffer.ydisp>=this.buffer.ybase&&(this._userScrolling=!1);var r=this.buffer.ydisp;this.buffer.ydisp=Math.max(Math.min(this.buffer.ydisp+e,this.buffer.ybase),0),r!==this.buffer.ydisp&&(t||this._onScroll.fire(this.buffer.ydisp),this.refresh(0,this.rows-1))},t.prototype.scrollPages=function(e){this.scrollLines(e*(this.rows-1))},t.prototype.scrollToTop=function(){this.scrollLines(-this.buffer.ydisp)},t.prototype.scrollToBottom=function(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)},t.prototype.scrollToLine=function(e){var t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)},t.prototype.paste=function(e){a.paste(e,this.textarea,this.bracketedPasteMode,this._coreService)},t.prototype.attachCustomKeyEventHandler=function(e){this._customKeyEventHandler=e},t.prototype.addEscHandler=function(e,t){return this._inputHandler.addEscHandler(e,t)},t.prototype.addDcsHandler=function(e,t){return this._inputHandler.addDcsHandler(e,t)},t.prototype.addCsiHandler=function(e,t){return this._inputHandler.addCsiHandler(e,t)},t.prototype.addOscHandler=function(e,t){return this._inputHandler.addOscHandler(e,t)},t.prototype.registerLinkMatcher=function(e,t,r){var i=this.linkifier.registerLinkMatcher(e,t,r);return this.refresh(0,this.rows-1),i},t.prototype.deregisterLinkMatcher=function(e){this.linkifier.deregisterLinkMatcher(e)&&this.refresh(0,this.rows-1)},t.prototype.registerCharacterJoiner=function(e){var t=this._renderService.registerCharacterJoiner(e);return this.refresh(0,this.rows-1),t},t.prototype.deregisterCharacterJoiner=function(e){this._renderService.deregisterCharacterJoiner(e)&&this.refresh(0,this.rows-1)},Object.defineProperty(t.prototype,"markers",{get:function(){return this.buffer.markers},enumerable:!0,configurable:!0}),t.prototype.addMarker=function(e){if(this.buffer===this.buffers.normal)return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)},t.prototype.hasSelection=function(){return!!this._selectionService&&this._selectionService.hasSelection},t.prototype.select=function(e,t,r){this._selectionService.setSelection(e,t,r)},t.prototype.getSelection=function(){return this._selectionService?this._selectionService.selectionText:""},t.prototype.getSelectionPosition=function(){if(this._selectionService.hasSelection)return{startColumn:this._selectionService.selectionStart[0],startRow:this._selectionService.selectionStart[1],endColumn:this._selectionService.selectionEnd[0],endRow:this._selectionService.selectionEnd[1]}},t.prototype.clearSelection=function(){var e;null===(e=this._selectionService)||void 0===e||e.clearSelection()},t.prototype.selectAll=function(){var e;null===(e=this._selectionService)||void 0===e||e.selectAll()},t.prototype.selectLines=function(e,t){var r;null===(r=this._selectionService)||void 0===r||r.selectLines(e,t)},t.prototype._keyDown=function(e){if(this._keyDownHandled=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(!this._compositionHelper.keydown(e))return this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;var t=m.evaluateKeyboardEvent(e,this._coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===t.type||2===t.type){var r=this.rows-1;return this.scrollLines(2===t.type?-r:r),this.cancel(e,!0)}return 1===t.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(t.cancel&&this.cancel(e,!0),!t.key||(t.key!==c.C0.ETX&&t.key!==c.C0.CR||(this.textarea.value=""),this._onKey.fire({key:t.key,domEvent:e}),this.showCursor(),this._coreService.triggerDataEvent(t.key,!0),this.optionsService.options.screenReaderMode?void(this._keyDownHandled=!0):this.cancel(e,!0)))},t.prototype._isThirdLevelShift=function(e,t){var r=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey;return"keypress"===t.type?r:r&&(!t.keyCode||t.keyCode>47)},t.prototype.setgLevel=function(e){this.glevel=e,this.charset=this.charsets[e]},t.prototype.setgCharset=function(e,t){this.charsets[e]=t,this.glevel===e&&(this.charset=t)},t.prototype._keyUp=function(e){this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e))},t.prototype._keyPress=function(e){var t;if(this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e))&&(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this.showCursor(),this._coreService.triggerDataEvent(t,!0),!0)},t.prototype.bell=function(){var e=this;this._soundBell()&&this._soundService.playBellSound(),this._visualBell()&&(this.element.classList.add("visual-bell-active"),clearTimeout(this._visualBellTimer),this._visualBellTimer=window.setTimeout(function(){e.element.classList.remove("visual-bell-active")},200))},t.prototype.resize=function(e,t){var r;isNaN(e)||isNaN(t)||(e!==this.cols||t!==this.rows?(e<D.MINIMUM_COLS&&(e=D.MINIMUM_COLS),t<D.MINIMUM_ROWS&&(t=D.MINIMUM_ROWS),this.buffers.resize(e,t),this._bufferService.resize(e,t),this.buffers.setupTabStops(this.cols),null===(r=this._charSizeService)||void 0===r||r.measure(),this.viewport.syncScrollArea(!0),this.refresh(0,this.rows-1),this._onResize.fire({cols:e,rows:t})):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure())},t.prototype.clear=function(){if(0!==this.buffer.ybase||0!==this.buffer.y){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(var e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(S.DEFAULT_ATTR_DATA));this.refresh(0,this.rows-1),this._onScroll.fire(this.buffer.ydisp)}},t.prototype.is=function(e){return 0===(this.options.termName+"").indexOf(e)},t.prototype.handleTitle=function(e){this._onTitleChange.fire(e)},t.prototype.reset=function(){var e,t;this.options.rows=this.rows,this.options.cols=this.cols;var r=this._customKeyEventHandler,i=this._inputHandler,n=this._userScrolling;this._setup(),this._bufferService.reset(),this._coreService.reset(),this._coreMouseService.reset(),null===(e=this._selectionService)||void 0===e||e.reset(),this._customKeyEventHandler=r,this._inputHandler=i,this._userScrolling=n,this.refresh(0,this.rows-1),null===(t=this.viewport)||void 0===t||t.syncScrollArea()},t.prototype.cancel=function(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1},t.prototype._visualBell=function(){return!1},t.prototype._soundBell=function(){return"sound"===this.options.bellStyle},t.prototype.write=function(e,t){this._writeBuffer.write(e,t)},t.prototype.writeSync=function(e){this._writeBuffer.writeSync(e)},t}(T.Disposable);t.Terminal=W},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),s=r(0),a=function(){function e(e,t,r,i,n,o){this._textarea=e,this._compositionView=t,this._bufferService=r,this._optionsService=i,this._charSizeService=n,this._coreService=o,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0}}return e.prototype.compositionstart=function(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._compositionView.classList.add("active")},e.prototype.compositionupdate=function(e){var t=this;this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout(function(){t._compositionPosition.end=t._textarea.value.length},0)},e.prototype.compositionend=function(){this._finalizeComposition(!0)},e.prototype.keydown=function(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)},e.prototype._finalizeComposition=function(e){var t=this;if(this._compositionView.classList.remove("active"),this._isComposing=!1,this._clearTextareaPosition(),e){var r={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(function(){if(t._isSendingComposition){t._isSendingComposition=!1;var e=void 0;e=t._isComposing?t._textarea.value.substring(r.start,r.end):t._textarea.value.substring(r.start),t._coreService.triggerDataEvent(e,!0)}},0)}else{this._isSendingComposition=!1;var i=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(i,!0)}},e.prototype._handleAnyTextareaChanges=function(){var e=this,t=this._textarea.value;setTimeout(function(){if(!e._isComposing){var r=e._textarea.value.replace(t,"");r.length>0&&e._coreService.triggerDataEvent(r,!0)}},0)},e.prototype.updateCompositionElements=function(e){var t=this;if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){var r=Math.ceil(this._charSizeService.height*this._optionsService.options.lineHeight),i=this._bufferService.buffer.y*r,n=this._bufferService.buffer.x*this._charSizeService.width;this._compositionView.style.left=n+"px",this._compositionView.style.top=i+"px",this._compositionView.style.height=r+"px",this._compositionView.style.lineHeight=r+"px",this._compositionView.style.fontFamily=this._optionsService.options.fontFamily,this._compositionView.style.fontSize=this._optionsService.options.fontSize+"px";var o=this._compositionView.getBoundingClientRect();this._textarea.style.left=n+"px",this._textarea.style.top=i+"px",this._textarea.style.width=o.width+"px",this._textarea.style.height=o.height+"px",this._textarea.style.lineHeight=o.height+"px"}e||setTimeout(function(){return t.updateCompositionElements(!0)},0)}},e.prototype._clearTextareaPosition=function(){this._textarea.style.left="",this._textarea.style.top=""},e=i([n(2,s.IBufferService),n(3,s.IOptionsService),n(4,o.ICharSizeService),n(5,s.ICoreService)],e)}();t.CompositionHelper=a},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},s=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(2),c=r(7),l=r(4),h=r(0),u=15,f=function(e){function t(t,r,i,n,o,s,a){var l=e.call(this)||this;return l._scrollLines=t,l._viewportElement=r,l._scrollArea=i,l._bufferService=n,l._optionsService=o,l._charSizeService=s,l._renderService=a,l.scrollBarWidth=0,l._currentRowHeight=0,l._lastRecordedBufferLength=0,l._lastRecordedViewportHeight=0,l._lastRecordedBufferHeight=0,l._lastTouchY=0,l._lastScrollTop=0,l._wheelPartialScroll=0,l._refreshAnimationFrame=null,l._ignoreNextScrollEvent=!1,l.scrollBarWidth=l._viewportElement.offsetWidth-l._scrollArea.offsetWidth||u,l.register(c.addDisposableDomListener(l._viewportElement,"scroll",l._onScroll.bind(l))),setTimeout(function(){return l.syncScrollArea()},0),l}return n(t,e),t.prototype.onThemeChange=function(e){this._viewportElement.style.backgroundColor=e.background.css},t.prototype._refresh=function(e){var t=this;if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=requestAnimationFrame(function(){return t._innerRefresh()}))},t.prototype._innerRefresh=function(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderService.dimensions.scaledCellHeight/window.devicePixelRatio,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;var e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.canvasHeight);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}var t=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==t&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=t),this._refreshAnimationFrame=null},t.prototype.syncScrollArea=function(e){if(void 0===e&&(e=!1),this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);if(this._lastRecordedViewportHeight===this._renderService.dimensions.canvasHeight){var t=this._bufferService.buffer.ydisp*this._currentRowHeight;this._lastScrollTop===t&&this._lastScrollTop===this._viewportElement.scrollTop&&this._renderService.dimensions.scaledCellHeight/window.devicePixelRatio===this._currentRowHeight||this._refresh(e)}else this._refresh(e)},t.prototype._onScroll=function(e){if(this._lastScrollTop=this._viewportElement.scrollTop,this._viewportElement.offsetParent)if(this._ignoreNextScrollEvent)this._ignoreNextScrollEvent=!1;else{var t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._scrollLines(t,!0)}},t.prototype._bubbleScroll=function(e,t){var r=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&r<this._lastRecordedBufferHeight)||(e.cancelable&&e.preventDefault(),!1)},t.prototype.onWheel=function(e){var t=this._getPixelsScrolled(e);return 0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))},t.prototype._getPixelsScrolled=function(e){if(0===e.deltaY)return 0;var t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._bufferService.rows),t},t.prototype.getLinesScrolled=function(e){if(0===e.deltaY)return 0;var t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t},t.prototype._applyScrollModifier=function(e,t){var r=this._optionsService.options.fastScrollModifier;return"alt"===r&&t.altKey||"ctrl"===r&&t.ctrlKey||"shift"===r&&t.shiftKey?e*this._optionsService.options.fastScrollSensitivity*this._optionsService.options.scrollSensitivity:e*this._optionsService.options.scrollSensitivity},t.prototype.onTouchStart=function(e){this._lastTouchY=e.touches[0].pageY},t.prototype.onTouchMove=function(e){var t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))},t=o([s(3,h.IBufferService),s(4,h.IOptionsService),s(5,l.ICharSizeService),s(6,l.IRenderService)],t)}(a.Disposable);t.Viewport=f},function(e,t,r){"use strict";function i(e){return e.replace(/\r?\n/g,"\r")}function n(e,t){return t?"\e[200~"+e+"\e[201~":e}function o(e,t,r,o){e=n(e=i(e),r),o.triggerDataEvent(e,!0),t.value=""}function s(e,t,r){var i=r.getBoundingClientRect(),n=e.clientX-i.left-10,o=e.clientY-i.top-10;t.style.position="absolute",t.style.width="20px",t.style.height="20px",t.style.left=n+"px",t.style.top=o+"px",t.style.zIndex="1000",t.focus(),setTimeout(function(){t.style.position="",t.style.width="",t.style.height="",t.style.left="",t.style.top="",t.style.zIndex=""},200)}Object.defineProperty(t,"__esModule",{value:!0}),t.prepareTextForTerminal=i,t.bracketTextForPaste=n,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,r,i){e.stopPropagation(),e.clipboardData&&o(e.clipboardData.getData("text/plain"),t,r,i)},t.paste=o,t.moveTextAreaUnderMouseCursor=s,t.rightClickHandler=function(e,t,r,i,n){s(e,t,r),n&&!i.isClickInSelection(e)&&i.selectWordAtCursor(e),t.value=i.selectionText,t.select()}},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(12),s=r(18),a=r(19),c=r(39),l=r(2),h=r(15),u=r(8),f=r(16),_=r(1),d=r(3),p=r(5),v=r(6),g=r(21),y=r(23),b={"(":0,")":1,"*":2,"+":3,"-":1,".":2},m=function(){function e(e,t,r,i){this._bufferService=e,this._coreService=t,this._logService=r,this._optionsService=i,this._data=new Uint32Array(0)}return e.prototype.hook=function(e){this._data=new Uint32Array(0)},e.prototype.put=function(e,t,r){this._data=h.concat(this._data,e.subarray(t,r))},e.prototype.unhook=function(e){if(e){var t=u.utf32ToString(this._data);switch(this._data=new Uint32Array(0),t){case'"q':return this._coreService.triggerDataEvent(o.C0.ESC+'P1$r0"q'+o.C0.ESC+"\\");case'"p':return this._coreService.triggerDataEvent(o.C0.ESC+'P1$r61"p'+o.C0.ESC+"\\");case"r":var r=this._bufferService.buffer.scrollTop+1+";"+(this._bufferService.buffer.scrollBottom+1)+"r";return this._coreService.triggerDataEvent(o.C0.ESC+"P1$r"+r+o.C0.ESC+"\\");case"m":return this._coreService.triggerDataEvent(o.C0.ESC+"P1$r0m"+o.C0.ESC+"\\");case" q":var i={block:2,underline:4,bar:6}[this._optionsService.options.cursorStyle];return i-=this._optionsService.options.cursorBlink?1:0,this._coreService.triggerDataEvent(o.C0.ESC+"P1$r"+i+" q"+o.C0.ESC+"\\");default:this._logService.debug("Unknown DCS $q %s",t),this._coreService.triggerDataEvent(o.C0.ESC+"P0$r"+o.C0.ESC+"\\")}}else this._data=new Uint32Array(0)},e}(),C=function(e){function t(t,r,i,n,a,l,h,f){void 0===f&&(f=new c.EscapeSequenceParser);var d=e.call(this)||this;d._terminal=t,d._bufferService=r,d._coreService=i,d._dirtyRowService=n,d._logService=a,d._optionsService=l,d._coreMouseService=h,d._parser=f,d._parseBuffer=new Uint32Array(4096),d._stringDecoder=new u.StringToUtf32,d._utf8Decoder=new u.Utf8ToUtf32,d._workCell=new p.CellData,d._onCursorMove=new _.EventEmitter,d._onLineFeed=new _.EventEmitter,d._onScroll=new _.EventEmitter,d.register(d._parser),d._parser.setCsiHandlerFallback(function(e,t){d._logService.debug("Unknown CSI code: ",{identifier:d._parser.identToString(e),params:t.toArray()})}),d._parser.setEscHandlerFallback(function(e){d._logService.debug("Unknown ESC code: ",{identifier:d._parser.identToString(e)})}),d._parser.setExecuteHandlerFallback(function(e){d._logService.debug("Unknown EXECUTE code: ",{code:e})}),d._parser.setOscHandlerFallback(function(e,t,r){d._logService.debug("Unknown OSC code: ",{identifier:e,action:t,data:r})}),d._parser.setDcsHandlerFallback(function(e,t,r){"HOOK"===t&&(r=r.toArray()),d._logService.debug("Unknown DCS code: ",{identifier:d._parser.identToString(e),action:t,payload:r})}),d._parser.setPrintHandler(function(e,t,r){return d.print(e,t,r)}),d._parser.setCsiHandler({final:"@"},function(e){return d.insertChars(e)}),d._parser.setCsiHandler({intermediates:" ",final:"@"},function(e){return d.scrollLeft(e)}),d._parser.setCsiHandler({final:"A"},function(e){return d.cursorUp(e)}),d._parser.setCsiHandler({intermediates:" ",final:"A"},function(e){return d.scrollRight(e)}),d._parser.setCsiHandler({final:"B"},function(e){return d.cursorDown(e)}),d._parser.setCsiHandler({final:"C"},function(e){return d.cursorForward(e)}),d._parser.setCsiHandler({final:"D"},function(e){return d.cursorBackward(e)}),d._parser.setCsiHandler({final:"E"},function(e){return d.cursorNextLine(e)}),d._parser.setCsiHandler({final:"F"},function(e){return d.cursorPrecedingLine(e)}),d._parser.setCsiHandler({final:"G"},function(e){return d.cursorCharAbsolute(e)}),d._parser.setCsiHandler({final:"H"},function(e){return d.cursorPosition(e)}),d._parser.setCsiHandler({final:"I"},function(e){return d.cursorForwardTab(e)}),d._parser.setCsiHandler({final:"J"},function(e){return d.eraseInDisplay(e)}),d._parser.setCsiHandler({prefix:"?",final:"J"},function(e){return d.eraseInDisplay(e)}),d._parser.setCsiHandler({final:"K"},function(e){return d.eraseInLine(e)}),d._parser.setCsiHandler({prefix:"?",final:"K"},function(e){return d.eraseInLine(e)}),d._parser.setCsiHandler({final:"L"},function(e){return d.insertLines(e)}),d._parser.setCsiHandler({final:"M"},function(e){return d.deleteLines(e)}),d._parser.setCsiHandler({final:"P"},function(e){return d.deleteChars(e)}),d._parser.setCsiHandler({final:"S"},function(e){return d.scrollUp(e)}),d._parser.setCsiHandler({final:"T"},function(e){return d.scrollDown(e)}),d._parser.setCsiHandler({final:"X"},function(e){return d.eraseChars(e)}),d._parser.setCsiHandler({final:"Z"},function(e){return d.cursorBackwardTab(e)}),d._parser.setCsiHandler({final:"`"},function(e){return d.charPosAbsolute(e)}),d._parser.setCsiHandler({final:"a"},function(e){return d.hPositionRelative(e)}),d._parser.setCsiHandler({final:"b"},function(e){return d.repeatPrecedingCharacter(e)}),d._parser.setCsiHandler({final:"c"},function(e){return d.sendDeviceAttributesPrimary(e)}),d._parser.setCsiHandler({prefix:">",final:"c"},function(e){return d.sendDeviceAttributesSecondary(e)}),d._parser.setCsiHandler({final:"d"},function(e){return d.linePosAbsolute(e)}),d._parser.setCsiHandler({final:"e"},function(e){return d.vPositionRelative(e)}),d._parser.setCsiHandler({final:"f"},function(e){return d.hVPosition(e)}),d._parser.setCsiHandler({final:"g"},function(e){return d.tabClear(e)}),d._parser.setCsiHandler({final:"h"},function(e){return d.setMode(e)}),d._parser.setCsiHandler({prefix:"?",final:"h"},function(e){return d.setModePrivate(e)}),d._parser.setCsiHandler({final:"l"},function(e){return d.resetMode(e)}),d._parser.setCsiHandler({prefix:"?",final:"l"},function(e){return d.resetModePrivate(e)}),d._parser.setCsiHandler({final:"m"},function(e){return d.charAttributes(e)}),d._parser.setCsiHandler({final:"n"},function(e){return d.deviceStatus(e)}),d._parser.setCsiHandler({prefix:"?",final:"n"},function(e){return d.deviceStatusPrivate(e)}),d._parser.setCsiHandler({intermediates:"!",final:"p"},function(e){return d.softReset(e)}),d._parser.setCsiHandler({intermediates:" ",final:"q"},function(e){return d.setCursorStyle(e)}),d._parser.setCsiHandler({final:"r"},function(e){return d.setScrollRegion(e)}),d._parser.setCsiHandler({final:"s"},function(e){return d.saveCursor(e)}),d._parser.setCsiHandler({final:"u"},function(e){return d.restoreCursor(e)}),d._parser.setCsiHandler({intermediates:"'",final:"}"},function(e){return d.insertColumns(e)}),d._parser.setCsiHandler({intermediates:"'",final:"~"},function(e){return d.deleteColumns(e)}),d._parser.setExecuteHandler(o.C0.BEL,function(){return d.bell()}),d._parser.setExecuteHandler(o.C0.LF,function(){return d.lineFeed()}),d._parser.setExecuteHandler(o.C0.VT,function(){return d.lineFeed()}),d._parser.setExecuteHandler(o.C0.FF,function(){return d.lineFeed()}),d._parser.setExecuteHandler(o.C0.CR,function(){return d.carriageReturn()}),d._parser.setExecuteHandler(o.C0.BS,function(){return d.backspace()}),d._parser.setExecuteHandler(o.C0.HT,function(){return d.tab()}),d._parser.setExecuteHandler(o.C0.SO,function(){return d.shiftOut()}),d._parser.setExecuteHandler(o.C0.SI,function(){return d.shiftIn()}),d._parser.setExecuteHandler(o.C1.IND,function(){return d.index()}),d._parser.setExecuteHandler(o.C1.NEL,function(){return d.nextLine()}),d._parser.setExecuteHandler(o.C1.HTS,function(){return d.tabSet()}),d._parser.setOscHandler(0,new g.OscHandler(function(e){return d.setTitle(e)})),d._parser.setOscHandler(2,new g.OscHandler(function(e){return d.setTitle(e)})),d._parser.setEscHandler({final:"7"},function(){return d.saveCursor()}),d._parser.setEscHandler({final:"8"},function(){return d.restoreCursor()}),d._parser.setEscHandler({final:"D"},function(){return d.index()}),d._parser.setEscHandler({final:"E"},function(){return d.nextLine()}),d._parser.setEscHandler({final:"H"},function(){return d.tabSet()}),d._parser.setEscHandler({final:"M"},function(){return d.reverseIndex()}),d._parser.setEscHandler({final:"="},function(){return d.keypadApplicationMode()}),d._parser.setEscHandler({final:">"},function(){return d.keypadNumericMode()}),d._parser.setEscHandler({final:"c"},function(){return d.reset()}),d._parser.setEscHandler({final:"n"},function(){return d.setgLevel(2)}),d._parser.setEscHandler({final:"o"},function(){return d.setgLevel(3)}),d._parser.setEscHandler({final:"|"},function(){return d.setgLevel(3)}),d._parser.setEscHandler({final:"}"},function(){return d.setgLevel(2)}),d._parser.setEscHandler({final:"~"},function(){return d.setgLevel(1)}),d._parser.setEscHandler({intermediates:"%",final:"@"},function(){return d.selectDefaultCharset()}),d._parser.setEscHandler({intermediates:"%",final:"G"},function(){return d.selectDefaultCharset()});var v=function(e){y._parser.setEscHandler({intermediates:"(",final:e},function(){return d.selectCharset("("+e)}),y._parser.setEscHandler({intermediates:")",final:e},function(){return d.selectCharset(")"+e)}),y._parser.setEscHandler({intermediates:"*",final:e},function(){return d.selectCharset("*"+e)}),y._parser.setEscHandler({intermediates:"+",final:e},function(){return d.selectCharset("+"+e)}),y._parser.setEscHandler({intermediates:"-",final:e},function(){return d.selectCharset("-"+e)}),y._parser.setEscHandler({intermediates:".",final:e},function(){return d.selectCharset("."+e)}),y._parser.setEscHandler({intermediates:"/",final:e},function(){return d.selectCharset("/"+e)})},y=this;for(var b in s.CHARSETS)v(b);return d._parser.setEscHandler({intermediates:"#",final:"8"},function(){return d.screenAlignmentPattern()}),d._parser.setErrorHandler(function(e){return d._logService.error("Parsing error: ",e),e}),d._parser.setDcsHandler({intermediates:"$",final:"q"},new m(d._bufferService,d._coreService,d._logService,d._optionsService)),d}return n(t,e),Object.defineProperty(t.prototype,"onCursorMove",{get:function(){return this._onCursorMove.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onLineFeed",{get:function(){return this._onLineFeed.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onScroll",{get:function(){return this._onScroll.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.parse=function(e){var t=this._bufferService.buffer,r=t.x,i=t.y;if(this._logService.debug("parsing data",e),this._parseBuffer.length<e.length&&this._parseBuffer.length<131072&&(this._parseBuffer=new Uint32Array(Math.min(e.length,131072))),this._dirtyRowService.clearRange(),e.length>131072)for(var n=0;n<e.length;n+=131072){var o=n+131072<e.length?n+131072:e.length,s="string"==typeof e?this._stringDecoder.decode(e.substring(n,o),this._parseBuffer):this._utf8Decoder.decode(e.subarray(n,o),this._parseBuffer);this._parser.parse(this._parseBuffer,s)}else{s="string"==typeof e?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);this._parser.parse(this._parseBuffer,s)}(t=this._bufferService.buffer).x===r&&t.y===i||this._onCursorMove.fire(),this._terminal.refresh(this._dirtyRowService.start,this._dirtyRowService.end)},t.prototype.print=function(e,t,r){var i,n,o=this._bufferService.buffer,s=this._terminal.charset,c=this._optionsService.options.screenReaderMode,l=this._bufferService.cols,h=this._terminal.wraparoundMode,f=this._terminal.insertMode,_=this._terminal.curAttrData,p=o.lines.get(o.y+o.ybase);this._dirtyRowService.markDirty(o.y);for(var v=t;v<r;++v){if(i=e[v],n=a.wcwidth(i),i<127&&s){var g=s[String.fromCharCode(i)];g&&(i=g.charCodeAt(0))}if(c&&this._terminal.onA11yCharEmitter.fire(u.stringFromCodePoint(i)),n||!o.x){if(o.x+n-1>=l)if(h)o.x=0,o.y++,o.y===o.scrollBottom+1?(o.y--,this._terminal.scroll(!0)):(o.y>=this._bufferService.rows&&(o.y=this._bufferService.rows-1),o.lines.get(o.y).isWrapped=!0),p=o.lines.get(o.y+o.ybase);else if(o.x=l-1,2===n)continue;if(f&&(p.insertCells(o.x,n,o.getNullCell(_)),2===p.getWidth(l-1)&&p.setCellFromCodePoint(l-1,d.NULL_CELL_CODE,d.NULL_CELL_WIDTH,_.fg,_.bg)),p.setCellFromCodePoint(o.x++,i,n,_.fg,_.bg),n>0)for(;--n;)p.setCellFromCodePoint(o.x++,0,0,_.fg,_.bg)}else p.getWidth(o.x-1)?p.addCodepointToCell(o.x-1,i):p.addCodepointToCell(o.x-2,i)}r&&(p.loadCell(o.x-1,this._workCell),2===this._workCell.getWidth()||this._workCell.getCode()>65535?this._parser.precedingCodepoint=0:this._workCell.isCombined()?this._parser.precedingCodepoint=this._workCell.getChars().charCodeAt(0):this._parser.precedingCodepoint=this._workCell.content),this._dirtyRowService.markDirty(o.y)},t.prototype.addCsiHandler=function(e,t){return this._parser.addCsiHandler(e,t)},t.prototype.addDcsHandler=function(e,t){return this._parser.addDcsHandler(e,new y.DcsHandler(t))},t.prototype.addEscHandler=function(e,t){return this._parser.addEscHandler(e,t)},t.prototype.addOscHandler=function(e,t){return this._parser.addOscHandler(e,new g.OscHandler(t))},t.prototype.bell=function(){this._terminal.bell()},t.prototype.lineFeed=function(){var e=this._bufferService.buffer;this._dirtyRowService.markDirty(e.y),this._optionsService.options.convertEol&&(e.x=0),e.y++,e.y===e.scrollBottom+1?(e.y--,this._terminal.scroll()):e.y>=this._bufferService.rows&&(e.y=this._bufferService.rows-1),e.x>=this._bufferService.cols&&e.x--,this._dirtyRowService.markDirty(e.y),this._onLineFeed.fire()},t.prototype.carriageReturn=function(){this._bufferService.buffer.x=0},t.prototype.backspace=function(){this._restrictCursor(),this._bufferService.buffer.x>0&&this._bufferService.buffer.x--},t.prototype.tab=function(){if(!(this._bufferService.buffer.x>=this._bufferService.cols)){var e=this._bufferService.buffer.x;this._bufferService.buffer.x=this._bufferService.buffer.nextStop(),this._optionsService.options.screenReaderMode&&this._terminal.onA11yTabEmitter.fire(this._bufferService.buffer.x-e)}},t.prototype.shiftOut=function(){this._terminal.setgLevel(1)},t.prototype.shiftIn=function(){this._terminal.setgLevel(0)},t.prototype._restrictCursor=function(){this._bufferService.buffer.x=Math.min(this._bufferService.cols-1,Math.max(0,this._bufferService.buffer.x)),this._bufferService.buffer.y=this._terminal.originMode?Math.min(this._bufferService.buffer.scrollBottom,Math.max(this._bufferService.buffer.scrollTop,this._bufferService.buffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._bufferService.buffer.y)),this._dirtyRowService.markDirty(this._bufferService.buffer.y)},t.prototype._setCursor=function(e,t){this._dirtyRowService.markDirty(this._bufferService.buffer.y),this._terminal.originMode?(this._bufferService.buffer.x=e,this._bufferService.buffer.y=this._bufferService.buffer.scrollTop+t):(this._bufferService.buffer.x=e,this._bufferService.buffer.y=t),this._restrictCursor(),this._dirtyRowService.markDirty(this._bufferService.buffer.y)},t.prototype._moveCursor=function(e,t){this._restrictCursor(),this._setCursor(this._bufferService.buffer.x+e,this._bufferService.buffer.y+t)},t.prototype.cursorUp=function(e){var t=this._bufferService.buffer.y-this._bufferService.buffer.scrollTop;t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1))},t.prototype.cursorDown=function(e){var t=this._bufferService.buffer.scrollBottom-this._bufferService.buffer.y;t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1)},t.prototype.cursorForward=function(e){this._moveCursor(e.params[0]||1,0)},t.prototype.cursorBackward=function(e){this._moveCursor(-(e.params[0]||1),0)},t.prototype.cursorNextLine=function(e){this.cursorDown(e),this._bufferService.buffer.x=0},t.prototype.cursorPrecedingLine=function(e){this.cursorUp(e),this._bufferService.buffer.x=0},t.prototype.cursorCharAbsolute=function(e){this._setCursor((e.params[0]||1)-1,this._bufferService.buffer.y)},t.prototype.cursorPosition=function(e){this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1)},t.prototype.charPosAbsolute=function(e){this._setCursor((e.params[0]||1)-1,this._bufferService.buffer.y)},t.prototype.hPositionRelative=function(e){this._moveCursor(e.params[0]||1,0)},t.prototype.linePosAbsolute=function(e){this._setCursor(this._bufferService.buffer.x,(e.params[0]||1)-1)},t.prototype.vPositionRelative=function(e){this._moveCursor(0,e.params[0]||1)},t.prototype.hVPosition=function(e){this.cursorPosition(e)},t.prototype.tabClear=function(e){var t=e.params[0];0===t?delete this._bufferService.buffer.tabs[this._bufferService.buffer.x]:3===t&&(this._bufferService.buffer.tabs={})},t.prototype.cursorForwardTab=function(e){if(!(this._bufferService.buffer.x>=this._bufferService.cols))for(var t=e.params[0]||1;t--;)this._bufferService.buffer.x=this._bufferService.buffer.nextStop()},t.prototype.cursorBackwardTab=function(e){if(!(this._bufferService.buffer.x>=this._bufferService.cols))for(var t=e.params[0]||1,r=this._bufferService.buffer;t--;)r.x=r.prevStop()},t.prototype._eraseInBufferLine=function(e,t,r,i){void 0===i&&(i=!1);var n=this._bufferService.buffer.lines.get(this._bufferService.buffer.ybase+e);n.replaceCells(t,r,this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),i&&(n.isWrapped=!1)},t.prototype._resetBufferLine=function(e){var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.ybase+e);t.fill(this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),t.isWrapped=!1},t.prototype.eraseInDisplay=function(e){var t;switch(this._restrictCursor(),e.params[0]){case 0:for(t=this._bufferService.buffer.y,this._dirtyRowService.markDirty(t),this._eraseInBufferLine(t++,this._bufferService.buffer.x,this._bufferService.cols,0===this._bufferService.buffer.x);t<this._bufferService.rows;t++)this._resetBufferLine(t);this._dirtyRowService.markDirty(t);break;case 1:for(t=this._bufferService.buffer.y,this._dirtyRowService.markDirty(t),this._eraseInBufferLine(t,0,this._bufferService.buffer.x+1,!0),this._bufferService.buffer.x+1>=this._bufferService.cols&&(this._bufferService.buffer.lines.get(t+1).isWrapped=!1);t--;)this._resetBufferLine(t);this._dirtyRowService.markDirty(0);break;case 2:for(t=this._bufferService.rows,this._dirtyRowService.markDirty(t-1);t--;)this._resetBufferLine(t);this._dirtyRowService.markDirty(0);break;case 3:var r=this._bufferService.buffer.lines.length-this._bufferService.rows;r>0&&(this._bufferService.buffer.lines.trimStart(r),this._bufferService.buffer.ybase=Math.max(this._bufferService.buffer.ybase-r,0),this._bufferService.buffer.ydisp=Math.max(this._bufferService.buffer.ydisp-r,0),this._onScroll.fire(0))}},t.prototype.eraseInLine=function(e){switch(this._restrictCursor(),e.params[0]){case 0:this._eraseInBufferLine(this._bufferService.buffer.y,this._bufferService.buffer.x,this._bufferService.cols);break;case 1:this._eraseInBufferLine(this._bufferService.buffer.y,0,this._bufferService.buffer.x+1);break;case 2:this._eraseInBufferLine(this._bufferService.buffer.y,0,this._bufferService.cols)}this._dirtyRowService.markDirty(this._bufferService.buffer.y)},t.prototype.insertLines=function(e){this._restrictCursor();var t=e.params[0]||1,r=this._bufferService.buffer;if(!(r.y>r.scrollBottom||r.y<r.scrollTop)){for(var i=r.y+r.ybase,n=this._bufferService.rows-1-r.scrollBottom,o=this._bufferService.rows-1+r.ybase-n+1;t--;)r.lines.splice(o-1,1),r.lines.splice(i,0,r.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(r.y,r.scrollBottom),r.x=0}},t.prototype.deleteLines=function(e){this._restrictCursor();var t=e.params[0]||1,r=this._bufferService.buffer;if(!(r.y>r.scrollBottom||r.y<r.scrollTop)){var i,n=r.y+r.ybase;for(i=this._bufferService.rows-1-r.scrollBottom,i=this._bufferService.rows-1+r.ybase-i;t--;)r.lines.splice(n,1),r.lines.splice(i,0,r.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(r.y,r.scrollBottom),r.x=0}},t.prototype.insertChars=function(e){this._restrictCursor();var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.y+this._bufferService.buffer.ybase);t&&(t.insertCells(this._bufferService.buffer.x,e.params[0]||1,this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),this._dirtyRowService.markDirty(this._bufferService.buffer.y))},t.prototype.deleteChars=function(e){this._restrictCursor();var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.y+this._bufferService.buffer.ybase);t&&(t.deleteCells(this._bufferService.buffer.x,e.params[0]||1,this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),this._dirtyRowService.markDirty(this._bufferService.buffer.y))},t.prototype.scrollUp=function(e){for(var t=e.params[0]||1,r=this._bufferService.buffer;t--;)r.lines.splice(r.ybase+r.scrollTop,1),r.lines.splice(r.ybase+r.scrollBottom,0,r.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(r.scrollTop,r.scrollBottom)},t.prototype.scrollDown=function(e){for(var t=e.params[0]||1,r=this._bufferService.buffer;t--;)r.lines.splice(r.ybase+r.scrollBottom,1),r.lines.splice(r.ybase+r.scrollTop,0,r.getBlankLine(f.DEFAULT_ATTR_DATA));this._dirtyRowService.markRangeDirty(r.scrollTop,r.scrollBottom)},t.prototype.scrollLeft=function(e){var t=this._bufferService.buffer;if(!(t.y>t.scrollBottom||t.y<t.scrollTop)){for(var r=e.params[0]||1,i=t.scrollTop;i<=t.scrollBottom;++i){var n=t.lines.get(t.ybase+i);n.deleteCells(0,r,t.getNullCell(this._terminal.eraseAttrData())),n.isWrapped=!1}this._dirtyRowService.markRangeDirty(t.scrollTop,t.scrollBottom)}},t.prototype.scrollRight=function(e){var t=this._bufferService.buffer;if(!(t.y>t.scrollBottom||t.y<t.scrollTop)){for(var r=e.params[0]||1,i=t.scrollTop;i<=t.scrollBottom;++i){var n=t.lines.get(t.ybase+i);n.insertCells(0,r,t.getNullCell(this._terminal.eraseAttrData())),n.isWrapped=!1}this._dirtyRowService.markRangeDirty(t.scrollTop,t.scrollBottom)}},t.prototype.insertColumns=function(e){var t=this._bufferService.buffer;if(!(t.y>t.scrollBottom||t.y<t.scrollTop)){for(var r=e.params[0]||1,i=t.scrollTop;i<=t.scrollBottom;++i){var n=this._bufferService.buffer.lines.get(t.ybase+i);n.insertCells(t.x,r,t.getNullCell(this._terminal.eraseAttrData())),n.isWrapped=!1}this._dirtyRowService.markRangeDirty(t.scrollTop,t.scrollBottom)}},t.prototype.deleteColumns=function(e){var t=this._bufferService.buffer;if(!(t.y>t.scrollBottom||t.y<t.scrollTop)){for(var r=e.params[0]||1,i=t.scrollTop;i<=t.scrollBottom;++i){var n=t.lines.get(t.ybase+i);n.deleteCells(t.x,r,t.getNullCell(this._terminal.eraseAttrData())),n.isWrapped=!1}this._dirtyRowService.markRangeDirty(t.scrollTop,t.scrollBottom)}},t.prototype.eraseChars=function(e){this._restrictCursor();var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.y+this._bufferService.buffer.ybase);t&&(t.replaceCells(this._bufferService.buffer.x,this._bufferService.buffer.x+(e.params[0]||1),this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),this._dirtyRowService.markDirty(this._bufferService.buffer.y))},t.prototype.repeatPrecedingCharacter=function(e){if(this._parser.precedingCodepoint){for(var t=e.params[0]||1,r=new Uint32Array(t),i=0;i<t;++i)r[i]=this._parser.precedingCodepoint;this.print(r,0,r.length)}},t.prototype.sendDeviceAttributesPrimary=function(e){e.params[0]>0||(this._terminal.is("xterm")||this._terminal.is("rxvt-unicode")||this._terminal.is("screen")?this._coreService.triggerDataEvent(o.C0.ESC+"[?1;2c"):this._terminal.is("linux")&&this._coreService.triggerDataEvent(o.C0.ESC+"[?6c"))},t.prototype.sendDeviceAttributesSecondary=function(e){e.params[0]>0||(this._terminal.is("xterm")?this._coreService.triggerDataEvent(o.C0.ESC+"[>0;276;0c"):this._terminal.is("rxvt-unicode")?this._coreService.triggerDataEvent(o.C0.ESC+"[>85;95;0c"):this._terminal.is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._terminal.is("screen")&&this._coreService.triggerDataEvent(o.C0.ESC+"[>83;40003;0c"))},t.prototype.setMode=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 4:this._terminal.insertMode=!0}},t.prototype.setModePrivate=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._terminal.setgCharset(0,s.DEFAULT_CHARSET),this._terminal.setgCharset(1,s.DEFAULT_CHARSET),this._terminal.setgCharset(2,s.DEFAULT_CHARSET),this._terminal.setgCharset(3,s.DEFAULT_CHARSET);break;case 3:this._terminal.savedCols=this._bufferService.cols,this._terminal.resize(132,this._bufferService.rows),this._terminal.reset();break;case 6:this._terminal.originMode=!0,this._setCursor(0,0);break;case 7:this._terminal.wraparoundMode=!0;break;case 12:break;case 66:this._logService.debug("Serial port requested application keypad."),this._terminal.applicationKeypad=!0,this._terminal.viewport&&this._terminal.viewport.syncScrollArea();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._terminal.sendFocus=!0;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 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._terminal.eraseAttrData()),this._terminal.refresh(0,this._bufferService.rows-1),this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!0}},t.prototype.resetMode=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 4:this._terminal.insertMode=!1}},t.prototype.resetModePrivate=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:132===this._bufferService.cols&&this._terminal.savedCols&&this._terminal.resize(this._terminal.savedCols,this._bufferService.rows),delete this._terminal.savedCols,this._terminal.reset();break;case 6:this._terminal.originMode=!1,this._setCursor(0,0);break;case 7:this._terminal.wraparoundMode=!1;break;case 12:break;case 66:this._logService.debug("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol="NONE";break;case 1004:this._terminal.sendFocus=!1;break;case 1005:this._logService.debug("DECRST 1005 not supported (see #2507)");break;case 1006: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(),1049===e.params[t]&&this.restoreCursor(),this._terminal.refresh(0,this._bufferService.rows-1),this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!1}},t.prototype._extractColor=function(e,t,r){var i=[0,0,-1,0,0,0],n=0,o=0;do{if(i[o+n]=e.params[t+o],e.hasSubParams(t+o)){var s=e.getSubParams(t+o),a=0;do{5===i[1]&&(n=1),i[o+a+1+n]=s[a]}while(++a<s.length&&a+o+1+n<i.length);break}if(5===i[1]&&o+n>=2||2===i[1]&&o+n>=5)break;i[1]&&(n=1)}while(++o+t<e.length&&o+n<i.length);for(a=2;a<i.length;++a)-1===i[a]&&(i[a]=0);return 38===i[0]?2===i[1]?(r.fg|=50331648,r.fg&=-16777216,r.fg|=v.AttributeData.fromColorRGB([i[3],i[4],i[5]])):5===i[1]&&(r.fg&=-50331904,r.fg|=33554432|255&i[3]):48===i[0]&&(2===i[1]?(r.bg|=50331648,r.bg&=-16777216,r.bg|=v.AttributeData.fromColorRGB([i[3],i[4],i[5]])):5===i[1]&&(r.bg&=-50331904,r.bg|=33554432|255&i[3])),o},t.prototype.charAttributes=function(e){if(1===e.length&&0===e.params[0])return this._terminal.curAttrData.fg=f.DEFAULT_ATTR_DATA.fg,void(this._terminal.curAttrData.bg=f.DEFAULT_ATTR_DATA.bg);for(var t,r=e.length,i=this._terminal.curAttrData,n=0;n<r;n++)(t=e.params[n])>=30&&t<=37?(i.fg&=-50331904,i.fg|=16777216|t-30):t>=40&&t<=47?(i.bg&=-50331904,i.bg|=16777216|t-40):t>=90&&t<=97?(i.fg&=-50331904,i.fg|=16777224|t-90):t>=100&&t<=107?(i.bg&=-50331904,i.bg|=16777224|t-100):0===t?(i.fg=f.DEFAULT_ATTR_DATA.fg,i.bg=f.DEFAULT_ATTR_DATA.bg):1===t?i.fg|=134217728:3===t?i.bg|=67108864:4===t?i.fg|=268435456:5===t?i.fg|=536870912:7===t?i.fg|=67108864:8===t?i.fg|=1073741824:2===t?i.bg|=134217728:22===t?(i.fg&=-134217729,i.bg&=-134217729):23===t?i.bg&=-67108865:24===t?i.fg&=-268435457:25===t?i.fg&=-536870913:27===t?i.fg&=-67108865:28===t?i.fg&=-1073741825:39===t?(i.fg&=-67108864,i.fg|=16777215&f.DEFAULT_ATTR_DATA.fg):49===t?(i.bg&=-67108864,i.bg|=16777215&f.DEFAULT_ATTR_DATA.bg):38===t||48===t?n+=this._extractColor(e,n,i):100===t?(i.fg&=-67108864,i.fg|=16777215&f.DEFAULT_ATTR_DATA.fg,i.bg&=-67108864,i.bg|=16777215&f.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",t)},t.prototype.deviceStatus=function(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(o.C0.ESC+"[0n");break;case 6:var t=this._bufferService.buffer.y+1,r=this._bufferService.buffer.x+1;this._coreService.triggerDataEvent(o.C0.ESC+"["+t+";"+r+"R")}},t.prototype.deviceStatusPrivate=function(e){switch(e.params[0]){case 6:var t=this._bufferService.buffer.y+1,r=this._bufferService.buffer.x+1;this._coreService.triggerDataEvent(o.C0.ESC+"[?"+t+";"+r+"R")}},t.prototype.softReset=function(e){this._coreService.isCursorHidden=!1,this._terminal.insertMode=!1,this._terminal.originMode=!1,this._terminal.wraparoundMode=!0,this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._coreService.decPrivateModes.applicationCursorKeys=!1,this._bufferService.buffer.scrollTop=0,this._bufferService.buffer.scrollBottom=this._bufferService.rows-1,this._terminal.curAttrData=f.DEFAULT_ATTR_DATA.clone(),this._bufferService.buffer.x=this._bufferService.buffer.y=0,this._terminal.charset=null,this._terminal.glevel=0,this._terminal.charsets=[null]},t.prototype.setCursorStyle=function(e){var t=e.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"}var r=t%2==1;this._optionsService.options.cursorBlink=r},t.prototype.setScrollRegion=function(e){var t,r=e.params[0]||1;(e.length<2||(t=e.params[1])>this._bufferService.rows||0===t)&&(t=this._bufferService.rows),t>r&&(this._bufferService.buffer.scrollTop=r-1,this._bufferService.buffer.scrollBottom=t-1,this._setCursor(0,0))},t.prototype.saveCursor=function(e){this._bufferService.buffer.savedX=this._bufferService.buffer.x,this._bufferService.buffer.savedY=this._bufferService.buffer.ybase+this._bufferService.buffer.y,this._bufferService.buffer.savedCurAttrData.fg=this._terminal.curAttrData.fg,this._bufferService.buffer.savedCurAttrData.bg=this._terminal.curAttrData.bg,this._bufferService.buffer.savedCharset=this._terminal.charset},t.prototype.restoreCursor=function(e){this._bufferService.buffer.x=this._bufferService.buffer.savedX||0,this._bufferService.buffer.y=Math.max(this._bufferService.buffer.savedY-this._bufferService.buffer.ybase,0),this._terminal.curAttrData.fg=this._bufferService.buffer.savedCurAttrData.fg,this._terminal.curAttrData.bg=this._bufferService.buffer.savedCurAttrData.bg,this._terminal.charset=this._savedCharset,this._bufferService.buffer.savedCharset&&(this._terminal.charset=this._bufferService.buffer.savedCharset),this._restrictCursor()},t.prototype.setTitle=function(e){this._terminal.handleTitle(e)},t.prototype.nextLine=function(){this._bufferService.buffer.x=0,this.index()},t.prototype.keypadApplicationMode=function(){this._logService.debug("Serial port requested application keypad."),this._terminal.applicationKeypad=!0,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.keypadNumericMode=function(){this._logService.debug("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.selectDefaultCharset=function(){this._terminal.setgLevel(0),this._terminal.setgCharset(0,s.DEFAULT_CHARSET)},t.prototype.selectCharset=function(e){2===e.length?"/"!==e[0]&&this._terminal.setgCharset(b[e[0]],s.CHARSETS[e[1]]||s.DEFAULT_CHARSET):this.selectDefaultCharset()},t.prototype.index=function(){this._restrictCursor();var e=this._bufferService.buffer;this._bufferService.buffer.y++,e.y===e.scrollBottom+1?(e.y--,this._terminal.scroll()):e.y>=this._bufferService.rows&&(e.y=this._bufferService.rows-1),this._restrictCursor()},t.prototype.tabSet=function(){this._bufferService.buffer.tabs[this._bufferService.buffer.x]=!0},t.prototype.reverseIndex=function(){this._restrictCursor();var e=this._bufferService.buffer;if(e.y===e.scrollTop){var t=e.scrollBottom-e.scrollTop;e.lines.shiftElements(e.y+e.ybase,t,1),e.lines.set(e.y+e.ybase,e.getBlankLine(this._terminal.eraseAttrData())),this._dirtyRowService.markRangeDirty(e.scrollTop,e.scrollBottom)}else e.y--,this._restrictCursor()},t.prototype.reset=function(){this._parser.reset(),this._terminal.reset()},t.prototype.setgLevel=function(e){this._terminal.setgLevel(e)},t.prototype.screenAlignmentPattern=function(){var e=new p.CellData;e.content=1<<22|"E".charCodeAt(0),e.fg=this._terminal.curAttrData.fg,e.bg=this._terminal.curAttrData.bg;var t=this._bufferService.buffer;this._setCursor(0,0);for(var r=0;r<this._bufferService.rows;++r){var i=t.y+t.ybase+r;t.lines.get(i).fill(e),t.lines.get(i).isWrapped=!1}this._dirtyRowService.markAllDirty(),this._setCursor(0,0)},t}(l.Disposable);t.InputHandler=C},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(2),s=r(15),a=r(20),c=r(21),l=r(23),h=function(){function e(e){this.table=new Uint8Array(e)}return e.prototype.setDefault=function(e,t){s.fill(this.table,e<<4|t)},e.prototype.add=function(e,t,r,i){this.table[t<<8|e]=r<<4|i},e.prototype.addMany=function(e,t,r,i){for(var n=0;n<e.length;n++)this.table[t<<8|e[n]]=r<<4|i},e}();t.TransitionTable=h;t.VT500_TRANSITION_TABLE=function(){var e=new h(4095),t=Array.apply(null,Array(256)).map(function(e,t){return t}),r=function(e,r){return t.slice(e,r)},i=r(32,127),n=r(0,24);n.push(25),n.push.apply(n,r(28,32));var o,s=r(0,14);for(o in e.setDefault(1,0),e.addMany(i,0,2,0),s)e.addMany([24,26,153,154],o,3,0),e.addMany(r(128,144),o,3,0),e.addMany(r(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(n,0,3,0),e.addMany(n,1,3,1),e.add(127,1,0,1),e.addMany(n,8,0,8),e.addMany(n,3,3,3),e.add(127,3,0,3),e.addMany(n,4,3,4),e.add(127,4,0,4),e.addMany(n,6,3,6),e.addMany(n,5,3,5),e.add(127,5,0,5),e.addMany(n,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(i,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(r(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(i,7,0,7),e.addMany(n,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(r(64,127),3,7,0),e.addMany(r(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(r(48,60),4,8,4),e.addMany(r(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(r(32,64),6,0,6),e.add(127,6,0,6),e.addMany(r(64,127),6,0,0),e.addMany(r(32,48),3,9,5),e.addMany(r(32,48),5,9,5),e.addMany(r(48,64),5,0,6),e.addMany(r(64,127),5,7,0),e.addMany(r(32,48),4,9,5),e.addMany(r(32,48),1,9,2),e.addMany(r(32,48),2,9,2),e.addMany(r(48,127),2,10,0),e.addMany(r(48,80),1,10,0),e.addMany(r(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(r(96,127),1,10,0),e.add(80,1,11,9),e.addMany(n,9,0,9),e.add(127,9,0,9),e.addMany(r(28,32),9,0,9),e.addMany(r(32,48),9,9,12),e.addMany(r(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(n,11,0,11),e.addMany(r(32,128),11,0,11),e.addMany(r(28,32),11,0,11),e.addMany(n,10,0,10),e.add(127,10,0,10),e.addMany(r(28,32),10,0,10),e.addMany(r(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(r(32,48),10,9,12),e.addMany(n,12,0,12),e.add(127,12,0,12),e.addMany(r(28,32),12,0,12),e.addMany(r(32,48),12,9,12),e.addMany(r(48,64),12,0,11),e.addMany(r(64,127),12,12,13),e.addMany(r(64,127),10,12,13),e.addMany(r(64,127),9,12,13),e.addMany(n,13,13,13),e.addMany(i,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(160,0,2,0),e.add(160,8,5,8),e.add(160,6,0,6),e.add(160,11,0,11),e.add(160,13,13,13),e}();var u=function(e){function r(r){void 0===r&&(r=t.VT500_TRANSITION_TABLE);var i=e.call(this)||this;return i.TRANSITIONS=r,i.initialState=0,i.currentState=i.initialState,i._params=new a.Params,i._params.addParam(0),i._collect=0,i.precedingCodepoint=0,i._printHandlerFb=function(e,t,r){},i._executeHandlerFb=function(e){},i._csiHandlerFb=function(e,t){},i._escHandlerFb=function(e){},i._errorHandlerFb=function(e){return e},i._printHandler=i._printHandlerFb,i._executeHandlers=Object.create(null),i._csiHandlers=Object.create(null),i._escHandlers=Object.create(null),i._oscParser=new c.OscParser,i._dcsParser=new l.DcsParser,i._errorHandler=i._errorHandlerFb,i.setEscHandler({final:"\\"},function(){}),i}return n(r,e),r.prototype._identifier=function(e,t){void 0===t&&(t=[64,126]);var r=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if((r=e.prefix.charCodeAt(0))&&60>r||r>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(var i=0;i<e.intermediates.length;++i){var n=e.intermediates.charCodeAt(i);if(32>n||n>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");r<<=8,r|=n}}if(1!==e.final.length)throw new Error("final must be a single byte");var o=e.final.charCodeAt(0);if(t[0]>o||o>t[1])throw new Error("final must be in range "+t[0]+" .. "+t[1]);return r<<=8,r|=o},r.prototype.identToString=function(e){for(var t=[];e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join("")},r.prototype.dispose=function(){this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null),this._oscParser.dispose(),this._dcsParser.dispose()},r.prototype.setPrintHandler=function(e){this._printHandler=e},r.prototype.clearPrintHandler=function(){this._printHandler=this._printHandlerFb},r.prototype.addEscHandler=function(e,t){var r=this._identifier(e,[48,126]);void 0===this._escHandlers[r]&&(this._escHandlers[r]=[]);var i=this._escHandlers[r];return i.push(t),{dispose:function(){var e=i.indexOf(t);-1!==e&&i.splice(e,1)}}},r.prototype.setEscHandler=function(e,t){this._escHandlers[this._identifier(e,[48,126])]=[t]},r.prototype.clearEscHandler=function(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]},r.prototype.setEscHandlerFallback=function(e){this._escHandlerFb=e},r.prototype.setExecuteHandler=function(e,t){this._executeHandlers[e.charCodeAt(0)]=t},r.prototype.clearExecuteHandler=function(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]},r.prototype.setExecuteHandlerFallback=function(e){this._executeHandlerFb=e},r.prototype.addCsiHandler=function(e,t){var r=this._identifier(e);void 0===this._csiHandlers[r]&&(this._csiHandlers[r]=[]);var i=this._csiHandlers[r];return i.push(t),{dispose:function(){var e=i.indexOf(t);-1!==e&&i.splice(e,1)}}},r.prototype.setCsiHandler=function(e,t){this._csiHandlers[this._identifier(e)]=[t]},r.prototype.clearCsiHandler=function(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]},r.prototype.setCsiHandlerFallback=function(e){this._csiHandlerFb=e},r.prototype.addDcsHandler=function(e,t){return this._dcsParser.addHandler(this._identifier(e),t)},r.prototype.setDcsHandler=function(e,t){this._dcsParser.setHandler(this._identifier(e),t)},r.prototype.clearDcsHandler=function(e){this._dcsParser.clearHandler(this._identifier(e))},r.prototype.setDcsHandlerFallback=function(e){this._dcsParser.setHandlerFallback(e)},r.prototype.addOscHandler=function(e,t){return this._oscParser.addHandler(e,t)},r.prototype.setOscHandler=function(e,t){this._oscParser.setHandler(e,t)},r.prototype.clearOscHandler=function(e){this._oscParser.clearHandler(e)},r.prototype.setOscHandlerFallback=function(e){this._oscParser.setHandlerFallback(e)},r.prototype.setErrorHandler=function(e){this._errorHandler=e},r.prototype.clearErrorHandler=function(){this._errorHandler=this._errorHandlerFb},r.prototype.reset=function(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0},r.prototype.parse=function(e,t){for(var r=0,i=0,n=this.currentState,o=this._oscParser,s=this._dcsParser,a=this._collect,c=this._params,l=this.TRANSITIONS.table,h=0;h<t;++h){switch((i=l[n<<8|((r=e[h])<160?r:160)])>>4){case 2:for(var u=h+1;;++u){if(u>=t||(r=e[u])<32||r>126&&r<160){this._printHandler(e,h,u),h=u-1;break}if(++u>=t||(r=e[u])<32||r>126&&r<160){this._printHandler(e,h,u),h=u-1;break}if(++u>=t||(r=e[u])<32||r>126&&r<160){this._printHandler(e,h,u),h=u-1;break}if(++u>=t||(r=e[u])<32||r>126&&r<160){this._printHandler(e,h,u),h=u-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingCodepoint=0;break;case 0:break;case 1:if(this._errorHandler({position:h,code:r,currentState:n,collect:a,params:c,abort:!1}).abort)return;break;case 7:for(var f=this._csiHandlers[a<<8|r],_=f?f.length-1:-1;_>=0&&!1===f[_](c);_--);_<0&&this._csiHandlerFb(a<<8|r,c),this.precedingCodepoint=0;break;case 8:do{switch(r){case 59:c.addParam(0);break;case 58:c.addSubParam(-1);break;default:c.addDigit(r-48)}}while(++h<t&&(r=e[h])>47&&r<60);h--;break;case 9:a<<=8,a|=r;break;case 10:for(var d=this._escHandlers[a<<8|r],p=d?d.length-1:-1;p>=0&&!1===d[p]();p--);p<0&&this._escHandlerFb(a<<8|r),this.precedingCodepoint=0;break;case 11:c.reset(),c.addParam(0),a=0;break;case 12:s.hook(a<<8|r,c);break;case 13:for(var v=h+1;;++v)if(v>=t||24===(r=e[v])||26===r||27===r||r>127&&r<160){s.put(e,h,v),h=v-1;break}break;case 14:s.unhook(24!==r&&26!==r),27===r&&(i|=1),c.reset(),c.addParam(0),a=0,this.precedingCodepoint=0;break;case 4:o.start();break;case 5:for(var g=h+1;;g++)if(g>=t||(r=e[g])<32||r>127&&r<=159){o.put(e,h,g),h=g-1;break}break;case 6:o.end(24!==r&&26!==r),27===r&&(i|=1),c.reset(),c.addParam(0),a=0,this.precedingCodepoint=0}n=15&i}this._collect=a,this.currentState=n},r}(o.Disposable);t.EscapeSequenceParser=u},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},s=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(41),c=r(47),l=r(48),h=r(49),u=r(28),f=r(2),_=r(4),d=r(0),p=r(24),v=r(1),g=1,y=function(e){function t(t,r,i,n,o,s,f,_){var d=e.call(this)||this;d._colors=t,d._screenElement=r,d._linkifier=i,d._bufferService=n,d._charSizeService=o,d._optionsService=s,d.coreService=f,d.coreBrowserService=_,d._id=g++,d._onRequestRefreshRows=new v.EventEmitter;var p=d._optionsService.options.allowTransparency;return d._characterJoinerRegistry=new u.CharacterJoinerRegistry(d._bufferService),d._renderLayers=[new a.TextRenderLayer(d._screenElement,0,d._colors,d._characterJoinerRegistry,p,d._id,d._bufferService,s),new c.SelectionRenderLayer(d._screenElement,1,d._colors,d._id,d._bufferService,s),new h.LinkRenderLayer(d._screenElement,2,d._colors,d._id,d._linkifier,d._bufferService,s),new l.CursorRenderLayer(d._screenElement,3,d._colors,d._id,d._onRequestRefreshRows,d._bufferService,s,f,_)],d.dimensions={scaledCharWidth:0,scaledCharHeight:0,scaledCellWidth:0,scaledCellHeight:0,scaledCharLeft:0,scaledCharTop:0,scaledCanvasWidth:0,scaledCanvasHeight:0,canvasWidth:0,canvasHeight:0,actualCellWidth:0,actualCellHeight:0},d._devicePixelRatio=window.devicePixelRatio,d._updateDimensions(),d.onOptionsChanged(),d}return n(t,e),Object.defineProperty(t.prototype,"onRequestRefreshRows",{get:function(){return this._onRequestRefreshRows.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._renderLayers.forEach(function(e){return e.dispose()}),p.removeTerminalFromCache(this._id)},t.prototype.onDevicePixelRatioChange=function(){this._devicePixelRatio!==window.devicePixelRatio&&(this._devicePixelRatio=window.devicePixelRatio,this.onResize(this._bufferService.cols,this._bufferService.rows))},t.prototype.setColors=function(e){var t=this;this._colors=e,this._renderLayers.forEach(function(e){e.setColors(t._colors),e.reset()})},t.prototype.onResize=function(e,t){var r=this;this._updateDimensions(),this._renderLayers.forEach(function(e){return e.resize(r.dimensions)}),this._screenElement.style.width=this.dimensions.canvasWidth+"px",this._screenElement.style.height=this.dimensions.canvasHeight+"px"},t.prototype.onCharSizeChanged=function(){this.onResize(this._bufferService.cols,this._bufferService.rows)},t.prototype.onBlur=function(){this._runOperation(function(e){return e.onBlur()})},t.prototype.onFocus=function(){this._runOperation(function(e){return e.onFocus()})},t.prototype.onSelectionChanged=function(e,t,r){void 0===r&&(r=!1),this._runOperation(function(i){return i.onSelectionChanged(e,t,r)})},t.prototype.onCursorMove=function(){this._runOperation(function(e){return e.onCursorMove()})},t.prototype.onOptionsChanged=function(){this._runOperation(function(e){return e.onOptionsChanged()})},t.prototype.clear=function(){this._runOperation(function(e){return e.reset()})},t.prototype._runOperation=function(e){this._renderLayers.forEach(function(t){return e(t)})},t.prototype.renderRows=function(e,t){this._renderLayers.forEach(function(r){return r.onGridChanged(e,t)})},t.prototype._updateDimensions=function(){this._charSizeService.hasValidSize&&(this.dimensions.scaledCharWidth=Math.floor(this._charSizeService.width*window.devicePixelRatio),this.dimensions.scaledCharHeight=Math.ceil(this._charSizeService.height*window.devicePixelRatio),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._optionsService.options.lineHeight),this.dimensions.scaledCharTop=1===this._optionsService.options.lineHeight?0:Math.round((this.dimensions.scaledCellHeight-this.dimensions.scaledCharHeight)/2),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._optionsService.options.letterSpacing),this.dimensions.scaledCharLeft=Math.floor(this._optionsService.options.letterSpacing/2),this.dimensions.scaledCanvasHeight=this._bufferService.rows*this.dimensions.scaledCellHeight,this.dimensions.scaledCanvasWidth=this._bufferService.cols*this.dimensions.scaledCellWidth,this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._bufferService.rows,this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._bufferService.cols)},t.prototype.registerCharacterJoiner=function(e){return this._characterJoinerRegistry.registerCharacterJoiner(e)},t.prototype.deregisterCharacterJoiner=function(e){return this._characterJoinerRegistry.deregisterCharacterJoiner(e)},t=o([s(3,d.IBufferService),s(4,_.ICharSizeService),s(5,d.IOptionsService),s(6,d.ICoreService),s(7,_.ICoreBrowserService)],t)}(f.Disposable);t.Renderer=y},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(42),s=r(13),a=r(6),c=r(3),l=r(28),h=r(5),u=function(e){function t(t,r,i,n,s,a,c,l){var u=e.call(this,t,"text",r,s,i,a,c,l)||this;return u.bufferService=c,u.optionsService=l,u._characterWidth=0,u._characterFont="",u._characterOverlapCache={},u._workCell=new h.CellData,u._state=new o.GridCache,u._characterJoinerRegistry=n,u}return n(t,e),t.prototype.resize=function(t){e.prototype.resize.call(this,t);var r=this._getFont(!1,!1);this._characterWidth===t.scaledCharWidth&&this._characterFont===r||(this._characterWidth=t.scaledCharWidth,this._characterFont=r,this._characterOverlapCache={}),this._state.clear(),this._state.resize(this._bufferService.cols,this._bufferService.rows)},t.prototype.reset=function(){this._state.clear(),this._clearAll()},t.prototype._forEachCell=function(e,t,r,i){for(var n=e;n<=t;n++)for(var o=n+this._bufferService.buffer.ydisp,s=this._bufferService.buffer.lines.get(o),a=r?r.getJoinedCharacters(o):[],h=0;h<this._bufferService.cols;h++){s.loadCell(h,this._workCell);var u=this._workCell,f=!1,_=h;if(0!==u.getWidth()){if(a.length>0&&h===a[0][0]){f=!0;var d=a.shift();u=new l.JoinedCellData(this._workCell,s.translateToString(!0,d[0],d[1]),d[1]-d[0]),_=d[1]-1}!f&&this._isOverlapping(u)&&_<s.length-1&&s.getCodePoint(_+1)===c.NULL_CELL_CODE&&(u.content&=-12582913,u.content|=2<<22),i(u,h,n),h=_}}},t.prototype._drawBackground=function(e,t){var r=this,i=this._ctx,n=this._bufferService.cols,o=0,s=0,c=null;i.save(),this._forEachCell(e,t,null,function(e,t,l){var h=null;e.isInverse()?h=e.isFgDefault()?r._colors.foreground.css:e.isFgRGB()?"rgb("+a.AttributeData.toColorRGB(e.getFgColor()).join(",")+")":r._colors.ansi[e.getFgColor()].css:e.isBgRGB()?h="rgb("+a.AttributeData.toColorRGB(e.getBgColor()).join(",")+")":e.isBgPalette()&&(h=r._colors.ansi[e.getBgColor()].css),null===c&&(o=t,s=l),l!==s?(i.fillStyle=c||"",r._fillCells(o,s,n-o,1),o=t,s=l):c!==h&&(i.fillStyle=c||"",r._fillCells(o,s,t-o,1),o=t,s=l),c=h}),null!==c&&(i.fillStyle=c,this._fillCells(o,s,n-o,1)),i.restore()},t.prototype._drawForeground=function(e,t){var r=this;this._forEachCell(e,t,this._characterJoinerRegistry,function(e,t,i){if(!e.isInvisible()&&(r._drawChars(e,t,i),e.isUnderline())){if(r._ctx.save(),e.isInverse())if(e.isBgDefault())r._ctx.fillStyle=r._colors.background.css;else if(e.isBgRGB())r._ctx.fillStyle="rgb("+a.AttributeData.toColorRGB(e.getBgColor()).join(",")+")";else{var n=e.getBgColor();r._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&n<8&&(n+=8),r._ctx.fillStyle=r._colors.ansi[n].css}else if(e.isFgDefault())r._ctx.fillStyle=r._colors.foreground.css;else if(e.isFgRGB())r._ctx.fillStyle="rgb("+a.AttributeData.toColorRGB(e.getFgColor()).join(",")+")";else{var o=e.getFgColor();r._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&o<8&&(o+=8),r._ctx.fillStyle=r._colors.ansi[o].css}r._fillBottomLineAtCells(t,i,e.getWidth()),r._ctx.restore()}})},t.prototype.onGridChanged=function(e,t){0!==this._state.cache.length&&(this._charAtlas&&this._charAtlas.beginFrame(),this._clearCells(0,e,this._bufferService.cols,t-e+1),this._drawBackground(e,t),this._drawForeground(e,t))},t.prototype.onOptionsChanged=function(){this._setTransparency(this._optionsService.options.allowTransparency)},t.prototype._isOverlapping=function(e){if(1!==e.getWidth())return!1;if(e.getCode()<256)return!1;var t=e.getChars();if(this._characterOverlapCache.hasOwnProperty(t))return this._characterOverlapCache[t];this._ctx.save(),this._ctx.font=this._characterFont;var r=Math.floor(this._ctx.measureText(t).width)>this._characterWidth;return this._ctx.restore(),this._characterOverlapCache[t]=r,r},t}(s.BaseRenderLayer);t.TextRenderLayer=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.cache=[]}return e.prototype.resize=function(e,t){for(var r=0;r<e;r++){this.cache.length<=r&&this.cache.push([]);for(var i=this.cache[r].length;i<t;i++)this.cache[r].push(void 0);this.cache[r].length=t}this.cache.length=e},e.prototype.clear=function(){for(var e=0;e<this.cache.length;e++)for(var t=0;t<this.cache[e].length;t++)this.cache[e][t]=void 0},e}();t.GridCache=i},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(9),s=r(44),a=r(26),c=r(46),l=r(11),h=r(27),u=r(10),f=1024,_=1024,d={css:"rgba(0, 0, 0, 0)",rgba:0};function p(e){return e.code<<21|e.bg<<12|e.fg<<3|(e.bold?0:4)+(e.dim?0:2)+(e.italic?0:1)}t.getGlyphCacheKey=p;var v=function(e){function t(t,r){var i=e.call(this)||this;i._config=r,i._drawToCacheCount=0,i._glyphsWaitingOnBitmap=[],i._bitmapCommitTimeout=null,i._bitmap=null,i._cacheCanvas=t.createElement("canvas"),i._cacheCanvas.width=f,i._cacheCanvas.height=_,i._cacheCtx=h.throwIfFalsy(i._cacheCanvas.getContext("2d",{alpha:!0}));var n=t.createElement("canvas");n.width=i._config.scaledCharWidth,n.height=i._config.scaledCharHeight,i._tmpCtx=h.throwIfFalsy(n.getContext("2d",{alpha:i._config.allowTransparency})),i._width=Math.floor(f/i._config.scaledCharWidth),i._height=Math.floor(_/i._config.scaledCharHeight);var o=i._width*i._height;return i._cacheMap=new c.LRUMap(o),i._cacheMap.prealloc(o),i}return n(t,e),t.prototype.dispose=function(){null!==this._bitmapCommitTimeout&&(window.clearTimeout(this._bitmapCommitTimeout),this._bitmapCommitTimeout=null)},t.prototype.beginFrame=function(){this._drawToCacheCount=0},t.prototype.draw=function(e,t,r,i){if(32===t.code)return!0;if(!this._canCache(t))return!1;var n=p(t),o=this._cacheMap.get(n);if(null!=o)return this._drawFromCache(e,o,r,i),!0;if(this._drawToCacheCount<100){var s=void 0;s=this._cacheMap.size<this._cacheMap.capacity?this._cacheMap.size:this._cacheMap.peek().index;var a=this._drawToCache(t,s);return this._cacheMap.set(n,a),this._drawFromCache(e,a,r,i),!0}return!1},t.prototype._canCache=function(e){return e.code<256},t.prototype._toCoordinateX=function(e){return e%this._width*this._config.scaledCharWidth},t.prototype._toCoordinateY=function(e){return Math.floor(e/this._width)*this._config.scaledCharHeight},t.prototype._drawFromCache=function(e,t,r,i){if(!t.isEmpty){var n=this._toCoordinateX(t.index),o=this._toCoordinateY(t.index);e.drawImage(t.inBitmap?this._bitmap:this._cacheCanvas,n,o,this._config.scaledCharWidth,this._config.scaledCharHeight,r,i,this._config.scaledCharWidth,this._config.scaledCharHeight)}},t.prototype._getColorFromAnsiIndex=function(e){return e<this._config.colors.ansi.length?this._config.colors.ansi[e]:a.DEFAULT_ANSI_COLORS[e]},t.prototype._getBackgroundColor=function(e){return this._config.allowTransparency?d:e.bg===o.INVERTED_DEFAULT_COLOR?this._config.colors.foreground:e.bg<256?this._getColorFromAnsiIndex(e.bg):this._config.colors.background},t.prototype._getForegroundColor=function(e){return e.fg===o.INVERTED_DEFAULT_COLOR?u.opaque(this._config.colors.background):e.fg<256?this._getColorFromAnsiIndex(e.fg):this._config.colors.foreground},t.prototype._drawToCache=function(e,t){this._drawToCacheCount++,this._tmpCtx.save();var r=this._getBackgroundColor(e);this._tmpCtx.globalCompositeOperation="copy",this._tmpCtx.fillStyle=r.css,this._tmpCtx.fillRect(0,0,this._config.scaledCharWidth,this._config.scaledCharHeight),this._tmpCtx.globalCompositeOperation="source-over";var i=e.bold?this._config.fontWeightBold:this._config.fontWeight,n=e.italic?"italic":"";this._tmpCtx.font=n+" "+i+" "+this._config.fontSize*this._config.devicePixelRatio+"px "+this._config.fontFamily,this._tmpCtx.textBaseline="middle",this._tmpCtx.fillStyle=this._getForegroundColor(e).css,e.dim&&(this._tmpCtx.globalAlpha=o.DIM_OPACITY),this._tmpCtx.fillText(e.chars,0,this._config.scaledCharHeight/2),this._tmpCtx.restore();var s=this._tmpCtx.getImageData(0,0,this._config.scaledCharWidth,this._config.scaledCharHeight),a=!1;this._config.allowTransparency||(a=function(e,t){for(var r=!0,i=t.rgba>>>24,n=t.rgba>>>16&255,o=t.rgba>>>8&255,s=0;s<e.data.length;s+=4)e.data[s]===i&&e.data[s+1]===n&&e.data[s+2]===o?e.data[s+3]=0:r=!1;return r}(s,r));var c=this._toCoordinateX(t),l=this._toCoordinateY(t);this._cacheCtx.putImageData(s,c,l);var h={index:t,isEmpty:a,inBitmap:!1};return this._addGlyphToBitmap(h),h},t.prototype._addGlyphToBitmap=function(e){var t=this;"createImageBitmap"in window&&!l.isFirefox&&!l.isSafari&&(this._glyphsWaitingOnBitmap.push(e),null===this._bitmapCommitTimeout&&(this._bitmapCommitTimeout=window.setTimeout(function(){return t._generateBitmap()},100)))},t.prototype._generateBitmap=function(){var e=this,t=this._glyphsWaitingOnBitmap;this._glyphsWaitingOnBitmap=[],window.createImageBitmap(this._cacheCanvas).then(function(r){e._bitmap=r;for(var i=0;i<t.length;i++){t[i].inBitmap=!0}}),this._bitmapCommitTimeout=null},t}(s.BaseCharAtlas);t.DynamicCharAtlas=v;var g=function(e){function t(t,r){return e.call(this)||this}return n(t,e),t.prototype.draw=function(e,t,r,i){return!1},t}(s.BaseCharAtlas);t.NoneCharAtlas=g},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._didWarmUp=!1}return e.prototype.dispose=function(){},e.prototype.warmUp=function(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)},e.prototype._doWarmUp=function(){},e.prototype.beginFrame=function(){},e}();t.BaseCharAtlas=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._color={},this._rgba={}}return e.prototype.clear=function(){this._color={},this._rgba={}},e.prototype.setCss=function(e,t,r){this._rgba[e]||(this._rgba[e]={}),this._rgba[e][t]=r},e.prototype.getCss=function(e,t){return this._rgba[e]?this._rgba[e][t]:void 0},e.prototype.setColor=function(e,t,r){this._color[e]||(this._color[e]={}),this._color[e][t]=r},e.prototype.getColor=function(e,t){return this._color[e]?this._color[e][t]:void 0},e}();t.ColorContrastCache=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this.capacity=e,this._map={},this._head=null,this._tail=null,this._nodePool=[],this.size=0}return e.prototype._unlinkNode=function(e){var t=e.prev,r=e.next;e===this._head&&(this._head=r),e===this._tail&&(this._tail=t),null!==t&&(t.next=r),null!==r&&(r.prev=t)},e.prototype._appendNode=function(e){var t=this._tail;null!==t&&(t.next=e),e.prev=t,e.next=null,this._tail=e,null===this._head&&(this._head=e)},e.prototype.prealloc=function(e){for(var t=this._nodePool,r=0;r<e;r++)t.push({prev:null,next:null,key:null,value:null})},e.prototype.get=function(e){var t=this._map[e];return void 0!==t?(this._unlinkNode(t),this._appendNode(t),t.value):null},e.prototype.peekValue=function(e){var t=this._map[e];return void 0!==t?t.value:null},e.prototype.peek=function(){var e=this._head;return null===e?null:e.value},e.prototype.set=function(e,t){var r=this._map[e];if(void 0!==r)r=this._map[e],this._unlinkNode(r),r.value=t;else if(this.size>=this.capacity)r=this._head,this._unlinkNode(r),delete this._map[r.key],r.key=e,r.value=t,this._map[e]=r;else{var i=this._nodePool;i.length>0?((r=i.pop()).key=e,r.value=t):r={prev:null,next:null,key:e,value:t},this._map[e]=r,this.size++}this._appendNode(r)},e}();t.LRUMap=i},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,r,i,n,o,s){var a=e.call(this,t,"selection",r,!0,i,n,o,s)||this;return a.bufferService=o,a.optionsService=s,a._clearState(),a}return n(t,e),t.prototype._clearState=function(){this._state={start:void 0,end:void 0,columnSelectMode:void 0,ydisp:void 0}},t.prototype.resize=function(t){e.prototype.resize.call(this,t),this._clearState()},t.prototype.reset=function(){this._state.start&&this._state.end&&(this._clearState(),this._clearAll())},t.prototype.onSelectionChanged=function(e,t,r){if(this._didStateChange(e,t,r,this._bufferService.buffer.ydisp))if(this._clearAll(),e&&t){var i=e[1]-this._bufferService.buffer.ydisp,n=t[1]-this._bufferService.buffer.ydisp,o=Math.max(i,0),s=Math.min(n,this._bufferService.rows-1);if(!(o>=this._bufferService.rows||s<0)){if(this._ctx.fillStyle=this._colors.selection.css,r){var a=e[0],c=t[0]-a,l=s-o+1;this._fillCells(a,o,c,l)}else{a=i===o?e[0]:0;var h=o===s?t[0]:this._bufferService.cols;this._fillCells(a,o,h-a,1);var u=Math.max(s-o-1,0);if(this._fillCells(0,o+1,this._bufferService.cols,u),o!==s){var f=n===s?t[0]:this._bufferService.cols;this._fillCells(0,s,f,1)}}this._state.start=[e[0],e[1]],this._state.end=[t[0],t[1]],this._state.columnSelectMode=r,this._state.ydisp=this._bufferService.buffer.ydisp}}else this._clearState()},t.prototype._didStateChange=function(e,t,r,i){return!this._areCoordinatesEqual(e,this._state.start)||!this._areCoordinatesEqual(t,this._state.end)||r!==this._state.columnSelectMode||i!==this._state.ydisp},t.prototype._areCoordinatesEqual=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[1]===t[1])},t}(r(13).BaseRenderLayer);t.SelectionRenderLayer=o},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(13),s=r(5),a=function(e){function t(t,r,i,n,o,a,c,l,h){var u=e.call(this,t,"cursor",r,!0,i,n,a,c)||this;return u._onRequestRefreshRowsEvent=o,u.bufferService=a,u.optionsService=c,u._coreService=l,u._coreBrowserService=h,u._cell=new s.CellData,u._state={x:0,y:0,isFocused:!1,style:"",width:0},u._cursorRenderers={bar:u._renderBarCursor.bind(u),block:u._renderBlockCursor.bind(u),underline:u._renderUnderlineCursor.bind(u)},u}return n(t,e),t.prototype.resize=function(t){e.prototype.resize.call(this,t),this._state={x:0,y:0,isFocused:!1,style:"",width:0}},t.prototype.reset=function(){this._clearCursor(),this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=void 0,this.onOptionsChanged())},t.prototype.onBlur=function(){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.pause(),this._onRequestRefreshRowsEvent.fire({start:this._bufferService.buffer.y,end:this._bufferService.buffer.y})},t.prototype.onFocus=function(){this._cursorBlinkStateManager?this._cursorBlinkStateManager.resume():this._onRequestRefreshRowsEvent.fire({start:this._bufferService.buffer.y,end:this._bufferService.buffer.y})},t.prototype.onOptionsChanged=function(){var e,t=this;this._optionsService.options.cursorBlink?this._cursorBlinkStateManager||(this._cursorBlinkStateManager=new c(this._coreBrowserService.isFocused,function(){t._render(!0)})):(null===(e=this._cursorBlinkStateManager)||void 0===e||e.dispose(),this._cursorBlinkStateManager=void 0),this._onRequestRefreshRowsEvent.fire({start:this._bufferService.buffer.y,end:this._bufferService.buffer.y})},t.prototype.onCursorMove=function(){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.restartBlinkAnimation()},t.prototype.onGridChanged=function(e,t){!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isPaused?this._render(!1):this._cursorBlinkStateManager.restartBlinkAnimation()},t.prototype._render=function(e){if(this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden){var t=this._bufferService.buffer.ybase+this._bufferService.buffer.y,r=t-this._bufferService.buffer.ydisp;if(r<0||r>=this._bufferService.rows)this._clearCursor();else if(this._bufferService.buffer.lines.get(t).loadCell(this._bufferService.buffer.x,this._cell),void 0!==this._cell.content){if(!this._coreBrowserService.isFocused){this._clearCursor(),this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css;var i=this._optionsService.options.cursorStyle;return i&&"block"!==i?this._cursorRenderers[i](this._bufferService.buffer.x,r,this._cell):this._renderBlurCursor(this._bufferService.buffer.x,r,this._cell),this._ctx.restore(),this._state.x=this._bufferService.buffer.x,this._state.y=r,this._state.isFocused=!1,this._state.style=i,void(this._state.width=this._cell.getWidth())}if(!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isCursorVisible){if(this._state){if(this._state.x===this._bufferService.buffer.x&&this._state.y===r&&this._state.isFocused===this._coreBrowserService.isFocused&&this._state.style===this._optionsService.options.cursorStyle&&this._state.width===this._cell.getWidth())return;this._clearCursor()}this._ctx.save(),this._cursorRenderers[this._optionsService.options.cursorStyle||"block"](this._bufferService.buffer.x,r,this._cell),this._ctx.restore(),this._state.x=this._bufferService.buffer.x,this._state.y=r,this._state.isFocused=!1,this._state.style=this._optionsService.options.cursorStyle,this._state.width=this._cell.getWidth()}else this._clearCursor()}}else this._clearCursor()},t.prototype._clearCursor=function(){this._state&&(this._clearCells(this._state.x,this._state.y,this._state.width,1),this._state={x:0,y:0,isFocused:!1,style:"",width:0})},t.prototype._renderBarCursor=function(e,t,r){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._fillLeftLineAtCell(e,t),this._ctx.restore()},t.prototype._renderBlockCursor=function(e,t,r){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._fillCells(e,t,r.getWidth(),1),this._ctx.fillStyle=this._colors.cursorAccent.css,this._fillCharTrueColor(r,e,t),this._ctx.restore()},t.prototype._renderUnderlineCursor=function(e,t,r){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._fillBottomLineAtCells(e,t),this._ctx.restore()},t.prototype._renderBlurCursor=function(e,t,r){this._ctx.save(),this._ctx.strokeStyle=this._colors.cursor.css,this._strokeRectAtCell(e,t,r.getWidth(),1),this._ctx.restore()},t}(o.BaseRenderLayer);t.CursorRenderLayer=a;var c=function(){function e(e,t){this._renderCallback=t,this.isCursorVisible=!0,e&&this._restartInterval()}return Object.defineProperty(e.prototype,"isPaused",{get:function(){return!(this._blinkStartTimeout||this._blinkInterval)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)},e.prototype.restartBlinkAnimation=function(){var e=this;this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){e._renderCallback(),e._animationFrame=void 0})))},e.prototype._restartInterval=function(e){var t=this;void 0===e&&(e=600),this._blinkInterval&&window.clearInterval(this._blinkInterval),this._blinkStartTimeout=setTimeout(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);if(t._animationTimeRestarted=void 0,e>0)return void t._restartInterval(e)}t.isCursorVisible=!1,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=void 0}),t._blinkInterval=setInterval(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);return t._animationTimeRestarted=void 0,void t._restartInterval(e)}t.isCursorVisible=!t.isCursorVisible,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=void 0})},600)},e)},e.prototype.pause=function(){this.isCursorVisible=!0,this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)},e.prototype.resume=function(){this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()},e}()},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(13),s=r(9),a=r(25),c=function(e){function t(t,r,i,n,o,s,a){var c=e.call(this,t,"link",r,!0,i,n,s,a)||this;return c.bufferService=s,c.optionsService=a,o.onLinkHover(function(e){return c._onLinkHover(e)}),o.onLinkLeave(function(e){return c._onLinkLeave(e)}),c}return n(t,e),t.prototype.resize=function(t){e.prototype.resize.call(this,t),this._state=void 0},t.prototype.reset=function(){this._clearCurrentLink()},t.prototype._clearCurrentLink=function(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);var 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}},t.prototype._onLinkHover=function(e){if(e.fg===s.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._colors.background.css:e.fg&&a.is256Color(e.fg)?this._ctx.fillStyle=this._colors.ansi[e.fg].css:this._ctx.fillStyle=this._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(var t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e},t.prototype._onLinkLeave=function(e){this._clearCurrentLink()},t}(o.BaseRenderLayer);t.LinkRenderLayer=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(19),n=r(1),o=function(){function e(e,t){this._bufferService=e,this._logService=t,this._linkMatchers=[],this._nextLinkMatcherId=0,this._onLinkHover=new n.EventEmitter,this._onLinkLeave=new n.EventEmitter,this._onLinkTooltip=new n.EventEmitter,this._rowsToLinkify={start:void 0,end:void 0}}return Object.defineProperty(e.prototype,"onLinkHover",{get:function(){return this._onLinkHover.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLinkLeave",{get:function(){return this._onLinkLeave.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLinkTooltip",{get:function(){return this._onLinkTooltip.event},enumerable:!0,configurable:!0}),e.prototype.attachToDom=function(e,t){this._element=e,this._mouseZoneManager=t},e.prototype.linkifyRows=function(t,r){var i=this;this._mouseZoneManager&&(void 0===this._rowsToLinkify.start||void 0===this._rowsToLinkify.end?(this._rowsToLinkify.start=t,this._rowsToLinkify.end=r):(this._rowsToLinkify.start=Math.min(this._rowsToLinkify.start,t),this._rowsToLinkify.end=Math.max(this._rowsToLinkify.end,r)),this._mouseZoneManager.clearAll(t,r),this._rowsTimeoutId&&clearTimeout(this._rowsTimeoutId),this._rowsTimeoutId=setTimeout(function(){return i._linkifyRows()},e._timeBeforeLatency))},e.prototype._linkifyRows=function(){this._rowsTimeoutId=void 0;var e=this._bufferService.buffer;if(void 0!==this._rowsToLinkify.start&&void 0!==this._rowsToLinkify.end){var t=e.ydisp+this._rowsToLinkify.start;if(!(t>=e.lines.length)){for(var r=e.ydisp+Math.min(this._rowsToLinkify.end,this._bufferService.rows)+1,i=Math.ceil(2e3/this._bufferService.cols),n=this._bufferService.buffer.iterator(!1,t,r,i,i);n.hasNext();)for(var o=n.next(),s=0;s<this._linkMatchers.length;s++)this._doLinkifyRow(o.range.first,o.content,this._linkMatchers[s]);this._rowsToLinkify.start=void 0,this._rowsToLinkify.end=void 0}}else this._logService.debug("_rowToLinkify was unset before _linkifyRows was called")},e.prototype.registerLinkMatcher=function(e,t,r){if(void 0===r&&(r={}),!t)throw new Error("handler must be defined");var i={id:this._nextLinkMatcherId++,regex:e,handler:t,matchIndex:r.matchIndex,validationCallback:r.validationCallback,hoverTooltipCallback:r.tooltipCallback,hoverLeaveCallback:r.leaveCallback,willLinkActivate:r.willLinkActivate,priority:r.priority||0};return this._addLinkMatcherToList(i),i.id},e.prototype._addLinkMatcherToList=function(e){if(0!==this._linkMatchers.length){for(var t=this._linkMatchers.length-1;t>=0;t--)if(e.priority<=this._linkMatchers[t].priority)return void this._linkMatchers.splice(t+1,0,e);this._linkMatchers.splice(0,0,e)}else this._linkMatchers.push(e)},e.prototype.deregisterLinkMatcher=function(e){for(var t=0;t<this._linkMatchers.length;t++)if(this._linkMatchers[t].id===e)return this._linkMatchers.splice(t,1),!0;return!1},e.prototype._doLinkifyRow=function(e,t,r){for(var i,n=this,o=new RegExp(r.regex.source,(r.regex.flags||"")+"g"),s=-1,a=function(){var a=i["number"!=typeof r.matchIndex?0:r.matchIndex];if(!a)return c._logService.debug("match found without corresponding matchIndex",i,r),"break";if(s=t.indexOf(a,s+1),o.lastIndex=s+a.length,s<0)return"break";var l=c._bufferService.buffer.stringIndexToBufferIndex(e,s);if(l[0]<0)return"break";var h=c._bufferService.buffer.lines.get(l[0]);if(!h)return"break";var u=h.getFg(l[1]),f=u?u>>9&511:void 0;r.validationCallback?r.validationCallback(a,function(e){n._rowsTimeoutId||e&&n._addLink(l[1],l[0]-n._bufferService.buffer.ydisp,a,r,f)}):c._addLink(l[1],l[0]-c._bufferService.buffer.ydisp,a,r,f)},c=this;null!==(i=o.exec(t));){if("break"===a())break}},e.prototype._addLink=function(e,t,r,n,o){var a=this;if(this._mouseZoneManager&&this._element){var c=i.getStringCellWidth(r),l=e%this._bufferService.cols,h=t+Math.floor(e/this._bufferService.cols),u=(l+c)%this._bufferService.cols,f=h+Math.floor((l+c)/this._bufferService.cols);0===u&&(u=this._bufferService.cols,f--),this._mouseZoneManager.add(new s(l+1,h+1,u+1,f+1,function(e){if(n.handler)return n.handler(e,r);window.open(r,"_blank")},function(){a._onLinkHover.fire(a._createLinkHoverEvent(l,h,u,f,o)),a._element.classList.add("xterm-cursor-pointer")},function(e){a._onLinkTooltip.fire(a._createLinkHoverEvent(l,h,u,f,o)),n.hoverTooltipCallback&&n.hoverTooltipCallback(e,r,{start:{x:l,y:h},end:{x:u,y:f}})},function(){a._onLinkLeave.fire(a._createLinkHoverEvent(l,h,u,f,o)),a._element.classList.remove("xterm-cursor-pointer"),n.hoverLeaveCallback&&n.hoverLeaveCallback()},function(e){return!n.willLinkActivate||n.willLinkActivate(e,r)}))}},e.prototype._createLinkHoverEvent=function(e,t,r,i,n){return{x1:e,y1:t,x2:r,y2:i,cols:this._bufferService.cols,fg:n}},e._timeBeforeLatency=200,e}();t.Linkifier=o;var s=function(e,t,r,i,n,o,s,a,c){this.x1=e,this.y1=t,this.x2=r,this.y2=i,this.clickCallback=n,this.hoverCallback=o,this.tooltipCallback=s,this.leaveCallback=a,this.willLinkActivate=c};t.MouseZone=s},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(11),s=r(52),a=r(5),c=r(1),l=r(4),h=r(0),u=r(29),f=r(53),_=String.fromCharCode(160),d=new RegExp(_,"g"),p=function(){function e(e,t,r,i,n,o,l,h){var u=this;this._scrollLines=e,this._element=t,this._screenElement=r,this._charSizeService=i,this._bufferService=n,this._coreService=o,this._mouseService=l,this._optionsService=h,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new a.CellData,this._mouseDownTimeStamp=0,this._onLinuxMouseSelection=new c.EventEmitter,this._onRedrawRequest=new c.EventEmitter,this._onSelectionChange=new c.EventEmitter,this._mouseMoveListener=function(e){return u._onMouseMove(e)},this._mouseUpListener=function(e){return u._onMouseUp(e)},this._coreService.onUserInput(function(){u.hasSelection&&u.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(function(e){return u._onTrim(e)}),this._bufferService.buffers.onBufferActivate(function(e){return u._onBufferActivate(e)}),this.enable(),this._model=new s.SelectionModel(this._bufferService),this._activeSelectionMode=0}return Object.defineProperty(e.prototype,"onLinuxMouseSelection",{get:function(){return this._onLinuxMouseSelection.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onRedrawRequest",{get:function(){return this._onRedrawRequest.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onSelectionChange",{get:function(){return this._onSelectionChange.event},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._removeMouseDownListeners()},e.prototype.reset=function(){this.clearSelection()},e.prototype.disable=function(){this.clearSelection(),this._enabled=!1},e.prototype.enable=function(){this._enabled=!0},Object.defineProperty(e.prototype,"selectionStart",{get:function(){return this._model.finalSelectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectionEnd",{get:function(){return this._model.finalSelectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasSelection",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t)&&(e[0]!==t[0]||e[1]!==t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectionText",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";var r=this._bufferService.buffer,i=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";for(var n=e[1];n<=t[1];n++){var s=r.translateBufferLineToString(n,!0,e[0],t[0]);i.push(s)}}else{var a=e[1]===t[1]?t[0]:void 0;i.push(r.translateBufferLineToString(e[1],!0,e[0],a));for(n=e[1]+1;n<=t[1]-1;n++){var c=r.lines.get(n);s=r.translateBufferLineToString(n,!0);c&&c.isWrapped?i[i.length-1]+=s:i.push(s)}if(e[1]!==t[1]){c=r.lines.get(t[1]),s=r.translateBufferLineToString(t[1],!0,0,t[0]);c&&c.isWrapped?i[i.length-1]+=s:i.push(s)}}return i.map(function(e){return e.replace(d," ")}).join(o.isWindows?"\r\n":"\n")},enumerable:!0,configurable:!0}),e.prototype.clearSelection=function(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()},e.prototype.refresh=function(e){var t=this;(this._refreshAnimationFrame||(this._refreshAnimationFrame=window.requestAnimationFrame(function(){return t._refresh()})),o.isLinux&&e)&&(this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText))},e.prototype._refresh=function(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})},e.prototype.isClickInSelection=function(e){var t=this._getMouseBufferCoords(e),r=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;return!!(r&&i&&t)&&this._areCoordsInSelection(t,r,i)},e.prototype._areCoordsInSelection=function(e,t,r){return e[1]>t[1]&&e[1]<r[1]||t[1]===r[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<r[0]||t[1]<r[1]&&e[1]===r[1]&&e[0]<r[0]||t[1]<r[1]&&e[1]===t[1]&&e[0]>=t[0]},e.prototype.selectWordAtCursor=function(e){var t=this._getMouseBufferCoords(e);t&&(this._selectWordAt(t,!1),this._model.selectionEnd=void 0,this.refresh(!0))},e.prototype.selectAll=function(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()},e.prototype.selectLines=function(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()},e.prototype._onTrim=function(e){this._model.onTrim(e)&&this.refresh()},e.prototype._getMouseBufferCoords=function(e){var t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t},e.prototype._getMouseEventScrollAmount=function(e){var t=u.getCoordsRelativeToElement(e,this._screenElement)[1],r=this._bufferService.rows*Math.ceil(this._charSizeService.height*this._optionsService.options.lineHeight);return t>=0&&t<=r?0:(t>r&&(t-=r),t=Math.min(Math.max(t,-50),50),(t/=50)/Math.abs(t)+Math.round(14*t))},e.prototype.shouldForceSelection=function(e){return o.isMac?e.altKey&&this._optionsService.options.macOptionClickForcesSelection:e.shiftKey},e.prototype.onMouseDown=function(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._onIncrementalClick(e):1===e.detail?this._onSingleClick(e):2===e.detail?this._onDoubleClick(e):3===e.detail&&this._onTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}},e.prototype._addMouseDownListeners=function(){var e=this;this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=window.setInterval(function(){return e._dragScroll()},50)},e.prototype._removeMouseDownListeners=function(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0},e.prototype._onIncrementalClick=function(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))},e.prototype._onSingleClick=function(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),this._model.selectionStart){this._model.selectionEnd=void 0;var t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}},e.prototype._onDoubleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=1,this._selectWordAt(t,!0))},e.prototype._onTripleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))},e.prototype.shouldColumnSelect=function(e){return e.altKey&&!(o.isMac&&this._optionsService.options.macOptionClickForcesSelection)},e.prototype._onMouseMove=function(e){if(e.stopImmediatePropagation(),this._model.selectionStart){var t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),this._model.selectionEnd){2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));var r=this._bufferService.buffer;if(this._model.selectionEnd[1]<r.lines.length){var i=r.lines.get(this._model.selectionEnd[1]);i&&0===i.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]++}t&&t[0]===this._model.selectionEnd[0]&&t[1]===this._model.selectionEnd[1]||this.refresh(!0)}else this.refresh(!0)}},e.prototype._dragScroll=function(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._scrollLines(this._dragScrollAmount,!1);var e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}},e.prototype._onMouseUp=function(e){var t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500){if(e.altKey&&this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){var r=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(r&&void 0!==r[0]&&void 0!==r[1]){var i=f.moveToCellSequence(r[0]-1,r[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(i,!0)}}}else this.hasSelection&&this._onSelectionChange.fire()},e.prototype._onBufferActivate=function(e){var t=this;this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(function(e){return t._onTrim(e)})},e.prototype._convertViewportColToCharacterIndex=function(e,t){for(var r=t[0],i=0;t[0]>=i;i++){var n=e.loadCell(i,this._workCell).getChars().length;0===this._workCell.getWidth()?r--:n>1&&t[0]!==i&&(r+=n-1)}return r},e.prototype.setSelection=function(e,t,r){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=r,this.refresh()},e.prototype._getWordAt=function(e,t,r,i){if(void 0===r&&(r=!0),void 0===i&&(i=!0),!(e[0]>=this._bufferService.cols)){var n=this._bufferService.buffer,o=n.lines.get(e[1]);if(o){var s=n.translateBufferLineToString(e[1],!1),a=this._convertViewportColToCharacterIndex(o,e),c=a,l=e[0]-a,h=0,u=0,f=0,_=0;if(" "===s.charAt(a)){for(;a>0&&" "===s.charAt(a-1);)a--;for(;c<s.length&&" "===s.charAt(c+1);)c++}else{var d=e[0],p=e[0];0===o.getWidth(d)&&(h++,d--),2===o.getWidth(p)&&(u++,p++);var v=o.getString(p).length;for(v>1&&(_+=v-1,c+=v-1);d>0&&a>0&&!this._isCharWordSeparator(o.loadCell(d-1,this._workCell));){o.loadCell(d-1,this._workCell);var g=this._workCell.getChars().length;0===this._workCell.getWidth()?(h++,d--):g>1&&(f+=g-1,a-=g-1),a--,d--}for(;p<o.length&&c+1<s.length&&!this._isCharWordSeparator(o.loadCell(p+1,this._workCell));){o.loadCell(p+1,this._workCell);var y=this._workCell.getChars().length;2===this._workCell.getWidth()?(u++,p++):y>1&&(_+=y-1,c+=y-1),c++,p++}}c++;var b=a+l-h+f,m=Math.min(this._bufferService.cols,c-a+h+u-f-_);if(t||""!==s.slice(a,c).trim()){if(r&&0===b&&32!==o.getCodePoint(0)){var C=n.lines.get(e[1]-1);if(C&&o.isWrapped&&32!==C.getCodePoint(this._bufferService.cols-1)){var S=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(S){var w=this._bufferService.cols-S.start;b-=w,m+=w}}}if(i&&b+m===this._bufferService.cols&&32!==o.getCodePoint(this._bufferService.cols-1)){var E=n.lines.get(e[1]+1);if(E&&E.isWrapped&&32!==E.getCodePoint(0)){var L=this._getWordAt([0,e[1]+1],!1,!1,!0);L&&(m+=L.length)}}return{start:b,length:m}}}}},e.prototype._selectWordAt=function(e,t){var r=this._getWordAt(e,t);if(r){for(;r.start<0;)r.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[r.start,e[1]],this._model.selectionStartLength=r.length}},e.prototype._selectToWordAt=function(e){var t=this._getWordAt(e,!0);if(t){for(var r=e[1];t.start<0;)t.start+=this._bufferService.cols,r--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,r++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,r]}},e.prototype._isCharWordSeparator=function(e){return 0!==e.getWidth()&&this._optionsService.options.wordSeparator.indexOf(e.getChars())>=0},e.prototype._selectLineAt=function(e){var t=this._bufferService.buffer.getWrappedRangeForLine(e);this._model.selectionStart=[0,t.first],this._model.selectionEnd=[this._bufferService.cols,t.last],this._model.selectionStartLength=0},e=i([n(3,l.ICharSizeService),n(4,h.IBufferService),n(5,h.ICoreService),n(6,l.IMouseService),n(7,h.IOptionsService)],e)}();t.SelectionService=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}return e.prototype.clearSelection=function(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0},Object.defineProperty(e.prototype,"finalSelectionStart",{get:function(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"finalSelectionEnd",{get:function(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){var e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}return this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]?[Math.max(this.selectionStart[0]+this.selectionStartLength,this.selectionEnd[0]),this.selectionEnd[1]]:this.selectionEnd}},enumerable:!0,configurable:!0}),e.prototype.areSelectionValuesReversed=function(){var e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])},e.prototype.onTrim=function(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)},e}();t.SelectionModel=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(12);function n(e,t,r,i){var n=e-o(r,e),s=t-o(r,t);return h(Math.abs(n-s)-function(e,t,r){for(var i=0,n=e-o(r,e),s=t-o(r,t),c=0;c<Math.abs(n-s);c++){var l="A"===a(e,t)?-1:1,h=r.buffer.lines.get(n+l*c);h&&h.isWrapped&&i++}return i}(e,t,r),l(a(e,t),i))}function o(e,t){for(var r=0,i=e.buffer.lines.get(t),n=i&&i.isWrapped;n&&t>=0&&t<e.rows;)r++,n=(i=e.buffer.lines.get(--t))&&i.isWrapped;return r}function s(e,t,r,i,s,a){var c;return c=n(r,i,s,a).length>0?i-o(s,i):t,e<r&&c<=i||e>=r&&c<i?"C":"D"}function a(e,t){return e>t?"A":"B"}function c(e,t,r,i,n,o){for(var s=e,a=t,c="";s!==r||a!==i;)s+=n?1:-1,n&&s>o.cols-1?(c+=o.buffer.translateBufferLineToString(a,!1,e,s),s=0,e=0,a++):!n&&s<0&&(c+=o.buffer.translateBufferLineToString(a,!1,0,e+1),e=s=o.cols-1,a--);return c+o.buffer.translateBufferLineToString(a,!1,e,s)}function l(e,t){var r=t?"O":"[";return i.C0.ESC+r+e}function h(e,t){e=Math.floor(e);for(var r="",i=0;i<e;i++)r+=t;return r}t.moveToCellSequence=function(e,t,r,i){var a=r.buffer.x,u=r.buffer.y;return r.buffer.hasScrollback?function(e,t,r,i,n,o){var a=s(e,t,r,i,n,o);return h(Math.abs(e-r),l(a,o))}(a,u,e,t,r,i):function(e,t,r,i,s,a){if(0===n(t,i,s,a).length)return"";return h(c(e,t,e,t-o(s,t),!1,s).length,l("D",a))}(a,u,0,t,r,i)+n(u,t,r,i)+function(e,t,r,i,a,u){var f;f=n(t,i,a,u).length>0?i-o(a,i):t;var _=i,d=s(e,t,r,i,a,u);return h(c(e,f,r,_,"C"===d,a).length,l(d,u))}(a,u,e,t,r,i)}},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),s=function(){function e(e){this._optionsService=e}return Object.defineProperty(e,"audioContext",{get:function(){if(!e._audioContext){var t=window.AudioContext||window.webkitAudioContext;if(!t)return console.warn("Web Audio API is not supported by this browser. Consider upgrading to the latest version"),null;e._audioContext=new t}return e._audioContext},enumerable:!0,configurable:!0}),e.prototype.playBellSound=function(){var t=e.audioContext;if(t){var r=t.createBufferSource();t.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._optionsService.options.bellSound)),function(e){r.buffer=e,r.connect(t.destination),r.start(0)})}},e.prototype._base64ToArrayBuffer=function(e){for(var t=window.atob(e),r=t.length,i=new Uint8Array(r),n=0;n<r;n++)i[n]=t.charCodeAt(n);return i.buffer},e.prototype._removeMimeType=function(e){return e.split(",")[1]},e=i([n(0,o.IOptionsService)],e)}();t.SoundService=s},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},s=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(2),c=r(7),l=r(4),h=r(0),u=function(e){function t(t,r,i,n,o){var s=e.call(this)||this;return s._element=t,s._screenElement=r,s._bufferService=i,s._mouseService=n,s._selectionService=o,s._zones=[],s._areZonesActive=!1,s._lastHoverCoords=[void 0,void 0],s._initialSelectionLength=0,s.register(c.addDisposableDomListener(s._element,"mousedown",function(e){return s._onMouseDown(e)})),s._mouseMoveListener=function(e){return s._onMouseMove(e)},s._mouseLeaveListener=function(e){return s._onMouseLeave(e)},s._clickListener=function(e){return s._onClick(e)},s}return n(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._deactivate()},t.prototype.add=function(e){this._zones.push(e),1===this._zones.length&&this._activate()},t.prototype.clearAll=function(e,t){if(0!==this._zones.length){e&&t||(e=0,t=this._bufferService.rows-1);for(var r=0;r<this._zones.length;r++){var i=this._zones[r];(i.y1>e&&i.y1<=t+1||i.y2>e&&i.y2<=t+1||i.y1<e&&i.y2>t+1)&&(this._currentZone&&this._currentZone===i&&(this._currentZone.leaveCallback(),this._currentZone=void 0),this._zones.splice(r--,1))}0===this._zones.length&&this._deactivate()}},t.prototype._activate=function(){this._areZonesActive||(this._areZonesActive=!0,this._element.addEventListener("mousemove",this._mouseMoveListener),this._element.addEventListener("mouseleave",this._mouseLeaveListener),this._element.addEventListener("click",this._clickListener))},t.prototype._deactivate=function(){this._areZonesActive&&(this._areZonesActive=!1,this._element.removeEventListener("mousemove",this._mouseMoveListener),this._element.removeEventListener("mouseleave",this._mouseLeaveListener),this._element.removeEventListener("click",this._clickListener))},t.prototype._onMouseMove=function(e){this._lastHoverCoords[0]===e.pageX&&this._lastHoverCoords[1]===e.pageY||(this._onHover(e),this._lastHoverCoords=[e.pageX,e.pageY])},t.prototype._onHover=function(e){var t=this,r=this._findZoneEventAt(e);r!==this._currentZone&&(this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=void 0,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout)),r&&(this._currentZone=r,r.hoverCallback&&r.hoverCallback(e),this._tooltipTimeout=setTimeout(function(){return t._onTooltip(e)},500)))},t.prototype._onTooltip=function(e){this._tooltipTimeout=void 0;var t=this._findZoneEventAt(e);t&&t.tooltipCallback&&t.tooltipCallback(e)},t.prototype._onMouseDown=function(e){var t;(this._initialSelectionLength=this._getSelectionLength(),this._areZonesActive)&&((null===(t=this._findZoneEventAt(e))||void 0===t?void 0:t.willLinkActivate(e))&&(e.preventDefault(),e.stopImmediatePropagation()))},t.prototype._onMouseLeave=function(e){this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=void 0,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout))},t.prototype._onClick=function(e){var t=this._findZoneEventAt(e),r=this._getSelectionLength();t&&r===this._initialSelectionLength&&(t.clickCallback(e),e.preventDefault(),e.stopImmediatePropagation())},t.prototype._getSelectionLength=function(){var e=this._selectionService.selectionText;return e?e.length:0},t.prototype._findZoneEventAt=function(e){var t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows);if(t)for(var r=t[0],i=t[1],n=0;n<this._zones.length;n++){var o=this._zones[n];if(o.y1===o.y2){if(i===o.y1&&r>=o.x1&&r<o.x2)return o}else if(i===o.y1&&r>=o.x1||i===o.y2&&r<o.x2||i>o.y1&&i<o.y2)return o}},t=o([s(2,h.IBufferService),s(3,l.IMouseService),s(4,l.ISelectionService)],t)}(a.Disposable);t.MouseZoneManager=u},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(17),s=r(11),a=r(30),c=r(7),l=r(2),h=r(31),u=function(e){function t(t,r){var i=e.call(this)||this;i._terminal=t,i._renderService=r,i._liveRegionLineCount=0,i._charsToConsume=[],i._charsToAnnounce="",i._accessibilityTreeRoot=document.createElement("div"),i._accessibilityTreeRoot.classList.add("xterm-accessibility"),i._rowContainer=document.createElement("div"),i._rowContainer.classList.add("xterm-accessibility-tree"),i._rowElements=[];for(var n=0;n<i._terminal.rows;n++)i._rowElements[n]=i._createAccessibilityTreeNode(),i._rowContainer.appendChild(i._rowElements[n]);return i._topBoundaryFocusListener=function(e){return i._onBoundaryFocus(e,0)},i._bottomBoundaryFocusListener=function(e){return i._onBoundaryFocus(e,1)},i._rowElements[0].addEventListener("focus",i._topBoundaryFocusListener),i._rowElements[i._rowElements.length-1].addEventListener("focus",i._bottomBoundaryFocusListener),i._refreshRowsDimensions(),i._accessibilityTreeRoot.appendChild(i._rowContainer),i._renderRowsDebouncer=new a.RenderDebouncer(i._renderRows.bind(i)),i._refreshRows(),i._liveRegion=document.createElement("div"),i._liveRegion.classList.add("live-region"),i._liveRegion.setAttribute("aria-live","assertive"),i._accessibilityTreeRoot.appendChild(i._liveRegion),i._terminal.element.insertAdjacentElement("afterbegin",i._accessibilityTreeRoot),i.register(i._renderRowsDebouncer),i.register(i._terminal.onResize(function(e){return i._onResize(e.rows)})),i.register(i._terminal.onRender(function(e){return i._refreshRows(e.start,e.end)})),i.register(i._terminal.onScroll(function(){return i._refreshRows()})),i.register(i._terminal.onA11yChar(function(e){return i._onChar(e)})),i.register(i._terminal.onLineFeed(function(){return i._onChar("\n")})),i.register(i._terminal.onA11yTab(function(e){return i._onTab(e)})),i.register(i._terminal.onKey(function(e){return i._onKey(e.key)})),i.register(i._terminal.onBlur(function(){return i._clearLiveRegion()})),i.register(i._renderService.onDimensionsChange(function(){return i._refreshRowsDimensions()})),i._screenDprMonitor=new h.ScreenDprMonitor,i.register(i._screenDprMonitor),i._screenDprMonitor.setListener(function(){return i._refreshRowsDimensions()}),i.register(c.addDisposableDomListener(window,"resize",function(){return i._refreshRowsDimensions()})),i}return n(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._terminal.element.removeChild(this._accessibilityTreeRoot),this._rowElements.length=0},t.prototype._onBoundaryFocus=function(e,t){var r=e.target,i=this._rowElements[0===t?1:this._rowElements.length-2];if(r.getAttribute("aria-posinset")!==(0===t?"1":""+this._terminal.buffer.lines.length)&&e.relatedTarget===i){var n,o;if(0===t?(n=r,o=this._rowElements.pop(),this._rowContainer.removeChild(o)):(n=this._rowElements.shift(),o=r,this._rowContainer.removeChild(n)),n.removeEventListener("focus",this._topBoundaryFocusListener),o.removeEventListener("focus",this._bottomBoundaryFocusListener),0===t){var s=this._createAccessibilityTreeNode();this._rowElements.unshift(s),this._rowContainer.insertAdjacentElement("afterbegin",s)}else{s=this._createAccessibilityTreeNode();this._rowElements.push(s),this._rowContainer.appendChild(s)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}},t.prototype._onResize=function(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(var t=this._rowContainer.children.length;t<this._terminal.rows;t++)this._rowElements[t]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[t]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()},t.prototype._createAccessibilityTreeNode=function(){var e=document.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e},t.prototype._onTab=function(e){for(var t=0;t<e;t++)this._onChar(" ")},t.prototype._onChar=function(e){var t=this;if(this._liveRegionLineCount<21){if(this._charsToConsume.length>0)this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e);else this._charsToAnnounce+=e;"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=o.tooMuchOutput)),s.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout(function(){t._accessibilityTreeRoot.appendChild(t._liveRegion)},0)}},t.prototype._clearLiveRegion=function(){this._liveRegion.textContent="",this._liveRegionLineCount=0,s.isMac&&this._liveRegion.parentNode&&this._accessibilityTreeRoot.removeChild(this._liveRegion)},t.prototype._onKey=function(e){this._clearLiveRegion(),this._charsToConsume.push(e)},t.prototype._refreshRows=function(e,t){this._renderRowsDebouncer.refresh(e,t,this._terminal.rows)},t.prototype._renderRows=function(e,t){for(var r=this._terminal.buffer,i=r.lines.length.toString(),n=e;n<=t;n++){var o=r.translateBufferLineToString(r.ydisp+n,!0),s=(r.ydisp+n+1).toString(),a=this._rowElements[n];a&&(0===o.length?a.innerHTML="&nbsp;":a.textContent=o,a.setAttribute("aria-posinset",s),a.setAttribute("aria-setsize",i))}this._announceCharacters()},t.prototype._refreshRowsDimensions=function(){if(this._renderService.dimensions.actualCellHeight){this._rowElements.length!==this._terminal.rows&&this._onResize(this._terminal.rows);for(var e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}},t.prototype._refreshRowDimensions=function(e){e.style.height=this._renderService.dimensions.actualCellHeight+"px"},t.prototype._announceCharacters=function(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")},t}(l.Disposable);t.AccessibilityManager=u},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},s=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(58),c=r(9),l=r(2),h=r(4),u=r(0),f=r(1),_=r(10),d="xterm-dom-renderer-owner-",p="xterm-rows",v="xterm-selection",g=1,y=function(e){function t(t,r,i,n,o,s,c,l){var h=e.call(this)||this;return h._colors=t,h._element=r,h._screenElement=i,h._viewportElement=n,h._linkifier=o,h._charSizeService=s,h._optionsService=c,h._bufferService=l,h._terminalClass=g++,h._rowElements=[],h._onRequestRefreshRows=new f.EventEmitter,h._rowContainer=document.createElement("div"),h._rowContainer.classList.add(p),h._rowContainer.style.lineHeight="normal",h._rowContainer.setAttribute("aria-hidden","true"),h._refreshRowElements(h._bufferService.cols,h._bufferService.rows),h._selectionContainer=document.createElement("div"),h._selectionContainer.classList.add(v),h._selectionContainer.setAttribute("aria-hidden","true"),h.dimensions={scaledCharWidth:0,scaledCharHeight:0,scaledCellWidth:0,scaledCellHeight:0,scaledCharLeft:0,scaledCharTop:0,scaledCanvasWidth:0,scaledCanvasHeight:0,canvasWidth:0,canvasHeight:0,actualCellWidth:0,actualCellHeight:0},h._updateDimensions(),h._injectCss(),h._rowFactory=new a.DomRendererRowFactory(document,h._optionsService,h._colors),h._element.classList.add(d+h._terminalClass),h._screenElement.appendChild(h._rowContainer),h._screenElement.appendChild(h._selectionContainer),h._linkifier.onLinkHover(function(e){return h._onLinkHover(e)}),h._linkifier.onLinkLeave(function(e){return h._onLinkLeave(e)}),h}return n(t,e),Object.defineProperty(t.prototype,"onRequestRefreshRows",{get:function(){return this._onRequestRefreshRows.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._element.classList.remove(d+this._terminalClass),this._screenElement.removeChild(this._rowContainer),this._screenElement.removeChild(this._selectionContainer),this._screenElement.removeChild(this._themeStyleElement),this._screenElement.removeChild(this._dimensionsStyleElement),e.prototype.dispose.call(this)},t.prototype._updateDimensions=function(){var e=this;this.dimensions.scaledCharWidth=this._charSizeService.width*window.devicePixelRatio,this.dimensions.scaledCharHeight=Math.ceil(this._charSizeService.height*window.devicePixelRatio),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._optionsService.options.letterSpacing),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._optionsService.options.lineHeight),this.dimensions.scaledCharLeft=0,this.dimensions.scaledCharTop=0,this.dimensions.scaledCanvasWidth=this.dimensions.scaledCellWidth*this._bufferService.cols,this.dimensions.scaledCanvasHeight=this.dimensions.scaledCellHeight*this._bufferService.rows,this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._bufferService.cols,this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._bufferService.rows,this._rowElements.forEach(function(t){t.style.width=e.dimensions.canvasWidth+"px",t.style.height=e.dimensions.actualCellHeight+"px",t.style.lineHeight=e.dimensions.actualCellHeight+"px",t.style.overflow="hidden"}),this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));var t=this._terminalSelector+" ."+p+" span { display: inline-block; height: 100%; vertical-align: top; width: "+this.dimensions.actualCellWidth+"px}";this._dimensionsStyleElement.innerHTML=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=this.dimensions.canvasWidth+"px",this._screenElement.style.height=this.dimensions.canvasHeight+"px"},t.prototype.setColors=function(e){this._colors=e,this._injectCss()},t.prototype._injectCss=function(){var e=this;this._themeStyleElement||(this._themeStyleElement=document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));var t=this._terminalSelector+" ."+p+" { color: "+this._colors.foreground.css+"; background-color: "+this._colors.background.css+"; font-family: "+this._optionsService.options.fontFamily+"; font-size: "+this._optionsService.options.fontSize+"px;}";t+=this._terminalSelector+" span:not(."+a.BOLD_CLASS+") { font-weight: "+this._optionsService.options.fontWeight+";}"+this._terminalSelector+" span."+a.BOLD_CLASS+" { font-weight: "+this._optionsService.options.fontWeightBold+";}"+this._terminalSelector+" span."+a.ITALIC_CLASS+" { font-style: italic;}",t+="@keyframes blink_box_shadow { 50% {  box-shadow: none; }}",t+="@keyframes blink_block { 0% {  background-color: "+this._colors.cursor.css+";  color: "+this._colors.cursorAccent.css+"; } 50% {  background-color: "+this._colors.cursorAccent.css+";  color: "+this._colors.cursor.css+"; }}",t+=this._terminalSelector+" ."+p+":not(.xterm-focus) ."+a.CURSOR_CLASS+"."+a.CURSOR_STYLE_BLOCK_CLASS+" { outline: 1px solid "+this._colors.cursor.css+"; outline-offset: -1px;}"+this._terminalSelector+" ."+p+".xterm-focus ."+a.CURSOR_CLASS+"."+a.CURSOR_BLINK_CLASS+":not(."+a.CURSOR_STYLE_BLOCK_CLASS+") { animation: blink_box_shadow 1s step-end infinite;}"+this._terminalSelector+" ."+p+".xterm-focus ."+a.CURSOR_CLASS+"."+a.CURSOR_BLINK_CLASS+"."+a.CURSOR_STYLE_BLOCK_CLASS+" { animation: blink_block 1s step-end infinite;}"+this._terminalSelector+" ."+p+".xterm-focus ."+a.CURSOR_CLASS+"."+a.CURSOR_STYLE_BLOCK_CLASS+" { background-color: "+this._colors.cursor.css+"; color: "+this._colors.cursorAccent.css+";}"+this._terminalSelector+" ."+p+" ."+a.CURSOR_CLASS+"."+a.CURSOR_STYLE_BAR_CLASS+" { box-shadow: 1px 0 0 "+this._colors.cursor.css+" inset;}"+this._terminalSelector+" ."+p+" ."+a.CURSOR_CLASS+"."+a.CURSOR_STYLE_UNDERLINE_CLASS+" { box-shadow: 0 -1px 0 "+this._colors.cursor.css+" inset;}",t+=this._terminalSelector+" ."+v+" { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}"+this._terminalSelector+" ."+v+" div { position: absolute; background-color: "+this._colors.selection.css+";}",this._colors.ansi.forEach(function(r,i){t+=e._terminalSelector+" .xterm-fg-"+i+" { color: "+r.css+"; }"+e._terminalSelector+" .xterm-bg-"+i+" { background-color: "+r.css+"; }"}),t+=this._terminalSelector+" .xterm-fg-"+c.INVERTED_DEFAULT_COLOR+" { color: "+_.opaque(this._colors.background).css+"; }"+this._terminalSelector+" .xterm-bg-"+c.INVERTED_DEFAULT_COLOR+" { background-color: "+this._colors.foreground.css+"; }",this._themeStyleElement.innerHTML=t},t.prototype.onDevicePixelRatioChange=function(){this._updateDimensions()},t.prototype._refreshRowElements=function(e,t){for(var r=this._rowElements.length;r<=t;r++){var i=document.createElement("div");this._rowContainer.appendChild(i),this._rowElements.push(i)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())},t.prototype.onResize=function(e,t){this._refreshRowElements(e,t),this._updateDimensions()},t.prototype.onCharSizeChanged=function(){this._updateDimensions()},t.prototype.onBlur=function(){this._rowContainer.classList.remove("xterm-focus")},t.prototype.onFocus=function(){this._rowContainer.classList.add("xterm-focus")},t.prototype.onSelectionChanged=function(e,t,r){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(e&&t){var i=e[1]-this._bufferService.buffer.ydisp,n=t[1]-this._bufferService.buffer.ydisp,o=Math.max(i,0),s=Math.min(n,this._bufferService.rows-1);if(!(o>=this._bufferService.rows||s<0)){var a=document.createDocumentFragment();if(r)a.appendChild(this._createSelectionElement(o,e[0],t[0],s-o+1));else{var c=i===o?e[0]:0,l=o===s?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,c,l));var h=s-o-1;if(a.appendChild(this._createSelectionElement(o+1,0,this._bufferService.cols,h)),o!==s){var u=n===s?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(s,0,u))}}this._selectionContainer.appendChild(a)}}},t.prototype._createSelectionElement=function(e,t,r,i){void 0===i&&(i=1);var n=document.createElement("div");return n.style.height=i*this.dimensions.actualCellHeight+"px",n.style.top=e*this.dimensions.actualCellHeight+"px",n.style.left=t*this.dimensions.actualCellWidth+"px",n.style.width=this.dimensions.actualCellWidth*(r-t)+"px",n},t.prototype.onCursorMove=function(){},t.prototype.onOptionsChanged=function(){this._updateDimensions(),this._injectCss()},t.prototype.clear=function(){this._rowElements.forEach(function(e){return e.innerHTML=""})},t.prototype.renderRows=function(e,t){for(var r=this._bufferService.buffer.ybase+this._bufferService.buffer.y,i=this._bufferService.buffer.x,n=this._optionsService.options.cursorBlink,o=e;o<=t;o++){var s=this._rowElements[o];s.innerHTML="";var a=o+this._bufferService.buffer.ydisp,c=this._bufferService.buffer.lines.get(a),l=this._optionsService.options.cursorStyle;s.appendChild(this._rowFactory.createRow(c,a===r,l,i,n,this.dimensions.actualCellWidth,this._bufferService.cols))}},Object.defineProperty(t.prototype,"_terminalSelector",{get:function(){return"."+d+this._terminalClass},enumerable:!0,configurable:!0}),t.prototype.registerCharacterJoiner=function(e){return-1},t.prototype.deregisterCharacterJoiner=function(e){return!1},t.prototype._onLinkHover=function(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)},t.prototype._onLinkLeave=function(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)},t.prototype._setCellUnderline=function(e,t,r,i,n,o){for(;e!==t||r!==i;){var s=this._rowElements[r];if(!s)return;var a=s.children[e];a&&(a.style.textDecoration=o?"underline":"none"),++e>=n&&(e=0,r++)}},t=o([s(5,h.ICharSizeService),s(6,u.IOptionsService),s(7,u.IBufferService)],t)}(l.Disposable);t.DomRenderer=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(9),n=r(3),o=r(5),s=r(10);t.BOLD_CLASS="xterm-bold",t.DIM_CLASS="xterm-dim",t.ITALIC_CLASS="xterm-italic",t.UNDERLINE_CLASS="xterm-underline",t.CURSOR_CLASS="xterm-cursor",t.CURSOR_BLINK_CLASS="xterm-cursor-blink",t.CURSOR_STYLE_BLOCK_CLASS="xterm-cursor-block",t.CURSOR_STYLE_BAR_CLASS="xterm-cursor-bar",t.CURSOR_STYLE_UNDERLINE_CLASS="xterm-cursor-underline";var a=function(){function e(e,t,r){this._document=e,this._optionsService=t,this._colors=r,this._workCell=new o.CellData}return e.prototype.setColors=function(e){this._colors=e},e.prototype.createRow=function(e,r,o,a,l,h,u){for(var f=this._document.createDocumentFragment(),_=0,d=Math.min(e.length,u)-1;d>=0;d--)if(e.loadCell(d,this._workCell).getCode()!==n.NULL_CELL_CODE||r&&d===a){_=d+1;break}for(d=0;d<_;d++){e.loadCell(d,this._workCell);var p=this._workCell.getWidth();if(0!==p){var v=this._document.createElement("span");if(p>1&&(v.style.width=h*p+"px"),r&&d===a)switch(v.classList.add(t.CURSOR_CLASS),l&&v.classList.add(t.CURSOR_BLINK_CLASS),o){case"bar":v.classList.add(t.CURSOR_STYLE_BAR_CLASS);break;case"underline":v.classList.add(t.CURSOR_STYLE_UNDERLINE_CLASS);break;default:v.classList.add(t.CURSOR_STYLE_BLOCK_CLASS)}this._workCell.isBold()&&v.classList.add(t.BOLD_CLASS),this._workCell.isItalic()&&v.classList.add(t.ITALIC_CLASS),this._workCell.isDim()&&v.classList.add(t.DIM_CLASS),this._workCell.isUnderline()&&v.classList.add(t.UNDERLINE_CLASS),v.textContent=this._workCell.getChars()||n.WHITESPACE_CELL_CHAR;var g=this._workCell.getFgColor(),y=this._workCell.getFgColorMode(),b=this._workCell.getBgColor(),m=this._workCell.getBgColorMode(),C=!!this._workCell.isInverse();if(C){var S=g;g=b,b=S;var w=y;y=m,m=w}switch(y){case 16777216:case 33554432:this._workCell.isBold()&&g<8&&this._optionsService.options.drawBoldTextInBrightColors&&(g+=8),this._applyMinimumContrast(v,this._colors.background,this._colors.ansi[g])||v.classList.add("xterm-fg-"+g);break;case 50331648:var E=s.rgbaToColor(g>>16&255,g>>8&255,255&g);this._applyMinimumContrast(v,this._colors.background,E)||this._addStyle(v,"color:#"+c(g.toString(16),"0",6));break;case 0:default:this._applyMinimumContrast(v,this._colors.background,this._colors.foreground)||C&&v.classList.add("xterm-fg-"+i.INVERTED_DEFAULT_COLOR)}switch(m){case 16777216:case 33554432:v.classList.add("xterm-bg-"+b);break;case 50331648:this._addStyle(v,"background-color:#"+c(b.toString(16),"0",6));break;case 0:default:C&&v.classList.add("xterm-bg-"+i.INVERTED_DEFAULT_COLOR)}f.appendChild(v)}}return f},e.prototype._applyMinimumContrast=function(e,t,r){if(1===this._optionsService.options.minimumContrastRatio)return!1;var i=this._colors.contrastCache.getColor(this._workCell.bg,this._workCell.fg);return void 0===i&&(i=s.ensureContrastRatio(t,r,this._optionsService.options.minimumContrastRatio),this._colors.contrastCache.setColor(this._workCell.bg,this._workCell.fg,null!=i?i:null)),!!i&&(this._addStyle(e,"color:"+i.css),!0)},e.prototype._addStyle=function(e,t){e.setAttribute("style",""+(e.getAttribute("style")||"")+t+";")},e}();function c(e,t,r){for(;e.length<r;)e=t+e;return e}t.DomRendererRowFactory=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(12),n={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:["'",'"']};t.evaluateKeyboardEvent=function(e,t,r,o){var s={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?s.key=t?i.C0.ESC+"OA":i.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?s.key=t?i.C0.ESC+"OD":i.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?s.key=t?i.C0.ESC+"OC":i.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(s.key=t?i.C0.ESC+"OB":i.C0.ESC+"[B");break;case 8:if(e.shiftKey){s.key=i.C0.BS;break}if(e.altKey){s.key=i.C0.ESC+i.C0.DEL;break}s.key=i.C0.DEL;break;case 9:if(e.shiftKey){s.key=i.C0.ESC+"[Z";break}s.key=i.C0.HT,s.cancel=!0;break;case 13:s.key=i.C0.CR,s.cancel=!0;break;case 27:s.key=i.C0.ESC,s.cancel=!0;break;case 37:if(e.metaKey)break;a?(s.key=i.C0.ESC+"[1;"+(a+1)+"D",s.key===i.C0.ESC+"[1;3D"&&(s.key=i.C0.ESC+(r?"b":"[1;5D"))):s.key=t?i.C0.ESC+"OD":i.C0.ESC+"[D";break;case 39:if(e.metaKey)break;a?(s.key=i.C0.ESC+"[1;"+(a+1)+"C",s.key===i.C0.ESC+"[1;3C"&&(s.key=i.C0.ESC+(r?"f":"[1;5C"))):s.key=t?i.C0.ESC+"OC":i.C0.ESC+"[C";break;case 38:if(e.metaKey)break;a?(s.key=i.C0.ESC+"[1;"+(a+1)+"A",r||s.key!==i.C0.ESC+"[1;3A"||(s.key=i.C0.ESC+"[1;5A")):s.key=t?i.C0.ESC+"OA":i.C0.ESC+"[A";break;case 40:if(e.metaKey)break;a?(s.key=i.C0.ESC+"[1;"+(a+1)+"B",r||s.key!==i.C0.ESC+"[1;3B"||(s.key=i.C0.ESC+"[1;5B")):s.key=t?i.C0.ESC+"OB":i.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(s.key=i.C0.ESC+"[2~");break;case 46:s.key=a?i.C0.ESC+"[3;"+(a+1)+"~":i.C0.ESC+"[3~";break;case 36:s.key=a?i.C0.ESC+"[1;"+(a+1)+"H":t?i.C0.ESC+"OH":i.C0.ESC+"[H";break;case 35:s.key=a?i.C0.ESC+"[1;"+(a+1)+"F":t?i.C0.ESC+"OF":i.C0.ESC+"[F";break;case 33:e.shiftKey?s.type=2:s.key=i.C0.ESC+"[5~";break;case 34:e.shiftKey?s.type=3:s.key=i.C0.ESC+"[6~";break;case 112:s.key=a?i.C0.ESC+"[1;"+(a+1)+"P":i.C0.ESC+"OP";break;case 113:s.key=a?i.C0.ESC+"[1;"+(a+1)+"Q":i.C0.ESC+"OQ";break;case 114:s.key=a?i.C0.ESC+"[1;"+(a+1)+"R":i.C0.ESC+"OR";break;case 115:s.key=a?i.C0.ESC+"[1;"+(a+1)+"S":i.C0.ESC+"OS";break;case 116:s.key=a?i.C0.ESC+"[15;"+(a+1)+"~":i.C0.ESC+"[15~";break;case 117:s.key=a?i.C0.ESC+"[17;"+(a+1)+"~":i.C0.ESC+"[17~";break;case 118:s.key=a?i.C0.ESC+"[18;"+(a+1)+"~":i.C0.ESC+"[18~";break;case 119:s.key=a?i.C0.ESC+"[19;"+(a+1)+"~":i.C0.ESC+"[19~";break;case 120:s.key=a?i.C0.ESC+"[20;"+(a+1)+"~":i.C0.ESC+"[20~";break;case 121:s.key=a?i.C0.ESC+"[21;"+(a+1)+"~":i.C0.ESC+"[21~";break;case 122:s.key=a?i.C0.ESC+"[23;"+(a+1)+"~":i.C0.ESC+"[23~";break;case 123:s.key=a?i.C0.ESC+"[24;"+(a+1)+"~":i.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(r&&!o||!e.altKey||e.metaKey)r&&!e.altKey&&!e.ctrlKey&&e.metaKey?65===e.keyCode&&(s.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?s.key=e.key:e.key&&e.ctrlKey&&"_"===e.key&&(s.key=i.C0.US);else{var c=n[e.keyCode],l=c&&c[e.shiftKey?1:0];if(l)s.key=i.C0.ESC+l;else if(e.keyCode>=65&&e.keyCode<=90){var h=e.ctrlKey?e.keyCode-64:e.keyCode+32;s.key=i.C0.ESC+String.fromCharCode(h)}}else e.keyCode>=65&&e.keyCode<=90?s.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?s.key=i.C0.NUL:e.keyCode>=51&&e.keyCode<=55?s.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?s.key=i.C0.DEL:219===e.keyCode?s.key=i.C0.ESC:220===e.keyCode?s.key=i.C0.FS:221===e.keyCode&&(s.key=i.C0.GS)}return s}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(3);t.handleWindowsModeLineFeed=function(e){var t,r=null===(t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1))||void 0===t?void 0:t.get(e.cols-1),n=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);n&&r&&(n.isWrapped=r[i.CHAR_DATA_CODE_INDEX]!==i.NULL_CELL_CODE&&r[i.CHAR_DATA_CODE_INDEX]!==i.WHITESPACE_CELL_CODE)}},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},s=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(30),c=r(1),l=r(2),h=r(31),u=r(7),f=r(0),_=r(4),d=function(e){function t(t,r,i,n,o){var s=e.call(this)||this;if(s._renderer=t,s._rowCount=r,s.screenElement=i,s.optionsService=n,s.charSizeService=o,s._isPaused=!1,s._needsFullRefresh=!1,s._canvasWidth=0,s._canvasHeight=0,s._onDimensionsChange=new c.EventEmitter,s._onRender=new c.EventEmitter,s._onRefreshRequest=new c.EventEmitter,s._renderDebouncer=new a.RenderDebouncer(function(e,t){return s._renderRows(e,t)}),s.register(s._renderDebouncer),s._screenDprMonitor=new h.ScreenDprMonitor,s._screenDprMonitor.setListener(function(){return s.onDevicePixelRatioChange()}),s.register(s._screenDprMonitor),s.register(n.onOptionChange(function(){return s._renderer.onOptionsChanged()})),s.register(o.onCharSizeChange(function(){return s.onCharSizeChanged()})),s._renderer.onRequestRefreshRows(function(e){return s.refreshRows(e.start,e.end)}),s.register(u.addDisposableDomListener(window,"resize",function(){return s.onDevicePixelRatioChange()})),"IntersectionObserver"in window){var l=new IntersectionObserver(function(e){return s._onIntersectionChange(e[e.length-1])},{threshold:0});l.observe(i),s.register({dispose:function(){return l.disconnect()}})}return s}return n(t,e),Object.defineProperty(t.prototype,"onDimensionsChange",{get:function(){return this._onDimensionsChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onRender",{get:function(){return this._onRender.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onRefreshRequest",{get:function(){return this._onRefreshRequest.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dimensions",{get:function(){return this._renderer.dimensions},enumerable:!0,configurable:!0}),t.prototype._onIntersectionChange=function(e){this._isPaused=0===e.intersectionRatio,!this._isPaused&&this._needsFullRefresh&&(this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)},t.prototype.refreshRows=function(e,t){this._isPaused?this._needsFullRefresh=!0:this._renderDebouncer.refresh(e,t,this._rowCount)},t.prototype._renderRows=function(e,t){this._renderer.renderRows(e,t),this._onRender.fire({start:e,end:t})},t.prototype.resize=function(e,t){this._rowCount=t,this._fireOnCanvasResize()},t.prototype.changeOptions=function(){this._renderer.onOptionsChanged(),this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize()},t.prototype._fireOnCanvasResize=function(){this._renderer.dimensions.canvasWidth===this._canvasWidth&&this._renderer.dimensions.canvasHeight===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.dimensions)},t.prototype.dispose=function(){this._renderer.dispose(),e.prototype.dispose.call(this)},t.prototype.setRenderer=function(e){var t=this;this._renderer.dispose(),this._renderer=e,this._renderer.onRequestRefreshRows(function(e){return t.refreshRows(e.start,e.end)}),this.refreshRows(0,this._rowCount-1)},t.prototype._fullRefresh=function(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)},t.prototype.setColors=function(e){this._renderer.setColors(e),this._fullRefresh()},t.prototype.onDevicePixelRatioChange=function(){this._renderer.onDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1)},t.prototype.onResize=function(e,t){this._renderer.onResize(e,t),this._fullRefresh()},t.prototype.onCharSizeChanged=function(){this._renderer.onCharSizeChanged()},t.prototype.onBlur=function(){this._renderer.onBlur()},t.prototype.onFocus=function(){this._renderer.onFocus()},t.prototype.onSelectionChanged=function(e,t,r){this._renderer.onSelectionChanged(e,t,r)},t.prototype.onCursorMove=function(){this._renderer.onCursorMove()},t.prototype.clear=function(){this._renderer.clear()},t.prototype.registerCharacterJoiner=function(e){return this._renderer.registerCharacterJoiner(e)},t.prototype.deregisterCharacterJoiner=function(e){return this._renderer.deregisterCharacterJoiner(e)},t=o([s(3,f.IOptionsService),s(4,_.ICharSizeService)],t)}(l.Disposable);t.RenderService=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),n=r(11),o=r(32);t.DEFAULT_BELL_SOUND="data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjMyLjEwNAAAAAAAAAAAAAAA//tQxAADB8AhSmxhIIEVCSiJrDCQBTcu3UrAIwUdkRgQbFAZC1CQEwTJ9mjRvBA4UOLD8nKVOWfh+UlK3z/177OXrfOdKl7pyn3Xf//WreyTRUoAWgBgkOAGbZHBgG1OF6zM82DWbZaUmMBptgQhGjsyYqc9ae9XFz280948NMBWInljyzsNRFLPWdnZGWrddDsjK1unuSrVN9jJsK8KuQtQCtMBjCEtImISdNKJOopIpBFpNSMbIHCSRpRR5iakjTiyzLhchUUBwCgyKiweBv/7UsQbg8isVNoMPMjAAAA0gAAABEVFGmgqK////9bP/6XCykxBTUUzLjEwMKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq",t.DEFAULT_OPTIONS=Object.freeze({cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",bellSound:t.DEFAULT_BELL_SOUND,bellStyle:"none",drawBoldTextInBrightColors:!0,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",lineHeight:1,letterSpacing:0,logLevel:"info",scrollback:1e3,scrollSensitivity:1,screenReaderMode:!1,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rightClickSelectsWord:n.isMac,rendererType:"canvas",windowsMode:!1,convertEol:!1,termName:"xterm",screenKeys:!1,cancelEvents:!1,useFlowControl:!1,wordSeparator:" ()[]{}',:;\"`"});var s=["cols","rows"],a=function(){function e(e){var r=this;this._onOptionChange=new i.EventEmitter,this.options=o.clone(t.DEFAULT_OPTIONS),Object.keys(e).forEach(function(t){if(t in r.options){var i=e[t];r.options[t]=i}})}return Object.defineProperty(e.prototype,"onOptionChange",{get:function(){return this._onOptionChange.event},enumerable:!0,configurable:!0}),e.prototype.setOption=function(e,r){if(!(e in t.DEFAULT_OPTIONS))throw new Error('No option with key "'+e+'"');if(-1!==s.indexOf(e))throw new Error('Option "'+e+'" can only be set in the constructor');this.options[e]!==r&&(r=this._sanitizeAndValidateOption(e,r),this.options[e]!==r&&(this.options[e]=r,this._onOptionChange.fire(e)))},e.prototype._sanitizeAndValidateOption=function(e,r){switch(e){case"bellStyle":case"cursorStyle":case"fontWeight":case"fontWeightBold":case"rendererType":case"wordSeparator":r||(r=t.DEFAULT_OPTIONS[e]);break;case"lineHeight":case"tabStopWidth":if(r<1)throw new Error(e+" cannot be less than 1, value: "+r);break;case"minimumContrastRatio":r=Math.max(1,Math.min(21,Math.round(10*r)/10));case"scrollback":if((r=Math.min(r,4294967295))<0)throw new Error(e+" cannot be less than 0, value: "+r);break;case"fastScrollSensitivity":case"scrollSensitivity":if(r<=0)throw new Error(e+" cannot be less than or equal to 0, value: "+r)}return r},e.prototype.getOption=function(e){if(!(e in t.DEFAULT_OPTIONS))throw new Error('No option with key "'+e+'"');return this.options[e]},e}();t.OptionsService=a},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),s=r(1),a=function(){function e(e,t,r){this.document=e,this.parentElement=t,this._optionsService=r,this.width=0,this.height=0,this._onCharSizeChange=new s.EventEmitter,this._measureStrategy=new c(e,t,this._optionsService)}return Object.defineProperty(e.prototype,"hasValidSize",{get:function(){return this.width>0&&this.height>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onCharSizeChange",{get:function(){return this._onCharSizeChange.event},enumerable:!0,configurable:!0}),e.prototype.measure=function(){var e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())},e=i([n(2,o.IOptionsService)],e)}();t.CharSizeService=a;var c=function(){function e(e,t,r){this._document=e,this._parentElement=t,this._optionsService=r,this._result={width:0,height:0},this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W",this._measureElement.setAttribute("aria-hidden","true"),this._parentElement.appendChild(this._measureElement)}return e.prototype.measure=function(){this._measureElement.style.fontFamily=this._optionsService.options.fontFamily,this._measureElement.style.fontSize=this._optionsService.options.fontSize+"px";var e=this._measureElement.getBoundingClientRect();return 0!==e.width&&0!==e.height&&(this._result.width=e.width,this._result.height=Math.ceil(e.height)),this._result},e}()},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),s=r(65);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;var a=function(){function e(e){this._optionsService=e,this.cols=Math.max(e.options.cols,t.MINIMUM_COLS),this.rows=Math.max(e.options.rows,t.MINIMUM_ROWS),this.buffers=new s.BufferSet(e,this)}return Object.defineProperty(e.prototype,"buffer",{get:function(){return this.buffers.active},enumerable:!0,configurable:!0}),e.prototype.resize=function(e,t){this.cols=e,this.rows=t},e.prototype.reset=function(){this.buffers=new s.BufferSet(this._optionsService,this)},e=i([n(0,o.IOptionsService)],e)}();t.BufferService=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(66),n=r(1),o=function(){function e(e,t){this.optionsService=e,this.bufferService=t,this._onBufferActivate=new n.EventEmitter,this._normal=new i.Buffer(!0,e,t),this._normal.fillViewportRows(),this._alt=new i.Buffer(!1,e,t),this._activeBuffer=this._normal,this.setupTabStops()}return Object.defineProperty(e.prototype,"onBufferActivate",{get:function(){return this._onBufferActivate.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alt",{get:function(){return this._alt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"active",{get:function(){return this._activeBuffer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"normal",{get:function(){return this._normal},enumerable:!0,configurable:!0}),e.prototype.activateNormalBuffer=function(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))},e.prototype.activateAltBuffer=function(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),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}))},e.prototype.resize=function(e,t){this._normal.resize(e,t),this._alt.resize(e,t)},e.prototype.setupTabStops=function(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)},e}();t.BufferSet=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(67),n=r(16),o=r(5),s=r(3),a=r(68),c=r(69),l=r(18);t.MAX_BUFFER_SIZE=4294967295;var h=function(){function e(e,t,r){this._hasScrollback=e,this._optionsService=t,this._bufferService=r,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.savedY=0,this.savedX=0,this.savedCurAttrData=n.DEFAULT_ATTR_DATA.clone(),this.savedCharset=l.DEFAULT_CHARSET,this.markers=[],this._nullCell=o.CellData.fromCharData([0,s.NULL_CELL_CHAR,s.NULL_CELL_WIDTH,s.NULL_CELL_CODE]),this._whitespaceCell=o.CellData.fromCharData([0,s.WHITESPACE_CELL_CHAR,s.WHITESPACE_CELL_WIDTH,s.WHITESPACE_CELL_CODE]),this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new i.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}return e.prototype.getNullCell=function(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg):(this._nullCell.fg=0,this._nullCell.bg=0),this._nullCell},e.prototype.getWhitespaceCell=function(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0),this._whitespaceCell},e.prototype.getBlankLine=function(e,t){return new n.BufferLine(this._bufferService.cols,this.getNullCell(e),t)},Object.defineProperty(e.prototype,"hasScrollback",{get:function(){return this._hasScrollback&&this.lines.maxLength>this._rows},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCursorInViewport",{get:function(){var e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows},enumerable:!0,configurable:!0}),e.prototype._getCorrectBufferLength=function(e){if(!this._hasScrollback)return e;var r=e+this._optionsService.options.scrollback;return r>t.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:r},e.prototype.fillViewportRows=function(e){if(0===this.lines.length){void 0===e&&(e=n.DEFAULT_ATTR_DATA);for(var t=this._rows;t--;)this.lines.push(this.getBlankLine(e))}},e.prototype.clear=function(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new i.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()},e.prototype.resize=function(e,t){var r=this.getNullCell(n.DEFAULT_ATTR_DATA),i=this._getCorrectBufferLength(t);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._cols<e)for(var o=0;o<this.lines.length;o++)this.lines.get(o).resize(e,r);var s=0;if(this._rows<t)for(var a=this._rows;a<t;a++)this.lines.length<t+this.ybase&&(this._optionsService.options.windowsMode?this.lines.push(new n.BufferLine(e,r)):this.ybase>0&&this.lines.length<=this.ybase+this.y+s+1?(this.ybase--,s++,this.ydisp>0&&this.ydisp--):this.lines.push(new n.BufferLine(e,r)));else for(a=this._rows;a>t;a--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i<this.lines.maxLength){var c=this.lines.length-i;c>0&&(this.lines.trimStart(c),this.ybase=Math.max(this.ybase-c,0),this.ydisp=Math.max(this.ydisp-c,0),this.savedY=Math.max(this.savedY-c,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),s&&(this.y+=s),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(o=0;o<this.lines.length;o++)this.lines.get(o).resize(e,r);this._cols=e,this._rows=t},Object.defineProperty(e.prototype,"_isReflowEnabled",{get:function(){return this._hasScrollback&&!this._optionsService.options.windowsMode},enumerable:!0,configurable:!0}),e.prototype._reflow=function(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))},e.prototype._reflowLarger=function(e,t){var r=a.reflowLargerGetLinesToRemove(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(n.DEFAULT_ATTR_DATA));if(r.length>0){var i=a.reflowLargerCreateNewLayout(this.lines,r);a.reflowLargerApplyNewLayout(this.lines,i.layout),this._reflowLargerAdjustViewport(e,t,i.countRemoved)}},e.prototype._reflowLargerAdjustViewport=function(e,t,r){for(var i=this.getNullCell(n.DEFAULT_ATTR_DATA),o=r;o-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new n.BufferLine(e,i))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-r,0)},e.prototype._reflowSmaller=function(e,t){for(var r=this.getNullCell(n.DEFAULT_ATTR_DATA),i=[],o=0,s=this.lines.length-1;s>=0;s--){var c=this.lines.get(s);if(!(!c||!c.isWrapped&&c.getTrimmedLength()<=e)){for(var l=[c];c.isWrapped&&s>0;)c=this.lines.get(--s),l.unshift(c);var h=this.ybase+this.y;if(!(h>=s&&h<s+l.length)){var u=l[l.length-1].getTrimmedLength(),f=a.reflowSmallerGetNewLineLengths(l,this._cols,e),_=f.length-l.length,d=void 0;d=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+_):Math.max(0,this.lines.length-this.lines.maxLength+_);for(var p=[],v=0;v<_;v++){var g=this.getBlankLine(n.DEFAULT_ATTR_DATA,!0);p.push(g)}p.length>0&&(i.push({start:s+l.length+o,newLines:p}),o+=p.length),l.push.apply(l,p);var y=f.length-1,b=f[y];0===b&&(b=f[--y]);for(var m=l.length-_-1,C=u;m>=0;){var S=Math.min(C,b);if(l[y].copyCellsFrom(l[m],C-S,b-S,S,!0),0===(b-=S)&&(b=f[--y]),0===(C-=S)){m--;var w=Math.max(m,0);C=a.getWrappedLineTrimmedLength(l,w,this._cols)}}for(v=0;v<l.length;v++)f[v]<e&&l[v].setCell(f[v],r);for(var E=_-d;E-- >0;)0===this.ybase?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+o)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+_,this.ybase+t-1)}}}if(i.length>0){var L=[],A=[];for(v=0;v<this.lines.length;v++)A.push(this.lines.get(v));var R=this.lines.length,x=R-1,k=0,D=i[k];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+o);var T=0;for(v=Math.min(this.lines.maxLength-1,R+o-1);v>=0;v--)if(D&&D.start>x+T){for(var M=D.newLines.length-1;M>=0;M--)this.lines.set(v--,D.newLines[M]);v++,L.push({index:x+1,amount:D.newLines.length}),T+=D.newLines.length,D=i[++k]}else this.lines.set(v,A[x--]);var O=0;for(v=L.length-1;v>=0;v--)L[v].index+=O,this.lines.onInsertEmitter.fire(L[v]),O+=L[v].amount;var P=Math.max(0,R+o-this.lines.maxLength);P>0&&this.lines.onTrimEmitter.fire(P)}},e.prototype.stringIndexToBufferIndex=function(e,t,r){for(void 0===r&&(r=!1);t;){var i=this.lines.get(e);if(!i)return[-1,-1];for(var n=r?i.getTrimmedLength():i.length,o=0;o<n;++o)if(i.get(o)[s.CHAR_DATA_WIDTH_INDEX]&&(t-=i.get(o)[s.CHAR_DATA_CHAR_INDEX].length||1),t<0)return[e,o];e++}return[e,0]},e.prototype.translateBufferLineToString=function(e,t,r,i){void 0===r&&(r=0);var n=this.lines.get(e);return n?n.translateToString(t,r,i):""},e.prototype.getWrappedRangeForLine=function(e){for(var t=e,r=e;t>0&&this.lines.get(t).isWrapped;)t--;for(;r+1<this.lines.length&&this.lines.get(r+1).isWrapped;)r++;return{first:t,last:r}},e.prototype.setupTabStops=function(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.options.tabStopWidth)this.tabs[e]=!0},e.prototype.prevStop=function(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e},e.prototype.nextStop=function(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e},e.prototype.addMarker=function(e){var t=this,r=new c.Marker(e);return this.markers.push(r),r.register(this.lines.onTrim(function(e){r.line-=e,r.line<0&&r.dispose()})),r.register(this.lines.onInsert(function(e){r.line>=e.index&&(r.line+=e.amount)})),r.register(this.lines.onDelete(function(e){r.line>=e.index&&r.line<e.index+e.amount&&r.dispose(),r.line>e.index&&(r.line-=e.amount)})),r.register(r.onDispose(function(){return t._removeMarker(r)})),r},e.prototype._removeMarker=function(e){this.markers.splice(this.markers.indexOf(e),1)},e.prototype.iterator=function(e,t,r,i,n){return new u(this,e,t,r,i,n)},e}();t.Buffer=h;var u=function(){function e(e,t,r,i,n,o){void 0===r&&(r=0),void 0===i&&(i=e.lines.length),void 0===n&&(n=0),void 0===o&&(o=0),this._buffer=e,this._trimRight=t,this._startIndex=r,this._endIndex=i,this._startOverscan=n,this._endOverscan=o,this._startIndex<0&&(this._startIndex=0),this._endIndex>this._buffer.lines.length&&(this._endIndex=this._buffer.lines.length),this._current=this._startIndex}return e.prototype.hasNext=function(){return this._current<this._endIndex},e.prototype.next=function(){var e=this._buffer.getWrappedRangeForLine(this._current);e.first<this._startIndex-this._startOverscan&&(e.first=this._startIndex-this._startOverscan),e.last>this._endIndex+this._endOverscan&&(e.last=this._endIndex+this._endOverscan),e.first=Math.max(e.first,0),e.last=Math.min(e.last,this._buffer.lines.length);for(var t="",r=e.first;r<=e.last;++r)t+=this._buffer.translateBufferLineToString(r,this._trimRight);return this._current=e.last+1,{range:e,content:t}},e}();t.BufferStringIterator=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),n=function(){function e(e){this._maxLength=e,this.onDeleteEmitter=new i.EventEmitter,this.onInsertEmitter=new i.EventEmitter,this.onTrimEmitter=new i.EventEmitter,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}return Object.defineProperty(e.prototype,"onDelete",{get:function(){return this.onDeleteEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onInsert",{get:function(){return this.onInsertEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onTrim",{get:function(){return this.onTrimEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxLength",{get:function(){return this._maxLength},set:function(e){if(this._maxLength!==e){for(var t=new Array(e),r=0;r<Math.min(e,this.length);r++)t[r]=this._array[this._getCyclicIndex(r)];this._array=t,this._maxLength=e,this._startIndex=0}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this._length},set:function(e){if(e>this._length)for(var t=this._length;t<e;t++)this._array[t]=void 0;this._length=e},enumerable:!0,configurable:!0}),e.prototype.get=function(e){return this._array[this._getCyclicIndex(e)]},e.prototype.set=function(e,t){this._array[this._getCyclicIndex(e)]=t},e.prototype.push=function(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++},e.prototype.recycle=function(){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)]},Object.defineProperty(e.prototype,"isFull",{get:function(){return this._length===this._maxLength},enumerable:!0,configurable:!0}),e.prototype.pop=function(){return this._array[this._getCyclicIndex(this._length---1)]},e.prototype.splice=function(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];if(t){for(var n=e;n<this._length-t;n++)this._array[this._getCyclicIndex(n)]=this._array[this._getCyclicIndex(n+t)];this._length-=t}for(n=this._length-1;n>=e;n--)this._array[this._getCyclicIndex(n+r.length)]=this._array[this._getCyclicIndex(n)];for(n=0;n<r.length;n++)this._array[this._getCyclicIndex(e+n)]=r[n];if(this._length+r.length>this._maxLength){var o=this._length+r.length-this._maxLength;this._startIndex+=o,this._length=this._maxLength,this.onTrimEmitter.fire(o)}else this._length+=r.length},e.prototype.trimStart=function(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)},e.prototype.shiftElements=function(e,t,r){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+r<0)throw new Error("Cannot shift elements in list beyond index 0");if(r>0){for(var i=t-1;i>=0;i--)this.set(e+i+r,this.get(e+i));var n=e+t+r-this._length;if(n>0)for(this._length+=n;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(i=0;i<t;i++)this.set(e+i+r,this.get(e+i))}},e.prototype._getCyclicIndex=function(e){return(this._startIndex+e)%this._maxLength},e}();t.CircularList=n},function(e,t,r){"use strict";function i(e,t,r){if(t===e.length-1)return e[t].getTrimmedLength();var i=!e[t].hasContent(r-1)&&1===e[t].getWidth(r-1),n=2===e[t+1].getWidth(0);return i&&n?r-1:r}Object.defineProperty(t,"__esModule",{value:!0}),t.reflowLargerGetLinesToRemove=function(e,t,r,n,o){for(var s=[],a=0;a<e.length-1;a++){var c=a,l=e.get(++c);if(l.isWrapped){for(var h=[e.get(a)];c<e.length&&l.isWrapped;)h.push(l),l=e.get(++c);if(n>=a&&n<c)a+=h.length-1;else{for(var u=0,f=i(h,u,t),_=1,d=0;_<h.length;){var p=i(h,_,t),v=p-d,g=r-f,y=Math.min(v,g);h[u].copyCellsFrom(h[_],d,f,y,!1),(f+=y)===r&&(u++,f=0),(d+=y)===p&&(_++,d=0),0===f&&0!==u&&2===h[u-1].getWidth(r-1)&&(h[u].copyCellsFrom(h[u-1],r-1,f++,1,!1),h[u-1].setCell(r-1,o))}h[u].replaceCells(f,r,o);for(var b=0,m=h.length-1;m>0&&(m>u||0===h[m].getTrimmedLength());m--)b++;b>0&&(s.push(a+h.length-b),s.push(b)),a+=h.length-1}}}return s},t.reflowLargerCreateNewLayout=function(e,t){for(var r=[],i=0,n=t[i],o=0,s=0;s<e.length;s++)if(n===s){var a=t[++i];e.onDeleteEmitter.fire({index:s-o,amount:a}),s+=a-1,o+=a,n=t[++i]}else r.push(s);return{layout:r,countRemoved:o}},t.reflowLargerApplyNewLayout=function(e,t){for(var r=[],i=0;i<t.length;i++)r.push(e.get(t[i]));for(i=0;i<r.length;i++)e.set(i,r[i]);e.length=t.length},t.reflowSmallerGetNewLineLengths=function(e,t,r){for(var n=[],o=e.map(function(r,n){return i(e,n,t)}).reduce(function(e,t){return e+t}),s=0,a=0,c=0;c<o;){if(o-c<r){n.push(o-c);break}s+=r;var l=i(e,a,t);s>l&&(s-=l,a++);var h=2===e[a].getWidth(s-1);h&&s--;var u=h?r-1:r;n.push(u),c+=u}return n},t.getWrappedLineTrimmedLength=i},function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),s=function(e){function t(r){var i=e.call(this)||this;return i.line=r,i._id=t._nextId++,i.isDisposed=!1,i._onDispose=new o.EventEmitter,i}return n(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onDispose",{get:function(){return this._onDispose.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire())},t._nextId=1,t}(r(2).Disposable);t.Marker=s},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),s=r(29),a=function(){function e(e,t){this._renderService=e,this._charSizeService=t}return e.prototype.getCoords=function(e,t,r,i,n){return s.getCoords(e,t,r,i,this._charSizeService.hasValidSize,this._renderService.dimensions.actualCellWidth,this._renderService.dimensions.actualCellHeight,n)},e.prototype.getRawByteCoords=function(e,t,r,i){var n=this.getCoords(e,t,r,i);return s.getRawByteCoords(n)},e=i([n(0,o.IRenderService),n(1,o.ICharSizeService)],e)}();t.MouseService=a},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),s=r(1),a=r(32),c=Object.freeze({applicationCursorKeys:!1}),l=function(){function e(e,t,r,i){this._scrollToBottom=e,this._bufferService=t,this._logService=r,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=new s.EventEmitter,this._onUserInput=new s.EventEmitter,this._onBinary=new s.EventEmitter,this.decPrivateModes=a.clone(c)}return Object.defineProperty(e.prototype,"onData",{get:function(){return this._onData.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onUserInput",{get:function(){return this._onUserInput.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onBinary",{get:function(){return this._onBinary.event},enumerable:!0,configurable:!0}),e.prototype.reset=function(){this.decPrivateModes=a.clone(c)},e.prototype.triggerDataEvent=function(e,t){if(void 0===t&&(t=!1),!this._optionsService.options.disableStdin){var r=this._bufferService.buffer;r.ybase!==r.ydisp&&this._scrollToBottom(),t&&this._onUserInput.fire(),this._logService.debug('sending data "'+e+'"',function(){return e.split("").map(function(e){return e.charCodeAt(0)})}),this._onData.fire(e)}},e.prototype.triggerBinaryEvent=function(e){this._optionsService.options.disableStdin||(this._logService.debug('sending binary "'+e+'"',function(){return e.split("").map(function(e){return e.charCodeAt(0)})}),this._onBinary.fire(e))},e=i([n(1,o.IBufferService),n(2,o.ILogService),n(3,o.IOptionsService)],e)}();t.CoreService=l},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}},o=this&&this.__spreadArrays||function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var i=Array(e),n=0;for(t=0;t<r;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,n++)i[n]=o[s];return i};Object.defineProperty(t,"__esModule",{value:!0});var s,a=r(0);!function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.OFF=4]="OFF"}(s=t.LogLevel||(t.LogLevel={}));var c={debug:s.DEBUG,info:s.INFO,warn:s.WARN,error:s.ERROR,off:s.OFF},l=function(){function e(e){var t=this;this._optionsService=e,this._updateLogLevel(),this._optionsService.onOptionChange(function(e){"logLevel"===e&&t._updateLogLevel()})}return e.prototype._updateLogLevel=function(){this._logLevel=c[this._optionsService.options.logLevel]},e.prototype._evalLazyOptionalParams=function(e){for(var t=0;t<e.length;t++)"function"==typeof e[t]&&(e[t]=e[t]())},e.prototype._log=function(e,t,r){this._evalLazyOptionalParams(r),e.call.apply(e,o([console,"xterm.js: "+t],r))},e.prototype.debug=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];this._logLevel<=s.DEBUG&&this._log(console.log,e,t)},e.prototype.info=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];this._logLevel<=s.INFO&&this._log(console.info,e,t)},e.prototype.warn=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];this._logLevel<=s.WARN&&this._log(console.warn,e,t)},e.prototype.error=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];this._logLevel<=s.ERROR&&this._log(console.error,e,t)},e=i([n(0,a.IOptionsService)],e)}();t.LogService=l},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),s=function(){function e(e){this._bufferService=e,this.clearRange()}return Object.defineProperty(e.prototype,"start",{get:function(){return this._start},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"end",{get:function(){return this._end},enumerable:!0,configurable:!0}),e.prototype.clearRange=function(){this._start=this._bufferService.buffer.y,this._end=this._bufferService.buffer.y},e.prototype.markDirty=function(e){e<this._start?this._start=e:e>this._end&&(this._end=e)},e.prototype.markRangeDirty=function(e,t){if(e>t){var r=e;e=t,t=r}e<this._start&&(this._start=e),t>this._end&&(this._end=t)},e.prototype.markAllDirty=function(){this.markRangeDirty(0,this._bufferService.rows-1)},e=i([n(0,o.IBufferService)],e)}();t.DirtyRowService=s},function(e,t,r){"use strict";var i=this&&this.__spreadArrays||function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var i=Array(e),n=0;for(t=0;t<r;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,n++)i[n]=o[s];return i};Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(14),s=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._entries=new Map;for(var r=0,i=e;r<i.length;r++){var n=i[r],o=n[0],s=n[1];this.set(o,s)}}return e.prototype.set=function(e,t){var r=this._entries.get(e);return this._entries.set(e,t),r},e.prototype.forEach=function(e){this._entries.forEach(function(t,r){return e(r,t)})},e.prototype.has=function(e){return this._entries.has(e)},e.prototype.get=function(e){return this._entries.get(e)},e}();t.ServiceCollection=s;var a=function(){function e(){this._services=new s,this._services.set(n.IInstantiationService,this)}return e.prototype.setService=function(e,t){this._services.set(e,t)},e.prototype.createInstance=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];for(var n=o.getServiceDependencies(e).sort(function(e,t){return e.index-t.index}),s=[],a=0,c=n;a<c.length;a++){var l=c[a],h=this._services.get(l.id);if(!h)throw new Error("[createInstance] "+e.name+" depends on UNKNOWN service "+l.id+".");s.push(h)}var u=n.length>0?n[0].index:t.length;if(t.length!==u)throw new Error("[createInstance] First service dependency of "+e.name+" at position "+(u+1)+" conflicts with "+t.length+" static arguments");return new(e.bind.apply(e,i([void 0],i(t,s))))},e}();t.InstantiationService=a},function(e,t,r){"use strict";var i=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,r,s):n(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s},n=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),s=r(1),a={NONE:{events:0,restrict:function(){return!1}},X10:{events:1,restrict:function(e){return 4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)}},VT200:{events:19,restrict:function(e){return 32!==e.action}},DRAG:{events:23,restrict:function(e){return 32!==e.action||3!==e.button}},ANY:{events:31,restrict:function(e){return!0}}};function c(e,t){var r=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(r|=64,r|=e.action):(r|=3&e.button,4&e.button&&(r|=64),8&e.button&&(r|=128),32===e.action?r|=32:0!==e.action||t||(r|=3)),r}var l=String.fromCharCode,h={DEFAULT:function(e){var t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":"\e[M"+l(t[0])+l(t[1])+l(t[2])},SGR:function(e){var t=0===e.action&&4!==e.button?"m":"M";return"\e[<"+c(e,!0)+";"+e.col+";"+e.row+t}},u=function(){function e(e,t){var r=this;this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._onProtocolChange=new s.EventEmitter,this._lastEvent=null,Object.keys(a).forEach(function(e){return r.addProtocol(e,a[e])}),Object.keys(h).forEach(function(e){return r.addEncoding(e,h[e])}),this.reset()}return e.prototype.addProtocol=function(e,t){this._protocols[e]=t},e.prototype.addEncoding=function(e,t){this._encodings[e]=t},Object.defineProperty(e.prototype,"activeProtocol",{get:function(){return this._activeProtocol},set:function(e){if(!this._protocols[e])throw new Error('unknown protocol "'+e+'"');this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeEncoding",{get:function(){return this._activeEncoding},set:function(e){if(!this._encodings[e])throw new Error('unknown encoding "'+e+'"');this._activeEncoding=e},enumerable:!0,configurable:!0}),e.prototype.reset=function(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null},Object.defineProperty(e.prototype,"onProtocolChange",{get:function(){return this._onProtocolChange.event},enumerable:!0,configurable:!0}),e.prototype.triggerMouseEvent=function(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._compareEvents(this._lastEvent,e))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;var t=this._encodings[this._activeEncoding](e);return t&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0},e.prototype.explainEvents=function(e){return{DOWN:!!(1&e),UP:!!(2&e),DRAG:!!(4&e),MOVE:!!(8&e),WHEEL:!!(16&e)}},e.prototype._compareEvents=function(e,t){return e.col===t.col&&(e.row===t.row&&(e.button===t.button&&(e.action===t.action&&(e.ctrl===t.ctrl&&(e.alt===t.alt&&e.shift===t.shift)))))},e=i([n(0,o.IBufferService),n(1,o.ICoreService)],e)}();t.CoreMouseService=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0}return e.prototype.writeSync=function(e){if(this._writeBuffer.length){for(var t=this._bufferOffset;t<this._writeBuffer.length;++t){var r=this._writeBuffer[t],i=this._callbacks[t];this._action(r),i&&i()}this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=2147483647}this._action(e)},e.prototype.write=function(e,t){var r=this;if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");this._writeBuffer.length||(this._bufferOffset=0,setTimeout(function(){return r._innerWrite()})),this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)},e.prototype._innerWrite=function(){for(var e=this,t=Date.now();this._writeBuffer.length>this._bufferOffset;){var r=this._writeBuffer[this._bufferOffset],i=this._callbacks[this._bufferOffset];if(this._bufferOffset++,this._action(r),this._pendingData-=r.length,i&&i(),Date.now()-t>=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(function(){return e._innerWrite()},0)):(this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0)},e}();t.WriteBuffer=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._textarea=e}return Object.defineProperty(e.prototype,"isFocused",{get:function(){return document.activeElement===this._textarea&&document.hasFocus()},enumerable:!0,configurable:!0}),e}();t.CoreBrowserService=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._addons=[]}return e.prototype.dispose=function(){for(var e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()},e.prototype.loadAddon=function(e,t){var r=this,i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=function(){return r._wrappedAddonDispose(i)},t.activate(e)},e.prototype._wrappedAddonDispose=function(e){if(!e.isDisposed){for(var t=-1,r=0;r<this._addons.length;r++)if(this._addons[r]===e){t=r;break}if(-1===t)throw new Error("Could not dispose an addon that has not been loaded");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}},e}();t.AddonManager=i}])});
+//# sourceMappingURL=xterm.js.map
\ No newline at end of file