(() => {
  'use strict';
  var e = {};
  e.g = (function () {
    if ('object' == typeof globalThis) return globalThis;
    try {
      return this || new Function('return this')();
    } catch (e) {
      if ('object' == typeof window) return window;
    }
  })();
  const t = new (class {
    constructor() {
      (this.listeners = []),
        (this.unexpectedErrorHandler = function (e) {
          setTimeout(() => {
            if (e.stack) throw new Error(e.message + '\n\n' + e.stack);
            throw e;
          }, 0);
        });
    }
    emit(e) {
      this.listeners.forEach((t) => {
        t(e);
      });
    }
    onUnexpectedError(e) {
      this.unexpectedErrorHandler(e), this.emit(e);
    }
    onUnexpectedExternalError(e) {
      this.unexpectedErrorHandler(e);
    }
  })();
  function n(e) {
    var n;
    ((n = e) instanceof Error && n.name === r && n.message === r) ||
      t.onUnexpectedError(e);
  }
  function i(e) {
    if (e instanceof Error) {
      let { name: t, message: n } = e;
      return {
        $isError: !0,
        name: t,
        message: n,
        stack: e.stacktrace || e.stack,
      };
    }
    return e;
  }
  const r = 'Canceled';
  var s;
  function o(e) {}
  !(function (e) {
    e.is = function (e) {
      return (
        e && 'object' == typeof e && 'function' == typeof e[Symbol.iterator]
      );
    };
    const t = Object.freeze([]);
    (e.empty = function () {
      return t;
    }),
      (e.single = function* (e) {
        yield e;
      }),
      (e.from = function (e) {
        return e || t;
      }),
      (e.first = function (e) {
        return e[Symbol.iterator]().next().value;
      }),
      (e.some = function (e, t) {
        for (const n of e) if (t(n)) return !0;
        return !1;
      }),
      (e.filter = function* (e, t) {
        for (const n of e) t(n) && (yield n);
      }),
      (e.map = function* (e, t) {
        for (const n of e) yield t(n);
      }),
      (e.concat = function* (...e) {
        for (const t of e) for (const e of t) yield e;
      }),
      (e.consume = function (t, n = Number.POSITIVE_INFINITY) {
        const i = [];
        if (0 === n) return [i, t];
        const r = t[Symbol.iterator]();
        for (let t = 0; t < n; t++) {
          const t = r.next();
          if (t.done) return [i, e.empty()];
          i.push(t.value);
        }
        return [i, { [Symbol.iterator]: () => r }];
      });
  })(s || (s = {}));
  class a extends Error {
    constructor(e) {
      super(
        `Encounter errors while disposing of store. Errors: [${e.join(', ')}]`
      ),
        (this.errors = e);
    }
  }
  function l(e) {
    if (s.is(e)) {
      let t = [];
      for (const n of e)
        if (n)
          try {
            n.dispose();
          } catch (e) {
            t.push(e);
          }
      if (1 === t.length) throw t[0];
      if (t.length > 1) throw new a(t);
      return Array.isArray(e) ? [] : e;
    }
    if (e) return e.dispose(), e;
  }
  class u {
    constructor() {
      (this._toDispose = new Set()), (this._isDisposed = !1);
    }
    dispose() {
      this._isDisposed || ((this._isDisposed = !0), this.clear());
    }
    clear() {
      try {
        l(this._toDispose.values());
      } finally {
        this._toDispose.clear();
      }
    }
    add(e) {
      if (!e) return e;
      if (e === this)
        throw new Error('Cannot register a disposable on itself!');
      return (
        this._isDisposed
          ? u.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(e),
        e
      );
    }
  }
  u.DISABLE_DISPOSED_WARNING = !1;
  class h {
    constructor() {
      this._store = new u();
    }
    dispose() {
      this._store.dispose();
    }
    _register(e) {
      if (e === this)
        throw new Error('Cannot register a disposable on itself!');
      return this._store.add(e);
    }
  }
  h.None = Object.freeze({ dispose() {} });
  const d = 'en';
  let c,
    f,
    m,
    g = !1,
    _ = !1,
    p = !1,
    C = !1,
    b = !1,
    L = !1,
    N = null;
  const S =
    'undefined' != typeof process &&
    void 0 !== process.versions &&
    void 0 !== process.versions.electron &&
    'renderer' === process.type;
  if ('object' != typeof navigator || S) {
    if ('object' == typeof process) {
      (g = 'win32' === process.platform),
        (_ = 'darwin' === process.platform),
        (p = 'linux' === process.platform),
        (c = d),
        (N = d);
      const e = process.env.VSCODE_NLS_CONFIG;
      if (e)
        try {
          const t = JSON.parse(e),
            n = t.availableLanguages['*'];
          (c = t.locale), (N = n || d), (f = t._translationsConfigFile);
        } catch (e) {}
      C = !0;
    }
  } else
    (m = navigator.userAgent),
      (g = m.indexOf('Windows') >= 0),
      (_ = m.indexOf('Macintosh') >= 0),
      (m.indexOf('Macintosh') >= 0 ||
        m.indexOf('iPad') >= 0 ||
        m.indexOf('iPhone') >= 0) &&
        !!navigator.maxTouchPoints &&
        navigator.maxTouchPoints > 0,
      (p = m.indexOf('Linux') >= 0),
      !0,
      (c = navigator.language),
      (N = c);
  let E = 0;
  _ ? (E = 1) : g ? (E = 3) : p && (E = 2);
  const A = g,
    y = _,
    w = 'object' == typeof self ? self : 'object' == typeof e.g ? e.g : {},
    v = (function () {
      if (w.setImmediate) return w.setImmediate.bind(w);
      if ('function' == typeof w.postMessage && !w.importScripts) {
        let e = [];
        w.addEventListener('message', (t) => {
          if (t.data && t.data.vscodeSetImmediateId)
            for (let n = 0, i = e.length; n < i; n++) {
              const i = e[n];
              if (i.id === t.data.vscodeSetImmediateId)
                return e.splice(n, 1), void i.callback();
            }
        });
        let t = 0;
        return (n) => {
          const i = ++t;
          e.push({ id: i, callback: n }),
            w.postMessage({ vscodeSetImmediateId: i }, '*');
        };
      }
      if (
        'undefined' != typeof process &&
        'function' == typeof process.nextTick
      )
        return process.nextTick.bind(process);
      const e = Promise.resolve();
      return (t) => e.then(t);
    })();
  function T(e) {
    const t = [];
    for (const n of (function (e) {
      let t = [],
        n = Object.getPrototypeOf(e);
      for (; Object.prototype !== n; )
        (t = t.concat(Object.getOwnPropertyNames(n))),
          (n = Object.getPrototypeOf(n));
      return t;
    })(e))
      'function' == typeof e[n] && t.push(n);
    return t;
  }
  function O(e, t) {
    const n = (e) =>
      function () {
        const n = Array.prototype.slice.call(arguments, 0);
        return t(e, n);
      };
    let i = {};
    for (const t of e) i[t] = n(t);
    return i;
  }
  class I {
    constructor(e) {
      (this._workerId = -1),
        (this._handler = e),
        (this._lastSentReq = 0),
        (this._pendingReplies = Object.create(null));
    }
    setWorkerId(e) {
      this._workerId = e;
    }
    sendMessage(e, t) {
      let n = String(++this._lastSentReq);
      return new Promise((i, r) => {
        (this._pendingReplies[n] = { resolve: i, reject: r }),
          this._send({ vsWorker: this._workerId, req: n, method: e, args: t });
      });
    }
    handleMessage(e) {
      e &&
        e.vsWorker &&
        ((-1 !== this._workerId && e.vsWorker !== this._workerId) ||
          this._handleMessage(e));
    }
    _handleMessage(e) {
      if (e.seq) {
        let t = e;
        if (!this._pendingReplies[t.seq])
          return void console.warn('Got reply to unknown seq');
        let n = this._pendingReplies[t.seq];
        if ((delete this._pendingReplies[t.seq], t.err)) {
          let e = t.err;
          return (
            t.err.$isError &&
              ((e = new Error()),
              (e.name = t.err.name),
              (e.message = t.err.message),
              (e.stack = t.err.stack)),
            void n.reject(e)
          );
        }
        return void n.resolve(t.res);
      }
      let t = e,
        n = t.req;
      this._handler.handleMessage(t.method, t.args).then(
        (e) => {
          this._send({ vsWorker: this._workerId, seq: n, res: e, err: void 0 });
        },
        (e) => {
          e.detail instanceof Error && (e.detail = i(e.detail)),
            this._send({
              vsWorker: this._workerId,
              seq: n,
              res: void 0,
              err: i(e),
            });
        }
      );
    }
    _send(e) {
      let t = [];
      if (e.req) {
        const n = e;
        for (let e = 0; e < n.args.length; e++)
          n.args[e] instanceof ArrayBuffer && t.push(n.args[e]);
      } else {
        const n = e;
        n.res instanceof ArrayBuffer && t.push(n.res);
      }
      this._handler.sendMessage(e, t);
    }
  }
  class M {
    constructor(e, t) {
      (this._requestHandlerFactory = t),
        (this._requestHandler = null),
        (this._protocol = new I({
          sendMessage: (t, n) => {
            e(t, n);
          },
          handleMessage: (e, t) => this._handleMessage(e, t),
        }));
    }
    onmessage(e) {
      this._protocol.handleMessage(e);
    }
    _handleMessage(e, t) {
      if ('$initialize' === e) return this.initialize(t[0], t[1], t[2], t[3]);
      if (!this._requestHandler || 'function' != typeof this._requestHandler[e])
        return Promise.reject(
          new Error('Missing requestHandler or method: ' + e)
        );
      try {
        return Promise.resolve(
          this._requestHandler[e].apply(this._requestHandler, t)
        );
      } catch (e) {
        return Promise.reject(e);
      }
    }
    initialize(e, t, n, i) {
      this._protocol.setWorkerId(e);
      const r = O(i, (e, t) => this._protocol.sendMessage(e, t));
      return this._requestHandlerFactory
        ? ((this._requestHandler = this._requestHandlerFactory(r)),
          Promise.resolve(T(this._requestHandler)))
        : (t &&
            (void 0 !== t.baseUrl && delete t.baseUrl,
            void 0 !== t.paths && void 0 !== t.paths.vs && delete t.paths.vs,
            (t.catchError = !0),
            self.require.config(t)),
          new Promise((e, t) => {
            self.require(
              [n],
              (n) => {
                (this._requestHandler = n.create(r)),
                  this._requestHandler
                    ? e(T(this._requestHandler))
                    : t(new Error('No RequestHandler!'));
              },
              t
            );
          }));
    }
  }
  function x(e, t) {
    return R(e, t, 0, e.length - 1, []), e;
  }
  function R(e, t, n, i, r) {
    if (i <= n) return;
    const s = (n + (i - n) / 2) | 0;
    R(e, t, n, s, r),
      R(e, t, s + 1, i, r),
      t(e[s], e[s + 1]) <= 0 ||
        (function (e, t, n, i, r, s) {
          let o = n,
            a = i + 1;
          for (let t = n; t <= r; t++) s[t] = e[t];
          for (let l = n; l <= r; l++)
            o > i
              ? (e[l] = s[a++])
              : a > r
              ? (e[l] = s[o++])
              : t(s[a], s[o]) < 0
              ? (e[l] = s[a++])
              : (e[l] = s[o++]);
        })(e, t, n, s, i, r);
  }
  class P {
    constructor(e, t, n, i) {
      (this.originalStart = e),
        (this.originalLength = t),
        (this.modifiedStart = n),
        (this.modifiedLength = i);
    }
    getOriginalEnd() {
      return this.originalStart + this.originalLength;
    }
    getModifiedEnd() {
      return this.modifiedStart + this.modifiedLength;
    }
  }
  function U(e) {
    return 55296 <= e && e <= 56319;
  }
  function k(e) {
    return 56320 <= e && e <= 57343;
  }
  String.fromCharCode(65279);
  class D {
    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 D._INSTANCE || (D._INSTANCE = new D()), D._INSTANCE;
    }
    getGraphemeBreakType(e) {
      if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;
      if (e < 127) return 0;
      const t = this._data,
        n = t.length / 3;
      let i = 1;
      for (; i <= n; )
        if (e < t[3 * i]) i *= 2;
        else {
          if (!(e > t[3 * i + 1])) return t[3 * i + 2];
          i = 2 * i + 1;
        }
      return 0;
    }
  }
  function F(e, t) {
    return ((t << 5) - t + e) | 0;
  }
  function K(e, t) {
    t = F(149417, t);
    for (let n = 0, i = e.length; n < i; n++) t = F(e.charCodeAt(n), t);
    return t;
  }
  function B(e, t, n = 32) {
    const i = n - t;
    return ((e << t) | ((~((1 << i) - 1) & e) >>> i)) >>> 0;
  }
  function W(e, t = 0, n = e.byteLength, i = 0) {
    for (let r = 0; r < n; r++) e[t + r] = i;
  }
  function q(e, t = 32) {
    return (function (e, t, n = '0') {
      for (; e.length < t; ) e = n + e;
      return e;
    })((e >>> 0).toString(16), t / 4);
  }
  D._INSTANCE = null;
  class H {
    constructor() {
      (this._h0 = 1732584193),
        (this._h1 = 4023233417),
        (this._h2 = 2562383102),
        (this._h3 = 271733878),
        (this._h4 = 3285377520),
        (this._buff = new Uint8Array(67)),
        (this._buffDV = new DataView(this._buff.buffer)),
        (this._buffLen = 0),
        (this._totalLen = 0),
        (this._leftoverHighSurrogate = 0),
        (this._finished = !1);
    }
    update(e) {
      const t = e.length;
      if (0 === t) return;
      const n = this._buff;
      let i,
        r,
        s = this._buffLen,
        o = this._leftoverHighSurrogate;
      for (
        0 !== o
          ? ((i = o), (r = -1), (o = 0))
          : ((i = e.charCodeAt(0)), (r = 0));
        ;

      ) {
        let a = i;
        if (U(i)) {
          if (!(r + 1 < t)) {
            o = i;
            break;
          }
          {
            const t = e.charCodeAt(r + 1);
            k(t)
              ? (r++, (a = t - 56320 + ((i - 55296) << 10) + 65536))
              : (a = 65533);
          }
        } else k(i) && (a = 65533);
        if (((s = this._push(n, s, a)), r++, !(r < t))) break;
        i = e.charCodeAt(r);
      }
      (this._buffLen = s), (this._leftoverHighSurrogate = o);
    }
    _push(e, t, n) {
      return (
        n < 128
          ? (e[t++] = n)
          : n < 2048
          ? ((e[t++] = 192 | ((1984 & n) >>> 6)),
            (e[t++] = 128 | ((63 & n) >>> 0)))
          : n < 65536
          ? ((e[t++] = 224 | ((61440 & n) >>> 12)),
            (e[t++] = 128 | ((4032 & n) >>> 6)),
            (e[t++] = 128 | ((63 & n) >>> 0)))
          : ((e[t++] = 240 | ((1835008 & n) >>> 18)),
            (e[t++] = 128 | ((258048 & n) >>> 12)),
            (e[t++] = 128 | ((4032 & n) >>> 6)),
            (e[t++] = 128 | ((63 & n) >>> 0))),
        t >= 64 &&
          (this._step(),
          (t -= 64),
          (this._totalLen += 64),
          (e[0] = e[64]),
          (e[1] = e[65]),
          (e[2] = e[66])),
        t
      );
    }
    digest() {
      return (
        this._finished ||
          ((this._finished = !0),
          this._leftoverHighSurrogate &&
            ((this._leftoverHighSurrogate = 0),
            (this._buffLen = this._push(this._buff, this._buffLen, 65533))),
          (this._totalLen += this._buffLen),
          this._wrapUp()),
        q(this._h0) + q(this._h1) + q(this._h2) + q(this._h3) + q(this._h4)
      );
    }
    _wrapUp() {
      (this._buff[this._buffLen++] = 128),
        W(this._buff, this._buffLen),
        this._buffLen > 56 && (this._step(), W(this._buff));
      const e = 8 * this._totalLen;
      this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1),
        this._buffDV.setUint32(60, e % 4294967296, !1),
        this._step();
    }
    _step() {
      const e = H._bigBlock32,
        t = this._buffDV;
      for (let n = 0; n < 64; n += 4) e.setUint32(n, t.getUint32(n, !1), !1);
      for (let t = 64; t < 320; t += 4)
        e.setUint32(
          t,
          B(
            e.getUint32(t - 12, !1) ^
              e.getUint32(t - 32, !1) ^
              e.getUint32(t - 56, !1) ^
              e.getUint32(t - 64, !1),
            1
          ),
          !1
        );
      let n,
        i,
        r,
        s = this._h0,
        o = this._h1,
        a = this._h2,
        l = this._h3,
        u = this._h4;
      for (let t = 0; t < 80; t++)
        t < 20
          ? ((n = (o & a) | (~o & l)), (i = 1518500249))
          : t < 40
          ? ((n = o ^ a ^ l), (i = 1859775393))
          : t < 60
          ? ((n = (o & a) | (o & l) | (a & l)), (i = 2400959708))
          : ((n = o ^ a ^ l), (i = 3395469782)),
          (r = (B(s, 5) + n + u + i + e.getUint32(4 * t, !1)) & 4294967295),
          (u = l),
          (l = a),
          (a = B(o, 30)),
          (o = s),
          (s = r);
      (this._h0 = (this._h0 + s) & 4294967295),
        (this._h1 = (this._h1 + o) & 4294967295),
        (this._h2 = (this._h2 + a) & 4294967295),
        (this._h3 = (this._h3 + l) & 4294967295),
        (this._h4 = (this._h4 + u) & 4294967295);
    }
  }
  H._bigBlock32 = new DataView(new ArrayBuffer(320));
  class V {
    constructor(e) {
      this.source = e;
    }
    getElements() {
      const e = this.source,
        t = new Int32Array(e.length);
      for (let n = 0, i = e.length; n < i; n++) t[n] = e.charCodeAt(n);
      return t;
    }
  }
  function Y(e, t, n) {
    return new z(new V(e), new V(t)).ComputeDiff(n).changes;
  }
  class $ {
    static Assert(e, t) {
      if (!e) throw new Error(t);
    }
  }
  class j {
    static Copy(e, t, n, i, r) {
      for (let s = 0; s < r; s++) n[i + s] = e[t + s];
    }
    static Copy2(e, t, n, i, r) {
      for (let s = 0; s < r; s++) n[i + s] = e[t + s];
    }
  }
  class G {
    constructor() {
      (this.m_changes = []),
        (this.m_originalStart = 1073741824),
        (this.m_modifiedStart = 1073741824),
        (this.m_originalCount = 0),
        (this.m_modifiedCount = 0);
    }
    MarkNextChange() {
      (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
        this.m_changes.push(
          new P(
            this.m_originalStart,
            this.m_originalCount,
            this.m_modifiedStart,
            this.m_modifiedCount
          )
        ),
        (this.m_originalCount = 0),
        (this.m_modifiedCount = 0),
        (this.m_originalStart = 1073741824),
        (this.m_modifiedStart = 1073741824);
    }
    AddOriginalElement(e, t) {
      (this.m_originalStart = Math.min(this.m_originalStart, e)),
        (this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
        this.m_originalCount++;
    }
    AddModifiedElement(e, t) {
      (this.m_originalStart = Math.min(this.m_originalStart, e)),
        (this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
        this.m_modifiedCount++;
    }
    getChanges() {
      return (
        (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
          this.MarkNextChange(),
        this.m_changes
      );
    }
    getReverseChanges() {
      return (
        (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
          this.MarkNextChange(),
        this.m_changes.reverse(),
        this.m_changes
      );
    }
  }
  class z {
    constructor(e, t, n = null) {
      this.ContinueProcessingPredicate = n;
      const [i, r, s] = z._getElements(e),
        [o, a, l] = z._getElements(t);
      (this._hasStrings = s && l),
        (this._originalStringElements = i),
        (this._originalElementsOrHash = r),
        (this._modifiedStringElements = o),
        (this._modifiedElementsOrHash = a),
        (this.m_forwardHistory = []),
        (this.m_reverseHistory = []);
    }
    static _isStringArray(e) {
      return e.length > 0 && 'string' == typeof e[0];
    }
    static _getElements(e) {
      const t = e.getElements();
      if (z._isStringArray(t)) {
        const e = new Int32Array(t.length);
        for (let n = 0, i = t.length; n < i; n++) e[n] = K(t[n], 0);
        return [t, e, !0];
      }
      return t instanceof Int32Array
        ? [[], t, !1]
        : [[], new Int32Array(t), !1];
    }
    ElementsAreEqual(e, t) {
      return (
        this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] &&
        (!this._hasStrings ||
          this._originalStringElements[e] === this._modifiedStringElements[t])
      );
    }
    OriginalElementsAreEqual(e, t) {
      return (
        this._originalElementsOrHash[e] === this._originalElementsOrHash[t] &&
        (!this._hasStrings ||
          this._originalStringElements[e] === this._originalStringElements[t])
      );
    }
    ModifiedElementsAreEqual(e, t) {
      return (
        this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] &&
        (!this._hasStrings ||
          this._modifiedStringElements[e] === this._modifiedStringElements[t])
      );
    }
    ComputeDiff(e) {
      return this._ComputeDiff(
        0,
        this._originalElementsOrHash.length - 1,
        0,
        this._modifiedElementsOrHash.length - 1,
        e
      );
    }
    _ComputeDiff(e, t, n, i, r) {
      const s = [!1];
      let o = this.ComputeDiffRecursive(e, t, n, i, s);
      return (
        r && (o = this.PrettifyChanges(o)), { quitEarly: s[0], changes: o }
      );
    }
    ComputeDiffRecursive(e, t, n, i, r) {
      for (r[0] = !1; e <= t && n <= i && this.ElementsAreEqual(e, n); )
        e++, n++;
      for (; t >= e && i >= n && this.ElementsAreEqual(t, i); ) t--, i--;
      if (e > t || n > i) {
        let r;
        return (
          n <= i
            ? ($.Assert(
                e === t + 1,
                'originalStart should only be one more than originalEnd'
              ),
              (r = [new P(e, 0, n, i - n + 1)]))
            : e <= t
            ? ($.Assert(
                n === i + 1,
                'modifiedStart should only be one more than modifiedEnd'
              ),
              (r = [new P(e, t - e + 1, n, 0)]))
            : ($.Assert(
                e === t + 1,
                'originalStart should only be one more than originalEnd'
              ),
              $.Assert(
                n === i + 1,
                'modifiedStart should only be one more than modifiedEnd'
              ),
              (r = [])),
          r
        );
      }
      const s = [0],
        o = [0],
        a = this.ComputeRecursionPoint(e, t, n, i, s, o, r),
        l = s[0],
        u = o[0];
      if (null !== a) return a;
      if (!r[0]) {
        const s = this.ComputeDiffRecursive(e, l, n, u, r);
        let o = [];
        return (
          (o = r[0]
            ? [new P(l + 1, t - (l + 1) + 1, u + 1, i - (u + 1) + 1)]
            : this.ComputeDiffRecursive(l + 1, t, u + 1, i, r)),
          this.ConcatenateChanges(s, o)
        );
      }
      return [new P(e, t - e + 1, n, i - n + 1)];
    }
    WALKTRACE(e, t, n, i, r, s, o, a, l, u, h, d, c, f, m, g, _, p) {
      let C = null,
        b = null,
        L = new G(),
        N = t,
        S = n,
        E = c[0] - g[0] - i,
        A = -1073741824,
        y = this.m_forwardHistory.length - 1;
      do {
        const t = E + e;
        t === N || (t < S && l[t - 1] < l[t + 1])
          ? ((f = (h = l[t + 1]) - E - i),
            h < A && L.MarkNextChange(),
            (A = h),
            L.AddModifiedElement(h + 1, f),
            (E = t + 1 - e))
          : ((f = (h = l[t - 1] + 1) - E - i),
            h < A && L.MarkNextChange(),
            (A = h - 1),
            L.AddOriginalElement(h, f + 1),
            (E = t - 1 - e)),
          y >= 0 &&
            ((e = (l = this.m_forwardHistory[y])[0]),
            (N = 1),
            (S = l.length - 1));
      } while (--y >= -1);
      if (((C = L.getReverseChanges()), p[0])) {
        let e = c[0] + 1,
          t = g[0] + 1;
        if (null !== C && C.length > 0) {
          const n = C[C.length - 1];
          (e = Math.max(e, n.getOriginalEnd())),
            (t = Math.max(t, n.getModifiedEnd()));
        }
        b = [new P(e, d - e + 1, t, m - t + 1)];
      } else {
        (L = new G()),
          (N = s),
          (S = o),
          (E = c[0] - g[0] - a),
          (A = 1073741824),
          (y = _
            ? this.m_reverseHistory.length - 1
            : this.m_reverseHistory.length - 2);
        do {
          const e = E + r;
          e === N || (e < S && u[e - 1] >= u[e + 1])
            ? ((f = (h = u[e + 1] - 1) - E - a),
              h > A && L.MarkNextChange(),
              (A = h + 1),
              L.AddOriginalElement(h + 1, f + 1),
              (E = e + 1 - r))
            : ((f = (h = u[e - 1]) - E - a),
              h > A && L.MarkNextChange(),
              (A = h),
              L.AddModifiedElement(h + 1, f + 1),
              (E = e - 1 - r)),
            y >= 0 &&
              ((r = (u = this.m_reverseHistory[y])[0]),
              (N = 1),
              (S = u.length - 1));
        } while (--y >= -1);
        b = L.getChanges();
      }
      return this.ConcatenateChanges(C, b);
    }
    ComputeRecursionPoint(e, t, n, i, r, s, o) {
      let a = 0,
        l = 0,
        u = 0,
        h = 0,
        d = 0,
        c = 0;
      e--,
        n--,
        (r[0] = 0),
        (s[0] = 0),
        (this.m_forwardHistory = []),
        (this.m_reverseHistory = []);
      const f = t - e + (i - n),
        m = f + 1,
        g = new Int32Array(m),
        _ = new Int32Array(m),
        p = i - n,
        C = t - e,
        b = e - n,
        L = t - i,
        N = (C - p) % 2 == 0;
      (g[p] = e), (_[C] = t), (o[0] = !1);
      for (let S = 1; S <= f / 2 + 1; S++) {
        let f = 0,
          E = 0;
        (u = this.ClipDiagonalBound(p - S, S, p, m)),
          (h = this.ClipDiagonalBound(p + S, S, p, m));
        for (let e = u; e <= h; e += 2) {
          (a =
            e === u || (e < h && g[e - 1] < g[e + 1])
              ? g[e + 1]
              : g[e - 1] + 1),
            (l = a - (e - p) - b);
          const n = a;
          for (; a < t && l < i && this.ElementsAreEqual(a + 1, l + 1); )
            a++, l++;
          if (
            ((g[e] = a),
            a + l > f + E && ((f = a), (E = l)),
            !N && Math.abs(e - C) <= S - 1 && a >= _[e])
          )
            return (
              (r[0] = a),
              (s[0] = l),
              n <= _[e] && S <= 1448
                ? this.WALKTRACE(
                    p,
                    u,
                    h,
                    b,
                    C,
                    d,
                    c,
                    L,
                    g,
                    _,
                    a,
                    t,
                    r,
                    l,
                    i,
                    s,
                    N,
                    o
                  )
                : null
            );
        }
        const A = (f - e + (E - n) - S) / 2;
        if (
          null !== this.ContinueProcessingPredicate &&
          !this.ContinueProcessingPredicate(f, A)
        )
          return (
            (o[0] = !0),
            (r[0] = f),
            (s[0] = E),
            A > 0 && S <= 1448
              ? this.WALKTRACE(
                  p,
                  u,
                  h,
                  b,
                  C,
                  d,
                  c,
                  L,
                  g,
                  _,
                  a,
                  t,
                  r,
                  l,
                  i,
                  s,
                  N,
                  o
                )
              : (e++, n++, [new P(e, t - e + 1, n, i - n + 1)])
          );
        (d = this.ClipDiagonalBound(C - S, S, C, m)),
          (c = this.ClipDiagonalBound(C + S, S, C, m));
        for (let f = d; f <= c; f += 2) {
          (a =
            f === d || (f < c && _[f - 1] >= _[f + 1])
              ? _[f + 1] - 1
              : _[f - 1]),
            (l = a - (f - C) - L);
          const m = a;
          for (; a > e && l > n && this.ElementsAreEqual(a, l); ) a--, l--;
          if (((_[f] = a), N && Math.abs(f - p) <= S && a <= g[f]))
            return (
              (r[0] = a),
              (s[0] = l),
              m >= g[f] && S <= 1448
                ? this.WALKTRACE(
                    p,
                    u,
                    h,
                    b,
                    C,
                    d,
                    c,
                    L,
                    g,
                    _,
                    a,
                    t,
                    r,
                    l,
                    i,
                    s,
                    N,
                    o
                  )
                : null
            );
        }
        if (S <= 1447) {
          let e = new Int32Array(h - u + 2);
          (e[0] = p - u + 1),
            j.Copy2(g, u, e, 1, h - u + 1),
            this.m_forwardHistory.push(e),
            (e = new Int32Array(c - d + 2)),
            (e[0] = C - d + 1),
            j.Copy2(_, d, e, 1, c - d + 1),
            this.m_reverseHistory.push(e);
        }
      }
      return this.WALKTRACE(
        p,
        u,
        h,
        b,
        C,
        d,
        c,
        L,
        g,
        _,
        a,
        t,
        r,
        l,
        i,
        s,
        N,
        o
      );
    }
    PrettifyChanges(e) {
      for (let t = 0; t < e.length; t++) {
        const n = e[t],
          i =
            t < e.length - 1
              ? e[t + 1].originalStart
              : this._originalElementsOrHash.length,
          r =
            t < e.length - 1
              ? e[t + 1].modifiedStart
              : this._modifiedElementsOrHash.length,
          s = n.originalLength > 0,
          o = n.modifiedLength > 0;
        for (
          ;
          n.originalStart + n.originalLength < i &&
          n.modifiedStart + n.modifiedLength < r &&
          (!s ||
            this.OriginalElementsAreEqual(
              n.originalStart,
              n.originalStart + n.originalLength
            )) &&
          (!o ||
            this.ModifiedElementsAreEqual(
              n.modifiedStart,
              n.modifiedStart + n.modifiedLength
            ));

        )
          n.originalStart++, n.modifiedStart++;
        let a = [null];
        t < e.length - 1 &&
          this.ChangesOverlap(e[t], e[t + 1], a) &&
          ((e[t] = a[0]), e.splice(t + 1, 1), t--);
      }
      for (let t = e.length - 1; t >= 0; t--) {
        const n = e[t];
        let i = 0,
          r = 0;
        if (t > 0) {
          const n = e[t - 1];
          n.originalLength > 0 && (i = n.originalStart + n.originalLength),
            n.modifiedLength > 0 && (r = n.modifiedStart + n.modifiedLength);
        }
        const s = n.originalLength > 0,
          o = n.modifiedLength > 0;
        let a = 0,
          l = this._boundaryScore(
            n.originalStart,
            n.originalLength,
            n.modifiedStart,
            n.modifiedLength
          );
        for (let e = 1; ; e++) {
          const t = n.originalStart - e,
            u = n.modifiedStart - e;
          if (t < i || u < r) break;
          if (s && !this.OriginalElementsAreEqual(t, t + n.originalLength))
            break;
          if (o && !this.ModifiedElementsAreEqual(u, u + n.modifiedLength))
            break;
          const h = this._boundaryScore(
            t,
            n.originalLength,
            u,
            n.modifiedLength
          );
          h > l && ((l = h), (a = e));
        }
        (n.originalStart -= a), (n.modifiedStart -= a);
      }
      return e;
    }
    _OriginalIsBoundary(e) {
      return (
        e <= 0 ||
        e >= this._originalElementsOrHash.length - 1 ||
        (this._hasStrings && /^\s*$/.test(this._originalStringElements[e]))
      );
    }
    _OriginalRegionIsBoundary(e, t) {
      if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1))
        return !0;
      if (t > 0) {
        const n = e + t;
        if (this._OriginalIsBoundary(n - 1) || this._OriginalIsBoundary(n))
          return !0;
      }
      return !1;
    }
    _ModifiedIsBoundary(e) {
      return (
        e <= 0 ||
        e >= this._modifiedElementsOrHash.length - 1 ||
        (this._hasStrings && /^\s*$/.test(this._modifiedStringElements[e]))
      );
    }
    _ModifiedRegionIsBoundary(e, t) {
      if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1))
        return !0;
      if (t > 0) {
        const n = e + t;
        if (this._ModifiedIsBoundary(n - 1) || this._ModifiedIsBoundary(n))
          return !0;
      }
      return !1;
    }
    _boundaryScore(e, t, n, i) {
      return (
        (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) +
        (this._ModifiedRegionIsBoundary(n, i) ? 1 : 0)
      );
    }
    ConcatenateChanges(e, t) {
      let n = [];
      if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e;
      if (this.ChangesOverlap(e[e.length - 1], t[0], n)) {
        const i = new Array(e.length + t.length - 1);
        return (
          j.Copy(e, 0, i, 0, e.length - 1),
          (i[e.length - 1] = n[0]),
          j.Copy(t, 1, i, e.length, t.length - 1),
          i
        );
      }
      {
        const n = new Array(e.length + t.length);
        return (
          j.Copy(e, 0, n, 0, e.length), j.Copy(t, 0, n, e.length, t.length), n
        );
      }
    }
    ChangesOverlap(e, t, n) {
      if (
        ($.Assert(
          e.originalStart <= t.originalStart,
          'Left change is not less than or equal to right change'
        ),
        $.Assert(
          e.modifiedStart <= t.modifiedStart,
          'Left change is not less than or equal to right change'
        ),
        e.originalStart + e.originalLength >= t.originalStart ||
          e.modifiedStart + e.modifiedLength >= t.modifiedStart)
      ) {
        const i = e.originalStart;
        let r = e.originalLength;
        const s = e.modifiedStart;
        let o = e.modifiedLength;
        return (
          e.originalStart + e.originalLength >= t.originalStart &&
            (r = t.originalStart + t.originalLength - e.originalStart),
          e.modifiedStart + e.modifiedLength >= t.modifiedStart &&
            (o = t.modifiedStart + t.modifiedLength - e.modifiedStart),
          (n[0] = new P(i, r, s, o)),
          !0
        );
      }
      return (n[0] = null), !1;
    }
    ClipDiagonalBound(e, t, n, i) {
      if (e >= 0 && e < i) return e;
      const r = t % 2 == 0;
      return e < 0
        ? r === (n % 2 == 0)
          ? 0
          : 1
        : r === ((i - n - 1) % 2 == 0)
        ? i - 1
        : i - 2;
    }
  }
  const Q =
      'undefined' == typeof process
        ? {
            cwd: () => '/',
            env: Object.create(null),
            get platform() {
              return A ? 'win32' : y ? 'darwin' : 'linux';
            },
            nextTick: (e) => v(e),
          }
        : process,
    X = Q.cwd,
    Z = Q.env,
    J = Q.platform,
    ee = 46,
    te = 47,
    ne = 92,
    ie = 58;
  class re extends Error {
    constructor(e, t, n) {
      let i;
      'string' == typeof t && 0 === t.indexOf('not ')
        ? ((i = 'must not be'), (t = t.replace(/^not /, '')))
        : (i = 'must be');
      const r = -1 !== e.indexOf('.') ? 'property' : 'argument';
      let s = `The "${e}" ${r} ${i} of type ${t}`;
      (s += '. Received type ' + typeof n),
        super(s),
        (this.code = 'ERR_INVALID_ARG_TYPE');
    }
  }
  function se(e, t) {
    if ('string' != typeof e) throw new re(t, 'string', e);
  }
  function oe(e) {
    return e === te || e === ne;
  }
  function ae(e) {
    return e === te;
  }
  function le(e) {
    return (e >= 65 && e <= 90) || (e >= 97 && e <= 122);
  }
  function ue(e, t, n, i) {
    let r = '',
      s = 0,
      o = -1,
      a = 0,
      l = 0;
    for (let u = 0; u <= e.length; ++u) {
      if (u < e.length) l = e.charCodeAt(u);
      else {
        if (i(l)) break;
        l = te;
      }
      if (i(l)) {
        if (o === u - 1 || 1 === a);
        else if (2 === a) {
          if (
            r.length < 2 ||
            2 !== s ||
            r.charCodeAt(r.length - 1) !== ee ||
            r.charCodeAt(r.length - 2) !== ee
          ) {
            if (r.length > 2) {
              const e = r.lastIndexOf(n);
              -1 === e
                ? ((r = ''), (s = 0))
                : ((r = r.slice(0, e)), (s = r.length - 1 - r.lastIndexOf(n))),
                (o = u),
                (a = 0);
              continue;
            }
            if (0 !== r.length) {
              (r = ''), (s = 0), (o = u), (a = 0);
              continue;
            }
          }
          t && ((r += r.length > 0 ? `${n}..` : '..'), (s = 2));
        } else
          r.length > 0
            ? (r += `${n}${e.slice(o + 1, u)}`)
            : (r = e.slice(o + 1, u)),
            (s = u - o - 1);
        (o = u), (a = 0);
      } else l === ee && -1 !== a ? ++a : (a = -1);
    }
    return r;
  }
  function he(e, t) {
    if (null === t || 'object' != typeof t)
      throw new re('pathObject', 'Object', t);
    const n = t.dir || t.root,
      i = t.base || `${t.name || ''}${t.ext || ''}`;
    return n ? (n === t.root ? `${n}${i}` : `${n}${e}${i}`) : i;
  }
  const de = {
      resolve(...e) {
        let t = '',
          n = '',
          i = !1;
        for (let r = e.length - 1; r >= -1; r--) {
          let s;
          if (r >= 0) {
            if (((s = e[r]), se(s, 'path'), 0 === s.length)) continue;
          } else
            0 === t.length
              ? (s = X())
              : ((s = Z[`=${t}`] || X()),
                (void 0 === s ||
                  (s.slice(0, 2).toLowerCase() !== t.toLowerCase() &&
                    s.charCodeAt(2) === ne)) &&
                  (s = `${t}\\`));
          const o = s.length;
          let a = 0,
            l = '',
            u = !1;
          const h = s.charCodeAt(0);
          if (1 === o) oe(h) && ((a = 1), (u = !0));
          else if (oe(h))
            if (((u = !0), oe(s.charCodeAt(1)))) {
              let e = 2,
                t = e;
              for (; e < o && !oe(s.charCodeAt(e)); ) e++;
              if (e < o && e !== t) {
                const n = s.slice(t, e);
                for (t = e; e < o && oe(s.charCodeAt(e)); ) e++;
                if (e < o && e !== t) {
                  for (t = e; e < o && !oe(s.charCodeAt(e)); ) e++;
                  (e !== o && e === t) ||
                    ((l = `\\\\${n}\\${s.slice(t, e)}`), (a = e));
                }
              }
            } else a = 1;
          else
            le(h) &&
              s.charCodeAt(1) === ie &&
              ((l = s.slice(0, 2)),
              (a = 2),
              o > 2 && oe(s.charCodeAt(2)) && ((u = !0), (a = 3)));
          if (l.length > 0)
            if (t.length > 0) {
              if (l.toLowerCase() !== t.toLowerCase()) continue;
            } else t = l;
          if (i) {
            if (t.length > 0) break;
          } else if (((n = `${s.slice(a)}\\${n}`), (i = u), u && t.length > 0))
            break;
        }
        return (n = ue(n, !i, '\\', oe)), i ? `${t}\\${n}` : `${t}${n}` || '.';
      },
      normalize(e) {
        se(e, 'path');
        const t = e.length;
        if (0 === t) return '.';
        let n,
          i = 0,
          r = !1;
        const s = e.charCodeAt(0);
        if (1 === t) return ae(s) ? '\\' : e;
        if (oe(s))
          if (((r = !0), oe(e.charCodeAt(1)))) {
            let r = 2,
              s = r;
            for (; r < t && !oe(e.charCodeAt(r)); ) r++;
            if (r < t && r !== s) {
              const o = e.slice(s, r);
              for (s = r; r < t && oe(e.charCodeAt(r)); ) r++;
              if (r < t && r !== s) {
                for (s = r; r < t && !oe(e.charCodeAt(r)); ) r++;
                if (r === t) return `\\\\${o}\\${e.slice(s)}\\`;
                r !== s && ((n = `\\\\${o}\\${e.slice(s, r)}`), (i = r));
              }
            }
          } else i = 1;
        else
          le(s) &&
            e.charCodeAt(1) === ie &&
            ((n = e.slice(0, 2)),
            (i = 2),
            t > 2 && oe(e.charCodeAt(2)) && ((r = !0), (i = 3)));
        let o = i < t ? ue(e.slice(i), !r, '\\', oe) : '';
        return (
          0 !== o.length || r || (o = '.'),
          o.length > 0 && oe(e.charCodeAt(t - 1)) && (o += '\\'),
          void 0 === n ? (r ? `\\${o}` : o) : r ? `${n}\\${o}` : `${n}${o}`
        );
      },
      isAbsolute(e) {
        se(e, 'path');
        const t = e.length;
        if (0 === t) return !1;
        const n = e.charCodeAt(0);
        return (
          oe(n) ||
          (t > 2 && le(n) && e.charCodeAt(1) === ie && oe(e.charCodeAt(2)))
        );
      },
      join(...e) {
        if (0 === e.length) return '.';
        let t, n;
        for (let i = 0; i < e.length; ++i) {
          const r = e[i];
          se(r, 'path'),
            r.length > 0 && (void 0 === t ? (t = n = r) : (t += `\\${r}`));
        }
        if (void 0 === t) return '.';
        let i = !0,
          r = 0;
        if ('string' == typeof n && oe(n.charCodeAt(0))) {
          ++r;
          const e = n.length;
          e > 1 &&
            oe(n.charCodeAt(1)) &&
            (++r, e > 2 && (oe(n.charCodeAt(2)) ? ++r : (i = !1)));
        }
        if (i) {
          for (; r < t.length && oe(t.charCodeAt(r)); ) r++;
          r >= 2 && (t = `\\${t.slice(r)}`);
        }
        return de.normalize(t);
      },
      relative(e, t) {
        if ((se(e, 'from'), se(t, 'to'), e === t)) return '';
        const n = de.resolve(e),
          i = de.resolve(t);
        if (n === i) return '';
        if ((e = n.toLowerCase()) === (t = i.toLowerCase())) return '';
        let r = 0;
        for (; r < e.length && e.charCodeAt(r) === ne; ) r++;
        let s = e.length;
        for (; s - 1 > r && e.charCodeAt(s - 1) === ne; ) s--;
        const o = s - r;
        let a = 0;
        for (; a < t.length && t.charCodeAt(a) === ne; ) a++;
        let l = t.length;
        for (; l - 1 > a && t.charCodeAt(l - 1) === ne; ) l--;
        const u = l - a,
          h = o < u ? o : u;
        let d = -1,
          c = 0;
        for (; c < h; c++) {
          const n = e.charCodeAt(r + c);
          if (n !== t.charCodeAt(a + c)) break;
          n === ne && (d = c);
        }
        if (c !== h) {
          if (-1 === d) return i;
        } else {
          if (u > h) {
            if (t.charCodeAt(a + c) === ne) return i.slice(a + c + 1);
            if (2 === c) return i.slice(a + c);
          }
          o > h && (e.charCodeAt(r + c) === ne ? (d = c) : 2 === c && (d = 3)),
            -1 === d && (d = 0);
        }
        let f = '';
        for (c = r + d + 1; c <= s; ++c)
          (c !== s && e.charCodeAt(c) !== ne) ||
            (f += 0 === f.length ? '..' : '\\..');
        return (
          (a += d),
          f.length > 0
            ? `${f}${i.slice(a, l)}`
            : (i.charCodeAt(a) === ne && ++a, i.slice(a, l))
        );
      },
      toNamespacedPath(e) {
        if ('string' != typeof e) return e;
        if (0 === e.length) return '';
        const t = de.resolve(e);
        if (t.length <= 2) return e;
        if (t.charCodeAt(0) === ne) {
          if (t.charCodeAt(1) === ne) {
            const e = t.charCodeAt(2);
            if (63 !== e && e !== ee) return `\\\\?\\UNC\\${t.slice(2)}`;
          }
        } else if (
          le(t.charCodeAt(0)) &&
          t.charCodeAt(1) === ie &&
          t.charCodeAt(2) === ne
        )
          return `\\\\?\\${t}`;
        return e;
      },
      dirname(e) {
        se(e, 'path');
        const t = e.length;
        if (0 === t) return '.';
        let n = -1,
          i = 0;
        const r = e.charCodeAt(0);
        if (1 === t) return oe(r) ? e : '.';
        if (oe(r)) {
          if (((n = i = 1), oe(e.charCodeAt(1)))) {
            let r = 2,
              s = r;
            for (; r < t && !oe(e.charCodeAt(r)); ) r++;
            if (r < t && r !== s) {
              for (s = r; r < t && oe(e.charCodeAt(r)); ) r++;
              if (r < t && r !== s) {
                for (s = r; r < t && !oe(e.charCodeAt(r)); ) r++;
                if (r === t) return e;
                r !== s && (n = i = r + 1);
              }
            }
          }
        } else
          le(r) &&
            e.charCodeAt(1) === ie &&
            ((n = t > 2 && oe(e.charCodeAt(2)) ? 3 : 2), (i = n));
        let s = -1,
          o = !0;
        for (let n = t - 1; n >= i; --n)
          if (oe(e.charCodeAt(n))) {
            if (!o) {
              s = n;
              break;
            }
          } else o = !1;
        if (-1 === s) {
          if (-1 === n) return '.';
          s = n;
        }
        return e.slice(0, s);
      },
      basename(e, t) {
        void 0 !== t && se(t, 'ext'), se(e, 'path');
        let n,
          i = 0,
          r = -1,
          s = !0;
        if (
          (e.length >= 2 &&
            le(e.charCodeAt(0)) &&
            e.charCodeAt(1) === ie &&
            (i = 2),
          void 0 !== t && t.length > 0 && t.length <= e.length)
        ) {
          if (t === e) return '';
          let o = t.length - 1,
            a = -1;
          for (n = e.length - 1; n >= i; --n) {
            const l = e.charCodeAt(n);
            if (oe(l)) {
              if (!s) {
                i = n + 1;
                break;
              }
            } else
              -1 === a && ((s = !1), (a = n + 1)),
                o >= 0 &&
                  (l === t.charCodeAt(o)
                    ? -1 == --o && (r = n)
                    : ((o = -1), (r = a)));
          }
          return i === r ? (r = a) : -1 === r && (r = e.length), e.slice(i, r);
        }
        for (n = e.length - 1; n >= i; --n)
          if (oe(e.charCodeAt(n))) {
            if (!s) {
              i = n + 1;
              break;
            }
          } else -1 === r && ((s = !1), (r = n + 1));
        return -1 === r ? '' : e.slice(i, r);
      },
      extname(e) {
        se(e, 'path');
        let t = 0,
          n = -1,
          i = 0,
          r = -1,
          s = !0,
          o = 0;
        e.length >= 2 &&
          e.charCodeAt(1) === ie &&
          le(e.charCodeAt(0)) &&
          (t = i = 2);
        for (let a = e.length - 1; a >= t; --a) {
          const t = e.charCodeAt(a);
          if (oe(t)) {
            if (!s) {
              i = a + 1;
              break;
            }
          } else
            -1 === r && ((s = !1), (r = a + 1)),
              t === ee
                ? -1 === n
                  ? (n = a)
                  : 1 !== o && (o = 1)
                : -1 !== n && (o = -1);
        }
        return -1 === n ||
          -1 === r ||
          0 === o ||
          (1 === o && n === r - 1 && n === i + 1)
          ? ''
          : e.slice(n, r);
      },
      format: he.bind(null, '\\'),
      parse(e) {
        se(e, 'path');
        const t = { root: '', dir: '', base: '', ext: '', name: '' };
        if (0 === e.length) return t;
        const n = e.length;
        let i = 0,
          r = e.charCodeAt(0);
        if (1 === n)
          return oe(r) ? ((t.root = t.dir = e), t) : ((t.base = t.name = e), t);
        if (oe(r)) {
          if (((i = 1), oe(e.charCodeAt(1)))) {
            let t = 2,
              r = t;
            for (; t < n && !oe(e.charCodeAt(t)); ) t++;
            if (t < n && t !== r) {
              for (r = t; t < n && oe(e.charCodeAt(t)); ) t++;
              if (t < n && t !== r) {
                for (r = t; t < n && !oe(e.charCodeAt(t)); ) t++;
                t === n ? (i = t) : t !== r && (i = t + 1);
              }
            }
          }
        } else if (le(r) && e.charCodeAt(1) === ie) {
          if (n <= 2) return (t.root = t.dir = e), t;
          if (((i = 2), oe(e.charCodeAt(2)))) {
            if (3 === n) return (t.root = t.dir = e), t;
            i = 3;
          }
        }
        i > 0 && (t.root = e.slice(0, i));
        let s = -1,
          o = i,
          a = -1,
          l = !0,
          u = e.length - 1,
          h = 0;
        for (; u >= i; --u)
          if (((r = e.charCodeAt(u)), oe(r))) {
            if (!l) {
              o = u + 1;
              break;
            }
          } else
            -1 === a && ((l = !1), (a = u + 1)),
              r === ee
                ? -1 === s
                  ? (s = u)
                  : 1 !== h && (h = 1)
                : -1 !== s && (h = -1);
        return (
          -1 !== a &&
            (-1 === s || 0 === h || (1 === h && s === a - 1 && s === o + 1)
              ? (t.base = t.name = e.slice(o, a))
              : ((t.name = e.slice(o, s)),
                (t.base = e.slice(o, a)),
                (t.ext = e.slice(s, a)))),
          (t.dir = o > 0 && o !== i ? e.slice(0, o - 1) : t.root),
          t
        );
      },
      sep: '\\',
      delimiter: ';',
      win32: null,
      posix: null,
    },
    ce = {
      resolve(...e) {
        let t = '',
          n = !1;
        for (let i = e.length - 1; i >= -1 && !n; i--) {
          const r = i >= 0 ? e[i] : X();
          se(r, 'path'),
            0 !== r.length && ((t = `${r}/${t}`), (n = r.charCodeAt(0) === te));
        }
        return (t = ue(t, !n, '/', ae)), n ? `/${t}` : t.length > 0 ? t : '.';
      },
      normalize(e) {
        if ((se(e, 'path'), 0 === e.length)) return '.';
        const t = e.charCodeAt(0) === te,
          n = e.charCodeAt(e.length - 1) === te;
        return 0 === (e = ue(e, !t, '/', ae)).length
          ? t
            ? '/'
            : n
            ? './'
            : '.'
          : (n && (e += '/'), t ? `/${e}` : e);
      },
      isAbsolute: (e) => (
        se(e, 'path'), e.length > 0 && e.charCodeAt(0) === te
      ),
      join(...e) {
        if (0 === e.length) return '.';
        let t;
        for (let n = 0; n < e.length; ++n) {
          const i = e[n];
          se(i, 'path'),
            i.length > 0 && (void 0 === t ? (t = i) : (t += `/${i}`));
        }
        return void 0 === t ? '.' : ce.normalize(t);
      },
      relative(e, t) {
        if ((se(e, 'from'), se(t, 'to'), e === t)) return '';
        if ((e = ce.resolve(e)) === (t = ce.resolve(t))) return '';
        const n = e.length,
          i = n - 1,
          r = t.length - 1,
          s = i < r ? i : r;
        let o = -1,
          a = 0;
        for (; a < s; a++) {
          const n = e.charCodeAt(1 + a);
          if (n !== t.charCodeAt(1 + a)) break;
          n === te && (o = a);
        }
        if (a === s)
          if (r > s) {
            if (t.charCodeAt(1 + a) === te) return t.slice(1 + a + 1);
            if (0 === a) return t.slice(1 + a);
          } else
            i > s &&
              (e.charCodeAt(1 + a) === te ? (o = a) : 0 === a && (o = 0));
        let l = '';
        for (a = 1 + o + 1; a <= n; ++a)
          (a !== n && e.charCodeAt(a) !== te) ||
            (l += 0 === l.length ? '..' : '/..');
        return `${l}${t.slice(1 + o)}`;
      },
      toNamespacedPath: (e) => e,
      dirname(e) {
        if ((se(e, 'path'), 0 === e.length)) return '.';
        const t = e.charCodeAt(0) === te;
        let n = -1,
          i = !0;
        for (let t = e.length - 1; t >= 1; --t)
          if (e.charCodeAt(t) === te) {
            if (!i) {
              n = t;
              break;
            }
          } else i = !1;
        return -1 === n ? (t ? '/' : '.') : t && 1 === n ? '//' : e.slice(0, n);
      },
      basename(e, t) {
        void 0 !== t && se(t, 'ext'), se(e, 'path');
        let n,
          i = 0,
          r = -1,
          s = !0;
        if (void 0 !== t && t.length > 0 && t.length <= e.length) {
          if (t === e) return '';
          let o = t.length - 1,
            a = -1;
          for (n = e.length - 1; n >= 0; --n) {
            const l = e.charCodeAt(n);
            if (l === te) {
              if (!s) {
                i = n + 1;
                break;
              }
            } else
              -1 === a && ((s = !1), (a = n + 1)),
                o >= 0 &&
                  (l === t.charCodeAt(o)
                    ? -1 == --o && (r = n)
                    : ((o = -1), (r = a)));
          }
          return i === r ? (r = a) : -1 === r && (r = e.length), e.slice(i, r);
        }
        for (n = e.length - 1; n >= 0; --n)
          if (e.charCodeAt(n) === te) {
            if (!s) {
              i = n + 1;
              break;
            }
          } else -1 === r && ((s = !1), (r = n + 1));
        return -1 === r ? '' : e.slice(i, r);
      },
      extname(e) {
        se(e, 'path');
        let t = -1,
          n = 0,
          i = -1,
          r = !0,
          s = 0;
        for (let o = e.length - 1; o >= 0; --o) {
          const a = e.charCodeAt(o);
          if (a !== te)
            -1 === i && ((r = !1), (i = o + 1)),
              a === ee
                ? -1 === t
                  ? (t = o)
                  : 1 !== s && (s = 1)
                : -1 !== t && (s = -1);
          else if (!r) {
            n = o + 1;
            break;
          }
        }
        return -1 === t ||
          -1 === i ||
          0 === s ||
          (1 === s && t === i - 1 && t === n + 1)
          ? ''
          : e.slice(t, i);
      },
      format: he.bind(null, '/'),
      parse(e) {
        se(e, 'path');
        const t = { root: '', dir: '', base: '', ext: '', name: '' };
        if (0 === e.length) return t;
        const n = e.charCodeAt(0) === te;
        let i;
        n ? ((t.root = '/'), (i = 1)) : (i = 0);
        let r = -1,
          s = 0,
          o = -1,
          a = !0,
          l = e.length - 1,
          u = 0;
        for (; l >= i; --l) {
          const t = e.charCodeAt(l);
          if (t !== te)
            -1 === o && ((a = !1), (o = l + 1)),
              t === ee
                ? -1 === r
                  ? (r = l)
                  : 1 !== u && (u = 1)
                : -1 !== r && (u = -1);
          else if (!a) {
            s = l + 1;
            break;
          }
        }
        if (-1 !== o) {
          const i = 0 === s && n ? 1 : s;
          -1 === r || 0 === u || (1 === u && r === o - 1 && r === s + 1)
            ? (t.base = t.name = e.slice(i, o))
            : ((t.name = e.slice(i, r)),
              (t.base = e.slice(i, o)),
              (t.ext = e.slice(r, o)));
        }
        return s > 0 ? (t.dir = e.slice(0, s - 1)) : n && (t.dir = '/'), t;
      },
      sep: '/',
      delimiter: ':',
      win32: null,
      posix: null,
    };
  (ce.win32 = de.win32 = de),
    (ce.posix = de.posix = ce),
    'win32' === J ? de.normalize : ce.normalize,
    'win32' === J ? de.resolve : ce.resolve,
    'win32' === J ? de.relative : ce.relative,
    'win32' === J ? de.dirname : ce.dirname,
    'win32' === J ? de.basename : ce.basename,
    'win32' === J ? de.extname : ce.extname,
    'win32' === J ? de.sep : ce.sep;
  const fe = /^\w[\w\d+.-]*$/,
    me = /^\//,
    ge = /^\/\//,
    _e = '',
    pe = '/',
    Ce = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
  class be {
    constructor(e, t, n, i, r, s = !1) {
      'object' == typeof e
        ? ((this.scheme = e.scheme || _e),
          (this.authority = e.authority || _e),
          (this.path = e.path || _e),
          (this.query = e.query || _e),
          (this.fragment = e.fragment || _e))
        : ((this.scheme = (function (e, t) {
            return e || t ? e : 'file';
          })(e, s)),
          (this.authority = t || _e),
          (this.path = (function (e, t) {
            switch (e) {
              case 'https':
              case 'http':
              case 'file':
                t ? t[0] !== pe && (t = pe + t) : (t = pe);
            }
            return t;
          })(this.scheme, n || _e)),
          (this.query = i || _e),
          (this.fragment = r || _e),
          (function (e, t) {
            if (!e.scheme && t)
              throw new Error(
                `[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`
              );
            if (e.scheme && !fe.test(e.scheme))
              throw new Error(
                '[UriError]: Scheme contains illegal characters.'
              );
            if (e.path)
              if (e.authority) {
                if (!me.test(e.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 (ge.test(e.path))
                throw new Error(
                  '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'
                );
          })(this, s));
    }
    static isUri(e) {
      return (
        e instanceof be ||
        (!!e &&
          'string' == typeof e.authority &&
          'string' == typeof e.fragment &&
          'string' == typeof e.path &&
          'string' == typeof e.query &&
          'string' == typeof e.scheme &&
          'function' == typeof e.fsPath &&
          'function' == typeof e.with &&
          'function' == typeof e.toString)
      );
    }
    get fsPath() {
      return ye(this, !1);
    }
    with(e) {
      if (!e) return this;
      let { scheme: t, authority: n, path: i, query: r, fragment: s } = e;
      return (
        void 0 === t ? (t = this.scheme) : null === t && (t = _e),
        void 0 === n ? (n = this.authority) : null === n && (n = _e),
        void 0 === i ? (i = this.path) : null === i && (i = _e),
        void 0 === r ? (r = this.query) : null === r && (r = _e),
        void 0 === s ? (s = this.fragment) : null === s && (s = _e),
        t === this.scheme &&
        n === this.authority &&
        i === this.path &&
        r === this.query &&
        s === this.fragment
          ? this
          : new Ne(t, n, i, r, s)
      );
    }
    static parse(e, t = !1) {
      const n = Ce.exec(e);
      return n
        ? new Ne(
            n[2] || _e,
            Oe(n[4] || _e),
            Oe(n[5] || _e),
            Oe(n[7] || _e),
            Oe(n[9] || _e),
            t
          )
        : new Ne(_e, _e, _e, _e, _e);
    }
    static file(e) {
      let t = _e;
      if ((A && (e = e.replace(/\\/g, pe)), e[0] === pe && e[1] === pe)) {
        const n = e.indexOf(pe, 2);
        -1 === n
          ? ((t = e.substring(2)), (e = pe))
          : ((t = e.substring(2, n)), (e = e.substring(n) || pe));
      }
      return new Ne('file', t, e, _e, _e);
    }
    static from(e) {
      return new Ne(e.scheme, e.authority, e.path, e.query, e.fragment);
    }
    static joinPath(e, ...t) {
      if (!e.path)
        throw new Error(
          '[UriError]: cannot call joinPaths on URI without path'
        );
      let n;
      return (
        (n =
          A && 'file' === e.scheme
            ? be.file(de.join(ye(e, !0), ...t)).path
            : ce.join(e.path, ...t)),
        e.with({ path: n })
      );
    }
    toString(e = !1) {
      return we(this, e);
    }
    toJSON() {
      return this;
    }
    static revive(e) {
      if (e) {
        if (e instanceof be) return e;
        {
          const t = new Ne(e);
          return (
            (t._formatted = e.external),
            (t._fsPath = e._sep === Le ? e.fsPath : null),
            t
          );
        }
      }
      return e;
    }
  }
  const Le = A ? 1 : void 0;
  class Ne extends be {
    constructor() {
      super(...arguments), (this._formatted = null), (this._fsPath = null);
    }
    get fsPath() {
      return this._fsPath || (this._fsPath = ye(this, !1)), this._fsPath;
    }
    toString(e = !1) {
      return e
        ? we(this, !0)
        : (this._formatted || (this._formatted = we(this, !1)),
          this._formatted);
    }
    toJSON() {
      const e = { $mid: 1 };
      return (
        this._fsPath && ((e.fsPath = this._fsPath), (e._sep = Le)),
        this._formatted && (e.external = this._formatted),
        this.path && (e.path = this.path),
        this.scheme && (e.scheme = this.scheme),
        this.authority && (e.authority = this.authority),
        this.query && (e.query = this.query),
        this.fragment && (e.fragment = this.fragment),
        e
      );
    }
  }
  const Se = {
    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 Ee(e, t) {
    let n,
      i = -1;
    for (let r = 0; r < e.length; r++) {
      const s = e.charCodeAt(r);
      if (
        (s >= 97 && s <= 122) ||
        (s >= 65 && s <= 90) ||
        (s >= 48 && s <= 57) ||
        45 === s ||
        46 === s ||
        95 === s ||
        126 === s ||
        (t && 47 === s)
      )
        -1 !== i && ((n += encodeURIComponent(e.substring(i, r))), (i = -1)),
          void 0 !== n && (n += e.charAt(r));
      else {
        void 0 === n && (n = e.substr(0, r));
        const t = Se[s];
        void 0 !== t
          ? (-1 !== i &&
              ((n += encodeURIComponent(e.substring(i, r))), (i = -1)),
            (n += t))
          : -1 === i && (i = r);
      }
    }
    return (
      -1 !== i && (n += encodeURIComponent(e.substring(i))),
      void 0 !== n ? n : e
    );
  }
  function Ae(e) {
    let t;
    for (let n = 0; n < e.length; n++) {
      const i = e.charCodeAt(n);
      35 === i || 63 === i
        ? (void 0 === t && (t = e.substr(0, n)), (t += Se[i]))
        : void 0 !== t && (t += e[n]);
    }
    return void 0 !== t ? t : e;
  }
  function ye(e, t) {
    let n;
    return (
      (n =
        e.authority && e.path.length > 1 && 'file' === e.scheme
          ? `//${e.authority}${e.path}`
          : 47 === e.path.charCodeAt(0) &&
            ((e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90) ||
              (e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122)) &&
            58 === e.path.charCodeAt(2)
          ? t
            ? e.path.substr(1)
            : e.path[1].toLowerCase() + e.path.substr(2)
          : e.path),
      A && (n = n.replace(/\//g, '\\')),
      n
    );
  }
  function we(e, t) {
    const n = t ? Ae : Ee;
    let i = '',
      { scheme: r, authority: s, path: o, query: a, fragment: l } = e;
    if (
      (r && ((i += r), (i += ':')),
      (s || 'file' === r) && ((i += pe), (i += pe)),
      s)
    ) {
      let e = s.indexOf('@');
      if (-1 !== e) {
        const t = s.substr(0, e);
        (s = s.substr(e + 1)),
          (e = t.indexOf(':')),
          -1 === e
            ? (i += n(t, !1))
            : ((i += n(t.substr(0, e), !1)),
              (i += ':'),
              (i += n(t.substr(e + 1), !1))),
          (i += '@');
      }
      (s = s.toLowerCase()),
        (e = s.indexOf(':')),
        -1 === e
          ? (i += n(s, !1))
          : ((i += n(s.substr(0, e), !1)), (i += s.substr(e)));
    }
    if (o) {
      if (o.length >= 3 && 47 === o.charCodeAt(0) && 58 === o.charCodeAt(2)) {
        const e = o.charCodeAt(1);
        e >= 65 &&
          e <= 90 &&
          (o = `/${String.fromCharCode(e + 32)}:${o.substr(3)}`);
      } else if (o.length >= 2 && 58 === o.charCodeAt(1)) {
        const e = o.charCodeAt(0);
        e >= 65 &&
          e <= 90 &&
          (o = `${String.fromCharCode(e + 32)}:${o.substr(2)}`);
      }
      i += n(o, !0);
    }
    return (
      a && ((i += '?'), (i += n(a, !1))),
      l && ((i += '#'), (i += t ? l : Ee(l, !1))),
      i
    );
  }
  function ve(e) {
    try {
      return decodeURIComponent(e);
    } catch (t) {
      return e.length > 3 ? e.substr(0, 3) + ve(e.substr(3)) : e;
    }
  }
  const Te = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
  function Oe(e) {
    return e.match(Te) ? e.replace(Te, (e) => ve(e)) : e;
  }
  class Ie {
    constructor(e, t) {
      (this.lineNumber = e), (this.column = t);
    }
    with(e = this.lineNumber, t = this.column) {
      return e === this.lineNumber && t === this.column ? this : new Ie(e, t);
    }
    delta(e = 0, t = 0) {
      return this.with(this.lineNumber + e, this.column + t);
    }
    equals(e) {
      return Ie.equals(this, e);
    }
    static equals(e, t) {
      return (
        (!e && !t) ||
        (!!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column)
      );
    }
    isBefore(e) {
      return Ie.isBefore(this, e);
    }
    static isBefore(e, t) {
      return (
        e.lineNumber < t.lineNumber ||
        (!(t.lineNumber < e.lineNumber) && e.column < t.column)
      );
    }
    isBeforeOrEqual(e) {
      return Ie.isBeforeOrEqual(this, e);
    }
    static isBeforeOrEqual(e, t) {
      return (
        e.lineNumber < t.lineNumber ||
        (!(t.lineNumber < e.lineNumber) && e.column <= t.column)
      );
    }
    static compare(e, t) {
      let n = 0 | e.lineNumber,
        i = 0 | t.lineNumber;
      return n === i ? (0 | e.column) - (0 | t.column) : n - i;
    }
    clone() {
      return new Ie(this.lineNumber, this.column);
    }
    toString() {
      return '(' + this.lineNumber + ',' + this.column + ')';
    }
    static lift(e) {
      return new Ie(e.lineNumber, e.column);
    }
    static isIPosition(e) {
      return (
        e && 'number' == typeof e.lineNumber && 'number' == typeof e.column
      );
    }
  }
  class Me {
    constructor(e, t, n, i) {
      e > n || (e === n && t > i)
        ? ((this.startLineNumber = n),
          (this.startColumn = i),
          (this.endLineNumber = e),
          (this.endColumn = t))
        : ((this.startLineNumber = e),
          (this.startColumn = t),
          (this.endLineNumber = n),
          (this.endColumn = i));
    }
    isEmpty() {
      return Me.isEmpty(this);
    }
    static isEmpty(e) {
      return (
        e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn
      );
    }
    containsPosition(e) {
      return Me.containsPosition(this, e);
    }
    static containsPosition(e, t) {
      return !(
        t.lineNumber < e.startLineNumber ||
        t.lineNumber > e.endLineNumber ||
        (t.lineNumber === e.startLineNumber && t.column < e.startColumn) ||
        (t.lineNumber === e.endLineNumber && t.column > e.endColumn)
      );
    }
    containsRange(e) {
      return Me.containsRange(this, e);
    }
    static containsRange(e, t) {
      return !(
        t.startLineNumber < e.startLineNumber ||
        t.endLineNumber < e.startLineNumber ||
        t.startLineNumber > e.endLineNumber ||
        t.endLineNumber > e.endLineNumber ||
        (t.startLineNumber === e.startLineNumber &&
          t.startColumn < e.startColumn) ||
        (t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)
      );
    }
    strictContainsRange(e) {
      return Me.strictContainsRange(this, e);
    }
    static strictContainsRange(e, t) {
      return !(
        t.startLineNumber < e.startLineNumber ||
        t.endLineNumber < e.startLineNumber ||
        t.startLineNumber > e.endLineNumber ||
        t.endLineNumber > e.endLineNumber ||
        (t.startLineNumber === e.startLineNumber &&
          t.startColumn <= e.startColumn) ||
        (t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn)
      );
    }
    plusRange(e) {
      return Me.plusRange(this, e);
    }
    static plusRange(e, t) {
      let n, i, r, s;
      return (
        t.startLineNumber < e.startLineNumber
          ? ((n = t.startLineNumber), (i = t.startColumn))
          : t.startLineNumber === e.startLineNumber
          ? ((n = t.startLineNumber),
            (i = Math.min(t.startColumn, e.startColumn)))
          : ((n = e.startLineNumber), (i = e.startColumn)),
        t.endLineNumber > e.endLineNumber
          ? ((r = t.endLineNumber), (s = t.endColumn))
          : t.endLineNumber === e.endLineNumber
          ? ((r = t.endLineNumber), (s = Math.max(t.endColumn, e.endColumn)))
          : ((r = e.endLineNumber), (s = e.endColumn)),
        new Me(n, i, r, s)
      );
    }
    intersectRanges(e) {
      return Me.intersectRanges(this, e);
    }
    static intersectRanges(e, t) {
      let n = e.startLineNumber,
        i = e.startColumn,
        r = e.endLineNumber,
        s = e.endColumn,
        o = t.startLineNumber,
        a = t.startColumn,
        l = t.endLineNumber,
        u = t.endColumn;
      return (
        n < o ? ((n = o), (i = a)) : n === o && (i = Math.max(i, a)),
        r > l ? ((r = l), (s = u)) : r === l && (s = Math.min(s, u)),
        n > r || (n === r && i > s) ? null : new Me(n, i, r, s)
      );
    }
    equalsRange(e) {
      return Me.equalsRange(this, e);
    }
    static equalsRange(e, t) {
      return (
        !!e &&
        !!t &&
        e.startLineNumber === t.startLineNumber &&
        e.startColumn === t.startColumn &&
        e.endLineNumber === t.endLineNumber &&
        e.endColumn === t.endColumn
      );
    }
    getEndPosition() {
      return Me.getEndPosition(this);
    }
    static getEndPosition(e) {
      return new Ie(e.endLineNumber, e.endColumn);
    }
    getStartPosition() {
      return Me.getStartPosition(this);
    }
    static getStartPosition(e) {
      return new Ie(e.startLineNumber, e.startColumn);
    }
    toString() {
      return (
        '[' +
        this.startLineNumber +
        ',' +
        this.startColumn +
        ' -> ' +
        this.endLineNumber +
        ',' +
        this.endColumn +
        ']'
      );
    }
    setEndPosition(e, t) {
      return new Me(this.startLineNumber, this.startColumn, e, t);
    }
    setStartPosition(e, t) {
      return new Me(e, t, this.endLineNumber, this.endColumn);
    }
    collapseToStart() {
      return Me.collapseToStart(this);
    }
    static collapseToStart(e) {
      return new Me(
        e.startLineNumber,
        e.startColumn,
        e.startLineNumber,
        e.startColumn
      );
    }
    static fromPositions(e, t = e) {
      return new Me(e.lineNumber, e.column, t.lineNumber, t.column);
    }
    static lift(e) {
      return e
        ? new Me(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn)
        : null;
    }
    static isIRange(e) {
      return (
        e &&
        'number' == typeof e.startLineNumber &&
        'number' == typeof e.startColumn &&
        'number' == typeof e.endLineNumber &&
        'number' == typeof e.endColumn
      );
    }
    static areIntersectingOrTouching(e, t) {
      return !(
        e.endLineNumber < t.startLineNumber ||
        (e.endLineNumber === t.startLineNumber &&
          e.endColumn < t.startColumn) ||
        t.endLineNumber < e.startLineNumber ||
        (t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn)
      );
    }
    static areIntersecting(e, t) {
      return !(
        e.endLineNumber < t.startLineNumber ||
        (e.endLineNumber === t.startLineNumber &&
          e.endColumn <= t.startColumn) ||
        t.endLineNumber < e.startLineNumber ||
        (t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn)
      );
    }
    static compareRangesUsingStarts(e, t) {
      if (e && t) {
        const n = 0 | e.startLineNumber,
          i = 0 | t.startLineNumber;
        if (n === i) {
          const n = 0 | e.startColumn,
            i = 0 | t.startColumn;
          if (n === i) {
            const n = 0 | e.endLineNumber,
              i = 0 | t.endLineNumber;
            return n === i ? (0 | e.endColumn) - (0 | t.endColumn) : n - i;
          }
          return n - i;
        }
        return n - i;
      }
      return (e ? 1 : 0) - (t ? 1 : 0);
    }
    static compareRangesUsingEnds(e, t) {
      return e.endLineNumber === t.endLineNumber
        ? e.endColumn === t.endColumn
          ? e.startLineNumber === t.startLineNumber
            ? e.startColumn - t.startColumn
            : e.startLineNumber - t.startLineNumber
          : e.endColumn - t.endColumn
        : e.endLineNumber - t.endLineNumber;
    }
    static spansMultipleLines(e) {
      return e.endLineNumber > e.startLineNumber;
    }
  }
  function xe(e, t, n, i) {
    return new z(e, t, n).ComputeDiff(i);
  }
  class Re {
    constructor(e) {
      const t = [],
        n = [];
      for (let i = 0, r = e.length; i < r; i++)
        (t[i] = Fe(e[i], 1)), (n[i] = Ke(e[i], 1));
      (this.lines = e), (this._startColumns = t), (this._endColumns = n);
    }
    getElements() {
      const e = [];
      for (let t = 0, n = this.lines.length; t < n; t++)
        e[t] = this.lines[t].substring(
          this._startColumns[t] - 1,
          this._endColumns[t] - 1
        );
      return e;
    }
    getStartLineNumber(e) {
      return e + 1;
    }
    getEndLineNumber(e) {
      return e + 1;
    }
    createCharSequence(e, t, n) {
      const i = [],
        r = [],
        s = [];
      let o = 0;
      for (let a = t; a <= n; a++) {
        const t = this.lines[a],
          n = e ? this._startColumns[a] : 1,
          l = e ? this._endColumns[a] : t.length + 1;
        for (let e = n; e < l; e++)
          (i[o] = t.charCodeAt(e - 1)), (r[o] = a + 1), (s[o] = e), o++;
      }
      return new Pe(i, r, s);
    }
  }
  class Pe {
    constructor(e, t, n) {
      (this._charCodes = e), (this._lineNumbers = t), (this._columns = n);
    }
    getElements() {
      return this._charCodes;
    }
    getStartLineNumber(e) {
      return this._lineNumbers[e];
    }
    getStartColumn(e) {
      return this._columns[e];
    }
    getEndLineNumber(e) {
      return this._lineNumbers[e];
    }
    getEndColumn(e) {
      return this._columns[e] + 1;
    }
  }
  class Ue {
    constructor(e, t, n, i, r, s, o, a) {
      (this.originalStartLineNumber = e),
        (this.originalStartColumn = t),
        (this.originalEndLineNumber = n),
        (this.originalEndColumn = i),
        (this.modifiedStartLineNumber = r),
        (this.modifiedStartColumn = s),
        (this.modifiedEndLineNumber = o),
        (this.modifiedEndColumn = a);
    }
    static createFromDiffChange(e, t, n) {
      let i, r, s, o, a, l, u, h;
      return (
        0 === e.originalLength
          ? ((i = 0), (r = 0), (s = 0), (o = 0))
          : ((i = t.getStartLineNumber(e.originalStart)),
            (r = t.getStartColumn(e.originalStart)),
            (s = t.getEndLineNumber(e.originalStart + e.originalLength - 1)),
            (o = t.getEndColumn(e.originalStart + e.originalLength - 1))),
        0 === e.modifiedLength
          ? ((a = 0), (l = 0), (u = 0), (h = 0))
          : ((a = n.getStartLineNumber(e.modifiedStart)),
            (l = n.getStartColumn(e.modifiedStart)),
            (u = n.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1)),
            (h = n.getEndColumn(e.modifiedStart + e.modifiedLength - 1))),
        new Ue(i, r, s, o, a, l, u, h)
      );
    }
  }
  class ke {
    constructor(e, t, n, i, r) {
      (this.originalStartLineNumber = e),
        (this.originalEndLineNumber = t),
        (this.modifiedStartLineNumber = n),
        (this.modifiedEndLineNumber = i),
        (this.charChanges = r);
    }
    static createFromDiffResult(e, t, n, i, r, s, o) {
      let a, l, u, h, d;
      if (
        (0 === t.originalLength
          ? ((a = n.getStartLineNumber(t.originalStart) - 1), (l = 0))
          : ((a = n.getStartLineNumber(t.originalStart)),
            (l = n.getEndLineNumber(t.originalStart + t.originalLength - 1))),
        0 === t.modifiedLength
          ? ((u = i.getStartLineNumber(t.modifiedStart) - 1), (h = 0))
          : ((u = i.getStartLineNumber(t.modifiedStart)),
            (h = i.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1))),
        s &&
          t.originalLength > 0 &&
          t.originalLength < 20 &&
          t.modifiedLength > 0 &&
          t.modifiedLength < 20 &&
          r())
      ) {
        const s = n.createCharSequence(
            e,
            t.originalStart,
            t.originalStart + t.originalLength - 1
          ),
          a = i.createCharSequence(
            e,
            t.modifiedStart,
            t.modifiedStart + t.modifiedLength - 1
          );
        let l = xe(s, a, r, !0).changes;
        o &&
          (l = (function (e) {
            if (e.length <= 1) return e;
            const t = [e[0]];
            let n = t[0];
            for (let i = 1, r = e.length; i < r; i++) {
              const r = e[i],
                s = r.originalStart - (n.originalStart + n.originalLength),
                o = r.modifiedStart - (n.modifiedStart + n.modifiedLength);
              Math.min(s, o) < 3
                ? ((n.originalLength =
                    r.originalStart + r.originalLength - n.originalStart),
                  (n.modifiedLength =
                    r.modifiedStart + r.modifiedLength - n.modifiedStart))
                : (t.push(r), (n = r));
            }
            return t;
          })(l)),
          (d = []);
        for (let e = 0, t = l.length; e < t; e++)
          d.push(Ue.createFromDiffChange(l[e], s, a));
      }
      return new ke(a, l, u, h, d);
    }
  }
  class De {
    constructor(e, t, n) {
      (this.shouldComputeCharChanges = n.shouldComputeCharChanges),
        (this.shouldPostProcessCharChanges = n.shouldPostProcessCharChanges),
        (this.shouldIgnoreTrimWhitespace = n.shouldIgnoreTrimWhitespace),
        (this.shouldMakePrettyDiff = n.shouldMakePrettyDiff),
        (this.originalLines = e),
        (this.modifiedLines = t),
        (this.original = new Re(e)),
        (this.modified = new Re(t)),
        (this.continueLineDiff = Be(n.maxComputationTime)),
        (this.continueCharDiff = Be(
          0 === n.maxComputationTime ? 0 : Math.min(n.maxComputationTime, 5e3)
        ));
    }
    computeDiff() {
      if (
        1 === this.original.lines.length &&
        0 === this.original.lines[0].length
      )
        return {
          quitEarly: !1,
          changes: [
            {
              originalStartLineNumber: 1,
              originalEndLineNumber: 1,
              modifiedStartLineNumber: 1,
              modifiedEndLineNumber: this.modified.lines.length,
              charChanges: [
                {
                  modifiedEndColumn: 0,
                  modifiedEndLineNumber: 0,
                  modifiedStartColumn: 0,
                  modifiedStartLineNumber: 0,
                  originalEndColumn: 0,
                  originalEndLineNumber: 0,
                  originalStartColumn: 0,
                  originalStartLineNumber: 0,
                },
              ],
            },
          ],
        };
      if (
        1 === this.modified.lines.length &&
        0 === this.modified.lines[0].length
      )
        return {
          quitEarly: !1,
          changes: [
            {
              originalStartLineNumber: 1,
              originalEndLineNumber: this.original.lines.length,
              modifiedStartLineNumber: 1,
              modifiedEndLineNumber: 1,
              charChanges: [
                {
                  modifiedEndColumn: 0,
                  modifiedEndLineNumber: 0,
                  modifiedStartColumn: 0,
                  modifiedStartLineNumber: 0,
                  originalEndColumn: 0,
                  originalEndLineNumber: 0,
                  originalStartColumn: 0,
                  originalStartLineNumber: 0,
                },
              ],
            },
          ],
        };
      const e = xe(
          this.original,
          this.modified,
          this.continueLineDiff,
          this.shouldMakePrettyDiff
        ),
        t = e.changes,
        n = e.quitEarly;
      if (this.shouldIgnoreTrimWhitespace) {
        const e = [];
        for (let n = 0, i = t.length; n < i; n++)
          e.push(
            ke.createFromDiffResult(
              this.shouldIgnoreTrimWhitespace,
              t[n],
              this.original,
              this.modified,
              this.continueCharDiff,
              this.shouldComputeCharChanges,
              this.shouldPostProcessCharChanges
            )
          );
        return { quitEarly: n, changes: e };
      }
      const i = [];
      let r = 0,
        s = 0;
      for (let e = -1, n = t.length; e < n; e++) {
        const o = e + 1 < n ? t[e + 1] : null,
          a = o ? o.originalStart : this.originalLines.length,
          l = o ? o.modifiedStart : this.modifiedLines.length;
        for (; r < a && s < l; ) {
          const e = this.originalLines[r],
            t = this.modifiedLines[s];
          if (e !== t) {
            {
              let n = Fe(e, 1),
                o = Fe(t, 1);
              for (
                ;
                n > 1 && o > 1 && e.charCodeAt(n - 2) === t.charCodeAt(o - 2);

              )
                n--, o--;
              (n > 1 || o > 1) &&
                this._pushTrimWhitespaceCharChange(i, r + 1, 1, n, s + 1, 1, o);
            }
            {
              let n = Ke(e, 1),
                o = Ke(t, 1);
              const a = e.length + 1,
                l = t.length + 1;
              for (
                ;
                n < a && o < l && e.charCodeAt(n - 1) === e.charCodeAt(o - 1);

              )
                n++, o++;
              (n < a || o < l) &&
                this._pushTrimWhitespaceCharChange(i, r + 1, n, a, s + 1, o, l);
            }
          }
          r++, s++;
        }
        o &&
          (i.push(
            ke.createFromDiffResult(
              this.shouldIgnoreTrimWhitespace,
              o,
              this.original,
              this.modified,
              this.continueCharDiff,
              this.shouldComputeCharChanges,
              this.shouldPostProcessCharChanges
            )
          ),
          (r += o.originalLength),
          (s += o.modifiedLength));
      }
      return { quitEarly: n, changes: i };
    }
    _pushTrimWhitespaceCharChange(e, t, n, i, r, s, o) {
      if (this._mergeTrimWhitespaceCharChange(e, t, n, i, r, s, o)) return;
      let a;
      this.shouldComputeCharChanges && (a = [new Ue(t, n, t, i, r, s, r, o)]),
        e.push(new ke(t, t, r, r, a));
    }
    _mergeTrimWhitespaceCharChange(e, t, n, i, r, s, o) {
      const a = e.length;
      if (0 === a) return !1;
      const l = e[a - 1];
      return (
        0 !== l.originalEndLineNumber &&
        0 !== l.modifiedEndLineNumber &&
        l.originalEndLineNumber + 1 === t &&
        l.modifiedEndLineNumber + 1 === r &&
        ((l.originalEndLineNumber = t),
        (l.modifiedEndLineNumber = r),
        this.shouldComputeCharChanges &&
          l.charChanges &&
          l.charChanges.push(new Ue(t, n, t, i, r, s, r, o)),
        !0)
      );
    }
  }
  function Fe(e, t) {
    const n = (function (e) {
      for (let t = 0, n = e.length; t < n; t++) {
        const n = e.charCodeAt(t);
        if (32 !== n && 9 !== n) return t;
      }
      return -1;
    })(e);
    return -1 === n ? t : n + 1;
  }
  function Ke(e, t) {
    const n = (function (e, t = e.length - 1) {
      for (let n = t; n >= 0; n--) {
        const t = e.charCodeAt(n);
        if (32 !== t && 9 !== t) return n;
      }
      return -1;
    })(e);
    return -1 === n ? t : n + 2;
  }
  function Be(e) {
    if (0 === e) return () => !0;
    const t = Date.now();
    return () => Date.now() - t < e;
  }
  function We(e) {
    return e < 0 ? 0 : e > 255 ? 255 : 0 | e;
  }
  function qe(e) {
    return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e;
  }
  class He {
    constructor(e, t) {
      (this.index = e), (this.remainder = t);
    }
  }
  class Ve {
    constructor(e) {
      (this.values = e),
        (this.prefixSum = new Uint32Array(e.length)),
        (this.prefixSumValidIndex = new Int32Array(1)),
        (this.prefixSumValidIndex[0] = -1);
    }
    insertValues(e, t) {
      e = qe(e);
      const n = this.values,
        i = this.prefixSum,
        r = t.length;
      return (
        0 !== r &&
        ((this.values = new Uint32Array(n.length + r)),
        this.values.set(n.subarray(0, e), 0),
        this.values.set(n.subarray(e), e + r),
        this.values.set(t, e),
        e - 1 < this.prefixSumValidIndex[0] &&
          (this.prefixSumValidIndex[0] = e - 1),
        (this.prefixSum = new Uint32Array(this.values.length)),
        this.prefixSumValidIndex[0] >= 0 &&
          this.prefixSum.set(i.subarray(0, this.prefixSumValidIndex[0] + 1)),
        !0)
      );
    }
    changeValue(e, t) {
      return (
        (e = qe(e)),
        (t = qe(t)),
        this.values[e] !== t &&
          ((this.values[e] = t),
          e - 1 < this.prefixSumValidIndex[0] &&
            (this.prefixSumValidIndex[0] = e - 1),
          !0)
      );
    }
    removeValues(e, t) {
      (e = qe(e)), (t = qe(t));
      const n = this.values,
        i = this.prefixSum;
      if (e >= n.length) return !1;
      let r = n.length - e;
      return (
        t >= r && (t = r),
        0 !== t &&
          ((this.values = new Uint32Array(n.length - t)),
          this.values.set(n.subarray(0, e), 0),
          this.values.set(n.subarray(e + t), e),
          (this.prefixSum = new Uint32Array(this.values.length)),
          e - 1 < this.prefixSumValidIndex[0] &&
            (this.prefixSumValidIndex[0] = e - 1),
          this.prefixSumValidIndex[0] >= 0 &&
            this.prefixSum.set(i.subarray(0, this.prefixSumValidIndex[0] + 1)),
          !0)
      );
    }
    getTotalValue() {
      return 0 === this.values.length
        ? 0
        : this._getAccumulatedValue(this.values.length - 1);
    }
    getAccumulatedValue(e) {
      return e < 0 ? 0 : ((e = qe(e)), this._getAccumulatedValue(e));
    }
    _getAccumulatedValue(e) {
      if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];
      let t = this.prefixSumValidIndex[0] + 1;
      0 === t && ((this.prefixSum[0] = this.values[0]), t++),
        e >= this.values.length && (e = this.values.length - 1);
      for (let n = t; n <= e; n++)
        this.prefixSum[n] = this.prefixSum[n - 1] + this.values[n];
      return (
        (this.prefixSumValidIndex[0] = Math.max(
          this.prefixSumValidIndex[0],
          e
        )),
        this.prefixSum[e]
      );
    }
    getIndexOf(e) {
      (e = Math.floor(e)), this.getTotalValue();
      let t = 0,
        n = this.values.length - 1,
        i = 0,
        r = 0,
        s = 0;
      for (; t <= n; )
        if (
          ((i = (t + (n - t) / 2) | 0),
          (r = this.prefixSum[i]),
          (s = r - this.values[i]),
          e < s)
        )
          n = i - 1;
        else {
          if (!(e >= r)) break;
          t = i + 1;
        }
      return new He(i, e - s);
    }
  }
  const Ye = (function (e = '') {
      let t = '(-?\\d*\\.\\d\\w*)|([^';
      for (const n of '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?')
        e.indexOf(n) >= 0 || (t += '\\' + n);
      return (t += '\\s]+)'), new RegExp(t, 'g');
    })(),
    $e = { maxLen: 1e3, windowSize: 15, timeBudget: 150 };
  function je(e, t, n, i, r = $e) {
    if (n.length > r.maxLen) {
      let s = e - r.maxLen / 2;
      return (
        s < 0 ? ((i += e), (s = 0)) : (i += s),
        je(e, t, (n = n.substring(s, e + r.maxLen / 2)), i, r)
      );
    }
    Date.now();
    const s = e - 1 - i;
    let o = -1,
      a = null;
    for (let e = 1; ; e++) {
      Date.now(), r.timeBudget;
      const i = s - r.windowSize * e;
      t.lastIndex = Math.max(0, i);
      const l = Ge(t, n, s, o);
      if (!l && a) break;
      if (((a = l), i <= 0)) break;
      o = i;
    }
    if (a) {
      let e = {
        word: a[0],
        startColumn: i + 1 + a.index,
        endColumn: i + 1 + a.index + a[0].length,
      };
      return (t.lastIndex = 0), e;
    }
    return null;
  }
  function Ge(e, t, n, i) {
    let r;
    for (; (r = e.exec(t)); ) {
      const t = r.index || 0;
      if (t <= n && e.lastIndex >= n) return r;
      if (i > 0 && t > i) return null;
    }
    return null;
  }
  class ze {
    constructor(e) {
      let t = We(e);
      (this._defaultValue = t),
        (this._asciiMap = ze._createAsciiMap(t)),
        (this._map = new Map());
    }
    static _createAsciiMap(e) {
      let t = new Uint8Array(256);
      for (let n = 0; n < 256; n++) t[n] = e;
      return t;
    }
    set(e, t) {
      let n = We(t);
      e >= 0 && e < 256 ? (this._asciiMap[e] = n) : this._map.set(e, n);
    }
    get(e) {
      return e >= 0 && e < 256
        ? this._asciiMap[e]
        : this._map.get(e) || this._defaultValue;
    }
  }
  class Qe {
    constructor(e, t, n) {
      const i = new Uint8Array(e * t);
      for (let r = 0, s = e * t; r < s; r++) i[r] = n;
      (this._data = i), (this.rows = e), (this.cols = t);
    }
    get(e, t) {
      return this._data[e * this.cols + t];
    }
    set(e, t, n) {
      this._data[e * this.cols + t] = n;
    }
  }
  class Xe {
    constructor(e) {
      let t = 0,
        n = 0;
      for (let i = 0, r = e.length; i < r; i++) {
        let [r, s, o] = e[i];
        s > t && (t = s), r > n && (n = r), o > n && (n = o);
      }
      t++, n++;
      let i = new Qe(n, t, 0);
      for (let t = 0, n = e.length; t < n; t++) {
        let [n, r, s] = e[t];
        i.set(n, r, s);
      }
      (this._states = i), (this._maxCharCode = t);
    }
    nextState(e, t) {
      return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t);
    }
  }
  let Ze = null,
    Je = null;
  class et {
    static _createLink(e, t, n, i, r) {
      let s = r - 1;
      do {
        const n = t.charCodeAt(s);
        if (2 !== e.get(n)) break;
        s--;
      } while (s > i);
      if (i > 0) {
        const e = t.charCodeAt(i - 1),
          n = t.charCodeAt(s);
        ((40 === e && 41 === n) ||
          (91 === e && 93 === n) ||
          (123 === e && 125 === n)) &&
          s--;
      }
      return {
        range: {
          startLineNumber: n,
          startColumn: i + 1,
          endLineNumber: n,
          endColumn: s + 2,
        },
        url: t.substring(i, s + 1),
      };
    }
    static computeLinks(
      e,
      t = (function () {
        return (
          null === Ze &&
            (Ze = new Xe([
              [1, 104, 2],
              [1, 72, 2],
              [1, 102, 6],
              [1, 70, 6],
              [2, 116, 3],
              [2, 84, 3],
              [3, 116, 4],
              [3, 84, 4],
              [4, 112, 5],
              [4, 80, 5],
              [5, 115, 9],
              [5, 83, 9],
              [5, 58, 10],
              [6, 105, 7],
              [6, 73, 7],
              [7, 108, 8],
              [7, 76, 8],
              [8, 101, 9],
              [8, 69, 9],
              [9, 58, 10],
              [10, 47, 11],
              [11, 47, 12],
            ])),
          Ze
        );
      })()
    ) {
      const n = (function () {
        if (null === Je) {
          Je = new ze(0);
          const e =
            ' \t<>\'"、。｡､，．：；‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…';
          for (let t = 0; t < e.length; t++) Je.set(e.charCodeAt(t), 1);
          const t = '.,;';
          for (let e = 0; e < t.length; e++) Je.set(t.charCodeAt(e), 2);
        }
        return Je;
      })();
      let i = [];
      for (let r = 1, s = e.getLineCount(); r <= s; r++) {
        const s = e.getLineContent(r),
          o = s.length;
        let a = 0,
          l = 0,
          u = 0,
          h = 1,
          d = !1,
          c = !1,
          f = !1,
          m = !1;
        for (; a < o; ) {
          let e = !1;
          const o = s.charCodeAt(a);
          if (13 === h) {
            let t;
            switch (o) {
              case 40:
                (d = !0), (t = 0);
                break;
              case 41:
                t = d ? 0 : 1;
                break;
              case 91:
                (f = !0), (c = !0), (t = 0);
                break;
              case 93:
                (f = !1), (t = c ? 0 : 1);
                break;
              case 123:
                (m = !0), (t = 0);
                break;
              case 125:
                t = m ? 0 : 1;
                break;
              case 39:
                t = 34 === u || 96 === u ? 0 : 1;
                break;
              case 34:
                t = 39 === u || 96 === u ? 0 : 1;
                break;
              case 96:
                t = 39 === u || 34 === u ? 0 : 1;
                break;
              case 42:
                t = 42 === u ? 1 : 0;
                break;
              case 124:
                t = 124 === u ? 1 : 0;
                break;
              case 32:
                t = f ? 0 : 1;
                break;
              default:
                t = n.get(o);
            }
            1 === t && (i.push(et._createLink(n, s, r, l, a)), (e = !0));
          } else if (12 === h) {
            let t;
            91 === o ? ((c = !0), (t = 0)) : (t = n.get(o)),
              1 === t ? (e = !0) : (h = 13);
          } else (h = t.nextState(h, o)), 0 === h && (e = !0);
          e && ((h = 1), (d = !1), (c = !1), (m = !1), (l = a + 1), (u = o)),
            a++;
        }
        13 === h && i.push(et._createLink(n, s, r, l, o));
      }
      return i;
    }
  }
  class tt {
    constructor() {
      this._defaultValueSet = [
        ['true', 'false'],
        ['True', 'False'],
        [
          'Private',
          'Public',
          'Friend',
          'ReadOnly',
          'Partial',
          'Protected',
          'WriteOnly',
        ],
        ['public', 'protected', 'private'],
      ];
    }
    navigateValueSet(e, t, n, i, r) {
      if (e && t) {
        let n = this.doNavigateValueSet(t, r);
        if (n) return { range: e, value: n };
      }
      if (n && i) {
        let e = this.doNavigateValueSet(i, r);
        if (e) return { range: n, value: e };
      }
      return null;
    }
    doNavigateValueSet(e, t) {
      let n = this.numberReplace(e, t);
      return null !== n ? n : this.textReplace(e, t);
    }
    numberReplace(e, t) {
      let n = Math.pow(10, e.length - (e.lastIndexOf('.') + 1)),
        i = Number(e),
        r = parseFloat(e);
      return isNaN(i) || isNaN(r) || i !== r
        ? null
        : 0 !== i || t
        ? ((i = Math.floor(i * n)), (i += t ? n : -n), String(i / n))
        : null;
    }
    textReplace(e, t) {
      return this.valueSetsReplace(this._defaultValueSet, e, t);
    }
    valueSetsReplace(e, t, n) {
      let i = null;
      for (let r = 0, s = e.length; null === i && r < s; r++)
        i = this.valueSetReplace(e[r], t, n);
      return i;
    }
    valueSetReplace(e, t, n) {
      let i = e.indexOf(t);
      return i >= 0
        ? ((i += n ? 1 : -1),
          i < 0 ? (i = e.length - 1) : (i %= e.length),
          e[i])
        : null;
    }
  }
  tt.INSTANCE = new tt();
  class nt {
    constructor(e) {
      (this.element = e),
        (this.next = nt.Undefined),
        (this.prev = nt.Undefined);
    }
  }
  nt.Undefined = new nt(void 0);
  class it {
    constructor() {
      (this._first = nt.Undefined),
        (this._last = nt.Undefined),
        (this._size = 0);
    }
    get size() {
      return this._size;
    }
    isEmpty() {
      return this._first === nt.Undefined;
    }
    clear() {
      (this._first = nt.Undefined),
        (this._last = nt.Undefined),
        (this._size = 0);
    }
    unshift(e) {
      return this._insert(e, !1);
    }
    push(e) {
      return this._insert(e, !0);
    }
    _insert(e, t) {
      const n = new nt(e);
      if (this._first === nt.Undefined) (this._first = n), (this._last = n);
      else if (t) {
        const e = this._last;
        (this._last = n), (n.prev = e), (e.next = n);
      } else {
        const e = this._first;
        (this._first = n), (n.next = e), (e.prev = n);
      }
      this._size += 1;
      let i = !1;
      return () => {
        i || ((i = !0), this._remove(n));
      };
    }
    shift() {
      if (this._first !== nt.Undefined) {
        const e = this._first.element;
        return this._remove(this._first), e;
      }
    }
    pop() {
      if (this._last !== nt.Undefined) {
        const e = this._last.element;
        return this._remove(this._last), e;
      }
    }
    _remove(e) {
      if (e.prev !== nt.Undefined && e.next !== nt.Undefined) {
        const t = e.prev;
        (t.next = e.next), (e.next.prev = t);
      } else
        e.prev === nt.Undefined && e.next === nt.Undefined
          ? ((this._first = nt.Undefined), (this._last = nt.Undefined))
          : e.next === nt.Undefined
          ? ((this._last = this._last.prev), (this._last.next = nt.Undefined))
          : e.prev === nt.Undefined &&
            ((this._first = this._first.next),
            (this._first.prev = nt.Undefined));
      this._size -= 1;
    }
    *[Symbol.iterator]() {
      let e = this._first;
      for (; e !== nt.Undefined; ) yield e.element, (e = e.next);
    }
    toArray() {
      const e = [];
      for (let t = this._first; t !== nt.Undefined; t = t.next)
        e.push(t.element);
      return e;
    }
  }
  var rt;
  !(function (e) {
    function t(e) {
      return (t, n = null, i) => {
        let r,
          s = !1;
        return (
          (r = e(
            (e) => {
              if (!s) return r ? r.dispose() : (s = !0), t.call(n, e);
            },
            null,
            i
          )),
          s && r.dispose(),
          r
        );
      };
    }
    function n(e, t) {
      return a((n, i = null, r) => e((e) => n.call(i, t(e)), null, r));
    }
    function i(e, t) {
      return a((n, i = null, r) =>
        e(
          (e) => {
            t(e), n.call(i, e);
          },
          null,
          r
        )
      );
    }
    function r(e, t) {
      return a((n, i = null, r) => e((e) => t(e) && n.call(i, e), null, r));
    }
    function s(e, t, i) {
      let r = i;
      return n(e, (e) => ((r = t(r, e)), r));
    }
    function a(e) {
      let t;
      const n = new st({
        onFirstListenerAdd() {
          t = e(n.fire, n);
        },
        onLastListenerRemove() {
          t.dispose();
        },
      });
      return n.event;
    }
    function u(e, t, n = 100, i = !1, r) {
      let s,
        o,
        a,
        l = 0;
      const u = new st({
        leakWarningThreshold: r,
        onFirstListenerAdd() {
          s = e((e) => {
            l++,
              (o = t(o, e)),
              i && !a && (u.fire(o), (o = void 0)),
              clearTimeout(a),
              (a = setTimeout(() => {
                const e = o;
                (o = void 0), (a = void 0), (!i || l > 1) && u.fire(e), (l = 0);
              }, n));
          });
        },
        onLastListenerRemove() {
          s.dispose();
        },
      });
      return u.event;
    }
    function d(e) {
      let t,
        n = !0;
      return r(e, (e) => {
        const i = n || e !== t;
        return (n = !1), (t = e), i;
      });
    }
    (e.None = () => h.None),
      (e.once = t),
      (e.map = n),
      (e.forEach = i),
      (e.filter = r),
      (e.signal = function (e) {
        return e;
      }),
      (e.any = function (...e) {
        return (t, n = null, i) =>
          (function (...e) {
            return e.forEach(o), { dispose: () => l(e) };
          })(...e.map((e) => e((e) => t.call(n, e), null, i)));
      }),
      (e.reduce = s),
      (e.snapshot = a),
      (e.debounce = u),
      (e.stopwatch = function (e) {
        const i = new Date().getTime();
        return n(t(e), (e) => new Date().getTime() - i);
      }),
      (e.latch = d),
      (e.buffer = function (e, t = !1, n = []) {
        let i = n.slice(),
          r = e((e) => {
            i ? i.push(e) : o.fire(e);
          });
        const s = () => {
            i && i.forEach((e) => o.fire(e)), (i = null);
          },
          o = new st({
            onFirstListenerAdd() {
              r || (r = e((e) => o.fire(e)));
            },
            onFirstListenerDidAdd() {
              i && (t ? setTimeout(s) : s());
            },
            onLastListenerRemove() {
              r && r.dispose(), (r = null);
            },
          });
        return o.event;
      });
    class c {
      constructor(e) {
        this.event = e;
      }
      map(e) {
        return new c(n(this.event, e));
      }
      forEach(e) {
        return new c(i(this.event, e));
      }
      filter(e) {
        return new c(r(this.event, e));
      }
      reduce(e, t) {
        return new c(s(this.event, e, t));
      }
      latch() {
        return new c(d(this.event));
      }
      debounce(e, t = 100, n = !1, i) {
        return new c(u(this.event, e, t, n, i));
      }
      on(e, t, n) {
        return this.event(e, t, n);
      }
      once(e, n, i) {
        return t(this.event)(e, n, i);
      }
    }
    (e.chain = function (e) {
      return new c(e);
    }),
      (e.fromNodeEventEmitter = function (e, t, n = (e) => e) {
        const i = (...e) => r.fire(n(...e)),
          r = new st({
            onFirstListenerAdd: () => e.on(t, i),
            onLastListenerRemove: () => e.removeListener(t, i),
          });
        return r.event;
      }),
      (e.fromDOMEventEmitter = function (e, t, n = (e) => e) {
        const i = (...e) => r.fire(n(...e)),
          r = new st({
            onFirstListenerAdd: () => e.addEventListener(t, i),
            onLastListenerRemove: () => e.removeEventListener(t, i),
          });
        return r.event;
      }),
      (e.fromPromise = function (e) {
        const t = new st();
        let n = !1;
        return (
          e
            .then(void 0, () => null)
            .then(() => {
              n ? t.fire(void 0) : setTimeout(() => t.fire(void 0), 0);
            }),
          (n = !0),
          t.event
        );
      }),
      (e.toPromise = function (e) {
        return new Promise((n) => t(e)(n));
      });
  })(rt || (rt = {}));
  class st {
    constructor(e) {
      (this._disposed = !1), (this._options = e), (this._leakageMon = void 0);
    }
    get event() {
      return (
        this._event ||
          (this._event = (e, t, n) => {
            this._listeners || (this._listeners = new it());
            const i = this._listeners.isEmpty();
            i &&
              this._options &&
              this._options.onFirstListenerAdd &&
              this._options.onFirstListenerAdd(this);
            const r = this._listeners.push(t ? [e, t] : e);
            let s, o;
            return (
              i &&
                this._options &&
                this._options.onFirstListenerDidAdd &&
                this._options.onFirstListenerDidAdd(this),
              this._options &&
                this._options.onListenerDidAdd &&
                this._options.onListenerDidAdd(this, e, t),
              this._leakageMon &&
                (s = this._leakageMon.check(this._listeners.size)),
              (o = {
                dispose: () => {
                  s && s(),
                    (o.dispose = st._noop),
                    !this._disposed &&
                      (r(),
                      this._options && this._options.onLastListenerRemove) &&
                      ((this._listeners && !this._listeners.isEmpty()) ||
                        this._options.onLastListenerRemove(this));
                },
              }),
              n instanceof u ? n.add(o) : Array.isArray(n) && n.push(o),
              o
            );
          }),
        this._event
      );
    }
    fire(e) {
      if (this._listeners) {
        this._deliveryQueue || (this._deliveryQueue = new it());
        for (let t of this._listeners) this._deliveryQueue.push([t, e]);
        for (; this._deliveryQueue.size > 0; ) {
          const [e, t] = this._deliveryQueue.shift();
          try {
            'function' == typeof e ? e.call(void 0, t) : e[0].call(e[1], t);
          } catch (e) {
            n(e);
          }
        }
      }
    }
    dispose() {
      this._listeners && this._listeners.clear(),
        this._deliveryQueue && this._deliveryQueue.clear(),
        this._leakageMon && this._leakageMon.dispose(),
        (this._disposed = !0);
    }
  }
  st._noop = function () {};
  const ot = Object.freeze(function (e, t) {
    const n = setTimeout(e.bind(t), 0);
    return {
      dispose() {
        clearTimeout(n);
      },
    };
  });
  var at;
  !(function (e) {
    (e.isCancellationToken = function (t) {
      return (
        t === e.None ||
        t === e.Cancelled ||
        t instanceof lt ||
        (!(!t || 'object' != typeof t) &&
          'boolean' == typeof t.isCancellationRequested &&
          'function' == typeof t.onCancellationRequested)
      );
    }),
      (e.None = Object.freeze({
        isCancellationRequested: !1,
        onCancellationRequested: rt.None,
      })),
      (e.Cancelled = Object.freeze({
        isCancellationRequested: !0,
        onCancellationRequested: ot,
      }));
  })(at || (at = {}));
  class lt {
    constructor() {
      (this._isCancelled = !1), (this._emitter = null);
    }
    cancel() {
      this._isCancelled ||
        ((this._isCancelled = !0),
        this._emitter && (this._emitter.fire(void 0), this.dispose()));
    }
    get isCancellationRequested() {
      return this._isCancelled;
    }
    get onCancellationRequested() {
      return this._isCancelled
        ? ot
        : (this._emitter || (this._emitter = new st()), this._emitter.event);
    }
    dispose() {
      this._emitter && (this._emitter.dispose(), (this._emitter = null));
    }
  }
  class ut {
    constructor() {
      (this._keyCodeToStr = []), (this._strToKeyCode = Object.create(null));
    }
    define(e, t) {
      (this._keyCodeToStr[e] = t), (this._strToKeyCode[t.toLowerCase()] = e);
    }
    keyCodeToStr(e) {
      return this._keyCodeToStr[e];
    }
    strToKeyCode(e) {
      return this._strToKeyCode[e.toLowerCase()] || 0;
    }
  }
  const ht = new ut(),
    dt = new ut(),
    ct = new ut();
  var ft,
    mt,
    gt,
    _t,
    pt,
    Ct,
    bt,
    Lt,
    Nt,
    St,
    Et,
    At,
    yt,
    wt,
    vt,
    Tt,
    Ot,
    It,
    Mt,
    xt,
    Rt,
    Pt,
    Ut,
    kt,
    Dt,
    Ft,
    Kt,
    Bt,
    Wt,
    qt,
    Ht,
    Vt,
    Yt,
    $t;
  !(function () {
    function e(e, t, n = t, i = n) {
      ht.define(e, t), dt.define(e, n), ct.define(e, i);
    }
    e(0, 'unknown'),
      e(1, 'Backspace'),
      e(2, 'Tab'),
      e(3, 'Enter'),
      e(4, 'Shift'),
      e(5, 'Ctrl'),
      e(6, 'Alt'),
      e(7, 'PauseBreak'),
      e(8, 'CapsLock'),
      e(9, 'Escape'),
      e(10, 'Space'),
      e(11, 'PageUp'),
      e(12, 'PageDown'),
      e(13, 'End'),
      e(14, 'Home'),
      e(15, 'LeftArrow', 'Left'),
      e(16, 'UpArrow', 'Up'),
      e(17, 'RightArrow', 'Right'),
      e(18, 'DownArrow', 'Down'),
      e(19, 'Insert'),
      e(20, 'Delete'),
      e(21, '0'),
      e(22, '1'),
      e(23, '2'),
      e(24, '3'),
      e(25, '4'),
      e(26, '5'),
      e(27, '6'),
      e(28, '7'),
      e(29, '8'),
      e(30, '9'),
      e(31, 'A'),
      e(32, 'B'),
      e(33, 'C'),
      e(34, 'D'),
      e(35, 'E'),
      e(36, 'F'),
      e(37, 'G'),
      e(38, 'H'),
      e(39, 'I'),
      e(40, 'J'),
      e(41, 'K'),
      e(42, 'L'),
      e(43, 'M'),
      e(44, 'N'),
      e(45, 'O'),
      e(46, 'P'),
      e(47, 'Q'),
      e(48, 'R'),
      e(49, 'S'),
      e(50, 'T'),
      e(51, 'U'),
      e(52, 'V'),
      e(53, 'W'),
      e(54, 'X'),
      e(55, 'Y'),
      e(56, 'Z'),
      e(57, 'Meta'),
      e(58, 'ContextMenu'),
      e(59, 'F1'),
      e(60, 'F2'),
      e(61, 'F3'),
      e(62, 'F4'),
      e(63, 'F5'),
      e(64, 'F6'),
      e(65, 'F7'),
      e(66, 'F8'),
      e(67, 'F9'),
      e(68, 'F10'),
      e(69, 'F11'),
      e(70, 'F12'),
      e(71, 'F13'),
      e(72, 'F14'),
      e(73, 'F15'),
      e(74, 'F16'),
      e(75, 'F17'),
      e(76, 'F18'),
      e(77, 'F19'),
      e(78, 'NumLock'),
      e(79, 'ScrollLock'),
      e(80, ';', ';', 'OEM_1'),
      e(81, '=', '=', 'OEM_PLUS'),
      e(82, ',', ',', 'OEM_COMMA'),
      e(83, '-', '-', 'OEM_MINUS'),
      e(84, '.', '.', 'OEM_PERIOD'),
      e(85, '/', '/', 'OEM_2'),
      e(86, '`', '`', 'OEM_3'),
      e(110, 'ABNT_C1'),
      e(111, 'ABNT_C2'),
      e(87, '[', '[', 'OEM_4'),
      e(88, '\\', '\\', 'OEM_5'),
      e(89, ']', ']', 'OEM_6'),
      e(90, "'", "'", 'OEM_7'),
      e(91, 'OEM_8'),
      e(92, 'OEM_102'),
      e(93, 'NumPad0'),
      e(94, 'NumPad1'),
      e(95, 'NumPad2'),
      e(96, 'NumPad3'),
      e(97, 'NumPad4'),
      e(98, 'NumPad5'),
      e(99, 'NumPad6'),
      e(100, 'NumPad7'),
      e(101, 'NumPad8'),
      e(102, 'NumPad9'),
      e(103, 'NumPad_Multiply'),
      e(104, 'NumPad_Add'),
      e(105, 'NumPad_Separator'),
      e(106, 'NumPad_Subtract'),
      e(107, 'NumPad_Decimal'),
      e(108, 'NumPad_Divide');
  })(),
    (function (e) {
      (e.toString = function (e) {
        return ht.keyCodeToStr(e);
      }),
        (e.fromString = function (e) {
          return ht.strToKeyCode(e);
        }),
        (e.toUserSettingsUS = function (e) {
          return dt.keyCodeToStr(e);
        }),
        (e.toUserSettingsGeneral = function (e) {
          return ct.keyCodeToStr(e);
        }),
        (e.fromUserSettings = function (e) {
          return dt.strToKeyCode(e) || ct.strToKeyCode(e);
        });
    })(ft || (ft = {}));
  class jt extends Me {
    constructor(e, t, n, i) {
      super(e, t, n, i),
        (this.selectionStartLineNumber = e),
        (this.selectionStartColumn = t),
        (this.positionLineNumber = n),
        (this.positionColumn = i);
    }
    toString() {
      return (
        '[' +
        this.selectionStartLineNumber +
        ',' +
        this.selectionStartColumn +
        ' -> ' +
        this.positionLineNumber +
        ',' +
        this.positionColumn +
        ']'
      );
    }
    equalsSelection(e) {
      return jt.selectionsEqual(this, e);
    }
    static selectionsEqual(e, t) {
      return (
        e.selectionStartLineNumber === t.selectionStartLineNumber &&
        e.selectionStartColumn === t.selectionStartColumn &&
        e.positionLineNumber === t.positionLineNumber &&
        e.positionColumn === t.positionColumn
      );
    }
    getDirection() {
      return this.selectionStartLineNumber === this.startLineNumber &&
        this.selectionStartColumn === this.startColumn
        ? 0
        : 1;
    }
    setEndPosition(e, t) {
      return 0 === this.getDirection()
        ? new jt(this.startLineNumber, this.startColumn, e, t)
        : new jt(e, t, this.startLineNumber, this.startColumn);
    }
    getPosition() {
      return new Ie(this.positionLineNumber, this.positionColumn);
    }
    setStartPosition(e, t) {
      return 0 === this.getDirection()
        ? new jt(e, t, this.endLineNumber, this.endColumn)
        : new jt(this.endLineNumber, this.endColumn, e, t);
    }
    static fromPositions(e, t = e) {
      return new jt(e.lineNumber, e.column, t.lineNumber, t.column);
    }
    static liftSelection(e) {
      return new jt(
        e.selectionStartLineNumber,
        e.selectionStartColumn,
        e.positionLineNumber,
        e.positionColumn
      );
    }
    static selectionsArrEqual(e, t) {
      if ((e && !t) || (!e && t)) return !1;
      if (!e && !t) return !0;
      if (e.length !== t.length) return !1;
      for (let n = 0, i = e.length; n < i; n++)
        if (!this.selectionsEqual(e[n], t[n])) return !1;
      return !0;
    }
    static isISelection(e) {
      return (
        e &&
        'number' == typeof e.selectionStartLineNumber &&
        'number' == typeof e.selectionStartColumn &&
        'number' == typeof e.positionLineNumber &&
        'number' == typeof e.positionColumn
      );
    }
    static createWithDirection(e, t, n, i, r) {
      return 0 === r ? new jt(e, t, n, i) : new jt(n, i, e, t);
    }
  }
  !(function (e) {
    (e[(e.Unknown = 0)] = 'Unknown'),
      (e[(e.Disabled = 1)] = 'Disabled'),
      (e[(e.Enabled = 2)] = 'Enabled');
  })(mt || (mt = {})),
    (function (e) {
      (e[(e.KeepWhitespace = 1)] = 'KeepWhitespace'),
        (e[(e.InsertAsSnippet = 4)] = 'InsertAsSnippet');
    })(gt || (gt = {})),
    (function (e) {
      (e[(e.Method = 0)] = 'Method'),
        (e[(e.Function = 1)] = 'Function'),
        (e[(e.Constructor = 2)] = 'Constructor'),
        (e[(e.Field = 3)] = 'Field'),
        (e[(e.Variable = 4)] = 'Variable'),
        (e[(e.Class = 5)] = 'Class'),
        (e[(e.Struct = 6)] = 'Struct'),
        (e[(e.Interface = 7)] = 'Interface'),
        (e[(e.Module = 8)] = 'Module'),
        (e[(e.Property = 9)] = 'Property'),
        (e[(e.Event = 10)] = 'Event'),
        (e[(e.Operator = 11)] = 'Operator'),
        (e[(e.Unit = 12)] = 'Unit'),
        (e[(e.Value = 13)] = 'Value'),
        (e[(e.Constant = 14)] = 'Constant'),
        (e[(e.Enum = 15)] = 'Enum'),
        (e[(e.EnumMember = 16)] = 'EnumMember'),
        (e[(e.Keyword = 17)] = 'Keyword'),
        (e[(e.Text = 18)] = 'Text'),
        (e[(e.Color = 19)] = 'Color'),
        (e[(e.File = 20)] = 'File'),
        (e[(e.Reference = 21)] = 'Reference'),
        (e[(e.Customcolor = 22)] = 'Customcolor'),
        (e[(e.Folder = 23)] = 'Folder'),
        (e[(e.TypeParameter = 24)] = 'TypeParameter'),
        (e[(e.User = 25)] = 'User'),
        (e[(e.Issue = 26)] = 'Issue'),
        (e[(e.Snippet = 27)] = 'Snippet');
    })(_t || (_t = {})),
    (function (e) {
      e[(e.Deprecated = 1)] = 'Deprecated';
    })(pt || (pt = {})),
    (function (e) {
      (e[(e.Invoke = 0)] = 'Invoke'),
        (e[(e.TriggerCharacter = 1)] = 'TriggerCharacter'),
        (e[(e.TriggerForIncompleteCompletions = 2)] =
          'TriggerForIncompleteCompletions');
    })(Ct || (Ct = {})),
    (function (e) {
      (e[(e.EXACT = 0)] = 'EXACT'),
        (e[(e.ABOVE = 1)] = 'ABOVE'),
        (e[(e.BELOW = 2)] = 'BELOW');
    })(bt || (bt = {})),
    (function (e) {
      (e[(e.NotSet = 0)] = 'NotSet'),
        (e[(e.ContentFlush = 1)] = 'ContentFlush'),
        (e[(e.RecoverFromMarkers = 2)] = 'RecoverFromMarkers'),
        (e[(e.Explicit = 3)] = 'Explicit'),
        (e[(e.Paste = 4)] = 'Paste'),
        (e[(e.Undo = 5)] = 'Undo'),
        (e[(e.Redo = 6)] = 'Redo');
    })(Lt || (Lt = {})),
    (function (e) {
      (e[(e.LF = 1)] = 'LF'), (e[(e.CRLF = 2)] = 'CRLF');
    })(Nt || (Nt = {})),
    (function (e) {
      (e[(e.Text = 0)] = 'Text'),
        (e[(e.Read = 1)] = 'Read'),
        (e[(e.Write = 2)] = 'Write');
    })(St || (St = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Keep = 1)] = 'Keep'),
        (e[(e.Brackets = 2)] = 'Brackets'),
        (e[(e.Advanced = 3)] = 'Advanced'),
        (e[(e.Full = 4)] = 'Full');
    })(Et || (Et = {})),
    (function (e) {
      (e[(e.acceptSuggestionOnCommitCharacter = 0)] =
        'acceptSuggestionOnCommitCharacter'),
        (e[(e.acceptSuggestionOnEnter = 1)] = 'acceptSuggestionOnEnter'),
        (e[(e.accessibilitySupport = 2)] = 'accessibilitySupport'),
        (e[(e.accessibilityPageSize = 3)] = 'accessibilityPageSize'),
        (e[(e.ariaLabel = 4)] = 'ariaLabel'),
        (e[(e.autoClosingBrackets = 5)] = 'autoClosingBrackets'),
        (e[(e.autoClosingOvertype = 6)] = 'autoClosingOvertype'),
        (e[(e.autoClosingQuotes = 7)] = 'autoClosingQuotes'),
        (e[(e.autoIndent = 8)] = 'autoIndent'),
        (e[(e.automaticLayout = 9)] = 'automaticLayout'),
        (e[(e.autoSurround = 10)] = 'autoSurround'),
        (e[(e.codeLens = 11)] = 'codeLens'),
        (e[(e.colorDecorators = 12)] = 'colorDecorators'),
        (e[(e.columnSelection = 13)] = 'columnSelection'),
        (e[(e.comments = 14)] = 'comments'),
        (e[(e.contextmenu = 15)] = 'contextmenu'),
        (e[(e.copyWithSyntaxHighlighting = 16)] = 'copyWithSyntaxHighlighting'),
        (e[(e.cursorBlinking = 17)] = 'cursorBlinking'),
        (e[(e.cursorSmoothCaretAnimation = 18)] = 'cursorSmoothCaretAnimation'),
        (e[(e.cursorStyle = 19)] = 'cursorStyle'),
        (e[(e.cursorSurroundingLines = 20)] = 'cursorSurroundingLines'),
        (e[(e.cursorSurroundingLinesStyle = 21)] =
          'cursorSurroundingLinesStyle'),
        (e[(e.cursorWidth = 22)] = 'cursorWidth'),
        (e[(e.disableLayerHinting = 23)] = 'disableLayerHinting'),
        (e[(e.disableMonospaceOptimizations = 24)] =
          'disableMonospaceOptimizations'),
        (e[(e.dragAndDrop = 25)] = 'dragAndDrop'),
        (e[(e.emptySelectionClipboard = 26)] = 'emptySelectionClipboard'),
        (e[(e.extraEditorClassName = 27)] = 'extraEditorClassName'),
        (e[(e.fastScrollSensitivity = 28)] = 'fastScrollSensitivity'),
        (e[(e.find = 29)] = 'find'),
        (e[(e.fixedOverflowWidgets = 30)] = 'fixedOverflowWidgets'),
        (e[(e.folding = 31)] = 'folding'),
        (e[(e.foldingStrategy = 32)] = 'foldingStrategy'),
        (e[(e.foldingHighlight = 33)] = 'foldingHighlight'),
        (e[(e.unfoldOnClickAfterEndOfLine = 34)] =
          'unfoldOnClickAfterEndOfLine'),
        (e[(e.fontFamily = 35)] = 'fontFamily'),
        (e[(e.fontInfo = 36)] = 'fontInfo'),
        (e[(e.fontLigatures = 37)] = 'fontLigatures'),
        (e[(e.fontSize = 38)] = 'fontSize'),
        (e[(e.fontWeight = 39)] = 'fontWeight'),
        (e[(e.formatOnPaste = 40)] = 'formatOnPaste'),
        (e[(e.formatOnType = 41)] = 'formatOnType'),
        (e[(e.glyphMargin = 42)] = 'glyphMargin'),
        (e[(e.gotoLocation = 43)] = 'gotoLocation'),
        (e[(e.hideCursorInOverviewRuler = 44)] = 'hideCursorInOverviewRuler'),
        (e[(e.highlightActiveIndentGuide = 45)] = 'highlightActiveIndentGuide'),
        (e[(e.hover = 46)] = 'hover'),
        (e[(e.inDiffEditor = 47)] = 'inDiffEditor'),
        (e[(e.letterSpacing = 48)] = 'letterSpacing'),
        (e[(e.lightbulb = 49)] = 'lightbulb'),
        (e[(e.lineDecorationsWidth = 50)] = 'lineDecorationsWidth'),
        (e[(e.lineHeight = 51)] = 'lineHeight'),
        (e[(e.lineNumbers = 52)] = 'lineNumbers'),
        (e[(e.lineNumbersMinChars = 53)] = 'lineNumbersMinChars'),
        (e[(e.links = 54)] = 'links'),
        (e[(e.matchBrackets = 55)] = 'matchBrackets'),
        (e[(e.minimap = 56)] = 'minimap'),
        (e[(e.mouseStyle = 57)] = 'mouseStyle'),
        (e[(e.mouseWheelScrollSensitivity = 58)] =
          'mouseWheelScrollSensitivity'),
        (e[(e.mouseWheelZoom = 59)] = 'mouseWheelZoom'),
        (e[(e.multiCursorMergeOverlapping = 60)] =
          'multiCursorMergeOverlapping'),
        (e[(e.multiCursorModifier = 61)] = 'multiCursorModifier'),
        (e[(e.multiCursorPaste = 62)] = 'multiCursorPaste'),
        (e[(e.occurrencesHighlight = 63)] = 'occurrencesHighlight'),
        (e[(e.overviewRulerBorder = 64)] = 'overviewRulerBorder'),
        (e[(e.overviewRulerLanes = 65)] = 'overviewRulerLanes'),
        (e[(e.padding = 66)] = 'padding'),
        (e[(e.parameterHints = 67)] = 'parameterHints'),
        (e[(e.peekWidgetDefaultFocus = 68)] = 'peekWidgetDefaultFocus'),
        (e[(e.definitionLinkOpensInPeek = 69)] = 'definitionLinkOpensInPeek'),
        (e[(e.quickSuggestions = 70)] = 'quickSuggestions'),
        (e[(e.quickSuggestionsDelay = 71)] = 'quickSuggestionsDelay'),
        (e[(e.readOnly = 72)] = 'readOnly'),
        (e[(e.renameOnType = 73)] = 'renameOnType'),
        (e[(e.renderControlCharacters = 74)] = 'renderControlCharacters'),
        (e[(e.renderIndentGuides = 75)] = 'renderIndentGuides'),
        (e[(e.renderFinalNewline = 76)] = 'renderFinalNewline'),
        (e[(e.renderLineHighlight = 77)] = 'renderLineHighlight'),
        (e[(e.renderLineHighlightOnlyWhenFocus = 78)] =
          'renderLineHighlightOnlyWhenFocus'),
        (e[(e.renderValidationDecorations = 79)] =
          'renderValidationDecorations'),
        (e[(e.renderWhitespace = 80)] = 'renderWhitespace'),
        (e[(e.revealHorizontalRightPadding = 81)] =
          'revealHorizontalRightPadding'),
        (e[(e.roundedSelection = 82)] = 'roundedSelection'),
        (e[(e.rulers = 83)] = 'rulers'),
        (e[(e.scrollbar = 84)] = 'scrollbar'),
        (e[(e.scrollBeyondLastColumn = 85)] = 'scrollBeyondLastColumn'),
        (e[(e.scrollBeyondLastLine = 86)] = 'scrollBeyondLastLine'),
        (e[(e.scrollPredominantAxis = 87)] = 'scrollPredominantAxis'),
        (e[(e.selectionClipboard = 88)] = 'selectionClipboard'),
        (e[(e.selectionHighlight = 89)] = 'selectionHighlight'),
        (e[(e.selectOnLineNumbers = 90)] = 'selectOnLineNumbers'),
        (e[(e.showFoldingControls = 91)] = 'showFoldingControls'),
        (e[(e.showUnused = 92)] = 'showUnused'),
        (e[(e.snippetSuggestions = 93)] = 'snippetSuggestions'),
        (e[(e.smoothScrolling = 94)] = 'smoothScrolling'),
        (e[(e.stopRenderingLineAfter = 95)] = 'stopRenderingLineAfter'),
        (e[(e.suggest = 96)] = 'suggest'),
        (e[(e.suggestFontSize = 97)] = 'suggestFontSize'),
        (e[(e.suggestLineHeight = 98)] = 'suggestLineHeight'),
        (e[(e.suggestOnTriggerCharacters = 99)] = 'suggestOnTriggerCharacters'),
        (e[(e.suggestSelection = 100)] = 'suggestSelection'),
        (e[(e.tabCompletion = 101)] = 'tabCompletion'),
        (e[(e.tabIndex = 102)] = 'tabIndex'),
        (e[(e.unusualLineTerminators = 103)] = 'unusualLineTerminators'),
        (e[(e.useTabStops = 104)] = 'useTabStops'),
        (e[(e.wordSeparators = 105)] = 'wordSeparators'),
        (e[(e.wordWrap = 106)] = 'wordWrap'),
        (e[(e.wordWrapBreakAfterCharacters = 107)] =
          'wordWrapBreakAfterCharacters'),
        (e[(e.wordWrapBreakBeforeCharacters = 108)] =
          'wordWrapBreakBeforeCharacters'),
        (e[(e.wordWrapColumn = 109)] = 'wordWrapColumn'),
        (e[(e.wordWrapMinified = 110)] = 'wordWrapMinified'),
        (e[(e.wrappingIndent = 111)] = 'wrappingIndent'),
        (e[(e.wrappingStrategy = 112)] = 'wrappingStrategy'),
        (e[(e.showDeprecated = 113)] = 'showDeprecated'),
        (e[(e.editorClassName = 114)] = 'editorClassName'),
        (e[(e.pixelRatio = 115)] = 'pixelRatio'),
        (e[(e.tabFocusMode = 116)] = 'tabFocusMode'),
        (e[(e.layoutInfo = 117)] = 'layoutInfo'),
        (e[(e.wrappingInfo = 118)] = 'wrappingInfo');
    })(At || (At = {})),
    (function (e) {
      (e[(e.TextDefined = 0)] = 'TextDefined'),
        (e[(e.LF = 1)] = 'LF'),
        (e[(e.CRLF = 2)] = 'CRLF');
    })(yt || (yt = {})),
    (function (e) {
      (e[(e.LF = 0)] = 'LF'), (e[(e.CRLF = 1)] = 'CRLF');
    })(wt || (wt = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Indent = 1)] = 'Indent'),
        (e[(e.IndentOutdent = 2)] = 'IndentOutdent'),
        (e[(e.Outdent = 3)] = 'Outdent');
    })(vt || (vt = {})),
    (function (e) {
      (e[(e.Unknown = 0)] = 'Unknown'),
        (e[(e.Backspace = 1)] = 'Backspace'),
        (e[(e.Tab = 2)] = 'Tab'),
        (e[(e.Enter = 3)] = 'Enter'),
        (e[(e.Shift = 4)] = 'Shift'),
        (e[(e.Ctrl = 5)] = 'Ctrl'),
        (e[(e.Alt = 6)] = 'Alt'),
        (e[(e.PauseBreak = 7)] = 'PauseBreak'),
        (e[(e.CapsLock = 8)] = 'CapsLock'),
        (e[(e.Escape = 9)] = 'Escape'),
        (e[(e.Space = 10)] = 'Space'),
        (e[(e.PageUp = 11)] = 'PageUp'),
        (e[(e.PageDown = 12)] = 'PageDown'),
        (e[(e.End = 13)] = 'End'),
        (e[(e.Home = 14)] = 'Home'),
        (e[(e.LeftArrow = 15)] = 'LeftArrow'),
        (e[(e.UpArrow = 16)] = 'UpArrow'),
        (e[(e.RightArrow = 17)] = 'RightArrow'),
        (e[(e.DownArrow = 18)] = 'DownArrow'),
        (e[(e.Insert = 19)] = 'Insert'),
        (e[(e.Delete = 20)] = 'Delete'),
        (e[(e.KEY_0 = 21)] = 'KEY_0'),
        (e[(e.KEY_1 = 22)] = 'KEY_1'),
        (e[(e.KEY_2 = 23)] = 'KEY_2'),
        (e[(e.KEY_3 = 24)] = 'KEY_3'),
        (e[(e.KEY_4 = 25)] = 'KEY_4'),
        (e[(e.KEY_5 = 26)] = 'KEY_5'),
        (e[(e.KEY_6 = 27)] = 'KEY_6'),
        (e[(e.KEY_7 = 28)] = 'KEY_7'),
        (e[(e.KEY_8 = 29)] = 'KEY_8'),
        (e[(e.KEY_9 = 30)] = 'KEY_9'),
        (e[(e.KEY_A = 31)] = 'KEY_A'),
        (e[(e.KEY_B = 32)] = 'KEY_B'),
        (e[(e.KEY_C = 33)] = 'KEY_C'),
        (e[(e.KEY_D = 34)] = 'KEY_D'),
        (e[(e.KEY_E = 35)] = 'KEY_E'),
        (e[(e.KEY_F = 36)] = 'KEY_F'),
        (e[(e.KEY_G = 37)] = 'KEY_G'),
        (e[(e.KEY_H = 38)] = 'KEY_H'),
        (e[(e.KEY_I = 39)] = 'KEY_I'),
        (e[(e.KEY_J = 40)] = 'KEY_J'),
        (e[(e.KEY_K = 41)] = 'KEY_K'),
        (e[(e.KEY_L = 42)] = 'KEY_L'),
        (e[(e.KEY_M = 43)] = 'KEY_M'),
        (e[(e.KEY_N = 44)] = 'KEY_N'),
        (e[(e.KEY_O = 45)] = 'KEY_O'),
        (e[(e.KEY_P = 46)] = 'KEY_P'),
        (e[(e.KEY_Q = 47)] = 'KEY_Q'),
        (e[(e.KEY_R = 48)] = 'KEY_R'),
        (e[(e.KEY_S = 49)] = 'KEY_S'),
        (e[(e.KEY_T = 50)] = 'KEY_T'),
        (e[(e.KEY_U = 51)] = 'KEY_U'),
        (e[(e.KEY_V = 52)] = 'KEY_V'),
        (e[(e.KEY_W = 53)] = 'KEY_W'),
        (e[(e.KEY_X = 54)] = 'KEY_X'),
        (e[(e.KEY_Y = 55)] = 'KEY_Y'),
        (e[(e.KEY_Z = 56)] = 'KEY_Z'),
        (e[(e.Meta = 57)] = 'Meta'),
        (e[(e.ContextMenu = 58)] = 'ContextMenu'),
        (e[(e.F1 = 59)] = 'F1'),
        (e[(e.F2 = 60)] = 'F2'),
        (e[(e.F3 = 61)] = 'F3'),
        (e[(e.F4 = 62)] = 'F4'),
        (e[(e.F5 = 63)] = 'F5'),
        (e[(e.F6 = 64)] = 'F6'),
        (e[(e.F7 = 65)] = 'F7'),
        (e[(e.F8 = 66)] = 'F8'),
        (e[(e.F9 = 67)] = 'F9'),
        (e[(e.F10 = 68)] = 'F10'),
        (e[(e.F11 = 69)] = 'F11'),
        (e[(e.F12 = 70)] = 'F12'),
        (e[(e.F13 = 71)] = 'F13'),
        (e[(e.F14 = 72)] = 'F14'),
        (e[(e.F15 = 73)] = 'F15'),
        (e[(e.F16 = 74)] = 'F16'),
        (e[(e.F17 = 75)] = 'F17'),
        (e[(e.F18 = 76)] = 'F18'),
        (e[(e.F19 = 77)] = 'F19'),
        (e[(e.NumLock = 78)] = 'NumLock'),
        (e[(e.ScrollLock = 79)] = 'ScrollLock'),
        (e[(e.US_SEMICOLON = 80)] = 'US_SEMICOLON'),
        (e[(e.US_EQUAL = 81)] = 'US_EQUAL'),
        (e[(e.US_COMMA = 82)] = 'US_COMMA'),
        (e[(e.US_MINUS = 83)] = 'US_MINUS'),
        (e[(e.US_DOT = 84)] = 'US_DOT'),
        (e[(e.US_SLASH = 85)] = 'US_SLASH'),
        (e[(e.US_BACKTICK = 86)] = 'US_BACKTICK'),
        (e[(e.US_OPEN_SQUARE_BRACKET = 87)] = 'US_OPEN_SQUARE_BRACKET'),
        (e[(e.US_BACKSLASH = 88)] = 'US_BACKSLASH'),
        (e[(e.US_CLOSE_SQUARE_BRACKET = 89)] = 'US_CLOSE_SQUARE_BRACKET'),
        (e[(e.US_QUOTE = 90)] = 'US_QUOTE'),
        (e[(e.OEM_8 = 91)] = 'OEM_8'),
        (e[(e.OEM_102 = 92)] = 'OEM_102'),
        (e[(e.NUMPAD_0 = 93)] = 'NUMPAD_0'),
        (e[(e.NUMPAD_1 = 94)] = 'NUMPAD_1'),
        (e[(e.NUMPAD_2 = 95)] = 'NUMPAD_2'),
        (e[(e.NUMPAD_3 = 96)] = 'NUMPAD_3'),
        (e[(e.NUMPAD_4 = 97)] = 'NUMPAD_4'),
        (e[(e.NUMPAD_5 = 98)] = 'NUMPAD_5'),
        (e[(e.NUMPAD_6 = 99)] = 'NUMPAD_6'),
        (e[(e.NUMPAD_7 = 100)] = 'NUMPAD_7'),
        (e[(e.NUMPAD_8 = 101)] = 'NUMPAD_8'),
        (e[(e.NUMPAD_9 = 102)] = 'NUMPAD_9'),
        (e[(e.NUMPAD_MULTIPLY = 103)] = 'NUMPAD_MULTIPLY'),
        (e[(e.NUMPAD_ADD = 104)] = 'NUMPAD_ADD'),
        (e[(e.NUMPAD_SEPARATOR = 105)] = 'NUMPAD_SEPARATOR'),
        (e[(e.NUMPAD_SUBTRACT = 106)] = 'NUMPAD_SUBTRACT'),
        (e[(e.NUMPAD_DECIMAL = 107)] = 'NUMPAD_DECIMAL'),
        (e[(e.NUMPAD_DIVIDE = 108)] = 'NUMPAD_DIVIDE'),
        (e[(e.KEY_IN_COMPOSITION = 109)] = 'KEY_IN_COMPOSITION'),
        (e[(e.ABNT_C1 = 110)] = 'ABNT_C1'),
        (e[(e.ABNT_C2 = 111)] = 'ABNT_C2'),
        (e[(e.MAX_VALUE = 112)] = 'MAX_VALUE');
    })(Tt || (Tt = {})),
    (function (e) {
      (e[(e.Hint = 1)] = 'Hint'),
        (e[(e.Info = 2)] = 'Info'),
        (e[(e.Warning = 4)] = 'Warning'),
        (e[(e.Error = 8)] = 'Error');
    })(Ot || (Ot = {})),
    (function (e) {
      (e[(e.Unnecessary = 1)] = 'Unnecessary'),
        (e[(e.Deprecated = 2)] = 'Deprecated');
    })(It || (It = {})),
    (function (e) {
      (e[(e.Inline = 1)] = 'Inline'), (e[(e.Gutter = 2)] = 'Gutter');
    })(Mt || (Mt = {})),
    (function (e) {
      (e[(e.UNKNOWN = 0)] = 'UNKNOWN'),
        (e[(e.TEXTAREA = 1)] = 'TEXTAREA'),
        (e[(e.GUTTER_GLYPH_MARGIN = 2)] = 'GUTTER_GLYPH_MARGIN'),
        (e[(e.GUTTER_LINE_NUMBERS = 3)] = 'GUTTER_LINE_NUMBERS'),
        (e[(e.GUTTER_LINE_DECORATIONS = 4)] = 'GUTTER_LINE_DECORATIONS'),
        (e[(e.GUTTER_VIEW_ZONE = 5)] = 'GUTTER_VIEW_ZONE'),
        (e[(e.CONTENT_TEXT = 6)] = 'CONTENT_TEXT'),
        (e[(e.CONTENT_EMPTY = 7)] = 'CONTENT_EMPTY'),
        (e[(e.CONTENT_VIEW_ZONE = 8)] = 'CONTENT_VIEW_ZONE'),
        (e[(e.CONTENT_WIDGET = 9)] = 'CONTENT_WIDGET'),
        (e[(e.OVERVIEW_RULER = 10)] = 'OVERVIEW_RULER'),
        (e[(e.SCROLLBAR = 11)] = 'SCROLLBAR'),
        (e[(e.OVERLAY_WIDGET = 12)] = 'OVERLAY_WIDGET'),
        (e[(e.OUTSIDE_EDITOR = 13)] = 'OUTSIDE_EDITOR');
    })(xt || (xt = {})),
    (function (e) {
      (e[(e.TOP_RIGHT_CORNER = 0)] = 'TOP_RIGHT_CORNER'),
        (e[(e.BOTTOM_RIGHT_CORNER = 1)] = 'BOTTOM_RIGHT_CORNER'),
        (e[(e.TOP_CENTER = 2)] = 'TOP_CENTER');
    })(Rt || (Rt = {})),
    (function (e) {
      (e[(e.Left = 1)] = 'Left'),
        (e[(e.Center = 2)] = 'Center'),
        (e[(e.Right = 4)] = 'Right'),
        (e[(e.Full = 7)] = 'Full');
    })(Pt || (Pt = {})),
    (function (e) {
      (e[(e.Off = 0)] = 'Off'),
        (e[(e.On = 1)] = 'On'),
        (e[(e.Relative = 2)] = 'Relative'),
        (e[(e.Interval = 3)] = 'Interval'),
        (e[(e.Custom = 4)] = 'Custom');
    })(Ut || (Ut = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Text = 1)] = 'Text'),
        (e[(e.Blocks = 2)] = 'Blocks');
    })(kt || (kt = {})),
    (function (e) {
      (e[(e.Smooth = 0)] = 'Smooth'), (e[(e.Immediate = 1)] = 'Immediate');
    })(Dt || (Dt = {})),
    (function (e) {
      (e[(e.Auto = 1)] = 'Auto'),
        (e[(e.Hidden = 2)] = 'Hidden'),
        (e[(e.Visible = 3)] = 'Visible');
    })(Ft || (Ft = {})),
    (function (e) {
      (e[(e.LTR = 0)] = 'LTR'), (e[(e.RTL = 1)] = 'RTL');
    })(Kt || (Kt = {})),
    (function (e) {
      (e[(e.Invoke = 1)] = 'Invoke'),
        (e[(e.TriggerCharacter = 2)] = 'TriggerCharacter'),
        (e[(e.ContentChange = 3)] = 'ContentChange');
    })(Bt || (Bt = {})),
    (function (e) {
      (e[(e.File = 0)] = 'File'),
        (e[(e.Module = 1)] = 'Module'),
        (e[(e.Namespace = 2)] = 'Namespace'),
        (e[(e.Package = 3)] = 'Package'),
        (e[(e.Class = 4)] = 'Class'),
        (e[(e.Method = 5)] = 'Method'),
        (e[(e.Property = 6)] = 'Property'),
        (e[(e.Field = 7)] = 'Field'),
        (e[(e.Constructor = 8)] = 'Constructor'),
        (e[(e.Enum = 9)] = 'Enum'),
        (e[(e.Interface = 10)] = 'Interface'),
        (e[(e.Function = 11)] = 'Function'),
        (e[(e.Variable = 12)] = 'Variable'),
        (e[(e.Constant = 13)] = 'Constant'),
        (e[(e.String = 14)] = 'String'),
        (e[(e.Number = 15)] = 'Number'),
        (e[(e.Boolean = 16)] = 'Boolean'),
        (e[(e.Array = 17)] = 'Array'),
        (e[(e.Object = 18)] = 'Object'),
        (e[(e.Key = 19)] = 'Key'),
        (e[(e.Null = 20)] = 'Null'),
        (e[(e.EnumMember = 21)] = 'EnumMember'),
        (e[(e.Struct = 22)] = 'Struct'),
        (e[(e.Event = 23)] = 'Event'),
        (e[(e.Operator = 24)] = 'Operator'),
        (e[(e.TypeParameter = 25)] = 'TypeParameter');
    })(Wt || (Wt = {})),
    (function (e) {
      e[(e.Deprecated = 1)] = 'Deprecated';
    })(qt || (qt = {})),
    (function (e) {
      (e[(e.Hidden = 0)] = 'Hidden'),
        (e[(e.Blink = 1)] = 'Blink'),
        (e[(e.Smooth = 2)] = 'Smooth'),
        (e[(e.Phase = 3)] = 'Phase'),
        (e[(e.Expand = 4)] = 'Expand'),
        (e[(e.Solid = 5)] = 'Solid');
    })(Ht || (Ht = {})),
    (function (e) {
      (e[(e.Line = 1)] = 'Line'),
        (e[(e.Block = 2)] = 'Block'),
        (e[(e.Underline = 3)] = 'Underline'),
        (e[(e.LineThin = 4)] = 'LineThin'),
        (e[(e.BlockOutline = 5)] = 'BlockOutline'),
        (e[(e.UnderlineThin = 6)] = 'UnderlineThin');
    })(Vt || (Vt = {})),
    (function (e) {
      (e[(e.AlwaysGrowsWhenTypingAtEdges = 0)] =
        'AlwaysGrowsWhenTypingAtEdges'),
        (e[(e.NeverGrowsWhenTypingAtEdges = 1)] =
          'NeverGrowsWhenTypingAtEdges'),
        (e[(e.GrowsOnlyWhenTypingBefore = 2)] = 'GrowsOnlyWhenTypingBefore'),
        (e[(e.GrowsOnlyWhenTypingAfter = 3)] = 'GrowsOnlyWhenTypingAfter');
    })(Yt || (Yt = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Same = 1)] = 'Same'),
        (e[(e.Indent = 2)] = 'Indent'),
        (e[(e.DeepIndent = 3)] = 'DeepIndent');
    })($t || ($t = {}));
  class Gt {
    static chord(e, t) {
      return (function (e, t) {
        return (e | (((65535 & t) << 16) >>> 0)) >>> 0;
      })(e, t);
    }
  }
  (Gt.CtrlCmd = 2048), (Gt.Shift = 1024), (Gt.Alt = 512), (Gt.WinCtrl = 256);
  var zt = function (e, t, n, i) {
    return new (n || (n = Promise))(function (r, s) {
      function o(e) {
        try {
          l(i.next(e));
        } catch (e) {
          s(e);
        }
      }
      function a(e) {
        try {
          l(i.throw(e));
        } catch (e) {
          s(e);
        }
      }
      function l(e) {
        var t;
        e.done
          ? r(e.value)
          : ((t = e.value),
            t instanceof n
              ? t
              : new n(function (e) {
                  e(t);
                })).then(o, a);
      }
      l((i = i.apply(e, t || [])).next());
    });
  };
  class Qt extends class {
    constructor(e, t, n, i) {
      (this._uri = e),
        (this._lines = t),
        (this._eol = n),
        (this._versionId = i),
        (this._lineStarts = null),
        (this._cachedTextValue = null);
    }
    dispose() {
      this._lines.length = 0;
    }
    getText() {
      return (
        null === this._cachedTextValue &&
          (this._cachedTextValue = this._lines.join(this._eol)),
        this._cachedTextValue
      );
    }
    onEvents(e) {
      e.eol &&
        e.eol !== this._eol &&
        ((this._eol = e.eol), (this._lineStarts = null));
      const t = e.changes;
      for (const e of t)
        this._acceptDeleteRange(e.range),
          this._acceptInsertText(
            new Ie(e.range.startLineNumber, e.range.startColumn),
            e.text
          );
      (this._versionId = e.versionId), (this._cachedTextValue = null);
    }
    _ensureLineStarts() {
      if (!this._lineStarts) {
        const e = this._eol.length,
          t = this._lines.length,
          n = new Uint32Array(t);
        for (let i = 0; i < t; i++) n[i] = this._lines[i].length + e;
        this._lineStarts = new Ve(n);
      }
    }
    _setLineText(e, t) {
      (this._lines[e] = t),
        this._lineStarts &&
          this._lineStarts.changeValue(
            e,
            this._lines[e].length + this._eol.length
          );
    }
    _acceptDeleteRange(e) {
      if (e.startLineNumber !== e.endLineNumber)
        this._setLineText(
          e.startLineNumber - 1,
          this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) +
            this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)
        ),
          this._lines.splice(
            e.startLineNumber,
            e.endLineNumber - e.startLineNumber
          ),
          this._lineStarts &&
            this._lineStarts.removeValues(
              e.startLineNumber,
              e.endLineNumber - e.startLineNumber
            );
      else {
        if (e.startColumn === e.endColumn) return;
        this._setLineText(
          e.startLineNumber - 1,
          this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) +
            this._lines[e.startLineNumber - 1].substring(e.endColumn - 1)
        );
      }
    }
    _acceptInsertText(e, t) {
      if (0 === t.length) return;
      let n = t.split(/\r\n|\r|\n/);
      if (1 === n.length)
        return void this._setLineText(
          e.lineNumber - 1,
          this._lines[e.lineNumber - 1].substring(0, e.column - 1) +
            n[0] +
            this._lines[e.lineNumber - 1].substring(e.column - 1)
        );
      (n[n.length - 1] += this._lines[e.lineNumber - 1].substring(
        e.column - 1
      )),
        this._setLineText(
          e.lineNumber - 1,
          this._lines[e.lineNumber - 1].substring(0, e.column - 1) + n[0]
        );
      let i = new Uint32Array(n.length - 1);
      for (let t = 1; t < n.length; t++)
        this._lines.splice(e.lineNumber + t - 1, 0, n[t]),
          (i[t - 1] = n[t].length + this._eol.length);
      this._lineStarts && this._lineStarts.insertValues(e.lineNumber, i);
    }
  } {
    get uri() {
      return this._uri;
    }
    get version() {
      return this._versionId;
    }
    get eol() {
      return this._eol;
    }
    getValue() {
      return this.getText();
    }
    getLinesContent() {
      return this._lines.slice(0);
    }
    getLineCount() {
      return this._lines.length;
    }
    getLineContent(e) {
      return this._lines[e - 1];
    }
    getWordAtPosition(e, t) {
      let n = je(
        e.column,
        (function (e) {
          let t = Ye;
          if (e && e instanceof RegExp)
            if (e.global) t = e;
            else {
              let n = 'g';
              e.ignoreCase && (n += 'i'),
                e.multiline && (n += 'm'),
                e.unicode && (n += 'u'),
                (t = new RegExp(e.source, n));
            }
          return (t.lastIndex = 0), t;
        })(t),
        this._lines[e.lineNumber - 1],
        0
      );
      return n
        ? new Me(e.lineNumber, n.startColumn, e.lineNumber, n.endColumn)
        : null;
    }
    words(e) {
      const t = this._lines,
        n = this._wordenize.bind(this);
      let i = 0,
        r = '',
        s = 0,
        o = [];
      return {
        *[Symbol.iterator]() {
          for (;;)
            if (s < o.length) {
              const e = r.substring(o[s].start, o[s].end);
              (s += 1), yield e;
            } else {
              if (!(i < t.length)) break;
              (r = t[i]), (o = n(r, e)), (s = 0), (i += 1);
            }
        },
      };
    }
    getLineWords(e, t) {
      let n = this._lines[e - 1],
        i = this._wordenize(n, t),
        r = [];
      for (const e of i)
        r.push({
          word: n.substring(e.start, e.end),
          startColumn: e.start + 1,
          endColumn: e.end + 1,
        });
      return r;
    }
    _wordenize(e, t) {
      const n = [];
      let i;
      for (t.lastIndex = 0; (i = t.exec(e)) && 0 !== i[0].length; )
        n.push({ start: i.index, end: i.index + i[0].length });
      return n;
    }
    getValueInRange(e) {
      if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber)
        return this._lines[e.startLineNumber - 1].substring(
          e.startColumn - 1,
          e.endColumn - 1
        );
      let t = this._eol,
        n = e.startLineNumber - 1,
        i = e.endLineNumber - 1,
        r = [];
      r.push(this._lines[n].substring(e.startColumn - 1));
      for (let e = n + 1; e < i; e++) r.push(this._lines[e]);
      return r.push(this._lines[i].substring(0, e.endColumn - 1)), r.join(t);
    }
    offsetAt(e) {
      return (
        (e = this._validatePosition(e)),
        this._ensureLineStarts(),
        this._lineStarts.getAccumulatedValue(e.lineNumber - 2) + (e.column - 1)
      );
    }
    positionAt(e) {
      (e = Math.floor(e)), (e = Math.max(0, e)), this._ensureLineStarts();
      let t = this._lineStarts.getIndexOf(e),
        n = this._lines[t.index].length;
      return { lineNumber: 1 + t.index, column: 1 + Math.min(t.remainder, n) };
    }
    _validateRange(e) {
      const t = this._validatePosition({
          lineNumber: e.startLineNumber,
          column: e.startColumn,
        }),
        n = this._validatePosition({
          lineNumber: e.endLineNumber,
          column: e.endColumn,
        });
      return t.lineNumber !== e.startLineNumber ||
        t.column !== e.startColumn ||
        n.lineNumber !== e.endLineNumber ||
        n.column !== e.endColumn
        ? {
            startLineNumber: t.lineNumber,
            startColumn: t.column,
            endLineNumber: n.lineNumber,
            endColumn: n.column,
          }
        : e;
    }
    _validatePosition(e) {
      if (!Ie.isIPosition(e)) throw new Error('bad position');
      let { lineNumber: t, column: n } = e,
        i = !1;
      if (t < 1) (t = 1), (n = 1), (i = !0);
      else if (t > this._lines.length)
        (t = this._lines.length), (n = this._lines[t - 1].length + 1), (i = !0);
      else {
        let e = this._lines[t - 1].length + 1;
        n < 1 ? ((n = 1), (i = !0)) : n > e && ((n = e), (i = !0));
      }
      return i ? { lineNumber: t, column: n } : e;
    }
  }
  class Xt {
    constructor(e, t) {
      (this._host = e),
        (this._models = Object.create(null)),
        (this._foreignModuleFactory = t),
        (this._foreignModule = null);
    }
    dispose() {
      this._models = Object.create(null);
    }
    _getModel(e) {
      return this._models[e];
    }
    _getModels() {
      let e = [];
      return (
        Object.keys(this._models).forEach((t) => e.push(this._models[t])), e
      );
    }
    acceptNewModel(e) {
      this._models[e.url] = new Qt(
        be.parse(e.url),
        e.lines,
        e.EOL,
        e.versionId
      );
    }
    acceptModelChanged(e, t) {
      this._models[e] && this._models[e].onEvents(t);
    }
    acceptRemovedModel(e) {
      this._models[e] && delete this._models[e];
    }
    computeDiff(e, t, n, i) {
      return zt(this, void 0, void 0, function* () {
        const r = this._getModel(e),
          s = this._getModel(t);
        if (!r || !s) return null;
        const o = r.getLinesContent(),
          a = s.getLinesContent(),
          l = new De(o, a, {
            shouldComputeCharChanges: !0,
            shouldPostProcessCharChanges: !0,
            shouldIgnoreTrimWhitespace: n,
            shouldMakePrettyDiff: !0,
            maxComputationTime: i,
          }).computeDiff(),
          u = !(l.changes.length > 0) && this._modelsAreIdentical(r, s);
        return { quitEarly: l.quitEarly, identical: u, changes: l.changes };
      });
    }
    _modelsAreIdentical(e, t) {
      const n = e.getLineCount();
      if (n !== t.getLineCount()) return !1;
      for (let i = 1; i <= n; i++)
        if (e.getLineContent(i) !== t.getLineContent(i)) return !1;
      return !0;
    }
    computeMoreMinimalEdits(e, t) {
      return zt(this, void 0, void 0, function* () {
        const n = this._getModel(e);
        if (!n) return t;
        const i = [];
        let r;
        t = x(t, (e, t) =>
          e.range && t.range
            ? Me.compareRangesUsingStarts(e.range, t.range)
            : (e.range ? 0 : 1) - (t.range ? 0 : 1)
        );
        for (let { range: e, text: s, eol: o } of t) {
          if (('number' == typeof o && (r = o), Me.isEmpty(e) && !s)) continue;
          const t = n.getValueInRange(e);
          if (((s = s.replace(/\r\n|\n|\r/g, n.eol)), t === s)) continue;
          if (Math.max(s.length, t.length) > Xt._diffLimit) {
            i.push({ range: e, text: s });
            continue;
          }
          const a = Y(t, s, !1),
            l = n.offsetAt(Me.lift(e).getStartPosition());
          for (const e of a) {
            const t = n.positionAt(l + e.originalStart),
              r = n.positionAt(l + e.originalStart + e.originalLength),
              o = {
                text: s.substr(e.modifiedStart, e.modifiedLength),
                range: {
                  startLineNumber: t.lineNumber,
                  startColumn: t.column,
                  endLineNumber: r.lineNumber,
                  endColumn: r.column,
                },
              };
            n.getValueInRange(o.range) !== o.text && i.push(o);
          }
        }
        return (
          'number' == typeof r &&
            i.push({
              eol: r,
              text: '',
              range: {
                startLineNumber: 0,
                startColumn: 0,
                endLineNumber: 0,
                endColumn: 0,
              },
            }),
          i
        );
      });
    }
    computeLinks(e) {
      return zt(this, void 0, void 0, function* () {
        let t = this._getModel(e);
        return t
          ? (function (e) {
              return e &&
                'function' == typeof e.getLineCount &&
                'function' == typeof e.getLineContent
                ? et.computeLinks(e)
                : [];
            })(t)
          : null;
      });
    }
    textualSuggest(e, t, n, i) {
      return zt(this, void 0, void 0, function* () {
        const r = this._getModel(e);
        if (!r) return null;
        const s = [],
          o = new Set(),
          a = new RegExp(n, i),
          l = r.getWordAtPosition(t, a);
        l && o.add(r.getValueInRange(l));
        for (let e of r.words(a))
          if (
            !o.has(e) &&
            (o.add(e),
            isNaN(Number(e)) && (s.push(e), o.size > Xt._suggestionsLimit))
          )
            break;
        return s;
      });
    }
    computeWordRanges(e, t, n, i) {
      return zt(this, void 0, void 0, function* () {
        let r = this._getModel(e);
        if (!r) return Object.create(null);
        const s = new RegExp(n, i),
          o = Object.create(null);
        for (let e = t.startLineNumber; e < t.endLineNumber; e++) {
          let t = r.getLineWords(e, s);
          for (const n of t) {
            if (!isNaN(Number(n.word))) continue;
            let t = o[n.word];
            t || ((t = []), (o[n.word] = t)),
              t.push({
                startLineNumber: e,
                startColumn: n.startColumn,
                endLineNumber: e,
                endColumn: n.endColumn,
              });
          }
        }
        return o;
      });
    }
    navigateValueSet(e, t, n, i, r) {
      return zt(this, void 0, void 0, function* () {
        let s = this._getModel(e);
        if (!s) return null;
        let o = new RegExp(i, r);
        t.startColumn === t.endColumn &&
          (t = {
            startLineNumber: t.startLineNumber,
            startColumn: t.startColumn,
            endLineNumber: t.endLineNumber,
            endColumn: t.endColumn + 1,
          });
        let a = s.getValueInRange(t),
          l = s.getWordAtPosition(
            { lineNumber: t.startLineNumber, column: t.startColumn },
            o
          );
        if (!l) return null;
        let u = s.getValueInRange(l);
        return tt.INSTANCE.navigateValueSet(t, a, l, u, n);
      });
    }
    loadForeignModule(e, t, n) {
      let i = {
        host: O(n, (e, t) => this._host.fhr(e, t)),
        getMirrorModels: () => this._getModels(),
      };
      return this._foreignModuleFactory
        ? ((this._foreignModule = this._foreignModuleFactory(i, t)),
          Promise.resolve(T(this._foreignModule)))
        : Promise.reject(new Error('Unexpected usage'));
    }
    fmr(e, t) {
      if (!this._foreignModule || 'function' != typeof this._foreignModule[e])
        return Promise.reject(
          new Error('Missing requestHandler or method: ' + e)
        );
      try {
        return Promise.resolve(
          this._foreignModule[e].apply(this._foreignModule, t)
        );
      } catch (e) {
        return Promise.reject(e);
      }
    }
  }
  (Xt._diffLimit = 1e5),
    (Xt._suggestionsLimit = 1e4),
    'function' == typeof importScripts &&
      (w.monaco = {
        editor: void 0,
        languages: void 0,
        CancellationTokenSource: class {
          constructor(e) {
            (this._token = void 0),
              (this._parentListener = void 0),
              (this._parentListener =
                e && e.onCancellationRequested(this.cancel, this));
          }
          get token() {
            return this._token || (this._token = new lt()), this._token;
          }
          cancel() {
            this._token
              ? this._token instanceof lt && this._token.cancel()
              : (this._token = at.Cancelled);
          }
          dispose(e = !1) {
            e && this.cancel(),
              this._parentListener && this._parentListener.dispose(),
              this._token
                ? this._token instanceof lt && this._token.dispose()
                : (this._token = at.None);
          }
        },
        Emitter: st,
        KeyCode: Tt,
        KeyMod: Gt,
        Position: Ie,
        Range: Me,
        Selection: jt,
        SelectionDirection: Kt,
        MarkerSeverity: Ot,
        MarkerTag: It,
        Uri: be,
        Token: class {
          constructor(e, t, n) {
            (this.offset = 0 | e), (this.type = t), (this.language = n);
          }
          toString() {
            return '(' + this.offset + ', ' + this.type + ')';
          }
        },
      });
  let Zt = !1;
  self.onmessage = (e) => {
    Zt ||
      (function (e) {
        if (Zt) return;
        Zt = !0;
        const t = new M(
          (e) => {
            self.postMessage(e);
          },
          (e) => new Xt(e, null)
        );
        self.onmessage = (e) => {
          t.onmessage(e.data);
        };
      })();
  };
})();
