// monaco/editor.main.js
!function(e) {
function t(t2) {
for (var n2, o2, r2 = t2[0], s2 = t2[1], a2 = 0, c = []; a2 < r2.length; a2++)
o2 = r2[a2], Object.prototype.hasOwnProperty.call(i, o2) && i[o2] && c.push(i[o2][0]), i[o2] = 0;
for (n2 in s2)
Object.prototype.hasOwnProperty.call(s2, n2) && (e[n2] = s2[n2]);
for (l && l(t2); c.length; )
c.shift()();
}
var n = {}, i = {0: 0};
function o(t2) {
if (n[t2])
return n[t2].exports;
var i2 = n[t2] = {i: t2, l: false, exports: {}};
return e[t2].call(i2.exports, i2, i2.exports, o), i2.l = true, i2.exports;
}
o.e = function() {
return Promise.resolve();
}, o.m = e, o.c = n, o.d = function(e2, t2, n2) {
o.o(e2, t2) || Object.defineProperty(e2, t2, {enumerable: true, get: n2});
}, o.r = function(e2) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e2, "__esModule", {value: true});
}, o.t = function(e2, t2) {
if (1 & t2 && (e2 = o(e2)), 8 & t2)
return e2;
if (4 & t2 && "object" == typeof e2 && e2 && e2.__esModule)
return e2;
var n2 = Object.create(null);
if (o.r(n2), Object.defineProperty(n2, "default", {enumerable: true, value: e2}), 2 & t2 && "string" != typeof e2)
for (var i2 in e2)
o.d(n2, i2, function(t3) {
return e2[t3];
}.bind(null, i2));
return n2;
}, o.n = function(e2) {
var t2 = e2 && e2.__esModule ? function() {
return e2.default;
} : function() {
return e2;
};
return o.d(t2, "a", t2), t2;
}, o.o = function(e2, t2) {
return Object.prototype.hasOwnProperty.call(e2, t2);
}, o.p = "/", o.oe = function(e2) {
throw console.error(e2), e2;
};
var r = self.webpackJsonp = self.webpackJsonp || [], s = r.push.bind(r);
r.push = t, r = r.slice();
for (var a = 0; a < r.length; a++)
t(r[a]);
var l = s;
o(o.s = 342);
}([function(e, t, n) {
"use strict";
function i(e2, t2, ...n2) {
return function(e3, t3) {
let n3;
return n3 = 0 === t3.length ? e3 : e3.replace(/\{(\d+)\}/g, function(e4, n4) {
const i2 = n4[0];
return void 0 !== t3[i2] ? t3[i2] : e4;
}), n3;
}(t2, n2);
}
n.d(t, "a", function() {
return i;
});
}, function(e, t, n) {
"use strict";
n.d(t, "s", function() {
return g;
}), n.d(t, "S", function() {
return f;
}), n.d(t, "N", function() {
return b;
}), n.d(t, "I", function() {
return v;
}), n.d(t, "e", function() {
return w;
}), n.d(t, "f", function() {
return y;
}), n.d(t, "Q", function() {
return C;
}), n.d(t, "R", function() {
return x;
}), n.d(t, "ab", function() {
return S;
}), n.d(t, "i", function() {
return E;
}), n.d(t, "n", function() {
return L;
}), n.d(t, "m", function() {
return N;
}), n.d(t, "g", function() {
return I;
}), n.d(t, "h", function() {
return O;
}), n.d(t, "j", function() {
return D;
}), n.d(t, "k", function() {
return A;
}), n.d(t, "W", function() {
return R;
}), n.d(t, "Y", function() {
return M;
}), n.d(t, "l", function() {
return B;
}), n.d(t, "z", function() {
return j;
}), n.d(t, "y", function() {
return V;
}), n.d(t, "F", function() {
return q;
}), n.d(t, "C", function() {
return $;
}), n.d(t, "d", function() {
return K;
}), n.d(t, "H", function() {
return G;
}), n.d(t, "B", function() {
return Y;
}), n.d(t, "A", function() {
return Z;
}), n.d(t, "G", function() {
return X;
}), n.d(t, "L", function() {
return Q;
}), n.d(t, "w", function() {
return J;
}), n.d(t, "J", function() {
return ee;
}), n.d(t, "O", function() {
return ne;
}), n.d(t, "E", function() {
return ie;
}), n.d(t, "x", function() {
return oe;
}), n.d(t, "v", function() {
return re;
}), n.d(t, "u", function() {
return le;
}), n.d(t, "P", function() {
return ce;
}), n.d(t, "M", function() {
return de;
}), n.d(t, "c", function() {
return he;
}), n.d(t, "b", function() {
return ue;
}), n.d(t, "X", function() {
return pe;
}), n.d(t, "V", function() {
return me;
}), n.d(t, "bb", function() {
return fe;
}), n.d(t, "p", function() {
return be;
}), n.d(t, "U", function() {
return ve;
}), n.d(t, "a", function() {
return Ce;
}), n.d(t, "Z", function() {
return xe;
}), n.d(t, "K", function() {
return Se;
}), n.d(t, "T", function() {
return ke;
}), n.d(t, "D", function() {
return Ee;
}), n.d(t, "t", function() {
return Te;
}), n.d(t, "cb", function() {
return Le;
}), n.d(t, "o", function() {
return Ne;
}), n.d(t, "r", function() {
return Ie;
}), n.d(t, "q", function() {
return Oe;
});
var i = n(34), o = n(44), r = n(67), s = n(69), a = n(20), l = n(13), c = n(6), d = n(2), h = n(11), u = n(15), p = n(45), m = n(138);
function g(e2) {
for (; e2.firstChild; )
e2.removeChild(e2.firstChild);
}
function f(e2) {
e2.parentNode && e2.parentNode.removeChild(e2);
}
function b(e2) {
for (; e2; ) {
if (e2 === document.body)
return true;
e2 = e2.parentNode || e2.host;
}
return false;
}
const _ = new class {
hasClass(e2, t2) {
return Boolean(t2) && e2.classList && e2.classList.contains(t2);
}
addClasses(e2, ...t2) {
t2.forEach((t3) => t3.split(" ").forEach((t4) => this.addClass(e2, t4)));
}
addClass(e2, t2) {
t2 && e2.classList && e2.classList.add(t2);
}
removeClass(e2, t2) {
t2 && e2.classList && e2.classList.remove(t2);
}
removeClasses(e2, ...t2) {
t2.forEach((t3) => t3.split(" ").forEach((t4) => this.removeClass(e2, t4)));
}
toggleClass(e2, t2, n2) {
e2.classList && e2.classList.toggle(t2, n2);
}
}(), v = _.hasClass.bind(_), w = _.addClass.bind(_), y = _.addClasses.bind(_), C = _.removeClass.bind(_), x = _.removeClasses.bind(_), S = _.toggleClass.bind(_);
class k {
constructor(e2, t2, n2, i2) {
this._node = e2, this._type = t2, this._handler = n2, this._options = i2 || false, this._node.addEventListener(this._type, this._handler, this._options);
}
dispose() {
this._handler && (this._node.removeEventListener(this._type, this._handler, this._options), this._node = null, this._handler = null);
}
}
function E(e2, t2, n2, i2) {
return new k(e2, t2, n2, i2);
}
function T(e2) {
return function(t2) {
return e2(new s.a(t2));
};
}
let L = function(e2, t2, n2, i2) {
let o2 = n2;
return "click" === t2 || "mousedown" === t2 ? o2 = T(n2) : "keydown" !== t2 && "keypress" !== t2 && "keyup" !== t2 || (o2 = function(e3) {
return function(t3) {
return e3(new r.a(t3));
};
}(n2)), E(e2, t2, o2, i2);
}, N = function(e2, t2, n2) {
return I(e2, T(t2), n2);
};
function I(e2, t2, n2) {
return E(e2, h.c && m.a.pointerEvents ? he.POINTER_DOWN : he.MOUSE_DOWN, t2, n2);
}
function O(e2, t2, n2) {
return E(e2, h.c && m.a.pointerEvents ? he.POINTER_UP : he.MOUSE_UP, t2, n2);
}
function D(e2, t2) {
return E(e2, "mouseout", (n2) => {
let i2 = n2.relatedTarget;
for (; i2 && i2 !== e2; )
i2 = i2.parentNode;
i2 !== e2 && t2(n2);
});
}
function A(e2, t2) {
return E(e2, "pointerout", (n2) => {
let i2 = n2.relatedTarget;
for (; i2 && i2 !== e2; )
i2 = i2.parentNode;
i2 !== e2 && t2(n2);
});
}
let R, M, P = null;
class F {
constructor(e2, t2 = 0) {
this._runner = e2, this.priority = t2, this._canceled = false;
}
dispose() {
this._canceled = true;
}
execute() {
if (!this._canceled)
try {
this._runner();
} catch (e2) {
Object(l.e)(e2);
}
}
static sort(e2, t2) {
return t2.priority - e2.priority;
}
}
!function() {
let e2 = [], t2 = null, n2 = false, i2 = false, o2 = () => {
for (n2 = false, t2 = e2, e2 = [], i2 = true; t2.length > 0; ) {
t2.sort(F.sort), t2.shift().execute();
}
i2 = false;
};
M = (t3, i3 = 0) => {
let r2 = new F(t3, i3);
return e2.push(r2), n2 || (n2 = true, function(e3) {
if (!P) {
const e4 = (e5) => setTimeout(() => e5(new Date().getTime()), 0);
P = self.requestAnimationFrame || self.msRequestAnimationFrame || self.webkitRequestAnimationFrame || self.mozRequestAnimationFrame || self.oRequestAnimationFrame || e4;
}
P.call(self, e3);
}(o2)), r2;
}, R = (e3, n3) => {
if (i2) {
let i3 = new F(e3, n3);
return t2.push(i3), i3;
}
return M(e3, n3);
};
}();
const W = function(e2, t2) {
return t2;
};
class z extends d.a {
constructor(e2, t2, n2, i2 = W, o2 = 16) {
super();
let r2 = null, s2 = 0, l2 = this._register(new a.e()), c2 = () => {
s2 = new Date().getTime(), n2(r2), r2 = null;
};
this._register(E(e2, t2, (e3) => {
r2 = i2(r2, e3);
let t3 = new Date().getTime() - s2;
t3 >= o2 ? (l2.cancel(), c2()) : l2.setIfNotSet(c2, o2 - t3);
}));
}
}
function B(e2, t2, n2, i2, o2) {
return new z(e2, t2, n2, i2, o2);
}
function j(e2) {
return document.defaultView.getComputedStyle(e2, null);
}
function V(e2) {
if (e2 !== document.body)
return new H(e2.clientWidth, e2.clientHeight);
if (h.c && window.visualViewport) {
const e3 = window.visualViewport.width, t2 = window.visualViewport.height - (i.k ? 24 : 0);
return new H(e3, t2);
}
if (window.innerWidth && window.innerHeight)
return new H(window.innerWidth, window.innerHeight);
if (document.body && document.body.clientWidth && document.body.clientHeight)
return new H(document.body.clientWidth, document.body.clientHeight);
if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight)
return new H(document.documentElement.clientWidth, document.documentElement.clientHeight);
throw new Error("Unable to figure out browser width and height");
}
class U {
static convertToPixels(e2, t2) {
return parseFloat(t2) || 0;
}
static getDimension(e2, t2, n2) {
let i2 = j(e2), o2 = "0";
return i2 && (o2 = i2.getPropertyValue ? i2.getPropertyValue(t2) : i2.getAttribute(n2)), U.convertToPixels(e2, o2);
}
static getBorderLeftWidth(e2) {
return U.getDimension(e2, "border-left-width", "borderLeftWidth");
}
static getBorderRightWidth(e2) {
return U.getDimension(e2, "border-right-width", "borderRightWidth");
}
static getBorderTopWidth(e2) {
return U.getDimension(e2, "border-top-width", "borderTopWidth");
}
static getBorderBottomWidth(e2) {
return U.getDimension(e2, "border-bottom-width", "borderBottomWidth");
}
static getPaddingLeft(e2) {
return U.getDimension(e2, "padding-left", "paddingLeft");
}
static getPaddingRight(e2) {
return U.getDimension(e2, "padding-right", "paddingRight");
}
static getPaddingTop(e2) {
return U.getDimension(e2, "padding-top", "paddingTop");
}
static getPaddingBottom(e2) {
return U.getDimension(e2, "padding-bottom", "paddingBottom");
}
static getMarginLeft(e2) {
return U.getDimension(e2, "margin-left", "marginLeft");
}
static getMarginTop(e2) {
return U.getDimension(e2, "margin-top", "marginTop");
}
static getMarginRight(e2) {
return U.getDimension(e2, "margin-right", "marginRight");
}
static getMarginBottom(e2) {
return U.getDimension(e2, "margin-bottom", "marginBottom");
}
}
class H {
constructor(e2, t2) {
this.width = e2, this.height = t2;
}
}
function q(e2) {
let t2 = e2.offsetParent, n2 = e2.offsetTop, i2 = e2.offsetLeft;
for (; null !== (e2 = e2.parentNode) && e2 !== document.body && e2 !== document.documentElement; ) {
n2 -= e2.scrollTop;
const o2 = te(e2) ? null : j(e2);
o2 && (i2 -= "rtl" !== o2.direction ? e2.scrollLeft : -e2.scrollLeft), e2 === t2 && (i2 += U.getBorderLeftWidth(e2), n2 += U.getBorderTopWidth(e2), n2 += e2.offsetTop, i2 += e2.offsetLeft, t2 = e2.offsetParent);
}
return {left: i2, top: n2};
}
function $(e2) {
let t2 = e2.getBoundingClientRect();
return {left: t2.left + K.scrollX, top: t2.top + K.scrollY, width: t2.width, height: t2.height};
}
const K = new class {
get scrollX() {
return "number" == typeof window.scrollX ? window.scrollX : document.body.scrollLeft + document.documentElement.scrollLeft;
}
get scrollY() {
return "number" == typeof window.scrollY ? window.scrollY : document.body.scrollTop + document.documentElement.scrollTop;
}
}();
function G(e2) {
let t2 = U.getMarginLeft(e2) + U.getMarginRight(e2);
return e2.offsetWidth + t2;
}
function Y(e2) {
let t2 = U.getBorderLeftWidth(e2) + U.getBorderRightWidth(e2), n2 = U.getPaddingLeft(e2) + U.getPaddingRight(e2);
return e2.offsetWidth - t2 - n2;
}
function Z(e2) {
let t2 = U.getBorderTopWidth(e2) + U.getBorderBottomWidth(e2), n2 = U.getPaddingTop(e2) + U.getPaddingBottom(e2);
return e2.offsetHeight - t2 - n2;
}
function X(e2) {
let t2 = U.getMarginTop(e2) + U.getMarginBottom(e2);
return e2.offsetHeight + t2;
}
function Q(e2, t2) {
for (; e2; ) {
if (e2 === t2)
return true;
e2 = e2.parentNode;
}
return false;
}
function J(e2, t2, n2) {
for (; e2 && e2.nodeType === e2.ELEMENT_NODE; ) {
if (v(e2, t2))
return e2;
if (n2) {
if ("string" == typeof n2) {
if (v(e2, n2))
return null;
} else if (e2 === n2)
return null;
}
e2 = e2.parentNode;
}
return null;
}
function ee(e2, t2, n2) {
return !!J(e2, t2, n2);
}
function te(e2) {
return e2 && !!e2.host && !!e2.mode;
}
function ne(e2) {
return !!ie(e2);
}
function ie(e2) {
for (; e2.parentNode; ) {
if (e2 === document.body)
return null;
e2 = e2.parentNode;
}
return te(e2) ? e2 : null;
}
function oe() {
let e2 = document.activeElement;
for (; null == e2 ? void 0 : e2.shadowRoot; )
e2 = e2.shadowRoot.activeElement;
return e2;
}
function re(e2 = document.getElementsByTagName("head")[0]) {
let t2 = document.createElement("style");
return t2.type = "text/css", t2.media = "screen", e2.appendChild(t2), t2;
}
let se = null;
function ae() {
return se || (se = re()), se;
}
function le(e2, t2, n2 = ae()) {
n2 && t2 && n2.sheet.insertRule(e2 + "{" + t2 + "}", 0);
}
function ce(e2, t2 = ae()) {
if (!t2)
return;
let n2 = function(e3) {
return e3 && e3.sheet && e3.sheet.rules ? e3.sheet.rules : e3 && e3.sheet && e3.sheet.cssRules ? e3.sheet.cssRules : [];
}(t2), i2 = [];
for (let t3 = 0; t3 < n2.length; t3++) {
-1 !== n2[t3].selectorText.indexOf(e2) && i2.push(t3);
}
for (let e3 = i2.length - 1; e3 >= 0; e3--)
t2.sheet.deleteRule(i2[e3]);
}
function de(e2) {
return "object" == typeof HTMLElement ? e2 instanceof HTMLElement : e2 && "object" == typeof e2 && 1 === e2.nodeType && "string" == typeof e2.nodeName;
}
const he = {CLICK: "click", AUXCLICK: "auxclick", DBLCLICK: "dblclick", MOUSE_UP: "mouseup", MOUSE_DOWN: "mousedown", MOUSE_OVER: "mouseover", MOUSE_MOVE: "mousemove", MOUSE_OUT: "mouseout", MOUSE_ENTER: "mouseenter", MOUSE_LEAVE: "mouseleave", MOUSE_WHEEL: i.f ? "mousewheel" : "wheel", POINTER_UP: "pointerup", POINTER_DOWN: "pointerdown", POINTER_MOVE: "pointermove", CONTEXT_MENU: "contextmenu", WHEEL: "wheel", KEY_DOWN: "keydown", KEY_PRESS: "keypress", KEY_UP: "keyup", LOAD: "load", BEFORE_UNLOAD: "beforeunload", UNLOAD: "unload", ABORT: "abort", ERROR: "error", RESIZE: "resize", SCROLL: "scroll", FULLSCREEN_CHANGE: "fullscreenchange", WK_FULLSCREEN_CHANGE: "webkitfullscreenchange", SELECT: "select", CHANGE: "change", SUBMIT: "submit", RESET: "reset", FOCUS: "focus", FOCUS_IN: "focusin", FOCUS_OUT: "focusout", BLUR: "blur", INPUT: "input", STORAGE: "storage", DRAG_START: "dragstart", DRAG: "drag", DRAG_ENTER: "dragenter", DRAG_LEAVE: "dragleave", DRAG_OVER: "dragover", DROP: "drop", DRAG_END: "dragend", ANIMATION_START: i.l ? "webkitAnimationStart" : "animationstart", ANIMATION_END: i.l ? "webkitAnimationEnd" : "animationend", ANIMATION_ITERATION: i.l ? "webkitAnimationIteration" : "animationiteration"}, ue = {stop: function(e2, t2) {
e2.preventDefault ? e2.preventDefault() : e2.returnValue = false, t2 && (e2.stopPropagation ? e2.stopPropagation() : e2.cancelBubble = true);
}};
function pe(e2) {
let t2 = [];
for (let n2 = 0; e2 && e2.nodeType === e2.ELEMENT_NODE; n2++)
t2[n2] = e2.scrollTop, e2 = e2.parentNode;
return t2;
}
function me(e2, t2) {
for (let n2 = 0; e2 && e2.nodeType === e2.ELEMENT_NODE; n2++)
e2.scrollTop !== t2[n2] && (e2.scrollTop = t2[n2]), e2 = e2.parentNode;
}
class ge extends d.a {
constructor(e2) {
super(), this._onDidFocus = this._register(new c.a()), this.onDidFocus = this._onDidFocus.event, this._onDidBlur = this._register(new c.a()), this.onDidBlur = this._onDidBlur.event;
let t2 = Q(document.activeElement, e2), n2 = false;
const i2 = () => {
n2 = false, t2 || (t2 = true, this._onDidFocus.fire());
}, r2 = () => {
t2 && (n2 = true, window.setTimeout(() => {
n2 && (n2 = false, t2 = false, this._onDidBlur.fire());
}, 0));
};
this._refreshStateHandler = () => {
Q(document.activeElement, e2) !== t2 && (t2 ? r2() : i2());
}, this._register(Object(o.a)(e2, he.FOCUS, true)(i2)), this._register(Object(o.a)(e2, he.BLUR, true)(r2));
}
}
function fe(e2) {
return new ge(e2);
}
function be(e2, ...t2) {
return t2.forEach((t3) => e2.appendChild(t3)), t2[t2.length - 1];
}
const _e = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;
function ve(e2, ...t2) {
e2.innerText = "", Object(u.d)(t2).forEach((t3) => {
t3 instanceof Node ? e2.appendChild(t3) : e2.appendChild(document.createTextNode(t3));
});
}
var we;
function ye(e2, t2, n2, ...i2) {
let o2 = _e.exec(t2);
if (!o2)
throw new Error("Bad use of emmet");
n2 = Object.assign({}, n2 || {});
let r2, s2 = o2[1] || "div";
return r2 = e2 !== we.HTML ? document.createElementNS(e2, s2) : document.createElement(s2), o2[3] && (r2.id = o2[3]), o2[4] && (r2.className = o2[4].replace(/\./g, " ").trim()), Object.keys(n2).forEach((e3) => {
const t3 = n2[e3];
void 0 !== t3 && (/^on\w+$/.test(e3) ? r2[e3] = t3 : "selected" === e3 ? t3 && r2.setAttribute(e3, "true") : r2.setAttribute(e3, t3));
}), Object(u.d)(i2).forEach((e3) => {
e3 instanceof Node ? r2.appendChild(e3) : r2.appendChild(document.createTextNode(e3));
}), r2;
}
function Ce(e2, t2, ...n2) {
return ye(we.HTML, e2, t2, ...n2);
}
function xe(...e2) {
for (let t2 of e2)
t2.style.display = "", t2.removeAttribute("aria-hidden");
}
function Se(...e2) {
for (let t2 of e2)
t2.style.display = "none", t2.setAttribute("aria-hidden", "true");
}
function ke(e2) {
if (e2 && e2.hasAttribute("tabIndex")) {
if (document.activeElement === e2) {
let t2 = function(e3, t3) {
for (; e3 && e3.nodeType === e3.ELEMENT_NODE; ) {
if (e3 instanceof HTMLElement && e3.hasAttribute(t3))
return e3;
e3 = e3.parentNode;
}
return null;
}(e2.parentElement, "tabIndex");
t2 && t2.focus();
}
e2.removeAttribute("tabindex");
}
}
function Ee(e2) {
return Array.prototype.slice.call(document.getElementsByTagName(e2), 0);
}
function Te(e2) {
const t2 = window.devicePixelRatio * e2;
return Math.max(1, Math.floor(t2)) / window.devicePixelRatio;
}
function Le(e2) {
if (h.g || i.g)
window.open(e2);
else {
let t2 = window.open();
t2 && (t2.opener = null, t2.location.href = e2);
}
}
function Ne(e2) {
const t2 = () => {
e2(), n2 = M(t2);
};
let n2 = M(t2);
return Object(d.h)(() => n2.dispose());
}
function Ie(e2) {
return e2 && p.b.vscodeRemote === e2.scheme ? p.a.rewrite(e2) : e2;
}
function Oe(e2) {
return e2 ? `url('${Ie(e2).toString(true).replace(/'/g, "%27")}')` : "url('')";
}
!function(e2) {
e2.HTML = "http://www.w3.org/1999/xhtml", e2.SVG = "http://www.w3.org/2000/svg";
}(we || (we = {})), Ce.SVG = function(e2, t2, ...n2) {
return ye(we.SVG, e2, t2, ...n2);
}, p.a.setPreferredWebSchema(/^https:/.test(window.location.href) ? "https" : "http");
}, function(e, t, n) {
"use strict";
n.d(t, "g", function() {
return s;
}), n.d(t, "f", function() {
return a;
}), n.d(t, "e", function() {
return l;
}), n.d(t, "h", function() {
return c;
}), n.d(t, "b", function() {
return d;
}), n.d(t, "a", function() {
return h;
}), n.d(t, "d", function() {
return u;
}), n.d(t, "c", function() {
return p;
});
var i = n(37);
function o(e2) {
}
class r extends Error {
constructor(e2) {
super(`Encounter errors while disposing of store. Errors: [${e2.join(", ")}]`), this.errors = e2;
}
}
function s(e2) {
return "function" == typeof e2.dispose && 0 === e2.dispose.length;
}
function a(e2) {
if (i.a.is(e2)) {
let t2 = [];
for (const n2 of e2)
if (n2)
try {
n2.dispose();
} catch (e3) {
t2.push(e3);
}
if (1 === t2.length)
throw t2[0];
if (t2.length > 1)
throw new r(t2);
return Array.isArray(e2) ? [] : e2;
}
if (e2)
return e2.dispose(), e2;
}
function l(...e2) {
return e2.forEach(o), {dispose: () => a(e2)};
}
function c(e2) {
const t2 = {dispose: () => {
e2();
}};
return t2;
}
class d {
constructor() {
this._toDispose = new Set(), this._isDisposed = false;
}
dispose() {
this._isDisposed || (this._isDisposed = true, this.clear());
}
clear() {
try {
a(this._toDispose.values());
} finally {
this._toDispose.clear();
}
}
add(e2) {
if (!e2)
return e2;
if (e2 === this)
throw new Error("Cannot register a disposable on itself!");
return this._isDisposed ? d.DISABLE_DISPOSED_WARNING || console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack) : this._toDispose.add(e2), e2;
}
}
d.DISABLE_DISPOSED_WARNING = false;
class h {
constructor() {
this._store = new d();
}
dispose() {
this._store.dispose();
}
_register(e2) {
if (e2 === this)
throw new Error("Cannot register a disposable on itself!");
return this._store.add(e2);
}
}
h.None = Object.freeze({dispose() {
}});
class u {
constructor() {
this._isDisposed = false;
}
get value() {
return this._isDisposed ? void 0 : this._value;
}
set value(e2) {
this._isDisposed || e2 === this._value || (this._value && this._value.dispose(), this._value = e2);
}
clear() {
this.value = void 0;
}
dispose() {
this._isDisposed = true, this._value && this._value.dispose(), this._value = void 0;
}
}
class p {
constructor(e2) {
this.object = e2;
}
dispose() {
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return o;
});
var i = n(9);
class o {
constructor(e2, t2, n2, i2) {
e2 > n2 || e2 === n2 && t2 > i2 ? (this.startLineNumber = n2, this.startColumn = i2, this.endLineNumber = e2, this.endColumn = t2) : (this.startLineNumber = e2, this.startColumn = t2, this.endLineNumber = n2, this.endColumn = i2);
}
isEmpty() {
return o.isEmpty(this);
}
static isEmpty(e2) {
return e2.startLineNumber === e2.endLineNumber && e2.startColumn === e2.endColumn;
}
containsPosition(e2) {
return o.containsPosition(this, e2);
}
static containsPosition(e2, t2) {
return !(t2.lineNumber < e2.startLineNumber || t2.lineNumber > e2.endLineNumber) && (!(t2.lineNumber === e2.startLineNumber && t2.column < e2.startColumn) && !(t2.lineNumber === e2.endLineNumber && t2.column > e2.endColumn));
}
containsRange(e2) {
return o.containsRange(this, e2);
}
static containsRange(e2, t2) {
return !(t2.startLineNumber < e2.startLineNumber || t2.endLineNumber < e2.startLineNumber) && (!(t2.startLineNumber > e2.endLineNumber || t2.endLineNumber > e2.endLineNumber) && (!(t2.startLineNumber === e2.startLineNumber && t2.startColumn < e2.startColumn) && !(t2.endLineNumber === e2.endLineNumber && t2.endColumn > e2.endColumn)));
}
strictContainsRange(e2) {
return o.strictContainsRange(this, e2);
}
static strictContainsRange(e2, t2) {
return !(t2.startLineNumber < e2.startLineNumber || t2.endLineNumber < e2.startLineNumber) && (!(t2.startLineNumber > e2.endLineNumber || t2.endLineNumber > e2.endLineNumber) && (!(t2.startLineNumber === e2.startLineNumber && t2.startColumn <= e2.startColumn) && !(t2.endLineNumber === e2.endLineNumber && t2.endColumn >= e2.endColumn)));
}
plusRange(e2) {
return o.plusRange(this, e2);
}
static plusRange(e2, t2) {
let n2, i2, r, s;
return t2.startLineNumber < e2.startLineNumber ? (n2 = t2.startLineNumber, i2 = t2.startColumn) : t2.startLineNumber === e2.startLineNumber ? (n2 = t2.startLineNumber, i2 = Math.min(t2.startColumn, e2.startColumn)) : (n2 = e2.startLineNumber, i2 = e2.startColumn), t2.endLineNumber > e2.endLineNumber ? (r = t2.endLineNumber, s = t2.endColumn) : t2.endLineNumber === e2.endLineNumber ? (r = t2.endLineNumber, s = Math.max(t2.endColumn, e2.endColumn)) : (r = e2.endLineNumber, s = e2.endColumn), new o(n2, i2, r, s);
}
intersectRanges(e2) {
return o.intersectRanges(this, e2);
}
static intersectRanges(e2, t2) {
let n2 = e2.startLineNumber, i2 = e2.startColumn, r = e2.endLineNumber, s = e2.endColumn, a = t2.startLineNumber, l = t2.startColumn, c = t2.endLineNumber, d = t2.endColumn;
return n2 < a ? (n2 = a, i2 = l) : n2 === a && (i2 = Math.max(i2, l)), r > c ? (r = c, s = d) : r === c && (s = Math.min(s, d)), n2 > r || n2 === r && i2 > s ? null : new o(n2, i2, r, s);
}
equalsRange(e2) {
return o.equalsRange(this, e2);
}
static equalsRange(e2, t2) {
return !!e2 && !!t2 && e2.startLineNumber === t2.startLineNumber && e2.startColumn === t2.startColumn && e2.endLineNumber === t2.endLineNumber && e2.endColumn === t2.endColumn;
}
getEndPosition() {
return o.getEndPosition(this);
}
static getEndPosition(e2) {
return new i.a(e2.endLineNumber, e2.endColumn);
}
getStartPosition() {
return o.getStartPosition(this);
}
static getStartPosition(e2) {
return new i.a(e2.startLineNumber, e2.startColumn);
}
toString() {
return "[" + this.startLineNumber + "," + this.startColumn + " -> " + this.endLineNumber + "," + this.endColumn + "]";
}
setEndPosition(e2, t2) {
return new o(this.startLineNumber, this.startColumn, e2, t2);
}
setStartPosition(e2, t2) {
return new o(e2, t2, this.endLineNumber, this.endColumn);
}
collapseToStart() {
return o.collapseToStart(this);
}
static collapseToStart(e2) {
return new o(e2.startLineNumber, e2.startColumn, e2.startLineNumber, e2.startColumn);
}
static fromPositions(e2, t2 = e2) {
return new o(e2.lineNumber, e2.column, t2.lineNumber, t2.column);
}
static lift(e2) {
return e2 ? new o(e2.startLineNumber, e2.startColumn, e2.endLineNumber, e2.endColumn) : null;
}
static isIRange(e2) {
return e2 && "number" == typeof e2.startLineNumber && "number" == typeof e2.startColumn && "number" == typeof e2.endLineNumber && "number" == typeof e2.endColumn;
}
static areIntersectingOrTouching(e2, t2) {
return !(e2.endLineNumber < t2.startLineNumber || e2.endLineNumber === t2.startLineNumber && e2.endColumn < t2.startColumn) && !(t2.endLineNumber < e2.startLineNumber || t2.endLineNumber === e2.startLineNumber && t2.endColumn < e2.startColumn);
}
static areIntersecting(e2, t2) {
return !(e2.endLineNumber < t2.startLineNumber || e2.endLineNumber === t2.startLineNumber && e2.endColumn <= t2.startColumn) && !(t2.endLineNumber < e2.startLineNumber || t2.endLineNumber === e2.startLineNumber && t2.endColumn <= e2.startColumn);
}
static compareRangesUsingStarts(e2, t2) {
if (e2 && t2) {
const n2 = 0 | e2.startLineNumber, i2 = 0 | t2.startLineNumber;
if (n2 === i2) {
const n3 = 0 | e2.startColumn, i3 = 0 | t2.startColumn;
if (n3 === i3) {
const n4 = 0 | e2.endLineNumber, i4 = 0 | t2.endLineNumber;
if (n4 === i4) {
return (0 | e2.endColumn) - (0 | t2.endColumn);
}
return n4 - i4;
}
return n3 - i3;
}
return n2 - i2;
}
return (e2 ? 1 : 0) - (t2 ? 1 : 0);
}
static compareRangesUsingEnds(e2, t2) {
return e2.endLineNumber === t2.endLineNumber ? e2.endColumn === t2.endColumn ? e2.startLineNumber === t2.startLineNumber ? e2.startColumn - t2.startColumn : e2.startLineNumber - t2.startLineNumber : e2.endColumn - t2.endColumn : e2.endLineNumber - t2.endLineNumber;
}
static spansMultipleLines(e2) {
return e2.endLineNumber > e2.startLineNumber;
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return _;
}), n.d(t, "e", function() {
return v;
}), n.d(t, "c", function() {
return y;
}), n.d(t, "b", function() {
return C;
}), n.d(t, "f", function() {
return x;
}), n.d(t, "o", function() {
return S;
}), n.d(t, "j", function() {
return k;
}), n.d(t, "p", function() {
return E;
}), n.d(t, "q", function() {
return T;
}), n.d(t, "l", function() {
return L;
}), n.d(t, "k", function() {
return N;
}), n.d(t, "r", function() {
return I;
}), n.d(t, "n", function() {
return O;
}), n.d(t, "m", function() {
return D;
}), n.d(t, "d", function() {
return i;
}), n.d(t, "i", function() {
return M;
}), n.d(t, "g", function() {
return P;
}), n.d(t, "h", function() {
return F;
});
var i, o = n(0), r = n(13), s = n(23), a = n(41), l = n(9), c = n(64), d = n(122), h = n(24), u = n(27), p = n(10), m = n(92), g = n(56), f = n(120), b = n(14);
class _ {
constructor(e2) {
this.id = e2.id, this.precondition = e2.precondition, this._kbOpts = e2.kbOpts, this._menuOpts = e2.menuOpts, this._description = e2.description;
}
register() {
if (Array.isArray(this._menuOpts) ? this._menuOpts.forEach(this._registerMenuItem, this) : this._menuOpts && this._registerMenuItem(this._menuOpts), this._kbOpts) {
let e2 = this._kbOpts.kbExpr;
this.precondition && (e2 = e2 ? p.a.and(e2, this.precondition) : this.precondition), m.a.registerCommandAndKeybindingRule({id: this.id, handler: (e3, t2) => this.runCommand(e3, t2), weight: this._kbOpts.weight, args: this._kbOpts.args, when: e2, primary: this._kbOpts.primary, secondary: this._kbOpts.secondary, win: this._kbOpts.win, linux: this._kbOpts.linux, mac: this._kbOpts.mac, description: this._description});
} else
u.a.registerCommand({id: this.id, handler: (e2, t2) => this.runCommand(e2, t2), description: this._description});
}
_registerMenuItem(e2) {
h.d.appendMenuItem(e2.menuId, {group: e2.group, command: {id: this.id, title: e2.title, icon: e2.icon}, when: e2.when, order: e2.order});
}
}
class v extends _ {
constructor() {
super(...arguments), this._implementations = [];
}
addImplementation(e2, t2) {
return this._implementations.push([e2, t2]), this._implementations.sort((e3, t3) => t3[0] - e3[0]), {dispose: () => {
for (let e3 = 0; e3 < this._implementations.length; e3++)
if (this._implementations[e3][1] === t2)
return void this._implementations.splice(e3, 1);
}};
}
runCommand(e2, t2) {
for (const n2 of this._implementations)
if (n2[1](e2, t2))
return;
}
}
class w extends _ {
constructor(e2, t2) {
super(t2), this.command = e2;
}
runCommand(e2, t2) {
return this.command.runCommand(e2, t2);
}
}
class y extends _ {
static bindToContribution(e2) {
return class extends y {
constructor(e3) {
super(e3), this._callback = e3.handler;
}
runEditorCommand(t2, n2, i2) {
e2(n2) && this._callback(e2(n2), i2);
}
};
}
runCommand(e2, t2) {
const n2 = e2.get(a.a), i2 = n2.getFocusedCodeEditor() || n2.getActiveCodeEditor();
if (i2)
return i2.invokeWithinContext((e3) => {
if (e3.get(p.b).contextMatchesRules(Object(b.n)(this.precondition)))
return this.runEditorCommand(e3, i2, t2);
});
}
}
class C extends y {
constructor(e2) {
super(C.convertOptions(e2)), this.label = e2.label, this.alias = e2.alias;
}
static convertOptions(e2) {
let t2;
function n2(t3) {
return t3.menuId || (t3.menuId = h.b.EditorContext), t3.title || (t3.title = e2.label), t3.when = p.a.and(e2.precondition, t3.when), t3;
}
return t2 = Array.isArray(e2.menuOpts) ? e2.menuOpts : e2.menuOpts ? [e2.menuOpts] : [], Array.isArray(e2.contextMenuOpts) ? t2.push(...e2.contextMenuOpts.map(n2)) : e2.contextMenuOpts && t2.push(n2(e2.contextMenuOpts)), e2.menuOpts = t2, e2;
}
runEditorCommand(e2, t2, n2) {
return this.reportTelemetry(e2, t2), this.run(e2, t2, n2 || {});
}
reportTelemetry(e2, t2) {
e2.get(f.a).publicLog2("editorActionInvoked", {name: this.label, id: this.id});
}
}
class x extends C {
constructor(e2) {
super(e2), this._implementations = [];
}
runEditorCommand(e2, t2, n2) {
this.reportTelemetry(e2, t2);
for (const t3 of this._implementations)
if (t3[1](e2, n2))
return;
return this.run(e2, t2, n2 || {});
}
}
function S(e2, t2) {
u.a.registerCommand(e2, (e3, n2) => t2(e3, n2 || {}));
}
function k(e2, t2) {
S(e2, function(e3, n2) {
const {resource: i2, position: o2} = n2;
if (!(i2 instanceof s.a))
throw Object(r.b)("resource");
if (!l.a.isIPosition(o2))
throw Object(r.b)("position");
const a2 = e3.get(c.a).getModel(i2);
if (a2) {
const e4 = l.a.lift(o2);
return t2(a2, e4, n2);
}
return e3.get(d.a).createModelReference(i2).then((e4) => new Promise((i3, r2) => {
try {
i3(t2(e4.object.textEditorModel, l.a.lift(o2), n2));
} catch (e5) {
r2(e5);
}
}).finally(() => {
e4.dispose();
}));
});
}
function E(e2, t2) {
u.a.registerCommand(e2, function(e3, ...n2) {
const [i2, o2] = n2;
Object(b.b)(s.a.isUri(i2)), Object(b.b)(l.a.isIPosition(o2));
const r2 = e3.get(c.a).getModel(i2);
if (r2) {
const e4 = l.a.lift(o2);
return t2(r2, e4, ...n2.slice(2));
}
return e3.get(d.a).createModelReference(i2).then((e4) => new Promise((i3, r3) => {
try {
i3(t2(e4.object.textEditorModel, l.a.lift(o2), n2.slice(2)));
} catch (e5) {
r3(e5);
}
}).finally(() => {
e4.dispose();
}));
});
}
function T(e2, t2) {
u.a.registerCommand(e2, function(e3, ...n2) {
const [i2] = n2;
Object(b.b)(s.a.isUri(i2));
const o2 = e3.get(c.a).getModel(i2);
return o2 ? t2(o2, ...n2.slice(1)) : e3.get(d.a).createModelReference(i2).then((e4) => new Promise((i3, o3) => {
try {
i3(t2(e4.object.textEditorModel, n2.slice(1)));
} catch (e5) {
o3(e5);
}
}).finally(() => {
e4.dispose();
}));
});
}
function L(e2) {
return A.INSTANCE.registerEditorCommand(e2), e2;
}
function N(e2) {
const t2 = new e2();
return A.INSTANCE.registerEditorAction(t2), t2;
}
function I(e2) {
return A.INSTANCE.registerEditorAction(e2), e2;
}
function O(e2) {
A.INSTANCE.registerEditorAction(e2);
}
function D(e2, t2) {
A.INSTANCE.registerEditorContribution(e2, t2);
}
!function(e2) {
e2.getEditorCommand = function(e3) {
return A.INSTANCE.getEditorCommand(e3);
}, e2.getEditorActions = function() {
return A.INSTANCE.getEditorActions();
}, e2.getEditorContributions = function() {
return A.INSTANCE.getEditorContributions();
}, e2.getSomeEditorContributions = function(e3) {
return A.INSTANCE.getEditorContributions().filter((t2) => e3.indexOf(t2.id) >= 0);
}, e2.getDiffEditorContributions = function() {
return A.INSTANCE.getDiffEditorContributions();
};
}(i || (i = {}));
class A {
constructor() {
this.editorContributions = [], this.diffEditorContributions = [], this.editorActions = [], this.editorCommands = Object.create(null);
}
registerEditorContribution(e2, t2) {
this.editorContributions.push({id: e2, ctor: t2});
}
getEditorContributions() {
return this.editorContributions.slice(0);
}
getDiffEditorContributions() {
return this.diffEditorContributions.slice(0);
}
registerEditorAction(e2) {
e2.register(), this.editorActions.push(e2);
}
getEditorActions() {
return this.editorActions.slice(0);
}
registerEditorCommand(e2) {
e2.register(), this.editorCommands[e2.id] = e2;
}
getEditorCommand(e2) {
return this.editorCommands[e2] || null;
}
}
function R(e2) {
return e2.register(), e2;
}
A.INSTANCE = new A(), g.a.add("editor.contributions", A.INSTANCE);
const M = R(new v({id: "undo", precondition: void 0, kbOpts: {weight: 0, primary: 2104}, menuOpts: [{menuId: h.b.MenubarEditMenu, group: "1_do", title: o.a({key: "miUndo", comment: ["&& denotes a mnemonic"]}, "&&Undo"), order: 1}, {menuId: h.b.CommandPalette, group: "", title: o.a("undo", "Undo"), order: 1}]}));
R(new w(M, {id: "default:undo", precondition: void 0}));
const P = R(new v({id: "redo", precondition: void 0, kbOpts: {weight: 0, primary: 2103, secondary: [3128], mac: {primary: 3128}}, menuOpts: [{menuId: h.b.MenubarEditMenu, group: "1_do", title: o.a({key: "miRedo", comment: ["&& denotes a mnemonic"]}, "&&Redo"), order: 2}, {menuId: h.b.CommandPalette, group: "", title: o.a("redo", "Redo"), order: 1}]}));
R(new w(P, {id: "default:redo", precondition: void 0}));
const F = R(new v({id: "editor.action.selectAll", precondition: void 0, kbOpts: {weight: 0, kbExpr: null, primary: 2079}, menuOpts: [{menuId: h.b.MenubarSelectionMenu, group: "1_basic", title: o.a({key: "miSelectAll", comment: ["&& denotes a mnemonic"]}, "&&Select All"), order: 1}, {menuId: h.b.CommandPalette, group: "", title: o.a("selectAll", "Select All"), order: 1}]}));
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return c;
}), n.d(t, "gc", function() {
return h;
}), n.d(t, "ab", function() {
return u;
}), n.d(t, "Y", function() {
return p;
}), n.d(t, "bb", function() {
return m;
}), n.d(t, "Z", function() {
return g;
}), n.d(t, "h", function() {
return f;
}), n.d(t, "b", function() {
return b;
}), n.d(t, "rc", function() {
return _;
}), n.d(t, "qc", function() {
return v;
}), n.d(t, "uc", function() {
return w;
}), n.d(t, "fb", function() {
return y;
}), n.d(t, "hb", function() {
return C;
}), n.d(t, "gb", function() {
return x;
}), n.d(t, "db", function() {
return S;
}), n.d(t, "cb", function() {
return k;
}), n.d(t, "eb", function() {
return E;
}), n.d(t, "lb", function() {
return T;
}), n.d(t, "nb", function() {
return L;
}), n.d(t, "mb", function() {
return N;
}), n.d(t, "ob", function() {
return I;
}), n.d(t, "qb", function() {
return O;
}), n.d(t, "pb", function() {
return D;
}), n.d(t, "ib", function() {
return A;
}), n.d(t, "kb", function() {
return R;
}), n.d(t, "jb", function() {
return M;
}), n.d(t, "f", function() {
return W;
}), n.d(t, "e", function() {
return z;
}), n.d(t, "g", function() {
return B;
}), n.d(t, "c", function() {
return j;
}), n.d(t, "d", function() {
return V;
}), n.d(t, "ic", function() {
return U;
}), n.d(t, "kc", function() {
return H;
}), n.d(t, "lc", function() {
return q;
}), n.d(t, "jc", function() {
return $;
}), n.d(t, "cc", function() {
return K;
}), n.d(t, "u", function() {
return G;
}), n.d(t, "t", function() {
return Y;
}), n.d(t, "T", function() {
return Z;
}), n.d(t, "S", function() {
return X;
}), n.d(t, "L", function() {
return Q;
}), n.d(t, "K", function() {
return J;
}), n.d(t, "D", function() {
return ee;
}), n.d(t, "C", function() {
return te;
}), n.d(t, "s", function() {
return ne;
}), n.d(t, "B", function() {
return ie;
}), n.d(t, "U", function() {
return oe;
}), n.d(t, "W", function() {
return re;
}), n.d(t, "V", function() {
return se;
}), n.d(t, "X", function() {
return ae;
}), n.d(t, "dc", function() {
return le;
}), n.d(t, "ec", function() {
return ce;
}), n.d(t, "fc", function() {
return de;
}), n.d(t, "Yb", function() {
return he;
}), n.d(t, "Xb", function() {
return ue;
}), n.d(t, "O", function() {
return pe;
}), n.d(t, "P", function() {
return me;
}), n.d(t, "J", function() {
return ge;
}), n.d(t, "Q", function() {
return fe;
}), n.d(t, "R", function() {
return be;
}), n.d(t, "v", function() {
return _e;
}), n.d(t, "x", function() {
return ve;
}), n.d(t, "z", function() {
return we;
}), n.d(t, "w", function() {
return ye;
}), n.d(t, "y", function() {
return Ce;
}), n.d(t, "A", function() {
return xe;
}), n.d(t, "H", function() {
return Se;
}), n.d(t, "E", function() {
return ke;
}), n.d(t, "G", function() {
return Ee;
}), n.d(t, "F", function() {
return Te;
}), n.d(t, "I", function() {
return Le;
}), n.d(t, "r", function() {
return Ne;
}), n.d(t, "N", function() {
return Ie;
}), n.d(t, "M", function() {
return Oe;
}), n.d(t, "j", function() {
return De;
}), n.d(t, "k", function() {
return Ae;
}), n.d(t, "n", function() {
return Re;
}), n.d(t, "p", function() {
return Me;
}), n.d(t, "o", function() {
return Pe;
}), n.d(t, "q", function() {
return Fe;
}), n.d(t, "l", function() {
return We;
}), n.d(t, "m", function() {
return ze;
}), n.d(t, "xb", function() {
return Be;
}), n.d(t, "yb", function() {
return je;
}), n.d(t, "rb", function() {
return Ve;
}), n.d(t, "sb", function() {
return Ue;
}), n.d(t, "Db", function() {
return He;
}), n.d(t, "Eb", function() {
return qe;
}), n.d(t, "Cb", function() {
return $e;
}), n.d(t, "Ab", function() {
return Ke;
}), n.d(t, "Bb", function() {
return Ge;
}), n.d(t, "tb", function() {
return Ye;
}), n.d(t, "zb", function() {
return Ze;
}), n.d(t, "ub", function() {
return Xe;
}), n.d(t, "wb", function() {
return Qe;
}), n.d(t, "vb", function() {
return Je;
}), n.d(t, "tc", function() {
return et;
}), n.d(t, "Gb", function() {
return tt;
}), n.d(t, "Hb", function() {
return nt;
}), n.d(t, "Fb", function() {
return it;
}), n.d(t, "Kb", function() {
return ot;
}), n.d(t, "Ib", function() {
return rt;
}), n.d(t, "Jb", function() {
return st;
}), n.d(t, "Lb", function() {
return at;
}), n.d(t, "oc", function() {
return lt;
}), n.d(t, "pc", function() {
return ct;
}), n.d(t, "mc", function() {
return dt;
}), n.d(t, "nc", function() {
return ht;
}), n.d(t, "Vb", function() {
return ut;
}), n.d(t, "Wb", function() {
return pt;
}), n.d(t, "Ob", function() {
return mt;
}), n.d(t, "Pb", function() {
return gt;
}), n.d(t, "Nb", function() {
return ft;
}), n.d(t, "Tb", function() {
return bt;
}), n.d(t, "Mb", function() {
return _t;
}), n.d(t, "Rb", function() {
return vt;
}), n.d(t, "Sb", function() {
return wt;
}), n.d(t, "Qb", function() {
return yt;
}), n.d(t, "Zb", function() {
return Ct;
}), n.d(t, "bc", function() {
return xt;
}), n.d(t, "ac", function() {
return St;
}), n.d(t, "i", function() {
return kt;
}), n.d(t, "sc", function() {
return Tt;
}), n.d(t, "Ub", function() {
return Lt;
}), n.d(t, "hc", function() {
return It;
});
var i = n(56), o = n(16), r = n(6), s = n(0), a = n(188), l = n(20);
const c = {ColorContribution: "base.contributions.colors"};
const d = new class {
constructor() {
this._onDidChangeSchema = new r.a(), this.onDidChangeSchema = this._onDidChangeSchema.event, this.colorSchema = {type: "object", properties: {}}, this.colorReferenceSchema = {type: "string", enum: [], enumDescriptions: []}, this.colorsById = {};
}
registerColor(e2, t2, n2, i2 = false, o2) {
let r2 = {id: e2, description: n2, defaults: t2, needsTransparency: i2, deprecationMessage: o2};
this.colorsById[e2] = r2;
let s2 = {type: "string", description: n2, format: "color-hex", defaultSnippets: [{body: "${1:#ff0000}"}]};
return o2 && (s2.deprecationMessage = o2), this.colorSchema.properties[e2] = s2, this.colorReferenceSchema.enum.push(e2), this.colorReferenceSchema.enumDescriptions.push(n2), this._onDidChangeSchema.fire(), e2;
}
resolveDefaultColor(e2, t2) {
const n2 = this.colorsById[e2];
if (n2 && n2.defaults) {
return It(n2.defaults[t2.type], t2);
}
}
getColorSchema() {
return this.colorSchema;
}
toString() {
return Object.keys(this.colorsById).sort((e2, t2) => {
let n2 = -1 === e2.indexOf(".") ? 0 : 1, i2 = -1 === t2.indexOf(".") ? 0 : 1;
return n2 !== i2 ? n2 - i2 : e2.localeCompare(t2);
}).map((e2) => `- \`${e2}\`: ${this.colorsById[e2].description}`).join("\n");
}
}();
function h(e2, t2, n2, i2, o2) {
return d.registerColor(e2, t2, n2, i2, o2);
}
i.a.add(c.ColorContribution, d);
const u = h("foreground", {dark: "#CCCCCC", light: "#616161", hc: "#FFFFFF"}, s.a("foreground", "Overall foreground color. This color is only used if not overridden by a component.")), p = h("errorForeground", {dark: "#F48771", light: "#A1260D", hc: "#F48771"}, s.a("errorForeground", "Overall foreground color for error messages. This color is only used if not overridden by a component.")), m = h("icon.foreground", {dark: "#C5C5C5", light: "#424242", hc: "#FFFFFF"}, s.a("iconForeground", "The default color for icons in the workbench.")), g = h("focusBorder", {dark: "#007FD4", light: "#0090F1", hc: "#F38518"}, s.a("focusBorder", "Overall border color for focused elements. This color is only used if not overridden by a component.")), f = h("contrastBorder", {light: null, dark: null, hc: "#6FC3DF"}, s.a("contrastBorder", "An extra border around elements to separate them from others for greater contrast.")), b = h("contrastActiveBorder", {light: null, dark: null, hc: g}, s.a("activeContrastBorder", "An extra border around active elements to separate them from others for greater contrast.")), _ = h("textLink.foreground", {light: "#006AB1", dark: "#3794FF", hc: "#3794FF"}, s.a("textLinkForeground", "Foreground color for links in text.")), v = h("textCodeBlock.background", {light: "#dcdcdc66", dark: "#0a0a0a66", hc: o.a.black}, s.a("textCodeBlockBackground", "Background color for code blocks in text.")), w = h("widget.shadow", {dark: "#000000", light: "#A8A8A8", hc: null}, s.a("widgetShadow", "Shadow color of widgets such as find/replace inside the editor.")), y = h("input.background", {dark: "#3C3C3C", light: o.a.white, hc: o.a.black}, s.a("inputBoxBackground", "Input box background.")), C = h("input.foreground", {dark: u, light: u, hc: u}, s.a("inputBoxForeground", "Input box foreground.")), x = h("input.border", {dark: null, light: null, hc: f}, s.a("inputBoxBorder", "Input box border.")), S = h("inputOption.activeBorder", {dark: "#007ACC00", light: "#007ACC00", hc: f}, s.a("inputBoxActiveOptionBorder", "Border color of activated options in input fields.")), k = h("inputOption.activeBackground", {dark: Tt(g, 0.4), light: Tt(g, 0.2), hc: o.a.transparent}, s.a("inputOption.activeBackground", "Background color of activated options in input fields.")), E = h("inputOption.activeForeground", {dark: o.a.white, light: o.a.black, hc: null}, s.a("inputOption.activeForeground", "Foreground color of activated options in input fields.")), T = h("inputValidation.infoBackground", {dark: "#063B49", light: "#D6ECF2", hc: o.a.black}, s.a("inputValidationInfoBackground", "Input validation background color for information severity.")), L = h("inputValidation.infoForeground", {dark: null, light: null, hc: null}, s.a("inputValidationInfoForeground", "Input validation foreground color for information severity.")), N = h("inputValidation.infoBorder", {dark: "#007acc", light: "#007acc", hc: f}, s.a("inputValidationInfoBorder", "Input validation border color for information severity.")), I = h("inputValidation.warningBackground", {dark: "#352A05", light: "#F6F5D2", hc: o.a.black}, s.a("inputValidationWarningBackground", "Input validation background color for warning severity.")), O = h("inputValidation.warningForeground", {dark: null, light: null, hc: null}, s.a("inputValidationWarningForeground", "Input validation foreground color for warning severity.")), D = h("inputValidation.warningBorder", {dark: "#B89500", light: "#B89500", hc: f}, s.a("inputValidationWarningBorder", "Input validation border color for warning severity.")), A = h("inputValidation.errorBackground", {dark: "#5A1D1D", light: "#F2DEDE", hc: o.a.black}, s.a("inputValidationErrorBackground", "Input validation background color for error severity.")), R = h("inputValidation.errorForeground", {dark: null, light: null, hc: null}, s.a("inputValidationErrorForeground", "Input validation foreground color for error severity.")), M = h("inputValidation.errorBorder", {dark: "#BE1100", light: "#BE1100", hc: f}, s.a("inputValidationErrorBorder", "Input validation border color for error severity.")), P = h("dropdown.background", {dark: "#3C3C3C", light: o.a.white, hc: o.a.black}, s.a("dropdownBackground", "Dropdown background.")), F = h("dropdown.foreground", {dark: "#F0F0F0", light: null, hc: o.a.white}, s.a("dropdownForeground", "Dropdown foreground.")), W = h("button.foreground", {dark: o.a.white, light: o.a.white, hc: o.a.white}, s.a("buttonForeground", "Button foreground color.")), z = h("button.background", {dark: "#0E639C", light: "#007ACC", hc: null}, s.a("buttonBackground", "Button background color.")), B = h("button.hoverBackground", {dark: Et(z, 0.2), light: kt(z, 0.2), hc: null}, s.a("buttonHoverBackground", "Button background color when hovering.")), j = h("badge.background", {dark: "#4D4D4D", light: "#C4C4C4", hc: o.a.black}, s.a("badgeBackground", "Badge background color. Badges are small information labels, e.g. for search results count.")), V = h("badge.foreground", {dark: o.a.white, light: "#333", hc: o.a.white}, s.a("badgeForeground", "Badge foreground color. Badges are small information labels, e.g. for search results count.")), U = h("scrollbar.shadow", {dark: "#000000", light: "#DDDDDD", hc: null}, s.a("scrollbarShadow", "Scrollbar shadow to indicate that the view is scrolled.")), H = h("scrollbarSlider.background", {dark: o.a.fromHex("#797979").transparent(0.4), light: o.a.fromHex("#646464").transparent(0.4), hc: Tt(f, 0.6)}, s.a("scrollbarSliderBackground", "Scrollbar slider background color.")), q = h("scrollbarSlider.hoverBackground", {dark: o.a.fromHex("#646464").transparent(0.7), light: o.a.fromHex("#646464").transparent(0.7), hc: Tt(f, 0.8)}, s.a("scrollbarSliderHoverBackground", "Scrollbar slider background color when hovering.")), $ = h("scrollbarSlider.activeBackground", {dark: o.a.fromHex("#BFBFBF").transparent(0.4), light: o.a.fromHex("#000000").transparent(0.6), hc: f}, s.a("scrollbarSliderActiveBackground", "Scrollbar slider background color when clicked on.")), K = h("progressBar.background", {dark: o.a.fromHex("#0E70C0"), light: o.a.fromHex("#0E70C0"), hc: f}, s.a("progressBarBackground", "Background color of the progress bar that can show for long running operations.")), G = h("editorError.foreground", {dark: "#F48771", light: "#E51400", hc: null}, s.a("editorError.foreground", "Foreground color of error squigglies in the editor.")), Y = h("editorError.border", {dark: null, light: null, hc: o.a.fromHex("#E47777").transparent(0.8)}, s.a("errorBorder", "Border color of error boxes in the editor.")), Z = h("editorWarning.foreground", {dark: "#CCA700", light: "#E9A700", hc: null}, s.a("editorWarning.foreground", "Foreground color of warning squigglies in the editor.")), X = h("editorWarning.border", {dark: null, light: null, hc: o.a.fromHex("#FFCC00").transparent(0.8)}, s.a("warningBorder", "Border color of warning boxes in the editor.")), Q = h("editorInfo.foreground", {dark: "#75BEFF", light: "#75BEFF", hc: null}, s.a("editorInfo.foreground", "Foreground color of info squigglies in the editor.")), J = h("editorInfo.border", {dark: null, light: null, hc: o.a.fromHex("#75BEFF").transparent(0.8)}, s.a("infoBorder", "Border color of info boxes in the editor.")), ee = h("editorHint.foreground", {dark: o.a.fromHex("#eeeeee").transparent(0.7), light: "#6c6c6c", hc: null}, s.a("editorHint.foreground", "Foreground color of hint squigglies in the editor.")), te = h("editorHint.border", {dark: null, light: null, hc: o.a.fromHex("#eeeeee").transparent(0.8)}, s.a("hintBorder", "Border color of hint boxes in the editor.")), ne = h("editor.background", {light: "#fffffe", dark: "#1E1E1E", hc: o.a.black}, s.a("editorBackground", "Editor background color.")), ie = h("editor.foreground", {light: "#333333", dark: "#BBBBBB", hc: o.a.white}, s.a("editorForeground", "Editor default foreground color.")), oe = h("editorWidget.background", {dark: "#252526", light: "#F3F3F3", hc: "#0C141F"}, s.a("editorWidgetBackground", "Background color of editor widgets, such as find/replace.")), re = h("editorWidget.foreground", {dark: u, light: u, hc: u}, s.a("editorWidgetForeground", "Foreground color of editor widgets, such as find/replace.")), se = h("editorWidget.border", {dark: "#454545", light: "#C8C8C8", hc: f}, s.a("editorWidgetBorder", "Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")), ae = h("editorWidget.resizeBorder", {light: null, dark: null, hc: null}, s.a("editorWidgetResizeBorder", "Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")), le = h("quickInput.background", {dark: oe, light: oe, hc: oe}, s.a("pickerBackground", "Quick picker background color. The quick picker widget is the container for pickers like the command palette.")), ce = h("quickInput.foreground", {dark: re, light: re, hc: re}, s.a("pickerForeground", "Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")), de = h("quickInputTitle.background", {dark: new o.a(new o.c(255, 255, 255, 0.105)), light: new o.a(new o.c(0, 0, 0, 0.06)), hc: "#000000"}, s.a("pickerTitleBackground", "Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")), he = h("pickerGroup.foreground", {dark: "#3794FF", light: "#0066BF", hc: o.a.white}, s.a("pickerGroupForeground", "Quick picker color for grouping labels.")), ue = h("pickerGroup.border", {dark: "#3F3F46", light: "#CCCEDB", hc: o.a.white}, s.a("pickerGroupBorder", "Quick picker color for grouping borders.")), pe = h("editor.selectionBackground", {light: "#ADD6FF", dark: "#264F78", hc: "#f3f518"}, s.a("editorSelectionBackground", "Color of the editor selection.")), me = h("editor.selectionForeground", {light: null, dark: null, hc: "#000000"}, s.a("editorSelectionForeground", "Color of the selected text for high contrast.")), ge = h("editor.inactiveSelectionBackground", {light: Tt(pe, 0.5), dark: Tt(pe, 0.5), hc: Tt(pe, 0.5)}, s.a("editorInactiveSelection", "Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."), true), fe = h("editor.selectionHighlightBackground", {light: Nt(pe, ne, 0.3, 0.6), dark: Nt(pe, ne, 0.3, 0.6), hc: null}, s.a("editorSelectionHighlight", "Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."), true), be = h("editor.selectionHighlightBorder", {light: null, dark: null, hc: b}, s.a("editorSelectionHighlightBorder", "Border color for regions with the same content as the selection.")), _e = h("editor.findMatchBackground", {light: "#A8AC94", dark: "#515C6A", hc: null}, s.a("editorFindMatch", "Color of the current search match.")), ve = h("editor.findMatchHighlightBackground", {light: "#EA5C0055", dark: "#EA5C0055", hc: null}, s.a("findMatchHighlight", "Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."), true), we = h("editor.findRangeHighlightBackground", {dark: "#3a3d4166", light: "#b4b4b44d", hc: null}, s.a("findRangeHighlight", "Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."), true), ye = h("editor.findMatchBorder", {light: null, dark: null, hc: b}, s.a("editorFindMatchBorder", "Border color of the current search match.")), Ce = h("editor.findMatchHighlightBorder", {light: null, dark: null, hc: b}, s.a("findMatchHighlightBorder", "Border color of the other search matches.")), xe = h("editor.findRangeHighlightBorder", {dark: null, light: null, hc: Tt(b, 0.4)}, s.a("findRangeHighlightBorder", "Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."), true), Se = h("editor.hoverHighlightBackground", {light: "#ADD6FF26", dark: "#264f7840", hc: "#ADD6FF26"}, s.a("hoverHighlight", "Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."), true), ke = h("editorHoverWidget.background", {light: oe, dark: oe, hc: oe}, s.a("hoverBackground", "Background color of the editor hover.")), Ee = h("editorHoverWidget.foreground", {light: re, dark: re, hc: re}, s.a("hoverForeground", "Foreground color of the editor hover.")), Te = h("editorHoverWidget.border", {light: se, dark: se, hc: se}, s.a("hoverBorder", "Border color of the editor hover.")), Le = h("editorHoverWidget.statusBarBackground", {dark: Et(ke, 0.2), light: kt(ke, 0.05), hc: oe}, s.a("statusBarBackground", "Background color of the editor hover status bar.")), Ne = h("editorLink.activeForeground", {dark: "#4E94CE", light: o.a.blue, hc: o.a.cyan}, s.a("activeLinkForeground", "Color of active links.")), Ie = h("editorLightBulb.foreground", {dark: "#FFCC00", light: "#DDB100", hc: "#FFCC00"}, s.a("editorLightBulbForeground", "The color used for the lightbulb actions icon.")), Oe = h("editorLightBulbAutoFix.foreground", {dark: "#75BEFF", light: "#007ACC", hc: "#75BEFF"}, s.a("editorLightBulbAutoFixForeground", "The color used for the lightbulb auto fix actions icon.")), De = new o.a(new o.c(155, 185, 85, 0.2)), Ae = new o.a(new o.c(255, 0, 0, 0.2)), Re = h("diffEditor.insertedTextBackground", {dark: De, light: De, hc: null}, s.a("diffEditorInserted", "Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."), true), Me = h("diffEditor.removedTextBackground", {dark: Ae, light: Ae, hc: null}, s.a("diffEditorRemoved", "Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."), true), Pe = h("diffEditor.insertedTextBorder", {dark: null, light: null, hc: "#33ff2eff"}, s.a("diffEditorInsertedOutline", "Outline color for the text that got inserted.")), Fe = h("diffEditor.removedTextBorder", {dark: null, light: null, hc: "#FF008F"}, s.a("diffEditorRemovedOutline", "Outline color for text that got removed.")), We = h("diffEditor.border", {dark: null, light: null, hc: f}, s.a("diffEditorBorder", "Border color between the two text editors.")), ze = h("diffEditor.diagonalFill", {dark: "#cccccc33", light: "#22222233", hc: null}, s.a("diffDiagonalFill", "Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")), Be = h("list.focusBackground", {dark: "#062F4A", light: "#D6EBFF", hc: null}, s.a("listFocusBackground", "List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")), je = h("list.focusForeground", {dark: null, light: null, hc: null}, s.a("listFocusForeground", "List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")), Ve = h("list.activeSelectionBackground", {dark: "#094771", light: "#0074E8", hc: null}, s.a("listActiveSelectionBackground", "List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")), Ue = h("list.activeSelectionForeground", {dark: o.a.white, light: o.a.white, hc: null}, s.a("listActiveSelectionForeground", "List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")), He = h("list.inactiveSelectionBackground", {dark: "#37373D", light: "#E4E6F1", hc: null}, s.a("listInactiveSelectionBackground", "List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")), qe = h("list.inactiveSelectionForeground", {dark: null, light: null, hc: null}, s.a("listInactiveSelectionForeground", "List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")), $e = h("list.inactiveFocusBackground", {dark: null, light: null, hc: null}, s.a("listInactiveFocusBackground", "List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")), Ke = h("list.hoverBackground", {dark: "#2A2D2E", light: "#F0F0F0", hc: null}, s.a("listHoverBackground", "List/Tree background when hovering over items using the mouse.")), Ge = h("list.hoverForeground", {dark: null, light: null, hc: null}, s.a("listHoverForeground", "List/Tree foreground when hovering over items using the mouse.")), Ye = h("list.dropBackground", {dark: Be, light: Be, hc: null}, s.a("listDropBackground", "List/Tree drag and drop background when moving items around using the mouse.")), Ze = h("list.highlightForeground", {dark: "#0097fb", light: "#0066BF", hc: g}, s.a("highlight", "List/Tree foreground color of the match highlights when searching inside the list/tree.")), Xe = h("listFilterWidget.background", {light: "#efc1ad", dark: "#653723", hc: o.a.black}, s.a("listFilterWidgetBackground", "Background color of the type filter widget in lists and trees.")), Qe = h("listFilterWidget.outline", {dark: o.a.transparent, light: o.a.transparent, hc: "#f38518"}, s.a("listFilterWidgetOutline", "Outline color of the type filter widget in lists and trees.")), Je = h("listFilterWidget.noMatchesOutline", {dark: "#BE1100", light: "#BE1100", hc: f}, s.a("listFilterWidgetNoMatchesOutline", "Outline color of the type filter widget in lists and trees, when there are no matches.")), et = h("tree.indentGuidesStroke", {dark: "#585858", light: "#a9a9a9", hc: "#a9a9a9"}, s.a("treeIndentGuidesStroke", "Tree stroke color for the indentation guides.")), tt = h("menu.border", {dark: null, light: null, hc: f}, s.a("menuBorder", "Border color of menus.")), nt = h("menu.foreground", {dark: F, light: u, hc: F}, s.a("menuForeground", "Foreground color of menu items.")), it = h("menu.background", {dark: P, light: P, hc: P}, s.a("menuBackground", "Background color of menu items.")), ot = h("menu.selectionForeground", {dark: Ue, light: Ue, hc: Ue}, s.a("menuSelectionForeground", "Foreground color of the selected menu item in menus.")), rt = h("menu.selectionBackground", {dark: Ve, light: Ve, hc: Ve}, s.a("menuSelectionBackground", "Background color of the selected menu item in menus.")), st = h("menu.selectionBorder", {dark: null, light: null, hc: b}, s.a("menuSelectionBorder", "Border color of the selected menu item in menus.")), at = h("menu.separatorBackground", {dark: "#BBBBBB", light: "#888888", hc: f}, s.a("menuSeparatorBackground", "Color of a separator menu item in menus.")), lt = h("editor.snippetTabstopHighlightBackground", {dark: new o.a(new o.c(124, 124, 124, 0.3)), light: new o.a(new o.c(10, 50, 100, 0.2)), hc: new o.a(new o.c(124, 124, 124, 0.3))}, s.a("snippetTabstopHighlightBackground", "Highlight background color of a snippet tabstop.")), ct = h("editor.snippetTabstopHighlightBorder", {dark: null, light: null, hc: null}, s.a("snippetTabstopHighlightBorder", "Highlight border color of a snippet tabstop.")), dt = h("editor.snippetFinalTabstopHighlightBackground", {dark: null, light: null, hc: null}, s.a("snippetFinalTabstopHighlightBackground", "Highlight background color of the final tabstop of a snippet.")), ht = h("editor.snippetFinalTabstopHighlightBorder", {dark: "#525252", light: new o.a(new o.c(10, 50, 100, 0.5)), hc: "#525252"}, s.a("snippetFinalTabstopHighlightBorder", "Highlight border color of the final tabstop of a snippet.")), ut = h("editorOverviewRuler.findMatchForeground", {dark: "#d186167e", light: "#d186167e", hc: "#AB5A00"}, s.a("overviewRulerFindMatchForeground", "Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."), true), pt = h("editorOverviewRuler.selectionHighlightForeground", {dark: "#A0A0A0CC", light: "#A0A0A0CC", hc: "#A0A0A0CC"}, s.a("overviewRulerSelectionHighlightForeground", "Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."), true), mt = h("minimap.findMatchHighlight", {light: "#d18616", dark: "#d18616", hc: "#AB5A00"}, s.a("minimapFindMatchHighlight", "Minimap marker color for find matches."), true), gt = h("minimap.selectionHighlight", {light: "#ADD6FF", dark: "#264F78", hc: "#ffffff"}, s.a("minimapSelectionHighlight", "Minimap marker color for the editor selection."), true), ft = h("minimap.errorHighlight", {dark: new o.a(new o.c(255, 18, 18, 0.7)), light: new o.a(new o.c(255, 18, 18, 0.7)), hc: new o.a(new o.c(255, 50, 50, 1))}, s.a("minimapError", "Minimap marker color for errors.")), bt = h("minimap.warningHighlight", {dark: Z, light: Z, hc: X}, s.a("overviewRuleWarning", "Minimap marker color for warnings.")), _t = h("minimap.background", {dark: null, light: null, hc: null}, s.a("minimapBackground", "Minimap background color.")), vt = h("minimapSlider.background", {light: Tt(H, 0.5), dark: Tt(H, 0.5), hc: Tt(H, 0.5)}, s.a("minimapSliderBackground", "Minimap slider background color.")), wt = h("minimapSlider.hoverBackground", {light: Tt(q, 0.5), dark: Tt(q, 0.5), hc: Tt(q, 0.5)}, s.a("minimapSliderHoverBackground", "Minimap slider background color when hovering.")), yt = h("minimapSlider.activeBackground", {light: Tt($, 0.5), dark: Tt($, 0.5), hc: Tt($, 0.5)}, s.a("minimapSliderActiveBackground", "Minimap slider background color when clicked on.")), Ct = h("problemsErrorIcon.foreground", {dark: G, light: G, hc: G}, s.a("problemsErrorIconForeground", "The color used for the problems error icon.")), xt = h("problemsWarningIcon.foreground", {dark: Z, light: Z, hc: Z}, s.a("problemsWarningIconForeground", "The color used for the problems warning icon.")), St = h("problemsInfoIcon.foreground", {dark: Q, light: Q, hc: Q}, s.a("problemsInfoIconForeground", "The color used for the problems info icon."));
function kt(e2, t2) {
return (n2) => {
let i2 = It(e2, n2);
if (i2)
return i2.darken(t2);
};
}
function Et(e2, t2) {
return (n2) => {
let i2 = It(e2, n2);
if (i2)
return i2.lighten(t2);
};
}
function Tt(e2, t2) {
return (n2) => {
let i2 = It(e2, n2);
if (i2)
return i2.transparent(t2);
};
}
function Lt(...e2) {
return (t2) => {
for (let n2 of e2) {
let e3 = It(n2, t2);
if (e3)
return e3;
}
};
}
function Nt(e2, t2, n2, i2) {
return (r2) => {
let s2 = It(e2, r2);
if (s2) {
let e3 = It(t2, r2);
return e3 ? s2.isDarkerThan(e3) ? o.a.getLighterColor(s2, e3, n2).transparent(i2) : o.a.getDarkerColor(s2, e3, n2).transparent(i2) : s2.transparent(n2 * i2);
}
};
}
function It(e2, t2) {
if (null !== e2)
return "string" == typeof e2 ? "#" === e2[0] ? o.a.fromHex(e2) : t2.getColor(e2) : e2 instanceof o.a ? e2 : "function" == typeof e2 ? e2(t2) : void 0;
}
let Ot = i.a.as(a.a.JSONContribution);
Ot.registerSchema("vscode://schemas/workbench-colors", d.getColorSchema());
const Dt = new l.d(() => Ot.notifySchemaChanged("vscode://schemas/workbench-colors"), 200);
d.onDidChangeSchema(() => {
Dt.isScheduled() || Dt.schedule();
});
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return i;
}), n.d(t, "a", function() {
return a;
}), n.d(t, "d", function() {
return l;
}), n.d(t, "c", function() {
return c;
}), n.d(t, "e", function() {
return d;
});
var i, o = n(13), r = n(2), s = n(53);
!function(e2) {
function t2(e3) {
return (t3, n3 = null, i3) => {
let o3, r2 = false;
return o3 = e3((e4) => {
if (!r2)
return o3 ? o3.dispose() : r2 = true, t3.call(n3, e4);
}, null, i3), r2 && o3.dispose(), o3;
};
}
function n2(e3, t3) {
return l2((n3, i3 = null, o3) => e3((e4) => n3.call(i3, t3(e4)), null, o3));
}
function i2(e3, t3) {
return l2((n3, i3 = null, o3) => e3((e4) => {
t3(e4), n3.call(i3, e4);
}, null, o3));
}
function o2(e3, t3) {
return l2((n3, i3 = null, o3) => e3((e4) => t3(e4) && n3.call(i3, e4), null, o3));
}
function s2(e3, t3, i3) {
let o3 = i3;
return n2(e3, (e4) => (o3 = t3(o3, e4), o3));
}
function l2(e3) {
let t3;
const n3 = new a({onFirstListenerAdd() {
t3 = e3(n3.fire, n3);
}, onLastListenerRemove() {
t3.dispose();
}});
return n3.event;
}
function c2(e3, t3, n3 = 100, i3 = false, o3) {
let r2, s3 = void 0, l3 = void 0, c3 = 0;
const d3 = new a({leakWarningThreshold: o3, onFirstListenerAdd() {
r2 = e3((e4) => {
c3++, s3 = t3(s3, e4), i3 && !l3 && (d3.fire(s3), s3 = void 0), clearTimeout(l3), l3 = setTimeout(() => {
const e5 = s3;
s3 = void 0, l3 = void 0, (!i3 || c3 > 1) && d3.fire(e5), c3 = 0;
}, n3);
});
}, onLastListenerRemove() {
r2.dispose();
}});
return d3.event;
}
function d2(e3) {
let t3, n3 = true;
return o2(e3, (e4) => {
const i3 = n3 || e4 !== t3;
return n3 = false, t3 = e4, i3;
});
}
e2.None = () => r.a.None, e2.once = t2, e2.map = n2, e2.forEach = i2, e2.filter = o2, e2.signal = function(e3) {
return e3;
}, e2.any = function(...e3) {
return (t3, n3 = null, i3) => Object(r.e)(...e3.map((e4) => e4((e5) => t3.call(n3, e5), null, i3)));
}, e2.reduce = s2, e2.snapshot = l2, e2.debounce = c2, e2.stopwatch = function(e3) {
const i3 = new Date().getTime();
return n2(t2(e3), (e4) => new Date().getTime() - i3);
}, e2.latch = d2, e2.buffer = function(e3, t3 = false, n3 = []) {
let i3 = n3.slice(), o3 = e3((e4) => {
i3 ? i3.push(e4) : s3.fire(e4);
});
const r2 = () => {
i3 && i3.forEach((e4) => s3.fire(e4)), i3 = null;
}, s3 = new a({onFirstListenerAdd() {
o3 || (o3 = e3((e4) => s3.fire(e4)));
}, onFirstListenerDidAdd() {
i3 && (t3 ? setTimeout(r2) : r2());
}, onLastListenerRemove() {
o3 && o3.dispose(), o3 = null;
}});
return s3.event;
};
class h {
constructor(e3) {
this.event = e3;
}
map(e3) {
return new h(n2(this.event, e3));
}
forEach(e3) {
return new h(i2(this.event, e3));
}
filter(e3) {
return new h(o2(this.event, e3));
}
reduce(e3, t3) {
return new h(s2(this.event, e3, t3));
}
latch() {
return new h(d2(this.event));
}
debounce(e3, t3 = 100, n3 = false, i3) {
return new h(c2(this.event, e3, t3, n3, i3));
}
on(e3, t3, n3) {
return this.event(e3, t3, n3);
}
once(e3, n3, i3) {
return t2(this.event)(e3, n3, i3);
}
}
e2.chain = function(e3) {
return new h(e3);
}, e2.fromNodeEventEmitter = function(e3, t3, n3 = (e4) => e4) {
const i3 = (...e4) => o3.fire(n3(...e4)), o3 = new a({onFirstListenerAdd: () => e3.on(t3, i3), onLastListenerRemove: () => e3.removeListener(t3, i3)});
return o3.event;
}, e2.fromDOMEventEmitter = function(e3, t3, n3 = (e4) => e4) {
const i3 = (...e4) => o3.fire(n3(...e4)), o3 = new a({onFirstListenerAdd: () => e3.addEventListener(t3, i3), onLastListenerRemove: () => e3.removeEventListener(t3, i3)});
return o3.event;
}, e2.fromPromise = function(e3) {
const t3 = new a();
let n3 = false;
return e3.then(void 0, () => null).then(() => {
n3 ? t3.fire(void 0) : setTimeout(() => t3.fire(void 0), 0);
}), n3 = true, t3.event;
}, e2.toPromise = function(e3) {
return new Promise((n3) => t2(e3)(n3));
};
}(i || (i = {}));
class a {
constructor(e2) {
this._disposed = false, this._options = e2, this._leakageMon = void 0;
}
get event() {
return this._event || (this._event = (e2, t2, n2) => {
this._listeners || (this._listeners = new s.a());
const i2 = this._listeners.isEmpty();
i2 && this._options && this._options.onFirstListenerAdd && this._options.onFirstListenerAdd(this);
const o2 = this._listeners.push(t2 ? [e2, t2] : e2);
let l2, c2;
return i2 && this._options && this._options.onFirstListenerDidAdd && this._options.onFirstListenerDidAdd(this), this._options && this._options.onListenerDidAdd && this._options.onListenerDidAdd(this, e2, t2), this._leakageMon && (l2 = this._leakageMon.check(this._listeners.size)), c2 = {dispose: () => {
if (l2 && l2(), c2.dispose = a._noop, !this._disposed && (o2(), this._options && this._options.onLastListenerRemove)) {
this._listeners && !this._listeners.isEmpty() || this._options.onLastListenerRemove(this);
}
}}, n2 instanceof r.b ? n2.add(c2) : Array.isArray(n2) && n2.push(c2), c2;
}), this._event;
}
fire(e2) {
if (this._listeners) {
this._deliveryQueue || (this._deliveryQueue = new s.a());
for (let t2 of this._listeners)
this._deliveryQueue.push([t2, e2]);
for (; this._deliveryQueue.size > 0; ) {
const [e3, t2] = this._deliveryQueue.shift();
try {
"function" == typeof e3 ? e3.call(void 0, t2) : e3[0].call(e3[1], t2);
} catch (e4) {
Object(o.e)(e4);
}
}
}
}
dispose() {
this._listeners && this._listeners.clear(), this._deliveryQueue && this._deliveryQueue.clear(), this._leakageMon && this._leakageMon.dispose(), this._disposed = true;
}
}
a._noop = function() {
};
class l extends a {
constructor(e2) {
super(e2), this._isPaused = 0, this._eventQueue = new s.a(), this._mergeFn = e2 && e2.merge;
}
pause() {
this._isPaused++;
}
resume() {
if (0 !== this._isPaused && 0 == --this._isPaused)
if (this._mergeFn) {
const e2 = this._eventQueue.toArray();
this._eventQueue.clear(), super.fire(this._mergeFn(e2));
} else
for (; !this._isPaused && 0 !== this._eventQueue.size; )
super.fire(this._eventQueue.shift());
}
fire(e2) {
this._listeners && (0 !== this._isPaused ? this._eventQueue.push(e2) : super.fire(e2));
}
}
class c {
constructor() {
this.buffers = [];
}
wrapEvent(e2) {
return (t2, n2, i2) => e2((e3) => {
const i3 = this.buffers[this.buffers.length - 1];
i3 ? i3.push(() => t2.call(n2, e3)) : t2.call(n2, e3);
}, void 0, i2);
}
bufferEvents(e2) {
const t2 = [];
this.buffers.push(t2);
const n2 = e2();
return this.buffers.pop(), t2.forEach((e3) => e3()), n2;
}
}
class d {
constructor() {
this.listening = false, this.inputEvent = i.None, this.inputEventListener = r.a.None, this.emitter = new a({onFirstListenerDidAdd: () => {
this.listening = true, this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter);
}, onLastListenerRemove: () => {
this.listening = false, this.inputEventListener.dispose();
}}), this.event = this.emitter.event;
}
set input(e2) {
this.inputEvent = e2, this.listening && (this.inputEventListener.dispose(), this.inputEventListener = e2(this.emitter.fire, this.emitter));
}
dispose() {
this.inputEventListener.dispose(), this.emitter.dispose();
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i;
});
var i, o = n(10);
!function(e2) {
e2.editorSimpleInput = new o.c("editorSimpleInput", false), e2.editorTextFocus = new o.c("editorTextFocus", false), e2.focus = new o.c("editorFocus", false), e2.textInputFocus = new o.c("textInputFocus", false), e2.readOnly = new o.c("editorReadonly", false), e2.columnSelection = new o.c("editorColumnSelection", false), e2.writable = e2.readOnly.toNegated(), e2.hasNonEmptySelection = new o.c("editorHasSelection", false), e2.hasOnlyEmptySelection = e2.hasNonEmptySelection.toNegated(), e2.hasMultipleSelections = new o.c("editorHasMultipleSelections", false), e2.hasSingleSelection = e2.hasMultipleSelections.toNegated(), e2.tabMovesFocus = new o.c("editorTabMovesFocus", false), e2.tabDoesNotMoveFocus = e2.tabMovesFocus.toNegated(), e2.isInWalkThroughSnippet = new o.c("isInEmbeddedEditor", false), e2.canUndo = new o.c("canUndo", false), e2.canRedo = new o.c("canRedo", false), e2.hoverVisible = new o.c("editorHoverVisible", false), e2.inCompositeEditor = new o.c("inCompositeEditor", void 0), e2.notInCompositeEditor = e2.inCompositeEditor.toNegated(), e2.languageId = new o.c("editorLangId", ""), e2.hasCompletionItemProvider = new o.c("editorHasCompletionItemProvider", false), e2.hasCodeActionsProvider = new o.c("editorHasCodeActionsProvider", false), e2.hasCodeLensProvider = new o.c("editorHasCodeLensProvider", false), e2.hasDefinitionProvider = new o.c("editorHasDefinitionProvider", false), e2.hasDeclarationProvider = new o.c("editorHasDeclarationProvider", false), e2.hasImplementationProvider = new o.c("editorHasImplementationProvider", false), e2.hasTypeDefinitionProvider = new o.c("editorHasTypeDefinitionProvider", false), e2.hasHoverProvider = new o.c("editorHasHoverProvider", false), e2.hasDocumentHighlightProvider = new o.c("editorHasDocumentHighlightProvider", false), e2.hasDocumentSymbolProvider = new o.c("editorHasDocumentSymbolProvider", false), e2.hasReferenceProvider = new o.c("editorHasReferenceProvider", false), e2.hasRenameProvider = new o.c("editorHasRenameProvider", false), e2.hasSignatureHelpProvider = new o.c("editorHasSignatureHelpProvider", false), e2.hasDocumentFormattingProvider = new o.c("editorHasDocumentFormattingProvider", false), e2.hasDocumentSelectionFormattingProvider = new o.c("editorHasDocumentSelectionFormattingProvider", false), e2.hasMultipleDocumentFormattingProvider = new o.c("editorHasMultipleDocumentFormattingProvider", false), e2.hasMultipleDocumentSelectionFormattingProvider = new o.c("editorHasMultipleDocumentSelectionFormattingProvider", false);
}(i || (i = {}));
}, function(e, t, n) {
"use strict";
function i(e2) {
return !e2 || "string" != typeof e2 || 0 === e2.trim().length;
}
function o(e2, t2, n2 = "0") {
const i2 = "" + e2, o2 = [i2];
for (let e3 = i2.length; e3 < t2; e3++)
o2.push(n2);
return o2.reverse().join("");
}
n.d(t, "D", function() {
return i;
}), n.d(t, "M", function() {
return o;
}), n.d(t, "x", function() {
return s;
}), n.d(t, "u", function() {
return a;
}), n.d(t, "v", function() {
return l;
}), n.d(t, "W", function() {
return c;
}), n.d(t, "K", function() {
return d;
}), n.d(t, "Q", function() {
return h;
}), n.d(t, "p", function() {
return u;
}), n.d(t, "V", function() {
return p;
}), n.d(t, "S", function() {
return m;
}), n.d(t, "s", function() {
return g;
}), n.d(t, "q", function() {
return f;
}), n.d(t, "P", function() {
return b;
}), n.d(t, "O", function() {
return _;
}), n.d(t, "w", function() {
return v;
}), n.d(t, "z", function() {
return w;
}), n.d(t, "J", function() {
return y;
}), n.d(t, "f", function() {
return C;
}), n.d(t, "h", function() {
return x;
}), n.d(t, "g", function() {
return S;
}), n.d(t, "i", function() {
return k;
}), n.d(t, "H", function() {
return E;
}), n.d(t, "I", function() {
return T;
}), n.d(t, "t", function() {
return N;
}), n.d(t, "T", function() {
return O;
}), n.d(t, "d", function() {
return D;
}), n.d(t, "e", function() {
return A;
}), n.d(t, "F", function() {
return R;
}), n.d(t, "G", function() {
return M;
}), n.d(t, "j", function() {
return P;
}), n.d(t, "A", function() {
return F;
}), n.d(t, "L", function() {
return z;
}), n.d(t, "N", function() {
return B;
}), n.d(t, "r", function() {
return j;
}), n.d(t, "m", function() {
return U;
}), n.d(t, "k", function() {
return q;
}), n.d(t, "B", function() {
return K;
}), n.d(t, "a", function() {
return G;
}), n.d(t, "n", function() {
return Y;
}), n.d(t, "l", function() {
return Z;
}), n.d(t, "E", function() {
return X;
}), n.d(t, "C", function() {
return Q;
}), n.d(t, "b", function() {
return J;
}), n.d(t, "U", function() {
return ee;
}), n.d(t, "o", function() {
return te;
}), n.d(t, "R", function() {
return ne;
}), n.d(t, "y", function() {
return ie;
}), n.d(t, "c", function() {
return oe;
});
const r = /{(\d+)}/g;
function s(e2, ...t2) {
return 0 === t2.length ? e2 : e2.replace(r, function(e3, n2) {
const i2 = parseInt(n2, 10);
return isNaN(i2) || i2 < 0 || i2 >= t2.length ? e3 : t2[i2];
});
}
function a(e2) {
return e2.replace(/[<>&]/g, function(e3) {
switch (e3) {
case "<":
return "<";
case ">":
return ">";
case "&":
return "&";
default:
return e3;
}
});
}
function l(e2) {
return e2.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&");
}
function c(e2, t2 = " ") {
return h(d(e2, t2), t2);
}
function d(e2, t2) {
if (!e2 || !t2)
return e2;
const n2 = t2.length;
if (0 === n2 || 0 === e2.length)
return e2;
let i2 = 0;
for (; e2.indexOf(t2, i2) === i2; )
i2 += n2;
return e2.substring(i2);
}
function h(e2, t2) {
if (!e2 || !t2)
return e2;
const n2 = t2.length, i2 = e2.length;
if (0 === n2 || 0 === i2)
return e2;
let o2 = i2, r2 = -1;
for (; r2 = e2.lastIndexOf(t2, o2 - 1), -1 !== r2 && r2 + n2 === o2; ) {
if (0 === r2)
return "";
o2 = r2;
}
return e2.substring(0, o2);
}
function u(e2) {
return e2.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, "\\$&").replace(/[\*]/g, ".*");
}
function p(e2) {
return e2.replace(/\*/g, "");
}
function m(e2, t2) {
if (e2.length < t2.length)
return false;
if (e2 === t2)
return true;
for (let n2 = 0; n2 < t2.length; n2++)
if (e2[n2] !== t2[n2])
return false;
return true;
}
function g(e2, t2) {
const n2 = e2.length - t2.length;
return n2 > 0 ? e2.indexOf(t2, n2) === n2 : 0 === n2 && e2 === t2;
}
function f(e2, t2, n2 = {}) {
if (!e2)
throw new Error("Cannot create regex from empty string");
t2 || (e2 = l(e2)), n2.wholeWord && (/\B/.test(e2.charAt(0)) || (e2 = "\\b" + e2), /\B/.test(e2.charAt(e2.length - 1)) || (e2 += "\\b"));
let i2 = "";
return n2.global && (i2 += "g"), n2.matchCase || (i2 += "i"), n2.multiline && (i2 += "m"), n2.unicode && (i2 += "u"), new RegExp(e2, i2);
}
function b(e2) {
if ("^" === e2.source || "^$" === e2.source || "$" === e2.source || "^\\s*$" === e2.source)
return false;
return !(!e2.exec("") || 0 !== e2.lastIndex);
}
function _(e2) {
return (e2.global ? "g" : "") + (e2.ignoreCase ? "i" : "") + (e2.multiline ? "m" : "") + (e2.unicode ? "u" : "");
}
function v(e2) {
for (let t2 = 0, n2 = e2.length; t2 < n2; t2++) {
const n3 = e2.charCodeAt(t2);
if (32 !== n3 && 9 !== n3)
return t2;
}
return -1;
}
function w(e2, t2 = 0, n2 = e2.length) {
for (let i2 = t2; i2 < n2; i2++) {
const n3 = e2.charCodeAt(i2);
if (32 !== n3 && 9 !== n3)
return e2.substring(t2, i2);
}
return e2.substring(t2, n2);
}
function y(e2, t2 = e2.length - 1) {
for (let n2 = t2; n2 >= 0; n2--) {
const t3 = e2.charCodeAt(n2);
if (32 !== t3 && 9 !== t3)
return n2;
}
return -1;
}
function C(e2, t2) {
return e2 < t2 ? -1 : e2 > t2 ? 1 : 0;
}
function x(e2, t2, n2 = 0, i2 = e2.length, o2 = 0, r2 = t2.length) {
for (; n2 < i2 && o2 < r2; n2++, o2++) {
let i3 = e2.charCodeAt(n2), r3 = t2.charCodeAt(o2);
if (i3 < r3)
return -1;
if (i3 > r3)
return 1;
}
const s2 = i2 - n2, a2 = r2 - o2;
return s2 < a2 ? -1 : s2 > a2 ? 1 : 0;
}
function S(e2, t2) {
return k(e2, t2, 0, e2.length, 0, t2.length);
}
function k(e2, t2, n2 = 0, i2 = e2.length, o2 = 0, r2 = t2.length) {
for (; n2 < i2 && o2 < r2; n2++, o2++) {
let s3 = e2.charCodeAt(n2), a3 = t2.charCodeAt(o2);
if (s3 === a3)
continue;
const l2 = s3 - a3;
if ((32 !== l2 || !T(a3)) && (-32 !== l2 || !T(s3)))
return E(s3) && E(a3) ? l2 : x(e2.toLowerCase(), t2.toLowerCase(), n2, i2, o2, r2);
}
const s2 = i2 - n2, a2 = r2 - o2;
return s2 < a2 ? -1 : s2 > a2 ? 1 : 0;
}
function E(e2) {
return e2 >= 97 && e2 <= 122;
}
function T(e2) {
return e2 >= 65 && e2 <= 90;
}
function L(e2) {
return E(e2) || T(e2);
}
function N(e2, t2) {
return e2.length === t2.length && I(e2, t2);
}
function I(e2, t2, n2 = e2.length) {
for (let i2 = 0; i2 < n2; i2++) {
const n3 = e2.charCodeAt(i2), o2 = t2.charCodeAt(i2);
if (n3 !== o2) {
if (L(n3) && L(o2)) {
const e3 = Math.abs(n3 - o2);
if (0 !== e3 && 32 !== e3)
return false;
} else if (String.fromCharCode(n3).toLowerCase() !== String.fromCharCode(o2).toLowerCase())
return false;
}
}
return true;
}
function O(e2, t2) {
const n2 = t2.length;
return !(t2.length > e2.length) && I(e2, t2, n2);
}
function D(e2, t2) {
let n2, i2 = Math.min(e2.length, t2.length);
for (n2 = 0; n2 < i2; n2++)
if (e2.charCodeAt(n2) !== t2.charCodeAt(n2))
return n2;
return i2;
}
function A(e2, t2) {
let n2, i2 = Math.min(e2.length, t2.length);
const o2 = e2.length - 1, r2 = t2.length - 1;
for (n2 = 0; n2 < i2; n2++)
if (e2.charCodeAt(o2 - n2) !== t2.charCodeAt(r2 - n2))
return n2;
return i2;
}
function R(e2) {
return 55296 <= e2 && e2 <= 56319;
}
function M(e2) {
return 56320 <= e2 && e2 <= 57343;
}
function P(e2, t2) {
return t2 - 56320 + (e2 - 55296 << 10) + 65536;
}
function F(e2, t2, n2) {
const i2 = e2.charCodeAt(n2);
if (R(i2) && n2 + 1 < t2) {
const t3 = e2.charCodeAt(n2 + 1);
if (M(t3))
return P(i2, t3);
}
return i2;
}
function W(e2, t2) {
const n2 = e2.charCodeAt(t2 - 1);
if (M(n2) && t2 > 1) {
const i2 = e2.charCodeAt(t2 - 2);
if (R(i2))
return P(i2, n2);
}
return n2;
}
function z(e2, t2) {
const n2 = re.getInstance(), i2 = t2, o2 = e2.length, r2 = F(e2, o2, t2);
t2 += r2 >= 65536 ? 2 : 1;
let s2 = n2.getGraphemeBreakType(r2);
for (; t2 < o2; ) {
const i3 = F(e2, o2, t2), r3 = n2.getGraphemeBreakType(i3);
if (oe(s2, r3))
break;
t2 += i3 >= 65536 ? 2 : 1, s2 = r3;
}
return t2 - i2;
}
function B(e2, t2) {
const n2 = re.getInstance(), i2 = t2, o2 = W(e2, t2);
t2 -= o2 >= 65536 ? 2 : 1;
let r2 = n2.getGraphemeBreakType(o2);
for (; t2 > 0; ) {
const i3 = W(e2, t2), o3 = n2.getGraphemeBreakType(i3);
if (oe(o3, r2))
break;
t2 -= i3 >= 65536 ? 2 : 1, r2 = o3;
}
return i2 - t2;
}
function j(e2) {
const t2 = e2.byteLength, n2 = [];
let i2 = 0;
for (; i2 < t2; ) {
const o2 = e2[i2];
let r2;
if (r2 = o2 >= 240 && i2 + 3 < t2 ? (7 & e2[i2++]) << 18 >>> 0 | (63 & e2[i2++]) << 12 >>> 0 | (63 & e2[i2++]) << 6 >>> 0 | (63 & e2[i2++]) << 0 >>> 0 : o2 >= 224 && i2 + 2 < t2 ? (15 & e2[i2++]) << 12 >>> 0 | (63 & e2[i2++]) << 6 >>> 0 | (63 & e2[i2++]) << 0 >>> 0 : o2 >= 192 && i2 + 1 < t2 ? (31 & e2[i2++]) << 6 >>> 0 | (63 & e2[i2++]) << 0 >>> 0 : e2[i2++], r2 >= 0 && r2 <= 55295 || r2 >= 57344 && r2 <= 65535)
n2.push(String.fromCharCode(r2));
else if (r2 >= 65536 && r2 <= 1114111) {
const e3 = r2 - 65536, t3 = 55296 + ((1047552 & e3) >>> 10), i3 = 56320 + ((1023 & e3) >>> 0);
n2.push(String.fromCharCode(t3)), n2.push(String.fromCharCode(i3));
} else
n2.push(String.fromCharCode(65533));
}
return n2.join("");
}
const V = /(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;
function U(e2) {
return V.test(e2);
}
const H = /(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDE73\uDE78-\uDE82\uDE90-\uDE95])/;
function q(e2) {
return H.test(e2);
}
const $ = /^[\t\n\r\x20-\x7E]*$/;
function K(e2) {
return $.test(e2);
}
const G = /[\u2028\u2029]/;
function Y(e2) {
return G.test(e2);
}
function Z(e2) {
for (let t2 = 0, n2 = e2.length; t2 < n2; t2++)
if (X(e2.charCodeAt(t2)))
return true;
return false;
}
function X(e2) {
return (e2 = +e2) >= 11904 && e2 <= 55215 || e2 >= 63744 && e2 <= 64255 || e2 >= 65281 && e2 <= 65374;
}
function Q(e2) {
return e2 >= 127462 && e2 <= 127487 || e2 >= 9728 && e2 <= 10175 || e2 >= 127744 && e2 <= 128591 || e2 >= 128640 && e2 <= 128764 || e2 >= 128992 && e2 <= 129003 || e2 >= 129280 && e2 <= 129535 || e2 >= 129648 && e2 <= 129651 || e2 >= 129656 && e2 <= 129666 || e2 >= 129680 && e2 <= 129685;
}
const J = String.fromCharCode(65279);
function ee(e2) {
return !!(e2 && e2.length > 0 && 65279 === e2.charCodeAt(0));
}
function te(e2, t2 = false) {
return !!e2 && (t2 && (e2 = e2.replace(/\\./g, "")), e2.toLowerCase() !== e2);
}
function ne(e2) {
return (e2 %= 52) < 26 ? String.fromCharCode(97 + e2) : String.fromCharCode(65 + e2 - 26);
}
function ie(e2) {
return re.getInstance().getGraphemeBreakType(e2);
}
function oe(e2, t2) {
return 0 === e2 ? 5 !== t2 && 7 !== t2 : (2 !== e2 || 3 !== t2) && (4 === e2 || 2 === e2 || 3 === e2 || (4 === t2 || 2 === t2 || 3 === t2 || (8 !== e2 || 8 !== t2 && 9 !== t2 && 11 !== t2 && 12 !== t2) && ((11 !== e2 && 9 !== e2 || 9 !== t2 && 10 !== t2) && ((12 !== e2 && 10 !== e2 || 10 !== t2) && (5 !== t2 && 13 !== t2 && (7 !== t2 && (1 !== e2 && ((13 !== e2 || 14 !== t2) && (6 !== e2 || 6 !== t2)))))))));
}
class re {
constructor() {
this._data = JSON.parse("[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]");
}
static getInstance() {
return re._INSTANCE || (re._INSTANCE = new re()), re._INSTANCE;
}
getGraphemeBreakType(e2) {
if (e2 < 32)
return 10 === e2 ? 3 : 13 === e2 ? 2 : 4;
if (e2 < 127)
return 0;
const t2 = this._data, n2 = t2.length / 3;
let i2 = 1;
for (; i2 <= n2; )
if (e2 < t2[3 * i2])
i2 *= 2;
else {
if (!(e2 > t2[3 * i2 + 1]))
return t2[3 * i2 + 2];
i2 = 2 * i2 + 1;
}
return 0;
}
}
re._INSTANCE = null;
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i;
});
class i {
constructor(e2, t2) {
this.lineNumber = e2, this.column = t2;
}
with(e2 = this.lineNumber, t2 = this.column) {
return e2 === this.lineNumber && t2 === this.column ? this : new i(e2, t2);
}
delta(e2 = 0, t2 = 0) {
return this.with(this.lineNumber + e2, this.column + t2);
}
equals(e2) {
return i.equals(this, e2);
}
static equals(e2, t2) {
return !e2 && !t2 || !!e2 && !!t2 && e2.lineNumber === t2.lineNumber && e2.column === t2.column;
}
isBefore(e2) {
return i.isBefore(this, e2);
}
static isBefore(e2, t2) {
return e2.lineNumber < t2.lineNumber || !(t2.lineNumber < e2.lineNumber) && e2.column < t2.column;
}
isBeforeOrEqual(e2) {
return i.isBeforeOrEqual(this, e2);
}
static isBeforeOrEqual(e2, t2) {
return e2.lineNumber < t2.lineNumber || !(t2.lineNumber < e2.lineNumber) && e2.column <= t2.column;
}
static compare(e2, t2) {
let n2 = 0 | e2.lineNumber, i2 = 0 | t2.lineNumber;
if (n2 === i2) {
return (0 | e2.column) - (0 | t2.column);
}
return n2 - i2;
}
clone() {
return new i(this.lineNumber, this.column);
}
toString() {
return "(" + this.lineNumber + "," + this.column + ")";
}
static lift(e2) {
return new i(e2.lineNumber, e2.column);
}
static isIPosition(e2) {
return e2 && "number" == typeof e2.lineNumber && "number" == typeof e2.column;
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return l;
}), n.d(t, "c", function() {
return C;
}), n.d(t, "b", function() {
return x;
}), n.d(t, "d", function() {
return S;
});
var i = n(8), o = n(18), r = n(11);
const s = new Map();
s.set("false", false), s.set("true", true), s.set("isMac", r.f), s.set("isLinux", r.d), s.set("isWindows", r.i), s.set("isWeb", r.h), s.set("isMacNative", r.f && !r.h);
const a = Object.prototype.hasOwnProperty;
class l {
static has(e2) {
return u.create(e2);
}
static equals(e2, t2) {
return p.create(e2, t2);
}
static regex(e2, t2) {
return _.create(e2, t2);
}
static not(e2) {
return b.create(e2);
}
static and(...e2) {
return w.create(e2);
}
static or(...e2) {
return y.create(e2);
}
static deserialize(e2, t2 = false) {
if (e2)
return this._deserializeOrExpression(e2, t2);
}
static _deserializeOrExpression(e2, t2) {
let n2 = e2.split("||");
return y.create(n2.map((e3) => this._deserializeAndExpression(e3, t2)));
}
static _deserializeAndExpression(e2, t2) {
let n2 = e2.split("&&");
return w.create(n2.map((e3) => this._deserializeOne(e3, t2)));
}
static _deserializeOne(e2, t2) {
if ((e2 = e2.trim()).indexOf("!=") >= 0) {
let n2 = e2.split("!=");
return f.create(n2[0].trim(), this._deserializeValue(n2[1], t2));
}
if (e2.indexOf("==") >= 0) {
let n2 = e2.split("==");
return p.create(n2[0].trim(), this._deserializeValue(n2[1], t2));
}
if (e2.indexOf("=~") >= 0) {
let n2 = e2.split("=~");
return _.create(n2[0].trim(), this._deserializeRegexValue(n2[1], t2));
}
if (e2.indexOf(" in ") >= 0) {
let t3 = e2.split(" in ");
return m.create(t3[0].trim(), t3[1].trim());
}
return /^\!\s*/.test(e2) ? b.create(e2.substr(1).trim()) : u.create(e2);
}
static _deserializeValue(e2, t2) {
if ("true" === (e2 = e2.trim()))
return true;
if ("false" === e2)
return false;
let n2 = /^'([^']*)'$/.exec(e2);
return n2 ? n2[1].trim() : e2;
}
static _deserializeRegexValue(e2, t2) {
if (Object(i.D)(e2)) {
if (t2)
throw new Error("missing regexp-value for =~-expression");
return console.warn("missing regexp-value for =~-expression"), null;
}
let n2 = e2.indexOf("/"), o2 = e2.lastIndexOf("/");
if (n2 === o2 || n2 < 0) {
if (t2)
throw new Error(`bad regexp-value '${e2}', missing /-enclosure`);
return console.warn(`bad regexp-value '${e2}', missing /-enclosure`), null;
}
let r2 = e2.slice(n2 + 1, o2), s2 = "i" === e2[o2 + 1] ? "i" : "";
try {
return new RegExp(r2, s2);
} catch (n3) {
if (t2)
throw new Error(`bad regexp-value '${e2}', parse error: ${n3}`);
return console.warn(`bad regexp-value '${e2}', parse error: ${n3}`), null;
}
}
}
function c(e2, t2) {
return e2.cmp(t2);
}
class d {
constructor() {
this.type = 0;
}
cmp(e2) {
return this.type - e2.type;
}
equals(e2) {
return e2.type === this.type;
}
evaluate(e2) {
return false;
}
serialize() {
return "false";
}
keys() {
return [];
}
negate() {
return h.INSTANCE;
}
}
d.INSTANCE = new d();
class h {
constructor() {
this.type = 1;
}
cmp(e2) {
return this.type - e2.type;
}
equals(e2) {
return e2.type === this.type;
}
evaluate(e2) {
return true;
}
serialize() {
return "true";
}
keys() {
return [];
}
negate() {
return d.INSTANCE;
}
}
h.INSTANCE = new h();
class u {
constructor(e2) {
this.key = e2, this.type = 2;
}
static create(e2) {
const t2 = s.get(e2);
return "boolean" == typeof t2 ? t2 ? h.INSTANCE : d.INSTANCE : new u(e2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this.key < e2.key ? -1 : this.key > e2.key ? 1 : 0;
}
equals(e2) {
return e2.type === this.type && this.key === e2.key;
}
evaluate(e2) {
return !!e2.getValue(this.key);
}
serialize() {
return this.key;
}
keys() {
return [this.key];
}
negate() {
return b.create(this.key);
}
}
class p {
constructor(e2, t2) {
this.key = e2, this.value = t2, this.type = 4;
}
static create(e2, t2) {
if ("boolean" == typeof t2)
return t2 ? u.create(e2) : b.create(e2);
const n2 = s.get(e2);
if ("boolean" == typeof n2) {
return t2 === (n2 ? "true" : "false") ? h.INSTANCE : d.INSTANCE;
}
return new p(e2, t2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this.key < e2.key ? -1 : this.key > e2.key ? 1 : this.value < e2.value ? -1 : this.value > e2.value ? 1 : 0;
}
equals(e2) {
return e2.type === this.type && (this.key === e2.key && this.value === e2.value);
}
evaluate(e2) {
return e2.getValue(this.key) == this.value;
}
serialize() {
return this.key + " == '" + this.value + "'";
}
keys() {
return [this.key];
}
negate() {
return f.create(this.key, this.value);
}
}
class m {
constructor(e2, t2) {
this.key = e2, this.valueKey = t2, this.type = 10;
}
static create(e2, t2) {
return new m(e2, t2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this.key < e2.key ? -1 : this.key > e2.key ? 1 : this.valueKey < e2.valueKey ? -1 : this.valueKey > e2.valueKey ? 1 : 0;
}
equals(e2) {
return e2.type === this.type && (this.key === e2.key && this.valueKey === e2.valueKey);
}
evaluate(e2) {
const t2 = e2.getValue(this.valueKey), n2 = e2.getValue(this.key);
return Array.isArray(t2) ? t2.indexOf(n2) >= 0 : "string" == typeof n2 && "object" == typeof t2 && null !== t2 && a.call(t2, n2);
}
serialize() {
return this.key + " in '" + this.valueKey + "'";
}
keys() {
return [this.key, this.valueKey];
}
negate() {
return g.create(this);
}
}
class g {
constructor(e2) {
this._actual = e2, this.type = 11;
}
static create(e2) {
return new g(e2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this._actual.cmp(e2._actual);
}
equals(e2) {
return e2.type === this.type && this._actual.equals(e2._actual);
}
evaluate(e2) {
return !this._actual.evaluate(e2);
}
serialize() {
throw new Error("Method not implemented.");
}
keys() {
return this._actual.keys();
}
negate() {
return this._actual;
}
}
class f {
constructor(e2, t2) {
this.key = e2, this.value = t2, this.type = 5;
}
static create(e2, t2) {
if ("boolean" == typeof t2)
return t2 ? b.create(e2) : u.create(e2);
const n2 = s.get(e2);
if ("boolean" == typeof n2) {
return t2 === (n2 ? "true" : "false") ? d.INSTANCE : h.INSTANCE;
}
return new f(e2, t2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this.key < e2.key ? -1 : this.key > e2.key ? 1 : this.value < e2.value ? -1 : this.value > e2.value ? 1 : 0;
}
equals(e2) {
return e2.type === this.type && (this.key === e2.key && this.value === e2.value);
}
evaluate(e2) {
return e2.getValue(this.key) != this.value;
}
serialize() {
return this.key + " != '" + this.value + "'";
}
keys() {
return [this.key];
}
negate() {
return p.create(this.key, this.value);
}
}
class b {
constructor(e2) {
this.key = e2, this.type = 3;
}
static create(e2) {
const t2 = s.get(e2);
return "boolean" == typeof t2 ? t2 ? d.INSTANCE : h.INSTANCE : new b(e2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this.key < e2.key ? -1 : this.key > e2.key ? 1 : 0;
}
equals(e2) {
return e2.type === this.type && this.key === e2.key;
}
evaluate(e2) {
return !e2.getValue(this.key);
}
serialize() {
return "!" + this.key;
}
keys() {
return [this.key];
}
negate() {
return u.create(this.key);
}
}
class _ {
constructor(e2, t2) {
this.key = e2, this.regexp = t2, this.type = 7;
}
static create(e2, t2) {
return new _(e2, t2);
}
cmp(e2) {
if (e2.type !== this.type)
return this.type - e2.type;
if (this.key < e2.key)
return -1;
if (this.key > e2.key)
return 1;
const t2 = this.regexp ? this.regexp.source : "", n2 = e2.regexp ? e2.regexp.source : "";
return t2 < n2 ? -1 : t2 > n2 ? 1 : 0;
}
equals(e2) {
if (e2.type === this.type) {
const t2 = this.regexp ? this.regexp.source : "", n2 = e2.regexp ? e2.regexp.source : "";
return this.key === e2.key && t2 === n2;
}
return false;
}
evaluate(e2) {
let t2 = e2.getValue(this.key);
return !!this.regexp && this.regexp.test(t2);
}
serialize() {
const e2 = this.regexp ? `/${this.regexp.source}/${this.regexp.ignoreCase ? "i" : ""}` : "/invalid/";
return `${this.key} =~ ${e2}`;
}
keys() {
return [this.key];
}
negate() {
return v.create(this);
}
}
class v {
constructor(e2) {
this._actual = e2, this.type = 8;
}
static create(e2) {
return new v(e2);
}
cmp(e2) {
return e2.type !== this.type ? this.type - e2.type : this._actual.cmp(e2._actual);
}
equals(e2) {
return e2.type === this.type && this._actual.equals(e2._actual);
}
evaluate(e2) {
return !this._actual.evaluate(e2);
}
serialize() {
throw new Error("Method not implemented.");
}
keys() {
return this._actual.keys();
}
negate() {
return this._actual;
}
}
class w {
constructor(e2) {
this.expr = e2, this.type = 6;
}
static create(e2) {
return w._normalizeArr(e2);
}
cmp(e2) {
if (e2.type !== this.type)
return this.type - e2.type;
if (this.expr.length < e2.expr.length)
return -1;
if (this.expr.length > e2.expr.length)
return 1;
for (let t2 = 0, n2 = this.expr.length; t2 < n2; t2++) {
const n3 = c(this.expr[t2], e2.expr[t2]);
if (0 !== n3)
return n3;
}
return 0;
}
equals(e2) {
if (e2.type === this.type) {
if (this.expr.length !== e2.expr.length)
return false;
for (let t2 = 0, n2 = this.expr.length; t2 < n2; t2++)
if (!this.expr[t2].equals(e2.expr[t2]))
return false;
return true;
}
return false;
}
evaluate(e2) {
for (let t2 = 0, n2 = this.expr.length; t2 < n2; t2++)
if (!this.expr[t2].evaluate(e2))
return false;
return true;
}
static _normalizeArr(e2) {
const t2 = [];
let n2 = false;
for (const i2 of e2)
if (i2)
if (1 !== i2.type) {
if (0 === i2.type)
return d.INSTANCE;
6 !== i2.type ? t2.push(i2) : t2.push(...i2.expr);
} else
n2 = true;
if (0 === t2.length && n2)
return h.INSTANCE;
if (0 !== t2.length) {
if (1 === t2.length)
return t2[0];
for (t2.sort(c); t2.length > 1; ) {
const e3 = t2[t2.length - 1];
if (9 !== e3.type)
break;
t2.pop();
const n3 = t2.pop(), i2 = y.create(e3.expr.map((e4) => w.create([e4, n3])));
i2 && (t2.push(i2), t2.sort(c));
}
return new w(t2);
}
}
serialize() {
return this.expr.map((e2) => e2.serialize()).join(" && ");
}
keys() {
const e2 = [];
for (let t2 of this.expr)
e2.push(...t2.keys());
return e2;
}
negate() {
let e2 = [];
for (let t2 of this.expr)
e2.push(t2.negate());
return y.create(e2);
}
}
class y {
constructor(e2) {
this.expr = e2, this.type = 9;
}
static create(e2) {
const t2 = y._normalizeArr(e2);
if (0 !== t2.length)
return 1 === t2.length ? t2[0] : new y(t2);
}
cmp(e2) {
if (e2.type !== this.type)
return this.type - e2.type;
if (this.expr.length < e2.expr.length)
return -1;
if (this.expr.length > e2.expr.length)
return 1;
for (let t2 = 0, n2 = this.expr.length; t2 < n2; t2++) {
const n3 = c(this.expr[t2], e2.expr[t2]);
if (0 !== n3)
return n3;
}
return 0;
}
equals(e2) {
if (e2.type === this.type) {
if (this.expr.length !== e2.expr.length)
return false;
for (let t2 = 0, n2 = this.expr.length; t2 < n2; t2++)
if (!this.expr[t2].equals(e2.expr[t2]))
return false;
return true;
}
return false;
}
evaluate(e2) {
for (let t2 = 0, n2 = this.expr.length; t2 < n2; t2++)
if (this.expr[t2].evaluate(e2))
return true;
return false;
}
static _normalizeArr(e2) {
let t2 = [], n2 = false;
if (e2) {
for (let i2 = 0, o2 = e2.length; i2 < o2; i2++) {
const o3 = e2[i2];
if (o3)
if (0 !== o3.type) {
if (1 === o3.type)
return [h.INSTANCE];
9 !== o3.type ? t2.push(o3) : t2 = t2.concat(o3.expr);
} else
n2 = true;
}
if (0 === t2.length && n2)
return [d.INSTANCE];
t2.sort(c);
}
return t2;
}
serialize() {
return this.expr.map((e2) => e2.serialize()).join(" || ");
}
keys() {
const e2 = [];
for (let t2 of this.expr)
e2.push(...t2.keys());
return e2;
}
negate() {
let e2 = [];
for (let t3 of this.expr)
e2.push(t3.negate());
const t2 = (e3) => 9 === e3.type ? e3.expr : [e3];
for (; e2.length > 1; ) {
const n2 = e2.shift(), i2 = e2.shift(), o2 = [];
for (const e3 of t2(n2))
for (const n3 of t2(i2))
o2.push(l.and(e3, n3));
e2.unshift(l.or(...o2));
}
return e2[0];
}
}
class C extends u {
constructor(e2, t2) {
super(e2), this._defaultValue = t2;
}
bindTo(e2) {
return e2.createKey(this.key, this._defaultValue);
}
getValue(e2) {
return e2.getContextKeyValue(this.key);
}
toNegated() {
return l.not(this.key);
}
}
const x = Object(o.c)("contextKeyService"), S = "setContext";
}, function(e, t, n) {
"use strict";
(function(e2, i) {
n.d(t, "i", function() {
return f;
}), n.d(t, "f", function() {
return b;
}), n.d(t, "d", function() {
return _;
}), n.d(t, "g", function() {
return v;
}), n.d(t, "h", function() {
return w;
}), n.d(t, "c", function() {
return y;
}), n.d(t, "b", function() {
return C;
}), n.d(t, "j", function() {
return x;
}), n.d(t, "a", function() {
return S;
}), n.d(t, "e", function() {
return T;
});
let o = false, r = false, s = false, a = false, l = false, c = false, d = void 0, h = "en", u = void 0, p = void 0;
const m = void 0 !== e2 && void 0 !== e2.versions && void 0 !== e2.versions.electron && "renderer" === e2.type;
if ("object" != typeof navigator || m) {
if ("object" == typeof e2) {
o = "win32" === e2.platform, r = "darwin" === e2.platform, s = "linux" === e2.platform, d = "en", h = "en";
const t2 = e2.env.VSCODE_NLS_CONFIG;
if (t2)
try {
const e3 = JSON.parse(t2), n2 = e3.availableLanguages["*"];
d = e3.locale, h = n2 || "en", u = e3._translationsConfigFile;
} catch (e3) {
}
a = true;
}
} else
p = navigator.userAgent, o = p.indexOf("Windows") >= 0, r = p.indexOf("Macintosh") >= 0, c = (p.indexOf("Macintosh") >= 0 || p.indexOf("iPad") >= 0 || p.indexOf("iPhone") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0, s = p.indexOf("Linux") >= 0, l = true, d = navigator.language, h = d;
let g = 0;
r ? g = 1 : o ? g = 3 : s && (g = 2);
const f = o, b = r, _ = s, v = a, w = l, y = c, C = "object" == typeof self ? self : "object" == typeof i ? i : {}, x = function() {
if (C.setImmediate)
return C.setImmediate.bind(C);
if ("function" == typeof C.postMessage && !C.importScripts) {
let e3 = [];
C.addEventListener("message", (t4) => {
if (t4.data && t4.data.vscodeSetImmediateId)
for (let n2 = 0, i2 = e3.length; n2 < i2; n2++) {
const i3 = e3[n2];
if (i3.id === t4.data.vscodeSetImmediateId)
return e3.splice(n2, 1), void i3.callback();
}
});
let t3 = 0;
return (n2) => {
const i2 = ++t3;
e3.push({id: i2, callback: n2}), C.postMessage({vscodeSetImmediateId: i2}, "*");
};
}
if (void 0 !== e2 && "function" == typeof e2.nextTick)
return e2.nextTick.bind(e2);
const t2 = Promise.resolve();
return (e3) => t2.then(e3);
}(), S = r || c ? 2 : o ? 1 : 3;
let k = true, E = false;
function T() {
if (!E) {
E = true;
const e3 = new Uint8Array(2);
e3[0] = 1, e3[1] = 2;
const t2 = new Uint16Array(e3.buffer);
k = 513 === t2[0];
}
return k;
}
}).call(this, n(86), n(137));
}, function(e, t, n) {
"use strict";
n.d(t, "r", function() {
return m;
}), n.d(t, "B", function() {
return g;
}), n.d(t, "F", function() {
return f;
}), n.d(t, "E", function() {
return b;
}), n.d(t, "z", function() {
return _;
}), n.d(t, "h", function() {
return v;
}), n.d(t, "G", function() {
return y;
}), n.d(t, "A", function() {
return w;
}), n.d(t, "n", function() {
return C;
}), n.d(t, "v", function() {
return x;
}), n.d(t, "w", function() {
return S;
}), n.d(t, "d", function() {
return k;
}), n.d(t, "y", function() {
return E;
}), n.d(t, "p", function() {
return T;
}), n.d(t, "m", function() {
return L;
}), n.d(t, "i", function() {
return N;
}), n.d(t, "u", function() {
return I;
}), n.d(t, "f", function() {
return O;
}), n.d(t, "e", function() {
return D;
}), n.d(t, "q", function() {
return A;
}), n.d(t, "D", function() {
return R;
}), n.d(t, "b", function() {
return M;
}), n.d(t, "a", function() {
return P;
}), n.d(t, "g", function() {
return F;
}), n.d(t, "j", function() {
return W;
}), n.d(t, "t", function() {
return z;
}), n.d(t, "s", function() {
return B;
}), n.d(t, "c", function() {
return j;
}), n.d(t, "x", function() {
return V;
}), n.d(t, "o", function() {
return U;
}), n.d(t, "l", function() {
return H;
}), n.d(t, "k", function() {
return q;
}), n.d(t, "C", function() {
return $;
});
var i = n(23), o = n(3), r = n(6), s = n(2), a = n(187), l = n(42);
function c(e2, t2, n2, i2) {
if (Array.isArray(e2)) {
let o2 = 0;
for (const r2 of e2) {
const e3 = c(r2, t2, n2, i2);
if (10 === e3)
return e3;
e3 > o2 && (o2 = e3);
}
return o2;
}
if ("string" == typeof e2)
return i2 ? "*" === e2 ? 5 : e2 === n2 ? 10 : 0 : 0;
if (e2) {
const {language: o2, pattern: r2, scheme: s2, hasAccessToAllModels: c2} = e2;
if (!i2 && !c2)
return 0;
let d2 = 0;
if (s2)
if (s2 === t2.scheme)
d2 = 10;
else {
if ("*" !== s2)
return 0;
d2 = 5;
}
if (o2)
if (o2 === n2)
d2 = 10;
else {
if ("*" !== o2)
return 0;
d2 = Math.max(d2, 5);
}
if (r2) {
let e3;
if (e3 = "string" == typeof r2 ? r2 : Object.assign(Object.assign({}, r2), {base: Object(l.d)(r2.base)}), e3 !== t2.fsPath && !Object(a.a)(e3, t2.fsPath))
return 0;
d2 = 10;
}
return d2;
}
return 0;
}
var d = n(64);
function h(e2) {
return "string" != typeof e2 && (Array.isArray(e2) ? e2.every(h) : !!e2.exclusive);
}
class u {
constructor() {
this._clock = 0, this._entries = [], this._onDidChange = new r.a();
}
get onDidChange() {
return this._onDidChange.event;
}
register(e2, t2) {
let n2 = {selector: e2, provider: t2, _score: -1, _time: this._clock++};
return this._entries.push(n2), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), Object(s.h)(() => {
if (n2) {
let e3 = this._entries.indexOf(n2);
e3 >= 0 && (this._entries.splice(e3, 1), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), n2 = void 0);
}
});
}
has(e2) {
return this.all(e2).length > 0;
}
all(e2) {
if (!e2)
return [];
this._updateScores(e2);
const t2 = [];
for (let e3 of this._entries)
e3._score > 0 && t2.push(e3.provider);
return t2;
}
ordered(e2) {
const t2 = [];
return this._orderedForEach(e2, (e3) => t2.push(e3.provider)), t2;
}
orderedGroups(e2) {
const t2 = [];
let n2, i2;
return this._orderedForEach(e2, (e3) => {
n2 && i2 === e3._score ? n2.push(e3.provider) : (i2 = e3._score, n2 = [e3.provider], t2.push(n2));
}), t2;
}
_orderedForEach(e2, t2) {
if (e2) {
this._updateScores(e2);
for (const e3 of this._entries)
e3._score > 0 && t2(e3);
}
}
_updateScores(e2) {
let t2 = {uri: e2.uri.toString(), language: e2.getLanguageIdentifier().language};
if (!this._lastCandidate || this._lastCandidate.language !== t2.language || this._lastCandidate.uri !== t2.uri) {
this._lastCandidate = t2;
for (let t3 of this._entries)
if (t3._score = c(t3.selector, e2.uri, e2.getLanguageIdentifier().language, Object(d.b)(e2)), h(t3.selector) && t3._score > 0) {
for (let e3 of this._entries)
e3._score = 0;
t3._score = 1e3;
break;
}
this._entries.sort(u._compareByScoreAndTime);
}
}
static _compareByScoreAndTime(e2, t2) {
return e2._score < t2._score ? 1 : e2._score > t2._score ? -1 : e2._time < t2._time ? 1 : e2._time > t2._time ? -1 : 0;
}
}
var p = n(17);
class m {
constructor(e2, t2) {
this.language = e2, this.id = t2;
}
}
class g {
static getLanguageId(e2) {
return (255 & e2) >>> 0;
}
static getTokenType(e2) {
return (1792 & e2) >>> 8;
}
static getFontStyle(e2) {
return (14336 & e2) >>> 11;
}
static getForeground(e2) {
return (8372224 & e2) >>> 14;
}
static getBackground(e2) {
return (4286578688 & e2) >>> 23;
}
static getClassNameFromMetadata(e2) {
let t2 = "mtk" + this.getForeground(e2), n2 = this.getFontStyle(e2);
return 1 & n2 && (t2 += " mtki"), 2 & n2 && (t2 += " mtkb"), 4 & n2 && (t2 += " mtku"), t2;
}
static getInlineStyleFromMetadata(e2, t2) {
const n2 = this.getForeground(e2), i2 = this.getFontStyle(e2);
let o2 = `color: ${t2[n2]};`;
return 1 & i2 && (o2 += "font-style: italic;"), 2 & i2 && (o2 += "font-weight: bold;"), 4 & i2 && (o2 += "text-decoration: underline;"), o2;
}
}
const f = function() {
let e2 = Object.create(null);
return e2[0] = "symbol-method", e2[1] = "symbol-function", e2[2] = "symbol-constructor", e2[3] = "symbol-field", e2[4] = "symbol-variable", e2[5] = "symbol-class", e2[6] = "symbol-struct", e2[7] = "symbol-interface", e2[8] = "symbol-module", e2[9] = "symbol-property", e2[10] = "symbol-event", e2[11] = "symbol-operator", e2[12] = "symbol-unit", e2[13] = "symbol-value", e2[14] = "symbol-constant", e2[15] = "symbol-enum", e2[16] = "symbol-enum-member", e2[17] = "symbol-keyword", e2[27] = "symbol-snippet", e2[18] = "symbol-text", e2[19] = "symbol-color", e2[20] = "symbol-file", e2[21] = "symbol-reference", e2[22] = "symbol-customcolor", e2[23] = "symbol-folder", e2[24] = "symbol-type-parameter", e2[25] = "account", e2[26] = "issues", function(t2) {
const n2 = e2[t2];
let i2 = n2 && p.c.get(n2);
return i2 || (console.info("No codicon found for CompletionItemKind " + t2), i2 = p.a.symbolProperty), i2.classNames;
};
}();
let b = function() {
let e2 = Object.create(null);
return e2.method = 0, e2.function = 1, e2.constructor = 2, e2.field = 3, e2.variable = 4, e2.class = 5, e2.struct = 6, e2.interface = 7, e2.module = 8, e2.property = 9, e2.event = 10, e2.operator = 11, e2.unit = 12, e2.value = 13, e2.constant = 14, e2.enum = 15, e2["enum-member"] = 16, e2.enumMember = 16, e2.keyword = 17, e2.snippet = 27, e2.text = 18, e2.color = 19, e2.file = 20, e2.reference = 21, e2.customcolor = 22, e2.folder = 23, e2["type-parameter"] = 24, e2.typeParameter = 24, e2.account = 25, e2.issue = 26, function(t2, n2) {
let i2 = e2[t2];
return void 0 !== i2 || n2 || (i2 = 9), i2;
};
}();
var _, v, w;
function y(e2) {
return e2 && i.a.isUri(e2.uri) && o.a.isIRange(e2.range) && (o.a.isIRange(e2.originSelectionRange) || o.a.isIRange(e2.targetSelectionRange));
}
!function(e2) {
e2[e2.Invoke = 1] = "Invoke", e2[e2.TriggerCharacter = 2] = "TriggerCharacter", e2[e2.ContentChange = 3] = "ContentChange";
}(_ || (_ = {})), function(e2) {
e2[e2.Text = 0] = "Text", e2[e2.Read = 1] = "Read", e2[e2.Write = 2] = "Write";
}(v || (v = {})), function(e2) {
const t2 = new Map();
t2.set("file", 0), t2.set("module", 1), t2.set("namespace", 2), t2.set("package", 3), t2.set("class", 4), t2.set("method", 5), t2.set("property", 6), t2.set("field", 7), t2.set("constructor", 8), t2.set("enum", 9), t2.set("interface", 10), t2.set("function", 11), t2.set("variable", 12), t2.set("constant", 13), t2.set("string", 14), t2.set("number", 15), t2.set("boolean", 16), t2.set("array", 17), t2.set("object", 18), t2.set("key", 19), t2.set("null", 20), t2.set("enum-member", 21), t2.set("struct", 22), t2.set("event", 23), t2.set("operator", 24), t2.set("type-parameter", 25);
const n2 = new Map();
n2.set(0, "file"), n2.set(1, "module"), n2.set(2, "namespace"), n2.set(3, "package"), n2.set(4, "class"), n2.set(5, "method"), n2.set(6, "property"), n2.set(7, "field"), n2.set(8, "constructor"), n2.set(9, "enum"), n2.set(10, "interface"), n2.set(11, "function"), n2.set(12, "variable"), n2.set(13, "constant"), n2.set(14, "string"), n2.set(15, "number"), n2.set(16, "boolean"), n2.set(17, "array"), n2.set(18, "object"), n2.set(19, "key"), n2.set(20, "null"), n2.set(21, "enum-member"), n2.set(22, "struct"), n2.set(23, "event"), n2.set(24, "operator"), n2.set(25, "type-parameter"), e2.fromString = function(e3) {
return t2.get(e3);
}, e2.toString = function(e3) {
return n2.get(e3);
}, e2.toCssClassName = function(e3, t3) {
const i2 = n2.get(e3);
let o2 = i2 && p.c.get("symbol-" + i2);
return o2 || (console.info("No codicon found for SymbolKind " + e3), o2 = p.a.symbolProperty), `${t3 ? "inline" : "block"} ${o2.classNames}`;
};
}(w || (w = {}));
class C {
constructor(e2) {
this.value = e2;
}
}
C.Comment = new C("comment"), C.Imports = new C("imports"), C.Region = new C("region");
const x = new u(), S = new u(), k = new u(), E = new u(), T = new u(), L = new u(), N = new u(), I = new u(), O = new u(), D = new u(), A = new u(), R = new u(), M = new u(), P = new u(), F = new u(), W = new u(), z = new u(), B = new u(), j = new u(), V = new u(), U = new u(), H = new u(), q = new u(), $ = new class {
constructor() {
this._map = new Map(), this._promises = new Map(), this._onDidChange = new r.a(), this.onDidChange = this._onDidChange.event, this._colorMap = null;
}
fire(e2) {
this._onDidChange.fire({changedLanguages: e2, changedColorMap: false});
}
register(e2, t2) {
return this._map.set(e2, t2), this.fire([e2]), Object(s.h)(() => {
this._map.get(e2) === t2 && (this._map.delete(e2), this.fire([e2]));
});
}
registerPromise(e2, t2) {
let n2 = null, i2 = false;
return this._promises.set(e2, t2.then((t3) => {
this._promises.delete(e2), !i2 && t3 && (n2 = this.register(e2, t3));
})), Object(s.h)(() => {
i2 = true, n2 && n2.dispose();
});
}
getPromise(e2) {
const t2 = this.get(e2);
if (t2)
return Promise.resolve(t2);
const n2 = this._promises.get(e2);
return n2 ? n2.then((t3) => this.get(e2)) : null;
}
get(e2) {
return this._map.get(e2) || null;
}
setColorMap(e2) {
this._colorMap = e2, this._onDidChange.fire({changedLanguages: Array.from(this._map.keys()), changedColorMap: true});
}
getColorMap() {
return this._colorMap;
}
getDefaultBackground() {
return this._colorMap && this._colorMap.length > 2 ? this._colorMap[2] : null;
}
}();
}, function(e, t, n) {
"use strict";
n.d(t, "e", function() {
return o;
}), n.d(t, "f", function() {
return r;
}), n.d(t, "g", function() {
return s;
}), n.d(t, "d", function() {
return a;
}), n.d(t, "a", function() {
return l;
}), n.d(t, "b", function() {
return c;
}), n.d(t, "c", function() {
return d;
});
const i = new class {
constructor() {
this.listeners = [], this.unexpectedErrorHandler = function(e2) {
setTimeout(() => {
if (e2.stack)
throw new Error(e2.message + "\n\n" + e2.stack);
throw e2;
}, 0);
};
}
emit(e2) {
this.listeners.forEach((t2) => {
t2(e2);
});
}
onUnexpectedError(e2) {
this.unexpectedErrorHandler(e2), this.emit(e2);
}
onUnexpectedExternalError(e2) {
this.unexpectedErrorHandler(e2);
}
}();
function o(e2) {
a(e2) || i.onUnexpectedError(e2);
}
function r(e2) {
a(e2) || i.onUnexpectedExternalError(e2);
}
function s(e2) {
if (e2 instanceof Error) {
let {name: t2, message: n2} = e2;
return {$isError: true, name: t2, message: n2, stack: e2.stacktrace || e2.stack};
}
return e2;
}
function a(e2) {
return e2 instanceof Error && "Canceled" === e2.name && "Canceled" === e2.message;
}
function l() {
const e2 = new Error("Canceled");
return e2.name = e2.message, e2;
}
function c(e2) {
return e2 ? new Error("Illegal argument: " + e2) : new Error("Illegal argument");
}
function d(e2) {
return e2 ? new Error("Illegal state: " + e2) : new Error("Illegal state");
}
}, function(e, t, n) {
"use strict";
function i(e2) {
return Array.isArray(e2);
}
function o(e2) {
return "string" == typeof e2;
}
function r(e2) {
return !("object" != typeof e2 || null === e2 || Array.isArray(e2) || e2 instanceof RegExp || e2 instanceof Date);
}
function s(e2) {
return "number" == typeof e2 && !isNaN(e2);
}
function a(e2) {
return true === e2 || false === e2;
}
function l(e2) {
return void 0 === e2;
}
function c(e2) {
return l(e2) || null === e2;
}
function d(e2, t2) {
if (!e2)
throw new Error(t2 ? `Unexpected type, expected '${t2}'` : "Unexpected type");
}
function h(e2) {
if (c(e2))
throw new Error("Assertion Failed: argument is undefined or null");
return e2;
}
function u(e2) {
return "function" == typeof e2;
}
function p(e2, t2) {
const n2 = Math.min(e2.length, t2.length);
for (let i2 = 0; i2 < n2; i2++)
m(e2[i2], t2[i2]);
}
function m(e2, t2) {
if (o(t2)) {
if (typeof e2 !== t2)
throw new Error("argument does not match constraint: typeof " + t2);
} else if (u(t2)) {
try {
if (e2 instanceof t2)
return;
} catch (e3) {
}
if (!c(e2) && e2.constructor === t2)
return;
if (1 === t2.length && true === t2.call(void 0, e2))
return;
throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true");
}
}
function g(e2) {
const t2 = [];
for (const n2 of function(e3) {
let t3 = [], n3 = Object.getPrototypeOf(e3);
for (; Object.prototype !== n3; )
t3 = t3.concat(Object.getOwnPropertyNames(n3)), n3 = Object.getPrototypeOf(n3);
return t3;
}(e2))
"function" == typeof e2[n2] && t2.push(n2);
return t2;
}
function f(e2, t2) {
const n2 = (e3) => function() {
const n3 = Array.prototype.slice.call(arguments, 0);
return t2(e3, n3);
};
let i2 = {};
for (const t3 of e2)
i2[t3] = n2(t3);
return i2;
}
function b(e2) {
return null === e2 ? void 0 : e2;
}
n.d(t, "e", function() {
return i;
}), n.d(t, "j", function() {
return o;
}), n.d(t, "i", function() {
return r;
}), n.d(t, "h", function() {
return s;
}), n.d(t, "f", function() {
return a;
}), n.d(t, "k", function() {
return l;
}), n.d(t, "l", function() {
return c;
}), n.d(t, "b", function() {
return d;
}), n.d(t, "a", function() {
return h;
}), n.d(t, "g", function() {
return u;
}), n.d(t, "m", function() {
return p;
}), n.d(t, "d", function() {
return g;
}), n.d(t, "c", function() {
return f;
}), n.d(t, "n", function() {
return b;
});
}, function(e, t, n) {
"use strict";
function i(e2, t2 = 0) {
return e2[e2.length - (1 + t2)];
}
function o(e2) {
if (0 === e2.length)
throw new Error("Invalid tail call");
return [e2.slice(0, e2.length - 1), e2[e2.length - 1]];
}
function r(e2, t2, n2 = (e3, t3) => e3 === t3) {
if (e2 === t2)
return true;
if (!e2 || !t2)
return false;
if (e2.length !== t2.length)
return false;
for (let i2 = 0, o2 = e2.length; i2 < o2; i2++)
if (!n2(e2[i2], t2[i2]))
return false;
return true;
}
function s(e2, t2, n2) {
let i2 = 0, o2 = e2.length - 1;
for (; i2 <= o2; ) {
const r2 = (i2 + o2) / 2 | 0, s2 = n2(e2[r2], t2);
if (s2 < 0)
i2 = r2 + 1;
else {
if (!(s2 > 0))
return r2;
o2 = r2 - 1;
}
}
return -(i2 + 1);
}
function a(e2, t2) {
let n2 = 0, i2 = e2.length;
if (0 === i2)
return 0;
for (; n2 < i2; ) {
const o2 = Math.floor((n2 + i2) / 2);
t2(e2[o2]) ? i2 = o2 : n2 = o2 + 1;
}
return n2;
}
function l(e2, t2) {
return function e3(t3, n2, i2, o2, r2) {
if (o2 <= i2)
return;
const s2 = i2 + (o2 - i2) / 2 | 0;
if (e3(t3, n2, i2, s2, r2), e3(t3, n2, s2 + 1, o2, r2), n2(t3[s2], t3[s2 + 1]) <= 0)
return;
!function(e4, t4, n3, i3, o3, r3) {
let s3 = n3, a2 = i3 + 1;
for (let t5 = n3; t5 <= o3; t5++)
r3[t5] = e4[t5];
for (let l2 = n3; l2 <= o3; l2++)
s3 > i3 ? e4[l2] = r3[a2++] : a2 > o3 ? e4[l2] = r3[s3++] : t4(r3[a2], r3[s3]) < 0 ? e4[l2] = r3[a2++] : e4[l2] = r3[s3++];
}(t3, n2, i2, s2, o2, r2);
}(e2, t2, 0, e2.length - 1, []), e2;
}
function c(e2, t2) {
const n2 = [];
let i2 = void 0;
for (const o2 of l(e2.slice(0), t2))
i2 && 0 === t2(i2[0], o2) ? i2.push(o2) : (i2 = [o2], n2.push(i2));
return n2;
}
function d(e2) {
return e2.filter((e3) => !!e3);
}
function h(e2) {
return !Array.isArray(e2) || 0 === e2.length;
}
function u(e2) {
return Array.isArray(e2) && e2.length > 0;
}
function p(e2, t2) {
if (!t2)
return e2.filter((t3, n3) => e2.indexOf(t3) === n3);
const n2 = Object.create(null);
return e2.filter((e3) => {
const i2 = t2(e3);
return !n2[i2] && (n2[i2] = true, true);
});
}
function m(e2) {
const t2 = new Set();
return e2.filter((e3) => !t2.has(e3) && (t2.add(e3), true));
}
function g(e2, t2) {
for (let n2 = 0; n2 < e2.length; n2++) {
if (t2(e2[n2]))
return n2;
}
return -1;
}
function f(e2, t2, n2) {
const i2 = g(e2, t2);
return i2 < 0 ? n2 : e2[i2];
}
function b(e2, t2) {
return e2.length > 0 ? e2[0] : t2;
}
function _(e2) {
return [].concat(...e2);
}
function v(e2, t2) {
let n2 = "number" == typeof t2 ? e2 : 0;
"number" == typeof t2 ? n2 = e2 : (n2 = 0, t2 = e2);
const i2 = [];
if (n2 <= t2)
for (let e3 = n2; e3 < t2; e3++)
i2.push(e3);
else
for (let e3 = n2; e3 > t2; e3--)
i2.push(e3);
return i2;
}
function w(e2, t2, n2) {
const i2 = e2.slice(0, t2), o2 = e2.slice(t2);
return i2.concat(n2, o2);
}
function y(e2, t2) {
const n2 = e2.indexOf(t2);
n2 > -1 && (e2.splice(n2, 1), e2.unshift(t2));
}
function C(e2, t2) {
const n2 = e2.indexOf(t2);
n2 > -1 && (e2.splice(n2, 1), e2.push(t2));
}
function x(e2) {
return Array.isArray(e2) ? e2 : [e2];
}
n.d(t, "t", function() {
return i;
}), n.d(t, "u", function() {
return o;
}), n.d(t, "g", function() {
return r;
}), n.d(t, "c", function() {
return s;
}), n.d(t, "h", function() {
return a;
}), n.d(t, "p", function() {
return l;
}), n.d(t, "m", function() {
return c;
}), n.d(t, "d", function() {
return d;
}), n.d(t, "n", function() {
return h;
}), n.d(t, "o", function() {
return u;
}), n.d(t, "e", function() {
return p;
}), n.d(t, "f", function() {
return m;
}), n.d(t, "j", function() {
return g;
}), n.d(t, "i", function() {
return f;
}), n.d(t, "k", function() {
return b;
}), n.d(t, "l", function() {
return _;
}), n.d(t, "s", function() {
return v;
}), n.d(t, "a", function() {
return w;
}), n.d(t, "r", function() {
return y;
}), n.d(t, "q", function() {
return C;
}), n.d(t, "b", function() {
return x;
});
}, function(e, t, n) {
"use strict";
function i(e2, t2) {
const n2 = Math.pow(10, t2);
return Math.round(e2 * n2) / n2;
}
n.d(t, "c", function() {
return o;
}), n.d(t, "b", function() {
return s;
}), n.d(t, "a", function() {
return a;
});
class o {
constructor(e2, t2, n2, o2 = 1) {
this.r = 0 | Math.min(255, Math.max(0, e2)), this.g = 0 | Math.min(255, Math.max(0, t2)), this.b = 0 | Math.min(255, Math.max(0, n2)), this.a = i(Math.max(Math.min(1, o2), 0), 3);
}
static equals(e2, t2) {
return e2.r === t2.r && e2.g === t2.g && e2.b === t2.b && e2.a === t2.a;
}
}
class r {
constructor(e2, t2, n2, o2) {
this.h = 0 | Math.max(Math.min(360, e2), 0), this.s = i(Math.max(Math.min(1, t2), 0), 3), this.l = i(Math.max(Math.min(1, n2), 0), 3), this.a = i(Math.max(Math.min(1, o2), 0), 3);
}
static equals(e2, t2) {
return e2.h === t2.h && e2.s === t2.s && e2.l === t2.l && e2.a === t2.a;
}
static fromRGBA(e2) {
const t2 = e2.r / 255, n2 = e2.g / 255, i2 = e2.b / 255, o2 = e2.a, s2 = Math.max(t2, n2, i2), a2 = Math.min(t2, n2, i2);
let l = 0, c = 0;
const d = (a2 + s2) / 2, h = s2 - a2;
if (h > 0) {
switch (c = Math.min(d <= 0.5 ? h / (2 * d) : h / (2 - 2 * d), 1), s2) {
case t2:
l = (n2 - i2) / h + (n2 < i2 ? 6 : 0);
break;
case n2:
l = (i2 - t2) / h + 2;
break;
case i2:
l = (t2 - n2) / h + 4;
}
l *= 60, l = Math.round(l);
}
return new r(l, c, d, o2);
}
static _hue2rgb(e2, t2, n2) {
return n2 < 0 && (n2 += 1), n2 > 1 && (n2 -= 1), n2 < 1 / 6 ? e2 + 6 * (t2 - e2) * n2 : n2 < 0.5 ? t2 : n2 < 2 / 3 ? e2 + (t2 - e2) * (2 / 3 - n2) * 6 : e2;
}
static toRGBA(e2) {
const t2 = e2.h / 360, {s: n2, l: i2, a: s2} = e2;
let a2, l, c;
if (0 === n2)
a2 = l = c = i2;
else {
const e3 = i2 < 0.5 ? i2 * (1 + n2) : i2 + n2 - i2 * n2, o2 = 2 * i2 - e3;
a2 = r._hue2rgb(o2, e3, t2 + 1 / 3), l = r._hue2rgb(o2, e3, t2), c = r._hue2rgb(o2, e3, t2 - 1 / 3);
}
return new o(Math.round(255 * a2), Math.round(255 * l), Math.round(255 * c), s2);
}
}
class s {
constructor(e2, t2, n2, o2) {
this.h = 0 | Math.max(Math.min(360, e2), 0), this.s = i(Math.max(Math.min(1, t2), 0), 3), this.v = i(Math.max(Math.min(1, n2), 0), 3), this.a = i(Math.max(Math.min(1, o2), 0), 3);
}
static equals(e2, t2) {
return e2.h === t2.h && e2.s === t2.s && e2.v === t2.v && e2.a === t2.a;
}
static fromRGBA(e2) {
const t2 = e2.r / 255, n2 = e2.g / 255, i2 = e2.b / 255, o2 = Math.max(t2, n2, i2), r2 = o2 - Math.min(t2, n2, i2), a2 = 0 === o2 ? 0 : r2 / o2;
let l;
return l = 0 === r2 ? 0 : o2 === t2 ? ((n2 - i2) / r2 % 6 + 6) % 6 : o2 === n2 ? (i2 - t2) / r2 + 2 : (t2 - n2) / r2 + 4, new s(Math.round(60 * l), a2, o2, e2.a);
}
static toRGBA(e2) {
const {h: t2, s: n2, v: i2, a: r2} = e2, s2 = i2 * n2, a2 = s2 * (1 - Math.abs(t2 / 60 % 2 - 1)), l = i2 - s2;
let [c, d, h] = [0, 0, 0];
return t2 < 60 ? (c = s2, d = a2) : t2 < 120 ? (c = a2, d = s2) : t2 < 180 ? (d = s2, h = a2) : t2 < 240 ? (d = a2, h = s2) : t2 < 300 ? (c = a2, h = s2) : t2 < 360 && (c = s2, h = a2), c = Math.round(255 * (c + l)), d = Math.round(255 * (d + l)), h = Math.round(255 * (h + l)), new o(c, d, h, r2);
}
}
class a {
constructor(e2) {
if (!e2)
throw new Error("Color needs a value");
if (e2 instanceof o)
this.rgba = e2;
else if (e2 instanceof r)
this._hsla = e2, this.rgba = r.toRGBA(e2);
else {
if (!(e2 instanceof s))
throw new Error("Invalid color ctor argument");
this._hsva = e2, this.rgba = s.toRGBA(e2);
}
}
static fromHex(e2) {
return a.Format.CSS.parseHex(e2) || a.red;
}
get hsla() {
return this._hsla ? this._hsla : r.fromRGBA(this.rgba);
}
get hsva() {
return this._hsva ? this._hsva : s.fromRGBA(this.rgba);
}
equals(e2) {
return !!e2 && o.equals(this.rgba, e2.rgba) && r.equals(this.hsla, e2.hsla) && s.equals(this.hsva, e2.hsva);
}
getRelativeLuminance() {
return i(0.2126 * a._relativeLuminanceForComponent(this.rgba.r) + 0.7152 * a._relativeLuminanceForComponent(this.rgba.g) + 0.0722 * a._relativeLuminanceForComponent(this.rgba.b), 4);
}
static _relativeLuminanceForComponent(e2) {
const t2 = e2 / 255;
return t2 <= 0.03928 ? t2 / 12.92 : Math.pow((t2 + 0.055) / 1.055, 2.4);
}
isLighter() {
return (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) / 1e3 >= 128;
}
isLighterThan(e2) {
return this.getRelativeLuminance() > e2.getRelativeLuminance();
}
isDarkerThan(e2) {
return this.getRelativeLuminance() < e2.getRelativeLuminance();
}
lighten(e2) {
return new a(new r(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * e2, this.hsla.a));
}
darken(e2) {
return new a(new r(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * e2, this.hsla.a));
}
transparent(e2) {
const {r: t2, g: n2, b: i2, a: r2} = this.rgba;
return new a(new o(t2, n2, i2, r2 * e2));
}
isTransparent() {
return 0 === this.rgba.a;
}
isOpaque() {
return 1 === this.rgba.a;
}
opposite() {
return new a(new o(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));
}
toString() {
return "" + a.Format.CSS.format(this);
}
static getLighterColor(e2, t2, n2) {
if (e2.isLighterThan(t2))
return e2;
n2 = n2 || 0.5;
const i2 = e2.getRelativeLuminance(), o2 = t2.getRelativeLuminance();
return n2 = n2 * (o2 - i2) / o2, e2.lighten(n2);
}
static getDarkerColor(e2, t2, n2) {
if (e2.isDarkerThan(t2))
return e2;
n2 = n2 || 0.5;
const i2 = e2.getRelativeLuminance();
return n2 = n2 * (i2 - t2.getRelativeLuminance()) / i2, e2.darken(n2);
}
}
a.white = new a(new o(255, 255, 255, 1)), a.black = new a(new o(0, 0, 0, 1)), a.red = new a(new o(255, 0, 0, 1)), a.blue = new a(new o(0, 0, 255, 1)), a.cyan = new a(new o(0, 255, 255, 1)), a.lightgrey = new a(new o(211, 211, 211, 1)), a.transparent = new a(new o(0, 0, 0, 0)), function(e2) {
let t2;
!function(t3) {
let n2;
!function(t4) {
function n3(e3) {
const t5 = e3.toString(16);
return 2 !== t5.length ? "0" + t5 : t5;
}
function i2(e3) {
switch (e3) {
case 48:
return 0;
case 49:
return 1;
case 50:
return 2;
case 51:
return 3;
case 52:
return 4;
case 53:
return 5;
case 54:
return 6;
case 55:
return 7;
case 56:
return 8;
case 57:
return 9;
case 97:
case 65:
return 10;
case 98:
case 66:
return 11;
case 99:
case 67:
return 12;
case 100:
case 68:
return 13;
case 101:
case 69:
return 14;
case 102:
case 70:
return 15;
}
return 0;
}
t4.formatRGB = function(t5) {
return 1 === t5.rgba.a ? `rgb(${t5.rgba.r}, ${t5.rgba.g}, ${t5.rgba.b})` : e2.Format.CSS.formatRGBA(t5);
}, t4.formatRGBA = function(e3) {
return `rgba(${e3.rgba.r}, ${e3.rgba.g}, ${e3.rgba.b}, ${+e3.rgba.a.toFixed(2)})`;
}, t4.formatHSL = function(t5) {
return 1 === t5.hsla.a ? `hsl(${t5.hsla.h}, ${(100 * t5.hsla.s).toFixed(2)}%, ${(100 * t5.hsla.l).toFixed(2)}%)` : e2.Format.CSS.formatHSLA(t5);
}, t4.formatHSLA = function(e3) {
return `hsla(${e3.hsla.h}, ${(100 * e3.hsla.s).toFixed(2)}%, ${(100 * e3.hsla.l).toFixed(2)}%, ${e3.hsla.a.toFixed(2)})`;
}, t4.formatHex = function(e3) {
return `#${n3(e3.rgba.r)}${n3(e3.rgba.g)}${n3(e3.rgba.b)}`;
}, t4.formatHexA = function(t5, i3 = false) {
return i3 && 1 === t5.rgba.a ? e2.Format.CSS.formatHex(t5) : `#${n3(t5.rgba.r)}${n3(t5.rgba.g)}${n3(t5.rgba.b)}${n3(Math.round(255 * t5.rgba.a))}`;
}, t4.format = function(t5) {
return t5.isOpaque() ? e2.Format.CSS.formatHex(t5) : e2.Format.CSS.formatRGBA(t5);
}, t4.parseHex = function(t5) {
const n4 = t5.length;
if (0 === n4)
return null;
if (35 !== t5.charCodeAt(0))
return null;
if (7 === n4) {
const n5 = 16 * i2(t5.charCodeAt(1)) + i2(t5.charCodeAt(2)), r2 = 16 * i2(t5.charCodeAt(3)) + i2(t5.charCodeAt(4)), s2 = 16 * i2(t5.charCodeAt(5)) + i2(t5.charCodeAt(6));
return new e2(new o(n5, r2, s2, 1));
}
if (9 === n4) {
const n5 = 16 * i2(t5.charCodeAt(1)) + i2(t5.charCodeAt(2)), r2 = 16 * i2(t5.charCodeAt(3)) + i2(t5.charCodeAt(4)), s2 = 16 * i2(t5.charCodeAt(5)) + i2(t5.charCodeAt(6)), a2 = 16 * i2(t5.charCodeAt(7)) + i2(t5.charCodeAt(8));
return new e2(new o(n5, r2, s2, a2 / 255));
}
if (4 === n4) {
const n5 = i2(t5.charCodeAt(1)), r2 = i2(t5.charCodeAt(2)), s2 = i2(t5.charCodeAt(3));
return new e2(new o(16 * n5 + n5, 16 * r2 + r2, 16 * s2 + s2));
}
if (5 === n4) {
const n5 = i2(t5.charCodeAt(1)), r2 = i2(t5.charCodeAt(2)), s2 = i2(t5.charCodeAt(3)), a2 = i2(t5.charCodeAt(4));
return new e2(new o(16 * n5 + n5, 16 * r2 + r2, 16 * s2 + s2, (16 * a2 + a2) / 255));
}
return null;
};
}(n2 = t3.CSS || (t3.CSS = {}));
}(t2 = e2.Format || (e2.Format = {}));
}(a || (a = {}));
}, function(e, t, n) {
"use strict";
n.d(t, "c", function() {
return s;
}), n.d(t, "e", function() {
return a;
}), n.d(t, "a", function() {
return l;
}), n.d(t, "b", function() {
return d;
}), n.d(t, "d", function() {
return u;
}), n.d(t, "g", function() {
return p;
}), n.d(t, "f", function() {
return m;
}), n.d(t, "h", function() {
return f;
});
var i = n(151), o = n(6);
const r = new class {
constructor() {
this._icons = new Map(), this._onDidRegister = new o.a();
}
add(e2) {
this._icons.has(e2.id) ? console.error("Duplicate registration of codicon " + e2.id) : (this._icons.set(e2.id, e2), this._onDidRegister.fire(e2));
}
get(e2) {
return this._icons.get(e2);
}
get all() {
return this._icons.values();
}
get onDidRegister() {
return this._onDidRegister.event;
}
}(), s = r;
function a(e2, t2, n2) {
return new l(e2, t2);
}
class l {
constructor(e2, t2, n2) {
this.id = e2, this.definition = t2, this.description = n2, r.add(this);
}
get classNames() {
return "codicon codicon-" + this.id;
}
get cssSelector() {
return ".codicon.codicon-" + this.id;
}
}
!function(e2) {
e2.add = new e2("add", {character: "\\ea60"}), e2.plus = new e2("plus", {character: "\\ea60"}), e2.gistNew = new e2("gist-new", {character: "\\ea60"}), e2.repoCreate = new e2("repo-create", {character: "\\ea60"}), e2.lightbulb = new e2("lightbulb", {character: "\\ea61"}), e2.lightBulb = new e2("light-bulb", {character: "\\ea61"}), e2.repo = new e2("repo", {character: "\\ea62"}), e2.repoDelete = new e2("repo-delete", {character: "\\ea62"}), e2.gistFork = new e2("gist-fork", {character: "\\ea63"}), e2.repoForked = new e2("repo-forked", {character: "\\ea63"}), e2.gitPullRequest = new e2("git-pull-request", {character: "\\ea64"}), e2.gitPullRequestAbandoned = new e2("git-pull-request-abandoned", {character: "\\ea64"}), e2.recordKeys = new e2("record-keys", {character: "\\ea65"}), e2.keyboard = new e2("keyboard", {character: "\\ea65"}), e2.tag = new e2("tag", {character: "\\ea66"}), e2.tagAdd = new e2("tag-add", {character: "\\ea66"}), e2.tagRemove = new e2("tag-remove", {character: "\\ea66"}), e2.person = new e2("person", {character: "\\ea67"}), e2.personAdd = new e2("person-add", {character: "\\ea67"}), e2.personFollow = new e2("person-follow", {character: "\\ea67"}), e2.personOutline = new e2("person-outline", {character: "\\ea67"}), e2.personFilled = new e2("person-filled", {character: "\\ea67"}), e2.gitBranch = new e2("git-branch", {character: "\\ea68"}), e2.gitBranchCreate = new e2("git-branch-create", {character: "\\ea68"}), e2.gitBranchDelete = new e2("git-branch-delete", {character: "\\ea68"}), e2.sourceControl = new e2("source-control", {character: "\\ea68"}), e2.mirror = new e2("mirror", {character: "\\ea69"}), e2.mirrorPublic = new e2("mirror-public", {character: "\\ea69"}), e2.star = new e2("star", {character: "\\ea6a"}), e2.starAdd = new e2("star-add", {character: "\\ea6a"}), e2.starDelete = new e2("star-delete", {character: "\\ea6a"}), e2.starEmpty = new e2("star-empty", {character: "\\ea6a"}), e2.comment = new e2("comment", {character: "\\ea6b"}), e2.commentAdd = new e2("comment-add", {character: "\\ea6b"}), e2.alert = new e2("alert", {character: "\\ea6c"}), e2.warning = new e2("warning", {character: "\\ea6c"}), e2.search = new e2("search", {character: "\\ea6d"}), e2.searchSave = new e2("search-save", {character: "\\ea6d"}), e2.logOut = new e2("log-out", {character: "\\ea6e"}), e2.signOut = new e2("sign-out", {character: "\\ea6e"}), e2.logIn = new e2("log-in", {character: "\\ea6f"}), e2.signIn = new e2("sign-in", {character: "\\ea6f"}), e2.eye = new e2("eye", {character: "\\ea70"}), e2.eyeUnwatch = new e2("eye-unwatch", {character: "\\ea70"}), e2.eyeWatch = new e2("eye-watch", {character: "\\ea70"}), e2.circleFilled = new e2("circle-filled", {character: "\\ea71"}), e2.primitiveDot = new e2("primitive-dot", {character: "\\ea71"}), e2.closeDirty = new e2("close-dirty", {character: "\\ea71"}), e2.debugBreakpoint = new e2("debug-breakpoint", {character: "\\ea71"}), e2.debugBreakpointDisabled = new e2("debug-breakpoint-disabled", {character: "\\ea71"}), e2.debugHint = new e2("debug-hint", {character: "\\ea71"}), e2.primitiveSquare = new e2("primitive-square", {character: "\\ea72"}), e2.edit = new e2("edit", {character: "\\ea73"}), e2.pencil = new e2("pencil", {character: "\\ea73"}), e2.info = new e2("info", {character: "\\ea74"}), e2.issueOpened = new e2("issue-opened", {character: "\\ea74"}), e2.gistPrivate = new e2("gist-private", {character: "\\ea75"}), e2.gitForkPrivate = new e2("git-fork-private", {character: "\\ea75"}), e2.lock = new e2("lock", {character: "\\ea75"}), e2.mirrorPrivate = new e2("mirror-private", {character: "\\ea75"}), e2.close = new e2("close", {character: "\\ea76"}), e2.removeClose = new e2("remove-close", {character: "\\ea76"}), e2.x = new e2("x", {character: "\\ea76"}), e2.repoSync = new e2("repo-sync", {character: "\\ea77"}), e2.sync = new e2("sync", {character: "\\ea77"}), e2.clone = new e2("clone", {character: "\\ea78"}), e2.desktopDownload = new e2("desktop-download", {character: "\\ea78"}), e2.beaker = new e2("beaker", {character: "\\ea79"}), e2.microscope = new e2("microscope", {character: "\\ea79"}), e2.vm = new e2("vm", {character: "\\ea7a"}), e2.deviceDesktop = new e2("device-desktop", {character: "\\ea7a"}), e2.file = new e2("file", {character: "\\ea7b"}), e2.fileText = new e2("file-text", {character: "\\ea7b"}), e2.more = new e2("more", {character: "\\ea7c"}), e2.ellipsis = new e2("ellipsis", {character: "\\ea7c"}), e2.kebabHorizontal = new e2("kebab-horizontal", {character: "\\ea7c"}), e2.mailReply = new e2("mail-reply", {character: "\\ea7d"}), e2.reply = new e2("reply", {character: "\\ea7d"}), e2.organization = new e2("organization", {character: "\\ea7e"}), e2.organizationFilled = new e2("organization-filled", {character: "\\ea7e"}), e2.organizationOutline = new e2("organization-outline", {character: "\\ea7e"}), e2.newFile = new e2("new-file", {character: "\\ea7f"}), e2.fileAdd = new e2("file-add", {character: "\\ea7f"}), e2.newFolder = new e2("new-folder", {character: "\\ea80"}), e2.fileDirectoryCreate = new e2("file-directory-create", {character: "\\ea80"}), e2.trash = new e2("trash", {character: "\\ea81"}), e2.trashcan = new e2("trashcan", {character: "\\ea81"}), e2.history = new e2("history", {character: "\\ea82"}), e2.clock = new e2("clock", {character: "\\ea82"}), e2.folder = new e2("folder", {character: "\\ea83"}), e2.fileDirectory = new e2("file-directory", {character: "\\ea83"}), e2.symbolFolder = new e2("symbol-folder", {character: "\\ea83"}), e2.logoGithub = new e2("logo-github", {character: "\\ea84"}), e2.markGithub = new e2("mark-github", {character: "\\ea84"}), e2.github = new e2("github", {character: "\\ea84"}), e2.terminal = new e2("terminal", {character: "\\ea85"}), e2.console = new e2("console", {character: "\\ea85"}), e2.repl = new e2("repl", {character: "\\ea85"}), e2.zap = new e2("zap", {character: "\\ea86"}), e2.symbolEvent = new e2("symbol-event", {character: "\\ea86"}), e2.error = new e2("error", {character: "\\ea87"}), e2.stop = new e2("stop", {character: "\\ea87"}), e2.variable = new e2("variable", {character: "\\ea88"}), e2.symbolVariable = new e2("symbol-variable", {character: "\\ea88"}), e2.array = new e2("array", {character: "\\ea8a"}), e2.symbolArray = new e2("symbol-array", {character: "\\ea8a"}), e2.symbolModule = new e2("symbol-module", {character: "\\ea8b"}), e2.symbolPackage = new e2("symbol-package", {character: "\\ea8b"}), e2.symbolNamespace = new e2("symbol-namespace", {character: "\\ea8b"}), e2.symbolObject = new e2("symbol-object", {character: "\\ea8b"}), e2.symbolMethod = new e2("symbol-method", {character: "\\ea8c"}), e2.symbolFunction = new e2("symbol-function", {character: "\\ea8c"}), e2.symbolConstructor = new e2("symbol-constructor", {character: "\\ea8c"}), e2.symbolBoolean = new e2("symbol-boolean", {character: "\\ea8f"}), e2.symbolNull = new e2("symbol-null", {character: "\\ea8f"}), e2.symbolNumeric = new e2("symbol-numeric", {character: "\\ea90"}), e2.symbolNumber = new e2("symbol-number", {character: "\\ea90"}), e2.symbolStructure = new e2("symbol-structure", {character: "\\ea91"}), e2.symbolStruct = new e2("symbol-struct", {character: "\\ea91"}), e2.symbolParameter = new e2("symbol-parameter", {character: "\\ea92"}), e2.symbolTypeParameter = new e2("symbol-type-parameter", {character: "\\ea92"}), e2.symbolKey = new e2("symbol-key", {character: "\\ea93"}), e2.symbolText = new e2("symbol-text", {character: "\\ea93"}), e2.symbolReference = new e2("symbol-reference", {character: "\\ea94"}), e2.goToFile = new e2("go-to-file", {character: "\\ea94"}), e2.symbolEnum = new e2("symbol-enum", {character: "\\ea95"}), e2.symbolValue = new e2("symbol-value", {character: "\\ea95"}), e2.symbolRuler = new e2("symbol-ruler", {character: "\\ea96"}), e2.symbolUnit = new e2("symbol-unit", {character: "\\ea96"}), e2.activateBreakpoints = new e2("activate-breakpoints", {character: "\\ea97"}), e2.archive = new e2("archive", {character: "\\ea98"}), e2.arrowBoth = new e2("arrow-both", {character: "\\ea99"}), e2.arrowDown = new e2("arrow-down", {character: "\\ea9a"}), e2.arrowLeft = new e2("arrow-left", {character: "\\ea9b"}), e2.arrowRight = new e2("arrow-right", {character: "\\ea9c"}), e2.arrowSmallDown = new e2("arrow-small-down", {character: "\\ea9d"}), e2.arrowSmallLeft = new e2("arrow-small-left", {character: "\\ea9e"}), e2.arrowSmallRight = new e2("arrow-small-right", {character: "\\ea9f"}), e2.arrowSmallUp = new e2("arrow-small-up", {character: "\\eaa0"}), e2.arrowUp = new e2("arrow-up", {character: "\\eaa1"}), e2.bell = new e2("bell", {character: "\\eaa2"}), e2.bold = new e2("bold", {character: "\\eaa3"}), e2.book = new e2("book", {character: "\\eaa4"}), e2.bookmark = new e2("bookmark", {character: "\\eaa5"}), e2.debugBreakpointConditionalUnverified = new e2("debug-breakpoint-conditional-unverified", {character: "\\eaa6"}), e2.debugBreakpointConditional = new e2("debug-breakpoint-conditional", {character: "\\eaa7"}), e2.debugBreakpointConditionalDisabled = new e2("debug-breakpoint-conditional-disabled", {character: "\\eaa7"}), e2.debugBreakpointDataUnverified = new e2("debug-breakpoint-data-unverified", {character: "\\eaa8"}), e2.debugBreakpointData = new e2("debug-breakpoint-data", {character: "\\eaa9"}), e2.debugBreakpointDataDisabled = new e2("debug-breakpoint-data-disabled", {character: "\\eaa9"}), e2.debugBreakpointLogUnverified = new e2("debug-breakpoint-log-unverified", {character: "\\eaaa"}), e2.debugBreakpointLog = new e2("debug-breakpoint-log", {character: "\\eaab"}), e2.debugBreakpointLogDisabled = new e2("debug-breakpoint-log-disabled", {character: "\\eaab"}), e2.briefcase = new e2("briefcase", {character: "\\eaac"}), e2.broadcast = new e2("broadcast", {character: "\\eaad"}), e2.browser = new e2("browser", {character: "\\eaae"}), e2.bug = new e2("bug", {character: "\\eaaf"}), e2.calendar = new e2("calendar", {character: "\\eab0"}), e2.caseSensitive = new e2("case-sensitive", {character: "\\eab1"}), e2.check = new e2("check", {character: "\\eab2"}), e2.checklist = new e2("checklist", {character: "\\eab3"}), e2.chevronDown = new e2("chevron-down", {character: "\\eab4"}), e2.chevronLeft = new e2("chevron-left", {character: "\\eab5"}), e2.chevronRight = new e2("chevron-right", {character: "\\eab6"}), e2.chevronUp = new e2("chevron-up", {character: "\\eab7"}), e2.chromeClose = new e2("chrome-close", {character: "\\eab8"}), e2.chromeMaximize = new e2("chrome-maximize", {character: "\\eab9"}), e2.chromeMinimize = new e2("chrome-minimize", {character: "\\eaba"}), e2.chromeRestore = new e2("chrome-restore", {character: "\\eabb"}), e2.circleOutline = new e2("circle-outline", {character: "\\eabc"}), e2.debugBreakpointUnverified = new e2("debug-breakpoint-unverified", {character: "\\eabc"}), e2.circleSlash = new e2("circle-slash", {character: "\\eabd"}), e2.circuitBoard = new e2("circuit-board", {character: "\\eabe"}), e2.clearAll = new e2("clear-all", {character: "\\eabf"}), e2.clippy = new e2("clippy", {character: "\\eac0"}), e2.closeAll = new e2("close-all", {character: "\\eac1"}), e2.cloudDownload = new e2("cloud-download", {character: "\\eac2"}), e2.cloudUpload = new e2("cloud-upload", {character: "\\eac3"}), e2.code = new e2("code", {character: "\\eac4"}), e2.collapseAll = new e2("collapse-all", {character: "\\eac5"}), e2.colorMode = new e2("color-mode", {character: "\\eac6"}), e2.commentDiscussion = new e2("comment-discussion", {character: "\\eac7"}), e2.compareChanges = new e2("compare-changes", {character: "\\eafd"}), e2.creditCard = new e2("credit-card", {character: "\\eac9"}), e2.dash = new e2("dash", {character: "\\eacc"}), e2.dashboard = new e2("dashboard", {character: "\\eacd"}), e2.database = new e2("database", {character: "\\eace"}), e2.debugContinue = new e2("debug-continue", {character: "\\eacf"}), e2.debugDisconnect = new e2("debug-disconnect", {character: "\\ead0"}), e2.debugPause = new e2("debug-pause", {character: "\\ead1"}), e2.debugRestart = new e2("debug-restart", {character: "\\ead2"}), e2.debugStart = new e2("debug-start", {character: "\\ead3"}), e2.debugStepInto = new e2("debug-step-into", {character: "\\ead4"}), e2.debugStepOut = new e2("debug-step-out", {character: "\\ead5"}), e2.debugStepOver = new e2("debug-step-over", {character: "\\ead6"}), e2.debugStop = new e2("debug-stop", {character: "\\ead7"}), e2.debug = new e2("debug", {character: "\\ead8"}), e2.deviceCameraVideo = new e2("device-camera-video", {character: "\\ead9"}), e2.deviceCamera = new e2("device-camera", {character: "\\eada"}), e2.deviceMobile = new e2("device-mobile", {character: "\\eadb"}), e2.diffAdded = new e2("diff-added", {character: "\\eadc"}), e2.diffIgnored = new e2("diff-ignored", {character: "\\eadd"}), e2.diffModified = new e2("diff-modified", {character: "\\eade"}), e2.diffRemoved = new e2("diff-removed", {character: "\\eadf"}), e2.diffRenamed = new e2("diff-renamed", {character: "\\eae0"}), e2.diff = new e2("diff", {character: "\\eae1"}), e2.discard = new e2("discard", {character: "\\eae2"}), e2.editorLayout = new e2("editor-layout", {character: "\\eae3"}), e2.emptyWindow = new e2("empty-window", {character: "\\eae4"}), e2.exclude = new e2("exclude", {character: "\\eae5"}), e2.extensions = new e2("extensions", {character: "\\eae6"}), e2.eyeClosed = new e2("eye-closed", {character: "\\eae7"}), e2.fileBinary = new e2("file-binary", {character: "\\eae8"}), e2.fileCode = new e2("file-code", {character: "\\eae9"}), e2.fileMedia = new e2("file-media", {character: "\\eaea"}), e2.filePdf = new e2("file-pdf", {character: "\\eaeb"}), e2.fileSubmodule = new e2("file-submodule", {character: "\\eaec"}), e2.fileSymlinkDirectory = new e2("file-symlink-directory", {character: "\\eaed"}), e2.fileSymlinkFile = new e2("file-symlink-file", {character: "\\eaee"}), e2.fileZip = new e2("file-zip", {character: "\\eaef"}), e2.files = new e2("files", {character: "\\eaf0"}), e2.filter = new e2("filter", {character: "\\eaf1"}), e2.flame = new e2("flame", {character: "\\eaf2"}), e2.foldDown = new e2("fold-down", {character: "\\eaf3"}), e2.foldUp = new e2("fold-up", {character: "\\eaf4"}), e2.fold = new e2("fold", {character: "\\eaf5"}), e2.folderActive = new e2("folder-active", {character: "\\eaf6"}), e2.folderOpened = new e2("folder-opened", {character: "\\eaf7"}), e2.gear = new e2("gear", {character: "\\eaf8"}), e2.gift = new e2("gift", {character: "\\eaf9"}), e2.gistSecret = new e2("gist-secret", {character: "\\eafa"}), e2.gist = new e2("gist", {character: "\\eafb"}), e2.gitCommit = new e2("git-commit", {character: "\\eafc"}), e2.gitCompare = new e2("git-compare", {character: "\\eafd"}), e2.gitMerge = new e2("git-merge", {character: "\\eafe"}), e2.githubAction = new e2("github-action", {character: "\\eaff"}), e2.githubAlt = new e2("github-alt", {character: "\\eb00"}), e2.globe = new e2("globe", {character: "\\eb01"}), e2.grabber = new e2("grabber", {character: "\\eb02"}), e2.graph = new e2("graph", {character: "\\eb03"}), e2.gripper = new e2("gripper", {character: "\\eb04"}), e2.heart = new e2("heart", {character: "\\eb05"}), e2.home = new e2("home", {character: "\\eb06"}), e2.horizontalRule = new e2("horizontal-rule", {character: "\\eb07"}), e2.hubot = new e2("hubot", {character: "\\eb08"}), e2.inbox = new e2("inbox", {character: "\\eb09"}), e2.issueClosed = new e2("issue-closed", {character: "\\eb0a"}), e2.issueReopened = new e2("issue-reopened", {character: "\\eb0b"}), e2.issues = new e2("issues", {character: "\\eb0c"}), e2.italic = new e2("italic", {character: "\\eb0d"}), e2.jersey = new e2("jersey", {character: "\\eb0e"}), e2.json = new e2("json", {character: "\\eb0f"}), e2.kebabVertical = new e2("kebab-vertical", {character: "\\eb10"}), e2.key = new e2("key", {character: "\\eb11"}), e2.law = new e2("law", {character: "\\eb12"}), e2.lightbulbAutofix = new e2("lightbulb-autofix", {character: "\\eb13"}), e2.linkExternal = new e2("link-external", {character: "\\eb14"}), e2.link = new e2("link", {character: "\\eb15"}), e2.listOrdered = new e2("list-ordered", {character: "\\eb16"}), e2.listUnordered = new e2("list-unordered", {character: "\\eb17"}), e2.liveShare = new e2("live-share", {character: "\\eb18"}), e2.loading = new e2("loading", {character: "\\eb19"}), e2.location = new e2("location", {character: "\\eb1a"}), e2.mailRead = new e2("mail-read", {character: "\\eb1b"}), e2.mail = new e2("mail", {character: "\\eb1c"}), e2.markdown = new e2("markdown", {character: "\\eb1d"}), e2.megaphone = new e2("megaphone", {character: "\\eb1e"}), e2.mention = new e2("mention", {character: "\\eb1f"}), e2.milestone = new e2("milestone", {character: "\\eb20"}), e2.mortarBoard = new e2("mortar-board", {character: "\\eb21"}), e2.move = new e2("move", {character: "\\eb22"}), e2.multipleWindows = new e2("multiple-windows", {character: "\\eb23"}), e2.mute = new e2("mute", {character: "\\eb24"}), e2.noNewline = new e2("no-newline", {character: "\\eb25"}), e2.note = new e2("note", {character: "\\eb26"}), e2.octoface = new e2("octoface", {character: "\\eb27"}), e2.openPreview = new e2("open-preview", {character: "\\eb28"}), e2.package_ = new e2("package", {character: "\\eb29"}), e2.paintcan = new e2("paintcan", {character: "\\eb2a"}), e2.pin = new e2("pin", {character: "\\eb2b"}), e2.play = new e2("play", {character: "\\eb2c"}), e2.run = new e2("run", {character: "\\eb2c"}), e2.plug = new e2("plug", {character: "\\eb2d"}), e2.preserveCase = new e2("preserve-case", {character: "\\eb2e"}), e2.preview = new e2("preview", {character: "\\eb2f"}), e2.project = new e2("project", {character: "\\eb30"}), e2.pulse = new e2("pulse", {character: "\\eb31"}), e2.question = new e2("question", {character: "\\eb32"}), e2.quote = new e2("quote", {character: "\\eb33"}), e2.radioTower = new e2("radio-tower", {character: "\\eb34"}), e2.reactions = new e2("reactions", {character: "\\eb35"}), e2.references = new e2("references", {character: "\\eb36"}), e2.refresh = new e2("refresh", {character: "\\eb37"}), e2.regex = new e2("regex", {character: "\\eb38"}), e2.remoteExplorer = new e2("remote-explorer", {character: "\\eb39"}), e2.remote = new e2("remote", {character: "\\eb3a"}), e2.remove = new e2("remove", {character: "\\eb3b"}), e2.replaceAll = new e2("replace-all", {character: "\\eb3c"}), e2.replace = new e2("replace", {character: "\\eb3d"}), e2.repoClone = new e2("repo-clone", {character: "\\eb3e"}), e2.repoForcePush = new e2("repo-force-push", {character: "\\eb3f"}), e2.repoPull = new e2("repo-pull", {character: "\\eb40"}), e2.repoPush = new e2("repo-push", {character: "\\eb41"}), e2.report = new e2("report", {character: "\\eb42"}), e2.requestChanges = new e2("request-changes", {character: "\\eb43"}), e2.rocket = new e2("rocket", {character: "\\eb44"}), e2.rootFolderOpened = new e2("root-folder-opened", {character: "\\eb45"}), e2.rootFolder = new e2("root-folder", {character: "\\eb46"}), e2.rss = new e2("rss", {character: "\\eb47"}), e2.ruby = new e2("ruby", {character: "\\eb48"}), e2.saveAll = new e2("save-all", {character: "\\eb49"}), e2.saveAs = new e2("save-as", {character: "\\eb4a"}), e2.save = new e2("save", {character: "\\eb4b"}), e2.screenFull = new e2("screen-full", {character: "\\eb4c"}), e2.screenNormal = new e2("screen-normal", {character: "\\eb4d"}), e2.searchStop = new e2("search-stop", {character: "\\eb4e"}), e2.server = new e2("server", {character: "\\eb50"}), e2.settingsGear = new e2("settings-gear", {character: "\\eb51"}), e2.settings = new e2("settings", {character: "\\eb52"}), e2.shield = new e2("shield", {character: "\\eb53"}), e2.smiley = new e2("smiley", {character: "\\eb54"}), e2.sortPrecedence = new e2("sort-precedence", {character: "\\eb55"}), e2.splitHorizontal = new e2("split-horizontal", {character: "\\eb56"}), e2.splitVertical = new e2("split-vertical", {character: "\\eb57"}), e2.squirrel = new e2("squirrel", {character: "\\eb58"}), e2.starFull = new e2("star-full", {character: "\\eb59"}), e2.starHalf = new e2("star-half", {character: "\\eb5a"}), e2.symbolClass = new e2("symbol-class", {character: "\\eb5b"}), e2.symbolColor = new e2("symbol-color", {character: "\\eb5c"}), e2.symbolConstant = new e2("symbol-constant", {character: "\\eb5d"}), e2.symbolEnumMember = new e2("symbol-enum-member", {character: "\\eb5e"}), e2.symbolField = new e2("symbol-field", {character: "\\eb5f"}), e2.symbolFile = new e2("symbol-file", {character: "\\eb60"}), e2.symbolInterface = new e2("symbol-interface", {character: "\\eb61"}), e2.symbolKeyword = new e2("symbol-keyword", {character: "\\eb62"}), e2.symbolMisc = new e2("symbol-misc", {character: "\\eb63"}), e2.symbolOperator = new e2("symbol-operator", {character: "\\eb64"}), e2.symbolProperty = new e2("symbol-property", {character: "\\eb65"}), e2.wrench = new e2("wrench", {character: "\\eb65"}), e2.wrenchSubaction = new e2("wrench-subaction", {character: "\\eb65"}), e2.symbolSnippet = new e2("symbol-snippet", {character: "\\eb66"}), e2.tasklist = new e2("tasklist", {character: "\\eb67"}), e2.telescope = new e2("telescope", {character: "\\eb68"}), e2.textSize = new e2("text-size", {character: "\\eb69"}), e2.threeBars = new e2("three-bars", {character: "\\eb6a"}), e2.thumbsdown = new e2("thumbsdown", {character: "\\eb6b"}), e2.thumbsup = new e2("thumbsup", {character: "\\eb6c"}), e2.tools = new e2("tools", {character: "\\eb6d"}), e2.triangleDown = new e2("triangle-down", {character: "\\eb6e"}), e2.triangleLeft = new e2("triangle-left", {character: "\\eb6f"}), e2.triangleRight = new e2("triangle-right", {character: "\\eb70"}), e2.triangleUp = new e2("triangle-up", {character: "\\eb71"}), e2.twitter = new e2("twitter", {character: "\\eb72"}), e2.unfold = new e2("unfold", {character: "\\eb73"}), e2.unlock = new e2("unlock", {character: "\\eb74"}), e2.unmute = new e2("unmute", {character: "\\eb75"}), e2.unverified = new e2("unverified", {character: "\\eb76"}), e2.verified = new e2("verified", {character: "\\eb77"}), e2.versions = new e2("versions", {character: "\\eb78"}), e2.vmActive = new e2("vm-active", {character: "\\eb79"}), e2.vmOutline = new e2("vm-outline", {character: "\\eb7a"}), e2.vmRunning = new e2("vm-running", {character: "\\eb7b"}), e2.watch = new e2("watch", {character: "\\eb7c"}), e2.whitespace = new e2("whitespace", {character: "\\eb7d"}), e2.wholeWord = new e2("whole-word", {character: "\\eb7e"}), e2.window = new e2("window", {character: "\\eb7f"}), e2.wordWrap = new e2("word-wrap", {character: "\\eb80"}), e2.zoomIn = new e2("zoom-in", {character: "\\eb81"}), e2.zoomOut = new e2("zoom-out", {character: "\\eb82"}), e2.listFilter = new e2("list-filter", {character: "\\eb83"}), e2.listFlat = new e2("list-flat", {character: "\\eb84"}), e2.listSelection = new e2("list-selection", {character: "\\eb85"}), e2.selection = new e2("selection", {character: "\\eb85"}), e2.listTree = new e2("list-tree", {character: "\\eb86"}), e2.debugBreakpointFunctionUnverified = new e2("debug-breakpoint-function-unverified", {character: "\\eb87"}), e2.debugBreakpointFunction = new e2("debug-breakpoint-function", {character: "\\eb88"}), e2.debugBreakpointFunctionDisabled = new e2("debug-breakpoint-function-disabled", {character: "\\eb88"}), e2.debugStackframeActive = new e2("debug-stackframe-active", {character: "\\eb89"}), e2.debugStackframeDot = new e2("debug-stackframe-dot", {character: "\\eb8a"}), e2.debugStackframe = new e2("debug-stackframe", {character: "\\eb8b"}), e2.debugStackframeFocused = new e2("debug-stackframe-focused", {character: "\\eb8b"}), e2.debugBreakpointUnsupported = new e2("debug-breakpoint-unsupported", {character: "\\eb8c"}), e2.symbolString = new e2("symbol-string", {character: "\\eb8d"}), e2.debugReverseContinue = new e2("debug-reverse-continue", {character: "\\eb8e"}), e2.debugStepBack = new e2("debug-step-back", {character: "\\eb8f"}), e2.debugRestartFrame = new e2("debug-restart-frame", {character: "\\eb90"}), e2.callIncoming = new e2("call-incoming", {character: "\\eb92"}), e2.callOutgoing = new e2("call-outgoing", {character: "\\eb93"}), e2.menu = new e2("menu", {character: "\\eb94"}), e2.expandAll = new e2("expand-all", {character: "\\eb95"}), e2.feedback = new e2("feedback", {character: "\\eb96"}), e2.groupByRefType = new e2("group-by-ref-type", {character: "\\eb97"}), e2.ungroupByRefType = new e2("ungroup-by-ref-type", {character: "\\eb98"}), e2.account = new e2("account", {character: "\\eb99"}), e2.bellDot = new e2("bell-dot", {character: "\\eb9a"}), e2.debugConsole = new e2("debug-console", {character: "\\eb9b"}), e2.library = new e2("library", {character: "\\eb9c"}), e2.output = new e2("output", {character: "\\eb9d"}), e2.runAll = new e2("run-all", {character: "\\eb9e"}), e2.syncIgnored = new e2("sync-ignored", {character: "\\eb9f"}), e2.pinned = new e2("pinned", {character: "\\eba0"}), e2.githubInverted = new e2("github-inverted", {character: "\\eba1"}), e2.debugAlt = new e2("debug-alt", {character: "\\eb91"}), e2.serverProcess = new e2("server-process", {character: "\\eba2"}), e2.serverEnvironment = new e2("server-environment", {character: "\\eba3"}), e2.pass = new e2("pass", {character: "\\eba4"}), e2.stopCircle = new e2("stop-circle", {character: "\\eba5"}), e2.playCircle = new e2("play-circle", {character: "\\eba6"}), e2.record = new e2("record", {character: "\\eba7"}), e2.debugAltSmall = new e2("debug-alt-small", {character: "\\eba8"}), e2.vmConnect = new e2("vm-connect", {character: "\\eba9"}), e2.cloud = new e2("cloud", {character: "\\ebaa"}), e2.merge = new e2("merge", {character: "\\ebab"});
}(l || (l = {}));
const c = /(\\)?\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)/gi;
function d(e2) {
return e2.replace(c, (e3, t2) => t2 ? e3 : "\\" + e3);
}
const h = /\\\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)/gi;
function u(e2) {
return e2.replace(h, (e3) => "\\" + e3);
}
const p = /(\\)?\$\((([a-z0-9\-]+?)(?:~([a-z0-9\-]*?))?)\)/gi;
function m(e2) {
return e2.replace(p, (e3, t2, n2, i2, o2) => t2 ? `$(${n2})` : ``);
}
const g = /(\s)?(\\)?\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)(\s)?/gi;
function f(e2) {
return -1 === e2.indexOf(i.a) ? e2 : e2.replace(g, (e3, t2, n2, i2) => n2 ? e3 : t2 || i2 || "");
}
}, function(e, t, n) {
"use strict";
var i;
n.d(t, "b", function() {
return i;
}), n.d(t, "a", function() {
return o;
}), n.d(t, "c", function() {
return s;
}), n.d(t, "d", function() {
return a;
}), function(e2) {
e2.serviceIds = new Map(), e2.DI_TARGET = "$di$target", e2.DI_DEPENDENCIES = "$di$dependencies", e2.getServiceDependencies = function(t2) {
return t2[e2.DI_DEPENDENCIES] || [];
};
}(i || (i = {}));
const o = s("instantiationService");
function r(e2, t2, n2, o2) {
t2[i.DI_TARGET] === t2 ? t2[i.DI_DEPENDENCIES].push({id: e2, index: n2, optional: o2}) : (t2[i.DI_DEPENDENCIES] = [{id: e2, index: n2, optional: o2}], t2[i.DI_TARGET] = t2);
}
function s(e2) {
if (i.serviceIds.has(e2))
return i.serviceIds.get(e2);
const t2 = function(e3, n2, i2) {
if (3 !== arguments.length)
throw new Error("@IServiceName-decorator can only be used to decorate a parameter");
r(t2, e3, i2, false);
};
return t2.toString = () => e2, i.serviceIds.set(e2, t2), t2;
}
function a(e2) {
return function(t2, n2, i2) {
if (3 !== arguments.length)
throw new Error("@optional-decorator can only be used to decorate a parameter");
r(e2, t2, i2, true);
};
}
}, function(e, t, n) {
"use strict";
n.d(t, "c", function() {
return a;
}), n.d(t, "h", function() {
return l;
}), n.d(t, "e", function() {
return c;
}), n.d(t, "b", function() {
return d;
}), n.d(t, "f", function() {
return h;
}), n.d(t, "a", function() {
return u;
}), n.d(t, "g", function() {
return m;
}), n.d(t, "d", function() {
return g;
});
var i = n(18), o = n(2), r = n(56), s = n(6);
const a = Object(i.c)("themeService");
function l(e2) {
return {id: e2};
}
var c;
!function(e2) {
e2.isThemeIcon = function(e3) {
return e3 && "object" == typeof e3 && "string" == typeof e3.id;
};
const t2 = /^\$\(([a-z.]+\/)?([a-z-~]+)\)$/i;
e2.fromString = function(e3) {
const n3 = t2.exec(e3);
if (!n3)
return;
let [, i2, o2] = n3;
return i2 || (i2 = "codicon/"), {id: i2 + o2};
};
const n2 = /^(codicon\/)?([a-z-]+)(~[a-z]+)?$/i;
e2.asClassName = function(e3) {
const t3 = n2.exec(e3.id);
if (!t3)
return;
let [, , i2, o2] = t3, r2 = "codicon codicon-" + i2;
return o2 && (r2 += " " + o2.substr(1)), r2;
};
}(c || (c = {}));
const d = "hc";
function h(e2) {
switch (e2) {
case "dark":
return "vs-dark";
case d:
return "hc-black";
default:
return "vs";
}
}
const u = {ThemingContribution: "base.contributions.theming"};
let p = new class {
constructor() {
this.themingParticipants = [], this.themingParticipants = [], this.onThemingParticipantAddedEmitter = new s.a();
}
onColorThemeChange(e2) {
return this.themingParticipants.push(e2), this.onThemingParticipantAddedEmitter.fire(e2), Object(o.h)(() => {
const t2 = this.themingParticipants.indexOf(e2);
this.themingParticipants.splice(t2, 1);
});
}
getThemingParticipants() {
return this.themingParticipants;
}
}();
function m(e2) {
return p.onColorThemeChange(e2);
}
r.a.add(u.ThemingContribution, p);
class g extends o.a {
constructor(e2) {
super(), this.themeService = e2, this.theme = e2.getColorTheme(), this._register(this.themeService.onDidColorThemeChange((e3) => this.onThemeChange(e3)));
}
onThemeChange(e2) {
this.theme = e2, this.updateStyles();
}
updateStyles() {
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "i", function() {
return s;
}), n.d(t, "f", function() {
return a;
}), n.d(t, "j", function() {
return l;
}), n.d(t, "a", function() {
return c;
}), n.d(t, "l", function() {
return d;
}), n.d(t, "g", function() {
return h;
}), n.d(t, "h", function() {
return u;
}), n.d(t, "e", function() {
return p;
}), n.d(t, "c", function() {
return m;
}), n.d(t, "d", function() {
return g;
}), n.d(t, "k", function() {
return f;
}), n.d(t, "b", function() {
return b;
});
var i = n(25), o = n(13), r = n(2);
function s(e2) {
return e2 && "function" == typeof e2.then;
}
function a(e2) {
const t2 = new i.b(), n2 = e2(t2.token), r2 = new Promise((e3, i2) => {
t2.token.onCancellationRequested(() => {
i2(o.a());
}), Promise.resolve(n2).then((n3) => {
t2.dispose(), e3(n3);
}, (e4) => {
t2.dispose(), i2(e4);
});
});
return new class {
cancel() {
t2.cancel();
}
then(e3, t3) {
return r2.then(e3, t3);
}
catch(e3) {
return this.then(void 0, e3);
}
finally(e3) {
return r2.finally(e3);
}
}();
}
function l(e2, t2, n2) {
return Promise.race([e2, new Promise((e3) => t2.onCancellationRequested(() => e3(n2)))]);
}
class c {
constructor(e2) {
this.defaultDelay = e2, this.timeout = null, this.completionPromise = null, this.doResolve = null, this.doReject = null, this.task = null;
}
trigger(e2, t2 = this.defaultDelay) {
return this.task = e2, this.cancelTimeout(), this.completionPromise || (this.completionPromise = new Promise((e3, t3) => {
this.doResolve = e3, this.doReject = t3;
}).then(() => {
if (this.completionPromise = null, this.doResolve = null, this.task) {
const e3 = this.task;
return this.task = null, e3();
}
})), this.timeout = setTimeout(() => {
this.timeout = null, this.doResolve && this.doResolve(null);
}, t2), this.completionPromise;
}
isTriggered() {
return null !== this.timeout;
}
cancel() {
this.cancelTimeout(), this.completionPromise && (this.doReject && this.doReject(o.a()), this.completionPromise = null);
}
cancelTimeout() {
null !== this.timeout && (clearTimeout(this.timeout), this.timeout = null);
}
dispose() {
this.cancelTimeout();
}
}
function d(e2, t2) {
return t2 ? new Promise((n2, i2) => {
const r2 = setTimeout(n2, e2);
t2.onCancellationRequested(() => {
clearTimeout(r2), i2(o.a());
});
}) : a((t3) => d(e2, t3));
}
function h(e2, t2 = 0) {
const n2 = setTimeout(e2, t2);
return Object(r.h)(() => clearTimeout(n2));
}
function u(e2, t2 = (e3) => !!e3, n2 = null) {
let i2 = 0;
const o2 = e2.length, r2 = () => {
if (i2 >= o2)
return Promise.resolve(n2);
const s2 = e2[i2++];
return Promise.resolve(s2()).then((e3) => t2(e3) ? Promise.resolve(e3) : r2());
};
return r2();
}
class p {
constructor(e2, t2) {
this._token = -1, "function" == typeof e2 && "number" == typeof t2 && this.setIfNotSet(e2, t2);
}
dispose() {
this.cancel();
}
cancel() {
-1 !== this._token && (clearTimeout(this._token), this._token = -1);
}
cancelAndSet(e2, t2) {
this.cancel(), this._token = setTimeout(() => {
this._token = -1, e2();
}, t2);
}
setIfNotSet(e2, t2) {
-1 === this._token && (this._token = setTimeout(() => {
this._token = -1, e2();
}, t2));
}
}
class m {
constructor() {
this._token = -1;
}
dispose() {
this.cancel();
}
cancel() {
-1 !== this._token && (clearInterval(this._token), this._token = -1);
}
cancelAndSet(e2, t2) {
this.cancel(), this._token = setInterval(() => {
e2();
}, t2);
}
}
class g {
constructor(e2, t2) {
this.timeoutToken = -1, this.runner = e2, this.timeout = t2, this.timeoutHandler = this.onTimeout.bind(this);
}
dispose() {
this.cancel(), this.runner = null;
}
cancel() {
this.isScheduled() && (clearTimeout(this.timeoutToken), this.timeoutToken = -1);
}
schedule(e2 = this.timeout) {
this.cancel(), this.timeoutToken = setTimeout(this.timeoutHandler, e2);
}
isScheduled() {
return -1 !== this.timeoutToken;
}
onTimeout() {
this.timeoutToken = -1, this.runner && this.doRun();
}
doRun() {
this.runner && this.runner();
}
}
let f;
!function() {
if ("function" != typeof requestIdleCallback || "function" != typeof cancelIdleCallback) {
const e2 = Object.freeze({didTimeout: true, timeRemaining: () => 15});
f = (t2) => {
const n2 = setTimeout(() => t2(e2));
let i2 = false;
return {dispose() {
i2 || (i2 = true, clearTimeout(n2));
}};
};
} else
f = (e2, t2) => {
const n2 = requestIdleCallback(e2, "number" == typeof t2 ? {timeout: t2} : void 0);
let i2 = false;
return {dispose() {
i2 || (i2 = true, cancelIdleCallback(n2));
}};
};
}();
class b {
constructor(e2) {
this._didRun = false, this._executor = () => {
try {
this._value = e2();
} catch (e3) {
this._error = e3;
} finally {
this._didRun = true;
}
}, this._handle = f(() => this._executor());
}
dispose() {
this._handle.dispose();
}
get value() {
if (this._didRun || (this._handle.dispose(), this._executor()), this._error)
throw this._error;
return this._value;
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r;
});
var i = n(9), o = n(3);
class r extends o.a {
constructor(e2, t2, n2, i2) {
super(e2, t2, n2, i2), this.selectionStartLineNumber = e2, this.selectionStartColumn = t2, this.positionLineNumber = n2, this.positionColumn = i2;
}
toString() {
return "[" + this.selectionStartLineNumber + "," + this.selectionStartColumn + " -> " + this.positionLineNumber + "," + this.positionColumn + "]";
}
equalsSelection(e2) {
return r.selectionsEqual(this, e2);
}
static selectionsEqual(e2, t2) {
return e2.selectionStartLineNumber === t2.selectionStartLineNumber && e2.selectionStartColumn === t2.selectionStartColumn && e2.positionLineNumber === t2.positionLineNumber && e2.positionColumn === t2.positionColumn;
}
getDirection() {
return this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn ? 0 : 1;
}
setEndPosition(e2, t2) {
return 0 === this.getDirection() ? new r(this.startLineNumber, this.startColumn, e2, t2) : new r(e2, t2, this.startLineNumber, this.startColumn);
}
getPosition() {
return new i.a(this.positionLineNumber, this.positionColumn);
}
setStartPosition(e2, t2) {
return 0 === this.getDirection() ? new r(e2, t2, this.endLineNumber, this.endColumn) : new r(this.endLineNumber, this.endColumn, e2, t2);
}
static fromPositions(e2, t2 = e2) {
return new r(e2.lineNumber, e2.column, t2.lineNumber, t2.column);
}
static liftSelection(e2) {
return new r(e2.selectionStartLineNumber, e2.selectionStartColumn, e2.positionLineNumber, e2.positionColumn);
}
static selectionsArrEqual(e2, t2) {
if (e2 && !t2 || !e2 && t2)
return false;
if (!e2 && !t2)
return true;
if (e2.length !== t2.length)
return false;
for (let n2 = 0, i2 = e2.length; n2 < i2; n2++)
if (!this.selectionsEqual(e2[n2], t2[n2]))
return false;
return true;
}
static isISelection(e2) {
return e2 && "number" == typeof e2.selectionStartLineNumber && "number" == typeof e2.selectionStartColumn && "number" == typeof e2.positionLineNumber && "number" == typeof e2.positionColumn;
}
static createWithDirection(e2, t2, n2, i2, o2) {
return 0 === o2 ? new r(e2, t2, n2, i2) : new r(n2, i2, e2, t2);
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return m;
}), n.d(t, "f", function() {
return g;
}), n.d(t, "c", function() {
return f;
}), n.d(t, "d", function() {
return v;
}), n.d(t, "e", function() {
return w;
}), n.d(t, "a", function() {
return y;
}), n.d(t, "g", function() {
return C;
});
var i = n(13), o = n(8), r = n(9), s = n(3), a = n(21), l = n(30), c = n(39);
const d = () => true, h = () => false, u = (e2) => " " === e2 || " " === e2;
function p(e2, t2, n2) {
e2.has(t2) ? e2.get(t2).push(n2) : e2.set(t2, [n2]);
}
class m {
constructor(e2, t2, n2) {
this._languageIdentifier = e2;
const i2 = n2.options, o2 = i2.get(117);
this.readOnly = i2.get(72), this.tabSize = t2.tabSize, this.indentSize = t2.indentSize, this.insertSpaces = t2.insertSpaces, this.lineHeight = i2.get(51), this.pageSize = Math.max(1, Math.floor(o2.height / this.lineHeight) - 2), this.useTabStops = i2.get(104), this.wordSeparators = i2.get(105), this.emptySelectionClipboard = i2.get(26), this.copyWithSyntaxHighlighting = i2.get(16), this.multiCursorMergeOverlapping = i2.get(60), this.multiCursorPaste = i2.get(62), this.autoClosingBrackets = i2.get(5), this.autoClosingQuotes = i2.get(7), this.autoClosingOvertype = i2.get(6), this.autoSurround = i2.get(10), this.autoIndent = i2.get(8), this.autoClosingPairsOpen2 = new Map(), this.autoClosingPairsClose2 = new Map(), this.surroundingPairs = {}, this._electricChars = null, this.shouldAutoCloseBefore = {quote: m._getShouldAutoClose(e2, this.autoClosingQuotes), bracket: m._getShouldAutoClose(e2, this.autoClosingBrackets)};
let r2 = m._getAutoClosingPairs(e2);
if (r2)
for (const e3 of r2)
p(this.autoClosingPairsOpen2, e3.open.charAt(e3.open.length - 1), e3), 1 === e3.close.length && p(this.autoClosingPairsClose2, e3.close, e3);
let s2 = m._getSurroundingPairs(e2);
if (s2)
for (const e3 of s2)
this.surroundingPairs[e3.open] = e3.close;
}
static shouldRecreate(e2) {
return e2.hasChanged(117) || e2.hasChanged(105) || e2.hasChanged(26) || e2.hasChanged(60) || e2.hasChanged(62) || e2.hasChanged(5) || e2.hasChanged(7) || e2.hasChanged(6) || e2.hasChanged(10) || e2.hasChanged(104) || e2.hasChanged(51) || e2.hasChanged(72);
}
get electricChars() {
if (!this._electricChars) {
this._electricChars = {};
let e2 = m._getElectricCharacters(this._languageIdentifier);
if (e2)
for (const t2 of e2)
this._electricChars[t2] = true;
}
return this._electricChars;
}
normalizeIndentation(e2) {
return l.b.normalizeIndentation(e2, this.indentSize, this.insertSpaces);
}
static _getElectricCharacters(e2) {
try {
return c.a.getElectricCharacters(e2.id);
} catch (e3) {
return Object(i.e)(e3), null;
}
}
static _getAutoClosingPairs(e2) {
try {
return c.a.getAutoClosingPairs(e2.id);
} catch (e3) {
return Object(i.e)(e3), null;
}
}
static _getShouldAutoClose(e2, t2) {
switch (t2) {
case "beforeWhitespace":
return u;
case "languageDefined":
return m._getLanguageDefinedShouldAutoClose(e2);
case "always":
return d;
case "never":
return h;
}
}
static _getLanguageDefinedShouldAutoClose(e2) {
try {
const t2 = c.a.getAutoCloseBeforeSet(e2.id);
return (e3) => -1 !== t2.indexOf(e3);
} catch (e3) {
return Object(i.e)(e3), h;
}
}
static _getSurroundingPairs(e2) {
try {
return c.a.getSurroundingPairs(e2.id);
} catch (e3) {
return Object(i.e)(e3), null;
}
}
}
class g {
constructor(e2, t2, n2, i2) {
this.selectionStart = e2, this.selectionStartLeftoverVisibleColumns = t2, this.position = n2, this.leftoverVisibleColumns = i2, this.selection = g._computeSelection(this.selectionStart, this.position);
}
equals(e2) {
return this.selectionStartLeftoverVisibleColumns === e2.selectionStartLeftoverVisibleColumns && this.leftoverVisibleColumns === e2.leftoverVisibleColumns && this.position.equals(e2.position) && this.selectionStart.equalsRange(e2.selectionStart);
}
hasSelection() {
return !this.selection.isEmpty() || !this.selectionStart.isEmpty();
}
move(e2, t2, n2, i2) {
return e2 ? new g(this.selectionStart, this.selectionStartLeftoverVisibleColumns, new r.a(t2, n2), i2) : new g(new s.a(t2, n2, t2, n2), i2, new r.a(t2, n2), i2);
}
static _computeSelection(e2, t2) {
let n2, i2, o2, r2;
return e2.isEmpty() ? (n2 = e2.startLineNumber, i2 = e2.startColumn, o2 = t2.lineNumber, r2 = t2.column) : t2.isBeforeOrEqual(e2.getStartPosition()) ? (n2 = e2.endLineNumber, i2 = e2.endColumn, o2 = t2.lineNumber, r2 = t2.column) : (n2 = e2.startLineNumber, i2 = e2.startColumn, o2 = t2.lineNumber, r2 = t2.column), new a.a(n2, i2, o2, r2);
}
}
class f {
constructor(e2, t2, n2) {
this.model = e2, this.coordinatesConverter = t2, this.cursorConfig = n2;
}
}
class b {
constructor(e2) {
this.modelState = e2, this.viewState = null;
}
}
class _ {
constructor(e2) {
this.modelState = null, this.viewState = e2;
}
}
class v {
constructor(e2, t2) {
this.modelState = e2, this.viewState = t2;
}
static fromModelState(e2) {
return new b(e2);
}
static fromViewState(e2) {
return new _(e2);
}
static fromModelSelection(e2) {
const t2 = e2.selectionStartLineNumber, n2 = e2.selectionStartColumn, i2 = e2.positionLineNumber, o2 = e2.positionColumn, a2 = new g(new s.a(t2, n2, t2, n2), 0, new r.a(i2, o2), 0);
return v.fromModelState(a2);
}
static fromModelSelections(e2) {
let t2 = [];
for (let n2 = 0, i2 = e2.length; n2 < i2; n2++)
t2[n2] = this.fromModelSelection(e2[n2]);
return t2;
}
equals(e2) {
return this.viewState.equals(e2.viewState) && this.modelState.equals(e2.modelState);
}
}
class w {
constructor(e2, t2, n2) {
this.type = e2, this.commands = t2, this.shouldPushStackElementBefore = n2.shouldPushStackElementBefore, this.shouldPushStackElementAfter = n2.shouldPushStackElementAfter;
}
}
class y {
static visibleColumnFromColumn(e2, t2, n2) {
const i2 = e2.length, r2 = t2 - 1 < i2 ? t2 - 1 : i2;
let s2 = 0, a2 = 0;
for (; a2 < r2; ) {
const t3 = o.A(e2, r2, a2);
if (a2 += t3 >= 65536 ? 2 : 1, 9 === t3)
s2 = y.nextRenderTabStop(s2, n2);
else {
let n3 = o.y(t3);
for (; a2 < r2; ) {
const t4 = o.A(e2, r2, a2), i3 = o.y(t4);
if (o.c(n3, i3))
break;
a2 += t4 >= 65536 ? 2 : 1, n3 = i3;
}
o.E(t3) || o.C(t3) ? s2 += 2 : s2 += 1;
}
}
return s2;
}
static visibleColumnFromColumn2(e2, t2, n2) {
return this.visibleColumnFromColumn(t2.getLineContent(n2.lineNumber), n2.column, e2.tabSize);
}
static columnFromVisibleColumn(e2, t2, n2) {
if (t2 <= 0)
return 1;
const i2 = e2.length;
let r2 = 0, s2 = 1, a2 = 0;
for (; a2 < i2; ) {
const l2 = o.A(e2, i2, a2);
let c2;
if (a2 += l2 >= 65536 ? 2 : 1, 9 === l2)
c2 = y.nextRenderTabStop(r2, n2);
else {
let t3 = o.y(l2);
for (; a2 < i2; ) {
const n3 = o.A(e2, i2, a2), r3 = o.y(n3);
if (o.c(t3, r3))
break;
a2 += n3 >= 65536 ? 2 : 1, t3 = r3;
}
c2 = o.E(l2) || o.C(l2) ? r2 + 2 : r2 + 1;
}
const d2 = a2 + 1;
if (c2 >= t2) {
return c2 - t2 < t2 - r2 ? d2 : s2;
}
r2 = c2, s2 = d2;
}
return i2 + 1;
}
static columnFromVisibleColumn2(e2, t2, n2, i2) {
let o2 = this.columnFromVisibleColumn(t2.getLineContent(n2), i2, e2.tabSize), r2 = t2.getLineMinColumn(n2);
if (o2 < r2)
return r2;
let s2 = t2.getLineMaxColumn(n2);
return o2 > s2 ? s2 : o2;
}
static nextRenderTabStop(e2, t2) {
return e2 + t2 - e2 % t2;
}
static nextIndentTabStop(e2, t2) {
return e2 + t2 - e2 % t2;
}
static prevRenderTabStop(e2, t2) {
return e2 - 1 - (e2 - 1) % t2;
}
static prevIndentTabStop(e2, t2) {
return e2 - 1 - (e2 - 1) % t2;
}
}
function C(e2) {
return "'" === e2 || '"' === e2 || "`" === e2;
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return d;
}), n.d(t, "b", function() {
return f;
});
var i = n(11), o = n(42);
const r = /^\w[\w\d+.-]*$/, s = /^\//, a = /^\/\//;
const l = "/", c = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
class d {
constructor(e2, t2, n2, i2, o2, c2 = false) {
"object" == typeof e2 ? (this.scheme = e2.scheme || "", this.authority = e2.authority || "", this.path = e2.path || "", this.query = e2.query || "", this.fragment = e2.fragment || "") : (this.scheme = function(e3, t3) {
return e3 || t3 ? e3 : "file";
}(e2, c2), this.authority = t2 || "", this.path = function(e3, t3) {
switch (e3) {
case "https":
case "http":
case "file":
t3 ? t3[0] !== l && (t3 = l + t3) : t3 = l;
}
return t3;
}(this.scheme, n2 || ""), this.query = i2 || "", this.fragment = o2 || "", function(e3, t3) {
if (!e3.scheme && t3)
throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e3.authority}", path: "${e3.path}", query: "${e3.query}", fragment: "${e3.fragment}"}`);
if (e3.scheme && !r.test(e3.scheme))
throw new Error("[UriError]: Scheme contains illegal characters.");
if (e3.path) {
if (e3.authority) {
if (!s.test(e3.path))
throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
} else if (a.test(e3.path))
throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
}
}(this, c2));
}
static isUri(e2) {
return e2 instanceof d || !!e2 && ("string" == typeof e2.authority && "string" == typeof e2.fragment && "string" == typeof e2.path && "string" == typeof e2.query && "string" == typeof e2.scheme && "function" == typeof e2.fsPath && "function" == typeof e2.with && "function" == typeof e2.toString);
}
get fsPath() {
return f(this, false);
}
with(e2) {
if (!e2)
return this;
let {scheme: t2, authority: n2, path: i2, query: o2, fragment: r2} = e2;
return void 0 === t2 ? t2 = this.scheme : null === t2 && (t2 = ""), void 0 === n2 ? n2 = this.authority : null === n2 && (n2 = ""), void 0 === i2 ? i2 = this.path : null === i2 && (i2 = ""), void 0 === o2 ? o2 = this.query : null === o2 && (o2 = ""), void 0 === r2 ? r2 = this.fragment : null === r2 && (r2 = ""), t2 === this.scheme && n2 === this.authority && i2 === this.path && o2 === this.query && r2 === this.fragment ? this : new u(t2, n2, i2, o2, r2);
}
static parse(e2, t2 = false) {
const n2 = c.exec(e2);
return n2 ? new u(n2[2] || "", v(n2[4] || ""), v(n2[5] || ""), v(n2[7] || ""), v(n2[9] || ""), t2) : new u("", "", "", "", "");
}
static file(e2) {
let t2 = "";
if (i.i && (e2 = e2.replace(/\\/g, l)), e2[0] === l && e2[1] === l) {
const n2 = e2.indexOf(l, 2);
-1 === n2 ? (t2 = e2.substring(2), e2 = l) : (t2 = e2.substring(2, n2), e2 = e2.substring(n2) || l);
}
return new u("file", t2, e2, "", "");
}
static from(e2) {
return new u(e2.scheme, e2.authority, e2.path, e2.query, e2.fragment);
}
static joinPath(e2, ...t2) {
if (!e2.path)
throw new Error("[UriError]: cannot call joinPaths on URI without path");
let n2;
return n2 = i.i && "file" === e2.scheme ? d.file(o.i.join(f(e2, true), ...t2)).path : o.e.join(e2.path, ...t2), e2.with({path: n2});
}
toString(e2 = false) {
return b(this, e2);
}
toJSON() {
return this;
}
static revive(e2) {
if (e2) {
if (e2 instanceof d)
return e2;
{
const t2 = new u(e2);
return t2._formatted = e2.external, t2._fsPath = e2._sep === h ? e2.fsPath : null, t2;
}
}
return e2;
}
}
const h = i.i ? 1 : void 0;
class u extends d {
constructor() {
super(...arguments), this._formatted = null, this._fsPath = null;
}
get fsPath() {
return this._fsPath || (this._fsPath = f(this, false)), this._fsPath;
}
toString(e2 = false) {
return e2 ? b(this, true) : (this._formatted || (this._formatted = b(this, false)), this._formatted);
}
toJSON() {
const e2 = {$mid: 1};
return this._fsPath && (e2.fsPath = this._fsPath, e2._sep = h), this._formatted && (e2.external = this._formatted), this.path && (e2.path = this.path), this.scheme && (e2.scheme = this.scheme), this.authority && (e2.authority = this.authority), this.query && (e2.query = this.query), this.fragment && (e2.fragment = this.fragment), e2;
}
}
const p = {58: "%3A", 47: "%2F", 63: "%3F", 35: "%23", 91: "%5B", 93: "%5D", 64: "%40", 33: "%21", 36: "%24", 38: "%26", 39: "%27", 40: "%28", 41: "%29", 42: "%2A", 43: "%2B", 44: "%2C", 59: "%3B", 61: "%3D", 32: "%20"};
function m(e2, t2) {
let n2 = void 0, i2 = -1;
for (let o2 = 0; o2 < e2.length; o2++) {
const r2 = e2.charCodeAt(o2);
if (r2 >= 97 && r2 <= 122 || r2 >= 65 && r2 <= 90 || r2 >= 48 && r2 <= 57 || 45 === r2 || 46 === r2 || 95 === r2 || 126 === r2 || t2 && 47 === r2)
-1 !== i2 && (n2 += encodeURIComponent(e2.substring(i2, o2)), i2 = -1), void 0 !== n2 && (n2 += e2.charAt(o2));
else {
void 0 === n2 && (n2 = e2.substr(0, o2));
const t3 = p[r2];
void 0 !== t3 ? (-1 !== i2 && (n2 += encodeURIComponent(e2.substring(i2, o2)), i2 = -1), n2 += t3) : -1 === i2 && (i2 = o2);
}
}
return -1 !== i2 && (n2 += encodeURIComponent(e2.substring(i2))), void 0 !== n2 ? n2 : e2;
}
function g(e2) {
let t2 = void 0;
for (let n2 = 0; n2 < e2.length; n2++) {
const i2 = e2.charCodeAt(n2);
35 === i2 || 63 === i2 ? (void 0 === t2 && (t2 = e2.substr(0, n2)), t2 += p[i2]) : void 0 !== t2 && (t2 += e2[n2]);
}
return void 0 !== t2 ? t2 : e2;
}
function f(e2, t2) {
let n2;
return n2 = e2.authority && e2.path.length > 1 && "file" === e2.scheme ? `//${e2.authority}${e2.path}` : 47 === e2.path.charCodeAt(0) && (e2.path.charCodeAt(1) >= 65 && e2.path.charCodeAt(1) <= 90 || e2.path.charCodeAt(1) >= 97 && e2.path.charCodeAt(1) <= 122) && 58 === e2.path.charCodeAt(2) ? t2 ? e2.path.substr(1) : e2.path[1].toLowerCase() + e2.path.substr(2) : e2.path, i.i && (n2 = n2.replace(/\//g, "\\")), n2;
}
function b(e2, t2) {
const n2 = t2 ? g : m;
let i2 = "", {scheme: o2, authority: r2, path: s2, query: a2, fragment: c2} = e2;
if (o2 && (i2 += o2, i2 += ":"), (r2 || "file" === o2) && (i2 += l, i2 += l), r2) {
let e3 = r2.indexOf("@");
if (-1 !== e3) {
const t3 = r2.substr(0, e3);
r2 = r2.substr(e3 + 1), e3 = t3.indexOf(":"), -1 === e3 ? i2 += n2(t3, false) : (i2 += n2(t3.substr(0, e3), false), i2 += ":", i2 += n2(t3.substr(e3 + 1), false)), i2 += "@";
}
r2 = r2.toLowerCase(), e3 = r2.indexOf(":"), -1 === e3 ? i2 += n2(r2, false) : (i2 += n2(r2.substr(0, e3), false), i2 += r2.substr(e3));
}
if (s2) {
if (s2.length >= 3 && 47 === s2.charCodeAt(0) && 58 === s2.charCodeAt(2)) {
const e3 = s2.charCodeAt(1);
e3 >= 65 && e3 <= 90 && (s2 = `/${String.fromCharCode(e3 + 32)}:${s2.substr(3)}`);
} else if (s2.length >= 2 && 58 === s2.charCodeAt(1)) {
const e3 = s2.charCodeAt(0);
e3 >= 65 && e3 <= 90 && (s2 = `${String.fromCharCode(e3 + 32)}:${s2.substr(2)}`);
}
i2 += n2(s2, true);
}
return a2 && (i2 += "?", i2 += n2(a2, false)), c2 && (i2 += "#", i2 += t2 ? c2 : m(c2, false)), i2;
}
const _ = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
function v(e2) {
return e2.match(_) ? e2.replace(_, (e3) => function e4(t2) {
try {
return decodeURIComponent(t2);
} catch (n2) {
return t2.length > 3 ? t2.substr(0, 3) + e4(t2.substr(3)) : t2;
}
}(e3)) : e2;
}
}, function(e, t, n) {
"use strict";
n.d(t, "f", function() {
return p;
}), n.d(t, "b", function() {
return m;
}), n.d(t, "a", function() {
return g;
}), n.d(t, "d", function() {
return f;
}), n.d(t, "e", function() {
return _;
}), n.d(t, "c", function() {
return v;
});
var i = n(60), o = n(18), r = n(10), s = n(27), a = n(2), l = n(6), c = n(37), d = n(53), h = function(e2, t2, n2, i2) {
var o2, r2 = arguments.length, s2 = r2 < 3 ? t2 : null === i2 ? i2 = Object.getOwnPropertyDescriptor(t2, n2) : i2;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate)
s2 = Reflect.decorate(e2, t2, n2, i2);
else
for (var a2 = e2.length - 1; a2 >= 0; a2--)
(o2 = e2[a2]) && (s2 = (r2 < 3 ? o2(s2) : r2 > 3 ? o2(t2, n2, s2) : o2(t2, n2)) || s2);
return r2 > 3 && s2 && Object.defineProperty(t2, n2, s2), s2;
}, u = function(e2, t2) {
return function(n2, i2) {
t2(n2, i2, e2);
};
};
function p(e2) {
return void 0 !== e2.command;
}
class m {
constructor(e2) {
this.id = m._idPool++, this._debugName = e2;
}
}
m._idPool = 0, m.CommandPalette = new m("CommandPalette"), m.EditorContext = new m("EditorContext"), m.EditorContextPeek = new m("EditorContextPeek"), m.MenubarEditMenu = new m("MenubarEditMenu"), m.MenubarGoMenu = new m("MenubarGoMenu"), m.MenubarSelectionMenu = new m("MenubarSelectionMenu");
const g = Object(o.c)("menuService"), f = new class {
constructor() {
this._commands = new Map(), this._menuItems = new Map(), this._onDidChangeMenu = new l.a(), this.onDidChangeMenu = this._onDidChangeMenu.event, this._commandPaletteChangeEvent = {has: (e2) => e2 === m.CommandPalette};
}
addCommand(e2) {
return this.addCommands(c.a.single(e2));
}
addCommands(e2) {
for (const t2 of e2)
this._commands.set(t2.id, t2);
return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent), Object(a.h)(() => {
let t2 = false;
for (const n2 of e2)
t2 = this._commands.delete(n2.id) || t2;
t2 && this._onDidChangeMenu.fire(this._commandPaletteChangeEvent);
});
}
getCommand(e2) {
return this._commands.get(e2);
}
getCommands() {
const e2 = new Map();
return this._commands.forEach((t2, n2) => e2.set(n2, t2)), e2;
}
appendMenuItem(e2, t2) {
return this.appendMenuItems(c.a.single({id: e2, item: t2}));
}
appendMenuItems(e2) {
const t2 = new Set(), n2 = new d.a();
for (const {id: i2, item: o2} of e2) {
let e3 = this._menuItems.get(i2);
e3 || (e3 = new d.a(), this._menuItems.set(i2, e3)), n2.push(e3.push(o2)), t2.add(i2);
}
return this._onDidChangeMenu.fire(t2), Object(a.h)(() => {
if (n2.size > 0) {
for (let e3 of n2)
e3();
this._onDidChangeMenu.fire(t2), n2.clear();
}
});
}
getMenuItems(e2) {
let t2;
return t2 = this._menuItems.has(e2) ? [...this._menuItems.get(e2)] : [], e2 === m.CommandPalette && this._appendImplicitItems(t2), t2;
}
_appendImplicitItems(e2) {
const t2 = new Set();
for (const n2 of e2)
p(n2) && (t2.add(n2.command.id), n2.alt && t2.add(n2.alt.id));
this._commands.forEach((n2, i2) => {
t2.has(i2) || e2.push({command: n2});
});
}
}();
let b = class extends i.a {
constructor(e2, t2, n2) {
super(e2, t2), this._commandService = n2;
}
run(...e2) {
return this._commandService.executeCommand(this.id, ...e2);
}
};
b = h([u(2, s.b)], b);
class _ extends i.d {
constructor(e2, t2, n2, o2) {
super("submenuitem." + e2.submenu.id, "string" == typeof e2.title ? e2.title : e2.title.value, () => {
const r2 = [], s2 = t2.createMenu(e2.submenu, n2), a2 = s2.getActions(o2);
s2.dispose();
for (let e3 of a2) {
const [, t3] = e3;
t3.length > 0 && (r2.push(...t3), r2.push(new i.c()));
}
return r2.length && r2.pop(), r2;
}, "submenu"), this.item = e2;
}
}
let v = class e2 extends b {
constructor(t2, n2, i2, o2, r2) {
if ("string" == typeof t2.title ? super(t2.id, t2.title, r2) : super(t2.id, t2.title.value, r2), this._cssClass = void 0, this._enabled = !t2.precondition || o2.contextMatchesRules(t2.precondition), this._tooltip = t2.tooltip ? "string" == typeof t2.tooltip ? t2.tooltip : t2.tooltip.value : void 0, t2.toggled) {
const e3 = t2.toggled.condition ? t2.toggled : {condition: t2.toggled};
this._checked = o2.contextMatchesRules(e3.condition), this._checked && e3.tooltip && (this._tooltip = "string" == typeof e3.tooltip ? e3.tooltip : e3.tooltip.value);
}
this._options = i2 || {}, this.item = t2, this.alt = n2 ? new e2(n2, void 0, this._options, o2, r2) : void 0;
}
dispose() {
this.alt && this.alt.dispose(), super.dispose();
}
run(...e3) {
let t2 = [];
return this._options.arg && (t2 = [...t2, this._options.arg]), this._options.shouldForwardArgs && (t2 = [...t2, ...e3]), super.run(...t2);
}
};
v = h([u(3, r.b), u(4, s.b)], v);
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r;
}), n.d(t, "b", function() {
return a;
});
var i = n(6);
const o = Object.freeze(function(e2, t2) {
const n2 = setTimeout(e2.bind(t2), 0);
return {dispose() {
clearTimeout(n2);
}};
});
var r;
!function(e2) {
e2.isCancellationToken = function(t2) {
return t2 === e2.None || t2 === e2.Cancelled || (t2 instanceof s || !(!t2 || "object" != typeof t2) && ("boolean" == typeof t2.isCancellationRequested && "function" == typeof t2.onCancellationRequested));
}, e2.None = Object.freeze({isCancellationRequested: false, onCancellationRequested: i.b.None}), e2.Cancelled = Object.freeze({isCancellationRequested: true, onCancellationRequested: o});
}(r || (r = {}));
class s {
constructor() {
this._isCancelled = false, this._emitter = null;
}
cancel() {
this._isCancelled || (this._isCancelled = true, this._emitter && (this._emitter.fire(void 0), this.dispose()));
}
get isCancellationRequested() {
return this._isCancelled;
}
get onCancellationRequested() {
return this._isCancelled ? o : (this._emitter || (this._emitter = new i.a()), this._emitter.event);
}
dispose() {
this._emitter && (this._emitter.dispose(), this._emitter = null);
}
}
class a {
constructor(e2) {
this._token = void 0, this._parentListener = void 0, this._parentListener = e2 && e2.onCancellationRequested(this.cancel, this);
}
get token() {
return this._token || (this._token = new s()), this._token;
}
cancel() {
this._token ? this._token instanceof s && this._token.cancel() : this._token = r.Cancelled;
}
dispose(e2 = false) {
e2 && this.cancel(), this._parentListener && this._parentListener.dispose(), this._token ? this._token instanceof s && this._token.dispose() : this._token = r.None;
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "h", function() {
return s;
}), n.d(t, "b", function() {
return a;
}), n.d(t, "j", function() {
return l;
}), n.d(t, "a", function() {
return c;
}), n.d(t, "i", function() {
return v;
}), n.d(t, "e", function() {
return w;
}), n.d(t, "f", function() {
return C;
}), n.d(t, "l", function() {
return x;
}), n.d(t, "c", function() {
return k;
}), n.d(t, "d", function() {
return E;
}), n.d(t, "k", function() {
return T;
}), n.d(t, "g", function() {
return N;
});
var i = n(0), o = n(11), r = n(73);
const s = 8;
class a {
constructor(e2) {
this._values = e2;
}
hasChanged(e2) {
return this._values[e2];
}
}
class l {
constructor() {
this._values = [];
}
_read(e2) {
return this._values[e2];
}
get(e2) {
return this._values[e2];
}
_write(e2, t2) {
this._values[e2] = t2;
}
}
class c {
constructor() {
this.stableMinimapLayoutInput = null, this.stableFitMaxMinimapScale = 0, this.stableFitRemainingWidth = 0;
}
}
class d {
constructor(e2, t2, n2, i2) {
this.id = e2, this.name = t2, this.defaultValue = n2, this.schema = i2;
}
compute(e2, t2, n2) {
return n2;
}
}
class h {
constructor(e2, t2 = null) {
this.schema = void 0, this.id = e2, this.name = "_never_", this.defaultValue = void 0, this.deps = t2;
}
validate(e2) {
return this.defaultValue;
}
}
class u {
constructor(e2, t2, n2, i2) {
this.id = e2, this.name = t2, this.defaultValue = n2, this.schema = i2;
}
validate(e2) {
return void 0 === e2 ? this.defaultValue : e2;
}
compute(e2, t2, n2) {
return n2;
}
}
class p extends u {
static boolean(e2, t2) {
return void 0 === e2 ? t2 : "false" !== e2 && Boolean(e2);
}
constructor(e2, t2, n2, i2) {
void 0 !== i2 && (i2.type = "boolean", i2.default = n2), super(e2, t2, n2, i2);
}
validate(e2) {
return p.boolean(e2, this.defaultValue);
}
}
class m extends u {
constructor(e2, t2, n2, i2, o2, r2) {
void 0 !== r2 && (r2.type = "integer", r2.default = n2, r2.minimum = i2, r2.maximum = o2), super(e2, t2, n2, r2), this.minimum = i2, this.maximum = o2;
}
static clampedInt(e2, t2, n2, i2) {
if (void 0 === e2)
return t2;
let o2 = parseInt(e2, 10);
return isNaN(o2) ? t2 : (o2 = Math.max(n2, o2), o2 = Math.min(i2, o2), 0 | o2);
}
validate(e2) {
return m.clampedInt(e2, this.defaultValue, this.minimum, this.maximum);
}
}
class g extends u {
constructor(e2, t2, n2, i2, o2) {
void 0 !== o2 && (o2.type = "number", o2.default = n2), super(e2, t2, n2, o2), this.validationFn = i2;
}
static clamp(e2, t2, n2) {
return e2 < t2 ? t2 : e2 > n2 ? n2 : e2;
}
static float(e2, t2) {
if ("number" == typeof e2)
return e2;
if (void 0 === e2)
return t2;
const n2 = parseFloat(e2);
return isNaN(n2) ? t2 : n2;
}
validate(e2) {
return this.validationFn(g.float(e2, this.defaultValue));
}
}
class f extends u {
static string(e2, t2) {
return "string" != typeof e2 ? t2 : e2;
}
constructor(e2, t2, n2, i2) {
void 0 !== i2 && (i2.type = "string", i2.default = n2), super(e2, t2, n2, i2);
}
validate(e2) {
return f.string(e2, this.defaultValue);
}
}
class b extends u {
constructor(e2, t2, n2, i2, o2) {
void 0 !== o2 && (o2.type = "string", o2.enum = i2, o2.default = n2), super(e2, t2, n2, o2), this._allowedValues = i2;
}
static stringSet(e2, t2, n2) {
return "string" != typeof e2 || -1 === n2.indexOf(e2) ? t2 : e2;
}
validate(e2) {
return b.stringSet(e2, this.defaultValue, this._allowedValues);
}
}
class _ extends d {
constructor(e2, t2, n2, i2, o2, r2, s2) {
void 0 !== s2 && (s2.type = "string", s2.enum = o2, s2.default = i2), super(e2, t2, n2, s2), this._allowedValues = o2, this._convert = r2;
}
validate(e2) {
return "string" != typeof e2 || -1 === this._allowedValues.indexOf(e2) ? this.defaultValue : this._convert(e2);
}
}
var v;
!function(e2) {
e2[e2.Line = 1] = "Line", e2[e2.Block = 2] = "Block", e2[e2.Underline = 3] = "Underline", e2[e2.LineThin = 4] = "LineThin", e2[e2.BlockOutline = 5] = "BlockOutline", e2[e2.UnderlineThin = 6] = "UnderlineThin";
}(v || (v = {}));
class w extends d {
constructor() {
super(37, "fontLigatures", w.OFF, {anyOf: [{type: "boolean", description: i.a("fontLigatures", "Enables/Disables font ligatures.")}, {type: "string", description: i.a("fontFeatureSettings", "Explicit font-feature-settings.")}], description: i.a("fontLigaturesGeneral", "Configures font ligatures or font features."), default: false});
}
validate(e2) {
return void 0 === e2 ? this.defaultValue : "string" == typeof e2 ? "false" === e2 ? w.OFF : "true" === e2 ? w.ON : e2 : Boolean(e2) ? w.ON : w.OFF;
}
}
w.OFF = '"liga" off, "calt" off', w.ON = '"liga" on, "calt" on';
class y extends d {
constructor() {
super(39, "fontWeight", k.fontWeight, {anyOf: [{type: "number", minimum: y.MINIMUM_VALUE, maximum: y.MAXIMUM_VALUE, errorMessage: i.a("fontWeightErrorMessage", 'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')}, {type: "string", pattern: "^(normal|bold|1000|[1-9][0-9]{0,2})$"}, {enum: y.SUGGESTION_VALUES}], default: k.fontWeight, description: i.a("fontWeight", 'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')});
}
validate(e2) {
return "normal" === e2 || "bold" === e2 ? e2 : String(m.clampedInt(e2, k.fontWeight, y.MINIMUM_VALUE, y.MAXIMUM_VALUE));
}
}
y.SUGGESTION_VALUES = ["normal", "bold", "100", "200", "300", "400", "500", "600", "700", "800", "900"], y.MINIMUM_VALUE = 1, y.MAXIMUM_VALUE = 1e3;
class C extends h {
constructor() {
super(117, [42, 50, 31, 56, 84, 52, 53, 86, 106, 109, 110, 2]);
}
compute(e2, t2, n2) {
return C.computeLayout(t2, {memory: e2.memory, outerWidth: e2.outerWidth, outerHeight: e2.outerHeight, isDominatedByLongLines: e2.isDominatedByLongLines, lineHeight: e2.fontInfo.lineHeight, viewLineCount: e2.viewLineCount, lineNumbersDigitCount: e2.lineNumbersDigitCount, typicalHalfwidthCharacterWidth: e2.fontInfo.typicalHalfwidthCharacterWidth, maxDigitWidth: e2.fontInfo.maxDigitWidth, pixelRatio: e2.pixelRatio});
}
static computeContainedMinimapLineCount(e2) {
const t2 = e2.height / e2.lineHeight, n2 = e2.scrollBeyondLastLine ? t2 - 1 : 0, i2 = (e2.viewLineCount + n2) / (e2.pixelRatio * e2.height);
return {typicalViewportLineCount: t2, extraLinesBeyondLastLine: n2, desiredRatio: i2, minimapLineCount: Math.floor(e2.viewLineCount / i2)};
}
static _computeMinimapLayout(e2, t2) {
const n2 = e2.outerWidth, i2 = e2.outerHeight, o2 = e2.pixelRatio;
if (!e2.minimap.enabled)
return {renderMinimap: 0, minimapLeft: 0, minimapWidth: 0, minimapHeightIsEditorHeight: false, minimapIsSampling: false, minimapScale: 1, minimapLineHeight: 1, minimapCanvasInnerWidth: 0, minimapCanvasInnerHeight: Math.floor(o2 * i2), minimapCanvasOuterWidth: 0, minimapCanvasOuterHeight: i2};
const r2 = t2.stableMinimapLayoutInput, a2 = r2 && e2.outerHeight === r2.outerHeight && e2.lineHeight === r2.lineHeight && e2.typicalHalfwidthCharacterWidth === r2.typicalHalfwidthCharacterWidth && e2.pixelRatio === r2.pixelRatio && e2.scrollBeyondLastLine === r2.scrollBeyondLastLine && e2.minimap.enabled === r2.minimap.enabled && e2.minimap.side === r2.minimap.side && e2.minimap.size === r2.minimap.size && e2.minimap.showSlider === r2.minimap.showSlider && e2.minimap.renderCharacters === r2.minimap.renderCharacters && e2.minimap.maxColumn === r2.minimap.maxColumn && e2.minimap.scale === r2.minimap.scale && e2.verticalScrollbarWidth === r2.verticalScrollbarWidth && e2.isViewportWrapping === r2.isViewportWrapping, l2 = e2.lineHeight, c2 = e2.typicalHalfwidthCharacterWidth, d2 = e2.scrollBeyondLastLine, h2 = e2.minimap.renderCharacters;
let u2 = o2 >= 2 ? Math.round(2 * e2.minimap.scale) : e2.minimap.scale;
const p2 = e2.minimap.maxColumn, m2 = e2.minimap.size, g2 = e2.minimap.side, f2 = e2.verticalScrollbarWidth, b2 = e2.viewLineCount, _2 = e2.remainingWidth, v2 = e2.isViewportWrapping, w2 = h2 ? 2 : 3;
let y2 = Math.floor(o2 * i2);
const x2 = y2 / o2;
let S2 = false, k2 = false, E2 = w2 * u2, T2 = u2 / o2, L2 = 1;
if ("fill" === m2 || "fit" === m2) {
const {typicalViewportLineCount: n3, extraLinesBeyondLastLine: r3, desiredRatio: s2, minimapLineCount: c3} = C.computeContainedMinimapLineCount({viewLineCount: b2, scrollBeyondLastLine: d2, height: i2, lineHeight: l2, pixelRatio: o2});
if (b2 / c3 > 1)
S2 = true, k2 = true, u2 = 1, E2 = 1, T2 = u2 / o2;
else {
let i3 = false, c4 = u2 + 1;
if ("fit" === m2) {
const n4 = Math.ceil((b2 + r3) * E2);
v2 && a2 && _2 <= t2.stableFitRemainingWidth ? (i3 = true, c4 = t2.stableFitMaxMinimapScale) : (i3 = n4 > y2, v2 && i3 ? (t2.stableMinimapLayoutInput = e2, t2.stableFitRemainingWidth = _2) : (t2.stableMinimapLayoutInput = null, t2.stableFitRemainingWidth = 0));
}
if ("fill" === m2 || i3) {
S2 = true;
const e3 = u2;
E2 = Math.min(l2 * o2, Math.max(1, Math.floor(1 / s2))), u2 = Math.min(c4, Math.max(1, Math.floor(E2 / w2))), u2 > e3 && (L2 = Math.min(2, u2 / e3)), T2 = u2 / o2 / L2, y2 = Math.ceil(Math.max(n3, b2 + r3) * E2), v2 && i3 && (t2.stableFitMaxMinimapScale = u2);
}
}
}
const N2 = Math.floor(p2 * T2), I = Math.min(N2, Math.max(0, Math.floor((_2 - f2 - 2) * T2 / (c2 + T2))) + s);
let O = Math.floor(o2 * I);
const D = O / o2;
O = Math.floor(O * L2);
return {renderMinimap: h2 ? 1 : 2, minimapLeft: "left" === g2 ? 0 : n2 - I - f2, minimapWidth: I, minimapHeightIsEditorHeight: S2, minimapIsSampling: k2, minimapScale: u2, minimapLineHeight: E2, minimapCanvasInnerWidth: O, minimapCanvasInnerHeight: y2, minimapCanvasOuterWidth: D, minimapCanvasOuterHeight: x2};
}
static computeLayout(e2, t2) {
const n2 = 0 | t2.outerWidth, i2 = 0 | t2.outerHeight, o2 = 0 | t2.lineHeight, r2 = 0 | t2.lineNumbersDigitCount, s2 = t2.typicalHalfwidthCharacterWidth, a2 = t2.maxDigitWidth, l2 = t2.pixelRatio, d2 = t2.viewLineCount, h2 = e2.get(106), u2 = e2.get(109), p2 = e2.get(110), g2 = e2.get(2), f2 = t2.isDominatedByLongLines, b2 = e2.get(42), _2 = 0 !== e2.get(52).renderType, v2 = e2.get(53), w2 = e2.get(86), y2 = e2.get(56), x2 = e2.get(84), S2 = x2.verticalScrollbarSize, k2 = x2.verticalHasArrows, E2 = x2.arrowSize, T2 = x2.horizontalScrollbarSize, L2 = e2.get(50), N2 = e2.get(31);
let I;
if ("string" == typeof L2 && /^\d+(\.\d+)?ch$/.test(L2)) {
const e3 = parseFloat(L2.substr(0, L2.length - 2));
I = m.clampedInt(e3 * s2, 0, 0, 1e3);
} else
I = m.clampedInt(L2, 0, 0, 1e3);
N2 && (I += 16);
let O = 0;
if (_2) {
const e3 = Math.max(r2, v2);
O = Math.round(e3 * a2);
}
let D = 0;
b2 && (D = o2);
let A = 0, R = A + D, M = R + O, P = M + I;
const F = n2 - D - O - I;
let W = false, z = false, B = -1;
2 !== g2 && (p2 && f2 ? (W = true, z = true) : "on" === h2 || "bounded" === h2 ? z = true : "wordWrapColumn" === h2 && (B = u2));
const j = C._computeMinimapLayout({outerWidth: n2, outerHeight: i2, lineHeight: o2, typicalHalfwidthCharacterWidth: s2, pixelRatio: l2, scrollBeyondLastLine: w2, minimap: y2, verticalScrollbarWidth: S2, viewLineCount: d2, remainingWidth: F, isViewportWrapping: z}, t2.memory || new c());
0 !== j.renderMinimap && 0 === j.minimapLeft && (A += j.minimapWidth, R += j.minimapWidth, M += j.minimapWidth, P += j.minimapWidth);
const V = F - j.minimapWidth, U = Math.max(1, Math.floor((V - S2 - 2) / s2)), H = k2 ? E2 : 0;
return z && (B = Math.max(1, U), "bounded" === h2 && (B = Math.min(B, u2))), {width: n2, height: i2, glyphMarginLeft: A, glyphMarginWidth: D, lineNumbersLeft: R, lineNumbersWidth: O, decorationsLeft: M, decorationsWidth: I, contentLeft: P, contentWidth: V, minimap: j, viewportColumn: U, isWordWrapMinified: W, isViewportWrapping: z, wrappingColumn: B, verticalScrollbarWidth: S2, horizontalScrollbarHeight: T2, overviewRuler: {top: H, width: S2, height: i2 - 2 * H, right: 0}};
}
}
function x(e2) {
const t2 = e2.get(79);
return "editable" === t2 ? e2.get(72) : "on" !== t2;
}
function S(e2, t2) {
if ("string" != typeof e2)
return t2;
switch (e2) {
case "hidden":
return 2;
case "visible":
return 3;
default:
return 1;
}
}
const k = {fontFamily: o.f ? "Menlo, Monaco, 'Courier New', monospace" : o.d ? "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'" : "Consolas, 'Courier New', monospace", fontWeight: "normal", fontSize: o.f ? 12 : 14, lineHeight: 0, letterSpacing: 0}, E = {tabSize: 4, indentSize: 4, insertSpaces: true, detectIndentation: true, trimAutoWhitespace: true, largeFileOptimizations: true}, T = [];
function L(e2) {
return T[e2.id] = e2, e2;
}
const N = {acceptSuggestionOnCommitCharacter: L(new p(0, "acceptSuggestionOnCommitCharacter", true, {markdownDescription: i.a("acceptSuggestionOnCommitCharacter", "Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})), acceptSuggestionOnEnter: L(new b(1, "acceptSuggestionOnEnter", "on", ["on", "smart", "off"], {markdownEnumDescriptions: ["", i.a("acceptSuggestionOnEnterSmart", "Only accept a suggestion with `Enter` when it makes a textual change."), ""], markdownDescription: i.a("acceptSuggestionOnEnter", "Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})), accessibilitySupport: L(new class extends d {
constructor() {
super(2, "accessibilitySupport", 0, {type: "string", enum: ["auto", "on", "off"], enumDescriptions: [i.a("accessibilitySupport.auto", "The editor will use platform APIs to detect when a Screen Reader is attached."), i.a("accessibilitySupport.on", "The editor will be permanently optimized for usage with a Screen Reader."), i.a("accessibilitySupport.off", "The editor will never be optimized for usage with a Screen Reader.")], default: "auto", description: i.a("accessibilitySupport", "Controls whether the editor should run in a mode where it is optimized for screen readers.")});
}
validate(e2) {
switch (e2) {
case "auto":
return 0;
case "off":
return 1;
case "on":
return 2;
}
return this.defaultValue;
}
compute(e2, t2, n2) {
return 0 === n2 ? e2.accessibilitySupport : n2;
}
}()), accessibilityPageSize: L(new m(3, "accessibilityPageSize", 10, 1, 1073741824, {description: i.a("accessibilityPageSize", "Controls the number of lines in the editor that can be read out by a screen reader. Warning: this has a performance implication for numbers larger than the default.")})), ariaLabel: L(new f(4, "ariaLabel", i.a("editorViewAccessibleLabel", "Editor content"))), autoClosingBrackets: L(new b(5, "autoClosingBrackets", "languageDefined", ["always", "languageDefined", "beforeWhitespace", "never"], {enumDescriptions: ["", i.a("editor.autoClosingBrackets.languageDefined", "Use language configurations to determine when to autoclose brackets."), i.a("editor.autoClosingBrackets.beforeWhitespace", "Autoclose brackets only when the cursor is to the left of whitespace."), ""], description: i.a("autoClosingBrackets", "Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})), autoClosingOvertype: L(new b(6, "autoClosingOvertype", "auto", ["always", "auto", "never"], {enumDescriptions: ["", i.a("editor.autoClosingOvertype.auto", "Type over closing quotes or brackets only if they were automatically inserted."), ""], description: i.a("autoClosingOvertype", "Controls whether the editor should type over closing quotes or brackets.")})), autoClosingQuotes: L(new b(7, "autoClosingQuotes", "languageDefined", ["always", "languageDefined", "beforeWhitespace", "never"], {enumDescriptions: ["", i.a("editor.autoClosingQuotes.languageDefined", "Use language configurations to determine when to autoclose quotes."), i.a("editor.autoClosingQuotes.beforeWhitespace", "Autoclose quotes only when the cursor is to the left of whitespace."), ""], description: i.a("autoClosingQuotes", "Controls whether the editor should automatically close quotes after the user adds an opening quote.")})), autoIndent: L(new _(8, "autoIndent", 4, "full", ["none", "keep", "brackets", "advanced", "full"], function(e2) {
switch (e2) {
case "none":
return 0;
case "keep":
return 1;
case "brackets":
return 2;
case "advanced":
return 3;
case "full":
return 4;
}
}, {enumDescriptions: [i.a("editor.autoIndent.none", "The editor will not insert indentation automatically."), i.a("editor.autoIndent.keep", "The editor will keep the current line's indentation."), i.a("editor.autoIndent.brackets", "The editor will keep the current line's indentation and honor language defined brackets."), i.a("editor.autoIndent.advanced", "The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."), i.a("editor.autoIndent.full", "The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")], description: i.a("autoIndent", "Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})), automaticLayout: L(new p(9, "automaticLayout", false)), autoSurround: L(new b(10, "autoSurround", "languageDefined", ["languageDefined", "quotes", "brackets", "never"], {enumDescriptions: [i.a("editor.autoSurround.languageDefined", "Use language configurations to determine when to automatically surround selections."), i.a("editor.autoSurround.quotes", "Surround with quotes but not brackets."), i.a("editor.autoSurround.brackets", "Surround with brackets but not quotes."), ""], description: i.a("autoSurround", "Controls whether the editor should automatically surround selections.")})), codeLens: L(new p(11, "codeLens", true, {description: i.a("codeLens", "Controls whether the editor shows CodeLens.")})), colorDecorators: L(new p(12, "colorDecorators", true, {description: i.a("colorDecorators", "Controls whether the editor should render the inline color decorators and color picker.")})), columnSelection: L(new p(13, "columnSelection", false, {description: i.a("columnSelection", "Enable that the selection with the mouse and keys is doing column selection.")})), comments: L(new class extends d {
constructor() {
const e2 = {insertSpace: true, ignoreEmptyLines: true};
super(14, "comments", e2, {"editor.comments.insertSpace": {type: "boolean", default: e2.insertSpace, description: i.a("comments.insertSpace", "Controls whether a space character is inserted when commenting.")}, "editor.comments.ignoreEmptyLines": {type: "boolean", default: e2.ignoreEmptyLines, description: i.a("comments.ignoreEmptyLines", "Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {insertSpace: p.boolean(t2.insertSpace, this.defaultValue.insertSpace), ignoreEmptyLines: p.boolean(t2.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines)};
}
}()), contextmenu: L(new p(15, "contextmenu", true)), copyWithSyntaxHighlighting: L(new p(16, "copyWithSyntaxHighlighting", true, {description: i.a("copyWithSyntaxHighlighting", "Controls whether syntax highlighting should be copied into the clipboard.")})), cursorBlinking: L(new _(17, "cursorBlinking", 1, "blink", ["blink", "smooth", "phase", "expand", "solid"], function(e2) {
switch (e2) {
case "blink":
return 1;
case "smooth":
return 2;
case "phase":
return 3;
case "expand":
return 4;
case "solid":
return 5;
}
}, {description: i.a("cursorBlinking", "Control the cursor animation style.")})), cursorSmoothCaretAnimation: L(new p(18, "cursorSmoothCaretAnimation", false, {description: i.a("cursorSmoothCaretAnimation", "Controls whether the smooth caret animation should be enabled.")})), cursorStyle: L(new _(19, "cursorStyle", v.Line, "line", ["line", "block", "underline", "line-thin", "block-outline", "underline-thin"], function(e2) {
switch (e2) {
case "line":
return v.Line;
case "block":
return v.Block;
case "underline":
return v.Underline;
case "line-thin":
return v.LineThin;
case "block-outline":
return v.BlockOutline;
case "underline-thin":
return v.UnderlineThin;
}
}, {description: i.a("cursorStyle", "Controls the cursor style.")})), cursorSurroundingLines: L(new m(20, "cursorSurroundingLines", 0, 0, 1073741824, {description: i.a("cursorSurroundingLines", "Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or `scrollOffset` in some other editors.")})), cursorSurroundingLinesStyle: L(new b(21, "cursorSurroundingLinesStyle", "default", ["default", "all"], {enumDescriptions: [i.a("cursorSurroundingLinesStyle.default", "`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."), i.a("cursorSurroundingLinesStyle.all", "`cursorSurroundingLines` is enforced always.")], description: i.a("cursorSurroundingLinesStyle", "Controls when `cursorSurroundingLines` should be enforced.")})), cursorWidth: L(new m(22, "cursorWidth", 0, 0, 1073741824, {markdownDescription: i.a("cursorWidth", "Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})), disableLayerHinting: L(new p(23, "disableLayerHinting", false)), disableMonospaceOptimizations: L(new p(24, "disableMonospaceOptimizations", false)), dragAndDrop: L(new p(25, "dragAndDrop", true, {description: i.a("dragAndDrop", "Controls whether the editor should allow moving selections via drag and drop.")})), emptySelectionClipboard: L(new class extends p {
constructor() {
super(26, "emptySelectionClipboard", true, {description: i.a("emptySelectionClipboard", "Controls whether copying without a selection copies the current line.")});
}
compute(e2, t2, n2) {
return n2 && e2.emptySelectionClipboard;
}
}()), extraEditorClassName: L(new f(27, "extraEditorClassName", "")), fastScrollSensitivity: L(new g(28, "fastScrollSensitivity", 5, (e2) => e2 <= 0 ? 5 : e2, {markdownDescription: i.a("fastScrollSensitivity", "Scrolling speed multiplier when pressing `Alt`.")})), find: L(new class extends d {
constructor() {
const e2 = {cursorMoveOnType: true, seedSearchStringFromSelection: true, autoFindInSelection: "never", globalFindClipboard: false, addExtraSpaceOnTop: true, loop: true};
super(29, "find", e2, {"editor.find.cursorMoveOnType": {type: "boolean", default: e2.cursorMoveOnType, description: i.a("find.cursorMoveOnType", "Controls whether the cursor should jump to find matches while typing.")}, "editor.find.seedSearchStringFromSelection": {type: "boolean", default: e2.seedSearchStringFromSelection, description: i.a("find.seedSearchStringFromSelection", "Controls whether the search string in the Find Widget is seeded from the editor selection.")}, "editor.find.autoFindInSelection": {type: "string", enum: ["never", "always", "multiline"], default: e2.autoFindInSelection, enumDescriptions: [i.a("editor.find.autoFindInSelection.never", "Never turn on Find in selection automatically (default)"), i.a("editor.find.autoFindInSelection.always", "Always turn on Find in selection automatically"), i.a("editor.find.autoFindInSelection.multiline", "Turn on Find in selection automatically when multiple lines of content are selected.")], description: i.a("find.autoFindInSelection", "Controls the condition for turning on find in selection automatically.")}, "editor.find.globalFindClipboard": {type: "boolean", default: e2.globalFindClipboard, description: i.a("find.globalFindClipboard", "Controls whether the Find Widget should read or modify the shared find clipboard on macOS."), included: o.f}, "editor.find.addExtraSpaceOnTop": {type: "boolean", default: e2.addExtraSpaceOnTop, description: i.a("find.addExtraSpaceOnTop", "Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")}, "editor.find.loop": {type: "boolean", default: e2.loop, description: i.a("find.loop", "Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {cursorMoveOnType: p.boolean(t2.cursorMoveOnType, this.defaultValue.cursorMoveOnType), seedSearchStringFromSelection: p.boolean(t2.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection), autoFindInSelection: "boolean" == typeof e2.autoFindInSelection ? e2.autoFindInSelection ? "always" : "never" : b.stringSet(t2.autoFindInSelection, this.defaultValue.autoFindInSelection, ["never", "always", "multiline"]), globalFindClipboard: p.boolean(t2.globalFindClipboard, this.defaultValue.globalFindClipboard), addExtraSpaceOnTop: p.boolean(t2.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop), loop: p.boolean(t2.loop, this.defaultValue.loop)};
}
}()), fixedOverflowWidgets: L(new p(30, "fixedOverflowWidgets", false)), folding: L(new p(31, "folding", true, {description: i.a("folding", "Controls whether the editor has code folding enabled.")})), foldingStrategy: L(new b(32, "foldingStrategy", "auto", ["auto", "indentation"], {enumDescriptions: [i.a("foldingStrategy.auto", "Use a language-specific folding strategy if available, else the indentation-based one."), i.a("foldingStrategy.indentation", "Use the indentation-based folding strategy.")], description: i.a("foldingStrategy", "Controls the strategy for computing folding ranges.")})), foldingHighlight: L(new p(33, "foldingHighlight", true, {description: i.a("foldingHighlight", "Controls whether the editor should highlight folded ranges.")})), unfoldOnClickAfterEndOfLine: L(new p(34, "unfoldOnClickAfterEndOfLine", false, {description: i.a("unfoldOnClickAfterEndOfLine", "Controls whether clicking on the empty content after a folded line will unfold the line.")})), fontFamily: L(new f(35, "fontFamily", k.fontFamily, {description: i.a("fontFamily", "Controls the font family.")})), fontInfo: L(new class extends h {
constructor() {
super(36);
}
compute(e2, t2, n2) {
return e2.fontInfo;
}
}()), fontLigatures2: L(new w()), fontSize: L(new class extends u {
constructor() {
super(38, "fontSize", k.fontSize, {type: "number", minimum: 6, maximum: 100, default: k.fontSize, description: i.a("fontSize", "Controls the font size in pixels.")});
}
validate(e2) {
let t2 = g.float(e2, this.defaultValue);
return 0 === t2 ? k.fontSize : g.clamp(t2, 6, 100);
}
compute(e2, t2, n2) {
return e2.fontInfo.fontSize;
}
}()), fontWeight: L(new y()), formatOnPaste: L(new p(40, "formatOnPaste", false, {description: i.a("formatOnPaste", "Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})), formatOnType: L(new p(41, "formatOnType", false, {description: i.a("formatOnType", "Controls whether the editor should automatically format the line after typing.")})), glyphMargin: L(new p(42, "glyphMargin", true, {description: i.a("glyphMargin", "Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})), gotoLocation: L(new class extends d {
constructor() {
const e2 = {multiple: "peek", multipleDefinitions: "peek", multipleTypeDefinitions: "peek", multipleDeclarations: "peek", multipleImplementations: "peek", multipleReferences: "peek", alternativeDefinitionCommand: "editor.action.goToReferences", alternativeTypeDefinitionCommand: "editor.action.goToReferences", alternativeDeclarationCommand: "editor.action.goToReferences", alternativeImplementationCommand: "", alternativeReferenceCommand: ""}, t2 = {type: "string", enum: ["peek", "gotoAndPeek", "goto"], default: e2.multiple, enumDescriptions: [i.a("editor.gotoLocation.multiple.peek", "Show peek view of the results (default)"), i.a("editor.gotoLocation.multiple.gotoAndPeek", "Go to the primary result and show a peek view"), i.a("editor.gotoLocation.multiple.goto", "Go to the primary result and enable peek-less navigation to others")]};
super(43, "gotoLocation", e2, {"editor.gotoLocation.multiple": {deprecationMessage: i.a("editor.gotoLocation.multiple.deprecated", "This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")}, "editor.gotoLocation.multipleDefinitions": Object.assign({description: i.a("editor.editor.gotoLocation.multipleDefinitions", "Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")}, t2), "editor.gotoLocation.multipleTypeDefinitions": Object.assign({description: i.a("editor.editor.gotoLocation.multipleTypeDefinitions", "Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")}, t2), "editor.gotoLocation.multipleDeclarations": Object.assign({description: i.a("editor.editor.gotoLocation.multipleDeclarations", "Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")}, t2), "editor.gotoLocation.multipleImplementations": Object.assign({description: i.a("editor.editor.gotoLocation.multipleImplemenattions", "Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")}, t2), "editor.gotoLocation.multipleReferences": Object.assign({description: i.a("editor.editor.gotoLocation.multipleReferences", "Controls the behavior the 'Go to References'-command when multiple target locations exist.")}, t2), "editor.gotoLocation.alternativeDefinitionCommand": {type: "string", default: e2.alternativeDefinitionCommand, description: i.a("alternativeDefinitionCommand", "Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")}, "editor.gotoLocation.alternativeTypeDefinitionCommand": {type: "string", default: e2.alternativeTypeDefinitionCommand, description: i.a("alternativeTypeDefinitionCommand", "Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")}, "editor.gotoLocation.alternativeDeclarationCommand": {type: "string", default: e2.alternativeDeclarationCommand, description: i.a("alternativeDeclarationCommand", "Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")}, "editor.gotoLocation.alternativeImplementationCommand": {type: "string", default: e2.alternativeImplementationCommand, description: i.a("alternativeImplementationCommand", "Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")}, "editor.gotoLocation.alternativeReferenceCommand": {type: "string", default: e2.alternativeReferenceCommand, description: i.a("alternativeReferenceCommand", "Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}});
}
validate(e2) {
var t2, n2, i2, o2, r2;
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const s2 = e2;
return {multiple: b.stringSet(s2.multiple, this.defaultValue.multiple, ["peek", "gotoAndPeek", "goto"]), multipleDefinitions: null !== (t2 = s2.multipleDefinitions) && void 0 !== t2 ? t2 : b.stringSet(s2.multipleDefinitions, "peek", ["peek", "gotoAndPeek", "goto"]), multipleTypeDefinitions: null !== (n2 = s2.multipleTypeDefinitions) && void 0 !== n2 ? n2 : b.stringSet(s2.multipleTypeDefinitions, "peek", ["peek", "gotoAndPeek", "goto"]), multipleDeclarations: null !== (i2 = s2.multipleDeclarations) && void 0 !== i2 ? i2 : b.stringSet(s2.multipleDeclarations, "peek", ["peek", "gotoAndPeek", "goto"]), multipleImplementations: null !== (o2 = s2.multipleImplementations) && void 0 !== o2 ? o2 : b.stringSet(s2.multipleImplementations, "peek", ["peek", "gotoAndPeek", "goto"]), multipleReferences: null !== (r2 = s2.multipleReferences) && void 0 !== r2 ? r2 : b.stringSet(s2.multipleReferences, "peek", ["peek", "gotoAndPeek", "goto"]), alternativeDefinitionCommand: f.string(s2.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand), alternativeTypeDefinitionCommand: f.string(s2.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand), alternativeDeclarationCommand: f.string(s2.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand), alternativeImplementationCommand: f.string(s2.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand), alternativeReferenceCommand: f.string(s2.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand)};
}
}()), hideCursorInOverviewRuler: L(new p(44, "hideCursorInOverviewRuler", false, {description: i.a("hideCursorInOverviewRuler", "Controls whether the cursor should be hidden in the overview ruler.")})), highlightActiveIndentGuide: L(new p(45, "highlightActiveIndentGuide", true, {description: i.a("highlightActiveIndentGuide", "Controls whether the editor should highlight the active indent guide.")})), hover: L(new class extends d {
constructor() {
const e2 = {enabled: true, delay: 300, sticky: true};
super(46, "hover", e2, {"editor.hover.enabled": {type: "boolean", default: e2.enabled, description: i.a("hover.enabled", "Controls whether the hover is shown.")}, "editor.hover.delay": {type: "number", default: e2.delay, description: i.a("hover.delay", "Controls the delay in milliseconds after which the hover is shown.")}, "editor.hover.sticky": {type: "boolean", default: e2.sticky, description: i.a("hover.sticky", "Controls whether the hover should remain visible when mouse is moved over it.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {enabled: p.boolean(t2.enabled, this.defaultValue.enabled), delay: m.clampedInt(t2.delay, this.defaultValue.delay, 0, 1e4), sticky: p.boolean(t2.sticky, this.defaultValue.sticky)};
}
}()), inDiffEditor: L(new p(47, "inDiffEditor", false)), letterSpacing: L(new g(48, "letterSpacing", k.letterSpacing, (e2) => g.clamp(e2, -5, 20), {description: i.a("letterSpacing", "Controls the letter spacing in pixels.")})), lightbulb: L(new class extends d {
constructor() {
const e2 = {enabled: true};
super(49, "lightbulb", e2, {"editor.lightbulb.enabled": {type: "boolean", default: e2.enabled, description: i.a("codeActions", "Enables the code action lightbulb in the editor.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {enabled: p.boolean(t2.enabled, this.defaultValue.enabled)};
}
}()), lineDecorationsWidth: L(new u(50, "lineDecorationsWidth", 10)), lineHeight: L(new class extends m {
constructor() {
super(51, "lineHeight", k.lineHeight, 0, 150, {description: i.a("lineHeight", "Controls the line height. Use 0 to compute the line height from the font size.")});
}
compute(e2, t2, n2) {
return e2.fontInfo.lineHeight;
}
}()), lineNumbers: L(new class extends d {
constructor() {
super(52, "lineNumbers", {renderType: 1, renderFn: null}, {type: "string", enum: ["off", "on", "relative", "interval"], enumDescriptions: [i.a("lineNumbers.off", "Line numbers are not rendered."), i.a("lineNumbers.on", "Line numbers are rendered as absolute number."), i.a("lineNumbers.relative", "Line numbers are rendered as distance in lines to cursor position."), i.a("lineNumbers.interval", "Line numbers are rendered every 10 lines.")], default: "on", description: i.a("lineNumbers", "Controls the display of line numbers.")});
}
validate(e2) {
let t2 = this.defaultValue.renderType, n2 = this.defaultValue.renderFn;
return void 0 !== e2 && ("function" == typeof e2 ? (t2 = 4, n2 = e2) : t2 = "interval" === e2 ? 3 : "relative" === e2 ? 2 : "on" === e2 ? 1 : 0), {renderType: t2, renderFn: n2};
}
}()), lineNumbersMinChars: L(new m(53, "lineNumbersMinChars", 5, 1, 300)), links: L(new p(54, "links", true, {description: i.a("links", "Controls whether the editor should detect links and make them clickable.")})), matchBrackets: L(new b(55, "matchBrackets", "always", ["always", "near", "never"], {description: i.a("matchBrackets", "Highlight matching brackets.")})), minimap: L(new class extends d {
constructor() {
const e2 = {enabled: true, size: "proportional", side: "right", showSlider: "mouseover", renderCharacters: true, maxColumn: 120, scale: 1};
super(56, "minimap", e2, {"editor.minimap.enabled": {type: "boolean", default: e2.enabled, description: i.a("minimap.enabled", "Controls whether the minimap is shown.")}, "editor.minimap.size": {type: "string", enum: ["proportional", "fill", "fit"], enumDescriptions: [i.a("minimap.size.proportional", "The minimap has the same size as the editor contents (and might scroll)."), i.a("minimap.size.fill", "The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."), i.a("minimap.size.fit", "The minimap will shrink as necessary to never be larger than the editor (no scrolling).")], default: e2.size, description: i.a("minimap.size", "Controls the size of the minimap.")}, "editor.minimap.side": {type: "string", enum: ["left", "right"], default: e2.side, description: i.a("minimap.side", "Controls the side where to render the minimap.")}, "editor.minimap.showSlider": {type: "string", enum: ["always", "mouseover"], default: e2.showSlider, description: i.a("minimap.showSlider", "Controls when the minimap slider is shown.")}, "editor.minimap.scale": {type: "number", default: e2.scale, minimum: 1, maximum: 3, enum: [1, 2, 3], description: i.a("minimap.scale", "Scale of content drawn in the minimap: 1, 2 or 3.")}, "editor.minimap.renderCharacters": {type: "boolean", default: e2.renderCharacters, description: i.a("minimap.renderCharacters", "Render the actual characters on a line as opposed to color blocks.")}, "editor.minimap.maxColumn": {type: "number", default: e2.maxColumn, description: i.a("minimap.maxColumn", "Limit the width of the minimap to render at most a certain number of columns.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {enabled: p.boolean(t2.enabled, this.defaultValue.enabled), size: b.stringSet(t2.size, this.defaultValue.size, ["proportional", "fill", "fit"]), side: b.stringSet(t2.side, this.defaultValue.side, ["right", "left"]), showSlider: b.stringSet(t2.showSlider, this.defaultValue.showSlider, ["always", "mouseover"]), renderCharacters: p.boolean(t2.renderCharacters, this.defaultValue.renderCharacters), scale: m.clampedInt(t2.scale, 1, 1, 3), maxColumn: m.clampedInt(t2.maxColumn, this.defaultValue.maxColumn, 1, 1e4)};
}
}()), mouseStyle: L(new b(57, "mouseStyle", "text", ["text", "default", "copy"])), mouseWheelScrollSensitivity: L(new g(58, "mouseWheelScrollSensitivity", 1, (e2) => 0 === e2 ? 1 : e2, {markdownDescription: i.a("mouseWheelScrollSensitivity", "A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})), mouseWheelZoom: L(new p(59, "mouseWheelZoom", false, {markdownDescription: i.a("mouseWheelZoom", "Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})), multiCursorMergeOverlapping: L(new p(60, "multiCursorMergeOverlapping", true, {description: i.a("multiCursorMergeOverlapping", "Merge multiple cursors when they are overlapping.")})), multiCursorModifier: L(new _(61, "multiCursorModifier", "altKey", "alt", ["ctrlCmd", "alt"], function(e2) {
return "ctrlCmd" === e2 ? o.f ? "metaKey" : "ctrlKey" : "altKey";
}, {markdownEnumDescriptions: [i.a("multiCursorModifier.ctrlCmd", "Maps to `Control` on Windows and Linux and to `Command` on macOS."), i.a("multiCursorModifier.alt", "Maps to `Alt` on Windows and Linux and to `Option` on macOS.")], markdownDescription: i.a({key: "multiCursorModifier", comment: ["- `ctrlCmd` refers to a value the setting can take and should not be localized.", "- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]}, "The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})), multiCursorPaste: L(new b(62, "multiCursorPaste", "spread", ["spread", "full"], {markdownEnumDescriptions: [i.a("multiCursorPaste.spread", "Each cursor pastes a single line of the text."), i.a("multiCursorPaste.full", "Each cursor pastes the full text.")], markdownDescription: i.a("multiCursorPaste", "Controls pasting when the line count of the pasted text matches the cursor count.")})), occurrencesHighlight: L(new p(63, "occurrencesHighlight", true, {description: i.a("occurrencesHighlight", "Controls whether the editor should highlight semantic symbol occurrences.")})), overviewRulerBorder: L(new p(64, "overviewRulerBorder", true, {description: i.a("overviewRulerBorder", "Controls whether a border should be drawn around the overview ruler.")})), overviewRulerLanes: L(new m(65, "overviewRulerLanes", 3, 0, 3)), padding: L(new class extends d {
constructor() {
super(66, "padding", {top: 0, bottom: 0}, {"editor.padding.top": {type: "number", default: 0, minimum: 0, maximum: 1e3, description: i.a("padding.top", "Controls the amount of space between the top edge of the editor and the first line.")}, "editor.padding.bottom": {type: "number", default: 0, minimum: 0, maximum: 1e3, description: i.a("padding.bottom", "Controls the amount of space between the bottom edge of the editor and the last line.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {top: m.clampedInt(t2.top, 0, 0, 1e3), bottom: m.clampedInt(t2.bottom, 0, 0, 1e3)};
}
}()), parameterHints: L(new class extends d {
constructor() {
const e2 = {enabled: true, cycle: false};
super(67, "parameterHints", e2, {"editor.parameterHints.enabled": {type: "boolean", default: e2.enabled, description: i.a("parameterHints.enabled", "Enables a pop-up that shows parameter documentation and type information as you type.")}, "editor.parameterHints.cycle": {type: "boolean", default: e2.cycle, description: i.a("parameterHints.cycle", "Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2;
return {enabled: p.boolean(t2.enabled, this.defaultValue.enabled), cycle: p.boolean(t2.cycle, this.defaultValue.cycle)};
}
}()), peekWidgetDefaultFocus: L(new b(68, "peekWidgetDefaultFocus", "tree", ["tree", "editor"], {enumDescriptions: [i.a("peekWidgetDefaultFocus.tree", "Focus the tree when opening peek"), i.a("peekWidgetDefaultFocus.editor", "Focus the editor when opening peek")], description: i.a("peekWidgetDefaultFocus", "Controls whether to focus the inline editor or the tree in the peek widget.")})), definitionLinkOpensInPeek: L(new p(69, "definitionLinkOpensInPeek", false, {description: i.a("definitionLinkOpensInPeek", "Controls whether the Go to Definition mouse gesture always opens the peek widget.")})), quickSuggestions: L(new class extends d {
constructor() {
const e2 = {other: true, comments: false, strings: false};
super(70, "quickSuggestions", e2, {anyOf: [{type: "boolean"}, {type: "object", properties: {strings: {type: "boolean", default: e2.strings, description: i.a("quickSuggestions.strings", "Enable quick suggestions inside strings.")}, comments: {type: "boolean", default: e2.comments, description: i.a("quickSuggestions.comments", "Enable quick suggestions inside comments.")}, other: {type: "boolean", default: e2.other, description: i.a("quickSuggestions.other", "Enable quick suggestions outside of strings and comments.")}}}], default: e2, description: i.a("quickSuggestions", "Controls whether suggestions should automatically show up while typing.")}), this.defaultValue = e2;
}
validate(e2) {
if ("boolean" == typeof e2)
return e2;
if (e2 && "object" == typeof e2) {
const t2 = e2, n2 = {other: p.boolean(t2.other, this.defaultValue.other), comments: p.boolean(t2.comments, this.defaultValue.comments), strings: p.boolean(t2.strings, this.defaultValue.strings)};
return !!(n2.other && n2.comments && n2.strings) || !!(n2.other || n2.comments || n2.strings) && n2;
}
return this.defaultValue;
}
}()), quickSuggestionsDelay: L(new m(71, "quickSuggestionsDelay", 10, 0, 1073741824, {description: i.a("quickSuggestionsDelay", "Controls the delay in milliseconds after which quick suggestions will show up.")})), readOnly: L(new p(72, "readOnly", false)), renameOnType: L(new p(73, "renameOnType", false, {description: i.a("renameOnType", "Controls whether the editor auto renames on type.")})), renderControlCharacters: L(new p(74, "renderControlCharacters", false, {description: i.a("renderControlCharacters", "Controls whether the editor should render control characters.")})), renderIndentGuides: L(new p(75, "renderIndentGuides", true, {description: i.a("renderIndentGuides", "Controls whether the editor should render indent guides.")})), renderFinalNewline: L(new p(76, "renderFinalNewline", true, {description: i.a("renderFinalNewline", "Render last line number when the file ends with a newline.")})), renderLineHighlight: L(new b(77, "renderLineHighlight", "line", ["none", "gutter", "line", "all"], {enumDescriptions: ["", "", "", i.a("renderLineHighlight.all", "Highlights both the gutter and the current line.")], description: i.a("renderLineHighlight", "Controls how the editor should render the current line highlight.")})), renderLineHighlightOnlyWhenFocus: L(new p(78, "renderLineHighlightOnlyWhenFocus", false, {description: i.a("renderLineHighlightOnlyWhenFocus", "Controls if the editor should render the current line highlight only when the editor is focused")})), renderValidationDecorations: L(new b(79, "renderValidationDecorations", "editable", ["editable", "on", "off"])), renderWhitespace: L(new b(80, "renderWhitespace", "selection", ["none", "boundary", "selection", "trailing", "all"], {enumDescriptions: ["", i.a("renderWhitespace.boundary", "Render whitespace characters except for single spaces between words."), i.a("renderWhitespace.selection", "Render whitespace characters only on selected text."), i.a("renderWhitespace.trailing", "Render only trailing whitespace characters"), ""], description: i.a("renderWhitespace", "Controls how the editor should render whitespace characters.")})), revealHorizontalRightPadding: L(new m(81, "revealHorizontalRightPadding", 30, 0, 1e3)), roundedSelection: L(new p(82, "roundedSelection", true, {description: i.a("roundedSelection", "Controls whether selections should have rounded corners.")})), rulers: L(new class extends d {
constructor() {
const e2 = [], t2 = {type: "number", description: i.a("rulers.size", "Number of monospace characters at which this editor ruler will render.")};
super(83, "rulers", e2, {type: "array", items: {anyOf: [t2, {type: ["object"], properties: {column: t2, color: {type: "string", description: i.a("rulers.color", "Color of this editor ruler."), format: "color-hex"}}}]}, default: e2, description: i.a("rulers", "Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")});
}
validate(e2) {
if (Array.isArray(e2)) {
let t2 = [];
for (let n2 of e2)
if ("number" == typeof n2)
t2.push({column: m.clampedInt(n2, 0, 0, 1e4), color: null});
else if (n2 && "object" == typeof n2) {
const e3 = n2;
t2.push({column: m.clampedInt(e3.column, 0, 0, 1e4), color: e3.color});
}
return t2.sort((e3, t3) => e3.column - t3.column), t2;
}
return this.defaultValue;
}
}()), scrollbar: L(new class extends d {
constructor() {
super(84, "scrollbar", {vertical: 1, horizontal: 1, arrowSize: 11, useShadows: true, verticalHasArrows: false, horizontalHasArrows: false, horizontalScrollbarSize: 12, horizontalSliderSize: 12, verticalScrollbarSize: 14, verticalSliderSize: 14, handleMouseWheel: true, alwaysConsumeMouseWheel: true});
}
validate(e2) {
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const t2 = e2, n2 = m.clampedInt(t2.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1e3), i2 = m.clampedInt(t2.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1e3);
return {arrowSize: m.clampedInt(t2.arrowSize, this.defaultValue.arrowSize, 0, 1e3), vertical: S(t2.vertical, this.defaultValue.vertical), horizontal: S(t2.horizontal, this.defaultValue.horizontal), useShadows: p.boolean(t2.useShadows, this.defaultValue.useShadows), verticalHasArrows: p.boolean(t2.verticalHasArrows, this.defaultValue.verticalHasArrows), horizontalHasArrows: p.boolean(t2.horizontalHasArrows, this.defaultValue.horizontalHasArrows), handleMouseWheel: p.boolean(t2.handleMouseWheel, this.defaultValue.handleMouseWheel), alwaysConsumeMouseWheel: p.boolean(t2.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel), horizontalScrollbarSize: n2, horizontalSliderSize: m.clampedInt(t2.horizontalSliderSize, n2, 0, 1e3), verticalScrollbarSize: i2, verticalSliderSize: m.clampedInt(t2.verticalSliderSize, i2, 0, 1e3)};
}
}()), scrollBeyondLastColumn: L(new m(85, "scrollBeyondLastColumn", 5, 0, 1073741824, {description: i.a("scrollBeyondLastColumn", "Controls the number of extra characters beyond which the editor will scroll horizontally.")})), scrollBeyondLastLine: L(new p(86, "scrollBeyondLastLine", true, {description: i.a("scrollBeyondLastLine", "Controls whether the editor will scroll beyond the last line.")})), scrollPredominantAxis: L(new p(87, "scrollPredominantAxis", true, {description: i.a("scrollPredominantAxis", "Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})), selectionClipboard: L(new p(88, "selectionClipboard", true, {description: i.a("selectionClipboard", "Controls whether the Linux primary clipboard should be supported."), included: o.d})), selectionHighlight: L(new p(89, "selectionHighlight", true, {description: i.a("selectionHighlight", "Controls whether the editor should highlight matches similar to the selection.")})), selectOnLineNumbers: L(new p(90, "selectOnLineNumbers", true)), showFoldingControls: L(new b(91, "showFoldingControls", "mouseover", ["always", "mouseover"], {enumDescriptions: [i.a("showFoldingControls.always", "Always show the folding controls."), i.a("showFoldingControls.mouseover", "Only show the folding controls when the mouse is over the gutter.")], description: i.a("showFoldingControls", "Controls when the folding controls on the gutter are shown.")})), showUnused: L(new p(92, "showUnused", true, {description: i.a("showUnused", "Controls fading out of unused code.")})), showDeprecated: L(new p(113, "showDeprecated", true, {description: i.a("showDeprecated", "Controls strikethrough deprecated variables.")})), snippetSuggestions: L(new b(93, "snippetSuggestions", "inline", ["top", "bottom", "inline", "none"], {enumDescriptions: [i.a("snippetSuggestions.top", "Show snippet suggestions on top of other suggestions."), i.a("snippetSuggestions.bottom", "Show snippet suggestions below other suggestions."), i.a("snippetSuggestions.inline", "Show snippets suggestions with other suggestions."), i.a("snippetSuggestions.none", "Do not show snippet suggestions.")], description: i.a("snippetSuggestions", "Controls whether snippets are shown with other suggestions and how they are sorted.")})), smoothScrolling: L(new p(94, "smoothScrolling", false, {description: i.a("smoothScrolling", "Controls whether the editor will scroll using an animation.")})), stopRenderingLineAfter: L(new m(95, "stopRenderingLineAfter", 1e4, -1, 1073741824)), suggest: L(new class extends d {
constructor() {
const e2 = {insertMode: "insert", filterGraceful: true, snippetsPreventQuickSuggestions: true, localityBonus: false, shareSuggestSelections: false, showIcons: true, maxVisibleSuggestions: 12, showMethods: true, showFunctions: true, showConstructors: true, showFields: true, showVariables: true, showClasses: true, showStructs: true, showInterfaces: true, showModules: true, showProperties: true, showEvents: true, showOperators: true, showUnits: true, showValues: true, showConstants: true, showEnums: true, showEnumMembers: true, showKeywords: true, showWords: true, showColors: true, showFiles: true, showReferences: true, showFolders: true, showTypeParameters: true, showSnippets: true, showUsers: true, showIssues: true, statusBar: {visible: false}};
super(96, "suggest", e2, {"editor.suggest.insertMode": {type: "string", enum: ["insert", "replace"], enumDescriptions: [i.a("suggest.insertMode.insert", "Insert suggestion without overwriting text right of the cursor."), i.a("suggest.insertMode.replace", "Insert suggestion and overwrite text right of the cursor.")], default: e2.insertMode, description: i.a("suggest.insertMode", "Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")}, "editor.suggest.filterGraceful": {type: "boolean", default: e2.filterGraceful, description: i.a("suggest.filterGraceful", "Controls whether filtering and sorting suggestions accounts for small typos.")}, "editor.suggest.localityBonus": {type: "boolean", default: e2.localityBonus, description: i.a("suggest.localityBonus", "Controls whether sorting favours words that appear close to the cursor.")}, "editor.suggest.shareSuggestSelections": {type: "boolean", default: e2.shareSuggestSelections, markdownDescription: i.a("suggest.shareSuggestSelections", "Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")}, "editor.suggest.snippetsPreventQuickSuggestions": {type: "boolean", default: e2.snippetsPreventQuickSuggestions, description: i.a("suggest.snippetsPreventQuickSuggestions", "Controls whether an active snippet prevents quick suggestions.")}, "editor.suggest.showIcons": {type: "boolean", default: e2.showIcons, description: i.a("suggest.showIcons", "Controls whether to show or hide icons in suggestions.")}, "editor.suggest.maxVisibleSuggestions": {type: "number", default: e2.maxVisibleSuggestions, minimum: 1, maximum: 15, description: i.a("suggest.maxVisibleSuggestions", "Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).")}, "editor.suggest.filteredTypes": {type: "object", deprecationMessage: i.a("deprecated", "This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")}, "editor.suggest.showMethods": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showMethods", "When enabled IntelliSense shows `method`-suggestions.")}, "editor.suggest.showFunctions": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showFunctions", "When enabled IntelliSense shows `function`-suggestions.")}, "editor.suggest.showConstructors": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showConstructors", "When enabled IntelliSense shows `constructor`-suggestions.")}, "editor.suggest.showFields": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showFields", "When enabled IntelliSense shows `field`-suggestions.")}, "editor.suggest.showVariables": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showVariables", "When enabled IntelliSense shows `variable`-suggestions.")}, "editor.suggest.showClasses": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showClasss", "When enabled IntelliSense shows `class`-suggestions.")}, "editor.suggest.showStructs": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showStructs", "When enabled IntelliSense shows `struct`-suggestions.")}, "editor.suggest.showInterfaces": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showInterfaces", "When enabled IntelliSense shows `interface`-suggestions.")}, "editor.suggest.showModules": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showModules", "When enabled IntelliSense shows `module`-suggestions.")}, "editor.suggest.showProperties": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showPropertys", "When enabled IntelliSense shows `property`-suggestions.")}, "editor.suggest.showEvents": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showEvents", "When enabled IntelliSense shows `event`-suggestions.")}, "editor.suggest.showOperators": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showOperators", "When enabled IntelliSense shows `operator`-suggestions.")}, "editor.suggest.showUnits": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showUnits", "When enabled IntelliSense shows `unit`-suggestions.")}, "editor.suggest.showValues": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showValues", "When enabled IntelliSense shows `value`-suggestions.")}, "editor.suggest.showConstants": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showConstants", "When enabled IntelliSense shows `constant`-suggestions.")}, "editor.suggest.showEnums": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showEnums", "When enabled IntelliSense shows `enum`-suggestions.")}, "editor.suggest.showEnumMembers": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showEnumMembers", "When enabled IntelliSense shows `enumMember`-suggestions.")}, "editor.suggest.showKeywords": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showKeywords", "When enabled IntelliSense shows `keyword`-suggestions.")}, "editor.suggest.showWords": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showTexts", "When enabled IntelliSense shows `text`-suggestions.")}, "editor.suggest.showColors": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showColors", "When enabled IntelliSense shows `color`-suggestions.")}, "editor.suggest.showFiles": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showFiles", "When enabled IntelliSense shows `file`-suggestions.")}, "editor.suggest.showReferences": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showReferences", "When enabled IntelliSense shows `reference`-suggestions.")}, "editor.suggest.showCustomcolors": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showCustomcolors", "When enabled IntelliSense shows `customcolor`-suggestions.")}, "editor.suggest.showFolders": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showFolders", "When enabled IntelliSense shows `folder`-suggestions.")}, "editor.suggest.showTypeParameters": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showTypeParameters", "When enabled IntelliSense shows `typeParameter`-suggestions.")}, "editor.suggest.showSnippets": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showSnippets", "When enabled IntelliSense shows `snippet`-suggestions.")}, "editor.suggest.showUsers": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showUsers", "When enabled IntelliSense shows `user`-suggestions.")}, "editor.suggest.showIssues": {type: "boolean", default: true, markdownDescription: i.a("editor.suggest.showIssues", "When enabled IntelliSense shows `issues`-suggestions.")}, "editor.suggest.statusBar.visible": {type: "boolean", default: false, markdownDescription: i.a("editor.suggest.statusBar.visible", "Controls the visibility of the status bar at the bottom of the suggest widget.")}});
}
validate(e2) {
var t2;
if (!e2 || "object" != typeof e2)
return this.defaultValue;
const n2 = e2;
return {insertMode: b.stringSet(n2.insertMode, this.defaultValue.insertMode, ["insert", "replace"]), filterGraceful: p.boolean(n2.filterGraceful, this.defaultValue.filterGraceful), snippetsPreventQuickSuggestions: p.boolean(n2.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful), localityBonus: p.boolean(n2.localityBonus, this.defaultValue.localityBonus), shareSuggestSelections: p.boolean(n2.shareSuggestSelections, this.defaultValue.shareSuggestSelections), showIcons: p.boolean(n2.showIcons, this.defaultValue.showIcons), maxVisibleSuggestions: m.clampedInt(n2.maxVisibleSuggestions, this.defaultValue.maxVisibleSuggestions, 1, 15), showMethods: p.boolean(n2.showMethods, this.defaultValue.showMethods), showFunctions: p.boolean(n2.showFunctions, this.defaultValue.showFunctions), showConstructors: p.boolean(n2.showConstructors, this.defaultValue.showConstructors), showFields: p.boolean(n2.showFields, this.defaultValue.showFields), showVariables: p.boolean(n2.showVariables, this.defaultValue.showVariables), showClasses: p.boolean(n2.showClasses, this.defaultValue.showClasses), showStructs: p.boolean(n2.showStructs, this.defaultValue.showStructs), showInterfaces: p.boolean(n2.showInterfaces, this.defaultValue.showInterfaces), showModules: p.boolean(n2.showModules, this.defaultValue.showModules), showProperties: p.boolean(n2.showProperties, this.defaultValue.showProperties), showEvents: p.boolean(n2.showEvents, this.defaultValue.showEvents), showOperators: p.boolean(n2.showOperators, this.defaultValue.showOperators), showUnits: p.boolean(n2.showUnits, this.defaultValue.showUnits), showValues: p.boolean(n2.showValues, this.defaultValue.showValues), showConstants: p.boolean(n2.showConstants, this.defaultValue.showConstants), showEnums: p.boolean(n2.showEnums, this.defaultValue.showEnums), showEnumMembers: p.boolean(n2.showEnumMembers, this.defaultValue.showEnumMembers), showKeywords: p.boolean(n2.showKeywords, this.defaultValue.showKeywords), showWords: p.boolean(n2.showWords, this.defaultValue.showWords), showColors: p.boolean(n2.showColors, this.defaultValue.showColors), showFiles: p.boolean(n2.showFiles, this.defaultValue.showFiles), showReferences: p.boolean(n2.showReferences, this.defaultValue.showReferences), showFolders: p.boolean(n2.showFolders, this.defaultValue.showFolders), showTypeParameters: p.boolean(n2.showTypeParameters, this.defaultValue.showTypeParameters), showSnippets: p.boolean(n2.showSnippets, this.defaultValue.showSnippets), showUsers: p.boolean(n2.showUsers, this.defaultValue.showUsers), showIssues: p.boolean(n2.showIssues, this.defaultValue.showIssues), statusBar: {visible: p.boolean(null === (t2 = n2.statusBar) || void 0 === t2 ? void 0 : t2.visible, !!this.defaultValue.statusBar.visible)}};
}
}()), suggestFontSize: L(new m(97, "suggestFontSize", 0, 0, 1e3, {markdownDescription: i.a("suggestFontSize", "Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.")})), suggestLineHeight: L(new m(98, "suggestLineHeight", 0, 0, 1e3, {markdownDescription: i.a("suggestLineHeight", "Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.")})), suggestOnTriggerCharacters: L(new p(99, "suggestOnTriggerCharacters", true, {description: i.a("suggestOnTriggerCharacters", "Controls whether suggestions should automatically show up when typing trigger characters.")})), suggestSelection: L(new b(100, "suggestSelection", "recentlyUsed", ["first", "recentlyUsed", "recentlyUsedByPrefix"], {markdownEnumDescriptions: [i.a("suggestSelection.first", "Always select the first suggestion."), i.a("suggestSelection.recentlyUsed", "Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."), i.a("suggestSelection.recentlyUsedByPrefix", "Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")], description: i.a("suggestSelection", "Controls how suggestions are pre-selected when showing the suggest list.")})), tabCompletion: L(new b(101, "tabCompletion", "off", ["on", "off", "onlySnippets"], {enumDescriptions: [i.a("tabCompletion.on", "Tab complete will insert the best matching suggestion when pressing tab."), i.a("tabCompletion.off", "Disable tab completions."), i.a("tabCompletion.onlySnippets", "Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")], description: i.a("tabCompletion", "Enables tab completions.")})), tabIndex: L(new m(102, "tabIndex", 0, -1, 1073741824)), unusualLineTerminators: L(new b(103, "unusualLineTerminators", "prompt", ["off", "prompt", "auto"], {enumDescriptions: [i.a("unusualLineTerminators.off", "Unusual line terminators are ignored."), i.a("unusualLineTerminators.prompt", "Unusual line terminators prompt to be removed."), i.a("unusualLineTerminators.auto", "Unusual line terminators are automatically removed.")], description: i.a("unusualLineTerminators", "Remove unusual line terminators that might cause problems.")})), useTabStops: L(new p(104, "useTabStops", true, {description: i.a("useTabStops", "Inserting and deleting whitespace follows tab stops.")})), wordSeparators: L(new f(105, "wordSeparators", r.b, {description: i.a("wordSeparators", "Characters that will be used as word separators when doing word related navigations or operations.")})), wordWrap: L(new b(106, "wordWrap", "off", ["off", "on", "wordWrapColumn", "bounded"], {markdownEnumDescriptions: [i.a("wordWrap.off", "Lines will never wrap."), i.a("wordWrap.on", "Lines will wrap at the viewport width."), i.a({key: "wordWrap.wordWrapColumn", comment: ["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]}, "Lines will wrap at `#editor.wordWrapColumn#`."), i.a({key: "wordWrap.bounded", comment: ["- viewport means the edge of the visible window size.", "- `editor.wordWrapColumn` refers to a different setting and should not be localized."]}, "Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")], description: i.a({key: "wordWrap", comment: ["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.", "- `editor.wordWrapColumn` refers to a different setting and should not be localized."]}, "Controls how lines should wrap.")})), wordWrapBreakAfterCharacters: L(new f(107, "wordWrapBreakAfterCharacters", " })]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")), wordWrapBreakBeforeCharacters: L(new f(108, "wordWrapBreakBeforeCharacters", "([{‘“〈《「『【〔([{「£¥$£¥++")), wordWrapColumn: L(new m(109, "wordWrapColumn", 80, 1, 1073741824, {markdownDescription: i.a({key: "wordWrapColumn", comment: ["- `editor.wordWrap` refers to a different setting and should not be localized.", "- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]}, "Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})), wordWrapMinified: L(new p(110, "wordWrapMinified", true)), wrappingIndent: L(new _(111, "wrappingIndent", 1, "same", ["none", "same", "indent", "deepIndent"], function(e2) {
switch (e2) {
case "none":
return 0;
case "same":
return 1;
case "indent":
return 2;
case "deepIndent":
return 3;
}
}, {enumDescriptions: [i.a("wrappingIndent.none", "No indentation. Wrapped lines begin at column 1."), i.a("wrappingIndent.same", "Wrapped lines get the same indentation as the parent."), i.a("wrappingIndent.indent", "Wrapped lines get +1 indentation toward the parent."), i.a("wrappingIndent.deepIndent", "Wrapped lines get +2 indentation toward the parent.")], description: i.a("wrappingIndent", "Controls the indentation of wrapped lines.")})), wrappingStrategy: L(new b(112, "wrappingStrategy", "simple", ["simple", "advanced"], {enumDescriptions: [i.a("wrappingStrategy.simple", "Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."), i.a("wrappingStrategy.advanced", "Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")], description: i.a("wrappingStrategy", "Controls the algorithm that computes wrapping points.")})), editorClassName: L(new class extends h {
constructor() {
super(114, [57, 27]);
}
compute(e2, t2, n2) {
const i2 = ["monaco-editor"];
return t2.get(27) && i2.push(t2.get(27)), e2.extraEditorClassName && i2.push(e2.extraEditorClassName), "default" === t2.get(57) ? i2.push("mouse-default") : "copy" === t2.get(57) && i2.push("mouse-copy"), t2.get(92) && i2.push("showUnused"), t2.get(113) && i2.push("showDeprecated"), i2.join(" ");
}
}()), pixelRatio: L(new class extends h {
constructor() {
super(115);
}
compute(e2, t2, n2) {
return e2.pixelRatio;
}
}()), tabFocusMode: L(new class extends h {
constructor() {
super(116, [72]);
}
compute(e2, t2, n2) {
return !!t2.get(72) || e2.tabFocusMode;
}
}()), layoutInfo: L(new C()), wrappingInfo: L(new class extends h {
constructor() {
super(118, [117]);
}
compute(e2, t2, n2) {
const i2 = t2.get(117);
return {isDominatedByLongLines: e2.isDominatedByLongLines, isWordWrapMinified: i2.isWordWrapMinified, isViewportWrapping: i2.isViewportWrapping, wrappingColumn: i2.wrappingColumn};
}
}())};
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return c;
}), n.d(t, "a", function() {
return d;
});
var i = n(2), o = n(14), r = n(18), s = n(6), a = n(53), l = n(37);
const c = Object(r.c)("commandService"), d = new class {
constructor() {
this._commands = new Map(), this._onDidRegisterCommand = new s.a(), this.onDidRegisterCommand = this._onDidRegisterCommand.event;
}
registerCommand(e2, t2) {
if (!e2)
throw new Error("invalid command");
if ("string" == typeof e2) {
if (!t2)
throw new Error("invalid command");
return this.registerCommand({id: e2, handler: t2});
}
if (e2.description) {
const t3 = [];
for (let n4 of e2.description.args)
t3.push(n4.constraint);
const n3 = e2.handler;
e2.handler = function(e3, ...i2) {
return Object(o.m)(i2, t3), n3(e3, ...i2);
};
}
const {id: n2} = e2;
let r2 = this._commands.get(n2);
r2 || (r2 = new a.a(), this._commands.set(n2, r2));
let s2 = r2.unshift(e2), l2 = Object(i.h)(() => {
s2();
const e3 = this._commands.get(n2);
(null == e3 ? void 0 : e3.isEmpty()) && this._commands.delete(n2);
});
return this._onDidRegisterCommand.fire(n2), l2;
}
registerCommandAlias(e2, t2) {
return d.registerCommand(e2, (e3, ...n2) => e3.get(c).executeCommand(t2, ...n2));
}
getCommand(e2) {
const t2 = this._commands.get(e2);
if (t2 && !t2.isEmpty())
return l.a.first(t2);
}
getCommands() {
const e2 = new Map();
for (const t2 of this._commands.keys()) {
const n2 = this.getCommand(t2);
n2 && e2.set(t2, n2);
}
return e2;
}
}();
}, function(e, t, n) {
"use strict";
(function(e2) {
n.d(t, "a", function() {
return r;
}), n.d(t, "b", function() {
return s;
}), n.d(t, "c", function() {
return a;
});
var i = n(11);
const o = void 0 === e2 ? {cwd: () => "/", env: Object.create(null), get platform() {
return i.i ? "win32" : i.f ? "darwin" : "linux";
}, nextTick: (e3) => Object(i.j)(e3)} : e2, r = o.cwd, s = o.env, a = o.platform;
}).call(this, n(86));
}, function(e, t, n) {
"use strict";
var i = n(108);
n.d(t, "a", function() {
return i.b;
}), n.d(t, "b", function() {
return i.e;
}), n.d(t, "c", function() {
return i.f;
}), n.d(t, "d", function() {
return i.h;
}), n.d(t, "e", function() {
return i.l;
}), n.d(t, "f", function() {
return i.m;
}), n.d(t, "g", function() {
return i.n;
});
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return Ve;
}), n.d(t, "a", function() {
return Ge;
});
var i = n(13), o = n(6), r = n(2), s = n(8), a = n(23), l = n(26), c = n(9), d = n(3), h = n(21), u = n(58), p = n(175);
class m {
constructor() {
this.spacesDiff = 0, this.looksLikeAlignment = false;
}
}
function g(e2, t2, n2, i2, o2) {
let r2;
for (o2.spacesDiff = 0, o2.looksLikeAlignment = false, r2 = 0; r2 < t2 && r2 < i2; r2++) {
if (e2.charCodeAt(r2) !== n2.charCodeAt(r2))
break;
}
let s2 = 0, a2 = 0;
for (let n3 = r2; n3 < t2; n3++) {
32 === e2.charCodeAt(n3) ? s2++ : a2++;
}
let l2 = 0, c2 = 0;
for (let e3 = r2; e3 < i2; e3++) {
32 === n2.charCodeAt(e3) ? l2++ : c2++;
}
if (s2 > 0 && a2 > 0)
return;
if (l2 > 0 && c2 > 0)
return;
let d2 = Math.abs(a2 - c2), h2 = Math.abs(s2 - l2);
if (0 === d2)
return o2.spacesDiff = h2, void (h2 > 0 && 0 <= l2 - 1 && l2 - 1 < e2.length && l2 < n2.length && 32 !== n2.charCodeAt(l2) && 32 === e2.charCodeAt(l2 - 1) && 44 === e2.charCodeAt(e2.length - 1) && (o2.looksLikeAlignment = true));
h2 % d2 != 0 || (o2.spacesDiff = h2 / d2);
}
function f(e2, t2, n2) {
const i2 = Math.min(e2.getLineCount(), 1e4);
let o2 = 0, r2 = 0, s2 = "", a2 = 0;
const l2 = [2, 4, 6, 8, 3, 5, 7];
let c2 = [0, 0, 0, 0, 0, 0, 0, 0, 0], d2 = new m();
for (let l3 = 1; l3 <= i2; l3++) {
let i3 = e2.getLineLength(l3), h3 = e2.getLineContent(l3);
const u3 = i3 <= 65536;
let p2 = false, m2 = 0, f2 = 0, b2 = 0;
for (let t3 = 0, n3 = i3; t3 < n3; t3++) {
let n4 = u3 ? h3.charCodeAt(t3) : e2.getLineCharCode(l3, t3);
if (9 === n4)
b2++;
else {
if (32 !== n4) {
p2 = true, m2 = t3;
break;
}
f2++;
}
}
if (!p2)
continue;
if (b2 > 0 ? o2++ : f2 > 1 && r2++, g(s2, a2, h3, m2, d2), d2.looksLikeAlignment && (!n2 || t2 !== d2.spacesDiff))
continue;
let _2 = d2.spacesDiff;
_2 <= 8 && c2[_2]++, s2 = h3, a2 = m2;
}
let h2 = n2;
o2 !== r2 && (h2 = o2 < r2);
let u2 = t2;
if (h2) {
let e3 = h2 ? 0 : 0.1 * i2;
l2.forEach((t3) => {
let n3 = c2[t3];
n3 > e3 && (e3 = n3, u2 = t3);
}), 4 === u2 && c2[4] > 0 && c2[2] > 0 && c2[2] >= c2[4] / 2 && (u2 = 2);
}
return {insertSpaces: h2, tabSize: u2};
}
function b(e2) {
return (1 & e2.metadata) >>> 0;
}
function _(e2, t2) {
e2.metadata = 254 & e2.metadata | t2 << 0;
}
function v(e2) {
return (2 & e2.metadata) >>> 1 == 1;
}
function w(e2, t2) {
e2.metadata = 253 & e2.metadata | (t2 ? 1 : 0) << 1;
}
function y(e2) {
return (4 & e2.metadata) >>> 2 == 1;
}
function C(e2, t2) {
e2.metadata = 251 & e2.metadata | (t2 ? 1 : 0) << 2;
}
function x(e2) {
return (8 & e2.metadata) >>> 3 == 1;
}
function S(e2, t2) {
e2.metadata = 247 & e2.metadata | (t2 ? 1 : 0) << 3;
}
function k(e2, t2) {
e2.metadata = 207 & e2.metadata | t2 << 4;
}
function E(e2, t2) {
e2.metadata = 191 & e2.metadata | (t2 ? 1 : 0) << 6;
}
class T {
constructor(e2, t2, n2) {
this.metadata = 0, this.parent = this, this.left = this, this.right = this, _(this, 1), this.start = t2, this.end = n2, this.delta = 0, this.maxEnd = n2, this.id = e2, this.ownerId = 0, this.options = null, C(this, false), k(this, 1), S(this, false), E(this, false), this.cachedVersionId = 0, this.cachedAbsoluteStart = t2, this.cachedAbsoluteEnd = n2, this.range = null, w(this, false);
}
reset(e2, t2, n2, i2) {
this.start = t2, this.end = n2, this.maxEnd = n2, this.cachedVersionId = e2, this.cachedAbsoluteStart = t2, this.cachedAbsoluteEnd = n2, this.range = i2;
}
setOptions(e2) {
this.options = e2;
let t2 = this.options.className;
C(this, "squiggly-error" === t2 || "squiggly-warning" === t2 || "squiggly-info" === t2), k(this, this.options.stickiness), S(this, !(!this.options.overviewRuler || !this.options.overviewRuler.color)), E(this, this.options.collapseOnReplaceEdit);
}
setCachedOffsets(e2, t2, n2) {
this.cachedVersionId !== n2 && (this.range = null), this.cachedVersionId = n2, this.cachedAbsoluteStart = e2, this.cachedAbsoluteEnd = t2;
}
detach() {
this.parent = null, this.left = null, this.right = null;
}
}
const L = new T(null, 0, 0);
L.parent = L, L.left = L, L.right = L, _(L, 0);
class N {
constructor() {
this.root = L, this.requestNormalizeDelta = false;
}
intervalSearch(e2, t2, n2, i2, o2) {
return this.root === L ? [] : function(e3, t3, n3, i3, o3, r2) {
let s2 = e3.root, a2 = 0, l2 = 0, c2 = 0, d2 = 0, h2 = [], u2 = 0;
for (; s2 !== L; )
if (v(s2))
w(s2.left, false), w(s2.right, false), s2 === s2.parent.right && (a2 -= s2.parent.delta), s2 = s2.parent;
else {
if (!v(s2.left)) {
if (l2 = a2 + s2.maxEnd, l2 < t3) {
w(s2, true);
continue;
}
if (s2.left !== L) {
s2 = s2.left;
continue;
}
}
if (c2 = a2 + s2.start, c2 > n3)
w(s2, true);
else {
if (d2 = a2 + s2.end, d2 >= t3) {
s2.setCachedOffsets(c2, d2, r2);
let e4 = true;
i3 && s2.ownerId && s2.ownerId !== i3 && (e4 = false), o3 && y(s2) && (e4 = false), e4 && (h2[u2++] = s2);
}
w(s2, true), s2.right === L || v(s2.right) || (a2 += s2.delta, s2 = s2.right);
}
}
return w(e3.root, false), h2;
}(this, e2, t2, n2, i2, o2);
}
search(e2, t2, n2) {
return this.root === L ? [] : function(e3, t3, n3, i2) {
let o2 = e3.root, r2 = 0, s2 = 0, a2 = 0, l2 = [], c2 = 0;
for (; o2 !== L; ) {
if (v(o2)) {
w(o2.left, false), w(o2.right, false), o2 === o2.parent.right && (r2 -= o2.parent.delta), o2 = o2.parent;
continue;
}
if (o2.left !== L && !v(o2.left)) {
o2 = o2.left;
continue;
}
s2 = r2 + o2.start, a2 = r2 + o2.end, o2.setCachedOffsets(s2, a2, i2);
let e4 = true;
t3 && o2.ownerId && o2.ownerId !== t3 && (e4 = false), n3 && y(o2) && (e4 = false), e4 && (l2[c2++] = o2), w(o2, true), o2.right === L || v(o2.right) || (r2 += o2.delta, o2 = o2.right);
}
return w(e3.root, false), l2;
}(this, e2, t2, n2);
}
collectNodesFromOwner(e2) {
return function(e3, t2) {
let n2 = e3.root, i2 = [], o2 = 0;
for (; n2 !== L; )
v(n2) ? (w(n2.left, false), w(n2.right, false), n2 = n2.parent) : n2.left === L || v(n2.left) ? (n2.ownerId === t2 && (i2[o2++] = n2), w(n2, true), n2.right === L || v(n2.right) || (n2 = n2.right)) : n2 = n2.left;
return w(e3.root, false), i2;
}(this, e2);
}
collectNodesPostOrder() {
return function(e2) {
let t2 = e2.root, n2 = [], i2 = 0;
for (; t2 !== L; )
v(t2) ? (w(t2.left, false), w(t2.right, false), t2 = t2.parent) : t2.left === L || v(t2.left) ? t2.right === L || v(t2.right) ? (n2[i2++] = t2, w(t2, true)) : t2 = t2.right : t2 = t2.left;
return w(e2.root, false), n2;
}(this);
}
insert(e2) {
D(this, e2), this._normalizeDeltaIfNecessary();
}
delete(e2) {
A(this, e2), this._normalizeDeltaIfNecessary();
}
resolveNode(e2, t2) {
const n2 = e2;
let i2 = 0;
for (; e2 !== this.root; )
e2 === e2.parent.right && (i2 += e2.parent.delta), e2 = e2.parent;
const o2 = n2.start + i2, r2 = n2.end + i2;
n2.setCachedOffsets(o2, r2, t2);
}
acceptReplace(e2, t2, n2, i2) {
const o2 = function(e3, t3, n3) {
let i3 = e3.root, o3 = 0, r2 = 0, s2 = 0, a2 = 0, l2 = [], c2 = 0;
for (; i3 !== L; )
if (v(i3))
w(i3.left, false), w(i3.right, false), i3 === i3.parent.right && (o3 -= i3.parent.delta), i3 = i3.parent;
else {
if (!v(i3.left)) {
if (r2 = o3 + i3.maxEnd, r2 < t3) {
w(i3, true);
continue;
}
if (i3.left !== L) {
i3 = i3.left;
continue;
}
}
s2 = o3 + i3.start, s2 > n3 ? w(i3, true) : (a2 = o3 + i3.end, a2 >= t3 && (i3.setCachedOffsets(s2, a2, 0), l2[c2++] = i3), w(i3, true), i3.right === L || v(i3.right) || (o3 += i3.delta, i3 = i3.right));
}
return w(e3.root, false), l2;
}(this, e2, e2 + t2);
for (let e3 = 0, t3 = o2.length; e3 < t3; e3++) {
A(this, o2[e3]);
}
this._normalizeDeltaIfNecessary(), function(e3, t3, n3, i3) {
let o3 = e3.root, r2 = 0, s2 = 0, a2 = 0;
const l2 = i3 - (n3 - t3);
for (; o3 !== L; )
if (v(o3))
w(o3.left, false), w(o3.right, false), o3 === o3.parent.right && (r2 -= o3.parent.delta), W(o3), o3 = o3.parent;
else {
if (!v(o3.left)) {
if (s2 = r2 + o3.maxEnd, s2 < t3) {
w(o3, true);
continue;
}
if (o3.left !== L) {
o3 = o3.left;
continue;
}
}
a2 = r2 + o3.start, a2 > n3 ? (o3.start += l2, o3.end += l2, o3.delta += l2, (o3.delta < -1073741824 || o3.delta > 1073741824) && (e3.requestNormalizeDelta = true), w(o3, true)) : (w(o3, true), o3.right === L || v(o3.right) || (r2 += o3.delta, o3 = o3.right));
}
w(e3.root, false);
}(this, e2, e2 + t2, n2), this._normalizeDeltaIfNecessary();
for (let r2 = 0, s2 = o2.length; r2 < s2; r2++) {
const s3 = o2[r2];
s3.start = s3.cachedAbsoluteStart, s3.end = s3.cachedAbsoluteEnd, O(s3, e2, e2 + t2, n2, i2), s3.maxEnd = s3.end, D(this, s3);
}
this._normalizeDeltaIfNecessary();
}
_normalizeDeltaIfNecessary() {
this.requestNormalizeDelta && (this.requestNormalizeDelta = false, function(e2) {
let t2 = e2.root, n2 = 0;
for (; t2 !== L; )
t2.left === L || v(t2.left) ? t2.right === L || v(t2.right) ? (t2.start = n2 + t2.start, t2.end = n2 + t2.end, t2.delta = 0, W(t2), w(t2, true), w(t2.left, false), w(t2.right, false), t2 === t2.parent.right && (n2 -= t2.parent.delta), t2 = t2.parent) : (n2 += t2.delta, t2 = t2.right) : t2 = t2.left;
w(e2.root, false);
}(this));
}
}
function I(e2, t2, n2, i2) {
return e2 < n2 || !(e2 > n2) && (1 !== i2 && (2 === i2 || t2));
}
function O(e2, t2, n2, i2, o2) {
const r2 = function(e3) {
return (48 & e3.metadata) >>> 4;
}(e2), s2 = 0 === r2 || 2 === r2, a2 = 1 === r2 || 2 === r2, l2 = n2 - t2, c2 = i2, d2 = Math.min(l2, c2), h2 = e2.start;
let u2 = false;
const p2 = e2.end;
let m2 = false;
t2 <= h2 && p2 <= n2 && function(e3) {
return (64 & e3.metadata) >>> 6 == 1;
}(e2) && (e2.start = t2, u2 = true, e2.end = t2, m2 = true);
{
const e3 = o2 ? 1 : l2 > 0 ? 2 : 0;
!u2 && I(h2, s2, t2, e3) && (u2 = true), !m2 && I(p2, a2, t2, e3) && (m2 = true);
}
if (d2 > 0 && !o2) {
const e3 = l2 > c2 ? 2 : 0;
!u2 && I(h2, s2, t2 + d2, e3) && (u2 = true), !m2 && I(p2, a2, t2 + d2, e3) && (m2 = true);
}
{
const i3 = o2 ? 1 : 0;
!u2 && I(h2, s2, n2, i3) && (e2.start = t2 + c2, u2 = true), !m2 && I(p2, a2, n2, i3) && (e2.end = t2 + c2, m2 = true);
}
const g2 = c2 - l2;
u2 || (e2.start = Math.max(0, h2 + g2)), m2 || (e2.end = Math.max(0, p2 + g2)), e2.start > e2.end && (e2.end = e2.start);
}
function D(e2, t2) {
if (e2.root === L)
return t2.parent = L, t2.left = L, t2.right = L, _(t2, 0), e2.root = t2, e2.root;
!function(e3, t3) {
let n3 = 0, i2 = e3.root;
const o2 = t3.start, r2 = t3.end;
for (; ; ) {
if (B(o2, r2, i2.start + n3, i2.end + n3) < 0) {
if (i2.left === L) {
t3.start -= n3, t3.end -= n3, t3.maxEnd -= n3, i2.left = t3;
break;
}
i2 = i2.left;
} else {
if (i2.right === L) {
t3.start -= n3 + i2.delta, t3.end -= n3 + i2.delta, t3.maxEnd -= n3 + i2.delta, i2.right = t3;
break;
}
n3 += i2.delta, i2 = i2.right;
}
}
t3.parent = i2, t3.left = L, t3.right = L, _(t3, 1);
}(e2, t2), z(t2.parent);
let n2 = t2;
for (; n2 !== e2.root && 1 === b(n2.parent); )
if (n2.parent === n2.parent.parent.left) {
const t3 = n2.parent.parent.right;
1 === b(t3) ? (_(n2.parent, 0), _(t3, 0), _(n2.parent.parent, 1), n2 = n2.parent.parent) : (n2 === n2.parent.right && (n2 = n2.parent, M(e2, n2)), _(n2.parent, 0), _(n2.parent.parent, 1), P(e2, n2.parent.parent));
} else {
const t3 = n2.parent.parent.left;
1 === b(t3) ? (_(n2.parent, 0), _(t3, 0), _(n2.parent.parent, 1), n2 = n2.parent.parent) : (n2 === n2.parent.left && (n2 = n2.parent, P(e2, n2)), _(n2.parent, 0), _(n2.parent.parent, 1), M(e2, n2.parent.parent));
}
return _(e2.root, 0), t2;
}
function A(e2, t2) {
let n2, i2;
if (t2.left === L ? (n2 = t2.right, i2 = t2, n2.delta += t2.delta, (n2.delta < -1073741824 || n2.delta > 1073741824) && (e2.requestNormalizeDelta = true), n2.start += t2.delta, n2.end += t2.delta) : t2.right === L ? (n2 = t2.left, i2 = t2) : (i2 = function(e3) {
for (; e3.left !== L; )
e3 = e3.left;
return e3;
}(t2.right), n2 = i2.right, n2.start += i2.delta, n2.end += i2.delta, n2.delta += i2.delta, (n2.delta < -1073741824 || n2.delta > 1073741824) && (e2.requestNormalizeDelta = true), i2.start += t2.delta, i2.end += t2.delta, i2.delta = t2.delta, (i2.delta < -1073741824 || i2.delta > 1073741824) && (e2.requestNormalizeDelta = true)), i2 === e2.root)
return e2.root = n2, _(n2, 0), t2.detach(), R(), W(n2), void (e2.root.parent = L);
let o2, r2 = 1 === b(i2);
if (i2 === i2.parent.left ? i2.parent.left = n2 : i2.parent.right = n2, i2 === t2 ? n2.parent = i2.parent : (i2.parent === t2 ? n2.parent = i2 : n2.parent = i2.parent, i2.left = t2.left, i2.right = t2.right, i2.parent = t2.parent, _(i2, b(t2)), t2 === e2.root ? e2.root = i2 : t2 === t2.parent.left ? t2.parent.left = i2 : t2.parent.right = i2, i2.left !== L && (i2.left.parent = i2), i2.right !== L && (i2.right.parent = i2)), t2.detach(), r2)
return z(n2.parent), i2 !== t2 && (z(i2), z(i2.parent)), void R();
for (z(n2), z(n2.parent), i2 !== t2 && (z(i2), z(i2.parent)); n2 !== e2.root && 0 === b(n2); )
n2 === n2.parent.left ? (o2 = n2.parent.right, 1 === b(o2) && (_(o2, 0), _(n2.parent, 1), M(e2, n2.parent), o2 = n2.parent.right), 0 === b(o2.left) && 0 === b(o2.right) ? (_(o2, 1), n2 = n2.parent) : (0 === b(o2.right) && (_(o2.left, 0), _(o2, 1), P(e2, o2), o2 = n2.parent.right), _(o2, b(n2.parent)), _(n2.parent, 0), _(o2.right, 0), M(e2, n2.parent), n2 = e2.root)) : (o2 = n2.parent.left, 1 === b(o2) && (_(o2, 0), _(n2.parent, 1), P(e2, n2.parent), o2 = n2.parent.left), 0 === b(o2.left) && 0 === b(o2.right) ? (_(o2, 1), n2 = n2.parent) : (0 === b(o2.left) && (_(o2.right, 0), _(o2, 1), M(e2, o2), o2 = n2.parent.left), _(o2, b(n2.parent)), _(n2.parent, 0), _(o2.left, 0), P(e2, n2.parent), n2 = e2.root));
_(n2, 0), R();
}
function R() {
L.parent = L, L.delta = 0, L.start = 0, L.end = 0;
}
function M(e2, t2) {
const n2 = t2.right;
n2.delta += t2.delta, (n2.delta < -1073741824 || n2.delta > 1073741824) && (e2.requestNormalizeDelta = true), n2.start += t2.delta, n2.end += t2.delta, t2.right = n2.left, n2.left !== L && (n2.left.parent = t2), n2.parent = t2.parent, t2.parent === L ? e2.root = n2 : t2 === t2.parent.left ? t2.parent.left = n2 : t2.parent.right = n2, n2.left = t2, t2.parent = n2, W(t2), W(n2);
}
function P(e2, t2) {
const n2 = t2.left;
t2.delta -= n2.delta, (t2.delta < -1073741824 || t2.delta > 1073741824) && (e2.requestNormalizeDelta = true), t2.start -= n2.delta, t2.end -= n2.delta, t2.left = n2.right, n2.right !== L && (n2.right.parent = t2), n2.parent = t2.parent, t2.parent === L ? e2.root = n2 : t2 === t2.parent.right ? t2.parent.right = n2 : t2.parent.left = n2, n2.right = t2, t2.parent = n2, W(t2), W(n2);
}
function F(e2) {
let t2 = e2.end;
if (e2.left !== L) {
const n2 = e2.left.maxEnd;
n2 > t2 && (t2 = n2);
}
if (e2.right !== L) {
const n2 = e2.right.maxEnd + e2.delta;
n2 > t2 && (t2 = n2);
}
return t2;
}
function W(e2) {
e2.maxEnd = F(e2);
}
function z(e2) {
for (; e2 !== L; ) {
const t2 = F(e2);
if (e2.maxEnd === t2)
return;
e2.maxEnd = t2, e2 = e2.parent;
}
}
function B(e2, t2, n2, i2) {
return e2 === n2 ? t2 - i2 : e2 - n2;
}
class j {
constructor(e2, t2) {
this.piece = e2, this.color = t2, this.size_left = 0, this.lf_left = 0, this.parent = this, this.left = this, this.right = this;
}
next() {
if (this.right !== V)
return U(this.right);
let e2 = this;
for (; e2.parent !== V && e2.parent.left !== e2; )
e2 = e2.parent;
return e2.parent === V ? V : e2.parent;
}
prev() {
if (this.left !== V)
return H(this.left);
let e2 = this;
for (; e2.parent !== V && e2.parent.right !== e2; )
e2 = e2.parent;
return e2.parent === V ? V : e2.parent;
}
detach() {
this.parent = null, this.left = null, this.right = null;
}
}
const V = new j(null, 0);
function U(e2) {
for (; e2.left !== V; )
e2 = e2.left;
return e2;
}
function H(e2) {
for (; e2.right !== V; )
e2 = e2.right;
return e2;
}
function q(e2) {
return e2 === V ? 0 : e2.size_left + e2.piece.length + q(e2.right);
}
function $(e2) {
return e2 === V ? 0 : e2.lf_left + e2.piece.lineFeedCnt + $(e2.right);
}
function K() {
V.parent = V;
}
function G(e2, t2) {
let n2 = t2.right;
n2.size_left += t2.size_left + (t2.piece ? t2.piece.length : 0), n2.lf_left += t2.lf_left + (t2.piece ? t2.piece.lineFeedCnt : 0), t2.right = n2.left, n2.left !== V && (n2.left.parent = t2), n2.parent = t2.parent, t2.parent === V ? e2.root = n2 : t2.parent.left === t2 ? t2.parent.left = n2 : t2.parent.right = n2, n2.left = t2, t2.parent = n2;
}
function Y(e2, t2) {
let n2 = t2.left;
t2.left = n2.right, n2.right !== V && (n2.right.parent = t2), n2.parent = t2.parent, t2.size_left -= n2.size_left + (n2.piece ? n2.piece.length : 0), t2.lf_left -= n2.lf_left + (n2.piece ? n2.piece.lineFeedCnt : 0), t2.parent === V ? e2.root = n2 : t2 === t2.parent.right ? t2.parent.right = n2 : t2.parent.left = n2, n2.right = t2, t2.parent = n2;
}
function Z(e2, t2) {
let n2, i2;
if (t2.left === V ? (i2 = t2, n2 = i2.right) : t2.right === V ? (i2 = t2, n2 = i2.left) : (i2 = U(t2.right), n2 = i2.right), i2 === e2.root)
return e2.root = n2, n2.color = 0, t2.detach(), K(), void (e2.root.parent = V);
let o2, r2 = 1 === i2.color;
if (i2 === i2.parent.left ? i2.parent.left = n2 : i2.parent.right = n2, i2 === t2 ? (n2.parent = i2.parent, J(e2, n2)) : (i2.parent === t2 ? n2.parent = i2 : n2.parent = i2.parent, J(e2, n2), i2.left = t2.left, i2.right = t2.right, i2.parent = t2.parent, i2.color = t2.color, t2 === e2.root ? e2.root = i2 : t2 === t2.parent.left ? t2.parent.left = i2 : t2.parent.right = i2, i2.left !== V && (i2.left.parent = i2), i2.right !== V && (i2.right.parent = i2), i2.size_left = t2.size_left, i2.lf_left = t2.lf_left, J(e2, i2)), t2.detach(), n2.parent.left === n2) {
let t3 = q(n2), i3 = $(n2);
if (t3 !== n2.parent.size_left || i3 !== n2.parent.lf_left) {
let o3 = t3 - n2.parent.size_left, r3 = i3 - n2.parent.lf_left;
n2.parent.size_left = t3, n2.parent.lf_left = i3, Q(e2, n2.parent, o3, r3);
}
}
if (J(e2, n2.parent), r2)
K();
else {
for (; n2 !== e2.root && 0 === n2.color; )
n2 === n2.parent.left ? (o2 = n2.parent.right, 1 === o2.color && (o2.color = 0, n2.parent.color = 1, G(e2, n2.parent), o2 = n2.parent.right), 0 === o2.left.color && 0 === o2.right.color ? (o2.color = 1, n2 = n2.parent) : (0 === o2.right.color && (o2.left.color = 0, o2.color = 1, Y(e2, o2), o2 = n2.parent.right), o2.color = n2.parent.color, n2.parent.color = 0, o2.right.color = 0, G(e2, n2.parent), n2 = e2.root)) : (o2 = n2.parent.left, 1 === o2.color && (o2.color = 0, n2.parent.color = 1, Y(e2, n2.parent), o2 = n2.parent.left), 0 === o2.left.color && 0 === o2.right.color ? (o2.color = 1, n2 = n2.parent) : (0 === o2.left.color && (o2.right.color = 0, o2.color = 1, G(e2, o2), o2 = n2.parent.left), o2.color = n2.parent.color, n2.parent.color = 0, o2.left.color = 0, Y(e2, n2.parent), n2 = e2.root));
n2.color = 0, K();
}
}
function X(e2, t2) {
for (J(e2, t2); t2 !== e2.root && 1 === t2.parent.color; )
if (t2.parent === t2.parent.parent.left) {
const n2 = t2.parent.parent.right;
1 === n2.color ? (t2.parent.color = 0, n2.color = 0, t2.parent.parent.color = 1, t2 = t2.parent.parent) : (t2 === t2.parent.right && G(e2, t2 = t2.parent), t2.parent.color = 0, t2.parent.parent.color = 1, Y(e2, t2.parent.parent));
} else {
const n2 = t2.parent.parent.left;
1 === n2.color ? (t2.parent.color = 0, n2.color = 0, t2.parent.parent.color = 1, t2 = t2.parent.parent) : (t2 === t2.parent.left && Y(e2, t2 = t2.parent), t2.parent.color = 0, t2.parent.parent.color = 1, G(e2, t2.parent.parent));
}
e2.root.color = 0;
}
function Q(e2, t2, n2, i2) {
for (; t2 !== e2.root && t2 !== V; )
t2.parent.left === t2 && (t2.parent.size_left += n2, t2.parent.lf_left += i2), t2 = t2.parent;
}
function J(e2, t2) {
let n2 = 0, i2 = 0;
if (t2 !== e2.root) {
if (0 === n2) {
for (; t2 !== e2.root && t2 === t2.parent.right; )
t2 = t2.parent;
if (t2 === e2.root)
return;
n2 = q((t2 = t2.parent).left) - t2.size_left, i2 = $(t2.left) - t2.lf_left, t2.size_left += n2, t2.lf_left += i2;
}
for (; t2 !== e2.root && (0 !== n2 || 0 !== i2); )
t2.parent.left === t2 && (t2.parent.size_left += n2, t2.parent.lf_left += i2), t2 = t2.parent;
}
}
V.parent = V, V.left = V, V.right = V, V.color = 0;
var ee = n(106);
function te(e2) {
let t2;
return t2 = e2[e2.length - 1] < 65536 ? new Uint16Array(e2.length) : new Uint32Array(e2.length), t2.set(e2, 0), t2;
}
class ne {
constructor(e2, t2, n2, i2, o2) {
this.lineStarts = e2, this.cr = t2, this.lf = n2, this.crlf = i2, this.isBasicASCII = o2;
}
}
function ie(e2, t2 = true) {
let n2 = [0], i2 = 1;
for (let t3 = 0, o2 = e2.length; t3 < o2; t3++) {
const r2 = e2.charCodeAt(t3);
13 === r2 ? t3 + 1 < o2 && 10 === e2.charCodeAt(t3 + 1) ? (n2[i2++] = t3 + 2, t3++) : n2[i2++] = t3 + 1 : 10 === r2 && (n2[i2++] = t3 + 1);
}
return t2 ? te(n2) : n2;
}
class oe {
constructor(e2, t2, n2, i2, o2) {
this.bufferIndex = e2, this.start = t2, this.end = n2, this.lineFeedCnt = i2, this.length = o2;
}
}
class re {
constructor(e2, t2) {
this.buffer = e2, this.lineStarts = t2;
}
}
class se {
constructor(e2, t2) {
this._pieces = [], this._tree = e2, this._BOM = t2, this._index = 0, e2.root !== V && e2.iterate(e2.root, (e3) => (e3 !== V && this._pieces.push(e3.piece), true));
}
read() {
return 0 === this._pieces.length ? 0 === this._index ? (this._index++, this._BOM) : null : this._index > this._pieces.length - 1 ? null : 0 === this._index ? this._BOM + this._tree.getPieceContent(this._pieces[this._index++]) : this._tree.getPieceContent(this._pieces[this._index++]);
}
}
class ae {
constructor(e2) {
this._limit = e2, this._cache = [];
}
get(e2) {
for (let t2 = this._cache.length - 1; t2 >= 0; t2--) {
let n2 = this._cache[t2];
if (n2.nodeStartOffset <= e2 && n2.nodeStartOffset + n2.node.piece.length >= e2)
return n2;
}
return null;
}
get2(e2) {
for (let t2 = this._cache.length - 1; t2 >= 0; t2--) {
let n2 = this._cache[t2];
if (n2.nodeStartLineNumber && n2.nodeStartLineNumber < e2 && n2.nodeStartLineNumber + n2.node.piece.lineFeedCnt >= e2)
return n2;
}
return null;
}
set(e2) {
this._cache.length >= this._limit && this._cache.shift(), this._cache.push(e2);
}
validate(e2) {
let t2 = false, n2 = this._cache;
for (let i2 = 0; i2 < n2.length; i2++) {
let o2 = n2[i2];
(null === o2.node.parent || o2.nodeStartOffset >= e2) && (n2[i2] = null, t2 = true);
}
if (t2) {
let e3 = [];
for (const t3 of n2)
null !== t3 && e3.push(t3);
this._cache = e3;
}
}
}
class le {
constructor(e2, t2, n2) {
this.create(e2, t2, n2);
}
create(e2, t2, n2) {
this._buffers = [new re("", [0])], this._lastChangeBufferPos = {line: 0, column: 0}, this.root = V, this._lineCnt = 1, this._length = 0, this._EOL = t2, this._EOLLength = t2.length, this._EOLNormalized = n2;
let i2 = null;
for (let t3 = 0, n3 = e2.length; t3 < n3; t3++)
if (e2[t3].buffer.length > 0) {
e2[t3].lineStarts || (e2[t3].lineStarts = ie(e2[t3].buffer));
let n4 = new oe(t3 + 1, {line: 0, column: 0}, {line: e2[t3].lineStarts.length - 1, column: e2[t3].buffer.length - e2[t3].lineStarts[e2[t3].lineStarts.length - 1]}, e2[t3].lineStarts.length - 1, e2[t3].buffer.length);
this._buffers.push(e2[t3]), i2 = this.rbInsertRight(i2, n4);
}
this._searchCache = new ae(1), this._lastVisitedLine = {lineNumber: 0, value: ""}, this.computeBufferMetadata();
}
normalizeEOL(e2) {
let t2 = 65535 - Math.floor(21845), n2 = 2 * t2, i2 = "", o2 = 0, r2 = [];
if (this.iterate(this.root, (s2) => {
let a2 = this.getNodeContent(s2), l2 = a2.length;
if (o2 <= t2 || o2 + l2 < n2)
return i2 += a2, o2 += l2, true;
let c2 = i2.replace(/\r\n|\r|\n/g, e2);
return r2.push(new re(c2, ie(c2))), i2 = a2, o2 = l2, true;
}), o2 > 0) {
let t3 = i2.replace(/\r\n|\r|\n/g, e2);
r2.push(new re(t3, ie(t3)));
}
this.create(r2, e2, true);
}
getEOL() {
return this._EOL;
}
setEOL(e2) {
this._EOL = e2, this._EOLLength = this._EOL.length, this.normalizeEOL(e2);
}
createSnapshot(e2) {
return new se(this, e2);
}
getOffsetAt(e2, t2) {
let n2 = 0, i2 = this.root;
for (; i2 !== V; )
if (i2.left !== V && i2.lf_left + 1 >= e2)
i2 = i2.left;
else {
if (i2.lf_left + i2.piece.lineFeedCnt + 1 >= e2) {
return n2 += i2.size_left, n2 + (this.getAccumulatedValue(i2, e2 - i2.lf_left - 2) + t2 - 1);
}
e2 -= i2.lf_left + i2.piece.lineFeedCnt, n2 += i2.size_left + i2.piece.length, i2 = i2.right;
}
return n2;
}
getPositionAt(e2) {
e2 = Math.floor(e2), e2 = Math.max(0, e2);
let t2 = this.root, n2 = 0, i2 = e2;
for (; t2 !== V; )
if (0 !== t2.size_left && t2.size_left >= e2)
t2 = t2.left;
else {
if (t2.size_left + t2.piece.length >= e2) {
let o2 = this.getIndexOf(t2, e2 - t2.size_left);
if (n2 += t2.lf_left + o2.index, 0 === o2.index) {
let e3 = i2 - this.getOffsetAt(n2 + 1, 1);
return new c.a(n2 + 1, e3 + 1);
}
return new c.a(n2 + 1, o2.remainder + 1);
}
if (e2 -= t2.size_left + t2.piece.length, n2 += t2.lf_left + t2.piece.lineFeedCnt, t2.right === V) {
let t3 = i2 - e2 - this.getOffsetAt(n2 + 1, 1);
return new c.a(n2 + 1, t3 + 1);
}
t2 = t2.right;
}
return new c.a(1, 1);
}
getValueInRange(e2, t2) {
if (e2.startLineNumber === e2.endLineNumber && e2.startColumn === e2.endColumn)
return "";
let n2 = this.nodeAt2(e2.startLineNumber, e2.startColumn), i2 = this.nodeAt2(e2.endLineNumber, e2.endColumn), o2 = this.getValueInRange2(n2, i2);
return t2 ? t2 === this._EOL && this._EOLNormalized && t2 === this.getEOL() && this._EOLNormalized ? o2 : o2.replace(/\r\n|\r|\n/g, t2) : o2;
}
getValueInRange2(e2, t2) {
if (e2.node === t2.node) {
let n3 = e2.node, i3 = this._buffers[n3.piece.bufferIndex].buffer, o3 = this.offsetInBuffer(n3.piece.bufferIndex, n3.piece.start);
return i3.substring(o3 + e2.remainder, o3 + t2.remainder);
}
let n2 = e2.node, i2 = this._buffers[n2.piece.bufferIndex].buffer, o2 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start), r2 = i2.substring(o2 + e2.remainder, o2 + n2.piece.length);
for (n2 = n2.next(); n2 !== V; ) {
let e3 = this._buffers[n2.piece.bufferIndex].buffer, i3 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start);
if (n2 === t2.node) {
r2 += e3.substring(i3, i3 + t2.remainder);
break;
}
r2 += e3.substr(i3, n2.piece.length), n2 = n2.next();
}
return r2;
}
getLinesContent() {
let e2 = [], t2 = 0, n2 = "", i2 = false;
return this.iterate(this.root, (o2) => {
if (o2 === V)
return true;
const r2 = o2.piece;
let s2 = r2.length;
if (0 === s2)
return true;
const a2 = this._buffers[r2.bufferIndex].buffer, l2 = this._buffers[r2.bufferIndex].lineStarts, c2 = r2.start.line, d2 = r2.end.line;
let h2 = l2[c2] + r2.start.column;
if (i2 && (10 === a2.charCodeAt(h2) && (h2++, s2--), e2[t2++] = n2, n2 = "", i2 = false, 0 === s2))
return true;
if (c2 === d2)
return this._EOLNormalized || 13 !== a2.charCodeAt(h2 + s2 - 1) ? n2 += a2.substr(h2, s2) : (i2 = true, n2 += a2.substr(h2, s2 - 1)), true;
n2 += this._EOLNormalized ? a2.substring(h2, Math.max(h2, l2[c2 + 1] - this._EOLLength)) : a2.substring(h2, l2[c2 + 1]).replace(/(\r\n|\r|\n)$/, ""), e2[t2++] = n2;
for (let i3 = c2 + 1; i3 < d2; i3++)
n2 = this._EOLNormalized ? a2.substring(l2[i3], l2[i3 + 1] - this._EOLLength) : a2.substring(l2[i3], l2[i3 + 1]).replace(/(\r\n|\r|\n)$/, ""), e2[t2++] = n2;
return this._EOLNormalized || 13 !== a2.charCodeAt(l2[d2] + r2.end.column - 1) ? n2 = a2.substr(l2[d2], r2.end.column) : (i2 = true, 0 === r2.end.column ? t2-- : n2 = a2.substr(l2[d2], r2.end.column - 1)), true;
}), i2 && (e2[t2++] = n2, n2 = ""), e2[t2++] = n2, e2;
}
getLength() {
return this._length;
}
getLineCount() {
return this._lineCnt;
}
getLineContent(e2) {
return this._lastVisitedLine.lineNumber === e2 || (this._lastVisitedLine.lineNumber = e2, e2 === this._lineCnt ? this._lastVisitedLine.value = this.getLineRawContent(e2) : this._EOLNormalized ? this._lastVisitedLine.value = this.getLineRawContent(e2, this._EOLLength) : this._lastVisitedLine.value = this.getLineRawContent(e2).replace(/(\r\n|\r|\n)$/, "")), this._lastVisitedLine.value;
}
_getCharCode(e2) {
if (e2.remainder === e2.node.piece.length) {
let t2 = e2.node.next();
if (!t2)
return 0;
let n2 = this._buffers[t2.piece.bufferIndex], i2 = this.offsetInBuffer(t2.piece.bufferIndex, t2.piece.start);
return n2.buffer.charCodeAt(i2);
}
{
let t2 = this._buffers[e2.node.piece.bufferIndex], n2 = this.offsetInBuffer(e2.node.piece.bufferIndex, e2.node.piece.start) + e2.remainder;
return t2.buffer.charCodeAt(n2);
}
}
getLineCharCode(e2, t2) {
let n2 = this.nodeAt2(e2, t2 + 1);
return this._getCharCode(n2);
}
getLineLength(e2) {
if (e2 === this.getLineCount()) {
let t2 = this.getOffsetAt(e2, 1);
return this.getLength() - t2;
}
return this.getOffsetAt(e2 + 1, 1) - this.getOffsetAt(e2, 1) - this._EOLLength;
}
findMatchesInNode(e2, t2, n2, i2, o2, r2, s2, a2, l2, c2, h2) {
let u2, p2, m2, g2 = this._buffers[e2.piece.bufferIndex], f2 = this.offsetInBuffer(e2.piece.bufferIndex, e2.piece.start), b2 = this.offsetInBuffer(e2.piece.bufferIndex, o2), _2 = this.offsetInBuffer(e2.piece.bufferIndex, r2), v2 = {line: 0, column: 0};
t2._wordSeparators ? (p2 = g2.buffer.substring(b2, _2), m2 = (e3) => e3 + b2, t2.reset(0)) : (p2 = g2.buffer, m2 = (e3) => e3, t2.reset(b2));
do {
if (u2 = t2.next(p2), u2) {
if (m2(u2.index) >= _2)
return c2;
this.positionInBuffer(e2, m2(u2.index) - f2, v2);
let t3 = this.getLineFeedCnt(e2.piece.bufferIndex, o2, v2), r3 = v2.line === o2.line ? v2.column - o2.column + i2 : v2.column + 1, s3 = r3 + u2[0].length;
if (h2[c2++] = Object(ee.d)(new d.a(n2 + t3, r3, n2 + t3, s3), u2, a2), m2(u2.index) + u2[0].length >= _2)
return c2;
if (c2 >= l2)
return c2;
}
} while (u2);
return c2;
}
findMatchesLineByLine(e2, t2, n2, i2) {
const o2 = [];
let r2 = 0;
const s2 = new ee.b(t2.wordSeparators, t2.regex);
let a2 = this.nodeAt2(e2.startLineNumber, e2.startColumn);
if (null === a2)
return [];
let l2 = this.nodeAt2(e2.endLineNumber, e2.endColumn);
if (null === l2)
return [];
let c2 = this.positionInBuffer(a2.node, a2.remainder), d2 = this.positionInBuffer(l2.node, l2.remainder);
if (a2.node === l2.node)
return this.findMatchesInNode(a2.node, s2, e2.startLineNumber, e2.startColumn, c2, d2, t2, n2, i2, r2, o2), o2;
let h2 = e2.startLineNumber, u2 = a2.node;
for (; u2 !== l2.node; ) {
let l3 = this.getLineFeedCnt(u2.piece.bufferIndex, c2, u2.piece.end);
if (l3 >= 1) {
let a3 = this._buffers[u2.piece.bufferIndex].lineStarts, d4 = this.offsetInBuffer(u2.piece.bufferIndex, u2.piece.start), p3 = a3[c2.line + l3], m2 = h2 === e2.startLineNumber ? e2.startColumn : 1;
if (r2 = this.findMatchesInNode(u2, s2, h2, m2, c2, this.positionInBuffer(u2, p3 - d4), t2, n2, i2, r2, o2), r2 >= i2)
return o2;
h2 += l3;
}
let d3 = h2 === e2.startLineNumber ? e2.startColumn - 1 : 0;
if (h2 === e2.endLineNumber) {
const a3 = this.getLineContent(h2).substring(d3, e2.endColumn - 1);
return r2 = this._findMatchesInLine(t2, s2, a3, e2.endLineNumber, d3, r2, o2, n2, i2), o2;
}
if (r2 = this._findMatchesInLine(t2, s2, this.getLineContent(h2).substr(d3), h2, d3, r2, o2, n2, i2), r2 >= i2)
return o2;
h2++, a2 = this.nodeAt2(h2, 1), u2 = a2.node, c2 = this.positionInBuffer(a2.node, a2.remainder);
}
if (h2 === e2.endLineNumber) {
let a3 = h2 === e2.startLineNumber ? e2.startColumn - 1 : 0;
const l3 = this.getLineContent(h2).substring(a3, e2.endColumn - 1);
return r2 = this._findMatchesInLine(t2, s2, l3, e2.endLineNumber, a3, r2, o2, n2, i2), o2;
}
let p2 = h2 === e2.startLineNumber ? e2.startColumn : 1;
return r2 = this.findMatchesInNode(l2.node, s2, h2, p2, c2, d2, t2, n2, i2, r2, o2), o2;
}
_findMatchesInLine(e2, t2, n2, i2, o2, r2, s2, a2, l2) {
const c2 = e2.wordSeparators;
if (!a2 && e2.simpleSearch) {
const t3 = e2.simpleSearch, a3 = t3.length, h3 = n2.length;
let p2 = -a3;
for (; -1 !== (p2 = n2.indexOf(t3, p2 + a3)); )
if ((!c2 || Object(ee.e)(c2, n2, h3, p2, a3)) && (s2[r2++] = new u.b(new d.a(i2, p2 + 1 + o2, i2, p2 + 1 + a3 + o2), null), r2 >= l2))
return r2;
return r2;
}
let h2;
t2.reset(0);
do {
if (h2 = t2.next(n2), h2 && (s2[r2++] = Object(ee.d)(new d.a(i2, h2.index + 1 + o2, i2, h2.index + 1 + h2[0].length + o2), h2, a2), r2 >= l2))
return r2;
} while (h2);
return r2;
}
insert(e2, t2, n2 = false) {
if (this._EOLNormalized = this._EOLNormalized && n2, this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = "", this.root !== V) {
let {node: n3, remainder: i2, nodeStartOffset: o2} = this.nodeAt(e2), r2 = n3.piece, s2 = r2.bufferIndex, a2 = this.positionInBuffer(n3, i2);
if (0 === n3.piece.bufferIndex && r2.end.line === this._lastChangeBufferPos.line && r2.end.column === this._lastChangeBufferPos.column && o2 + r2.length === e2 && t2.length < 65535)
return this.appendToNode(n3, t2), void this.computeBufferMetadata();
if (o2 === e2)
this.insertContentToNodeLeft(t2, n3), this._searchCache.validate(e2);
else if (o2 + n3.piece.length > e2) {
let e3 = [], o3 = new oe(r2.bufferIndex, a2, r2.end, this.getLineFeedCnt(r2.bufferIndex, a2, r2.end), this.offsetInBuffer(s2, r2.end) - this.offsetInBuffer(s2, a2));
if (this.shouldCheckCRLF() && this.endWithCR(t2)) {
if (10 === this.nodeCharCodeAt(n3, i2)) {
let e4 = {line: o3.start.line + 1, column: 0};
o3 = new oe(o3.bufferIndex, e4, o3.end, this.getLineFeedCnt(o3.bufferIndex, e4, o3.end), o3.length - 1), t2 += "\n";
}
}
if (this.shouldCheckCRLF() && this.startWithLF(t2)) {
if (13 === this.nodeCharCodeAt(n3, i2 - 1)) {
let o4 = this.positionInBuffer(n3, i2 - 1);
this.deleteNodeTail(n3, o4), t2 = "\r" + t2, 0 === n3.piece.length && e3.push(n3);
} else
this.deleteNodeTail(n3, a2);
} else
this.deleteNodeTail(n3, a2);
let l2 = this.createNewPieces(t2);
o3.length > 0 && this.rbInsertRight(n3, o3);
let c2 = n3;
for (let e4 = 0; e4 < l2.length; e4++)
c2 = this.rbInsertRight(c2, l2[e4]);
this.deleteNodes(e3);
} else
this.insertContentToNodeRight(t2, n3);
} else {
let e3 = this.createNewPieces(t2), n3 = this.rbInsertLeft(null, e3[0]);
for (let t3 = 1; t3 < e3.length; t3++)
n3 = this.rbInsertRight(n3, e3[t3]);
}
this.computeBufferMetadata();
}
delete(e2, t2) {
if (this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = "", t2 <= 0 || this.root === V)
return;
let n2 = this.nodeAt(e2), i2 = this.nodeAt(e2 + t2), o2 = n2.node, r2 = i2.node;
if (o2 === r2) {
let r3 = this.positionInBuffer(o2, n2.remainder), s3 = this.positionInBuffer(o2, i2.remainder);
if (n2.nodeStartOffset === e2) {
if (t2 === o2.piece.length) {
let e3 = o2.next();
return Z(this, o2), this.validateCRLFWithPrevNode(e3), void this.computeBufferMetadata();
}
return this.deleteNodeHead(o2, s3), this._searchCache.validate(e2), this.validateCRLFWithPrevNode(o2), void this.computeBufferMetadata();
}
return n2.nodeStartOffset + o2.piece.length === e2 + t2 ? (this.deleteNodeTail(o2, r3), this.validateCRLFWithNextNode(o2), void this.computeBufferMetadata()) : (this.shrinkNode(o2, r3, s3), void this.computeBufferMetadata());
}
let s2 = [], a2 = this.positionInBuffer(o2, n2.remainder);
this.deleteNodeTail(o2, a2), this._searchCache.validate(e2), 0 === o2.piece.length && s2.push(o2);
let l2 = this.positionInBuffer(r2, i2.remainder);
this.deleteNodeHead(r2, l2), 0 === r2.piece.length && s2.push(r2);
for (let e3 = o2.next(); e3 !== V && e3 !== r2; e3 = e3.next())
s2.push(e3);
let c2 = 0 === o2.piece.length ? o2.prev() : o2;
this.deleteNodes(s2), this.validateCRLFWithNextNode(c2), this.computeBufferMetadata();
}
insertContentToNodeLeft(e2, t2) {
let n2 = [];
if (this.shouldCheckCRLF() && this.endWithCR(e2) && this.startWithLF(t2)) {
let i3 = t2.piece, o3 = {line: i3.start.line + 1, column: 0}, r2 = new oe(i3.bufferIndex, o3, i3.end, this.getLineFeedCnt(i3.bufferIndex, o3, i3.end), i3.length - 1);
t2.piece = r2, e2 += "\n", Q(this, t2, -1, -1), 0 === t2.piece.length && n2.push(t2);
}
let i2 = this.createNewPieces(e2), o2 = this.rbInsertLeft(t2, i2[i2.length - 1]);
for (let e3 = i2.length - 2; e3 >= 0; e3--)
o2 = this.rbInsertLeft(o2, i2[e3]);
this.validateCRLFWithPrevNode(o2), this.deleteNodes(n2);
}
insertContentToNodeRight(e2, t2) {
this.adjustCarriageReturnFromNext(e2, t2) && (e2 += "\n");
let n2 = this.createNewPieces(e2), i2 = this.rbInsertRight(t2, n2[0]), o2 = i2;
for (let e3 = 1; e3 < n2.length; e3++)
o2 = this.rbInsertRight(o2, n2[e3]);
this.validateCRLFWithPrevNode(i2);
}
positionInBuffer(e2, t2, n2) {
let i2 = e2.piece, o2 = e2.piece.bufferIndex, r2 = this._buffers[o2].lineStarts, s2 = r2[i2.start.line] + i2.start.column + t2, a2 = i2.start.line, l2 = i2.end.line, c2 = 0, d2 = 0, h2 = 0;
for (; a2 <= l2 && (c2 = a2 + (l2 - a2) / 2 | 0, h2 = r2[c2], c2 !== l2); )
if (d2 = r2[c2 + 1], s2 < h2)
l2 = c2 - 1;
else {
if (!(s2 >= d2))
break;
a2 = c2 + 1;
}
return n2 ? (n2.line = c2, n2.column = s2 - h2, null) : {line: c2, column: s2 - h2};
}
getLineFeedCnt(e2, t2, n2) {
if (0 === n2.column)
return n2.line - t2.line;
let i2 = this._buffers[e2].lineStarts;
if (n2.line === i2.length - 1)
return n2.line - t2.line;
let o2 = i2[n2.line + 1], r2 = i2[n2.line] + n2.column;
if (o2 > r2 + 1)
return n2.line - t2.line;
let s2 = r2 - 1;
return 13 === this._buffers[e2].buffer.charCodeAt(s2) ? n2.line - t2.line + 1 : n2.line - t2.line;
}
offsetInBuffer(e2, t2) {
return this._buffers[e2].lineStarts[t2.line] + t2.column;
}
deleteNodes(e2) {
for (let t2 = 0; t2 < e2.length; t2++)
Z(this, e2[t2]);
}
createNewPieces(e2) {
if (e2.length > 65535) {
let t3 = [];
for (; e2.length > 65535; ) {
const n4 = e2.charCodeAt(65534);
let i3;
13 === n4 || n4 >= 55296 && n4 <= 56319 ? (i3 = e2.substring(0, 65534), e2 = e2.substring(65534)) : (i3 = e2.substring(0, 65535), e2 = e2.substring(65535));
let o3 = ie(i3);
t3.push(new oe(this._buffers.length, {line: 0, column: 0}, {line: o3.length - 1, column: i3.length - o3[o3.length - 1]}, o3.length - 1, i3.length)), this._buffers.push(new re(i3, o3));
}
let n3 = ie(e2);
return t3.push(new oe(this._buffers.length, {line: 0, column: 0}, {line: n3.length - 1, column: e2.length - n3[n3.length - 1]}, n3.length - 1, e2.length)), this._buffers.push(new re(e2, n3)), t3;
}
let t2 = this._buffers[0].buffer.length;
const n2 = ie(e2, false);
let i2 = this._lastChangeBufferPos;
if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === t2 && 0 !== t2 && this.startWithLF(e2) && this.endWithCR(this._buffers[0].buffer)) {
this._lastChangeBufferPos = {line: this._lastChangeBufferPos.line, column: this._lastChangeBufferPos.column + 1}, i2 = this._lastChangeBufferPos;
for (let e3 = 0; e3 < n2.length; e3++)
n2[e3] += t2 + 1;
this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(n2.slice(1)), this._buffers[0].buffer += "_" + e2, t2 += 1;
} else {
if (0 !== t2)
for (let e3 = 0; e3 < n2.length; e3++)
n2[e3] += t2;
this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(n2.slice(1)), this._buffers[0].buffer += e2;
}
const o2 = this._buffers[0].buffer.length;
let r2 = this._buffers[0].lineStarts.length - 1, s2 = {line: r2, column: o2 - this._buffers[0].lineStarts[r2]}, a2 = new oe(0, i2, s2, this.getLineFeedCnt(0, i2, s2), o2 - t2);
return this._lastChangeBufferPos = s2, [a2];
}
getLineRawContent(e2, t2 = 0) {
let n2 = this.root, i2 = "", o2 = this._searchCache.get2(e2);
if (o2) {
n2 = o2.node;
let r2 = this.getAccumulatedValue(n2, e2 - o2.nodeStartLineNumber - 1), s2 = this._buffers[n2.piece.bufferIndex].buffer, a2 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start);
if (o2.nodeStartLineNumber + n2.piece.lineFeedCnt !== e2) {
let i3 = this.getAccumulatedValue(n2, e2 - o2.nodeStartLineNumber);
return s2.substring(a2 + r2, a2 + i3 - t2);
}
i2 = s2.substring(a2 + r2, a2 + n2.piece.length);
} else {
let o3 = 0;
const r2 = e2;
for (; n2 !== V; )
if (n2.left !== V && n2.lf_left >= e2 - 1)
n2 = n2.left;
else {
if (n2.lf_left + n2.piece.lineFeedCnt > e2 - 1) {
let i3 = this.getAccumulatedValue(n2, e2 - n2.lf_left - 2), s2 = this.getAccumulatedValue(n2, e2 - n2.lf_left - 1), a2 = this._buffers[n2.piece.bufferIndex].buffer, l2 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start);
return o3 += n2.size_left, this._searchCache.set({node: n2, nodeStartOffset: o3, nodeStartLineNumber: r2 - (e2 - 1 - n2.lf_left)}), a2.substring(l2 + i3, l2 + s2 - t2);
}
if (n2.lf_left + n2.piece.lineFeedCnt === e2 - 1) {
let t3 = this.getAccumulatedValue(n2, e2 - n2.lf_left - 2), o4 = this._buffers[n2.piece.bufferIndex].buffer, r3 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start);
i2 = o4.substring(r3 + t3, r3 + n2.piece.length);
break;
}
e2 -= n2.lf_left + n2.piece.lineFeedCnt, o3 += n2.size_left + n2.piece.length, n2 = n2.right;
}
}
for (n2 = n2.next(); n2 !== V; ) {
let e3 = this._buffers[n2.piece.bufferIndex].buffer;
if (n2.piece.lineFeedCnt > 0) {
let o3 = this.getAccumulatedValue(n2, 0), r2 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start);
return i2 += e3.substring(r2, r2 + o3 - t2), i2;
}
{
let t3 = this.offsetInBuffer(n2.piece.bufferIndex, n2.piece.start);
i2 += e3.substr(t3, n2.piece.length);
}
n2 = n2.next();
}
return i2;
}
computeBufferMetadata() {
let e2 = this.root, t2 = 1, n2 = 0;
for (; e2 !== V; )
t2 += e2.lf_left + e2.piece.lineFeedCnt, n2 += e2.size_left + e2.piece.length, e2 = e2.right;
this._lineCnt = t2, this._length = n2, this._searchCache.validate(this._length);
}
getIndexOf(e2, t2) {
let n2 = e2.piece, i2 = this.positionInBuffer(e2, t2), o2 = i2.line - n2.start.line;
if (this.offsetInBuffer(n2.bufferIndex, n2.end) - this.offsetInBuffer(n2.bufferIndex, n2.start) === t2) {
let t3 = this.getLineFeedCnt(e2.piece.bufferIndex, n2.start, i2);
if (t3 !== o2)
return {index: t3, remainder: 0};
}
return {index: o2, remainder: i2.column};
}
getAccumulatedValue(e2, t2) {
if (t2 < 0)
return 0;
let n2 = e2.piece, i2 = this._buffers[n2.bufferIndex].lineStarts, o2 = n2.start.line + t2 + 1;
return o2 > n2.end.line ? i2[n2.end.line] + n2.end.column - i2[n2.start.line] - n2.start.column : i2[o2] - i2[n2.start.line] - n2.start.column;
}
deleteNodeTail(e2, t2) {
const n2 = e2.piece, i2 = n2.lineFeedCnt, o2 = this.offsetInBuffer(n2.bufferIndex, n2.end), r2 = t2, s2 = this.offsetInBuffer(n2.bufferIndex, r2), a2 = this.getLineFeedCnt(n2.bufferIndex, n2.start, r2), l2 = a2 - i2, c2 = s2 - o2, d2 = n2.length + c2;
e2.piece = new oe(n2.bufferIndex, n2.start, r2, a2, d2), Q(this, e2, c2, l2);
}
deleteNodeHead(e2, t2) {
const n2 = e2.piece, i2 = n2.lineFeedCnt, o2 = this.offsetInBuffer(n2.bufferIndex, n2.start), r2 = t2, s2 = this.getLineFeedCnt(n2.bufferIndex, r2, n2.end), a2 = s2 - i2, l2 = o2 - this.offsetInBuffer(n2.bufferIndex, r2), c2 = n2.length + l2;
e2.piece = new oe(n2.bufferIndex, r2, n2.end, s2, c2), Q(this, e2, l2, a2);
}
shrinkNode(e2, t2, n2) {
const i2 = e2.piece, o2 = i2.start, r2 = i2.end, s2 = i2.length, a2 = i2.lineFeedCnt, l2 = t2, c2 = this.getLineFeedCnt(i2.bufferIndex, i2.start, l2), d2 = this.offsetInBuffer(i2.bufferIndex, t2) - this.offsetInBuffer(i2.bufferIndex, o2);
e2.piece = new oe(i2.bufferIndex, i2.start, l2, c2, d2), Q(this, e2, d2 - s2, c2 - a2);
let h2 = new oe(i2.bufferIndex, n2, r2, this.getLineFeedCnt(i2.bufferIndex, n2, r2), this.offsetInBuffer(i2.bufferIndex, r2) - this.offsetInBuffer(i2.bufferIndex, n2)), u2 = this.rbInsertRight(e2, h2);
this.validateCRLFWithPrevNode(u2);
}
appendToNode(e2, t2) {
this.adjustCarriageReturnFromNext(t2, e2) && (t2 += "\n");
const n2 = this.shouldCheckCRLF() && this.startWithLF(t2) && this.endWithCR(e2), i2 = this._buffers[0].buffer.length;
this._buffers[0].buffer += t2;
const o2 = ie(t2, false);
for (let e3 = 0; e3 < o2.length; e3++)
o2[e3] += i2;
if (n2) {
let e3 = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2];
this._buffers[0].lineStarts.pop(), this._lastChangeBufferPos = {line: this._lastChangeBufferPos.line - 1, column: i2 - e3};
}
this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(o2.slice(1));
const r2 = this._buffers[0].lineStarts.length - 1, s2 = {line: r2, column: this._buffers[0].buffer.length - this._buffers[0].lineStarts[r2]}, a2 = e2.piece.length + t2.length, l2 = e2.piece.lineFeedCnt, c2 = this.getLineFeedCnt(0, e2.piece.start, s2), d2 = c2 - l2;
e2.piece = new oe(e2.piece.bufferIndex, e2.piece.start, s2, c2, a2), this._lastChangeBufferPos = s2, Q(this, e2, t2.length, d2);
}
nodeAt(e2) {
let t2 = this.root, n2 = this._searchCache.get(e2);
if (n2)
return {node: n2.node, nodeStartOffset: n2.nodeStartOffset, remainder: e2 - n2.nodeStartOffset};
let i2 = 0;
for (; t2 !== V; )
if (t2.size_left > e2)
t2 = t2.left;
else {
if (t2.size_left + t2.piece.length >= e2) {
i2 += t2.size_left;
let n3 = {node: t2, remainder: e2 - t2.size_left, nodeStartOffset: i2};
return this._searchCache.set(n3), n3;
}
e2 -= t2.size_left + t2.piece.length, i2 += t2.size_left + t2.piece.length, t2 = t2.right;
}
return null;
}
nodeAt2(e2, t2) {
let n2 = this.root, i2 = 0;
for (; n2 !== V; )
if (n2.left !== V && n2.lf_left >= e2 - 1)
n2 = n2.left;
else {
if (n2.lf_left + n2.piece.lineFeedCnt > e2 - 1) {
let o2 = this.getAccumulatedValue(n2, e2 - n2.lf_left - 2), r2 = this.getAccumulatedValue(n2, e2 - n2.lf_left - 1);
return i2 += n2.size_left, {node: n2, remainder: Math.min(o2 + t2 - 1, r2), nodeStartOffset: i2};
}
if (n2.lf_left + n2.piece.lineFeedCnt === e2 - 1) {
let o2 = this.getAccumulatedValue(n2, e2 - n2.lf_left - 2);
if (o2 + t2 - 1 <= n2.piece.length)
return {node: n2, remainder: o2 + t2 - 1, nodeStartOffset: i2};
t2 -= n2.piece.length - o2;
break;
}
e2 -= n2.lf_left + n2.piece.lineFeedCnt, i2 += n2.size_left + n2.piece.length, n2 = n2.right;
}
for (n2 = n2.next(); n2 !== V; ) {
if (n2.piece.lineFeedCnt > 0) {
let e3 = this.getAccumulatedValue(n2, 0), i3 = this.offsetOfNode(n2);
return {node: n2, remainder: Math.min(t2 - 1, e3), nodeStartOffset: i3};
}
if (n2.piece.length >= t2 - 1) {
return {node: n2, remainder: t2 - 1, nodeStartOffset: this.offsetOfNode(n2)};
}
t2 -= n2.piece.length, n2 = n2.next();
}
return null;
}
nodeCharCodeAt(e2, t2) {
if (e2.piece.lineFeedCnt < 1)
return -1;
let n2 = this._buffers[e2.piece.bufferIndex], i2 = this.offsetInBuffer(e2.piece.bufferIndex, e2.piece.start) + t2;
return n2.buffer.charCodeAt(i2);
}
offsetOfNode(e2) {
if (!e2)
return 0;
let t2 = e2.size_left;
for (; e2 !== this.root; )
e2.parent.right === e2 && (t2 += e2.parent.size_left + e2.parent.piece.length), e2 = e2.parent;
return t2;
}
shouldCheckCRLF() {
return !(this._EOLNormalized && "\n" === this._EOL);
}
startWithLF(e2) {
if ("string" == typeof e2)
return 10 === e2.charCodeAt(0);
if (e2 === V || 0 === e2.piece.lineFeedCnt)
return false;
let t2 = e2.piece, n2 = this._buffers[t2.bufferIndex].lineStarts, i2 = t2.start.line, o2 = n2[i2] + t2.start.column;
return i2 !== n2.length - 1 && (!(n2[i2 + 1] > o2 + 1) && 10 === this._buffers[t2.bufferIndex].buffer.charCodeAt(o2));
}
endWithCR(e2) {
return "string" == typeof e2 ? 13 === e2.charCodeAt(e2.length - 1) : e2 !== V && 0 !== e2.piece.lineFeedCnt && 13 === this.nodeCharCodeAt(e2, e2.piece.length - 1);
}
validateCRLFWithPrevNode(e2) {
if (this.shouldCheckCRLF() && this.startWithLF(e2)) {
let t2 = e2.prev();
this.endWithCR(t2) && this.fixCRLF(t2, e2);
}
}
validateCRLFWithNextNode(e2) {
if (this.shouldCheckCRLF() && this.endWithCR(e2)) {
let t2 = e2.next();
this.startWithLF(t2) && this.fixCRLF(e2, t2);
}
}
fixCRLF(e2, t2) {
let n2, i2 = [], o2 = this._buffers[e2.piece.bufferIndex].lineStarts;
n2 = 0 === e2.piece.end.column ? {line: e2.piece.end.line - 1, column: o2[e2.piece.end.line] - o2[e2.piece.end.line - 1] - 1} : {line: e2.piece.end.line, column: e2.piece.end.column - 1};
const r2 = e2.piece.length - 1, s2 = e2.piece.lineFeedCnt - 1;
e2.piece = new oe(e2.piece.bufferIndex, e2.piece.start, n2, s2, r2), Q(this, e2, -1, -1), 0 === e2.piece.length && i2.push(e2);
let a2 = {line: t2.piece.start.line + 1, column: 0};
const l2 = t2.piece.length - 1, c2 = this.getLineFeedCnt(t2.piece.bufferIndex, a2, t2.piece.end);
t2.piece = new oe(t2.piece.bufferIndex, a2, t2.piece.end, c2, l2), Q(this, t2, -1, -1), 0 === t2.piece.length && i2.push(t2);
let d2 = this.createNewPieces("\r\n");
this.rbInsertRight(e2, d2[0]);
for (let e3 = 0; e3 < i2.length; e3++)
Z(this, i2[e3]);
}
adjustCarriageReturnFromNext(e2, t2) {
if (this.shouldCheckCRLF() && this.endWithCR(e2)) {
let n2 = t2.next();
if (this.startWithLF(n2)) {
if (e2 += "\n", 1 === n2.piece.length)
Z(this, n2);
else {
const e3 = n2.piece, t3 = {line: e3.start.line + 1, column: 0}, i2 = e3.length - 1, o2 = this.getLineFeedCnt(e3.bufferIndex, t3, e3.end);
n2.piece = new oe(e3.bufferIndex, t3, e3.end, o2, i2), Q(this, n2, -1, -1);
}
return true;
}
}
return false;
}
iterate(e2, t2) {
if (e2 === V)
return t2(V);
let n2 = this.iterate(e2.left, t2);
return n2 ? t2(e2) && this.iterate(e2.right, t2) : n2;
}
getNodeContent(e2) {
if (e2 === V)
return "";
let t2, n2 = this._buffers[e2.piece.bufferIndex], i2 = e2.piece, o2 = this.offsetInBuffer(i2.bufferIndex, i2.start), r2 = this.offsetInBuffer(i2.bufferIndex, i2.end);
return t2 = n2.buffer.substring(o2, r2), t2;
}
getPieceContent(e2) {
let t2 = this._buffers[e2.bufferIndex], n2 = this.offsetInBuffer(e2.bufferIndex, e2.start), i2 = this.offsetInBuffer(e2.bufferIndex, e2.end);
return t2.buffer.substring(n2, i2);
}
rbInsertRight(e2, t2) {
let n2 = new j(t2, 1);
if (n2.left = V, n2.right = V, n2.parent = V, n2.size_left = 0, n2.lf_left = 0, this.root === V)
this.root = n2, n2.color = 0;
else if (e2.right === V)
e2.right = n2, n2.parent = e2;
else {
let t3 = U(e2.right);
t3.left = n2, n2.parent = t3;
}
return X(this, n2), n2;
}
rbInsertLeft(e2, t2) {
let n2 = new j(t2, 1);
if (n2.left = V, n2.right = V, n2.parent = V, n2.size_left = 0, n2.lf_left = 0, this.root === V)
this.root = n2, n2.color = 0;
else if (e2.left === V)
e2.left = n2, n2.parent = e2;
else {
let t3 = H(e2.left);
t3.right = n2, n2.parent = t3;
}
return X(this, n2), n2;
}
}
var ce = n(124), de = n(180);
class he {
constructor(e2, t2, n2, i2, r2, s2, a2) {
this._onDidChangeContent = new o.a(), this._BOM = t2, this._mightContainNonBasicASCII = !s2, this._mightContainRTL = i2, this._mightContainUnusualLineTerminators = r2, this._pieceTree = new le(e2, n2, a2);
}
dispose() {
this._onDidChangeContent.dispose();
}
mightContainRTL() {
return this._mightContainRTL;
}
mightContainUnusualLineTerminators() {
return this._mightContainUnusualLineTerminators;
}
resetMightContainUnusualLineTerminators() {
this._mightContainUnusualLineTerminators = false;
}
mightContainNonBasicASCII() {
return this._mightContainNonBasicASCII;
}
getBOM() {
return this._BOM;
}
getEOL() {
return this._pieceTree.getEOL();
}
createSnapshot(e2) {
return this._pieceTree.createSnapshot(e2 ? this._BOM : "");
}
getOffsetAt(e2, t2) {
return this._pieceTree.getOffsetAt(e2, t2);
}
getPositionAt(e2) {
return this._pieceTree.getPositionAt(e2);
}
getRangeAt(e2, t2) {
let n2 = e2 + t2;
const i2 = this.getPositionAt(e2), o2 = this.getPositionAt(n2);
return new d.a(i2.lineNumber, i2.column, o2.lineNumber, o2.column);
}
getValueInRange(e2, t2 = 0) {
if (e2.isEmpty())
return "";
const n2 = this._getEndOfLine(t2);
return this._pieceTree.getValueInRange(e2, n2);
}
getValueLengthInRange(e2, t2 = 0) {
if (e2.isEmpty())
return 0;
if (e2.startLineNumber === e2.endLineNumber)
return e2.endColumn - e2.startColumn;
let n2 = this.getOffsetAt(e2.startLineNumber, e2.startColumn);
return this.getOffsetAt(e2.endLineNumber, e2.endColumn) - n2;
}
getCharacterCountInRange(e2, t2 = 0) {
if (this._mightContainNonBasicASCII) {
let n2 = 0;
const i2 = e2.startLineNumber, o2 = e2.endLineNumber;
for (let t3 = i2; t3 <= o2; t3++) {
const r2 = this.getLineContent(t3), a2 = t3 === i2 ? e2.startColumn - 1 : 0, l2 = t3 === o2 ? e2.endColumn - 1 : r2.length;
for (let e3 = a2; e3 < l2; e3++)
s.F(r2.charCodeAt(e3)) ? (n2 += 1, e3 += 1) : n2 += 1;
}
return n2 += this._getEndOfLine(t2).length * (o2 - i2), n2;
}
return this.getValueLengthInRange(e2, t2);
}
getLength() {
return this._pieceTree.getLength();
}
getLineCount() {
return this._pieceTree.getLineCount();
}
getLinesContent() {
return this._pieceTree.getLinesContent();
}
getLineContent(e2) {
return this._pieceTree.getLineContent(e2);
}
getLineCharCode(e2, t2) {
return this._pieceTree.getLineCharCode(e2, t2);
}
getLineLength(e2) {
return this._pieceTree.getLineLength(e2);
}
getLineFirstNonWhitespaceColumn(e2) {
const t2 = s.w(this.getLineContent(e2));
return -1 === t2 ? 0 : t2 + 1;
}
getLineLastNonWhitespaceColumn(e2) {
const t2 = s.J(this.getLineContent(e2));
return -1 === t2 ? 0 : t2 + 2;
}
_getEndOfLine(e2) {
switch (e2) {
case 1:
return "\n";
case 2:
return "\r\n";
case 0:
return this.getEOL();
default:
throw new Error("Unknown EOL preference");
}
}
setEOL(e2) {
this._pieceTree.setEOL(e2);
}
applyEdits(e2, t2, n2) {
let i2 = this._mightContainRTL, o2 = this._mightContainUnusualLineTerminators, r2 = this._mightContainNonBasicASCII, a2 = true, l2 = [];
for (let t3 = 0; t3 < e2.length; t3++) {
let n3 = e2[t3];
a2 && n3._isTracked && (a2 = false);
let c3 = n3.range;
if (n3.text) {
let e3 = true;
r2 || (e3 = !s.B(n3.text), r2 = e3), !i2 && e3 && (i2 = s.m(n3.text)), !o2 && e3 && (o2 = s.n(n3.text));
}
let d3 = "", h3 = 0, u2 = 0, p3 = 0;
if (n3.text) {
let e3;
[h3, u2, p3, e3] = Object(ce.f)(n3.text);
const t4 = this.getEOL(), i3 = "\r\n" === t4 ? 2 : 1;
d3 = 0 === e3 || e3 === i3 ? n3.text : n3.text.replace(/\r\n|\r|\n/g, t4);
}
l2[t3] = {sortIndex: t3, identifier: n3.identifier || null, range: c3, rangeOffset: this.getOffsetAt(c3.startLineNumber, c3.startColumn), rangeLength: this.getValueLengthInRange(c3), text: d3, eolCount: h3, firstLineLength: u2, lastLineLength: p3, forceMoveMarkers: Boolean(n3.forceMoveMarkers), isAutoWhitespaceEdit: n3.isAutoWhitespaceEdit || false};
}
l2.sort(he._sortOpsAscending);
let c2 = false;
for (let e3 = 0, t3 = l2.length - 1; e3 < t3; e3++) {
let t4 = l2[e3].range.getEndPosition(), n3 = l2[e3 + 1].range.getStartPosition();
if (n3.isBeforeOrEqual(t4)) {
if (n3.isBefore(t4))
throw new Error("Overlapping ranges are not allowed!");
c2 = true;
}
}
a2 && (l2 = this._reduceOperations(l2));
let d2 = n2 || t2 ? he._getInverseEditRanges(l2) : [], h2 = [];
if (t2)
for (let e3 = 0; e3 < l2.length; e3++) {
let t3 = l2[e3], n3 = d2[e3];
if (t3.isAutoWhitespaceEdit && t3.range.isEmpty())
for (let e4 = n3.startLineNumber; e4 <= n3.endLineNumber; e4++) {
let i3 = "";
e4 === n3.startLineNumber && (i3 = this.getLineContent(t3.range.startLineNumber), -1 !== s.w(i3)) || h2.push({lineNumber: e4, oldContent: i3});
}
}
let p2 = null;
if (n2) {
let e3 = 0;
p2 = [];
for (let t3 = 0; t3 < l2.length; t3++) {
const n3 = l2[t3], i3 = d2[t3], o3 = this.getValueInRange(n3.range), r3 = n3.rangeOffset + e3;
e3 += n3.text.length - o3.length, p2[t3] = {sortIndex: n3.sortIndex, identifier: n3.identifier, range: i3, text: o3, textChange: new de.a(n3.rangeOffset, o3, r3, n3.text)};
}
c2 || p2.sort((e4, t3) => e4.sortIndex - t3.sortIndex);
}
this._mightContainRTL = i2, this._mightContainUnusualLineTerminators = o2, this._mightContainNonBasicASCII = r2;
const m2 = this._doApplyEdits(l2);
let g2 = null;
if (t2 && h2.length > 0) {
h2.sort((e3, t3) => t3.lineNumber - e3.lineNumber), g2 = [];
for (let e3 = 0, t3 = h2.length; e3 < t3; e3++) {
let t4 = h2[e3].lineNumber;
if (e3 > 0 && h2[e3 - 1].lineNumber === t4)
continue;
let n3 = h2[e3].oldContent, i3 = this.getLineContent(t4);
0 !== i3.length && i3 !== n3 && -1 === s.w(i3) && g2.push(t4);
}
}
return this._onDidChangeContent.fire(), new u.a(p2, m2, g2);
}
_reduceOperations(e2) {
return e2.length < 1e3 ? e2 : [this._toSingleEditOperation(e2)];
}
_toSingleEditOperation(e2) {
let t2 = false;
const n2 = e2[0].range, i2 = e2[e2.length - 1].range, o2 = new d.a(n2.startLineNumber, n2.startColumn, i2.endLineNumber, i2.endColumn);
let r2 = n2.startLineNumber, s2 = n2.startColumn;
const a2 = [];
for (let n3 = 0, i3 = e2.length; n3 < i3; n3++) {
const i4 = e2[n3], o3 = i4.range;
t2 = t2 || i4.forceMoveMarkers, a2.push(this.getValueInRange(new d.a(r2, s2, o3.startLineNumber, o3.startColumn))), i4.text.length > 0 && a2.push(i4.text), r2 = o3.endLineNumber, s2 = o3.endColumn;
}
const l2 = a2.join(""), [c2, h2, u2] = Object(ce.f)(l2);
return {sortIndex: 0, identifier: e2[0].identifier, range: o2, rangeOffset: this.getOffsetAt(o2.startLineNumber, o2.startColumn), rangeLength: this.getValueLengthInRange(o2, 0), text: l2, eolCount: c2, firstLineLength: h2, lastLineLength: u2, forceMoveMarkers: t2, isAutoWhitespaceEdit: false};
}
_doApplyEdits(e2) {
e2.sort(he._sortOpsDescending);
let t2 = [];
for (let n2 = 0; n2 < e2.length; n2++) {
let i2 = e2[n2];
const o2 = i2.range.startLineNumber, r2 = i2.range.startColumn, s2 = i2.range.endLineNumber, a2 = i2.range.endColumn;
if (o2 === s2 && r2 === a2 && 0 === i2.text.length)
continue;
i2.text ? (this._pieceTree.delete(i2.rangeOffset, i2.rangeLength), this._pieceTree.insert(i2.rangeOffset, i2.text, true)) : this._pieceTree.delete(i2.rangeOffset, i2.rangeLength);
const l2 = new d.a(o2, r2, s2, a2);
t2.push({range: l2, rangeLength: i2.rangeLength, text: i2.text, rangeOffset: i2.rangeOffset, forceMoveMarkers: i2.forceMoveMarkers});
}
return t2;
}
findMatchesLineByLine(e2, t2, n2, i2) {
return this._pieceTree.findMatchesLineByLine(e2, t2, n2, i2);
}
static _getInverseEditRanges(e2) {
let t2 = [], n2 = 0, i2 = 0, o2 = null;
for (let r2 = 0, s2 = e2.length; r2 < s2; r2++) {
let s3, a2, l2, c2 = e2[r2];
if (o2 ? o2.range.endLineNumber === c2.range.startLineNumber ? (s3 = n2, a2 = i2 + (c2.range.startColumn - o2.range.endColumn)) : (s3 = n2 + (c2.range.startLineNumber - o2.range.endLineNumber), a2 = c2.range.startColumn) : (s3 = c2.range.startLineNumber, a2 = c2.range.startColumn), c2.text.length > 0) {
const e3 = c2.eolCount + 1;
l2 = 1 === e3 ? new d.a(s3, a2, s3, a2 + c2.firstLineLength) : new d.a(s3, a2, s3 + e3 - 1, c2.lastLineLength + 1);
} else
l2 = new d.a(s3, a2, s3, a2);
n2 = l2.endLineNumber, i2 = l2.endColumn, t2.push(l2), o2 = c2;
}
return t2;
}
static _sortOpsAscending(e2, t2) {
let n2 = d.a.compareRangesUsingEnds(e2.range, t2.range);
return 0 === n2 ? e2.sortIndex - t2.sortIndex : n2;
}
static _sortOpsDescending(e2, t2) {
let n2 = d.a.compareRangesUsingEnds(e2.range, t2.range);
return 0 === n2 ? t2.sortIndex - e2.sortIndex : -n2;
}
}
class ue {
constructor(e2, t2, n2, i2, o2, r2, s2, a2, l2) {
this._chunks = e2, this._bom = t2, this._cr = n2, this._lf = i2, this._crlf = o2, this._containsRTL = r2, this._containsUnusualLineTerminators = s2, this._isBasicASCII = a2, this._normalizeEOL = l2;
}
_getEOL(e2) {
const t2 = this._cr + this._lf + this._crlf, n2 = this._cr + this._crlf;
return 0 === t2 ? 1 === e2 ? "\n" : "\r\n" : n2 > t2 / 2 ? "\r\n" : "\n";
}
create(e2) {
const t2 = this._getEOL(e2);
let n2 = this._chunks;
if (this._normalizeEOL && ("\r\n" === t2 && (this._cr > 0 || this._lf > 0) || "\n" === t2 && (this._cr > 0 || this._crlf > 0)))
for (let e3 = 0, i2 = n2.length; e3 < i2; e3++) {
let i3 = n2[e3].buffer.replace(/\r\n|\r|\n/g, t2), o2 = ie(i3);
n2[e3] = new re(i3, o2);
}
return new he(n2, this._bom, t2, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL);
}
}
class pe {
constructor() {
this.chunks = [], this.BOM = "", this._hasPreviousChar = false, this._previousChar = 0, this._tmpLineStarts = [], this.cr = 0, this.lf = 0, this.crlf = 0, this.containsRTL = false, this.containsUnusualLineTerminators = false, this.isBasicASCII = true;
}
acceptChunk(e2) {
if (0 === e2.length)
return;
0 === this.chunks.length && s.U(e2) && (this.BOM = s.b, e2 = e2.substr(1));
const t2 = e2.charCodeAt(e2.length - 1);
13 === t2 || t2 >= 55296 && t2 <= 56319 ? (this._acceptChunk1(e2.substr(0, e2.length - 1), false), this._hasPreviousChar = true, this._previousChar = t2) : (this._acceptChunk1(e2, false), this._hasPreviousChar = false, this._previousChar = t2);
}
_acceptChunk1(e2, t2) {
(t2 || 0 !== e2.length) && (this._hasPreviousChar ? this._acceptChunk2(String.fromCharCode(this._previousChar) + e2) : this._acceptChunk2(e2));
}
_acceptChunk2(e2) {
const t2 = function(e3, t3) {
e3.length = 0, e3[0] = 0;
let n2 = 1, i2 = 0, o2 = 0, r2 = 0, s2 = true;
for (let a3 = 0, l2 = t3.length; a3 < l2; a3++) {
const c2 = t3.charCodeAt(a3);
13 === c2 ? a3 + 1 < l2 && 10 === t3.charCodeAt(a3 + 1) ? (r2++, e3[n2++] = a3 + 2, a3++) : (i2++, e3[n2++] = a3 + 1) : 10 === c2 ? (o2++, e3[n2++] = a3 + 1) : s2 && 9 !== c2 && (c2 < 32 || c2 > 126) && (s2 = false);
}
const a2 = new ne(te(e3), i2, o2, r2, s2);
return e3.length = 0, a2;
}(this._tmpLineStarts, e2);
this.chunks.push(new re(e2, t2.lineStarts)), this.cr += t2.cr, this.lf += t2.lf, this.crlf += t2.crlf, this.isBasicASCII && (this.isBasicASCII = t2.isBasicASCII), this.isBasicASCII || this.containsRTL || (this.containsRTL = s.m(e2)), this.isBasicASCII || this.containsUnusualLineTerminators || (this.containsUnusualLineTerminators = s.n(e2));
}
finish(e2 = true) {
return this._finish(), new ue(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, e2);
}
_finish() {
if (0 === this.chunks.length && this._acceptChunk1("", true), this._hasPreviousChar) {
this._hasPreviousChar = false;
let e2 = this.chunks[this.chunks.length - 1];
e2.buffer += String.fromCharCode(this._previousChar);
let t2 = ie(e2.buffer);
e2.lineStarts = t2, 13 === this._previousChar && this.cr++;
}
}
}
class me {
constructor() {
this.changeType = 1;
}
}
class ge {
constructor(e2, t2) {
this.changeType = 2, this.lineNumber = e2, this.detail = t2;
}
}
class fe {
constructor(e2, t2) {
this.changeType = 3, this.fromLineNumber = e2, this.toLineNumber = t2;
}
}
class be {
constructor(e2, t2, n2) {
this.changeType = 4, this.fromLineNumber = e2, this.toLineNumber = t2, this.detail = n2;
}
}
class _e {
constructor() {
this.changeType = 5;
}
}
class ve {
constructor(e2, t2, n2, i2) {
this.changes = e2, this.versionId = t2, this.isUndoing = n2, this.isRedoing = i2, this.resultingSelection = null;
}
containsEvent(e2) {
for (let t2 = 0, n2 = this.changes.length; t2 < n2; t2++) {
if (this.changes[t2].changeType === e2)
return true;
}
return false;
}
static merge(e2, t2) {
const n2 = [].concat(e2.changes).concat(t2.changes), i2 = t2.versionId, o2 = e2.isUndoing || t2.isUndoing, r2 = e2.isRedoing || t2.isRedoing;
return new ve(n2, i2, o2, r2);
}
}
class we {
constructor(e2, t2) {
this.rawContentChangedEvent = e2, this.contentChangedEvent = t2;
}
merge(e2) {
const t2 = ve.merge(this.rawContentChangedEvent, e2.rawContentChangedEvent), n2 = we._mergeChangeEvents(this.contentChangedEvent, e2.contentChangedEvent);
return new we(t2, n2);
}
static _mergeChangeEvents(e2, t2) {
return {changes: [].concat(e2.changes).concat(t2.changes), eol: t2.eol, versionId: t2.versionId, isUndoing: e2.isUndoing || t2.isUndoing, isRedoing: e2.isRedoing || t2.isRedoing, isFlush: e2.isFlush || t2.isFlush};
}
}
var ye = n(15), Ce = n(111), xe = n(12), Se = n(90), ke = n(158), Ee = n(11);
class Te {
constructor() {
this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0;
}
_reset(e2) {
this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0, e2 && this._setBeginState(0, e2);
}
flush(e2) {
this._reset(e2);
}
get invalidLineStartIndex() {
return this._invalidLineStartIndex;
}
_invalidateLine(e2) {
e2 < this._len && (this._valid[e2] = false), e2 < this._invalidLineStartIndex && (this._invalidLineStartIndex = e2);
}
_isValid(e2) {
return e2 < this._len && this._valid[e2];
}
getBeginState(e2) {
return e2 < this._len ? this._beginState[e2] : null;
}
_ensureLine(e2) {
for (; e2 >= this._len; )
this._beginState[this._len] = null, this._valid[this._len] = false, this._len++;
}
_deleteLines(e2, t2) {
0 !== t2 && (e2 + t2 > this._len && (t2 = this._len - e2), this._beginState.splice(e2, t2), this._valid.splice(e2, t2), this._len -= t2);
}
_insertLines(e2, t2) {
if (0 === t2)
return;
let n2 = [], i2 = [];
for (let e3 = 0; e3 < t2; e3++)
n2[e3] = null, i2[e3] = false;
this._beginState = ye.a(this._beginState, e2, n2), this._valid = ye.a(this._valid, e2, i2), this._len += t2;
}
_setValid(e2, t2) {
this._ensureLine(e2), this._valid[e2] = t2;
}
_setBeginState(e2, t2) {
this._ensureLine(e2), this._beginState[e2] = t2;
}
setEndState(e2, t2, n2) {
if (this._setValid(t2, true), this._invalidLineStartIndex = t2 + 1, t2 === e2 - 1)
return;
const i2 = this.getBeginState(t2 + 1);
if (null === i2 || !n2.equals(i2))
return this._setBeginState(t2 + 1, n2), void this._invalidateLine(t2 + 1);
let o2 = t2 + 1;
for (; o2 < e2 && this._isValid(o2); )
o2++;
this._invalidLineStartIndex = o2;
}
setFakeTokens(e2) {
this._setValid(e2, false);
}
applyEdits(e2, t2) {
const n2 = e2.endLineNumber - e2.startLineNumber, i2 = t2;
for (let t3 = Math.min(n2, i2); t3 >= 0; t3--)
this._invalidateLine(e2.startLineNumber + t3 - 1);
this._acceptDeleteRange(e2), this._acceptInsertText(new c.a(e2.startLineNumber, e2.startColumn), t2);
}
_acceptDeleteRange(e2) {
e2.startLineNumber - 1 >= this._len || this._deleteLines(e2.startLineNumber, e2.endLineNumber - e2.startLineNumber);
}
_acceptInsertText(e2, t2) {
e2.lineNumber - 1 >= this._len || this._insertLines(e2.lineNumber, t2);
}
}
class Le extends r.a {
constructor(e2) {
super(), this._isDisposed = false, this._textModel = e2, this._tokenizationStateStore = new Te(), this._tokenizationSupport = null, this._register(xe.C.onDidChange((e3) => {
const t2 = this._textModel.getLanguageIdentifier();
-1 !== e3.changedLanguages.indexOf(t2.language) && (this._resetTokenizationState(), this._textModel.clearTokens());
})), this._register(this._textModel.onDidChangeRawContentFast((e3) => {
e3.containsEvent(1) && this._resetTokenizationState();
})), this._register(this._textModel.onDidChangeContentFast((e3) => {
for (let t2 = 0, n2 = e3.changes.length; t2 < n2; t2++) {
const n3 = e3.changes[t2], [i2] = Object(ce.f)(n3.text);
this._tokenizationStateStore.applyEdits(n3.range, i2);
}
this._beginBackgroundTokenization();
})), this._register(this._textModel.onDidChangeAttached(() => {
this._beginBackgroundTokenization();
})), this._register(this._textModel.onDidChangeLanguage(() => {
this._resetTokenizationState(), this._textModel.clearTokens();
})), this._resetTokenizationState();
}
dispose() {
this._isDisposed = true, super.dispose();
}
_resetTokenizationState() {
const [e2, t2] = function(e3) {
const t3 = e3.getLanguageIdentifier();
let n2 = e3.isTooLargeForTokenization() ? null : xe.C.get(t3.language), o2 = null;
if (n2)
try {
o2 = n2.getInitialState();
} catch (e4) {
Object(i.e)(e4), n2 = null;
}
return [n2, o2];
}(this._textModel);
this._tokenizationSupport = e2, this._tokenizationStateStore.flush(t2), this._beginBackgroundTokenization();
}
_beginBackgroundTokenization() {
this._textModel.isAttachedToEditor() && this._hasLinesToTokenize() && Ee.j(() => {
this._isDisposed || this._revalidateTokensNow();
});
}
_revalidateTokensNow(e2 = this._textModel.getLineCount()) {
const t2 = new ce.b(), n2 = ke.a.create(false);
for (; this._hasLinesToTokenize() && !(n2.elapsed() > 1); ) {
if (this._tokenizeOneInvalidLine(t2) >= e2)
break;
}
this._beginBackgroundTokenization(), this._textModel.setTokens(t2.tokens);
}
tokenizeViewport(e2, t2) {
const n2 = new ce.b();
this._tokenizeViewport(n2, e2, t2), this._textModel.setTokens(n2.tokens);
}
reset() {
this._resetTokenizationState(), this._textModel.clearTokens();
}
forceTokenization(e2) {
const t2 = new ce.b();
this._updateTokensUntilLine(t2, e2), this._textModel.setTokens(t2.tokens);
}
isCheapToTokenize(e2) {
if (!this._tokenizationSupport)
return true;
const t2 = this._tokenizationStateStore.invalidLineStartIndex + 1;
return !(e2 > t2) && (e2 < t2 || this._textModel.getLineLength(e2) < 2048);
}
_hasLinesToTokenize() {
return !!this._tokenizationSupport && this._tokenizationStateStore.invalidLineStartIndex < this._textModel.getLineCount();
}
_tokenizeOneInvalidLine(e2) {
if (!this._hasLinesToTokenize())
return this._textModel.getLineCount() + 1;
const t2 = this._tokenizationStateStore.invalidLineStartIndex + 1;
return this._updateTokensUntilLine(e2, t2), t2;
}
_updateTokensUntilLine(e2, t2) {
if (!this._tokenizationSupport)
return;
const n2 = this._textModel.getLanguageIdentifier(), i2 = this._textModel.getLineCount(), o2 = t2 - 1;
for (let t3 = this._tokenizationStateStore.invalidLineStartIndex; t3 <= o2; t3++) {
const o3 = this._textModel.getLineContent(t3 + 1), r2 = this._tokenizationStateStore.getBeginState(t3), s2 = Ne(n2, this._tokenizationSupport, o3, r2);
e2.add(t3 + 1, s2.tokens), this._tokenizationStateStore.setEndState(i2, t3, s2.endState), t3 = this._tokenizationStateStore.invalidLineStartIndex - 1;
}
}
_tokenizeViewport(e2, t2, n2) {
if (!this._tokenizationSupport)
return;
if (n2 <= this._tokenizationStateStore.invalidLineStartIndex)
return;
if (t2 <= this._tokenizationStateStore.invalidLineStartIndex)
return void this._updateTokensUntilLine(e2, n2);
let i2 = this._textModel.getLineFirstNonWhitespaceColumn(t2), o2 = [], r2 = null;
for (let e3 = t2 - 1; i2 > 0 && e3 >= 1; e3--) {
let t3 = this._textModel.getLineFirstNonWhitespaceColumn(e3);
if (0 !== t3 && t3 < i2) {
if (r2 = this._tokenizationStateStore.getBeginState(e3 - 1), r2)
break;
o2.push(this._textModel.getLineContent(e3)), i2 = t3;
}
}
r2 || (r2 = this._tokenizationSupport.getInitialState());
const s2 = this._textModel.getLanguageIdentifier();
let a2 = r2;
for (let e3 = o2.length - 1; e3 >= 0; e3--) {
a2 = Ne(s2, this._tokenizationSupport, o2[e3], a2).endState;
}
for (let i3 = t2; i3 <= n2; i3++) {
let t3 = this._textModel.getLineContent(i3), n3 = Ne(s2, this._tokenizationSupport, t3, a2);
e2.add(i3, n3.tokens), this._tokenizationStateStore.setFakeTokens(i3 - 1), a2 = n3.endState;
}
}
}
function Ne(e2, t2, n2, o2) {
let r2 = null;
if (t2)
try {
r2 = t2.tokenize2(n2, o2.clone(), 0);
} catch (e3) {
Object(i.e)(e3);
}
return r2 || (r2 = Object(Se.e)(e2.id, n2, o2, 0)), Ce.a.convertToEndOffset(r2.tokens, n2.length), r2;
}
var Ie = n(73), Oe = n(39), De = n(114), Ae = n(119), Re = n(16);
function Me(e2) {
const t2 = new pe();
return t2.acceptChunk(e2), t2.finish();
}
function Pe(e2, t2) {
return ("string" == typeof e2 ? Me(e2) : e2).create(t2);
}
let Fe = 0;
class We {
constructor(e2) {
this._source = e2, this._eos = false;
}
read() {
if (this._eos)
return null;
let e2 = [], t2 = 0, n2 = 0;
for (; ; ) {
let i2 = this._source.read();
if (null === i2)
return this._eos = true, 0 === t2 ? null : e2.join("");
if (i2.length > 0 && (e2[t2++] = i2, n2 += i2.length), n2 >= 65536)
return e2.join("");
}
}
}
const ze = () => {
throw new Error("Invalid change accessor");
};
class Be {
constructor() {
this._searchCanceledBrand = void 0;
}
}
function je(e2) {
return e2 instanceof Be ? null : e2;
}
Be.INSTANCE = new Be();
class Ve extends r.a {
constructor(e2, t2, n2, i2 = null, r2) {
super(), this._onWillDispose = this._register(new o.a()), this.onWillDispose = this._onWillDispose.event, this._onDidChangeDecorations = this._register(new Xe()), this.onDidChangeDecorations = this._onDidChangeDecorations.event, this._onDidChangeLanguage = this._register(new o.a()), this.onDidChangeLanguage = this._onDidChangeLanguage.event, this._onDidChangeLanguageConfiguration = this._register(new o.a()), this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event, this._onDidChangeTokens = this._register(new o.a()), this.onDidChangeTokens = this._onDidChangeTokens.event, this._onDidChangeOptions = this._register(new o.a()), this.onDidChangeOptions = this._onDidChangeOptions.event, this._onDidChangeAttached = this._register(new o.a()), this.onDidChangeAttached = this._onDidChangeAttached.event, this._eventEmitter = this._register(new Qe()), Fe++, this.id = "$model" + Fe, this.isForSimpleWidget = t2.isForSimpleWidget, this._associatedResource = null == i2 ? a.a.parse("inmemory://model/" + Fe) : i2, this._undoRedoService = r2, this._attachedEditorCount = 0, this._buffer = Pe(e2, t2.defaultEOL), this._options = Ve.resolveOptions(this._buffer, t2);
const l2 = this._buffer.getLineCount(), c2 = this._buffer.getValueLengthInRange(new d.a(1, 1, l2, this._buffer.getLineLength(l2) + 1), 0);
t2.largeFileOptimizations ? this._isTooLargeForTokenization = c2 > Ve.LARGE_FILE_SIZE_THRESHOLD || l2 > Ve.LARGE_FILE_LINE_COUNT_THRESHOLD : this._isTooLargeForTokenization = false, this._isTooLargeForSyncing = c2 > Ve.MODEL_SYNC_LIMIT, this._versionId = 1, this._alternativeVersionId = 1, this._initialUndoRedoSnapshot = null, this._isDisposed = false, this._isDisposing = false, this._languageIdentifier = n2 || Se.a, this._languageRegistryListener = Oe.a.onDidChange((e3) => {
e3.languageIdentifier.id === this._languageIdentifier.id && this._onDidChangeLanguageConfiguration.fire({});
}), this._instanceId = s.R(Fe), this._lastDecorationId = 0, this._decorations = Object.create(null), this._decorationsTree = new Ue(), this._commandManager = new p.a(this, r2), this._isUndoing = false, this._isRedoing = false, this._trimAutoWhitespaceLines = null, this._tokens = new ce.d(), this._tokens2 = new ce.e(), this._tokenization = new Le(this);
}
static resolveOptions(e2, t2) {
if (t2.detectIndentation) {
const n2 = f(e2, t2.tabSize, t2.insertSpaces);
return new u.e({tabSize: n2.tabSize, indentSize: n2.tabSize, insertSpaces: n2.insertSpaces, trimAutoWhitespace: t2.trimAutoWhitespace, defaultEOL: t2.defaultEOL});
}
return new u.e({tabSize: t2.tabSize, indentSize: t2.indentSize, insertSpaces: t2.insertSpaces, trimAutoWhitespace: t2.trimAutoWhitespace, defaultEOL: t2.defaultEOL});
}
onDidChangeRawContentFast(e2) {
return this._eventEmitter.fastEvent((t2) => e2(t2.rawContentChangedEvent));
}
onDidChangeContentFast(e2) {
return this._eventEmitter.fastEvent((t2) => e2(t2.contentChangedEvent));
}
onDidChangeContent(e2) {
return this._eventEmitter.slowEvent((t2) => e2(t2.contentChangedEvent));
}
dispose() {
this._isDisposing = true, this._onWillDispose.fire(), this._languageRegistryListener.dispose(), this._tokenization.dispose(), this._isDisposed = true, super.dispose(), this._isDisposing = false;
}
_assertNotDisposed() {
if (this._isDisposed)
throw new Error("Model is disposed!");
}
_emitContentChangedEvent(e2, t2) {
this._isDisposing || this._eventEmitter.fire(new we(e2, t2));
}
setValue(e2) {
if (this._assertNotDisposed(), null === e2)
return;
const t2 = Pe(e2, this._options.defaultEOL);
this.setValueFromTextBuffer(t2);
}
_createContentChanged2(e2, t2, n2, i2, o2, r2, s2) {
return {changes: [{range: e2, rangeOffset: t2, rangeLength: n2, text: i2}], eol: this._buffer.getEOL(), versionId: this.getVersionId(), isUndoing: o2, isRedoing: r2, isFlush: s2};
}
setValueFromTextBuffer(e2) {
if (this._assertNotDisposed(), null === e2)
return;
const t2 = this.getFullModelRange(), n2 = this.getValueLengthInRange(t2), i2 = this.getLineCount(), o2 = this.getLineMaxColumn(i2);
this._buffer = e2, this._increaseVersionId(), this._tokens.flush(), this._tokens2.flush(), this._decorations = Object.create(null), this._decorationsTree = new Ue(), this._commandManager.clear(), this._trimAutoWhitespaceLines = null, this._emitContentChangedEvent(new ve([new me()], this._versionId, false, false), this._createContentChanged2(new d.a(1, 1, i2, o2), 0, n2, this.getValue(), false, false, true));
}
setEOL(e2) {
this._assertNotDisposed();
const t2 = 1 === e2 ? "\r\n" : "\n";
if (this._buffer.getEOL() === t2)
return;
const n2 = this.getFullModelRange(), i2 = this.getValueLengthInRange(n2), o2 = this.getLineCount(), r2 = this.getLineMaxColumn(o2);
this._onBeforeEOLChange(), this._buffer.setEOL(t2), this._increaseVersionId(), this._onAfterEOLChange(), this._emitContentChangedEvent(new ve([new _e()], this._versionId, false, false), this._createContentChanged2(new d.a(1, 1, o2, r2), 0, i2, this.getValue(), false, false, false));
}
_onBeforeEOLChange() {
const e2 = this.getVersionId(), t2 = this._decorationsTree.search(0, false, false, e2);
this._ensureNodesHaveRanges(t2);
}
_onAfterEOLChange() {
const e2 = this.getVersionId(), t2 = this._decorationsTree.collectNodesPostOrder();
for (let n2 = 0, i2 = t2.length; n2 < i2; n2++) {
const i3 = t2[n2], o2 = i3.cachedAbsoluteStart - i3.start, r2 = this._buffer.getOffsetAt(i3.range.startLineNumber, i3.range.startColumn), s2 = this._buffer.getOffsetAt(i3.range.endLineNumber, i3.range.endColumn);
i3.cachedAbsoluteStart = r2, i3.cachedAbsoluteEnd = s2, i3.cachedVersionId = e2, i3.start = r2 - o2, i3.end = s2 - o2, W(i3);
}
}
onBeforeAttached() {
this._attachedEditorCount++, 1 === this._attachedEditorCount && this._onDidChangeAttached.fire(void 0);
}
onBeforeDetached() {
this._attachedEditorCount--, 0 === this._attachedEditorCount && this._onDidChangeAttached.fire(void 0);
}
isAttachedToEditor() {
return this._attachedEditorCount > 0;
}
getAttachedEditorCount() {
return this._attachedEditorCount;
}
isTooLargeForSyncing() {
return this._isTooLargeForSyncing;
}
isTooLargeForTokenization() {
return this._isTooLargeForTokenization;
}
isDisposed() {
return this._isDisposed;
}
isDominatedByLongLines() {
if (this._assertNotDisposed(), this.isTooLargeForTokenization())
return false;
let e2 = 0, t2 = 0;
const n2 = this._buffer.getLineCount();
for (let i2 = 1; i2 <= n2; i2++) {
const n3 = this._buffer.getLineLength(i2);
n3 >= 1e4 ? t2 += n3 : e2 += n3;
}
return t2 > e2;
}
get uri() {
return this._associatedResource;
}
getOptions() {
return this._assertNotDisposed(), this._options;
}
getFormattingOptions() {
return {tabSize: this._options.indentSize, insertSpaces: this._options.insertSpaces};
}
updateOptions(e2) {
this._assertNotDisposed();
let t2 = void 0 !== e2.tabSize ? e2.tabSize : this._options.tabSize, n2 = void 0 !== e2.indentSize ? e2.indentSize : this._options.indentSize, i2 = void 0 !== e2.insertSpaces ? e2.insertSpaces : this._options.insertSpaces, o2 = void 0 !== e2.trimAutoWhitespace ? e2.trimAutoWhitespace : this._options.trimAutoWhitespace, r2 = new u.e({tabSize: t2, indentSize: n2, insertSpaces: i2, defaultEOL: this._options.defaultEOL, trimAutoWhitespace: o2});
if (this._options.equals(r2))
return;
let s2 = this._options.createChangeEvent(r2);
this._options = r2, this._onDidChangeOptions.fire(s2);
}
detectIndentation(e2, t2) {
this._assertNotDisposed();
let n2 = f(this._buffer, t2, e2);
this.updateOptions({insertSpaces: n2.insertSpaces, tabSize: n2.tabSize, indentSize: n2.tabSize});
}
static _normalizeIndentationFromWhitespace(e2, t2, n2) {
let i2 = 0;
for (let n3 = 0; n3 < e2.length; n3++)
" " === e2.charAt(n3) ? i2 += t2 : i2++;
let o2 = "";
if (!n2) {
let e3 = Math.floor(i2 / t2);
i2 %= t2;
for (let t3 = 0; t3 < e3; t3++)
o2 += " ";
}
for (let e3 = 0; e3 < i2; e3++)
o2 += " ";
return o2;
}
static normalizeIndentation(e2, t2, n2) {
let i2 = s.w(e2);
return -1 === i2 && (i2 = e2.length), Ve._normalizeIndentationFromWhitespace(e2.substring(0, i2), t2, n2) + e2.substring(i2);
}
normalizeIndentation(e2) {
return this._assertNotDisposed(), Ve.normalizeIndentation(e2, this._options.indentSize, this._options.insertSpaces);
}
getVersionId() {
return this._assertNotDisposed(), this._versionId;
}
mightContainRTL() {
return this._buffer.mightContainRTL();
}
mightContainUnusualLineTerminators() {
return this._buffer.mightContainUnusualLineTerminators();
}
removeUnusualLineTerminators(e2 = null) {
const t2 = this.findMatches(s.a.source, false, true, false, null, false, 1073741824);
this._buffer.resetMightContainUnusualLineTerminators(), this.pushEditOperations(e2, t2.map((e3) => ({range: e3.range, text: null})), () => null);
}
mightContainNonBasicASCII() {
return this._buffer.mightContainNonBasicASCII();
}
getAlternativeVersionId() {
return this._assertNotDisposed(), this._alternativeVersionId;
}
getOffsetAt(e2) {
this._assertNotDisposed();
let t2 = this._validatePosition(e2.lineNumber, e2.column, 0);
return this._buffer.getOffsetAt(t2.lineNumber, t2.column);
}
getPositionAt(e2) {
this._assertNotDisposed();
let t2 = Math.min(this._buffer.getLength(), Math.max(0, e2));
return this._buffer.getPositionAt(t2);
}
_increaseVersionId() {
this._versionId = this._versionId + 1, this._alternativeVersionId = this._versionId;
}
_overwriteVersionId(e2) {
this._versionId = e2;
}
_overwriteAlternativeVersionId(e2) {
this._alternativeVersionId = e2;
}
_overwriteInitialUndoRedoSnapshot(e2) {
this._initialUndoRedoSnapshot = e2;
}
getValue(e2, t2 = false) {
this._assertNotDisposed();
const n2 = this.getFullModelRange(), i2 = this.getValueInRange(n2, e2);
return t2 ? this._buffer.getBOM() + i2 : i2;
}
createSnapshot(e2 = false) {
return new We(this._buffer.createSnapshot(e2));
}
getValueLength(e2, t2 = false) {
this._assertNotDisposed();
const n2 = this.getFullModelRange(), i2 = this.getValueLengthInRange(n2, e2);
return t2 ? this._buffer.getBOM().length + i2 : i2;
}
getValueInRange(e2, t2 = 0) {
return this._assertNotDisposed(), this._buffer.getValueInRange(this.validateRange(e2), t2);
}
getValueLengthInRange(e2, t2 = 0) {
return this._assertNotDisposed(), this._buffer.getValueLengthInRange(this.validateRange(e2), t2);
}
getCharacterCountInRange(e2, t2 = 0) {
return this._assertNotDisposed(), this._buffer.getCharacterCountInRange(this.validateRange(e2), t2);
}
getLineCount() {
return this._assertNotDisposed(), this._buffer.getLineCount();
}
getLineContent(e2) {
if (this._assertNotDisposed(), e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
return this._buffer.getLineContent(e2);
}
getLineLength(e2) {
if (this._assertNotDisposed(), e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
return this._buffer.getLineLength(e2);
}
getLinesContent() {
return this._assertNotDisposed(), this._buffer.getLinesContent();
}
getEOL() {
return this._assertNotDisposed(), this._buffer.getEOL();
}
getLineMinColumn(e2) {
return this._assertNotDisposed(), 1;
}
getLineMaxColumn(e2) {
if (this._assertNotDisposed(), e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
return this._buffer.getLineLength(e2) + 1;
}
getLineFirstNonWhitespaceColumn(e2) {
if (this._assertNotDisposed(), e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
return this._buffer.getLineFirstNonWhitespaceColumn(e2);
}
getLineLastNonWhitespaceColumn(e2) {
if (this._assertNotDisposed(), e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
return this._buffer.getLineLastNonWhitespaceColumn(e2);
}
_validateRangeRelaxedNoAllocations(e2) {
const t2 = this._buffer.getLineCount(), n2 = e2.startLineNumber, i2 = e2.startColumn;
let o2, r2;
if (n2 < 1)
o2 = 1, r2 = 1;
else if (n2 > t2)
o2 = t2, r2 = this.getLineMaxColumn(o2);
else if (o2 = 0 | n2, i2 <= 1)
r2 = 1;
else {
const e3 = this.getLineMaxColumn(o2);
r2 = i2 >= e3 ? e3 : 0 | i2;
}
const s2 = e2.endLineNumber, a2 = e2.endColumn;
let l2, c2;
if (s2 < 1)
l2 = 1, c2 = 1;
else if (s2 > t2)
l2 = t2, c2 = this.getLineMaxColumn(l2);
else if (l2 = 0 | s2, a2 <= 1)
c2 = 1;
else {
const e3 = this.getLineMaxColumn(l2);
c2 = a2 >= e3 ? e3 : 0 | a2;
}
return n2 === o2 && i2 === r2 && s2 === l2 && a2 === c2 && e2 instanceof d.a && !(e2 instanceof h.a) ? e2 : new d.a(o2, r2, l2, c2);
}
_isValidPosition(e2, t2, n2) {
if ("number" != typeof e2 || "number" != typeof t2)
return false;
if (isNaN(e2) || isNaN(t2))
return false;
if (e2 < 1 || t2 < 1)
return false;
if ((0 | e2) !== e2 || (0 | t2) !== t2)
return false;
if (e2 > this._buffer.getLineCount())
return false;
if (1 === t2)
return true;
if (t2 > this.getLineMaxColumn(e2))
return false;
if (1 === n2) {
const n3 = this._buffer.getLineCharCode(e2, t2 - 2);
if (s.F(n3))
return false;
}
return true;
}
_validatePosition(e2, t2, n2) {
const i2 = Math.floor("number" != typeof e2 || isNaN(e2) ? 1 : e2), o2 = Math.floor("number" != typeof t2 || isNaN(t2) ? 1 : t2), r2 = this._buffer.getLineCount();
if (i2 < 1)
return new c.a(1, 1);
if (i2 > r2)
return new c.a(r2, this.getLineMaxColumn(r2));
if (o2 <= 1)
return new c.a(i2, 1);
const a2 = this.getLineMaxColumn(i2);
if (o2 >= a2)
return new c.a(i2, a2);
if (1 === n2) {
const e3 = this._buffer.getLineCharCode(i2, o2 - 2);
if (s.F(e3))
return new c.a(i2, o2 - 1);
}
return new c.a(i2, o2);
}
validatePosition(e2) {
return this._assertNotDisposed(), e2 instanceof c.a && this._isValidPosition(e2.lineNumber, e2.column, 1) ? e2 : this._validatePosition(e2.lineNumber, e2.column, 1);
}
_isValidRange(e2, t2) {
const n2 = e2.startLineNumber, i2 = e2.startColumn, o2 = e2.endLineNumber, r2 = e2.endColumn;
if (!this._isValidPosition(n2, i2, 0))
return false;
if (!this._isValidPosition(o2, r2, 0))
return false;
if (1 === t2) {
const e3 = i2 > 1 ? this._buffer.getLineCharCode(n2, i2 - 2) : 0, t3 = r2 > 1 && r2 <= this._buffer.getLineLength(o2) ? this._buffer.getLineCharCode(o2, r2 - 2) : 0, a2 = s.F(e3), l2 = s.F(t3);
return !a2 && !l2;
}
return true;
}
validateRange(e2) {
if (this._assertNotDisposed(), e2 instanceof d.a && !(e2 instanceof h.a) && this._isValidRange(e2, 1))
return e2;
const t2 = this._validatePosition(e2.startLineNumber, e2.startColumn, 0), n2 = this._validatePosition(e2.endLineNumber, e2.endColumn, 0), i2 = t2.lineNumber, o2 = t2.column, r2 = n2.lineNumber, a2 = n2.column;
{
const e3 = o2 > 1 ? this._buffer.getLineCharCode(i2, o2 - 2) : 0, t3 = a2 > 1 && a2 <= this._buffer.getLineLength(r2) ? this._buffer.getLineCharCode(r2, a2 - 2) : 0, n3 = s.F(e3), l2 = s.F(t3);
return n3 || l2 ? i2 === r2 && o2 === a2 ? new d.a(i2, o2 - 1, r2, a2 - 1) : n3 && l2 ? new d.a(i2, o2 - 1, r2, a2 + 1) : n3 ? new d.a(i2, o2 - 1, r2, a2) : new d.a(i2, o2, r2, a2 + 1) : new d.a(i2, o2, r2, a2);
}
}
modifyPosition(e2, t2) {
this._assertNotDisposed();
let n2 = this.getOffsetAt(e2) + t2;
return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, n2)));
}
getFullModelRange() {
this._assertNotDisposed();
const e2 = this.getLineCount();
return new d.a(1, 1, e2, this.getLineMaxColumn(e2));
}
findMatchesLineByLine(e2, t2, n2, i2) {
return this._buffer.findMatchesLineByLine(e2, t2, n2, i2);
}
findMatches(e2, t2, n2, i2, o2, r2, s2 = 999) {
this._assertNotDisposed();
let a2 = null;
null !== t2 && (Array.isArray(t2) || (t2 = [t2]), t2.every((e3) => d.a.isIRange(e3)) && (a2 = t2.map((e3) => this.validateRange(e3)))), null === a2 && (a2 = [this.getFullModelRange()]), a2 = a2.sort((e3, t3) => e3.startLineNumber - t3.startLineNumber || e3.startColumn - t3.startColumn);
const l2 = [];
let c2;
if (l2.push(a2.reduce((e3, t3) => d.a.areIntersecting(e3, t3) ? e3.plusRange(t3) : (l2.push(e3), t3))), !n2 && e2.indexOf("\n") < 0) {
const t3 = new ee.a(e2, n2, i2, o2).parseSearchRequest();
if (!t3)
return [];
c2 = (e3) => this.findMatchesLineByLine(e3, t3, r2, s2);
} else
c2 = (t3) => ee.c.findMatches(this, new ee.a(e2, n2, i2, o2), t3, r2, s2);
return l2.map(c2).reduce((e3, t3) => e3.concat(t3), []);
}
findNextMatch(e2, t2, n2, i2, o2, r2) {
this._assertNotDisposed();
const s2 = this.validatePosition(t2);
if (!n2 && e2.indexOf("\n") < 0) {
const t3 = new ee.a(e2, n2, i2, o2).parseSearchRequest();
if (!t3)
return null;
const a2 = this.getLineCount();
let l2 = new d.a(s2.lineNumber, s2.column, a2, this.getLineMaxColumn(a2)), c2 = this.findMatchesLineByLine(l2, t3, r2, 1);
return ee.c.findNextMatch(this, new ee.a(e2, n2, i2, o2), s2, r2), c2.length > 0 ? c2[0] : (l2 = new d.a(1, 1, s2.lineNumber, this.getLineMaxColumn(s2.lineNumber)), c2 = this.findMatchesLineByLine(l2, t3, r2, 1), c2.length > 0 ? c2[0] : null);
}
return ee.c.findNextMatch(this, new ee.a(e2, n2, i2, o2), s2, r2);
}
findPreviousMatch(e2, t2, n2, i2, o2, r2) {
this._assertNotDisposed();
const s2 = this.validatePosition(t2);
return ee.c.findPreviousMatch(this, new ee.a(e2, n2, i2, o2), s2, r2);
}
pushStackElement() {
this._commandManager.pushStackElement();
}
pushEOL(e2) {
if (("\n" === this.getEOL() ? 0 : 1) !== e2)
try {
this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager.pushEOL(e2);
} finally {
this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit();
}
}
_validateEditOperation(e2) {
return e2 instanceof u.f ? e2 : new u.f(e2.identifier || null, this.validateRange(e2.range), e2.text, e2.forceMoveMarkers || false, e2.isAutoWhitespaceEdit || false, e2._isTracked || false);
}
_validateEditOperations(e2) {
const t2 = [];
for (let n2 = 0, i2 = e2.length; n2 < i2; n2++)
t2[n2] = this._validateEditOperation(e2[n2]);
return t2;
}
pushEditOperations(e2, t2, n2) {
try {
return this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), this._pushEditOperations(e2, this._validateEditOperations(t2), n2);
} finally {
this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit();
}
}
_pushEditOperations(e2, t2, n2) {
if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) {
let n3 = t2.map((e3) => ({range: this.validateRange(e3.range), text: e3.text})), i2 = true;
if (e2)
for (let t3 = 0, o2 = e2.length; t3 < o2; t3++) {
let o3 = e2[t3], r2 = false;
for (let e3 = 0, t4 = n3.length; e3 < t4; e3++) {
let t5 = n3[e3].range, i3 = t5.startLineNumber > o3.endLineNumber, s2 = o3.startLineNumber > t5.endLineNumber;
if (!i3 && !s2) {
r2 = true;
break;
}
}
if (!r2) {
i2 = false;
break;
}
}
if (i2)
for (let e3 = 0, i3 = this._trimAutoWhitespaceLines.length; e3 < i3; e3++) {
let i4 = this._trimAutoWhitespaceLines[e3], o2 = this.getLineMaxColumn(i4), r2 = true;
for (let e4 = 0, t3 = n3.length; e4 < t3; e4++) {
let t4 = n3[e4].range, s2 = n3[e4].text;
if (!(i4 < t4.startLineNumber || i4 > t4.endLineNumber) && !(i4 === t4.startLineNumber && t4.startColumn === o2 && t4.isEmpty() && s2 && s2.length > 0 && "\n" === s2.charAt(0) || i4 === t4.startLineNumber && 1 === t4.startColumn && t4.isEmpty() && s2 && s2.length > 0 && "\n" === s2.charAt(s2.length - 1))) {
r2 = false;
break;
}
}
if (r2) {
const e4 = new d.a(i4, 1, i4, o2);
t2.push(new u.f(null, e4, null, false, false, false));
}
}
this._trimAutoWhitespaceLines = null;
}
return null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager.pushEditOperation(e2, t2, n2);
}
_applyUndo(e2, t2, n2, i2) {
const o2 = e2.map((e3) => {
const t3 = this.getPositionAt(e3.newPosition), n3 = this.getPositionAt(e3.newEnd);
return {range: new d.a(t3.lineNumber, t3.column, n3.lineNumber, n3.column), text: e3.oldText};
});
this._applyUndoRedoEdits(o2, t2, true, false, n2, i2);
}
_applyRedo(e2, t2, n2, i2) {
const o2 = e2.map((e3) => {
const t3 = this.getPositionAt(e3.oldPosition), n3 = this.getPositionAt(e3.oldEnd);
return {range: new d.a(t3.lineNumber, t3.column, n3.lineNumber, n3.column), text: e3.newText};
});
this._applyUndoRedoEdits(o2, t2, false, true, n2, i2);
}
_applyUndoRedoEdits(e2, t2, n2, i2, o2, r2) {
try {
this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), this._isUndoing = n2, this._isRedoing = i2, this.applyEdits(e2, false), this.setEOL(t2), this._overwriteAlternativeVersionId(o2);
} finally {
this._isUndoing = false, this._isRedoing = false, this._eventEmitter.endDeferredEmit(r2), this._onDidChangeDecorations.endDeferredEmit();
}
}
applyEdits(e2, t2 = false) {
try {
this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit();
const n2 = this._validateEditOperations(e2);
return this._doApplyEdits(n2, t2);
} finally {
this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit();
}
}
_doApplyEdits(e2, t2) {
const n2 = this._buffer.getLineCount(), i2 = this._buffer.applyEdits(e2, this._options.trimAutoWhitespace, t2), o2 = this._buffer.getLineCount(), r2 = i2.changes;
if (this._trimAutoWhitespaceLines = i2.trimAutoWhitespaceLineNumbers, 0 !== r2.length) {
let e3 = [], t3 = n2;
for (let n3 = 0, i3 = r2.length; n3 < i3; n3++) {
const i4 = r2[n3], [s2, a2, l2] = Object(ce.f)(i4.text);
this._tokens.acceptEdit(i4.range, s2, a2), this._tokens2.acceptEdit(i4.range, s2, a2, l2, i4.text.length > 0 ? i4.text.charCodeAt(0) : 0), this._onDidChangeDecorations.fire(), this._decorationsTree.acceptReplace(i4.rangeOffset, i4.rangeLength, i4.text.length, i4.forceMoveMarkers);
const c2 = i4.range.startLineNumber, d2 = i4.range.endLineNumber, h2 = d2 - c2, u2 = s2, p2 = Math.min(h2, u2), m2 = u2 - h2;
for (let n4 = p2; n4 >= 0; n4--) {
const i5 = c2 + n4, r3 = o2 - t3 - m2 + i5;
e3.push(new ge(i5, this.getLineContent(r3)));
}
if (p2 < h2) {
const t4 = c2 + p2;
e3.push(new fe(t4 + 1, d2));
}
if (p2 < u2) {
const n4 = c2 + p2, i5 = u2 - p2, r3 = o2 - t3 - i5 + n4 + 1;
let s3 = [];
for (let e4 = 0; e4 < i5; e4++) {
let t4 = r3 + e4;
s3[t4 - r3] = this.getLineContent(t4);
}
e3.push(new be(n4 + 1, c2 + u2, s3));
}
t3 += m2;
}
this._increaseVersionId(), this._emitContentChangedEvent(new ve(e3, this.getVersionId(), this._isUndoing, this._isRedoing), {changes: r2, eol: this._buffer.getEOL(), versionId: this.getVersionId(), isUndoing: this._isUndoing, isRedoing: this._isRedoing, isFlush: false});
}
return null === i2.reverseEdits ? void 0 : i2.reverseEdits;
}
undo() {
this._undoRedoService.undo(this.uri);
}
canUndo() {
return this._undoRedoService.canUndo(this.uri);
}
redo() {
this._undoRedoService.redo(this.uri);
}
canRedo() {
return this._undoRedoService.canRedo(this.uri);
}
changeDecorations(e2, t2 = 0) {
this._assertNotDisposed();
try {
return this._onDidChangeDecorations.beginDeferredEmit(), this._changeDecorations(t2, e2);
} finally {
this._onDidChangeDecorations.endDeferredEmit();
}
}
_changeDecorations(e2, t2) {
let n2 = {addDecoration: (t3, n3) => this._deltaDecorationsImpl(e2, [], [{range: t3, options: n3}])[0], changeDecoration: (e3, t3) => {
this._changeDecorationImpl(e3, t3);
}, changeDecorationOptions: (e3, t3) => {
this._changeDecorationOptionsImpl(e3, Ze(t3));
}, removeDecoration: (t3) => {
this._deltaDecorationsImpl(e2, [t3], []);
}, deltaDecorations: (t3, n3) => 0 === t3.length && 0 === n3.length ? [] : this._deltaDecorationsImpl(e2, t3, n3)}, o2 = null;
try {
o2 = t2(n2);
} catch (e3) {
Object(i.e)(e3);
}
return n2.addDecoration = ze, n2.changeDecoration = ze, n2.changeDecorationOptions = ze, n2.removeDecoration = ze, n2.deltaDecorations = ze, o2;
}
deltaDecorations(e2, t2, n2 = 0) {
if (this._assertNotDisposed(), e2 || (e2 = []), 0 === e2.length && 0 === t2.length)
return [];
try {
return this._onDidChangeDecorations.beginDeferredEmit(), this._deltaDecorationsImpl(n2, e2, t2);
} finally {
this._onDidChangeDecorations.endDeferredEmit();
}
}
_getTrackedRange(e2) {
return this.getDecorationRange(e2);
}
_setTrackedRange(e2, t2, n2) {
const i2 = e2 ? this._decorations[e2] : null;
if (!i2)
return t2 ? this._deltaDecorationsImpl(0, [], [{range: t2, options: Ye[n2]}])[0] : null;
if (!t2)
return this._decorationsTree.delete(i2), delete this._decorations[i2.id], null;
const o2 = this._validateRangeRelaxedNoAllocations(t2), r2 = this._buffer.getOffsetAt(o2.startLineNumber, o2.startColumn), s2 = this._buffer.getOffsetAt(o2.endLineNumber, o2.endColumn);
return this._decorationsTree.delete(i2), i2.reset(this.getVersionId(), r2, s2, o2), i2.setOptions(Ye[n2]), this._decorationsTree.insert(i2), i2.id;
}
removeAllDecorationsWithOwnerId(e2) {
if (this._isDisposed)
return;
const t2 = this._decorationsTree.collectNodesFromOwner(e2);
for (let e3 = 0, n2 = t2.length; e3 < n2; e3++) {
const n3 = t2[e3];
this._decorationsTree.delete(n3), delete this._decorations[n3.id];
}
}
getDecorationOptions(e2) {
const t2 = this._decorations[e2];
return t2 ? t2.options : null;
}
getDecorationRange(e2) {
const t2 = this._decorations[e2];
if (!t2)
return null;
const n2 = this.getVersionId();
return t2.cachedVersionId !== n2 && this._decorationsTree.resolveNode(t2, n2), null === t2.range && (t2.range = this._getRangeAt(t2.cachedAbsoluteStart, t2.cachedAbsoluteEnd)), t2.range;
}
getLineDecorations(e2, t2 = 0, n2 = false) {
return e2 < 1 || e2 > this.getLineCount() ? [] : this.getLinesDecorations(e2, e2, t2, n2);
}
getLinesDecorations(e2, t2, n2 = 0, i2 = false) {
let o2 = this.getLineCount(), r2 = Math.min(o2, Math.max(1, e2)), s2 = Math.min(o2, Math.max(1, t2)), a2 = this.getLineMaxColumn(s2);
return this._getDecorationsInRange(new d.a(r2, 1, s2, a2), n2, i2);
}
getDecorationsInRange(e2, t2 = 0, n2 = false) {
let i2 = this.validateRange(e2);
return this._getDecorationsInRange(i2, t2, n2);
}
getOverviewRulerDecorations(e2 = 0, t2 = false) {
const n2 = this.getVersionId(), i2 = this._decorationsTree.search(e2, t2, true, n2);
return this._ensureNodesHaveRanges(i2);
}
getAllDecorations(e2 = 0, t2 = false) {
const n2 = this.getVersionId(), i2 = this._decorationsTree.search(e2, t2, false, n2);
return this._ensureNodesHaveRanges(i2);
}
_getDecorationsInRange(e2, t2, n2) {
const i2 = this._buffer.getOffsetAt(e2.startLineNumber, e2.startColumn), o2 = this._buffer.getOffsetAt(e2.endLineNumber, e2.endColumn), r2 = this.getVersionId(), s2 = this._decorationsTree.intervalSearch(i2, o2, t2, n2, r2);
return this._ensureNodesHaveRanges(s2);
}
_ensureNodesHaveRanges(e2) {
for (let t2 = 0, n2 = e2.length; t2 < n2; t2++) {
const n3 = e2[t2];
null === n3.range && (n3.range = this._getRangeAt(n3.cachedAbsoluteStart, n3.cachedAbsoluteEnd));
}
return e2;
}
_getRangeAt(e2, t2) {
return this._buffer.getRangeAt(e2, t2 - e2);
}
_changeDecorationImpl(e2, t2) {
const n2 = this._decorations[e2];
if (!n2)
return;
const i2 = this._validateRangeRelaxedNoAllocations(t2), o2 = this._buffer.getOffsetAt(i2.startLineNumber, i2.startColumn), r2 = this._buffer.getOffsetAt(i2.endLineNumber, i2.endColumn);
this._decorationsTree.delete(n2), n2.reset(this.getVersionId(), o2, r2, i2), this._decorationsTree.insert(n2), this._onDidChangeDecorations.checkAffectedAndFire(n2.options);
}
_changeDecorationOptionsImpl(e2, t2) {
const n2 = this._decorations[e2];
if (!n2)
return;
const i2 = !(!n2.options.overviewRuler || !n2.options.overviewRuler.color), o2 = !(!t2.overviewRuler || !t2.overviewRuler.color);
this._onDidChangeDecorations.checkAffectedAndFire(n2.options), this._onDidChangeDecorations.checkAffectedAndFire(t2), i2 !== o2 ? (this._decorationsTree.delete(n2), n2.setOptions(t2), this._decorationsTree.insert(n2)) : n2.setOptions(t2);
}
_deltaDecorationsImpl(e2, t2, n2) {
const i2 = this.getVersionId(), o2 = t2.length;
let r2 = 0;
const s2 = n2.length;
let a2 = 0, l2 = new Array(s2);
for (; r2 < o2 || a2 < s2; ) {
let c2 = null;
if (r2 < o2) {
do {
c2 = this._decorations[t2[r2++]];
} while (!c2 && r2 < o2);
c2 && (this._decorationsTree.delete(c2), this._onDidChangeDecorations.checkAffectedAndFire(c2.options));
}
if (a2 < s2) {
if (!c2) {
const e3 = ++this._lastDecorationId, t4 = `${this._instanceId};${e3}`;
c2 = new T(t4, 0, 0), this._decorations[t4] = c2;
}
const t3 = n2[a2], o3 = this._validateRangeRelaxedNoAllocations(t3.range), r3 = Ze(t3.options), s3 = this._buffer.getOffsetAt(o3.startLineNumber, o3.startColumn), d2 = this._buffer.getOffsetAt(o3.endLineNumber, o3.endColumn);
c2.ownerId = e2, c2.reset(i2, s3, d2, o3), c2.setOptions(r3), this._onDidChangeDecorations.checkAffectedAndFire(r3), this._decorationsTree.insert(c2), l2[a2] = c2.id, a2++;
} else
c2 && delete this._decorations[c2.id];
}
return l2;
}
setTokens(e2) {
if (0 === e2.length)
return;
let t2 = [];
for (let n2 = 0, i2 = e2.length; n2 < i2; n2++) {
const i3 = e2[n2];
let o2 = 0, r2 = 0, s2 = false;
for (let e3 = 0, t3 = i3.tokens.length; e3 < t3; e3++) {
const t4 = i3.startLineNumber + e3;
if (s2)
this._tokens.setTokens(this._languageIdentifier.id, t4 - 1, this._buffer.getLineLength(t4), i3.tokens[e3], false), r2 = t4;
else {
this._tokens.setTokens(this._languageIdentifier.id, t4 - 1, this._buffer.getLineLength(t4), i3.tokens[e3], true) && (s2 = true, o2 = t4, r2 = t4);
}
}
s2 && t2.push({fromLineNumber: o2, toLineNumber: r2});
}
t2.length > 0 && this._emitModelTokensChangedEvent({tokenizationSupportChanged: false, semanticTokensApplied: false, ranges: t2});
}
setSemanticTokens(e2, t2) {
this._tokens2.set(e2, t2), this._emitModelTokensChangedEvent({tokenizationSupportChanged: false, semanticTokensApplied: null !== e2, ranges: [{fromLineNumber: 1, toLineNumber: this.getLineCount()}]});
}
hasSemanticTokens() {
return this._tokens2.isComplete();
}
setPartialSemanticTokens(e2, t2) {
if (this.hasSemanticTokens())
return;
const n2 = this._tokens2.setPartial(e2, t2);
this._emitModelTokensChangedEvent({tokenizationSupportChanged: false, semanticTokensApplied: true, ranges: [{fromLineNumber: n2.startLineNumber, toLineNumber: n2.endLineNumber}]});
}
tokenizeViewport(e2, t2) {
e2 = Math.max(1, e2), t2 = Math.min(this._buffer.getLineCount(), t2), this._tokenization.tokenizeViewport(e2, t2);
}
clearTokens() {
this._tokens.flush(), this._emitModelTokensChangedEvent({tokenizationSupportChanged: true, semanticTokensApplied: false, ranges: [{fromLineNumber: 1, toLineNumber: this._buffer.getLineCount()}]});
}
_emitModelTokensChangedEvent(e2) {
this._isDisposing || this._onDidChangeTokens.fire(e2);
}
resetTokenization() {
this._tokenization.reset();
}
forceTokenization(e2) {
if (e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
this._tokenization.forceTokenization(e2);
}
isCheapToTokenize(e2) {
return this._tokenization.isCheapToTokenize(e2);
}
tokenizeIfCheap(e2) {
this.isCheapToTokenize(e2) && this.forceTokenization(e2);
}
getLineTokens(e2) {
if (e2 < 1 || e2 > this.getLineCount())
throw new Error("Illegal value for lineNumber");
return this._getLineTokens(e2);
}
_getLineTokens(e2) {
const t2 = this.getLineContent(e2), n2 = this._tokens.getTokens(this._languageIdentifier.id, e2 - 1, t2);
return this._tokens2.addSemanticTokens(e2, n2);
}
getLanguageIdentifier() {
return this._languageIdentifier;
}
getModeId() {
return this._languageIdentifier.language;
}
setMode(e2) {
if (this._languageIdentifier.id === e2.id)
return;
let t2 = {oldLanguage: this._languageIdentifier.language, newLanguage: e2.language};
this._languageIdentifier = e2, this._onDidChangeLanguage.fire(t2), this._onDidChangeLanguageConfiguration.fire({});
}
getLanguageIdAtPosition(e2, t2) {
const n2 = this.validatePosition(new c.a(e2, t2)), i2 = this.getLineTokens(n2.lineNumber);
return i2.getLanguageId(i2.findTokenIndexAtOffset(n2.column - 1));
}
getWordAtPosition(e2) {
this._assertNotDisposed();
const t2 = this.validatePosition(e2), n2 = this.getLineContent(t2.lineNumber), i2 = this._getLineTokens(t2.lineNumber), o2 = i2.findTokenIndexAtOffset(t2.column - 1), [r2, s2] = Ve._findLanguageBoundaries(i2, o2), a2 = Object(Ie.d)(t2.column, Oe.a.getWordDefinition(i2.getLanguageId(o2)), n2.substring(r2, s2), r2);
if (a2 && a2.startColumn <= e2.column && e2.column <= a2.endColumn)
return a2;
if (o2 > 0 && r2 === t2.column - 1) {
const [r3, s3] = Ve._findLanguageBoundaries(i2, o2 - 1), a3 = Object(Ie.d)(t2.column, Oe.a.getWordDefinition(i2.getLanguageId(o2 - 1)), n2.substring(r3, s3), r3);
if (a3 && a3.startColumn <= e2.column && e2.column <= a3.endColumn)
return a3;
}
return null;
}
static _findLanguageBoundaries(e2, t2) {
const n2 = e2.getLanguageId(t2);
let i2 = 0;
for (let o3 = t2; o3 >= 0 && e2.getLanguageId(o3) === n2; o3--)
i2 = e2.getStartOffset(o3);
let o2 = e2.getLineContent().length;
for (let i3 = t2, r2 = e2.getCount(); i3 < r2 && e2.getLanguageId(i3) === n2; i3++)
o2 = e2.getEndOffset(i3);
return [i2, o2];
}
getWordUntilPosition(e2) {
const t2 = this.getWordAtPosition(e2);
return t2 ? {word: t2.word.substr(0, e2.column - t2.startColumn), startColumn: t2.startColumn, endColumn: e2.column} : {word: "", startColumn: e2.column, endColumn: e2.column};
}
findMatchingBracketUp(e2, t2) {
let n2 = e2.toLowerCase(), i2 = this.validatePosition(t2), o2 = this._getLineTokens(i2.lineNumber), r2 = o2.getLanguageId(o2.findTokenIndexAtOffset(i2.column - 1)), s2 = Oe.a.getBracketsSupport(r2);
if (!s2)
return null;
let a2 = s2.textIsBracket[n2];
return a2 ? je(this._findMatchingBracketUp(a2, i2, null)) : null;
}
matchBracket(e2) {
return this._matchBracket(this.validatePosition(e2));
}
_matchBracket(e2) {
const t2 = e2.lineNumber, n2 = this._getLineTokens(t2), i2 = n2.getCount(), o2 = this._buffer.getLineContent(t2), r2 = n2.findTokenIndexAtOffset(e2.column - 1);
if (r2 < 0)
return null;
const s2 = Oe.a.getBracketsSupport(n2.getLanguageId(r2));
if (s2 && !Object(De.b)(n2.getStandardTokenType(r2))) {
let i3 = Math.max(0, e2.column - 1 - s2.maxBracketLength);
for (let e3 = r2 - 1; e3 >= 0; e3--) {
const t3 = n2.getEndOffset(e3);
if (t3 <= i3)
break;
Object(De.b)(n2.getStandardTokenType(e3)) && (i3 = t3);
}
const a2 = Math.min(o2.length, e2.column - 1 + s2.maxBracketLength);
let l2 = null;
for (; ; ) {
const n3 = Ae.a.findNextBracketInRange(s2.forwardRegex, t2, o2, i3, a2);
if (!n3)
break;
if (n3.startColumn <= e2.column && e2.column <= n3.endColumn) {
const e3 = o2.substring(n3.startColumn - 1, n3.endColumn - 1).toLowerCase(), t3 = this._matchFoundBracket(n3, s2.textIsBracket[e3], s2.textIsOpenBracket[e3], null);
if (t3) {
if (t3 instanceof Be)
return null;
l2 = t3;
}
}
i3 = n3.endColumn - 1;
}
if (l2)
return l2;
}
if (r2 > 0 && n2.getStartOffset(r2) === e2.column - 1) {
const s3 = r2 - 1, a2 = Oe.a.getBracketsSupport(n2.getLanguageId(s3));
if (a2 && !Object(De.b)(n2.getStandardTokenType(s3))) {
const r3 = Math.max(0, e2.column - 1 - a2.maxBracketLength);
let l2 = Math.min(o2.length, e2.column - 1 + a2.maxBracketLength);
for (let e3 = s3 + 1; e3 < i2; e3++) {
const t3 = n2.getStartOffset(e3);
if (t3 >= l2)
break;
Object(De.b)(n2.getStandardTokenType(e3)) && (l2 = t3);
}
const c2 = Ae.a.findPrevBracketInRange(a2.reversedRegex, t2, o2, r3, l2);
if (c2 && c2.startColumn <= e2.column && e2.column <= c2.endColumn) {
const e3 = o2.substring(c2.startColumn - 1, c2.endColumn - 1).toLowerCase(), t3 = this._matchFoundBracket(c2, a2.textIsBracket[e3], a2.textIsOpenBracket[e3], null);
if (t3)
return t3 instanceof Be ? null : t3;
}
}
}
return null;
}
_matchFoundBracket(e2, t2, n2, i2) {
if (!t2)
return null;
const o2 = n2 ? this._findMatchingBracketDown(t2, e2.getEndPosition(), i2) : this._findMatchingBracketUp(t2, e2.getStartPosition(), i2);
return o2 ? o2 instanceof Be ? o2 : [e2, o2] : null;
}
_findMatchingBracketUp(e2, t2, n2) {
const i2 = e2.languageIdentifier.id, o2 = e2.reversedRegex;
let r2 = -1, s2 = 0;
const a2 = (t3, i3, a3, l2) => {
for (; ; ) {
if (n2 && ++s2 % 100 == 0 && !n2())
return Be.INSTANCE;
const c2 = Ae.a.findPrevBracketInRange(o2, t3, i3, a3, l2);
if (!c2)
break;
const d2 = i3.substring(c2.startColumn - 1, c2.endColumn - 1).toLowerCase();
if (e2.isOpen(d2) ? r2++ : e2.isClose(d2) && r2--, 0 === r2)
return c2;
l2 = c2.startColumn - 1;
}
return null;
};
for (let e3 = t2.lineNumber; e3 >= 1; e3--) {
const n3 = this._getLineTokens(e3), o3 = n3.getCount(), r3 = this._buffer.getLineContent(e3);
let s3 = o3 - 1, l2 = r3.length, c2 = r3.length;
e3 === t2.lineNumber && (s3 = n3.findTokenIndexAtOffset(t2.column - 1), l2 = t2.column - 1, c2 = t2.column - 1);
let d2 = true;
for (; s3 >= 0; s3--) {
const t3 = n3.getLanguageId(s3) === i2 && !Object(De.b)(n3.getStandardTokenType(s3));
if (t3)
d2 ? l2 = n3.getStartOffset(s3) : (l2 = n3.getStartOffset(s3), c2 = n3.getEndOffset(s3));
else if (d2 && l2 !== c2) {
const t4 = a2(e3, r3, l2, c2);
if (t4)
return t4;
}
d2 = t3;
}
if (d2 && l2 !== c2) {
const t3 = a2(e3, r3, l2, c2);
if (t3)
return t3;
}
}
return null;
}
_findMatchingBracketDown(e2, t2, n2) {
const i2 = e2.languageIdentifier.id, o2 = e2.forwardRegex;
let r2 = 1, s2 = 0;
const a2 = (t3, i3, a3, l3) => {
for (; ; ) {
if (n2 && ++s2 % 100 == 0 && !n2())
return Be.INSTANCE;
const c2 = Ae.a.findNextBracketInRange(o2, t3, i3, a3, l3);
if (!c2)
break;
const d2 = i3.substring(c2.startColumn - 1, c2.endColumn - 1).toLowerCase();
if (e2.isOpen(d2) ? r2++ : e2.isClose(d2) && r2--, 0 === r2)
return c2;
a3 = c2.endColumn - 1;
}
return null;
}, l2 = this.getLineCount();
for (let e3 = t2.lineNumber; e3 <= l2; e3++) {
const n3 = this._getLineTokens(e3), o3 = n3.getCount(), r3 = this._buffer.getLineContent(e3);
let s3 = 0, l3 = 0, c2 = 0;
e3 === t2.lineNumber && (s3 = n3.findTokenIndexAtOffset(t2.column - 1), l3 = t2.column - 1, c2 = t2.column - 1);
let d2 = true;
for (; s3 < o3; s3++) {
const t3 = n3.getLanguageId(s3) === i2 && !Object(De.b)(n3.getStandardTokenType(s3));
if (t3)
d2 || (l3 = n3.getStartOffset(s3)), c2 = n3.getEndOffset(s3);
else if (d2 && l3 !== c2) {
const t4 = a2(e3, r3, l3, c2);
if (t4)
return t4;
}
d2 = t3;
}
if (d2 && l3 !== c2) {
const t3 = a2(e3, r3, l3, c2);
if (t3)
return t3;
}
}
return null;
}
findPrevBracket(e2) {
const t2 = this.validatePosition(e2);
let n2 = -1, i2 = null;
for (let e3 = t2.lineNumber; e3 >= 1; e3--) {
const o2 = this._getLineTokens(e3), r2 = o2.getCount(), s2 = this._buffer.getLineContent(e3);
let a2 = r2 - 1, l2 = s2.length, c2 = s2.length;
if (e3 === t2.lineNumber) {
a2 = o2.findTokenIndexAtOffset(t2.column - 1), l2 = t2.column - 1, c2 = t2.column - 1;
const e4 = o2.getLanguageId(a2);
n2 !== e4 && (n2 = e4, i2 = Oe.a.getBracketsSupport(n2));
}
let d2 = true;
for (; a2 >= 0; a2--) {
const t3 = o2.getLanguageId(a2);
if (n2 !== t3) {
if (i2 && d2 && l2 !== c2) {
const t4 = Ae.a.findPrevBracketInRange(i2.reversedRegex, e3, s2, l2, c2);
if (t4)
return this._toFoundBracket(i2, t4);
d2 = false;
}
n2 = t3, i2 = Oe.a.getBracketsSupport(n2);
}
const r3 = !!i2 && !Object(De.b)(o2.getStandardTokenType(a2));
if (r3)
d2 ? l2 = o2.getStartOffset(a2) : (l2 = o2.getStartOffset(a2), c2 = o2.getEndOffset(a2));
else if (i2 && d2 && l2 !== c2) {
const t4 = Ae.a.findPrevBracketInRange(i2.reversedRegex, e3, s2, l2, c2);
if (t4)
return this._toFoundBracket(i2, t4);
}
d2 = r3;
}
if (i2 && d2 && l2 !== c2) {
const t3 = Ae.a.findPrevBracketInRange(i2.reversedRegex, e3, s2, l2, c2);
if (t3)
return this._toFoundBracket(i2, t3);
}
}
return null;
}
findNextBracket(e2) {
const t2 = this.validatePosition(e2), n2 = this.getLineCount();
let i2 = -1, o2 = null;
for (let e3 = t2.lineNumber; e3 <= n2; e3++) {
const n3 = this._getLineTokens(e3), r2 = n3.getCount(), s2 = this._buffer.getLineContent(e3);
let a2 = 0, l2 = 0, c2 = 0;
if (e3 === t2.lineNumber) {
a2 = n3.findTokenIndexAtOffset(t2.column - 1), l2 = t2.column - 1, c2 = t2.column - 1;
const e4 = n3.getLanguageId(a2);
i2 !== e4 && (i2 = e4, o2 = Oe.a.getBracketsSupport(i2));
}
let d2 = true;
for (; a2 < r2; a2++) {
const t3 = n3.getLanguageId(a2);
if (i2 !== t3) {
if (o2 && d2 && l2 !== c2) {
const t4 = Ae.a.findNextBracketInRange(o2.forwardRegex, e3, s2, l2, c2);
if (t4)
return this._toFoundBracket(o2, t4);
d2 = false;
}
i2 = t3, o2 = Oe.a.getBracketsSupport(i2);
}
const r3 = !!o2 && !Object(De.b)(n3.getStandardTokenType(a2));
if (r3)
d2 || (l2 = n3.getStartOffset(a2)), c2 = n3.getEndOffset(a2);
else if (o2 && d2 && l2 !== c2) {
const t4 = Ae.a.findNextBracketInRange(o2.forwardRegex, e3, s2, l2, c2);
if (t4)
return this._toFoundBracket(o2, t4);
}
d2 = r3;
}
if (o2 && d2 && l2 !== c2) {
const t3 = Ae.a.findNextBracketInRange(o2.forwardRegex, e3, s2, l2, c2);
if (t3)
return this._toFoundBracket(o2, t3);
}
}
return null;
}
findEnclosingBrackets(e2, t2) {
let n2;
if (void 0 === t2)
n2 = null;
else {
const e3 = Date.now();
n2 = () => Date.now() - e3 <= t2;
}
const i2 = this.validatePosition(e2), o2 = this.getLineCount(), r2 = new Map();
let s2 = [];
const a2 = (e3, t3) => {
if (!r2.has(e3)) {
let n3 = [];
for (let e4 = 0, i3 = t3 ? t3.brackets.length : 0; e4 < i3; e4++)
n3[e4] = 0;
r2.set(e3, n3);
}
s2 = r2.get(e3);
};
let l2 = 0;
const c2 = (e3, t3, i3, o3, r3) => {
for (; ; ) {
if (n2 && ++l2 % 100 == 0 && !n2())
return Be.INSTANCE;
const a3 = Ae.a.findNextBracketInRange(e3.forwardRegex, t3, i3, o3, r3);
if (!a3)
break;
const c3 = i3.substring(a3.startColumn - 1, a3.endColumn - 1).toLowerCase(), d3 = e3.textIsBracket[c3];
if (d3 && (d3.isOpen(c3) ? s2[d3.index]++ : d3.isClose(c3) && s2[d3.index]--, -1 === s2[d3.index]))
return this._matchFoundBracket(a3, d3, false, n2);
o3 = a3.endColumn - 1;
}
return null;
};
let d2 = -1, h2 = null;
for (let e3 = i2.lineNumber; e3 <= o2; e3++) {
const t3 = this._getLineTokens(e3), n3 = t3.getCount(), o3 = this._buffer.getLineContent(e3);
let r3 = 0, s3 = 0, l3 = 0;
if (e3 === i2.lineNumber) {
r3 = t3.findTokenIndexAtOffset(i2.column - 1), s3 = i2.column - 1, l3 = i2.column - 1;
const e4 = t3.getLanguageId(r3);
d2 !== e4 && (d2 = e4, h2 = Oe.a.getBracketsSupport(d2), a2(d2, h2));
}
let u2 = true;
for (; r3 < n3; r3++) {
const n4 = t3.getLanguageId(r3);
if (d2 !== n4) {
if (h2 && u2 && s3 !== l3) {
const t4 = c2(h2, e3, o3, s3, l3);
if (t4)
return je(t4);
u2 = false;
}
d2 = n4, h2 = Oe.a.getBracketsSupport(d2), a2(d2, h2);
}
const i3 = !!h2 && !Object(De.b)(t3.getStandardTokenType(r3));
if (i3)
u2 || (s3 = t3.getStartOffset(r3)), l3 = t3.getEndOffset(r3);
else if (h2 && u2 && s3 !== l3) {
const t4 = c2(h2, e3, o3, s3, l3);
if (t4)
return je(t4);
}
u2 = i3;
}
if (h2 && u2 && s3 !== l3) {
const t4 = c2(h2, e3, o3, s3, l3);
if (t4)
return je(t4);
}
}
return null;
}
_toFoundBracket(e2, t2) {
if (!t2)
return null;
let n2 = this.getValueInRange(t2);
n2 = n2.toLowerCase();
let i2 = e2.textIsBracket[n2];
return i2 ? {range: t2, open: i2.open, close: i2.close, isOpen: e2.textIsOpenBracket[n2]} : null;
}
static computeIndentLevel(e2, t2) {
let n2 = 0, i2 = 0, o2 = e2.length;
for (; i2 < o2; ) {
let o3 = e2.charCodeAt(i2);
if (32 === o3)
n2++;
else {
if (9 !== o3)
break;
n2 = n2 - n2 % t2 + t2;
}
i2++;
}
return i2 === o2 ? -1 : n2;
}
_computeIndentLevel(e2) {
return Ve.computeIndentLevel(this._buffer.getLineContent(e2 + 1), this._options.tabSize);
}
getActiveIndentGuide(e2, t2, n2) {
this._assertNotDisposed();
const i2 = this.getLineCount();
if (e2 < 1 || e2 > i2)
throw new Error("Illegal value for lineNumber");
const o2 = Oe.a.getFoldingRules(this._languageIdentifier.id), r2 = Boolean(o2 && o2.offSide);
let s2 = -2, a2 = -1, l2 = -2, c2 = -1;
const d2 = (e3) => {
if (-1 !== s2 && (-2 === s2 || s2 > e3 - 1)) {
s2 = -1, a2 = -1;
for (let t3 = e3 - 2; t3 >= 0; t3--) {
let e4 = this._computeIndentLevel(t3);
if (e4 >= 0) {
s2 = t3, a2 = e4;
break;
}
}
}
if (-2 === l2) {
l2 = -1, c2 = -1;
for (let t3 = e3; t3 < i2; t3++) {
let e4 = this._computeIndentLevel(t3);
if (e4 >= 0) {
l2 = t3, c2 = e4;
break;
}
}
}
};
let h2 = -2, u2 = -1, p2 = -2, m2 = -1;
const g2 = (e3) => {
if (-2 === h2) {
h2 = -1, u2 = -1;
for (let t3 = e3 - 2; t3 >= 0; t3--) {
let e4 = this._computeIndentLevel(t3);
if (e4 >= 0) {
h2 = t3, u2 = e4;
break;
}
}
}
if (-1 !== p2 && (-2 === p2 || p2 < e3 - 1)) {
p2 = -1, m2 = -1;
for (let t3 = e3; t3 < i2; t3++) {
let e4 = this._computeIndentLevel(t3);
if (e4 >= 0) {
p2 = t3, m2 = e4;
break;
}
}
}
};
let f2 = 0, b2 = true, _2 = 0, v2 = true, w2 = 0, y2 = 0;
for (let o3 = 0; b2 || v2; o3++) {
const s3 = e2 - o3, p3 = e2 + o3;
o3 > 1 && (s3 < 1 || s3 < t2) && (b2 = false), o3 > 1 && (p3 > i2 || p3 > n2) && (v2 = false), o3 > 5e4 && (b2 = false, v2 = false);
let C2 = -1;
if (b2) {
const e3 = this._computeIndentLevel(s3 - 1);
e3 >= 0 ? (l2 = s3 - 1, c2 = e3, C2 = Math.ceil(e3 / this._options.indentSize)) : (d2(s3), C2 = this._getIndentLevelForWhitespaceLine(r2, a2, c2));
}
let x2 = -1;
if (v2) {
const e3 = this._computeIndentLevel(p3 - 1);
e3 >= 0 ? (h2 = p3 - 1, u2 = e3, x2 = Math.ceil(e3 / this._options.indentSize)) : (g2(p3), x2 = this._getIndentLevelForWhitespaceLine(r2, u2, m2));
}
if (0 !== o3) {
if (1 === o3) {
if (p3 <= i2 && x2 >= 0 && y2 + 1 === x2) {
b2 = false, f2 = p3, _2 = p3, w2 = x2;
continue;
}
if (s3 >= 1 && C2 >= 0 && C2 - 1 === y2) {
v2 = false, f2 = s3, _2 = s3, w2 = C2;
continue;
}
if (f2 = e2, _2 = e2, w2 = y2, 0 === w2)
return {startLineNumber: f2, endLineNumber: _2, indent: w2};
}
b2 && (C2 >= w2 ? f2 = s3 : b2 = false), v2 && (x2 >= w2 ? _2 = p3 : v2 = false);
} else
y2 = C2;
}
return {startLineNumber: f2, endLineNumber: _2, indent: w2};
}
getLinesIndentGuides(e2, t2) {
this._assertNotDisposed();
const n2 = this.getLineCount();
if (e2 < 1 || e2 > n2)
throw new Error("Illegal value for startLineNumber");
if (t2 < 1 || t2 > n2)
throw new Error("Illegal value for endLineNumber");
const i2 = Oe.a.getFoldingRules(this._languageIdentifier.id), o2 = Boolean(i2 && i2.offSide);
let r2 = new Array(t2 - e2 + 1), s2 = -2, a2 = -1, l2 = -2, c2 = -1;
for (let i3 = e2; i3 <= t2; i3++) {
let t3 = i3 - e2;
const d2 = this._computeIndentLevel(i3 - 1);
if (d2 >= 0)
s2 = i3 - 1, a2 = d2, r2[t3] = Math.ceil(d2 / this._options.indentSize);
else {
if (-2 === s2) {
s2 = -1, a2 = -1;
for (let e3 = i3 - 2; e3 >= 0; e3--) {
let t4 = this._computeIndentLevel(e3);
if (t4 >= 0) {
s2 = e3, a2 = t4;
break;
}
}
}
if (-1 !== l2 && (-2 === l2 || l2 < i3 - 1)) {
l2 = -1, c2 = -1;
for (let e3 = i3; e3 < n2; e3++) {
let t4 = this._computeIndentLevel(e3);
if (t4 >= 0) {
l2 = e3, c2 = t4;
break;
}
}
}
r2[t3] = this._getIndentLevelForWhitespaceLine(o2, a2, c2);
}
}
return r2;
}
_getIndentLevelForWhitespaceLine(e2, t2, n2) {
return -1 === t2 || -1 === n2 ? 0 : t2 < n2 ? 1 + Math.floor(t2 / this._options.indentSize) : t2 === n2 || e2 ? Math.ceil(n2 / this._options.indentSize) : 1 + Math.floor(n2 / this._options.indentSize);
}
}
Ve.MODEL_SYNC_LIMIT = 52428800, Ve.LARGE_FILE_SIZE_THRESHOLD = 20971520, Ve.LARGE_FILE_LINE_COUNT_THRESHOLD = 3e5, Ve.DEFAULT_CREATION_OPTIONS = {isForSimpleWidget: false, tabSize: l.d.tabSize, indentSize: l.d.indentSize, insertSpaces: l.d.insertSpaces, detectIndentation: false, defaultEOL: 1, trimAutoWhitespace: l.d.trimAutoWhitespace, largeFileOptimizations: l.d.largeFileOptimizations};
class Ue {
constructor() {
this._decorationsTree0 = new N(), this._decorationsTree1 = new N();
}
intervalSearch(e2, t2, n2, i2, o2) {
const r2 = this._decorationsTree0.intervalSearch(e2, t2, n2, i2, o2), s2 = this._decorationsTree1.intervalSearch(e2, t2, n2, i2, o2);
return r2.concat(s2);
}
search(e2, t2, n2, i2) {
if (n2)
return this._decorationsTree1.search(e2, t2, i2);
{
const n3 = this._decorationsTree0.search(e2, t2, i2), o2 = this._decorationsTree1.search(e2, t2, i2);
return n3.concat(o2);
}
}
collectNodesFromOwner(e2) {
const t2 = this._decorationsTree0.collectNodesFromOwner(e2), n2 = this._decorationsTree1.collectNodesFromOwner(e2);
return t2.concat(n2);
}
collectNodesPostOrder() {
const e2 = this._decorationsTree0.collectNodesPostOrder(), t2 = this._decorationsTree1.collectNodesPostOrder();
return e2.concat(t2);
}
insert(e2) {
x(e2) ? this._decorationsTree1.insert(e2) : this._decorationsTree0.insert(e2);
}
delete(e2) {
x(e2) ? this._decorationsTree1.delete(e2) : this._decorationsTree0.delete(e2);
}
resolveNode(e2, t2) {
x(e2) ? this._decorationsTree1.resolveNode(e2, t2) : this._decorationsTree0.resolveNode(e2, t2);
}
acceptReplace(e2, t2, n2, i2) {
this._decorationsTree0.acceptReplace(e2, t2, n2, i2), this._decorationsTree1.acceptReplace(e2, t2, n2, i2);
}
}
function He(e2) {
return e2.replace(/[^a-z0-9\-_]/gi, " ");
}
class qe {
constructor(e2) {
this.color = e2.color || "", this.darkColor = e2.darkColor || "";
}
}
class $e extends qe {
constructor(e2) {
super(e2), this._resolvedColor = null, this.position = "number" == typeof e2.position ? e2.position : u.d.Center;
}
getColor(e2) {
return this._resolvedColor || ("light" !== e2.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e2) : this._resolvedColor = this._resolveColor(this.color, e2)), this._resolvedColor;
}
invalidateCachedColor() {
this._resolvedColor = null;
}
_resolveColor(e2, t2) {
if ("string" == typeof e2)
return e2;
let n2 = e2 ? t2.getColor(e2.id) : null;
return n2 ? n2.toString() : "";
}
}
class Ke extends qe {
constructor(e2) {
super(e2), this.position = e2.position;
}
getColor(e2) {
return this._resolvedColor || ("light" !== e2.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e2) : this._resolvedColor = this._resolveColor(this.color, e2)), this._resolvedColor;
}
invalidateCachedColor() {
this._resolvedColor = void 0;
}
_resolveColor(e2, t2) {
return "string" == typeof e2 ? Re.a.fromHex(e2) : t2.getColor(e2.id);
}
}
class Ge {
constructor(e2) {
this.stickiness = e2.stickiness || 0, this.zIndex = e2.zIndex || 0, this.className = e2.className ? He(e2.className) : null, this.hoverMessage = e2.hoverMessage || null, this.glyphMarginHoverMessage = e2.glyphMarginHoverMessage || null, this.isWholeLine = e2.isWholeLine || false, this.showIfCollapsed = e2.showIfCollapsed || false, this.collapseOnReplaceEdit = e2.collapseOnReplaceEdit || false, this.overviewRuler = e2.overviewRuler ? new $e(e2.overviewRuler) : null, this.minimap = e2.minimap ? new Ke(e2.minimap) : null, this.glyphMarginClassName = e2.glyphMarginClassName ? He(e2.glyphMarginClassName) : null, this.linesDecorationsClassName = e2.linesDecorationsClassName ? He(e2.linesDecorationsClassName) : null, this.firstLineDecorationClassName = e2.firstLineDecorationClassName ? He(e2.firstLineDecorationClassName) : null, this.marginClassName = e2.marginClassName ? He(e2.marginClassName) : null, this.inlineClassName = e2.inlineClassName ? He(e2.inlineClassName) : null, this.inlineClassNameAffectsLetterSpacing = e2.inlineClassNameAffectsLetterSpacing || false, this.beforeContentClassName = e2.beforeContentClassName ? He(e2.beforeContentClassName) : null, this.afterContentClassName = e2.afterContentClassName ? He(e2.afterContentClassName) : null;
}
static register(e2) {
return new Ge(e2);
}
static createDynamic(e2) {
return new Ge(e2);
}
}
Ge.EMPTY = Ge.register({});
const Ye = [Ge.register({stickiness: 0}), Ge.register({stickiness: 1}), Ge.register({stickiness: 2}), Ge.register({stickiness: 3})];
function Ze(e2) {
return e2 instanceof Ge ? e2 : Ge.createDynamic(e2);
}
class Xe extends r.a {
constructor() {
super(), this._actual = this._register(new o.a()), this.event = this._actual.event, this._deferredCnt = 0, this._shouldFire = false, this._affectsMinimap = false, this._affectsOverviewRuler = false;
}
beginDeferredEmit() {
this._deferredCnt++;
}
endDeferredEmit() {
if (this._deferredCnt--, 0 === this._deferredCnt && this._shouldFire) {
const e2 = {affectsMinimap: this._affectsMinimap, affectsOverviewRuler: this._affectsOverviewRuler};
this._shouldFire = false, this._affectsMinimap = false, this._affectsOverviewRuler = false, this._actual.fire(e2);
}
}
checkAffectedAndFire(e2) {
this._affectsMinimap || (this._affectsMinimap = !(!e2.minimap || !e2.minimap.position)), this._affectsOverviewRuler || (this._affectsOverviewRuler = !(!e2.overviewRuler || !e2.overviewRuler.color)), this._shouldFire = true;
}
fire() {
this._affectsMinimap = true, this._affectsOverviewRuler = true, this._shouldFire = true;
}
}
class Qe extends r.a {
constructor() {
super(), this._fastEmitter = this._register(new o.a()), this.fastEvent = this._fastEmitter.event, this._slowEmitter = this._register(new o.a()), this.slowEvent = this._slowEmitter.event, this._deferredCnt = 0, this._deferredEvent = null;
}
beginDeferredEmit() {
this._deferredCnt++;
}
endDeferredEmit(e2 = null) {
if (this._deferredCnt--, 0 === this._deferredCnt && null !== this._deferredEvent) {
this._deferredEvent.rawContentChangedEvent.resultingSelection = e2;
const t2 = this._deferredEvent;
this._deferredEvent = null, this._fastEmitter.fire(t2), this._slowEmitter.fire(t2);
}
}
fire(e2) {
this._deferredCnt > 0 ? this._deferredEvent ? this._deferredEvent = this._deferredEvent.merge(e2) : this._deferredEvent = e2 : (this._fastEmitter.fire(e2), this._slowEmitter.fire(e2));
}
}
}, function(e, t, n) {
"use strict";
function i(e2, t2) {
return 0 === t2.length ? e2 : e2.replace(/\{(\d+)\}/g, function(e3, n2) {
var i2 = n2[0];
return void 0 !== t2[i2] ? t2[i2] : e3;
});
}
function o(e2, t2) {
for (var n2 = [], o2 = 2; o2 < arguments.length; o2++)
n2[o2 - 2] = arguments[o2];
return i(t2, n2);
}
function r(e2) {
return o;
}
var s, a, l, c, d, h, u, p, m, g, f, b, _, v, w, y, C, x, S, k, E;
n.d(t, "g", function() {
return re;
}), n.d(t, "d", function() {
return p;
}), n.d(t, "b", function() {
return f;
}), n.d(t, "a", function() {
return D;
}), n.d(t, "e", function() {
return A;
}), n.d(t, "c", function() {
return V;
}), n.d(t, "f", function() {
return H;
}), n.d(t, "h", function() {
return Mt;
}), function(e2) {
e2.create = function(e3, t2) {
return {line: e3, character: t2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.objectLiteral(t2) && ie.number(t2.line) && ie.number(t2.character);
};
}(s || (s = {})), function(e2) {
e2.create = function(e3, t2, n2, i2) {
if (ie.number(e3) && ie.number(t2) && ie.number(n2) && ie.number(i2))
return {start: s.create(e3, t2), end: s.create(n2, i2)};
if (s.is(e3) && s.is(t2))
return {start: e3, end: t2};
throw new Error("Range#create called with invalid arguments[" + e3 + ", " + t2 + ", " + n2 + ", " + i2 + "]");
}, e2.is = function(e3) {
var t2 = e3;
return ie.objectLiteral(t2) && s.is(t2.start) && s.is(t2.end);
};
}(a || (a = {})), function(e2) {
e2.create = function(e3, t2) {
return {uri: e3, range: t2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && a.is(t2.range) && (ie.string(t2.uri) || ie.undefined(t2.uri));
};
}(l || (l = {})), function(e2) {
e2.create = function(e3, t2, n2, i2) {
return {targetUri: e3, targetRange: t2, targetSelectionRange: n2, originSelectionRange: i2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && a.is(t2.targetRange) && ie.string(t2.targetUri) && (a.is(t2.targetSelectionRange) || ie.undefined(t2.targetSelectionRange)) && (a.is(t2.originSelectionRange) || ie.undefined(t2.originSelectionRange));
};
}(c || (c = {})), function(e2) {
e2.create = function(e3, t2, n2, i2) {
return {red: e3, green: t2, blue: n2, alpha: i2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.number(t2.red) && ie.number(t2.green) && ie.number(t2.blue) && ie.number(t2.alpha);
};
}(d || (d = {})), function(e2) {
e2.create = function(e3, t2) {
return {range: e3, color: t2};
}, e2.is = function(e3) {
var t2 = e3;
return a.is(t2.range) && d.is(t2.color);
};
}(h || (h = {})), function(e2) {
e2.create = function(e3, t2, n2) {
return {label: e3, textEdit: t2, additionalTextEdits: n2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.string(t2.label) && (ie.undefined(t2.textEdit) || y.is(t2)) && (ie.undefined(t2.additionalTextEdits) || ie.typedArray(t2.additionalTextEdits, y.is));
};
}(u || (u = {})), function(e2) {
e2.Comment = "comment", e2.Imports = "imports", e2.Region = "region";
}(p || (p = {})), function(e2) {
e2.create = function(e3, t2, n2, i2, o2) {
var r2 = {startLine: e3, endLine: t2};
return ie.defined(n2) && (r2.startCharacter = n2), ie.defined(i2) && (r2.endCharacter = i2), ie.defined(o2) && (r2.kind = o2), r2;
}, e2.is = function(e3) {
var t2 = e3;
return ie.number(t2.startLine) && ie.number(t2.startLine) && (ie.undefined(t2.startCharacter) || ie.number(t2.startCharacter)) && (ie.undefined(t2.endCharacter) || ie.number(t2.endCharacter)) && (ie.undefined(t2.kind) || ie.string(t2.kind));
};
}(m || (m = {})), function(e2) {
e2.create = function(e3, t2) {
return {location: e3, message: t2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && l.is(t2.location) && ie.string(t2.message);
};
}(g || (g = {})), function(e2) {
e2.Error = 1, e2.Warning = 2, e2.Information = 3, e2.Hint = 4;
}(f || (f = {})), function(e2) {
e2.Unnecessary = 1, e2.Deprecated = 2;
}(b || (b = {})), function(e2) {
e2.is = function(e3) {
var t2 = e3;
return null != t2 && (ie.number(t2.value) || ie.string(t2.value)) && ie.string(t2.target);
};
}(_ || (_ = {})), function(e2) {
e2.create = function(e3, t2, n2, i2, o2, r2) {
var s2 = {range: e3, message: t2};
return ie.defined(n2) && (s2.severity = n2), ie.defined(i2) && (s2.code = i2), ie.defined(o2) && (s2.source = o2), ie.defined(r2) && (s2.relatedInformation = r2), s2;
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && a.is(t2.range) && ie.string(t2.message) && (ie.number(t2.severity) || ie.undefined(t2.severity)) && (ie.number(t2.code) || ie.string(t2.code) || ie.undefined(t2.code)) && (ie.string(t2.source) || ie.undefined(t2.source)) && (ie.undefined(t2.relatedInformation) || ie.typedArray(t2.relatedInformation, g.is));
};
}(v || (v = {})), function(e2) {
e2.create = function(e3, t2) {
for (var n2 = [], i2 = 2; i2 < arguments.length; i2++)
n2[i2 - 2] = arguments[i2];
var o2 = {title: e3, command: t2};
return ie.defined(n2) && n2.length > 0 && (o2.arguments = n2), o2;
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && ie.string(t2.title) && ie.string(t2.command);
};
}(w || (w = {})), function(e2) {
e2.replace = function(e3, t2) {
return {range: e3, newText: t2};
}, e2.insert = function(e3, t2) {
return {range: {start: e3, end: e3}, newText: t2};
}, e2.del = function(e3) {
return {range: e3, newText: ""};
}, e2.is = function(e3) {
var t2 = e3;
return ie.objectLiteral(t2) && ie.string(t2.newText) && a.is(t2.range);
};
}(y || (y = {})), function(e2) {
e2.create = function(e3, t2) {
return {textDocument: e3, edits: t2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && L.is(t2.textDocument) && Array.isArray(t2.edits);
};
}(C || (C = {})), function(e2) {
e2.create = function(e3, t2) {
var n2 = {kind: "create", uri: e3};
return void 0 === t2 || void 0 === t2.overwrite && void 0 === t2.ignoreIfExists || (n2.options = t2), n2;
}, e2.is = function(e3) {
var t2 = e3;
return t2 && "create" === t2.kind && ie.string(t2.uri) && (void 0 === t2.options || (void 0 === t2.options.overwrite || ie.boolean(t2.options.overwrite)) && (void 0 === t2.options.ignoreIfExists || ie.boolean(t2.options.ignoreIfExists)));
};
}(x || (x = {})), function(e2) {
e2.create = function(e3, t2, n2) {
var i2 = {kind: "rename", oldUri: e3, newUri: t2};
return void 0 === n2 || void 0 === n2.overwrite && void 0 === n2.ignoreIfExists || (i2.options = n2), i2;
}, e2.is = function(e3) {
var t2 = e3;
return t2 && "rename" === t2.kind && ie.string(t2.oldUri) && ie.string(t2.newUri) && (void 0 === t2.options || (void 0 === t2.options.overwrite || ie.boolean(t2.options.overwrite)) && (void 0 === t2.options.ignoreIfExists || ie.boolean(t2.options.ignoreIfExists)));
};
}(S || (S = {})), function(e2) {
e2.create = function(e3, t2) {
var n2 = {kind: "delete", uri: e3};
return void 0 === t2 || void 0 === t2.recursive && void 0 === t2.ignoreIfNotExists || (n2.options = t2), n2;
}, e2.is = function(e3) {
var t2 = e3;
return t2 && "delete" === t2.kind && ie.string(t2.uri) && (void 0 === t2.options || (void 0 === t2.options.recursive || ie.boolean(t2.options.recursive)) && (void 0 === t2.options.ignoreIfNotExists || ie.boolean(t2.options.ignoreIfNotExists)));
};
}(k || (k = {})), function(e2) {
e2.is = function(e3) {
var t2 = e3;
return t2 && (void 0 !== t2.changes || void 0 !== t2.documentChanges) && (void 0 === t2.documentChanges || t2.documentChanges.every(function(e4) {
return ie.string(e4.kind) ? x.is(e4) || S.is(e4) || k.is(e4) : C.is(e4);
}));
};
}(E || (E = {}));
var T, L, N, I, O, D, A, R, M, P, F, W, z, B, j, V, U, H, q, $, K, G, Y, Z, X, Q, J, ee, te = function() {
function e2(e3) {
this.edits = e3;
}
return e2.prototype.insert = function(e3, t2) {
this.edits.push(y.insert(e3, t2));
}, e2.prototype.replace = function(e3, t2) {
this.edits.push(y.replace(e3, t2));
}, e2.prototype.delete = function(e3) {
this.edits.push(y.del(e3));
}, e2.prototype.add = function(e3) {
this.edits.push(e3);
}, e2.prototype.all = function() {
return this.edits;
}, e2.prototype.clear = function() {
this.edits.splice(0, this.edits.length);
}, e2;
}();
!function() {
function e2(e3) {
var t2 = this;
this._textEditChanges = Object.create(null), e3 && (this._workspaceEdit = e3, e3.documentChanges ? e3.documentChanges.forEach(function(e4) {
if (C.is(e4)) {
var n2 = new te(e4.edits);
t2._textEditChanges[e4.textDocument.uri] = n2;
}
}) : e3.changes && Object.keys(e3.changes).forEach(function(n2) {
var i2 = new te(e3.changes[n2]);
t2._textEditChanges[n2] = i2;
}));
}
Object.defineProperty(e2.prototype, "edit", {get: function() {
return void 0 === this._workspaceEdit ? {documentChanges: []} : this._workspaceEdit;
}, enumerable: true, configurable: true}), e2.prototype.getTextEditChange = function(e3) {
if (L.is(e3)) {
if (this._workspaceEdit || (this._workspaceEdit = {documentChanges: []}), !this._workspaceEdit.documentChanges)
throw new Error("Workspace edit is not configured for document changes.");
var t2 = e3;
if (!(i2 = this._textEditChanges[t2.uri])) {
var n2 = {textDocument: t2, edits: o2 = []};
this._workspaceEdit.documentChanges.push(n2), i2 = new te(o2), this._textEditChanges[t2.uri] = i2;
}
return i2;
}
if (this._workspaceEdit || (this._workspaceEdit = {changes: Object.create(null)}), !this._workspaceEdit.changes)
throw new Error("Workspace edit is not configured for normal text edit changes.");
var i2;
if (!(i2 = this._textEditChanges[e3])) {
var o2 = [];
this._workspaceEdit.changes[e3] = o2, i2 = new te(o2), this._textEditChanges[e3] = i2;
}
return i2;
}, e2.prototype.createFile = function(e3, t2) {
this.checkDocumentChanges(), this._workspaceEdit.documentChanges.push(x.create(e3, t2));
}, e2.prototype.renameFile = function(e3, t2, n2) {
this.checkDocumentChanges(), this._workspaceEdit.documentChanges.push(S.create(e3, t2, n2));
}, e2.prototype.deleteFile = function(e3, t2) {
this.checkDocumentChanges(), this._workspaceEdit.documentChanges.push(k.create(e3, t2));
}, e2.prototype.checkDocumentChanges = function() {
if (!this._workspaceEdit || !this._workspaceEdit.documentChanges)
throw new Error("Workspace edit is not configured for document changes.");
};
}();
!function(e2) {
e2.create = function(e3) {
return {uri: e3};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && ie.string(t2.uri);
};
}(T || (T = {})), function(e2) {
e2.create = function(e3, t2) {
return {uri: e3, version: t2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && ie.string(t2.uri) && (null === t2.version || ie.number(t2.version));
};
}(L || (L = {})), function(e2) {
e2.create = function(e3, t2, n2, i2) {
return {uri: e3, languageId: t2, version: n2, text: i2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && ie.string(t2.uri) && ie.string(t2.languageId) && ie.number(t2.version) && ie.string(t2.text);
};
}(N || (N = {})), function(e2) {
e2.PlainText = "plaintext", e2.Markdown = "markdown";
}(I || (I = {})), function(e2) {
e2.is = function(t2) {
var n2 = t2;
return n2 === e2.PlainText || n2 === e2.Markdown;
};
}(I || (I = {})), function(e2) {
e2.is = function(e3) {
var t2 = e3;
return ie.objectLiteral(e3) && I.is(t2.kind) && ie.string(t2.value);
};
}(O || (O = {})), function(e2) {
e2.Text = 1, e2.Method = 2, e2.Function = 3, e2.Constructor = 4, e2.Field = 5, e2.Variable = 6, e2.Class = 7, e2.Interface = 8, e2.Module = 9, e2.Property = 10, e2.Unit = 11, e2.Value = 12, e2.Enum = 13, e2.Keyword = 14, e2.Snippet = 15, e2.Color = 16, e2.File = 17, e2.Reference = 18, e2.Folder = 19, e2.EnumMember = 20, e2.Constant = 21, e2.Struct = 22, e2.Event = 23, e2.Operator = 24, e2.TypeParameter = 25;
}(D || (D = {})), function(e2) {
e2.PlainText = 1, e2.Snippet = 2;
}(A || (A = {})), function(e2) {
e2.Deprecated = 1;
}(R || (R = {})), function(e2) {
e2.create = function(e3, t2, n2) {
return {newText: e3, insert: t2, replace: n2};
}, e2.is = function(e3) {
var t2 = e3;
return t2 && ie.string(t2.newText) && a.is(t2.insert) && a.is(t2.replace);
};
}(M || (M = {})), function(e2) {
e2.create = function(e3) {
return {label: e3};
};
}(P || (P = {})), function(e2) {
e2.create = function(e3, t2) {
return {items: e3 || [], isIncomplete: !!t2};
};
}(F || (F = {})), function(e2) {
e2.fromPlainText = function(e3) {
return e3.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&");
}, e2.is = function(e3) {
var t2 = e3;
return ie.string(t2) || ie.objectLiteral(t2) && ie.string(t2.language) && ie.string(t2.value);
};
}(W || (W = {})), function(e2) {
e2.is = function(e3) {
var t2 = e3;
return !!t2 && ie.objectLiteral(t2) && (O.is(t2.contents) || W.is(t2.contents) || ie.typedArray(t2.contents, W.is)) && (void 0 === e3.range || a.is(e3.range));
};
}(z || (z = {})), function(e2) {
e2.create = function(e3, t2) {
return t2 ? {label: e3, documentation: t2} : {label: e3};
};
}(B || (B = {})), function(e2) {
e2.create = function(e3, t2) {
for (var n2 = [], i2 = 2; i2 < arguments.length; i2++)
n2[i2 - 2] = arguments[i2];
var o2 = {label: e3};
return ie.defined(t2) && (o2.documentation = t2), ie.defined(n2) ? o2.parameters = n2 : o2.parameters = [], o2;
};
}(j || (j = {})), function(e2) {
e2.Text = 1, e2.Read = 2, e2.Write = 3;
}(V || (V = {})), function(e2) {
e2.create = function(e3, t2) {
var n2 = {range: e3};
return ie.number(t2) && (n2.kind = t2), n2;
};
}(U || (U = {})), function(e2) {
e2.File = 1, e2.Module = 2, e2.Namespace = 3, e2.Package = 4, e2.Class = 5, e2.Method = 6, e2.Property = 7, e2.Field = 8, e2.Constructor = 9, e2.Enum = 10, e2.Interface = 11, e2.Function = 12, e2.Variable = 13, e2.Constant = 14, e2.String = 15, e2.Number = 16, e2.Boolean = 17, e2.Array = 18, e2.Object = 19, e2.Key = 20, e2.Null = 21, e2.EnumMember = 22, e2.Struct = 23, e2.Event = 24, e2.Operator = 25, e2.TypeParameter = 26;
}(H || (H = {})), function(e2) {
e2.Deprecated = 1;
}(q || (q = {})), function(e2) {
e2.create = function(e3, t2, n2, i2, o2) {
var r2 = {name: e3, kind: t2, location: {uri: i2, range: n2}};
return o2 && (r2.containerName = o2), r2;
};
}($ || ($ = {})), function(e2) {
e2.create = function(e3, t2, n2, i2, o2, r2) {
var s2 = {name: e3, detail: t2, kind: n2, range: i2, selectionRange: o2};
return void 0 !== r2 && (s2.children = r2), s2;
}, e2.is = function(e3) {
var t2 = e3;
return t2 && ie.string(t2.name) && ie.number(t2.kind) && a.is(t2.range) && a.is(t2.selectionRange) && (void 0 === t2.detail || ie.string(t2.detail)) && (void 0 === t2.deprecated || ie.boolean(t2.deprecated)) && (void 0 === t2.children || Array.isArray(t2.children)) && (void 0 === t2.tags || Array.isArray(t2.tags));
};
}(K || (K = {})), function(e2) {
e2.Empty = "", e2.QuickFix = "quickfix", e2.Refactor = "refactor", e2.RefactorExtract = "refactor.extract", e2.RefactorInline = "refactor.inline", e2.RefactorRewrite = "refactor.rewrite", e2.Source = "source", e2.SourceOrganizeImports = "source.organizeImports", e2.SourceFixAll = "source.fixAll";
}(G || (G = {})), function(e2) {
e2.create = function(e3, t2) {
var n2 = {diagnostics: e3};
return null != t2 && (n2.only = t2), n2;
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && ie.typedArray(t2.diagnostics, v.is) && (void 0 === t2.only || ie.typedArray(t2.only, ie.string));
};
}(Y || (Y = {})), function(e2) {
e2.create = function(e3, t2, n2) {
var i2 = {title: e3};
return w.is(t2) ? i2.command = t2 : i2.edit = t2, void 0 !== n2 && (i2.kind = n2), i2;
}, e2.is = function(e3) {
var t2 = e3;
return t2 && ie.string(t2.title) && (void 0 === t2.diagnostics || ie.typedArray(t2.diagnostics, v.is)) && (void 0 === t2.kind || ie.string(t2.kind)) && (void 0 !== t2.edit || void 0 !== t2.command) && (void 0 === t2.command || w.is(t2.command)) && (void 0 === t2.isPreferred || ie.boolean(t2.isPreferred)) && (void 0 === t2.edit || E.is(t2.edit));
};
}(Z || (Z = {})), function(e2) {
e2.create = function(e3, t2) {
var n2 = {range: e3};
return ie.defined(t2) && (n2.data = t2), n2;
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && a.is(t2.range) && (ie.undefined(t2.command) || w.is(t2.command));
};
}(X || (X = {})), function(e2) {
e2.create = function(e3, t2) {
return {tabSize: e3, insertSpaces: t2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && ie.number(t2.tabSize) && ie.boolean(t2.insertSpaces);
};
}(Q || (Q = {})), function(e2) {
e2.create = function(e3, t2, n2) {
return {range: e3, target: t2, data: n2};
}, e2.is = function(e3) {
var t2 = e3;
return ie.defined(t2) && a.is(t2.range) && (ie.undefined(t2.target) || ie.string(t2.target));
};
}(J || (J = {})), function(e2) {
e2.create = function(e3, t2) {
return {range: e3, parent: t2};
}, e2.is = function(t2) {
var n2 = t2;
return void 0 !== n2 && a.is(n2.range) && (void 0 === n2.parent || e2.is(n2.parent));
};
}(ee || (ee = {}));
var ne;
!function(e2) {
e2.create = function(e3, t2, n2, i2) {
return new oe(e3, t2, n2, i2);
}, e2.is = function(e3) {
var t2 = e3;
return !!(ie.defined(t2) && ie.string(t2.uri) && (ie.undefined(t2.languageId) || ie.string(t2.languageId)) && ie.number(t2.lineCount) && ie.func(t2.getText) && ie.func(t2.positionAt) && ie.func(t2.offsetAt));
}, e2.applyEdits = function(e3, t2) {
for (var n2 = e3.getText(), i2 = function e4(t3, n3) {
if (t3.length <= 1)
return t3;
var i3 = t3.length / 2 | 0, o3 = t3.slice(0, i3), r3 = t3.slice(i3);
e4(o3, n3), e4(r3, n3);
var s3 = 0, a3 = 0, l3 = 0;
for (; s3 < o3.length && a3 < r3.length; ) {
var c2 = n3(o3[s3], r3[a3]);
t3[l3++] = c2 <= 0 ? o3[s3++] : r3[a3++];
}
for (; s3 < o3.length; )
t3[l3++] = o3[s3++];
for (; a3 < r3.length; )
t3[l3++] = r3[a3++];
return t3;
}(t2, function(e4, t3) {
var n3 = e4.range.start.line - t3.range.start.line;
return 0 === n3 ? e4.range.start.character - t3.range.start.character : n3;
}), o2 = n2.length, r2 = i2.length - 1; r2 >= 0; r2--) {
var s2 = i2[r2], a2 = e3.offsetAt(s2.range.start), l2 = e3.offsetAt(s2.range.end);
if (!(l2 <= o2))
throw new Error("Overlapping edit");
n2 = n2.substring(0, a2) + s2.newText + n2.substring(l2, n2.length), o2 = a2;
}
return n2;
};
}(ne || (ne = {}));
var ie, oe = function() {
function e2(e3, t2, n2, i2) {
this._uri = e3, this._languageId = t2, this._version = n2, this._content = i2, this._lineOffsets = void 0;
}
return Object.defineProperty(e2.prototype, "uri", {get: function() {
return this._uri;
}, enumerable: true, configurable: true}), Object.defineProperty(e2.prototype, "languageId", {get: function() {
return this._languageId;
}, enumerable: true, configurable: true}), Object.defineProperty(e2.prototype, "version", {get: function() {
return this._version;
}, enumerable: true, configurable: true}), e2.prototype.getText = function(e3) {
if (e3) {
var t2 = this.offsetAt(e3.start), n2 = this.offsetAt(e3.end);
return this._content.substring(t2, n2);
}
return this._content;
}, e2.prototype.update = function(e3, t2) {
this._content = e3.text, this._version = t2, this._lineOffsets = void 0;
}, e2.prototype.getLineOffsets = function() {
if (void 0 === this._lineOffsets) {
for (var e3 = [], t2 = this._content, n2 = true, i2 = 0; i2 < t2.length; i2++) {
n2 && (e3.push(i2), n2 = false);
var o2 = t2.charAt(i2);
n2 = "\r" === o2 || "\n" === o2, "\r" === o2 && i2 + 1 < t2.length && "\n" === t2.charAt(i2 + 1) && i2++;
}
n2 && t2.length > 0 && e3.push(t2.length), this._lineOffsets = e3;
}
return this._lineOffsets;
}, e2.prototype.positionAt = function(e3) {
e3 = Math.max(Math.min(e3, this._content.length), 0);
var t2 = this.getLineOffsets(), n2 = 0, i2 = t2.length;
if (0 === i2)
return s.create(0, e3);
for (; n2 < i2; ) {
var o2 = Math.floor((n2 + i2) / 2);
t2[o2] > e3 ? i2 = o2 : n2 = o2 + 1;
}
var r2 = n2 - 1;
return s.create(r2, e3 - t2[r2]);
}, e2.prototype.offsetAt = function(e3) {
var t2 = this.getLineOffsets();
if (e3.line >= t2.length)
return this._content.length;
if (e3.line < 0)
return 0;
var n2 = t2[e3.line], i2 = e3.line + 1 < t2.length ? t2[e3.line + 1] : this._content.length;
return Math.max(Math.min(n2 + e3.character, i2), n2);
}, Object.defineProperty(e2.prototype, "lineCount", {get: function() {
return this.getLineOffsets().length;
}, enumerable: true, configurable: true}), e2;
}();
!function(e2) {
var t2 = Object.prototype.toString;
e2.defined = function(e3) {
return void 0 !== e3;
}, e2.undefined = function(e3) {
return void 0 === e3;
}, e2.boolean = function(e3) {
return true === e3 || false === e3;
}, e2.string = function(e3) {
return "[object String]" === t2.call(e3);
}, e2.number = function(e3) {
return "[object Number]" === t2.call(e3);
}, e2.func = function(e3) {
return "[object Function]" === t2.call(e3);
}, e2.objectLiteral = function(e3) {
return null !== e3 && "object" == typeof e3;
}, e2.typedArray = function(e3, t3) {
return Array.isArray(e3) && e3.every(t3);
};
}(ie || (ie = {}));
var re, se, ae, le, ce, de = function() {
function e2(e3, t2, n2, i2) {
this._uri = e3, this._languageId = t2, this._version = n2, this._content = i2, this._lineOffsets = void 0;
}
return Object.defineProperty(e2.prototype, "uri", {get: function() {
return this._uri;
}, enumerable: true, configurable: true}), Object.defineProperty(e2.prototype, "languageId", {get: function() {
return this._languageId;
}, enumerable: true, configurable: true}), Object.defineProperty(e2.prototype, "version", {get: function() {
return this._version;
}, enumerable: true, configurable: true}), e2.prototype.getText = function(e3) {
if (e3) {
var t2 = this.offsetAt(e3.start), n2 = this.offsetAt(e3.end);
return this._content.substring(t2, n2);
}
return this._content;
}, e2.prototype.update = function(t2, n2) {
for (var i2 = 0, o2 = t2; i2 < o2.length; i2++) {
var r2 = o2[i2];
if (e2.isIncremental(r2)) {
var s2 = ue(r2.range), a2 = this.offsetAt(s2.start), l2 = this.offsetAt(s2.end);
this._content = this._content.substring(0, a2) + r2.text + this._content.substring(l2, this._content.length);
var c2 = Math.max(s2.start.line, 0), d2 = Math.max(s2.end.line, 0), h2 = this._lineOffsets, u2 = he(r2.text, false, a2);
if (d2 - c2 === u2.length)
for (var p2 = 0, m2 = u2.length; p2 < m2; p2++)
h2[p2 + c2 + 1] = u2[p2];
else
u2.length < 1e4 ? h2.splice.apply(h2, [c2 + 1, d2 - c2].concat(u2)) : this._lineOffsets = h2 = h2.slice(0, c2 + 1).concat(u2, h2.slice(d2 + 1));
var g2 = r2.text.length - (l2 - a2);
if (0 !== g2)
for (p2 = c2 + 1 + u2.length, m2 = h2.length; p2 < m2; p2++)
h2[p2] = h2[p2] + g2;
} else {
if (!e2.isFull(r2))
throw new Error("Unknown change event received");
this._content = r2.text, this._lineOffsets = void 0;
}
}
this._version = n2;
}, e2.prototype.getLineOffsets = function() {
return void 0 === this._lineOffsets && (this._lineOffsets = he(this._content, true)), this._lineOffsets;
}, e2.prototype.positionAt = function(e3) {
e3 = Math.max(Math.min(e3, this._content.length), 0);
var t2 = this.getLineOffsets(), n2 = 0, i2 = t2.length;
if (0 === i2)
return {line: 0, character: e3};
for (; n2 < i2; ) {
var o2 = Math.floor((n2 + i2) / 2);
t2[o2] > e3 ? i2 = o2 : n2 = o2 + 1;
}
var r2 = n2 - 1;
return {line: r2, character: e3 - t2[r2]};
}, e2.prototype.offsetAt = function(e3) {
var t2 = this.getLineOffsets();
if (e3.line >= t2.length)
return this._content.length;
if (e3.line < 0)
return 0;
var n2 = t2[e3.line], i2 = e3.line + 1 < t2.length ? t2[e3.line + 1] : this._content.length;
return Math.max(Math.min(n2 + e3.character, i2), n2);
}, Object.defineProperty(e2.prototype, "lineCount", {get: function() {
return this.getLineOffsets().length;
}, enumerable: true, configurable: true}), e2.isIncremental = function(e3) {
var t2 = e3;
return null != t2 && "string" == typeof t2.text && void 0 !== t2.range && (void 0 === t2.rangeLength || "number" == typeof t2.rangeLength);
}, e2.isFull = function(e3) {
var t2 = e3;
return null != t2 && "string" == typeof t2.text && void 0 === t2.range && void 0 === t2.rangeLength;
}, e2;
}();
function he(e2, t2, n2) {
void 0 === n2 && (n2 = 0);
for (var i2 = t2 ? [n2] : [], o2 = 0; o2 < e2.length; o2++) {
var r2 = e2.charCodeAt(o2);
13 !== r2 && 10 !== r2 || (13 === r2 && o2 + 1 < e2.length && 10 === e2.charCodeAt(o2 + 1) && o2++, i2.push(n2 + o2 + 1));
}
return i2;
}
function ue(e2) {
var t2 = e2.start, n2 = e2.end;
return t2.line > n2.line || t2.line === n2.line && t2.character > n2.character ? {start: n2, end: t2} : e2;
}
function pe(e2) {
var t2 = ue(e2.range);
return t2 !== e2.range ? {newText: e2.newText, range: t2} : e2;
}
!function(e2) {
e2.create = function(e3, t2, n2, i2) {
return new de(e3, t2, n2, i2);
}, e2.update = function(e3, t2, n2) {
if (e3 instanceof de)
return e3.update(t2, n2), e3;
throw new Error("TextDocument.update: document must be created by TextDocument.create");
}, e2.applyEdits = function(e3, t2) {
for (var n2 = e3.getText(), i2 = 0, o2 = [], r2 = 0, s2 = function e4(t3, n3) {
if (t3.length <= 1)
return t3;
var i3 = t3.length / 2 | 0, o3 = t3.slice(0, i3), r3 = t3.slice(i3);
e4(o3, n3), e4(r3, n3);
var s3 = 0, a3 = 0, l3 = 0;
for (; s3 < o3.length && a3 < r3.length; ) {
var c2 = n3(o3[s3], r3[a3]);
t3[l3++] = c2 <= 0 ? o3[s3++] : r3[a3++];
}
for (; s3 < o3.length; )
t3[l3++] = o3[s3++];
for (; a3 < r3.length; )
t3[l3++] = r3[a3++];
return t3;
}(t2.map(pe), function(e4, t3) {
var n3 = e4.range.start.line - t3.range.start.line;
return 0 === n3 ? e4.range.start.character - t3.range.start.character : n3;
}); r2 < s2.length; r2++) {
var a2 = s2[r2], l2 = e3.offsetAt(a2.range.start);
if (l2 < i2)
throw new Error("Overlapping edit");
l2 > i2 && o2.push(n2.substring(i2, l2)), a2.newText.length && o2.push(a2.newText), i2 = e3.offsetAt(a2.range.end);
}
return o2.push(n2.substr(i2)), o2.join("");
};
}(re || (re = {})), function(e2) {
e2[e2.StartCommentTag = 0] = "StartCommentTag", e2[e2.Comment = 1] = "Comment", e2[e2.EndCommentTag = 2] = "EndCommentTag", e2[e2.StartTagOpen = 3] = "StartTagOpen", e2[e2.StartTagClose = 4] = "StartTagClose", e2[e2.StartTagSelfClose = 5] = "StartTagSelfClose", e2[e2.StartTag = 6] = "StartTag", e2[e2.EndTagOpen = 7] = "EndTagOpen", e2[e2.EndTagClose = 8] = "EndTagClose", e2[e2.EndTag = 9] = "EndTag", e2[e2.DelimiterAssign = 10] = "DelimiterAssign", e2[e2.AttributeName = 11] = "AttributeName", e2[e2.AttributeValue = 12] = "AttributeValue", e2[e2.StartDoctypeTag = 13] = "StartDoctypeTag", e2[e2.Doctype = 14] = "Doctype", e2[e2.EndDoctypeTag = 15] = "EndDoctypeTag", e2[e2.Content = 16] = "Content", e2[e2.Whitespace = 17] = "Whitespace", e2[e2.Unknown = 18] = "Unknown", e2[e2.Script = 19] = "Script", e2[e2.Styles = 20] = "Styles", e2[e2.EOS = 21] = "EOS";
}(se || (se = {})), function(e2) {
e2[e2.WithinContent = 0] = "WithinContent", e2[e2.AfterOpeningStartTag = 1] = "AfterOpeningStartTag", e2[e2.AfterOpeningEndTag = 2] = "AfterOpeningEndTag", e2[e2.WithinDoctype = 3] = "WithinDoctype", e2[e2.WithinTag = 4] = "WithinTag", e2[e2.WithinEndTag = 5] = "WithinEndTag", e2[e2.WithinComment = 6] = "WithinComment", e2[e2.WithinScriptContent = 7] = "WithinScriptContent", e2[e2.WithinStyleContent = 8] = "WithinStyleContent", e2[e2.AfterAttributeName = 9] = "AfterAttributeName", e2[e2.BeforeAttributeValue = 10] = "BeforeAttributeValue";
}(ae || (ae = {})), (le || (le = {})).LATEST = {textDocument: {completion: {completionItem: {documentationFormat: [I.Markdown, I.PlainText]}}, hover: {contentFormat: [I.Markdown, I.PlainText]}}}, function(e2) {
e2[e2.Unknown = 0] = "Unknown", e2[e2.File = 1] = "File", e2[e2.Directory = 2] = "Directory", e2[e2.SymbolicLink = 64] = "SymbolicLink";
}(ce || (ce = {}));
var me = r(), ge = function() {
function e2(e3, t2) {
this.source = e3, this.len = e3.length, this.position = t2;
}
return e2.prototype.eos = function() {
return this.len <= this.position;
}, e2.prototype.getSource = function() {
return this.source;
}, e2.prototype.pos = function() {
return this.position;
}, e2.prototype.goBackTo = function(e3) {
this.position = e3;
}, e2.prototype.goBack = function(e3) {
this.position -= e3;
}, e2.prototype.advance = function(e3) {
this.position += e3;
}, e2.prototype.goToEnd = function() {
this.position = this.source.length;
}, e2.prototype.nextChar = function() {
return this.source.charCodeAt(this.position++) || 0;
}, e2.prototype.peekChar = function(e3) {
return void 0 === e3 && (e3 = 0), this.source.charCodeAt(this.position + e3) || 0;
}, e2.prototype.advanceIfChar = function(e3) {
return e3 === this.source.charCodeAt(this.position) && (this.position++, true);
}, e2.prototype.advanceIfChars = function(e3) {
var t2;
if (this.position + e3.length > this.source.length)
return false;
for (t2 = 0; t2 < e3.length; t2++)
if (this.source.charCodeAt(this.position + t2) !== e3[t2])
return false;
return this.advance(t2), true;
}, e2.prototype.advanceIfRegExp = function(e3) {
var t2 = this.source.substr(this.position).match(e3);
return t2 ? (this.position = this.position + t2.index + t2[0].length, t2[0]) : "";
}, e2.prototype.advanceUntilRegExp = function(e3) {
var t2 = this.source.substr(this.position).match(e3);
return t2 ? (this.position = this.position + t2.index, t2[0]) : (this.goToEnd(), "");
}, e2.prototype.advanceUntilChar = function(e3) {
for (; this.position < this.source.length; ) {
if (this.source.charCodeAt(this.position) === e3)
return true;
this.advance(1);
}
return false;
}, e2.prototype.advanceUntilChars = function(e3) {
for (; this.position + e3.length <= this.source.length; ) {
for (var t2 = 0; t2 < e3.length && this.source.charCodeAt(this.position + t2) === e3[t2]; t2++)
;
if (t2 === e3.length)
return true;
this.advance(1);
}
return this.goToEnd(), false;
}, e2.prototype.skipWhitespace = function() {
return this.advanceWhileChar(function(e3) {
return e3 === Te || e3 === Le || e3 === Se || e3 === Ee || e3 === ke;
}) > 0;
}, e2.prototype.advanceWhileChar = function(e3) {
for (var t2 = this.position; this.position < this.len && e3(this.source.charCodeAt(this.position)); )
this.position++;
return this.position - t2;
}, e2;
}(), fe = "!".charCodeAt(0), be = "-".charCodeAt(0), _e = "<".charCodeAt(0), ve = ">".charCodeAt(0), we = "/".charCodeAt(0), ye = "=".charCodeAt(0), Ce = '"'.charCodeAt(0), xe = "'".charCodeAt(0), Se = "\n".charCodeAt(0), ke = "\r".charCodeAt(0), Ee = "\f".charCodeAt(0), Te = " ".charCodeAt(0), Le = " ".charCodeAt(0), Ne = {"text/x-handlebars-template": true};
function Ie(e2, t2, n2, i2) {
void 0 === t2 && (t2 = 0), void 0 === n2 && (n2 = ae.WithinContent), void 0 === i2 && (i2 = false);
var o2, r2, s2, a2, l2, c2 = new ge(e2, t2), d2 = n2, h2 = 0, u2 = se.Unknown;
function p2() {
return c2.advanceIfRegExp(/^[_:\w][_:\w-.\d]*/).toLowerCase();
}
function m2(e3, t3, n3) {
return u2 = t3, h2 = e3, o2 = n3, t3;
}
return {scan: function() {
var e3 = c2.pos(), t3 = d2, n3 = function e4() {
var t4, n4 = c2.pos();
if (c2.eos())
return m2(n4, se.EOS);
switch (d2) {
case ae.WithinComment:
return c2.advanceIfChars([be, be, ve]) ? (d2 = ae.WithinContent, m2(n4, se.EndCommentTag)) : (c2.advanceUntilChars([be, be, ve]), m2(n4, se.Comment));
case ae.WithinDoctype:
return c2.advanceIfChar(ve) ? (d2 = ae.WithinContent, m2(n4, se.EndDoctypeTag)) : (c2.advanceUntilChar(ve), m2(n4, se.Doctype));
case ae.WithinContent:
if (c2.advanceIfChar(_e)) {
if (!c2.eos() && c2.peekChar() === fe) {
if (c2.advanceIfChars([fe, be, be]))
return d2 = ae.WithinComment, m2(n4, se.StartCommentTag);
if (c2.advanceIfRegExp(/^!doctype/i))
return d2 = ae.WithinDoctype, m2(n4, se.StartDoctypeTag);
}
return c2.advanceIfChar(we) ? (d2 = ae.AfterOpeningEndTag, m2(n4, se.EndTagOpen)) : (d2 = ae.AfterOpeningStartTag, m2(n4, se.StartTagOpen));
}
return c2.advanceUntilChar(_e), m2(n4, se.Content);
case ae.AfterOpeningEndTag:
return p2().length > 0 ? (d2 = ae.WithinEndTag, m2(n4, se.EndTag)) : c2.skipWhitespace() ? m2(n4, se.Whitespace, me("error.unexpectedWhitespace", "Tag name must directly follow the open bracket.")) : (d2 = ae.WithinEndTag, c2.advanceUntilChar(ve), n4 < c2.pos() ? m2(n4, se.Unknown, me("error.endTagNameExpected", "End tag name expected.")) : e4());
case ae.WithinEndTag:
if (c2.skipWhitespace())
return m2(n4, se.Whitespace);
if (c2.advanceIfChar(ve))
return d2 = ae.WithinContent, m2(n4, se.EndTagClose);
if (i2 && c2.peekChar() === _e)
return d2 = ae.WithinContent, m2(n4, se.EndTagClose, me("error.closingBracketMissing", "Closing bracket missing."));
t4 = me("error.closingBracketExpected", "Closing bracket expected.");
break;
case ae.AfterOpeningStartTag:
return s2 = p2(), l2 = void 0, a2 = void 0, s2.length > 0 ? (r2 = false, d2 = ae.WithinTag, m2(n4, se.StartTag)) : c2.skipWhitespace() ? m2(n4, se.Whitespace, me("error.unexpectedWhitespace", "Tag name must directly follow the open bracket.")) : (d2 = ae.WithinTag, c2.advanceUntilChar(ve), n4 < c2.pos() ? m2(n4, se.Unknown, me("error.startTagNameExpected", "Start tag name expected.")) : e4());
case ae.WithinTag:
return c2.skipWhitespace() ? (r2 = true, m2(n4, se.Whitespace)) : r2 && (a2 = c2.advanceIfRegExp(/^[^\s"'>=\x00-\x0F\x7F\x80-\x9F]*/).toLowerCase()).length > 0 ? (d2 = ae.AfterAttributeName, r2 = false, m2(n4, se.AttributeName)) : c2.advanceIfChars([we, ve]) ? (d2 = ae.WithinContent, m2(n4, se.StartTagSelfClose)) : c2.advanceIfChar(ve) ? (d2 = "script" === s2 ? l2 && Ne[l2] ? ae.WithinContent : ae.WithinScriptContent : "style" === s2 ? ae.WithinStyleContent : ae.WithinContent, m2(n4, se.StartTagClose)) : i2 && c2.peekChar() === _e ? (d2 = ae.WithinContent, m2(n4, se.StartTagClose, me("error.closingBracketMissing", "Closing bracket missing."))) : (c2.advance(1), m2(n4, se.Unknown, me("error.unexpectedCharacterInTag", "Unexpected character in tag.")));
case ae.AfterAttributeName:
return c2.skipWhitespace() ? (r2 = true, m2(n4, se.Whitespace)) : c2.advanceIfChar(ye) ? (d2 = ae.BeforeAttributeValue, m2(n4, se.DelimiterAssign)) : (d2 = ae.WithinTag, e4());
case ae.BeforeAttributeValue:
if (c2.skipWhitespace())
return m2(n4, se.Whitespace);
var o3 = c2.advanceIfRegExp(/^[^\s"'`=<>]+/);
if (o3.length > 0)
return c2.peekChar() === ve && c2.peekChar(-1) === we && (c2.goBack(1), o3 = o3.substr(0, o3.length - 1)), "type" === a2 && (l2 = o3), d2 = ae.WithinTag, r2 = false, m2(n4, se.AttributeValue);
var h3 = c2.peekChar();
return h3 === xe || h3 === Ce ? (c2.advance(1), c2.advanceUntilChar(h3) && c2.advance(1), "type" === a2 && (l2 = c2.getSource().substring(n4 + 1, c2.pos() - 1)), d2 = ae.WithinTag, r2 = false, m2(n4, se.AttributeValue)) : (d2 = ae.WithinTag, r2 = false, e4());
case ae.WithinScriptContent:
for (var u3 = 1; !c2.eos(); ) {
var g2 = c2.advanceIfRegExp(/|<\/?script\s*\/?>?/i);
if (0 === g2.length)
return c2.goToEnd(), m2(n4, se.Script);
if ("" === g2)
u3 = 1;
else if ("/" !== g2[1])
2 === u3 && (u3 = 3);
else {
if (3 !== u3) {
c2.goBack(g2.length);
break;
}
u3 = 2;
}
}
return d2 = ae.WithinContent, n4 < c2.pos() ? m2(n4, se.Script) : e4();
case ae.WithinStyleContent:
return c2.advanceUntilRegExp(/<\/style/i), d2 = ae.WithinContent, n4 < c2.pos() ? m2(n4, se.Styles) : e4();
}
return c2.advance(1), d2 = ae.WithinContent, m2(n4, se.Unknown, t4);
}();
return n3 === se.EOS || e3 !== c2.pos() || i2 && (n3 === se.StartTagClose || n3 === se.EndTagClose) ? n3 : (console.log("Scanner.scan has not advanced at offset " + e3 + ", state before: " + t3 + " after: " + d2), c2.advance(1), m2(e3, se.Unknown));
}, getTokenType: function() {
return u2;
}, getTokenOffset: function() {
return h2;
}, getTokenLength: function() {
return c2.pos() - h2;
}, getTokenEnd: function() {
return c2.pos();
}, getTokenText: function() {
return c2.getSource().substring(h2, c2.pos());
}, getScannerState: function() {
return d2;
}, getTokenError: function() {
return o2;
}};
}
function Oe(e2, t2) {
var n2 = 0, i2 = e2.length;
if (0 === i2)
return 0;
for (; n2 < i2; ) {
var o2 = Math.floor((n2 + i2) / 2);
t2(e2[o2]) ? i2 = o2 : n2 = o2 + 1;
}
return n2;
}
var De = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "menuitem", "meta", "param", "source", "track", "wbr"];
function Ae(e2) {
return !!e2 && function(e3, t2, n2) {
for (var i2 = 0, o2 = e3.length - 1; i2 <= o2; ) {
var r2 = (i2 + o2) / 2 | 0, s2 = n2(e3[r2], t2);
if (s2 < 0)
i2 = r2 + 1;
else {
if (!(s2 > 0))
return r2;
o2 = r2 - 1;
}
}
return -(i2 + 1);
}(De, e2.toLowerCase(), function(e3, t2) {
return e3.localeCompare(t2);
}) >= 0;
}
var Re = function() {
function e2(e3, t2, n2, i2) {
this.start = e3, this.end = t2, this.children = n2, this.parent = i2, this.closed = false;
}
return Object.defineProperty(e2.prototype, "attributeNames", {get: function() {
return this.attributes ? Object.keys(this.attributes) : [];
}, enumerable: false, configurable: true}), e2.prototype.isSameTag = function(e3) {
return void 0 === this.tag ? void 0 === e3 : void 0 !== e3 && this.tag.length === e3.length && this.tag.toLowerCase() === e3;
}, Object.defineProperty(e2.prototype, "firstChild", {get: function() {
return this.children[0];
}, enumerable: false, configurable: true}), Object.defineProperty(e2.prototype, "lastChild", {get: function() {
return this.children.length ? this.children[this.children.length - 1] : void 0;
}, enumerable: false, configurable: true}), e2.prototype.findNodeBefore = function(e3) {
var t2 = Oe(this.children, function(t3) {
return e3 <= t3.start;
}) - 1;
if (t2 >= 0) {
var n2 = this.children[t2];
if (e3 > n2.start) {
if (e3 < n2.end)
return n2.findNodeBefore(e3);
var i2 = n2.lastChild;
return i2 && i2.end === n2.end ? n2.findNodeBefore(e3) : n2;
}
}
return this;
}, e2.prototype.findNodeAt = function(e3) {
var t2 = Oe(this.children, function(t3) {
return e3 <= t3.start;
}) - 1;
if (t2 >= 0) {
var n2 = this.children[t2];
if (e3 > n2.start && e3 <= n2.end)
return n2.findNodeAt(e3);
}
return this;
}, e2;
}();
function Me(e2) {
for (var t2 = Ie(e2, void 0, void 0, true), n2 = new Re(0, e2.length, [], void 0), i2 = n2, o2 = -1, r2 = void 0, s2 = null, a2 = t2.scan(); a2 !== se.EOS; ) {
switch (a2) {
case se.StartTagOpen:
var l2 = new Re(t2.getTokenOffset(), e2.length, [], i2);
i2.children.push(l2), i2 = l2;
break;
case se.StartTag:
i2.tag = t2.getTokenText();
break;
case se.StartTagClose:
i2.parent && (i2.end = t2.getTokenEnd(), t2.getTokenLength() ? (i2.startTagEnd = t2.getTokenEnd(), i2.tag && Ae(i2.tag) && (i2.closed = true, i2 = i2.parent)) : i2 = i2.parent);
break;
case se.StartTagSelfClose:
i2.parent && (i2.closed = true, i2.end = t2.getTokenEnd(), i2.startTagEnd = t2.getTokenEnd(), i2 = i2.parent);
break;
case se.EndTagOpen:
o2 = t2.getTokenOffset(), r2 = void 0;
break;
case se.EndTag:
r2 = t2.getTokenText().toLowerCase();
break;
case se.EndTagClose:
for (var c2 = i2; !c2.isSameTag(r2) && c2.parent; )
c2 = c2.parent;
if (c2.parent) {
for (; i2 !== c2; )
i2.end = o2, i2.closed = false, i2 = i2.parent;
i2.closed = true, i2.endTagStart = o2, i2.end = t2.getTokenEnd(), i2 = i2.parent;
}
break;
case se.AttributeName:
s2 = t2.getTokenText(), (d2 = i2.attributes) || (i2.attributes = d2 = {}), d2[s2] = null;
break;
case se.AttributeValue:
var d2, h2 = t2.getTokenText();
(d2 = i2.attributes) && s2 && (d2[s2] = h2, s2 = null);
}
a2 = t2.scan();
}
for (; i2.parent; )
i2.end = e2.length, i2.closed = false, i2 = i2.parent;
return {roots: n2.children, findNodeBefore: n2.findNodeBefore.bind(n2), findNodeAt: n2.findNodeAt.bind(n2)};
}
var Pe = {"Aacute;": "Á", Aacute: "Á", "aacute;": "á", aacute: "á", "Abreve;": "Ă", "abreve;": "ă", "ac;": "∾", "acd;": "∿", "acE;": "∾̳", "Acirc;": "Â", Acirc: "Â", "acirc;": "â", acirc: "â", "acute;": "´", acute: "´", "Acy;": "А", "acy;": "а", "AElig;": "Æ", AElig: "Æ", "aelig;": "æ", aelig: "æ", "af;": "", "Afr;": "𝔄", "afr;": "𝔞", "Agrave;": "À", Agrave: "À", "agrave;": "à", agrave: "à", "alefsym;": "ℵ", "aleph;": "ℵ", "Alpha;": "Α", "alpha;": "α", "Amacr;": "Ā", "amacr;": "ā", "amalg;": "⨿", "AMP;": "&", AMP: "&", "amp;": "&", amp: "&", "And;": "⩓", "and;": "∧", "andand;": "⩕", "andd;": "⩜", "andslope;": "⩘", "andv;": "⩚", "ang;": "∠", "ange;": "⦤", "angle;": "∠", "angmsd;": "∡", "angmsdaa;": "⦨", "angmsdab;": "⦩", "angmsdac;": "⦪", "angmsdad;": "⦫", "angmsdae;": "⦬", "angmsdaf;": "⦭", "angmsdag;": "⦮", "angmsdah;": "⦯", "angrt;": "∟", "angrtvb;": "⊾", "angrtvbd;": "⦝", "angsph;": "∢", "angst;": "Å", "angzarr;": "⍼", "Aogon;": "Ą", "aogon;": "ą", "Aopf;": "𝔸", "aopf;": "𝕒", "ap;": "≈", "apacir;": "⩯", "apE;": "⩰", "ape;": "≊", "apid;": "≋", "apos;": "'", "ApplyFunction;": "", "approx;": "≈", "approxeq;": "≊", "Aring;": "Å", Aring: "Å", "aring;": "å", aring: "å", "Ascr;": "𝒜", "ascr;": "𝒶", "Assign;": "≔", "ast;": "*", "asymp;": "≈", "asympeq;": "≍", "Atilde;": "Ã", Atilde: "Ã", "atilde;": "ã", atilde: "ã", "Auml;": "Ä", Auml: "Ä", "auml;": "ä", auml: "ä", "awconint;": "∳", "awint;": "⨑", "backcong;": "≌", "backepsilon;": "϶", "backprime;": "‵", "backsim;": "∽", "backsimeq;": "⋍", "Backslash;": "∖", "Barv;": "⫧", "barvee;": "⊽", "Barwed;": "⌆", "barwed;": "⌅", "barwedge;": "⌅", "bbrk;": "⎵", "bbrktbrk;": "⎶", "bcong;": "≌", "Bcy;": "Б", "bcy;": "б", "bdquo;": "„", "becaus;": "∵", "Because;": "∵", "because;": "∵", "bemptyv;": "⦰", "bepsi;": "϶", "bernou;": "ℬ", "Bernoullis;": "ℬ", "Beta;": "Β", "beta;": "β", "beth;": "ℶ", "between;": "≬", "Bfr;": "𝔅", "bfr;": "𝔟", "bigcap;": "⋂", "bigcirc;": "◯", "bigcup;": "⋃", "bigodot;": "⨀", "bigoplus;": "⨁", "bigotimes;": "⨂", "bigsqcup;": "⨆", "bigstar;": "★", "bigtriangledown;": "▽", "bigtriangleup;": "△", "biguplus;": "⨄", "bigvee;": "⋁", "bigwedge;": "⋀", "bkarow;": "⤍", "blacklozenge;": "⧫", "blacksquare;": "▪", "blacktriangle;": "▴", "blacktriangledown;": "▾", "blacktriangleleft;": "◂", "blacktriangleright;": "▸", "blank;": "␣", "blk12;": "▒", "blk14;": "░", "blk34;": "▓", "block;": "█", "bne;": "=⃥", "bnequiv;": "≡⃥", "bNot;": "⫭", "bnot;": "⌐", "Bopf;": "𝔹", "bopf;": "𝕓", "bot;": "⊥", "bottom;": "⊥", "bowtie;": "⋈", "boxbox;": "⧉", "boxDL;": "╗", "boxDl;": "╖", "boxdL;": "╕", "boxdl;": "┐", "boxDR;": "╔", "boxDr;": "╓", "boxdR;": "╒", "boxdr;": "┌", "boxH;": "═", "boxh;": "─", "boxHD;": "╦", "boxHd;": "╤", "boxhD;": "╥", "boxhd;": "┬", "boxHU;": "╩", "boxHu;": "╧", "boxhU;": "╨", "boxhu;": "┴", "boxminus;": "⊟", "boxplus;": "⊞", "boxtimes;": "⊠", "boxUL;": "╝", "boxUl;": "╜", "boxuL;": "╛", "boxul;": "┘", "boxUR;": "╚", "boxUr;": "╙", "boxuR;": "╘", "boxur;": "└", "boxV;": "║", "boxv;": "│", "boxVH;": "╬", "boxVh;": "╫", "boxvH;": "╪", "boxvh;": "┼", "boxVL;": "╣", "boxVl;": "╢", "boxvL;": "╡", "boxvl;": "┤", "boxVR;": "╠", "boxVr;": "╟", "boxvR;": "╞", "boxvr;": "├", "bprime;": "‵", "Breve;": "˘", "breve;": "˘", "brvbar;": "¦", brvbar: "¦", "Bscr;": "ℬ", "bscr;": "𝒷", "bsemi;": "⁏", "bsim;": "∽", "bsime;": "⋍", "bsol;": "\\", "bsolb;": "⧅", "bsolhsub;": "⟈", "bull;": "•", "bullet;": "•", "bump;": "≎", "bumpE;": "⪮", "bumpe;": "≏", "Bumpeq;": "≎", "bumpeq;": "≏", "Cacute;": "Ć", "cacute;": "ć", "Cap;": "⋒", "cap;": "∩", "capand;": "⩄", "capbrcup;": "⩉", "capcap;": "⩋", "capcup;": "⩇", "capdot;": "⩀", "CapitalDifferentialD;": "ⅅ", "caps;": "∩︀", "caret;": "⁁", "caron;": "ˇ", "Cayleys;": "ℭ", "ccaps;": "⩍", "Ccaron;": "Č", "ccaron;": "č", "Ccedil;": "Ç", Ccedil: "Ç", "ccedil;": "ç", ccedil: "ç", "Ccirc;": "Ĉ", "ccirc;": "ĉ", "Cconint;": "∰", "ccups;": "⩌", "ccupssm;": "⩐", "Cdot;": "Ċ", "cdot;": "ċ", "cedil;": "¸", cedil: "¸", "Cedilla;": "¸", "cemptyv;": "⦲", "cent;": "¢", cent: "¢", "CenterDot;": "·", "centerdot;": "·", "Cfr;": "ℭ", "cfr;": "𝔠", "CHcy;": "Ч", "chcy;": "ч", "check;": "✓", "checkmark;": "✓", "Chi;": "Χ", "chi;": "χ", "cir;": "○", "circ;": "ˆ", "circeq;": "≗", "circlearrowleft;": "↺", "circlearrowright;": "↻", "circledast;": "⊛", "circledcirc;": "⊚", "circleddash;": "⊝", "CircleDot;": "⊙", "circledR;": "®", "circledS;": "Ⓢ", "CircleMinus;": "⊖", "CirclePlus;": "⊕", "CircleTimes;": "⊗", "cirE;": "⧃", "cire;": "≗", "cirfnint;": "⨐", "cirmid;": "⫯", "cirscir;": "⧂", "ClockwiseContourIntegral;": "∲", "CloseCurlyDoubleQuote;": "”", "CloseCurlyQuote;": "’", "clubs;": "♣", "clubsuit;": "♣", "Colon;": "∷", "colon;": ":", "Colone;": "⩴", "colone;": "≔", "coloneq;": "≔", "comma;": ",", "commat;": "@", "comp;": "∁", "compfn;": "∘", "complement;": "∁", "complexes;": "ℂ", "cong;": "≅", "congdot;": "⩭", "Congruent;": "≡", "Conint;": "∯", "conint;": "∮", "ContourIntegral;": "∮", "Copf;": "ℂ", "copf;": "𝕔", "coprod;": "∐", "Coproduct;": "∐", "COPY;": "©", COPY: "©", "copy;": "©", copy: "©", "copysr;": "℗", "CounterClockwiseContourIntegral;": "∳", "crarr;": "↵", "Cross;": "⨯", "cross;": "✗", "Cscr;": "𝒞", "cscr;": "𝒸", "csub;": "⫏", "csube;": "⫑", "csup;": "⫐", "csupe;": "⫒", "ctdot;": "⋯", "cudarrl;": "⤸", "cudarrr;": "⤵", "cuepr;": "⋞", "cuesc;": "⋟", "cularr;": "↶", "cularrp;": "⤽", "Cup;": "⋓", "cup;": "∪", "cupbrcap;": "⩈", "CupCap;": "≍", "cupcap;": "⩆", "cupcup;": "⩊", "cupdot;": "⊍", "cupor;": "⩅", "cups;": "∪︀", "curarr;": "↷", "curarrm;": "⤼", "curlyeqprec;": "⋞", "curlyeqsucc;": "⋟", "curlyvee;": "⋎", "curlywedge;": "⋏", "curren;": "¤", curren: "¤", "curvearrowleft;": "↶", "curvearrowright;": "↷", "cuvee;": "⋎", "cuwed;": "⋏", "cwconint;": "∲", "cwint;": "∱", "cylcty;": "⌭", "Dagger;": "‡", "dagger;": "†", "daleth;": "ℸ", "Darr;": "↡", "dArr;": "⇓", "darr;": "↓", "dash;": "‐", "Dashv;": "⫤", "dashv;": "⊣", "dbkarow;": "⤏", "dblac;": "˝", "Dcaron;": "Ď", "dcaron;": "ď", "Dcy;": "Д", "dcy;": "д", "DD;": "ⅅ", "dd;": "ⅆ", "ddagger;": "‡", "ddarr;": "⇊", "DDotrahd;": "⤑", "ddotseq;": "⩷", "deg;": "°", deg: "°", "Del;": "∇", "Delta;": "Δ", "delta;": "δ", "demptyv;": "⦱", "dfisht;": "⥿", "Dfr;": "𝔇", "dfr;": "𝔡", "dHar;": "⥥", "dharl;": "⇃", "dharr;": "⇂", "DiacriticalAcute;": "´", "DiacriticalDot;": "˙", "DiacriticalDoubleAcute;": "˝", "DiacriticalGrave;": "`", "DiacriticalTilde;": "˜", "diam;": "⋄", "Diamond;": "⋄", "diamond;": "⋄", "diamondsuit;": "♦", "diams;": "♦", "die;": "¨", "DifferentialD;": "ⅆ", "digamma;": "ϝ", "disin;": "⋲", "div;": "÷", "divide;": "÷", divide: "÷", "divideontimes;": "⋇", "divonx;": "⋇", "DJcy;": "Ђ", "djcy;": "ђ", "dlcorn;": "⌞", "dlcrop;": "⌍", "dollar;": "$", "Dopf;": "𝔻", "dopf;": "𝕕", "Dot;": "¨", "dot;": "˙", "DotDot;": "⃜", "doteq;": "≐", "doteqdot;": "≑", "DotEqual;": "≐", "dotminus;": "∸", "dotplus;": "∔", "dotsquare;": "⊡", "doublebarwedge;": "⌆", "DoubleContourIntegral;": "∯", "DoubleDot;": "¨", "DoubleDownArrow;": "⇓", "DoubleLeftArrow;": "⇐", "DoubleLeftRightArrow;": "⇔", "DoubleLeftTee;": "⫤", "DoubleLongLeftArrow;": "⟸", "DoubleLongLeftRightArrow;": "⟺", "DoubleLongRightArrow;": "⟹", "DoubleRightArrow;": "⇒", "DoubleRightTee;": "⊨", "DoubleUpArrow;": "⇑", "DoubleUpDownArrow;": "⇕", "DoubleVerticalBar;": "∥", "DownArrow;": "↓", "Downarrow;": "⇓", "downarrow;": "↓", "DownArrowBar;": "⤓", "DownArrowUpArrow;": "⇵", "DownBreve;": "̑", "downdownarrows;": "⇊", "downharpoonleft;": "⇃", "downharpoonright;": "⇂", "DownLeftRightVector;": "⥐", "DownLeftTeeVector;": "⥞", "DownLeftVector;": "↽", "DownLeftVectorBar;": "⥖", "DownRightTeeVector;": "⥟", "DownRightVector;": "⇁", "DownRightVectorBar;": "⥗", "DownTee;": "⊤", "DownTeeArrow;": "↧", "drbkarow;": "⤐", "drcorn;": "⌟", "drcrop;": "⌌", "Dscr;": "𝒟", "dscr;": "𝒹", "DScy;": "Ѕ", "dscy;": "ѕ", "dsol;": "⧶", "Dstrok;": "Đ", "dstrok;": "đ", "dtdot;": "⋱", "dtri;": "▿", "dtrif;": "▾", "duarr;": "⇵", "duhar;": "⥯", "dwangle;": "⦦", "DZcy;": "Џ", "dzcy;": "џ", "dzigrarr;": "⟿", "Eacute;": "É", Eacute: "É", "eacute;": "é", eacute: "é", "easter;": "⩮", "Ecaron;": "Ě", "ecaron;": "ě", "ecir;": "≖", "Ecirc;": "Ê", Ecirc: "Ê", "ecirc;": "ê", ecirc: "ê", "ecolon;": "≕", "Ecy;": "Э", "ecy;": "э", "eDDot;": "⩷", "Edot;": "Ė", "eDot;": "≑", "edot;": "ė", "ee;": "ⅇ", "efDot;": "≒", "Efr;": "𝔈", "efr;": "𝔢", "eg;": "⪚", "Egrave;": "È", Egrave: "È", "egrave;": "è", egrave: "è", "egs;": "⪖", "egsdot;": "⪘", "el;": "⪙", "Element;": "∈", "elinters;": "⏧", "ell;": "ℓ", "els;": "⪕", "elsdot;": "⪗", "Emacr;": "Ē", "emacr;": "ē", "empty;": "∅", "emptyset;": "∅", "EmptySmallSquare;": "◻", "emptyv;": "∅", "EmptyVerySmallSquare;": "▫", "emsp;": " ", "emsp13;": " ", "emsp14;": " ", "ENG;": "Ŋ", "eng;": "ŋ", "ensp;": " ", "Eogon;": "Ę", "eogon;": "ę", "Eopf;": "𝔼", "eopf;": "𝕖", "epar;": "⋕", "eparsl;": "⧣", "eplus;": "⩱", "epsi;": "ε", "Epsilon;": "Ε", "epsilon;": "ε", "epsiv;": "ϵ", "eqcirc;": "≖", "eqcolon;": "≕", "eqsim;": "≂", "eqslantgtr;": "⪖", "eqslantless;": "⪕", "Equal;": "⩵", "equals;": "=", "EqualTilde;": "≂", "equest;": "≟", "Equilibrium;": "⇌", "equiv;": "≡", "equivDD;": "⩸", "eqvparsl;": "⧥", "erarr;": "⥱", "erDot;": "≓", "Escr;": "ℰ", "escr;": "ℯ", "esdot;": "≐", "Esim;": "⩳", "esim;": "≂", "Eta;": "Η", "eta;": "η", "ETH;": "Ð", ETH: "Ð", "eth;": "ð", eth: "ð", "Euml;": "Ë", Euml: "Ë", "euml;": "ë", euml: "ë", "euro;": "€", "excl;": "!", "exist;": "∃", "Exists;": "∃", "expectation;": "ℰ", "ExponentialE;": "ⅇ", "exponentiale;": "ⅇ", "fallingdotseq;": "≒", "Fcy;": "Ф", "fcy;": "ф", "female;": "♀", "ffilig;": "ffi", "fflig;": "ff", "ffllig;": "ffl", "Ffr;": "𝔉", "ffr;": "𝔣", "filig;": "fi", "FilledSmallSquare;": "◼", "FilledVerySmallSquare;": "▪", "fjlig;": "fj", "flat;": "♭", "fllig;": "fl", "fltns;": "▱", "fnof;": "ƒ", "Fopf;": "𝔽", "fopf;": "𝕗", "ForAll;": "∀", "forall;": "∀", "fork;": "⋔", "forkv;": "⫙", "Fouriertrf;": "ℱ", "fpartint;": "⨍", "frac12;": "½", frac12: "½", "frac13;": "⅓", "frac14;": "¼", frac14: "¼", "frac15;": "⅕", "frac16;": "⅙", "frac18;": "⅛", "frac23;": "⅔", "frac25;": "⅖", "frac34;": "¾", frac34: "¾", "frac35;": "⅗", "frac38;": "⅜", "frac45;": "⅘", "frac56;": "⅚", "frac58;": "⅝", "frac78;": "⅞", "frasl;": "⁄", "frown;": "⌢", "Fscr;": "ℱ", "fscr;": "𝒻", "gacute;": "ǵ", "Gamma;": "Γ", "gamma;": "γ", "Gammad;": "Ϝ", "gammad;": "ϝ", "gap;": "⪆", "Gbreve;": "Ğ", "gbreve;": "ğ", "Gcedil;": "Ģ", "Gcirc;": "Ĝ", "gcirc;": "ĝ", "Gcy;": "Г", "gcy;": "г", "Gdot;": "Ġ", "gdot;": "ġ", "gE;": "≧", "ge;": "≥", "gEl;": "⪌", "gel;": "⋛", "geq;": "≥", "geqq;": "≧", "geqslant;": "⩾", "ges;": "⩾", "gescc;": "⪩", "gesdot;": "⪀", "gesdoto;": "⪂", "gesdotol;": "⪄", "gesl;": "⋛︀", "gesles;": "⪔", "Gfr;": "𝔊", "gfr;": "𝔤", "Gg;": "⋙", "gg;": "≫", "ggg;": "⋙", "gimel;": "ℷ", "GJcy;": "Ѓ", "gjcy;": "ѓ", "gl;": "≷", "gla;": "⪥", "glE;": "⪒", "glj;": "⪤", "gnap;": "⪊", "gnapprox;": "⪊", "gnE;": "≩", "gne;": "⪈", "gneq;": "⪈", "gneqq;": "≩", "gnsim;": "⋧", "Gopf;": "𝔾", "gopf;": "𝕘", "grave;": "`", "GreaterEqual;": "≥", "GreaterEqualLess;": "⋛", "GreaterFullEqual;": "≧", "GreaterGreater;": "⪢", "GreaterLess;": "≷", "GreaterSlantEqual;": "⩾", "GreaterTilde;": "≳", "Gscr;": "𝒢", "gscr;": "ℊ", "gsim;": "≳", "gsime;": "⪎", "gsiml;": "⪐", "GT;": ">", GT: ">", "Gt;": "≫", "gt;": ">", gt: ">", "gtcc;": "⪧", "gtcir;": "⩺", "gtdot;": "⋗", "gtlPar;": "⦕", "gtquest;": "⩼", "gtrapprox;": "⪆", "gtrarr;": "⥸", "gtrdot;": "⋗", "gtreqless;": "⋛", "gtreqqless;": "⪌", "gtrless;": "≷", "gtrsim;": "≳", "gvertneqq;": "≩︀", "gvnE;": "≩︀", "Hacek;": "ˇ", "hairsp;": " ", "half;": "½", "hamilt;": "ℋ", "HARDcy;": "Ъ", "hardcy;": "ъ", "hArr;": "⇔", "harr;": "↔", "harrcir;": "⥈", "harrw;": "↭", "Hat;": "^", "hbar;": "ℏ", "Hcirc;": "Ĥ", "hcirc;": "ĥ", "hearts;": "♥", "heartsuit;": "♥", "hellip;": "…", "hercon;": "⊹", "Hfr;": "ℌ", "hfr;": "𝔥", "HilbertSpace;": "ℋ", "hksearow;": "⤥", "hkswarow;": "⤦", "hoarr;": "⇿", "homtht;": "∻", "hookleftarrow;": "↩", "hookrightarrow;": "↪", "Hopf;": "ℍ", "hopf;": "𝕙", "horbar;": "―", "HorizontalLine;": "─", "Hscr;": "ℋ", "hscr;": "𝒽", "hslash;": "ℏ", "Hstrok;": "Ħ", "hstrok;": "ħ", "HumpDownHump;": "≎", "HumpEqual;": "≏", "hybull;": "⁃", "hyphen;": "‐", "Iacute;": "Í", Iacute: "Í", "iacute;": "í", iacute: "í", "ic;": "", "Icirc;": "Î", Icirc: "Î", "icirc;": "î", icirc: "î", "Icy;": "И", "icy;": "и", "Idot;": "İ", "IEcy;": "Е", "iecy;": "е", "iexcl;": "¡", iexcl: "¡", "iff;": "⇔", "Ifr;": "ℑ", "ifr;": "𝔦", "Igrave;": "Ì", Igrave: "Ì", "igrave;": "ì", igrave: "ì", "ii;": "ⅈ", "iiiint;": "⨌", "iiint;": "∭", "iinfin;": "⧜", "iiota;": "℩", "IJlig;": "IJ", "ijlig;": "ij", "Im;": "ℑ", "Imacr;": "Ī", "imacr;": "ī", "image;": "ℑ", "ImaginaryI;": "ⅈ", "imagline;": "ℐ", "imagpart;": "ℑ", "imath;": "ı", "imof;": "⊷", "imped;": "Ƶ", "Implies;": "⇒", "in;": "∈", "incare;": "℅", "infin;": "∞", "infintie;": "⧝", "inodot;": "ı", "Int;": "∬", "int;": "∫", "intcal;": "⊺", "integers;": "ℤ", "Integral;": "∫", "intercal;": "⊺", "Intersection;": "⋂", "intlarhk;": "⨗", "intprod;": "⨼", "InvisibleComma;": "", "InvisibleTimes;": "", "IOcy;": "Ё", "iocy;": "ё", "Iogon;": "Į", "iogon;": "į", "Iopf;": "𝕀", "iopf;": "𝕚", "Iota;": "Ι", "iota;": "ι", "iprod;": "⨼", "iquest;": "¿", iquest: "¿", "Iscr;": "ℐ", "iscr;": "𝒾", "isin;": "∈", "isindot;": "⋵", "isinE;": "⋹", "isins;": "⋴", "isinsv;": "⋳", "isinv;": "∈", "it;": "", "Itilde;": "Ĩ", "itilde;": "ĩ", "Iukcy;": "І", "iukcy;": "і", "Iuml;": "Ï", Iuml: "Ï", "iuml;": "ï", iuml: "ï", "Jcirc;": "Ĵ", "jcirc;": "ĵ", "Jcy;": "Й", "jcy;": "й", "Jfr;": "𝔍", "jfr;": "𝔧", "jmath;": "ȷ", "Jopf;": "𝕁", "jopf;": "𝕛", "Jscr;": "𝒥", "jscr;": "𝒿", "Jsercy;": "Ј", "jsercy;": "ј", "Jukcy;": "Є", "jukcy;": "є", "Kappa;": "Κ", "kappa;": "κ", "kappav;": "ϰ", "Kcedil;": "Ķ", "kcedil;": "ķ", "Kcy;": "К", "kcy;": "к", "Kfr;": "𝔎", "kfr;": "𝔨", "kgreen;": "ĸ", "KHcy;": "Х", "khcy;": "х", "KJcy;": "Ќ", "kjcy;": "ќ", "Kopf;": "𝕂", "kopf;": "𝕜", "Kscr;": "𝒦", "kscr;": "𝓀", "lAarr;": "⇚", "Lacute;": "Ĺ", "lacute;": "ĺ", "laemptyv;": "⦴", "lagran;": "ℒ", "Lambda;": "Λ", "lambda;": "λ", "Lang;": "⟪", "lang;": "⟨", "langd;": "⦑", "langle;": "⟨", "lap;": "⪅", "Laplacetrf;": "ℒ", "laquo;": "«", laquo: "«", "Larr;": "↞", "lArr;": "⇐", "larr;": "←", "larrb;": "⇤", "larrbfs;": "⤟", "larrfs;": "⤝", "larrhk;": "↩", "larrlp;": "↫", "larrpl;": "⤹", "larrsim;": "⥳", "larrtl;": "↢", "lat;": "⪫", "lAtail;": "⤛", "latail;": "⤙", "late;": "⪭", "lates;": "⪭︀", "lBarr;": "⤎", "lbarr;": "⤌", "lbbrk;": "❲", "lbrace;": "{", "lbrack;": "[", "lbrke;": "⦋", "lbrksld;": "⦏", "lbrkslu;": "⦍", "Lcaron;": "Ľ", "lcaron;": "ľ", "Lcedil;": "Ļ", "lcedil;": "ļ", "lceil;": "⌈", "lcub;": "{", "Lcy;": "Л", "lcy;": "л", "ldca;": "⤶", "ldquo;": "“", "ldquor;": "„", "ldrdhar;": "⥧", "ldrushar;": "⥋", "ldsh;": "↲", "lE;": "≦", "le;": "≤", "LeftAngleBracket;": "⟨", "LeftArrow;": "←", "Leftarrow;": "⇐", "leftarrow;": "←", "LeftArrowBar;": "⇤", "LeftArrowRightArrow;": "⇆", "leftarrowtail;": "↢", "LeftCeiling;": "⌈", "LeftDoubleBracket;": "⟦", "LeftDownTeeVector;": "⥡", "LeftDownVector;": "⇃", "LeftDownVectorBar;": "⥙", "LeftFloor;": "⌊", "leftharpoondown;": "↽", "leftharpoonup;": "↼", "leftleftarrows;": "⇇", "LeftRightArrow;": "↔", "Leftrightarrow;": "⇔", "leftrightarrow;": "↔", "leftrightarrows;": "⇆", "leftrightharpoons;": "⇋", "leftrightsquigarrow;": "↭", "LeftRightVector;": "⥎", "LeftTee;": "⊣", "LeftTeeArrow;": "↤", "LeftTeeVector;": "⥚", "leftthreetimes;": "⋋", "LeftTriangle;": "⊲", "LeftTriangleBar;": "⧏", "LeftTriangleEqual;": "⊴", "LeftUpDownVector;": "⥑", "LeftUpTeeVector;": "⥠", "LeftUpVector;": "↿", "LeftUpVectorBar;": "⥘", "LeftVector;": "↼", "LeftVectorBar;": "⥒", "lEg;": "⪋", "leg;": "⋚", "leq;": "≤", "leqq;": "≦", "leqslant;": "⩽", "les;": "⩽", "lescc;": "⪨", "lesdot;": "⩿", "lesdoto;": "⪁", "lesdotor;": "⪃", "lesg;": "⋚︀", "lesges;": "⪓", "lessapprox;": "⪅", "lessdot;": "⋖", "lesseqgtr;": "⋚", "lesseqqgtr;": "⪋", "LessEqualGreater;": "⋚", "LessFullEqual;": "≦", "LessGreater;": "≶", "lessgtr;": "≶", "LessLess;": "⪡", "lesssim;": "≲", "LessSlantEqual;": "⩽", "LessTilde;": "≲", "lfisht;": "⥼", "lfloor;": "⌊", "Lfr;": "𝔏", "lfr;": "𝔩", "lg;": "≶", "lgE;": "⪑", "lHar;": "⥢", "lhard;": "↽", "lharu;": "↼", "lharul;": "⥪", "lhblk;": "▄", "LJcy;": "Љ", "ljcy;": "љ", "Ll;": "⋘", "ll;": "≪", "llarr;": "⇇", "llcorner;": "⌞", "Lleftarrow;": "⇚", "llhard;": "⥫", "lltri;": "◺", "Lmidot;": "Ŀ", "lmidot;": "ŀ", "lmoust;": "⎰", "lmoustache;": "⎰", "lnap;": "⪉", "lnapprox;": "⪉", "lnE;": "≨", "lne;": "⪇", "lneq;": "⪇", "lneqq;": "≨", "lnsim;": "⋦", "loang;": "⟬", "loarr;": "⇽", "lobrk;": "⟦", "LongLeftArrow;": "⟵", "Longleftarrow;": "⟸", "longleftarrow;": "⟵", "LongLeftRightArrow;": "⟷", "Longleftrightarrow;": "⟺", "longleftrightarrow;": "⟷", "longmapsto;": "⟼", "LongRightArrow;": "⟶", "Longrightarrow;": "⟹", "longrightarrow;": "⟶", "looparrowleft;": "↫", "looparrowright;": "↬", "lopar;": "⦅", "Lopf;": "𝕃", "lopf;": "𝕝", "loplus;": "⨭", "lotimes;": "⨴", "lowast;": "∗", "lowbar;": "_", "LowerLeftArrow;": "↙", "LowerRightArrow;": "↘", "loz;": "◊", "lozenge;": "◊", "lozf;": "⧫", "lpar;": "(", "lparlt;": "⦓", "lrarr;": "⇆", "lrcorner;": "⌟", "lrhar;": "⇋", "lrhard;": "⥭", "lrm;": "", "lrtri;": "⊿", "lsaquo;": "‹", "Lscr;": "ℒ", "lscr;": "𝓁", "Lsh;": "↰", "lsh;": "↰", "lsim;": "≲", "lsime;": "⪍", "lsimg;": "⪏", "lsqb;": "[", "lsquo;": "‘", "lsquor;": "‚", "Lstrok;": "Ł", "lstrok;": "ł", "LT;": "<", LT: "<", "Lt;": "≪", "lt;": "<", lt: "<", "ltcc;": "⪦", "ltcir;": "⩹", "ltdot;": "⋖", "lthree;": "⋋", "ltimes;": "⋉", "ltlarr;": "⥶", "ltquest;": "⩻", "ltri;": "◃", "ltrie;": "⊴", "ltrif;": "◂", "ltrPar;": "⦖", "lurdshar;": "⥊", "luruhar;": "⥦", "lvertneqq;": "≨︀", "lvnE;": "≨︀", "macr;": "¯", macr: "¯", "male;": "♂", "malt;": "✠", "maltese;": "✠", "Map;": "⤅", "map;": "↦", "mapsto;": "↦", "mapstodown;": "↧", "mapstoleft;": "↤", "mapstoup;": "↥", "marker;": "▮", "mcomma;": "⨩", "Mcy;": "М", "mcy;": "м", "mdash;": "—", "mDDot;": "∺", "measuredangle;": "∡", "MediumSpace;": " ", "Mellintrf;": "ℳ", "Mfr;": "𝔐", "mfr;": "𝔪", "mho;": "℧", "micro;": "µ", micro: "µ", "mid;": "∣", "midast;": "*", "midcir;": "⫰", "middot;": "·", middot: "·", "minus;": "−", "minusb;": "⊟", "minusd;": "∸", "minusdu;": "⨪", "MinusPlus;": "∓", "mlcp;": "⫛", "mldr;": "…", "mnplus;": "∓", "models;": "⊧", "Mopf;": "𝕄", "mopf;": "𝕞", "mp;": "∓", "Mscr;": "ℳ", "mscr;": "𝓂", "mstpos;": "∾", "Mu;": "Μ", "mu;": "μ", "multimap;": "⊸", "mumap;": "⊸", "nabla;": "∇", "Nacute;": "Ń", "nacute;": "ń", "nang;": "∠⃒", "nap;": "≉", "napE;": "⩰̸", "napid;": "≋̸", "napos;": "ʼn", "napprox;": "≉", "natur;": "♮", "natural;": "♮", "naturals;": "ℕ", "nbsp;": " ", nbsp: " ", "nbump;": "≎̸", "nbumpe;": "≏̸", "ncap;": "⩃", "Ncaron;": "Ň", "ncaron;": "ň", "Ncedil;": "Ņ", "ncedil;": "ņ", "ncong;": "≇", "ncongdot;": "⩭̸", "ncup;": "⩂", "Ncy;": "Н", "ncy;": "н", "ndash;": "–", "ne;": "≠", "nearhk;": "⤤", "neArr;": "⇗", "nearr;": "↗", "nearrow;": "↗", "nedot;": "≐̸", "NegativeMediumSpace;": "", "NegativeThickSpace;": "", "NegativeThinSpace;": "", "NegativeVeryThinSpace;": "", "nequiv;": "≢", "nesear;": "⤨", "nesim;": "≂̸", "NestedGreaterGreater;": "≫", "NestedLessLess;": "≪", "NewLine;": "\n", "nexist;": "∄", "nexists;": "∄", "Nfr;": "𝔑", "nfr;": "𝔫", "ngE;": "≧̸", "nge;": "≱", "ngeq;": "≱", "ngeqq;": "≧̸", "ngeqslant;": "⩾̸", "nges;": "⩾̸", "nGg;": "⋙̸", "ngsim;": "≵", "nGt;": "≫⃒", "ngt;": "≯", "ngtr;": "≯", "nGtv;": "≫̸", "nhArr;": "⇎", "nharr;": "↮", "nhpar;": "⫲", "ni;": "∋", "nis;": "⋼", "nisd;": "⋺", "niv;": "∋", "NJcy;": "Њ", "njcy;": "њ", "nlArr;": "⇍", "nlarr;": "↚", "nldr;": "‥", "nlE;": "≦̸", "nle;": "≰", "nLeftarrow;": "⇍", "nleftarrow;": "↚", "nLeftrightarrow;": "⇎", "nleftrightarrow;": "↮", "nleq;": "≰", "nleqq;": "≦̸", "nleqslant;": "⩽̸", "nles;": "⩽̸", "nless;": "≮", "nLl;": "⋘̸", "nlsim;": "≴", "nLt;": "≪⃒", "nlt;": "≮", "nltri;": "⋪", "nltrie;": "⋬", "nLtv;": "≪̸", "nmid;": "∤", "NoBreak;": "", "NonBreakingSpace;": " ", "Nopf;": "ℕ", "nopf;": "𝕟", "Not;": "⫬", "not;": "¬", not: "¬", "NotCongruent;": "≢", "NotCupCap;": "≭", "NotDoubleVerticalBar;": "∦", "NotElement;": "∉", "NotEqual;": "≠", "NotEqualTilde;": "≂̸", "NotExists;": "∄", "NotGreater;": "≯", "NotGreaterEqual;": "≱", "NotGreaterFullEqual;": "≧̸", "NotGreaterGreater;": "≫̸", "NotGreaterLess;": "≹", "NotGreaterSlantEqual;": "⩾̸", "NotGreaterTilde;": "≵", "NotHumpDownHump;": "≎̸", "NotHumpEqual;": "≏̸", "notin;": "∉", "notindot;": "⋵̸", "notinE;": "⋹̸", "notinva;": "∉", "notinvb;": "⋷", "notinvc;": "⋶", "NotLeftTriangle;": "⋪", "NotLeftTriangleBar;": "⧏̸", "NotLeftTriangleEqual;": "⋬", "NotLess;": "≮", "NotLessEqual;": "≰", "NotLessGreater;": "≸", "NotLessLess;": "≪̸", "NotLessSlantEqual;": "⩽̸", "NotLessTilde;": "≴", "NotNestedGreaterGreater;": "⪢̸", "NotNestedLessLess;": "⪡̸", "notni;": "∌", "notniva;": "∌", "notnivb;": "⋾", "notnivc;": "⋽", "NotPrecedes;": "⊀", "NotPrecedesEqual;": "⪯̸", "NotPrecedesSlantEqual;": "⋠", "NotReverseElement;": "∌", "NotRightTriangle;": "⋫", "NotRightTriangleBar;": "⧐̸", "NotRightTriangleEqual;": "⋭", "NotSquareSubset;": "⊏̸", "NotSquareSubsetEqual;": "⋢", "NotSquareSuperset;": "⊐̸", "NotSquareSupersetEqual;": "⋣", "NotSubset;": "⊂⃒", "NotSubsetEqual;": "⊈", "NotSucceeds;": "⊁", "NotSucceedsEqual;": "⪰̸", "NotSucceedsSlantEqual;": "⋡", "NotSucceedsTilde;": "≿̸", "NotSuperset;": "⊃⃒", "NotSupersetEqual;": "⊉", "NotTilde;": "≁", "NotTildeEqual;": "≄", "NotTildeFullEqual;": "≇", "NotTildeTilde;": "≉", "NotVerticalBar;": "∤", "npar;": "∦", "nparallel;": "∦", "nparsl;": "⫽⃥", "npart;": "∂̸", "npolint;": "⨔", "npr;": "⊀", "nprcue;": "⋠", "npre;": "⪯̸", "nprec;": "⊀", "npreceq;": "⪯̸", "nrArr;": "⇏", "nrarr;": "↛", "nrarrc;": "⤳̸", "nrarrw;": "↝̸", "nRightarrow;": "⇏", "nrightarrow;": "↛", "nrtri;": "⋫", "nrtrie;": "⋭", "nsc;": "⊁", "nsccue;": "⋡", "nsce;": "⪰̸", "Nscr;": "𝒩", "nscr;": "𝓃", "nshortmid;": "∤", "nshortparallel;": "∦", "nsim;": "≁", "nsime;": "≄", "nsimeq;": "≄", "nsmid;": "∤", "nspar;": "∦", "nsqsube;": "⋢", "nsqsupe;": "⋣", "nsub;": "⊄", "nsubE;": "⫅̸", "nsube;": "⊈", "nsubset;": "⊂⃒", "nsubseteq;": "⊈", "nsubseteqq;": "⫅̸", "nsucc;": "⊁", "nsucceq;": "⪰̸", "nsup;": "⊅", "nsupE;": "⫆̸", "nsupe;": "⊉", "nsupset;": "⊃⃒", "nsupseteq;": "⊉", "nsupseteqq;": "⫆̸", "ntgl;": "≹", "Ntilde;": "Ñ", Ntilde: "Ñ", "ntilde;": "ñ", ntilde: "ñ", "ntlg;": "≸", "ntriangleleft;": "⋪", "ntrianglelefteq;": "⋬", "ntriangleright;": "⋫", "ntrianglerighteq;": "⋭", "Nu;": "Ν", "nu;": "ν", "num;": "#", "numero;": "№", "numsp;": " ", "nvap;": "≍⃒", "nVDash;": "⊯", "nVdash;": "⊮", "nvDash;": "⊭", "nvdash;": "⊬", "nvge;": "≥⃒", "nvgt;": ">⃒", "nvHarr;": "⤄", "nvinfin;": "⧞", "nvlArr;": "⤂", "nvle;": "≤⃒", "nvlt;": "<⃒", "nvltrie;": "⊴⃒", "nvrArr;": "⤃", "nvrtrie;": "⊵⃒", "nvsim;": "∼⃒", "nwarhk;": "⤣", "nwArr;": "⇖", "nwarr;": "↖", "nwarrow;": "↖", "nwnear;": "⤧", "Oacute;": "Ó", Oacute: "Ó", "oacute;": "ó", oacute: "ó", "oast;": "⊛", "ocir;": "⊚", "Ocirc;": "Ô", Ocirc: "Ô", "ocirc;": "ô", ocirc: "ô", "Ocy;": "О", "ocy;": "о", "odash;": "⊝", "Odblac;": "Ő", "odblac;": "ő", "odiv;": "⨸", "odot;": "⊙", "odsold;": "⦼", "OElig;": "Œ", "oelig;": "œ", "ofcir;": "⦿", "Ofr;": "𝔒", "ofr;": "𝔬", "ogon;": "˛", "Ograve;": "Ò", Ograve: "Ò", "ograve;": "ò", ograve: "ò", "ogt;": "⧁", "ohbar;": "⦵", "ohm;": "Ω", "oint;": "∮", "olarr;": "↺", "olcir;": "⦾", "olcross;": "⦻", "oline;": "‾", "olt;": "⧀", "Omacr;": "Ō", "omacr;": "ō", "Omega;": "Ω", "omega;": "ω", "Omicron;": "Ο", "omicron;": "ο", "omid;": "⦶", "ominus;": "⊖", "Oopf;": "𝕆", "oopf;": "𝕠", "opar;": "⦷", "OpenCurlyDoubleQuote;": "“", "OpenCurlyQuote;": "‘", "operp;": "⦹", "oplus;": "⊕", "Or;": "⩔", "or;": "∨", "orarr;": "↻", "ord;": "⩝", "order;": "ℴ", "orderof;": "ℴ", "ordf;": "ª", ordf: "ª", "ordm;": "º", ordm: "º", "origof;": "⊶", "oror;": "⩖", "orslope;": "⩗", "orv;": "⩛", "oS;": "Ⓢ", "Oscr;": "𝒪", "oscr;": "ℴ", "Oslash;": "Ø", Oslash: "Ø", "oslash;": "ø", oslash: "ø", "osol;": "⊘", "Otilde;": "Õ", Otilde: "Õ", "otilde;": "õ", otilde: "õ", "Otimes;": "⨷", "otimes;": "⊗", "otimesas;": "⨶", "Ouml;": "Ö", Ouml: "Ö", "ouml;": "ö", ouml: "ö", "ovbar;": "⌽", "OverBar;": "‾", "OverBrace;": "⏞", "OverBracket;": "⎴", "OverParenthesis;": "⏜", "par;": "∥", "para;": "¶", para: "¶", "parallel;": "∥", "parsim;": "⫳", "parsl;": "⫽", "part;": "∂", "PartialD;": "∂", "Pcy;": "П", "pcy;": "п", "percnt;": "%", "period;": ".", "permil;": "‰", "perp;": "⊥", "pertenk;": "‱", "Pfr;": "𝔓", "pfr;": "𝔭", "Phi;": "Φ", "phi;": "φ", "phiv;": "ϕ", "phmmat;": "ℳ", "phone;": "☎", "Pi;": "Π", "pi;": "π", "pitchfork;": "⋔", "piv;": "ϖ", "planck;": "ℏ", "planckh;": "ℎ", "plankv;": "ℏ", "plus;": "+", "plusacir;": "⨣", "plusb;": "⊞", "pluscir;": "⨢", "plusdo;": "∔", "plusdu;": "⨥", "pluse;": "⩲", "PlusMinus;": "±", "plusmn;": "±", plusmn: "±", "plussim;": "⨦", "plustwo;": "⨧", "pm;": "±", "Poincareplane;": "ℌ", "pointint;": "⨕", "Popf;": "ℙ", "popf;": "𝕡", "pound;": "£", pound: "£", "Pr;": "⪻", "pr;": "≺", "prap;": "⪷", "prcue;": "≼", "prE;": "⪳", "pre;": "⪯", "prec;": "≺", "precapprox;": "⪷", "preccurlyeq;": "≼", "Precedes;": "≺", "PrecedesEqual;": "⪯", "PrecedesSlantEqual;": "≼", "PrecedesTilde;": "≾", "preceq;": "⪯", "precnapprox;": "⪹", "precneqq;": "⪵", "precnsim;": "⋨", "precsim;": "≾", "Prime;": "″", "prime;": "′", "primes;": "ℙ", "prnap;": "⪹", "prnE;": "⪵", "prnsim;": "⋨", "prod;": "∏", "Product;": "∏", "profalar;": "⌮", "profline;": "⌒", "profsurf;": "⌓", "prop;": "∝", "Proportion;": "∷", "Proportional;": "∝", "propto;": "∝", "prsim;": "≾", "prurel;": "⊰", "Pscr;": "𝒫", "pscr;": "𝓅", "Psi;": "Ψ", "psi;": "ψ", "puncsp;": " ", "Qfr;": "𝔔", "qfr;": "𝔮", "qint;": "⨌", "Qopf;": "ℚ", "qopf;": "𝕢", "qprime;": "⁗", "Qscr;": "𝒬", "qscr;": "𝓆", "quaternions;": "ℍ", "quatint;": "⨖", "quest;": "?", "questeq;": "≟", "QUOT;": '"', QUOT: '"', "quot;": '"', quot: '"', "rAarr;": "⇛", "race;": "∽̱", "Racute;": "Ŕ", "racute;": "ŕ", "radic;": "√", "raemptyv;": "⦳", "Rang;": "⟫", "rang;": "⟩", "rangd;": "⦒", "range;": "⦥", "rangle;": "⟩", "raquo;": "»", raquo: "»", "Rarr;": "↠", "rArr;": "⇒", "rarr;": "→", "rarrap;": "⥵", "rarrb;": "⇥", "rarrbfs;": "⤠", "rarrc;": "⤳", "rarrfs;": "⤞", "rarrhk;": "↪", "rarrlp;": "↬", "rarrpl;": "⥅", "rarrsim;": "⥴", "Rarrtl;": "⤖", "rarrtl;": "↣", "rarrw;": "↝", "rAtail;": "⤜", "ratail;": "⤚", "ratio;": "∶", "rationals;": "ℚ", "RBarr;": "⤐", "rBarr;": "⤏", "rbarr;": "⤍", "rbbrk;": "❳", "rbrace;": "}", "rbrack;": "]", "rbrke;": "⦌", "rbrksld;": "⦎", "rbrkslu;": "⦐", "Rcaron;": "Ř", "rcaron;": "ř", "Rcedil;": "Ŗ", "rcedil;": "ŗ", "rceil;": "⌉", "rcub;": "}", "Rcy;": "Р", "rcy;": "р", "rdca;": "⤷", "rdldhar;": "⥩", "rdquo;": "”", "rdquor;": "”", "rdsh;": "↳", "Re;": "ℜ", "real;": "ℜ", "realine;": "ℛ", "realpart;": "ℜ", "reals;": "ℝ", "rect;": "▭", "REG;": "®", REG: "®", "reg;": "®", reg: "®", "ReverseElement;": "∋", "ReverseEquilibrium;": "⇋", "ReverseUpEquilibrium;": "⥯", "rfisht;": "⥽", "rfloor;": "⌋", "Rfr;": "ℜ", "rfr;": "𝔯", "rHar;": "⥤", "rhard;": "⇁", "rharu;": "⇀", "rharul;": "⥬", "Rho;": "Ρ", "rho;": "ρ", "rhov;": "ϱ", "RightAngleBracket;": "⟩", "RightArrow;": "→", "Rightarrow;": "⇒", "rightarrow;": "→", "RightArrowBar;": "⇥", "RightArrowLeftArrow;": "⇄", "rightarrowtail;": "↣", "RightCeiling;": "⌉", "RightDoubleBracket;": "⟧", "RightDownTeeVector;": "⥝", "RightDownVector;": "⇂", "RightDownVectorBar;": "⥕", "RightFloor;": "⌋", "rightharpoondown;": "⇁", "rightharpoonup;": "⇀", "rightleftarrows;": "⇄", "rightleftharpoons;": "⇌", "rightrightarrows;": "⇉", "rightsquigarrow;": "↝", "RightTee;": "⊢", "RightTeeArrow;": "↦", "RightTeeVector;": "⥛", "rightthreetimes;": "⋌", "RightTriangle;": "⊳", "RightTriangleBar;": "⧐", "RightTriangleEqual;": "⊵", "RightUpDownVector;": "⥏", "RightUpTeeVector;": "⥜", "RightUpVector;": "↾", "RightUpVectorBar;": "⥔", "RightVector;": "⇀", "RightVectorBar;": "⥓", "ring;": "˚", "risingdotseq;": "≓", "rlarr;": "⇄", "rlhar;": "⇌", "rlm;": "", "rmoust;": "⎱", "rmoustache;": "⎱", "rnmid;": "⫮", "roang;": "⟭", "roarr;": "⇾", "robrk;": "⟧", "ropar;": "⦆", "Ropf;": "ℝ", "ropf;": "𝕣", "roplus;": "⨮", "rotimes;": "⨵", "RoundImplies;": "⥰", "rpar;": ")", "rpargt;": "⦔", "rppolint;": "⨒", "rrarr;": "⇉", "Rrightarrow;": "⇛", "rsaquo;": "›", "Rscr;": "ℛ", "rscr;": "𝓇", "Rsh;": "↱", "rsh;": "↱", "rsqb;": "]", "rsquo;": "’", "rsquor;": "’", "rthree;": "⋌", "rtimes;": "⋊", "rtri;": "▹", "rtrie;": "⊵", "rtrif;": "▸", "rtriltri;": "⧎", "RuleDelayed;": "⧴", "ruluhar;": "⥨", "rx;": "℞", "Sacute;": "Ś", "sacute;": "ś", "sbquo;": "‚", "Sc;": "⪼", "sc;": "≻", "scap;": "⪸", "Scaron;": "Š", "scaron;": "š", "sccue;": "≽", "scE;": "⪴", "sce;": "⪰", "Scedil;": "Ş", "scedil;": "ş", "Scirc;": "Ŝ", "scirc;": "ŝ", "scnap;": "⪺", "scnE;": "⪶", "scnsim;": "⋩", "scpolint;": "⨓", "scsim;": "≿", "Scy;": "С", "scy;": "с", "sdot;": "⋅", "sdotb;": "⊡", "sdote;": "⩦", "searhk;": "⤥", "seArr;": "⇘", "searr;": "↘", "searrow;": "↘", "sect;": "§", sect: "§", "semi;": ";", "seswar;": "⤩", "setminus;": "∖", "setmn;": "∖", "sext;": "✶", "Sfr;": "𝔖", "sfr;": "𝔰", "sfrown;": "⌢", "sharp;": "♯", "SHCHcy;": "Щ", "shchcy;": "щ", "SHcy;": "Ш", "shcy;": "ш", "ShortDownArrow;": "↓", "ShortLeftArrow;": "←", "shortmid;": "∣", "shortparallel;": "∥", "ShortRightArrow;": "→", "ShortUpArrow;": "↑", "shy;": "", shy: "", "Sigma;": "Σ", "sigma;": "σ", "sigmaf;": "ς", "sigmav;": "ς", "sim;": "∼", "simdot;": "⩪", "sime;": "≃", "simeq;": "≃", "simg;": "⪞", "simgE;": "⪠", "siml;": "⪝", "simlE;": "⪟", "simne;": "≆", "simplus;": "⨤", "simrarr;": "⥲", "slarr;": "←", "SmallCircle;": "∘", "smallsetminus;": "∖", "smashp;": "⨳", "smeparsl;": "⧤", "smid;": "∣", "smile;": "⌣", "smt;": "⪪", "smte;": "⪬", "smtes;": "⪬︀", "SOFTcy;": "Ь", "softcy;": "ь", "sol;": "/", "solb;": "⧄", "solbar;": "⌿", "Sopf;": "𝕊", "sopf;": "𝕤", "spades;": "♠", "spadesuit;": "♠", "spar;": "∥", "sqcap;": "⊓", "sqcaps;": "⊓︀", "sqcup;": "⊔", "sqcups;": "⊔︀", "Sqrt;": "√", "sqsub;": "⊏", "sqsube;": "⊑", "sqsubset;": "⊏", "sqsubseteq;": "⊑", "sqsup;": "⊐", "sqsupe;": "⊒", "sqsupset;": "⊐", "sqsupseteq;": "⊒", "squ;": "□", "Square;": "□", "square;": "□", "SquareIntersection;": "⊓", "SquareSubset;": "⊏", "SquareSubsetEqual;": "⊑", "SquareSuperset;": "⊐", "SquareSupersetEqual;": "⊒", "SquareUnion;": "⊔", "squarf;": "▪", "squf;": "▪", "srarr;": "→", "Sscr;": "𝒮", "sscr;": "𝓈", "ssetmn;": "∖", "ssmile;": "⌣", "sstarf;": "⋆", "Star;": "⋆", "star;": "☆", "starf;": "★", "straightepsilon;": "ϵ", "straightphi;": "ϕ", "strns;": "¯", "Sub;": "⋐", "sub;": "⊂", "subdot;": "⪽", "subE;": "⫅", "sube;": "⊆", "subedot;": "⫃", "submult;": "⫁", "subnE;": "⫋", "subne;": "⊊", "subplus;": "⪿", "subrarr;": "⥹", "Subset;": "⋐", "subset;": "⊂", "subseteq;": "⊆", "subseteqq;": "⫅", "SubsetEqual;": "⊆", "subsetneq;": "⊊", "subsetneqq;": "⫋", "subsim;": "⫇", "subsub;": "⫕", "subsup;": "⫓", "succ;": "≻", "succapprox;": "⪸", "succcurlyeq;": "≽", "Succeeds;": "≻", "SucceedsEqual;": "⪰", "SucceedsSlantEqual;": "≽", "SucceedsTilde;": "≿", "succeq;": "⪰", "succnapprox;": "⪺", "succneqq;": "⪶", "succnsim;": "⋩", "succsim;": "≿", "SuchThat;": "∋", "Sum;": "∑", "sum;": "∑", "sung;": "♪", "Sup;": "⋑", "sup;": "⊃", "sup1;": "¹", sup1: "¹", "sup2;": "²", sup2: "²", "sup3;": "³", sup3: "³", "supdot;": "⪾", "supdsub;": "⫘", "supE;": "⫆", "supe;": "⊇", "supedot;": "⫄", "Superset;": "⊃", "SupersetEqual;": "⊇", "suphsol;": "⟉", "suphsub;": "⫗", "suplarr;": "⥻", "supmult;": "⫂", "supnE;": "⫌", "supne;": "⊋", "supplus;": "⫀", "Supset;": "⋑", "supset;": "⊃", "supseteq;": "⊇", "supseteqq;": "⫆", "supsetneq;": "⊋", "supsetneqq;": "⫌", "supsim;": "⫈", "supsub;": "⫔", "supsup;": "⫖", "swarhk;": "⤦", "swArr;": "⇙", "swarr;": "↙", "swarrow;": "↙", "swnwar;": "⤪", "szlig;": "ß", szlig: "ß", "Tab;": " ", "target;": "⌖", "Tau;": "Τ", "tau;": "τ", "tbrk;": "⎴", "Tcaron;": "Ť", "tcaron;": "ť", "Tcedil;": "Ţ", "tcedil;": "ţ", "Tcy;": "Т", "tcy;": "т", "tdot;": "⃛", "telrec;": "⌕", "Tfr;": "𝔗", "tfr;": "𝔱", "there4;": "∴", "Therefore;": "∴", "therefore;": "∴", "Theta;": "Θ", "theta;": "θ", "thetasym;": "ϑ", "thetav;": "ϑ", "thickapprox;": "≈", "thicksim;": "∼", "ThickSpace;": " ", "thinsp;": " ", "ThinSpace;": " ", "thkap;": "≈", "thksim;": "∼", "THORN;": "Þ", THORN: "Þ", "thorn;": "þ", thorn: "þ", "Tilde;": "∼", "tilde;": "˜", "TildeEqual;": "≃", "TildeFullEqual;": "≅", "TildeTilde;": "≈", "times;": "×", times: "×", "timesb;": "⊠", "timesbar;": "⨱", "timesd;": "⨰", "tint;": "∭", "toea;": "⤨", "top;": "⊤", "topbot;": "⌶", "topcir;": "⫱", "Topf;": "𝕋", "topf;": "𝕥", "topfork;": "⫚", "tosa;": "⤩", "tprime;": "‴", "TRADE;": "™", "trade;": "™", "triangle;": "▵", "triangledown;": "▿", "triangleleft;": "◃", "trianglelefteq;": "⊴", "triangleq;": "≜", "triangleright;": "▹", "trianglerighteq;": "⊵", "tridot;": "◬", "trie;": "≜", "triminus;": "⨺", "TripleDot;": "⃛", "triplus;": "⨹", "trisb;": "⧍", "tritime;": "⨻", "trpezium;": "⏢", "Tscr;": "𝒯", "tscr;": "𝓉", "TScy;": "Ц", "tscy;": "ц", "TSHcy;": "Ћ", "tshcy;": "ћ", "Tstrok;": "Ŧ", "tstrok;": "ŧ", "twixt;": "≬", "twoheadleftarrow;": "↞", "twoheadrightarrow;": "↠", "Uacute;": "Ú", Uacute: "Ú", "uacute;": "ú", uacute: "ú", "Uarr;": "↟", "uArr;": "⇑", "uarr;": "↑", "Uarrocir;": "⥉", "Ubrcy;": "Ў", "ubrcy;": "ў", "Ubreve;": "Ŭ", "ubreve;": "ŭ", "Ucirc;": "Û", Ucirc: "Û", "ucirc;": "û", ucirc: "û", "Ucy;": "У", "ucy;": "у", "udarr;": "⇅", "Udblac;": "Ű", "udblac;": "ű", "udhar;": "⥮", "ufisht;": "⥾", "Ufr;": "𝔘", "ufr;": "𝔲", "Ugrave;": "Ù", Ugrave: "Ù", "ugrave;": "ù", ugrave: "ù", "uHar;": "⥣", "uharl;": "↿", "uharr;": "↾", "uhblk;": "▀", "ulcorn;": "⌜", "ulcorner;": "⌜", "ulcrop;": "⌏", "ultri;": "◸", "Umacr;": "Ū", "umacr;": "ū", "uml;": "¨", uml: "¨", "UnderBar;": "_", "UnderBrace;": "⏟", "UnderBracket;": "⎵", "UnderParenthesis;": "⏝", "Union;": "⋃", "UnionPlus;": "⊎", "Uogon;": "Ų", "uogon;": "ų", "Uopf;": "𝕌", "uopf;": "𝕦", "UpArrow;": "↑", "Uparrow;": "⇑", "uparrow;": "↑", "UpArrowBar;": "⤒", "UpArrowDownArrow;": "⇅", "UpDownArrow;": "↕", "Updownarrow;": "⇕", "updownarrow;": "↕", "UpEquilibrium;": "⥮", "upharpoonleft;": "↿", "upharpoonright;": "↾", "uplus;": "⊎", "UpperLeftArrow;": "↖", "UpperRightArrow;": "↗", "Upsi;": "ϒ", "upsi;": "υ", "upsih;": "ϒ", "Upsilon;": "Υ", "upsilon;": "υ", "UpTee;": "⊥", "UpTeeArrow;": "↥", "upuparrows;": "⇈", "urcorn;": "⌝", "urcorner;": "⌝", "urcrop;": "⌎", "Uring;": "Ů", "uring;": "ů", "urtri;": "◹", "Uscr;": "𝒰", "uscr;": "𝓊", "utdot;": "⋰", "Utilde;": "Ũ", "utilde;": "ũ", "utri;": "▵", "utrif;": "▴", "uuarr;": "⇈", "Uuml;": "Ü", Uuml: "Ü", "uuml;": "ü", uuml: "ü", "uwangle;": "⦧", "vangrt;": "⦜", "varepsilon;": "ϵ", "varkappa;": "ϰ", "varnothing;": "∅", "varphi;": "ϕ", "varpi;": "ϖ", "varpropto;": "∝", "vArr;": "⇕", "varr;": "↕", "varrho;": "ϱ", "varsigma;": "ς", "varsubsetneq;": "⊊︀", "varsubsetneqq;": "⫋︀", "varsupsetneq;": "⊋︀", "varsupsetneqq;": "⫌︀", "vartheta;": "ϑ", "vartriangleleft;": "⊲", "vartriangleright;": "⊳", "Vbar;": "⫫", "vBar;": "⫨", "vBarv;": "⫩", "Vcy;": "В", "vcy;": "в", "VDash;": "⊫", "Vdash;": "⊩", "vDash;": "⊨", "vdash;": "⊢", "Vdashl;": "⫦", "Vee;": "⋁", "vee;": "∨", "veebar;": "⊻", "veeeq;": "≚", "vellip;": "⋮", "Verbar;": "‖", "verbar;": "|", "Vert;": "‖", "vert;": "|", "VerticalBar;": "∣", "VerticalLine;": "|", "VerticalSeparator;": "❘", "VerticalTilde;": "≀", "VeryThinSpace;": " ", "Vfr;": "𝔙", "vfr;": "𝔳", "vltri;": "⊲", "vnsub;": "⊂⃒", "vnsup;": "⊃⃒", "Vopf;": "𝕍", "vopf;": "𝕧", "vprop;": "∝", "vrtri;": "⊳", "Vscr;": "𝒱", "vscr;": "𝓋", "vsubnE;": "⫋︀", "vsubne;": "⊊︀", "vsupnE;": "⫌︀", "vsupne;": "⊋︀", "Vvdash;": "⊪", "vzigzag;": "⦚", "Wcirc;": "Ŵ", "wcirc;": "ŵ", "wedbar;": "⩟", "Wedge;": "⋀", "wedge;": "∧", "wedgeq;": "≙", "weierp;": "℘", "Wfr;": "𝔚", "wfr;": "𝔴", "Wopf;": "𝕎", "wopf;": "𝕨", "wp;": "℘", "wr;": "≀", "wreath;": "≀", "Wscr;": "𝒲", "wscr;": "𝓌", "xcap;": "⋂", "xcirc;": "◯", "xcup;": "⋃", "xdtri;": "▽", "Xfr;": "𝔛", "xfr;": "𝔵", "xhArr;": "⟺", "xharr;": "⟷", "Xi;": "Ξ", "xi;": "ξ", "xlArr;": "⟸", "xlarr;": "⟵", "xmap;": "⟼", "xnis;": "⋻", "xodot;": "⨀", "Xopf;": "𝕏", "xopf;": "𝕩", "xoplus;": "⨁", "xotime;": "⨂", "xrArr;": "⟹", "xrarr;": "⟶", "Xscr;": "𝒳", "xscr;": "𝓍", "xsqcup;": "⨆", "xuplus;": "⨄", "xutri;": "△", "xvee;": "⋁", "xwedge;": "⋀", "Yacute;": "Ý", Yacute: "Ý", "yacute;": "ý", yacute: "ý", "YAcy;": "Я", "yacy;": "я", "Ycirc;": "Ŷ", "ycirc;": "ŷ", "Ycy;": "Ы", "ycy;": "ы", "yen;": "¥", yen: "¥", "Yfr;": "𝔜", "yfr;": "𝔶", "YIcy;": "Ї", "yicy;": "ї", "Yopf;": "𝕐", "yopf;": "𝕪", "Yscr;": "𝒴", "yscr;": "𝓎", "YUcy;": "Ю", "yucy;": "ю", "Yuml;": "Ÿ", "yuml;": "ÿ", yuml: "ÿ", "Zacute;": "Ź", "zacute;": "ź", "Zcaron;": "Ž", "zcaron;": "ž", "Zcy;": "З", "zcy;": "з", "Zdot;": "Ż", "zdot;": "ż", "zeetrf;": "ℨ", "ZeroWidthSpace;": "", "Zeta;": "Ζ", "zeta;": "ζ", "Zfr;": "ℨ", "zfr;": "𝔷", "ZHcy;": "Ж", "zhcy;": "ж", "zigrarr;": "⇝", "Zopf;": "ℤ", "zopf;": "𝕫", "Zscr;": "𝒵", "zscr;": "𝓏", "zwj;": "", "zwnj;": ""};
function Fe(e2, t2) {
if (e2.length < t2.length)
return false;
for (var n2 = 0; n2 < t2.length; n2++)
if (e2[n2] !== t2[n2])
return false;
return true;
}
function We(e2, t2) {
for (var n2 = ""; t2 > 0; )
1 == (1 & t2) && (n2 += e2), e2 += e2, t2 >>>= 1;
return n2;
}
var ze = "a".charCodeAt(0), Be = "z".charCodeAt(0), je = "A".charCodeAt(0), Ve = "Z".charCodeAt(0), Ue = "0".charCodeAt(0), He = "9".charCodeAt(0);
function qe(e2, t2) {
var n2 = e2.charCodeAt(t2);
return ze <= n2 && n2 <= Be || je <= n2 && n2 <= Ve || Ue <= n2 && n2 <= He;
}
function $e(e2) {
return void 0 !== e2;
}
var Ke = function() {
function e2(e3, t2) {
var n2 = this;
this.id = e3, this._tags = [], this._tagMap = {}, this._valueSetMap = {}, this._tags = t2.tags || [], this._globalAttributes = t2.globalAttributes || [], this._tags.forEach(function(e4) {
n2._tagMap[e4.name.toLowerCase()] = e4;
}), t2.valueSets && t2.valueSets.forEach(function(e4) {
n2._valueSetMap[e4.name] = e4.values;
});
}
return e2.prototype.isApplicable = function() {
return true;
}, e2.prototype.getId = function() {
return this.id;
}, e2.prototype.provideTags = function() {
return this._tags;
}, e2.prototype.provideAttributes = function(e3) {
var t2 = [], n2 = function(e4) {
t2.push(e4);
}, i2 = this._tagMap[e3.toLowerCase()];
return i2 && i2.attributes.forEach(n2), this._globalAttributes.forEach(n2), t2;
}, e2.prototype.provideValues = function(e3, t2) {
var n2 = this, i2 = [];
t2 = t2.toLowerCase();
var o2 = function(e4) {
e4.forEach(function(e5) {
e5.name.toLowerCase() === t2 && (e5.values && e5.values.forEach(function(e6) {
i2.push(e6);
}), e5.valueSet && n2._valueSetMap[e5.valueSet] && n2._valueSetMap[e5.valueSet].forEach(function(e6) {
i2.push(e6);
}));
});
}, r2 = this._tagMap[e3.toLowerCase()];
return r2 ? (o2(r2.attributes), o2(this._globalAttributes), i2) : [];
}, e2;
}();
function Ge(e2, t2) {
var n2 = {kind: t2 ? "markdown" : "plaintext", value: ""};
if (e2.description) {
var i2 = function(e3) {
if (e3)
return "string" == typeof e3 ? {kind: "markdown", value: e3} : {kind: "markdown", value: e3.value};
}(e2.description);
i2 && (n2.value += i2.value);
}
if (e2.references && e2.references.length > 0 && (n2.value += "\n\n", n2.value += t2 ? e2.references.map(function(e3) {
return "[" + e3.name + "](" + e3.url + ")";
}).join(" | ") : e2.references.map(function(e3) {
return e3.name + ": " + e3.url;
}).join("\n")), "" !== n2.value)
return n2;
}
var Ye = function(e2, t2, n2, i2) {
return new (n2 || (n2 = Promise))(function(o2, r2) {
function s2(e3) {
try {
l2(i2.next(e3));
} catch (e4) {
r2(e4);
}
}
function a2(e3) {
try {
l2(i2.throw(e3));
} catch (e4) {
r2(e4);
}
}
function l2(e3) {
var t3;
e3.done ? o2(e3.value) : (t3 = e3.value, t3 instanceof n2 ? t3 : new n2(function(e4) {
e4(t3);
})).then(s2, a2);
}
l2((i2 = i2.apply(e2, t2 || [])).next());
});
}, Ze = function(e2, t2) {
var n2, i2, o2, r2, s2 = {label: 0, sent: function() {
if (1 & o2[0])
throw o2[1];
return o2[1];
}, trys: [], ops: []};
return r2 = {next: a2(0), throw: a2(1), return: a2(2)}, "function" == typeof Symbol && (r2[Symbol.iterator] = function() {
return this;
}), r2;
function a2(r3) {
return function(a3) {
return function(r4) {
if (n2)
throw new TypeError("Generator is already executing.");
for (; s2; )
try {
if (n2 = 1, i2 && (o2 = 2 & r4[0] ? i2.return : r4[0] ? i2.throw || ((o2 = i2.return) && o2.call(i2), 0) : i2.next) && !(o2 = o2.call(i2, r4[1])).done)
return o2;
switch (i2 = 0, o2 && (r4 = [2 & r4[0], o2.value]), r4[0]) {
case 0:
case 1:
o2 = r4;
break;
case 4:
return s2.label++, {value: r4[1], done: false};
case 5:
s2.label++, i2 = r4[1], r4 = [0];
continue;
case 7:
r4 = s2.ops.pop(), s2.trys.pop();
continue;
default:
if (!(o2 = s2.trys, (o2 = o2.length > 0 && o2[o2.length - 1]) || 6 !== r4[0] && 2 !== r4[0])) {
s2 = 0;
continue;
}
if (3 === r4[0] && (!o2 || r4[1] > o2[0] && r4[1] < o2[3])) {
s2.label = r4[1];
break;
}
if (6 === r4[0] && s2.label < o2[1]) {
s2.label = o2[1], o2 = r4;
break;
}
if (o2 && s2.label < o2[2]) {
s2.label = o2[2], s2.ops.push(r4);
break;
}
o2[2] && s2.ops.pop(), s2.trys.pop();
continue;
}
r4 = t2.call(e2, s2);
} catch (e3) {
r4 = [6, e3], i2 = 0;
} finally {
n2 = o2 = 0;
}
if (5 & r4[0])
throw r4[1];
return {value: r4[0] ? r4[1] : void 0, done: true};
}([r3, a3]);
};
}
}, Xe = function() {
function e2(e3) {
this.readDirectory = e3, this.atributeCompletions = [];
}
return e2.prototype.onHtmlAttributeValue = function(e3) {
(function(e4, t2) {
var n2 = tt[e4];
if (n2)
return "string" == typeof n2 ? n2 === t2 : -1 !== n2.indexOf(t2);
return false;
})(e3.tag, e3.attribute) && this.atributeCompletions.push(e3);
}, e2.prototype.computeCompletions = function(e3, t2) {
return Ye(this, void 0, void 0, function() {
var n2, i2, o2, r2, s2, l2, c2, d2, h2, u2;
return Ze(this, function(p2) {
switch (p2.label) {
case 0:
n2 = {items: [], isIncomplete: false}, i2 = 0, o2 = this.atributeCompletions, p2.label = 1;
case 1:
return i2 < o2.length ? (r2 = o2[i2], function(e4) {
if (Fe(e4, "http") || Fe(e4, "https") || Fe(e4, "//"))
return false;
return true;
}(s2 = function(e4) {
return Fe(e4, "'") || Fe(e4, '"') ? e4.slice(1, -1) : e4;
}(e3.getText(r2.range))) ? "." !== s2 && ".." !== s2 ? [3, 2] : (n2.isIncomplete = true, [3, 4]) : [3, 4]) : [3, 5];
case 2:
return l2 = function(e4, t3, n3) {
var i3, o3 = e4.lastIndexOf("/");
if (-1 === o3)
i3 = function(e5, t4, n4) {
var i4 = et(e5.start, t4), o4 = et(e5.end, n4);
return a.create(i4, o4);
}(n3, 1, -1);
else {
var r3 = t3.slice(o3 + 1), s3 = et(n3.end, -1 - r3.length), l3 = r3.indexOf(" "), c3 = void 0;
c3 = -1 !== l3 ? et(s3, l3) : et(n3.end, -1), i3 = a.create(s3, c3);
}
return i3;
}(r2.value, s2, r2.range), [4, this.providePathSuggestions(r2.value, l2, e3, t2)];
case 3:
for (c2 = p2.sent(), d2 = 0, h2 = c2; d2 < h2.length; d2++)
u2 = h2[d2], n2.items.push(u2);
p2.label = 4;
case 4:
return i2++, [3, 1];
case 5:
return [2, n2];
}
});
});
}, e2.prototype.providePathSuggestions = function(e3, t2, n2, i2) {
return Ye(this, void 0, void 0, function() {
var o2, r2, s2, a2, l2, c2, d2, h2, u2;
return Ze(this, function(p2) {
switch (p2.label) {
case 0:
if (o2 = e3.substring(0, e3.lastIndexOf("/") + 1), !(r2 = i2.resolveReference(o2 || ".", n2.uri)))
return [3, 4];
p2.label = 1;
case 1:
return p2.trys.push([1, 3, , 4]), s2 = [], [4, this.readDirectory(r2)];
case 2:
for (a2 = p2.sent(), l2 = 0, c2 = a2; l2 < c2.length; l2++)
d2 = c2[l2], h2 = d2[0], u2 = d2[1], h2.charCodeAt(0) !== Qe && s2.push(Je(h2, u2 === ce.Directory, t2));
return [2, s2];
case 3:
return p2.sent(), [3, 4];
case 4:
return [2, []];
}
});
});
}, e2;
}(), Qe = ".".charCodeAt(0);
function Je(e2, t2, n2) {
return t2 ? {label: e2 += "/", kind: D.Folder, textEdit: y.replace(n2, e2), command: {title: "Suggest", command: "editor.action.triggerSuggest"}} : {label: e2, kind: D.File, textEdit: y.replace(n2, e2)};
}
function et(e2, t2) {
return s.create(e2.line, e2.character + t2);
}
var tt = {a: "href", area: "href", body: "background", del: "cite", form: "action", frame: ["src", "longdesc"], img: ["src", "longdesc"], ins: "cite", link: "href", object: "data", q: "cite", script: "src", audio: "src", button: "formaction", command: "icon", embed: "src", html: "manifest", input: ["src", "formaction"], source: "src", track: "src", video: ["src", "poster"]}, nt = function(e2, t2, n2, i2) {
return new (n2 || (n2 = Promise))(function(o2, r2) {
function s2(e3) {
try {
l2(i2.next(e3));
} catch (e4) {
r2(e4);
}
}
function a2(e3) {
try {
l2(i2.throw(e3));
} catch (e4) {
r2(e4);
}
}
function l2(e3) {
var t3;
e3.done ? o2(e3.value) : (t3 = e3.value, t3 instanceof n2 ? t3 : new n2(function(e4) {
e4(t3);
})).then(s2, a2);
}
l2((i2 = i2.apply(e2, t2 || [])).next());
});
}, it = function(e2, t2) {
var n2, i2, o2, r2, s2 = {label: 0, sent: function() {
if (1 & o2[0])
throw o2[1];
return o2[1];
}, trys: [], ops: []};
return r2 = {next: a2(0), throw: a2(1), return: a2(2)}, "function" == typeof Symbol && (r2[Symbol.iterator] = function() {
return this;
}), r2;
function a2(r3) {
return function(a3) {
return function(r4) {
if (n2)
throw new TypeError("Generator is already executing.");
for (; s2; )
try {
if (n2 = 1, i2 && (o2 = 2 & r4[0] ? i2.return : r4[0] ? i2.throw || ((o2 = i2.return) && o2.call(i2), 0) : i2.next) && !(o2 = o2.call(i2, r4[1])).done)
return o2;
switch (i2 = 0, o2 && (r4 = [2 & r4[0], o2.value]), r4[0]) {
case 0:
case 1:
o2 = r4;
break;
case 4:
return s2.label++, {value: r4[1], done: false};
case 5:
s2.label++, i2 = r4[1], r4 = [0];
continue;
case 7:
r4 = s2.ops.pop(), s2.trys.pop();
continue;
default:
if (!(o2 = s2.trys, (o2 = o2.length > 0 && o2[o2.length - 1]) || 6 !== r4[0] && 2 !== r4[0])) {
s2 = 0;
continue;
}
if (3 === r4[0] && (!o2 || r4[1] > o2[0] && r4[1] < o2[3])) {
s2.label = r4[1];
break;
}
if (6 === r4[0] && s2.label < o2[1]) {
s2.label = o2[1], o2 = r4;
break;
}
if (o2 && s2.label < o2[2]) {
s2.label = o2[2], s2.ops.push(r4);
break;
}
o2[2] && s2.ops.pop(), s2.trys.pop();
continue;
}
r4 = t2.call(e2, s2);
} catch (e3) {
r4 = [6, e3], i2 = 0;
} finally {
n2 = o2 = 0;
}
if (5 & r4[0])
throw r4[1];
return {value: r4[0] ? r4[1] : void 0, done: true};
}([r3, a3]);
};
}
}, ot = r(), rt = function() {
function e2(e3, t2) {
this.lsOptions = e3, this.dataManager = t2, this.completionParticipants = [];
}
return e2.prototype.setCompletionParticipants = function(e3) {
this.completionParticipants = e3 || [];
}, e2.prototype.doComplete2 = function(e3, t2, n2, i2, o2) {
return nt(this, void 0, void 0, function() {
var r2, s2, a2, l2;
return it(this, function(c2) {
switch (c2.label) {
case 0:
if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory)
return [2, this.doComplete(e3, t2, n2, o2)];
r2 = new Xe(this.lsOptions.fileSystemProvider.readDirectory), s2 = this.completionParticipants, this.completionParticipants = [r2].concat(s2), a2 = this.doComplete(e3, t2, n2, o2), c2.label = 1;
case 1:
return c2.trys.push([1, , 3, 4]), [4, r2.computeCompletions(e3, i2)];
case 2:
return l2 = c2.sent(), [2, {isIncomplete: a2.isIncomplete || l2.isIncomplete, items: l2.items.concat(a2.items)}];
case 3:
return this.completionParticipants = s2, [7];
case 4:
return [2];
}
});
});
}, e2.prototype.doComplete = function(e3, t2, n2, i2) {
var o2 = this._doComplete(e3, t2, n2, i2);
return this.convertCompletionList(o2);
}, e2.prototype._doComplete = function(e3, t2, n2, i2) {
var o2 = {isIncomplete: false, items: []}, r2 = this.completionParticipants, l2 = this.dataManager.getDataProviders().filter(function(t3) {
return t3.isApplicable(e3.languageId) && (!i2 || false !== i2[t3.getId()]);
}), c2 = this.doesSupportMarkdown(), d2 = e3.getText(), h2 = e3.offsetAt(t2), u2 = n2.findNodeBefore(h2);
if (!u2)
return o2;
var p2, m2 = Ie(d2, u2.start), g2 = "";
function f2(t3, n3) {
return void 0 === n3 && (n3 = h2), t3 > h2 && (t3 = h2), {start: e3.positionAt(t3), end: e3.positionAt(n3)};
}
function b2(e4, t3) {
var n3 = f2(e4, t3);
return l2.forEach(function(e5) {
e5.provideTags().forEach(function(e6) {
o2.items.push({label: e6.name, kind: D.Property, documentation: Ge(e6, c2), textEdit: y.replace(n3, e6.name), insertTextFormat: A.PlainText});
});
}), o2;
}
function _2(e4) {
for (var t3 = e4; t3 > 0; ) {
var n3 = d2.charAt(t3 - 1);
if ("\n\r".indexOf(n3) >= 0)
return d2.substring(t3, e4);
if (!st(n3))
return null;
t3--;
}
return d2.substring(0, e4);
}
function v2(e4, t3, n3) {
void 0 === n3 && (n3 = h2);
var i3 = f2(e4, n3), r3 = at(d2, n3, ae.WithinEndTag, se.EndTagClose) ? "" : ">", s2 = u2;
for (t3 && (s2 = s2.parent); s2; ) {
var a2 = s2.tag;
if (a2 && (!s2.closed || s2.endTagStart && s2.endTagStart > h2)) {
var p3 = {label: "/" + a2, kind: D.Property, filterText: "/" + a2, textEdit: y.replace(i3, "/" + a2 + r3), insertTextFormat: A.PlainText}, m3 = _2(s2.start), g3 = _2(e4 - 1);
if (null !== m3 && null !== g3 && m3 !== g3) {
var b3 = m3 + "" + a2 + r3;
p3.textEdit = y.replace(f2(e4 - 1 - g3.length), b3), p3.filterText = g3 + "" + a2;
}
return o2.items.push(p3), o2;
}
s2 = s2.parent;
}
return t3 || l2.forEach(function(e5) {
e5.provideTags().forEach(function(e6) {
o2.items.push({label: "/" + e6.name, kind: D.Property, documentation: Ge(e6, c2), filterText: "/" + e6 + r3, textEdit: y.replace(i3, "/" + e6 + r3), insertTextFormat: A.PlainText});
});
}), o2;
}
function w2(t3, n3) {
if (i2 && i2.hideAutoCompleteProposals)
return o2;
if (!Ae(n3)) {
var r3 = e3.positionAt(t3);
o2.items.push({label: "" + n3 + ">", kind: D.Property, filterText: "" + n3 + ">", textEdit: y.insert(r3, "$0" + n3 + ">"), insertTextFormat: A.Snippet});
}
return o2;
}
function C2(e4, t3) {
return b2(e4, t3), v2(e4, true, t3), o2;
}
function x2(e4, t3) {
void 0 === t3 && (t3 = h2);
for (var i3 = h2; i3 < t3 && "<" !== d2[i3]; )
i3++;
var r3 = f2(e4, i3), s2 = at(d2, t3, ae.AfterAttributeName, se.DelimiterAssign) ? "" : '="$1"', a2 = Object.create(null);
return l2.forEach(function(e5) {
e5.provideAttributes(g2).forEach(function(e6) {
if (!a2[e6.name]) {
a2[e6.name] = true;
var t4, n3 = e6.name;
"v" !== e6.valueSet && s2.length && (n3 += s2, (e6.valueSet || "style" === e6.name) && (t4 = {title: "Suggest", command: "editor.action.triggerSuggest"})), o2.items.push({label: e6.name, kind: "handler" === e6.valueSet ? D.Function : D.Value, documentation: Ge(e6, c2), textEdit: y.replace(r3, n3), insertTextFormat: A.Snippet, command: t4});
}
});
}), function(e5, t4) {
var i4 = {};
i4["data-"] = 'data-$1="$2"', n2 && n2.roots.forEach(function(e6) {
return function e7(n3) {
n3.attributeNames.forEach(function(e8) {
!Fe(e8, "data-") || i4[e8] || t4[e8] || (i4[e8] = e8 + '="$1"');
}), n3.children.forEach(function(t5) {
return e7(t5);
});
}(e6);
});
Object.keys(i4).forEach(function(t5) {
return o2.items.push({label: t5, kind: D.Value, textEdit: y.replace(e5, i4[t5]), insertTextFormat: A.Snippet});
});
}(r3, a2), o2;
}
function S2(n3, i3) {
var s2, a2, u3, m3;
if (void 0 === i3 && (i3 = h2), h2 > n3 && h2 <= i3 && (m3 = d2[n3], /^["']*$/.test(m3))) {
var b3 = n3 + 1, _3 = i3;
i3 > n3 && d2[i3 - 1] === d2[n3] && _3--;
var v3 = function(e4, t3, n4) {
for (; t3 > n4 && !st(e4[t3 - 1]); )
t3--;
return t3;
}(d2, h2, b3), w3 = function(e4, t3, n4) {
for (; t3 < n4 && !st(e4[t3]); )
t3++;
return t3;
}(d2, h2, _3);
s2 = f2(v3, w3), u3 = h2 >= b3 && h2 <= _3 ? d2.substring(b3, h2) : "", a2 = false;
} else
s2 = f2(n3, i3), u3 = d2.substring(n3, h2), a2 = true;
if (r2.length > 0)
for (var C3 = g2.toLowerCase(), x3 = p2.toLowerCase(), S3 = f2(n3, i3), k3 = 0, E3 = r2; k3 < E3.length; k3++) {
var L3 = E3[k3];
L3.onHtmlAttributeValue && L3.onHtmlAttributeValue({document: e3, position: t2, tag: C3, attribute: x3, value: u3, range: S3});
}
return l2.forEach(function(e4) {
e4.provideValues(g2, p2).forEach(function(e5) {
var t3 = a2 ? '"' + e5.name + '"' : e5.name;
o2.items.push({label: e5.name, filterText: t3, kind: D.Unit, documentation: Ge(e5, c2), textEdit: y.replace(s2, t3), insertTextFormat: A.PlainText});
});
}), T2(), o2;
}
function k2(e4) {
return h2 === m2.getTokenEnd() && (N2 = m2.scan()) === e4 && m2.getTokenOffset() === h2 ? m2.getTokenEnd() : h2;
}
function E2() {
for (var n3 = 0, i3 = r2; n3 < i3.length; n3++) {
var o3 = i3[n3];
o3.onHtmlContent && o3.onHtmlContent({document: e3, position: t2});
}
return T2();
}
function T2() {
for (var e4, n3, i3, r3 = h2 - 1, l3 = t2.character; r3 >= 0 && qe(d2, r3); )
r3--, l3--;
if (r3 >= 0 && "&" === d2[r3]) {
var c3 = a.create(s.create(t2.line, l3 - 1), t2);
for (var u3 in Pe)
if (n3 = ";", i3 = void 0, (i3 = (e4 = u3).length - n3.length) > 0 ? e4.lastIndexOf(n3) === i3 : 0 === i3 && e4 === n3) {
var p3 = "&" + u3;
o2.items.push({label: p3, kind: D.Keyword, documentation: ot("entity.propose", "Character entity representing '" + Pe[u3] + "'"), textEdit: y.replace(c3, p3), insertTextFormat: A.PlainText});
}
}
return o2;
}
for (var L2, N2 = m2.scan(); N2 !== se.EOS && m2.getTokenOffset() <= h2; ) {
switch (N2) {
case se.StartTagOpen:
if (m2.getTokenEnd() === h2) {
var I2 = k2(se.StartTag);
return 0 === t2.line && (L2 = void 0, L2 = f2(h2, I2), o2.items.push({label: "!DOCTYPE", kind: D.Property, documentation: "A preamble for an HTML document.", textEdit: y.replace(L2, "!DOCTYPE html>"), insertTextFormat: A.PlainText})), C2(h2, I2);
}
break;
case se.StartTag:
if (m2.getTokenOffset() <= h2 && h2 <= m2.getTokenEnd())
return b2(m2.getTokenOffset(), m2.getTokenEnd());
g2 = m2.getTokenText();
break;
case se.AttributeName:
if (m2.getTokenOffset() <= h2 && h2 <= m2.getTokenEnd())
return x2(m2.getTokenOffset(), m2.getTokenEnd());
p2 = m2.getTokenText();
break;
case se.DelimiterAssign:
if (m2.getTokenEnd() === h2) {
I2 = k2(se.AttributeValue);
return S2(h2, I2);
}
break;
case se.AttributeValue:
if (m2.getTokenOffset() <= h2 && h2 <= m2.getTokenEnd())
return S2(m2.getTokenOffset(), m2.getTokenEnd());
break;
case se.Whitespace:
if (h2 <= m2.getTokenEnd())
switch (m2.getScannerState()) {
case ae.AfterOpeningStartTag:
return C2(m2.getTokenOffset(), k2(se.StartTag));
case ae.WithinTag:
case ae.AfterAttributeName:
return x2(m2.getTokenEnd());
case ae.BeforeAttributeValue:
return S2(m2.getTokenEnd());
case ae.AfterOpeningEndTag:
return v2(m2.getTokenOffset() - 1, false);
case ae.WithinContent:
return E2();
}
break;
case se.EndTagOpen:
if (h2 <= m2.getTokenEnd())
return v2(m2.getTokenOffset() + 1, false, k2(se.EndTag));
break;
case se.EndTag:
if (h2 <= m2.getTokenEnd())
for (var O2 = m2.getTokenOffset() - 1; O2 >= 0; ) {
var R2 = d2.charAt(O2);
if ("/" === R2)
return v2(O2, false, m2.getTokenEnd());
if (!st(R2))
break;
O2--;
}
break;
case se.StartTagClose:
if (h2 <= m2.getTokenEnd() && g2)
return w2(m2.getTokenEnd(), g2);
break;
case se.Content:
if (h2 <= m2.getTokenEnd())
return E2();
break;
default:
if (h2 <= m2.getTokenEnd())
return o2;
}
N2 = m2.scan();
}
return o2;
}, e2.prototype.doTagComplete = function(e3, t2, n2) {
var i2 = e3.offsetAt(t2);
if (i2 <= 0)
return null;
var o2 = e3.getText().charAt(i2 - 1);
if (">" === o2) {
if ((s2 = n2.findNodeBefore(i2)) && s2.tag && !Ae(s2.tag) && s2.start < i2 && (!s2.endTagStart || s2.endTagStart > i2))
for (var r2 = (a2 = Ie(e3.getText(), s2.start)).scan(); r2 !== se.EOS && a2.getTokenEnd() <= i2; ) {
if (r2 === se.StartTagClose && a2.getTokenEnd() === i2)
return "$0" + s2.tag + ">";
r2 = a2.scan();
}
} else if ("/" === o2) {
for (var s2 = n2.findNodeBefore(i2); s2 && s2.closed; )
s2 = s2.parent;
if (s2 && s2.tag) {
var a2;
for (r2 = (a2 = Ie(e3.getText(), s2.start)).scan(); r2 !== se.EOS && a2.getTokenEnd() <= i2; ) {
if (r2 === se.EndTagOpen && a2.getTokenEnd() === i2)
return s2.tag + ">";
r2 = a2.scan();
}
}
}
return null;
}, e2.prototype.convertCompletionList = function(e3) {
return this.doesSupportMarkdown() || e3.items.forEach(function(e4) {
e4.documentation && "string" != typeof e4.documentation && (e4.documentation = {kind: "plaintext", value: e4.documentation.value});
}), e3;
}, e2.prototype.doesSupportMarkdown = function() {
var e3, t2, n2;
if (!$e(this.supportsMarkdown)) {
if (!$e(this.lsOptions.clientCapabilities))
return this.supportsMarkdown = true, this.supportsMarkdown;
var i2 = null === (n2 = null === (t2 = null === (e3 = this.lsOptions.clientCapabilities.textDocument) || void 0 === e3 ? void 0 : e3.completion) || void 0 === t2 ? void 0 : t2.completionItem) || void 0 === n2 ? void 0 : n2.documentationFormat;
this.supportsMarkdown = Array.isArray(i2) && -1 !== i2.indexOf(I.Markdown);
}
return this.supportsMarkdown;
}, e2;
}();
function st(e2) {
return /^\s*$/.test(e2);
}
function at(e2, t2, n2, i2) {
for (var o2 = Ie(e2, t2, n2), r2 = o2.scan(); r2 === se.Whitespace; )
r2 = o2.scan();
return r2 === i2;
}
var lt = function() {
function e2(e3, t2) {
this.lsOptions = e3, this.dataManager = t2;
}
return e2.prototype.doHover = function(e3, t2, n2) {
var i2 = this.convertContents.bind(this), o2 = this.doesSupportMarkdown(), r2 = e3.offsetAt(t2), s2 = n2.findNodeAt(r2);
if (!s2 || !s2.tag)
return null;
var a2 = this.dataManager.getDataProviders().filter(function(t3) {
return t3.isApplicable(e3.languageId);
});
function l2(e4, t3, n3) {
for (var r3 = function(n4) {
var r4 = null;
if (n4.provideTags().forEach(function(n5) {
if (n5.name.toLowerCase() === e4.toLowerCase()) {
var i3 = Ge(n5, o2);
i3 || (i3 = {kind: o2 ? "markdown" : "plaintext", value: ""}), r4 = {contents: i3, range: t3};
}
}), r4)
return r4.contents = i2(r4.contents), {value: r4};
}, s3 = 0, l3 = a2; s3 < l3.length; s3++) {
var c3 = r3(l3[s3]);
if ("object" == typeof c3)
return c3.value;
}
return null;
}
function c2(t3, n3) {
for (var i3 = Ie(e3.getText(), n3), o3 = i3.scan(); o3 !== se.EOS && (i3.getTokenEnd() < r2 || i3.getTokenEnd() === r2 && o3 !== t3); )
o3 = i3.scan();
return o3 === t3 && r2 <= i3.getTokenEnd() ? {start: e3.positionAt(i3.getTokenOffset()), end: e3.positionAt(i3.getTokenEnd())} : null;
}
if (s2.endTagStart && r2 >= s2.endTagStart) {
var d2 = c2(se.EndTag, s2.endTagStart);
return d2 ? l2(s2.tag, d2) : null;
}
var h2 = c2(se.StartTag, s2.start);
if (h2)
return l2(s2.tag, h2);
var u2 = c2(se.AttributeName, s2.start);
if (u2)
return function(e4, t3, n3) {
for (var r3 = function(r4) {
var s4 = null;
if (r4.provideAttributes(e4).forEach(function(e5) {
if (t3 === e5.name && e5.description) {
var i3 = Ge(e5, o2);
s4 = i3 ? {contents: i3, range: n3} : null;
}
}), s4)
return s4.contents = i2(s4.contents), {value: s4};
}, s3 = 0, l3 = a2; s3 < l3.length; s3++) {
var c3 = r3(l3[s3]);
if ("object" == typeof c3)
return c3.value;
}
return null;
}(m2 = s2.tag, e3.getText(u2), u2);
var p2 = c2(se.AttributeValue, s2.start);
if (p2) {
var m2 = s2.tag, g2 = function(e4) {
if (e4.length <= 1)
return e4.replace(/['"]/, "");
"'" !== e4[0] && '"' !== e4[0] || (e4 = e4.slice(1));
"'" !== e4[e4.length - 1] && '"' !== e4[e4.length - 1] || (e4 = e4.slice(0, -1));
return e4;
}(e3.getText(p2)), f2 = function(t3, n3) {
for (var i3 = Ie(e3.getText(), t3), o3 = i3.scan(), r3 = void 0; o3 !== se.EOS && i3.getTokenEnd() <= n3; )
(o3 = i3.scan()) === se.AttributeName && (r3 = i3.getTokenText());
return r3;
}(s2.start, e3.offsetAt(p2.start));
if (f2)
return function(e4, t3, n3, r3) {
for (var s3 = function(s4) {
var a3 = null;
if (s4.provideValues(e4, t3).forEach(function(e5) {
if (n3 === e5.name && e5.description) {
var t4 = Ge(e5, o2);
a3 = t4 ? {contents: t4, range: r3} : null;
}
}), a3)
return a3.contents = i2(a3.contents), {value: a3};
}, l3 = 0, c3 = a2; l3 < c3.length; l3++) {
var d3 = s3(c3[l3]);
if ("object" == typeof d3)
return d3.value;
}
return null;
}(m2, f2, g2, p2);
}
return null;
}, e2.prototype.convertContents = function(e3) {
if (!this.doesSupportMarkdown()) {
if ("string" == typeof e3)
return e3;
if ("kind" in e3)
return {kind: "plaintext", value: e3.value};
if (!Array.isArray(e3))
return e3.value;
e3.map(function(e4) {
return "string" == typeof e4 ? e4 : e4.value;
});
}
return e3;
}, e2.prototype.doesSupportMarkdown = function() {
var e3, t2, n2;
if (!$e(this.supportsMarkdown)) {
if (!$e(this.lsOptions.clientCapabilities))
return this.supportsMarkdown = true, this.supportsMarkdown;
var i2 = null === (n2 = null === (t2 = null === (e3 = this.lsOptions.clientCapabilities) || void 0 === e3 ? void 0 : e3.textDocument) || void 0 === t2 ? void 0 : t2.hover) || void 0 === n2 ? void 0 : n2.contentFormat;
this.supportsMarkdown = Array.isArray(i2) && -1 !== i2.indexOf(I.Markdown);
}
return this.supportsMarkdown;
}, e2;
}();
function ct(e2, t2) {
return e2;
}
var dt = function(e2) {
var t2 = {};
function n2(i2) {
if (t2[i2])
return t2[i2].exports;
var o2 = t2[i2] = {i: i2, l: false, exports: {}};
return e2[i2].call(o2.exports, o2, o2.exports, n2), o2.l = true, o2.exports;
}
return n2.m = e2, n2.c = t2, n2.d = function(e3, t3, i2) {
n2.o(e3, t3) || Object.defineProperty(e3, t3, {enumerable: true, get: i2});
}, n2.r = function(e3) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e3, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e3, "__esModule", {value: true});
}, n2.t = function(e3, t3) {
if (1 & t3 && (e3 = n2(e3)), 8 & t3)
return e3;
if (4 & t3 && "object" == typeof e3 && e3 && e3.__esModule)
return e3;
var i2 = Object.create(null);
if (n2.r(i2), Object.defineProperty(i2, "default", {enumerable: true, value: e3}), 2 & t3 && "string" != typeof e3)
for (var o2 in e3)
n2.d(i2, o2, function(t4) {
return e3[t4];
}.bind(null, o2));
return i2;
}, n2.n = function(e3) {
var t3 = e3 && e3.__esModule ? function() {
return e3.default;
} : function() {
return e3;
};
return n2.d(t3, "a", t3), t3;
}, n2.o = function(e3, t3) {
return Object.prototype.hasOwnProperty.call(e3, t3);
}, n2.p = "", n2(n2.s = 15);
}([, , function(e2, t2, n2) {
function i2(e3) {
this.__parent = e3, this.__character_count = 0, this.__indent_count = -1, this.__alignment_count = 0, this.__wrap_point_index = 0, this.__wrap_point_character_count = 0, this.__wrap_point_indent_count = -1, this.__wrap_point_alignment_count = 0, this.__items = [];
}
function o2(e3, t3) {
this.__cache = [""], this.__indent_size = e3.indent_size, this.__indent_string = e3.indent_char, e3.indent_with_tabs || (this.__indent_string = new Array(e3.indent_size + 1).join(e3.indent_char)), t3 = t3 || "", e3.indent_level > 0 && (t3 = new Array(e3.indent_level + 1).join(this.__indent_string)), this.__base_string = t3, this.__base_string_length = t3.length;
}
function r2(e3, t3) {
this.__indent_cache = new o2(e3, t3), this.raw = false, this._end_with_newline = e3.end_with_newline, this.indent_size = e3.indent_size, this.wrap_line_length = e3.wrap_line_length, this.indent_empty_lines = e3.indent_empty_lines, this.__lines = [], this.previous_line = null, this.current_line = null, this.next_line = new i2(this), this.space_before_token = false, this.non_breaking_space = false, this.previous_token_wrapped = false, this.__add_outputline();
}
i2.prototype.clone_empty = function() {
var e3 = new i2(this.__parent);
return e3.set_indent(this.__indent_count, this.__alignment_count), e3;
}, i2.prototype.item = function(e3) {
return e3 < 0 ? this.__items[this.__items.length + e3] : this.__items[e3];
}, i2.prototype.has_match = function(e3) {
for (var t3 = this.__items.length - 1; t3 >= 0; t3--)
if (this.__items[t3].match(e3))
return true;
return false;
}, i2.prototype.set_indent = function(e3, t3) {
this.is_empty() && (this.__indent_count = e3 || 0, this.__alignment_count = t3 || 0, this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count));
}, i2.prototype._set_wrap_point = function() {
this.__parent.wrap_line_length && (this.__wrap_point_index = this.__items.length, this.__wrap_point_character_count = this.__character_count, this.__wrap_point_indent_count = this.__parent.next_line.__indent_count, this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count);
}, i2.prototype._should_wrap = function() {
return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;
}, i2.prototype._allow_wrap = function() {
if (this._should_wrap()) {
this.__parent.add_new_line();
var e3 = this.__parent.current_line;
return e3.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count), e3.__items = this.__items.slice(this.__wrap_point_index), this.__items = this.__items.slice(0, this.__wrap_point_index), e3.__character_count += this.__character_count - this.__wrap_point_character_count, this.__character_count = this.__wrap_point_character_count, " " === e3.__items[0] && (e3.__items.splice(0, 1), e3.__character_count -= 1), true;
}
return false;
}, i2.prototype.is_empty = function() {
return 0 === this.__items.length;
}, i2.prototype.last = function() {
return this.is_empty() ? null : this.__items[this.__items.length - 1];
}, i2.prototype.push = function(e3) {
this.__items.push(e3);
var t3 = e3.lastIndexOf("\n");
-1 !== t3 ? this.__character_count = e3.length - t3 : this.__character_count += e3.length;
}, i2.prototype.pop = function() {
var e3 = null;
return this.is_empty() || (e3 = this.__items.pop(), this.__character_count -= e3.length), e3;
}, i2.prototype._remove_indent = function() {
this.__indent_count > 0 && (this.__indent_count -= 1, this.__character_count -= this.__parent.indent_size);
}, i2.prototype._remove_wrap_indent = function() {
this.__wrap_point_indent_count > 0 && (this.__wrap_point_indent_count -= 1);
}, i2.prototype.trim = function() {
for (; " " === this.last(); )
this.__items.pop(), this.__character_count -= 1;
}, i2.prototype.toString = function() {
var e3 = "";
return this.is_empty() ? this.__parent.indent_empty_lines && (e3 = this.__parent.get_indent_string(this.__indent_count)) : (e3 = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count), e3 += this.__items.join("")), e3;
}, o2.prototype.get_indent_size = function(e3, t3) {
var n3 = this.__base_string_length;
return t3 = t3 || 0, e3 < 0 && (n3 = 0), n3 += e3 * this.__indent_size, n3 += t3;
}, o2.prototype.get_indent_string = function(e3, t3) {
var n3 = this.__base_string;
return t3 = t3 || 0, e3 < 0 && (e3 = 0, n3 = ""), t3 += e3 * this.__indent_size, this.__ensure_cache(t3), n3 += this.__cache[t3];
}, o2.prototype.__ensure_cache = function(e3) {
for (; e3 >= this.__cache.length; )
this.__add_column();
}, o2.prototype.__add_column = function() {
var e3 = this.__cache.length, t3 = 0, n3 = "";
this.__indent_size && e3 >= this.__indent_size && (e3 -= (t3 = Math.floor(e3 / this.__indent_size)) * this.__indent_size, n3 = new Array(t3 + 1).join(this.__indent_string)), e3 && (n3 += new Array(e3 + 1).join(" ")), this.__cache.push(n3);
}, r2.prototype.__add_outputline = function() {
this.previous_line = this.current_line, this.current_line = this.next_line.clone_empty(), this.__lines.push(this.current_line);
}, r2.prototype.get_line_number = function() {
return this.__lines.length;
}, r2.prototype.get_indent_string = function(e3, t3) {
return this.__indent_cache.get_indent_string(e3, t3);
}, r2.prototype.get_indent_size = function(e3, t3) {
return this.__indent_cache.get_indent_size(e3, t3);
}, r2.prototype.is_empty = function() {
return !this.previous_line && this.current_line.is_empty();
}, r2.prototype.add_new_line = function(e3) {
return !(this.is_empty() || !e3 && this.just_added_newline()) && (this.raw || this.__add_outputline(), true);
}, r2.prototype.get_code = function(e3) {
this.trim(true);
var t3 = this.current_line.pop();
t3 && ("\n" === t3[t3.length - 1] && (t3 = t3.replace(/\n+$/g, "")), this.current_line.push(t3)), this._end_with_newline && this.__add_outputline();
var n3 = this.__lines.join("\n");
return "\n" !== e3 && (n3 = n3.replace(/[\n]/g, e3)), n3;
}, r2.prototype.set_wrap_point = function() {
this.current_line._set_wrap_point();
}, r2.prototype.set_indent = function(e3, t3) {
return e3 = e3 || 0, t3 = t3 || 0, this.next_line.set_indent(e3, t3), this.__lines.length > 1 ? (this.current_line.set_indent(e3, t3), true) : (this.current_line.set_indent(), false);
}, r2.prototype.add_raw_token = function(e3) {
for (var t3 = 0; t3 < e3.newlines; t3++)
this.__add_outputline();
this.current_line.set_indent(-1), this.current_line.push(e3.whitespace_before), this.current_line.push(e3.text), this.space_before_token = false, this.non_breaking_space = false, this.previous_token_wrapped = false;
}, r2.prototype.add_token = function(e3) {
this.__add_space_before_token(), this.current_line.push(e3), this.space_before_token = false, this.non_breaking_space = false, this.previous_token_wrapped = this.current_line._allow_wrap();
}, r2.prototype.__add_space_before_token = function() {
this.space_before_token && !this.just_added_newline() && (this.non_breaking_space || this.set_wrap_point(), this.current_line.push(" "));
}, r2.prototype.remove_indent = function(e3) {
for (var t3 = this.__lines.length; e3 < t3; )
this.__lines[e3]._remove_indent(), e3++;
this.current_line._remove_wrap_indent();
}, r2.prototype.trim = function(e3) {
for (e3 = void 0 !== e3 && e3, this.current_line.trim(); e3 && this.__lines.length > 1 && this.current_line.is_empty(); )
this.__lines.pop(), this.current_line = this.__lines[this.__lines.length - 1], this.current_line.trim();
this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;
}, r2.prototype.just_added_newline = function() {
return this.current_line.is_empty();
}, r2.prototype.just_added_blankline = function() {
return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();
}, r2.prototype.ensure_empty_line_above = function(e3, t3) {
for (var n3 = this.__lines.length - 2; n3 >= 0; ) {
var o3 = this.__lines[n3];
if (o3.is_empty())
break;
if (0 !== o3.item(0).indexOf(e3) && o3.item(-1) !== t3) {
this.__lines.splice(n3 + 1, 0, new i2(this)), this.previous_line = this.__lines[this.__lines.length - 2];
break;
}
n3--;
}
}, e2.exports.Output = r2;
}, , , , function(e2, t2, n2) {
function i2(e3, t3) {
this.raw_options = o2(e3, t3), this.disabled = this._get_boolean("disabled"), this.eol = this._get_characters("eol", "auto"), this.end_with_newline = this._get_boolean("end_with_newline"), this.indent_size = this._get_number("indent_size", 4), this.indent_char = this._get_characters("indent_char", " "), this.indent_level = this._get_number("indent_level"), this.preserve_newlines = this._get_boolean("preserve_newlines", true), this.max_preserve_newlines = this._get_number("max_preserve_newlines", 32786), this.preserve_newlines || (this.max_preserve_newlines = 0), this.indent_with_tabs = this._get_boolean("indent_with_tabs", " " === this.indent_char), this.indent_with_tabs && (this.indent_char = " ", 1 === this.indent_size && (this.indent_size = 4)), this.wrap_line_length = this._get_number("wrap_line_length", this._get_number("max_char")), this.indent_empty_lines = this._get_boolean("indent_empty_lines"), this.templating = this._get_selection_list("templating", ["auto", "none", "django", "erb", "handlebars", "php"], ["auto"]);
}
function o2(e3, t3) {
var n3, i3 = {};
for (n3 in e3 = r2(e3))
n3 !== t3 && (i3[n3] = e3[n3]);
if (t3 && e3[t3])
for (n3 in e3[t3])
i3[n3] = e3[t3][n3];
return i3;
}
function r2(e3) {
var t3, n3 = {};
for (t3 in e3) {
n3[t3.replace(/-/g, "_")] = e3[t3];
}
return n3;
}
i2.prototype._get_array = function(e3, t3) {
var n3 = this.raw_options[e3], i3 = t3 || [];
return "object" == typeof n3 ? null !== n3 && "function" == typeof n3.concat && (i3 = n3.concat()) : "string" == typeof n3 && (i3 = n3.split(/[^a-zA-Z0-9_\/\-]+/)), i3;
}, i2.prototype._get_boolean = function(e3, t3) {
var n3 = this.raw_options[e3];
return void 0 === n3 ? !!t3 : !!n3;
}, i2.prototype._get_characters = function(e3, t3) {
var n3 = this.raw_options[e3], i3 = t3 || "";
return "string" == typeof n3 && (i3 = n3.replace(/\\r/, "\r").replace(/\\n/, "\n").replace(/\\t/, " ")), i3;
}, i2.prototype._get_number = function(e3, t3) {
var n3 = this.raw_options[e3];
t3 = parseInt(t3, 10), isNaN(t3) && (t3 = 0);
var i3 = parseInt(n3, 10);
return isNaN(i3) && (i3 = t3), i3;
}, i2.prototype._get_selection = function(e3, t3, n3) {
var i3 = this._get_selection_list(e3, t3, n3);
if (1 !== i3.length)
throw new Error("Invalid Option Value: The option '" + e3 + "' can only be one of the following values:\n" + t3 + "\nYou passed in: '" + this.raw_options[e3] + "'");
return i3[0];
}, i2.prototype._get_selection_list = function(e3, t3, n3) {
if (!t3 || 0 === t3.length)
throw new Error("Selection list cannot be empty.");
if (n3 = n3 || [t3[0]], !this._is_valid_selection(n3, t3))
throw new Error("Invalid Default Value!");
var i3 = this._get_array(e3, n3);
if (!this._is_valid_selection(i3, t3))
throw new Error("Invalid Option Value: The option '" + e3 + "' can contain only the following values:\n" + t3 + "\nYou passed in: '" + this.raw_options[e3] + "'");
return i3;
}, i2.prototype._is_valid_selection = function(e3, t3) {
return e3.length && t3.length && !e3.some(function(e4) {
return -1 === t3.indexOf(e4);
});
}, e2.exports.Options = i2, e2.exports.normalizeOpts = r2, e2.exports.mergeOpts = o2;
}, , function(e2, t2, n2) {
var i2 = RegExp.prototype.hasOwnProperty("sticky");
function o2(e3) {
this.__input = e3 || "", this.__input_length = this.__input.length, this.__position = 0;
}
o2.prototype.restart = function() {
this.__position = 0;
}, o2.prototype.back = function() {
this.__position > 0 && (this.__position -= 1);
}, o2.prototype.hasNext = function() {
return this.__position < this.__input_length;
}, o2.prototype.next = function() {
var e3 = null;
return this.hasNext() && (e3 = this.__input.charAt(this.__position), this.__position += 1), e3;
}, o2.prototype.peek = function(e3) {
var t3 = null;
return e3 = e3 || 0, (e3 += this.__position) >= 0 && e3 < this.__input_length && (t3 = this.__input.charAt(e3)), t3;
}, o2.prototype.__match = function(e3, t3) {
e3.lastIndex = t3;
var n3 = e3.exec(this.__input);
return !n3 || i2 && e3.sticky || n3.index !== t3 && (n3 = null), n3;
}, o2.prototype.test = function(e3, t3) {
return t3 = t3 || 0, (t3 += this.__position) >= 0 && t3 < this.__input_length && !!this.__match(e3, t3);
}, o2.prototype.testChar = function(e3, t3) {
var n3 = this.peek(t3);
return e3.lastIndex = 0, null !== n3 && e3.test(n3);
}, o2.prototype.match = function(e3) {
var t3 = this.__match(e3, this.__position);
return t3 ? this.__position += t3[0].length : t3 = null, t3;
}, o2.prototype.read = function(e3, t3, n3) {
var i3, o3 = "";
return e3 && (i3 = this.match(e3)) && (o3 += i3[0]), !t3 || !i3 && e3 || (o3 += this.readUntil(t3, n3)), o3;
}, o2.prototype.readUntil = function(e3, t3) {
var n3, i3 = this.__position;
e3.lastIndex = this.__position;
var o3 = e3.exec(this.__input);
return o3 ? (i3 = o3.index, t3 && (i3 += o3[0].length)) : i3 = this.__input_length, n3 = this.__input.substring(this.__position, i3), this.__position = i3, n3;
}, o2.prototype.readUntilAfter = function(e3) {
return this.readUntil(e3, true);
}, o2.prototype.get_regexp = function(e3, t3) {
var n3 = null, o3 = "g";
return t3 && i2 && (o3 = "y"), "string" == typeof e3 && "" !== e3 ? n3 = new RegExp(e3, o3) : e3 && (n3 = new RegExp(e3.source, o3)), n3;
}, o2.prototype.get_literal_regexp = function(e3) {
return RegExp(e3.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
}, o2.prototype.peekUntilAfter = function(e3) {
var t3 = this.__position, n3 = this.readUntilAfter(e3);
return this.__position = t3, n3;
}, o2.prototype.lookBack = function(e3) {
var t3 = this.__position - 1;
return t3 >= e3.length && this.__input.substring(t3 - e3.length, t3).toLowerCase() === e3;
}, e2.exports.InputScanner = o2;
}, , , , , function(e2, t2, n2) {
function i2(e3, t3) {
e3 = "string" == typeof e3 ? e3 : e3.source, t3 = "string" == typeof t3 ? t3 : t3.source, this.__directives_block_pattern = new RegExp(e3 + / beautify( \w+[:]\w+)+ /.source + t3, "g"), this.__directive_pattern = / (\w+)[:](\w+)/g, this.__directives_end_ignore_pattern = new RegExp(e3 + /\sbeautify\signore:end\s/.source + t3, "g");
}
i2.prototype.get_directives = function(e3) {
if (!e3.match(this.__directives_block_pattern))
return null;
var t3 = {};
this.__directive_pattern.lastIndex = 0;
for (var n3 = this.__directive_pattern.exec(e3); n3; )
t3[n3[1]] = n3[2], n3 = this.__directive_pattern.exec(e3);
return t3;
}, i2.prototype.readIgnored = function(e3) {
return e3.readUntilAfter(this.__directives_end_ignore_pattern);
}, e2.exports.Directives = i2;
}, , function(e2, t2, n2) {
var i2 = n2(16).Beautifier, o2 = n2(17).Options;
e2.exports = function(e3, t3) {
return new i2(e3, t3).beautify();
}, e2.exports.defaultOptions = function() {
return new o2();
};
}, function(e2, t2, n2) {
var i2 = n2(17).Options, o2 = n2(2).Output, r2 = n2(8).InputScanner, s2 = new (0, n2(13).Directives)(/\/\*/, /\*\//), a2 = /\r\n|[\r\n]/, l2 = /\r\n|[\r\n]/g, c2 = /\s/, d2 = /(?:\s|\n)+/g, h2 = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g, u2 = /\/\/(?:[^\n\r\u2028\u2029]*)/g;
function p2(e3, t3) {
this._source_text = e3 || "", this._options = new i2(t3), this._ch = null, this._input = null, this.NESTED_AT_RULE = {"@page": true, "@font-face": true, "@keyframes": true, "@media": true, "@supports": true, "@document": true}, this.CONDITIONAL_GROUP_RULE = {"@media": true, "@supports": true, "@document": true};
}
p2.prototype.eatString = function(e3) {
var t3 = "";
for (this._ch = this._input.next(); this._ch; ) {
if (t3 += this._ch, "\\" === this._ch)
t3 += this._input.next();
else if (-1 !== e3.indexOf(this._ch) || "\n" === this._ch)
break;
this._ch = this._input.next();
}
return t3;
}, p2.prototype.eatWhitespace = function(e3) {
for (var t3 = c2.test(this._input.peek()), n3 = true; c2.test(this._input.peek()); )
this._ch = this._input.next(), e3 && "\n" === this._ch && (this._options.preserve_newlines || n3) && (n3 = false, this._output.add_new_line(true));
return t3;
}, p2.prototype.foundNestedPseudoClass = function() {
for (var e3 = 0, t3 = 1, n3 = this._input.peek(t3); n3; ) {
if ("{" === n3)
return true;
if ("(" === n3)
e3 += 1;
else if (")" === n3) {
if (0 === e3)
return false;
e3 -= 1;
} else if (";" === n3 || "}" === n3)
return false;
t3++, n3 = this._input.peek(t3);
}
return false;
}, p2.prototype.print_string = function(e3) {
this._output.set_indent(this._indentLevel), this._output.non_breaking_space = true, this._output.add_token(e3);
}, p2.prototype.preserveSingleSpace = function(e3) {
e3 && (this._output.space_before_token = true);
}, p2.prototype.indent = function() {
this._indentLevel++;
}, p2.prototype.outdent = function() {
this._indentLevel > 0 && this._indentLevel--;
}, p2.prototype.beautify = function() {
if (this._options.disabled)
return this._source_text;
var e3 = this._source_text, t3 = this._options.eol;
"auto" === t3 && (t3 = "\n", e3 && a2.test(e3 || "") && (t3 = e3.match(a2)[0]));
var n3 = (e3 = e3.replace(l2, "\n")).match(/^[\t ]*/)[0];
this._output = new o2(this._options, n3), this._input = new r2(e3), this._indentLevel = 0, this._nestedLevel = 0, this._ch = null;
for (var i3, p3, m2 = 0, g2 = false, f2 = false, b2 = false, _2 = false, v2 = false, w2 = this._ch; i3 = "" !== this._input.read(d2), p3 = w2, this._ch = this._input.next(), "\\" === this._ch && this._input.hasNext() && (this._ch += this._input.next()), w2 = this._ch, this._ch; )
if ("/" === this._ch && "*" === this._input.peek()) {
this._output.add_new_line(), this._input.back();
var y2 = this._input.read(h2), C2 = s2.get_directives(y2);
C2 && "start" === C2.ignore && (y2 += s2.readIgnored(this._input)), this.print_string(y2), this.eatWhitespace(true), this._output.add_new_line();
} else if ("/" === this._ch && "/" === this._input.peek())
this._output.space_before_token = true, this._input.back(), this.print_string(this._input.read(u2)), this.eatWhitespace(true);
else if ("@" === this._ch)
if (this.preserveSingleSpace(i3), "{" === this._input.peek())
this.print_string(this._ch + this.eatString("}"));
else {
this.print_string(this._ch);
var x2 = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
x2.match(/[ :]$/) && (x2 = this.eatString(": ").replace(/\s$/, ""), this.print_string(x2), this._output.space_before_token = true), "extend" === (x2 = x2.replace(/\s$/, "")) ? _2 = true : "import" === x2 && (v2 = true), x2 in this.NESTED_AT_RULE ? (this._nestedLevel += 1, x2 in this.CONDITIONAL_GROUP_RULE && (b2 = true)) : g2 || 0 !== m2 || -1 === x2.indexOf(":") || (f2 = true, this.indent());
}
else
"#" === this._ch && "{" === this._input.peek() ? (this.preserveSingleSpace(i3), this.print_string(this._ch + this.eatString("}"))) : "{" === this._ch ? (f2 && (f2 = false, this.outdent()), this.indent(), this._output.space_before_token = true, this.print_string(this._ch), b2 ? (b2 = false, g2 = this._indentLevel > this._nestedLevel) : g2 = this._indentLevel >= this._nestedLevel, this._options.newline_between_rules && g2 && this._output.previous_line && "{" !== this._output.previous_line.item(-1) && this._output.ensure_empty_line_above("/", ","), this.eatWhitespace(true), this._output.add_new_line()) : "}" === this._ch ? (this.outdent(), this._output.add_new_line(), "{" === p3 && this._output.trim(true), v2 = false, _2 = false, f2 && (this.outdent(), f2 = false), this.print_string(this._ch), g2 = false, this._nestedLevel && this._nestedLevel--, this.eatWhitespace(true), this._output.add_new_line(), this._options.newline_between_rules && !this._output.just_added_blankline() && "}" !== this._input.peek() && this._output.add_new_line(true)) : ":" === this._ch ? !g2 && !b2 || this._input.lookBack("&") || this.foundNestedPseudoClass() || this._input.lookBack("(") || _2 || 0 !== m2 ? (this._input.lookBack(" ") && (this._output.space_before_token = true), ":" === this._input.peek() ? (this._ch = this._input.next(), this.print_string("::")) : this.print_string(":")) : (this.print_string(":"), f2 || (f2 = true, this._output.space_before_token = true, this.eatWhitespace(true), this.indent())) : '"' === this._ch || "'" === this._ch ? (this.preserveSingleSpace(i3), this.print_string(this._ch + this.eatString(this._ch)), this.eatWhitespace(true)) : ";" === this._ch ? 0 === m2 ? (f2 && (this.outdent(), f2 = false), _2 = false, v2 = false, this.print_string(this._ch), this.eatWhitespace(true), "/" !== this._input.peek() && this._output.add_new_line()) : (this.print_string(this._ch), this.eatWhitespace(true), this._output.space_before_token = true) : "(" === this._ch ? this._input.lookBack("url") ? (this.print_string(this._ch), this.eatWhitespace(), m2++, this.indent(), this._ch = this._input.next(), ")" === this._ch || '"' === this._ch || "'" === this._ch ? this._input.back() : this._ch && (this.print_string(this._ch + this.eatString(")")), m2 && (m2--, this.outdent()))) : (this.preserveSingleSpace(i3), this.print_string(this._ch), this.eatWhitespace(), m2++, this.indent()) : ")" === this._ch ? (m2 && (m2--, this.outdent()), this.print_string(this._ch)) : "," === this._ch ? (this.print_string(this._ch), this.eatWhitespace(true), !this._options.selector_separator_newline || f2 || 0 !== m2 || v2 ? this._output.space_before_token = true : this._output.add_new_line()) : ">" !== this._ch && "+" !== this._ch && "~" !== this._ch || f2 || 0 !== m2 ? "]" === this._ch ? this.print_string(this._ch) : "[" === this._ch ? (this.preserveSingleSpace(i3), this.print_string(this._ch)) : "=" === this._ch ? (this.eatWhitespace(), this.print_string("="), c2.test(this._ch) && (this._ch = "")) : "!" !== this._ch || this._input.lookBack("\\") ? (this.preserveSingleSpace(i3), this.print_string(this._ch)) : (this.print_string(" "), this.print_string(this._ch)) : this._options.space_around_combinator ? (this._output.space_before_token = true, this.print_string(this._ch), this._output.space_before_token = true) : (this.print_string(this._ch), this.eatWhitespace(), this._ch && c2.test(this._ch) && (this._ch = ""));
return this._output.get_code(t3);
}, e2.exports.Beautifier = p2;
}, function(e2, t2, n2) {
var i2 = n2(6).Options;
function o2(e3) {
i2.call(this, e3, "css"), this.selector_separator_newline = this._get_boolean("selector_separator_newline", true), this.newline_between_rules = this._get_boolean("newline_between_rules", true);
var t3 = this._get_boolean("space_around_selector_separator");
this.space_around_combinator = this._get_boolean("space_around_combinator") || t3;
}
o2.prototype = new i2(), e2.exports.Options = o2;
}]), ht = function(e2) {
var t2 = {};
function n2(i2) {
if (t2[i2])
return t2[i2].exports;
var o2 = t2[i2] = {i: i2, l: false, exports: {}};
return e2[i2].call(o2.exports, o2, o2.exports, n2), o2.l = true, o2.exports;
}
return n2.m = e2, n2.c = t2, n2.d = function(e3, t3, i2) {
n2.o(e3, t3) || Object.defineProperty(e3, t3, {enumerable: true, get: i2});
}, n2.r = function(e3) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e3, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e3, "__esModule", {value: true});
}, n2.t = function(e3, t3) {
if (1 & t3 && (e3 = n2(e3)), 8 & t3)
return e3;
if (4 & t3 && "object" == typeof e3 && e3 && e3.__esModule)
return e3;
var i2 = Object.create(null);
if (n2.r(i2), Object.defineProperty(i2, "default", {enumerable: true, value: e3}), 2 & t3 && "string" != typeof e3)
for (var o2 in e3)
n2.d(i2, o2, function(t4) {
return e3[t4];
}.bind(null, o2));
return i2;
}, n2.n = function(e3) {
var t3 = e3 && e3.__esModule ? function() {
return e3.default;
} : function() {
return e3;
};
return n2.d(t3, "a", t3), t3;
}, n2.o = function(e3, t3) {
return Object.prototype.hasOwnProperty.call(e3, t3);
}, n2.p = "", n2(n2.s = 18);
}([, , function(e2, t2, n2) {
function i2(e3) {
this.__parent = e3, this.__character_count = 0, this.__indent_count = -1, this.__alignment_count = 0, this.__wrap_point_index = 0, this.__wrap_point_character_count = 0, this.__wrap_point_indent_count = -1, this.__wrap_point_alignment_count = 0, this.__items = [];
}
function o2(e3, t3) {
this.__cache = [""], this.__indent_size = e3.indent_size, this.__indent_string = e3.indent_char, e3.indent_with_tabs || (this.__indent_string = new Array(e3.indent_size + 1).join(e3.indent_char)), t3 = t3 || "", e3.indent_level > 0 && (t3 = new Array(e3.indent_level + 1).join(this.__indent_string)), this.__base_string = t3, this.__base_string_length = t3.length;
}
function r2(e3, t3) {
this.__indent_cache = new o2(e3, t3), this.raw = false, this._end_with_newline = e3.end_with_newline, this.indent_size = e3.indent_size, this.wrap_line_length = e3.wrap_line_length, this.indent_empty_lines = e3.indent_empty_lines, this.__lines = [], this.previous_line = null, this.current_line = null, this.next_line = new i2(this), this.space_before_token = false, this.non_breaking_space = false, this.previous_token_wrapped = false, this.__add_outputline();
}
i2.prototype.clone_empty = function() {
var e3 = new i2(this.__parent);
return e3.set_indent(this.__indent_count, this.__alignment_count), e3;
}, i2.prototype.item = function(e3) {
return e3 < 0 ? this.__items[this.__items.length + e3] : this.__items[e3];
}, i2.prototype.has_match = function(e3) {
for (var t3 = this.__items.length - 1; t3 >= 0; t3--)
if (this.__items[t3].match(e3))
return true;
return false;
}, i2.prototype.set_indent = function(e3, t3) {
this.is_empty() && (this.__indent_count = e3 || 0, this.__alignment_count = t3 || 0, this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count));
}, i2.prototype._set_wrap_point = function() {
this.__parent.wrap_line_length && (this.__wrap_point_index = this.__items.length, this.__wrap_point_character_count = this.__character_count, this.__wrap_point_indent_count = this.__parent.next_line.__indent_count, this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count);
}, i2.prototype._should_wrap = function() {
return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;
}, i2.prototype._allow_wrap = function() {
if (this._should_wrap()) {
this.__parent.add_new_line();
var e3 = this.__parent.current_line;
return e3.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count), e3.__items = this.__items.slice(this.__wrap_point_index), this.__items = this.__items.slice(0, this.__wrap_point_index), e3.__character_count += this.__character_count - this.__wrap_point_character_count, this.__character_count = this.__wrap_point_character_count, " " === e3.__items[0] && (e3.__items.splice(0, 1), e3.__character_count -= 1), true;
}
return false;
}, i2.prototype.is_empty = function() {
return 0 === this.__items.length;
}, i2.prototype.last = function() {
return this.is_empty() ? null : this.__items[this.__items.length - 1];
}, i2.prototype.push = function(e3) {
this.__items.push(e3);
var t3 = e3.lastIndexOf("\n");
-1 !== t3 ? this.__character_count = e3.length - t3 : this.__character_count += e3.length;
}, i2.prototype.pop = function() {
var e3 = null;
return this.is_empty() || (e3 = this.__items.pop(), this.__character_count -= e3.length), e3;
}, i2.prototype._remove_indent = function() {
this.__indent_count > 0 && (this.__indent_count -= 1, this.__character_count -= this.__parent.indent_size);
}, i2.prototype._remove_wrap_indent = function() {
this.__wrap_point_indent_count > 0 && (this.__wrap_point_indent_count -= 1);
}, i2.prototype.trim = function() {
for (; " " === this.last(); )
this.__items.pop(), this.__character_count -= 1;
}, i2.prototype.toString = function() {
var e3 = "";
return this.is_empty() ? this.__parent.indent_empty_lines && (e3 = this.__parent.get_indent_string(this.__indent_count)) : (e3 = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count), e3 += this.__items.join("")), e3;
}, o2.prototype.get_indent_size = function(e3, t3) {
var n3 = this.__base_string_length;
return t3 = t3 || 0, e3 < 0 && (n3 = 0), n3 += e3 * this.__indent_size, n3 += t3;
}, o2.prototype.get_indent_string = function(e3, t3) {
var n3 = this.__base_string;
return t3 = t3 || 0, e3 < 0 && (e3 = 0, n3 = ""), t3 += e3 * this.__indent_size, this.__ensure_cache(t3), n3 += this.__cache[t3];
}, o2.prototype.__ensure_cache = function(e3) {
for (; e3 >= this.__cache.length; )
this.__add_column();
}, o2.prototype.__add_column = function() {
var e3 = this.__cache.length, t3 = 0, n3 = "";
this.__indent_size && e3 >= this.__indent_size && (e3 -= (t3 = Math.floor(e3 / this.__indent_size)) * this.__indent_size, n3 = new Array(t3 + 1).join(this.__indent_string)), e3 && (n3 += new Array(e3 + 1).join(" ")), this.__cache.push(n3);
}, r2.prototype.__add_outputline = function() {
this.previous_line = this.current_line, this.current_line = this.next_line.clone_empty(), this.__lines.push(this.current_line);
}, r2.prototype.get_line_number = function() {
return this.__lines.length;
}, r2.prototype.get_indent_string = function(e3, t3) {
return this.__indent_cache.get_indent_string(e3, t3);
}, r2.prototype.get_indent_size = function(e3, t3) {
return this.__indent_cache.get_indent_size(e3, t3);
}, r2.prototype.is_empty = function() {
return !this.previous_line && this.current_line.is_empty();
}, r2.prototype.add_new_line = function(e3) {
return !(this.is_empty() || !e3 && this.just_added_newline()) && (this.raw || this.__add_outputline(), true);
}, r2.prototype.get_code = function(e3) {
this.trim(true);
var t3 = this.current_line.pop();
t3 && ("\n" === t3[t3.length - 1] && (t3 = t3.replace(/\n+$/g, "")), this.current_line.push(t3)), this._end_with_newline && this.__add_outputline();
var n3 = this.__lines.join("\n");
return "\n" !== e3 && (n3 = n3.replace(/[\n]/g, e3)), n3;
}, r2.prototype.set_wrap_point = function() {
this.current_line._set_wrap_point();
}, r2.prototype.set_indent = function(e3, t3) {
return e3 = e3 || 0, t3 = t3 || 0, this.next_line.set_indent(e3, t3), this.__lines.length > 1 ? (this.current_line.set_indent(e3, t3), true) : (this.current_line.set_indent(), false);
}, r2.prototype.add_raw_token = function(e3) {
for (var t3 = 0; t3 < e3.newlines; t3++)
this.__add_outputline();
this.current_line.set_indent(-1), this.current_line.push(e3.whitespace_before), this.current_line.push(e3.text), this.space_before_token = false, this.non_breaking_space = false, this.previous_token_wrapped = false;
}, r2.prototype.add_token = function(e3) {
this.__add_space_before_token(), this.current_line.push(e3), this.space_before_token = false, this.non_breaking_space = false, this.previous_token_wrapped = this.current_line._allow_wrap();
}, r2.prototype.__add_space_before_token = function() {
this.space_before_token && !this.just_added_newline() && (this.non_breaking_space || this.set_wrap_point(), this.current_line.push(" "));
}, r2.prototype.remove_indent = function(e3) {
for (var t3 = this.__lines.length; e3 < t3; )
this.__lines[e3]._remove_indent(), e3++;
this.current_line._remove_wrap_indent();
}, r2.prototype.trim = function(e3) {
for (e3 = void 0 !== e3 && e3, this.current_line.trim(); e3 && this.__lines.length > 1 && this.current_line.is_empty(); )
this.__lines.pop(), this.current_line = this.__lines[this.__lines.length - 1], this.current_line.trim();
this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;
}, r2.prototype.just_added_newline = function() {
return this.current_line.is_empty();
}, r2.prototype.just_added_blankline = function() {
return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();
}, r2.prototype.ensure_empty_line_above = function(e3, t3) {
for (var n3 = this.__lines.length - 2; n3 >= 0; ) {
var o3 = this.__lines[n3];
if (o3.is_empty())
break;
if (0 !== o3.item(0).indexOf(e3) && o3.item(-1) !== t3) {
this.__lines.splice(n3 + 1, 0, new i2(this)), this.previous_line = this.__lines[this.__lines.length - 2];
break;
}
n3--;
}
}, e2.exports.Output = r2;
}, function(e2, t2, n2) {
e2.exports.Token = function(e3, t3, n3, i2) {
this.type = e3, this.text = t3, this.comments_before = null, this.newlines = n3 || 0, this.whitespace_before = i2 || "", this.parent = null, this.next = null, this.previous = null, this.opened = null, this.closed = null, this.directives = null;
};
}, , , function(e2, t2, n2) {
function i2(e3, t3) {
this.raw_options = o2(e3, t3), this.disabled = this._get_boolean("disabled"), this.eol = this._get_characters("eol", "auto"), this.end_with_newline = this._get_boolean("end_with_newline"), this.indent_size = this._get_number("indent_size", 4), this.indent_char = this._get_characters("indent_char", " "), this.indent_level = this._get_number("indent_level"), this.preserve_newlines = this._get_boolean("preserve_newlines", true), this.max_preserve_newlines = this._get_number("max_preserve_newlines", 32786), this.preserve_newlines || (this.max_preserve_newlines = 0), this.indent_with_tabs = this._get_boolean("indent_with_tabs", " " === this.indent_char), this.indent_with_tabs && (this.indent_char = " ", 1 === this.indent_size && (this.indent_size = 4)), this.wrap_line_length = this._get_number("wrap_line_length", this._get_number("max_char")), this.indent_empty_lines = this._get_boolean("indent_empty_lines"), this.templating = this._get_selection_list("templating", ["auto", "none", "django", "erb", "handlebars", "php"], ["auto"]);
}
function o2(e3, t3) {
var n3, i3 = {};
for (n3 in e3 = r2(e3))
n3 !== t3 && (i3[n3] = e3[n3]);
if (t3 && e3[t3])
for (n3 in e3[t3])
i3[n3] = e3[t3][n3];
return i3;
}
function r2(e3) {
var t3, n3 = {};
for (t3 in e3) {
n3[t3.replace(/-/g, "_")] = e3[t3];
}
return n3;
}
i2.prototype._get_array = function(e3, t3) {
var n3 = this.raw_options[e3], i3 = t3 || [];
return "object" == typeof n3 ? null !== n3 && "function" == typeof n3.concat && (i3 = n3.concat()) : "string" == typeof n3 && (i3 = n3.split(/[^a-zA-Z0-9_\/\-]+/)), i3;
}, i2.prototype._get_boolean = function(e3, t3) {
var n3 = this.raw_options[e3];
return void 0 === n3 ? !!t3 : !!n3;
}, i2.prototype._get_characters = function(e3, t3) {
var n3 = this.raw_options[e3], i3 = t3 || "";
return "string" == typeof n3 && (i3 = n3.replace(/\\r/, "\r").replace(/\\n/, "\n").replace(/\\t/, " ")), i3;
}, i2.prototype._get_number = function(e3, t3) {
var n3 = this.raw_options[e3];
t3 = parseInt(t3, 10), isNaN(t3) && (t3 = 0);
var i3 = parseInt(n3, 10);
return isNaN(i3) && (i3 = t3), i3;
}, i2.prototype._get_selection = function(e3, t3, n3) {
var i3 = this._get_selection_list(e3, t3, n3);
if (1 !== i3.length)
throw new Error("Invalid Option Value: The option '" + e3 + "' can only be one of the following values:\n" + t3 + "\nYou passed in: '" + this.raw_options[e3] + "'");
return i3[0];
}, i2.prototype._get_selection_list = function(e3, t3, n3) {
if (!t3 || 0 === t3.length)
throw new Error("Selection list cannot be empty.");
if (n3 = n3 || [t3[0]], !this._is_valid_selection(n3, t3))
throw new Error("Invalid Default Value!");
var i3 = this._get_array(e3, n3);
if (!this._is_valid_selection(i3, t3))
throw new Error("Invalid Option Value: The option '" + e3 + "' can contain only the following values:\n" + t3 + "\nYou passed in: '" + this.raw_options[e3] + "'");
return i3;
}, i2.prototype._is_valid_selection = function(e3, t3) {
return e3.length && t3.length && !e3.some(function(e4) {
return -1 === t3.indexOf(e4);
});
}, e2.exports.Options = i2, e2.exports.normalizeOpts = r2, e2.exports.mergeOpts = o2;
}, , function(e2, t2, n2) {
var i2 = RegExp.prototype.hasOwnProperty("sticky");
function o2(e3) {
this.__input = e3 || "", this.__input_length = this.__input.length, this.__position = 0;
}
o2.prototype.restart = function() {
this.__position = 0;
}, o2.prototype.back = function() {
this.__position > 0 && (this.__position -= 1);
}, o2.prototype.hasNext = function() {
return this.__position < this.__input_length;
}, o2.prototype.next = function() {
var e3 = null;
return this.hasNext() && (e3 = this.__input.charAt(this.__position), this.__position += 1), e3;
}, o2.prototype.peek = function(e3) {
var t3 = null;
return e3 = e3 || 0, (e3 += this.__position) >= 0 && e3 < this.__input_length && (t3 = this.__input.charAt(e3)), t3;
}, o2.prototype.__match = function(e3, t3) {
e3.lastIndex = t3;
var n3 = e3.exec(this.__input);
return !n3 || i2 && e3.sticky || n3.index !== t3 && (n3 = null), n3;
}, o2.prototype.test = function(e3, t3) {
return t3 = t3 || 0, (t3 += this.__position) >= 0 && t3 < this.__input_length && !!this.__match(e3, t3);
}, o2.prototype.testChar = function(e3, t3) {
var n3 = this.peek(t3);
return e3.lastIndex = 0, null !== n3 && e3.test(n3);
}, o2.prototype.match = function(e3) {
var t3 = this.__match(e3, this.__position);
return t3 ? this.__position += t3[0].length : t3 = null, t3;
}, o2.prototype.read = function(e3, t3, n3) {
var i3, o3 = "";
return e3 && (i3 = this.match(e3)) && (o3 += i3[0]), !t3 || !i3 && e3 || (o3 += this.readUntil(t3, n3)), o3;
}, o2.prototype.readUntil = function(e3, t3) {
var n3, i3 = this.__position;
e3.lastIndex = this.__position;
var o3 = e3.exec(this.__input);
return o3 ? (i3 = o3.index, t3 && (i3 += o3[0].length)) : i3 = this.__input_length, n3 = this.__input.substring(this.__position, i3), this.__position = i3, n3;
}, o2.prototype.readUntilAfter = function(e3) {
return this.readUntil(e3, true);
}, o2.prototype.get_regexp = function(e3, t3) {
var n3 = null, o3 = "g";
return t3 && i2 && (o3 = "y"), "string" == typeof e3 && "" !== e3 ? n3 = new RegExp(e3, o3) : e3 && (n3 = new RegExp(e3.source, o3)), n3;
}, o2.prototype.get_literal_regexp = function(e3) {
return RegExp(e3.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
}, o2.prototype.peekUntilAfter = function(e3) {
var t3 = this.__position, n3 = this.readUntilAfter(e3);
return this.__position = t3, n3;
}, o2.prototype.lookBack = function(e3) {
var t3 = this.__position - 1;
return t3 >= e3.length && this.__input.substring(t3 - e3.length, t3).toLowerCase() === e3;
}, e2.exports.InputScanner = o2;
}, function(e2, t2, n2) {
var i2 = n2(8).InputScanner, o2 = n2(3).Token, r2 = n2(10).TokenStream, s2 = n2(11).WhitespacePattern, a2 = {START: "TK_START", RAW: "TK_RAW", EOF: "TK_EOF"}, l2 = function(e3, t3) {
this._input = new i2(e3), this._options = t3 || {}, this.__tokens = null, this._patterns = {}, this._patterns.whitespace = new s2(this._input);
};
l2.prototype.tokenize = function() {
var e3;
this._input.restart(), this.__tokens = new r2(), this._reset();
for (var t3 = new o2(a2.START, ""), n3 = null, i3 = [], s3 = new r2(); t3.type !== a2.EOF; ) {
for (e3 = this._get_next_token(t3, n3); this._is_comment(e3); )
s3.add(e3), e3 = this._get_next_token(t3, n3);
s3.isEmpty() || (e3.comments_before = s3, s3 = new r2()), e3.parent = n3, this._is_opening(e3) ? (i3.push(n3), n3 = e3) : n3 && this._is_closing(e3, n3) && (e3.opened = n3, n3.closed = e3, n3 = i3.pop(), e3.parent = n3), e3.previous = t3, t3.next = e3, this.__tokens.add(e3), t3 = e3;
}
return this.__tokens;
}, l2.prototype._is_first_token = function() {
return this.__tokens.isEmpty();
}, l2.prototype._reset = function() {
}, l2.prototype._get_next_token = function(e3, t3) {
this._readWhitespace();
var n3 = this._input.read(/.+/g);
return n3 ? this._create_token(a2.RAW, n3) : this._create_token(a2.EOF, "");
}, l2.prototype._is_comment = function(e3) {
return false;
}, l2.prototype._is_opening = function(e3) {
return false;
}, l2.prototype._is_closing = function(e3, t3) {
return false;
}, l2.prototype._create_token = function(e3, t3) {
return new o2(e3, t3, this._patterns.whitespace.newline_count, this._patterns.whitespace.whitespace_before_token);
}, l2.prototype._readWhitespace = function() {
return this._patterns.whitespace.read();
}, e2.exports.Tokenizer = l2, e2.exports.TOKEN = a2;
}, function(e2, t2, n2) {
function i2(e3) {
this.__tokens = [], this.__tokens_length = this.__tokens.length, this.__position = 0, this.__parent_token = e3;
}
i2.prototype.restart = function() {
this.__position = 0;
}, i2.prototype.isEmpty = function() {
return 0 === this.__tokens_length;
}, i2.prototype.hasNext = function() {
return this.__position < this.__tokens_length;
}, i2.prototype.next = function() {
var e3 = null;
return this.hasNext() && (e3 = this.__tokens[this.__position], this.__position += 1), e3;
}, i2.prototype.peek = function(e3) {
var t3 = null;
return e3 = e3 || 0, (e3 += this.__position) >= 0 && e3 < this.__tokens_length && (t3 = this.__tokens[e3]), t3;
}, i2.prototype.add = function(e3) {
this.__parent_token && (e3.parent = this.__parent_token), this.__tokens.push(e3), this.__tokens_length += 1;
}, e2.exports.TokenStream = i2;
}, function(e2, t2, n2) {
var i2 = n2(12).Pattern;
function o2(e3, t3) {
i2.call(this, e3, t3), t3 ? this._line_regexp = this._input.get_regexp(t3._line_regexp) : this.__set_whitespace_patterns("", ""), this.newline_count = 0, this.whitespace_before_token = "";
}
o2.prototype = new i2(), o2.prototype.__set_whitespace_patterns = function(e3, t3) {
e3 += "\\t ", t3 += "\\n\\r", this._match_pattern = this._input.get_regexp("[" + e3 + t3 + "]+", true), this._newline_regexp = this._input.get_regexp("\\r\\n|[" + t3 + "]");
}, o2.prototype.read = function() {
this.newline_count = 0, this.whitespace_before_token = "";
var e3 = this._input.read(this._match_pattern);
if (" " === e3)
this.whitespace_before_token = " ";
else if (e3) {
var t3 = this.__split(this._newline_regexp, e3);
this.newline_count = t3.length - 1, this.whitespace_before_token = t3[this.newline_count];
}
return e3;
}, o2.prototype.matching = function(e3, t3) {
var n3 = this._create();
return n3.__set_whitespace_patterns(e3, t3), n3._update(), n3;
}, o2.prototype._create = function() {
return new o2(this._input, this);
}, o2.prototype.__split = function(e3, t3) {
e3.lastIndex = 0;
for (var n3 = 0, i3 = [], o3 = e3.exec(t3); o3; )
i3.push(t3.substring(n3, o3.index)), n3 = o3.index + o3[0].length, o3 = e3.exec(t3);
return n3 < t3.length ? i3.push(t3.substring(n3, t3.length)) : i3.push(""), i3;
}, e2.exports.WhitespacePattern = o2;
}, function(e2, t2, n2) {
function i2(e3, t3) {
this._input = e3, this._starting_pattern = null, this._match_pattern = null, this._until_pattern = null, this._until_after = false, t3 && (this._starting_pattern = this._input.get_regexp(t3._starting_pattern, true), this._match_pattern = this._input.get_regexp(t3._match_pattern, true), this._until_pattern = this._input.get_regexp(t3._until_pattern), this._until_after = t3._until_after);
}
i2.prototype.read = function() {
var e3 = this._input.read(this._starting_pattern);
return this._starting_pattern && !e3 || (e3 += this._input.read(this._match_pattern, this._until_pattern, this._until_after)), e3;
}, i2.prototype.read_match = function() {
return this._input.match(this._match_pattern);
}, i2.prototype.until_after = function(e3) {
var t3 = this._create();
return t3._until_after = true, t3._until_pattern = this._input.get_regexp(e3), t3._update(), t3;
}, i2.prototype.until = function(e3) {
var t3 = this._create();
return t3._until_after = false, t3._until_pattern = this._input.get_regexp(e3), t3._update(), t3;
}, i2.prototype.starting_with = function(e3) {
var t3 = this._create();
return t3._starting_pattern = this._input.get_regexp(e3, true), t3._update(), t3;
}, i2.prototype.matching = function(e3) {
var t3 = this._create();
return t3._match_pattern = this._input.get_regexp(e3, true), t3._update(), t3;
}, i2.prototype._create = function() {
return new i2(this._input, this);
}, i2.prototype._update = function() {
}, e2.exports.Pattern = i2;
}, function(e2, t2, n2) {
function i2(e3, t3) {
e3 = "string" == typeof e3 ? e3 : e3.source, t3 = "string" == typeof t3 ? t3 : t3.source, this.__directives_block_pattern = new RegExp(e3 + / beautify( \w+[:]\w+)+ /.source + t3, "g"), this.__directive_pattern = / (\w+)[:](\w+)/g, this.__directives_end_ignore_pattern = new RegExp(e3 + /\sbeautify\signore:end\s/.source + t3, "g");
}
i2.prototype.get_directives = function(e3) {
if (!e3.match(this.__directives_block_pattern))
return null;
var t3 = {};
this.__directive_pattern.lastIndex = 0;
for (var n3 = this.__directive_pattern.exec(e3); n3; )
t3[n3[1]] = n3[2], n3 = this.__directive_pattern.exec(e3);
return t3;
}, i2.prototype.readIgnored = function(e3) {
return e3.readUntilAfter(this.__directives_end_ignore_pattern);
}, e2.exports.Directives = i2;
}, function(e2, t2, n2) {
var i2 = n2(12).Pattern, o2 = {django: false, erb: false, handlebars: false, php: false};
function r2(e3, t3) {
i2.call(this, e3, t3), this.__template_pattern = null, this._disabled = Object.assign({}, o2), this._excluded = Object.assign({}, o2), t3 && (this.__template_pattern = this._input.get_regexp(t3.__template_pattern), this._excluded = Object.assign(this._excluded, t3._excluded), this._disabled = Object.assign(this._disabled, t3._disabled));
var n3 = new i2(e3);
this.__patterns = {handlebars_comment: n3.starting_with(/{{!--/).until_after(/--}}/), handlebars_unescaped: n3.starting_with(/{{{/).until_after(/}}}/), handlebars: n3.starting_with(/{{/).until_after(/}}/), php: n3.starting_with(/<\?(?:[=]|php)/).until_after(/\?>/), erb: n3.starting_with(/<%[^%]/).until_after(/[^%]%>/), django: n3.starting_with(/{%/).until_after(/%}/), django_value: n3.starting_with(/{{/).until_after(/}}/), django_comment: n3.starting_with(/{#/).until_after(/#}/)};
}
r2.prototype = new i2(), r2.prototype._create = function() {
return new r2(this._input, this);
}, r2.prototype._update = function() {
this.__set_templated_pattern();
}, r2.prototype.disable = function(e3) {
var t3 = this._create();
return t3._disabled[e3] = true, t3._update(), t3;
}, r2.prototype.read_options = function(e3) {
var t3 = this._create();
for (var n3 in o2)
t3._disabled[n3] = -1 === e3.templating.indexOf(n3);
return t3._update(), t3;
}, r2.prototype.exclude = function(e3) {
var t3 = this._create();
return t3._excluded[e3] = true, t3._update(), t3;
}, r2.prototype.read = function() {
var e3 = "";
e3 = this._match_pattern ? this._input.read(this._starting_pattern) : this._input.read(this._starting_pattern, this.__template_pattern);
for (var t3 = this._read_template(); t3; )
this._match_pattern ? t3 += this._input.read(this._match_pattern) : t3 += this._input.readUntil(this.__template_pattern), e3 += t3, t3 = this._read_template();
return this._until_after && (e3 += this._input.readUntilAfter(this._until_pattern)), e3;
}, r2.prototype.__set_templated_pattern = function() {
var e3 = [];
this._disabled.php || e3.push(this.__patterns.php._starting_pattern.source), this._disabled.handlebars || e3.push(this.__patterns.handlebars._starting_pattern.source), this._disabled.erb || e3.push(this.__patterns.erb._starting_pattern.source), this._disabled.django || (e3.push(this.__patterns.django._starting_pattern.source), e3.push(this.__patterns.django_value._starting_pattern.source), e3.push(this.__patterns.django_comment._starting_pattern.source)), this._until_pattern && e3.push(this._until_pattern.source), this.__template_pattern = this._input.get_regexp("(?:" + e3.join("|") + ")");
}, r2.prototype._read_template = function() {
var e3 = "", t3 = this._input.peek();
if ("<" === t3) {
var n3 = this._input.peek(1);
this._disabled.php || this._excluded.php || "?" !== n3 || (e3 = e3 || this.__patterns.php.read()), this._disabled.erb || this._excluded.erb || "%" !== n3 || (e3 = e3 || this.__patterns.erb.read());
} else
"{" === t3 && (this._disabled.handlebars || this._excluded.handlebars || (e3 = (e3 = (e3 = e3 || this.__patterns.handlebars_comment.read()) || this.__patterns.handlebars_unescaped.read()) || this.__patterns.handlebars.read()), this._disabled.django || (this._excluded.django || this._excluded.handlebars || (e3 = e3 || this.__patterns.django_value.read()), this._excluded.django || (e3 = (e3 = e3 || this.__patterns.django_comment.read()) || this.__patterns.django.read())));
return e3;
}, e2.exports.TemplatablePattern = r2;
}, , , , function(e2, t2, n2) {
var i2 = n2(19).Beautifier, o2 = n2(20).Options;
e2.exports = function(e3, t3, n3, o3) {
return new i2(e3, t3, n3, o3).beautify();
}, e2.exports.defaultOptions = function() {
return new o2();
};
}, function(e2, t2, n2) {
var i2 = n2(20).Options, o2 = n2(2).Output, r2 = n2(21).Tokenizer, s2 = n2(21).TOKEN, a2 = /\r\n|[\r\n]/, l2 = /\r\n|[\r\n]/g, c2 = function(e3, t3) {
this.indent_level = 0, this.alignment_size = 0, this.max_preserve_newlines = e3.max_preserve_newlines, this.preserve_newlines = e3.preserve_newlines, this._output = new o2(e3, t3);
};
c2.prototype.current_line_has_match = function(e3) {
return this._output.current_line.has_match(e3);
}, c2.prototype.set_space_before_token = function(e3, t3) {
this._output.space_before_token = e3, this._output.non_breaking_space = t3;
}, c2.prototype.set_wrap_point = function() {
this._output.set_indent(this.indent_level, this.alignment_size), this._output.set_wrap_point();
}, c2.prototype.add_raw_token = function(e3) {
this._output.add_raw_token(e3);
}, c2.prototype.print_preserved_newlines = function(e3) {
var t3 = 0;
e3.type !== s2.TEXT && e3.previous.type !== s2.TEXT && (t3 = e3.newlines ? 1 : 0), this.preserve_newlines && (t3 = e3.newlines < this.max_preserve_newlines + 1 ? e3.newlines : this.max_preserve_newlines + 1);
for (var n3 = 0; n3 < t3; n3++)
this.print_newline(n3 > 0);
return 0 !== t3;
}, c2.prototype.traverse_whitespace = function(e3) {
return !(!e3.whitespace_before && !e3.newlines) && (this.print_preserved_newlines(e3) || (this._output.space_before_token = true), true);
}, c2.prototype.previous_token_wrapped = function() {
return this._output.previous_token_wrapped;
}, c2.prototype.print_newline = function(e3) {
this._output.add_new_line(e3);
}, c2.prototype.print_token = function(e3) {
e3.text && (this._output.set_indent(this.indent_level, this.alignment_size), this._output.add_token(e3.text));
}, c2.prototype.indent = function() {
this.indent_level++;
}, c2.prototype.get_full_indent = function(e3) {
return (e3 = this.indent_level + (e3 || 0)) < 1 ? "" : this._output.get_indent_string(e3);
};
var d2 = function(e3, t3) {
var n3 = null, i3 = null;
return t3.closed ? ("script" === e3 ? n3 = "text/javascript" : "style" === e3 && (n3 = "text/css"), (n3 = function(e4) {
for (var t4 = null, n4 = e4.next; n4.type !== s2.EOF && e4.closed !== n4; ) {
if (n4.type === s2.ATTRIBUTE && "type" === n4.text) {
n4.next && n4.next.type === s2.EQUALS && n4.next.next && n4.next.next.type === s2.VALUE && (t4 = n4.next.next.text);
break;
}
n4 = n4.next;
}
return t4;
}(t3) || n3).search("text/css") > -1 ? i3 = "css" : n3.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/) > -1 ? i3 = "javascript" : n3.search(/(text|application|dojo)\/(x-)?(html)/) > -1 ? i3 = "html" : n3.search(/test\/null/) > -1 && (i3 = "null"), i3) : null;
};
function h2(e3, t3) {
return -1 !== t3.indexOf(e3);
}
function u2(e3, t3, n3) {
this.parent = e3 || null, this.tag = t3 ? t3.tag_name : "", this.indent_level = n3 || 0, this.parser_token = t3 || null;
}
function p2(e3) {
this._printer = e3, this._current_frame = null;
}
function m2(e3, t3, n3, o3) {
this._source_text = e3 || "", t3 = t3 || {}, this._js_beautify = n3, this._css_beautify = o3, this._tag_stack = null;
var r3 = new i2(t3, "html");
this._options = r3, this._is_wrap_attributes_force = "force" === this._options.wrap_attributes.substr(0, "force".length), this._is_wrap_attributes_force_expand_multiline = "force-expand-multiline" === this._options.wrap_attributes, this._is_wrap_attributes_force_aligned = "force-aligned" === this._options.wrap_attributes, this._is_wrap_attributes_aligned_multiple = "aligned-multiple" === this._options.wrap_attributes, this._is_wrap_attributes_preserve = "preserve" === this._options.wrap_attributes.substr(0, "preserve".length), this._is_wrap_attributes_preserve_aligned = "preserve-aligned" === this._options.wrap_attributes;
}
p2.prototype.get_parser_token = function() {
return this._current_frame ? this._current_frame.parser_token : null;
}, p2.prototype.record_tag = function(e3) {
var t3 = new u2(this._current_frame, e3, this._printer.indent_level);
this._current_frame = t3;
}, p2.prototype._try_pop_frame = function(e3) {
var t3 = null;
return e3 && (t3 = e3.parser_token, this._printer.indent_level = e3.indent_level, this._current_frame = e3.parent), t3;
}, p2.prototype._get_frame = function(e3, t3) {
for (var n3 = this._current_frame; n3 && -1 === e3.indexOf(n3.tag); ) {
if (t3 && -1 !== t3.indexOf(n3.tag)) {
n3 = null;
break;
}
n3 = n3.parent;
}
return n3;
}, p2.prototype.try_pop = function(e3, t3) {
var n3 = this._get_frame([e3], t3);
return this._try_pop_frame(n3);
}, p2.prototype.indent_to_tag = function(e3) {
var t3 = this._get_frame(e3);
t3 && (this._printer.indent_level = t3.indent_level);
}, m2.prototype.beautify = function() {
if (this._options.disabled)
return this._source_text;
var e3 = this._source_text, t3 = this._options.eol;
"auto" === this._options.eol && (t3 = "\n", e3 && a2.test(e3) && (t3 = e3.match(a2)[0]));
var n3 = (e3 = e3.replace(l2, "\n")).match(/^[\t ]*/)[0], i3 = {text: "", type: ""}, o3 = new g2(), d3 = new c2(this._options, n3), h3 = new r2(e3, this._options).tokenize();
this._tag_stack = new p2(d3);
for (var u3 = null, m3 = h3.next(); m3.type !== s2.EOF; )
m3.type === s2.TAG_OPEN || m3.type === s2.COMMENT ? o3 = u3 = this._handle_tag_open(d3, m3, o3, i3) : m3.type === s2.ATTRIBUTE || m3.type === s2.EQUALS || m3.type === s2.VALUE || m3.type === s2.TEXT && !o3.tag_complete ? u3 = this._handle_inside_tag(d3, m3, o3, h3) : m3.type === s2.TAG_CLOSE ? u3 = this._handle_tag_close(d3, m3, o3) : m3.type === s2.TEXT ? u3 = this._handle_text(d3, m3, o3) : d3.add_raw_token(m3), i3 = u3, m3 = h3.next();
return d3._output.get_code(t3);
}, m2.prototype._handle_tag_close = function(e3, t3, n3) {
var i3 = {text: t3.text, type: t3.type};
return e3.alignment_size = 0, n3.tag_complete = true, e3.set_space_before_token(t3.newlines || "" !== t3.whitespace_before, true), n3.is_unformatted ? e3.add_raw_token(t3) : ("<" === n3.tag_start_char && (e3.set_space_before_token("/" === t3.text[0], true), this._is_wrap_attributes_force_expand_multiline && n3.has_wrapped_attrs && e3.print_newline(false)), e3.print_token(t3)), !n3.indent_content || n3.is_unformatted || n3.is_content_unformatted || (e3.indent(), n3.indent_content = false), n3.is_inline_element || n3.is_unformatted || n3.is_content_unformatted || e3.set_wrap_point(), i3;
}, m2.prototype._handle_inside_tag = function(e3, t3, n3, i3) {
var o3 = n3.has_wrapped_attrs, r3 = {text: t3.text, type: t3.type};
if (e3.set_space_before_token(t3.newlines || "" !== t3.whitespace_before, true), n3.is_unformatted)
e3.add_raw_token(t3);
else if ("{" === n3.tag_start_char && t3.type === s2.TEXT)
e3.print_preserved_newlines(t3) ? (t3.newlines = 0, e3.add_raw_token(t3)) : e3.print_token(t3);
else {
if (t3.type === s2.ATTRIBUTE ? (e3.set_space_before_token(true), n3.attr_count += 1) : (t3.type === s2.EQUALS || t3.type === s2.VALUE && t3.previous.type === s2.EQUALS) && e3.set_space_before_token(false), t3.type === s2.ATTRIBUTE && "<" === n3.tag_start_char && ((this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) && (e3.traverse_whitespace(t3), o3 = o3 || 0 !== t3.newlines), this._is_wrap_attributes_force)) {
var a3 = n3.attr_count > 1;
if (this._is_wrap_attributes_force_expand_multiline && 1 === n3.attr_count) {
var l3, c3 = true, d3 = 0;
do {
if ((l3 = i3.peek(d3)).type === s2.ATTRIBUTE) {
c3 = false;
break;
}
d3 += 1;
} while (d3 < 4 && l3.type !== s2.EOF && l3.type !== s2.TAG_CLOSE);
a3 = !c3;
}
a3 && (e3.print_newline(false), o3 = true);
}
e3.print_token(t3), o3 = o3 || e3.previous_token_wrapped(), n3.has_wrapped_attrs = o3;
}
return r3;
}, m2.prototype._handle_text = function(e3, t3, n3) {
var i3 = {text: t3.text, type: "TK_CONTENT"};
return n3.custom_beautifier_name ? this._print_custom_beatifier_text(e3, t3, n3) : n3.is_unformatted || n3.is_content_unformatted ? e3.add_raw_token(t3) : (e3.traverse_whitespace(t3), e3.print_token(t3)), i3;
}, m2.prototype._print_custom_beatifier_text = function(e3, t3, n3) {
var i3 = this;
if ("" !== t3.text) {
var o3, r3 = t3.text, s3 = 1, a3 = "", l3 = "";
"javascript" === n3.custom_beautifier_name && "function" == typeof this._js_beautify ? o3 = this._js_beautify : "css" === n3.custom_beautifier_name && "function" == typeof this._css_beautify ? o3 = this._css_beautify : "html" === n3.custom_beautifier_name && (o3 = function(e4, t4) {
return new m2(e4, t4, i3._js_beautify, i3._css_beautify).beautify();
}), "keep" === this._options.indent_scripts ? s3 = 0 : "separate" === this._options.indent_scripts && (s3 = -e3.indent_level);
var c3 = e3.get_full_indent(s3);
if (r3 = r3.replace(/\n[ \t]*$/, ""), "html" !== n3.custom_beautifier_name && "<" === r3[0] && r3.match(/^(|]]>)$/.exec(r3);
if (!d3)
return void e3.add_raw_token(t3);
a3 = c3 + d3[1] + "\n", r3 = d3[4], d3[5] && (l3 = c3 + d3[5]), r3 = r3.replace(/\n[ \t]*$/, ""), (d3[2] || -1 !== d3[3].indexOf("\n")) && (d3 = d3[3].match(/[ \t]+$/)) && (t3.whitespace_before = d3[0]);
}
if (r3)
if (o3) {
var h3 = function() {
this.eol = "\n";
};
h3.prototype = this._options.raw_options, r3 = o3(c3 + r3, new h3());
} else {
var u3 = t3.whitespace_before;
u3 && (r3 = r3.replace(new RegExp("\n(" + u3 + ")?", "g"), "\n")), r3 = c3 + r3.replace(/\n/g, "\n" + c3);
}
a3 && (r3 = r3 ? a3 + r3 + "\n" + l3 : a3 + l3), e3.print_newline(false), r3 && (t3.text = r3, t3.whitespace_before = "", t3.newlines = 0, e3.add_raw_token(t3), e3.print_newline(true));
}
}, m2.prototype._handle_tag_open = function(e3, t3, n3, i3) {
var o3 = this._get_tag_open_token(t3);
return (n3.is_unformatted || n3.is_content_unformatted) && t3.type === s2.TAG_OPEN && 0 === t3.text.indexOf("") ? (e3.add_raw_token(t3), o3.start_tag_token = this._tag_stack.try_pop(o3.tag_name)) : (e3.traverse_whitespace(t3), this._set_tag_position(e3, t3, o3, n3, i3), o3.is_inline_element || e3.set_wrap_point(), e3.print_token(t3)), (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) && (o3.alignment_size = t3.text.length + 1), o3.tag_complete || o3.is_unformatted || (e3.alignment_size = o3.alignment_size), o3;
};
var g2 = function(e3, t3) {
var n3;
(this.parent = e3 || null, this.text = "", this.type = "TK_TAG_OPEN", this.tag_name = "", this.is_inline_element = false, this.is_unformatted = false, this.is_content_unformatted = false, this.is_empty_element = false, this.is_start_tag = false, this.is_end_tag = false, this.indent_content = false, this.multiline_content = false, this.custom_beautifier_name = null, this.start_tag_token = null, this.attr_count = 0, this.has_wrapped_attrs = false, this.alignment_size = 0, this.tag_complete = false, this.tag_start_char = "", this.tag_check = "", t3) ? (this.tag_start_char = t3.text[0], this.text = t3.text, "<" === this.tag_start_char ? (n3 = t3.text.match(/^<([^\s>]*)/), this.tag_check = n3 ? n3[1] : "") : (n3 = t3.text.match(/^{{(?:[\^]|#\*?)?([^\s}]+)/), this.tag_check = n3 ? n3[1] : "", "{{#>" === t3.text && ">" === this.tag_check && null !== t3.next && (this.tag_check = t3.next.text)), this.tag_check = this.tag_check.toLowerCase(), t3.type === s2.COMMENT && (this.tag_complete = true), this.is_start_tag = "/" !== this.tag_check.charAt(0), this.tag_name = this.is_start_tag ? this.tag_check : this.tag_check.substr(1), this.is_end_tag = !this.is_start_tag || t3.closed && "/>" === t3.closed.text, this.is_end_tag = this.is_end_tag || "{" === this.tag_start_char && (this.text.length < 3 || /[^#\^]/.test(this.text.charAt(2)))) : this.tag_complete = true;
};
m2.prototype._get_tag_open_token = function(e3) {
var t3 = new g2(this._tag_stack.get_parser_token(), e3);
return t3.alignment_size = this._options.wrap_attributes_indent_size, t3.is_end_tag = t3.is_end_tag || h2(t3.tag_check, this._options.void_elements), t3.is_empty_element = t3.tag_complete || t3.is_start_tag && t3.is_end_tag, t3.is_unformatted = !t3.tag_complete && h2(t3.tag_check, this._options.unformatted), t3.is_content_unformatted = !t3.is_empty_element && h2(t3.tag_check, this._options.content_unformatted), t3.is_inline_element = h2(t3.tag_name, this._options.inline) || "{" === t3.tag_start_char, t3;
}, m2.prototype._set_tag_position = function(e3, t3, n3, i3, o3) {
if (n3.is_empty_element || (n3.is_end_tag ? n3.start_tag_token = this._tag_stack.try_pop(n3.tag_name) : (this._do_optional_end_element(n3) && (n3.is_inline_element || (n3.parent && (n3.parent.multiline_content = true), e3.print_newline(false))), this._tag_stack.record_tag(n3), "script" !== n3.tag_name && "style" !== n3.tag_name || n3.is_unformatted || n3.is_content_unformatted || (n3.custom_beautifier_name = d2(n3.tag_check, t3)))), h2(n3.tag_check, this._options.extra_liners) && (e3.print_newline(false), e3._output.just_added_blankline() || e3.print_newline(true)), n3.is_empty_element) {
if ("{" === n3.tag_start_char && "else" === n3.tag_check)
this._tag_stack.indent_to_tag(["if", "unless", "each"]), n3.indent_content = true, e3.current_line_has_match(/{{#if/) || e3.print_newline(false);
"!--" === n3.tag_name && o3.type === s2.TAG_CLOSE && i3.is_end_tag && -1 === n3.text.indexOf("\n") || n3.is_inline_element || n3.is_unformatted || e3.print_newline(false);
} else
n3.is_unformatted || n3.is_content_unformatted ? n3.is_inline_element || n3.is_unformatted || e3.print_newline(false) : n3.is_end_tag ? (n3.start_tag_token && n3.start_tag_token.multiline_content || !(n3.is_inline_element || i3.is_inline_element || o3.type === s2.TAG_CLOSE && n3.start_tag_token === i3 || "TK_CONTENT" === o3.type)) && e3.print_newline(false) : (n3.indent_content = !n3.custom_beautifier_name, "<" === n3.tag_start_char && ("html" === n3.tag_name ? n3.indent_content = this._options.indent_inner_html : "head" === n3.tag_name ? n3.indent_content = this._options.indent_head_inner_html : "body" === n3.tag_name && (n3.indent_content = this._options.indent_body_inner_html)), n3.is_inline_element || "TK_CONTENT" === o3.type || (n3.parent && (n3.parent.multiline_content = true), e3.print_newline(false)));
};
var f2 = ["address", "article", "aside", "blockquote", "details", "div", "dl", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hr", "main", "nav", "ol", "p", "pre", "section", "table", "ul"], b2 = ["a", "audio", "del", "ins", "map", "noscript", "video"];
m2.prototype._do_optional_end_element = function(e3) {
var t3 = null;
if (!e3.is_empty_element && e3.is_start_tag && e3.parent) {
if ("body" === e3.tag_name)
t3 = t3 || this._tag_stack.try_pop("head");
else if ("li" === e3.tag_name)
t3 = t3 || this._tag_stack.try_pop("li", ["ol", "ul"]);
else if ("dd" === e3.tag_name || "dt" === e3.tag_name)
t3 = (t3 = t3 || this._tag_stack.try_pop("dt", ["dl"])) || this._tag_stack.try_pop("dd", ["dl"]);
else if ("p" === e3.parent.tag_name && -1 !== f2.indexOf(e3.tag_name)) {
var n3 = e3.parent.parent;
n3 && -1 !== b2.indexOf(n3.tag_name) || (t3 = t3 || this._tag_stack.try_pop("p"));
} else
"rp" === e3.tag_name || "rt" === e3.tag_name ? t3 = (t3 = t3 || this._tag_stack.try_pop("rt", ["ruby", "rtc"])) || this._tag_stack.try_pop("rp", ["ruby", "rtc"]) : "optgroup" === e3.tag_name ? t3 = t3 || this._tag_stack.try_pop("optgroup", ["select"]) : "option" === e3.tag_name ? t3 = t3 || this._tag_stack.try_pop("option", ["select", "datalist", "optgroup"]) : "colgroup" === e3.tag_name ? t3 = t3 || this._tag_stack.try_pop("caption", ["table"]) : "thead" === e3.tag_name ? t3 = (t3 = t3 || this._tag_stack.try_pop("caption", ["table"])) || this._tag_stack.try_pop("colgroup", ["table"]) : "tbody" === e3.tag_name || "tfoot" === e3.tag_name ? t3 = (t3 = (t3 = (t3 = t3 || this._tag_stack.try_pop("caption", ["table"])) || this._tag_stack.try_pop("colgroup", ["table"])) || this._tag_stack.try_pop("thead", ["table"])) || this._tag_stack.try_pop("tbody", ["table"]) : "tr" === e3.tag_name ? t3 = (t3 = (t3 = t3 || this._tag_stack.try_pop("caption", ["table"])) || this._tag_stack.try_pop("colgroup", ["table"])) || this._tag_stack.try_pop("tr", ["table", "thead", "tbody", "tfoot"]) : "th" !== e3.tag_name && "td" !== e3.tag_name || (t3 = (t3 = t3 || this._tag_stack.try_pop("td", ["table", "thead", "tbody", "tfoot", "tr"])) || this._tag_stack.try_pop("th", ["table", "thead", "tbody", "tfoot", "tr"]));
return e3.parent = this._tag_stack.get_parser_token(), t3;
}
}, e2.exports.Beautifier = m2;
}, function(e2, t2, n2) {
var i2 = n2(6).Options;
function o2(e3) {
i2.call(this, e3, "html"), 1 === this.templating.length && "auto" === this.templating[0] && (this.templating = ["django", "erb", "handlebars", "php"]), this.indent_inner_html = this._get_boolean("indent_inner_html"), this.indent_body_inner_html = this._get_boolean("indent_body_inner_html", true), this.indent_head_inner_html = this._get_boolean("indent_head_inner_html", true), this.indent_handlebars = this._get_boolean("indent_handlebars", true), this.wrap_attributes = this._get_selection("wrap_attributes", ["auto", "force", "force-aligned", "force-expand-multiline", "aligned-multiple", "preserve", "preserve-aligned"]), this.wrap_attributes_indent_size = this._get_number("wrap_attributes_indent_size", this.indent_size), this.extra_liners = this._get_array("extra_liners", ["head", "body", "/html"]), this.inline = this._get_array("inline", ["a", "abbr", "area", "audio", "b", "bdi", "bdo", "br", "button", "canvas", "cite", "code", "data", "datalist", "del", "dfn", "em", "embed", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "map", "mark", "math", "meter", "noscript", "object", "output", "progress", "q", "ruby", "s", "samp", "select", "small", "span", "strong", "sub", "sup", "svg", "template", "textarea", "time", "u", "var", "video", "wbr", "text", "acronym", "big", "strike", "tt"]), this.void_elements = this._get_array("void_elements", ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "menuitem", "meta", "param", "source", "track", "wbr", "!doctype", "?xml", "basefont", "isindex"]), this.unformatted = this._get_array("unformatted", []), this.content_unformatted = this._get_array("content_unformatted", ["pre", "textarea"]), this.unformatted_content_delimiter = this._get_characters("unformatted_content_delimiter"), this.indent_scripts = this._get_selection("indent_scripts", ["normal", "keep", "separate"]);
}
o2.prototype = new i2(), e2.exports.Options = o2;
}, function(e2, t2, n2) {
var i2 = n2(9).Tokenizer, o2 = n2(9).TOKEN, r2 = n2(13).Directives, s2 = n2(14).TemplatablePattern, a2 = n2(12).Pattern, l2 = {TAG_OPEN: "TK_TAG_OPEN", TAG_CLOSE: "TK_TAG_CLOSE", ATTRIBUTE: "TK_ATTRIBUTE", EQUALS: "TK_EQUALS", VALUE: "TK_VALUE", COMMENT: "TK_COMMENT", TEXT: "TK_TEXT", UNKNOWN: "TK_UNKNOWN", START: o2.START, RAW: o2.RAW, EOF: o2.EOF}, c2 = new r2(/<\!--/, /-->/), d2 = function(e3, t3) {
i2.call(this, e3, t3), this._current_tag_name = "";
var n3 = new s2(this._input).read_options(this._options), o3 = new a2(this._input);
if (this.__patterns = {word: n3.until(/[\n\r\t <]/), single_quote: n3.until_after(/'/), double_quote: n3.until_after(/"/), attribute: n3.until(/[\n\r\t =>]|\/>/), element_name: n3.until(/[\n\r\t >\/]/), handlebars_comment: o3.starting_with(/{{!--/).until_after(/--}}/), handlebars: o3.starting_with(/{{/).until_after(/}}/), handlebars_open: o3.until(/[\n\r\t }]/), handlebars_raw_close: o3.until(/}}/), comment: o3.starting_with(//), cdata: o3.starting_with(//), conditional_comment: o3.starting_with(//), processing: o3.starting_with(/<\?/).until_after(/\?>/)}, this._options.indent_handlebars && (this.__patterns.word = this.__patterns.word.exclude("handlebars")), this._unformatted_content_delimiter = null, this._options.unformatted_content_delimiter) {
var r3 = this._input.get_literal_regexp(this._options.unformatted_content_delimiter);
this.__patterns.unformatted_content_delimiter = o3.matching(r3).until_after(r3);
}
};
(d2.prototype = new i2())._is_comment = function(e3) {
return false;
}, d2.prototype._is_opening = function(e3) {
return e3.type === l2.TAG_OPEN;
}, d2.prototype._is_closing = function(e3, t3) {
return e3.type === l2.TAG_CLOSE && t3 && ((">" === e3.text || "/>" === e3.text) && "<" === t3.text[0] || "}}" === e3.text && "{" === t3.text[0] && "{" === t3.text[1]);
}, d2.prototype._reset = function() {
this._current_tag_name = "";
}, d2.prototype._get_next_token = function(e3, t3) {
var n3 = null;
this._readWhitespace();
var i3 = this._input.peek();
return null === i3 ? this._create_token(l2.EOF, "") : n3 = (n3 = (n3 = (n3 = (n3 = (n3 = (n3 = (n3 = (n3 = n3 || this._read_open_handlebars(i3, t3)) || this._read_attribute(i3, e3, t3)) || this._read_raw_content(i3, e3, t3)) || this._read_close(i3, t3)) || this._read_content_word(i3)) || this._read_comment_or_cdata(i3)) || this._read_processing(i3)) || this._read_open(i3, t3)) || this._create_token(l2.UNKNOWN, this._input.next());
}, d2.prototype._read_comment_or_cdata = function(e3) {
var t3 = null, n3 = null, i3 = null;
"<" === e3 && ("!" === this._input.peek(1) && ((n3 = this.__patterns.comment.read()) ? (i3 = c2.get_directives(n3)) && "start" === i3.ignore && (n3 += c2.readIgnored(this._input)) : n3 = this.__patterns.cdata.read()), n3 && ((t3 = this._create_token(l2.COMMENT, n3)).directives = i3));
return t3;
}, d2.prototype._read_processing = function(e3) {
var t3 = null, n3 = null;
if ("<" === e3) {
var i3 = this._input.peek(1);
"!" !== i3 && "?" !== i3 || (n3 = (n3 = this.__patterns.conditional_comment.read()) || this.__patterns.processing.read()), n3 && ((t3 = this._create_token(l2.COMMENT, n3)).directives = null);
}
return t3;
}, d2.prototype._read_open = function(e3, t3) {
var n3 = null, i3 = null;
return t3 || "<" === e3 && (n3 = this._input.next(), "/" === this._input.peek() && (n3 += this._input.next()), n3 += this.__patterns.element_name.read(), i3 = this._create_token(l2.TAG_OPEN, n3)), i3;
}, d2.prototype._read_open_handlebars = function(e3, t3) {
var n3 = null, i3 = null;
return t3 || this._options.indent_handlebars && "{" === e3 && "{" === this._input.peek(1) && ("!" === this._input.peek(2) ? (n3 = (n3 = this.__patterns.handlebars_comment.read()) || this.__patterns.handlebars.read(), i3 = this._create_token(l2.COMMENT, n3)) : (n3 = this.__patterns.handlebars_open.read(), i3 = this._create_token(l2.TAG_OPEN, n3))), i3;
}, d2.prototype._read_close = function(e3, t3) {
var n3 = null, i3 = null;
return t3 && ("<" === t3.text[0] && (">" === e3 || "/" === e3 && ">" === this._input.peek(1)) ? (n3 = this._input.next(), "/" === e3 && (n3 += this._input.next()), i3 = this._create_token(l2.TAG_CLOSE, n3)) : "{" === t3.text[0] && "}" === e3 && "}" === this._input.peek(1) && (this._input.next(), this._input.next(), i3 = this._create_token(l2.TAG_CLOSE, "}}"))), i3;
}, d2.prototype._read_attribute = function(e3, t3, n3) {
var i3 = null, o3 = "";
if (n3 && "<" === n3.text[0])
if ("=" === e3)
i3 = this._create_token(l2.EQUALS, this._input.next());
else if ('"' === e3 || "'" === e3) {
var r3 = this._input.next();
r3 += '"' === e3 ? this.__patterns.double_quote.read() : this.__patterns.single_quote.read(), i3 = this._create_token(l2.VALUE, r3);
} else
(o3 = this.__patterns.attribute.read()) && (i3 = t3.type === l2.EQUALS ? this._create_token(l2.VALUE, o3) : this._create_token(l2.ATTRIBUTE, o3));
return i3;
}, d2.prototype._is_content_unformatted = function(e3) {
return -1 === this._options.void_elements.indexOf(e3) && (-1 !== this._options.content_unformatted.indexOf(e3) || -1 !== this._options.unformatted.indexOf(e3));
}, d2.prototype._read_raw_content = function(e3, t3, n3) {
var i3 = "";
if (n3 && "{" === n3.text[0])
i3 = this.__patterns.handlebars_raw_close.read();
else if (t3.type === l2.TAG_CLOSE && "<" === t3.opened.text[0]) {
var o3 = t3.opened.text.substr(1).toLowerCase();
if ("script" === o3 || "style" === o3) {
var r3 = this._read_comment_or_cdata(e3);
if (r3)
return r3.type = l2.TEXT, r3;
i3 = this._input.readUntil(new RegExp("" + o3 + "[\\n\\r\\t ]*?>", "ig"));
} else
this._is_content_unformatted(o3) && (i3 = this._input.readUntil(new RegExp("" + o3 + "[\\n\\r\\t ]*?>", "ig")));
}
return i3 ? this._create_token(l2.TEXT, i3) : null;
}, d2.prototype._read_content_word = function(e3) {
var t3 = "";
if (this._options.unformatted_content_delimiter && e3 === this._options.unformatted_content_delimiter[0] && (t3 = this.__patterns.unformatted_content_delimiter.read()), t3 || (t3 = this.__patterns.word.read()), t3)
return this._create_token(l2.TEXT, t3);
}, e2.exports.Tokenizer = d2, e2.exports.TOKEN = l2;
}]);
function ut(e2, t2, n2) {
var i2 = e2.getText(), o2 = true, r2 = 0, l2 = n2.tabSize || 4;
if (t2) {
for (var c2 = e2.offsetAt(t2.start), d2 = c2; d2 > 0 && ft(i2, d2 - 1); )
d2--;
0 === d2 || gt(i2, d2 - 1) ? c2 = d2 : d2 < c2 && (c2 = d2 + 1);
for (var h2 = e2.offsetAt(t2.end), u2 = h2; u2 < i2.length && ft(i2, u2); )
u2++;
(u2 === i2.length || gt(i2, u2)) && (h2 = u2), t2 = a.create(e2.positionAt(c2), e2.positionAt(h2));
var p2 = i2.substring(0, c2);
if (new RegExp(/.*[<][^>]*$/).test(p2))
return [{range: t2, newText: i2 = i2.substring(c2, h2)}];
if (o2 = h2 === i2.length, i2 = i2.substring(c2, h2), 0 !== c2) {
var m2 = e2.offsetAt(s.create(t2.start.line, 0));
r2 = function(e3, t3, n3) {
var i3 = t3, o3 = 0, r3 = n3.tabSize || 4;
for (; i3 < e3.length; ) {
var s2 = e3.charAt(i3);
if (" " === s2)
o3++;
else {
if (" " !== s2)
break;
o3 += r3;
}
i3++;
}
return Math.floor(o3 / r3);
}(e2.getText(), m2, n2);
}
} else
t2 = a.create(s.create(0, 0), e2.positionAt(i2.length));
var g2 = {indent_size: l2, indent_char: n2.insertSpaces ? " " : " ", indent_empty_lines: pt(n2, "indentEmptyLines", false), wrap_line_length: pt(n2, "wrapLineLength", 120), unformatted: mt(n2, "unformatted", void 0), content_unformatted: mt(n2, "contentUnformatted", void 0), indent_inner_html: pt(n2, "indentInnerHtml", false), preserve_newlines: pt(n2, "preserveNewLines", true), max_preserve_newlines: pt(n2, "maxPreserveNewLines", 32786), indent_handlebars: pt(n2, "indentHandlebars", false), end_with_newline: o2 && pt(n2, "endWithNewline", false), extra_liners: mt(n2, "extraLiners", void 0), wrap_attributes: pt(n2, "wrapAttributes", "auto"), wrap_attributes_indent_size: pt(n2, "wrapAttributesIndentSize", void 0), eol: "\n"}, f2 = function(e3, t3) {
return ht(e3, t3, ct, dt);
}(i2.replace(/^\s+/, ""), g2);
if (r2 > 0) {
var b2 = n2.insertSpaces ? We(" ", l2 * r2) : We(" ", r2);
f2 = f2.split("\n").join("\n" + b2), 0 === t2.start.character && (f2 = b2 + f2);
}
return [{range: t2, newText: f2}];
}
function pt(e2, t2, n2) {
if (e2 && e2.hasOwnProperty(t2)) {
var i2 = e2[t2];
if (null !== i2)
return i2;
}
return n2;
}
function mt(e2, t2, n2) {
var i2 = pt(e2, t2, null);
return "string" == typeof i2 ? i2.length > 0 ? i2.split(",").map(function(e3) {
return e3.trim().toLowerCase();
}) : [] : n2;
}
function gt(e2, t2) {
return -1 !== "\r\n".indexOf(e2.charAt(t2));
}
function ft(e2, t2) {
return -1 !== " ".indexOf(e2.charAt(t2));
}
var bt = n(176);
function _t(e2) {
var t2 = e2[0];
return t2 !== e2[e2.length - 1] || "'" !== t2 && '"' !== t2 || (e2 = e2.substr(1, e2.length - 2)), e2;
}
function vt(e2, t2, n2, i2, o2, r2) {
var s2 = _t(n2);
if (l2 = s2, c2 = e2.languageId, l2.length && ("handlebars" !== c2 || !/{{.*}}/.test(l2)) && /\b(w[\w\d+.-]*:\/\/)?[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))/.test(l2)) {
var l2, c2;
s2.length < n2.length && (i2++, o2--);
var d2 = function(e3, t3, n3, i3) {
if (!/^\s*javascript\:/i.test(t3) && !/[\n\r]/.test(t3))
return t3 = t3.replace(/^\s*/g, ""), /^https?:\/\//i.test(t3) || /^file:\/\//i.test(t3) ? t3 : /^\#/i.test(t3) ? e3 + t3 : /^\/\//i.test(t3) ? (Fe(e3, "https://") ? "https" : "http") + ":" + t3.replace(/^\s*/g, "") : n3 ? n3.resolveReference(t3, i3 || e3) : t3;
}(e2.uri, s2, t2, r2);
if (d2 && function(e3) {
try {
return bt.a.parse(e3), true;
} catch (e4) {
return false;
}
}(d2))
return {range: a.create(e2.positionAt(i2), e2.positionAt(o2)), target: d2};
}
}
function wt(e2, t2) {
for (var n2 = [], i2 = Ie(e2.getText(), 0), o2 = i2.scan(), r2 = void 0, s2 = false, a2 = void 0, l2 = {}; o2 !== se.EOS; ) {
switch (o2) {
case se.StartTag:
if (!a2)
s2 = "base" === i2.getTokenText().toLowerCase();
break;
case se.AttributeName:
r2 = i2.getTokenText().toLowerCase();
break;
case se.AttributeValue:
if ("src" === r2 || "href" === r2) {
var c2 = i2.getTokenText();
if (!s2)
(u2 = vt(e2, t2, c2, i2.getTokenOffset(), i2.getTokenEnd(), a2)) && n2.push(u2);
s2 && void 0 === a2 && (a2 = _t(c2)) && t2 && (a2 = t2.resolveReference(a2, e2.uri)), s2 = false, r2 = void 0;
} else if ("id" === r2) {
l2[_t(i2.getTokenText())] = i2.getTokenOffset();
}
}
o2 = i2.scan();
}
for (var d2 = 0, h2 = n2; d2 < h2.length; d2++) {
var u2 = h2[d2], p2 = e2.uri + "#";
if (u2.target && Fe(u2.target, p2)) {
var m2 = l2[u2.target.substr(p2.length)];
if (void 0 !== m2) {
var g2 = e2.positionAt(m2);
u2.target = "" + p2 + (g2.line + 1) + "," + (g2.character + 1);
}
}
}
return n2;
}
function yt(e2, t2, n2) {
var i2 = e2.offsetAt(t2), o2 = n2.findNodeAt(i2);
if (!o2.tag)
return [];
var r2 = [], s2 = St(se.StartTag, e2, o2.start), a2 = "number" == typeof o2.endTagStart && St(se.EndTag, e2, o2.endTagStart);
return (s2 && xt(s2, t2) || a2 && xt(a2, t2)) && (s2 && r2.push({kind: V.Read, range: s2}), a2 && r2.push({kind: V.Read, range: a2})), r2;
}
function Ct(e2, t2) {
return e2.line < t2.line || e2.line === t2.line && e2.character <= t2.character;
}
function xt(e2, t2) {
return Ct(e2.start, t2) && Ct(t2, e2.end);
}
function St(e2, t2, n2) {
for (var i2 = Ie(t2.getText(), n2), o2 = i2.scan(); o2 !== se.EOS && o2 !== e2; )
o2 = i2.scan();
return o2 !== se.EOS ? {start: t2.positionAt(i2.getTokenOffset()), end: t2.positionAt(i2.getTokenEnd())} : null;
}
function kt(e2, t2) {
var n2 = [];
return t2.roots.forEach(function(t3) {
!function e3(t4, n3, i2, o2) {
var r2 = function(e4) {
var t5 = e4.tag;
if (e4.attributes) {
var n4 = e4.attributes.id, i3 = e4.attributes.class;
n4 && (t5 += "#" + n4.replace(/[\"\']/g, "")), i3 && (t5 += i3.replace(/[\"\']/g, "").split(/\s+/).map(function(e5) {
return "." + e5;
}).join(""));
}
return t5 || "?";
}(n3), s2 = l.create(t4.uri, a.create(t4.positionAt(n3.start), t4.positionAt(n3.end))), c2 = {name: r2, location: s2, containerName: i2, kind: H.Field};
o2.push(c2), n3.children.forEach(function(n4) {
e3(t4, n4, r2, o2);
});
}(e2, t3, "", n2);
}), n2;
}
function Et(e2, t2, n2, i2) {
var o2, r2 = e2.offsetAt(t2), s2 = i2.findNodeAt(r2);
if (!s2.tag)
return null;
if (!function(e3, t3, n3) {
if (e3.endTagStart && e3.endTagStart + "".length <= t3 && t3 <= e3.endTagStart + "".length + n3.length)
return true;
return e3.start + "<".length <= t3 && t3 <= e3.start + "<".length + n3.length;
}(s2, r2, s2.tag))
return null;
var a2 = [], l2 = {start: e2.positionAt(s2.start + "<".length), end: e2.positionAt(s2.start + "<".length + s2.tag.length)};
if (a2.push({range: l2, newText: n2}), s2.endTagStart) {
var c2 = {start: e2.positionAt(s2.endTagStart + "".length), end: e2.positionAt(s2.endTagStart + "".length + s2.tag.length)};
a2.push({range: c2, newText: n2});
}
return {changes: ((o2 = {})[e2.uri.toString()] = a2, o2)};
}
function Tt(e2, t2, n2) {
var i2 = e2.offsetAt(t2), o2 = n2.findNodeAt(i2);
if (!o2.tag)
return null;
if (!o2.endTagStart)
return null;
if (o2.start + "<".length <= i2 && i2 <= o2.start + "<".length + o2.tag.length) {
var r2 = i2 - "<".length - o2.start + o2.endTagStart + "".length;
return e2.positionAt(r2);
}
if (o2.endTagStart + "".length <= i2 && i2 <= o2.endTagStart + "".length + o2.tag.length) {
r2 = i2 - "".length - o2.endTagStart + o2.start + "<".length;
return e2.positionAt(r2);
}
return null;
}
function Lt(e2, t2, n2) {
var i2 = e2.offsetAt(t2), o2 = n2.findNodeAt(i2), r2 = o2.tag ? o2.tag.length : 0;
return o2.endTagStart && (o2.start + "<".length <= i2 && i2 <= o2.start + "<".length + r2 || o2.endTagStart + "".length <= i2 && i2 <= o2.endTagStart + "".length + r2) ? [a.create(e2.positionAt(o2.start + "<".length), e2.positionAt(o2.start + "<".length + r2)), a.create(e2.positionAt(o2.endTagStart + "".length), e2.positionAt(o2.endTagStart + "".length + r2))] : null;
}
function Nt(e2, t2) {
var n2 = Ie(e2.getText()), i2 = n2.scan(), o2 = [], r2 = [], s2 = null, a2 = -1;
function l2(e3) {
o2.push(e3), a2 = e3.startLine;
}
for (; i2 !== se.EOS; ) {
switch (i2) {
case se.StartTag:
var c2 = n2.getTokenText(), d2 = e2.positionAt(n2.getTokenOffset()).line;
r2.push({startLine: d2, tagName: c2}), s2 = c2;
break;
case se.EndTag:
s2 = n2.getTokenText();
break;
case se.StartTagClose:
if (!s2 || !Ae(s2))
break;
case se.EndTagClose:
case se.StartTagSelfClose:
for (var h2 = r2.length - 1; h2 >= 0 && r2[h2].tagName !== s2; )
h2--;
if (h2 >= 0) {
var u2 = r2[h2];
r2.length = h2, (g2 = e2.positionAt(n2.getTokenOffset()).line - 1) > (d2 = u2.startLine) && a2 !== d2 && l2({startLine: d2, endLine: g2});
}
break;
case se.Comment:
d2 = e2.positionAt(n2.getTokenOffset()).line;
var m2 = n2.getTokenText().match(/^\s*#(region\b)|(endregion\b)/);
if (m2)
if (m2[1])
r2.push({startLine: d2, tagName: ""});
else {
for (h2 = r2.length - 1; h2 >= 0 && r2[h2].tagName.length; )
h2--;
if (h2 >= 0) {
var g2;
u2 = r2[h2];
r2.length = h2, (g2 = d2) > (d2 = u2.startLine) && a2 !== d2 && l2({startLine: d2, endLine: g2, kind: p.Region});
}
}
else
d2 < (g2 = e2.positionAt(n2.getTokenOffset() + n2.getTokenLength()).line) && l2({startLine: d2, endLine: g2, kind: p.Comment});
}
i2 = n2.scan();
}
var f2 = t2 && t2.rangeLimit || Number.MAX_VALUE;
return o2.length > f2 ? function(e3, t3) {
e3 = e3.sort(function(e4, t4) {
var n4 = e4.startLine - t4.startLine;
return 0 === n4 && (n4 = e4.endLine - t4.endLine), n4;
});
for (var n3 = void 0, i3 = [], o3 = [], r3 = [], s3 = function(e4, t4) {
o3[e4] = t4, t4 < 30 && (r3[t4] = (r3[t4] || 0) + 1);
}, a3 = 0; a3 < e3.length; a3++) {
var l3 = e3[a3];
if (n3) {
if (l3.startLine > n3.startLine) {
if (l3.endLine <= n3.endLine)
i3.push(n3), n3 = l3, s3(a3, i3.length);
else if (l3.startLine > n3.endLine) {
do {
n3 = i3.pop();
} while (n3 && l3.startLine > n3.endLine);
n3 && i3.push(n3), n3 = l3, s3(a3, i3.length);
}
}
} else
n3 = l3, s3(a3, 0);
}
var c3 = 0, d3 = 0;
for (a3 = 0; a3 < r3.length; a3++) {
var h3 = r3[a3];
if (h3) {
if (h3 + c3 > t3) {
d3 = a3;
break;
}
c3 += h3;
}
}
var u3 = [];
for (a3 = 0; a3 < e3.length; a3++) {
var p2 = o3[a3];
"number" == typeof p2 && (p2 < d3 || p2 === d3 && c3++ < t3) && u3.push(e3[a3]);
}
return u3;
}(o2, f2) : o2;
}
function It(e2, t2) {
return t2.map(function(t3) {
for (var n2 = function(e3, t4) {
var n3 = Me(e3.getText()), i3 = e3.offsetAt(t4), o3 = n3.findNodeAt(i3), r3 = function(e4) {
var t5 = e4, n4 = [];
for (; t5.parent; )
t5 = t5.parent, (i4 = t5, i4.startTagEnd && i4.endTagStart && i4.startTagEnd < i4.endTagStart ? [[i4.startTagEnd, i4.endTagStart], [i4.start, i4.end]] : [[i4.start, i4.end]]).forEach(function(e5) {
return n4.push(e5);
});
var i4;
return n4;
}(o3);
if (o3.startTagEnd && !o3.endTagStart) {
if (o3.startTagEnd !== o3.end)
return [[o3.start, o3.end]];
var s3 = a.create(e3.positionAt(o3.startTagEnd - 2), e3.positionAt(o3.startTagEnd));
"/>" === e3.getText(s3) ? r3.unshift([o3.start + 1, o3.startTagEnd - 2]) : r3.unshift([o3.start + 1, o3.startTagEnd - 1]);
var l2 = Ot(e3, o3, i3);
return r3 = l2.concat(r3);
}
if (!o3.startTagEnd || !o3.endTagStart)
return r3;
if (r3.unshift([o3.start, o3.end]), o3.start < i3 && i3 < o3.startTagEnd) {
r3.unshift([o3.start + 1, o3.startTagEnd - 1]);
l2 = Ot(e3, o3, i3);
return r3 = l2.concat(r3);
}
return o3.startTagEnd <= i3 && i3 <= o3.endTagStart ? (r3.unshift([o3.startTagEnd, o3.endTagStart]), r3) : (i3 >= o3.endTagStart + 2 && r3.unshift([o3.endTagStart + 2, o3.end - 1]), r3);
}(e2, t3), i2 = void 0, o2 = void 0, r2 = n2.length - 1; r2 >= 0; r2--) {
var s2 = n2[r2];
i2 && s2[0] === i2[0] && s2[1] === i2[1] || (o2 = ee.create(a.create(e2.positionAt(n2[r2][0]), e2.positionAt(n2[r2][1])), o2)), i2 = s2;
}
return o2 || (o2 = ee.create(a.create(t3, t3))), o2;
});
}
function Ot(e2, t2, n2) {
for (var i2 = a.create(e2.positionAt(t2.start), e2.positionAt(t2.end)), o2 = e2.getText(i2), r2 = n2 - t2.start, s2 = Ie(o2), l2 = s2.scan(), c2 = t2.start, d2 = [], h2 = false, u2 = -1; l2 !== se.EOS; ) {
switch (l2) {
case se.AttributeName:
if (r2 < s2.getTokenOffset()) {
h2 = false;
break;
}
r2 <= s2.getTokenEnd() && d2.unshift([s2.getTokenOffset(), s2.getTokenEnd()]), h2 = true, u2 = s2.getTokenOffset();
break;
case se.AttributeValue:
if (!h2)
break;
var p2 = s2.getTokenText();
if (r2 < s2.getTokenOffset()) {
d2.push([u2, s2.getTokenEnd()]);
break;
}
r2 >= s2.getTokenOffset() && r2 <= s2.getTokenEnd() && (d2.unshift([s2.getTokenOffset(), s2.getTokenEnd()]), ('"' === p2[0] && '"' === p2[p2.length - 1] || "'" === p2[0] && "'" === p2[p2.length - 1]) && r2 >= s2.getTokenOffset() + 1 && r2 <= s2.getTokenEnd() - 1 && d2.unshift([s2.getTokenOffset() + 1, s2.getTokenEnd() - 1]), d2.push([u2, s2.getTokenEnd()]));
}
l2 = s2.scan();
}
return d2.map(function(e3) {
return [e3[0] + c2, e3[1] + c2];
});
}
var Dt = {version: 1.1, tags: [{name: "html", description: {kind: "markdown", value: "The html element represents the root of an HTML document."}, attributes: [{name: "manifest", description: {kind: "markdown", value: "Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details."}}, {name: "version", description: 'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD "Document Type Definition: In HTML, the doctype is the required "" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the "" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'}, {name: "xmlns", description: 'Specifies the XML Namespace of the document. Default value is `"http://www.w3.org/1999/xhtml"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'}], references: [{name: "MDN Reference", url: "https://developer.mozilla.org/docs/Web/HTML/Element/html"}]}, {name: "head", description: {kind: "markdown", value: "The head element represents a collection of metadata for the Document."}, attributes: [{name: "profile", description: "The URIs of one or more metadata profiles, separated by white space."}], references: [{name: "MDN Reference", url: "https://developer.mozilla.org/docs/Web/HTML/Element/head"}]}, {name: "title", description: {kind: "markdown", value: "The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context."}, attributes: [], references: [{name: "MDN Reference", url: "https://developer.mozilla.org/docs/Web/HTML/Element/title"}]}, {name: "base", description: {kind: "markdown", value: "The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information."}, attributes: [{name: "href", description: {kind: "markdown", value: "The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed."}}, {name: "target", description: {kind: "markdown", value: "A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\n\n* `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the result into a new unnamed browsing context.\n* `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs."}}], references: [{name: "MDN Reference", url: "https://developer.mozilla.org/docs/Web/HTML/Element/base"}]}, {name: "link", description: {kind: "markdown", value: "The link element allows authors to link their document to other resources."}, attributes: [{name: "href", description: {kind: "markdown", value: 'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL "URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.") of the linked resource. A URL can be absolute or relative.'}}, {name: "crossorigin", valueSet: "xo", description: {kind: "markdown", value: 'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`