]> git.proxmox.com Git - pve-eslint.git/commitdiff
commit build of 8.23.1
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 15 Sep 2022 09:22:33 +0000 (11:22 +0200)
committerDominik Csapak <d.csapak@proxmox.com>
Thu, 15 Sep 2022 09:35:52 +0000 (11:35 +0200)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/lib/eslint.js

index d42c4e1943da2721d7a6a2d7f21d852c69d888ef..72ac48d295185570ced3f9e2353c7347a74b968e 100644 (file)
@@ -7,7 +7,7 @@
                exports["eslint"] = factory();
        else
                root["eslint"] = factory();
-})(this, function() {
+})(this, () => {
 return /******/ (() => { // webpackBootstrap
 /******/       var __webpack_modules__ = ([
 /* 0 */
@@ -15,69 +15,49 @@ return /******/ (() => { // webpackBootstrap
 
 __webpack_require__(1);
 
-__webpack_require__(84);
-
-__webpack_require__(85);
-
-__webpack_require__(86);
-
-__webpack_require__(87);
-
-__webpack_require__(88);
-
-__webpack_require__(89);
-
-__webpack_require__(90);
-
-__webpack_require__(91);
-
-__webpack_require__(92);
-
-__webpack_require__(93);
-
-__webpack_require__(94);
-
-__webpack_require__(95);
-
 __webpack_require__(96);
 
 __webpack_require__(97);
 
 __webpack_require__(98);
 
-__webpack_require__(113);
+__webpack_require__(99);
 
-__webpack_require__(115);
+__webpack_require__(100);
 
-__webpack_require__(117);
+__webpack_require__(101);
 
-__webpack_require__(119);
+__webpack_require__(102);
 
-__webpack_require__(121);
+__webpack_require__(103);
 
-__webpack_require__(123);
+__webpack_require__(104);
 
-__webpack_require__(124);
+__webpack_require__(105);
 
-__webpack_require__(125);
+__webpack_require__(106);
 
-__webpack_require__(126);
+__webpack_require__(107);
 
-__webpack_require__(128);
+__webpack_require__(108);
 
-__webpack_require__(129);
+__webpack_require__(109);
 
-__webpack_require__(131);
+__webpack_require__(110);
 
-__webpack_require__(135);
+__webpack_require__(120);
 
-__webpack_require__(136);
+__webpack_require__(122);
 
-__webpack_require__(137);
+__webpack_require__(132);
+
+__webpack_require__(133);
+
+__webpack_require__(135);
 
 __webpack_require__(138);
 
-__webpack_require__(142);
+__webpack_require__(141);
 
 __webpack_require__(143);
 
@@ -87,17 +67,19 @@ __webpack_require__(146);
 
 __webpack_require__(147);
 
+__webpack_require__(148);
+
 __webpack_require__(150);
 
 __webpack_require__(151);
 
-__webpack_require__(152);
-
 __webpack_require__(153);
 
 __webpack_require__(154);
 
-__webpack_require__(159);
+__webpack_require__(156);
+
+__webpack_require__(160);
 
 __webpack_require__(161);
 
@@ -105,15 +87,17 @@ __webpack_require__(162);
 
 __webpack_require__(163);
 
-__webpack_require__(164);
+__webpack_require__(168);
+
+__webpack_require__(169);
 
 __webpack_require__(171);
 
-__webpack_require__(173);
+__webpack_require__(172);
 
-__webpack_require__(176);
+__webpack_require__(173);
 
-__webpack_require__(177);
+__webpack_require__(175);
 
 __webpack_require__(178);
 
@@ -123,27 +107,23 @@ __webpack_require__(180);
 
 __webpack_require__(181);
 
-__webpack_require__(185);
+__webpack_require__(182);
 
-__webpack_require__(186);
-
-__webpack_require__(188);
+__webpack_require__(187);
 
 __webpack_require__(189);
 
 __webpack_require__(190);
 
+__webpack_require__(191);
+
 __webpack_require__(192);
 
 __webpack_require__(193);
 
-__webpack_require__(194);
-
-__webpack_require__(195);
+__webpack_require__(200);
 
-__webpack_require__(196);
-
-__webpack_require__(197);
+__webpack_require__(202);
 
 __webpack_require__(205);
 
@@ -153,15 +133,13 @@ __webpack_require__(208);
 
 __webpack_require__(209);
 
-__webpack_require__(211);
+__webpack_require__(210);
 
-__webpack_require__(212);
-
-__webpack_require__(214);
+__webpack_require__(211);
 
 __webpack_require__(215);
 
-__webpack_require__(217);
+__webpack_require__(216);
 
 __webpack_require__(218);
 
@@ -169,24 +147,18 @@ __webpack_require__(219);
 
 __webpack_require__(220);
 
-__webpack_require__(221);
-
 __webpack_require__(222);
 
 __webpack_require__(223);
 
 __webpack_require__(224);
 
+__webpack_require__(92);
+
 __webpack_require__(225);
 
 __webpack_require__(226);
 
-__webpack_require__(227);
-
-__webpack_require__(231);
-
-__webpack_require__(232);
-
 __webpack_require__(234);
 
 __webpack_require__(236);
@@ -195,21 +167,21 @@ __webpack_require__(237);
 
 __webpack_require__(238);
 
-__webpack_require__(239);
-
 __webpack_require__(240);
 
-__webpack_require__(242);
+__webpack_require__(241);
 
-__webpack_require__(244);
+__webpack_require__(243);
 
-__webpack_require__(245);
+__webpack_require__(244);
 
 __webpack_require__(246);
 
+__webpack_require__(247);
+
 __webpack_require__(248);
 
-__webpack_require__(249);
+__webpack_require__(250);
 
 __webpack_require__(251);
 
@@ -219,23 +191,17 @@ __webpack_require__(253);
 
 __webpack_require__(254);
 
+__webpack_require__(255);
+
 __webpack_require__(256);
 
 __webpack_require__(257);
 
-__webpack_require__(258);
-
-__webpack_require__(259);
-
-__webpack_require__(260);
-
 __webpack_require__(261);
 
 __webpack_require__(262);
 
-__webpack_require__(263);
-
-__webpack_require__(265);
+__webpack_require__(264);
 
 __webpack_require__(266);
 
@@ -247,22 +213,36 @@ __webpack_require__(269);
 
 __webpack_require__(270);
 
-__webpack_require__(271);
-
 __webpack_require__(272);
 
-__webpack_require__(273);
-
 __webpack_require__(274);
 
+__webpack_require__(275);
+
 __webpack_require__(276);
 
 __webpack_require__(277);
 
-__webpack_require__(278);
-
 __webpack_require__(279);
 
+__webpack_require__(280);
+
+__webpack_require__(282);
+
+__webpack_require__(283);
+
+__webpack_require__(284);
+
+__webpack_require__(285);
+
+__webpack_require__(287);
+
+__webpack_require__(288);
+
+__webpack_require__(289);
+
+__webpack_require__(290);
+
 __webpack_require__(291);
 
 __webpack_require__(292);
@@ -271,14 +251,14 @@ __webpack_require__(293);
 
 __webpack_require__(294);
 
-__webpack_require__(295);
-
 __webpack_require__(296);
 
 __webpack_require__(297);
 
 __webpack_require__(298);
 
+__webpack_require__(299);
+
 __webpack_require__(300);
 
 __webpack_require__(301);
@@ -287,50 +267,28 @@ __webpack_require__(302);
 
 __webpack_require__(303);
 
-__webpack_require__(304);
-
 __webpack_require__(305);
 
 __webpack_require__(306);
 
 __webpack_require__(307);
 
-__webpack_require__(308);
-
 __webpack_require__(309);
 
-__webpack_require__(315);
-
-__webpack_require__(316);
-
-__webpack_require__(318);
-
-__webpack_require__(319);
-
-__webpack_require__(320);
+__webpack_require__(310);
 
-__webpack_require__(321);
+__webpack_require__(311);
 
-__webpack_require__(322);
+__webpack_require__(312);
 
-__webpack_require__(323);
-
-__webpack_require__(324);
-
-__webpack_require__(326);
-
-__webpack_require__(329);
-
-__webpack_require__(330);
-
-__webpack_require__(331);
-
-__webpack_require__(332);
+__webpack_require__(335);
 
 __webpack_require__(336);
 
 __webpack_require__(337);
 
+__webpack_require__(338);
+
 __webpack_require__(339);
 
 __webpack_require__(340);
@@ -351,26 +309,18 @@ __webpack_require__(348);
 
 __webpack_require__(349);
 
+__webpack_require__(350);
+
 __webpack_require__(351);
 
 __webpack_require__(352);
 
 __webpack_require__(353);
 
-__webpack_require__(356);
-
-__webpack_require__(357);
-
-__webpack_require__(358);
-
-__webpack_require__(359);
-
 __webpack_require__(360);
 
 __webpack_require__(361);
 
-__webpack_require__(362);
-
 __webpack_require__(363);
 
 __webpack_require__(364);
@@ -381,9 +331,11 @@ __webpack_require__(366);
 
 __webpack_require__(367);
 
-__webpack_require__(368);
+__webpack_require__(369);
+
+__webpack_require__(370);
 
-__webpack_require__(374);
+__webpack_require__(372);
 
 __webpack_require__(375);
 
@@ -393,22 +345,18 @@ __webpack_require__(377);
 
 __webpack_require__(378);
 
-__webpack_require__(379);
-
-__webpack_require__(380);
-
-__webpack_require__(381);
-
 __webpack_require__(382);
 
 __webpack_require__(383);
 
-__webpack_require__(384);
-
 __webpack_require__(385);
 
 __webpack_require__(386);
 
+__webpack_require__(387);
+
+__webpack_require__(388);
+
 __webpack_require__(390);
 
 __webpack_require__(391);
@@ -421,26 +369,12 @@ __webpack_require__(394);
 
 __webpack_require__(395);
 
-__webpack_require__(396);
-
 __webpack_require__(397);
 
-__webpack_require__(398);
-
-__webpack_require__(399);
-
 __webpack_require__(400);
 
-__webpack_require__(401);
-
-__webpack_require__(402);
-
 __webpack_require__(403);
 
-__webpack_require__(404);
-
-__webpack_require__(405);
-
 __webpack_require__(406);
 
 __webpack_require__(407);
@@ -455,121 +389,223 @@ __webpack_require__(411);
 
 __webpack_require__(412);
 
+__webpack_require__(413);
+
 __webpack_require__(414);
 
 __webpack_require__(415);
 
+__webpack_require__(416);
+
+__webpack_require__(417);
+
 __webpack_require__(418);
 
-__webpack_require__(419);
+__webpack_require__(426);
 
-__webpack_require__(420);
+__webpack_require__(427);
 
-__webpack_require__(421);
+__webpack_require__(428);
 
-__webpack_require__(422);
+__webpack_require__(429);
 
-__webpack_require__(426);
+__webpack_require__(430);
+
+__webpack_require__(431);
+
+__webpack_require__(432);
+
+__webpack_require__(433);
+
+__webpack_require__(434);
+
+__webpack_require__(435);
+
+__webpack_require__(436);
+
+__webpack_require__(437);
+
+__webpack_require__(438);
+
+__webpack_require__(442);
+
+__webpack_require__(443);
+
+__webpack_require__(444);
+
+__webpack_require__(445);
+
+__webpack_require__(446);
+
+__webpack_require__(447);
+
+__webpack_require__(448);
+
+__webpack_require__(449);
+
+__webpack_require__(450);
+
+__webpack_require__(451);
+
+__webpack_require__(452);
+
+__webpack_require__(453);
+
+__webpack_require__(454);
+
+__webpack_require__(455);
+
+__webpack_require__(456);
+
+__webpack_require__(457);
+
+__webpack_require__(458);
+
+__webpack_require__(459);
+
+__webpack_require__(460);
+
+__webpack_require__(461);
+
+__webpack_require__(462);
+
+__webpack_require__(463);
+
+__webpack_require__(464);
+
+__webpack_require__(465);
+
+__webpack_require__(466);
 
-__webpack_require__(425);
+__webpack_require__(469);
 
-module.exports = __webpack_require__(77);
+__webpack_require__(471);
+
+__webpack_require__(473);
+
+__webpack_require__(474);
+
+__webpack_require__(477);
+
+__webpack_require__(478);
+
+__webpack_require__(481);
+
+__webpack_require__(482);
+
+__webpack_require__(483);
+
+__webpack_require__(486);
+
+__webpack_require__(487);
+
+__webpack_require__(488);
+
+__webpack_require__(492);
+
+__webpack_require__(497);
+
+__webpack_require__(498);
+
+module.exports = __webpack_require__(80);
 
 /***/ }),
 /* 1 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-"use strict";
+// TODO: Remove this module from `core-js@4` since it's split to modules listed below
+__webpack_require__(2);
 
+__webpack_require__(89);
 
-var $ = __webpack_require__(2);
+__webpack_require__(91);
 
-var global = __webpack_require__(3);
+__webpack_require__(92);
 
-var getBuiltIn = __webpack_require__(20);
+__webpack_require__(95);
 
-var apply = __webpack_require__(62);
+/***/ }),
+/* 2 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var call = __webpack_require__(7);
+"use strict";
 
-var uncurryThis = __webpack_require__(12);
 
-var IS_PURE = __webpack_require__(32);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var global = __webpack_require__(4);
 
-var NATIVE_SYMBOL = __webpack_require__(23);
+var call = __webpack_require__(8);
 
-var fails = __webpack_require__(6);
+var uncurryThis = __webpack_require__(14);
 
-var hasOwn = __webpack_require__(35);
+var IS_PURE = __webpack_require__(35);
 
-var isArray = __webpack_require__(63);
+var DESCRIPTORS = __webpack_require__(6);
 
-var isCallable = __webpack_require__(18);
+var NATIVE_SYMBOL = __webpack_require__(26);
 
-var isObject = __webpack_require__(17);
+var fails = __webpack_require__(7);
 
-var isPrototypeOf = __webpack_require__(21);
+var hasOwn = __webpack_require__(38);
 
-var isSymbol = __webpack_require__(19);
+var isPrototypeOf = __webpack_require__(24);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var toObject = __webpack_require__(36);
+var toIndexedObject = __webpack_require__(12);
 
-var toIndexedObject = __webpack_require__(10);
+var toPropertyKey = __webpack_require__(18);
 
-var toPropertyKey = __webpack_require__(15);
+var $toString = __webpack_require__(68);
 
-var $toString = __webpack_require__(64);
+var createPropertyDescriptor = __webpack_require__(11);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var nativeObjectCreate = __webpack_require__(71);
 
-var nativeObjectCreate = __webpack_require__(67);
+var objectKeys = __webpack_require__(73);
 
-var objectKeys = __webpack_require__(69);
+var getOwnPropertyNamesModule = __webpack_require__(57);
 
-var getOwnPropertyNamesModule = __webpack_require__(52);
+var getOwnPropertyNamesExternal = __webpack_require__(75);
 
-var getOwnPropertyNamesExternal = __webpack_require__(71);
+var getOwnPropertySymbolsModule = __webpack_require__(66);
 
-var getOwnPropertySymbolsModule = __webpack_require__(60);
+var getOwnPropertyDescriptorModule = __webpack_require__(5);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4);
+var definePropertyModule = __webpack_require__(44);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertiesModule = __webpack_require__(72);
 
-var propertyIsEnumerableModule = __webpack_require__(8);
+var propertyIsEnumerableModule = __webpack_require__(10);
 
-var arraySlice = __webpack_require__(74);
+var defineBuiltIn = __webpack_require__(47);
 
-var redefine = __webpack_require__(43);
+var shared = __webpack_require__(34);
 
-var shared = __webpack_require__(31);
+var sharedKey = __webpack_require__(53);
 
-var sharedKey = __webpack_require__(47);
+var hiddenKeys = __webpack_require__(54);
 
-var hiddenKeys = __webpack_require__(48);
+var uid = __webpack_require__(40);
 
-var uid = __webpack_require__(37);
+var wellKnownSymbol = __webpack_require__(33);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wrappedWellKnownSymbolModule = __webpack_require__(78);
 
-var wrappedWellKnownSymbolModule = __webpack_require__(75);
+var defineWellKnownSymbol = __webpack_require__(79);
 
-var defineWellKnownSymbol = __webpack_require__(76);
+var defineSymbolToPrimitive = __webpack_require__(81);
 
-var setToStringTag = __webpack_require__(78);
+var setToStringTag = __webpack_require__(82);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
-var $forEach = (__webpack_require__(79).forEach);
+var $forEach = (__webpack_require__(83).forEach);
 
 var HIDDEN = sharedKey('hidden');
 var SYMBOL = 'Symbol';
 var PROTOTYPE = 'prototype';
-var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
 var setInternalState = InternalStateModule.set;
 var getInternalState = InternalStateModule.getterFor(SYMBOL);
 var ObjectPrototype = Object[PROTOTYPE];
@@ -577,7 +613,6 @@ var $Symbol = global.Symbol;
 var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];
 var TypeError = global.TypeError;
 var QObject = global.QObject;
-var $stringify = getBuiltIn('JSON', 'stringify');
 var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
 var nativeDefineProperty = definePropertyModule.f;
 var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
@@ -585,8 +620,6 @@ var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
 var push = uncurryThis([].push);
 var AllSymbols = shared('symbols');
 var ObjectPrototypeSymbols = shared('op-symbols');
-var StringToSymbolRegistry = shared('string-to-symbol-registry');
-var SymbolToStringRegistry = shared('symbol-to-string-registry');
 var WellKnownSymbolsStore = shared('wks'); // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
 
 var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
@@ -686,7 +719,7 @@ var $getOwnPropertyNames = function getOwnPropertyNames(O) {
   return result;
 };
 
-var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
+var $getOwnPropertySymbols = function (O) {
   var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
   var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
   var result = [];
@@ -720,14 +753,15 @@ if (!NATIVE_SYMBOL) {
   };
 
   SymbolPrototype = $Symbol[PROTOTYPE];
-  redefine(SymbolPrototype, 'toString', function toString() {
+  defineBuiltIn(SymbolPrototype, 'toString', function toString() {
     return getInternalState(this).tag;
   });
-  redefine($Symbol, 'withoutSetter', function (description) {
+  defineBuiltIn($Symbol, 'withoutSetter', function (description) {
     return wrap(uid(description), description);
   });
   propertyIsEnumerableModule.f = $propertyIsEnumerable;
   definePropertyModule.f = $defineProperty;
+  definePropertiesModule.f = $defineProperties;
   getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
   getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
   getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
@@ -746,7 +780,7 @@ if (!NATIVE_SYMBOL) {
     });
 
     if (!IS_PURE) {
-      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, {
+      defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, {
         unsafe: true
       });
     }
@@ -755,6 +789,7 @@ if (!NATIVE_SYMBOL) {
 
 $({
   global: true,
+  constructor: true,
   wrap: true,
   forced: !NATIVE_SYMBOL,
   sham: !NATIVE_SYMBOL
@@ -769,22 +804,6 @@ $({
   stat: true,
   forced: !NATIVE_SYMBOL
 }, {
-  // `Symbol.for` method
-  // https://tc39.es/ecma262/#sec-symbol.for
-  'for': function (key) {
-    var string = $toString(key);
-    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
-    var symbol = $Symbol(string);
-    StringToSymbolRegistry[string] = symbol;
-    SymbolToStringRegistry[symbol] = string;
-    return symbol;
-  },
-  // `Symbol.keyFor` method
-  // https://tc39.es/ecma262/#sec-symbol.keyfor
-  keyFor: function keyFor(sym) {
-    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
-    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
-  },
   useSetter: function () {
     USE_SETTER = true;
   },
@@ -818,104 +837,47 @@ $({
 }, {
   // `Object.getOwnPropertyNames` method
   // https://tc39.es/ecma262/#sec-object.getownpropertynames
-  getOwnPropertyNames: $getOwnPropertyNames,
-  // `Object.getOwnPropertySymbols` method
-  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols
-  getOwnPropertySymbols: $getOwnPropertySymbols
-}); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
-// https://bugs.chromium.org/p/v8/issues/detail?id=3443
-
-$({
-  target: 'Object',
-  stat: true,
-  forced: fails(function () {
-    getOwnPropertySymbolsModule.f(1);
-  })
-}, {
-  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
-    return getOwnPropertySymbolsModule.f(toObject(it));
-  }
-}); // `JSON.stringify` method behavior with symbols
-// https://tc39.es/ecma262/#sec-json.stringify
-
-if ($stringify) {
-  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
-    var symbol = $Symbol(); // MS Edge converts symbol values to JSON as {}
-
-    return $stringify([symbol]) != '[null]' // WebKit converts symbol values to JSON as null
-    || $stringify({
-      a: symbol
-    }) != '{}' // V8 throws on boxed symbols
-    || $stringify(Object(symbol)) != '{}';
-  });
-  $({
-    target: 'JSON',
-    stat: true,
-    forced: FORCED_JSON_STRINGIFY
-  }, {
-    // eslint-disable-next-line no-unused-vars -- required for `.length`
-    stringify: function stringify(it, replacer, space) {
-      var args = arraySlice(arguments);
-      var $replacer = replacer;
-      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
-
-      if (!isArray(replacer)) replacer = function (key, value) {
-        if (isCallable($replacer)) value = call($replacer, this, key, value);
-        if (!isSymbol(value)) return value;
-      };
-      args[1] = replacer;
-      return apply($stringify, null, args);
-    }
-  });
-} // `Symbol.prototype[@@toPrimitive]` method
+  getOwnPropertyNames: $getOwnPropertyNames
+}); // `Symbol.prototype[@@toPrimitive]` method
 // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
 
-
-if (!SymbolPrototype[TO_PRIMITIVE]) {
-  var valueOf = SymbolPrototype.valueOf; // eslint-disable-next-line no-unused-vars -- required for .length
-
-  redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {
-    // TODO: improve hint logic
-    return call(valueOf, this);
-  });
-} // `Symbol.prototype[@@toStringTag]` property
+defineSymbolToPrimitive(); // `Symbol.prototype[@@toStringTag]` property
 // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
 
-
 setToStringTag($Symbol, SYMBOL);
 hiddenKeys[HIDDEN] = true;
 
 /***/ }),
-/* 2 */
+/* 3 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f);
+var getOwnPropertyDescriptor = (__webpack_require__(5).f);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var setGlobal = __webpack_require__(34);
+var defineGlobalProperty = __webpack_require__(37);
 
-var copyConstructorProperties = __webpack_require__(50);
+var copyConstructorProperties = __webpack_require__(55);
 
-var isForced = __webpack_require__(61);
+var isForced = __webpack_require__(67);
 /*
-  options.target      - name of the target object
-  options.global      - target is the global object
-  options.stat        - export as static methods of target
-  options.proto       - export as prototype methods of target
-  options.real        - real prototype method for the `pure` version
-  options.forced      - export even if the native feature is available
-  options.bind        - bind methods to the target, required for the `pure` version
-  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
-  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
-  options.sham        - add a flag to not completely full polyfills
-  options.enumerable  - export as enumerable property
-  options.noTargetGet - prevent calling a getter on target
-  options.name        - the .name of the function if it does not match the key
+  options.target         - name of the target object
+  options.global         - target is the global object
+  options.stat           - export as static methods of target
+  options.proto          - export as prototype methods of target
+  options.real           - real prototype method for the `pure` version
+  options.forced         - export even if the native feature is available
+  options.bind           - bind methods to the target, required for the `pure` version
+  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version
+  options.unsafe         - use the simple assignment of property instead of delete + defineProperty
+  options.sham           - add a flag to not completely full polyfills
+  options.enumerable     - export as enumerable property
+  options.dontCallGetSet - prevent calling a getter on target
+  options.name           - the .name of the function if it does not match the key
 */
 
 
@@ -928,7 +890,7 @@ module.exports = function (options, source) {
   if (GLOBAL) {
     target = global;
   } else if (STATIC) {
-    target = global[TARGET] || setGlobal(TARGET, {});
+    target = global[TARGET] || defineGlobalProperty(TARGET, {});
   } else {
     target = (global[TARGET] || {}).prototype;
   }
@@ -936,7 +898,7 @@ module.exports = function (options, source) {
   if (target) for (key in source) {
     sourceProperty = source[key];
 
-    if (options.noTargetGet) {
+    if (options.dontCallGetSet) {
       descriptor = getOwnPropertyDescriptor(target, key);
       targetProperty = descriptor && descriptor.value;
     } else targetProperty = target[key];
@@ -951,15 +913,14 @@ module.exports = function (options, source) {
 
     if (options.sham || targetProperty && targetProperty.sham) {
       createNonEnumerableProperty(sourceProperty, 'sham', true);
-    } // extend global
-
+    }
 
-    redefine(target, key, sourceProperty, options);
+    defineBuiltIn(target, key, sourceProperty, options);
   }
 };
 
 /***/ }),
-/* 3 */
+/* 4 */
 /***/ ((module) => {
 
 var check = function (it) {
@@ -967,7 +928,7 @@ var check = function (it) {
 }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
 
 
-module.exports = // eslint-disable-next-line es/no-global-this -- safe
+module.exports = // eslint-disable-next-line es-x/no-global-this -- safe
 check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe
 check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback
 function () {
@@ -975,24 +936,24 @@ function () {
 }() || Function('return this')();
 
 /***/ }),
-/* 4 */
+/* 5 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var propertyIsEnumerableModule = __webpack_require__(8);
+var propertyIsEnumerableModule = __webpack_require__(10);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var createPropertyDescriptor = __webpack_require__(11);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var toPropertyKey = __webpack_require__(15);
+var toPropertyKey = __webpack_require__(18);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var IE8_DOM_DEFINE = __webpack_require__(38); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var IE8_DOM_DEFINE = __webpack_require__(41); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
 
 
 var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method
@@ -1010,14 +971,14 @@ exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDes
 };
 
 /***/ }),
-/* 5 */
+/* 6 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6); // Detect IE8's incomplete defineProperty implementation
+var fails = __webpack_require__(7); // Detect IE8's incomplete defineProperty implementation
 
 
 module.exports = !fails(function () {
-  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing
   return Object.defineProperty({}, 1, {
     get: function () {
       return 7;
@@ -1026,7 +987,7 @@ module.exports = !fails(function () {
 });
 
 /***/ }),
-/* 6 */
+/* 7 */
 /***/ ((module) => {
 
 module.exports = function (exec) {
@@ -1038,22 +999,40 @@ module.exports = function (exec) {
 };
 
 /***/ }),
-/* 7 */
-/***/ ((module) => {
+/* 8 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var NATIVE_BIND = __webpack_require__(9);
 
 var call = Function.prototype.call;
-module.exports = call.bind ? call.bind(call) : function () {
+module.exports = NATIVE_BIND ? call.bind(call) : function () {
   return call.apply(call, arguments);
 };
 
 /***/ }),
-/* 8 */
+/* 9 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var fails = __webpack_require__(7);
+
+module.exports = !fails(function () {
+  // eslint-disable-next-line es-x/no-function-prototype-bind -- safe
+  var test = function () {
+    /* empty */
+  }.bind(); // eslint-disable-next-line no-prototype-builtins -- safe
+
+
+  return typeof test != 'function' || test.hasOwnProperty('prototype');
+});
+
+/***/ }),
+/* 10 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
 
 
-var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
 
 var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug
 
@@ -1068,7 +1047,7 @@ exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
 } : $propertyIsEnumerable;
 
 /***/ }),
-/* 9 */
+/* 11 */
 /***/ ((module) => {
 
 module.exports = function (bitmap, value) {
@@ -1081,51 +1060,51 @@ module.exports = function (bitmap, value) {
 };
 
 /***/ }),
-/* 10 */
+/* 12 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // toObject with fallback for non-array-like ES3 strings
-var IndexedObject = __webpack_require__(11);
+var IndexedObject = __webpack_require__(13);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
 module.exports = function (it) {
   return IndexedObject(requireObjectCoercible(it));
 };
 
 /***/ }),
-/* 11 */
+/* 13 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var Object = global.Object;
+var $Object = Object;
 var split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings
 
 module.exports = fails(function () {
   // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
   // eslint-disable-next-line no-prototype-builtins -- safe
-  return !Object('z').propertyIsEnumerable(0);
+  return !$Object('z').propertyIsEnumerable(0);
 }) ? function (it) {
-  return classof(it) == 'String' ? split(it, '') : Object(it);
-} : Object;
+  return classof(it) == 'String' ? split(it, '') : $Object(it);
+} : $Object;
 
 /***/ }),
-/* 12 */
-/***/ ((module) => {
+/* 14 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var NATIVE_BIND = __webpack_require__(9);
 
 var FunctionPrototype = Function.prototype;
 var bind = FunctionPrototype.bind;
 var call = FunctionPrototype.call;
-var callBind = bind && bind.bind(call);
-module.exports = bind ? function (fn) {
-  return fn && callBind(call, fn);
+var uncurryThis = NATIVE_BIND && bind.bind(call, call);
+module.exports = NATIVE_BIND ? function (fn) {
+  return fn && uncurryThis(fn);
 } : function (fn) {
   return fn && function () {
     return call.apply(fn, arguments);
@@ -1133,10 +1112,10 @@ module.exports = bind ? function (fn) {
 };
 
 /***/ }),
-/* 13 */
+/* 15 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
 var toString = uncurryThis({}.toString);
 var stringSlice = uncurryThis(''.slice);
@@ -1146,26 +1125,36 @@ module.exports = function (it) {
 };
 
 /***/ }),
-/* 14 */
+/* 16 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var isNullOrUndefined = __webpack_require__(17);
 
-var TypeError = global.TypeError; // `RequireObjectCoercible` abstract operation
+var $TypeError = TypeError; // `RequireObjectCoercible` abstract operation
 // https://tc39.es/ecma262/#sec-requireobjectcoercible
 
 module.exports = function (it) {
-  if (it == undefined) throw TypeError("Can't call method on " + it);
+  if (isNullOrUndefined(it)) throw $TypeError("Can't call method on " + it);
   return it;
 };
 
 /***/ }),
-/* 15 */
+/* 17 */
+/***/ ((module) => {
+
+// we can't use just `it == null` since of `document.all` special case
+// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
+module.exports = function (it) {
+  return it === null || it === undefined;
+};
+
+/***/ }),
+/* 18 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var toPrimitive = __webpack_require__(16);
+var toPrimitive = __webpack_require__(19);
 
-var isSymbol = __webpack_require__(19); // `ToPropertyKey` abstract operation
+var isSymbol = __webpack_require__(22); // `ToPropertyKey` abstract operation
 // https://tc39.es/ecma262/#sec-topropertykey
 
 
@@ -1175,24 +1164,22 @@ module.exports = function (argument) {
 };
 
 /***/ }),
-/* 16 */
+/* 19 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var call = __webpack_require__(8);
 
-var call = __webpack_require__(7);
+var isObject = __webpack_require__(20);
 
-var isObject = __webpack_require__(17);
+var isSymbol = __webpack_require__(22);
 
-var isSymbol = __webpack_require__(19);
+var getMethod = __webpack_require__(29);
 
-var getMethod = __webpack_require__(26);
+var ordinaryToPrimitive = __webpack_require__(32);
 
-var ordinaryToPrimitive = __webpack_require__(29);
+var wellKnownSymbol = __webpack_require__(33);
 
-var wellKnownSymbol = __webpack_require__(30);
-
-var TypeError = global.TypeError;
+var $TypeError = TypeError;
 var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation
 // https://tc39.es/ecma262/#sec-toprimitive
 
@@ -1205,7 +1192,7 @@ module.exports = function (input, pref) {
     if (pref === undefined) pref = 'default';
     result = call(exoticToPrim, input, pref);
     if (!isObject(result) || isSymbol(result)) return result;
-    throw TypeError("Can't convert object to primitive value");
+    throw $TypeError("Can't convert object to primitive value");
   }
 
   if (pref === undefined) pref = 'number';
@@ -1213,17 +1200,22 @@ module.exports = function (input, pref) {
 };
 
 /***/ }),
-/* 17 */
+/* 20 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-module.exports = function (it) {
+var documentAll = typeof document == 'object' && document.all; // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
+
+var SPECIAL_DOCUMENT_ALL = typeof documentAll == 'undefined' && documentAll !== undefined;
+module.exports = SPECIAL_DOCUMENT_ALL ? function (it) {
+  return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;
+} : function (it) {
   return typeof it == 'object' ? it !== null : isCallable(it);
 };
 
 /***/ }),
-/* 18 */
+/* 21 */
 /***/ ((module) => {
 
 // `IsCallable` abstract operation
@@ -1233,34 +1225,32 @@ module.exports = function (argument) {
 };
 
 /***/ }),
-/* 19 */
+/* 22 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var getBuiltIn = __webpack_require__(23);
 
-var getBuiltIn = __webpack_require__(20);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var isPrototypeOf = __webpack_require__(24);
 
-var isPrototypeOf = __webpack_require__(21);
+var USE_SYMBOL_AS_UID = __webpack_require__(25);
 
-var USE_SYMBOL_AS_UID = __webpack_require__(22);
-
-var Object = global.Object;
+var $Object = Object;
 module.exports = USE_SYMBOL_AS_UID ? function (it) {
   return typeof it == 'symbol';
 } : function (it) {
   var $Symbol = getBuiltIn('Symbol');
-  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));
+  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
 };
 
 /***/ }),
-/* 20 */
+/* 23 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
 var aFunction = function (argument) {
   return isCallable(argument) ? argument : undefined;
@@ -1271,30 +1261,30 @@ module.exports = function (namespace, method) {
 };
 
 /***/ }),
-/* 21 */
+/* 24 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
 module.exports = uncurryThis({}.isPrototypeOf);
 
 /***/ }),
-/* 22 */
+/* 25 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/* eslint-disable es/no-symbol -- required for testing */
-var NATIVE_SYMBOL = __webpack_require__(23);
+/* eslint-disable es-x/no-symbol -- required for testing */
+var NATIVE_SYMBOL = __webpack_require__(26);
 
 module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';
 
 /***/ }),
-/* 23 */
+/* 26 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/* eslint-disable es/no-symbol -- required for testing */
-var V8_VERSION = __webpack_require__(24);
+/* eslint-disable es-x/no-symbol -- required for testing */
+var V8_VERSION = __webpack_require__(27);
 
-var fails = __webpack_require__(6); // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
+var fails = __webpack_require__(7); // eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing
 
 
 module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
@@ -1306,12 +1296,12 @@ module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
 });
 
 /***/ }),
-/* 24 */
+/* 27 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
 var process = global.process;
 var Deno = global.Deno;
@@ -1340,72 +1330,68 @@ if (!version && userAgent) {
 module.exports = version;
 
 /***/ }),
-/* 25 */
+/* 28 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
 module.exports = getBuiltIn('navigator', 'userAgent') || '';
 
 /***/ }),
-/* 26 */
+/* 29 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var aCallable = __webpack_require__(27); // `GetMethod` abstract operation
+var aCallable = __webpack_require__(30);
+
+var isNullOrUndefined = __webpack_require__(17); // `GetMethod` abstract operation
 // https://tc39.es/ecma262/#sec-getmethod
 
 
 module.exports = function (V, P) {
   var func = V[P];
-  return func == null ? undefined : aCallable(func);
+  return isNullOrUndefined(func) ? undefined : aCallable(func);
 };
 
 /***/ }),
-/* 27 */
+/* 30 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var tryToString = __webpack_require__(31);
 
-var tryToString = __webpack_require__(28);
-
-var TypeError = global.TypeError; // `Assert: IsCallable(argument) is true`
+var $TypeError = TypeError; // `Assert: IsCallable(argument) is true`
 
 module.exports = function (argument) {
   if (isCallable(argument)) return argument;
-  throw TypeError(tryToString(argument) + ' is not a function');
+  throw $TypeError(tryToString(argument) + ' is not a function');
 };
 
 /***/ }),
-/* 28 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var global = __webpack_require__(3);
+/* 31 */
+/***/ ((module) => {
 
-var String = global.String;
+var $String = String;
 
 module.exports = function (argument) {
   try {
-    return String(argument);
+    return $String(argument);
   } catch (error) {
     return 'Object';
   }
 };
 
 /***/ }),
-/* 29 */
+/* 32 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var call = __webpack_require__(8);
 
-var call = __webpack_require__(7);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var isObject = __webpack_require__(20);
 
-var isObject = __webpack_require__(17);
-
-var TypeError = global.TypeError; // `OrdinaryToPrimitive` abstract operation
+var $TypeError = TypeError; // `OrdinaryToPrimitive` abstract operation
 // https://tc39.es/ecma262/#sec-ordinarytoprimitive
 
 module.exports = function (input, pref) {
@@ -1413,24 +1399,24 @@ module.exports = function (input, pref) {
   if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
   if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
   if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
-  throw TypeError("Can't convert object to primitive value");
+  throw $TypeError("Can't convert object to primitive value");
 };
 
 /***/ }),
-/* 30 */
+/* 33 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var shared = __webpack_require__(31);
+var shared = __webpack_require__(34);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var uid = __webpack_require__(37);
+var uid = __webpack_require__(40);
 
-var NATIVE_SYMBOL = __webpack_require__(23);
+var NATIVE_SYMBOL = __webpack_require__(26);
 
-var USE_SYMBOL_AS_UID = __webpack_require__(22);
+var USE_SYMBOL_AS_UID = __webpack_require__(25);
 
 var WellKnownSymbolsStore = shared('wks');
 var Symbol = global.Symbol;
@@ -1454,44 +1440,46 @@ module.exports = function (name) {
 };
 
 /***/ }),
-/* 31 */
+/* 34 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
-var store = __webpack_require__(33);
+var store = __webpack_require__(36);
 
 (module.exports = function (key, value) {
   return store[key] || (store[key] = value !== undefined ? value : {});
 })('versions', []).push({
-  version: '3.19.3',
+  version: '3.25.1',
   mode: IS_PURE ? 'pure' : 'global',
-  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
+  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
+  license: 'https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE',
+  source: 'https://github.com/zloirock/core-js'
 });
 
 /***/ }),
-/* 32 */
+/* 35 */
 /***/ ((module) => {
 
 module.exports = false;
 
 /***/ }),
-/* 33 */
+/* 36 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var setGlobal = __webpack_require__(34);
+var defineGlobalProperty = __webpack_require__(37);
 
 var SHARED = '__core-js_shared__';
-var store = global[SHARED] || setGlobal(SHARED, {});
+var store = global[SHARED] || defineGlobalProperty(SHARED, {});
 module.exports = store;
 
 /***/ }),
-/* 34 */
+/* 37 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3); // eslint-disable-next-line es/no-object-defineproperty -- safe
+var global = __webpack_require__(4); // eslint-disable-next-line es-x/no-object-defineproperty -- safe
 
 
 var defineProperty = Object.defineProperty;
@@ -1511,40 +1499,39 @@ module.exports = function (key, value) {
 };
 
 /***/ }),
-/* 35 */
+/* 38 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
 var hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation
 // https://tc39.es/ecma262/#sec-hasownproperty
+// eslint-disable-next-line es-x/no-object-hasown -- safe
 
 module.exports = Object.hasOwn || function hasOwn(it, key) {
   return hasOwnProperty(toObject(it), key);
 };
 
 /***/ }),
-/* 36 */
+/* 39 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var Object = global.Object; // `ToObject` abstract operation
+var $Object = Object; // `ToObject` abstract operation
 // https://tc39.es/ecma262/#sec-toobject
 
 module.exports = function (argument) {
-  return Object(requireObjectCoercible(argument));
+  return $Object(requireObjectCoercible(argument));
 };
 
 /***/ }),
-/* 37 */
+/* 40 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
 var id = 0;
 var postfix = Math.random();
@@ -1555,18 +1542,18 @@ module.exports = function (key) {
 };
 
 /***/ }),
-/* 38 */
+/* 41 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var createElement = __webpack_require__(39); // Thank's IE8 for his funny defineProperty
+var createElement = __webpack_require__(42); // Thanks to IE8 for its funny defineProperty
 
 
 module.exports = !DESCRIPTORS && !fails(function () {
-  // eslint-disable-next-line es/no-object-defineproperty -- requied for testing
+  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing
   return Object.defineProperty(createElement('div'), 'a', {
     get: function () {
       return 7;
@@ -1575,12 +1562,12 @@ module.exports = !DESCRIPTORS && !fails(function () {
 });
 
 /***/ }),
-/* 39 */
+/* 42 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
 var document = global.document; // typeof document.createElement is 'object' in old IE
 
@@ -1591,14 +1578,14 @@ module.exports = function (it) {
 };
 
 /***/ }),
-/* 40 */
+/* 43 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var createPropertyDescriptor = __webpack_require__(11);
 
 module.exports = DESCRIPTORS ? function (object, key, value) {
   return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
@@ -1608,25 +1595,49 @@ module.exports = DESCRIPTORS ? function (object, key, value) {
 };
 
 /***/ }),
-/* 41 */
+/* 44 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var DESCRIPTORS = __webpack_require__(6);
+
+var IE8_DOM_DEFINE = __webpack_require__(41);
 
-var DESCRIPTORS = __webpack_require__(5);
+var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45);
 
-var IE8_DOM_DEFINE = __webpack_require__(38);
+var anObject = __webpack_require__(46);
 
-var anObject = __webpack_require__(42);
+var toPropertyKey = __webpack_require__(18);
 
-var toPropertyKey = __webpack_require__(15);
+var $TypeError = TypeError; // eslint-disable-next-line es-x/no-object-defineproperty -- safe
 
-var TypeError = global.TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe
+var $defineProperty = Object.defineProperty; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
 
-var $defineProperty = Object.defineProperty; // `Object.defineProperty` method
+var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var ENUMERABLE = 'enumerable';
+var CONFIGURABLE = 'configurable';
+var WRITABLE = 'writable'; // `Object.defineProperty` method
 // https://tc39.es/ecma262/#sec-object.defineproperty
 
-exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {
+exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
+  anObject(O);
+  P = toPropertyKey(P);
+  anObject(Attributes);
+
+  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
+    var current = $getOwnPropertyDescriptor(O, P);
+
+    if (current && current[WRITABLE]) {
+      O[P] = Attributes.value;
+      Attributes = {
+        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
+        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
+        writable: false
+      };
+    }
+  }
+
+  return $defineProperty(O, P, Attributes);
+} : $defineProperty : function defineProperty(O, P, Attributes) {
   anObject(O);
   P = toPropertyKey(P);
   anObject(Attributes);
@@ -1635,96 +1646,193 @@ exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attrib
   } catch (error) {
     /* empty */
   }
-  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
+  if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');
   if ('value' in Attributes) O[P] = Attributes.value;
   return O;
 };
 
 /***/ }),
-/* 42 */
+/* 45 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var DESCRIPTORS = __webpack_require__(6);
 
-var isObject = __webpack_require__(17);
+var fails = __webpack_require__(7); // V8 ~ Chrome 36-
+// https://bugs.chromium.org/p/v8/issues/detail?id=3334
 
-var String = global.String;
-var TypeError = global.TypeError; // `Assert: Type(argument) is Object`
+
+module.exports = DESCRIPTORS && fails(function () {
+  // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing
+  return Object.defineProperty(function () {
+    /* empty */
+  }, 'prototype', {
+    value: 42,
+    writable: false
+  }).prototype != 42;
+});
+
+/***/ }),
+/* 46 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var isObject = __webpack_require__(20);
+
+var $String = String;
+var $TypeError = TypeError; // `Assert: Type(argument) is Object`
 
 module.exports = function (argument) {
   if (isObject(argument)) return argument;
-  throw TypeError(String(argument) + ' is not an object');
+  throw $TypeError($String(argument) + ' is not an object');
 };
 
 /***/ }),
-/* 43 */
+/* 47 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var definePropertyModule = __webpack_require__(44);
 
-var hasOwn = __webpack_require__(35);
+var makeBuiltIn = __webpack_require__(48);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var defineGlobalProperty = __webpack_require__(37);
 
-var setGlobal = __webpack_require__(34);
+module.exports = function (O, key, value, options) {
+  if (!options) options = {};
+  var simple = options.enumerable;
+  var name = options.name !== undefined ? options.name : key;
+  if (isCallable(value)) makeBuiltIn(value, name, options);
 
-var inspectSource = __webpack_require__(44);
+  if (options.global) {
+    if (simple) O[key] = value;else defineGlobalProperty(key, value);
+  } else {
+    try {
+      if (!options.unsafe) delete O[key];else if (O[key]) simple = true;
+    } catch (error) {
+      /* empty */
+    }
 
-var InternalStateModule = __webpack_require__(45);
+    if (simple) O[key] = value;else definePropertyModule.f(O, key, {
+      value: value,
+      enumerable: false,
+      configurable: !options.nonConfigurable,
+      writable: !options.nonWritable
+    });
+  }
+
+  return O;
+};
+
+/***/ }),
+/* 48 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var fails = __webpack_require__(7);
+
+var isCallable = __webpack_require__(21);
+
+var hasOwn = __webpack_require__(38);
+
+var DESCRIPTORS = __webpack_require__(6);
 
 var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE);
 
-var getInternalState = InternalStateModule.get;
+var inspectSource = __webpack_require__(50);
+
+var InternalStateModule = __webpack_require__(51);
+
 var enforceInternalState = InternalStateModule.enforce;
+var getInternalState = InternalStateModule.get; // eslint-disable-next-line es-x/no-object-defineproperty -- safe
+
+var defineProperty = Object.defineProperty;
+var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {
+  return defineProperty(function () {
+    /* empty */
+  }, 'length', {
+    value: 8
+  }).length !== 8;
+});
 var TEMPLATE = String(String).split('String');
-(module.exports = function (O, key, value, options) {
-  var unsafe = options ? !!options.unsafe : false;
-  var simple = options ? !!options.enumerable : false;
-  var noTargetGet = options ? !!options.noTargetGet : false;
-  var name = options && options.name !== undefined ? options.name : key;
-  var state;
 
-  if (isCallable(value)) {
-    if (String(name).slice(0, 7) === 'Symbol(') {
-      name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
-    }
+var makeBuiltIn = module.exports = function (value, name, options) {
+  if (String(name).slice(0, 7) === 'Symbol(') {
+    name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
+  }
 
-    if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {
-      createNonEnumerableProperty(value, 'name', name);
-    }
+  if (options && options.getter) name = 'get ' + name;
+  if (options && options.setter) name = 'set ' + name;
 
-    state = enforceInternalState(value);
+  if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {
+    if (DESCRIPTORS) defineProperty(value, 'name', {
+      value: name,
+      configurable: true
+    });else value.name = name;
+  }
 
-    if (!state.source) {
-      state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
-    }
+  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
+    defineProperty(value, 'length', {
+      value: options.arity
+    });
   }
 
-  if (O === global) {
-    if (simple) O[key] = value;else setGlobal(key, value);
-    return;
-  } else if (!unsafe) {
-    delete O[key];
-  } else if (!noTargetGet && O[key]) {
-    simple = true;
+  try {
+    if (options && hasOwn(options, 'constructor') && options.constructor) {
+      if (DESCRIPTORS) defineProperty(value, 'prototype', {
+        writable: false
+      }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
+    } else if (value.prototype) value.prototype = undefined;
+  } catch (error) {
+    /* empty */
   }
 
-  if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
-})(Function.prototype, 'toString', function toString() {
+  var state = enforceInternalState(value);
+
+  if (!hasOwn(state, 'source')) {
+    state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
+  }
+
+  return value;
+}; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+// eslint-disable-next-line no-extend-native -- required
+
+
+Function.prototype.toString = makeBuiltIn(function toString() {
   return isCallable(this) && getInternalState(this).source || inspectSource(this);
-});
+}, 'toString');
 
 /***/ }),
-/* 44 */
+/* 49 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var DESCRIPTORS = __webpack_require__(6);
 
-var isCallable = __webpack_require__(18);
+var hasOwn = __webpack_require__(38);
+
+var FunctionPrototype = Function.prototype; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
+
+var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
+var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names
 
-var store = __webpack_require__(33);
+var PROPER = EXISTS && function something() {
+  /* empty */
+}.name === 'something';
+
+var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);
+module.exports = {
+  EXISTS: EXISTS,
+  PROPER: PROPER,
+  CONFIGURABLE: CONFIGURABLE
+};
+
+/***/ }),
+/* 50 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var uncurryThis = __webpack_require__(14);
+
+var isCallable = __webpack_require__(21);
+
+var store = __webpack_require__(36);
 
 var functionToString = uncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
 
@@ -1737,26 +1845,26 @@ if (!isCallable(store.inspectSource)) {
 module.exports = store.inspectSource;
 
 /***/ }),
-/* 45 */
+/* 51 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var NATIVE_WEAK_MAP = __webpack_require__(46);
+var NATIVE_WEAK_MAP = __webpack_require__(52);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var shared = __webpack_require__(33);
+var shared = __webpack_require__(36);
 
-var sharedKey = __webpack_require__(47);
+var sharedKey = __webpack_require__(53);
 
-var hiddenKeys = __webpack_require__(48);
+var hiddenKeys = __webpack_require__(54);
 
 var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
 var TypeError = global.TypeError;
@@ -1786,7 +1894,7 @@ if (NATIVE_WEAK_MAP || shared.state) {
   var wmset = uncurryThis(store.set);
 
   set = function (it, metadata) {
-    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
+    if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);
     metadata.facade = it;
     wmset(store, it, metadata);
     return metadata;
@@ -1804,7 +1912,7 @@ if (NATIVE_WEAK_MAP || shared.state) {
   hiddenKeys[STATE] = true;
 
   set = function (it, metadata) {
-    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
+    if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);
     metadata.facade = it;
     createNonEnumerableProperty(it, STATE, metadata);
     return metadata;
@@ -1828,25 +1936,23 @@ module.exports = {
 };
 
 /***/ }),
-/* 46 */
+/* 52 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var isCallable = __webpack_require__(18);
+var global = __webpack_require__(4);
 
-var inspectSource = __webpack_require__(44);
+var isCallable = __webpack_require__(21);
 
 var WeakMap = global.WeakMap;
-module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));
+module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
 
 /***/ }),
-/* 47 */
+/* 53 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var shared = __webpack_require__(31);
+var shared = __webpack_require__(34);
 
-var uid = __webpack_require__(37);
+var uid = __webpack_require__(40);
 
 var keys = shared('keys');
 
@@ -1855,71 +1961,50 @@ module.exports = function (key) {
 };
 
 /***/ }),
-/* 48 */
+/* 54 */
 /***/ ((module) => {
 
 module.exports = {};
 
 /***/ }),
-/* 49 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var DESCRIPTORS = __webpack_require__(5);
-
-var hasOwn = __webpack_require__(35);
-
-var FunctionPrototype = Function.prototype; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
-
-var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
-var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names
-
-var PROPER = EXISTS && function something() {
-  /* empty */
-}.name === 'something';
-
-var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);
-module.exports = {
-  EXISTS: EXISTS,
-  PROPER: PROPER,
-  CONFIGURABLE: CONFIGURABLE
-};
-
-/***/ }),
-/* 50 */
+/* 55 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var ownKeys = __webpack_require__(51);
+var ownKeys = __webpack_require__(56);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4);
+var getOwnPropertyDescriptorModule = __webpack_require__(5);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-module.exports = function (target, source) {
+module.exports = function (target, source, exceptions) {
   var keys = ownKeys(source);
   var defineProperty = definePropertyModule.f;
   var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
 
   for (var i = 0; i < keys.length; i++) {
     var key = keys[i];
-    if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+
+    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
+      defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+    }
   }
 };
 
 /***/ }),
-/* 51 */
+/* 56 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var getOwnPropertyNamesModule = __webpack_require__(52);
+var getOwnPropertyNamesModule = __webpack_require__(57);
 
-var getOwnPropertySymbolsModule = __webpack_require__(60);
+var getOwnPropertySymbolsModule = __webpack_require__(66);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
 var concat = uncurryThis([].concat); // all object keys, includes non-enumerable and symbols
 
@@ -1930,34 +2015,34 @@ module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
 };
 
 /***/ }),
-/* 52 */
+/* 57 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var internalObjectKeys = __webpack_require__(53);
+var internalObjectKeys = __webpack_require__(58);
 
-var enumBugKeys = __webpack_require__(59);
+var enumBugKeys = __webpack_require__(65);
 
 var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method
 // https://tc39.es/ecma262/#sec-object.getownpropertynames
-// eslint-disable-next-line es/no-object-getownpropertynames -- safe
+// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe
 
 exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
   return internalObjectKeys(O, hiddenKeys);
 };
 
 /***/ }),
-/* 53 */
+/* 58 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var indexOf = (__webpack_require__(54).indexOf);
+var indexOf = (__webpack_require__(59).indexOf);
 
-var hiddenKeys = __webpack_require__(48);
+var hiddenKeys = __webpack_require__(54);
 
 var push = uncurryThis([].push);
 
@@ -1978,14 +2063,14 @@ module.exports = function (object, names) {
 };
 
 /***/ }),
-/* 54 */
+/* 59 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var lengthOfArrayLike = __webpack_require__(57); // `Array.prototype.{ indexOf, includes }` methods implementation
+var lengthOfArrayLike = __webpack_require__(63); // `Array.prototype.{ indexOf, includes }` methods implementation
 
 
 var createMethod = function (IS_INCLUDES) {
@@ -2017,10 +2102,10 @@ module.exports = {
 };
 
 /***/ }),
-/* 55 */
+/* 60 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
 var max = Math.max;
 var min = Math.min; // Helper for a popular repeating case of the spec:
@@ -2033,24 +2118,38 @@ module.exports = function (index, length) {
 };
 
 /***/ }),
-/* 56 */
-/***/ ((module) => {
+/* 61 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var ceil = Math.ceil;
-var floor = Math.floor; // `ToIntegerOrInfinity` abstract operation
+var trunc = __webpack_require__(62); // `ToIntegerOrInfinity` abstract operation
 // https://tc39.es/ecma262/#sec-tointegerorinfinity
 
+
 module.exports = function (argument) {
-  var number = +argument; // eslint-disable-next-line no-self-compare -- safe
+  var number = +argument; // eslint-disable-next-line no-self-compare -- NaN check
 
-  return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);
+  return number !== number || number === 0 ? 0 : trunc(number);
 };
 
 /***/ }),
-/* 57 */
+/* 62 */
+/***/ ((module) => {
+
+var ceil = Math.ceil;
+var floor = Math.floor; // `Math.trunc` method
+// https://tc39.es/ecma262/#sec-math.trunc
+// eslint-disable-next-line es-x/no-math-trunc -- safe
+
+module.exports = Math.trunc || function trunc(x) {
+  var n = +x;
+  return (n > 0 ? floor : ceil)(n);
+};
+
+/***/ }),
+/* 63 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var toLength = __webpack_require__(58); // `LengthOfArrayLike` abstract operation
+var toLength = __webpack_require__(64); // `LengthOfArrayLike` abstract operation
 // https://tc39.es/ecma262/#sec-lengthofarraylike
 
 
@@ -2059,10 +2158,10 @@ module.exports = function (obj) {
 };
 
 /***/ }),
-/* 58 */
+/* 64 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
 var min = Math.min; // `ToLength` abstract operation
 // https://tc39.es/ecma262/#sec-tolength
@@ -2072,26 +2171,26 @@ module.exports = function (argument) {
 };
 
 /***/ }),
-/* 59 */
+/* 65 */
 /***/ ((module) => {
 
 // IE8- don't enum bug keys
 module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];
 
 /***/ }),
-/* 60 */
+/* 66 */
 /***/ ((__unused_webpack_module, exports) => {
 
-// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
+// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe
 exports.f = Object.getOwnPropertySymbols;
 
 /***/ }),
-/* 61 */
+/* 67 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
 var replacement = /#|\.prototype\./;
 
@@ -2110,62 +2209,32 @@ var POLYFILL = isForced.POLYFILL = 'P';
 module.exports = isForced;
 
 /***/ }),
-/* 62 */
-/***/ ((module) => {
-
-var FunctionPrototype = Function.prototype;
-var apply = FunctionPrototype.apply;
-var bind = FunctionPrototype.bind;
-var call = FunctionPrototype.call; // eslint-disable-next-line es/no-reflect -- safe
-
-module.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {
-  return call.apply(apply, arguments);
-});
-
-/***/ }),
-/* 63 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var classof = __webpack_require__(13); // `IsArray` abstract operation
-// https://tc39.es/ecma262/#sec-isarray
-// eslint-disable-next-line es/no-array-isarray -- safe
-
-
-module.exports = Array.isArray || function isArray(argument) {
-  return classof(argument) == 'Array';
-};
-
-/***/ }),
-/* 64 */
+/* 68 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var classof = __webpack_require__(69);
 
-var classof = __webpack_require__(65);
-
-var String = global.String;
+var $String = String;
 
 module.exports = function (argument) {
   if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
-  return String(argument);
+  return $String(argument);
 };
 
 /***/ }),
-/* 65 */
+/* 69 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var TO_STRING_TAG_SUPPORT = __webpack_require__(66);
+var TO_STRING_TAG_SUPPORT = __webpack_require__(70);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var classofRaw = __webpack_require__(13);
+var classofRaw = __webpack_require__(15);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-var Object = global.Object; // ES3 wrong here
+var $Object = Object; // ES3 wrong here
 
 var CORRECT_ARGUMENTS = classofRaw(function () {
   return arguments;
@@ -2183,16 +2252,16 @@ var tryGet = function (it, key) {
 module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
   var O, tag, result;
   return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case
-  : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case
+  : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case
   : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback
   : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
 };
 
 /***/ }),
-/* 66 */
+/* 70 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var TO_STRING_TAG = wellKnownSymbol('toStringTag');
 var test = {};
@@ -2200,23 +2269,23 @@ test[TO_STRING_TAG] = 'z';
 module.exports = String(test) === '[object z]';
 
 /***/ }),
-/* 67 */
+/* 71 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 /* global ActiveXObject -- old IE, WSH */
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var defineProperties = __webpack_require__(68);
+var definePropertiesModule = __webpack_require__(72);
 
-var enumBugKeys = __webpack_require__(59);
+var enumBugKeys = __webpack_require__(65);
 
-var hiddenKeys = __webpack_require__(48);
+var hiddenKeys = __webpack_require__(54);
 
-var html = __webpack_require__(70);
+var html = __webpack_require__(74);
 
-var documentCreateElement = __webpack_require__(39);
+var documentCreateElement = __webpack_require__(42);
 
-var sharedKey = __webpack_require__(47);
+var sharedKey = __webpack_require__(53);
 
 var GT = '>';
 var LT = '<';
@@ -2285,6 +2354,7 @@ var NullProtoObject = function () {
 
 hiddenKeys[IE_PROTO] = true; // `Object.create` method
 // https://tc39.es/ecma262/#sec-object.create
+// eslint-disable-next-line es-x/no-object-create -- safe
 
 module.exports = Object.create || function create(O, Properties) {
   var result;
@@ -2297,27 +2367,29 @@ module.exports = Object.create || function create(O, Properties) {
     result[IE_PROTO] = O;
   } else result = NullProtoObject();
 
-  return Properties === undefined ? result : defineProperties(result, Properties);
+  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
 };
 
 /***/ }),
-/* 68 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 72 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+var DESCRIPTORS = __webpack_require__(6);
 
-var DESCRIPTORS = __webpack_require__(5);
+var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var objectKeys = __webpack_require__(69); // `Object.defineProperties` method
+var objectKeys = __webpack_require__(73); // `Object.defineProperties` method
 // https://tc39.es/ecma262/#sec-object.defineproperties
-// eslint-disable-next-line es/no-object-defineproperties -- safe
+// eslint-disable-next-line es-x/no-object-defineproperties -- safe
 
 
-module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
+exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
   anObject(O);
   var props = toIndexedObject(Properties);
   var keys = objectKeys(Properties);
@@ -2331,14 +2403,14 @@ module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperti
 };
 
 /***/ }),
-/* 69 */
+/* 73 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var internalObjectKeys = __webpack_require__(53);
+var internalObjectKeys = __webpack_require__(58);
 
-var enumBugKeys = __webpack_require__(59); // `Object.keys` method
+var enumBugKeys = __webpack_require__(65); // `Object.keys` method
 // https://tc39.es/ecma262/#sec-object.keys
-// eslint-disable-next-line es/no-object-keys -- safe
+// eslint-disable-next-line es-x/no-object-keys -- safe
 
 
 module.exports = Object.keys || function keys(O) {
@@ -2346,25 +2418,25 @@ module.exports = Object.keys || function keys(O) {
 };
 
 /***/ }),
-/* 70 */
+/* 74 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
 module.exports = getBuiltIn('document', 'documentElement');
 
 /***/ }),
-/* 71 */
+/* 75 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/* eslint-disable es/no-object-getownpropertynames -- safe */
-var classof = __webpack_require__(13);
+/* eslint-disable es-x/no-object-getownpropertynames -- safe */
+var classof = __webpack_require__(15);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var $getOwnPropertyNames = (__webpack_require__(52).f);
+var $getOwnPropertyNames = (__webpack_require__(57).f);
 
-var arraySlice = __webpack_require__(72);
+var arraySlice = __webpack_require__(76);
 
 var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
 
@@ -2382,25 +2454,23 @@ module.exports.f = function getOwnPropertyNames(it) {
 };
 
 /***/ }),
-/* 72 */
+/* 76 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var toAbsoluteIndex = __webpack_require__(55);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var createProperty = __webpack_require__(73);
+var createProperty = __webpack_require__(77);
 
-var Array = global.Array;
+var $Array = Array;
 var max = Math.max;
 
 module.exports = function (O, start, end) {
   var length = lengthOfArrayLike(O);
   var k = toAbsoluteIndex(start, length);
   var fin = toAbsoluteIndex(end === undefined ? length : end, length);
-  var result = Array(max(fin - k, 0));
+  var result = $Array(max(fin - k, 0));
 
   for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);
 
@@ -2409,17 +2479,17 @@ module.exports = function (O, start, end) {
 };
 
 /***/ }),
-/* 73 */
+/* 77 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var toPropertyKey = __webpack_require__(15);
+var toPropertyKey = __webpack_require__(18);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var createPropertyDescriptor = __webpack_require__(11);
 
 module.exports = function (object, key, value) {
   var propertyKey = toPropertyKey(key);
@@ -2427,32 +2497,24 @@ module.exports = function (object, key, value) {
 };
 
 /***/ }),
-/* 74 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var uncurryThis = __webpack_require__(12);
-
-module.exports = uncurryThis([].slice);
-
-/***/ }),
-/* 75 */
+/* 78 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 exports.f = wellKnownSymbol;
 
 /***/ }),
-/* 76 */
+/* 79 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var path = __webpack_require__(77);
+var path = __webpack_require__(80);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var wrappedWellKnownSymbolModule = __webpack_require__(75);
+var wrappedWellKnownSymbolModule = __webpack_require__(78);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
 module.exports = function (NAME) {
   var Symbol = path.Symbol || (path.Symbol = {});
@@ -2462,28 +2524,60 @@ module.exports = function (NAME) {
 };
 
 /***/ }),
-/* 77 */
+/* 80 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
 module.exports = global;
 
 /***/ }),
-/* 78 */
+/* 81 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineProperty = (__webpack_require__(41).f);
+var call = __webpack_require__(8);
 
-var hasOwn = __webpack_require__(35);
+var getBuiltIn = __webpack_require__(23);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
+
+var defineBuiltIn = __webpack_require__(47);
+
+module.exports = function () {
+  var Symbol = getBuiltIn('Symbol');
+  var SymbolPrototype = Symbol && Symbol.prototype;
+  var valueOf = SymbolPrototype && SymbolPrototype.valueOf;
+  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
+
+  if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {
+    // `Symbol.prototype[@@toPrimitive]` method
+    // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
+    // eslint-disable-next-line no-unused-vars -- required for .length
+    defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {
+      return call(valueOf, this);
+    }, {
+      arity: 1
+    });
+  }
+};
+
+/***/ }),
+/* 82 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var defineProperty = (__webpack_require__(44).f);
+
+var hasOwn = __webpack_require__(38);
+
+var wellKnownSymbol = __webpack_require__(33);
 
 var TO_STRING_TAG = wellKnownSymbol('toStringTag');
 
-module.exports = function (it, TAG, STATIC) {
-  if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
-    defineProperty(it, TO_STRING_TAG, {
+module.exports = function (target, TAG, STATIC) {
+  if (target && !STATIC) target = target.prototype;
+
+  if (target && !hasOwn(target, TO_STRING_TAG)) {
+    defineProperty(target, TO_STRING_TAG, {
       configurable: true,
       value: TAG
     });
@@ -2491,20 +2585,20 @@ module.exports = function (it, TAG, STATIC) {
 };
 
 /***/ }),
-/* 79 */
+/* 83 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var bind = __webpack_require__(80);
+var bind = __webpack_require__(84);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var IndexedObject = __webpack_require__(11);
+var IndexedObject = __webpack_require__(13);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var arraySpeciesCreate = __webpack_require__(81);
+var arraySpeciesCreate = __webpack_require__(85);
 
 var push = uncurryThis([].push); // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
 
@@ -2592,18 +2686,20 @@ module.exports = {
 };
 
 /***/ }),
-/* 80 */
+/* 84 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
+
+var aCallable = __webpack_require__(30);
 
-var aCallable = __webpack_require__(27);
+var NATIVE_BIND = __webpack_require__(9);
 
 var bind = uncurryThis(uncurryThis.bind); // optional / simple context binding
 
 module.exports = function (fn, that) {
   aCallable(fn);
-  return that === undefined ? fn : bind ? bind(fn, that) : function
+  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function
     /* ...args */
   () {
     return fn.apply(that, arguments);
@@ -2611,10 +2707,10 @@ module.exports = function (fn, that) {
 };
 
 /***/ }),
-/* 81 */
+/* 85 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var arraySpeciesConstructor = __webpack_require__(82); // `ArraySpeciesCreate` abstract operation
+var arraySpeciesConstructor = __webpack_require__(86); // `ArraySpeciesCreate` abstract operation
 // https://tc39.es/ecma262/#sec-arrayspeciescreate
 
 
@@ -2623,21 +2719,19 @@ module.exports = function (originalArray, length) {
 };
 
 /***/ }),
-/* 82 */
+/* 86 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var isArray = __webpack_require__(63);
+var isArray = __webpack_require__(87);
 
-var isConstructor = __webpack_require__(83);
+var isConstructor = __webpack_require__(88);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var SPECIES = wellKnownSymbol('species');
-var Array = global.Array; // a part of `ArraySpeciesCreate` abstract operation
+var $Array = Array; // a part of `ArraySpeciesCreate` abstract operation
 // https://tc39.es/ecma262/#sec-arrayspeciescreate
 
 module.exports = function (originalArray) {
@@ -2646,30 +2740,43 @@ module.exports = function (originalArray) {
   if (isArray(originalArray)) {
     C = originalArray.constructor; // cross-realm fallback
 
-    if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {
+    if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {
       C = C[SPECIES];
       if (C === null) C = undefined;
     }
   }
 
-  return C === undefined ? Array : C;
+  return C === undefined ? $Array : C;
 };
 
 /***/ }),
-/* 83 */
+/* 87 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var classof = __webpack_require__(15); // `IsArray` abstract operation
+// https://tc39.es/ecma262/#sec-isarray
+// eslint-disable-next-line es-x/no-array-isarray -- safe
+
+
+module.exports = Array.isArray || function isArray(argument) {
+  return classof(argument) == 'Array';
+};
+
+/***/ }),
+/* 88 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var classof = __webpack_require__(65);
+var classof = __webpack_require__(69);
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
-var inspectSource = __webpack_require__(44);
+var inspectSource = __webpack_require__(50);
 
 var noop = function () {
   /* empty */
@@ -2681,7 +2788,7 @@ var constructorRegExp = /^\s*(?:class|function)\b/;
 var exec = uncurryThis(constructorRegExp.exec);
 var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);
 
-var isConstructorModern = function (argument) {
+var isConstructorModern = function isConstructor(argument) {
   if (!isCallable(argument)) return false;
 
   try {
@@ -2692,7 +2799,7 @@ var isConstructorModern = function (argument) {
   }
 };
 
-var isConstructorLegacy = function (argument) {
+var isConstructorLegacy = function isConstructor(argument) {
   if (!isCallable(argument)) return false;
 
   switch (classof(argument)) {
@@ -2700,14 +2807,21 @@ var isConstructorLegacy = function (argument) {
     case 'GeneratorFunction':
     case 'AsyncGeneratorFunction':
       return false;
+  }
+
+  try {
     // we can't check .prototype since constructors produced by .bind haven't it
+    // `Function#toString` throws on some built-it function in some legacy engines
+    // (for example, `DOMQuad` and similar in FF41-)
+    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));
+  } catch (error) {
+    return true;
   }
+};
 
-  return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));
-}; // `IsConstructor` abstract operation
+isConstructorLegacy.sham = true; // `IsConstructor` abstract operation
 // https://tc39.es/ecma262/#sec-isconstructor
 
-
 module.exports = !construct || fails(function () {
   var called;
   return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {
@@ -2716,7 +2830,229 @@ module.exports = !construct || fails(function () {
 }) ? isConstructorLegacy : isConstructorModern;
 
 /***/ }),
-/* 84 */
+/* 89 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var getBuiltIn = __webpack_require__(23);
+
+var hasOwn = __webpack_require__(38);
+
+var toString = __webpack_require__(68);
+
+var shared = __webpack_require__(34);
+
+var NATIVE_SYMBOL_REGISTRY = __webpack_require__(90);
+
+var StringToSymbolRegistry = shared('string-to-symbol-registry');
+var SymbolToStringRegistry = shared('symbol-to-string-registry'); // `Symbol.for` method
+// https://tc39.es/ecma262/#sec-symbol.for
+
+$({
+  target: 'Symbol',
+  stat: true,
+  forced: !NATIVE_SYMBOL_REGISTRY
+}, {
+  'for': function (key) {
+    var string = toString(key);
+    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
+    var symbol = getBuiltIn('Symbol')(string);
+    StringToSymbolRegistry[string] = symbol;
+    SymbolToStringRegistry[symbol] = string;
+    return symbol;
+  }
+});
+
+/***/ }),
+/* 90 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var NATIVE_SYMBOL = __webpack_require__(26);
+/* eslint-disable es-x/no-symbol -- safe */
+
+
+module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;
+
+/***/ }),
+/* 91 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var hasOwn = __webpack_require__(38);
+
+var isSymbol = __webpack_require__(22);
+
+var tryToString = __webpack_require__(31);
+
+var shared = __webpack_require__(34);
+
+var NATIVE_SYMBOL_REGISTRY = __webpack_require__(90);
+
+var SymbolToStringRegistry = shared('symbol-to-string-registry'); // `Symbol.keyFor` method
+// https://tc39.es/ecma262/#sec-symbol.keyfor
+
+$({
+  target: 'Symbol',
+  stat: true,
+  forced: !NATIVE_SYMBOL_REGISTRY
+}, {
+  keyFor: function keyFor(sym) {
+    if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');
+    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
+  }
+});
+
+/***/ }),
+/* 92 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var getBuiltIn = __webpack_require__(23);
+
+var apply = __webpack_require__(93);
+
+var call = __webpack_require__(8);
+
+var uncurryThis = __webpack_require__(14);
+
+var fails = __webpack_require__(7);
+
+var isArray = __webpack_require__(87);
+
+var isCallable = __webpack_require__(21);
+
+var isObject = __webpack_require__(20);
+
+var isSymbol = __webpack_require__(22);
+
+var arraySlice = __webpack_require__(94);
+
+var NATIVE_SYMBOL = __webpack_require__(26);
+
+var $stringify = getBuiltIn('JSON', 'stringify');
+var exec = uncurryThis(/./.exec);
+var charAt = uncurryThis(''.charAt);
+var charCodeAt = uncurryThis(''.charCodeAt);
+var replace = uncurryThis(''.replace);
+var numberToString = uncurryThis(1.0.toString);
+var tester = /[\uD800-\uDFFF]/g;
+var low = /^[\uD800-\uDBFF]$/;
+var hi = /^[\uDC00-\uDFFF]$/;
+var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {
+  var symbol = getBuiltIn('Symbol')(); // MS Edge converts symbol values to JSON as {}
+
+  return $stringify([symbol]) != '[null]' // WebKit converts symbol values to JSON as null
+  || $stringify({
+    a: symbol
+  }) != '{}' // V8 throws on boxed symbols
+  || $stringify(Object(symbol)) != '{}';
+}); // https://github.com/tc39/proposal-well-formed-stringify
+
+var ILL_FORMED_UNICODE = fails(function () {
+  return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' || $stringify('\uDEAD') !== '"\\udead"';
+});
+
+var stringifyWithSymbolsFix = function (it, replacer) {
+  var args = arraySlice(arguments);
+  var $replacer = replacer;
+  if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+
+  if (!isArray(replacer)) replacer = function (key, value) {
+    if (isCallable($replacer)) value = call($replacer, this, key, value);
+    if (!isSymbol(value)) return value;
+  };
+  args[1] = replacer;
+  return apply($stringify, null, args);
+};
+
+var fixIllFormed = function (match, offset, string) {
+  var prev = charAt(string, offset - 1);
+  var next = charAt(string, offset + 1);
+
+  if (exec(low, match) && !exec(hi, next) || exec(hi, match) && !exec(low, prev)) {
+    return '\\u' + numberToString(charCodeAt(match, 0), 16);
+  }
+
+  return match;
+};
+
+if ($stringify) {
+  // `JSON.stringify` method
+  // https://tc39.es/ecma262/#sec-json.stringify
+  $({
+    target: 'JSON',
+    stat: true,
+    arity: 3,
+    forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE
+  }, {
+    // eslint-disable-next-line no-unused-vars -- required for `.length`
+    stringify: function stringify(it, replacer, space) {
+      var args = arraySlice(arguments);
+      var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
+      return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;
+    }
+  });
+}
+
+/***/ }),
+/* 93 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var NATIVE_BIND = __webpack_require__(9);
+
+var FunctionPrototype = Function.prototype;
+var apply = FunctionPrototype.apply;
+var call = FunctionPrototype.call; // eslint-disable-next-line es-x/no-reflect -- safe
+
+module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
+  return call.apply(apply, arguments);
+});
+
+/***/ }),
+/* 94 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var uncurryThis = __webpack_require__(14);
+
+module.exports = uncurryThis([].slice);
+
+/***/ }),
+/* 95 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var NATIVE_SYMBOL = __webpack_require__(26);
+
+var fails = __webpack_require__(7);
+
+var getOwnPropertySymbolsModule = __webpack_require__(66);
+
+var toObject = __webpack_require__(39); // V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+// https://bugs.chromium.org/p/v8/issues/detail?id=3443
+
+
+var FORCED = !NATIVE_SYMBOL || fails(function () {
+  getOwnPropertySymbolsModule.f(1);
+}); // `Object.getOwnPropertySymbols` method
+// https://tc39.es/ecma262/#sec-object.getownpropertysymbols
+
+$({
+  target: 'Object',
+  stat: true,
+  forced: FORCED
+}, {
+  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+    var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
+    return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];
+  }
+});
+
+/***/ }),
+/* 96 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -2724,25 +3060,25 @@ module.exports = !construct || fails(function () {
 // https://tc39.es/ecma262/#sec-symbol.prototype.description
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var isPrototypeOf = __webpack_require__(21);
+var isPrototypeOf = __webpack_require__(24);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
-var copyConstructorProperties = __webpack_require__(50);
+var copyConstructorProperties = __webpack_require__(55);
 
 var NativeSymbol = global.Symbol;
 var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
@@ -2763,23 +3099,24 @@ NativeSymbol().description !== undefined)) {
   SymbolWrapper.prototype = SymbolPrototype;
   SymbolPrototype.constructor = SymbolWrapper;
   var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
-  var symbolToString = uncurryThis(SymbolPrototype.toString);
-  var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);
+  var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);
+  var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);
   var regexp = /^Symbol\((.*)\)[^)]+$/;
   var replace = uncurryThis(''.replace);
   var stringSlice = uncurryThis(''.slice);
   defineProperty(SymbolPrototype, 'description', {
     configurable: true,
     get: function description() {
-      var symbol = symbolValueOf(this);
-      var string = symbolToString(symbol);
+      var symbol = thisSymbolValue(this);
       if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
+      var string = symbolDescriptiveString(symbol);
       var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
       return desc === '' ? undefined : desc;
     }
   });
   $({
     global: true,
+    constructor: true,
     forced: true
   }, {
     Symbol: SymbolWrapper
@@ -2787,277 +3124,337 @@ NativeSymbol().description !== undefined)) {
 }
 
 /***/ }),
-/* 85 */
+/* 97 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.asyncIterator` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.asyncIterator` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.asynciterator
 
 
 defineWellKnownSymbol('asyncIterator');
 
 /***/ }),
-/* 86 */
+/* 98 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.hasInstance` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.hasInstance` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.hasinstance
 
 
 defineWellKnownSymbol('hasInstance');
 
 /***/ }),
-/* 87 */
+/* 99 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.isConcatSpreadable` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.isConcatSpreadable` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.isconcatspreadable
 
 
 defineWellKnownSymbol('isConcatSpreadable');
 
 /***/ }),
-/* 88 */
+/* 100 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.iterator` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.iterator` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.iterator
 
 
 defineWellKnownSymbol('iterator');
 
 /***/ }),
-/* 89 */
+/* 101 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.match` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.match` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.match
 
 
 defineWellKnownSymbol('match');
 
 /***/ }),
-/* 90 */
+/* 102 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.matchAll` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.matchAll` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.matchall
 
 
 defineWellKnownSymbol('matchAll');
 
 /***/ }),
-/* 91 */
+/* 103 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.replace` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.replace` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.replace
 
 
 defineWellKnownSymbol('replace');
 
 /***/ }),
-/* 92 */
+/* 104 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.search` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.search` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.search
 
 
 defineWellKnownSymbol('search');
 
 /***/ }),
-/* 93 */
+/* 105 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.species` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.species` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.species
 
 
 defineWellKnownSymbol('species');
 
 /***/ }),
-/* 94 */
+/* 106 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.split` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.split` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.split
 
 
 defineWellKnownSymbol('split');
 
 /***/ }),
-/* 95 */
+/* 107 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.toPrimitive` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79);
+
+var defineSymbolToPrimitive = __webpack_require__(81); // `Symbol.toPrimitive` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.toprimitive
 
 
-defineWellKnownSymbol('toPrimitive');
+defineWellKnownSymbol('toPrimitive'); // `Symbol.prototype[@@toPrimitive]` method
+// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
+
+defineSymbolToPrimitive();
 
 /***/ }),
-/* 96 */
+/* 108 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.toStringTag` well-known symbol
+var getBuiltIn = __webpack_require__(23);
+
+var defineWellKnownSymbol = __webpack_require__(79);
+
+var setToStringTag = __webpack_require__(82); // `Symbol.toStringTag` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.tostringtag
 
 
-defineWellKnownSymbol('toStringTag');
+defineWellKnownSymbol('toStringTag'); // `Symbol.prototype[@@toStringTag]` property
+// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
+
+setToStringTag(getBuiltIn('Symbol'), 'Symbol');
 
 /***/ }),
-/* 97 */
+/* 109 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var defineWellKnownSymbol = __webpack_require__(76); // `Symbol.unscopables` well-known symbol
+var defineWellKnownSymbol = __webpack_require__(79); // `Symbol.unscopables` well-known symbol
 // https://tc39.es/ecma262/#sec-symbol.unscopables
 
 
 defineWellKnownSymbol('unscopables');
 
 /***/ }),
-/* 98 */
+/* 110 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-"use strict";
-
-
-var $ = __webpack_require__(2);
-
-var global = __webpack_require__(3);
+/* eslint-disable no-unused-vars -- required for functions `.length` */
+var $ = __webpack_require__(3);
 
-var isPrototypeOf = __webpack_require__(21);
+var global = __webpack_require__(4);
 
-var getPrototypeOf = __webpack_require__(99);
+var apply = __webpack_require__(93);
 
-var setPrototypeOf = __webpack_require__(101);
+var wrapErrorConstructorWithCause = __webpack_require__(111);
 
-var copyConstructorProperties = __webpack_require__(50);
+var WEB_ASSEMBLY = 'WebAssembly';
+var WebAssembly = global[WEB_ASSEMBLY];
+var FORCED = Error('e', {
+  cause: 7
+}).cause !== 7;
 
-var create = __webpack_require__(67);
-
-var createNonEnumerableProperty = __webpack_require__(40);
+var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {
+  var O = {};
+  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);
+  $({
+    global: true,
+    constructor: true,
+    arity: 1,
+    forced: FORCED
+  }, O);
+};
 
-var createPropertyDescriptor = __webpack_require__(9);
+var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {
+  if (WebAssembly && WebAssembly[ERROR_NAME]) {
+    var O = {};
+    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);
+    $({
+      target: WEB_ASSEMBLY,
+      stat: true,
+      constructor: true,
+      arity: 1,
+      forced: FORCED
+    }, O);
+  }
+}; // https://github.com/tc39/proposal-error-cause
 
-var clearErrorStack = __webpack_require__(103);
 
-var installErrorCause = __webpack_require__(104);
+exportGlobalErrorCauseWrapper('Error', function (init) {
+  return function Error(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportGlobalErrorCauseWrapper('EvalError', function (init) {
+  return function EvalError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportGlobalErrorCauseWrapper('RangeError', function (init) {
+  return function RangeError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportGlobalErrorCauseWrapper('ReferenceError', function (init) {
+  return function ReferenceError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportGlobalErrorCauseWrapper('SyntaxError', function (init) {
+  return function SyntaxError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportGlobalErrorCauseWrapper('TypeError', function (init) {
+  return function TypeError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportGlobalErrorCauseWrapper('URIError', function (init) {
+  return function URIError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportWebAssemblyErrorCauseWrapper('CompileError', function (init) {
+  return function CompileError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportWebAssemblyErrorCauseWrapper('LinkError', function (init) {
+  return function LinkError(message) {
+    return apply(init, this, arguments);
+  };
+});
+exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {
+  return function RuntimeError(message) {
+    return apply(init, this, arguments);
+  };
+});
 
-var iterate = __webpack_require__(105);
+/***/ }),
+/* 111 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var normalizeStringArgument = __webpack_require__(111);
+"use strict";
 
-var wellKnownSymbol = __webpack_require__(30);
 
-var ERROR_STACK_INSTALLABLE = __webpack_require__(112);
+var getBuiltIn = __webpack_require__(23);
 
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-var Error = global.Error;
-var push = [].push;
+var hasOwn = __webpack_require__(38);
 
-var $AggregateError = function AggregateError(errors, message
-/* , options */
-) {
-  var options = arguments.length > 2 ? arguments[2] : undefined;
-  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
-  var that;
+var createNonEnumerableProperty = __webpack_require__(43);
 
-  if (setPrototypeOf) {
-    that = setPrototypeOf(new Error(undefined), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
-  } else {
-    that = isInstance ? this : create(AggregateErrorPrototype);
-    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
-  }
+var isPrototypeOf = __webpack_require__(24);
 
-  createNonEnumerableProperty(that, 'message', normalizeStringArgument(message, ''));
-  if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));
-  installErrorCause(that, options);
-  var errorsArray = [];
-  iterate(errors, push, {
-    that: errorsArray
-  });
-  createNonEnumerableProperty(that, 'errors', errorsArray);
-  return that;
-};
+var setPrototypeOf = __webpack_require__(112);
 
-if (setPrototypeOf) setPrototypeOf($AggregateError, Error);else copyConstructorProperties($AggregateError, Error);
-var AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {
-  constructor: createPropertyDescriptor(1, $AggregateError),
-  message: createPropertyDescriptor(1, ''),
-  name: createPropertyDescriptor(1, 'AggregateError')
-}); // `AggregateError` constructor
-// https://tc39.es/ecma262/#sec-aggregate-error-constructor
+var copyConstructorProperties = __webpack_require__(55);
 
-$({
-  global: true
-}, {
-  AggregateError: $AggregateError
-});
+var proxyAccessor = __webpack_require__(114);
 
-/***/ }),
-/* 99 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+var inheritIfRequired = __webpack_require__(115);
 
-var global = __webpack_require__(3);
+var normalizeStringArgument = __webpack_require__(116);
 
-var hasOwn = __webpack_require__(35);
+var installErrorCause = __webpack_require__(117);
 
-var isCallable = __webpack_require__(18);
+var clearErrorStack = __webpack_require__(118);
 
-var toObject = __webpack_require__(36);
+var ERROR_STACK_INSTALLABLE = __webpack_require__(119);
 
-var sharedKey = __webpack_require__(47);
+var DESCRIPTORS = __webpack_require__(6);
 
-var CORRECT_PROTOTYPE_GETTER = __webpack_require__(100);
+var IS_PURE = __webpack_require__(35);
 
-var IE_PROTO = sharedKey('IE_PROTO');
-var Object = global.Object;
-var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method
-// https://tc39.es/ecma262/#sec-object.getprototypeof
+module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {
+  var STACK_TRACE_LIMIT = 'stackTraceLimit';
+  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;
+  var path = FULL_NAME.split('.');
+  var ERROR_NAME = path[path.length - 1];
+  var OriginalError = getBuiltIn.apply(null, path);
+  if (!OriginalError) return;
+  var OriginalErrorPrototype = OriginalError.prototype; // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006
 
-module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
-  var object = toObject(O);
-  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
-  var constructor = object.constructor;
+  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;
+  if (!FORCED) return OriginalError;
+  var BaseError = getBuiltIn('Error');
+  var WrappedError = wrapper(function (a, b) {
+    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);
+    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();
+    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);
+    if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));
+    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);
+    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);
+    return result;
+  });
+  WrappedError.prototype = OriginalErrorPrototype;
 
-  if (isCallable(constructor) && object instanceof constructor) {
-    return constructor.prototype;
+  if (ERROR_NAME !== 'Error') {
+    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);else copyConstructorProperties(WrappedError, BaseError, {
+      name: true
+    });
+  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {
+    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);
+    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');
   }
 
-  return object instanceof Object ? ObjectPrototype : null;
-};
-
-/***/ }),
-/* 100 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var fails = __webpack_require__(6);
+  copyConstructorProperties(WrappedError, OriginalError);
+  if (!IS_PURE) try {
+    // Safari 13- bug: WebAssembly errors does not have a proper `.name`
+    if (OriginalErrorPrototype.name !== ERROR_NAME) {
+      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);
+    }
 
-module.exports = !fails(function () {
-  function F() {
+    OriginalErrorPrototype.constructor = WrappedError;
+  } catch (error) {
     /* empty */
   }
-
-  F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
-
-  return Object.getPrototypeOf(new F()) !== F.prototype;
-});
+  return WrappedError;
+};
 
 /***/ }),
-/* 101 */
+/* 112 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 /* eslint-disable no-proto -- safe */
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var aPossiblePrototype = __webpack_require__(102); // `Object.setPrototypeOf` method
+var aPossiblePrototype = __webpack_require__(113); // `Object.setPrototypeOf` method
 // https://tc39.es/ecma262/#sec-object.setprototypeof
 // Works with __proto__ only. Old v8 can't work with null proto objects.
-// eslint-disable-next-line es/no-object-setprototypeof -- safe
+// eslint-disable-next-line es-x/no-object-setprototypeof -- safe
 
 
 module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
@@ -3066,7 +3463,7 @@ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
   var setter;
 
   try {
-    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+    // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
     setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
     setter(test, []);
     CORRECT_SETTER = test instanceof Array;
@@ -3083,96 +3480,343 @@ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
 }() : undefined);
 
 /***/ }),
-/* 102 */
+/* 113 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
-
-var String = global.String;
-var TypeError = global.TypeError;
+var $String = String;
+var $TypeError = TypeError;
 
 module.exports = function (argument) {
   if (typeof argument == 'object' || isCallable(argument)) return argument;
-  throw TypeError("Can't set " + String(argument) + ' as a prototype');
+  throw $TypeError("Can't set " + $String(argument) + ' as a prototype');
 };
 
 /***/ }),
-/* 103 */
+/* 114 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var defineProperty = (__webpack_require__(44).f);
+
+module.exports = function (Target, Source, key) {
+  key in Target || defineProperty(Target, key, {
+    configurable: true,
+    get: function () {
+      return Source[key];
+    },
+    set: function (it) {
+      Source[key] = it;
+    }
+  });
+};
+
+/***/ }),
+/* 115 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var isCallable = __webpack_require__(21);
+
+var isObject = __webpack_require__(20);
+
+var setPrototypeOf = __webpack_require__(112); // makes subclassing work correct for wrapped built-ins
+
+
+module.exports = function ($this, dummy, Wrapper) {
+  var NewTarget, NewTargetPrototype;
+  if ( // it can work only with native `setPrototypeOf`
+  setPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
+  isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf($this, NewTargetPrototype);
+  return $this;
+};
+
+/***/ }),
+/* 116 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var toString = __webpack_require__(68);
+
+module.exports = function (argument, $default) {
+  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);
+};
+
+/***/ }),
+/* 117 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var isObject = __webpack_require__(20);
+
+var createNonEnumerableProperty = __webpack_require__(43); // `InstallErrorCause` abstract operation
+// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
+
+
+module.exports = function (O, options) {
+  if (isObject(options) && 'cause' in options) {
+    createNonEnumerableProperty(O, 'cause', options.cause);
+  }
+};
+
+/***/ }),
+/* 118 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var arraySlice = __webpack_require__(72);
+var uncurryThis = __webpack_require__(14);
 
+var $Error = Error;
 var replace = uncurryThis(''.replace);
-var split = uncurryThis(''.split);
-var join = uncurryThis([].join);
 
 var TEST = function (arg) {
-  return String(Error(arg).stack);
+  return String($Error(arg).stack);
 }('zxcasd');
 
 var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
 var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
-var IS_FIREFOX_OR_SAFARI_STACK = /@[^\n]*\n/.test(TEST) && !/zxcasd/.test(TEST);
 
 module.exports = function (stack, dropEntries) {
-  if (typeof stack != 'string') return stack;
-
-  if (IS_V8_OR_CHAKRA_STACK) {
+  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {
     while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');
-  } else if (IS_FIREFOX_OR_SAFARI_STACK) {
-    return join(arraySlice(split(stack, '\n'), dropEntries), '\n');
   }
 
   return stack;
 };
 
 /***/ }),
-/* 104 */
+/* 119 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var isObject = __webpack_require__(17);
+var fails = __webpack_require__(7);
 
-var createNonEnumerableProperty = __webpack_require__(40); // `InstallErrorCause` abstract operation
-// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
+var createPropertyDescriptor = __webpack_require__(11);
 
+module.exports = !fails(function () {
+  var error = Error('a');
+  if (!('stack' in error)) return true; // eslint-disable-next-line es-x/no-object-defineproperty -- safe
 
-module.exports = function (O, options) {
-  if (isObject(options) && 'cause' in options) {
-    createNonEnumerableProperty(O, 'cause', options.cause);
+  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));
+  return error.stack !== 7;
+});
+
+/***/ }),
+/* 120 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var defineBuiltIn = __webpack_require__(47);
+
+var errorToString = __webpack_require__(121);
+
+var ErrorPrototype = Error.prototype; // `Error.prototype.toString` method fix
+// https://tc39.es/ecma262/#sec-error.prototype.tostring
+
+if (ErrorPrototype.toString !== errorToString) {
+  defineBuiltIn(ErrorPrototype, 'toString', errorToString);
+}
+
+/***/ }),
+/* 121 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var DESCRIPTORS = __webpack_require__(6);
+
+var fails = __webpack_require__(7);
+
+var anObject = __webpack_require__(46);
+
+var create = __webpack_require__(71);
+
+var normalizeStringArgument = __webpack_require__(116);
+
+var nativeErrorToString = Error.prototype.toString;
+var INCORRECT_TO_STRING = fails(function () {
+  if (DESCRIPTORS) {
+    // Chrome 32- incorrectly call accessor
+    // eslint-disable-next-line es-x/no-object-defineproperty -- safe
+    var object = create(Object.defineProperty({}, 'name', {
+      get: function () {
+        return this === object;
+      }
+    }));
+    if (nativeErrorToString.call(object) !== 'true') return true;
+  } // FF10- does not properly handle non-strings
+
+
+  return nativeErrorToString.call({
+    message: 1,
+    name: 2
+  }) !== '2: 1' // IE8 does not properly handle defaults
+  || nativeErrorToString.call({}) !== 'Error';
+});
+module.exports = INCORRECT_TO_STRING ? function toString() {
+  var O = anObject(this);
+  var name = normalizeStringArgument(O.name, 'Error');
+  var message = normalizeStringArgument(O.message);
+  return !name ? message : !message ? name : name + ': ' + message;
+} : nativeErrorToString;
+
+/***/ }),
+/* 122 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(123);
+
+/***/ }),
+/* 123 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var isPrototypeOf = __webpack_require__(24);
+
+var getPrototypeOf = __webpack_require__(124);
+
+var setPrototypeOf = __webpack_require__(112);
+
+var copyConstructorProperties = __webpack_require__(55);
+
+var create = __webpack_require__(71);
+
+var createNonEnumerableProperty = __webpack_require__(43);
+
+var createPropertyDescriptor = __webpack_require__(11);
+
+var clearErrorStack = __webpack_require__(118);
+
+var installErrorCause = __webpack_require__(117);
+
+var iterate = __webpack_require__(126);
+
+var normalizeStringArgument = __webpack_require__(116);
+
+var wellKnownSymbol = __webpack_require__(33);
+
+var ERROR_STACK_INSTALLABLE = __webpack_require__(119);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var $Error = Error;
+var push = [].push;
+
+var $AggregateError = function AggregateError(errors, message
+/* , options */
+) {
+  var options = arguments.length > 2 ? arguments[2] : undefined;
+  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
+  var that;
+
+  if (setPrototypeOf) {
+    that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
+  } else {
+    that = isInstance ? this : create(AggregateErrorPrototype);
+    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
   }
+
+  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));
+  if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));
+  installErrorCause(that, options);
+  var errorsArray = [];
+  iterate(errors, push, {
+    that: errorsArray
+  });
+  createNonEnumerableProperty(that, 'errors', errorsArray);
+  return that;
 };
 
+if (setPrototypeOf) setPrototypeOf($AggregateError, $Error);else copyConstructorProperties($AggregateError, $Error, {
+  name: true
+});
+var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {
+  constructor: createPropertyDescriptor(1, $AggregateError),
+  message: createPropertyDescriptor(1, ''),
+  name: createPropertyDescriptor(1, 'AggregateError')
+}); // `AggregateError` constructor
+// https://tc39.es/ecma262/#sec-aggregate-error-constructor
+
+$({
+  global: true,
+  constructor: true,
+  arity: 2
+}, {
+  AggregateError: $AggregateError
+});
+
 /***/ }),
-/* 105 */
+/* 124 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var hasOwn = __webpack_require__(38);
+
+var isCallable = __webpack_require__(21);
+
+var toObject = __webpack_require__(39);
+
+var sharedKey = __webpack_require__(53);
+
+var CORRECT_PROTOTYPE_GETTER = __webpack_require__(125);
+
+var IE_PROTO = sharedKey('IE_PROTO');
+var $Object = Object;
+var ObjectPrototype = $Object.prototype; // `Object.getPrototypeOf` method
+// https://tc39.es/ecma262/#sec-object.getprototypeof
+// eslint-disable-next-line es-x/no-object-getprototypeof -- safe
+
+module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
+  var object = toObject(O);
+  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
+  var constructor = object.constructor;
+
+  if (isCallable(constructor) && object instanceof constructor) {
+    return constructor.prototype;
+  }
+
+  return object instanceof $Object ? ObjectPrototype : null;
+};
+
+/***/ }),
+/* 125 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var fails = __webpack_require__(7);
+
+module.exports = !fails(function () {
+  function F() {
+    /* empty */
+  }
+
+  F.prototype.constructor = null; // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing
 
-var bind = __webpack_require__(80);
+  return Object.getPrototypeOf(new F()) !== F.prototype;
+});
 
-var call = __webpack_require__(7);
+/***/ }),
+/* 126 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var anObject = __webpack_require__(42);
+var bind = __webpack_require__(84);
 
-var tryToString = __webpack_require__(28);
+var call = __webpack_require__(8);
 
-var isArrayIteratorMethod = __webpack_require__(106);
+var anObject = __webpack_require__(46);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var tryToString = __webpack_require__(31);
 
-var isPrototypeOf = __webpack_require__(21);
+var isArrayIteratorMethod = __webpack_require__(127);
 
-var getIterator = __webpack_require__(108);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var getIteratorMethod = __webpack_require__(109);
+var isPrototypeOf = __webpack_require__(24);
 
-var iteratorClose = __webpack_require__(110);
+var getIterator = __webpack_require__(129);
 
-var TypeError = global.TypeError;
+var getIteratorMethod = __webpack_require__(130);
+
+var iteratorClose = __webpack_require__(131);
+
+var $TypeError = TypeError;
 
 var Result = function (stopped, result) {
   this.stopped = stopped;
@@ -3184,6 +3828,7 @@ var ResultPrototype = Result.prototype;
 module.exports = function (iterable, unboundFunction, options) {
   var that = options && options.that;
   var AS_ENTRIES = !!(options && options.AS_ENTRIES);
+  var IS_RECORD = !!(options && options.IS_RECORD);
   var IS_ITERATOR = !!(options && options.IS_ITERATOR);
   var INTERRUPTED = !!(options && options.INTERRUPTED);
   var fn = bind(unboundFunction, that);
@@ -3203,11 +3848,13 @@ module.exports = function (iterable, unboundFunction, options) {
     return INTERRUPTED ? fn(value, stop) : fn(value);
   };
 
-  if (IS_ITERATOR) {
+  if (IS_RECORD) {
+    iterator = iterable.iterator;
+  } else if (IS_ITERATOR) {
     iterator = iterable;
   } else {
     iterFn = getIteratorMethod(iterable);
-    if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators
+    if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators
 
     if (isArrayIteratorMethod(iterFn)) {
       for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
@@ -3221,7 +3868,7 @@ module.exports = function (iterable, unboundFunction, options) {
     iterator = getIterator(iterable, iterFn);
   }
 
-  next = iterator.next;
+  next = IS_RECORD ? iterable.next : iterator.next;
 
   while (!(step = call(next, iterator)).done) {
     try {
@@ -3237,12 +3884,12 @@ module.exports = function (iterable, unboundFunction, options) {
 };
 
 /***/ }),
-/* 106 */
+/* 127 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var Iterators = __webpack_require__(107);
+var Iterators = __webpack_require__(128);
 
 var ITERATOR = wellKnownSymbol('iterator');
 var ArrayPrototype = Array.prototype; // check on default Array iterator
@@ -3252,62 +3899,62 @@ module.exports = function (it) {
 };
 
 /***/ }),
-/* 107 */
+/* 128 */
 /***/ ((module) => {
 
 module.exports = {};
 
 /***/ }),
-/* 108 */
+/* 129 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var tryToString = __webpack_require__(28);
+var tryToString = __webpack_require__(31);
 
-var getIteratorMethod = __webpack_require__(109);
+var getIteratorMethod = __webpack_require__(130);
 
-var TypeError = global.TypeError;
+var $TypeError = TypeError;
 
 module.exports = function (argument, usingIterator) {
   var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
   if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
-  throw TypeError(tryToString(argument) + ' is not iterable');
+  throw $TypeError(tryToString(argument) + ' is not iterable');
 };
 
 /***/ }),
-/* 109 */
+/* 130 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var classof = __webpack_require__(65);
+var classof = __webpack_require__(69);
+
+var getMethod = __webpack_require__(29);
 
-var getMethod = __webpack_require__(26);
+var isNullOrUndefined = __webpack_require__(17);
 
-var Iterators = __webpack_require__(107);
+var Iterators = __webpack_require__(128);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var ITERATOR = wellKnownSymbol('iterator');
 
 module.exports = function (it) {
-  if (it != undefined) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];
+  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];
 };
 
 /***/ }),
-/* 110 */
+/* 131 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var getMethod = __webpack_require__(26);
+var getMethod = __webpack_require__(29);
 
 module.exports = function (iterator, kind, value) {
   var innerResult, innerError;
@@ -3334,47 +3981,59 @@ module.exports = function (iterator, kind, value) {
 };
 
 /***/ }),
-/* 111 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 132 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var toString = __webpack_require__(64);
+var $ = __webpack_require__(3);
 
-module.exports = function (argument, $default) {
-  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);
-};
+var getBuiltIn = __webpack_require__(23);
 
-/***/ }),
-/* 112 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+var apply = __webpack_require__(93);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var wrapErrorConstructorWithCause = __webpack_require__(111);
 
-module.exports = !fails(function () {
-  var error = Error('a');
-  if (!('stack' in error)) return true; // eslint-disable-next-line es/no-object-defineproperty -- safe
+var AGGREGATE_ERROR = 'AggregateError';
+var $AggregateError = getBuiltIn(AGGREGATE_ERROR);
+var FORCED = !fails(function () {
+  return $AggregateError([1]).errors[0] !== 1;
+}) && fails(function () {
+  return $AggregateError([1], AGGREGATE_ERROR, {
+    cause: 7
+  }).cause !== 7;
+}); // https://github.com/tc39/proposal-error-cause
 
-  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));
-  return error.stack !== 7;
+$({
+  global: true,
+  constructor: true,
+  arity: 2,
+  forced: FORCED
+}, {
+  AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {
+    // eslint-disable-next-line no-unused-vars -- required for functions `.length`
+    return function AggregateError(errors, message) {
+      return apply(init, this, arguments);
+    };
+  }, FORCED, true)
 });
 
 /***/ }),
-/* 113 */
+/* 133 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var addToUnscopables = __webpack_require__(114); // `Array.prototype.at` method
+var addToUnscopables = __webpack_require__(134); // `Array.prototype.at` method
 // https://github.com/tc39/proposal-relative-indexing-method
 
 
@@ -3393,21 +4052,21 @@ $({
 addToUnscopables('at');
 
 /***/ }),
-/* 114 */
+/* 134 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var create = __webpack_require__(67);
+var create = __webpack_require__(71);
 
-var definePropertyModule = __webpack_require__(41);
+var defineProperty = (__webpack_require__(44).f);
 
 var UNSCOPABLES = wellKnownSymbol('unscopables');
 var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]
 // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
 
 if (ArrayPrototype[UNSCOPABLES] == undefined) {
-  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
+  defineProperty(ArrayPrototype, UNSCOPABLES, {
     configurable: true,
     value: create(null)
   });
@@ -3419,40 +4078,37 @@ module.exports = function (key) {
 };
 
 /***/ }),
-/* 115 */
+/* 135 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var fails = __webpack_require__(7);
 
-var fails = __webpack_require__(6);
+var isArray = __webpack_require__(87);
 
-var isArray = __webpack_require__(63);
+var isObject = __webpack_require__(20);
 
-var isObject = __webpack_require__(17);
+var toObject = __webpack_require__(39);
 
-var toObject = __webpack_require__(36);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var doesNotExceedSafeInteger = __webpack_require__(136);
 
-var createProperty = __webpack_require__(73);
+var createProperty = __webpack_require__(77);
 
-var arraySpeciesCreate = __webpack_require__(81);
+var arraySpeciesCreate = __webpack_require__(85);
 
-var arrayMethodHasSpeciesSupport = __webpack_require__(116);
+var arrayMethodHasSpeciesSupport = __webpack_require__(137);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var V8_VERSION = __webpack_require__(24);
+var V8_VERSION = __webpack_require__(27);
 
-var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
-var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
-var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
-var TypeError = global.TypeError; // We can't use this feature detection in V8 since it causes
+var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); // We can't use this feature detection in V8 since it causes
 // deoptimization and serious performance degradation
 // https://github.com/zloirock/core-js/issues/679
 
@@ -3476,6 +4132,7 @@ var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.protot
 $({
   target: 'Array',
   proto: true,
+  arity: 1,
   forced: FORCED
 }, {
   // eslint-disable-next-line no-unused-vars -- required for `.length`
@@ -3490,11 +4147,11 @@ $({
 
       if (isConcatSpreadable(E)) {
         len = lengthOfArrayLike(E);
-        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+        doesNotExceedSafeInteger(n + len);
 
         for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
       } else {
-        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+        doesNotExceedSafeInteger(n + 1);
         createProperty(A, n++, E);
       }
     }
@@ -3505,14 +4162,26 @@ $({
 });
 
 /***/ }),
-/* 116 */
+/* 136 */
+/***/ ((module) => {
+
+var $TypeError = TypeError;
+var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
+
+module.exports = function (it) {
+  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');
+  return it;
+};
+
+/***/ }),
+/* 137 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var V8_VERSION = __webpack_require__(24);
+var V8_VERSION = __webpack_require__(27);
 
 var SPECIES = wellKnownSymbol('species');
 
@@ -3535,14 +4204,14 @@ module.exports = function (METHOD_NAME) {
 };
 
 /***/ }),
-/* 117 */
+/* 138 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var copyWithin = __webpack_require__(118);
+var copyWithin = __webpack_require__(139);
 
-var addToUnscopables = __webpack_require__(114); // `Array.prototype.copyWithin` method
+var addToUnscopables = __webpack_require__(134); // `Array.prototype.copyWithin` method
 // https://tc39.es/ecma262/#sec-array.prototype.copywithin
 
 
@@ -3556,21 +4225,23 @@ $({
 addToUnscopables('copyWithin');
 
 /***/ }),
-/* 118 */
+/* 139 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
+
+var toAbsoluteIndex = __webpack_require__(60);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var deletePropertyOrThrow = __webpack_require__(140);
 
 var min = Math.min; // `Array.prototype.copyWithin` method implementation
 // https://tc39.es/ecma262/#sec-array.prototype.copywithin
-// eslint-disable-next-line es/no-array-prototype-copywithin -- safe
+// eslint-disable-next-line es-x/no-array-prototype-copywithin -- safe
 
 module.exports = [].copyWithin || function copyWithin(target
 /* = 0 */
@@ -3592,7 +4263,7 @@ module.exports = [].copyWithin || function copyWithin(target
   }
 
   while (count-- > 0) {
-    if (from in O) O[to] = O[from];else delete O[to];
+    if (from in O) O[to] = O[from];else deletePropertyOrThrow(O, to);
     to += inc;
     from += inc;
   }
@@ -3601,17 +4272,32 @@ module.exports = [].copyWithin || function copyWithin(target
 };
 
 /***/ }),
-/* 119 */
+/* 140 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var tryToString = __webpack_require__(31);
+
+var $TypeError = TypeError;
+
+module.exports = function (O, P) {
+  if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));
+};
+
+/***/ }),
+/* 141 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $every = (__webpack_require__(79).every);
+var $every = (__webpack_require__(83).every);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
 var STRICT_METHOD = arrayMethodIsStrict('every'); // `Array.prototype.every` method
 // https://tc39.es/ecma262/#sec-array.prototype.every
@@ -3629,33 +4315,33 @@ $({
 });
 
 /***/ }),
-/* 120 */
+/* 142 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 module.exports = function (METHOD_NAME, argument) {
   var method = [][METHOD_NAME];
   return !!method && fails(function () {
-    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
+    // eslint-disable-next-line no-useless-call -- required for testing
     method.call(null, argument || function () {
-      throw 1;
+      return 1;
     }, 1);
   });
 };
 
 /***/ }),
-/* 121 */
+/* 143 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fill = __webpack_require__(122);
+var fill = __webpack_require__(144);
 
-var addToUnscopables = __webpack_require__(114); // `Array.prototype.fill` method
+var addToUnscopables = __webpack_require__(134); // `Array.prototype.fill` method
 // https://tc39.es/ecma262/#sec-array.prototype.fill
 
 
@@ -3669,17 +4355,17 @@ $({
 addToUnscopables('fill');
 
 /***/ }),
-/* 122 */
+/* 144 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var lengthOfArrayLike = __webpack_require__(57); // `Array.prototype.fill` method implementation
+var lengthOfArrayLike = __webpack_require__(63); // `Array.prototype.fill` method implementation
 // https://tc39.es/ecma262/#sec-array.prototype.fill
 
 
@@ -3699,17 +4385,17 @@ module.exports = function fill(value
 };
 
 /***/ }),
-/* 123 */
+/* 145 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $filter = (__webpack_require__(79).filter);
+var $filter = (__webpack_require__(83).filter);
 
-var arrayMethodHasSpeciesSupport = __webpack_require__(116);
+var arrayMethodHasSpeciesSupport = __webpack_require__(137);
 
 var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); // `Array.prototype.filter` method
 // https://tc39.es/ecma262/#sec-array.prototype.filter
@@ -3728,17 +4414,17 @@ $({
 });
 
 /***/ }),
-/* 124 */
+/* 146 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $find = (__webpack_require__(79).find);
+var $find = (__webpack_require__(83).find);
 
-var addToUnscopables = __webpack_require__(114);
+var addToUnscopables = __webpack_require__(134);
 
 var FIND = 'find';
 var SKIPS_HOLES = true; // Shouldn't skip holes
@@ -3763,17 +4449,17 @@ $({
 addToUnscopables(FIND);
 
 /***/ }),
-/* 125 */
+/* 147 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $findIndex = (__webpack_require__(79).findIndex);
+var $findIndex = (__webpack_require__(83).findIndex);
 
-var addToUnscopables = __webpack_require__(114);
+var addToUnscopables = __webpack_require__(134);
 
 var FIND_INDEX = 'findIndex';
 var SKIPS_HOLES = true; // Shouldn't skip holes
@@ -3798,23 +4484,126 @@ $({
 addToUnscopables(FIND_INDEX);
 
 /***/ }),
-/* 126 */
+/* 148 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var $findLast = (__webpack_require__(149).findLast);
+
+var addToUnscopables = __webpack_require__(134); // `Array.prototype.findLast` method
+// https://github.com/tc39/proposal-array-find-from-last
+
+
+$({
+  target: 'Array',
+  proto: true
+}, {
+  findLast: function findLast(callbackfn
+  /* , that = undefined */
+  ) {
+    return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+  }
+});
+addToUnscopables('findLast');
+
+/***/ }),
+/* 149 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var bind = __webpack_require__(84);
+
+var IndexedObject = __webpack_require__(13);
+
+var toObject = __webpack_require__(39);
+
+var lengthOfArrayLike = __webpack_require__(63); // `Array.prototype.{ findLast, findLastIndex }` methods implementation
+
+
+var createMethod = function (TYPE) {
+  var IS_FIND_LAST_INDEX = TYPE == 1;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IndexedObject(O);
+    var boundFunction = bind(callbackfn, that);
+    var index = lengthOfArrayLike(self);
+    var value, result;
+
+    while (index-- > 0) {
+      value = self[index];
+      result = boundFunction(value, index, O);
+      if (result) switch (TYPE) {
+        case 0:
+          return value;
+        // findLast
+
+        case 1:
+          return index;
+        // findLastIndex
+      }
+    }
+
+    return IS_FIND_LAST_INDEX ? -1 : undefined;
+  };
+};
+
+module.exports = {
+  // `Array.prototype.findLast` method
+  // https://github.com/tc39/proposal-array-find-from-last
+  findLast: createMethod(0),
+  // `Array.prototype.findLastIndex` method
+  // https://github.com/tc39/proposal-array-find-from-last
+  findLastIndex: createMethod(1)
+};
+
+/***/ }),
+/* 150 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var $findLastIndex = (__webpack_require__(149).findLastIndex);
+
+var addToUnscopables = __webpack_require__(134); // `Array.prototype.findLastIndex` method
+// https://github.com/tc39/proposal-array-find-from-last
+
+
+$({
+  target: 'Array',
+  proto: true
+}, {
+  findLastIndex: function findLastIndex(callbackfn
+  /* , that = undefined */
+  ) {
+    return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+  }
+});
+addToUnscopables('findLastIndex');
+
+/***/ }),
+/* 151 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var flattenIntoArray = __webpack_require__(127);
+var flattenIntoArray = __webpack_require__(152);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var arraySpeciesCreate = __webpack_require__(81); // `Array.prototype.flat` method
+var arraySpeciesCreate = __webpack_require__(85); // `Array.prototype.flat` method
 // https://tc39.es/ecma262/#sec-array.prototype.flat
 
 
@@ -3835,23 +4624,22 @@ $({
 });
 
 /***/ }),
-/* 127 */
+/* 152 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var isArray = __webpack_require__(87);
 
-var isArray = __webpack_require__(63);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var doesNotExceedSafeInteger = __webpack_require__(136);
 
-var bind = __webpack_require__(80);
-
-var TypeError = global.TypeError; // `FlattenIntoArray` abstract operation
+var bind = __webpack_require__(84); // `FlattenIntoArray` abstract operation
 // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
 
+
 var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
   var targetIndex = start;
   var sourceIndex = 0;
@@ -3866,7 +4654,7 @@ var flattenIntoArray = function (target, original, source, sourceLen, start, dep
         elementLen = lengthOfArrayLike(element);
         targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;
       } else {
-        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');
+        doesNotExceedSafeInteger(targetIndex + 1);
         target[targetIndex] = element;
       }
 
@@ -3882,23 +4670,23 @@ var flattenIntoArray = function (target, original, source, sourceLen, start, dep
 module.exports = flattenIntoArray;
 
 /***/ }),
-/* 128 */
+/* 153 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var flattenIntoArray = __webpack_require__(127);
+var flattenIntoArray = __webpack_require__(152);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var arraySpeciesCreate = __webpack_require__(81); // `Array.prototype.flatMap` method
+var arraySpeciesCreate = __webpack_require__(85); // `Array.prototype.flatMap` method
 // https://tc39.es/ecma262/#sec-array.prototype.flatmap
 
 
@@ -3920,17 +4708,17 @@ $({
 });
 
 /***/ }),
-/* 129 */
+/* 154 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var forEach = __webpack_require__(130); // `Array.prototype.forEach` method
+var forEach = __webpack_require__(155); // `Array.prototype.forEach` method
 // https://tc39.es/ecma262/#sec-array.prototype.foreach
-// eslint-disable-next-line es/no-array-prototype-foreach -- safe
+// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe
 
 
 $({
@@ -3942,15 +4730,15 @@ $({
 });
 
 /***/ }),
-/* 130 */
+/* 155 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $forEach = (__webpack_require__(79).forEach);
+var $forEach = (__webpack_require__(83).forEach);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
 var STRICT_METHOD = arrayMethodIsStrict('forEach'); // `Array.prototype.forEach` method implementation
 // https://tc39.es/ecma262/#sec-array.prototype.foreach
@@ -3958,21 +4746,21 @@ var STRICT_METHOD = arrayMethodIsStrict('forEach'); // `Array.prototype.forEach`
 module.exports = !STRICT_METHOD ? function forEach(callbackfn
 /* , thisArg */
 ) {
-  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); // eslint-disable-next-line es/no-array-prototype-foreach -- safe
+  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); // eslint-disable-next-line es-x/no-array-prototype-foreach -- safe
 } : [].forEach;
 
 /***/ }),
-/* 131 */
+/* 156 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var from = __webpack_require__(132);
+var from = __webpack_require__(157);
 
-var checkCorrectnessOfIteration = __webpack_require__(134);
+var checkCorrectnessOfIteration = __webpack_require__(159);
 
 var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
-  // eslint-disable-next-line es/no-array-from -- required for testing
+  // eslint-disable-next-line es-x/no-array-from -- required for testing
   Array.from(iterable);
 }); // `Array.from` method
 // https://tc39.es/ecma262/#sec-array.from
@@ -3986,35 +4774,33 @@ $({
 });
 
 /***/ }),
-/* 132 */
+/* 157 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
-
-var bind = __webpack_require__(80);
+var bind = __webpack_require__(84);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var callWithSafeIterationClosing = __webpack_require__(133);
+var callWithSafeIterationClosing = __webpack_require__(158);
 
-var isArrayIteratorMethod = __webpack_require__(106);
+var isArrayIteratorMethod = __webpack_require__(127);
 
-var isConstructor = __webpack_require__(83);
+var isConstructor = __webpack_require__(88);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var createProperty = __webpack_require__(73);
+var createProperty = __webpack_require__(77);
 
-var getIterator = __webpack_require__(108);
+var getIterator = __webpack_require__(129);
 
-var getIteratorMethod = __webpack_require__(109);
+var getIteratorMethod = __webpack_require__(130);
 
-var Array = global.Array; // `Array.from` method implementation
+var $Array = Array; // `Array.from` method implementation
 // https://tc39.es/ecma262/#sec-array.from
 
 module.exports = function from(arrayLike
@@ -4030,7 +4816,7 @@ module.exports = function from(arrayLike
   var index = 0;
   var length, result, step, iterator, next, value; // if the target is not iterable or it's an array with the default iterator - use a simple case
 
-  if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {
+  if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {
     iterator = getIterator(O, iteratorMethod);
     next = iterator.next;
     result = IS_CONSTRUCTOR ? new this() : [];
@@ -4041,7 +4827,7 @@ module.exports = function from(arrayLike
     }
   } else {
     length = lengthOfArrayLike(O);
-    result = IS_CONSTRUCTOR ? new this(length) : Array(length);
+    result = IS_CONSTRUCTOR ? new this(length) : $Array(length);
 
     for (; length > index; index++) {
       value = mapping ? mapfn(O[index], index) : O[index];
@@ -4054,12 +4840,12 @@ module.exports = function from(arrayLike
 };
 
 /***/ }),
-/* 133 */
+/* 158 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var iteratorClose = __webpack_require__(110); // call something on iterator step with safe closing on error
+var iteratorClose = __webpack_require__(131); // call something on iterator step with safe closing on error
 
 
 module.exports = function (iterator, fn, value, ENTRIES) {
@@ -4071,10 +4857,10 @@ module.exports = function (iterator, fn, value, ENTRIES) {
 };
 
 /***/ }),
-/* 134 */
+/* 159 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var ITERATOR = wellKnownSymbol('iterator');
 var SAFE_CLOSING = false;
@@ -4094,7 +4880,7 @@ try {
 
   iteratorWithReturn[ITERATOR] = function () {
     return this;
-  }; // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
+  }; // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing
 
 
   Array.from(iteratorWithReturn, function () {
@@ -4130,23 +4916,30 @@ module.exports = function (exec, SKIP_CLOSING) {
 };
 
 /***/ }),
-/* 135 */
+/* 160 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $includes = (__webpack_require__(54).includes);
+var $includes = (__webpack_require__(59).includes);
 
-var addToUnscopables = __webpack_require__(114); // `Array.prototype.includes` method
-// https://tc39.es/ecma262/#sec-array.prototype.includes
+var fails = __webpack_require__(7);
+
+var addToUnscopables = __webpack_require__(134); // FF99+ bug
 
 
+var BROKEN_ON_SPARSE = fails(function () {
+  return !Array(1).includes();
+}); // `Array.prototype.includes` method
+// https://tc39.es/ecma262/#sec-array.prototype.includes
+
 $({
   target: 'Array',
-  proto: true
+  proto: true,
+  forced: BROKEN_ON_SPARSE
 }, {
   includes: function includes(el
   /* , fromIndex = 0 */
@@ -4158,23 +4951,23 @@ $({
 addToUnscopables('includes');
 
 /***/ }),
-/* 136 */
+/* 161 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
-/* eslint-disable es/no-array-prototype-indexof -- required for testing */
+/* eslint-disable es-x/no-array-prototype-indexof -- required for testing */
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var $IndexOf = (__webpack_require__(54).indexOf);
+var $indexOf = (__webpack_require__(59).indexOf);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
-var un$IndexOf = uncurryThis([].indexOf);
-var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;
+var nativeIndexOf = uncurryThis([].indexOf);
+var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;
 var STRICT_METHOD = arrayMethodIsStrict('indexOf'); // `Array.prototype.indexOf` method
 // https://tc39.es/ecma262/#sec-array.prototype.indexof
 
@@ -4188,17 +4981,17 @@ $({
   ) {
     var fromIndex = arguments.length > 1 ? arguments[1] : undefined;
     return NEGATIVE_ZERO // convert -0 to +0
-    ? un$IndexOf(this, searchElement, fromIndex) || 0 : $IndexOf(this, searchElement, fromIndex);
+    ? nativeIndexOf(this, searchElement, fromIndex) || 0 : $indexOf(this, searchElement, fromIndex);
   }
 });
 
 /***/ }),
-/* 137 */
+/* 162 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var isArray = __webpack_require__(63); // `Array.isArray` method
+var isArray = __webpack_require__(87); // `Array.isArray` method
 // https://tc39.es/ecma262/#sec-array.isarray
 
 
@@ -4210,21 +5003,29 @@ $({
 });
 
 /***/ }),
-/* 138 */
+/* 163 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
+
+var addToUnscopables = __webpack_require__(134);
+
+var Iterators = __webpack_require__(128);
+
+var InternalStateModule = __webpack_require__(51);
+
+var defineProperty = (__webpack_require__(44).f);
 
-var addToUnscopables = __webpack_require__(114);
+var defineIterator = __webpack_require__(164);
 
-var Iterators = __webpack_require__(107);
+var createIterResultObject = __webpack_require__(167);
 
-var InternalStateModule = __webpack_require__(45);
+var IS_PURE = __webpack_require__(35);
 
-var defineIterator = __webpack_require__(139);
+var DESCRIPTORS = __webpack_require__(6);
 
 var ARRAY_ITERATOR = 'Array Iterator';
 var setInternalState = InternalStateModule.set;
@@ -4258,68 +5059,64 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
 
   if (!target || index >= target.length) {
     state.target = undefined;
-    return {
-      value: undefined,
-      done: true
-    };
+    return createIterResultObject(undefined, true);
   }
 
-  if (kind == 'keys') return {
-    value: index,
-    done: false
-  };
-  if (kind == 'values') return {
-    value: target[index],
-    done: false
-  };
-  return {
-    value: [index, target[index]],
-    done: false
-  };
+  if (kind == 'keys') return createIterResultObject(index, false);
+  if (kind == 'values') return createIterResultObject(target[index], false);
+  return createIterResultObject([index, target[index]], false);
 }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values%
 // https://tc39.es/ecma262/#sec-createunmappedargumentsobject
 // https://tc39.es/ecma262/#sec-createmappedargumentsobject
 
-Iterators.Arguments = Iterators.Array; // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+var values = Iterators.Arguments = Iterators.Array; // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
 
 addToUnscopables('keys');
 addToUnscopables('values');
-addToUnscopables('entries');
+addToUnscopables('entries'); // V8 ~ Chrome 45- bug
+
+if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {
+  defineProperty(values, 'name', {
+    value: 'values'
+  });
+} catch (error) {
+  /* empty */
+}
 
 /***/ }),
-/* 139 */
+/* 164 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
 var FunctionName = __webpack_require__(49);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var createIteratorConstructor = __webpack_require__(140);
+var createIteratorConstructor = __webpack_require__(165);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var setPrototypeOf = __webpack_require__(101);
+var setPrototypeOf = __webpack_require__(112);
 
-var setToStringTag = __webpack_require__(78);
+var setToStringTag = __webpack_require__(82);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var Iterators = __webpack_require__(107);
+var Iterators = __webpack_require__(128);
 
-var IteratorsCore = __webpack_require__(141);
+var IteratorsCore = __webpack_require__(166);
 
 var PROPER_FUNCTION_NAME = FunctionName.PROPER;
 var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
@@ -4379,7 +5176,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
         if (setPrototypeOf) {
           setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
         } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {
-          redefine(CurrentIteratorPrototype, ITERATOR, returnThis);
+          defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);
         }
       } // Set @@toStringTag to native iterators
 
@@ -4411,7 +5208,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
     };
     if (FORCED) for (KEY in methods) {
       if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
-        redefine(IterablePrototype, KEY, methods[KEY]);
+        defineBuiltIn(IterablePrototype, KEY, methods[KEY]);
       }
     } else $({
       target: NAME,
@@ -4422,7 +5219,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
 
 
   if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
-    redefine(IterablePrototype, ITERATOR, defaultIterator, {
+    defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, {
       name: DEFAULT
     });
   }
@@ -4432,21 +5229,21 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
 };
 
 /***/ }),
-/* 140 */
+/* 165 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var IteratorPrototype = (__webpack_require__(141).IteratorPrototype);
+var IteratorPrototype = (__webpack_require__(166).IteratorPrototype);
 
-var create = __webpack_require__(67);
+var create = __webpack_require__(71);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var createPropertyDescriptor = __webpack_require__(11);
 
-var setToStringTag = __webpack_require__(78);
+var setToStringTag = __webpack_require__(82);
 
-var Iterators = __webpack_require__(107);
+var Iterators = __webpack_require__(128);
 
 var returnThis = function () {
   return this;
@@ -4463,32 +5260,34 @@ module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
 };
 
 /***/ }),
-/* 141 */
+/* 166 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
+
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var isObject = __webpack_require__(20);
 
-var create = __webpack_require__(67);
+var create = __webpack_require__(71);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
 var ITERATOR = wellKnownSymbol('iterator');
 var BUGGY_SAFARI_ITERATORS = false; // `%IteratorPrototype%` object
 // https://tc39.es/ecma262/#sec-%iteratorprototype%-object
 
 var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
-/* eslint-disable es/no-array-prototype-keys -- safe */
+/* eslint-disable es-x/no-array-prototype-keys -- safe */
 
 if ([].keys) {
   arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next`
@@ -4499,7 +5298,7 @@ if ([].keys) {
   }
 }
 
-var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {
+var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {
   var test = {}; // FF44- legacy iterators case
 
   return IteratorPrototype[ITERATOR].call(test) !== test;
@@ -4508,7 +5307,7 @@ if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};else if (IS_PURE) IteratorPro
 // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
 
 if (!isCallable(IteratorPrototype[ITERATOR])) {
-  redefine(IteratorPrototype, ITERATOR, function () {
+  defineBuiltIn(IteratorPrototype, ITERATOR, function () {
     return this;
   });
 }
@@ -4519,23 +5318,36 @@ module.exports = {
 };
 
 /***/ }),
-/* 142 */
+/* 167 */
+/***/ ((module) => {
+
+// `CreateIterResultObject` abstract operation
+// https://tc39.es/ecma262/#sec-createiterresultobject
+module.exports = function (value, done) {
+  return {
+    value: value,
+    done: done
+  };
+};
+
+/***/ }),
+/* 168 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var IndexedObject = __webpack_require__(11);
+var IndexedObject = __webpack_require__(13);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
-var un$Join = uncurryThis([].join);
+var nativeJoin = uncurryThis([].join);
 var ES3_STRINGS = IndexedObject != Object;
 var STRICT_METHOD = arrayMethodIsStrict('join', ','); // `Array.prototype.join` method
 // https://tc39.es/ecma262/#sec-array.prototype.join
@@ -4546,19 +5358,19 @@ $({
   forced: ES3_STRINGS || !STRICT_METHOD
 }, {
   join: function join(separator) {
-    return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);
+    return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);
   }
 });
 
 /***/ }),
-/* 143 */
+/* 169 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var lastIndexOf = __webpack_require__(144); // `Array.prototype.lastIndexOf` method
+var lastIndexOf = __webpack_require__(170); // `Array.prototype.lastIndexOf` method
 // https://tc39.es/ecma262/#sec-array.prototype.lastindexof
-// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing
+// eslint-disable-next-line es-x/no-array-prototype-lastindexof -- required for testing
 
 
 $({
@@ -4570,22 +5382,22 @@ $({
 });
 
 /***/ }),
-/* 144 */
+/* 170 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
-/* eslint-disable es/no-array-prototype-lastindexof -- safe */
+/* eslint-disable es-x/no-array-prototype-lastindexof -- safe */
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
 var min = Math.min;
 var $lastIndexOf = [].lastIndexOf;
@@ -4611,17 +5423,17 @@ module.exports = FORCED ? function lastIndexOf(searchElement
 } : $lastIndexOf;
 
 /***/ }),
-/* 145 */
+/* 171 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $map = (__webpack_require__(79).map);
+var $map = (__webpack_require__(83).map);
 
-var arrayMethodHasSpeciesSupport = __webpack_require__(116);
+var arrayMethodHasSpeciesSupport = __webpack_require__(137);
 
 var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); // `Array.prototype.map` method
 // https://tc39.es/ecma262/#sec-array.prototype.map
@@ -4640,29 +5452,28 @@ $({
 });
 
 /***/ }),
-/* 146 */
+/* 172 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var fails = __webpack_require__(7);
 
-var fails = __webpack_require__(6);
+var isConstructor = __webpack_require__(88);
 
-var isConstructor = __webpack_require__(83);
+var createProperty = __webpack_require__(77);
 
-var createProperty = __webpack_require__(73);
-
-var Array = global.Array;
+var $Array = Array;
 var ISNT_GENERIC = fails(function () {
   function F() {
     /* empty */
-  }
+  } // eslint-disable-next-line es-x/no-array-of -- safe
+
 
-  return !(Array.of.call(F) instanceof F);
+  return !($Array.of.call(F) instanceof F);
 }); // `Array.of` method
 // https://tc39.es/ecma262/#sec-array.of
 // WebKit Array.of isn't generic
@@ -4677,7 +5488,7 @@ $({
   of() {
     var index = 0;
     var argumentsLength = arguments.length;
-    var result = new (isConstructor(this) ? this : Array)(argumentsLength);
+    var result = new (isConstructor(this) ? this : $Array)(argumentsLength);
 
     while (argumentsLength > index) createProperty(result, index, arguments[index++]);
 
@@ -4687,21 +5498,120 @@ $({
 });
 
 /***/ }),
-/* 147 */
+/* 173 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
+
+var toObject = __webpack_require__(39);
+
+var lengthOfArrayLike = __webpack_require__(63);
 
-var $reduce = (__webpack_require__(148).left);
+var setArrayLength = __webpack_require__(174);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var doesNotExceedSafeInteger = __webpack_require__(136);
 
-var CHROME_VERSION = __webpack_require__(24);
+var fails = __webpack_require__(7);
 
-var IS_NODE = __webpack_require__(149);
+var INCORRECT_TO_LENGTH = fails(function () {
+  return [].push.call({
+    length: 0x100000000
+  }, 1) !== 4294967297;
+}); // V8 and Safari <= 15.4, FF < 23 throws InternalError
+// https://bugs.chromium.org/p/v8/issues/detail?id=12681
+
+var SILENT_ON_NON_WRITABLE_LENGTH = !function () {
+  try {
+    // eslint-disable-next-line es-x/no-object-defineproperty -- safe
+    Object.defineProperty([], 'length', {
+      writable: false
+    }).push();
+  } catch (error) {
+    return error instanceof TypeError;
+  }
+}(); // `Array.prototype.push` method
+// https://tc39.es/ecma262/#sec-array.prototype.push
+
+$({
+  target: 'Array',
+  proto: true,
+  arity: 1,
+  forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH
+}, {
+  // eslint-disable-next-line no-unused-vars -- required for `.length`
+  push: function push(item) {
+    var O = toObject(this);
+    var len = lengthOfArrayLike(O);
+    var argCount = arguments.length;
+    doesNotExceedSafeInteger(len + argCount);
+
+    for (var i = 0; i < argCount; i++) {
+      O[len] = arguments[i];
+      len++;
+    }
+
+    setArrayLength(O, len);
+    return len;
+  }
+});
+
+/***/ }),
+/* 174 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var DESCRIPTORS = __webpack_require__(6);
+
+var isArray = __webpack_require__(87);
+
+var $TypeError = TypeError; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
+
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Safari < 13 does not throw an error in this case
+
+var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
+  // makes no sense without proper strict mode support
+  if (this !== undefined) return true;
+
+  try {
+    // eslint-disable-next-line es-x/no-object-defineproperty -- safe
+    Object.defineProperty([], 'length', {
+      writable: false
+    }).length = 1;
+  } catch (error) {
+    return error instanceof TypeError;
+  }
+}();
+module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
+  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
+    throw $TypeError('Cannot set read only .length');
+  }
+
+  return O.length = length;
+} : function (O, length) {
+  return O.length = length;
+};
+
+/***/ }),
+/* 175 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var $reduce = (__webpack_require__(176).left);
+
+var arrayMethodIsStrict = __webpack_require__(142);
+
+var CHROME_VERSION = __webpack_require__(27);
+
+var IS_NODE = __webpack_require__(177);
 
 var STRICT_METHOD = arrayMethodIsStrict('reduce'); // Chrome 80-82 has a critical bug
 // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
@@ -4723,20 +5633,18 @@ $({
 });
 
 /***/ }),
-/* 148 */
+/* 176 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var IndexedObject = __webpack_require__(11);
+var IndexedObject = __webpack_require__(13);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var TypeError = global.TypeError; // `Array.prototype.{ reduce, reduceRight }` methods implementation
+var $TypeError = TypeError; // `Array.prototype.{ reduce, reduceRight }` methods implementation
 
 var createMethod = function (IS_RIGHT) {
   return function (that, callbackfn, argumentsLength, memo) {
@@ -4756,7 +5664,7 @@ var createMethod = function (IS_RIGHT) {
       index += i;
 
       if (IS_RIGHT ? index < 0 : length <= index) {
-        throw TypeError('Reduce of empty array with no initial value');
+        throw $TypeError('Reduce of empty array with no initial value');
       }
     }
 
@@ -4778,31 +5686,31 @@ module.exports = {
 };
 
 /***/ }),
-/* 149 */
+/* 177 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
 module.exports = classof(global.process) == 'process';
 
 /***/ }),
-/* 150 */
+/* 178 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $reduceRight = (__webpack_require__(148).right);
+var $reduceRight = (__webpack_require__(176).right);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
-var CHROME_VERSION = __webpack_require__(24);
+var CHROME_VERSION = __webpack_require__(27);
 
-var IS_NODE = __webpack_require__(149);
+var IS_NODE = __webpack_require__(177);
 
 var STRICT_METHOD = arrayMethodIsStrict('reduceRight'); // Chrome 80-82 has a critical bug
 // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
@@ -4823,19 +5731,19 @@ $({
 });
 
 /***/ }),
-/* 151 */
+/* 179 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var isArray = __webpack_require__(63);
+var isArray = __webpack_require__(87);
 
-var un$Reverse = uncurryThis([].reverse);
+var nativeReverse = uncurryThis([].reverse);
 var test = [1, 2]; // `Array.prototype.reverse` method
 // https://tc39.es/ecma262/#sec-array.prototype.reverse
 // fix for Safari 12.0 bug
@@ -4849,44 +5757,42 @@ $({
   reverse: function reverse() {
     // eslint-disable-next-line no-self-assign -- dirty hack
     if (isArray(this)) this.length = this.length;
-    return un$Reverse(this);
+    return nativeReverse(this);
   }
 });
 
 /***/ }),
-/* 152 */
+/* 180 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var isArray = __webpack_require__(87);
 
-var isArray = __webpack_require__(63);
+var isConstructor = __webpack_require__(88);
 
-var isConstructor = __webpack_require__(83);
+var isObject = __webpack_require__(20);
 
-var isObject = __webpack_require__(17);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var toIndexedObject = __webpack_require__(12);
 
-var toIndexedObject = __webpack_require__(10);
+var createProperty = __webpack_require__(77);
 
-var createProperty = __webpack_require__(73);
+var wellKnownSymbol = __webpack_require__(33);
 
-var wellKnownSymbol = __webpack_require__(30);
+var arrayMethodHasSpeciesSupport = __webpack_require__(137);
 
-var arrayMethodHasSpeciesSupport = __webpack_require__(116);
-
-var un$Slice = __webpack_require__(74);
+var nativeSlice = __webpack_require__(94);
 
 var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
 var SPECIES = wellKnownSymbol('species');
-var Array = global.Array;
+var $Array = Array;
 var max = Math.max; // `Array.prototype.slice` method
 // https://tc39.es/ecma262/#sec-array.prototype.slice
 // fallback for not array-like ES3 strings and DOM objects
@@ -4907,19 +5813,19 @@ $({
     if (isArray(O)) {
       Constructor = O.constructor; // cross-realm fallback
 
-      if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {
+      if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {
         Constructor = undefined;
       } else if (isObject(Constructor)) {
         Constructor = Constructor[SPECIES];
         if (Constructor === null) Constructor = undefined;
       }
 
-      if (Constructor === Array || Constructor === undefined) {
-        return un$Slice(O, k, fin);
+      if (Constructor === $Array || Constructor === undefined) {
+        return nativeSlice(O, k, fin);
       }
     }
 
-    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
+    result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));
 
     for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
 
@@ -4929,17 +5835,17 @@ $({
 });
 
 /***/ }),
-/* 153 */
+/* 181 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $some = (__webpack_require__(79).some);
+var $some = (__webpack_require__(83).some);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var arrayMethodIsStrict = __webpack_require__(142);
 
 var STRICT_METHOD = arrayMethodIsStrict('some'); // `Array.prototype.some` method
 // https://tc39.es/ecma262/#sec-array.prototype.some
@@ -4957,40 +5863,42 @@ $({
 });
 
 /***/ }),
-/* 154 */
+/* 182 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var toString = __webpack_require__(64);
+var deletePropertyOrThrow = __webpack_require__(140);
 
-var fails = __webpack_require__(6);
+var toString = __webpack_require__(68);
 
-var internalSort = __webpack_require__(155);
+var fails = __webpack_require__(7);
 
-var arrayMethodIsStrict = __webpack_require__(120);
+var internalSort = __webpack_require__(183);
 
-var FF = __webpack_require__(156);
+var arrayMethodIsStrict = __webpack_require__(142);
 
-var IE_OR_EDGE = __webpack_require__(157);
+var FF = __webpack_require__(184);
 
-var V8 = __webpack_require__(24);
+var IE_OR_EDGE = __webpack_require__(185);
 
-var WEBKIT = __webpack_require__(158);
+var V8 = __webpack_require__(27);
+
+var WEBKIT = __webpack_require__(186);
 
 var test = [];
-var un$Sort = uncurryThis(test.sort);
+var nativeSort = uncurryThis(test.sort);
 var push = uncurryThis(test.push); // IE8-
 
 var FAILS_ON_UNDEFINED = fails(function () {
@@ -5071,7 +5979,7 @@ $({
   sort: function sort(comparefn) {
     if (comparefn !== undefined) aCallable(comparefn);
     var array = toObject(this);
-    if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);
+    if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);
     var items = [];
     var arrayLength = lengthOfArrayLike(array);
     var itemsLength, index;
@@ -5081,22 +5989,22 @@ $({
     }
 
     internalSort(items, getSortCompare(comparefn));
-    itemsLength = items.length;
+    itemsLength = lengthOfArrayLike(items);
     index = 0;
 
     while (index < itemsLength) array[index] = items[index++];
 
-    while (index < arrayLength) delete array[index++];
+    while (index < arrayLength) deletePropertyOrThrow(array, index++);
 
     return array;
   }
 });
 
 /***/ }),
-/* 155 */
+/* 183 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var arraySlice = __webpack_require__(72);
+var arraySlice = __webpack_require__(76);
 
 var floor = Math.floor;
 
@@ -5141,55 +6049,55 @@ var merge = function (array, left, right, comparefn) {
 module.exports = mergeSort;
 
 /***/ }),
-/* 156 */
+/* 184 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
 var firefox = userAgent.match(/firefox\/(\d+)/i);
 module.exports = !!firefox && +firefox[1];
 
 /***/ }),
-/* 157 */
+/* 185 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var UA = __webpack_require__(25);
+var UA = __webpack_require__(28);
 
 module.exports = /MSIE|Trident/.test(UA);
 
 /***/ }),
-/* 158 */
+/* 186 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
 var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
 module.exports = !!webkit && +webkit[1];
 
 /***/ }),
-/* 159 */
+/* 187 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var setSpecies = __webpack_require__(160); // `Array[@@species]` getter
+var setSpecies = __webpack_require__(188); // `Array[@@species]` getter
 // https://tc39.es/ecma262/#sec-get-array-@@species
 
 
 setSpecies('Array');
 
 /***/ }),
-/* 160 */
+/* 188 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
 var SPECIES = wellKnownSymbol('species');
 
@@ -5208,36 +6116,37 @@ module.exports = function (CONSTRUCTOR_NAME) {
 };
 
 /***/ }),
-/* 161 */
+/* 189 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
+
+var toObject = __webpack_require__(39);
 
-var global = __webpack_require__(3);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var setArrayLength = __webpack_require__(174);
 
-var toObject = __webpack_require__(36);
+var doesNotExceedSafeInteger = __webpack_require__(136);
 
-var arraySpeciesCreate = __webpack_require__(81);
+var arraySpeciesCreate = __webpack_require__(85);
 
-var createProperty = __webpack_require__(73);
+var createProperty = __webpack_require__(77);
 
-var arrayMethodHasSpeciesSupport = __webpack_require__(116);
+var deletePropertyOrThrow = __webpack_require__(140);
+
+var arrayMethodHasSpeciesSupport = __webpack_require__(137);
 
 var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
-var TypeError = global.TypeError;
 var max = Math.max;
-var min = Math.min;
-var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
-var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; // `Array.prototype.splice` method
+var min = Math.min; // `Array.prototype.splice` method
 // https://tc39.es/ecma262/#sec-array.prototype.splice
 // with adding support of @@species
 
@@ -5265,10 +6174,7 @@ $({
       actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
     }
 
-    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {
-      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
-    }
-
+    doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);
     A = arraySpeciesCreate(O, actualDeleteCount);
 
     for (k = 0; k < actualDeleteCount; k++) {
@@ -5282,15 +6188,15 @@ $({
       for (k = actualStart; k < len - actualDeleteCount; k++) {
         from = k + actualDeleteCount;
         to = k + insertCount;
-        if (from in O) O[to] = O[from];else delete O[to];
+        if (from in O) O[to] = O[from];else deletePropertyOrThrow(O, to);
       }
 
-      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];
+      for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);
     } else if (insertCount > actualDeleteCount) {
       for (k = len - actualDeleteCount; k > actualStart; k--) {
         from = k + actualDeleteCount - 1;
         to = k + insertCount - 1;
-        if (from in O) O[to] = O[from];else delete O[to];
+        if (from in O) O[to] = O[from];else deletePropertyOrThrow(O, to);
       }
     }
 
@@ -5298,47 +6204,111 @@ $({
       O[k + actualStart] = arguments[k + 2];
     }
 
-    O.length = len - actualDeleteCount + insertCount;
+    setArrayLength(O, len - actualDeleteCount + insertCount);
     return A;
   }
 });
 
 /***/ }),
-/* 162 */
+/* 190 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 // this method was added to unscopables after implementation
 // in popular engines, so it's moved to a separate module
-var addToUnscopables = __webpack_require__(114); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+var addToUnscopables = __webpack_require__(134); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
 
 
 addToUnscopables('flat');
 
 /***/ }),
-/* 163 */
+/* 191 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 // this method was added to unscopables after implementation
 // in popular engines, so it's moved to a separate module
-var addToUnscopables = __webpack_require__(114); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+var addToUnscopables = __webpack_require__(134); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
 
 
 addToUnscopables('flatMap');
 
 /***/ }),
-/* 164 */
+/* 192 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var toObject = __webpack_require__(39);
+
+var lengthOfArrayLike = __webpack_require__(63);
+
+var setArrayLength = __webpack_require__(174);
+
+var deletePropertyOrThrow = __webpack_require__(140);
+
+var doesNotExceedSafeInteger = __webpack_require__(136); // IE8-
+
+
+var INCORRECT_RESULT = [].unshift(0) !== 1; // V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError
+
+var SILENT_ON_NON_WRITABLE_LENGTH = !function () {
+  try {
+    // eslint-disable-next-line es-x/no-object-defineproperty -- safe
+    Object.defineProperty([], 'length', {
+      writable: false
+    }).unshift();
+  } catch (error) {
+    return error instanceof TypeError;
+  }
+}(); // `Array.prototype.unshift` method
+// https://tc39.es/ecma262/#sec-array.prototype.unshift
+
+$({
+  target: 'Array',
+  proto: true,
+  arity: 1,
+  forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH
+}, {
+  // eslint-disable-next-line no-unused-vars -- required for `.length`
+  unshift: function unshift(item) {
+    var O = toObject(this);
+    var len = lengthOfArrayLike(O);
+    var argCount = arguments.length;
+
+    if (argCount) {
+      doesNotExceedSafeInteger(len + argCount);
+      var k = len;
+
+      while (k--) {
+        var to = k + argCount;
+        if (k in O) O[to] = O[k];else deletePropertyOrThrow(O, to);
+      }
+
+      for (var j = 0; j < argCount; j++) {
+        O[j] = arguments[j];
+      }
+    }
+
+    return setArrayLength(O, len + argCount);
+  }
+});
+
+/***/ }),
+/* 193 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var arrayBufferModule = __webpack_require__(165);
+var arrayBufferModule = __webpack_require__(194);
 
-var setSpecies = __webpack_require__(160);
+var setSpecies = __webpack_require__(188);
 
 var ARRAY_BUFFER = 'ArrayBuffer';
 var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];
@@ -5347,6 +6317,7 @@ var NativeArrayBuffer = global[ARRAY_BUFFER]; // `ArrayBuffer` constructor
 
 $({
   global: true,
+  constructor: true,
   forced: NativeArrayBuffer !== ArrayBuffer
 }, {
   ArrayBuffer: ArrayBuffer
@@ -5354,53 +6325,53 @@ $({
 setSpecies(ARRAY_BUFFER);
 
 /***/ }),
-/* 165 */
+/* 194 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var NATIVE_ARRAY_BUFFER = __webpack_require__(166);
+var NATIVE_ARRAY_BUFFER = __webpack_require__(195);
 
 var FunctionName = __webpack_require__(49);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var redefineAll = __webpack_require__(167);
+var defineBuiltIns = __webpack_require__(196);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var anInstance = __webpack_require__(168);
+var anInstance = __webpack_require__(197);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toIndex = __webpack_require__(169);
+var toIndex = __webpack_require__(198);
 
-var IEEE754 = __webpack_require__(170);
+var IEEE754 = __webpack_require__(199);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var setPrototypeOf = __webpack_require__(101);
+var setPrototypeOf = __webpack_require__(112);
 
-var getOwnPropertyNames = (__webpack_require__(52).f);
+var getOwnPropertyNames = (__webpack_require__(57).f);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
-var arrayFill = __webpack_require__(122);
+var arrayFill = __webpack_require__(144);
 
-var arraySlice = __webpack_require__(72);
+var arraySlice = __webpack_require__(76);
 
-var setToStringTag = __webpack_require__(78);
+var setToStringTag = __webpack_require__(82);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
 var PROPER_FUNCTION_NAME = FunctionName.PROPER;
 var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
@@ -5520,7 +6491,7 @@ if (!NATIVE_ARRAY_BUFFER) {
     addGetter($DataView, 'byteOffset');
   }
 
-  redefineAll(DataViewPrototype, {
+  defineBuiltIns(DataViewPrototype, {
     getInt8: function getInt8(byteOffset) {
       return get(this, 1, byteOffset)[0] << 24 >> 24;
     },
@@ -5608,7 +6579,7 @@ if (!NATIVE_ARRAY_BUFFER) {
     new NativeArrayBuffer();
     new NativeArrayBuffer(1.5);
     new NativeArrayBuffer(NaN);
-    return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;
+    return NativeArrayBuffer.length != 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;
   })) {
     /* eslint-enable no-new -- required for testing */
     $ArrayBuffer = function ArrayBuffer(length) {
@@ -5639,7 +6610,7 @@ if (!NATIVE_ARRAY_BUFFER) {
   var $setInt8 = uncurryThis(DataViewPrototype.setInt8);
   testView.setInt8(0, 2147483648);
   testView.setInt8(1, 2147483649);
-  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {
+  if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {
     setInt8: function setInt8(byteOffset, value) {
       $setInt8(this, byteOffset, value << 24 >> 24);
     },
@@ -5659,68 +6630,62 @@ module.exports = {
 };
 
 /***/ }),
-/* 166 */
+/* 195 */
 /***/ ((module) => {
 
-// eslint-disable-next-line es/no-typed-arrays -- safe
+// eslint-disable-next-line es-x/no-typed-arrays -- safe
 module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';
 
 /***/ }),
-/* 167 */
+/* 196 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
 module.exports = function (target, src, options) {
-  for (var key in src) redefine(target, key, src[key], options);
+  for (var key in src) defineBuiltIn(target, key, src[key], options);
 
   return target;
 };
 
 /***/ }),
-/* 168 */
+/* 197 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var isPrototypeOf = __webpack_require__(21);
+var isPrototypeOf = __webpack_require__(24);
 
-var TypeError = global.TypeError;
+var $TypeError = TypeError;
 
 module.exports = function (it, Prototype) {
   if (isPrototypeOf(Prototype, it)) return it;
-  throw TypeError('Incorrect invocation');
+  throw $TypeError('Incorrect invocation');
 };
 
 /***/ }),
-/* 169 */
+/* 198 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var RangeError = global.RangeError; // `ToIndex` abstract operation
+var $RangeError = RangeError; // `ToIndex` abstract operation
 // https://tc39.es/ecma262/#sec-toindex
 
 module.exports = function (it) {
   if (it === undefined) return 0;
   var number = toIntegerOrInfinity(it);
   var length = toLength(number);
-  if (number !== length) throw RangeError('Wrong length or index');
+  if (number !== length) throw $RangeError('Wrong length or index');
   return length;
 };
 
 /***/ }),
-/* 170 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 199 */
+/***/ ((module) => {
 
 // IEEE754 conversions based on https://github.com/feross/ieee754
-var global = __webpack_require__(3);
-
-var Array = global.Array;
+var $Array = Array;
 var abs = Math.abs;
 var pow = Math.pow;
 var floor = Math.floor;
@@ -5728,7 +6693,7 @@ var log = Math.log;
 var LN2 = Math.LN2;
 
 var pack = function (number, mantissaLength, bytes) {
-  var buffer = Array(bytes);
+  var buffer = $Array(bytes);
   var exponentLength = bytes * 8 - mantissaLength - 1;
   var eMax = (1 << exponentLength) - 1;
   var eBias = eMax >> 1;
@@ -5837,12 +6802,12 @@ module.exports = {
 };
 
 /***/ }),
-/* 171 */
+/* 200 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
 var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; // `ArrayBuffer.isView` method
 // https://tc39.es/ecma262/#sec-arraybuffer.isview
@@ -5856,44 +6821,48 @@ $({
 });
 
 /***/ }),
-/* 172 */
+/* 201 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var NATIVE_ARRAY_BUFFER = __webpack_require__(166);
+var NATIVE_ARRAY_BUFFER = __webpack_require__(195);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var classof = __webpack_require__(65);
+var classof = __webpack_require__(69);
 
-var tryToString = __webpack_require__(28);
+var tryToString = __webpack_require__(31);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
-var isPrototypeOf = __webpack_require__(21);
+var isPrototypeOf = __webpack_require__(24);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var setPrototypeOf = __webpack_require__(101);
+var setPrototypeOf = __webpack_require__(112);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var uid = __webpack_require__(37);
+var uid = __webpack_require__(40);
 
+var InternalStateModule = __webpack_require__(51);
+
+var enforceInternalState = InternalStateModule.enforce;
+var getInternalState = InternalStateModule.get;
 var Int8Array = global.Int8Array;
 var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
 var Uint8ClampedArray = global.Uint8ClampedArray;
@@ -5904,10 +6873,10 @@ var ObjectPrototype = Object.prototype;
 var TypeError = global.TypeError;
 var TO_STRING_TAG = wellKnownSymbol('toStringTag');
 var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
-var TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595
+var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; // Fixing native typed arrays in Opera Presto crashes the browser, see #595
 
 var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
-var TYPED_ARRAY_TAG_REQIRED = false;
+var TYPED_ARRAY_TAG_REQUIRED = false;
 var NAME, Constructor, Prototype;
 var TypedArrayConstructorsList = {
   Int8Array: 1,
@@ -5931,6 +6900,13 @@ var isView = function isView(it) {
   return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);
 };
 
+var getTypedArrayConstructor = function (it) {
+  var proto = getPrototypeOf(it);
+  if (!isObject(proto)) return;
+  var state = getInternalState(proto);
+  return state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);
+};
+
 var isTypedArray = function (it) {
   if (!isObject(it)) return false;
   var klass = classof(it);
@@ -5947,19 +6923,24 @@ var aTypedArrayConstructor = function (C) {
   throw TypeError(tryToString(C) + ' is not a typed array constructor');
 };
 
-var exportTypedArrayMethod = function (KEY, property, forced) {
+var exportTypedArrayMethod = function (KEY, property, forced, options) {
   if (!DESCRIPTORS) return;
   if (forced) for (var ARRAY in TypedArrayConstructorsList) {
     var TypedArrayConstructor = global[ARRAY];
     if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {
       delete TypedArrayConstructor.prototype[KEY];
     } catch (error) {
-      /* empty */
+      // old WebKit bug - some methods are non-configurable
+      try {
+        TypedArrayConstructor.prototype[KEY] = property;
+      } catch (error2) {
+        /* empty */
+      }
     }
   }
 
   if (!TypedArrayPrototype[KEY] || forced) {
-    redefine(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);
+    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);
   }
 };
 
@@ -5980,7 +6961,7 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
     if (!TypedArray[KEY] || forced) {
       // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
       try {
-        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);
+        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);
       } catch (error) {
         /* empty */
       }
@@ -5991,7 +6972,7 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
     TypedArrayConstructor = global[ARRAY];
 
     if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
-      redefine(TypedArrayConstructor, KEY, property);
+      defineBuiltIn(TypedArrayConstructor, KEY, property);
     }
   }
 };
@@ -5999,13 +6980,13 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
 for (NAME in TypedArrayConstructorsList) {
   Constructor = global[NAME];
   Prototype = Constructor && Constructor.prototype;
-  if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);else NATIVE_ARRAY_BUFFER_VIEWS = false;
+  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;else NATIVE_ARRAY_BUFFER_VIEWS = false;
 }
 
 for (NAME in BigIntArrayConstructorsList) {
   Constructor = global[NAME];
   Prototype = Constructor && Constructor.prototype;
-  if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);
+  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
 } // WebKit bug - typed arrays constructors prototype is Object.prototype
 
 
@@ -6033,7 +7014,7 @@ if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !==
 }
 
 if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
-  TYPED_ARRAY_TAG_REQIRED = true;
+  TYPED_ARRAY_TAG_REQUIRED = true;
   defineProperty(TypedArrayPrototype, TO_STRING_TAG, {
     get: function () {
       return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
@@ -6047,12 +7028,12 @@ if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
 
 module.exports = {
   NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
-  TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,
-  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
+  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,
   aTypedArray: aTypedArray,
   aTypedArrayConstructor: aTypedArrayConstructor,
   exportTypedArrayMethod: exportTypedArrayMethod,
   exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
+  getTypedArrayConstructor: getTypedArrayConstructor,
   isView: isView,
   isTypedArray: isTypedArray,
   TypedArray: TypedArray,
@@ -6060,32 +7041,32 @@ module.exports = {
 };
 
 /***/ }),
-/* 173 */
+/* 202 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var ArrayBufferModule = __webpack_require__(165);
+var ArrayBufferModule = __webpack_require__(194);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var speciesConstructor = __webpack_require__(174);
+var speciesConstructor = __webpack_require__(203);
 
 var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
 var DataView = ArrayBufferModule.DataView;
 var DataViewPrototype = DataView.prototype;
-var un$ArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);
+var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);
 var getUint8 = uncurryThis(DataViewPrototype.getUint8);
 var setUint8 = uncurryThis(DataViewPrototype.setUint8);
 var INCORRECT_SLICE = fails(function () {
@@ -6100,8 +7081,8 @@ $({
   forced: INCORRECT_SLICE
 }, {
   slice: function slice(start, end) {
-    if (un$ArrayBufferSlice && end === undefined) {
-      return un$ArrayBufferSlice(anObject(this), start); // FF fix
+    if (nativeArrayBufferSlice && end === undefined) {
+      return nativeArrayBufferSlice(anObject(this), start); // FF fix
     }
 
     var length = anObject(this).byteLength;
@@ -6121,14 +7102,16 @@ $({
 });
 
 /***/ }),
-/* 174 */
+/* 203 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
+
+var aConstructor = __webpack_require__(204);
 
-var aConstructor = __webpack_require__(175);
+var isNullOrUndefined = __webpack_require__(17);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation
 // https://tc39.es/ecma262/#sec-speciesconstructor
@@ -6136,57 +7119,63 @@ var SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract opera
 module.exports = function (O, defaultConstructor) {
   var C = anObject(O).constructor;
   var S;
-  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);
+  return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);
 };
 
 /***/ }),
-/* 175 */
+/* 204 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var isConstructor = __webpack_require__(88);
 
-var isConstructor = __webpack_require__(83);
+var tryToString = __webpack_require__(31);
 
-var tryToString = __webpack_require__(28);
-
-var TypeError = global.TypeError; // `Assert: IsConstructor(argument) is true`
+var $TypeError = TypeError; // `Assert: IsConstructor(argument) is true`
 
 module.exports = function (argument) {
   if (isConstructor(argument)) return argument;
-  throw TypeError(tryToString(argument) + ' is not a constructor');
+  throw $TypeError(tryToString(argument) + ' is not a constructor');
 };
 
 /***/ }),
-/* 176 */
+/* 205 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(206);
+
+/***/ }),
+/* 206 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var ArrayBufferModule = __webpack_require__(165);
+var ArrayBufferModule = __webpack_require__(194);
 
-var NATIVE_ARRAY_BUFFER = __webpack_require__(166); // `DataView` constructor
+var NATIVE_ARRAY_BUFFER = __webpack_require__(195); // `DataView` constructor
 // https://tc39.es/ecma262/#sec-dataview-constructor
 
 
 $({
   global: true,
+  constructor: true,
   forced: !NATIVE_ARRAY_BUFFER
 }, {
   DataView: ArrayBufferModule.DataView
 });
 
 /***/ }),
-/* 177 */
+/* 207 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 var FORCED = fails(function () {
   return new Date(16e11).getYear() !== 120;
@@ -6205,17 +7194,16 @@ $({
 });
 
 /***/ }),
-/* 178 */
+/* 208 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+// TODO: Remove from `core-js@4`
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
-
-var Date = global.Date;
-var getTime = uncurryThis(Date.prototype.getTime); // `Date.now` method
+var $Date = Date;
+var thisTimeValue = uncurryThis($Date.prototype.getTime); // `Date.now` method
 // https://tc39.es/ecma262/#sec-date.now
 
 $({
@@ -6223,25 +7211,25 @@ $({
   stat: true
 }, {
   now: function now() {
-    return getTime(new Date());
+    return thisTimeValue(new $Date());
   }
 });
 
 /***/ }),
-/* 179 */
+/* 209 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
 var DatePrototype = Date.prototype;
-var getTime = uncurryThis(DatePrototype.getTime);
+var thisTimeValue = uncurryThis(DatePrototype.getTime);
 var setFullYear = uncurryThis(DatePrototype.setFullYear); // `Date.prototype.setYear` method
 // https://tc39.es/ecma262/#sec-date.prototype.setyear
 
@@ -6251,7 +7239,7 @@ $({
 }, {
   setYear: function setYear(year) {
     // validate
-    getTime(this);
+    thisTimeValue(this);
     var yi = toIntegerOrInfinity(year);
     var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;
     return setFullYear(this, yyyy);
@@ -6259,10 +7247,10 @@ $({
 });
 
 /***/ }),
-/* 180 */
+/* 210 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // `Date.prototype.toGMTString` method
+var $ = __webpack_require__(3); // `Date.prototype.toGMTString` method
 // https://tc39.es/ecma262/#sec-date.prototype.togmtstring
 
 
@@ -6274,12 +7262,12 @@ $({
 });
 
 /***/ }),
-/* 181 */
+/* 211 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var toISOString = __webpack_require__(182); // `Date.prototype.toISOString` method
+var toISOString = __webpack_require__(212); // `Date.prototype.toISOString` method
 // https://tc39.es/ecma262/#sec-date.prototype.toisostring
 // PhantomJS / old WebKit has a broken implementations
 
@@ -6293,25 +7281,24 @@ $({
 });
 
 /***/ }),
-/* 182 */
+/* 212 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var fails = __webpack_require__(7);
 
-var fails = __webpack_require__(6);
+var padStart = (__webpack_require__(213).start);
 
-var padStart = (__webpack_require__(183).start);
-
-var RangeError = global.RangeError;
+var $RangeError = RangeError;
+var $isFinite = isFinite;
 var abs = Math.abs;
 var DatePrototype = Date.prototype;
-var n$DateToISOString = DatePrototype.toISOString;
-var getTime = uncurryThis(DatePrototype.getTime);
+var nativeDateToISOString = DatePrototype.toISOString;
+var thisTimeValue = uncurryThis(DatePrototype.getTime);
 var getUTCDate = uncurryThis(DatePrototype.getUTCDate);
 var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);
 var getUTCHours = uncurryThis(DatePrototype.getUTCHours);
@@ -6323,32 +7310,32 @@ var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); // `Date.prototype
 // PhantomJS / old WebKit fails here:
 
 module.exports = fails(function () {
-  return n$DateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
+  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
 }) || !fails(function () {
-  n$DateToISOString.call(new Date(NaN));
+  nativeDateToISOString.call(new Date(NaN));
 }) ? function toISOString() {
-  if (!isFinite(getTime(this))) throw RangeError('Invalid time value');
+  if (!$isFinite(thisTimeValue(this))) throw $RangeError('Invalid time value');
   var date = this;
   var year = getUTCFullYear(date);
   var milliseconds = getUTCMilliseconds(date);
   var sign = year < 0 ? '-' : year > 9999 ? '+' : '';
   return sign + padStart(abs(year), sign ? 6 : 4, 0) + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + '-' + padStart(getUTCDate(date), 2, 0) + 'T' + padStart(getUTCHours(date), 2, 0) + ':' + padStart(getUTCMinutes(date), 2, 0) + ':' + padStart(getUTCSeconds(date), 2, 0) + '.' + padStart(milliseconds, 3, 0) + 'Z';
-} : n$DateToISOString;
+} : nativeDateToISOString;
 
 /***/ }),
-/* 183 */
+/* 213 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // https://github.com/tc39/proposal-string-pad-start-end
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var $repeat = __webpack_require__(184);
+var $repeat = __webpack_require__(214);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
 var repeat = uncurryThis($repeat);
 var stringSlice = uncurryThis(''.slice);
@@ -6379,28 +7366,26 @@ module.exports = {
 };
 
 /***/ }),
-/* 184 */
+/* 214 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toString = __webpack_require__(68);
 
-var toString = __webpack_require__(64);
+var requireObjectCoercible = __webpack_require__(16);
 
-var requireObjectCoercible = __webpack_require__(14);
-
-var RangeError = global.RangeError; // `String.prototype.repeat` method implementation
+var $RangeError = RangeError; // `String.prototype.repeat` method implementation
 // https://tc39.es/ecma262/#sec-string.prototype.repeat
 
 module.exports = function repeat(count) {
   var str = toString(requireObjectCoercible(this));
   var result = '';
   var n = toIntegerOrInfinity(count);
-  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
+  if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');
 
   for (; n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
 
@@ -6408,19 +7393,19 @@ module.exports = function repeat(count) {
 };
 
 /***/ }),
-/* 185 */
+/* 215 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var toPrimitive = __webpack_require__(16);
+var toPrimitive = __webpack_require__(19);
 
 var FORCED = fails(function () {
   return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({
@@ -6434,6 +7419,7 @@ var FORCED = fails(function () {
 $({
   target: 'Date',
   proto: true,
+  arity: 1,
   forced: FORCED
 }, {
   // eslint-disable-next-line no-unused-vars -- required for `.length`
@@ -6445,82 +7431,81 @@ $({
 });
 
 /***/ }),
-/* 186 */
+/* 216 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var dateToPrimitive = __webpack_require__(187);
+var dateToPrimitive = __webpack_require__(217);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
 var DatePrototype = Date.prototype; // `Date.prototype[@@toPrimitive]` method
 // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
 
 if (!hasOwn(DatePrototype, TO_PRIMITIVE)) {
-  redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
+  defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
 }
 
 /***/ }),
-/* 187 */
+/* 217 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
-
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var ordinaryToPrimitive = __webpack_require__(29);
+var ordinaryToPrimitive = __webpack_require__(32);
 
-var TypeError = global.TypeError; // `Date.prototype[@@toPrimitive](hint)` method implementation
+var $TypeError = TypeError; // `Date.prototype[@@toPrimitive](hint)` method implementation
 // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
 
 module.exports = function (hint) {
   anObject(this);
-  if (hint === 'string' || hint === 'default') hint = 'string';else if (hint !== 'number') throw TypeError('Incorrect hint');
+  if (hint === 'string' || hint === 'default') hint = 'string';else if (hint !== 'number') throw $TypeError('Incorrect hint');
   return ordinaryToPrimitive(this, hint);
 };
 
 /***/ }),
-/* 188 */
+/* 218 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+// TODO: Remove from `core-js@4`
+var uncurryThis = __webpack_require__(14);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
 var DatePrototype = Date.prototype;
 var INVALID_DATE = 'Invalid Date';
 var TO_STRING = 'toString';
-var un$DateToString = uncurryThis(DatePrototype[TO_STRING]);
-var getTime = uncurryThis(DatePrototype.getTime); // `Date.prototype.toString` method
+var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);
+var thisTimeValue = uncurryThis(DatePrototype.getTime); // `Date.prototype.toString` method
 // https://tc39.es/ecma262/#sec-date.prototype.tostring
 
 if (String(new Date(NaN)) != INVALID_DATE) {
-  redefine(DatePrototype, TO_STRING, function toString() {
-    var value = getTime(this); // eslint-disable-next-line no-self-compare -- NaN check
+  defineBuiltIn(DatePrototype, TO_STRING, function toString() {
+    var value = thisTimeValue(this); // eslint-disable-next-line no-self-compare -- NaN check
 
-    return value === value ? un$DateToString(this) : INVALID_DATE;
+    return value === value ? nativeDateToString(this) : INVALID_DATE;
   });
 }
 
 /***/ }),
-/* 189 */
+/* 219 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
 var charAt = uncurryThis(''.charAt);
 var charCodeAt = uncurryThis(''.charCodeAt);
@@ -6570,42 +7555,44 @@ $({
 });
 
 /***/ }),
-/* 190 */
+/* 220 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+// TODO: Remove from `core-js@4`
+var $ = __webpack_require__(3);
 
-var bind = __webpack_require__(191); // `Function.prototype.bind` method
+var bind = __webpack_require__(221); // `Function.prototype.bind` method
 // https://tc39.es/ecma262/#sec-function.prototype.bind
 
 
 $({
   target: 'Function',
-  proto: true
+  proto: true,
+  forced: Function.bind !== bind
 }, {
   bind: bind
 });
 
 /***/ }),
-/* 191 */
+/* 221 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var aCallable = __webpack_require__(30);
 
-var aCallable = __webpack_require__(27);
+var isObject = __webpack_require__(20);
 
-var isObject = __webpack_require__(17);
+var hasOwn = __webpack_require__(38);
 
-var hasOwn = __webpack_require__(35);
+var arraySlice = __webpack_require__(94);
 
-var arraySlice = __webpack_require__(74);
+var NATIVE_BIND = __webpack_require__(9);
 
-var Function = global.Function;
+var $Function = Function;
 var concat = uncurryThis([].concat);
 var join = uncurryThis([].join);
 var factories = {};
@@ -6614,7 +7601,7 @@ var construct = function (C, argsLength, args) {
   if (!hasOwn(factories, argsLength)) {
     for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
 
-    factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');
+    factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');
   }
 
   return factories[argsLength](C, args);
@@ -6622,7 +7609,7 @@ var construct = function (C, argsLength, args) {
 // https://tc39.es/ecma262/#sec-function.prototype.bind
 
 
-module.exports = Function.bind || function bind(that
+module.exports = NATIVE_BIND ? $Function.bind : function bind(that
 /* , ...args */
 ) {
   var F = aCallable(this);
@@ -6641,21 +7628,23 @@ module.exports = Function.bind || function bind(that
 };
 
 /***/ }),
-/* 192 */
+/* 222 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
+
+var makeBuiltIn = __webpack_require__(48);
 
 var HAS_INSTANCE = wellKnownSymbol('hasInstance');
 var FunctionPrototype = Function.prototype; // `Function.prototype[@@hasInstance]` method
@@ -6663,7 +7652,7 @@ var FunctionPrototype = Function.prototype; // `Function.prototype[@@hasInstance
 
 if (!(HAS_INSTANCE in FunctionPrototype)) {
   definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, {
-    value: function (O) {
+    value: makeBuiltIn(function (O) {
       if (!isCallable(this) || !isObject(O)) return false;
       var P = this.prototype;
       if (!isObject(P)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
@@ -6671,21 +7660,21 @@ if (!(HAS_INSTANCE in FunctionPrototype)) {
       while (O = getPrototypeOf(O)) if (P === O) return true;
 
       return false;
-    }
+    }, HAS_INSTANCE)
   });
 }
 
 /***/ }),
-/* 193 */
+/* 223 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
 var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
 var FunctionPrototype = Function.prototype;
 var functionToString = uncurryThis(FunctionPrototype.toString);
@@ -6708,104 +7697,51 @@ if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
 }
 
 /***/ }),
-/* 194 */
+/* 224 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3); // `globalThis` object
+var global = __webpack_require__(4); // `globalThis` object
 // https://tc39.es/ecma262/#sec-globalthis
 
 
 $({
-  global: true
+  global: true,
+  forced: global.globalThis !== global
 }, {
   globalThis: global
 });
 
 /***/ }),
-/* 195 */
+/* 225 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
-
-var global = __webpack_require__(3);
-
-var getBuiltIn = __webpack_require__(20);
-
-var apply = __webpack_require__(62);
-
-var uncurryThis = __webpack_require__(12);
-
-var fails = __webpack_require__(6);
-
-var Array = global.Array;
-var $stringify = getBuiltIn('JSON', 'stringify');
-var exec = uncurryThis(/./.exec);
-var charAt = uncurryThis(''.charAt);
-var charCodeAt = uncurryThis(''.charCodeAt);
-var replace = uncurryThis(''.replace);
-var numberToString = uncurryThis(1.0.toString);
-var tester = /[\uD800-\uDFFF]/g;
-var low = /^[\uD800-\uDBFF]$/;
-var hi = /^[\uDC00-\uDFFF]$/;
-
-var fix = function (match, offset, string) {
-  var prev = charAt(string, offset - 1);
-  var next = charAt(string, offset + 1);
-
-  if (exec(low, match) && !exec(hi, next) || exec(hi, match) && !exec(low, prev)) {
-    return '\\u' + numberToString(charCodeAt(match, 0), 16);
-  }
+var global = __webpack_require__(4);
 
-  return match;
-};
+var setToStringTag = __webpack_require__(82); // JSON[@@toStringTag] property
+// https://tc39.es/ecma262/#sec-json-@@tostringtag
 
-var FORCED = fails(function () {
-  return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' || $stringify('\uDEAD') !== '"\\udead"';
-});
 
-if ($stringify) {
-  // `JSON.stringify` method
-  // https://tc39.es/ecma262/#sec-json.stringify
-  // https://github.com/tc39/proposal-well-formed-stringify
-  $({
-    target: 'JSON',
-    stat: true,
-    forced: FORCED
-  }, {
-    // eslint-disable-next-line no-unused-vars -- required for `.length`
-    stringify: function stringify(it, replacer, space) {
-      for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];
-
-      var result = apply($stringify, null, args);
-      return typeof result == 'string' ? replace(result, tester, fix) : result;
-    }
-  });
-}
+setToStringTag(global.JSON, 'JSON', true);
 
 /***/ }),
-/* 196 */
+/* 226 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var setToStringTag = __webpack_require__(78); // JSON[@@toStringTag] property
-// https://tc39.es/ecma262/#sec-json-@@tostringtag
-
-
-setToStringTag(global.JSON, 'JSON', true);
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(227);
 
 /***/ }),
-/* 197 */
+/* 227 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var collection = __webpack_require__(198);
+var collection = __webpack_require__(228);
 
-var collectionStrong = __webpack_require__(204); // `Map` constructor
+var collectionStrong = __webpack_require__(233); // `Map` constructor
 // https://tc39.es/ecma262/#sec-map-objects
 
 
@@ -6816,39 +7752,41 @@ collection('Map', function (init) {
 }, collectionStrong);
 
 /***/ }),
-/* 198 */
+/* 228 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var isForced = __webpack_require__(61);
+var isForced = __webpack_require__(67);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var InternalMetadataModule = __webpack_require__(199);
+var InternalMetadataModule = __webpack_require__(229);
 
-var iterate = __webpack_require__(105);
+var iterate = __webpack_require__(126);
 
-var anInstance = __webpack_require__(168);
+var anInstance = __webpack_require__(197);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var isObject = __webpack_require__(17);
+var isNullOrUndefined = __webpack_require__(17);
 
-var fails = __webpack_require__(6);
+var isObject = __webpack_require__(20);
 
-var checkCorrectnessOfIteration = __webpack_require__(134);
+var fails = __webpack_require__(7);
 
-var setToStringTag = __webpack_require__(78);
+var checkCorrectnessOfIteration = __webpack_require__(159);
 
-var inheritIfRequired = __webpack_require__(203);
+var setToStringTag = __webpack_require__(82);
+
+var inheritIfRequired = __webpack_require__(115);
 
 module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
   var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
@@ -6861,7 +7799,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
 
   var fixMethod = function (KEY) {
     var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);
-    redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) {
+    defineBuiltIn(NativePrototype, KEY, KEY == 'add' ? function add(value) {
       uncurriedNativeMethod(this, value === 0 ? 0 : value);
       return this;
     } : KEY == 'delete' ? function (key) {
@@ -6912,7 +7850,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
       Constructor = wrapper(function (dummy, iterable) {
         anInstance(dummy, NativePrototype);
         var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
-        if (iterable != undefined) iterate(iterable, that[ADDER], {
+        if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], {
           that: that,
           AS_ENTRIES: IS_MAP
         });
@@ -6936,6 +7874,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
   exported[CONSTRUCTOR_NAME] = Constructor;
   $({
     global: true,
+    constructor: true,
     forced: Constructor != NativeConstructor
   }, exported);
   setToStringTag(Constructor, CONSTRUCTOR_NAME);
@@ -6944,30 +7883,30 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
 };
 
 /***/ }),
-/* 199 */
+/* 229 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var hiddenKeys = __webpack_require__(48);
+var hiddenKeys = __webpack_require__(54);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
-var getOwnPropertyNamesModule = __webpack_require__(52);
+var getOwnPropertyNamesModule = __webpack_require__(57);
 
-var getOwnPropertyNamesExternalModule = __webpack_require__(71);
+var getOwnPropertyNamesExternalModule = __webpack_require__(75);
 
-var isExtensible = __webpack_require__(200);
+var isExtensible = __webpack_require__(230);
 
-var uid = __webpack_require__(37);
+var uid = __webpack_require__(40);
 
-var FREEZING = __webpack_require__(202);
+var FREEZING = __webpack_require__(232);
 
 var REQUIRED = false;
 var METADATA = uid('meta');
@@ -7063,16 +8002,16 @@ var meta = module.exports = {
 hiddenKeys[METADATA] = true;
 
 /***/ }),
-/* 200 */
+/* 230 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(201); // eslint-disable-next-line es/no-object-isextensible -- safe
+var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(231); // eslint-disable-next-line es-x/no-object-isextensible -- safe
 
 
 var $isExtensible = Object.isExtensible;
@@ -7088,15 +8027,15 @@ module.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function i
 } : $isExtensible;
 
 /***/ }),
-/* 201 */
+/* 231 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 module.exports = fails(function () {
   if (typeof ArrayBuffer == 'function') {
-    var buffer = new ArrayBuffer(8); // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe
+    var buffer = new ArrayBuffer(8); // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe
 
     if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', {
       value: 8
@@ -7105,63 +8044,48 @@ module.exports = fails(function () {
 });
 
 /***/ }),
-/* 202 */
+/* 232 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 module.exports = !fails(function () {
-  // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing
+  // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing
   return Object.isExtensible(Object.preventExtensions({}));
 });
 
 /***/ }),
-/* 203 */
+/* 233 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var isCallable = __webpack_require__(18);
-
-var isObject = __webpack_require__(17);
-
-var setPrototypeOf = __webpack_require__(101); // makes subclassing work correct for wrapped built-ins
-
-
-module.exports = function ($this, dummy, Wrapper) {
-  var NewTarget, NewTargetPrototype;
-  if ( // it can work only with native `setPrototypeOf`
-  setPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
-  isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf($this, NewTargetPrototype);
-  return $this;
-};
+"use strict";
 
-/***/ }),
-/* 204 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-"use strict";
+var defineProperty = (__webpack_require__(44).f);
 
+var create = __webpack_require__(71);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineBuiltIns = __webpack_require__(196);
 
-var create = __webpack_require__(67);
+var bind = __webpack_require__(84);
 
-var redefineAll = __webpack_require__(167);
+var anInstance = __webpack_require__(197);
 
-var bind = __webpack_require__(80);
+var isNullOrUndefined = __webpack_require__(17);
 
-var anInstance = __webpack_require__(168);
+var iterate = __webpack_require__(126);
 
-var iterate = __webpack_require__(105);
+var defineIterator = __webpack_require__(164);
 
-var defineIterator = __webpack_require__(139);
+var createIterResultObject = __webpack_require__(167);
 
-var setSpecies = __webpack_require__(160);
+var setSpecies = __webpack_require__(188);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var fastKey = (__webpack_require__(199).fastKey);
+var fastKey = (__webpack_require__(229).fastKey);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
 var setInternalState = InternalStateModule.set;
 var internalStateGetterFor = InternalStateModule.getterFor;
@@ -7177,7 +8101,7 @@ module.exports = {
         size: 0
       });
       if (!DESCRIPTORS) that.size = 0;
-      if (iterable != undefined) iterate(iterable, that[ADDER], {
+      if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], {
         that: that,
         AS_ENTRIES: IS_MAP
       });
@@ -7223,7 +8147,7 @@ module.exports = {
       }
     };
 
-    redefineAll(Prototype, {
+    defineBuiltIns(Prototype, {
       // `{ Map, Set }.prototype.clear()` methods
       // https://tc39.es/ecma262/#sec-map.prototype.clear
       // https://tc39.es/ecma262/#sec-set.prototype.clear
@@ -7288,7 +8212,7 @@ module.exports = {
         return !!getEntry(this, key);
       }
     });
-    redefineAll(Prototype, IS_MAP ? {
+    defineBuiltIns(Prototype, IS_MAP ? {
       // `Map.prototype.get(key)` method
       // https://tc39.es/ecma262/#sec-map.prototype.get
       get: function get(key) {
@@ -7346,25 +8270,13 @@ module.exports = {
       if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {
         // or finish the iteration
         state.target = undefined;
-        return {
-          value: undefined,
-          done: true
-        };
+        return createIterResultObject(undefined, true);
       } // return step by kind
 
 
-      if (kind == 'keys') return {
-        value: entry.key,
-        done: false
-      };
-      if (kind == 'values') return {
-        value: entry.value,
-        done: false
-      };
-      return {
-        value: [entry.key, entry.value],
-        done: false
-      };
+      if (kind == 'keys') return createIterResultObject(entry.key, false);
+      if (kind == 'values') return createIterResultObject(entry.value, false);
+      return createIterResultObject([entry.key, entry.value], false);
     }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // `{ Map, Set }.prototype[@@species]` accessors
     // https://tc39.es/ecma262/#sec-get-map-@@species
     // https://tc39.es/ecma262/#sec-get-set-@@species
@@ -7374,12 +8286,12 @@ module.exports = {
 };
 
 /***/ }),
-/* 205 */
+/* 234 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var log1p = __webpack_require__(206); // eslint-disable-next-line es/no-math-acosh -- required for testing
+var log1p = __webpack_require__(235); // eslint-disable-next-line es-x/no-math-acosh -- required for testing
 
 
 var $acosh = Math.acosh;
@@ -7397,27 +8309,29 @@ $({
   forced: FORCED
 }, {
   acosh: function acosh(x) {
-    return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? log(x) + LN2 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
+    var n = +x;
+    return n < 1 ? NaN : n > 94906265.62425156 ? log(n) + LN2 : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));
   }
 });
 
 /***/ }),
-/* 206 */
+/* 235 */
 /***/ ((module) => {
 
 var log = Math.log; // `Math.log1p` method implementation
 // https://tc39.es/ecma262/#sec-math.log1p
-// eslint-disable-next-line es/no-math-log1p -- safe
+// eslint-disable-next-line es-x/no-math-log1p -- safe
 
 module.exports = Math.log1p || function log1p(x) {
-  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
+  var n = +x;
+  return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n);
 };
 
 /***/ }),
-/* 207 */
+/* 236 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // eslint-disable-next-line es/no-math-asinh -- required for testing
+var $ = __webpack_require__(3); // eslint-disable-next-line es-x/no-math-asinh -- required for testing
 
 
 var $asinh = Math.asinh;
@@ -7425,7 +8339,8 @@ var log = Math.log;
 var sqrt = Math.sqrt;
 
 function asinh(x) {
-  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
+  var n = +x;
+  return !isFinite(n) || n == 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));
 } // `Math.asinh` method
 // https://tc39.es/ecma262/#sec-math.asinh
 // Tor Browser bug: Math.asinh(0) -> -0
@@ -7440,10 +8355,10 @@ $({
 });
 
 /***/ }),
-/* 208 */
+/* 237 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // eslint-disable-next-line es/no-math-atanh -- required for testing
+var $ = __webpack_require__(3); // eslint-disable-next-line es-x/no-math-atanh -- required for testing
 
 
 var $atanh = Math.atanh;
@@ -7457,17 +8372,18 @@ $({
   forced: !($atanh && 1 / $atanh(-0) < 0)
 }, {
   atanh: function atanh(x) {
-    return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
+    var n = +x;
+    return n == 0 ? n : log((1 + n) / (1 - n)) / 2;
   }
 });
 
 /***/ }),
-/* 209 */
+/* 238 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var sign = __webpack_require__(210);
+var sign = __webpack_require__(239);
 
 var abs = Math.abs;
 var pow = Math.pow; // `Math.cbrt` method
@@ -7478,27 +8394,29 @@ $({
   stat: true
 }, {
   cbrt: function cbrt(x) {
-    return sign(x = +x) * pow(abs(x), 1 / 3);
+    var n = +x;
+    return sign(n) * pow(abs(n), 1 / 3);
   }
 });
 
 /***/ }),
-/* 210 */
+/* 239 */
 /***/ ((module) => {
 
 // `Math.sign` method implementation
 // https://tc39.es/ecma262/#sec-math.sign
-// eslint-disable-next-line es/no-math-sign -- safe
+// eslint-disable-next-line es-x/no-math-sign -- safe
 module.exports = Math.sign || function sign(x) {
-  // eslint-disable-next-line no-self-compare -- NaN check
-  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
+  var n = +x; // eslint-disable-next-line no-self-compare -- NaN check
+
+  return n == 0 || n != n ? n : n < 0 ? -1 : 1;
 };
 
 /***/ }),
-/* 211 */
+/* 240 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
 var floor = Math.floor;
 var log = Math.log;
@@ -7510,17 +8428,18 @@ $({
   stat: true
 }, {
   clz32: function clz32(x) {
-    return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;
+    var n = x >>> 0;
+    return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;
   }
 });
 
 /***/ }),
-/* 212 */
+/* 241 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var expm1 = __webpack_require__(213); // eslint-disable-next-line es/no-math-cosh -- required for testing
+var expm1 = __webpack_require__(242); // eslint-disable-next-line es-x/no-math-cosh -- required for testing
 
 
 var $cosh = Math.cosh;
@@ -7540,10 +8459,10 @@ $({
 });
 
 /***/ }),
-/* 213 */
+/* 242 */
 /***/ ((module) => {
 
-// eslint-disable-next-line es/no-math-expm1 -- safe
+// eslint-disable-next-line es-x/no-math-expm1 -- safe
 var $expm1 = Math.expm1;
 var exp = Math.exp; // `Math.expm1` method implementation
 // https://tc39.es/ecma262/#sec-math.expm1
@@ -7551,18 +8470,19 @@ var exp = Math.exp; // `Math.expm1` method implementation
 module.exports = !$expm1 // Old FF bug
 || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 // Tor Browser bug
 || $expm1(-2e-17) != -2e-17 ? function expm1(x) {
-  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;
+  var n = +x;
+  return n == 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;
 } : $expm1;
 
 /***/ }),
-/* 214 */
+/* 243 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var expm1 = __webpack_require__(213); // `Math.expm1` method
+var expm1 = __webpack_require__(242); // `Math.expm1` method
 // https://tc39.es/ecma262/#sec-math.expm1
-// eslint-disable-next-line es/no-math-expm1 -- required for testing
+// eslint-disable-next-line es-x/no-math-expm1 -- required for testing
 
 
 $({
@@ -7574,12 +8494,12 @@ $({
 });
 
 /***/ }),
-/* 215 */
+/* 244 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fround = __webpack_require__(216); // `Math.fround` method
+var fround = __webpack_require__(245); // `Math.fround` method
 // https://tc39.es/ecma262/#sec-math.fround
 
 
@@ -7591,10 +8511,10 @@ $({
 });
 
 /***/ }),
-/* 216 */
+/* 245 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var sign = __webpack_require__(210);
+var sign = __webpack_require__(239);
 
 var abs = Math.abs;
 var pow = Math.pow;
@@ -7607,12 +8527,13 @@ var roundTiesToEven = function (n) {
   return n + 1 / EPSILON - 1 / EPSILON;
 }; // `Math.fround` method implementation
 // https://tc39.es/ecma262/#sec-math.fround
-// eslint-disable-next-line es/no-math-fround -- safe
+// eslint-disable-next-line es-x/no-math-fround -- safe
 
 
 module.exports = Math.fround || function fround(x) {
-  var $abs = abs(x);
-  var $sign = sign(x);
+  var n = +x;
+  var $abs = abs(n);
+  var $sign = sign(n);
   var a, result;
   if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
   a = (1 + EPSILON32 / EPSILON) * $abs;
@@ -7623,10 +8544,10 @@ module.exports = Math.fround || function fround(x) {
 };
 
 /***/ }),
-/* 217 */
+/* 246 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // eslint-disable-next-line es/no-math-hypot -- required for testing
+var $ = __webpack_require__(3); // eslint-disable-next-line es-x/no-math-hypot -- required for testing
 
 
 var $hypot = Math.hypot;
@@ -7640,6 +8561,7 @@ var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity; // `Math.hypot` meth
 $({
   target: 'Math',
   stat: true,
+  arity: 2,
   forced: BUGGY
 }, {
   // eslint-disable-next-line no-unused-vars -- required for `.length`
@@ -7668,12 +8590,12 @@ $({
 });
 
 /***/ }),
-/* 218 */
+/* 247 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6); // eslint-disable-next-line es/no-math-imul -- required for testing
+var fails = __webpack_require__(7); // eslint-disable-next-line es-x/no-math-imul -- required for testing
 
 
 var $imul = Math.imul;
@@ -7699,31 +8621,40 @@ $({
 });
 
 /***/ }),
-/* 219 */
+/* 248 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var log = Math.log;
-var LOG10E = Math.LOG10E; // `Math.log10` method
+var log10 = __webpack_require__(249); // `Math.log10` method
 // https://tc39.es/ecma262/#sec-math.log10
 
+
 $({
   target: 'Math',
   stat: true
 }, {
-  log10: function log10(x) {
-    return log(x) * LOG10E;
-  }
+  log10: log10
 });
 
 /***/ }),
-/* 220 */
+/* 249 */
+/***/ ((module) => {
+
+var log = Math.log;
+var LOG10E = Math.LOG10E; // eslint-disable-next-line es-x/no-math-log10 -- safe
+
+module.exports = Math.log10 || function log10(x) {
+  return log(x) * LOG10E;
+};
+
+/***/ }),
+/* 250 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var log1p = __webpack_require__(206); // `Math.log1p` method
+var log1p = __webpack_require__(235); // `Math.log1p` method
 // https://tc39.es/ecma262/#sec-math.log1p
 
 
@@ -7735,10 +8666,10 @@ $({
 });
 
 /***/ }),
-/* 221 */
+/* 251 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
 var log = Math.log;
 var LN2 = Math.LN2; // `Math.log2` method
@@ -7754,12 +8685,12 @@ $({
 });
 
 /***/ }),
-/* 222 */
+/* 252 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var sign = __webpack_require__(210); // `Math.sign` method
+var sign = __webpack_require__(239); // `Math.sign` method
 // https://tc39.es/ecma262/#sec-math.sign
 
 
@@ -7771,20 +8702,20 @@ $({
 });
 
 /***/ }),
-/* 223 */
+/* 253 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var expm1 = __webpack_require__(213);
+var expm1 = __webpack_require__(242);
 
 var abs = Math.abs;
 var exp = Math.exp;
 var E = Math.E;
 var FORCED = fails(function () {
-  // eslint-disable-next-line es/no-math-sinh -- required for testing
+  // eslint-disable-next-line es-x/no-math-sinh -- required for testing
   return Math.sinh(-2e-17) != -2e-17;
 }); // `Math.sinh` method
 // https://tc39.es/ecma262/#sec-math.sinh
@@ -7796,17 +8727,18 @@ $({
   forced: FORCED
 }, {
   sinh: function sinh(x) {
-    return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
+    var n = +x;
+    return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);
   }
 });
 
 /***/ }),
-/* 224 */
+/* 254 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var expm1 = __webpack_require__(213);
+var expm1 = __webpack_require__(242);
 
 var exp = Math.exp; // `Math.tanh` method
 // https://tc39.es/ecma262/#sec-math.tanh
@@ -7816,79 +8748,78 @@ $({
   stat: true
 }, {
   tanh: function tanh(x) {
-    var a = expm1(x = +x);
-    var b = expm1(-x);
-    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
+    var n = +x;
+    var a = expm1(n);
+    var b = expm1(-n);
+    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(n) + exp(-n));
   }
 });
 
 /***/ }),
-/* 225 */
+/* 255 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var setToStringTag = __webpack_require__(78); // Math[@@toStringTag] property
+var setToStringTag = __webpack_require__(82); // Math[@@toStringTag] property
 // https://tc39.es/ecma262/#sec-math-@@tostringtag
 
 
 setToStringTag(Math, 'Math', true);
 
 /***/ }),
-/* 226 */
+/* 256 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var ceil = Math.ceil;
-var floor = Math.floor; // `Math.trunc` method
+var trunc = __webpack_require__(62); // `Math.trunc` method
 // https://tc39.es/ecma262/#sec-math.trunc
 
+
 $({
   target: 'Math',
   stat: true
 }, {
-  trunc: function trunc(it) {
-    return (it > 0 ? floor : ceil)(it);
-  }
+  trunc: trunc
 });
 
 /***/ }),
-/* 227 */
+/* 257 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var isForced = __webpack_require__(61);
+var isForced = __webpack_require__(67);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var inheritIfRequired = __webpack_require__(203);
+var inheritIfRequired = __webpack_require__(115);
 
-var isPrototypeOf = __webpack_require__(21);
+var isPrototypeOf = __webpack_require__(24);
 
-var isSymbol = __webpack_require__(19);
+var isSymbol = __webpack_require__(22);
 
-var toPrimitive = __webpack_require__(16);
+var toPrimitive = __webpack_require__(19);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var getOwnPropertyNames = (__webpack_require__(52).f);
+var getOwnPropertyNames = (__webpack_require__(57).f);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f);
+var getOwnPropertyDescriptor = (__webpack_require__(5).f);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineProperty = (__webpack_require__(44).f);
 
-var thisNumberValue = __webpack_require__(228);
+var thisNumberValue = __webpack_require__(258);
 
-var trim = (__webpack_require__(229).trim);
+var trim = (__webpack_require__(259).trim);
 
 var NUMBER = 'Number';
 var NativeNumber = global[NUMBER];
@@ -7977,30 +8908,32 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
 
   NumberWrapper.prototype = NumberPrototype;
   NumberPrototype.constructor = NumberWrapper;
-  redefine(global, NUMBER, NumberWrapper);
+  defineBuiltIn(global, NUMBER, NumberWrapper, {
+    constructor: true
+  });
 }
 
 /***/ }),
-/* 228 */
+/* 258 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12); // `thisNumberValue` abstract operation
+var uncurryThis = __webpack_require__(14); // `thisNumberValue` abstract operation
 // https://tc39.es/ecma262/#sec-thisnumbervalue
 
 
 module.exports = uncurryThis(1.0.valueOf);
 
 /***/ }),
-/* 229 */
+/* 259 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var whitespaces = __webpack_require__(230);
+var whitespaces = __webpack_require__(260);
 
 var replace = uncurryThis(''.replace);
 var whitespace = '[' + whitespaces + ']';
@@ -8029,34 +8962,36 @@ module.exports = {
 };
 
 /***/ }),
-/* 230 */
+/* 260 */
 /***/ ((module) => {
 
 // a string of all valid unicode whitespaces
 module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
 
 /***/ }),
-/* 231 */
+/* 261 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // `Number.EPSILON` constant
+var $ = __webpack_require__(3); // `Number.EPSILON` constant
 // https://tc39.es/ecma262/#sec-number.epsilon
 
 
 $({
   target: 'Number',
-  stat: true
+  stat: true,
+  nonConfigurable: true,
+  nonWritable: true
 }, {
   EPSILON: Math.pow(2, -52)
 });
 
 /***/ }),
-/* 232 */
+/* 262 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var numberIsFinite = __webpack_require__(233); // `Number.isFinite` method
+var numberIsFinite = __webpack_require__(263); // `Number.isFinite` method
 // https://tc39.es/ecma262/#sec-number.isfinite
 
 
@@ -8068,26 +9003,26 @@ $({
 });
 
 /***/ }),
-/* 233 */
+/* 263 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
 var globalIsFinite = global.isFinite; // `Number.isFinite` method
 // https://tc39.es/ecma262/#sec-number.isfinite
-// eslint-disable-next-line es/no-number-isfinite -- safe
+// eslint-disable-next-line es-x/no-number-isfinite -- safe
 
 module.exports = Number.isFinite || function isFinite(it) {
   return typeof it == 'number' && globalIsFinite(it);
 };
 
 /***/ }),
-/* 234 */
+/* 264 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var isIntegralNumber = __webpack_require__(235); // `Number.isInteger` method
+var isIntegralNumber = __webpack_require__(265); // `Number.isInteger` method
 // https://tc39.es/ecma262/#sec-number.isinteger
 
 
@@ -8099,24 +9034,24 @@ $({
 });
 
 /***/ }),
-/* 235 */
+/* 265 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
 var floor = Math.floor; // `IsIntegralNumber` abstract operation
 // https://tc39.es/ecma262/#sec-isintegralnumber
-// eslint-disable-next-line es/no-number-isinteger -- safe
+// eslint-disable-next-line es-x/no-number-isinteger -- safe
 
 module.exports = Number.isInteger || function isInteger(it) {
   return !isObject(it) && isFinite(it) && floor(it) === it;
 };
 
 /***/ }),
-/* 236 */
+/* 266 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // `Number.isNaN` method
+var $ = __webpack_require__(3); // `Number.isNaN` method
 // https://tc39.es/ecma262/#sec-number.isnan
 
 
@@ -8131,12 +9066,12 @@ $({
 });
 
 /***/ }),
-/* 237 */
+/* 267 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var isIntegralNumber = __webpack_require__(235);
+var isIntegralNumber = __webpack_require__(265);
 
 var abs = Math.abs; // `Number.isSafeInteger` method
 // https://tc39.es/ecma262/#sec-number.issafeinteger
@@ -8151,44 +9086,48 @@ $({
 });
 
 /***/ }),
-/* 238 */
+/* 268 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // `Number.MAX_SAFE_INTEGER` constant
+var $ = __webpack_require__(3); // `Number.MAX_SAFE_INTEGER` constant
 // https://tc39.es/ecma262/#sec-number.max_safe_integer
 
 
 $({
   target: 'Number',
-  stat: true
+  stat: true,
+  nonConfigurable: true,
+  nonWritable: true
 }, {
   MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF
 });
 
 /***/ }),
-/* 239 */
+/* 269 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // `Number.MIN_SAFE_INTEGER` constant
+var $ = __webpack_require__(3); // `Number.MIN_SAFE_INTEGER` constant
 // https://tc39.es/ecma262/#sec-number.min_safe_integer
 
 
 $({
   target: 'Number',
-  stat: true
+  stat: true,
+  nonConfigurable: true,
+  nonWritable: true
 }, {
   MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF
 });
 
 /***/ }),
-/* 240 */
+/* 270 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var parseFloat = __webpack_require__(241); // `Number.parseFloat` method
+var parseFloat = __webpack_require__(271); // `Number.parseFloat` method
 // https://tc39.es/ecma262/#sec-number.parseFloat
-// eslint-disable-next-line es/no-number-parsefloat -- required for testing
+// eslint-disable-next-line es-x/no-number-parsefloat -- required for testing
 
 
 $({
@@ -8200,46 +9139,46 @@ $({
 });
 
 /***/ }),
-/* 241 */
+/* 271 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var trim = (__webpack_require__(229).trim);
+var trim = (__webpack_require__(259).trim);
 
-var whitespaces = __webpack_require__(230);
+var whitespaces = __webpack_require__(260);
 
 var charAt = uncurryThis(''.charAt);
-var n$ParseFloat = global.parseFloat;
+var $parseFloat = global.parseFloat;
 var Symbol = global.Symbol;
 var ITERATOR = Symbol && Symbol.iterator;
-var FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity // MS Edge 18- broken with boxed symbols
+var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity // MS Edge 18- broken with boxed symbols
 || ITERATOR && !fails(function () {
-  n$ParseFloat(Object(ITERATOR));
+  $parseFloat(Object(ITERATOR));
 }); // `parseFloat` method
 // https://tc39.es/ecma262/#sec-parsefloat-string
 
 module.exports = FORCED ? function parseFloat(string) {
   var trimmedString = trim(toString(string));
-  var result = n$ParseFloat(trimmedString);
+  var result = $parseFloat(trimmedString);
   return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;
-} : n$ParseFloat;
+} : $parseFloat;
 
 /***/ }),
-/* 242 */
+/* 272 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var parseInt = __webpack_require__(243); // `Number.parseInt` method
+var parseInt = __webpack_require__(273); // `Number.parseInt` method
 // https://tc39.es/ecma262/#sec-number.parseint
-// eslint-disable-next-line es/no-number-parseint -- required for testing
+// eslint-disable-next-line es-x/no-number-parseint -- required for testing
 
 
 $({
@@ -8251,20 +9190,20 @@ $({
 });
 
 /***/ }),
-/* 243 */
+/* 273 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var trim = (__webpack_require__(229).trim);
+var trim = (__webpack_require__(259).trim);
 
-var whitespaces = __webpack_require__(230);
+var whitespaces = __webpack_require__(260);
 
 var $parseInt = global.parseInt;
 var Symbol = global.Symbol;
@@ -8283,32 +9222,146 @@ module.exports = FORCED ? function parseInt(string, radix) {
 } : $parseInt;
 
 /***/ }),
-/* 244 */
+/* 274 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var thisNumberValue = __webpack_require__(258);
 
-var thisNumberValue = __webpack_require__(228);
+var $repeat = __webpack_require__(214);
 
-var $repeat = __webpack_require__(184);
+var log10 = __webpack_require__(249);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var RangeError = global.RangeError;
-var String = global.String;
+var $RangeError = RangeError;
+var $String = String;
+var $isFinite = isFinite;
+var abs = Math.abs;
+var floor = Math.floor;
+var pow = Math.pow;
+var round = Math.round;
+var nativeToExponential = uncurryThis(1.0.toExponential);
+var repeat = uncurryThis($repeat);
+var stringSlice = uncurryThis(''.slice); // Edge 17-
+
+var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' // IE11- && Edge 14-
+&& nativeToExponential(1.255, 2) === '1.25e+0' // FF86-, V8 ~ Chrome 49-50
+&& nativeToExponential(12345, 3) === '1.235e+4' // FF86-, V8 ~ Chrome 49-50
+&& nativeToExponential(25, 0) === '3e+1'; // IE8-
+
+var THROWS_ON_INFINITY_FRACTION = fails(function () {
+  nativeToExponential(1, Infinity);
+}) && fails(function () {
+  nativeToExponential(1, -Infinity);
+}); // Safari <11 && FF <50
+
+var PROPER_NON_FINITE_THIS_CHECK = !fails(function () {
+  nativeToExponential(Infinity, Infinity);
+}) && !fails(function () {
+  nativeToExponential(NaN, Infinity);
+});
+var FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FINITE_THIS_CHECK; // `Number.prototype.toExponential` method
+// https://tc39.es/ecma262/#sec-number.prototype.toexponential
+
+$({
+  target: 'Number',
+  proto: true,
+  forced: FORCED
+}, {
+  toExponential: function toExponential(fractionDigits) {
+    var x = thisNumberValue(this);
+    if (fractionDigits === undefined) return nativeToExponential(x);
+    var f = toIntegerOrInfinity(fractionDigits);
+    if (!$isFinite(x)) return String(x); // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
+
+    if (f < 0 || f > 20) throw $RangeError('Incorrect fraction digits');
+    if (ROUNDS_PROPERLY) return nativeToExponential(x, f);
+    var s = '';
+    var m = '';
+    var e = 0;
+    var c = '';
+    var d = '';
+
+    if (x < 0) {
+      s = '-';
+      x = -x;
+    }
+
+    if (x === 0) {
+      e = 0;
+      m = repeat('0', f + 1);
+    } else {
+      // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08
+      // TODO: improve accuracy with big fraction digits
+      var l = log10(x);
+      e = floor(l);
+      var n = 0;
+      var w = pow(10, e - f);
+      n = round(x / w);
+
+      if (2 * x >= (2 * n + 1) * w) {
+        n += 1;
+      }
+
+      if (n >= pow(10, f + 1)) {
+        n /= 10;
+        e += 1;
+      }
+
+      m = $String(n);
+    }
+
+    if (f !== 0) {
+      m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);
+    }
+
+    if (e === 0) {
+      c = '+';
+      d = '0';
+    } else {
+      c = e > 0 ? '+' : '-';
+      d = $String(abs(e));
+    }
+
+    m += 'e' + c + d;
+    return s + m;
+  }
+});
+
+/***/ }),
+/* 275 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var uncurryThis = __webpack_require__(14);
+
+var toIntegerOrInfinity = __webpack_require__(61);
+
+var thisNumberValue = __webpack_require__(258);
+
+var $repeat = __webpack_require__(214);
+
+var fails = __webpack_require__(7);
+
+var $RangeError = RangeError;
+var $String = String;
 var floor = Math.floor;
 var repeat = uncurryThis($repeat);
 var stringSlice = uncurryThis(''.slice);
-var un$ToFixed = uncurryThis(1.0.toFixed);
+var nativeToFixed = uncurryThis(1.0.toFixed);
 
 var pow = function (x, n, acc) {
   return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
@@ -8359,7 +9412,7 @@ var dataToString = function (data) {
 
   while (--index >= 0) {
     if (s !== '' || index === 0 || data[index] !== 0) {
-      var t = String(data[index]);
+      var t = $String(data[index]);
       s = s === '' ? t : s + repeat('0', 7 - t.length) + t;
     }
   }
@@ -8368,10 +9421,10 @@ var dataToString = function (data) {
 };
 
 var FORCED = fails(function () {
-  return un$ToFixed(0.00008, 3) !== '0.000' || un$ToFixed(0.9, 0) !== '1' || un$ToFixed(1.255, 2) !== '1.25' || un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';
+  return nativeToFixed(0.00008, 3) !== '0.000' || nativeToFixed(0.9, 0) !== '1' || nativeToFixed(1.255, 2) !== '1.25' || nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';
 }) || !fails(function () {
   // V8 ~ Android 4.3-
-  un$ToFixed({});
+  nativeToFixed({});
 }); // `Number.prototype.toFixed` method
 // https://tc39.es/ecma262/#sec-number.prototype.tofixed
 
@@ -8386,11 +9439,12 @@ $({
     var data = [0, 0, 0, 0, 0, 0];
     var sign = '';
     var result = '0';
-    var e, z, j, k;
-    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare -- NaN check
+    var e, z, j, k; // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
+
+    if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare -- NaN check
 
     if (number != number) return 'NaN';
-    if (number <= -1e21 || number >= 1e21) return String(number);
+    if (number <= -1e21 || number >= 1e21) return $String(number);
 
     if (number < 0) {
       sign = '-';
@@ -8443,27 +9497,27 @@ $({
 });
 
 /***/ }),
-/* 245 */
+/* 276 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var thisNumberValue = __webpack_require__(228);
+var thisNumberValue = __webpack_require__(258);
 
-var un$ToPrecision = uncurryThis(1.0.toPrecision);
+var nativeToPrecision = uncurryThis(1.0.toPrecision);
 var FORCED = fails(function () {
   // IE7-
-  return un$ToPrecision(1, undefined) !== '1';
+  return nativeToPrecision(1, undefined) !== '1';
 }) || !fails(function () {
   // V8 ~ Android 4.3-
-  un$ToPrecision({});
+  nativeToPrecision({});
 }); // `Number.prototype.toPrecision` method
 // https://tc39.es/ecma262/#sec-number.prototype.toprecision
 
@@ -8473,56 +9527,57 @@ $({
   forced: FORCED
 }, {
   toPrecision: function toPrecision(precision) {
-    return precision === undefined ? un$ToPrecision(thisNumberValue(this)) : un$ToPrecision(thisNumberValue(this), precision);
+    return precision === undefined ? nativeToPrecision(thisNumberValue(this)) : nativeToPrecision(thisNumberValue(this), precision);
   }
 });
 
 /***/ }),
-/* 246 */
+/* 277 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var assign = __webpack_require__(247); // `Object.assign` method
+var assign = __webpack_require__(278); // `Object.assign` method
 // https://tc39.es/ecma262/#sec-object.assign
-// eslint-disable-next-line es/no-object-assign -- required for testing
+// eslint-disable-next-line es-x/no-object-assign -- required for testing
 
 
 $({
   target: 'Object',
   stat: true,
+  arity: 2,
   forced: Object.assign !== assign
 }, {
   assign: assign
 });
 
 /***/ }),
-/* 247 */
+/* 278 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var objectKeys = __webpack_require__(69);
+var objectKeys = __webpack_require__(73);
 
-var getOwnPropertySymbolsModule = __webpack_require__(60);
+var getOwnPropertySymbolsModule = __webpack_require__(66);
 
-var propertyIsEnumerableModule = __webpack_require__(8);
+var propertyIsEnumerableModule = __webpack_require__(10);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var IndexedObject = __webpack_require__(11); // eslint-disable-next-line es/no-object-assign -- safe
+var IndexedObject = __webpack_require__(13); // eslint-disable-next-line es-x/no-object-assign -- safe
 
 
-var $assign = Object.assign; // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+var $assign = Object.assign; // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing
 
 var defineProperty = Object.defineProperty;
 var concat = uncurryThis([].concat); // `Object.assign` method
@@ -8545,7 +9600,7 @@ module.exports = !$assign || fails(function () {
   })).b !== 1) return true; // should work with symbols and should have deterministic property order (V8 bug)
 
   var A = {};
-  var B = {}; // eslint-disable-next-line es/no-symbol -- safe
+  var B = {}; // eslint-disable-next-line es-x/no-symbol -- safe
 
   var symbol = Symbol();
   var alphabet = 'abcdefghijklmnopqrst';
@@ -8579,14 +9634,15 @@ module.exports = !$assign || fails(function () {
 } : $assign;
 
 /***/ }),
-/* 248 */
+/* 279 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+// TODO: Remove from `core-js@4`
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var create = __webpack_require__(67); // `Object.create` method
+var create = __webpack_require__(71); // `Object.create` method
 // https://tc39.es/ecma262/#sec-object.create
 
 
@@ -8599,23 +9655,23 @@ $({
 });
 
 /***/ }),
-/* 249 */
+/* 280 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var FORCED = __webpack_require__(250);
+var FORCED = __webpack_require__(281);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var definePropertyModule = __webpack_require__(41); // `Object.prototype.__defineGetter__` method
+var definePropertyModule = __webpack_require__(44); // `Object.prototype.__defineGetter__` method
 // https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__
 
 
@@ -8636,19 +9692,19 @@ if (DESCRIPTORS) {
 }
 
 /***/ }),
-/* 250 */
+/* 281 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var WEBKIT = __webpack_require__(158); // Forced replacement object prototype accessors methods
+var WEBKIT = __webpack_require__(186); // Forced replacement object prototype accessors methods
 
 
 module.exports = IS_PURE || !fails(function () {
@@ -8656,7 +9712,7 @@ module.exports = IS_PURE || !fails(function () {
   // https://github.com/zloirock/core-js/issues/232
   if (WEBKIT && WEBKIT < 535) return;
   var key = Math.random(); // In FF throws only define methods
-  // eslint-disable-next-line no-undef, no-useless-call -- required for testing
+  // eslint-disable-next-line no-undef, no-useless-call, es-x/no-legacy-object-prototype-accessor-methods -- required for testing
 
   __defineSetter__.call(null, key, function () {
     /* empty */
@@ -8666,65 +9722,67 @@ module.exports = IS_PURE || !fails(function () {
 });
 
 /***/ }),
-/* 251 */
+/* 282 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var defineProperties = __webpack_require__(68); // `Object.defineProperties` method
+var defineProperties = (__webpack_require__(72).f); // `Object.defineProperties` method
 // https://tc39.es/ecma262/#sec-object.defineproperties
+// eslint-disable-next-line es-x/no-object-defineproperties -- safe
 
 
 $({
   target: 'Object',
   stat: true,
-  forced: !DESCRIPTORS,
+  forced: Object.defineProperties !== defineProperties,
   sham: !DESCRIPTORS
 }, {
   defineProperties: defineProperties
 });
 
 /***/ }),
-/* 252 */
+/* 283 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var objectDefinePropertyModile = __webpack_require__(41); // `Object.defineProperty` method
+var defineProperty = (__webpack_require__(44).f); // `Object.defineProperty` method
 // https://tc39.es/ecma262/#sec-object.defineproperty
+// eslint-disable-next-line es-x/no-object-defineproperty -- safe
 
 
 $({
   target: 'Object',
   stat: true,
-  forced: !DESCRIPTORS,
+  forced: Object.defineProperty !== defineProperty,
   sham: !DESCRIPTORS
 }, {
-  defineProperty: objectDefinePropertyModile.f
+  defineProperty: defineProperty
 });
 
 /***/ }),
-/* 253 */
+/* 284 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var FORCED = __webpack_require__(250);
+var FORCED = __webpack_require__(281);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var definePropertyModule = __webpack_require__(41); // `Object.prototype.__defineSetter__` method
+var definePropertyModule = __webpack_require__(44); // `Object.prototype.__defineSetter__` method
 // https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__
 
 
@@ -8745,12 +9803,12 @@ if (DESCRIPTORS) {
 }
 
 /***/ }),
-/* 254 */
+/* 285 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $entries = (__webpack_require__(255).entries); // `Object.entries` method
+var $entries = (__webpack_require__(286).entries); // `Object.entries` method
 // https://tc39.es/ecma262/#sec-object.entries
 
 
@@ -8764,18 +9822,18 @@ $({
 });
 
 /***/ }),
-/* 255 */
+/* 286 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var objectKeys = __webpack_require__(69);
+var objectKeys = __webpack_require__(73);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var $propertyIsEnumerable = (__webpack_require__(8).f);
+var $propertyIsEnumerable = (__webpack_require__(10).f);
 
 var propertyIsEnumerable = uncurryThis($propertyIsEnumerable);
 var push = uncurryThis([].push); // `Object.{ entries, values }` methods implementation
@@ -8811,18 +9869,18 @@ module.exports = {
 };
 
 /***/ }),
-/* 256 */
+/* 287 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var FREEZING = __webpack_require__(202);
+var FREEZING = __webpack_require__(232);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var onFreeze = (__webpack_require__(199).onFreeze); // eslint-disable-next-line es/no-object-freeze -- safe
+var onFreeze = (__webpack_require__(229).onFreeze); // eslint-disable-next-line es-x/no-object-freeze -- safe
 
 
 var $freeze = Object.freeze;
@@ -8843,14 +9901,14 @@ $({
 });
 
 /***/ }),
-/* 257 */
+/* 288 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var iterate = __webpack_require__(105);
+var iterate = __webpack_require__(126);
 
-var createProperty = __webpack_require__(73); // `Object.fromEntries` method
+var createProperty = __webpack_require__(77); // `Object.fromEntries` method
 // https://github.com/tc39/proposal-object-from-entries
 
 
@@ -8870,18 +9928,18 @@ $({
 });
 
 /***/ }),
-/* 258 */
+/* 289 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var nativeGetOwnPropertyDescriptor = (__webpack_require__(4).f);
+var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
 var FAILS_ON_PRIMITIVES = fails(function () {
   nativeGetOwnPropertyDescriptor(1);
@@ -8901,20 +9959,20 @@ $({
 });
 
 /***/ }),
-/* 259 */
+/* 290 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var ownKeys = __webpack_require__(51);
+var ownKeys = __webpack_require__(56);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4);
+var getOwnPropertyDescriptorModule = __webpack_require__(5);
 
-var createProperty = __webpack_require__(73); // `Object.getOwnPropertyDescriptors` method
+var createProperty = __webpack_require__(77); // `Object.getOwnPropertyDescriptors` method
 // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
 
 
@@ -8941,14 +9999,14 @@ $({
 });
 
 /***/ }),
-/* 260 */
+/* 291 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var getOwnPropertyNames = (__webpack_require__(71).f); // eslint-disable-next-line es/no-object-getownpropertynames -- required for testing
+var getOwnPropertyNames = (__webpack_require__(75).f); // eslint-disable-next-line es-x/no-object-getownpropertynames -- required for testing
 
 
 var FAILS_ON_PRIMITIVES = fails(function () {
@@ -8965,18 +10023,18 @@ $({
 });
 
 /***/ }),
-/* 261 */
+/* 292 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var nativeGetPrototypeOf = __webpack_require__(99);
+var nativeGetPrototypeOf = __webpack_require__(124);
 
-var CORRECT_PROTOTYPE_GETTER = __webpack_require__(100);
+var CORRECT_PROTOTYPE_GETTER = __webpack_require__(125);
 
 var FAILS_ON_PRIMITIVES = fails(function () {
   nativeGetPrototypeOf(1);
@@ -8995,12 +10053,12 @@ $({
 });
 
 /***/ }),
-/* 262 */
+/* 293 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var hasOwn = __webpack_require__(35); // `Object.hasOwn` method
+var hasOwn = __webpack_require__(38); // `Object.hasOwn` method
 // https://github.com/tc39/proposal-accessible-object-hasownproperty
 
 
@@ -9012,12 +10070,12 @@ $({
 });
 
 /***/ }),
-/* 263 */
+/* 294 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var is = __webpack_require__(264); // `Object.is` method
+var is = __webpack_require__(295); // `Object.is` method
 // https://tc39.es/ecma262/#sec-object.is
 
 
@@ -9029,26 +10087,26 @@ $({
 });
 
 /***/ }),
-/* 264 */
+/* 295 */
 /***/ ((module) => {
 
 // `SameValue` abstract operation
 // https://tc39.es/ecma262/#sec-samevalue
-// eslint-disable-next-line es/no-object-is -- safe
+// eslint-disable-next-line es-x/no-object-is -- safe
 module.exports = Object.is || function is(x, y) {
   // eslint-disable-next-line no-self-compare -- NaN check
   return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
 };
 
 /***/ }),
-/* 265 */
+/* 296 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $isExtensible = __webpack_require__(200); // `Object.isExtensible` method
+var $isExtensible = __webpack_require__(230); // `Object.isExtensible` method
 // https://tc39.es/ecma262/#sec-object.isextensible
-// eslint-disable-next-line es/no-object-isextensible -- safe
+// eslint-disable-next-line es-x/no-object-isextensible -- safe
 
 
 $({
@@ -9060,18 +10118,18 @@ $({
 });
 
 /***/ }),
-/* 266 */
+/* 297 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(201); // eslint-disable-next-line es/no-object-isfrozen -- safe
+var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(231); // eslint-disable-next-line es-x/no-object-isfrozen -- safe
 
 
 var $isFrozen = Object.isFrozen;
@@ -9093,18 +10151,18 @@ $({
 });
 
 /***/ }),
-/* 267 */
+/* 298 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(201); // eslint-disable-next-line es/no-object-issealed -- safe
+var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(231); // eslint-disable-next-line es-x/no-object-issealed -- safe
 
 
 var $isSealed = Object.isSealed;
@@ -9126,16 +10184,16 @@ $({
 });
 
 /***/ }),
-/* 268 */
+/* 299 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var nativeKeys = __webpack_require__(69);
+var nativeKeys = __webpack_require__(73);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 var FAILS_ON_PRIMITIVES = fails(function () {
   nativeKeys(1);
@@ -9153,25 +10211,25 @@ $({
 });
 
 /***/ }),
-/* 269 */
+/* 300 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var FORCED = __webpack_require__(250);
+var FORCED = __webpack_require__(281);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var toPropertyKey = __webpack_require__(15);
+var toPropertyKey = __webpack_require__(18);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f); // `Object.prototype.__lookupGetter__` method
+var getOwnPropertyDescriptor = (__webpack_require__(5).f); // `Object.prototype.__lookupGetter__` method
 // https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__
 
 
@@ -9194,25 +10252,25 @@ if (DESCRIPTORS) {
 }
 
 /***/ }),
-/* 270 */
+/* 301 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var FORCED = __webpack_require__(250);
+var FORCED = __webpack_require__(281);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var toPropertyKey = __webpack_require__(15);
+var toPropertyKey = __webpack_require__(18);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f); // `Object.prototype.__lookupSetter__` method
+var getOwnPropertyDescriptor = (__webpack_require__(5).f); // `Object.prototype.__lookupSetter__` method
 // https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__
 
 
@@ -9235,18 +10293,18 @@ if (DESCRIPTORS) {
 }
 
 /***/ }),
-/* 271 */
+/* 302 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var onFreeze = (__webpack_require__(199).onFreeze);
+var onFreeze = (__webpack_require__(229).onFreeze);
 
-var FREEZING = __webpack_require__(202);
+var FREEZING = __webpack_require__(232);
 
-var fails = __webpack_require__(6); // eslint-disable-next-line es/no-object-preventextensions -- safe
+var fails = __webpack_require__(7); // eslint-disable-next-line es-x/no-object-preventextensions -- safe
 
 
 var $preventExtensions = Object.preventExtensions;
@@ -9267,18 +10325,77 @@ $({
 });
 
 /***/ }),
-/* 272 */
+/* 303 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var DESCRIPTORS = __webpack_require__(6);
+
+var defineBuiltInAccessor = __webpack_require__(304);
+
+var isObject = __webpack_require__(20);
+
+var toObject = __webpack_require__(39);
+
+var requireObjectCoercible = __webpack_require__(16); // eslint-disable-next-line es-x/no-object-getprototypeof -- safe
+
+
+var getPrototypeOf = Object.getPrototypeOf; // eslint-disable-next-line es-x/no-object-setprototypeof -- safe
+
+var setPrototypeOf = Object.setPrototypeOf;
+var ObjectPrototype = Object.prototype;
+var PROTO = '__proto__'; // `Object.prototype.__proto__` accessor
+// https://tc39.es/ecma262/#sec-object.prototype.__proto__
+
+if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {
+  defineBuiltInAccessor(ObjectPrototype, PROTO, {
+    configurable: true,
+    get: function __proto__() {
+      return getPrototypeOf(toObject(this));
+    },
+    set: function __proto__(proto) {
+      var O = requireObjectCoercible(this);
+      if (!isObject(proto) && proto !== null || !isObject(O)) return;
+      setPrototypeOf(O, proto);
+    }
+  });
+} catch (error) {
+  /* empty */
+}
+
+/***/ }),
+/* 304 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var makeBuiltIn = __webpack_require__(48);
+
+var defineProperty = __webpack_require__(44);
+
+module.exports = function (target, name, descriptor) {
+  if (descriptor.get) makeBuiltIn(descriptor.get, name, {
+    getter: true
+  });
+  if (descriptor.set) makeBuiltIn(descriptor.set, name, {
+    setter: true
+  });
+  return defineProperty.f(target, name, descriptor);
+};
+
+/***/ }),
+/* 305 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var onFreeze = (__webpack_require__(199).onFreeze);
+var onFreeze = (__webpack_require__(229).onFreeze);
 
-var FREEZING = __webpack_require__(202);
+var FREEZING = __webpack_require__(232);
 
-var fails = __webpack_require__(6); // eslint-disable-next-line es/no-object-seal -- safe
+var fails = __webpack_require__(7); // eslint-disable-next-line es-x/no-object-seal -- safe
 
 
 var $seal = Object.seal;
@@ -9299,12 +10416,12 @@ $({
 });
 
 /***/ }),
-/* 273 */
+/* 306 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var setPrototypeOf = __webpack_require__(101); // `Object.setPrototypeOf` method
+var setPrototypeOf = __webpack_require__(112); // `Object.setPrototypeOf` method
 // https://tc39.es/ecma262/#sec-object.setprototypeof
 
 
@@ -9316,33 +10433,33 @@ $({
 });
 
 /***/ }),
-/* 274 */
+/* 307 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var TO_STRING_TAG_SUPPORT = __webpack_require__(66);
+var TO_STRING_TAG_SUPPORT = __webpack_require__(70);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var toString = __webpack_require__(275); // `Object.prototype.toString` method
+var toString = __webpack_require__(308); // `Object.prototype.toString` method
 // https://tc39.es/ecma262/#sec-object.prototype.tostring
 
 
 if (!TO_STRING_TAG_SUPPORT) {
-  redefine(Object.prototype, 'toString', toString, {
+  defineBuiltIn(Object.prototype, 'toString', toString, {
     unsafe: true
   });
 }
 
 /***/ }),
-/* 275 */
+/* 308 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var TO_STRING_TAG_SUPPORT = __webpack_require__(66);
+var TO_STRING_TAG_SUPPORT = __webpack_require__(70);
 
-var classof = __webpack_require__(65); // `Object.prototype.toString` method implementation
+var classof = __webpack_require__(69); // `Object.prototype.toString` method implementation
 // https://tc39.es/ecma262/#sec-object.prototype.tostring
 
 
@@ -9351,12 +10468,12 @@ module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
 };
 
 /***/ }),
-/* 276 */
+/* 309 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $values = (__webpack_require__(255).values); // `Object.values` method
+var $values = (__webpack_require__(286).values); // `Object.values` method
 // https://tc39.es/ecma262/#sec-object.values
 
 
@@ -9370,12 +10487,12 @@ $({
 });
 
 /***/ }),
-/* 277 */
+/* 310 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $parseFloat = __webpack_require__(241); // `parseFloat` method
+var $parseFloat = __webpack_require__(271); // `parseFloat` method
 // https://tc39.es/ecma262/#sec-parsefloat-string
 
 
@@ -9387,12 +10504,12 @@ $({
 });
 
 /***/ }),
-/* 278 */
+/* 311 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $parseInt = __webpack_require__(243); // `parseInt` method
+var $parseInt = __webpack_require__(273); // `parseInt` method
 // https://tc39.es/ecma262/#sec-parseint-string-radix
 
 
@@ -9404,81 +10521,83 @@ $({
 });
 
 /***/ }),
-/* 279 */
+/* 312 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-"use strict";
-
+// TODO: Remove this module from `core-js@4` since it's split to modules listed below
+__webpack_require__(313);
 
-var $ = __webpack_require__(2);
+__webpack_require__(328);
 
-var IS_PURE = __webpack_require__(32);
+__webpack_require__(330);
 
-var global = __webpack_require__(3);
+__webpack_require__(331);
 
-var getBuiltIn = __webpack_require__(20);
+__webpack_require__(332);
 
-var call = __webpack_require__(7);
+__webpack_require__(333);
 
-var NativePromise = __webpack_require__(280);
+/***/ }),
+/* 313 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var redefine = __webpack_require__(43);
+"use strict";
 
-var redefineAll = __webpack_require__(167);
 
-var setPrototypeOf = __webpack_require__(101);
+var $ = __webpack_require__(3);
 
-var setToStringTag = __webpack_require__(78);
+var IS_PURE = __webpack_require__(35);
 
-var setSpecies = __webpack_require__(160);
+var IS_NODE = __webpack_require__(177);
 
-var aCallable = __webpack_require__(27);
+var global = __webpack_require__(4);
 
-var isCallable = __webpack_require__(18);
+var call = __webpack_require__(8);
 
-var isObject = __webpack_require__(17);
+var defineBuiltIn = __webpack_require__(47);
 
-var anInstance = __webpack_require__(168);
+var setPrototypeOf = __webpack_require__(112);
 
-var inspectSource = __webpack_require__(44);
+var setToStringTag = __webpack_require__(82);
 
-var iterate = __webpack_require__(105);
+var setSpecies = __webpack_require__(188);
 
-var checkCorrectnessOfIteration = __webpack_require__(134);
+var aCallable = __webpack_require__(30);
 
-var speciesConstructor = __webpack_require__(174);
+var isCallable = __webpack_require__(21);
 
-var task = (__webpack_require__(281).set);
+var isObject = __webpack_require__(20);
 
-var microtask = __webpack_require__(283);
+var anInstance = __webpack_require__(197);
 
-var promiseResolve = __webpack_require__(286);
+var speciesConstructor = __webpack_require__(203);
 
-var hostReportErrors = __webpack_require__(288);
+var task = (__webpack_require__(314).set);
 
-var newPromiseCapabilityModule = __webpack_require__(287);
+var microtask = __webpack_require__(317);
 
-var perform = __webpack_require__(289);
+var hostReportErrors = __webpack_require__(320);
 
-var InternalStateModule = __webpack_require__(45);
+var perform = __webpack_require__(321);
 
-var isForced = __webpack_require__(61);
+var Queue = __webpack_require__(322);
 
-var wellKnownSymbol = __webpack_require__(30);
+var InternalStateModule = __webpack_require__(51);
 
-var IS_BROWSER = __webpack_require__(290);
+var NativePromiseConstructor = __webpack_require__(323);
 
-var IS_NODE = __webpack_require__(149);
+var PromiseConstructorDetection = __webpack_require__(324);
 
-var V8_VERSION = __webpack_require__(24);
+var newPromiseCapabilityModule = __webpack_require__(327);
 
-var SPECIES = wellKnownSymbol('species');
 var PROMISE = 'Promise';
-var getInternalState = InternalStateModule.getterFor(PROMISE);
-var setInternalState = InternalStateModule.set;
+var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;
+var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;
+var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;
 var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
-var NativePromisePrototype = NativePromise && NativePromise.prototype;
-var PromiseConstructor = NativePromise;
+var setInternalState = InternalStateModule.set;
+var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
+var PromiseConstructor = NativePromiseConstructor;
 var PromisePrototype = NativePromisePrototype;
 var TypeError = global.TypeError;
 var document = global.document;
@@ -9486,7 +10605,6 @@ var process = global.process;
 var newPromiseCapability = newPromiseCapabilityModule.f;
 var newGenericPromiseCapability = newPromiseCapability;
 var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
-var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);
 var UNHANDLED_REJECTION = 'unhandledrejection';
 var REJECTION_HANDLED = 'rejectionhandled';
 var PENDING = 0;
@@ -9494,101 +10612,62 @@ var FULFILLED = 1;
 var REJECTED = 2;
 var HANDLED = 1;
 var UNHANDLED = 2;
-var SUBCLASSING = false;
-var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
-var FORCED = isForced(PROMISE, function () {
-  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);
-  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
-  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
-  // We can't detect it synchronously, so just check versions
-
-  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#finally in the pure version for preventing prototype pollution
+var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; // helpers
 
-  if (IS_PURE && !PromisePrototype['finally']) return true; // We can't use @@species feature detection in V8 since it causes
-  // deoptimization and performance degradation
-  // https://github.com/zloirock/core-js/issues/679
+var isThenable = function (it) {
+  var then;
+  return isObject(it) && isCallable(then = it.then) ? then : false;
+};
 
-  if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false; // Detect correctness of subclassing with @@species support
+var callReaction = function (reaction, state) {
+  var value = state.value;
+  var ok = state.state == FULFILLED;
+  var handler = ok ? reaction.ok : reaction.fail;
+  var resolve = reaction.resolve;
+  var reject = reaction.reject;
+  var domain = reaction.domain;
+  var result, then, exited;
 
-  var promise = new PromiseConstructor(function (resolve) {
-    resolve(1);
-  });
+  try {
+    if (handler) {
+      if (!ok) {
+        if (state.rejection === UNHANDLED) onHandleUnhandled(state);
+        state.rejection = HANDLED;
+      }
 
-  var FakePromise = function (exec) {
-    exec(function () {
-      /* empty */
-    }, function () {
-      /* empty */
-    });
-  };
+      if (handler === true) result = value;else {
+        if (domain) domain.enter();
+        result = handler(value); // can throw
 
-  var constructor = promise.constructor = {};
-  constructor[SPECIES] = FakePromise;
-  SUBCLASSING = promise.then(function () {
-    /* empty */
-  }) instanceof FakePromise;
-  if (!SUBCLASSING) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
-
-  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;
-});
-var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
-  PromiseConstructor.all(iterable)['catch'](function () {
-    /* empty */
-  });
-}); // helpers
+        if (domain) {
+          domain.exit();
+          exited = true;
+        }
+      }
 
-var isThenable = function (it) {
-  var then;
-  return isObject(it) && isCallable(then = it.then) ? then : false;
+      if (result === reaction.promise) {
+        reject(TypeError('Promise-chain cycle'));
+      } else if (then = isThenable(result)) {
+        call(then, result, resolve, reject);
+      } else resolve(result);
+    } else reject(value);
+  } catch (error) {
+    if (domain && !exited) domain.exit();
+    reject(error);
+  }
 };
 
 var notify = function (state, isReject) {
   if (state.notified) return;
   state.notified = true;
-  var chain = state.reactions;
   microtask(function () {
-    var value = state.value;
-    var ok = state.state == FULFILLED;
-    var index = 0; // variable length - can't use forEach
-
-    while (chain.length > index) {
-      var reaction = chain[index++];
-      var handler = ok ? reaction.ok : reaction.fail;
-      var resolve = reaction.resolve;
-      var reject = reaction.reject;
-      var domain = reaction.domain;
-      var result, then, exited;
-
-      try {
-        if (handler) {
-          if (!ok) {
-            if (state.rejection === UNHANDLED) onHandleUnhandled(state);
-            state.rejection = HANDLED;
-          }
-
-          if (handler === true) result = value;else {
-            if (domain) domain.enter();
-            result = handler(value); // can throw
+    var reactions = state.reactions;
+    var reaction;
 
-            if (domain) {
-              domain.exit();
-              exited = true;
-            }
-          }
-
-          if (result === reaction.promise) {
-            reject(TypeError('Promise-chain cycle'));
-          } else if (then = isThenable(result)) {
-            call(then, result, resolve, reject);
-          } else resolve(result);
-        } else reject(value);
-      } catch (error) {
-        if (domain && !exited) domain.exit();
-        reject(error);
-      }
+    while (reaction = reactions.get()) {
+      callReaction(reaction, state);
     }
 
-    state.reactions = [];
     state.notified = false;
     if (isReject && !state.rejection) onUnhandled(state);
   });
@@ -9608,7 +10687,7 @@ var dispatchEvent = function (name, promise, reason) {
     reason: reason
   };
 
-  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
+  if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
 };
 
 var onUnhandled = function (state) {
@@ -9694,13 +10773,13 @@ var internalResolve = function (state, value, unwrap) {
 }; // constructor polyfill
 
 
-if (FORCED) {
+if (FORCED_PROMISE_CONSTRUCTOR) {
   // 25.4.3.1 Promise(executor)
   PromiseConstructor = function Promise(executor) {
     anInstance(this, PromisePrototype);
     aCallable(executor);
     call(Internal, this);
-    var state = getInternalState(this);
+    var state = getInternalPromiseState(this);
 
     try {
       executor(bind(internalResolve, state), bind(internalReject, state));
@@ -9717,38 +10796,31 @@ if (FORCED) {
       done: false,
       notified: false,
       parent: false,
-      reactions: [],
+      reactions: new Queue(),
       rejection: false,
       state: PENDING,
       value: undefined
     });
-  };
-
-  Internal.prototype = redefineAll(PromisePrototype, {
-    // `Promise.prototype.then` method
-    // https://tc39.es/ecma262/#sec-promise.prototype.then
-    then: function then(onFulfilled, onRejected) {
-      var state = getInternalPromiseState(this);
-      var reactions = state.reactions;
-      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
-      reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
-      reaction.fail = isCallable(onRejected) && onRejected;
-      reaction.domain = IS_NODE ? process.domain : undefined;
-      state.parent = true;
-      reactions[reactions.length] = reaction;
-      if (state.state != PENDING) notify(state, false);
-      return reaction.promise;
-    },
-    // `Promise.prototype.catch` method
-    // https://tc39.es/ecma262/#sec-promise.prototype.catch
-    'catch': function (onRejected) {
-      return this.then(undefined, onRejected);
-    }
+  }; // `Promise.prototype.then` method
+  // https://tc39.es/ecma262/#sec-promise.prototype.then
+
+
+  Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {
+    var state = getInternalPromiseState(this);
+    var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
+    state.parent = true;
+    reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
+    reaction.fail = isCallable(onRejected) && onRejected;
+    reaction.domain = IS_NODE ? process.domain : undefined;
+    if (state.state == PENDING) state.reactions.add(reaction);else microtask(function () {
+      callReaction(reaction, state);
+    });
+    return reaction.promise;
   });
 
   OwnPromiseCapability = function () {
     var promise = new Internal();
-    var state = getInternalState(promise);
+    var state = getInternalPromiseState(promise);
     this.promise = promise;
     this.resolve = bind(internalResolve, state);
     this.reject = bind(internalReject, state);
@@ -9758,22 +10830,18 @@ if (FORCED) {
     return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
   };
 
-  if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {
+  if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {
     nativeThen = NativePromisePrototype.then;
 
-    if (!SUBCLASSING) {
+    if (!NATIVE_PROMISE_SUBCLASSING) {
       // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
-      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
+      defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
         var that = this;
         return new PromiseConstructor(function (resolve, reject) {
           call(nativeThen, that, resolve, reject);
         }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640
       }, {
         unsafe: true
-      }); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`
-
-      redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], {
-        unsafe: true
       });
     } // make `.constructor === Promise` work for native promise-based APIs
 
@@ -9793,122 +10861,42 @@ if (FORCED) {
 
 $({
   global: true,
+  constructor: true,
   wrap: true,
-  forced: FORCED
+  forced: FORCED_PROMISE_CONSTRUCTOR
 }, {
   Promise: PromiseConstructor
 });
 setToStringTag(PromiseConstructor, PROMISE, false, true);
 setSpecies(PROMISE);
-PromiseWrapper = getBuiltIn(PROMISE); // statics
-
-$({
-  target: PROMISE,
-  stat: true,
-  forced: FORCED
-}, {
-  // `Promise.reject` method
-  // https://tc39.es/ecma262/#sec-promise.reject
-  reject: function reject(r) {
-    var capability = newPromiseCapability(this);
-    call(capability.reject, undefined, r);
-    return capability.promise;
-  }
-});
-$({
-  target: PROMISE,
-  stat: true,
-  forced: IS_PURE || FORCED
-}, {
-  // `Promise.resolve` method
-  // https://tc39.es/ecma262/#sec-promise.resolve
-  resolve: function resolve(x) {
-    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
-  }
-});
-$({
-  target: PROMISE,
-  stat: true,
-  forced: INCORRECT_ITERATION
-}, {
-  // `Promise.all` method
-  // https://tc39.es/ecma262/#sec-promise.all
-  all: function all(iterable) {
-    var C = this;
-    var capability = newPromiseCapability(C);
-    var resolve = capability.resolve;
-    var reject = capability.reject;
-    var result = perform(function () {
-      var $promiseResolve = aCallable(C.resolve);
-      var values = [];
-      var counter = 0;
-      var remaining = 1;
-      iterate(iterable, function (promise) {
-        var index = counter++;
-        var alreadyCalled = false;
-        remaining++;
-        call($promiseResolve, C, promise).then(function (value) {
-          if (alreadyCalled) return;
-          alreadyCalled = true;
-          values[index] = value;
-          --remaining || resolve(values);
-        }, reject);
-      });
-      --remaining || resolve(values);
-    });
-    if (result.error) reject(result.value);
-    return capability.promise;
-  },
-  // `Promise.race` method
-  // https://tc39.es/ecma262/#sec-promise.race
-  race: function race(iterable) {
-    var C = this;
-    var capability = newPromiseCapability(C);
-    var reject = capability.reject;
-    var result = perform(function () {
-      var $promiseResolve = aCallable(C.resolve);
-      iterate(iterable, function (promise) {
-        call($promiseResolve, C, promise).then(capability.resolve, reject);
-      });
-    });
-    if (result.error) reject(result.value);
-    return capability.promise;
-  }
-});
 
 /***/ }),
-/* 280 */
+/* 314 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-module.exports = global.Promise;
+var apply = __webpack_require__(93);
 
-/***/ }),
-/* 281 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+var bind = __webpack_require__(84);
 
-var global = __webpack_require__(3);
+var isCallable = __webpack_require__(21);
 
-var apply = __webpack_require__(62);
+var hasOwn = __webpack_require__(38);
 
-var bind = __webpack_require__(80);
+var fails = __webpack_require__(7);
 
-var isCallable = __webpack_require__(18);
+var html = __webpack_require__(74);
 
-var hasOwn = __webpack_require__(35);
+var arraySlice = __webpack_require__(94);
 
-var fails = __webpack_require__(6);
+var createElement = __webpack_require__(42);
 
-var html = __webpack_require__(70);
+var validateArgumentsLength = __webpack_require__(315);
 
-var arraySlice = __webpack_require__(74);
+var IS_IOS = __webpack_require__(316);
 
-var createElement = __webpack_require__(39);
-
-var IS_IOS = __webpack_require__(282);
-
-var IS_NODE = __webpack_require__(149);
+var IS_NODE = __webpack_require__(177);
 
 var set = global.setImmediate;
 var clear = global.clearImmediate;
@@ -9954,11 +10942,13 @@ var post = function (id) {
 
 
 if (!set || !clear) {
-  set = function setImmediate(fn) {
+  set = function setImmediate(handler) {
+    validateArgumentsLength(arguments.length, 1);
+    var fn = isCallable(handler) ? handler : Function(handler);
     var args = arraySlice(arguments, 1);
 
     queue[++counter] = function () {
-      apply(isCallable(fn) ? fn : Function(fn), undefined, args);
+      apply(fn, undefined, args);
     };
 
     defer(counter);
@@ -10011,32 +11001,43 @@ module.exports = {
 };
 
 /***/ }),
-/* 282 */
+/* 315 */
+/***/ ((module) => {
+
+var $TypeError = TypeError;
+
+module.exports = function (passed, required) {
+  if (passed < required) throw $TypeError('Not enough arguments');
+  return passed;
+};
+
+/***/ }),
+/* 316 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
 module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);
 
 /***/ }),
-/* 283 */
+/* 317 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var bind = __webpack_require__(80);
+var bind = __webpack_require__(84);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f);
+var getOwnPropertyDescriptor = (__webpack_require__(5).f);
 
-var macrotask = (__webpack_require__(281).set);
+var macrotask = (__webpack_require__(314).set);
 
-var IS_IOS = __webpack_require__(282);
+var IS_IOS = __webpack_require__(316);
 
-var IS_IOS_PEBBLE = __webpack_require__(284);
+var IS_IOS_PEBBLE = __webpack_require__(318);
 
-var IS_WEBOS_WEBKIT = __webpack_require__(285);
+var IS_WEBOS_WEBKIT = __webpack_require__(319);
 
-var IS_NODE = __webpack_require__(149);
+var IS_NODE = __webpack_require__(177);
 
 var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
 var document = global.document;
@@ -10098,7 +11099,7 @@ if (!queueMicrotask) {
     }; // for other environments - macrotask based on:
     // - setImmediate
     // - MessageChannel
-    // - window.postMessag
+    // - window.postMessage
     // - onreadystatechange
     // - setTimeout
 
@@ -10128,55 +11129,195 @@ module.exports = queueMicrotask || function (fn) {
 };
 
 /***/ }),
-/* 284 */
+/* 318 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
 module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;
 
 /***/ }),
-/* 285 */
+/* 319 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
 module.exports = /web0s(?!.*chrome)/i.test(userAgent);
 
 /***/ }),
-/* 286 */
+/* 320 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var anObject = __webpack_require__(42);
+var global = __webpack_require__(4);
 
-var isObject = __webpack_require__(17);
+module.exports = function (a, b) {
+  var console = global.console;
 
-var newPromiseCapability = __webpack_require__(287);
+  if (console && console.error) {
+    arguments.length == 1 ? console.error(a) : console.error(a, b);
+  }
+};
 
-module.exports = function (C, x) {
-  anObject(C);
-  if (isObject(x) && x.constructor === C) return x;
-  var promiseCapability = newPromiseCapability.f(C);
-  var resolve = promiseCapability.resolve;
-  resolve(x);
-  return promiseCapability.promise;
+/***/ }),
+/* 321 */
+/***/ ((module) => {
+
+module.exports = function (exec) {
+  try {
+    return {
+      error: false,
+      value: exec()
+    };
+  } catch (error) {
+    return {
+      error: true,
+      value: error
+    };
+  }
 };
 
 /***/ }),
-/* 287 */
+/* 322 */
+/***/ ((module) => {
+
+var Queue = function () {
+  this.head = null;
+  this.tail = null;
+};
+
+Queue.prototype = {
+  add: function (item) {
+    var entry = {
+      item: item,
+      next: null
+    };
+    if (this.head) this.tail.next = entry;else this.head = entry;
+    this.tail = entry;
+  },
+  get: function () {
+    var entry = this.head;
+
+    if (entry) {
+      this.head = entry.next;
+      if (this.tail === entry) this.tail = null;
+      return entry.item;
+    }
+  }
+};
+module.exports = Queue;
+
+/***/ }),
+/* 323 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var global = __webpack_require__(4);
+
+module.exports = global.Promise;
+
+/***/ }),
+/* 324 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var global = __webpack_require__(4);
+
+var NativePromiseConstructor = __webpack_require__(323);
+
+var isCallable = __webpack_require__(21);
+
+var isForced = __webpack_require__(67);
+
+var inspectSource = __webpack_require__(50);
+
+var wellKnownSymbol = __webpack_require__(33);
+
+var IS_BROWSER = __webpack_require__(325);
+
+var IS_DENO = __webpack_require__(326);
+
+var IS_PURE = __webpack_require__(35);
+
+var V8_VERSION = __webpack_require__(27);
+
+var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
+var SPECIES = wellKnownSymbol('species');
+var SUBCLASSING = false;
+var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);
+var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {
+  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);
+  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
+  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
+  // We can't detect it synchronously, so just check versions
+
+  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution
+
+  if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; // We can't use @@species feature detection in V8 since it causes
+  // deoptimization and performance degradation
+  // https://github.com/zloirock/core-js/issues/679
+
+  if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {
+    // Detect correctness of subclassing with @@species support
+    var promise = new NativePromiseConstructor(function (resolve) {
+      resolve(1);
+    });
+
+    var FakePromise = function (exec) {
+      exec(function () {
+        /* empty */
+      }, function () {
+        /* empty */
+      });
+    };
+
+    var constructor = promise.constructor = {};
+    constructor[SPECIES] = FakePromise;
+    SUBCLASSING = promise.then(function () {
+      /* empty */
+    }) instanceof FakePromise;
+    if (!SUBCLASSING) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
+  }
+
+  return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;
+});
+module.exports = {
+  CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,
+  REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,
+  SUBCLASSING: SUBCLASSING
+};
+
+/***/ }),
+/* 325 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var IS_DENO = __webpack_require__(326);
+
+var IS_NODE = __webpack_require__(177);
+
+module.exports = !IS_DENO && !IS_NODE && typeof window == 'object' && typeof document == 'object';
+
+/***/ }),
+/* 326 */
+/***/ ((module) => {
+
+/* global Deno -- Deno case */
+module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';
+
+/***/ }),
+/* 327 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
+
+var $TypeError = TypeError;
 
 var PromiseCapability = function (C) {
   var resolve, reject;
   this.promise = new C(function ($$resolve, $$reject) {
-    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
+    if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');
     resolve = $$resolve;
     reject = $$reject;
   });
@@ -10191,61 +11332,264 @@ module.exports.f = function (C) {
 };
 
 /***/ }),
-/* 288 */
+/* 328 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var call = __webpack_require__(8);
+
+var aCallable = __webpack_require__(30);
+
+var newPromiseCapabilityModule = __webpack_require__(327);
+
+var perform = __webpack_require__(321);
+
+var iterate = __webpack_require__(126);
+
+var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(329); // `Promise.all` method
+// https://tc39.es/ecma262/#sec-promise.all
+
+
+$({
+  target: 'Promise',
+  stat: true,
+  forced: PROMISE_STATICS_INCORRECT_ITERATION
+}, {
+  all: function all(iterable) {
+    var C = this;
+    var capability = newPromiseCapabilityModule.f(C);
+    var resolve = capability.resolve;
+    var reject = capability.reject;
+    var result = perform(function () {
+      var $promiseResolve = aCallable(C.resolve);
+      var values = [];
+      var counter = 0;
+      var remaining = 1;
+      iterate(iterable, function (promise) {
+        var index = counter++;
+        var alreadyCalled = false;
+        remaining++;
+        call($promiseResolve, C, promise).then(function (value) {
+          if (alreadyCalled) return;
+          alreadyCalled = true;
+          values[index] = value;
+          --remaining || resolve(values);
+        }, reject);
+      });
+      --remaining || resolve(values);
+    });
+    if (result.error) reject(result.value);
+    return capability.promise;
+  }
+});
+
+/***/ }),
+/* 329 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var NativePromiseConstructor = __webpack_require__(323);
 
-module.exports = function (a, b) {
-  var console = global.console;
+var checkCorrectnessOfIteration = __webpack_require__(159);
 
-  if (console && console.error) {
-    arguments.length == 1 ? console.error(a) : console.error(a, b);
+var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(324).CONSTRUCTOR);
+
+module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {
+  NativePromiseConstructor.all(iterable).then(undefined, function () {
+    /* empty */
+  });
+});
+
+/***/ }),
+/* 330 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var IS_PURE = __webpack_require__(35);
+
+var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(324).CONSTRUCTOR);
+
+var NativePromiseConstructor = __webpack_require__(323);
+
+var getBuiltIn = __webpack_require__(23);
+
+var isCallable = __webpack_require__(21);
+
+var defineBuiltIn = __webpack_require__(47);
+
+var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; // `Promise.prototype.catch` method
+// https://tc39.es/ecma262/#sec-promise.prototype.catch
+
+$({
+  target: 'Promise',
+  proto: true,
+  forced: FORCED_PROMISE_CONSTRUCTOR,
+  real: true
+}, {
+  'catch': function (onRejected) {
+    return this.then(undefined, onRejected);
   }
-};
+}); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`
+
+if (!IS_PURE && isCallable(NativePromiseConstructor)) {
+  var method = getBuiltIn('Promise').prototype['catch'];
+
+  if (NativePromisePrototype['catch'] !== method) {
+    defineBuiltIn(NativePromisePrototype, 'catch', method, {
+      unsafe: true
+    });
+  }
+}
 
 /***/ }),
-/* 289 */
-/***/ ((module) => {
+/* 331 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-module.exports = function (exec) {
-  try {
-    return {
-      error: false,
-      value: exec()
-    };
-  } catch (error) {
-    return {
-      error: true,
-      value: error
-    };
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var call = __webpack_require__(8);
+
+var aCallable = __webpack_require__(30);
+
+var newPromiseCapabilityModule = __webpack_require__(327);
+
+var perform = __webpack_require__(321);
+
+var iterate = __webpack_require__(126);
+
+var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(329); // `Promise.race` method
+// https://tc39.es/ecma262/#sec-promise.race
+
+
+$({
+  target: 'Promise',
+  stat: true,
+  forced: PROMISE_STATICS_INCORRECT_ITERATION
+}, {
+  race: function race(iterable) {
+    var C = this;
+    var capability = newPromiseCapabilityModule.f(C);
+    var reject = capability.reject;
+    var result = perform(function () {
+      var $promiseResolve = aCallable(C.resolve);
+      iterate(iterable, function (promise) {
+        call($promiseResolve, C, promise).then(capability.resolve, reject);
+      });
+    });
+    if (result.error) reject(result.value);
+    return capability.promise;
   }
-};
+});
 
 /***/ }),
-/* 290 */
-/***/ ((module) => {
+/* 332 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var call = __webpack_require__(8);
+
+var newPromiseCapabilityModule = __webpack_require__(327);
+
+var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(324).CONSTRUCTOR); // `Promise.reject` method
+// https://tc39.es/ecma262/#sec-promise.reject
 
-module.exports = typeof window == 'object';
+
+$({
+  target: 'Promise',
+  stat: true,
+  forced: FORCED_PROMISE_CONSTRUCTOR
+}, {
+  reject: function reject(r) {
+    var capability = newPromiseCapabilityModule.f(this);
+    call(capability.reject, undefined, r);
+    return capability.promise;
+  }
+});
 
 /***/ }),
-/* 291 */
+/* 333 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var getBuiltIn = __webpack_require__(23);
+
+var IS_PURE = __webpack_require__(35);
+
+var NativePromiseConstructor = __webpack_require__(323);
+
+var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(324).CONSTRUCTOR);
+
+var promiseResolve = __webpack_require__(334);
+
+var PromiseConstructorWrapper = getBuiltIn('Promise');
+var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; // `Promise.resolve` method
+// https://tc39.es/ecma262/#sec-promise.resolve
+
+$({
+  target: 'Promise',
+  stat: true,
+  forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR
+}, {
+  resolve: function resolve(x) {
+    return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);
+  }
+});
+
+/***/ }),
+/* 334 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var anObject = __webpack_require__(46);
+
+var isObject = __webpack_require__(20);
+
+var newPromiseCapability = __webpack_require__(327);
+
+module.exports = function (C, x) {
+  anObject(C);
+  if (isObject(x) && x.constructor === C) return x;
+  var promiseCapability = newPromiseCapability.f(C);
+  var resolve = promiseCapability.resolve;
+  resolve(x);
+  return promiseCapability.promise;
+};
+
+/***/ }),
+/* 335 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var newPromiseCapabilityModule = __webpack_require__(287);
+var newPromiseCapabilityModule = __webpack_require__(327);
 
-var perform = __webpack_require__(289);
+var perform = __webpack_require__(321);
 
-var iterate = __webpack_require__(105); // `Promise.allSettled` method
+var iterate = __webpack_require__(126); // `Promise.allSettled` method
 // https://tc39.es/ecma262/#sec-promise.allsettled
 
 
@@ -10293,25 +11637,25 @@ $({
 });
 
 /***/ }),
-/* 292 */
+/* 336 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var aCallable = __webpack_require__(27);
+var call = __webpack_require__(8);
 
-var getBuiltIn = __webpack_require__(20);
+var aCallable = __webpack_require__(30);
 
-var call = __webpack_require__(7);
+var getBuiltIn = __webpack_require__(23);
 
-var newPromiseCapabilityModule = __webpack_require__(287);
+var newPromiseCapabilityModule = __webpack_require__(327);
 
-var perform = __webpack_require__(289);
+var perform = __webpack_require__(321);
 
-var iterate = __webpack_require__(105);
+var iterate = __webpack_require__(126);
 
 var PROMISE_ANY_ERROR = 'No one promise resolved'; // `Promise.any` method
 // https://tc39.es/ecma262/#sec-promise.any
@@ -10355,33 +11699,35 @@ $({
 });
 
 /***/ }),
-/* 293 */
+/* 337 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
-var NativePromise = __webpack_require__(280);
+var NativePromiseConstructor = __webpack_require__(323);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var speciesConstructor = __webpack_require__(174);
+var speciesConstructor = __webpack_require__(203);
 
-var promiseResolve = __webpack_require__(286);
+var promiseResolve = __webpack_require__(334);
 
-var redefine = __webpack_require__(43); // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
+var defineBuiltIn = __webpack_require__(47);
 
+var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
 
-var NON_GENERIC = !!NativePromise && fails(function () {
-  NativePromise.prototype['finally'].call({
+var NON_GENERIC = !!NativePromiseConstructor && fails(function () {
+  // eslint-disable-next-line unicorn/no-thenable -- required for testing
+  NativePromisePrototype['finally'].call({
     then: function () {
       /* empty */
     }
@@ -10412,33 +11758,33 @@ $({
   }
 }); // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
 
-if (!IS_PURE && isCallable(NativePromise)) {
+if (!IS_PURE && isCallable(NativePromiseConstructor)) {
   var method = getBuiltIn('Promise').prototype['finally'];
 
-  if (NativePromise.prototype['finally'] !== method) {
-    redefine(NativePromise.prototype, 'finally', method, {
+  if (NativePromisePrototype['finally'] !== method) {
+    defineBuiltIn(NativePromisePrototype, 'finally', method, {
       unsafe: true
     });
   }
 }
 
 /***/ }),
-/* 294 */
+/* 338 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var functionApply = __webpack_require__(62);
+var functionApply = __webpack_require__(93);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var fails = __webpack_require__(6); // MS Edge argumentsList argument is optional
+var fails = __webpack_require__(7); // MS Edge argumentsList argument is optional
 
 
 var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
-  // eslint-disable-next-line es/no-reflect -- required for testing
+  // eslint-disable-next-line es-x/no-reflect -- required for testing
   Reflect.apply(function () {
     /* empty */
   });
@@ -10456,26 +11802,26 @@ $({
 });
 
 /***/ }),
-/* 295 */
+/* 339 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
 
-var bind = __webpack_require__(191);
+var bind = __webpack_require__(221);
 
-var aConstructor = __webpack_require__(175);
+var aConstructor = __webpack_require__(204);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var create = __webpack_require__(67);
+var create = __webpack_require__(71);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 var nativeConstruct = getBuiltIn('Reflect', 'construct');
 var ObjectPrototype = Object.prototype;
@@ -10547,24 +11893,24 @@ $({
 });
 
 /***/ }),
-/* 296 */
+/* 340 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var toPropertyKey = __webpack_require__(15);
+var toPropertyKey = __webpack_require__(18);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var fails = __webpack_require__(6); // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
+var fails = __webpack_require__(7); // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
 
 
 var ERROR_INSTEAD_OF_FALSE = fails(function () {
-  // eslint-disable-next-line es/no-reflect -- required for testing
+  // eslint-disable-next-line es-x/no-reflect -- required for testing
   Reflect.defineProperty(definePropertyModule.f({}, 1, {
     value: 1
   }), 1, {
@@ -10594,14 +11940,14 @@ $({
 });
 
 /***/ }),
-/* 297 */
+/* 341 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f); // `Reflect.deleteProperty` method
+var getOwnPropertyDescriptor = (__webpack_require__(5).f); // `Reflect.deleteProperty` method
 // https://tc39.es/ecma262/#sec-reflect.deleteproperty
 
 
@@ -10616,22 +11962,22 @@ $({
 });
 
 /***/ }),
-/* 298 */
+/* 342 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var isDataDescriptor = __webpack_require__(299);
+var isDataDescriptor = __webpack_require__(343);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4);
+var getOwnPropertyDescriptorModule = __webpack_require__(5);
 
-var getPrototypeOf = __webpack_require__(99); // `Reflect.get` method
+var getPrototypeOf = __webpack_require__(124); // `Reflect.get` method
 // https://tc39.es/ecma262/#sec-reflect.get
 
 
@@ -10654,26 +12000,26 @@ $({
 });
 
 /***/ }),
-/* 299 */
+/* 343 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
 module.exports = function (descriptor) {
   return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));
 };
 
 /***/ }),
-/* 300 */
+/* 344 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4); // `Reflect.getOwnPropertyDescriptor` method
+var getOwnPropertyDescriptorModule = __webpack_require__(5); // `Reflect.getOwnPropertyDescriptor` method
 // https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor
 
 
@@ -10688,16 +12034,16 @@ $({
 });
 
 /***/ }),
-/* 301 */
+/* 345 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var objectGetPrototypeOf = __webpack_require__(99);
+var objectGetPrototypeOf = __webpack_require__(124);
 
-var CORRECT_PROTOTYPE_GETTER = __webpack_require__(100); // `Reflect.getPrototypeOf` method
+var CORRECT_PROTOTYPE_GETTER = __webpack_require__(125); // `Reflect.getPrototypeOf` method
 // https://tc39.es/ecma262/#sec-reflect.getprototypeof
 
 
@@ -10712,10 +12058,10 @@ $({
 });
 
 /***/ }),
-/* 302 */
+/* 346 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2); // `Reflect.has` method
+var $ = __webpack_require__(3); // `Reflect.has` method
 // https://tc39.es/ecma262/#sec-reflect.has
 
 
@@ -10729,14 +12075,14 @@ $({
 });
 
 /***/ }),
-/* 303 */
+/* 347 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var $isExtensible = __webpack_require__(200); // `Reflect.isExtensible` method
+var $isExtensible = __webpack_require__(230); // `Reflect.isExtensible` method
 // https://tc39.es/ecma262/#sec-reflect.isextensible
 
 
@@ -10751,12 +12097,12 @@ $({
 });
 
 /***/ }),
-/* 304 */
+/* 348 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var ownKeys = __webpack_require__(51); // `Reflect.ownKeys` method
+var ownKeys = __webpack_require__(56); // `Reflect.ownKeys` method
 // https://tc39.es/ecma262/#sec-reflect.ownkeys
 
 
@@ -10768,16 +12114,16 @@ $({
 });
 
 /***/ }),
-/* 305 */
+/* 349 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var getBuiltIn = __webpack_require__(20);
+var getBuiltIn = __webpack_require__(23);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var FREEZING = __webpack_require__(202); // `Reflect.preventExtensions` method
+var FREEZING = __webpack_require__(232); // `Reflect.preventExtensions` method
 // https://tc39.es/ecma262/#sec-reflect.preventextensions
 
 
@@ -10800,28 +12146,28 @@ $({
 });
 
 /***/ }),
-/* 306 */
+/* 350 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var isDataDescriptor = __webpack_require__(299);
+var isDataDescriptor = __webpack_require__(343);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4);
+var getOwnPropertyDescriptorModule = __webpack_require__(5);
 
-var getPrototypeOf = __webpack_require__(99);
+var getPrototypeOf = __webpack_require__(124);
 
-var createPropertyDescriptor = __webpack_require__(9); // `Reflect.set` method
+var createPropertyDescriptor = __webpack_require__(11); // `Reflect.set` method
 // https://tc39.es/ecma262/#sec-reflect.set
 
 
@@ -10866,7 +12212,7 @@ var MS_EDGE_BUG = fails(function () {
 
   var object = definePropertyModule.f(new Constructor(), 'a', {
     configurable: true
-  }); // eslint-disable-next-line es/no-reflect -- required for testing
+  }); // eslint-disable-next-line es-x/no-reflect -- required for testing
 
   return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;
 });
@@ -10879,16 +12225,16 @@ $({
 });
 
 /***/ }),
-/* 307 */
+/* 351 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var aPossiblePrototype = __webpack_require__(102);
+var aPossiblePrototype = __webpack_require__(113);
 
-var objectSetPrototypeOf = __webpack_require__(101); // `Reflect.setPrototypeOf` method
+var objectSetPrototypeOf = __webpack_require__(112); // `Reflect.setPrototypeOf` method
 // https://tc39.es/ecma262/#sec-reflect.setprototypeof
 
 
@@ -10910,14 +12256,14 @@ if (objectSetPrototypeOf) $({
 });
 
 /***/ }),
-/* 308 */
+/* 352 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var setToStringTag = __webpack_require__(78);
+var setToStringTag = __webpack_require__(82);
 
 $({
   global: true
@@ -10929,61 +12275,60 @@ $({
 setToStringTag(global.Reflect, 'Reflect', true);
 
 /***/ }),
-/* 309 */
+/* 353 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var isForced = __webpack_require__(61);
+var isForced = __webpack_require__(67);
 
-var inheritIfRequired = __webpack_require__(203);
+var inheritIfRequired = __webpack_require__(115);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var defineProperty = (__webpack_require__(41).f);
+var getOwnPropertyNames = (__webpack_require__(57).f);
 
-var getOwnPropertyNames = (__webpack_require__(52).f);
+var isPrototypeOf = __webpack_require__(24);
 
-var isPrototypeOf = __webpack_require__(21);
+var isRegExp = __webpack_require__(354);
 
-var isRegExp = __webpack_require__(310);
+var toString = __webpack_require__(68);
 
-var toString = __webpack_require__(64);
+var getRegExpFlags = __webpack_require__(355);
 
-var regExpFlags = __webpack_require__(311);
+var stickyHelpers = __webpack_require__(357);
 
-var stickyHelpers = __webpack_require__(312);
+var proxyAccessor = __webpack_require__(114);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var enforceInternalState = (__webpack_require__(45).enforce);
+var enforceInternalState = (__webpack_require__(51).enforce);
 
-var setSpecies = __webpack_require__(160);
+var setSpecies = __webpack_require__(188);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var UNSUPPORTED_DOT_ALL = __webpack_require__(313);
+var UNSUPPORTED_DOT_ALL = __webpack_require__(358);
 
-var UNSUPPORTED_NCG = __webpack_require__(314);
+var UNSUPPORTED_NCG = __webpack_require__(359);
 
 var MATCH = wellKnownSymbol('match');
 var NativeRegExp = global.RegExp;
 var RegExpPrototype = NativeRegExp.prototype;
 var SyntaxError = global.SyntaxError;
-var getFlags = uncurryThis(regExpFlags);
 var exec = uncurryThis(RegExpPrototype.exec);
 var charAt = uncurryThis(''.charAt);
 var replace = uncurryThis(''.replace);
 var stringIndexOf = uncurryThis(''.indexOf);
-var stringSlice = uncurryThis(''.slice); // TODO: Use only propper RegExpIdentifierName
+var stringSlice = uncurryThis(''.slice); // TODO: Use only proper RegExpIdentifierName
 
 var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
 var re1 = /a/g;
@@ -11098,7 +12443,7 @@ if (isForced('RegExp', BASE_FORCED)) {
 
     if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {
       pattern = pattern.source;
-      if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);
+      if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);
     }
 
     pattern = pattern === undefined ? '' : toString(pattern);
@@ -11146,39 +12491,29 @@ if (isForced('RegExp', BASE_FORCED)) {
     return result;
   };
 
-  var proxy = function (key) {
-    key in RegExpWrapper || defineProperty(RegExpWrapper, key, {
-      configurable: true,
-      get: function () {
-        return NativeRegExp[key];
-      },
-      set: function (it) {
-        NativeRegExp[key] = it;
-      }
-    });
-  };
-
   for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {
-    proxy(keys[index++]);
+    proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);
   }
 
   RegExpPrototype.constructor = RegExpWrapper;
   RegExpWrapper.prototype = RegExpPrototype;
-  redefine(global, 'RegExp', RegExpWrapper);
+  defineBuiltIn(global, 'RegExp', RegExpWrapper, {
+    constructor: true
+  });
 } // https://tc39.es/ecma262/#sec-get-regexp-@@species
 
 
 setSpecies('RegExp');
 
 /***/ }),
-/* 310 */
+/* 354 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation
 // https://tc39.es/ecma262/#sec-isregexp
@@ -11189,35 +12524,56 @@ module.exports = function (it) {
 };
 
 /***/ }),
-/* 311 */
+/* 355 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var call = __webpack_require__(8);
+
+var hasOwn = __webpack_require__(38);
+
+var isPrototypeOf = __webpack_require__(24);
+
+var regExpFlags = __webpack_require__(356);
+
+var RegExpPrototype = RegExp.prototype;
+
+module.exports = function (R) {
+  var flags = R.flags;
+  return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags;
+};
+
+/***/ }),
+/* 356 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var anObject = __webpack_require__(42); // `RegExp.prototype.flags` getter implementation
+var anObject = __webpack_require__(46); // `RegExp.prototype.flags` getter implementation
 // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
 
 
 module.exports = function () {
   var that = anObject(this);
   var result = '';
+  if (that.hasIndices) result += 'd';
   if (that.global) result += 'g';
   if (that.ignoreCase) result += 'i';
   if (that.multiline) result += 'm';
   if (that.dotAll) result += 's';
   if (that.unicode) result += 'u';
+  if (that.unicodeSets) result += 'v';
   if (that.sticky) result += 'y';
   return result;
 };
 
 /***/ }),
-/* 312 */
+/* 357 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var global = __webpack_require__(3); // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
+var global = __webpack_require__(4); // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
 
 
 var $RegExp = global.RegExp;
@@ -11244,12 +12600,12 @@ module.exports = {
 };
 
 /***/ }),
-/* 313 */
+/* 358 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var global = __webpack_require__(3); // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
+var global = __webpack_require__(4); // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
 
 
 var $RegExp = global.RegExp;
@@ -11259,12 +12615,12 @@ module.exports = fails(function () {
 });
 
 /***/ }),
-/* 314 */
+/* 359 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var global = __webpack_require__(3); // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
+var global = __webpack_require__(4); // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
 
 
 var $RegExp = global.RegExp;
@@ -11274,29 +12630,27 @@ module.exports = fails(function () {
 });
 
 /***/ }),
-/* 315 */
+/* 360 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var UNSUPPORTED_DOT_ALL = __webpack_require__(313);
+var UNSUPPORTED_DOT_ALL = __webpack_require__(358);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineBuiltInAccessor = __webpack_require__(304);
 
-var getInternalState = (__webpack_require__(45).get);
+var getInternalState = (__webpack_require__(51).get);
 
 var RegExpPrototype = RegExp.prototype;
-var TypeError = global.TypeError; // `RegExp.prototype.dotAll` getter
+var $TypeError = TypeError; // `RegExp.prototype.dotAll` getter
 // https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
 
 if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
-  defineProperty(RegExpPrototype, 'dotAll', {
+  defineBuiltInAccessor(RegExpPrototype, 'dotAll', {
     configurable: true,
-    get: function () {
+    get: function dotAll() {
       if (this === RegExpPrototype) return undefined; // We can't use InternalStateModule.getterFor because
       // we don't add metadata for regexps created by a literal.
 
@@ -11304,21 +12658,21 @@ if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
         return !!getInternalState(this).dotAll;
       }
 
-      throw TypeError('Incompatible receiver, RegExp required');
+      throw $TypeError('Incompatible receiver, RegExp required');
     }
   });
 }
 
 /***/ }),
-/* 316 */
+/* 361 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var exec = __webpack_require__(317); // `RegExp.prototype.exec` method
+var exec = __webpack_require__(362); // `RegExp.prototype.exec` method
 // https://tc39.es/ecma262/#sec-regexp.prototype.exec
 
 
@@ -11331,7 +12685,7 @@ $({
 });
 
 /***/ }),
-/* 317 */
+/* 362 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -11340,25 +12694,25 @@ $({
 
 /* eslint-disable regexp/no-useless-quantifier -- testing */
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var regexpFlags = __webpack_require__(311);
+var regexpFlags = __webpack_require__(356);
 
-var stickyHelpers = __webpack_require__(312);
+var stickyHelpers = __webpack_require__(357);
 
-var shared = __webpack_require__(31);
+var shared = __webpack_require__(34);
 
-var create = __webpack_require__(67);
+var create = __webpack_require__(71);
 
-var getInternalState = (__webpack_require__(45).get);
+var getInternalState = (__webpack_require__(51).get);
 
-var UNSUPPORTED_DOT_ALL = __webpack_require__(313);
+var UNSUPPORTED_DOT_ALL = __webpack_require__(358);
 
-var UNSUPPORTED_NCG = __webpack_require__(314);
+var UNSUPPORTED_NCG = __webpack_require__(359);
 
 var nativeReplace = shared('native-string-replace', String.prototype.replace);
 var nativeExec = RegExp.prototype.exec;
@@ -11443,7 +12797,7 @@ if (PATCH) {
 
     if (NPCG_INCLUDED && match && match.length > 1) {
       // Fix browsers whose `exec` methods don't consistently return `undefined`
-      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+      // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/
       call(nativeReplace, match[0], reCopy, function () {
         for (i = 1; i < arguments.length - 2; i++) {
           if (arguments[i] === undefined) match[i] = undefined;
@@ -11467,56 +12821,90 @@ if (PATCH) {
 module.exports = patchedExec;
 
 /***/ }),
-/* 318 */
+/* 363 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var DESCRIPTORS = __webpack_require__(5);
+var global = __webpack_require__(4);
+
+var DESCRIPTORS = __webpack_require__(6);
+
+var defineBuiltInAccessor = __webpack_require__(304);
 
-var objectDefinePropertyModule = __webpack_require__(41);
+var regExpFlags = __webpack_require__(356);
 
-var regExpFlags = __webpack_require__(311);
+var fails = __webpack_require__(7); // babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError
 
-var fails = __webpack_require__(6);
 
+var RegExp = global.RegExp;
 var RegExpPrototype = RegExp.prototype;
 var FORCED = DESCRIPTORS && fails(function () {
-  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
-  return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({
-    dotAll: true,
-    sticky: true
-  }) !== 'sy';
+  var INDICES_SUPPORT = true;
+
+  try {
+    RegExp('.', 'd');
+  } catch (error) {
+    INDICES_SUPPORT = false;
+  }
+
+  var O = {}; // modern V8 bug
+
+  var calls = '';
+  var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';
+
+  var addGetter = function (key, chr) {
+    // eslint-disable-next-line es-x/no-object-defineproperty -- safe
+    Object.defineProperty(O, key, {
+      get: function () {
+        calls += chr;
+        return true;
+      }
+    });
+  };
+
+  var pairs = {
+    dotAll: 's',
+    global: 'g',
+    ignoreCase: 'i',
+    multiline: 'm',
+    sticky: 'y'
+  };
+  if (INDICES_SUPPORT) pairs.hasIndices = 'd';
+
+  for (var key in pairs) addGetter(key, pairs[key]); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
+
+
+  var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);
+  return result !== expected || calls !== expected;
 }); // `RegExp.prototype.flags` getter
 // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
 
-if (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', {
+if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {
   configurable: true,
   get: regExpFlags
 });
 
 /***/ }),
-/* 319 */
+/* 364 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var MISSED_STICKY = (__webpack_require__(312).MISSED_STICKY);
+var MISSED_STICKY = (__webpack_require__(357).MISSED_STICKY);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var defineProperty = (__webpack_require__(41).f);
+var defineBuiltInAccessor = __webpack_require__(304);
 
-var getInternalState = (__webpack_require__(45).get);
+var getInternalState = (__webpack_require__(51).get);
 
 var RegExpPrototype = RegExp.prototype;
-var TypeError = global.TypeError; // `RegExp.prototype.sticky` getter
+var $TypeError = TypeError; // `RegExp.prototype.sticky` getter
 // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
 
 if (DESCRIPTORS && MISSED_STICKY) {
-  defineProperty(RegExpPrototype, 'sticky', {
+  defineBuiltInAccessor(RegExpPrototype, 'sticky', {
     configurable: true,
-    get: function () {
+    get: function sticky() {
       if (this === RegExpPrototype) return undefined; // We can't use InternalStateModule.getterFor because
       // we don't add metadata for regexps created by a literal.
 
@@ -11524,31 +12912,29 @@ if (DESCRIPTORS && MISSED_STICKY) {
         return !!getInternalState(this).sticky;
       }
 
-      throw TypeError('Incompatible receiver, RegExp required');
+      throw $TypeError('Incompatible receiver, RegExp required');
     }
   });
 }
 
 /***/ }),
-/* 320 */
+/* 365 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
  // TODO: Remove from `core-js@4` since it's moved to entry points
 
-__webpack_require__(316);
-
-var $ = __webpack_require__(2);
+__webpack_require__(361);
 
-var global = __webpack_require__(3);
+var $ = __webpack_require__(3);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var uncurryThis = __webpack_require__(12);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var anObject = __webpack_require__(46);
 
-var isObject = __webpack_require__(17);
+var toString = __webpack_require__(68);
 
 var DELEGATES_TO_EXEC = function () {
   var execCalled = false;
@@ -11562,8 +12948,7 @@ var DELEGATES_TO_EXEC = function () {
   return re.test('abc') === true && execCalled;
 }();
 
-var Error = global.Error;
-var un$Test = uncurryThis(/./.test); // `RegExp.prototype.test` method
+var nativeTest = /./.test; // `RegExp.prototype.test` method
 // https://tc39.es/ecma262/#sec-regexp.prototype.test
 
 $({
@@ -11571,78 +12956,78 @@ $({
   proto: true,
   forced: !DELEGATES_TO_EXEC
 }, {
-  test: function (str) {
-    var exec = this.exec;
-    if (!isCallable(exec)) return un$Test(this, str);
-    var result = call(exec, this, str);
-
-    if (result !== null && !isObject(result)) {
-      throw new Error('RegExp exec method returned something other than an Object or null');
-    }
-
-    return !!result;
+  test: function (S) {
+    var R = anObject(this);
+    var string = toString(S);
+    var exec = R.exec;
+    if (!isCallable(exec)) return call(nativeTest, R, string);
+    var result = call(exec, R, string);
+    if (result === null) return false;
+    anObject(result);
+    return true;
   }
 });
 
 /***/ }),
-/* 321 */
+/* 366 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var uncurryThis = __webpack_require__(12);
-
 var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER);
 
-var redefine = __webpack_require__(43);
-
-var anObject = __webpack_require__(42);
+var defineBuiltIn = __webpack_require__(47);
 
-var isPrototypeOf = __webpack_require__(21);
+var anObject = __webpack_require__(46);
 
-var $toString = __webpack_require__(64);
+var $toString = __webpack_require__(68);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var regExpFlags = __webpack_require__(311);
+var getRegExpFlags = __webpack_require__(355);
 
 var TO_STRING = 'toString';
 var RegExpPrototype = RegExp.prototype;
-var n$ToString = RegExpPrototype[TO_STRING];
-var getFlags = uncurryThis(regExpFlags);
+var nativeToString = RegExpPrototype[TO_STRING];
 var NOT_GENERIC = fails(function () {
-  return n$ToString.call({
+  return nativeToString.call({
     source: 'a',
     flags: 'b'
   }) != '/a/b';
 }); // FF44- RegExp#toString has a wrong name
 
-var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING; // `RegExp.prototype.toString` method
+var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING; // `RegExp.prototype.toString` method
 // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
 
 if (NOT_GENERIC || INCORRECT_NAME) {
-  redefine(RegExp.prototype, TO_STRING, function toString() {
+  defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {
     var R = anObject(this);
-    var p = $toString(R.source);
-    var rf = R.flags;
-    var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);
-    return '/' + p + '/' + f;
+    var pattern = $toString(R.source);
+    var flags = $toString(getRegExpFlags(R));
+    return '/' + pattern + '/' + flags;
   }, {
     unsafe: true
   });
 }
 
 /***/ }),
-/* 322 */
+/* 367 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(368);
+
+/***/ }),
+/* 368 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var collection = __webpack_require__(198);
+var collection = __webpack_require__(228);
 
-var collectionStrong = __webpack_require__(204); // `Set` constructor
+var collectionStrong = __webpack_require__(233); // `Set` constructor
 // https://tc39.es/ecma262/#sec-set-objects
 
 
@@ -11653,27 +13038,28 @@ collection('Set', function (init) {
 }, collectionStrong);
 
 /***/ }),
-/* 323 */
+/* 369 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 var charAt = uncurryThis(''.charAt);
 var FORCED = fails(function () {
-  return '𠮷'.at(0) !== '\uD842';
+  // eslint-disable-next-line es-x/no-array-string-prototype-at -- safe
+  return '𠮷'.at(-2) !== '\uD842';
 }); // `String.prototype.at` method
 // https://github.com/tc39/proposal-relative-indexing-method
 
@@ -11692,15 +13078,15 @@ $({
 });
 
 /***/ }),
-/* 324 */
+/* 370 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var codeAt = (__webpack_require__(325).codeAt); // `String.prototype.codePointAt` method
+var codeAt = (__webpack_require__(371).codeAt); // `String.prototype.codePointAt` method
 // https://tc39.es/ecma262/#sec-string.prototype.codepointat
 
 
@@ -11714,16 +13100,16 @@ $({
 });
 
 /***/ }),
-/* 325 */
+/* 371 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
 var charAt = uncurryThis(''.charAt);
 var charCodeAt = uncurryThis(''.charCodeAt);
@@ -11751,32 +13137,32 @@ module.exports = {
 };
 
 /***/ }),
-/* 326 */
+/* 372 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f);
+var getOwnPropertyDescriptor = (__webpack_require__(5).f);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var notARegExp = __webpack_require__(327);
+var notARegExp = __webpack_require__(373);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var correctIsRegExpLogic = __webpack_require__(328);
+var correctIsRegExpLogic = __webpack_require__(374);
 
-var IS_PURE = __webpack_require__(32); // eslint-disable-next-line es/no-string-prototype-endswith -- safe
+var IS_PURE = __webpack_require__(35); // eslint-disable-next-line es-x/no-string-prototype-endswith -- safe
 
 
-var un$EndsWith = uncurryThis(''.endsWith);
+var nativeEndsWith = uncurryThis(''.endsWith);
 var slice = uncurryThis(''.slice);
 var min = Math.min;
 var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702
@@ -11801,33 +13187,31 @@ $({
     var len = that.length;
     var end = endPosition === undefined ? len : min(toLength(endPosition), len);
     var search = toString(searchString);
-    return un$EndsWith ? un$EndsWith(that, search, end) : slice(that, end - search.length, end) === search;
+    return nativeEndsWith ? nativeEndsWith(that, search, end) : slice(that, end - search.length, end) === search;
   }
 });
 
 /***/ }),
-/* 327 */
+/* 373 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var isRegExp = __webpack_require__(310);
+var isRegExp = __webpack_require__(354);
 
-var TypeError = global.TypeError;
+var $TypeError = TypeError;
 
 module.exports = function (it) {
   if (isRegExp(it)) {
-    throw TypeError("The method doesn't accept regular expressions");
+    throw $TypeError("The method doesn't accept regular expressions");
   }
 
   return it;
 };
 
 /***/ }),
-/* 328 */
+/* 374 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var MATCH = wellKnownSymbol('match');
 
@@ -11849,19 +13233,17 @@ module.exports = function (METHOD_NAME) {
 };
 
 /***/ }),
-/* 329 */
+/* 375 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
-
-var global = __webpack_require__(3);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var RangeError = global.RangeError;
-var fromCharCode = String.fromCharCode; // eslint-disable-next-line es/no-string-fromcodepoint -- required for testing
+var $RangeError = RangeError;
+var fromCharCode = String.fromCharCode; // eslint-disable-next-line es-x/no-string-fromcodepoint -- required for testing
 
 var $fromCodePoint = String.fromCodePoint;
 var join = uncurryThis([].join); // length should be 1, old FF problem
@@ -11872,6 +13254,7 @@ var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1; // `Strin
 $({
   target: 'String',
   stat: true,
+  arity: 1,
   forced: INCORRECT_LENGTH
 }, {
   // eslint-disable-next-line no-unused-vars -- required for `.length`
@@ -11883,7 +13266,7 @@ $({
 
     while (length > i) {
       code = +arguments[i++];
-      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
+      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw $RangeError(code + ' is not a valid code point');
       elements[i] = code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);
     }
 
@@ -11892,23 +13275,23 @@ $({
 });
 
 /***/ }),
-/* 330 */
+/* 376 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var notARegExp = __webpack_require__(327);
+var notARegExp = __webpack_require__(373);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var correctIsRegExpLogic = __webpack_require__(328);
+var correctIsRegExpLogic = __webpack_require__(374);
 
 var stringIndexOf = uncurryThis(''.indexOf); // `String.prototype.includes` method
 // https://tc39.es/ecma262/#sec-string.prototype.includes
@@ -11926,19 +13309,21 @@ $({
 });
 
 /***/ }),
-/* 331 */
+/* 377 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var charAt = (__webpack_require__(325).charAt);
+var charAt = (__webpack_require__(371).charAt);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
-var defineIterator = __webpack_require__(139);
+var defineIterator = __webpack_require__(164);
+
+var createIterResultObject = __webpack_require__(167);
 
 var STRING_ITERATOR = 'String Iterator';
 var setInternalState = InternalStateModule.set;
@@ -11957,42 +13342,38 @@ defineIterator(String, 'String', function (iterated) {
   var string = state.string;
   var index = state.index;
   var point;
-  if (index >= string.length) return {
-    value: undefined,
-    done: true
-  };
+  if (index >= string.length) return createIterResultObject(undefined, true);
   point = charAt(string, index);
   state.index += point.length;
-  return {
-    value: point,
-    done: false
-  };
+  return createIterResultObject(point, false);
 });
 
 /***/ }),
-/* 332 */
+/* 378 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var fixRegExpWellKnownSymbolLogic = __webpack_require__(333);
+var fixRegExpWellKnownSymbolLogic = __webpack_require__(379);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var toLength = __webpack_require__(58);
+var isNullOrUndefined = __webpack_require__(17);
 
-var toString = __webpack_require__(64);
+var toLength = __webpack_require__(64);
 
-var requireObjectCoercible = __webpack_require__(14);
+var toString = __webpack_require__(68);
 
-var getMethod = __webpack_require__(26);
+var requireObjectCoercible = __webpack_require__(16);
 
-var advanceStringIndex = __webpack_require__(334);
+var getMethod = __webpack_require__(29);
 
-var regExpExec = __webpack_require__(335); // @@match logic
+var advanceStringIndex = __webpack_require__(380);
+
+var regExpExec = __webpack_require__(381); // @@match logic
 
 
 fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {
@@ -12000,7 +13381,7 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
   // https://tc39.es/ecma262/#sec-string.prototype.match
   function match(regexp) {
     var O = requireObjectCoercible(this);
-    var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);
+    var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);
     return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));
   }, // `RegExp.prototype[@@match]` method
   // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
@@ -12028,25 +13409,25 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
 });
 
 /***/ }),
-/* 333 */
+/* 379 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
  // TODO: Remove from `core-js@4` since it's moved to entry points
 
-__webpack_require__(316);
+__webpack_require__(361);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var regexpExec = __webpack_require__(317);
+var regexpExec = __webpack_require__(362);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
 var SPECIES = wellKnownSymbol('species');
 var RegExpPrototype = RegExp.prototype;
@@ -12121,21 +13502,21 @@ module.exports = function (KEY, exec, FORCED, SHAM) {
         done: false
       };
     });
-    redefine(String.prototype, KEY, methods[0]);
-    redefine(RegExpPrototype, SYMBOL, methods[1]);
+    defineBuiltIn(String.prototype, KEY, methods[0]);
+    defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);
   }
 
   if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
 };
 
 /***/ }),
-/* 334 */
+/* 380 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var charAt = (__webpack_require__(325).charAt); // `AdvanceStringIndex` abstract operation
+var charAt = (__webpack_require__(371).charAt); // `AdvanceStringIndex` abstract operation
 // https://tc39.es/ecma262/#sec-advancestringindex
 
 
@@ -12144,22 +13525,20 @@ module.exports = function (S, index, unicode) {
 };
 
 /***/ }),
-/* 335 */
+/* 381 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
-
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var classof = __webpack_require__(13);
+var classof = __webpack_require__(15);
 
-var regexpExec = __webpack_require__(317);
+var regexpExec = __webpack_require__(362);
 
-var TypeError = global.TypeError; // `RegExpExec` abstract operation
+var $TypeError = TypeError; // `RegExpExec` abstract operation
 // https://tc39.es/ecma262/#sec-regexpexec
 
 module.exports = function (R, S) {
@@ -12172,60 +13551,60 @@ module.exports = function (R, S) {
   }
 
   if (classof(R) === 'RegExp') return call(regexpExec, R, S);
-  throw TypeError('RegExp#exec called on incompatible receiver');
+  throw $TypeError('RegExp#exec called on incompatible receiver');
 };
 
 /***/ }),
-/* 336 */
+/* 382 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
-/* eslint-disable es/no-string-prototype-matchall -- safe */
+/* eslint-disable es-x/no-string-prototype-matchall -- safe */
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var call = __webpack_require__(8);
 
-var call = __webpack_require__(7);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var createIteratorConstructor = __webpack_require__(165);
 
-var createIteratorConstructor = __webpack_require__(140);
+var createIterResultObject = __webpack_require__(167);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var classof = __webpack_require__(13);
+var isNullOrUndefined = __webpack_require__(17);
 
-var isPrototypeOf = __webpack_require__(21);
+var classof = __webpack_require__(15);
 
-var isRegExp = __webpack_require__(310);
+var isRegExp = __webpack_require__(354);
 
-var regExpFlags = __webpack_require__(311);
+var getRegExpFlags = __webpack_require__(355);
 
-var getMethod = __webpack_require__(26);
+var getMethod = __webpack_require__(29);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIn = __webpack_require__(47);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var speciesConstructor = __webpack_require__(174);
+var speciesConstructor = __webpack_require__(203);
 
-var advanceStringIndex = __webpack_require__(334);
+var advanceStringIndex = __webpack_require__(380);
 
-var regExpExec = __webpack_require__(335);
+var regExpExec = __webpack_require__(381);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
 var MATCH_ALL = wellKnownSymbol('matchAll');
 var REGEXP_STRING = 'RegExp String';
@@ -12233,12 +13612,11 @@ var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
 var setInternalState = InternalStateModule.set;
 var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
 var RegExpPrototype = RegExp.prototype;
-var TypeError = global.TypeError;
-var getFlags = uncurryThis(regExpFlags);
+var $TypeError = TypeError;
 var stringIndexOf = uncurryThis(''.indexOf);
-var un$MatchAll = uncurryThis(''.matchAll);
-var WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {
-  un$MatchAll('a', /./);
+var nativeMatchAll = uncurryThis(''.matchAll);
+var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
+  nativeMatchAll('a', /./);
 });
 var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
   setInternalState(this, {
@@ -12251,45 +13629,31 @@ var $RegExpStringIterator = createIteratorConstructor(function RegExpStringItera
   });
 }, REGEXP_STRING, function next() {
   var state = getInternalState(this);
-  if (state.done) return {
-    value: undefined,
-    done: true
-  };
+  if (state.done) return createIterResultObject(undefined, true);
   var R = state.regexp;
   var S = state.string;
   var match = regExpExec(R, S);
-  if (match === null) return {
-    value: undefined,
-    done: state.done = true
-  };
+
+  if (match === null) {
+    state.done = true;
+    return createIterResultObject(undefined, true);
+  }
 
   if (state.global) {
     if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
-    return {
-      value: match,
-      done: false
-    };
+    return createIterResultObject(match, false);
   }
 
   state.done = true;
-  return {
-    value: match,
-    done: false
-  };
+  return createIterResultObject(match, false);
 });
 
 var $matchAll = function (string) {
   var R = anObject(this);
   var S = toString(string);
-  var C, flagsValue, flags, matcher, $global, fullUnicode;
-  C = speciesConstructor(R, RegExp);
-  flagsValue = R.flags;
-
-  if (flagsValue === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype)) {
-    flagsValue = getFlags(R);
-  }
-
-  flags = flagsValue === undefined ? '' : toString(flagsValue);
+  var C = speciesConstructor(R, RegExp);
+  var flags = toString(getRegExpFlags(R));
+  var matcher, $global, fullUnicode;
   matcher = new C(C === RegExp ? R.source : R, flags);
   $global = !!~stringIndexOf(flags, 'g');
   fullUnicode = !!~stringIndexOf(flags, 'u');
@@ -12308,37 +13672,37 @@ $({
     var O = requireObjectCoercible(this);
     var flags, S, matcher, rx;
 
-    if (regexp != null) {
+    if (!isNullOrUndefined(regexp)) {
       if (isRegExp(regexp)) {
-        flags = toString(requireObjectCoercible('flags' in RegExpPrototype ? regexp.flags : getFlags(regexp)));
-        if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');
+        flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
+        if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
       }
 
-      if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
+      if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
       matcher = getMethod(regexp, MATCH_ALL);
       if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
       if (matcher) return call(matcher, regexp, O);
-    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
+    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
 
     S = toString(O);
     rx = new RegExp(regexp, 'g');
     return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);
   }
 });
-IS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);
+IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);
 
 /***/ }),
-/* 337 */
+/* 383 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $padEnd = (__webpack_require__(183).end);
+var $padEnd = (__webpack_require__(213).end);
 
-var WEBKIT_BUG = __webpack_require__(338); // `String.prototype.padEnd` method
+var WEBKIT_BUG = __webpack_require__(384); // `String.prototype.padEnd` method
 // https://tc39.es/ecma262/#sec-string.prototype.padend
 
 
@@ -12355,26 +13719,26 @@ $({
 });
 
 /***/ }),
-/* 338 */
+/* 384 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // https://github.com/zloirock/core-js/issues/280
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
 module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent);
 
 /***/ }),
-/* 339 */
+/* 385 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $padStart = (__webpack_require__(183).start);
+var $padStart = (__webpack_require__(213).start);
 
-var WEBKIT_BUG = __webpack_require__(338); // `String.prototype.padStart` method
+var WEBKIT_BUG = __webpack_require__(384); // `String.prototype.padStart` method
 // https://tc39.es/ecma262/#sec-string.prototype.padstart
 
 
@@ -12391,20 +13755,20 @@ $({
 });
 
 /***/ }),
-/* 340 */
+/* 386 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toIndexedObject = __webpack_require__(10);
+var toIndexedObject = __webpack_require__(12);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
 var push = uncurryThis([].push);
 var join = uncurryThis([].join); // `String.raw` method
@@ -12430,12 +13794,12 @@ $({
 });
 
 /***/ }),
-/* 341 */
+/* 387 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var repeat = __webpack_require__(184); // `String.prototype.repeat` method
+var repeat = __webpack_require__(214); // `String.prototype.repeat` method
 // https://tc39.es/ecma262/#sec-string.prototype.repeat
 
 
@@ -12447,43 +13811,45 @@ $({
 });
 
 /***/ }),
-/* 342 */
+/* 388 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
+
+var call = __webpack_require__(8);
 
-var call = __webpack_require__(7);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var fixRegExpWellKnownSymbolLogic = __webpack_require__(379);
 
-var fixRegExpWellKnownSymbolLogic = __webpack_require__(333);
+var fails = __webpack_require__(7);
 
-var fails = __webpack_require__(6);
+var anObject = __webpack_require__(46);
 
-var anObject = __webpack_require__(42);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var isNullOrUndefined = __webpack_require__(17);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var advanceStringIndex = __webpack_require__(334);
+var advanceStringIndex = __webpack_require__(380);
 
-var getMethod = __webpack_require__(26);
+var getMethod = __webpack_require__(29);
 
-var getSubstitution = __webpack_require__(343);
+var getSubstitution = __webpack_require__(389);
 
-var regExpExec = __webpack_require__(335);
+var regExpExec = __webpack_require__(381);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var REPLACE = wellKnownSymbol('replace');
 var max = Math.max;
@@ -12534,7 +13900,7 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa
   // https://tc39.es/ecma262/#sec-string.prototype.replace
   function replace(searchValue, replaceValue) {
     var O = requireObjectCoercible(this);
-    var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);
+    var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);
     return replacer ? call(replacer, searchValue, O, replaceValue) : call(nativeReplace, toString(O), searchValue, replaceValue);
   }, // `RegExp.prototype[@@replace]` method
   // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
@@ -12603,12 +13969,12 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa
 }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
 
 /***/ }),
-/* 343 */
+/* 389 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toObject = __webpack_require__(36);
+var toObject = __webpack_require__(39);
 
 var floor = Math.floor;
 var charAt = uncurryThis(''.charAt);
@@ -12668,42 +14034,40 @@ module.exports = function (matched, str, position, captures, namedCaptures, repl
 };
 
 /***/ }),
-/* 344 */
+/* 390 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var call = __webpack_require__(8);
 
-var call = __webpack_require__(7);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var requireObjectCoercible = __webpack_require__(16);
 
-var requireObjectCoercible = __webpack_require__(14);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var isNullOrUndefined = __webpack_require__(17);
 
-var isRegExp = __webpack_require__(310);
+var isRegExp = __webpack_require__(354);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var getMethod = __webpack_require__(26);
+var getMethod = __webpack_require__(29);
 
-var regExpFlags = __webpack_require__(311);
+var getRegExpFlags = __webpack_require__(355);
 
-var getSubstitution = __webpack_require__(343);
+var getSubstitution = __webpack_require__(389);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
 var REPLACE = wellKnownSymbol('replace');
-var RegExpPrototype = RegExp.prototype;
-var TypeError = global.TypeError;
-var getFlags = uncurryThis(regExpFlags);
+var $TypeError = TypeError;
 var indexOf = uncurryThis(''.indexOf);
 var replace = uncurryThis(''.replace);
 var stringSlice = uncurryThis(''.slice);
@@ -12728,12 +14092,12 @@ $({
     var endOfLastMatch = 0;
     var result = '';
 
-    if (searchValue != null) {
+    if (!isNullOrUndefined(searchValue)) {
       IS_REG_EXP = isRegExp(searchValue);
 
       if (IS_REG_EXP) {
-        flags = toString(requireObjectCoercible('flags' in RegExpPrototype ? searchValue.flags : getFlags(searchValue)));
-        if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
+        flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));
+        if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');
       }
 
       replacer = getMethod(searchValue, REPLACE);
@@ -12769,27 +14133,29 @@ $({
 });
 
 /***/ }),
-/* 345 */
+/* 391 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
+
+var fixRegExpWellKnownSymbolLogic = __webpack_require__(379);
 
-var fixRegExpWellKnownSymbolLogic = __webpack_require__(333);
+var anObject = __webpack_require__(46);
 
-var anObject = __webpack_require__(42);
+var isNullOrUndefined = __webpack_require__(17);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var sameValue = __webpack_require__(264);
+var sameValue = __webpack_require__(295);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var getMethod = __webpack_require__(26);
+var getMethod = __webpack_require__(29);
 
-var regExpExec = __webpack_require__(335); // @@search logic
+var regExpExec = __webpack_require__(381); // @@search logic
 
 
 fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {
@@ -12797,7 +14163,7 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
   // https://tc39.es/ecma262/#sec-string.prototype.search
   function search(regexp) {
     var O = requireObjectCoercible(this);
-    var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);
+    var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);
     return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));
   }, // `RegExp.prototype[@@search]` method
   // https://tc39.es/ecma262/#sec-regexp.prototype-@@search
@@ -12815,45 +14181,47 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
 });
 
 /***/ }),
-/* 346 */
+/* 392 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fixRegExpWellKnownSymbolLogic = __webpack_require__(333);
+var fixRegExpWellKnownSymbolLogic = __webpack_require__(379);
 
-var isRegExp = __webpack_require__(310);
+var anObject = __webpack_require__(46);
 
-var anObject = __webpack_require__(42);
+var isNullOrUndefined = __webpack_require__(17);
 
-var requireObjectCoercible = __webpack_require__(14);
+var isRegExp = __webpack_require__(354);
 
-var speciesConstructor = __webpack_require__(174);
+var requireObjectCoercible = __webpack_require__(16);
 
-var advanceStringIndex = __webpack_require__(334);
+var speciesConstructor = __webpack_require__(203);
 
-var toLength = __webpack_require__(58);
+var advanceStringIndex = __webpack_require__(380);
 
-var toString = __webpack_require__(64);
+var toLength = __webpack_require__(64);
 
-var getMethod = __webpack_require__(26);
+var toString = __webpack_require__(68);
 
-var arraySlice = __webpack_require__(72);
+var getMethod = __webpack_require__(29);
 
-var callRegExpExec = __webpack_require__(335);
+var arraySlice = __webpack_require__(76);
 
-var regexpExec = __webpack_require__(317);
+var callRegExpExec = __webpack_require__(381);
 
-var stickyHelpers = __webpack_require__(312);
+var regexpExec = __webpack_require__(362);
 
-var fails = __webpack_require__(6);
+var stickyHelpers = __webpack_require__(357);
+
+var fails = __webpack_require__(7);
 
 var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
 var MAX_UINT32 = 0xFFFFFFFF;
@@ -12932,7 +14300,7 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa
   // https://tc39.es/ecma262/#sec-string.prototype.split
   function split(separator, limit) {
     var O = requireObjectCoercible(this);
-    var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);
+    var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);
     return splitter ? call(splitter, separator, O, limit) : call(internalSplit, toString(O), separator, limit);
   }, // `RegExp.prototype[@@split]` method
   // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
@@ -12983,32 +14351,32 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa
 }, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);
 
 /***/ }),
-/* 347 */
+/* 393 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var getOwnPropertyDescriptor = (__webpack_require__(4).f);
+var getOwnPropertyDescriptor = (__webpack_require__(5).f);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
-var notARegExp = __webpack_require__(327);
+var notARegExp = __webpack_require__(373);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var correctIsRegExpLogic = __webpack_require__(328);
+var correctIsRegExpLogic = __webpack_require__(374);
 
-var IS_PURE = __webpack_require__(32); // eslint-disable-next-line es/no-string-prototype-startswith -- safe
+var IS_PURE = __webpack_require__(35); // eslint-disable-next-line es-x/no-string-prototype-startswith -- safe
 
 
-var un$StartsWith = uncurryThis(''.startsWith);
+var nativeStartsWith = uncurryThis(''.startsWith);
 var stringSlice = uncurryThis(''.slice);
 var min = Math.min;
 var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); // https://github.com/zloirock/core-js/pull/702
@@ -13031,30 +14399,30 @@ $({
     notARegExp(searchString);
     var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
     var search = toString(searchString);
-    return un$StartsWith ? un$StartsWith(that, search, index) : stringSlice(that, index, index + search.length) === search;
+    return nativeStartsWith ? nativeStartsWith(that, search, index) : stringSlice(that, index, index + search.length) === search;
   }
 });
 
 /***/ }),
-/* 348 */
+/* 394 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
 var stringSlice = uncurryThis(''.slice);
 var max = Math.max;
-var min = Math.min; // eslint-disable-next-line unicorn/prefer-string-slice -- required for testing
+var min = Math.min; // eslint-disable-next-line unicorn/prefer-string-slice, es-x/no-string-prototype-substr -- required for testing
 
 var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; // `String.prototype.substr` method
 // https://tc39.es/ecma262/#sec-string.prototype.substr
@@ -13079,17 +14447,17 @@ $({
 });
 
 /***/ }),
-/* 349 */
+/* 395 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var $trim = (__webpack_require__(229).trim);
+var $trim = (__webpack_require__(259).trim);
 
-var forcedStringTrimMethod = __webpack_require__(350); // `String.prototype.trim` method
+var forcedStringTrimMethod = __webpack_require__(396); // `String.prototype.trim` method
 // https://tc39.es/ecma262/#sec-string.prototype.trim
 
 
@@ -13104,14 +14472,14 @@ $({
 });
 
 /***/ }),
-/* 350 */
+/* 396 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var whitespaces = __webpack_require__(230);
+var whitespaces = __webpack_require__(260);
 
 var non = '\u200B\u0085\u180E'; // check that a method works with the correct list
 // of whitespaces and has a correct name
@@ -13123,77 +14491,139 @@ module.exports = function (METHOD_NAME) {
 };
 
 /***/ }),
-/* 351 */
+/* 397 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-"use strict";
+// TODO: Remove this line from `core-js@4`
+__webpack_require__(398);
 
+var $ = __webpack_require__(3);
+
+var trimEnd = __webpack_require__(399); // `String.prototype.trimEnd` method
+// https://tc39.es/ecma262/#sec-string.prototype.trimend
+// eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe
 
-var $ = __webpack_require__(2);
 
-var $trimEnd = (__webpack_require__(229).end);
+$({
+  target: 'String',
+  proto: true,
+  name: 'trimEnd',
+  forced: ''.trimEnd !== trimEnd
+}, {
+  trimEnd: trimEnd
+});
+
+/***/ }),
+/* 398 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var forcedStringTrimMethod = __webpack_require__(350);
+var $ = __webpack_require__(3);
 
-var FORCED = forcedStringTrimMethod('trimEnd');
-var trimEnd = FORCED ? function trimEnd() {
-  return $trimEnd(this); // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe
-} : ''.trimEnd; // `String.prototype.{ trimEnd, trimRight }` methods
+var trimEnd = __webpack_require__(399); // `String.prototype.trimRight` method
 // https://tc39.es/ecma262/#sec-string.prototype.trimend
-// https://tc39.es/ecma262/#String.prototype.trimright
+// eslint-disable-next-line es-x/no-string-prototype-trimleft-trimright -- safe
+
 
 $({
   target: 'String',
   proto: true,
   name: 'trimEnd',
-  forced: FORCED
+  forced: ''.trimRight !== trimEnd
 }, {
-  trimEnd: trimEnd,
   trimRight: trimEnd
 });
 
 /***/ }),
-/* 352 */
-/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+/* 399 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $trimEnd = (__webpack_require__(259).end);
+
+var forcedStringTrimMethod = __webpack_require__(396); // `String.prototype.{ trimEnd, trimRight }` method
+// https://tc39.es/ecma262/#sec-string.prototype.trimend
+// https://tc39.es/ecma262/#String.prototype.trimright
+
+
+module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {
+  return $trimEnd(this); // eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe
+} : ''.trimEnd;
+
+/***/ }),
+/* 400 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $trimStart = (__webpack_require__(229).start);
+// TODO: Remove this line from `core-js@4`
+__webpack_require__(401);
 
-var forcedStringTrimMethod = __webpack_require__(350);
+var $ = __webpack_require__(3);
 
-var FORCED = forcedStringTrimMethod('trimStart');
-var trimStart = FORCED ? function trimStart() {
-  return $trimStart(this); // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe
-} : ''.trimStart; // `String.prototype.{ trimStart, trimLeft }` methods
+var trimStart = __webpack_require__(402); // `String.prototype.trimStart` method
 // https://tc39.es/ecma262/#sec-string.prototype.trimstart
-// https://tc39.es/ecma262/#String.prototype.trimleft
+// eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe
+
 
 $({
   target: 'String',
   proto: true,
   name: 'trimStart',
-  forced: FORCED
+  forced: ''.trimStart !== trimStart
+}, {
+  trimStart: trimStart
+});
+
+/***/ }),
+/* 401 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var trimStart = __webpack_require__(402); // `String.prototype.trimLeft` method
+// https://tc39.es/ecma262/#sec-string.prototype.trimleft
+// eslint-disable-next-line es-x/no-string-prototype-trimleft-trimright -- safe
+
+
+$({
+  target: 'String',
+  proto: true,
+  name: 'trimStart',
+  forced: ''.trimLeft !== trimStart
 }, {
-  trimStart: trimStart,
   trimLeft: trimStart
 });
 
 /***/ }),
-/* 353 */
+/* 402 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $trimStart = (__webpack_require__(259).start);
+
+var forcedStringTrimMethod = __webpack_require__(396); // `String.prototype.{ trimStart, trimLeft }` method
+// https://tc39.es/ecma262/#sec-string.prototype.trimstart
+// https://tc39.es/ecma262/#String.prototype.trimleft
+
+
+module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {
+  return $trimStart(this); // eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe
+} : ''.trimStart;
+
+/***/ }),
+/* 403 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.anchor` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.anchor` method
 // https://tc39.es/ecma262/#sec-string.prototype.anchor
 
 
@@ -13208,14 +14638,14 @@ $({
 });
 
 /***/ }),
-/* 354 */
+/* 404 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var requireObjectCoercible = __webpack_require__(14);
+var requireObjectCoercible = __webpack_require__(16);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
 var quot = /"/g;
 var replace = uncurryThis(''.replace); // `CreateHTML` abstract operation
@@ -13229,10 +14659,10 @@ module.exports = function (string, tag, attribute, value) {
 };
 
 /***/ }),
-/* 355 */
+/* 405 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6); // check the existence of a method, lowercase
+var fails = __webpack_require__(7); // check the existence of a method, lowercase
 // of a tag and escaping quotes in arguments
 
 
@@ -13244,17 +14674,17 @@ module.exports = function (METHOD_NAME) {
 };
 
 /***/ }),
-/* 356 */
+/* 406 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.big` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.big` method
 // https://tc39.es/ecma262/#sec-string.prototype.big
 
 
@@ -13269,17 +14699,17 @@ $({
 });
 
 /***/ }),
-/* 357 */
+/* 407 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.blink` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.blink` method
 // https://tc39.es/ecma262/#sec-string.prototype.blink
 
 
@@ -13294,17 +14724,17 @@ $({
 });
 
 /***/ }),
-/* 358 */
+/* 408 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.bold` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.bold` method
 // https://tc39.es/ecma262/#sec-string.prototype.bold
 
 
@@ -13319,17 +14749,17 @@ $({
 });
 
 /***/ }),
-/* 359 */
+/* 409 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.fixed` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.fixed` method
 // https://tc39.es/ecma262/#sec-string.prototype.fixed
 
 
@@ -13344,17 +14774,17 @@ $({
 });
 
 /***/ }),
-/* 360 */
+/* 410 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.fontcolor` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.fontcolor` method
 // https://tc39.es/ecma262/#sec-string.prototype.fontcolor
 
 
@@ -13369,17 +14799,17 @@ $({
 });
 
 /***/ }),
-/* 361 */
+/* 411 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.fontsize` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.fontsize` method
 // https://tc39.es/ecma262/#sec-string.prototype.fontsize
 
 
@@ -13394,17 +14824,17 @@ $({
 });
 
 /***/ }),
-/* 362 */
+/* 412 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.italics` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.italics` method
 // https://tc39.es/ecma262/#sec-string.prototype.italics
 
 
@@ -13419,17 +14849,17 @@ $({
 });
 
 /***/ }),
-/* 363 */
+/* 413 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.link` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.link` method
 // https://tc39.es/ecma262/#sec-string.prototype.link
 
 
@@ -13444,17 +14874,17 @@ $({
 });
 
 /***/ }),
-/* 364 */
+/* 414 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.small` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.small` method
 // https://tc39.es/ecma262/#sec-string.prototype.small
 
 
@@ -13469,17 +14899,17 @@ $({
 });
 
 /***/ }),
-/* 365 */
+/* 415 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.strike` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.strike` method
 // https://tc39.es/ecma262/#sec-string.prototype.strike
 
 
@@ -13494,17 +14924,17 @@ $({
 });
 
 /***/ }),
-/* 366 */
+/* 416 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.sub` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.sub` method
 // https://tc39.es/ecma262/#sec-string.prototype.sub
 
 
@@ -13519,17 +14949,17 @@ $({
 });
 
 /***/ }),
-/* 367 */
+/* 417 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var createHTML = __webpack_require__(354);
+var createHTML = __webpack_require__(404);
 
-var forcedStringHTMLMethod = __webpack_require__(355); // `String.prototype.sup` method
+var forcedStringHTMLMethod = __webpack_require__(405); // `String.prototype.sup` method
 // https://tc39.es/ecma262/#sec-string.prototype.sup
 
 
@@ -13544,10 +14974,10 @@ $({
 });
 
 /***/ }),
-/* 368 */
+/* 418 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Float32Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Float32Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -13558,74 +14988,75 @@ createTypedArrayConstructor('Float32', function (init) {
 });
 
 /***/ }),
-/* 369 */
+/* 419 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var call = __webpack_require__(7);
+var call = __webpack_require__(8);
 
-var DESCRIPTORS = __webpack_require__(5);
+var DESCRIPTORS = __webpack_require__(6);
 
-var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(370);
+var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(420);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var ArrayBufferModule = __webpack_require__(165);
+var ArrayBufferModule = __webpack_require__(194);
 
-var anInstance = __webpack_require__(168);
+var anInstance = __webpack_require__(197);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var createPropertyDescriptor = __webpack_require__(11);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var isIntegralNumber = __webpack_require__(235);
+var isIntegralNumber = __webpack_require__(265);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toIndex = __webpack_require__(169);
+var toIndex = __webpack_require__(198);
 
-var toOffset = __webpack_require__(371);
+var toOffset = __webpack_require__(421);
 
-var toPropertyKey = __webpack_require__(15);
+var toPropertyKey = __webpack_require__(18);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var classof = __webpack_require__(65);
+var classof = __webpack_require__(69);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var isSymbol = __webpack_require__(19);
+var isSymbol = __webpack_require__(22);
 
-var create = __webpack_require__(67);
+var create = __webpack_require__(71);
 
-var isPrototypeOf = __webpack_require__(21);
+var isPrototypeOf = __webpack_require__(24);
 
-var setPrototypeOf = __webpack_require__(101);
+var setPrototypeOf = __webpack_require__(112);
 
-var getOwnPropertyNames = (__webpack_require__(52).f);
+var getOwnPropertyNames = (__webpack_require__(57).f);
 
-var typedArrayFrom = __webpack_require__(373);
+var typedArrayFrom = __webpack_require__(423);
 
-var forEach = (__webpack_require__(79).forEach);
+var forEach = (__webpack_require__(83).forEach);
 
-var setSpecies = __webpack_require__(160);
+var setSpecies = __webpack_require__(188);
 
-var definePropertyModule = __webpack_require__(41);
+var definePropertyModule = __webpack_require__(44);
 
-var getOwnPropertyDescriptorModule = __webpack_require__(4);
+var getOwnPropertyDescriptorModule = __webpack_require__(5);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
-var inheritIfRequired = __webpack_require__(203);
+var inheritIfRequired = __webpack_require__(115);
 
 var getInternalState = InternalStateModule.get;
 var setInternalState = InternalStateModule.set;
+var enforceInternalState = InternalStateModule.enforce;
 var nativeDefineProperty = definePropertyModule.f;
 var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
 var round = Math.round;
@@ -13634,7 +15065,6 @@ var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
 var ArrayBufferPrototype = ArrayBuffer.prototype;
 var DataView = ArrayBufferModule.DataView;
 var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
-var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
 var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;
 var TypedArray = ArrayBufferViewCore.TypedArray;
 var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;
@@ -13807,16 +15237,18 @@ if (DESCRIPTORS) {
       createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);
     }
 
-    createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);
+    enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;
 
     if (TYPED_ARRAY_TAG) {
       createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
     }
 
+    var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor;
     exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;
     $({
       global: true,
-      forced: TypedArrayConstructor != NativeTypedArrayConstructor,
+      constructor: true,
+      forced: FORCED,
       sham: !NATIVE_ARRAY_BUFFER_VIEWS
     }, exported);
 
@@ -13835,17 +15267,17 @@ if (DESCRIPTORS) {
 };
 
 /***/ }),
-/* 370 */
+/* 420 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 /* eslint-disable no-new -- required for testing */
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var checkCorrectnessOfIteration = __webpack_require__(134);
+var checkCorrectnessOfIteration = __webpack_require__(159);
 
-var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(172).NATIVE_ARRAY_BUFFER_VIEWS);
+var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(201).NATIVE_ARRAY_BUFFER_VIEWS);
 
 var ArrayBuffer = global.ArrayBuffer;
 var Int8Array = global.Int8Array;
@@ -13864,58 +15296,58 @@ module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
 });
 
 /***/ }),
-/* 371 */
+/* 421 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var toPositiveInteger = __webpack_require__(422);
 
-var toPositiveInteger = __webpack_require__(372);
-
-var RangeError = global.RangeError;
+var $RangeError = RangeError;
 
 module.exports = function (it, BYTES) {
   var offset = toPositiveInteger(it);
-  if (offset % BYTES) throw RangeError('Wrong offset');
+  if (offset % BYTES) throw $RangeError('Wrong offset');
   return offset;
 };
 
 /***/ }),
-/* 372 */
+/* 422 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var toIntegerOrInfinity = __webpack_require__(61);
 
-var toIntegerOrInfinity = __webpack_require__(56);
-
-var RangeError = global.RangeError;
+var $RangeError = RangeError;
 
 module.exports = function (it) {
   var result = toIntegerOrInfinity(it);
-  if (result < 0) throw RangeError("The argument can't be less than 0");
+  if (result < 0) throw $RangeError("The argument can't be less than 0");
   return result;
 };
 
 /***/ }),
-/* 373 */
+/* 423 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var bind = __webpack_require__(80);
+var bind = __webpack_require__(84);
+
+var call = __webpack_require__(8);
 
-var call = __webpack_require__(7);
+var aConstructor = __webpack_require__(204);
 
-var aConstructor = __webpack_require__(175);
+var toObject = __webpack_require__(39);
 
-var toObject = __webpack_require__(36);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var getIterator = __webpack_require__(129);
 
-var getIterator = __webpack_require__(108);
+var getIteratorMethod = __webpack_require__(130);
 
-var getIteratorMethod = __webpack_require__(109);
+var isArrayIteratorMethod = __webpack_require__(127);
 
-var isArrayIteratorMethod = __webpack_require__(106);
+var isBigIntArray = __webpack_require__(424);
 
-var aTypedArrayConstructor = (__webpack_require__(172).aTypedArrayConstructor);
+var aTypedArrayConstructor = (__webpack_require__(201).aTypedArrayConstructor);
+
+var toBigInt = __webpack_require__(425);
 
 module.exports = function from(source
 /* , mapfn, thisArg */
@@ -13926,7 +15358,7 @@ module.exports = function from(source
   var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
   var mapping = mapfn !== undefined;
   var iteratorMethod = getIteratorMethod(O);
-  var i, length, result, step, iterator, next;
+  var i, length, result, thisIsBigIntArray, value, step, iterator, next;
 
   if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {
     iterator = getIterator(O, iteratorMethod);
@@ -13944,19 +15376,52 @@ module.exports = function from(source
 
   length = lengthOfArrayLike(O);
   result = new (aTypedArrayConstructor(C))(length);
+  thisIsBigIntArray = isBigIntArray(result);
 
   for (i = 0; length > i; i++) {
-    result[i] = mapping ? mapfn(O[i], i) : O[i];
+    value = mapping ? mapfn(O[i], i) : O[i]; // FF30- typed arrays doesn't properly convert objects to typed array values
+
+    result[i] = thisIsBigIntArray ? toBigInt(value) : +value;
   }
 
   return result;
 };
 
 /***/ }),
-/* 374 */
+/* 424 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var classof = __webpack_require__(69);
+
+var uncurryThis = __webpack_require__(14);
+
+var slice = uncurryThis(''.slice);
+
+module.exports = function (it) {
+  return slice(classof(it), 0, 3) === 'Big';
+};
+
+/***/ }),
+/* 425 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var toPrimitive = __webpack_require__(19);
+
+var $TypeError = TypeError; // `ToBigInt` abstract operation
+// https://tc39.es/ecma262/#sec-tobigint
+
+module.exports = function (argument) {
+  var prim = toPrimitive(argument, 'number');
+  if (typeof prim == 'number') throw $TypeError("Can't convert number to bigint"); // eslint-disable-next-line es-x/no-bigint -- safe
+
+  return BigInt(prim);
+};
+
+/***/ }),
+/* 426 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Float64Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Float64Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -13967,10 +15432,10 @@ createTypedArrayConstructor('Float64', function (init) {
 });
 
 /***/ }),
-/* 375 */
+/* 427 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Int8Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Int8Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -13981,10 +15446,10 @@ createTypedArrayConstructor('Int8', function (init) {
 });
 
 /***/ }),
-/* 376 */
+/* 428 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Int16Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Int16Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -13995,10 +15460,10 @@ createTypedArrayConstructor('Int16', function (init) {
 });
 
 /***/ }),
-/* 377 */
+/* 429 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Int32Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Int32Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -14009,10 +15474,10 @@ createTypedArrayConstructor('Int32', function (init) {
 });
 
 /***/ }),
-/* 378 */
+/* 430 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Uint8Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Uint8Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -14023,10 +15488,10 @@ createTypedArrayConstructor('Uint8', function (init) {
 });
 
 /***/ }),
-/* 379 */
+/* 431 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Uint8ClampedArray` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Uint8ClampedArray` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -14037,10 +15502,10 @@ createTypedArrayConstructor('Uint8', function (init) {
 }, true);
 
 /***/ }),
-/* 380 */
+/* 432 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Uint16Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Uint16Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -14051,10 +15516,10 @@ createTypedArrayConstructor('Uint16', function (init) {
 });
 
 /***/ }),
-/* 381 */
+/* 433 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var createTypedArrayConstructor = __webpack_require__(369); // `Uint32Array` constructor
+var createTypedArrayConstructor = __webpack_require__(419); // `Uint32Array` constructor
 // https://tc39.es/ecma262/#sec-typedarray-objects
 
 
@@ -14065,17 +15530,17 @@ createTypedArrayConstructor('Uint32', function (init) {
 });
 
 /***/ }),
-/* 382 */
+/* 434 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var toIntegerOrInfinity = __webpack_require__(56);
+var toIntegerOrInfinity = __webpack_require__(61);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.at` method
@@ -14090,17 +15555,17 @@ exportTypedArrayMethod('at', function at(index) {
 });
 
 /***/ }),
-/* 383 */
+/* 435 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $ArrayCopyWithin = __webpack_require__(118);
+var $ArrayCopyWithin = __webpack_require__(139);
 
 var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
@@ -14114,15 +15579,15 @@ exportTypedArrayMethod('copyWithin', function copyWithin(target, start
 });
 
 /***/ }),
-/* 384 */
+/* 436 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $every = (__webpack_require__(79).every);
+var $every = (__webpack_require__(83).every);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.every` method
@@ -14135,41 +15600,63 @@ exportTypedArrayMethod('every', function every(callbackfn
 });
 
 /***/ }),
-/* 385 */
+/* 437 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
+
+var $fill = __webpack_require__(144);
 
-var call = __webpack_require__(7);
+var toBigInt = __webpack_require__(425);
 
-var $fill = __webpack_require__(122);
+var classof = __webpack_require__(69);
+
+var call = __webpack_require__(8);
+
+var uncurryThis = __webpack_require__(14);
+
+var fails = __webpack_require__(7);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
-var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.fill` method
+var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
+var slice = uncurryThis(''.slice); // V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18
+
+var CONVERSION_BUG = fails(function () {
+  var count = 0; // eslint-disable-next-line es-x/no-typed-arrays -- safe
+
+  new Int8Array(2).fill({
+    valueOf: function () {
+      return count++;
+    }
+  });
+  return count !== 1;
+}); // `%TypedArray%.prototype.fill` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill
 
 exportTypedArrayMethod('fill', function fill(value
 /* , start, end */
 ) {
   var length = arguments.length;
-  return call($fill, aTypedArray(this), value, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);
-});
+  aTypedArray(this);
+  var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;
+  return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);
+}, CONVERSION_BUG);
 
 /***/ }),
-/* 386 */
+/* 438 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $filter = (__webpack_require__(79).filter);
+var $filter = (__webpack_require__(83).filter);
 
-var fromSpeciesAndList = __webpack_require__(387);
+var fromSpeciesAndList = __webpack_require__(439);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.filter` method
@@ -14183,24 +15670,26 @@ exportTypedArrayMethod('filter', function filter(callbackfn
 });
 
 /***/ }),
-/* 387 */
+/* 439 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var arrayFromConstructorAndList = __webpack_require__(388);
+var arrayFromConstructorAndList = __webpack_require__(440);
 
-var typedArraySpeciesConstructor = __webpack_require__(389);
+var typedArraySpeciesConstructor = __webpack_require__(441);
 
 module.exports = function (instance, list) {
   return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);
 };
 
 /***/ }),
-/* 388 */
-/***/ ((module) => {
+/* 440 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var lengthOfArrayLike = __webpack_require__(63);
 
 module.exports = function (Constructor, list) {
   var index = 0;
-  var length = list.length;
+  var length = lengthOfArrayLike(list);
   var result = new Constructor(length);
 
   while (length > index) result[index] = list[index++];
@@ -14209,31 +15698,31 @@ module.exports = function (Constructor, list) {
 };
 
 /***/ }),
-/* 389 */
+/* 441 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var speciesConstructor = __webpack_require__(174);
+var speciesConstructor = __webpack_require__(203);
 
-var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
-var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; // a part of `TypedArraySpeciesCreate` abstract operation
+var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
+var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; // a part of `TypedArraySpeciesCreate` abstract operation
 // https://tc39.es/ecma262/#typedarray-species-create
 
 module.exports = function (originalArray) {
-  return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));
+  return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));
 };
 
 /***/ }),
-/* 390 */
+/* 442 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $find = (__webpack_require__(79).find);
+var $find = (__webpack_require__(83).find);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.find` method
@@ -14246,15 +15735,15 @@ exportTypedArrayMethod('find', function find(predicate
 });
 
 /***/ }),
-/* 391 */
+/* 443 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $findIndex = (__webpack_require__(79).findIndex);
+var $findIndex = (__webpack_require__(83).findIndex);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findIndex` method
@@ -14267,15 +15756,57 @@ exportTypedArrayMethod('findIndex', function findIndex(predicate
 });
 
 /***/ }),
-/* 392 */
+/* 444 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $forEach = (__webpack_require__(79).forEach);
+var $findLast = (__webpack_require__(149).findLast);
+
+var aTypedArray = ArrayBufferViewCore.aTypedArray;
+var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findLast` method
+// https://github.com/tc39/proposal-array-find-from-last
+
+exportTypedArrayMethod('findLast', function findLast(predicate
+/* , thisArg */
+) {
+  return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+});
+
+/***/ }),
+/* 445 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var ArrayBufferViewCore = __webpack_require__(201);
+
+var $findLastIndex = (__webpack_require__(149).findLastIndex);
+
+var aTypedArray = ArrayBufferViewCore.aTypedArray;
+var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findLastIndex` method
+// https://github.com/tc39/proposal-array-find-from-last
+
+exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate
+/* , thisArg */
+) {
+  return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
+});
+
+/***/ }),
+/* 446 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var ArrayBufferViewCore = __webpack_require__(201);
+
+var $forEach = (__webpack_require__(83).forEach);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.forEach` method
@@ -14288,32 +15819,32 @@ exportTypedArrayMethod('forEach', function forEach(callbackfn
 });
 
 /***/ }),
-/* 393 */
+/* 447 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(370);
+var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(420);
 
-var exportTypedArrayStaticMethod = (__webpack_require__(172).exportTypedArrayStaticMethod);
+var exportTypedArrayStaticMethod = (__webpack_require__(201).exportTypedArrayStaticMethod);
 
-var typedArrayFrom = __webpack_require__(373); // `%TypedArray%.from` method
+var typedArrayFrom = __webpack_require__(423); // `%TypedArray%.from` method
 // https://tc39.es/ecma262/#sec-%typedarray%.from
 
 
 exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);
 
 /***/ }),
-/* 394 */
+/* 448 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $includes = (__webpack_require__(54).includes);
+var $includes = (__webpack_require__(59).includes);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.includes` method
@@ -14326,15 +15857,15 @@ exportTypedArrayMethod('includes', function includes(searchElement
 });
 
 /***/ }),
-/* 395 */
+/* 449 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $indexOf = (__webpack_require__(54).indexOf);
+var $indexOf = (__webpack_require__(59).indexOf);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.indexOf` method
@@ -14347,23 +15878,23 @@ exportTypedArrayMethod('indexOf', function indexOf(searchElement
 });
 
 /***/ }),
-/* 396 */
+/* 450 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var fails = __webpack_require__(7);
 
-var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER);
+var uncurryThis = __webpack_require__(14);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var ArrayIterators = __webpack_require__(138);
+var ArrayIterators = __webpack_require__(163);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var ITERATOR = wellKnownSymbol('iterator');
 var Uint8Array = global.Uint8Array;
@@ -14372,8 +15903,11 @@ var arrayKeys = uncurryThis(ArrayIterators.keys);
 var arrayEntries = uncurryThis(ArrayIterators.entries);
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
-var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];
-var PROPER_ARRAY_VALUES_NAME = !!nativeTypedArrayIterator && nativeTypedArrayIterator.name === 'values';
+var TypedArrayPrototype = Uint8Array && Uint8Array.prototype;
+var GENERIC = !fails(function () {
+  TypedArrayPrototype[ITERATOR].call([1]);
+});
+var ITERATOR_IS_VALUES = !!TypedArrayPrototype && TypedArrayPrototype.values && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values && TypedArrayPrototype.values.name === 'values';
 
 var typedArrayValues = function values() {
   return arrayValues(aTypedArray(this));
@@ -14383,29 +15917,33 @@ var typedArrayValues = function values() {
 
 exportTypedArrayMethod('entries', function entries() {
   return arrayEntries(aTypedArray(this));
-}); // `%TypedArray%.prototype.keys` method
+}, GENERIC); // `%TypedArray%.prototype.keys` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys
 
 exportTypedArrayMethod('keys', function keys() {
   return arrayKeys(aTypedArray(this));
-}); // `%TypedArray%.prototype.values` method
+}, GENERIC); // `%TypedArray%.prototype.values` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype.values
 
-exportTypedArrayMethod('values', typedArrayValues, PROPER_FUNCTION_NAME && !PROPER_ARRAY_VALUES_NAME); // `%TypedArray%.prototype[@@iterator]` method
+exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, {
+  name: 'values'
+}); // `%TypedArray%.prototype[@@iterator]` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator
 
-exportTypedArrayMethod(ITERATOR, typedArrayValues, PROPER_FUNCTION_NAME && !PROPER_ARRAY_VALUES_NAME);
+exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, {
+  name: 'values'
+});
 
 /***/ }),
-/* 397 */
+/* 451 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
@@ -14417,17 +15955,17 @@ exportTypedArrayMethod('join', function join(separator) {
 });
 
 /***/ }),
-/* 398 */
+/* 452 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
 
-var $lastIndexOf = __webpack_require__(144);
+var $lastIndexOf = __webpack_require__(170);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.lastIndexOf` method
@@ -14441,17 +15979,17 @@ exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement
 });
 
 /***/ }),
-/* 399 */
+/* 453 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $map = (__webpack_require__(79).map);
+var $map = (__webpack_require__(83).map);
 
-var typedArraySpeciesConstructor = __webpack_require__(389);
+var typedArraySpeciesConstructor = __webpack_require__(441);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.map` method
@@ -14466,15 +16004,15 @@ exportTypedArrayMethod('map', function map(mapfn
 });
 
 /***/ }),
-/* 400 */
+/* 454 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(370);
+var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(420);
 
 var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
 var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; // `%TypedArray%.of` method
@@ -14493,15 +16031,15 @@ of() {
 }, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);
 
 /***/ }),
-/* 401 */
+/* 455 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $reduce = (__webpack_require__(148).left);
+var $reduce = (__webpack_require__(176).left);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduce` method
@@ -14515,18 +16053,18 @@ exportTypedArrayMethod('reduce', function reduce(callbackfn
 });
 
 /***/ }),
-/* 402 */
+/* 456 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $reduceRight = (__webpack_require__(148).right);
+var $reduceRight = (__webpack_require__(176).right);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
-var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduceRicht` method
+var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduceRight` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright
 
 exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn
@@ -14537,13 +16075,13 @@ exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn
 });
 
 /***/ }),
-/* 403 */
+/* 457 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
@@ -14567,30 +16105,47 @@ exportTypedArrayMethod('reverse', function reverse() {
 });
 
 /***/ }),
-/* 404 */
+/* 458 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
+
+var call = __webpack_require__(8);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var lengthOfArrayLike = __webpack_require__(57);
+var lengthOfArrayLike = __webpack_require__(63);
 
-var toOffset = __webpack_require__(371);
+var toOffset = __webpack_require__(421);
 
-var toObject = __webpack_require__(36);
+var toIndexedObject = __webpack_require__(39);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
 var RangeError = global.RangeError;
+var Int8Array = global.Int8Array;
+var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
+var $set = Int8ArrayPrototype && Int8ArrayPrototype.set;
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
-var FORCED = fails(function () {
-  // eslint-disable-next-line es/no-typed-arrays -- required for testing
-  new Int8Array(1).set({});
+var WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {
+  // eslint-disable-next-line es-x/no-typed-arrays -- required for testing
+  var array = new Uint8ClampedArray(2);
+  call($set, array, {
+    length: 1,
+    0: 3
+  }, 1);
+  return array[1] !== 3;
+}); // https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other
+
+var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {
+  var array = new Int8Array(2);
+  array.set(1);
+  array.set('2', 1);
+  return array[0] !== 0 || array[1] !== 2;
 }); // `%TypedArray%.prototype.set` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype.set
 
@@ -14599,34 +16154,35 @@ exportTypedArrayMethod('set', function set(arrayLike
 ) {
   aTypedArray(this);
   var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);
+  var src = toIndexedObject(arrayLike);
+  if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);
   var length = this.length;
-  var src = toObject(arrayLike);
   var len = lengthOfArrayLike(src);
   var index = 0;
   if (len + offset > length) throw RangeError('Wrong length');
 
   while (index < len) this[offset + index] = src[index++];
-}, FORCED);
+}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);
 
 /***/ }),
-/* 405 */
+/* 459 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var typedArraySpeciesConstructor = __webpack_require__(389);
+var typedArraySpeciesConstructor = __webpack_require__(441);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var arraySlice = __webpack_require__(74);
+var arraySlice = __webpack_require__(94);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
 var FORCED = fails(function () {
-  // eslint-disable-next-line es/no-typed-arrays -- required for testing
+  // eslint-disable-next-line es-x/no-typed-arrays -- required for testing
   new Int8Array(1).slice();
 }); // `%TypedArray%.prototype.slice` method
 // https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice
@@ -14644,15 +16200,15 @@ exportTypedArrayMethod('slice', function slice(start, end) {
 }, FORCED);
 
 /***/ }),
-/* 406 */
+/* 460 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var $some = (__webpack_require__(79).some);
+var $some = (__webpack_require__(83).some);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.some` method
@@ -14665,44 +16221,43 @@ exportTypedArrayMethod('some', function some(callbackfn
 });
 
 /***/ }),
-/* 407 */
+/* 461 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var aCallable = __webpack_require__(27);
+var aCallable = __webpack_require__(30);
 
-var internalSort = __webpack_require__(155);
+var internalSort = __webpack_require__(183);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var FF = __webpack_require__(156);
+var FF = __webpack_require__(184);
 
-var IE_OR_EDGE = __webpack_require__(157);
+var IE_OR_EDGE = __webpack_require__(185);
 
-var V8 = __webpack_require__(24);
+var V8 = __webpack_require__(27);
 
-var WEBKIT = __webpack_require__(158);
+var WEBKIT = __webpack_require__(186);
 
-var Array = global.Array;
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
 var Uint16Array = global.Uint16Array;
-var un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); // WebKit
+var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); // WebKit
 
-var ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {
-  un$Sort(new Uint16Array(2), null);
+var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {
+  nativeSort(new Uint16Array(2), null);
 }) && fails(function () {
-  un$Sort(new Uint16Array(2), {});
+  nativeSort(new Uint16Array(2), {});
 }));
-var STABLE_SORT = !!un$Sort && !fails(function () {
+var STABLE_SORT = !!nativeSort && !fails(function () {
   // feature detection can be too slow, so check engines versions
   if (V8) return V8 < 74;
   if (FF) return FF < 67;
@@ -14718,7 +16273,7 @@ var STABLE_SORT = !!un$Sort && !fails(function () {
     expected[index] = index - 2 * mod + 3;
   }
 
-  un$Sort(array, function (a, b) {
+  nativeSort(array, function (a, b) {
     return (a / 4 | 0) - (b / 4 | 0);
   });
 
@@ -14743,24 +16298,24 @@ var getSortCompare = function (comparefn) {
 
 exportTypedArrayMethod('sort', function sort(comparefn) {
   if (comparefn !== undefined) aCallable(comparefn);
-  if (STABLE_SORT) return un$Sort(this, comparefn);
+  if (STABLE_SORT) return nativeSort(this, comparefn);
   return internalSort(aTypedArray(this), getSortCompare(comparefn));
 }, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);
 
 /***/ }),
-/* 408 */
+/* 462 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var toLength = __webpack_require__(58);
+var toLength = __webpack_require__(64);
 
-var toAbsoluteIndex = __webpack_require__(55);
+var toAbsoluteIndex = __webpack_require__(60);
 
-var typedArraySpeciesConstructor = __webpack_require__(389);
+var typedArraySpeciesConstructor = __webpack_require__(441);
 
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
 var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.subarray` method
@@ -14775,21 +16330,21 @@ exportTypedArrayMethod('subarray', function subarray(begin, end) {
 });
 
 /***/ }),
-/* 409 */
+/* 463 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
 
-var ArrayBufferViewCore = __webpack_require__(172);
+var ArrayBufferViewCore = __webpack_require__(201);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var arraySlice = __webpack_require__(74);
+var arraySlice = __webpack_require__(94);
 
 var Int8Array = global.Int8Array;
 var aTypedArray = ArrayBufferViewCore.aTypedArray;
@@ -14811,19 +16366,19 @@ exportTypedArrayMethod('toLocaleString', function toLocaleString() {
 }, FORCED);
 
 /***/ }),
-/* 410 */
+/* 464 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var exportTypedArrayMethod = (__webpack_require__(172).exportTypedArrayMethod);
+var exportTypedArrayMethod = (__webpack_require__(201).exportTypedArrayMethod);
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
 var Uint8Array = global.Uint8Array;
 var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};
@@ -14844,17 +16399,17 @@ var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString; // `%Ty
 exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);
 
 /***/ }),
-/* 411 */
+/* 465 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var toString = __webpack_require__(64);
+var toString = __webpack_require__(68);
 
 var fromCharCode = String.fromCharCode;
 var charAt = uncurryThis(''.charAt);
@@ -14905,31 +16460,38 @@ $({
 });
 
 /***/ }),
-/* 412 */
+/* 466 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(467);
+
+/***/ }),
+/* 467 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
-var redefineAll = __webpack_require__(167);
+var defineBuiltIns = __webpack_require__(196);
 
-var InternalMetadataModule = __webpack_require__(199);
+var InternalMetadataModule = __webpack_require__(229);
 
-var collection = __webpack_require__(198);
+var collection = __webpack_require__(228);
 
-var collectionWeak = __webpack_require__(413);
+var collectionWeak = __webpack_require__(468);
 
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(20);
 
-var isExtensible = __webpack_require__(200);
+var isExtensible = __webpack_require__(230);
 
-var enforceIternalState = (__webpack_require__(45).enforce);
+var enforceInternalState = (__webpack_require__(51).enforce);
 
-var NATIVE_WEAK_MAP = __webpack_require__(46);
+var NATIVE_WEAK_MAP = __webpack_require__(52);
 
 var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
 var InternalWeakMap;
@@ -14954,10 +16516,10 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
   var nativeHas = uncurryThis(WeakMapPrototype.has);
   var nativeGet = uncurryThis(WeakMapPrototype.get);
   var nativeSet = uncurryThis(WeakMapPrototype.set);
-  redefineAll(WeakMapPrototype, {
+  defineBuiltIns(WeakMapPrototype, {
     'delete': function (key) {
       if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
+        var state = enforceInternalState(this);
         if (!state.frozen) state.frozen = new InternalWeakMap();
         return nativeDelete(this, key) || state.frozen['delete'](key);
       }
@@ -14966,7 +16528,7 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
     },
     has: function has(key) {
       if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
+        var state = enforceInternalState(this);
         if (!state.frozen) state.frozen = new InternalWeakMap();
         return nativeHas(this, key) || state.frozen.has(key);
       }
@@ -14975,7 +16537,7 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
     },
     get: function get(key) {
       if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
+        var state = enforceInternalState(this);
         if (!state.frozen) state.frozen = new InternalWeakMap();
         return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);
       }
@@ -14984,7 +16546,7 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
     },
     set: function set(key, value) {
       if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
+        var state = enforceInternalState(this);
         if (!state.frozen) state.frozen = new InternalWeakMap();
         nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);
       } else nativeSet(this, key, value);
@@ -14995,31 +16557,33 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
 }
 
 /***/ }),
-/* 413 */
+/* 468 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
+
+var defineBuiltIns = __webpack_require__(196);
 
-var redefineAll = __webpack_require__(167);
+var getWeakData = (__webpack_require__(229).getWeakData);
 
-var getWeakData = (__webpack_require__(199).getWeakData);
+var anInstance = __webpack_require__(197);
 
-var anObject = __webpack_require__(42);
+var anObject = __webpack_require__(46);
 
-var isObject = __webpack_require__(17);
+var isNullOrUndefined = __webpack_require__(17);
 
-var anInstance = __webpack_require__(168);
+var isObject = __webpack_require__(20);
 
-var iterate = __webpack_require__(105);
+var iterate = __webpack_require__(126);
 
-var ArrayIterationModule = __webpack_require__(79);
+var ArrayIterationModule = __webpack_require__(83);
 
-var hasOwn = __webpack_require__(35);
+var hasOwn = __webpack_require__(38);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
 var setInternalState = InternalStateModule.set;
 var internalStateGetterFor = InternalStateModule.getterFor;
@@ -15071,7 +16635,7 @@ module.exports = {
         id: id++,
         frozen: undefined
       });
-      if (iterable != undefined) iterate(iterable, that[ADDER], {
+      if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], {
         that: that,
         AS_ENTRIES: IS_MAP
       });
@@ -15086,7 +16650,7 @@ module.exports = {
       return that;
     };
 
-    redefineAll(Prototype, {
+    defineBuiltIns(Prototype, {
       // `{ WeakMap, WeakSet }.prototype.delete(key)` methods
       // https://tc39.es/ecma262/#sec-weakmap.prototype.delete
       // https://tc39.es/ecma262/#sec-weakset.prototype.delete
@@ -15108,7 +16672,7 @@ module.exports = {
         return data && hasOwn(data, state.id);
       }
     });
-    redefineAll(Prototype, IS_MAP ? {
+    defineBuiltIns(Prototype, IS_MAP ? {
       // `WeakMap.prototype.get(key)` method
       // https://tc39.es/ecma262/#sec-weakmap.prototype.get
       get: function get(key) {
@@ -15137,15 +16701,22 @@ module.exports = {
 };
 
 /***/ }),
-/* 414 */
+/* 469 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(470);
+
+/***/ }),
+/* 470 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var collection = __webpack_require__(198);
+var collection = __webpack_require__(228);
 
-var collectionWeak = __webpack_require__(413); // `WeakSet` constructor
+var collectionWeak = __webpack_require__(468); // `WeakSet` constructor
 // https://tc39.es/ecma262/#sec-weakset-constructor
 
 
@@ -15156,18 +16727,164 @@ collection('WeakSet', function (init) {
 }, collectionWeak);
 
 /***/ }),
-/* 415 */
+/* 471 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var $ = __webpack_require__(3);
+
+var getBuiltIn = __webpack_require__(23);
+
+var uncurryThis = __webpack_require__(14);
 
-var DOMIterables = __webpack_require__(416);
+var fails = __webpack_require__(7);
 
-var DOMTokenListPrototype = __webpack_require__(417);
+var toString = __webpack_require__(68);
 
-var forEach = __webpack_require__(130);
+var hasOwn = __webpack_require__(38);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var validateArgumentsLength = __webpack_require__(315);
+
+var ctoi = (__webpack_require__(472).ctoi);
+
+var disallowed = /[^\d+/a-z]/i;
+var whitespaces = /[\t\n\f\r ]+/g;
+var finalEq = /[=]+$/;
+var $atob = getBuiltIn('atob');
+var fromCharCode = String.fromCharCode;
+var charAt = uncurryThis(''.charAt);
+var replace = uncurryThis(''.replace);
+var exec = uncurryThis(disallowed.exec);
+var NO_SPACES_IGNORE = fails(function () {
+  return $atob(' ') !== '';
+});
+var NO_ENCODING_CHECK = !fails(function () {
+  $atob('a');
+});
+var NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && !fails(function () {
+  $atob();
+});
+var WRONG_ARITY = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && $atob.length !== 1; // `atob` method
+// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob
+
+$({
+  global: true,
+  enumerable: true,
+  forced: NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY
+}, {
+  atob: function atob(data) {
+    validateArgumentsLength(arguments.length, 1);
+    if (NO_ARG_RECEIVING_CHECK || WRONG_ARITY) return $atob(data);
+    var string = replace(toString(data), whitespaces, '');
+    var output = '';
+    var position = 0;
+    var bc = 0;
+    var chr, bs;
+
+    if (string.length % 4 == 0) {
+      string = replace(string, finalEq, '');
+    }
+
+    if (string.length % 4 == 1 || exec(disallowed, string)) {
+      throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');
+    }
+
+    while (chr = charAt(string, position++)) {
+      if (hasOwn(ctoi, chr)) {
+        bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];
+        if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));
+      }
+    }
+
+    return output;
+  }
+});
+
+/***/ }),
+/* 472 */
+/***/ ((module) => {
+
+var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+var ctoi = {};
+
+for (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;
+
+module.exports = {
+  itoc: itoc,
+  ctoi: ctoi
+};
+
+/***/ }),
+/* 473 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var getBuiltIn = __webpack_require__(23);
+
+var uncurryThis = __webpack_require__(14);
+
+var fails = __webpack_require__(7);
+
+var toString = __webpack_require__(68);
+
+var validateArgumentsLength = __webpack_require__(315);
+
+var itoc = (__webpack_require__(472).itoc);
+
+var $btoa = getBuiltIn('btoa');
+var charAt = uncurryThis(''.charAt);
+var charCodeAt = uncurryThis(''.charCodeAt);
+var NO_ARG_RECEIVING_CHECK = !!$btoa && !fails(function () {
+  $btoa();
+});
+var WRONG_ARG_CONVERSION = !!$btoa && fails(function () {
+  return $btoa(null) !== 'bnVsbA==';
+});
+var WRONG_ARITY = !!$btoa && $btoa.length !== 1; // `btoa` method
+// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa
+
+$({
+  global: true,
+  enumerable: true,
+  forced: NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY
+}, {
+  btoa: function btoa(data) {
+    validateArgumentsLength(arguments.length, 1);
+    if (NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY) return $btoa(toString(data));
+    var string = toString(data);
+    var output = '';
+    var position = 0;
+    var map = itoc;
+    var block, charCode;
+
+    while (charAt(string, position) || (map = '=', position % 1)) {
+      charCode = charCodeAt(string, position += 3 / 4);
+
+      if (charCode > 0xFF) {
+        throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');
+      }
+
+      block = block << 8 | charCode;
+      output += charAt(map, 63 & block >> 8 - position % 1 * 8);
+    }
+
+    return output;
+  }
+});
+
+/***/ }),
+/* 474 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var global = __webpack_require__(4);
+
+var DOMIterables = __webpack_require__(475);
+
+var DOMTokenListPrototype = __webpack_require__(476);
+
+var forEach = __webpack_require__(155);
+
+var createNonEnumerableProperty = __webpack_require__(43);
 
 var handlePrototype = function (CollectionPrototype) {
   // some Chrome versions have non-configurable methods on DOMTokenList
@@ -15187,7 +16904,7 @@ for (var COLLECTION_NAME in DOMIterables) {
 handlePrototype(DOMTokenListPrototype);
 
 /***/ }),
-/* 416 */
+/* 475 */
 /***/ ((module) => {
 
 // iterable DOM collections
@@ -15227,31 +16944,31 @@ module.exports = {
 };
 
 /***/ }),
-/* 417 */
+/* 476 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`
-var documentCreateElement = __webpack_require__(39);
+var documentCreateElement = __webpack_require__(42);
 
 var classList = documentCreateElement('span').classList;
 var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;
 module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;
 
 /***/ }),
-/* 418 */
+/* 477 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var DOMIterables = __webpack_require__(416);
+var DOMIterables = __webpack_require__(475);
 
-var DOMTokenListPrototype = __webpack_require__(417);
+var DOMTokenListPrototype = __webpack_require__(476);
 
-var ArrayIteratorMethods = __webpack_require__(138);
+var ArrayIteratorMethods = __webpack_require__(163);
 
-var createNonEnumerableProperty = __webpack_require__(40);
+var createNonEnumerableProperty = __webpack_require__(43);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
 var ITERATOR = wellKnownSymbol('iterator');
 var TO_STRING_TAG = wellKnownSymbol('toStringTag');
@@ -15288,42 +17005,486 @@ for (var COLLECTION_NAME in DOMIterables) {
 handlePrototype(DOMTokenListPrototype, 'DOMTokenList');
 
 /***/ }),
-/* 419 */
+/* 478 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var tryNodeRequire = __webpack_require__(479);
+
+var getBuiltIn = __webpack_require__(23);
+
+var fails = __webpack_require__(7);
+
+var create = __webpack_require__(71);
+
+var createPropertyDescriptor = __webpack_require__(11);
+
+var defineProperty = (__webpack_require__(44).f);
+
+var defineBuiltIn = __webpack_require__(47);
+
+var defineBuiltInAccessor = __webpack_require__(304);
+
+var hasOwn = __webpack_require__(38);
+
+var anInstance = __webpack_require__(197);
+
+var anObject = __webpack_require__(46);
+
+var errorToString = __webpack_require__(121);
+
+var normalizeStringArgument = __webpack_require__(116);
+
+var DOMExceptionConstants = __webpack_require__(480);
+
+var clearErrorStack = __webpack_require__(118);
+
+var InternalStateModule = __webpack_require__(51);
+
+var DESCRIPTORS = __webpack_require__(6);
+
+var IS_PURE = __webpack_require__(35);
+
+var DOM_EXCEPTION = 'DOMException';
+var DATA_CLONE_ERR = 'DATA_CLONE_ERR';
+var Error = getBuiltIn('Error'); // NodeJS < 17.0 does not expose `DOMException` to global
+
+var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || function () {
+  try {
+    // NodeJS < 15.0 does not expose `MessageChannel` to global
+    var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; // eslint-disable-next-line es-x/no-weak-map, unicorn/require-post-message-target-origin -- safe
+
+    new MessageChannel().port1.postMessage(new WeakMap());
+  } catch (error) {
+    if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;
+  }
+}();
+
+var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;
+var ErrorPrototype = Error.prototype;
+var setInternalState = InternalStateModule.set;
+var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);
+var HAS_STACK = ('stack' in Error(DOM_EXCEPTION));
+
+var codeFor = function (name) {
+  return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;
+};
+
+var $DOMException = function DOMException() {
+  anInstance(this, DOMExceptionPrototype);
+  var argumentsLength = arguments.length;
+  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);
+  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');
+  var code = codeFor(name);
+  setInternalState(this, {
+    type: DOM_EXCEPTION,
+    name: name,
+    message: message,
+    code: code
+  });
+
+  if (!DESCRIPTORS) {
+    this.name = name;
+    this.message = message;
+    this.code = code;
+  }
+
+  if (HAS_STACK) {
+    var error = Error(message);
+    error.name = DOM_EXCEPTION;
+    defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
+  }
+};
+
+var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);
+
+var createGetterDescriptor = function (get) {
+  return {
+    enumerable: true,
+    configurable: true,
+    get: get
+  };
+};
+
+var getterFor = function (key) {
+  return createGetterDescriptor(function () {
+    return getInternalState(this)[key];
+  });
+};
+
+if (DESCRIPTORS) {
+  defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));
+  defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));
+  defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));
+}
+
+defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); // FF36- DOMException is a function, but can't be constructed
+
+var INCORRECT_CONSTRUCTOR = fails(function () {
+  return !(new NativeDOMException() instanceof Error);
+}); // Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs
+
+var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {
+  return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';
+}); // Deno 1.6.3- DOMException.prototype.code just missed
+
+var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {
+  return new NativeDOMException(1, 'DataCloneError').code !== 25;
+}); // Deno 1.6.3- DOMException constants just missed
+
+var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR || NativeDOMException[DATA_CLONE_ERR] !== 25 || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;
+var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; // `DOMException` constructor
+// https://webidl.spec.whatwg.org/#idl-DOMException
+
+$({
+  global: true,
+  constructor: true,
+  forced: FORCED_CONSTRUCTOR
+}, {
+  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException
+});
+var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);
+var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;
+
+if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {
+  defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);
+}
+
+if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {
+  defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {
+    return codeFor(anObject(this).name);
+  }));
+}
+
+for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {
+  var constant = DOMExceptionConstants[key];
+  var constantName = constant.s;
+  var descriptor = createPropertyDescriptor(6, constant.c);
+
+  if (!hasOwn(PolyfilledDOMException, constantName)) {
+    defineProperty(PolyfilledDOMException, constantName, descriptor);
+  }
+
+  if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {
+    defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);
+  }
+}
+
+/***/ }),
+/* 479 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var IS_NODE = __webpack_require__(177);
+
+module.exports = function (name) {
+  try {
+    // eslint-disable-next-line no-new-func -- safe
+    if (IS_NODE) return Function('return require("' + name + '")')();
+  } catch (error) {
+    /* empty */
+  }
+};
+
+/***/ }),
+/* 480 */
+/***/ ((module) => {
+
+module.exports = {
+  IndexSizeError: {
+    s: 'INDEX_SIZE_ERR',
+    c: 1,
+    m: 1
+  },
+  DOMStringSizeError: {
+    s: 'DOMSTRING_SIZE_ERR',
+    c: 2,
+    m: 0
+  },
+  HierarchyRequestError: {
+    s: 'HIERARCHY_REQUEST_ERR',
+    c: 3,
+    m: 1
+  },
+  WrongDocumentError: {
+    s: 'WRONG_DOCUMENT_ERR',
+    c: 4,
+    m: 1
+  },
+  InvalidCharacterError: {
+    s: 'INVALID_CHARACTER_ERR',
+    c: 5,
+    m: 1
+  },
+  NoDataAllowedError: {
+    s: 'NO_DATA_ALLOWED_ERR',
+    c: 6,
+    m: 0
+  },
+  NoModificationAllowedError: {
+    s: 'NO_MODIFICATION_ALLOWED_ERR',
+    c: 7,
+    m: 1
+  },
+  NotFoundError: {
+    s: 'NOT_FOUND_ERR',
+    c: 8,
+    m: 1
+  },
+  NotSupportedError: {
+    s: 'NOT_SUPPORTED_ERR',
+    c: 9,
+    m: 1
+  },
+  InUseAttributeError: {
+    s: 'INUSE_ATTRIBUTE_ERR',
+    c: 10,
+    m: 1
+  },
+  InvalidStateError: {
+    s: 'INVALID_STATE_ERR',
+    c: 11,
+    m: 1
+  },
+  SyntaxError: {
+    s: 'SYNTAX_ERR',
+    c: 12,
+    m: 1
+  },
+  InvalidModificationError: {
+    s: 'INVALID_MODIFICATION_ERR',
+    c: 13,
+    m: 1
+  },
+  NamespaceError: {
+    s: 'NAMESPACE_ERR',
+    c: 14,
+    m: 1
+  },
+  InvalidAccessError: {
+    s: 'INVALID_ACCESS_ERR',
+    c: 15,
+    m: 1
+  },
+  ValidationError: {
+    s: 'VALIDATION_ERR',
+    c: 16,
+    m: 0
+  },
+  TypeMismatchError: {
+    s: 'TYPE_MISMATCH_ERR',
+    c: 17,
+    m: 1
+  },
+  SecurityError: {
+    s: 'SECURITY_ERR',
+    c: 18,
+    m: 1
+  },
+  NetworkError: {
+    s: 'NETWORK_ERR',
+    c: 19,
+    m: 1
+  },
+  AbortError: {
+    s: 'ABORT_ERR',
+    c: 20,
+    m: 1
+  },
+  URLMismatchError: {
+    s: 'URL_MISMATCH_ERR',
+    c: 21,
+    m: 1
+  },
+  QuotaExceededError: {
+    s: 'QUOTA_EXCEEDED_ERR',
+    c: 22,
+    m: 1
+  },
+  TimeoutError: {
+    s: 'TIMEOUT_ERR',
+    c: 23,
+    m: 1
+  },
+  InvalidNodeTypeError: {
+    s: 'INVALID_NODE_TYPE_ERR',
+    c: 24,
+    m: 1
+  },
+  DataCloneError: {
+    s: 'DATA_CLONE_ERR',
+    c: 25,
+    m: 1
+  }
+};
+
+/***/ }),
+/* 481 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var $ = __webpack_require__(3);
+
+var global = __webpack_require__(4);
+
+var getBuiltIn = __webpack_require__(23);
+
+var createPropertyDescriptor = __webpack_require__(11);
+
+var defineProperty = (__webpack_require__(44).f);
+
+var hasOwn = __webpack_require__(38);
+
+var anInstance = __webpack_require__(197);
+
+var inheritIfRequired = __webpack_require__(115);
+
+var normalizeStringArgument = __webpack_require__(116);
+
+var DOMExceptionConstants = __webpack_require__(480);
+
+var clearErrorStack = __webpack_require__(118);
+
+var DESCRIPTORS = __webpack_require__(6);
+
+var IS_PURE = __webpack_require__(35);
+
+var DOM_EXCEPTION = 'DOMException';
+var Error = getBuiltIn('Error');
+var NativeDOMException = getBuiltIn(DOM_EXCEPTION);
+
+var $DOMException = function DOMException() {
+  anInstance(this, DOMExceptionPrototype);
+  var argumentsLength = arguments.length;
+  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);
+  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');
+  var that = new NativeDOMException(message, name);
+  var error = Error(message);
+  error.name = DOM_EXCEPTION;
+  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
+  inheritIfRequired(that, this, $DOMException);
+  return that;
+};
+
+var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;
+var ERROR_HAS_STACK = ('stack' in Error(DOM_EXCEPTION));
+var DOM_EXCEPTION_HAS_STACK = ('stack' in new NativeDOMException(1, 2)); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
+
+var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); // Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it
+// https://github.com/Jarred-Sumner/bun/issues/399
+
+var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);
+var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; // `DOMException` constructor patch for `.stack` where it's required
+// https://webidl.spec.whatwg.org/#es-DOMException-specialness
+
+$({
+  global: true,
+  constructor: true,
+  forced: IS_PURE || FORCED_CONSTRUCTOR
+}, {
+  // TODO: fix export logic
+  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException
+});
+var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);
+var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;
+
+if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {
+  if (!IS_PURE) {
+    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));
+  }
+
+  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {
+    var constant = DOMExceptionConstants[key];
+    var constantName = constant.s;
+
+    if (!hasOwn(PolyfilledDOMException, constantName)) {
+      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));
+    }
+  }
+}
+
+/***/ }),
+/* 482 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var getBuiltIn = __webpack_require__(23);
+
+var setToStringTag = __webpack_require__(82);
+
+var DOM_EXCEPTION = 'DOMException';
+setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);
+
+/***/ }),
+/* 483 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's split to modules listed below
+__webpack_require__(484);
+
+__webpack_require__(485);
+
+/***/ }),
+/* 484 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var task = __webpack_require__(281);
+var clearImmediate = (__webpack_require__(314).clear); // `clearImmediate` method
+// http://w3c.github.io/setImmediate/#si-clearImmediate
 
-var FORCED = !global.setImmediate || !global.clearImmediate; // http://w3c.github.io/setImmediate/
 
 $({
   global: true,
   bind: true,
   enumerable: true,
-  forced: FORCED
+  forced: global.clearImmediate !== clearImmediate
 }, {
-  // `setImmediate` method
-  // http://w3c.github.io/setImmediate/#si-setImmediate
-  setImmediate: task.set,
-  // `clearImmediate` method
-  // http://w3c.github.io/setImmediate/#si-clearImmediate
-  clearImmediate: task.clear
+  clearImmediate: clearImmediate
 });
 
 /***/ }),
-/* 420 */
+/* 485 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var microtask = __webpack_require__(283);
+var setImmediate = (__webpack_require__(314).set); // `setImmediate` method
+// http://w3c.github.io/setImmediate/#si-setImmediate
 
-var IS_NODE = __webpack_require__(149);
+
+$({
+  global: true,
+  bind: true,
+  enumerable: true,
+  forced: global.setImmediate !== setImmediate
+}, {
+  setImmediate: setImmediate
+});
+
+/***/ }),
+/* 486 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var global = __webpack_require__(4);
+
+var microtask = __webpack_require__(317);
+
+var aCallable = __webpack_require__(30);
+
+var validateArgumentsLength = __webpack_require__(315);
+
+var IS_NODE = __webpack_require__(177);
 
 var process = global.process; // `queueMicrotask` method
 // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
@@ -15331,107 +17492,773 @@ var process = global.process; // `queueMicrotask` method
 $({
   global: true,
   enumerable: true,
-  noTargetGet: true
+  dontCallGetSet: true
 }, {
   queueMicrotask: function queueMicrotask(fn) {
+    validateArgumentsLength(arguments.length, 1);
+    aCallable(fn);
     var domain = IS_NODE && process.domain;
     microtask(domain ? domain.bind(fn) : fn);
   }
 });
 
 /***/ }),
-/* 421 */
+/* 487 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var IS_PURE = __webpack_require__(35);
+
+var $ = __webpack_require__(3);
+
+var global = __webpack_require__(4);
+
+var getBuiltin = __webpack_require__(23);
+
+var uncurryThis = __webpack_require__(14);
+
+var fails = __webpack_require__(7);
+
+var uid = __webpack_require__(40);
+
+var isCallable = __webpack_require__(21);
+
+var isConstructor = __webpack_require__(88);
+
+var isNullOrUndefined = __webpack_require__(17);
+
+var isObject = __webpack_require__(20);
+
+var isSymbol = __webpack_require__(22);
+
+var iterate = __webpack_require__(126);
+
+var anObject = __webpack_require__(46);
+
+var classof = __webpack_require__(69);
+
+var hasOwn = __webpack_require__(38);
+
+var createProperty = __webpack_require__(77);
+
+var createNonEnumerableProperty = __webpack_require__(43);
+
+var lengthOfArrayLike = __webpack_require__(63);
+
+var validateArgumentsLength = __webpack_require__(315);
+
+var getRegExpFlags = __webpack_require__(355);
+
+var ERROR_STACK_INSTALLABLE = __webpack_require__(119);
+
+var V8 = __webpack_require__(27);
+
+var IS_BROWSER = __webpack_require__(325);
+
+var IS_DENO = __webpack_require__(326);
+
+var IS_NODE = __webpack_require__(177);
+
+var Object = global.Object;
+var Date = global.Date;
+var Error = global.Error;
+var EvalError = global.EvalError;
+var RangeError = global.RangeError;
+var ReferenceError = global.ReferenceError;
+var SyntaxError = global.SyntaxError;
+var TypeError = global.TypeError;
+var URIError = global.URIError;
+var PerformanceMark = global.PerformanceMark;
+var WebAssembly = global.WebAssembly;
+var CompileError = WebAssembly && WebAssembly.CompileError || Error;
+var LinkError = WebAssembly && WebAssembly.LinkError || Error;
+var RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;
+var DOMException = getBuiltin('DOMException');
+var Set = getBuiltin('Set');
+var Map = getBuiltin('Map');
+var MapPrototype = Map.prototype;
+var mapHas = uncurryThis(MapPrototype.has);
+var mapGet = uncurryThis(MapPrototype.get);
+var mapSet = uncurryThis(MapPrototype.set);
+var setAdd = uncurryThis(Set.prototype.add);
+var objectKeys = getBuiltin('Object', 'keys');
+var push = uncurryThis([].push);
+var thisBooleanValue = uncurryThis(true.valueOf);
+var thisNumberValue = uncurryThis(1.0.valueOf);
+var thisStringValue = uncurryThis(''.valueOf);
+var thisTimeValue = uncurryThis(Date.prototype.getTime);
+var PERFORMANCE_MARK = uid('structuredClone');
+var DATA_CLONE_ERROR = 'DataCloneError';
+var TRANSFERRING = 'Transferring';
+
+var checkBasicSemantic = function (structuredCloneImplementation) {
+  return !fails(function () {
+    var set1 = new global.Set([7]);
+    var set2 = structuredCloneImplementation(set1);
+    var number = structuredCloneImplementation(Object(7));
+    return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;
+  }) && structuredCloneImplementation;
+};
+
+var checkErrorsCloning = function (structuredCloneImplementation, $Error) {
+  return !fails(function () {
+    var error = new $Error();
+    var test = structuredCloneImplementation({
+      a: error,
+      b: error
+    });
+    return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);
+  });
+}; // https://github.com/whatwg/html/pull/5749
+
+
+var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {
+  return !fails(function () {
+    var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, {
+      cause: 3
+    }));
+    return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;
+  });
+}; // FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+
+// FF<103 and Safari implementations can't clone errors
+// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604
+// FF103 can clone errors, but `.stack` of clone is an empty string
+// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762
+// FF104+ fixed it on usual errors, but not on DOMExceptions
+// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321
+// Chrome <102 returns `null` if cloned object contains multiple references to one error
+// https://bugs.chromium.org/p/v8/issues/detail?id=12542
+// NodeJS implementation can't clone DOMExceptions
+// https://github.com/nodejs/node/issues/41038
+// only FF103+ supports new (html/5749) error cloning semantic
+
+
+var nativeStructuredClone = global.structuredClone;
+var FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone, Error) || !checkErrorsCloning(nativeStructuredClone, DOMException) || !checkNewErrorsCloningSemantic(nativeStructuredClone); // Chrome 82+, Safari 14.1+, Deno 1.11+
+// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`
+// Chrome returns `null` if cloned object contains multiple references to one error
+// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround
+// Safari implementation can't clone errors
+// Deno 1.2-1.10 implementations too naive
+// NodeJS 16.0+ does not have `PerformanceMark` constructor
+// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive
+// and can't clone, for example, `RegExp` or some boxed primitives
+// https://github.com/nodejs/node/issues/40840
+// no one of those implementations supports new (html/5749) error cloning semantic
+
+var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {
+  return new PerformanceMark(PERFORMANCE_MARK, {
+    detail: value
+  }).detail;
+});
+var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;
+
+var throwUncloneable = function (type) {
+  throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);
+};
+
+var throwUnpolyfillable = function (type, action) {
+  throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);
+};
+
+var createDataTransfer = function () {
+  var dataTransfer;
+
+  try {
+    dataTransfer = new global.DataTransfer();
+  } catch (error) {
+    try {
+      dataTransfer = new global.ClipboardEvent('').clipboardData;
+    } catch (error2) {
+      /* empty */
+    }
+  }
+
+  return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;
+};
+
+var structuredCloneInternal = function (value, map) {
+  if (isSymbol(value)) throwUncloneable('Symbol');
+  if (!isObject(value)) return value; // effectively preserves circular references
+
+  if (map) {
+    if (mapHas(map, value)) return mapGet(map, value);
+  } else map = new Map();
+
+  var type = classof(value);
+  var deep = false;
+  var C, name, cloned, dataTransfer, i, length, keys, key, source, target;
+
+  switch (type) {
+    case 'Array':
+      cloned = [];
+      deep = true;
+      break;
+
+    case 'Object':
+      cloned = {};
+      deep = true;
+      break;
+
+    case 'Map':
+      cloned = new Map();
+      deep = true;
+      break;
+
+    case 'Set':
+      cloned = new Set();
+      deep = true;
+      break;
+
+    case 'RegExp':
+      // in this block because of a Safari 14.1 bug
+      // old FF does not clone regexes passed to the constructor, so get the source and flags directly
+      cloned = new RegExp(value.source, getRegExpFlags(value));
+      break;
+
+    case 'Error':
+      name = value.name;
+
+      switch (name) {
+        case 'AggregateError':
+          cloned = getBuiltin('AggregateError')([]);
+          break;
+
+        case 'EvalError':
+          cloned = EvalError();
+          break;
+
+        case 'RangeError':
+          cloned = RangeError();
+          break;
+
+        case 'ReferenceError':
+          cloned = ReferenceError();
+          break;
+
+        case 'SyntaxError':
+          cloned = SyntaxError();
+          break;
+
+        case 'TypeError':
+          cloned = TypeError();
+          break;
+
+        case 'URIError':
+          cloned = URIError();
+          break;
+
+        case 'CompileError':
+          cloned = CompileError();
+          break;
+
+        case 'LinkError':
+          cloned = LinkError();
+          break;
+
+        case 'RuntimeError':
+          cloned = RuntimeError();
+          break;
+
+        default:
+          cloned = Error();
+      }
+
+      deep = true;
+      break;
+
+    case 'DOMException':
+      cloned = new DOMException(value.message, value.name);
+      deep = true;
+      break;
+
+    case 'DataView':
+    case 'Int8Array':
+    case 'Uint8Array':
+    case 'Uint8ClampedArray':
+    case 'Int16Array':
+    case 'Uint16Array':
+    case 'Int32Array':
+    case 'Uint32Array':
+    case 'Float32Array':
+    case 'Float64Array':
+    case 'BigInt64Array':
+    case 'BigUint64Array':
+      C = global[type]; // in some old engines like Safari 9, typeof C is 'object'
+      // on Uint8ClampedArray or some other constructors
+
+      if (!isObject(C)) throwUnpolyfillable(type);
+      cloned = new C( // this is safe, since arraybuffer cannot have circular references
+      structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length);
+      break;
+
+    case 'DOMQuad':
+      try {
+        cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map));
+      } catch (error) {
+        if (nativeRestrictedStructuredClone) {
+          cloned = nativeRestrictedStructuredClone(value);
+        } else throwUnpolyfillable(type);
+      }
+
+      break;
+
+    case 'FileList':
+      dataTransfer = createDataTransfer();
+
+      if (dataTransfer) {
+        for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {
+          dataTransfer.items.add(structuredCloneInternal(value[i], map));
+        }
+
+        cloned = dataTransfer.files;
+      } else if (nativeRestrictedStructuredClone) {
+        cloned = nativeRestrictedStructuredClone(value);
+      } else throwUnpolyfillable(type);
+
+      break;
+
+    case 'ImageData':
+      // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'
+      try {
+        cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, {
+          colorSpace: value.colorSpace
+        });
+      } catch (error) {
+        if (nativeRestrictedStructuredClone) {
+          cloned = nativeRestrictedStructuredClone(value);
+        } else throwUnpolyfillable(type);
+      }
+
+      break;
+
+    default:
+      if (nativeRestrictedStructuredClone) {
+        cloned = nativeRestrictedStructuredClone(value);
+      } else switch (type) {
+        case 'BigInt':
+          // can be a 3rd party polyfill
+          cloned = Object(value.valueOf());
+          break;
+
+        case 'Boolean':
+          cloned = Object(thisBooleanValue(value));
+          break;
+
+        case 'Number':
+          cloned = Object(thisNumberValue(value));
+          break;
+
+        case 'String':
+          cloned = Object(thisStringValue(value));
+          break;
+
+        case 'Date':
+          cloned = new Date(thisTimeValue(value));
+          break;
+
+        case 'ArrayBuffer':
+          C = global.DataView; // `ArrayBuffer#slice` is not available in IE10
+          // `ArrayBuffer#slice` and `DataView` are not available in old FF
+
+          if (!C && typeof value.slice != 'function') throwUnpolyfillable(type); // detached buffers throws in `DataView` and `.slice`
+
+          try {
+            if (typeof value.slice == 'function') {
+              cloned = value.slice(0);
+            } else {
+              length = value.byteLength;
+              cloned = new ArrayBuffer(length);
+              source = new C(value);
+              target = new C(cloned);
+
+              for (i = 0; i < length; i++) {
+                target.setUint8(i, source.getUint8(i));
+              }
+            }
+          } catch (error) {
+            throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);
+          }
+
+          break;
+
+        case 'SharedArrayBuffer':
+          // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original
+          cloned = value;
+          break;
+
+        case 'Blob':
+          try {
+            cloned = value.slice(0, value.size, value.type);
+          } catch (error) {
+            throwUnpolyfillable(type);
+          }
+
+          break;
+
+        case 'DOMPoint':
+        case 'DOMPointReadOnly':
+          C = global[type];
+
+          try {
+            cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w);
+          } catch (error) {
+            throwUnpolyfillable(type);
+          }
+
+          break;
+
+        case 'DOMRect':
+        case 'DOMRectReadOnly':
+          C = global[type];
+
+          try {
+            cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height);
+          } catch (error) {
+            throwUnpolyfillable(type);
+          }
+
+          break;
+
+        case 'DOMMatrix':
+        case 'DOMMatrixReadOnly':
+          C = global[type];
+
+          try {
+            cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value);
+          } catch (error) {
+            throwUnpolyfillable(type);
+          }
+
+          break;
+
+        case 'AudioData':
+        case 'VideoFrame':
+          if (!isCallable(value.clone)) throwUnpolyfillable(type);
+
+          try {
+            cloned = value.clone();
+          } catch (error) {
+            throwUncloneable(type);
+          }
+
+          break;
+
+        case 'File':
+          try {
+            cloned = new File([value], value.name, value);
+          } catch (error) {
+            throwUnpolyfillable(type);
+          }
+
+          break;
+
+        case 'CryptoKey':
+        case 'GPUCompilationMessage':
+        case 'GPUCompilationInfo':
+        case 'ImageBitmap':
+        case 'RTCCertificate':
+        case 'WebAssembly.Module':
+          throwUnpolyfillable(type);
+        // break omitted
+
+        default:
+          throwUncloneable(type);
+      }
+
+  }
+
+  mapSet(map, value, cloned);
+  if (deep) switch (type) {
+    case 'Array':
+    case 'Object':
+      keys = objectKeys(value);
+
+      for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {
+        key = keys[i];
+        createProperty(cloned, key, structuredCloneInternal(value[key], map));
+      }
+
+      break;
+
+    case 'Map':
+      value.forEach(function (v, k) {
+        mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));
+      });
+      break;
+
+    case 'Set':
+      value.forEach(function (v) {
+        setAdd(cloned, structuredCloneInternal(v, map));
+      });
+      break;
+
+    case 'Error':
+      createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));
+
+      if (hasOwn(value, 'cause')) {
+        createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));
+      }
+
+      if (name == 'AggregateError') {
+        cloned.errors = structuredCloneInternal(value.errors, map);
+      }
+
+    // break omitted
+
+    case 'DOMException':
+      if (ERROR_STACK_INSTALLABLE) {
+        createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));
+      }
+
+  }
+  return cloned;
+};
+
+var PROPER_TRANSFER = nativeStructuredClone && !fails(function () {
+  // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation
+  // https://github.com/zloirock/core-js/issues/679
+  if (IS_DENO && V8 > 92 || IS_NODE && V8 > 94 || IS_BROWSER && V8 > 97) return false;
+  var buffer = new ArrayBuffer(8);
+  var clone = nativeStructuredClone(buffer, {
+    transfer: [buffer]
+  });
+  return buffer.byteLength != 0 || clone.byteLength != 8;
+});
+
+var tryToTransfer = function (rawTransfer, map) {
+  if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');
+  var transfer = [];
+  iterate(rawTransfer, function (value) {
+    push(transfer, anObject(value));
+  });
+  var i = 0;
+  var length = lengthOfArrayLike(transfer);
+  var value, type, C, transferredArray, transferred, canvas, context;
+
+  if (PROPER_TRANSFER) {
+    transferredArray = nativeStructuredClone(transfer, {
+      transfer: transfer
+    });
+
+    while (i < length) mapSet(map, transfer[i], transferredArray[i++]);
+  } else while (i < length) {
+    value = transfer[i++];
+    if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
+    type = classof(value);
+
+    switch (type) {
+      case 'ImageBitmap':
+        C = global.OffscreenCanvas;
+        if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);
+
+        try {
+          canvas = new C(value.width, value.height);
+          context = canvas.getContext('bitmaprenderer');
+          context.transferFromImageBitmap(value);
+          transferred = canvas.transferToImageBitmap();
+        } catch (error) {
+          /* empty */
+        }
+
+        break;
+
+      case 'AudioData':
+      case 'VideoFrame':
+        if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);
+
+        try {
+          transferred = value.clone();
+          value.close();
+        } catch (error) {
+          /* empty */
+        }
+
+        break;
+
+      case 'ArrayBuffer':
+      case 'MessagePort':
+      case 'OffscreenCanvas':
+      case 'ReadableStream':
+      case 'TransformStream':
+      case 'WritableStream':
+        throwUnpolyfillable(type, TRANSFERRING);
+    }
+
+    if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);
+    mapSet(map, value, transferred);
+  }
+};
+
+$({
+  global: true,
+  enumerable: true,
+  sham: !PROPER_TRANSFER,
+  forced: FORCED_REPLACEMENT
+}, {
+  structuredClone: function structuredClone(value
+  /* , { transfer } */
+  ) {
+    var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;
+    var transfer = options ? options.transfer : undefined;
+    var map;
+
+    if (transfer !== undefined) {
+      map = new Map();
+      tryToTransfer(transfer, map);
+    }
+
+    return structuredCloneInternal(value, map);
+  }
+});
+
+/***/ }),
+/* 488 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's split to modules listed below
+__webpack_require__(489);
+
+__webpack_require__(491);
+
+/***/ }),
+/* 489 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
+
+var global = __webpack_require__(4);
+
+var setInterval = (__webpack_require__(490).setInterval); // ie9- setInterval additional parameters fix
+// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
+
+
+$({
+  global: true,
+  bind: true,
+  forced: global.setInterval !== setInterval
+}, {
+  setInterval: setInterval
+});
+
+/***/ }),
+/* 490 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var global = __webpack_require__(3);
+var global = __webpack_require__(4);
 
-var apply = __webpack_require__(62);
+var apply = __webpack_require__(93);
 
-var isCallable = __webpack_require__(18);
+var isCallable = __webpack_require__(21);
 
-var userAgent = __webpack_require__(25);
+var userAgent = __webpack_require__(28);
 
-var arraySlice = __webpack_require__(74);
+var arraySlice = __webpack_require__(94);
+
+var validateArgumentsLength = __webpack_require__(315);
 
 var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
 
 var Function = global.Function;
 
 var wrap = function (scheduler) {
-  return function (handler, timeout
+  return MSIE ? function (handler, timeout
   /* , ...arguments */
   ) {
-    var boundArgs = arguments.length > 2;
+    var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;
+    var fn = isCallable(handler) ? handler : Function(handler);
     var args = boundArgs ? arraySlice(arguments, 2) : undefined;
     return scheduler(boundArgs ? function () {
-      apply(isCallable(handler) ? handler : Function(handler), this, args);
-    } : handler, timeout);
-  };
+      apply(fn, this, args);
+    } : fn, timeout);
+  } : scheduler;
 }; // ie9- setTimeout & setInterval additional parameters fix
 // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
 
 
-$({
-  global: true,
-  bind: true,
-  forced: MSIE
-}, {
+module.exports = {
   // `setTimeout` method
   // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
   setTimeout: wrap(global.setTimeout),
   // `setInterval` method
   // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
   setInterval: wrap(global.setInterval)
+};
+
+/***/ }),
+/* 491 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+var $ = __webpack_require__(3);
+
+var global = __webpack_require__(4);
+
+var setTimeout = (__webpack_require__(490).setTimeout); // ie9- setTimeout additional parameters fix
+// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
+
+
+$({
+  global: true,
+  bind: true,
+  forced: global.setTimeout !== setTimeout
+}, {
+  setTimeout: setTimeout
 });
 
 /***/ }),
-/* 422 */
+/* 492 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(493);
+
+/***/ }),
+/* 493 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
  // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
 
-__webpack_require__(331);
+__webpack_require__(377);
+
+var $ = __webpack_require__(3);
 
-var $ = __webpack_require__(2);
+var DESCRIPTORS = __webpack_require__(6);
 
-var DESCRIPTORS = __webpack_require__(5);
+var USE_NATIVE_URL = __webpack_require__(494);
 
-var USE_NATIVE_URL = __webpack_require__(423);
+var global = __webpack_require__(4);
 
-var global = __webpack_require__(3);
+var bind = __webpack_require__(84);
 
-var bind = __webpack_require__(80);
+var uncurryThis = __webpack_require__(14);
 
-var uncurryThis = __webpack_require__(12);
+var defineBuiltIn = __webpack_require__(47);
 
-var defineProperties = __webpack_require__(68);
+var defineBuiltInAccessor = __webpack_require__(304);
 
-var redefine = __webpack_require__(43);
+var anInstance = __webpack_require__(197);
 
-var anInstance = __webpack_require__(168);
+var hasOwn = __webpack_require__(38);
 
-var hasOwn = __webpack_require__(35);
+var assign = __webpack_require__(278);
 
-var assign = __webpack_require__(247);
+var arrayFrom = __webpack_require__(157);
 
-var arrayFrom = __webpack_require__(132);
+var arraySlice = __webpack_require__(76);
 
-var arraySlice = __webpack_require__(72);
+var codeAt = (__webpack_require__(371).codeAt);
 
-var codeAt = (__webpack_require__(325).codeAt);
+var toASCII = __webpack_require__(495);
 
-var toASCII = __webpack_require__(424);
+var $toString = __webpack_require__(68);
 
-var $toString = __webpack_require__(64);
+var setToStringTag = __webpack_require__(82);
 
-var setToStringTag = __webpack_require__(78);
+var validateArgumentsLength = __webpack_require__(315);
 
-var URLSearchParamsModule = __webpack_require__(425);
+var URLSearchParamsModule = __webpack_require__(496);
 
-var InternalStateModule = __webpack_require__(45);
+var InternalStateModule = __webpack_require__(51);
 
 var setInternalState = InternalStateModule.set;
 var getInternalURLState = InternalStateModule.getterFor('URL');
@@ -16426,7 +19253,7 @@ var URLConstructor = function URL(url
 /* , base */
 ) {
   var that = anInstance(this, URLPrototype);
-  var base = arguments.length > 1 ? arguments[1] : undefined;
+  var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;
   var state = setInternalState(that, new URLState(url, false, base));
 
   if (!DESCRIPTORS) {
@@ -16461,56 +19288,54 @@ var accessorDescriptor = function (getter, setter) {
 };
 
 if (DESCRIPTORS) {
-  defineProperties(URLPrototype, {
-    // `URL.prototype.href` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-href
-    href: accessorDescriptor('serialize', 'setHref'),
-    // `URL.prototype.origin` getter
-    // https://url.spec.whatwg.org/#dom-url-origin
-    origin: accessorDescriptor('getOrigin'),
-    // `URL.prototype.protocol` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-protocol
-    protocol: accessorDescriptor('getProtocol', 'setProtocol'),
-    // `URL.prototype.username` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-username
-    username: accessorDescriptor('getUsername', 'setUsername'),
-    // `URL.prototype.password` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-password
-    password: accessorDescriptor('getPassword', 'setPassword'),
-    // `URL.prototype.host` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-host
-    host: accessorDescriptor('getHost', 'setHost'),
-    // `URL.prototype.hostname` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-hostname
-    hostname: accessorDescriptor('getHostname', 'setHostname'),
-    // `URL.prototype.port` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-port
-    port: accessorDescriptor('getPort', 'setPort'),
-    // `URL.prototype.pathname` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-pathname
-    pathname: accessorDescriptor('getPathname', 'setPathname'),
-    // `URL.prototype.search` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-search
-    search: accessorDescriptor('getSearch', 'setSearch'),
-    // `URL.prototype.searchParams` getter
-    // https://url.spec.whatwg.org/#dom-url-searchparams
-    searchParams: accessorDescriptor('getSearchParams'),
-    // `URL.prototype.hash` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-hash
-    hash: accessorDescriptor('getHash', 'setHash')
-  });
+  // `URL.prototype.href` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-href
+  defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); // `URL.prototype.origin` getter
+  // https://url.spec.whatwg.org/#dom-url-origin
+
+  defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); // `URL.prototype.protocol` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-protocol
+
+  defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); // `URL.prototype.username` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-username
+
+  defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); // `URL.prototype.password` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-password
+
+  defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); // `URL.prototype.host` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-host
+
+  defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); // `URL.prototype.hostname` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-hostname
+
+  defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); // `URL.prototype.port` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-port
+
+  defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); // `URL.prototype.pathname` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-pathname
+
+  defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); // `URL.prototype.search` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-search
+
+  defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); // `URL.prototype.searchParams` getter
+  // https://url.spec.whatwg.org/#dom-url-searchparams
+
+  defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); // `URL.prototype.hash` accessors pair
+  // https://url.spec.whatwg.org/#dom-url-hash
+
+  defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));
 } // `URL.prototype.toJSON` method
 // https://url.spec.whatwg.org/#dom-url-tojson
 
 
-redefine(URLPrototype, 'toJSON', function toJSON() {
+defineBuiltIn(URLPrototype, 'toJSON', function toJSON() {
   return getInternalURLState(this).serialize();
 }, {
   enumerable: true
 }); // `URL.prototype.toString` method
 // https://url.spec.whatwg.org/#URL-stringification-behavior
 
-redefine(URLPrototype, 'toString', function toString() {
+defineBuiltIn(URLPrototype, 'toString', function toString() {
   return getInternalURLState(this).serialize();
 }, {
   enumerable: true
@@ -16521,15 +19346,16 @@ if (NativeURL) {
   var nativeRevokeObjectURL = NativeURL.revokeObjectURL; // `URL.createObjectURL` method
   // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
 
-  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); // `URL.revokeObjectURL` method
+  if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); // `URL.revokeObjectURL` method
   // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
 
-  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));
+  if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));
 }
 
 setToStringTag(URLConstructor, 'URL');
 $({
   global: true,
+  constructor: true,
   forced: !USE_NATIVE_URL,
   sham: !DESCRIPTORS
 }, {
@@ -16537,17 +19363,18 @@ $({
 });
 
 /***/ }),
-/* 423 */
+/* 494 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var fails = __webpack_require__(6);
+var fails = __webpack_require__(7);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var IS_PURE = __webpack_require__(32);
+var IS_PURE = __webpack_require__(35);
 
 var ITERATOR = wellKnownSymbol('iterator');
 module.exports = !fails(function () {
+  // eslint-disable-next-line unicorn/relative-url-style -- required for testing
   var url = new URL('b?a=1&b=2&c=3', 'http://a');
   var searchParams = url.searchParams;
   var result = '';
@@ -16565,15 +19392,13 @@ module.exports = !fails(function () {
 });
 
 /***/ }),
-/* 424 */
+/* 495 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
  // based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js
 
-var global = __webpack_require__(3);
-
-var uncurryThis = __webpack_require__(12);
+var uncurryThis = __webpack_require__(14);
 
 var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
 
@@ -16593,7 +19418,7 @@ var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
 
 var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
 var baseMinusTMin = base - tMin;
-var RangeError = global.RangeError;
+var $RangeError = RangeError;
 var exec = uncurryThis(regexSeparators.exec);
 var floor = Math.floor;
 var fromCharCode = String.fromCharCode;
@@ -16719,7 +19544,7 @@ var encode = function (input) {
     var handledCPCountPlusOne = handledCPCount + 1;
 
     if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
-      throw RangeError(OVERFLOW_ERROR);
+      throw $RangeError(OVERFLOW_ERROR);
     }
 
     delta += (m - n) * handledCPCountPlusOne;
@@ -16729,7 +19554,7 @@ var encode = function (input) {
       currentValue = input[i];
 
       if (currentValue < n && ++delta > maxInt) {
-        throw RangeError(OVERFLOW_ERROR);
+        throw $RangeError(OVERFLOW_ERROR);
       }
 
       if (currentValue == n) {
@@ -16775,74 +19600,85 @@ module.exports = function (input) {
 };
 
 /***/ }),
-/* 425 */
+/* 496 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
  // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
 
-__webpack_require__(138);
+__webpack_require__(163);
+
+var $ = __webpack_require__(3);
 
-var $ = __webpack_require__(2);
+var global = __webpack_require__(4);
 
-var global = __webpack_require__(3);
+var call = __webpack_require__(8);
 
-var getBuiltIn = __webpack_require__(20);
+var uncurryThis = __webpack_require__(14);
 
-var call = __webpack_require__(7);
+var DESCRIPTORS = __webpack_require__(6);
 
-var uncurryThis = __webpack_require__(12);
+var USE_NATIVE_URL = __webpack_require__(494);
 
-var USE_NATIVE_URL = __webpack_require__(423);
+var defineBuiltIn = __webpack_require__(47);
 
-var redefine = __webpack_require__(43);
+var defineBuiltIns = __webpack_require__(196);
 
-var redefineAll = __webpack_require__(167);
+var setToStringTag = __webpack_require__(82);
 
-var setToStringTag = __webpack_require__(78);
+var createIteratorConstructor = __webpack_require__(165);
 
-var createIteratorConstructor = __webpack_require__(140);
+var InternalStateModule = __webpack_require__(51);
 
-var InternalStateModule = __webpack_require__(45);
+var anInstance = __webpack_require__(197);
 
-var anInstance = __webpack_require__(168);
+var isCallable = __webpack_require__(21);
 
-var isCallable = __webpack_require__(18);
+var hasOwn = __webpack_require__(38);
 
-var hasOwn = __webpack_require__(35);
+var bind = __webpack_require__(84);
 
-var bind = __webpack_require__(80);
+var classof = __webpack_require__(69);
 
-var classof = __webpack_require__(65);
+var anObject = __webpack_require__(46);
 
-var anObject = __webpack_require__(42);
+var isObject = __webpack_require__(20);
 
-var isObject = __webpack_require__(17);
+var $toString = __webpack_require__(68);
 
-var $toString = __webpack_require__(64);
+var create = __webpack_require__(71);
 
-var create = __webpack_require__(67);
+var createPropertyDescriptor = __webpack_require__(11);
 
-var createPropertyDescriptor = __webpack_require__(9);
+var getIterator = __webpack_require__(129);
 
-var getIterator = __webpack_require__(108);
+var getIteratorMethod = __webpack_require__(130);
 
-var getIteratorMethod = __webpack_require__(109);
+var validateArgumentsLength = __webpack_require__(315);
 
-var wellKnownSymbol = __webpack_require__(30);
+var wellKnownSymbol = __webpack_require__(33);
 
-var arraySort = __webpack_require__(155);
+var arraySort = __webpack_require__(183);
 
 var ITERATOR = wellKnownSymbol('iterator');
 var URL_SEARCH_PARAMS = 'URLSearchParams';
 var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
 var setInternalState = InternalStateModule.set;
 var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
-var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
-var n$Fetch = getBuiltIn('fetch');
-var N$Request = getBuiltIn('Request');
-var Headers = getBuiltIn('Headers');
-var RequestPrototype = N$Request && N$Request.prototype;
+var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe
+
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Avoid NodeJS experimental warning
+
+var safeGetBuiltIn = function (name) {
+  if (!DESCRIPTORS) return global[name];
+  var descriptor = getOwnPropertyDescriptor(global, name);
+  return descriptor && descriptor.value;
+};
+
+var nativeFetch = safeGetBuiltIn('fetch');
+var NativeRequest = safeGetBuiltIn('Request');
+var Headers = safeGetBuiltIn('Headers');
+var RequestPrototype = NativeRequest && NativeRequest.prototype;
 var HeadersPrototype = Headers && Headers.prototype;
 var RegExp = global.RegExp;
 var TypeError = global.TypeError;
@@ -16904,10 +19740,6 @@ var serialize = function (it) {
   return replace(encodeURIComponent(it), find, replacer);
 };
 
-var validateArgumentsLength = function (passed, required) {
-  if (passed < required) throw TypeError('Not enough arguments');
-};
-
 var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
   setInternalState(this, {
     type: URL_SEARCH_PARAMS_ITERATOR,
@@ -17017,7 +19849,7 @@ URLSearchParams() {
 };
 
 var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
-redefineAll(URLSearchParamsPrototype, {
+defineBuiltIns(URLSearchParamsPrototype, {
   // `URLSearchParams.prototype.append` method
   // https://url.spec.whatwg.org/#dom-urlsearchparams-append
   append: function append(name, value) {
@@ -17155,12 +19987,12 @@ redefineAll(URLSearchParamsPrototype, {
   enumerable: true
 }); // `URLSearchParams.prototype[@@iterator]` method
 
-redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, {
+defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, {
   name: 'entries'
 }); // `URLSearchParams.prototype.toString` method
 // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
 
-redefine(URLSearchParamsPrototype, 'toString', function toString() {
+defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {
   return getInternalParamsState(this).serialize();
 }, {
   enumerable: true
@@ -17168,6 +20000,7 @@ redefine(URLSearchParamsPrototype, 'toString', function toString() {
 setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
 $({
   global: true,
+  constructor: true,
   forced: !USE_NATIVE_URL
 }, {
   URLSearchParams: URLSearchParamsConstructor
@@ -17199,32 +20032,35 @@ if (!USE_NATIVE_URL && isCallable(Headers)) {
     return init;
   };
 
-  if (isCallable(n$Fetch)) {
+  if (isCallable(nativeFetch)) {
     $({
       global: true,
       enumerable: true,
+      dontCallGetSet: true,
       forced: true
     }, {
       fetch: function fetch(input
       /* , init */
       ) {
-        return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
+        return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
       }
     });
   }
 
-  if (isCallable(N$Request)) {
+  if (isCallable(NativeRequest)) {
     var RequestConstructor = function Request(input
     /* , init */
     ) {
       anInstance(this, RequestPrototype);
-      return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
+      return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
     };
 
     RequestPrototype.constructor = RequestConstructor;
     RequestConstructor.prototype = RequestPrototype;
     $({
       global: true,
+      constructor: true,
+      dontCallGetSet: true,
       forced: true
     }, {
       Request: RequestConstructor
@@ -17238,15 +20074,15 @@ module.exports = {
 };
 
 /***/ }),
-/* 426 */
+/* 497 */
 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var $ = __webpack_require__(2);
+var $ = __webpack_require__(3);
 
-var call = __webpack_require__(7); // `URL.prototype.toJSON` method
+var call = __webpack_require__(8); // `URL.prototype.toJSON` method
 // https://url.spec.whatwg.org/#dom-url-tojson
 
 
@@ -17261,7 +20097,14 @@ $({
 });
 
 /***/ }),
-/* 427 */
+/* 498 */
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+// TODO: Remove this module from `core-js@4` since it's replaced to module below
+__webpack_require__(496);
+
+/***/ }),
+/* 499 */
 /***/ ((module) => {
 
 /**
@@ -17989,11 +20832,10 @@ try {
 }
 
 /***/ }),
-/* 428 */
+/* 500 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
 /**
  * @fileoverview Main Linter Class
  * @author Gyandeep Singh
@@ -18003,44 +20845,44 @@ try {
 // Requirements
 //------------------------------------------------------------------------------
 
-const path = __webpack_require__(429),
-      eslintScope = __webpack_require__(430),
-      evk = __webpack_require__(435),
-      espree = __webpack_require__(436),
-      merge = __webpack_require__(442),
-      pkg = __webpack_require__(443),
-      astUtils = __webpack_require__(444),
+const path = __webpack_require__(501),
+      eslintScope = __webpack_require__(502),
+      evk = __webpack_require__(507),
+      espree = __webpack_require__(508),
+      merge = __webpack_require__(512),
+      pkg = __webpack_require__(513),
+      astUtils = __webpack_require__(514),
       {
   Legacy: {
     ConfigOps,
     ConfigValidator,
     environments: BuiltInEnvironments
   }
-} = __webpack_require__(445),
-      Traverser = __webpack_require__(495),
+} = __webpack_require__(515),
+      Traverser = __webpack_require__(565),
       {
   SourceCode
-} = __webpack_require__(499),
-      CodePathAnalyzer = __webpack_require__(517),
-      applyDisableDirectives = __webpack_require__(524),
-      ConfigCommentParser = __webpack_require__(526),
-      NodeEventGenerator = __webpack_require__(539),
-      createReportTranslator = __webpack_require__(541),
-      Rules = __webpack_require__(544),
-      createEmitter = __webpack_require__(855),
-      SourceCodeFixer = __webpack_require__(856),
-      timing = __webpack_require__(857),
-      ruleReplacements = __webpack_require__(858);
+} = __webpack_require__(569),
+      CodePathAnalyzer = __webpack_require__(587),
+      applyDisableDirectives = __webpack_require__(594),
+      ConfigCommentParser = __webpack_require__(596),
+      NodeEventGenerator = __webpack_require__(609),
+      createReportTranslator = __webpack_require__(611),
+      Rules = __webpack_require__(614),
+      createEmitter = __webpack_require__(946),
+      SourceCodeFixer = __webpack_require__(947),
+      timing = __webpack_require__(948),
+      ruleReplacements = __webpack_require__(949);
 
 const {
   getRuleFromConfig
-} = __webpack_require__(859);
+} = __webpack_require__(950);
 
 const {
   FlatConfigArray
-} = __webpack_require__(860);
+} = __webpack_require__(951);
 
-const debug = __webpack_require__(496)("eslint:linter");
+const debug = __webpack_require__(566)("eslint:linter");
 
 const MAX_AUTOFIX_PASSES = 10;
 const DEFAULT_PARSER_NAME = "espree";
@@ -18058,7 +20900,7 @@ const DEFAULT_ERROR_LOC = {
 };
 const parserSymbol = Symbol.for("eslint.RuleTester.parser");
 
-const globals = __webpack_require__(877); //------------------------------------------------------------------------------
+const globals = __webpack_require__(968); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -18074,6 +20916,8 @@ const globals = __webpack_require__(877); //------------------------------------
 
 /** @typedef {import("../shared/types").LintMessage} LintMessage */
 
+/** @typedef {import("../shared/types").SuppressedLintMessage} SuppressedLintMessage */
+
 /** @typedef {import("../shared/types").ParserOptions} ParserOptions */
 
 /** @typedef {import("../shared/types").LanguageOptions} LanguageOptions */
@@ -18097,6 +20941,7 @@ const globals = __webpack_require__(877); //------------------------------------
  * @property {number} line The line number
  * @property {number} column The column number
  * @property {(string|null)} ruleId The rule ID
+ * @property {string} justification The justification of directive
  */
 
 /**
@@ -18104,6 +20949,7 @@ const globals = __webpack_require__(877); //------------------------------------
  * @typedef {Object} LinterInternalSlots
  * @property {ConfigArray|null} lastConfigArray The `ConfigArray` instance that the last `verify()` call used.
  * @property {SourceCode|null} lastSourceCode The `SourceCode` instance that the last `verify()` call used.
+ * @property {SuppressedLintMessage[]} lastSuppressedMessages The `SuppressedLintMessage[]` instance that the last `verify()` call produced.
  * @property {Map<string, Parser>} parserMap The loaded parsers.
  * @property {Rules} ruleMap The loaded rules.
  */
@@ -18176,10 +21022,10 @@ function getGlobalsForEcmaVersion(ecmaVersion) {
 
     default:
       if (ecmaVersion < 2015) {
-        return globals["es".concat(ecmaVersion + 2009)];
+        return globals[`es${ecmaVersion + 2009}`];
       }
 
-      return globals["es".concat(ecmaVersion)];
+      return globals[`es${ecmaVersion}`];
   }
 }
 /**
@@ -18268,7 +21114,7 @@ function addDeclaredGlobals(globalScope, configGlobals, _ref) {
 
 
 function createMissingRuleMessage(ruleId) {
-  return Object.prototype.hasOwnProperty.call(ruleReplacements.rules, ruleId) ? "Rule '".concat(ruleId, "' was removed and replaced by: ").concat(ruleReplacements.rules[ruleId].join(", ")) : "Definition for rule '".concat(ruleId, "' was not found.");
+  return Object.prototype.hasOwnProperty.call(ruleReplacements.rules, ruleId) ? `Rule '${ruleId}' was removed and replaced by: ${ruleReplacements.rules[ruleId].join(", ")}` : `Definition for rule '${ruleId}' was not found.`;
 }
 /**
  * creates a linting problem
@@ -18307,6 +21153,7 @@ function createLintingProblem(options) {
  * @param {token} options.commentToken The Comment token
  * @param {string} options.value The value after the directive in the comment
  * comment specified no specific rules, so it applies to all rules (e.g. `eslint-disable`)
+ * @param {string} options.justification The justification of the directive
  * @param {function(string): {create: Function}} options.ruleMapper A map from rule IDs to defined rules
  * @returns {Object} Directives and problems from the comment
  */
@@ -18317,6 +21164,7 @@ function createDisableDirectives(options) {
     commentToken,
     type,
     value,
+    justification,
     ruleMapper
   } = options;
   const ruleIds = Object.keys(commentParser.parseListConfig(value));
@@ -18335,13 +21183,25 @@ function createDisableDirectives(options) {
   for (const ruleId of directiveRules) {
     // push to directives, if the rule is defined(including null, e.g. /*eslint enable*/)
     if (ruleId === null || !!ruleMapper(ruleId)) {
-      result.directives.push({
-        parentComment,
-        type,
-        line: commentToken.loc.start.line,
-        column: commentToken.loc.start.column + 1,
-        ruleId
-      });
+      if (type === "disable-next-line") {
+        result.directives.push({
+          parentComment,
+          type,
+          line: commentToken.loc.end.line,
+          column: commentToken.loc.end.column + 1,
+          ruleId,
+          justification
+        });
+      } else {
+        result.directives.push({
+          parentComment,
+          type,
+          line: commentToken.loc.start.line,
+          column: commentToken.loc.start.column + 1,
+          ruleId,
+          justification
+        });
+      }
     } else {
       result.directiveProblems.push(createLintingProblem({
         ruleId,
@@ -18353,20 +21213,33 @@ function createDisableDirectives(options) {
   return result;
 }
 /**
- * Remove the ignored part from a given directive comment and trim it.
- * @param {string} value The comment text to strip.
- * @returns {string} The stripped text.
+ * Extract the directive and the justification from a given directive comment and trim them.
+ * @param {string} value The comment text to extract.
+ * @returns {{directivePart: string, justificationPart: string}} The extracted directive and justification.
  */
 
 
-function stripDirectiveComment(value) {
-  return value.split(/\s-{2,}\s/u)[0].trim();
+function extractDirectiveComment(value) {
+  const match = /\s-{2,}\s/u.exec(value);
+
+  if (!match) {
+    return {
+      directivePart: value.trim(),
+      justificationPart: ""
+    };
+  }
+
+  const directive = value.slice(0, match.index).trim();
+  const justification = value.slice(match.index + match[0].length).trim();
+  return {
+    directivePart: directive,
+    justificationPart: justification
+  };
 }
 /**
  * Parses comments in file to extract file-specific config of rules, globals
  * and environments and merges them with global config; also code blocks
  * where reporting is disabled or enabled and merges them with reporting config.
- * @param {string} filename The file being checked.
  * @param {ASTNode} ast The top node of the AST.
  * @param {function(string): {create: Function}} ruleMapper A map from rule IDs to defined rules
  * @param {string|null} warnInlineConfig If a string then it should warn directive comments as disabled. The string value is the config name what the setting came from.
@@ -18375,7 +21248,7 @@ function stripDirectiveComment(value) {
  */
 
 
-function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) {
+function getDirectiveComments(ast, ruleMapper, warnInlineConfig) {
   const configuredRules = {};
   const enabledGlobals = Object.create(null);
   const exportedVariables = {};
@@ -18385,8 +21258,11 @@ function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) {
     builtInRules: Rules
   });
   ast.comments.filter(token => token.type !== "Shebang").forEach(comment => {
-    const trimmedCommentText = stripDirectiveComment(comment.value);
-    const match = /^(eslint(?:-env|-enable|-disable(?:(?:-next)?-line)?)?|exported|globals?)(?:\s|$)/u.exec(trimmedCommentText);
+    const {
+      directivePart,
+      justificationPart
+    } = extractDirectiveComment(comment.value);
+    const match = /^(eslint(?:-env|-enable|-disable(?:(?:-next)?-line)?)?|exported|globals?)(?:\s|$)/u.exec(directivePart);
 
     if (!match) {
       return;
@@ -18400,18 +21276,18 @@ function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) {
     }
 
     if (warnInlineConfig) {
-      const kind = comment.type === "Block" ? "/*".concat(directiveText, "*/") : "//".concat(directiveText);
+      const kind = comment.type === "Block" ? `/*${directiveText}*/` : `//${directiveText}`;
       problems.push(createLintingProblem({
         ruleId: null,
-        message: "'".concat(kind, "' has no effect because you have 'noInlineConfig' setting in ").concat(warnInlineConfig, "."),
+        message: `'${kind}' has no effect because you have 'noInlineConfig' setting in ${warnInlineConfig}.`,
         loc: comment.loc,
         severity: 1
       }));
       return;
     }
 
-    if (lineCommentSupported && comment.loc.start.line !== comment.loc.end.line) {
-      const message = "".concat(directiveText, " comment should not span multiple lines.");
+    if (directiveText === "eslint-disable-line" && comment.loc.start.line !== comment.loc.end.line) {
+      const message = `${directiveText} comment should not span multiple lines.`;
       problems.push(createLintingProblem({
         ruleId: null,
         message,
@@ -18420,7 +21296,7 @@ function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) {
       return;
     }
 
-    const directiveValue = trimmedCommentText.slice(match.index + directiveText.length);
+    const directiveValue = directivePart.slice(match.index + directiveText.length);
 
     switch (directiveText) {
       case "eslint-disable":
@@ -18433,6 +21309,7 @@ function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) {
             commentToken: comment,
             type: directiveType,
             value: directiveValue,
+            justification: justificationPart,
             ruleMapper
           };
           const {
@@ -18597,7 +21474,7 @@ function findEslintEnv(text) {
 
   while ((match = eslintEnvPattern.exec(text)) !== null) {
     if (match[0].endsWith("*/")) {
-      retv = Object.assign(retv || {}, commentParser.parseListConfig(stripDirectiveComment(match[1])));
+      retv = Object.assign(retv || {}, commentParser.parseListConfig(extractDirectiveComment(match[1]).directivePart));
     }
   }
 
@@ -18636,7 +21513,7 @@ function normalizeVerifyOptions(providedOptions, config) {
 
   const disableInlineConfig = linterOptions.noInlineConfig === true;
   const ignoreInlineConfig = providedOptions.allowInlineConfig === false;
-  const configNameOfNoInlineConfig = config.configNameOfNoInlineConfig ? " (".concat(config.configNameOfNoInlineConfig, ")") : "";
+  const configNameOfNoInlineConfig = config.configNameOfNoInlineConfig ? ` (${config.configNameOfNoInlineConfig})` : "";
   let reportUnusedDisableDirectives = providedOptions.reportUnusedDisableDirectives;
 
   if (typeof reportUnusedDisableDirectives === "boolean") {
@@ -18650,7 +21527,7 @@ function normalizeVerifyOptions(providedOptions, config) {
   return {
     filename: normalizeFilename(providedOptions.filename || "<input>"),
     allowInlineConfig: !ignoreInlineConfig,
-    warnInlineConfig: disableInlineConfig && !ignoreInlineConfig ? "your config".concat(configNameOfNoInlineConfig) : null,
+    warnInlineConfig: disableInlineConfig && !ignoreInlineConfig ? `your config${configNameOfNoInlineConfig}` : null,
     reportUnusedDisableDirectives,
     disableFixes: Boolean(providedOptions.disableFixes)
   };
@@ -18791,7 +21668,7 @@ function analyzeScope(ast, languageOptions, visitorKeys) {
 
 
 function parse(text, languageOptions, filePath) {
-  const textToParse = stripUnicodeBOM(text).replace(astUtils.shebangPattern, (match, captured) => "//".concat(captured));
+  const textToParse = stripUnicodeBOM(text).replace(astUtils.shebangPattern, (match, captured) => `//${captured}`);
   const {
     ecmaVersion,
     sourceType,
@@ -18818,13 +21695,17 @@ function parse(text, languageOptions, filePath) {
    */
 
   try {
+    debug("Parsing:", filePath);
     const parseResult = typeof parser.parseForESLint === "function" ? parser.parseForESLint(textToParse, parserOptions) : {
       ast: parser.parse(textToParse, parserOptions)
     };
+    debug("Parsing successful:", filePath);
     const ast = parseResult.ast;
     const parserServices = parseResult.services || {};
     const visitorKeys = parseResult.visitorKeys || evk.KEYS;
+    debug("Scope analysis:", filePath);
     const scopeManager = parseResult.scopeManager || analyzeScope(ast, languageOptions, visitorKeys);
+    debug("Scope analysis successful:", filePath);
     return {
       success: true,
 
@@ -18844,7 +21725,7 @@ function parse(text, languageOptions, filePath) {
     };
   } catch (ex) {
     // If the message includes a leading line number, strip it:
-    const message = "Parsing error: ".concat(ex.message.replace(/^line \d+:/iu, "").trim());
+    const message = `Parsing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`;
     debug("%s\n%s", message, ex.stack);
     return {
       success: false,
@@ -18928,7 +21809,7 @@ function createRuleListeners(rule, ruleContext) {
   try {
     return rule.create(ruleContext);
   } catch (ex) {
-    ex.message = "Error while loading rule '".concat(ruleContext.id, "': ").concat(ex.message);
+    ex.message = `Error while loading rule '${ruleContext.id}': ${ex.message}`;
     throw ex;
   }
 }
@@ -19101,7 +21982,7 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserName, languageO
       }
 
     }));
-    const ruleListeners = createRuleListeners(rule, ruleContext);
+    const ruleListeners = timing.enabled ? timing.time(ruleId, createRuleListeners)(rule, ruleContext) : createRuleListeners(rule, ruleContext);
     /**
      * Include `ruleId` in error logs
      * @param {Function} ruleListener A rule method that listens for a node.
@@ -19117,6 +21998,10 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserName, languageO
           throw e;
         }
       };
+    }
+
+    if (typeof ruleListeners === "undefined" || ruleListeners === null) {
+      throw new Error(`The create() function for rule '${ruleId}' did not return an object.`);
     } // add all the selectors from the rule as listeners
 
 
@@ -19258,6 +22143,7 @@ class Linter {
       cwd: normalizeCwd(cwd),
       lastConfigArray: null,
       lastSourceCode: null,
+      lastSuppressedMessages: [],
       configType,
       // TODO: Remove after flat config conversion
       parserMap: new Map([["espree", espree]]),
@@ -19281,7 +22167,7 @@ class Linter {
    * @param {ConfigData} providedConfig An ESLintConfig instance to configure everything.
    * @param {VerifyOptions} [providedOptions] The optional filename of the file being checked.
    * @throws {Error} If during rule execution.
-   * @returns {LintMessage[]} The results as an array of messages or an empty array if no messages.
+   * @returns {(LintMessage|SuppressedLintMessage)[]} The results as an array of messages or an empty array if no messages.
    */
 
 
@@ -19312,7 +22198,7 @@ class Linter {
           ruleId: null,
           fatal: true,
           severity: 2,
-          message: "Configured parser '".concat(config.parser, "' was not found."),
+          message: `Configured parser '${config.parser}' was not found.`,
           line: 0,
           column: 0
         }];
@@ -19362,7 +22248,7 @@ class Linter {
     }
 
     const sourceCode = slots.lastSourceCode;
-    const commentDirectives = options.allowInlineConfig ? getDirectiveComments(options.filename, sourceCode.ast, ruleId => getRule(slots, ruleId), options.warnInlineConfig) : {
+    const commentDirectives = options.allowInlineConfig ? getDirectiveComments(sourceCode.ast, ruleId => getRule(slots, ruleId), options.warnInlineConfig) : {
       configuredRules: {},
       enabledGlobals: {},
       exportedVariables: {},
@@ -19380,7 +22266,7 @@ class Linter {
     try {
       lintingProblems = runRules(sourceCode, configuredRules, ruleId => getRule(slots, ruleId), parserName, languageOptions, settings, options.filename, options.disableFixes, slots.cwd, providedOptions.physicalFilename);
     } catch (err) {
-      err.message += "\nOccurred while linting ".concat(options.filename);
+      err.message += `\nOccurred while linting ${options.filename}`;
       debug("An error occurred while traversing");
       debug("Filename:", options.filename);
 
@@ -19389,7 +22275,7 @@ class Linter {
           line
         } = err.currentNode.loc.start;
         debug("Line:", line);
-        err.message += ":".concat(line);
+        err.message += `:${line}`;
       }
 
       debug("Parser Options:", parserOptions);
@@ -19397,7 +22283,7 @@ class Linter {
       debug("Settings:", settings);
 
       if (err.ruleId) {
-        err.message += "\nRule: \"".concat(err.ruleId, "\"");
+        err.message += `\nRule: "${err.ruleId}"`;
       }
 
       throw err;
@@ -19446,11 +22332,11 @@ class Linter {
           configArray.normalizeSync();
         }
 
-        return this._verifyWithFlatConfigArray(textOrSourceCode, configArray, options, true);
+        return this._distinguishSuppressedMessages(this._verifyWithFlatConfigArray(textOrSourceCode, configArray, options, true));
       }
 
       if (typeof config.extractConfig === "function") {
-        return this._verifyWithConfigArray(textOrSourceCode, config, options);
+        return this._distinguishSuppressedMessages(this._verifyWithConfigArray(textOrSourceCode, config, options));
       }
     }
     /*
@@ -19465,10 +22351,10 @@ class Linter {
 
 
     if (options.preprocess || options.postprocess) {
-      return this._verifyWithProcessor(textOrSourceCode, config, options);
+      return this._distinguishSuppressedMessages(this._verifyWithProcessor(textOrSourceCode, config, options));
     }
 
-    return this._verifyWithoutProcessors(textOrSourceCode, config, options);
+    return this._distinguishSuppressedMessages(this._verifyWithoutProcessors(textOrSourceCode, config, options));
   }
   /**
    * Verify with a processor.
@@ -19476,7 +22362,7 @@ class Linter {
    * @param {FlatConfig} config The config array.
    * @param {VerifyOptions&ProcessorOptions} options The options.
    * @param {FlatConfigArray} [configForRecursive] The `ConfigArray` object to apply multiple processors recursively.
-   * @returns {LintMessage[]} The found problems.
+   * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems.
    */
 
 
@@ -19493,7 +22379,25 @@ class Linter {
     const filterCodeBlock = options.filterCodeBlock || (blockFilename => blockFilename.endsWith(".js"));
 
     const originalExtname = path.extname(filename);
-    const messageLists = preprocess(text, filenameToExpose).map((block, i) => {
+    let blocks;
+
+    try {
+      blocks = preprocess(text, filenameToExpose);
+    } catch (ex) {
+      // If the message includes a leading line number, strip it:
+      const message = `Preprocessing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`;
+      debug("%s\n%s", message, ex.stack);
+      return [{
+        ruleId: null,
+        fatal: true,
+        severity: 2,
+        message,
+        line: ex.lineNumber,
+        column: ex.column
+      }];
+    }
+
+    const messageLists = blocks.map((block, i) => {
       debug("A code block was found: %o", block.filename || "(unnamed)"); // Keep the legacy behavior.
 
       if (typeof block === "string") {
@@ -19501,7 +22405,7 @@ class Linter {
       }
 
       const blockText = block.text;
-      const blockName = path.join(filename, "".concat(i, "_").concat(block.filename)); // Skip this block if filtered.
+      const blockName = path.join(filename, `${i}_${block.filename}`); // Skip this block if filtered.
 
       if (!filterCodeBlock(blockName, blockText)) {
         debug("This code block was skipped.");
@@ -19531,7 +22435,7 @@ class Linter {
    * @param {FlatConfig} providedConfig An ESLintConfig instance to configure everything.
    * @param {VerifyOptions} [providedOptions] The optional filename of the file being checked.
    * @throws {Error} If during rule execution.
-   * @returns {LintMessage[]} The results as an array of messages or an empty array if no messages.
+   * @returns {(LintMessage|SuppressedLintMessage)[]} The results as an array of messages or an empty array if no messages.
    */
 
 
@@ -19555,7 +22459,12 @@ class Linter {
     const configuredGlobals = { ...getGlobalsForEcmaVersion(languageOptions.ecmaVersion),
       ...(languageOptions.sourceType === "commonjs" ? globals.commonjs : void 0),
       ...languageOptions.globals
-    }; // Espree expects this information to be passed in
+    }; // double check that there is a parser to avoid mysterious error messages
+
+    if (!languageOptions.parser) {
+      throw new TypeError(`No parser specified for ${options.filename}`);
+    } // Espree expects this information to be passed in
+
 
     if (isEspree(languageOptions.parser)) {
       const parserOptions = languageOptions.parserOptions;
@@ -19596,7 +22505,7 @@ class Linter {
     }
 
     const sourceCode = slots.lastSourceCode;
-    const commentDirectives = options.allowInlineConfig ? getDirectiveComments(options.filename, sourceCode.ast, ruleId => getRuleFromConfig(ruleId, config), options.warnInlineConfig) : {
+    const commentDirectives = options.allowInlineConfig ? getDirectiveComments(sourceCode.ast, ruleId => getRuleFromConfig(ruleId, config), options.warnInlineConfig) : {
       configuredRules: {},
       enabledGlobals: {},
       exportedVariables: {},
@@ -19614,7 +22523,7 @@ class Linter {
     try {
       lintingProblems = runRules(sourceCode, configuredRules, ruleId => getRuleFromConfig(ruleId, config), void 0, languageOptions, settings, options.filename, options.disableFixes, slots.cwd, providedOptions.physicalFilename);
     } catch (err) {
-      err.message += "\nOccurred while linting ".concat(options.filename);
+      err.message += `\nOccurred while linting ${options.filename}`;
       debug("An error occurred while traversing");
       debug("Filename:", options.filename);
 
@@ -19623,7 +22532,7 @@ class Linter {
           line
         } = err.currentNode.loc.start;
         debug("Line:", line);
-        err.message += ":".concat(line);
+        err.message += `:${line}`;
       }
 
       debug("Parser Options:", languageOptions.parserOptions); // debug("Parser Path:", parserName);
@@ -19631,7 +22540,7 @@ class Linter {
       debug("Settings:", settings);
 
       if (err.ruleId) {
-        err.message += "\nRule: \"".concat(err.ruleId, "\"");
+        err.message += `\nRule: "${err.ruleId}"`;
       }
 
       throw err;
@@ -19649,7 +22558,7 @@ class Linter {
    * @param {string|SourceCode} textOrSourceCode The source code.
    * @param {ConfigArray} configArray The config array.
    * @param {VerifyOptions&ProcessorOptions} options The options.
-   * @returns {LintMessage[]} The found problems.
+   * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems.
    */
 
 
@@ -19685,7 +22594,7 @@ class Linter {
    * @param {VerifyOptions&ProcessorOptions} options The options.
    * @param {boolean} [firstCall=false] Indicates if this is being called directly
    *      from verify(). (TODO: Remove once eslintrc is removed.)
-   * @returns {LintMessage[]} The found problems.
+   * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems.
    */
 
 
@@ -19693,10 +22602,21 @@ class Linter {
     let firstCall = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
     debug("With flat config: %s", options.filename); // we need a filename to match configs against
 
-    const filename = options.filename || "<input>"; // Store the config array in order to get plugin envs and rules later.
+    const filename = options.filename || "__placeholder__.js"; // Store the config array in order to get plugin envs and rules later.
 
     internalSlotsMap.get(this).lastConfigArray = configArray;
-    const config = configArray.getConfig(filename); // Verify.
+    const config = configArray.getConfig(filename);
+
+    if (!config) {
+      return [{
+        ruleId: null,
+        severity: 1,
+        message: `No matching configuration found for ${filename}.`,
+        line: 0,
+        column: 0
+      }];
+    } // Verify.
+
 
     if (config.processor) {
       debug("Apply the processor: %o", config.processor);
@@ -19727,7 +22647,7 @@ class Linter {
    * @param {ConfigData|ExtractedConfig} config The config array.
    * @param {VerifyOptions&ProcessorOptions} options The options.
    * @param {ConfigArray} [configForRecursive] The `ConfigArray` object to apply multiple processors recursively.
-   * @returns {LintMessage[]} The found problems.
+   * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems.
    */
 
 
@@ -19744,7 +22664,25 @@ class Linter {
     const filterCodeBlock = options.filterCodeBlock || (blockFilename => blockFilename.endsWith(".js"));
 
     const originalExtname = path.extname(filename);
-    const messageLists = preprocess(text, filenameToExpose).map((block, i) => {
+    let blocks;
+
+    try {
+      blocks = preprocess(text, filenameToExpose);
+    } catch (ex) {
+      // If the message includes a leading line number, strip it:
+      const message = `Preprocessing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`;
+      debug("%s\n%s", message, ex.stack);
+      return [{
+        ruleId: null,
+        fatal: true,
+        severity: 2,
+        message,
+        line: ex.lineNumber,
+        column: ex.column
+      }];
+    }
+
+    const messageLists = blocks.map((block, i) => {
       debug("A code block was found: %o", block.filename || "(unnamed)"); // Keep the legacy behavior.
 
       if (typeof block === "string") {
@@ -19752,7 +22690,7 @@ class Linter {
       }
 
       const blockText = block.text;
-      const blockName = path.join(filename, "".concat(i, "_").concat(block.filename)); // Skip this block if filtered.
+      const blockName = path.join(filename, `${i}_${block.filename}`); // Skip this block if filtered.
 
       if (!filterCodeBlock(blockName, blockText)) {
         debug("This code block was skipped.");
@@ -19776,6 +22714,30 @@ class Linter {
     });
     return postprocess(messageLists, filenameToExpose);
   }
+  /**
+   * Given a list of reported problems, distinguish problems between normal messages and suppressed messages.
+   * The normal messages will be returned and the suppressed messages will be stored as lastSuppressedMessages.
+   * @param {Problem[]} problems A list of reported problems.
+   * @returns {LintMessage[]} A list of LintMessage.
+   */
+
+
+  _distinguishSuppressedMessages(problems) {
+    const messages = [];
+    const suppressedMessages = [];
+    const slots = internalSlotsMap.get(this);
+
+    for (const problem of problems) {
+      if (problem.suppressions) {
+        suppressedMessages.push(problem);
+      } else {
+        messages.push(problem);
+      }
+    }
+
+    slots.lastSuppressedMessages = suppressedMessages;
+    return messages;
+  }
   /**
    * Gets the SourceCode object representing the parsed source.
    * @returns {SourceCode} The SourceCode object.
@@ -19785,6 +22747,15 @@ class Linter {
   getSourceCode() {
     return internalSlotsMap.get(this).lastSourceCode;
   }
+  /**
+   * Gets the list of SuppressedLintMessage produced in the last running.
+   * @returns {SuppressedLintMessage[]} The list of SuppressedLintMessage
+   */
+
+
+  getSuppressedMessages() {
+    return internalSlotsMap.get(this).lastSuppressedMessages;
+  }
   /**
    * Defines a new linting rule.
    * @param {string} ruleId A unique rule identifier
@@ -19859,7 +22830,7 @@ class Linter {
         fixed = false,
         passNumber = 0,
         currentText = text;
-    const debugTextDescription = options && options.filename || "".concat(text.slice(0, 10), "...");
+    const debugTextDescription = options && options.filename || `${text.slice(0, 10)}...`;
     const shouldFix = options && typeof options.fix !== "undefined" ? options.fix : true;
     /**
      * This loop continues until one of the following is true:
@@ -19873,9 +22844,9 @@ class Linter {
 
     do {
       passNumber++;
-      debug("Linting code for ".concat(debugTextDescription, " (pass ").concat(passNumber, ")"));
+      debug(`Linting code for ${debugTextDescription} (pass ${passNumber})`);
       messages = this.verify(currentText, config, options);
-      debug("Generating fixed text for ".concat(debugTextDescription, " (pass ").concat(passNumber, ")"));
+      debug(`Generating fixed text for ${debugTextDescription} (pass ${passNumber})`);
       fixedResult = SourceCodeFixer.applyFixes(currentText, messages, shouldFix);
       /*
        * stop if there are any syntax errors.
@@ -19924,14 +22895,14 @@ module.exports = {
 };
 
 /***/ }),
-/* 429 */
+/* 501 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = require("path");
 
 /***/ }),
-/* 430 */
+/* 502 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -19939,9 +22910,9 @@ module.exports = require("path");
 
 Object.defineProperty(exports, "__esModule", ({ value: true }));
 
-var assert = __webpack_require__(431);
-var estraverse = __webpack_require__(432);
-var esrecurse = __webpack_require__(433);
+var assert = __webpack_require__(503);
+var estraverse = __webpack_require__(504);
+var esrecurse = __webpack_require__(505);
 
 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
 
@@ -20534,7 +23505,9 @@ class Scope {
          * Whether 'use strict' is in effect in this scope.
          * @member {boolean} Scope#isStrict
          */
-        this.isStrict = isStrictScope(this, block, isMethodDefinition, scopeManager.__useDirective());
+        this.isStrict = scopeManager.isStrictModeSupported()
+            ? isStrictScope(this, block, isMethodDefinition, scopeManager.__useDirective())
+            : false;
 
         /**
          * List of nested {@link Scope}s.
@@ -22049,7 +25022,7 @@ class Referencer extends esrecurse__default["default"].Visitor {
 
 /* vim: set sw=4 ts=4 et tw=80 : */
 
-const version = "7.1.0";
+const version = "7.1.1";
 
 /*
   Copyright (C) 2012-2014 Yusuke Suzuki <utatane.tea@gmail.com>
@@ -22176,14 +25149,14 @@ exports.version = version;
 
 
 /***/ }),
-/* 431 */
+/* 503 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = require("assert");
 
 /***/ }),
-/* 432 */
+/* 504 */
 /***/ ((__unused_webpack_module, exports) => {
 
 /*
@@ -22997,7 +25970,7 @@ module.exports = require("assert");
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 433 */
+/* 505 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 /*
@@ -23026,7 +25999,7 @@ module.exports = require("assert");
 (function () {
   'use strict';
 
-  var estraverse = __webpack_require__(432);
+  var estraverse = __webpack_require__(504);
 
   function isNode(node) {
     if (node == null) {
@@ -23114,7 +26087,7 @@ module.exports = require("assert");
     this.visitChildren(node);
   };
 
-  exports.version = __webpack_require__(434).version;
+  exports.version = __webpack_require__(506).version;
   exports.Visitor = Visitor;
 
   exports.visit = function (node, visitor, options) {
@@ -23125,14 +26098,14 @@ module.exports = require("assert");
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 434 */
+/* 506 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"name":"esrecurse","description":"ECMAScript AST recursive visitor","homepage":"https://github.com/estools/esrecurse","main":"esrecurse.js","version":"4.3.0","engines":{"node":">=4.0"},"maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","web":"https://github.com/Constellation"}],"repository":{"type":"git","url":"https://github.com/estools/esrecurse.git"},"dependencies":{"estraverse":"^5.2.0"},"devDependencies":{"babel-cli":"^6.24.1","babel-eslint":"^7.2.3","babel-preset-es2015":"^6.24.1","babel-register":"^6.24.1","chai":"^4.0.2","esprima":"^4.0.0","gulp":"^3.9.0","gulp-bump":"^2.7.0","gulp-eslint":"^4.0.0","gulp-filter":"^5.0.0","gulp-git":"^2.4.1","gulp-mocha":"^4.3.1","gulp-tag-version":"^1.2.1","jsdoc":"^3.3.0-alpha10","minimist":"^1.1.0"},"license":"BSD-2-Clause","scripts":{"test":"gulp travis","unit-test":"gulp test","lint":"gulp lint"},"babel":{"presets":["es2015"]}}');
 
 /***/ }),
-/* 435 */
+/* 507 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
@@ -23140,6 +26113,13 @@ module.exports = JSON.parse('{"name":"esrecurse","description":"ECMAScript AST r
 
 Object.defineProperty(exports, "__esModule", ({ value: true }));
 
+/**
+ * @typedef {import('./index.js').VisitorKeys} VisitorKeys
+ */
+
+/**
+ * @type {VisitorKeys}
+ */
 const KEYS = {
     AssignmentExpression: [
         "left",
@@ -23322,6 +26302,8 @@ const KEYS = {
         "children",
         "closingFragment"
     ],
+    JSXClosingFragment: [],
+    JSXOpeningFragment: [],
     Literal: [],
     LabeledStatement: [
         "label",
@@ -23447,6 +26429,10 @@ Object.freeze(KEYS);
  * See LICENSE file in root directory for full license.
  */
 
+/**
+ * @typedef {{ readonly [type: string]: ReadonlyArray<string> }} VisitorKeys
+ */
+
 // List to ignore keys.
 const KEY_BLACKLIST = new Set([
     "parent",
@@ -23465,8 +26451,8 @@ function filterKey(key) {
 
 /**
  * Get visitor keys of a given node.
- * @param {Object} node The AST node to get keys.
- * @returns {string[]} Visitor keys of the node.
+ * @param {object} node The AST node to get keys.
+ * @returns {readonly string[]} Visitor keys of the node.
  */
 function getKeys(node) {
     return Object.keys(node).filter(filterKey);
@@ -23476,11 +26462,13 @@ function getKeys(node) {
 // eslint-disable-next-line valid-jsdoc
 /**
  * Make the union set with `KEYS` and given keys.
- * @param {Object} additionalKeys The additional keys.
- * @returns {{ [type: string]: string[] | undefined }} The union set.
+ * @param {VisitorKeys} additionalKeys The additional keys.
+ * @returns {VisitorKeys} The union set.
  */
 function unionWith(additionalKeys) {
-    const retv = Object.assign({}, KEYS);
+    const retv = /** @type {{
+        [type: string]: ReadonlyArray<string>
+    }} */ (Object.assign({}, KEYS));
 
     for (const type of Object.keys(additionalKeys)) {
         if (Object.prototype.hasOwnProperty.call(retv, type)) {
@@ -23506,7 +26494,7 @@ exports.unionWith = unionWith;
 
 
 /***/ }),
-/* 436 */
+/* 508 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -23514,9 +26502,9 @@ exports.unionWith = unionWith;
 
 Object.defineProperty(exports, "__esModule", ({ value: true }));
 
-var acorn = __webpack_require__(437);
-var jsx = __webpack_require__(440);
-var visitorKeys = __webpack_require__(435);
+var acorn = __webpack_require__(509);
+var jsx = __webpack_require__(510);
+var visitorKeys = __webpack_require__(507);
 
 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
 
@@ -23542,101 +26530,6 @@ var acorn__namespace = /*#__PURE__*/_interopNamespace(acorn);
 var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx);
 var visitorKeys__namespace = /*#__PURE__*/_interopNamespace(visitorKeys);
 
-/**
- * @fileoverview The AST node types produced by the parser.
- * @author Nicholas C. Zakas
- */
-
-//------------------------------------------------------------------------------
-// Requirements
-//------------------------------------------------------------------------------
-
-// None!
-
-//------------------------------------------------------------------------------
-// Public
-//------------------------------------------------------------------------------
-
-var astNodeTypes = {
-    AssignmentExpression: "AssignmentExpression",
-    AssignmentPattern: "AssignmentPattern",
-    ArrayExpression: "ArrayExpression",
-    ArrayPattern: "ArrayPattern",
-    ArrowFunctionExpression: "ArrowFunctionExpression",
-    AwaitExpression: "AwaitExpression",
-    BlockStatement: "BlockStatement",
-    BinaryExpression: "BinaryExpression",
-    BreakStatement: "BreakStatement",
-    CallExpression: "CallExpression",
-    CatchClause: "CatchClause",
-    ClassBody: "ClassBody",
-    ClassDeclaration: "ClassDeclaration",
-    ClassExpression: "ClassExpression",
-    ConditionalExpression: "ConditionalExpression",
-    ContinueStatement: "ContinueStatement",
-    DoWhileStatement: "DoWhileStatement",
-    DebuggerStatement: "DebuggerStatement",
-    EmptyStatement: "EmptyStatement",
-    ExpressionStatement: "ExpressionStatement",
-    ForStatement: "ForStatement",
-    ForInStatement: "ForInStatement",
-    ForOfStatement: "ForOfStatement",
-    FunctionDeclaration: "FunctionDeclaration",
-    FunctionExpression: "FunctionExpression",
-    Identifier: "Identifier",
-    IfStatement: "IfStatement",
-    Literal: "Literal",
-    LabeledStatement: "LabeledStatement",
-    LogicalExpression: "LogicalExpression",
-    MemberExpression: "MemberExpression",
-    MetaProperty: "MetaProperty",
-    MethodDefinition: "MethodDefinition",
-    NewExpression: "NewExpression",
-    ObjectExpression: "ObjectExpression",
-    ObjectPattern: "ObjectPattern",
-    Program: "Program",
-    Property: "Property",
-    RestElement: "RestElement",
-    ReturnStatement: "ReturnStatement",
-    SequenceExpression: "SequenceExpression",
-    SpreadElement: "SpreadElement",
-    Super: "Super",
-    SwitchCase: "SwitchCase",
-    SwitchStatement: "SwitchStatement",
-    TaggedTemplateExpression: "TaggedTemplateExpression",
-    TemplateElement: "TemplateElement",
-    TemplateLiteral: "TemplateLiteral",
-    ThisExpression: "ThisExpression",
-    ThrowStatement: "ThrowStatement",
-    TryStatement: "TryStatement",
-    UnaryExpression: "UnaryExpression",
-    UpdateExpression: "UpdateExpression",
-    VariableDeclaration: "VariableDeclaration",
-    VariableDeclarator: "VariableDeclarator",
-    WhileStatement: "WhileStatement",
-    WithStatement: "WithStatement",
-    YieldExpression: "YieldExpression",
-    JSXIdentifier: "JSXIdentifier",
-    JSXNamespacedName: "JSXNamespacedName",
-    JSXMemberExpression: "JSXMemberExpression",
-    JSXEmptyExpression: "JSXEmptyExpression",
-    JSXExpressionContainer: "JSXExpressionContainer",
-    JSXElement: "JSXElement",
-    JSXClosingElement: "JSXClosingElement",
-    JSXOpeningElement: "JSXOpeningElement",
-    JSXAttribute: "JSXAttribute",
-    JSXSpreadAttribute: "JSXSpreadAttribute",
-    JSXText: "JSXText",
-    ExportDefaultDeclaration: "ExportDefaultDeclaration",
-    ExportNamedDeclaration: "ExportNamedDeclaration",
-    ExportAllDeclaration: "ExportAllDeclaration",
-    ExportSpecifier: "ExportSpecifier",
-    ImportDeclaration: "ImportDeclaration",
-    ImportSpecifier: "ImportSpecifier",
-    ImportDefaultSpecifier: "ImportDefaultSpecifier",
-    ImportNamespaceSpecifier: "ImportNamespaceSpecifier"
-};
-
 /**
  * @fileoverview Translates tokens between Acorn format and Esprima format.
  * @author Nicholas C. Zakas
@@ -23909,14 +26802,15 @@ TokenTranslator.prototype = {
 const SUPPORTED_VERSIONS = [
     3,
     5,
-    6,
-    7,
-    8,
-    9,
-    10,
-    11,
-    12,
-    13
+    6, // 2015
+    7, // 2016
+    8, // 2017
+    9, // 2018
+    10, // 2019
+    11, // 2020
+    12, // 2021
+    13, // 2022
+    14 // 2023
 ];
 
 /**
@@ -24034,12 +26928,23 @@ const ESPRIMA_FINISH_NODE = Symbol("espree's esprimaFinishNode");
  * @param {int} end The index at which the comment ends.
  * @param {Location} startLoc The location at which the comment starts.
  * @param {Location} endLoc The location at which the comment ends.
+ * @param {string} code The source code being parsed.
  * @returns {Object} The comment object.
  * @private
  */
-function convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc) {
+function convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc, code) {
+    let type;
+
+    if (block) {
+        type = "Block";
+    } else if (code.slice(start, start + 2) === "#!") {
+        type = "Hashbang";
+    } else {
+        type = "Line";
+    }
+
     const comment = {
-        type: block ? "Block" : "Line",
+        type,
         value: text
     };
 
@@ -24084,6 +26989,25 @@ var espree = () => Parser => {
                     ? new TokenTranslator(tokTypes, code)
                     : null;
 
+            /*
+             * Data that is unique to Espree and is not represented internally
+             * in Acorn.
+             *
+             * For ES2023 hashbangs, Espree will call `onComment()` during the
+             * constructor, so we must define state before having access to
+             * `this`.
+             */
+            const state = {
+                originalSourceType: originalSourceType || options.sourceType,
+                tokens: tokenTranslator ? [] : null,
+                comments: options.comment === true ? [] : null,
+                impliedStrict: ecmaFeatures.impliedStrict === true && options.ecmaVersion >= 5,
+                ecmaVersion: options.ecmaVersion,
+                jsxAttrValueToken: false,
+                lastToken: null,
+                templateElements: []
+            };
+
             // Initialize acorn parser.
             super({
 
@@ -24102,38 +27026,28 @@ var espree = () => Parser => {
                     if (tokenTranslator) {
 
                         // Use `tokens`, `ecmaVersion`, and `jsxAttrValueToken` in the state.
-                        tokenTranslator.onToken(token, this[STATE]);
+                        tokenTranslator.onToken(token, state);
                     }
                     if (token.type !== tokTypes.eof) {
-                        this[STATE].lastToken = token;
+                        state.lastToken = token;
                     }
                 },
 
                 // Collect comments
                 onComment: (block, text, start, end, startLoc, endLoc) => {
-                    if (this[STATE].comments) {
-                        const comment = convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc);
+                    if (state.comments) {
+                        const comment = convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc, code);
 
-                        this[STATE].comments.push(comment);
+                        state.comments.push(comment);
                     }
                 }
             }, code);
 
             /*
-             * Data that is unique to Espree and is not represented internally in
-             * Acorn. We put all of this data into a symbol property as a way to
-             * avoid potential naming conflicts with future versions of Acorn.
+             * We put all of this data into a symbol property as a way to avoid
+             * potential naming conflicts with future versions of Acorn.
              */
-            this[STATE] = {
-                originalSourceType: originalSourceType || options.sourceType,
-                tokens: tokenTranslator ? [] : null,
-                comments: options.comment === true ? [] : null,
-                impliedStrict: ecmaFeatures.impliedStrict === true && this.options.ecmaVersion >= 5,
-                ecmaVersion: this.options.ecmaVersion,
-                jsxAttrValueToken: false,
-                lastToken: null,
-                templateElements: []
-            };
+            this[STATE] = state;
         }
 
         tokenize() {
@@ -24346,7 +27260,7 @@ var espree = () => Parser => {
     };
 };
 
-const version$1 = "9.2.0";
+const version$1 = "9.4.0";
 
 /**
  * @fileoverview Main Espree file that converts Acorn into Esprima output.
@@ -24482,8 +27396,12 @@ function parse(code, options) {
 
 const version = version$1;
 
+/* istanbul ignore next */
+const VisitorKeys = (function() {
+    return visitorKeys__namespace.KEYS;
+}());
 
-// Deep copy.
+// Derive node types from VisitorKeys
 /* istanbul ignore next */
 const Syntax = (function() {
     let name,
@@ -24493,9 +27411,9 @@ const Syntax = (function() {
         types = Object.create(null);
     }
 
-    for (name in astNodeTypes) {
-        if (Object.hasOwnProperty.call(astNodeTypes, name)) {
-            types[name] = astNodeTypes[name];
+    for (name in VisitorKeys) {
+        if (Object.hasOwnProperty.call(VisitorKeys, name)) {
+            types[name] = name;
         }
     }
 
@@ -24506,11 +27424,6 @@ const Syntax = (function() {
     return types;
 }());
 
-/* istanbul ignore next */
-const VisitorKeys = (function() {
-    return visitorKeys__namespace.KEYS;
-}());
-
 const latestEcmaVersion = getLatestEcmaVersion();
 
 const supportedEcmaVersions = getSupportedEcmaVersions();
@@ -24526,14 +27439,22 @@ exports.version = version;
 
 
 /***/ }),
-/* 437 */
-/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+/* 509 */
+/***/ (function(__unused_webpack_module, exports) {
 
-/* provided dependency */ var console = __webpack_require__(438);
 (function (global, factory) {
    true ? factory(exports) : 0;
 })(this, function (exports) {
-  'use strict'; // Reserved word lists for various dialects of the language
+  'use strict'; // This file was generated. Do not modify manually!
+
+  var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; // This file was generated. Do not modify manually!
+
+  var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; // This file was generated. Do not modify manually!
+
+  var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; // This file was generated. Do not modify manually!
+
+  var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; // These are a run-length and offset encoded representation of the
+  // Reserved word lists for various dialects of the language
 
   var reservedWords = {
     3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
@@ -24550,26 +27471,9 @@ exports.version = version;
     6: ecma5AndLessKeywords + " const class extends export import super"
   };
   var keywordRelationalOperator = /^in(stanceof)?$/; // ## Character categories
-  // Big ugly regular expressions that match characters in the
-  // whitespace, identifier, and identifier-start categories. These
-  // are only applied when a character is found to actually have a
-  // code point above 128.
-  // Generated by `bin/generate-identifier-regex.js`.
-
-  var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
-  var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
-  var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
-  var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-  nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; // These are a run-length and offset encoded representation of the
-  // >0xffff code points that are a valid part of identifiers. The
-  // offset starts at 0x10000, and each pair of numbers represents an
-  // offset to the next range, and then a size of the range. They were
-  // generated by bin/generate-identifier-regex.js
-  // eslint-disable-next-line comma-spacing
 
-  var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; // eslint-disable-next-line comma-spacing
-
-  var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; // This has a complexity linear to the value of the code. The
+  var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
+  var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); // This has a complexity linear to the value of the code. The
   // assumption is that looking up astral identifier characters is
   // rare.
 
@@ -24876,15 +27780,29 @@ exports.version = version;
     return code === 10 || code === 13 || code === 0x2028 || code === 0x2029;
   }
 
+  function nextLineBreak(code, from, end) {
+    if (end === void 0) end = code.length;
+
+    for (var i = from; i < end; i++) {
+      var next = code.charCodeAt(i);
+
+      if (isNewLine(next)) {
+        return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1;
+      }
+    }
+
+    return -1;
+  }
+
   var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
   var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
   var ref = Object.prototype;
   var hasOwnProperty = ref.hasOwnProperty;
-  var toString = ref.toString; // Checks if an object has a property.
+  var toString = ref.toString;
 
-  function has(obj, propName) {
+  var hasOwn = Object.hasOwn || function (obj, propName) {
     return hasOwnProperty.call(obj, propName);
-  }
+  };
 
   var isArray = Array.isArray || function (obj) {
     return toString.call(obj) === "[object Array]";
@@ -24892,9 +27810,20 @@ exports.version = version;
 
   function wordsRegexp(words) {
     return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$");
-  } // These are used when `options.locations` is on, for the
-  // `startLoc` and `endLoc` properties.
+  }
 
+  function codePointToString(code) {
+    // UTF-16 Decoding
+    if (code <= 0xFFFF) {
+      return String.fromCharCode(code);
+    }
+
+    code -= 0x10000;
+    return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00);
+  }
+
+  var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; // These are used when `options.locations` is on, for the
+  // `startLoc` and `endLoc` properties.
 
   var Position = function Position(line, col) {
     this.line = line;
@@ -24921,15 +27850,14 @@ exports.version = version;
 
   function getLineInfo(input, offset) {
     for (var line = 1, cur = 0;;) {
-      lineBreakG.lastIndex = cur;
-      var match = lineBreakG.exec(input);
+      var nextBreak = nextLineBreak(input, cur, offset);
 
-      if (match && match.index < offset) {
-        ++line;
-        cur = match.index + match[0].length;
-      } else {
+      if (nextBreak < 0) {
         return new Position(line, offset - cur);
       }
+
+      ++line;
+      cur = nextBreak;
     }
   } // A second argument must be given to configure the parser process.
   // These options are recognized (only `ecmaVersion` is required):
@@ -24938,10 +27866,10 @@ exports.version = version;
   var defaultOptions = {
     // `ecmaVersion` indicates the ECMAScript version to parse. Must be
     // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
-    // (2019), 11 (2020), 12 (2021), 13 (2022), or `"latest"` (the
-    // latest version the library supports). This influences support
-    // for strict mode, the set of reserved words, and support for
-    // new syntax features.
+    // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
+    // (the latest version the library supports). This influences
+    // support for strict mode, the set of reserved words, and support
+    // for new syntax features.
     ecmaVersion: null,
     // `sourceType` indicates the mode the code should be parsed in.
     // Can be either `"script"` or `"module"`. This influences global
@@ -24975,8 +27903,9 @@ exports.version = version;
     // When enabled, super identifiers are not constrained to
     // appearing in methods and do not raise an error when they appear elsewhere.
     allowSuperOutsideMethod: null,
-    // When enabled, hashbang directive in the beginning of file
-    // is allowed and treated as a line comment.
+    // When enabled, hashbang directive in the beginning of file is
+    // allowed and treated as a line comment. Enabled by default when
+    // `ecmaVersion` >= 2023.
     allowHashBang: false,
     // When `locations` is on, `loc` properties holding objects with
     // `start` and `end` properties in `{line, column}` form (with
@@ -25032,7 +27961,7 @@ exports.version = version;
     var options = {};
 
     for (var opt in defaultOptions) {
-      options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt];
+      options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt];
     }
 
     if (options.ecmaVersion === "latest") {
@@ -25052,6 +27981,10 @@ exports.version = version;
       options.allowReserved = options.ecmaVersion < 5;
     }
 
+    if (opts.allowHashBang == null) {
+      options.allowHashBang = options.ecmaVersion >= 14;
+    }
+
     if (isArray(options.onToken)) {
       var tokens = options.onToken;
 
@@ -25322,6 +28255,10 @@ exports.version = version;
   var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
 
   pp$9.strictDirective = function (start) {
+    if (this.options.ecmaVersion < 5) {
+      return false;
+    }
+
     for (;;) {
       // Try to find string literal.
       skipWhiteSpace.lastIndex = start;
@@ -25432,9 +28369,9 @@ exports.version = version;
     this.raise(pos != null ? pos : this.start, "Unexpected token");
   };
 
-  function DestructuringErrors() {
+  var DestructuringErrors = function DestructuringErrors() {
     this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1;
-  }
+  };
 
   pp$9.checkPatternErrors = function (refDestructuringErrors, isAssign) {
     if (!refDestructuringErrors) {
@@ -25448,7 +28385,7 @@ exports.version = version;
     var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;
 
     if (parens > -1) {
-      this.raiseRecoverable(parens, "Parenthesized pattern");
+      this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern");
     }
   };
 
@@ -26506,7 +29443,7 @@ exports.version = version;
     for (var i = 0; i < used.length; ++i) {
       var id = used[i];
 
-      if (!has(declared, id.name)) {
+      if (!hasOwn(declared, id.name)) {
         if (parent) {
           parent.used.push(id);
         } else {
@@ -26550,8 +29487,8 @@ exports.version = version;
     if (this.eat(types$1.star)) {
       if (this.options.ecmaVersion >= 11) {
         if (this.eatContextual("as")) {
-          node.exported = this.parseIdent(true);
-          this.checkExport(exports, node.exported.name, this.lastTokStart);
+          node.exported = this.parseModuleExportName();
+          this.checkExport(exports, node.exported, this.lastTokStart);
         } else {
           node.exported = null;
         }
@@ -26600,7 +29537,7 @@ exports.version = version;
       if (node.declaration.type === "VariableDeclaration") {
         this.checkVariableExport(exports, node.declaration.declarations);
       } else {
-        this.checkExport(exports, node.declaration.id.name, node.declaration.id.start);
+        this.checkExport(exports, node.declaration.id, node.declaration.id.start);
       }
 
       node.specifiers = [];
@@ -26623,6 +29560,10 @@ exports.version = version;
           this.checkUnreserved(spec.local); // check if export is defined
 
           this.checkLocalExport(spec.local);
+
+          if (spec.local.type === "Literal") {
+            this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`.");
+          }
         }
 
         node.source = null;
@@ -26639,7 +29580,11 @@ exports.version = version;
       return;
     }
 
-    if (has(exports, name)) {
+    if (typeof name !== "string") {
+      name = name.type === "Identifier" ? name.name : name.value;
+    }
+
+    if (hasOwn(exports, name)) {
       this.raiseRecoverable(pos, "Duplicate export '" + name + "'");
     }
 
@@ -26650,7 +29595,7 @@ exports.version = version;
     var type = pat.type;
 
     if (type === "Identifier") {
-      this.checkExport(exports, pat.name, pat.start);
+      this.checkExport(exports, pat, pat.start);
     } else if (type === "ObjectPattern") {
       for (var i = 0, list = pat.properties; i < list.length; i += 1) {
         var prop = list[i];
@@ -26709,9 +29654,9 @@ exports.version = version;
       }
 
       var node = this.startNode();
-      node.local = this.parseIdent(true);
-      node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local;
-      this.checkExport(exports, node.exported.name, node.exported.start);
+      node.local = this.parseModuleExportName();
+      node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
+      this.checkExport(exports, node.exported, node.exported.start);
       nodes.push(this.finishNode(node, "ExportSpecifier"));
     }
 
@@ -26776,7 +29721,7 @@ exports.version = version;
       }
 
       var node$2 = this.startNode();
-      node$2.imported = this.parseIdent(true);
+      node$2.imported = this.parseModuleExportName();
 
       if (this.eatContextual("as")) {
         node$2.local = this.parseIdent();
@@ -26790,6 +29735,20 @@ exports.version = version;
     }
 
     return nodes;
+  };
+
+  pp$8.parseModuleExportName = function () {
+    if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {
+      var stringLiteral = this.parseLiteral(this.value);
+
+      if (loneSurrogate.test(stringLiteral.value)) {
+        this.raise(stringLiteral.start, "An export name cannot include a lone surrogate.");
+      }
+
+      return stringLiteral;
+    }
+
+    return this.parseIdent(true);
   }; // Set `ExpressionStatement#directive` property for directive prologues.
 
 
@@ -26800,7 +29759,7 @@ exports.version = version;
   };
 
   pp$8.isDirectiveCandidate = function (statement) {
-    return statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && ( // Reject parenthesized strings.
+    return this.options.ecmaVersion >= 5 && statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && ( // Reject parenthesized strings.
     this.input[statement.start] === "\"" || this.input[statement.start] === "'");
   };
 
@@ -27101,7 +30060,7 @@ exports.version = version;
           }
 
           if (checkClashes) {
-            if (has(checkClashes, expr.name)) {
+            if (hasOwn(checkClashes, expr.name)) {
               this.raiseRecoverable(expr.start, "Argument name clash");
             }
 
@@ -27277,7 +30236,7 @@ exports.version = version;
     } else {
       this.exprAllowed = type.beforeExpr;
     }
-  }; // Used to handle egde case when token context could not be inferred correctly in tokenize phase
+  }; // Used to handle egde cases when token context could not be inferred correctly during tokenization phase
 
 
   pp$6.overrideContext = function (tokenCtx) {
@@ -28340,17 +31299,6 @@ exports.version = version;
         }
 
         return this.finishNode(prop, "RestElement");
-      } // To disallow parenthesized identifier via `this.toAssignable()`.
-
-
-      if (this.type === types$1.parenL && refDestructuringErrors) {
-        if (refDestructuringErrors.parenthesizedAssign < 0) {
-          refDestructuringErrors.parenthesizedAssign = this.start;
-        }
-
-        if (refDestructuringErrors.parenthesizedBind < 0) {
-          refDestructuringErrors.parenthesizedBind = this.start;
-        }
       } // Parse argument.
 
 
@@ -28991,24 +31939,28 @@ exports.version = version;
   var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic";
   var ecma11BinaryProperties = ecma10BinaryProperties;
   var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict";
+  var ecma13BinaryProperties = ecma12BinaryProperties;
   var unicodeBinaryProperties = {
     9: ecma9BinaryProperties,
     10: ecma10BinaryProperties,
     11: ecma11BinaryProperties,
-    12: ecma12BinaryProperties
+    12: ecma12BinaryProperties,
+    13: ecma13BinaryProperties
   }; // #table-unicode-general-category-values
 
   var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; // #table-unicode-script-values
 
-  var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
+  var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
   var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd";
   var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho";
   var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi";
+  var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith";
   var unicodeScriptValues = {
     9: ecma9ScriptValues,
     10: ecma10ScriptValues,
     11: ecma11ScriptValues,
-    12: ecma12ScriptValues
+    12: ecma12ScriptValues,
+    13: ecma13ScriptValues
   };
   var data = {};
 
@@ -29026,16 +31978,17 @@ exports.version = version;
     d.nonBinary.scx = d.nonBinary.Script_Extensions;
   }
 
-  buildUnicodeData(9);
-  buildUnicodeData(10);
-  buildUnicodeData(11);
-  buildUnicodeData(12);
+  for (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) {
+    var ecmaVersion = list[i];
+    buildUnicodeData(ecmaVersion);
+  }
+
   var pp$1 = Parser.prototype;
 
   var RegExpValidationState = function RegExpValidationState(parser) {
     this.parser = parser;
     this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "");
-    this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];
+    this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion];
     this.source = "";
     this.flags = "";
     this.start = 0;
@@ -29129,15 +32082,6 @@ exports.version = version;
 
     return false;
   };
-
-  function codePointToString$1(ch) {
-    if (ch <= 0xFFFF) {
-      return String.fromCharCode(ch);
-    }
-
-    ch -= 0x10000;
-    return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00);
-  }
   /**
    * Validate the flags part of a given RegExpLiteral.
    *
@@ -29624,10 +32568,10 @@ exports.version = version;
     state.lastStringValue = "";
 
     if (this.regexp_eatRegExpIdentifierStart(state)) {
-      state.lastStringValue += codePointToString$1(state.lastIntValue);
+      state.lastStringValue += codePointToString(state.lastIntValue);
 
       while (this.regexp_eatRegExpIdentifierPart(state)) {
-        state.lastStringValue += codePointToString$1(state.lastIntValue);
+        state.lastStringValue += codePointToString(state.lastIntValue);
       }
 
       return true;
@@ -30079,7 +33023,7 @@ exports.version = version;
   };
 
   pp$1.regexp_validateUnicodePropertyNameAndValue = function (state, name, value) {
-    if (!has(state.unicodeProperties.nonBinary, name)) {
+    if (!hasOwn(state.unicodeProperties.nonBinary, name)) {
       state.raise("Invalid property name");
     }
 
@@ -30101,7 +33045,7 @@ exports.version = version;
     state.lastStringValue = "";
 
     while (isUnicodePropertyNameCharacter(ch = state.current())) {
-      state.lastStringValue += codePointToString$1(ch);
+      state.lastStringValue += codePointToString(ch);
       state.advance();
     }
 
@@ -30120,7 +33064,7 @@ exports.version = version;
     state.lastStringValue = "";
 
     while (isUnicodePropertyValueCharacter(ch = state.current())) {
-      state.lastStringValue += codePointToString$1(ch);
+      state.lastStringValue += codePointToString(ch);
       state.advance();
     }
 
@@ -30563,12 +33507,9 @@ exports.version = version;
     this.pos = end + 2;
 
     if (this.options.locations) {
-      lineBreakG.lastIndex = start;
-      var match;
-
-      while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
+      for (var nextBreak = void 0, pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {
         ++this.curLine;
-        this.lineStart = match.index + match[0].length;
+        pos = this.lineStart = nextBreak;
       }
     }
 
@@ -31289,16 +34230,6 @@ exports.version = version;
     return code;
   };
 
-  function codePointToString(code) {
-    // UTF-16 Decoding
-    if (code <= 0xFFFF) {
-      return String.fromCharCode(code);
-    }
-
-    code -= 0x10000;
-    return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00);
-  }
-
   pp.readString = function (quote) {
     var out = "",
         chunkStart = ++this.pos;
@@ -31626,7 +34557,7 @@ exports.version = version;
   }; // Acorn is a tiny, fast JavaScript parser written in JavaScript.
 
 
-  var version = "8.6.0";
+  var version = "8.8.0";
   Parser.acorn = {
     Parser: Parser,
     version: version,
@@ -31699,107 +34630,13 @@ exports.version = version;
 });
 
 /***/ }),
-/* 438 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-/*global window, global*/
-var util = __webpack_require__(439);
-
-var assert = __webpack_require__(431);
-
-function now() {
-  return new Date().getTime();
-}
-
-var slice = Array.prototype.slice;
-var console;
-var times = {};
-
-if (typeof global !== "undefined" && global.console) {
-  console = global.console;
-} else if (typeof window !== "undefined" && window.console) {
-  console = window.console;
-} else {
-  console = {};
-}
-
-var functions = [[log, "log"], [info, "info"], [warn, "warn"], [error, "error"], [time, "time"], [timeEnd, "timeEnd"], [trace, "trace"], [dir, "dir"], [consoleAssert, "assert"]];
-
-for (var i = 0; i < functions.length; i++) {
-  var tuple = functions[i];
-  var f = tuple[0];
-  var name = tuple[1];
-
-  if (!console[name]) {
-    console[name] = f;
-  }
-}
-
-module.exports = console;
-
-function log() {}
-
-function info() {
-  console.log.apply(console, arguments);
-}
-
-function warn() {
-  console.log.apply(console, arguments);
-}
-
-function error() {
-  console.warn.apply(console, arguments);
-}
-
-function time(label) {
-  times[label] = now();
-}
-
-function timeEnd(label) {
-  var time = times[label];
-
-  if (!time) {
-    throw new Error("No such label: " + label);
-  }
-
-  delete times[label];
-  var duration = now() - time;
-  console.log(label + ": " + duration + "ms");
-}
-
-function trace() {
-  var err = new Error();
-  err.name = "Trace";
-  err.message = util.format.apply(null, arguments);
-  console.error(err.stack);
-}
-
-function dir(object) {
-  console.log(util.inspect(object) + "\n");
-}
-
-function consoleAssert(expression) {
-  if (!expression) {
-    var arr = slice.call(arguments, 1);
-    assert.ok(false, util.format.apply(null, arr));
-  }
-}
-
-/***/ }),
-/* 439 */
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("util");
-
-/***/ }),
-/* 440 */
+/* 510 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-const XHTMLEntities = __webpack_require__(441);
+const XHTMLEntities = __webpack_require__(511);
 
 const hexNumber = /^[\da-fA-F]+$/;
 const decimalNumber = /^\d+$/; // The map to `acorn-jsx` tokens from `acorn` namespace objects.
@@ -31884,14 +34721,14 @@ module.exports = function (options) {
 
 Object.defineProperty(module.exports, "tokTypes", ({
   get: function get_tokTypes() {
-    return getJsxTokens(__webpack_require__(437)).tokTypes;
+    return getJsxTokens(__webpack_require__(509)).tokTypes;
   },
   configurable: true,
   enumerable: true
 }));
 
 function plugin(options, Parser) {
-  const acorn = Parser.acorn || __webpack_require__(437);
+  const acorn = Parser.acorn || __webpack_require__(509);
 
   const acornJsx = getJsxTokens(acorn);
   const tt = acorn.tokTypes;
@@ -32295,7 +35132,7 @@ function plugin(options, Parser) {
 }
 
 /***/ }),
-/* 441 */
+/* 511 */
 /***/ ((module) => {
 
 module.exports = {
@@ -32555,7 +35392,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 442 */
+/* 512 */
 /***/ ((module, exports, __webpack_require__) => {
 
 /* module decorator */ module = __webpack_require__.nmd(module);
@@ -34612,14 +37449,14 @@ function stubFalse() {
 module.exports = merge;
 
 /***/ }),
-/* 443 */
+/* 513 */
 /***/ ((module) => {
 
 "use strict";
-module.exports = JSON.parse('{"name":"eslint","version":"8.4.0","author":"Nicholas C. Zakas <nicholas+npm@nczconsulting.com>","description":"An AST-based pattern checker for JavaScript.","bin":{"eslint":"./bin/eslint.js"},"main":"./lib/api.js","exports":{"./package.json":"./package.json",".":"./lib/api.js","./use-at-your-own-risk":"./lib/unsupported-api.js"},"scripts":{"test":"node Makefile.js test","test:cli":"mocha","lint":"node Makefile.js lint","fix":"node Makefile.js lint -- fix","fuzz":"node Makefile.js fuzz","generate-release":"node Makefile.js generateRelease","generate-alpharelease":"node Makefile.js generatePrerelease -- alpha","generate-betarelease":"node Makefile.js generatePrerelease -- beta","generate-rcrelease":"node Makefile.js generatePrerelease -- rc","publish-release":"node Makefile.js publishRelease","gensite":"node Makefile.js gensite","webpack":"node Makefile.js webpack","perf":"node Makefile.js perf"},"gitHooks":{"pre-commit":"lint-staged"},"lint-staged":{"*.js":"eslint --fix","*.md":"markdownlint"},"files":["LICENSE","README.md","bin","conf","lib","messages"],"repository":"eslint/eslint","funding":"https://opencollective.com/eslint","homepage":"https://eslint.org","bugs":"https://github.com/eslint/eslint/issues/","dependencies":{"@eslint/eslintrc":"^1.0.5","@humanwhocodes/config-array":"^0.9.2","ajv":"^6.10.0","chalk":"^4.0.0","cross-spawn":"^7.0.2","debug":"^4.3.2","doctrine":"^3.0.0","enquirer":"^2.3.5","escape-string-regexp":"^4.0.0","eslint-scope":"^7.1.0","eslint-utils":"^3.0.0","eslint-visitor-keys":"^3.1.0","espree":"^9.2.0","esquery":"^1.4.0","esutils":"^2.0.2","fast-deep-equal":"^3.1.3","file-entry-cache":"^6.0.1","functional-red-black-tree":"^1.0.1","glob-parent":"^6.0.1","globals":"^13.6.0","ignore":"^4.0.6","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","is-glob":"^4.0.0","js-yaml":"^4.1.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.4.1","lodash.merge":"^4.6.2","minimatch":"^3.0.4","natural-compare":"^1.4.0","optionator":"^0.9.1","progress":"^2.0.0","regexpp":"^3.2.0","semver":"^7.2.1","strip-ansi":"^6.0.1","strip-json-comments":"^3.1.0","text-table":"^0.2.0","v8-compile-cache":"^2.0.3"},"devDependencies":{"@babel/core":"^7.4.3","@babel/preset-env":"^7.4.3","babel-loader":"^8.0.5","chai":"^4.0.1","cheerio":"^0.22.0","common-tags":"^1.8.0","core-js":"^3.1.3","dateformat":"^4.5.1","ejs":"^3.0.2","eslint":"file:.","eslint-config-eslint":"file:packages/eslint-config-eslint","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^4.0.1","eslint-plugin-internal-rules":"file:tools/internal-rules","eslint-plugin-jsdoc":"^37.0.0","eslint-plugin-node":"^11.1.0","eslint-release":"^3.2.0","eslump":"^3.0.0","esprima":"^4.0.1","fs-teardown":"^0.1.3","glob":"^7.1.6","jsdoc":"^3.5.5","karma":"^6.1.1","karma-chrome-launcher":"^3.1.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.5","karma-webpack":"^5.0.0","lint-staged":"^11.0.0","load-perf":"^0.2.0","markdownlint":"^0.24.0","markdownlint-cli":"^0.30.0","memfs":"^3.0.1","mocha":"^8.3.2","mocha-junit-reporter":"^2.0.0","node-polyfill-webpack-plugin":"^1.0.3","npm-license":"^0.3.3","nyc":"^15.0.1","proxyquire":"^2.0.1","puppeteer":"^9.1.1","recast":"^0.20.4","regenerator-runtime":"^0.13.2","shelljs":"^0.8.2","sinon":"^11.0.0","temp":"^0.9.0","webpack":"^5.23.0","webpack-cli":"^4.5.0","yorkie":"^2.0.0"},"keywords":["ast","lint","javascript","ecmascript","espree"],"license":"MIT","engines":{"node":"^12.22.0 || ^14.17.0 || >=16.0.0"}}');
+module.exports = JSON.parse('{"name":"eslint","version":"8.23.1","author":"Nicholas C. Zakas <nicholas+npm@nczconsulting.com>","description":"An AST-based pattern checker for JavaScript.","bin":{"eslint":"./bin/eslint.js"},"main":"./lib/api.js","exports":{"./package.json":"./package.json",".":"./lib/api.js","./use-at-your-own-risk":"./lib/unsupported-api.js"},"scripts":{"test":"node Makefile.js test","test:cli":"mocha","lint":"node Makefile.js lint","lint:docsjs":"node Makefile.js lintDocsJS","fix":"node Makefile.js lint -- fix","fix:docsjs":"node Makefile.js lintDocsJS -- fix","fuzz":"node Makefile.js fuzz","generate-release":"node Makefile.js generateRelease","generate-alpharelease":"node Makefile.js generatePrerelease -- alpha","generate-betarelease":"node Makefile.js generatePrerelease -- beta","generate-rcrelease":"node Makefile.js generatePrerelease -- rc","publish-release":"node Makefile.js publishRelease","gensite":"node Makefile.js gensite","webpack":"node Makefile.js webpack","perf":"node Makefile.js perf","docs:update-links":"node tools/fetch-docs-links.js"},"gitHooks":{"pre-commit":"lint-staged"},"lint-staged":{"*.js":"eslint --fix","*.md":"markdownlint --fix","docs/src/rules/*.md":["node tools/fetch-docs-links.js","git add docs/src/_data/further_reading_links.json"],"docs/**/*.svg":"npx svgo -r --multipass"},"files":["LICENSE","README.md","bin","conf","lib","messages"],"repository":"eslint/eslint","funding":"https://opencollective.com/eslint","homepage":"https://eslint.org","bugs":"https://github.com/eslint/eslint/issues/","dependencies":{"@eslint/eslintrc":"^1.3.2","@humanwhocodes/config-array":"^0.10.4","@humanwhocodes/gitignore-to-minimatch":"^1.0.2","@humanwhocodes/module-importer":"^1.0.1","ajv":"^6.10.0","chalk":"^4.0.0","cross-spawn":"^7.0.2","debug":"^4.3.2","doctrine":"^3.0.0","escape-string-regexp":"^4.0.0","eslint-scope":"^7.1.1","eslint-utils":"^3.0.0","eslint-visitor-keys":"^3.3.0","espree":"^9.4.0","esquery":"^1.4.0","esutils":"^2.0.2","fast-deep-equal":"^3.1.3","file-entry-cache":"^6.0.1","find-up":"^5.0.0","glob-parent":"^6.0.1","globals":"^13.15.0","globby":"^11.1.0","grapheme-splitter":"^1.0.4","ignore":"^5.2.0","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","is-glob":"^4.0.0","js-sdsl":"^4.1.4","js-yaml":"^4.1.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.4.1","lodash.merge":"^4.6.2","minimatch":"^3.1.2","natural-compare":"^1.4.0","optionator":"^0.9.1","regexpp":"^3.2.0","strip-ansi":"^6.0.1","strip-json-comments":"^3.1.0","text-table":"^0.2.0"},"devDependencies":{"@babel/core":"^7.4.3","@babel/preset-env":"^7.4.3","babel-loader":"^8.0.5","c8":"^7.12.0","chai":"^4.0.1","cheerio":"^0.22.0","common-tags":"^1.8.0","core-js":"^3.1.3","ejs":"^3.0.2","eslint":"file:.","eslint-config-eslint":"file:packages/eslint-config-eslint","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^4.4.0","eslint-plugin-internal-rules":"file:tools/internal-rules","eslint-plugin-jsdoc":"^38.1.6","eslint-plugin-n":"^15.2.4","eslint-plugin-unicorn":"^42.0.0","eslint-release":"^3.2.0","eslump":"^3.0.0","esprima":"^4.0.1","fast-glob":"^3.2.11","fs-teardown":"^0.1.3","glob":"^7.1.6","got":"^11.8.3","gray-matter":"^4.0.3","jsdoc":"^3.5.5","karma":"^6.1.1","karma-chrome-launcher":"^3.1.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.5","karma-webpack":"^5.0.0","lint-staged":"^11.0.0","load-perf":"^0.2.0","markdownlint":"^0.25.1","markdownlint-cli":"^0.31.1","marked":"^4.0.8","memfs":"^3.0.1","metascraper":"^5.25.7","metascraper-description":"^5.25.7","metascraper-image":"^5.29.3","metascraper-logo":"^5.25.7","metascraper-logo-favicon":"^5.25.7","metascraper-title":"^5.25.7","mocha":"^8.3.2","mocha-junit-reporter":"^2.0.0","node-polyfill-webpack-plugin":"^1.0.3","npm-license":"^0.3.3","pirates":"^4.0.5","progress":"^2.0.3","proxyquire":"^2.0.1","puppeteer":"^13.7.0","recast":"^0.20.4","regenerator-runtime":"^0.13.2","semver":"^7.3.5","shelljs":"^0.8.2","sinon":"^11.0.0","temp":"^0.9.0","webpack":"^5.23.0","webpack-cli":"^4.5.0","yorkie":"^2.0.0"},"keywords":["ast","lint","javascript","ecmascript","espree"],"license":"MIT","engines":{"node":"^12.22.0 || ^14.17.0 || >=16.0.0"}}');
 
 /***/ }),
-/* 444 */
+/* 514 */
 /***/ ((module) => {
 
 "use strict";
@@ -34654,19 +37491,18 @@ module.exports = {
 };
 
 /***/ }),
-/* 445 */
+/* 515 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
 
 
 Object.defineProperty(exports, "__esModule", ({ value: true }));
 
-var util = __webpack_require__(439);
-var path = __webpack_require__(429);
-var Ajv = __webpack_require__(446);
-var globals = __webpack_require__(492);
+var util = __webpack_require__(516);
+var path = __webpack_require__(501);
+var Ajv = __webpack_require__(517);
+var globals = __webpack_require__(563);
 
 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
 
@@ -35194,12 +38030,30 @@ var environments = new Map(Object.entries({
             ecmaVersion: 6
         }
     },
+    es2016: {
+        globals: newGlobals2015,
+        parserOptions: {
+            ecmaVersion: 7
+        }
+    },
     es2017: {
         globals: { ...newGlobals2015, ...newGlobals2017 },
         parserOptions: {
             ecmaVersion: 8
         }
     },
+    es2018: {
+        globals: { ...newGlobals2015, ...newGlobals2017 },
+        parserOptions: {
+            ecmaVersion: 9
+        }
+    },
+    es2019: {
+        globals: { ...newGlobals2015, ...newGlobals2017 },
+        parserOptions: {
+            ecmaVersion: 10
+        }
+    },
     es2020: {
         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },
         parserOptions: {
@@ -35212,6 +38066,12 @@ var environments = new Map(Object.entries({
             ecmaVersion: 12
         }
     },
+    es2022: {
+        globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
+        parserOptions: {
+            ecmaVersion: 13
+        }
+    },
 
     // Platforms
     browser: {
@@ -35730,22 +38590,28 @@ exports.Legacy = Legacy;
 
 
 /***/ }),
-/* 446 */
+/* 516 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("util");
+
+/***/ }),
+/* 517 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var console = __webpack_require__(438);
 
 
-var compileSchema = __webpack_require__(447),
-    resolve = __webpack_require__(448),
-    Cache = __webpack_require__(458),
-    SchemaObject = __webpack_require__(453),
-    stableStringify = __webpack_require__(456),
-    formats = __webpack_require__(459),
-    rules = __webpack_require__(460),
-    $dataMetaSchema = __webpack_require__(485),
-    util = __webpack_require__(451);
+var compileSchema = __webpack_require__(518),
+    resolve = __webpack_require__(519),
+    Cache = __webpack_require__(529),
+    SchemaObject = __webpack_require__(524),
+    stableStringify = __webpack_require__(527),
+    formats = __webpack_require__(530),
+    rules = __webpack_require__(531),
+    $dataMetaSchema = __webpack_require__(556),
+    util = __webpack_require__(522);
 
 module.exports = Ajv;
 Ajv.prototype.validate = validate;
@@ -35759,16 +38625,16 @@ Ajv.prototype.addFormat = addFormat;
 Ajv.prototype.errorsText = errorsText;
 Ajv.prototype._addSchema = _addSchema;
 Ajv.prototype._compile = _compile;
-Ajv.prototype.compileAsync = __webpack_require__(486);
+Ajv.prototype.compileAsync = __webpack_require__(557);
 
-var customKeyword = __webpack_require__(487);
+var customKeyword = __webpack_require__(558);
 
 Ajv.prototype.addKeyword = customKeyword.add;
 Ajv.prototype.getKeyword = customKeyword.get;
 Ajv.prototype.removeKeyword = customKeyword.remove;
 Ajv.prototype.validateKeyword = customKeyword.validate;
 
-var errorClasses = __webpack_require__(455);
+var errorClasses = __webpack_require__(526);
 
 Ajv.ValidationError = errorClasses.Validation;
 Ajv.MissingRefError = errorClasses.MissingRef;
@@ -36201,13 +39067,13 @@ function addDefaultMetaSchema(self) {
   var $dataSchema;
 
   if (self._opts.$data) {
-    $dataSchema = __webpack_require__(491);
+    $dataSchema = __webpack_require__(562);
     self.addMetaSchema($dataSchema, $dataSchema.$id, true);
   }
 
   if (self._opts.meta === false) return;
 
-  var metaSchema = __webpack_require__(490);
+  var metaSchema = __webpack_require__(561);
 
   if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);
   self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);
@@ -36265,18 +39131,18 @@ function setLogger(self) {
 function noop() {}
 
 /***/ }),
-/* 447 */
+/* 518 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var resolve = __webpack_require__(448),
-    util = __webpack_require__(451),
-    errorClasses = __webpack_require__(455),
-    stableStringify = __webpack_require__(456);
+var resolve = __webpack_require__(519),
+    util = __webpack_require__(522),
+    errorClasses = __webpack_require__(526),
+    stableStringify = __webpack_require__(527);
 
-var validateGenerator = __webpack_require__(457);
+var validateGenerator = __webpack_require__(528);
 /**
  * Functions below are used inside compiled validations function
  */
@@ -36284,7 +39150,7 @@ var validateGenerator = __webpack_require__(457);
 
 var ucs2length = util.ucs2length;
 
-var equal = __webpack_require__(450); // this error is thrown by async schemas to return validation errors via exception
+var equal = __webpack_require__(521); // this error is thrown by async schemas to return validation errors via exception
 
 
 var ValidationError = errorClasses.Validation;
@@ -36646,17 +39512,17 @@ function vars(arr, statement) {
 }
 
 /***/ }),
-/* 448 */
+/* 519 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var URI = __webpack_require__(449),
-    equal = __webpack_require__(450),
-    util = __webpack_require__(451),
-    SchemaObject = __webpack_require__(453),
-    traverse = __webpack_require__(454);
+var URI = __webpack_require__(520),
+    equal = __webpack_require__(521),
+    util = __webpack_require__(522),
+    SchemaObject = __webpack_require__(524),
+    traverse = __webpack_require__(525);
 
 module.exports = resolve;
 resolve.normalizeId = normalizeId;
@@ -36934,7 +39800,7 @@ function resolveIds(schema) {
 }
 
 /***/ }),
-/* 449 */
+/* 520 */
 /***/ (function(__unused_webpack_module, exports) {
 
 /** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
@@ -38510,7 +41376,7 @@ function resolveIds(schema) {
 });
 
 /***/ }),
-/* 450 */
+/* 521 */
 /***/ ((module) => {
 
 "use strict";
@@ -38554,7 +41420,7 @@ module.exports = function equal(a, b) {
 };
 
 /***/ }),
-/* 451 */
+/* 522 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -38568,8 +41434,8 @@ module.exports = {
   toHash: toHash,
   getProperty: getProperty,
   escapeQuotes: escapeQuotes,
-  equal: __webpack_require__(450),
-  ucs2length: __webpack_require__(452),
+  equal: __webpack_require__(521),
+  ucs2length: __webpack_require__(523),
   varOccurences: varOccurences,
   varReplace: varReplace,
   schemaHasRules: schemaHasRules,
@@ -38793,7 +41659,7 @@ function unescapeJsonPointer(str) {
 }
 
 /***/ }),
-/* 452 */
+/* 523 */
 /***/ ((module) => {
 
 "use strict";
@@ -38821,13 +41687,13 @@ module.exports = function ucs2length(str) {
 };
 
 /***/ }),
-/* 453 */
+/* 524 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var util = __webpack_require__(451);
+var util = __webpack_require__(522);
 
 module.exports = SchemaObject;
 
@@ -38836,7 +41702,7 @@ function SchemaObject(obj) {
 }
 
 /***/ }),
-/* 454 */
+/* 525 */
 /***/ ((module) => {
 
 "use strict";
@@ -38927,13 +41793,13 @@ function escapeJsonPtr(str) {
 }
 
 /***/ }),
-/* 455 */
+/* 526 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var resolve = __webpack_require__(448);
+var resolve = __webpack_require__(519);
 
 module.exports = {
   Validation: errorSubclass(ValidationError),
@@ -38963,7 +41829,7 @@ function errorSubclass(Subclass) {
 }
 
 /***/ }),
-/* 456 */
+/* 527 */
 /***/ ((module) => {
 
 "use strict";
@@ -39039,7 +41905,7 @@ module.exports = function (data, opts) {
 };
 
 /***/ }),
-/* 457 */
+/* 528 */
 /***/ ((module) => {
 
 "use strict";
@@ -39646,7 +42512,7 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 458 */
+/* 529 */
 /***/ ((module) => {
 
 "use strict";
@@ -39673,13 +42539,13 @@ Cache.prototype.clear = function Cache_clear() {
 };
 
 /***/ }),
-/* 459 */
+/* 530 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var util = __webpack_require__(451);
+var util = __webpack_require__(522);
 
 var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
 var DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
@@ -39808,14 +42674,14 @@ function regex(str) {
 }
 
 /***/ }),
-/* 460 */
+/* 531 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var ruleModules = __webpack_require__(461),
-    toHash = (__webpack_require__(451).toHash);
+var ruleModules = __webpack_require__(532),
+    toHash = (__webpack_require__(522).toHash);
 
 module.exports = function rules() {
   var RULES = [{
@@ -39878,45 +42744,45 @@ module.exports = function rules() {
 };
 
 /***/ }),
-/* 461 */
+/* 532 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
  //all requires must be explicit because browserify won't work with dynamic requires
 
 module.exports = {
-  '$ref': __webpack_require__(462),
-  allOf: __webpack_require__(463),
-  anyOf: __webpack_require__(464),
-  '$comment': __webpack_require__(465),
-  const: __webpack_require__(466),
-  contains: __webpack_require__(467),
-  dependencies: __webpack_require__(468),
-  'enum': __webpack_require__(469),
-  format: __webpack_require__(470),
-  'if': __webpack_require__(471),
-  items: __webpack_require__(472),
-  maximum: __webpack_require__(473),
-  minimum: __webpack_require__(473),
-  maxItems: __webpack_require__(474),
-  minItems: __webpack_require__(474),
-  maxLength: __webpack_require__(475),
-  minLength: __webpack_require__(475),
-  maxProperties: __webpack_require__(476),
-  minProperties: __webpack_require__(476),
-  multipleOf: __webpack_require__(477),
-  not: __webpack_require__(478),
-  oneOf: __webpack_require__(479),
-  pattern: __webpack_require__(480),
-  properties: __webpack_require__(481),
-  propertyNames: __webpack_require__(482),
-  required: __webpack_require__(483),
-  uniqueItems: __webpack_require__(484),
-  validate: __webpack_require__(457)
+  '$ref': __webpack_require__(533),
+  allOf: __webpack_require__(534),
+  anyOf: __webpack_require__(535),
+  '$comment': __webpack_require__(536),
+  const: __webpack_require__(537),
+  contains: __webpack_require__(538),
+  dependencies: __webpack_require__(539),
+  'enum': __webpack_require__(540),
+  format: __webpack_require__(541),
+  'if': __webpack_require__(542),
+  items: __webpack_require__(543),
+  maximum: __webpack_require__(544),
+  minimum: __webpack_require__(544),
+  maxItems: __webpack_require__(545),
+  minItems: __webpack_require__(545),
+  maxLength: __webpack_require__(546),
+  minLength: __webpack_require__(546),
+  maxProperties: __webpack_require__(547),
+  minProperties: __webpack_require__(547),
+  multipleOf: __webpack_require__(548),
+  not: __webpack_require__(549),
+  oneOf: __webpack_require__(550),
+  pattern: __webpack_require__(551),
+  properties: __webpack_require__(552),
+  propertyNames: __webpack_require__(553),
+  required: __webpack_require__(554),
+  uniqueItems: __webpack_require__(555),
+  validate: __webpack_require__(528)
 };
 
 /***/ }),
-/* 462 */
+/* 533 */
 /***/ ((module) => {
 
 "use strict";
@@ -40075,7 +42941,7 @@ module.exports = function generate_ref(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 463 */
+/* 534 */
 /***/ ((module) => {
 
 "use strict";
@@ -40131,7 +42997,7 @@ module.exports = function generate_allOf(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 464 */
+/* 535 */
 /***/ ((module) => {
 
 "use strict";
@@ -40226,7 +43092,7 @@ module.exports = function generate_anyOf(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 465 */
+/* 536 */
 /***/ ((module) => {
 
 "use strict";
@@ -40249,7 +43115,7 @@ module.exports = function generate_comment(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 466 */
+/* 537 */
 /***/ ((module) => {
 
 "use strict";
@@ -40325,7 +43191,7 @@ module.exports = function generate_const(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 467 */
+/* 538 */
 /***/ ((module) => {
 
 "use strict";
@@ -40428,7 +43294,7 @@ module.exports = function generate_contains(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 468 */
+/* 539 */
 /***/ ((module) => {
 
 "use strict";
@@ -40653,7 +43519,7 @@ module.exports = function generate_dependencies(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 469 */
+/* 540 */
 /***/ ((module) => {
 
 "use strict";
@@ -40744,7 +43610,7 @@ module.exports = function generate_enum(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 470 */
+/* 541 */
 /***/ ((module) => {
 
 "use strict";
@@ -40945,7 +43811,7 @@ module.exports = function generate_format(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 471 */
+/* 542 */
 /***/ ((module) => {
 
 "use strict";
@@ -41074,7 +43940,7 @@ module.exports = function generate_if(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 472 */
+/* 543 */
 /***/ ((module) => {
 
 "use strict";
@@ -41250,7 +44116,7 @@ module.exports = function generate_items(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 473 */
+/* 544 */
 /***/ ((module) => {
 
 "use strict";
@@ -41457,7 +44323,7 @@ module.exports = function generate__limit(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 474 */
+/* 545 */
 /***/ ((module) => {
 
 "use strict";
@@ -41565,7 +44431,7 @@ module.exports = function generate__limitItems(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 475 */
+/* 546 */
 /***/ ((module) => {
 
 "use strict";
@@ -41679,7 +44545,7 @@ module.exports = function generate__limitLength(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 476 */
+/* 547 */
 /***/ ((module) => {
 
 "use strict";
@@ -41787,7 +44653,7 @@ module.exports = function generate__limitProperties(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 477 */
+/* 548 */
 /***/ ((module) => {
 
 "use strict";
@@ -41896,7 +44762,7 @@ module.exports = function generate_multipleOf(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 478 */
+/* 549 */
 /***/ ((module) => {
 
 "use strict";
@@ -42007,7 +44873,7 @@ module.exports = function generate_not(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 479 */
+/* 550 */
 /***/ ((module) => {
 
 "use strict";
@@ -42104,7 +44970,7 @@ module.exports = function generate_oneOf(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 480 */
+/* 551 */
 /***/ ((module) => {
 
 "use strict";
@@ -42206,7 +45072,7 @@ module.exports = function generate_pattern(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 481 */
+/* 552 */
 /***/ ((module) => {
 
 "use strict";
@@ -42627,7 +45493,7 @@ module.exports = function generate_properties(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 482 */
+/* 553 */
 /***/ ((module) => {
 
 "use strict";
@@ -42732,7 +45598,7 @@ module.exports = function generate_propertyNames(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 483 */
+/* 554 */
 /***/ ((module) => {
 
 "use strict";
@@ -43098,7 +45964,7 @@ module.exports = function generate_required(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 484 */
+/* 555 */
 /***/ ((module) => {
 
 "use strict";
@@ -43212,7 +46078,7 @@ module.exports = function generate_uniqueItems(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 485 */
+/* 556 */
 /***/ ((module) => {
 
 "use strict";
@@ -43247,13 +46113,13 @@ module.exports = function (metaSchema, keywordsJsonPointers) {
 };
 
 /***/ }),
-/* 486 */
+/* 557 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var MissingRefError = (__webpack_require__(455).MissingRef);
+var MissingRefError = (__webpack_require__(526).MissingRef);
 
 module.exports = compileAsync;
 /**
@@ -43341,7 +46207,7 @@ function compileAsync(schema, meta, callback) {
 }
 
 /***/ }),
-/* 487 */
+/* 558 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -43349,9 +46215,9 @@ function compileAsync(schema, meta, callback) {
 
 var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;
 
-var customRuleCode = __webpack_require__(488);
+var customRuleCode = __webpack_require__(559);
 
-var definitionSchema = __webpack_require__(489);
+var definitionSchema = __webpack_require__(560);
 
 module.exports = {
   add: addKeyword,
@@ -43494,7 +46360,7 @@ function validateKeyword(definition, throwError) {
 }
 
 /***/ }),
-/* 488 */
+/* 559 */
 /***/ ((module) => {
 
 "use strict";
@@ -43777,13 +46643,13 @@ module.exports = function generate_custom(it, $keyword, $ruleType) {
 };
 
 /***/ }),
-/* 489 */
+/* 560 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-var metaSchema = __webpack_require__(490);
+var metaSchema = __webpack_require__(561);
 
 module.exports = {
   $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',
@@ -43841,250 +46707,37 @@ module.exports = {
 };
 
 /***/ }),
-/* 490 */
+/* 561 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}');
 
 /***/ }),
-/* 491 */
+/* 562 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}');
 
 /***/ }),
-/* 492 */
+/* 563 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
-module.exports = __webpack_require__(493);
+module.exports = __webpack_require__(564);
 
 /***/ }),
-/* 493 */
+/* 564 */
 /***/ ((module) => {
 
 "use strict";
-module.exports = JSON.parse('{"builtin":{"AggregateError":false,"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"FinalizationRegistry":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakRef":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es2015":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2017":{"Array":false,"ArrayBuffer":false,"Atomics":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2020":{"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2021":{"AggregateError":false,"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"FinalizationRegistry":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakRef":false,"WeakSet":false},"browser":{"AbortController":false,"AbortSignal":false,"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AudioScheduledSourceNode":false,"AudioWorkletGlobalScope ":false,"AudioWorkletNode":false,"AudioWorkletProcessor":false,"BarProp":false,"BaseAudioContext":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"BlobEvent":false,"blur":false,"BroadcastChannel":false,"btoa":false,"BudgetService":false,"ByteLengthQueuingStrategy":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasCaptureMediaStreamTrack":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConstantSourceNode":false,"ConvolverNode":false,"CountQueuingStrategy":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSConditionRule":false,"CSSFontFaceRule":false,"CSSGroupingRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMatrixComponent":false,"CSSMediaRule":false,"CSSNamespaceRule":false,"CSSPageRule":false,"CSSPerspective":false,"CSSRotate":false,"CSSRule":false,"CSSRuleList":false,"CSSScale":false,"CSSSkew":false,"CSSSkewX":false,"CSSSkewY":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CSSTransformValue":false,"CSSTranslate":false,"CustomElementRegistry":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"defaultstatus":false,"defaultStatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMMatrix":false,"DOMMatrixReadOnly":false,"DOMParser":false,"DOMPoint":false,"DOMPointReadOnly":false,"DOMQuad":false,"DOMRect":false,"DOMRectList":false,"DOMRectReadOnly":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"fetch":false,"File":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FontFaceSetLoadEvent":false,"FormData":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLLabelElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSlotElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTimeElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"IdleDeadline":false,"IIRFilterNode":false,"Image":false,"ImageBitmap":false,"ImageBitmapRenderingContext":false,"ImageCapture":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"isSecureContext":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":true,"Location":false,"locationbar":false,"matchMedia":false,"MediaDeviceInfo":false,"MediaDevices":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyMessageEvent":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaRecorder":false,"MediaSettingsRange":false,"MediaSource":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"MediaStreamTrackEvent":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"NavigationPreloadManager":false,"navigator":false,"Navigator":false,"NetworkInformation":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"OffscreenCanvas":true,"OffscreenCanvasRenderingContext2D":false,"onabort":true,"onafterprint":true,"onanimationend":true,"onanimationiteration":true,"onanimationstart":true,"onappinstalled":true,"onauxclick":true,"onbeforeinstallprompt":true,"onbeforeprint":true,"onbeforeunload":true,"onblur":true,"oncancel":true,"oncanplay":true,"oncanplaythrough":true,"onchange":true,"onclick":true,"onclose":true,"oncontextmenu":true,"oncuechange":true,"ondblclick":true,"ondevicemotion":true,"ondeviceorientation":true,"ondeviceorientationabsolute":true,"ondrag":true,"ondragend":true,"ondragenter":true,"ondragleave":true,"ondragover":true,"ondragstart":true,"ondrop":true,"ondurationchange":true,"onemptied":true,"onended":true,"onerror":true,"onfocus":true,"ongotpointercapture":true,"onhashchange":true,"oninput":true,"oninvalid":true,"onkeydown":true,"onkeypress":true,"onkeyup":true,"onlanguagechange":true,"onload":true,"onloadeddata":true,"onloadedmetadata":true,"onloadstart":true,"onlostpointercapture":true,"onmessage":true,"onmessageerror":true,"onmousedown":true,"onmouseenter":true,"onmouseleave":true,"onmousemove":true,"onmouseout":true,"onmouseover":true,"onmouseup":true,"onmousewheel":true,"onoffline":true,"ononline":true,"onpagehide":true,"onpageshow":true,"onpause":true,"onplay":true,"onplaying":true,"onpointercancel":true,"onpointerdown":true,"onpointerenter":true,"onpointerleave":true,"onpointermove":true,"onpointerout":true,"onpointerover":true,"onpointerup":true,"onpopstate":true,"onprogress":true,"onratechange":true,"onrejectionhandled":true,"onreset":true,"onresize":true,"onscroll":true,"onsearch":true,"onseeked":true,"onseeking":true,"onselect":true,"onstalled":true,"onstorage":true,"onsubmit":true,"onsuspend":true,"ontimeupdate":true,"ontoggle":true,"ontransitionend":true,"onunhandledrejection":true,"onunload":true,"onvolumechange":true,"onwaiting":true,"onwheel":true,"open":false,"openDatabase":false,"opener":false,"Option":false,"origin":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"OverconstrainedError":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"PannerNode":false,"parent":false,"Path2D":false,"PaymentAddress":false,"PaymentRequest":false,"PaymentRequestUpdateEvent":false,"PaymentResponse":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceLongTaskTiming":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceNavigationTiming":false,"PerformanceObserver":false,"PerformanceObserverEntryList":false,"PerformancePaintTiming":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"PhotoCapabilities":false,"Plugin":false,"PluginArray":false,"PointerEvent":false,"PopStateEvent":false,"postMessage":false,"Presentation":false,"PresentationAvailability":false,"PresentationConnection":false,"PresentationConnectionAvailableEvent":false,"PresentationConnectionCloseEvent":false,"PresentationConnectionList":false,"PresentationReceiver":false,"PresentationRequest":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"PushSubscriptionOptions":false,"queueMicrotask":false,"RadioNodeList":false,"Range":false,"ReadableStream":false,"registerProcessor":false,"RemotePlayback":false,"removeEventListener":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"ResizeObserver":false,"ResizeObserverEntry":false,"resizeTo":false,"Response":false,"RTCCertificate":false,"RTCDataChannel":false,"RTCDataChannelEvent":false,"RTCDtlsTransport":false,"RTCIceCandidate":false,"RTCIceGatherer":false,"RTCIceTransport":false,"RTCPeerConnection":false,"RTCPeerConnectionIceEvent":false,"RTCRtpContributingSource":false,"RTCRtpReceiver":false,"RTCRtpSender":false,"RTCSctpTransport":false,"RTCSessionDescription":false,"RTCStatsReport":false,"RTCTrackEvent":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedWorker":false,"SourceBuffer":false,"SourceBufferList":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"StaticRange":false,"status":false,"statusbar":false,"StereoPannerNode":false,"stop":false,"Storage":false,"StorageEvent":false,"StorageManager":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAngle":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGComponentTransferFunctionElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGElement":false,"SVGEllipseElement":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGImageElement":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPathElement":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformList":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGUseElement":false,"SVGViewElement":false,"TaskAttributionTiming":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"visualViewport":false,"VisualViewport":false,"VTTCue":false,"WaveShaperNode":false,"WebAssembly":false,"WebGL2RenderingContext":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLQuery":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLSampler":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLSync":false,"WebGLTexture":false,"WebGLTransformFeedback":false,"WebGLUniformLocation":false,"WebGLVertexArrayObject":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"WritableStream":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathExpression":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"removeEventListener":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"AbortController":false,"AbortSignal":false,"atob":false,"btoa":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"DOMException":false,"Event":false,"EventTarget":false,"exports":true,"global":false,"Intl":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"module":false,"performance":false,"process":false,"queueMicrotask":false,"require":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"structuredClone":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"nodeBuiltin":{"AbortController":false,"AbortSignal":false,"atob":false,"btoa":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"DOMException":false,"Event":false,"EventTarget":false,"global":false,"Intl":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"performance":false,"process":false,"queueMicrotask":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"structuredClone":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"commonjs":{"exports":true,"global":false,"module":false,"require":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"expectAsync":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnAllFunctions":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fdescribe":false,"fit":false,"it":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"java":false,"Java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":false,"CollectGarbage":false,"Debug":false,"Enumerator":false,"GetObject":false,"RuntimeObject":false,"ScriptEngine":false,"ScriptEngineBuildVersion":false,"ScriptEngineMajorVersion":false,"ScriptEngineMinorVersion":false,"VBArray":false,"WScript":false,"WSH":false},"jquery":{"$":false,"jQuery":false},"yui":{"YAHOO":false,"YAHOO_config":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ln":false,"ls":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"$":false,"Accounts":false,"AccountsClient":false,"AccountsCommon":false,"AccountsServer":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPRateLimiter":false,"DDPServer":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"clearInterval":false,"clearTimeout":false,"Client":false,"clients":false,"Clients":false,"close":true,"console":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"fetch":false,"FetchEvent":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":false,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onfetch":true,"oninstall":true,"onlanguagechange":true,"onmessage":true,"onmessageerror":true,"onnotificationclick":true,"onnotificationclose":true,"onoffline":true,"ononline":true,"onpush":true,"onpushsubscriptionchange":true,"onrejectionhandled":true,"onsync":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"registration":false,"removeEventListener":false,"Request":false,"Response":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"skipWaiting":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"WindowClient":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"atomtest":{"advanceClock":false,"atom":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findAll":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false,"wait":false},"protractor":{"$":false,"$$":false,"browser":false,"by":false,"By":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"AbortController":false,"AbortSignal":false,"atob":false,"btoa":false,"clearInterval":false,"clearTimeout":false,"console":false,"DOMException":false,"Event":false,"EventTarget":false,"Intl":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"performance":false,"queueMicrotask":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"cloneInto":false,"createObjectIn":false,"exportFunction":false,"GM":false,"GM_addElement":false,"GM_addStyle":false,"GM_addValueChangeListener":false,"GM_deleteValue":false,"GM_download":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getTab":false,"GM_getTabs":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_notification":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_removeValueChangeListener":false,"GM_saveTab":false,"GM_setClipboard":false,"GM_setValue":false,"GM_unregisterMenuCommand":false,"GM_xmlhttpRequest":false,"unsafeWindow":false},"devtools":{"$":false,"$_":false,"$$":false,"$0":false,"$1":false,"$2":false,"$3":false,"$4":false,"$x":false,"chrome":false,"clear":false,"copy":false,"debug":false,"dir":false,"dirxml":false,"getEventListeners":false,"inspect":false,"keys":false,"monitor":false,"monitorEvents":false,"profile":false,"profileEnd":false,"queryObjects":false,"table":false,"undebug":false,"unmonitor":false,"unmonitorEvents":false,"values":false}}');
-
-/***/ }),
-/* 494 */
-/***/ ((module) => {
-
-// shim for using process in browser
-var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it
-// don't break things.  But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals.  It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
-  throw new Error('setTimeout has not been defined');
-}
-
-function defaultClearTimeout() {
-  throw new Error('clearTimeout has not been defined');
-}
-
-(function () {
-  try {
-    if (typeof setTimeout === 'function') {
-      cachedSetTimeout = setTimeout;
-    } else {
-      cachedSetTimeout = defaultSetTimout;
-    }
-  } catch (e) {
-    cachedSetTimeout = defaultSetTimout;
-  }
-
-  try {
-    if (typeof clearTimeout === 'function') {
-      cachedClearTimeout = clearTimeout;
-    } else {
-      cachedClearTimeout = defaultClearTimeout;
-    }
-  } catch (e) {
-    cachedClearTimeout = defaultClearTimeout;
-  }
-})();
-
-function runTimeout(fun) {
-  if (cachedSetTimeout === setTimeout) {
-    //normal enviroments in sane situations
-    return setTimeout(fun, 0);
-  } // if setTimeout wasn't available but was latter defined
-
-
-  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
-    cachedSetTimeout = setTimeout;
-    return setTimeout(fun, 0);
-  }
-
-  try {
-    // when when somebody has screwed with setTimeout but no I.E. maddness
-    return cachedSetTimeout(fun, 0);
-  } catch (e) {
-    try {
-      // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
-      return cachedSetTimeout.call(null, fun, 0);
-    } catch (e) {
-      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
-      return cachedSetTimeout.call(this, fun, 0);
-    }
-  }
-}
-
-function runClearTimeout(marker) {
-  if (cachedClearTimeout === clearTimeout) {
-    //normal enviroments in sane situations
-    return clearTimeout(marker);
-  } // if clearTimeout wasn't available but was latter defined
-
-
-  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
-    cachedClearTimeout = clearTimeout;
-    return clearTimeout(marker);
-  }
-
-  try {
-    // when when somebody has screwed with setTimeout but no I.E. maddness
-    return cachedClearTimeout(marker);
-  } catch (e) {
-    try {
-      // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
-      return cachedClearTimeout.call(null, marker);
-    } catch (e) {
-      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
-      // Some versions of I.E. have different rules for clearTimeout vs setTimeout
-      return cachedClearTimeout.call(this, marker);
-    }
-  }
-}
-
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
-  if (!draining || !currentQueue) {
-    return;
-  }
-
-  draining = false;
-
-  if (currentQueue.length) {
-    queue = currentQueue.concat(queue);
-  } else {
-    queueIndex = -1;
-  }
-
-  if (queue.length) {
-    drainQueue();
-  }
-}
-
-function drainQueue() {
-  if (draining) {
-    return;
-  }
-
-  var timeout = runTimeout(cleanUpNextTick);
-  draining = true;
-  var len = queue.length;
-
-  while (len) {
-    currentQueue = queue;
-    queue = [];
-
-    while (++queueIndex < len) {
-      if (currentQueue) {
-        currentQueue[queueIndex].run();
-      }
-    }
-
-    queueIndex = -1;
-    len = queue.length;
-  }
-
-  currentQueue = null;
-  draining = false;
-  runClearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
-  var args = new Array(arguments.length - 1);
-
-  if (arguments.length > 1) {
-    for (var i = 1; i < arguments.length; i++) {
-      args[i - 1] = arguments[i];
-    }
-  }
-
-  queue.push(new Item(fun, args));
-
-  if (queue.length === 1 && !draining) {
-    runTimeout(drainQueue);
-  }
-}; // v8 likes predictible objects
-
-
-function Item(fun, array) {
-  this.fun = fun;
-  this.array = array;
-}
-
-Item.prototype.run = function () {
-  this.fun.apply(null, this.array);
-};
-
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-process.prependListener = noop;
-process.prependOnceListener = noop;
-
-process.listeners = function (name) {
-  return [];
-};
-
-process.binding = function (name) {
-  throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () {
-  return '/';
-};
-
-process.chdir = function (dir) {
-  throw new Error('process.chdir is not supported');
-};
-
-process.umask = function () {
-  return 0;
-};
+module.exports = JSON.parse('{"builtin":{"AggregateError":false,"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"FinalizationRegistry":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakRef":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es2015":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2017":{"Array":false,"ArrayBuffer":false,"Atomics":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2020":{"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2021":{"AggregateError":false,"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"FinalizationRegistry":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakRef":false,"WeakSet":false},"browser":{"AbortController":false,"AbortSignal":false,"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AudioScheduledSourceNode":false,"AudioWorkletGlobalScope":false,"AudioWorkletNode":false,"AudioWorkletProcessor":false,"BarProp":false,"BaseAudioContext":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"BlobEvent":false,"blur":false,"BroadcastChannel":false,"btoa":false,"BudgetService":false,"ByteLengthQueuingStrategy":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasCaptureMediaStreamTrack":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConstantSourceNode":false,"ConvolverNode":false,"CountQueuingStrategy":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSConditionRule":false,"CSSFontFaceRule":false,"CSSGroupingRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMatrixComponent":false,"CSSMediaRule":false,"CSSNamespaceRule":false,"CSSPageRule":false,"CSSPerspective":false,"CSSRotate":false,"CSSRule":false,"CSSRuleList":false,"CSSScale":false,"CSSSkew":false,"CSSSkewX":false,"CSSSkewY":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CSSTransformValue":false,"CSSTranslate":false,"CustomElementRegistry":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"defaultstatus":false,"defaultStatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMMatrix":false,"DOMMatrixReadOnly":false,"DOMParser":false,"DOMPoint":false,"DOMPointReadOnly":false,"DOMQuad":false,"DOMRect":false,"DOMRectList":false,"DOMRectReadOnly":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"fetch":false,"File":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FontFaceSetLoadEvent":false,"FormData":false,"FormDataEvent":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLLabelElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSlotElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTimeElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"IdleDeadline":false,"IIRFilterNode":false,"Image":false,"ImageBitmap":false,"ImageBitmapRenderingContext":false,"ImageCapture":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"isSecureContext":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":true,"Location":false,"locationbar":false,"matchMedia":false,"MediaDeviceInfo":false,"MediaDevices":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyMessageEvent":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaMetadata":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaRecorder":false,"MediaSettingsRange":false,"MediaSource":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"MediaStreamTrackEvent":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"NavigationPreloadManager":false,"navigator":false,"Navigator":false,"NetworkInformation":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"OffscreenCanvas":true,"OffscreenCanvasRenderingContext2D":false,"onabort":true,"onafterprint":true,"onanimationend":true,"onanimationiteration":true,"onanimationstart":true,"onappinstalled":true,"onauxclick":true,"onbeforeinstallprompt":true,"onbeforeprint":true,"onbeforeunload":true,"onblur":true,"oncancel":true,"oncanplay":true,"oncanplaythrough":true,"onchange":true,"onclick":true,"onclose":true,"oncontextmenu":true,"oncuechange":true,"ondblclick":true,"ondevicemotion":true,"ondeviceorientation":true,"ondeviceorientationabsolute":true,"ondrag":true,"ondragend":true,"ondragenter":true,"ondragleave":true,"ondragover":true,"ondragstart":true,"ondrop":true,"ondurationchange":true,"onemptied":true,"onended":true,"onerror":true,"onfocus":true,"ongotpointercapture":true,"onhashchange":true,"oninput":true,"oninvalid":true,"onkeydown":true,"onkeypress":true,"onkeyup":true,"onlanguagechange":true,"onload":true,"onloadeddata":true,"onloadedmetadata":true,"onloadstart":true,"onlostpointercapture":true,"onmessage":true,"onmessageerror":true,"onmousedown":true,"onmouseenter":true,"onmouseleave":true,"onmousemove":true,"onmouseout":true,"onmouseover":true,"onmouseup":true,"onmousewheel":true,"onoffline":true,"ononline":true,"onpagehide":true,"onpageshow":true,"onpause":true,"onplay":true,"onplaying":true,"onpointercancel":true,"onpointerdown":true,"onpointerenter":true,"onpointerleave":true,"onpointermove":true,"onpointerout":true,"onpointerover":true,"onpointerup":true,"onpopstate":true,"onprogress":true,"onratechange":true,"onrejectionhandled":true,"onreset":true,"onresize":true,"onscroll":true,"onsearch":true,"onseeked":true,"onseeking":true,"onselect":true,"onstalled":true,"onstorage":true,"onsubmit":true,"onsuspend":true,"ontimeupdate":true,"ontoggle":true,"ontransitionend":true,"onunhandledrejection":true,"onunload":true,"onvolumechange":true,"onwaiting":true,"onwheel":true,"open":false,"openDatabase":false,"opener":false,"Option":false,"origin":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"OverconstrainedError":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"PannerNode":false,"parent":false,"Path2D":false,"PaymentAddress":false,"PaymentRequest":false,"PaymentRequestUpdateEvent":false,"PaymentResponse":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceLongTaskTiming":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceNavigationTiming":false,"PerformanceObserver":false,"PerformanceObserverEntryList":false,"PerformancePaintTiming":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"PhotoCapabilities":false,"Plugin":false,"PluginArray":false,"PointerEvent":false,"PopStateEvent":false,"postMessage":false,"Presentation":false,"PresentationAvailability":false,"PresentationConnection":false,"PresentationConnectionAvailableEvent":false,"PresentationConnectionCloseEvent":false,"PresentationConnectionList":false,"PresentationReceiver":false,"PresentationRequest":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"PushSubscriptionOptions":false,"queueMicrotask":false,"RadioNodeList":false,"Range":false,"ReadableStream":false,"registerProcessor":false,"RemotePlayback":false,"removeEventListener":false,"reportError":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"ResizeObserver":false,"ResizeObserverEntry":false,"resizeTo":false,"Response":false,"RTCCertificate":false,"RTCDataChannel":false,"RTCDataChannelEvent":false,"RTCDtlsTransport":false,"RTCIceCandidate":false,"RTCIceGatherer":false,"RTCIceTransport":false,"RTCPeerConnection":false,"RTCPeerConnectionIceEvent":false,"RTCRtpContributingSource":false,"RTCRtpReceiver":false,"RTCRtpSender":false,"RTCSctpTransport":false,"RTCSessionDescription":false,"RTCStatsReport":false,"RTCTrackEvent":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedWorker":false,"SourceBuffer":false,"SourceBufferList":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"StaticRange":false,"status":false,"statusbar":false,"StereoPannerNode":false,"stop":false,"Storage":false,"StorageEvent":false,"StorageManager":false,"structuredClone":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubmitEvent":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAngle":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGComponentTransferFunctionElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGElement":false,"SVGEllipseElement":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGImageElement":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPathElement":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformList":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGUseElement":false,"SVGViewElement":false,"TaskAttributionTiming":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransformStream":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"visualViewport":false,"VisualViewport":false,"VTTCue":false,"WaveShaperNode":false,"WebAssembly":false,"WebGL2RenderingContext":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLQuery":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLSampler":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLSync":false,"WebGLTexture":false,"WebGLTransformFeedback":false,"WebGLUniformLocation":false,"WebGLVertexArrayObject":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"WritableStream":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathExpression":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"CustomEvent":false,"ErrorEvent":false,"Event":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"removeEventListener":false,"reportError":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"AbortController":false,"AbortSignal":false,"atob":false,"btoa":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"DOMException":false,"Event":false,"EventTarget":false,"exports":true,"fetch":false,"global":false,"Intl":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"module":false,"performance":false,"process":false,"queueMicrotask":false,"require":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"structuredClone":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"nodeBuiltin":{"AbortController":false,"AbortSignal":false,"atob":false,"btoa":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"DOMException":false,"Event":false,"EventTarget":false,"fetch":false,"global":false,"Intl":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"performance":false,"process":false,"queueMicrotask":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"structuredClone":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"commonjs":{"exports":true,"global":false,"module":false,"require":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"expectAsync":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnAllFunctions":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fdescribe":false,"fit":false,"it":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"java":false,"Java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":false,"CollectGarbage":false,"Debug":false,"Enumerator":false,"GetObject":false,"RuntimeObject":false,"ScriptEngine":false,"ScriptEngineBuildVersion":false,"ScriptEngineMajorVersion":false,"ScriptEngineMinorVersion":false,"VBArray":false,"WScript":false,"WSH":false},"jquery":{"$":false,"jQuery":false},"yui":{"YAHOO":false,"YAHOO_config":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ln":false,"ls":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"$":false,"Accounts":false,"AccountsClient":false,"AccountsCommon":false,"AccountsServer":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPRateLimiter":false,"DDPServer":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"clearInterval":false,"clearTimeout":false,"Client":false,"clients":false,"Clients":false,"close":true,"console":false,"CustomEvent":false,"ErrorEvent":false,"Event":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"fetch":false,"FetchEvent":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":false,"indexedDB":false,"location":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onfetch":true,"oninstall":true,"onlanguagechange":true,"onmessage":true,"onmessageerror":true,"onnotificationclick":true,"onnotificationclose":true,"onoffline":true,"ononline":true,"onpush":true,"onpushsubscriptionchange":true,"onrejectionhandled":true,"onsync":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"registration":false,"removeEventListener":false,"Request":false,"Response":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"skipWaiting":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"WindowClient":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"atomtest":{"advanceClock":false,"atom":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findAll":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false,"wait":false},"protractor":{"$":false,"$$":false,"browser":false,"by":false,"By":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"AbortController":false,"AbortSignal":false,"atob":false,"btoa":false,"clearInterval":false,"clearTimeout":false,"console":false,"DOMException":false,"Event":false,"EventTarget":false,"fetch":false,"Intl":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"performance":false,"queueMicrotask":false,"setInterval":false,"setTimeout":false,"structuredClone":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"cloneInto":false,"createObjectIn":false,"exportFunction":false,"GM":false,"GM_addElement":false,"GM_addStyle":false,"GM_addValueChangeListener":false,"GM_deleteValue":false,"GM_download":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getTab":false,"GM_getTabs":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_notification":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_removeValueChangeListener":false,"GM_saveTab":false,"GM_setClipboard":false,"GM_setValue":false,"GM_unregisterMenuCommand":false,"GM_xmlhttpRequest":false,"unsafeWindow":false},"devtools":{"$":false,"$_":false,"$$":false,"$0":false,"$1":false,"$2":false,"$3":false,"$4":false,"$x":false,"chrome":false,"clear":false,"copy":false,"debug":false,"dir":false,"dirxml":false,"getEventListeners":false,"inspect":false,"keys":false,"monitor":false,"monitorEvents":false,"profile":false,"profileEnd":false,"queryObjects":false,"table":false,"undebug":false,"unmonitor":false,"unmonitorEvents":false,"values":false}}');
 
 /***/ }),
-/* 495 */
+/* 565 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -44097,9 +46750,9 @@ process.umask = function () {
 // Requirements
 //------------------------------------------------------------------------------
 
-const vk = __webpack_require__(435);
+const vk = __webpack_require__(507);
 
-const debug = __webpack_require__(496)("eslint:traverser"); //------------------------------------------------------------------------------
+const debug = __webpack_require__(566)("eslint:traverser"); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -44299,11 +46952,9 @@ class Traverser {
 module.exports = Traverser;
 
 /***/ }),
-/* 496 */
+/* 566 */
 /***/ ((module, exports, __webpack_require__) => {
 
-/* provided dependency */ var console = __webpack_require__(438);
-/* provided dependency */ var process = __webpack_require__(494);
 /* eslint-env browser */
 
 /**
@@ -44472,7 +47123,7 @@ function localstorage() {
   }
 }
 
-module.exports = __webpack_require__(497)(exports);
+module.exports = __webpack_require__(567)(exports);
 const {
   formatters
 } = module.exports;
@@ -44489,10 +47140,9 @@ formatters.j = function (v) {
 };
 
 /***/ }),
-/* 497 */
+/* 567 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/* provided dependency */ var console = __webpack_require__(438);
 /**
  * This is the common logic for both the Node.js and web browser
  * implementations of `debug()`.
@@ -44504,7 +47154,7 @@ function setup(env) {
   createDebug.disable = disable;
   createDebug.enable = enable;
   createDebug.enabled = enabled;
-  createDebug.humanize = __webpack_require__(498);
+  createDebug.humanize = __webpack_require__(568);
   createDebug.destroy = destroy;
   Object.keys(env).forEach(key => {
     createDebug[key] = env[key];
@@ -44672,7 +47322,7 @@ function setup(env) {
       namespaces = split[i].replace(/\*/g, '.*?');
 
       if (namespaces[0] === '-') {
-        createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
+        createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
       } else {
         createDebug.names.push(new RegExp('^' + namespaces + '$'));
       }
@@ -44767,7 +47417,7 @@ function setup(env) {
 module.exports = setup;
 
 /***/ }),
-/* 498 */
+/* 568 */
 /***/ ((module) => {
 
 /**
@@ -44951,18 +47601,18 @@ function plural(ms, msAbs, n, name) {
 }
 
 /***/ }),
-/* 499 */
+/* 569 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 
 
 module.exports = {
-  SourceCode: __webpack_require__(500)
+  SourceCode: __webpack_require__(570)
 };
 
 /***/ }),
-/* 500 */
+/* 570 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -44976,10 +47626,10 @@ module.exports = {
 
 const {
   isCommentToken
-} = __webpack_require__(501),
-      TokenStore = __webpack_require__(504),
-      astUtils = __webpack_require__(444),
-      Traverser = __webpack_require__(495); //------------------------------------------------------------------------------
+} = __webpack_require__(571),
+      TokenStore = __webpack_require__(574),
+      astUtils = __webpack_require__(514),
+      Traverser = __webpack_require__(565); //------------------------------------------------------------------------------
 // Private
 //------------------------------------------------------------------------------
 
@@ -45482,7 +48132,7 @@ class SourceCode extends TokenStore {
     }
 
     if (index < 0 || index > this.text.length) {
-      throw new RangeError("Index out of range (requested index ".concat(index, ", but source text has length ").concat(this.text.length, ")."));
+      throw new RangeError(`Index out of range (requested index ${index}, but source text has length ${this.text.length}).`);
     }
     /*
      * For an argument of this.text.length, return the location one "spot" past the last character
@@ -45530,11 +48180,11 @@ class SourceCode extends TokenStore {
     }
 
     if (loc.line <= 0) {
-      throw new RangeError("Line number out of range (line ".concat(loc.line, " requested). Line numbers should be 1-based."));
+      throw new RangeError(`Line number out of range (line ${loc.line} requested). Line numbers should be 1-based.`);
     }
 
     if (loc.line > this.lineStartIndices.length) {
-      throw new RangeError("Line number out of range (line ".concat(loc.line, " requested, but only ").concat(this.lineStartIndices.length, " lines present)."));
+      throw new RangeError(`Line number out of range (line ${loc.line} requested, but only ${this.lineStartIndices.length} lines present).`);
     }
 
     const lineStartIndex = this.lineStartIndices[loc.line - 1];
@@ -45550,7 +48200,7 @@ class SourceCode extends TokenStore {
      */
 
     if (loc.line === this.lineStartIndices.length && positionIndex > lineEndIndex || loc.line < this.lineStartIndices.length && positionIndex >= lineEndIndex) {
-      throw new RangeError("Column number out of range (column ".concat(loc.column, " requested, but the length of line ").concat(loc.line, " is ").concat(lineEndIndex - lineStartIndex, ")."));
+      throw new RangeError(`Column number out of range (column ${loc.column} requested, but the length of line ${loc.line} is ${lineEndIndex - lineStartIndex}).`);
     }
 
     return positionIndex;
@@ -45561,7 +48211,7 @@ class SourceCode extends TokenStore {
 module.exports = SourceCode;
 
 /***/ }),
-/* 501 */
+/* 571 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -45576,7 +48226,7 @@ function _interopDefault(ex) {
   return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;
 }
 
-var evk = _interopDefault(__webpack_require__(502));
+var evk = _interopDefault(__webpack_require__(572));
 /**
  * Get the innermost scope which contains a given location.
  * @param {Scope} initialScope The initial scope to search.
@@ -46446,7 +49096,7 @@ function getStringIfConstant(node) {
   // Handle the literals that the platform doesn't support natively.
   if (node && node.type === "Literal" && node.value === null) {
     if (node.regex) {
-      return "/".concat(node.regex.pattern, "/").concat(node.regex.flags);
+      return `/${node.regex.pattern}/${node.regex.flags}`;
     }
 
     if (node.bigint) {
@@ -46559,26 +49209,26 @@ function getFunctionNameWithKind(node, sourceCode) {
 
   if (isObjectMethod || isClassMethod || isClassFieldMethod) {
     if (parent.key.type === "PrivateIdentifier") {
-      tokens.push("#".concat(parent.key.name));
+      tokens.push(`#${parent.key.name}`);
     } else {
       const name = getPropertyName(parent);
 
       if (name) {
-        tokens.push("'".concat(name, "'"));
+        tokens.push(`'${name}'`);
       } else if (sourceCode) {
         const keyText = sourceCode.getText(parent.key);
 
         if (!keyText.includes("\n")) {
-          tokens.push("[".concat(keyText, "]"));
+          tokens.push(`[${keyText}]`);
         }
       }
     }
   } else if (node.id) {
-    tokens.push("'".concat(node.id.name, "'"));
+    tokens.push(`'${node.id.name}'`);
   } else if (parent.type === "VariableDeclarator" && parent.id && parent.id.type === "Identifier") {
-    tokens.push("'".concat(parent.id.name, "'"));
+    tokens.push(`'${parent.id.name}'`);
   } else if ((parent.type === "AssignmentExpression" || parent.type === "AssignmentPattern") && parent.left && parent.left.type === "Identifier") {
-    tokens.push("'".concat(parent.left.name, "'"));
+    tokens.push(`'${parent.left.name}'`);
   }
 
   return tokens.join(" ");
@@ -47587,7 +50237,7 @@ exports.isParenthesized = isParenthesized;
 exports.isSemicolonToken = isSemicolonToken;
 
 /***/ }),
-/* 502 */
+/* 572 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -47597,7 +50247,7 @@ exports.isSemicolonToken = isSemicolonToken;
  */
 
 
-const KEYS = __webpack_require__(503); // Types.
+const KEYS = __webpack_require__(573); // Types.
 
 
 const NODE_TYPES = Object.freeze(Object.keys(KEYS)); // Freeze the keys.
@@ -47669,14 +50319,14 @@ module.exports = Object.freeze({
 });
 
 /***/ }),
-/* 503 */
+/* 573 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"AssignmentExpression":["left","right"],"AssignmentPattern":["left","right"],"ArrayExpression":["elements"],"ArrayPattern":["elements"],"ArrowFunctionExpression":["params","body"],"AwaitExpression":["argument"],"BlockStatement":["body"],"BinaryExpression":["left","right"],"BreakStatement":["label"],"CallExpression":["callee","arguments"],"CatchClause":["param","body"],"ChainExpression":["expression"],"ClassBody":["body"],"ClassDeclaration":["id","superClass","body"],"ClassExpression":["id","superClass","body"],"ConditionalExpression":["test","consequent","alternate"],"ContinueStatement":["label"],"DebuggerStatement":[],"DoWhileStatement":["body","test"],"EmptyStatement":[],"ExportAllDeclaration":["exported","source"],"ExportDefaultDeclaration":["declaration"],"ExportNamedDeclaration":["declaration","specifiers","source"],"ExportSpecifier":["exported","local"],"ExpressionStatement":["expression"],"ExperimentalRestProperty":["argument"],"ExperimentalSpreadProperty":["argument"],"ForStatement":["init","test","update","body"],"ForInStatement":["left","right","body"],"ForOfStatement":["left","right","body"],"FunctionDeclaration":["id","params","body"],"FunctionExpression":["id","params","body"],"Identifier":[],"IfStatement":["test","consequent","alternate"],"ImportDeclaration":["specifiers","source"],"ImportDefaultSpecifier":["local"],"ImportExpression":["source"],"ImportNamespaceSpecifier":["local"],"ImportSpecifier":["imported","local"],"JSXAttribute":["name","value"],"JSXClosingElement":["name"],"JSXElement":["openingElement","children","closingElement"],"JSXEmptyExpression":[],"JSXExpressionContainer":["expression"],"JSXIdentifier":[],"JSXMemberExpression":["object","property"],"JSXNamespacedName":["namespace","name"],"JSXOpeningElement":["name","attributes"],"JSXSpreadAttribute":["argument"],"JSXText":[],"JSXFragment":["openingFragment","children","closingFragment"],"Literal":[],"LabeledStatement":["label","body"],"LogicalExpression":["left","right"],"MemberExpression":["object","property"],"MetaProperty":["meta","property"],"MethodDefinition":["key","value"],"NewExpression":["callee","arguments"],"ObjectExpression":["properties"],"ObjectPattern":["properties"],"PrivateIdentifier":[],"Program":["body"],"Property":["key","value"],"PropertyDefinition":["key","value"],"RestElement":["argument"],"ReturnStatement":["argument"],"SequenceExpression":["expressions"],"SpreadElement":["argument"],"Super":[],"SwitchStatement":["discriminant","cases"],"SwitchCase":["test","consequent"],"TaggedTemplateExpression":["tag","quasi"],"TemplateElement":[],"TemplateLiteral":["quasis","expressions"],"ThisExpression":[],"ThrowStatement":["argument"],"TryStatement":["block","handler","finalizer"],"UnaryExpression":["argument"],"UpdateExpression":["argument"],"VariableDeclaration":["declarations"],"VariableDeclarator":["id","init"],"WhileStatement":["test","body"],"WithStatement":["object","body"],"YieldExpression":["argument"]}');
 
 /***/ }),
-/* 504 */
+/* 574 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -47688,19 +50338,19 @@ module.exports = JSON.parse('{"AssignmentExpression":["left","right"],"Assignmen
 // Requirements
 //------------------------------------------------------------------------------
 
-const assert = __webpack_require__(431);
+const assert = __webpack_require__(503);
 
 const {
   isCommentToken
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
-const cursors = __webpack_require__(505);
+const cursors = __webpack_require__(575);
 
-const ForwardTokenCursor = __webpack_require__(513);
+const ForwardTokenCursor = __webpack_require__(583);
 
-const PaddedTokenCursor = __webpack_require__(516);
+const PaddedTokenCursor = __webpack_require__(586);
 
-const utils = __webpack_require__(508); //------------------------------------------------------------------------------
+const utils = __webpack_require__(578); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -48212,7 +50862,7 @@ module.exports = class TokenStore {
 };
 
 /***/ }),
-/* 505 */
+/* 575 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -48224,19 +50874,19 @@ module.exports = class TokenStore {
 // Requirements
 //------------------------------------------------------------------------------
 
-const BackwardTokenCommentCursor = __webpack_require__(506);
+const BackwardTokenCommentCursor = __webpack_require__(576);
 
-const BackwardTokenCursor = __webpack_require__(509);
+const BackwardTokenCursor = __webpack_require__(579);
 
-const FilterCursor = __webpack_require__(510);
+const FilterCursor = __webpack_require__(580);
 
-const ForwardTokenCommentCursor = __webpack_require__(512);
+const ForwardTokenCommentCursor = __webpack_require__(582);
 
-const ForwardTokenCursor = __webpack_require__(513);
+const ForwardTokenCursor = __webpack_require__(583);
 
-const LimitCursor = __webpack_require__(514);
+const LimitCursor = __webpack_require__(584);
 
-const SkipCursor = __webpack_require__(515); //------------------------------------------------------------------------------
+const SkipCursor = __webpack_require__(585); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -48314,7 +50964,7 @@ exports.forward = new CursorFactory(ForwardTokenCursor, ForwardTokenCommentCurso
 exports.backward = new CursorFactory(BackwardTokenCursor, BackwardTokenCommentCursor);
 
 /***/ }),
-/* 506 */
+/* 576 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48326,9 +50976,9 @@ exports.backward = new CursorFactory(BackwardTokenCursor, BackwardTokenCommentCu
 // Requirements
 //------------------------------------------------------------------------------
 
-const Cursor = __webpack_require__(507);
+const Cursor = __webpack_require__(577);
 
-const utils = __webpack_require__(508); //------------------------------------------------------------------------------
+const utils = __webpack_require__(578); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48377,7 +51027,7 @@ module.exports = class BackwardTokenCommentCursor extends Cursor {
 };
 
 /***/ }),
-/* 507 */
+/* 577 */
 /***/ ((module) => {
 
 "use strict";
@@ -48452,7 +51102,7 @@ module.exports = class Cursor {
    * @abstract
    */
 
-  /* istanbul ignore next */
+  /* c8 ignore next */
 
 
   moveNext() {
@@ -48463,7 +51113,7 @@ module.exports = class Cursor {
 };
 
 /***/ }),
-/* 508 */
+/* 578 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
@@ -48567,7 +51217,7 @@ exports.getLastIndex = function getLastIndex(tokens, indexMap, endLoc) {
 };
 
 /***/ }),
-/* 509 */
+/* 579 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48579,9 +51229,9 @@ exports.getLastIndex = function getLastIndex(tokens, indexMap, endLoc) {
 // Requirements
 //------------------------------------------------------------------------------
 
-const Cursor = __webpack_require__(507);
+const Cursor = __webpack_require__(577);
 
-const utils = __webpack_require__(508); //------------------------------------------------------------------------------
+const utils = __webpack_require__(578); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48633,7 +51283,7 @@ module.exports = class BackwardTokenCursor extends Cursor {
 };
 
 /***/ }),
-/* 510 */
+/* 580 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48645,7 +51295,7 @@ module.exports = class BackwardTokenCursor extends Cursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const DecorativeCursor = __webpack_require__(511); //------------------------------------------------------------------------------
+const DecorativeCursor = __webpack_require__(581); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48682,7 +51332,7 @@ module.exports = class FilterCursor extends DecorativeCursor {
 };
 
 /***/ }),
-/* 511 */
+/* 581 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48694,7 +51344,7 @@ module.exports = class FilterCursor extends DecorativeCursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const Cursor = __webpack_require__(507); //------------------------------------------------------------------------------
+const Cursor = __webpack_require__(577); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48724,7 +51374,7 @@ module.exports = class DecorativeCursor extends Cursor {
 };
 
 /***/ }),
-/* 512 */
+/* 582 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48736,9 +51386,9 @@ module.exports = class DecorativeCursor extends Cursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const Cursor = __webpack_require__(507);
+const Cursor = __webpack_require__(577);
 
-const utils = __webpack_require__(508); //------------------------------------------------------------------------------
+const utils = __webpack_require__(578); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48787,7 +51437,7 @@ module.exports = class ForwardTokenCommentCursor extends Cursor {
 };
 
 /***/ }),
-/* 513 */
+/* 583 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48799,9 +51449,9 @@ module.exports = class ForwardTokenCommentCursor extends Cursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const Cursor = __webpack_require__(507);
+const Cursor = __webpack_require__(577);
 
-const utils = __webpack_require__(508); //------------------------------------------------------------------------------
+const utils = __webpack_require__(578); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48859,7 +51509,7 @@ module.exports = class ForwardTokenCursor extends Cursor {
 };
 
 /***/ }),
-/* 514 */
+/* 584 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48871,7 +51521,7 @@ module.exports = class ForwardTokenCursor extends Cursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const DecorativeCursor = __webpack_require__(511); //------------------------------------------------------------------------------
+const DecorativeCursor = __webpack_require__(581); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48905,7 +51555,7 @@ module.exports = class LimitCursor extends DecorativeCursor {
 };
 
 /***/ }),
-/* 515 */
+/* 585 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48917,7 +51567,7 @@ module.exports = class LimitCursor extends DecorativeCursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const DecorativeCursor = __webpack_require__(511); //------------------------------------------------------------------------------
+const DecorativeCursor = __webpack_require__(581); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48954,7 +51604,7 @@ module.exports = class SkipCursor extends DecorativeCursor {
 };
 
 /***/ }),
-/* 516 */
+/* 586 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -48966,7 +51616,7 @@ module.exports = class SkipCursor extends DecorativeCursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const ForwardTokenCursor = __webpack_require__(513); //------------------------------------------------------------------------------
+const ForwardTokenCursor = __webpack_require__(583); //------------------------------------------------------------------------------
 // Exports
 //------------------------------------------------------------------------------
 
@@ -48996,7 +51646,7 @@ module.exports = class PaddedTokenCursor extends ForwardTokenCursor {
 };
 
 /***/ }),
-/* 517 */
+/* 587 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -49008,14 +51658,14 @@ module.exports = class PaddedTokenCursor extends ForwardTokenCursor {
 // Requirements
 //------------------------------------------------------------------------------
 
-const assert = __webpack_require__(431),
+const assert = __webpack_require__(503),
       {
   breakableTypePattern
-} = __webpack_require__(444),
-      CodePath = __webpack_require__(518),
-      CodePathSegment = __webpack_require__(520),
-      IdGenerator = __webpack_require__(523),
-      debug = __webpack_require__(521); //------------------------------------------------------------------------------
+} = __webpack_require__(514),
+      CodePath = __webpack_require__(588),
+      CodePathSegment = __webpack_require__(590),
+      IdGenerator = __webpack_require__(593),
+      debug = __webpack_require__(591); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -49197,7 +51847,7 @@ function forwardCurrentToHead(analyzer, node) {
     headSegment = headSegments[i];
 
     if (currentSegment !== headSegment && currentSegment) {
-      debug.dump("onCodePathSegmentEnd ".concat(currentSegment.id));
+      debug.dump(`onCodePathSegmentEnd ${currentSegment.id}`);
 
       if (currentSegment.reachable) {
         analyzer.emitter.emit("onCodePathSegmentEnd", currentSegment, node);
@@ -49213,7 +51863,7 @@ function forwardCurrentToHead(analyzer, node) {
     headSegment = headSegments[i];
 
     if (currentSegment !== headSegment && headSegment) {
-      debug.dump("onCodePathSegmentStart ".concat(headSegment.id));
+      debug.dump(`onCodePathSegmentStart ${headSegment.id}`);
       CodePathSegment.markUsed(headSegment);
 
       if (headSegment.reachable) {
@@ -49237,7 +51887,7 @@ function leaveFromCurrentSegment(analyzer, node) {
 
   for (let i = 0; i < currentSegments.length; ++i) {
     const currentSegment = currentSegments[i];
-    debug.dump("onCodePathSegmentEnd ".concat(currentSegment.id));
+    debug.dump(`onCodePathSegmentEnd ${currentSegment.id}`);
 
     if (currentSegment.reachable) {
       analyzer.emitter.emit("onCodePathSegmentEnd", currentSegment, node);
@@ -49421,7 +52071,7 @@ function processCodePathToEnter(analyzer, node) {
     });
     state = CodePath.getState(codePath); // Emits onCodePathStart events.
 
-    debug.dump("onCodePathStart ".concat(codePath.id));
+    debug.dump(`onCodePathStart ${codePath.id}`);
     analyzer.emitter.emit("onCodePathStart", codePath, node);
   }
   /*
@@ -49692,7 +52342,7 @@ function postprocess(analyzer, node) {
 
     leaveFromCurrentSegment(analyzer, node); // Emits onCodePathEnd event of this code path.
 
-    debug.dump("onCodePathEnd ".concat(codePath.id));
+    debug.dump(`onCodePathEnd ${codePath.id}`);
     analyzer.emitter.emit("onCodePathEnd", codePath, node);
     debug.dumpDot(codePath);
     codePath = analyzer.codePath = analyzer.codePath.upper;
@@ -49826,7 +52476,7 @@ class CodePathAnalyzer {
 
   onLooped(fromSegment, toSegment) {
     if (fromSegment.reachable && toSegment.reachable) {
-      debug.dump("onCodePathSegmentLoop ".concat(fromSegment.id, " -> ").concat(toSegment.id));
+      debug.dump(`onCodePathSegmentLoop ${fromSegment.id} -> ${toSegment.id}`);
       this.emitter.emit("onCodePathSegmentLoop", fromSegment, toSegment, this.currentNode);
     }
   }
@@ -49836,7 +52486,7 @@ class CodePathAnalyzer {
 module.exports = CodePathAnalyzer;
 
 /***/ }),
-/* 518 */
+/* 588 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -49848,9 +52498,9 @@ module.exports = CodePathAnalyzer;
 // Requirements
 //------------------------------------------------------------------------------
 
-const CodePathState = __webpack_require__(519);
+const CodePathState = __webpack_require__(589);
 
-const IdGenerator = __webpack_require__(523); //------------------------------------------------------------------------------
+const IdGenerator = __webpack_require__(593); //------------------------------------------------------------------------------
 // Public Interface
 //------------------------------------------------------------------------------
 
@@ -49903,7 +52553,7 @@ class CodePath {
     this.childCodePaths = []; // Initializes internal state.
 
     Object.defineProperty(this, "internal", {
-      value: new CodePathState(new IdGenerator("".concat(id, "_")), onLooped)
+      value: new CodePathState(new IdGenerator(`${id}_`), onLooped)
     }); // Adds this into `childCodePaths` of `upper`.
 
     if (upper) {
@@ -50054,7 +52704,7 @@ class CodePath {
         } // Reset the flag of skipping if all branches have been skipped.
 
 
-        if (skippedSegment && segment.prevSegments.indexOf(skippedSegment) !== -1) {
+        if (skippedSegment && segment.prevSegments.includes(skippedSegment)) {
           skippedSegment = null;
         }
 
@@ -50093,7 +52743,7 @@ class CodePath {
 module.exports = CodePath;
 
 /***/ }),
-/* 519 */
+/* 589 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -50105,8 +52755,8 @@ module.exports = CodePath;
 // Requirements
 //------------------------------------------------------------------------------
 
-const CodePathSegment = __webpack_require__(520),
-      ForkContext = __webpack_require__(522); //------------------------------------------------------------------------------
+const CodePathSegment = __webpack_require__(590),
+      ForkContext = __webpack_require__(592); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -50129,7 +52779,7 @@ function addToReturnedOrThrown(dest, others, all, segments) {
     const segment = segments[i];
     dest.push(segment);
 
-    if (others.indexOf(segment) === -1) {
+    if (!others.includes(segment)) {
       all.push(segment);
     }
   }
@@ -50156,7 +52806,7 @@ function getContinueContext(state, label) {
 
     context = context.upper;
   }
-  /* istanbul ignore next: foolproof (syntax error) */
+  /* c8 ignore next */
 
 
   return null;
@@ -50179,7 +52829,7 @@ function getBreakContext(state, label) {
 
     context = context.upper;
   }
-  /* istanbul ignore next: foolproof (syntax error) */
+  /* c8 ignore next */
 
 
   return null;
@@ -50531,7 +53181,7 @@ class CodePathState {
          */
         return context;
 
-      /* istanbul ignore next */
+      /* c8 ignore next */
 
       default:
         throw new Error("unreachable");
@@ -51117,10 +53767,10 @@ class CodePathState {
         };
         break;
 
-      /* istanbul ignore next */
+      /* c8 ignore next */
 
       default:
-        throw new Error("unknown type: \"".concat(type, "\""));
+        throw new Error(`unknown type: "${type}"`);
     }
   }
   /**
@@ -51172,7 +53822,7 @@ class CodePathState {
         makeLooped(this, forkContext.head, context.leftSegments);
         break;
 
-      /* istanbul ignore next */
+      /* c8 ignore next */
 
       default:
         throw new Error("unreachable");
@@ -51452,11 +54102,12 @@ class CodePathState {
     }
 
     const context = getBreakContext(this, label);
-    /* istanbul ignore else: foolproof (syntax error) */
 
     if (context) {
       context.brokenForkContext.add(forkContext.head);
     }
+    /* c8 ignore next */
+
 
     forkContext.replaceHead(forkContext.makeUnreachable(-1, -1));
   }
@@ -51478,7 +54129,6 @@ class CodePathState {
     }
 
     const context = getContinueContext(this, label);
-    /* istanbul ignore else: foolproof (syntax error) */
 
     if (context) {
       if (context.continueDestSegments) {
@@ -51547,7 +54197,7 @@ class CodePathState {
 module.exports = CodePathState;
 
 /***/ }),
-/* 520 */
+/* 590 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -51559,7 +54209,7 @@ module.exports = CodePathState;
 // Requirements
 //------------------------------------------------------------------------------
 
-const debug = __webpack_require__(521); //------------------------------------------------------------------------------
+const debug = __webpack_require__(591); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -51634,11 +54284,13 @@ class CodePathSegment {
         loopedPrevSegments: []
       }
     });
-    /* istanbul ignore if */
+    /* c8 ignore start */
 
     if (debug.enabled) {
       this.internal.nodes = [];
     }
+    /* c8 ignore stop */
+
   }
   /**
    * Checks a given previous segment is coming from the end of a loop.
@@ -51648,7 +54300,7 @@ class CodePathSegment {
 
 
   isLoopedPrevSegment(segment) {
-    return this.internal.loopedPrevSegments.indexOf(segment) !== -1;
+    return this.internal.loopedPrevSegments.includes(segment);
   }
   /**
    * Creates the root segment.
@@ -51784,7 +54436,7 @@ class CodePathSegment {
 module.exports = CodePathSegment;
 
 /***/ }),
-/* 521 */
+/* 591 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -51796,7 +54448,7 @@ module.exports = CodePathSegment;
 // Requirements
 //------------------------------------------------------------------------------
 
-const debug = __webpack_require__(496)("eslint:code-path"); //------------------------------------------------------------------------------
+const debug = __webpack_require__(566)("eslint:code-path"); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -51806,7 +54458,7 @@ const debug = __webpack_require__(496)("eslint:code-path"); //------------------
  * @returns {string} Id of the segment.
  */
 
-/* istanbul ignore next */
+/* c8 ignore next */
 
 
 function getId(segment) {
@@ -51822,17 +54474,17 @@ function getId(segment) {
 
 
 function nodeToString(node, label) {
-  const suffix = label ? ":".concat(label) : "";
+  const suffix = label ? `:${label}` : "";
 
   switch (node.type) {
     case "Identifier":
-      return "".concat(node.type).concat(suffix, " (").concat(node.name, ")");
+      return `${node.type}${suffix} (${node.name})`;
 
     case "Literal":
-      return "".concat(node.type).concat(suffix, " (").concat(node.value, ")");
+      return `${node.type}${suffix} (${node.value})`;
 
     default:
-      return "".concat(node.type).concat(suffix);
+      return `${node.type}${suffix}`;
   }
 } //------------------------------------------------------------------------------
 // Public Interface
@@ -51861,7 +54513,7 @@ module.exports = {
    * @returns {void}
    */
   dumpState: !debug.enabled ? debug :
-  /* istanbul ignore next */
+  /* c8 ignore next */
   function (node, state, leaving) {
     for (let i = 0; i < state.currentSegments.length; ++i) {
       const segInternal = state.currentSegments[i].internal;
@@ -51879,7 +54531,7 @@ module.exports = {
       }
     }
 
-    debug(["".concat(state.currentSegments.map(getId).join(","), ")"), "".concat(node.type).concat(leaving ? ":exit" : "")].join(" "));
+    debug([`${state.currentSegments.map(getId).join(",")})`, `${node.type}${leaving ? ":exit" : ""}`].join(" "));
   },
 
   /**
@@ -51891,7 +54543,7 @@ module.exports = {
    * @see http://www.webgraphviz.com
    */
   dumpDot: !debug.enabled ? debug :
-  /* istanbul ignore next */
+  /* c8 ignore next */
   function (codePath) {
     let text = "\n" + "digraph {\n" + "node[shape=box,style=\"rounded,filled\",fillcolor=white];\n" + "initial[label=\"\",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];\n";
 
@@ -51909,7 +54561,7 @@ module.exports = {
     for (const id in traceMap) {
       // eslint-disable-line guard-for-in -- Want ability to traverse prototype
       const segment = traceMap[id];
-      text += "".concat(id, "[");
+      text += `${id}[`;
 
       if (segment.reachable) {
         text += "label=\"";
@@ -51926,7 +54578,7 @@ module.exports = {
       text += "\"];\n";
     }
 
-    text += "".concat(arrows, "\n");
+    text += `${arrows}\n`;
     text += "}";
     debug("DOT", text);
   },
@@ -51942,7 +54594,7 @@ module.exports = {
     const stack = [[codePath.initialSegment, 0]];
     const done = traceMap || Object.create(null);
     let lastId = codePath.initialSegment.id;
-    let text = "initial->".concat(codePath.initialSegment.id);
+    let text = `initial->${codePath.initialSegment.id}`;
 
     while (stack.length > 0) {
       const item = stack.pop();
@@ -51961,9 +54613,9 @@ module.exports = {
       }
 
       if (lastId === segment.id) {
-        text += "->".concat(nextSegment.id);
+        text += `->${nextSegment.id}`;
       } else {
-        text += ";\n".concat(segment.id, "->").concat(nextSegment.id);
+        text += `;\n${segment.id}->${nextSegment.id}`;
       }
 
       lastId = nextSegment.id;
@@ -51975,7 +54627,7 @@ module.exports = {
       if (lastId === finalSegment.id) {
         text += "->final";
       } else {
-        text += ";\n".concat(finalSegment.id, "->final");
+        text += `;\n${finalSegment.id}->final`;
       }
 
       lastId = null;
@@ -51984,18 +54636,18 @@ module.exports = {
       if (lastId === finalSegment.id) {
         text += "->thrown";
       } else {
-        text += ";\n".concat(finalSegment.id, "->thrown");
+        text += `;\n${finalSegment.id}->thrown`;
       }
 
       lastId = null;
     });
-    return "".concat(text, ";");
+    return `${text};`;
   }
 
 };
 
 /***/ }),
-/* 522 */
+/* 592 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -52011,8 +54663,8 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const assert = __webpack_require__(431),
-      CodePathSegment = __webpack_require__(520); //------------------------------------------------------------------------------
+const assert = __webpack_require__(503),
+      CodePathSegment = __webpack_require__(590); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -52178,7 +54830,7 @@ class ForkContext {
 
 
   add(segments) {
-    assert(segments.length >= this.count, "".concat(segments.length, " >= ").concat(this.count));
+    assert(segments.length >= this.count, `${segments.length} >= ${this.count}`);
     this.segmentsList.push(mergeExtraSegments(this, segments));
   }
   /**
@@ -52190,7 +54842,7 @@ class ForkContext {
 
 
   replaceHead(segments) {
-    assert(segments.length >= this.count, "".concat(segments.length, " >= ").concat(this.count));
+    assert(segments.length >= this.count, `${segments.length} >= ${this.count}`);
     this.segmentsList.splice(-1, 1, mergeExtraSegments(this, segments));
   }
   /**
@@ -52246,7 +54898,7 @@ class ForkContext {
 module.exports = ForkContext;
 
 /***/ }),
-/* 523 */
+/* 593 */
 /***/ ((module) => {
 
 "use strict";
@@ -52282,11 +54934,13 @@ class IdGenerator {
 
   next() {
     this.n = 1 + this.n | 0;
-    /* istanbul ignore if */
+    /* c8 ignore start */
 
     if (this.n < 0) {
       this.n = 1;
     }
+    /* c8 ignore stop */
+
 
     return this.prefix + this.n;
   }
@@ -52296,7 +54950,7 @@ class IdGenerator {
 module.exports = IdGenerator;
 
 /***/ }),
-/* 524 */
+/* 594 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -52306,11 +54960,7 @@ module.exports = IdGenerator;
  */
 
 
-var _templateObject;
-
-function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
-
-const escapeRegExp = __webpack_require__(525);
+const escapeRegExp = __webpack_require__(595);
 /**
  * Compares the locations of two objects in a source file
  * @param {{line: number, column: number}} itemA The first object
@@ -52353,7 +55003,7 @@ function groupByParentComment(directives) {
  * Creates removal details for a set of directives within the same comment.
  * @param {Directive[]} directives Unused directives to be removed.
  * @param {Token} commentToken The backing Comment token.
- * @returns {{ description, fix, position }[]} Details for later creation of output Problems.
+ * @returns {{ description, fix, unprocessedDirective }[]} Details for later creation of output Problems.
  */
 
 
@@ -52375,7 +55025,7 @@ function createIndividualDirectivesRemoval(directives, commentToken) {
 
   const listText = commentToken.value.slice(listStartOffset) // remove directive name and all whitespace before the list
   .split(/\s-{2,}\s/u)[0] // remove `-- comment`, if it exists
-  .trimRight(); // remove all whitespace after the list
+  .trimEnd(); // remove all whitespace after the list
 
   /*
    * We can assume that `listText` contains multiple elements.
@@ -52387,7 +55037,7 @@ function createIndividualDirectivesRemoval(directives, commentToken) {
     const {
       ruleId
     } = directive;
-    const regex = new RegExp(String.raw(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:^|s*,s*)", "(?:s*,s*|$)"], ["(?:^|\\s*,\\s*)", "(?:\\s*,\\s*|$)"])), escapeRegExp(ruleId)), "u");
+    const regex = new RegExp(String.raw`(?:^|\s*,\s*)${escapeRegExp(ruleId)}(?:\s*,\s*|$)`, "u");
     const match = regex.exec(listText);
     const matchedText = match[0];
     const matchStartOffset = listStartOffset + match.index;
@@ -52435,12 +55085,12 @@ function createIndividualDirectivesRemoval(directives, commentToken) {
     }
 
     return {
-      description: "'".concat(ruleId, "'"),
+      description: `'${ruleId}'`,
       fix: {
         range: [commentValueStart + removalStartOffset, commentValueStart + removalEndOffset],
         text: ""
       },
-      position: directive.unprocessedDirective
+      unprocessedDirective: directive.unprocessedDirective
     };
   });
 }
@@ -52448,7 +55098,7 @@ function createIndividualDirectivesRemoval(directives, commentToken) {
  * Creates a description of deleting an entire unused disable comment.
  * @param {Directive[]} directives Unused directives to be removed.
  * @param {Token} commentToken The backing Comment token.
- * @returns {{ description, fix, position }} Details for later creation of an output Problem.
+ * @returns {{ description, fix, unprocessedDirective }} Details for later creation of an output Problem.
  */
 
 
@@ -52456,20 +55106,20 @@ function createCommentRemoval(directives, commentToken) {
   const {
     range
   } = commentToken;
-  const ruleIds = directives.filter(directive => directive.ruleId).map(directive => "'".concat(directive.ruleId, "'"));
+  const ruleIds = directives.filter(directive => directive.ruleId).map(directive => `'${directive.ruleId}'`);
   return {
-    description: ruleIds.length <= 2 ? ruleIds.join(" or ") : "".concat(ruleIds.slice(0, ruleIds.length - 1).join(", "), ", or ").concat(ruleIds[ruleIds.length - 1]),
+    description: ruleIds.length <= 2 ? ruleIds.join(" or ") : `${ruleIds.slice(0, ruleIds.length - 1).join(", ")}, or ${ruleIds[ruleIds.length - 1]}`,
     fix: {
       range,
       text: " "
     },
-    position: directives[0].unprocessedDirective
+    unprocessedDirective: directives[0].unprocessedDirective
   };
 }
 /**
  * Parses details from directives to create output Problems.
  * @param {Directive[]} allDirectives Unused directives to be removed.
- * @returns {{ description, fix, position }[]} Details for later creation of output Problems.
+ * @returns {{ description, fix, unprocessedDirective }[]} Details for later creation of output Problems.
  */
 
 
@@ -52496,61 +55146,50 @@ function processUnusedDisableDirectives(allDirectives) {
  * for the exported function, except that `reportUnusedDisableDirectives` is not supported
  * (this function always reports unused disable directives).
  * @returns {{problems: Problem[], unusedDisableDirectives: Problem[]}} An object with a list
- * of filtered problems and unused eslint-disable directives
+ * of problems (including suppressed ones) and unused eslint-disable directives
  */
 
 
 function applyDirectives(options) {
   const problems = [];
-  let nextDirectiveIndex = 0;
-  let currentGlobalDisableDirective = null;
-  const disabledRuleMap = new Map(); // enabledRules is only used when there is a current global disable directive.
-
-  const enabledRules = new Set();
   const usedDisableDirectives = new Set();
 
   for (const problem of options.problems) {
+    let disableDirectivesForProblem = [];
+    let nextDirectiveIndex = 0;
+
     while (nextDirectiveIndex < options.directives.length && compareLocations(options.directives[nextDirectiveIndex], problem) <= 0) {
       const directive = options.directives[nextDirectiveIndex++];
 
-      switch (directive.type) {
-        case "disable":
-          if (directive.ruleId === null) {
-            currentGlobalDisableDirective = directive;
-            disabledRuleMap.clear();
-            enabledRules.clear();
-          } else if (currentGlobalDisableDirective) {
-            enabledRules.delete(directive.ruleId);
-            disabledRuleMap.set(directive.ruleId, directive);
-          } else {
-            disabledRuleMap.set(directive.ruleId, directive);
-          }
+      if (directive.ruleId === null || directive.ruleId === problem.ruleId) {
+        switch (directive.type) {
+          case "disable":
+            disableDirectivesForProblem.push(directive);
+            break;
 
-          break;
+          case "enable":
+            disableDirectivesForProblem = [];
+            break;
+          // no default
+        }
+      }
+    }
 
-        case "enable":
-          if (directive.ruleId === null) {
-            currentGlobalDisableDirective = null;
-            disabledRuleMap.clear();
-          } else if (currentGlobalDisableDirective) {
-            enabledRules.add(directive.ruleId);
-            disabledRuleMap.delete(directive.ruleId);
-          } else {
-            disabledRuleMap.delete(directive.ruleId);
-          }
+    if (disableDirectivesForProblem.length > 0) {
+      const suppressions = disableDirectivesForProblem.map(directive => ({
+        kind: "directive",
+        justification: directive.unprocessedDirective.justification
+      }));
 
-          break;
-        // no default
+      if (problem.suppressions) {
+        problem.suppressions = problem.suppressions.concat(suppressions);
+      } else {
+        problem.suppressions = suppressions;
+        usedDisableDirectives.add(disableDirectivesForProblem[disableDirectivesForProblem.length - 1]);
       }
     }
 
-    if (disabledRuleMap.has(problem.ruleId)) {
-      usedDisableDirectives.add(disabledRuleMap.get(problem.ruleId));
-    } else if (currentGlobalDisableDirective && !enabledRules.has(problem.ruleId)) {
-      usedDisableDirectives.add(currentGlobalDisableDirective);
-    } else {
-      problems.push(problem);
-    }
+    problems.push(problem);
   }
 
   const unusedDisableDirectivesToReport = options.directives.filter(directive => directive.type === "disable" && !usedDisableDirectives.has(directive));
@@ -52559,13 +55198,19 @@ function applyDirectives(options) {
     let {
       description,
       fix,
-      position
+      unprocessedDirective
     } = _ref;
+    const {
+      parentComment,
+      type,
+      line,
+      column
+    } = unprocessedDirective;
     return {
       ruleId: null,
-      message: description ? "Unused eslint-disable directive (no problems were reported from ".concat(description, ").") : "Unused eslint-disable directive (no problems were reported).",
-      line: position.line,
-      column: position.column,
+      message: description ? `Unused eslint-disable directive (no problems were reported from ${description}).` : "Unused eslint-disable directive (no problems were reported).",
+      line: type === "disable-next-line" ? parentComment.commentToken.loc.start.line : line,
+      column: type === "disable-next-line" ? parentComment.commentToken.loc.start.column + 1 : column,
       severity: options.reportUnusedDisableDirectives === "warn" ? 1 : 2,
       nodeType: null,
       ...(options.disableFixes ? {} : {
@@ -52580,13 +55225,14 @@ function applyDirectives(options) {
 }
 /**
  * Given a list of directive comments (i.e. metadata about eslint-disable and eslint-enable comments) and a list
- * of reported problems, determines which problems should be reported.
+ * of reported problems, adds the suppression information to the problems.
  * @param {Object} options Information about directives and problems
  * @param {{
  *      type: ("disable"|"enable"|"disable-line"|"disable-next-line"),
  *      ruleId: (string|null),
  *      line: number,
- *      column: number
+ *      column: number,
+ *      justification: string
  * }} options.directives Directive comments found in the file, with one-based columns.
  * Two directive comments can only have the same location if they also have the same type (e.g. a single eslint-disable
  * comment for two different rules is represented as two directives).
@@ -52594,8 +55240,8 @@ function applyDirectives(options) {
  * A list of problems reported by rules, sorted by increasing location in the file, with one-based columns.
  * @param {"off" | "warn" | "error"} options.reportUnusedDisableDirectives If `"warn"` or `"error"`, adds additional problems for unused directives
  * @param {boolean} options.disableFixes If true, it doesn't make `fix` properties.
- * @returns {{ruleId: (string|null), line: number, column: number}[]}
- * A list of reported problems that were not disabled by the directive comments.
+ * @returns {{ruleId: (string|null), line: number, column: number, suppressions?: {kind: string, justification: string}}[]}
+ * An object with a list of reported problems, the suppressed of which contain the suppression information.
  */
 
 
@@ -52646,7 +55292,7 @@ module.exports = _ref2 => {
         }];
 
       default:
-        throw new TypeError("Unrecognized directive type '".concat(directive.type, "'"));
+        throw new TypeError(`Unrecognized directive type '${directive.type}'`);
     }
   }).sort(compareLocations);
   const blockDirectivesResult = applyDirectives({
@@ -52665,7 +55311,7 @@ module.exports = _ref2 => {
 };
 
 /***/ }),
-/* 525 */
+/* 595 */
 /***/ ((module) => {
 
 "use strict";
@@ -52682,7 +55328,7 @@ module.exports = string => {
 };
 
 /***/ }),
-/* 526 */
+/* 596 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -52696,14 +55342,14 @@ module.exports = string => {
 // Requirements
 //------------------------------------------------------------------------------
 
-const levn = __webpack_require__(527),
+const levn = __webpack_require__(597),
       {
   Legacy: {
     ConfigOps
   }
-} = __webpack_require__(445);
+} = __webpack_require__(515);
 
-const debug = __webpack_require__(496)("eslint:config-comment-parser"); //------------------------------------------------------------------------------
+const debug = __webpack_require__(566)("eslint:config-comment-parser"); //------------------------------------------------------------------------------
 // Public Interface
 //------------------------------------------------------------------------------
 
@@ -52777,7 +55423,7 @@ module.exports = class ConfigCommentParser {
     const normalizedString = string.replace(/([-a-zA-Z0-9/]+):/gu, "\"$1\":").replace(/(\]|[0-9])\s+(?=")/u, "$1,");
 
     try {
-      items = JSON.parse("{".concat(normalizedString, "}"));
+      items = JSON.parse(`{${normalizedString}}`);
     } catch (ex) {
       debug("Manual parsing failed.");
       return {
@@ -52786,7 +55432,7 @@ module.exports = class ConfigCommentParser {
           ruleId: null,
           fatal: true,
           severity: 2,
-          message: "Failed to parse JSON from '".concat(normalizedString, "': ").concat(ex.message),
+          message: `Failed to parse JSON from '${normalizedString}': ${ex.message}`,
           line: location.start.line,
           column: location.start.column + 1
         }
@@ -52807,9 +55453,8 @@ module.exports = class ConfigCommentParser {
 
   parseListConfig(string) {
     debug("Parsing list config");
-    const items = {}; // Collapse whitespace around commas
-
-    string.replace(/\s*,\s*/gu, ",").split(/,+/u).forEach(name => {
+    const items = {};
+    string.split(",").forEach(name => {
       const trimmedName = name.trim();
 
       if (trimmedName) {
@@ -52822,15 +55467,15 @@ module.exports = class ConfigCommentParser {
 };
 
 /***/ }),
-/* 527 */
+/* 597 */
 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 // Generated by LiveScript 1.6.0
 (function () {
   var parseString, cast, parseType, VERSION, parsedTypeParse, parse;
-  parseString = __webpack_require__(528);
-  cast = __webpack_require__(535);
-  parseType = (__webpack_require__(536).parseType);
+  parseString = __webpack_require__(598);
+  cast = __webpack_require__(605);
+  parseType = (__webpack_require__(606).parseType);
   VERSION = '0.4.1';
 
   parsedTypeParse = function (parsedType, string, options) {
@@ -52852,13 +55497,13 @@ module.exports = class ConfigCommentParser {
 }).call(this);
 
 /***/ }),
-/* 528 */
+/* 598 */
 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 // Generated by LiveScript 1.6.0
 (function () {
   var reject, special, tokenRegex;
-  reject = (__webpack_require__(529).reject);
+  reject = (__webpack_require__(599).reject);
 
   function consumeOp(tokens, op) {
     if (tokens[0] === op) {
@@ -52999,7 +55644,7 @@ module.exports = class ConfigCommentParser {
 }).call(this);
 
 /***/ }),
-/* 529 */
+/* 599 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // Generated by LiveScript 1.6.0
@@ -53013,11 +55658,11 @@ var Func,
     replicate,
     prelude,
     toString$ = {}.toString;
-Func = __webpack_require__(530);
-List = __webpack_require__(531);
-Obj = __webpack_require__(532);
-Str = __webpack_require__(533);
-Num = __webpack_require__(534);
+Func = __webpack_require__(600);
+List = __webpack_require__(601);
+Obj = __webpack_require__(602);
+Str = __webpack_require__(603);
+Num = __webpack_require__(604);
 
 id = function (x) {
   return x;
@@ -53196,7 +55841,7 @@ function curry$(f, bound) {
 }
 
 /***/ }),
-/* 530 */
+/* 600 */
 /***/ ((module) => {
 
 // Generated by LiveScript 1.6.0
@@ -53289,7 +55934,7 @@ function curry$(f, bound) {
 }
 
 /***/ }),
-/* 531 */
+/* 601 */
 /***/ ((module) => {
 
 // Generated by LiveScript 1.6.0
@@ -54318,7 +56963,7 @@ function not$(x) {
 }
 
 /***/ }),
-/* 532 */
+/* 602 */
 /***/ ((module) => {
 
 // Generated by LiveScript 1.6.0
@@ -54538,7 +57183,7 @@ function curry$(f, bound) {
 }
 
 /***/ }),
-/* 533 */
+/* 603 */
 /***/ ((module) => {
 
 // Generated by LiveScript 1.6.0
@@ -54649,7 +57294,7 @@ function curry$(f, bound) {
 }
 
 /***/ }),
-/* 534 */
+/* 604 */
 /***/ ((module) => {
 
 // Generated by LiveScript 1.6.0
@@ -54798,7 +57443,7 @@ function curry$(f, bound) {
 }
 
 /***/ }),
-/* 535 */
+/* 605 */
 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 // Generated by LiveScript 1.6.0
@@ -54806,7 +57451,7 @@ function curry$(f, bound) {
   var parsedTypeCheck,
       types,
       toString$ = {}.toString;
-  parsedTypeCheck = (__webpack_require__(536).parsedTypeCheck);
+  parsedTypeCheck = (__webpack_require__(606).parsedTypeCheck);
   types = {
     '*': function (value, options) {
       switch (toString$.call(value).slice(8, -1)) {
@@ -55179,15 +57824,15 @@ function curry$(f, bound) {
 }).call(this);
 
 /***/ }),
-/* 536 */
+/* 606 */
 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 // Generated by LiveScript 1.6.0
 (function () {
   var VERSION, parseType, parsedTypeCheck, typeCheck;
   VERSION = '0.4.0';
-  parseType = __webpack_require__(537);
-  parsedTypeCheck = __webpack_require__(538);
+  parseType = __webpack_require__(607);
+  parsedTypeCheck = __webpack_require__(608);
 
   typeCheck = function (type, input, options) {
     return parsedTypeCheck(parseType(type), input, options);
@@ -55202,7 +57847,7 @@ function curry$(f, bound) {
 }).call(this);
 
 /***/ }),
-/* 537 */
+/* 607 */
 /***/ (function(module) {
 
 // Generated by LiveScript 1.6.0
@@ -55455,7 +58100,7 @@ function curry$(f, bound) {
 }).call(this);
 
 /***/ }),
-/* 538 */
+/* 608 */
 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 
 // Generated by LiveScript 1.6.0
@@ -55467,7 +58112,7 @@ function curry$(f, bound) {
       types,
       defaultType,
       toString$ = {}.toString;
-  ref$ = __webpack_require__(529), any = ref$.any, all = ref$.all, isItNaN = ref$.isItNaN;
+  ref$ = __webpack_require__(599), any = ref$.any, all = ref$.all, isItNaN = ref$.isItNaN;
   types = {
     Number: {
       typeOf: 'Number',
@@ -55621,7 +58266,7 @@ function curry$(f, bound) {
 }).call(this);
 
 /***/ }),
-/* 539 */
+/* 609 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -55633,7 +58278,7 @@ function curry$(f, bound) {
 // Requirements
 //------------------------------------------------------------------------------
 
-const esquery = __webpack_require__(540); //------------------------------------------------------------------------------
+const esquery = __webpack_require__(610); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -55831,7 +58476,7 @@ function tryParseSelector(rawSelector) {
     return esquery.parse(rawSelector.replace(/:exit$/u, ""));
   } catch (err) {
     if (err.location && err.location.start && typeof err.location.start.offset === "number") {
-      throw new SyntaxError("Syntax error in selector \"".concat(rawSelector, "\" at position ").concat(err.location.start.offset, ": ").concat(err.message));
+      throw new SyntaxError(`Syntax error in selector "${rawSelector}" at position ${err.location.start.offset}: ${err.message}`);
     }
 
     throw err;
@@ -55990,7 +58635,7 @@ class NodeEventGenerator {
 module.exports = NodeEventGenerator;
 
 /***/ }),
-/* 540 */
+/* 610 */
 /***/ (function(module) {
 
 !function (e, t) {
@@ -57655,7 +60300,7 @@ module.exports = NodeEventGenerator;
 });
 
 /***/ }),
-/* 541 */
+/* 611 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -57667,11 +60312,11 @@ module.exports = NodeEventGenerator;
 // Requirements
 //------------------------------------------------------------------------------
 
-const assert = __webpack_require__(431);
+const assert = __webpack_require__(503);
 
-const ruleFixer = __webpack_require__(542);
+const ruleFixer = __webpack_require__(612);
 
-const interpolate = __webpack_require__(543); //------------------------------------------------------------------------------
+const interpolate = __webpack_require__(613); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -57786,7 +60431,7 @@ function normalizeReportLoc(descriptor) {
 
 function assertValidFix(fix) {
   if (fix) {
-    assert(fix.range && typeof fix.range[0] === "number" && typeof fix.range[1] === "number", "Fix has invalid range: ".concat(JSON.stringify(fix, null, 2)));
+    assert(fix.range && typeof fix.range[0] === "number" && typeof fix.range[1] === "number", `Fix has invalid range: ${JSON.stringify(fix, null, 2)}`);
   }
 }
 /**
@@ -57963,11 +60608,11 @@ function validateSuggestions(suggest, messages) {
         } = suggestion;
 
         if (!messages) {
-          throw new TypeError("context.report() called with a suggest option with a messageId '".concat(messageId, "', but no messages were present in the rule metadata."));
+          throw new TypeError(`context.report() called with a suggest option with a messageId '${messageId}', but no messages were present in the rule metadata.`);
         }
 
         if (!messages[messageId]) {
-          throw new TypeError("context.report() called with a suggest option with a messageId '".concat(messageId, "' which is not present in the 'messages' config: ").concat(JSON.stringify(messages, null, 2)));
+          throw new TypeError(`context.report() called with a suggest option with a messageId '${messageId}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`);
         }
 
         if (suggestion.desc) {
@@ -57978,7 +60623,7 @@ function validateSuggestions(suggest, messages) {
       }
 
       if (typeof suggestion.fix !== "function") {
-        throw new TypeError("context.report() called with a suggest option without a fix function. See: ".concat(suggestion));
+        throw new TypeError(`context.report() called with a suggest option without a fix function. See: ${suggestion}`);
       }
     });
   }
@@ -58017,7 +60662,7 @@ module.exports = function createReportTranslator(metadata) {
       }
 
       if (!messages || !Object.prototype.hasOwnProperty.call(messages, id)) {
-        throw new TypeError("context.report() called with a messageId of '".concat(id, "' which is not present in the 'messages' config: ").concat(JSON.stringify(messages, null, 2)));
+        throw new TypeError(`context.report() called with a messageId of '${id}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`);
       }
 
       computedMessage = messages[id];
@@ -58042,7 +60687,7 @@ module.exports = function createReportTranslator(metadata) {
 };
 
 /***/ }),
-/* 542 */
+/* 612 */
 /***/ ((module) => {
 
 "use strict";
@@ -58181,7 +60826,7 @@ const ruleFixer = Object.freeze({
 module.exports = ruleFixer;
 
 /***/ }),
-/* 543 */
+/* 613 */
 /***/ ((module) => {
 
 "use strict";
@@ -58212,7 +60857,7 @@ module.exports = (text, data) => {
 };
 
 /***/ }),
-/* 544 */
+/* 614 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -58225,7 +60870,7 @@ module.exports = (text, data) => {
 // Requirements
 //------------------------------------------------------------------------------
 
-const builtInRules = __webpack_require__(545); //------------------------------------------------------------------------------
+const builtInRules = __webpack_require__(615); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -58275,7 +60920,7 @@ class Rules {
 
   get(ruleId) {
     if (typeof this._rules[ruleId] === "string") {
-      this.define(ruleId, __webpack_require__(854)(this._rules[ruleId]));
+      this.define(ruleId, __webpack_require__(945)(this._rules[ruleId]));
     }
 
     if (this._rules[ruleId]) {
@@ -58302,7 +60947,7 @@ class Rules {
 module.exports = Rules;
 
 /***/ }),
-/* 545 */
+/* 615 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -58316,300 +60961,302 @@ module.exports = Rules;
 
 const {
   LazyLoadingRuleMap
-} = __webpack_require__(546);
+} = __webpack_require__(616);
 /** @type {Map<string, import("../shared/types").Rule>} */
 
 
 module.exports = new LazyLoadingRuleMap(Object.entries({
-  "accessor-pairs": () => __webpack_require__(547),
-  "array-bracket-newline": () => __webpack_require__(553),
-  "array-bracket-spacing": () => __webpack_require__(554),
-  "array-callback-return": () => __webpack_require__(555),
-  "array-element-newline": () => __webpack_require__(556),
-  "arrow-body-style": () => __webpack_require__(557),
-  "arrow-parens": () => __webpack_require__(558),
-  "arrow-spacing": () => __webpack_require__(559),
-  "block-scoped-var": () => __webpack_require__(560),
-  "block-spacing": () => __webpack_require__(561),
-  "brace-style": () => __webpack_require__(562),
-  "callback-return": () => __webpack_require__(563),
-  camelcase: () => __webpack_require__(564),
-  "capitalized-comments": () => __webpack_require__(565),
-  "class-methods-use-this": () => __webpack_require__(567),
-  "comma-dangle": () => __webpack_require__(568),
-  "comma-spacing": () => __webpack_require__(569),
-  "comma-style": () => __webpack_require__(570),
-  complexity: () => __webpack_require__(571),
-  "computed-property-spacing": () => __webpack_require__(573),
-  "consistent-return": () => __webpack_require__(574),
-  "consistent-this": () => __webpack_require__(575),
-  "constructor-super": () => __webpack_require__(576),
-  curly: () => __webpack_require__(577),
-  "default-case": () => __webpack_require__(578),
-  "default-case-last": () => __webpack_require__(579),
-  "default-param-last": () => __webpack_require__(580),
-  "dot-location": () => __webpack_require__(581),
-  "dot-notation": () => __webpack_require__(582),
-  "eol-last": () => __webpack_require__(584),
-  eqeqeq: () => __webpack_require__(585),
-  "for-direction": () => __webpack_require__(586),
-  "func-call-spacing": () => __webpack_require__(587),
-  "func-name-matching": () => __webpack_require__(588),
-  "func-names": () => __webpack_require__(589),
-  "func-style": () => __webpack_require__(590),
-  "function-call-argument-newline": () => __webpack_require__(591),
-  "function-paren-newline": () => __webpack_require__(592),
-  "generator-star-spacing": () => __webpack_require__(593),
-  "getter-return": () => __webpack_require__(594),
-  "global-require": () => __webpack_require__(595),
-  "grouped-accessor-pairs": () => __webpack_require__(596),
-  "guard-for-in": () => __webpack_require__(597),
-  "handle-callback-err": () => __webpack_require__(598),
-  "id-blacklist": () => __webpack_require__(599),
-  "id-denylist": () => __webpack_require__(600),
-  "id-length": () => __webpack_require__(601),
-  "id-match": () => __webpack_require__(602),
-  "implicit-arrow-linebreak": () => __webpack_require__(603),
-  indent: () => __webpack_require__(604),
-  "indent-legacy": () => __webpack_require__(606),
-  "init-declarations": () => __webpack_require__(607),
-  "jsx-quotes": () => __webpack_require__(608),
-  "key-spacing": () => __webpack_require__(609),
-  "keyword-spacing": () => __webpack_require__(610),
-  "line-comment-position": () => __webpack_require__(611),
-  "linebreak-style": () => __webpack_require__(612),
-  "lines-around-comment": () => __webpack_require__(613),
-  "lines-around-directive": () => __webpack_require__(614),
-  "lines-between-class-members": () => __webpack_require__(615),
-  "max-classes-per-file": () => __webpack_require__(616),
-  "max-depth": () => __webpack_require__(617),
-  "max-len": () => __webpack_require__(618),
-  "max-lines": () => __webpack_require__(619),
-  "max-lines-per-function": () => __webpack_require__(620),
-  "max-nested-callbacks": () => __webpack_require__(621),
-  "max-params": () => __webpack_require__(622),
-  "max-statements": () => __webpack_require__(623),
-  "max-statements-per-line": () => __webpack_require__(624),
-  "multiline-comment-style": () => __webpack_require__(625),
-  "multiline-ternary": () => __webpack_require__(626),
-  "new-cap": () => __webpack_require__(627),
-  "new-parens": () => __webpack_require__(628),
-  "newline-after-var": () => __webpack_require__(629),
-  "newline-before-return": () => __webpack_require__(630),
-  "newline-per-chained-call": () => __webpack_require__(631),
-  "no-alert": () => __webpack_require__(632),
-  "no-array-constructor": () => __webpack_require__(633),
-  "no-async-promise-executor": () => __webpack_require__(634),
-  "no-await-in-loop": () => __webpack_require__(635),
-  "no-bitwise": () => __webpack_require__(636),
-  "no-buffer-constructor": () => __webpack_require__(637),
-  "no-caller": () => __webpack_require__(638),
-  "no-case-declarations": () => __webpack_require__(639),
-  "no-catch-shadow": () => __webpack_require__(640),
-  "no-class-assign": () => __webpack_require__(641),
-  "no-compare-neg-zero": () => __webpack_require__(642),
-  "no-cond-assign": () => __webpack_require__(643),
-  "no-confusing-arrow": () => __webpack_require__(644),
-  "no-console": () => __webpack_require__(645),
-  "no-const-assign": () => __webpack_require__(646),
-  "no-constant-condition": () => __webpack_require__(647),
-  "no-constructor-return": () => __webpack_require__(648),
-  "no-continue": () => __webpack_require__(649),
-  "no-control-regex": () => __webpack_require__(650),
-  "no-debugger": () => __webpack_require__(652),
-  "no-delete-var": () => __webpack_require__(653),
-  "no-div-regex": () => __webpack_require__(654),
-  "no-dupe-args": () => __webpack_require__(655),
-  "no-dupe-class-members": () => __webpack_require__(656),
-  "no-dupe-else-if": () => __webpack_require__(657),
-  "no-dupe-keys": () => __webpack_require__(658),
-  "no-duplicate-case": () => __webpack_require__(659),
-  "no-duplicate-imports": () => __webpack_require__(660),
-  "no-else-return": () => __webpack_require__(661),
-  "no-empty": () => __webpack_require__(663),
-  "no-empty-character-class": () => __webpack_require__(664),
-  "no-empty-function": () => __webpack_require__(665),
-  "no-empty-pattern": () => __webpack_require__(666),
-  "no-eq-null": () => __webpack_require__(667),
-  "no-eval": () => __webpack_require__(668),
-  "no-ex-assign": () => __webpack_require__(669),
-  "no-extend-native": () => __webpack_require__(670),
-  "no-extra-bind": () => __webpack_require__(671),
-  "no-extra-boolean-cast": () => __webpack_require__(672),
-  "no-extra-label": () => __webpack_require__(673),
-  "no-extra-parens": () => __webpack_require__(674),
-  "no-extra-semi": () => __webpack_require__(675),
-  "no-fallthrough": () => __webpack_require__(676),
-  "no-floating-decimal": () => __webpack_require__(677),
-  "no-func-assign": () => __webpack_require__(678),
-  "no-global-assign": () => __webpack_require__(679),
-  "no-implicit-coercion": () => __webpack_require__(680),
-  "no-implicit-globals": () => __webpack_require__(681),
-  "no-implied-eval": () => __webpack_require__(682),
-  "no-import-assign": () => __webpack_require__(683),
-  "no-inline-comments": () => __webpack_require__(684),
-  "no-inner-declarations": () => __webpack_require__(685),
-  "no-invalid-regexp": () => __webpack_require__(686),
-  "no-invalid-this": () => __webpack_require__(687),
-  "no-irregular-whitespace": () => __webpack_require__(688),
-  "no-iterator": () => __webpack_require__(689),
-  "no-label-var": () => __webpack_require__(690),
-  "no-labels": () => __webpack_require__(691),
-  "no-lone-blocks": () => __webpack_require__(692),
-  "no-lonely-if": () => __webpack_require__(693),
-  "no-loop-func": () => __webpack_require__(694),
-  "no-loss-of-precision": () => __webpack_require__(695),
-  "no-magic-numbers": () => __webpack_require__(696),
-  "no-misleading-character-class": () => __webpack_require__(697),
-  "no-mixed-operators": () => __webpack_require__(703),
-  "no-mixed-requires": () => __webpack_require__(704),
-  "no-mixed-spaces-and-tabs": () => __webpack_require__(705),
-  "no-multi-assign": () => __webpack_require__(706),
-  "no-multi-spaces": () => __webpack_require__(707),
-  "no-multi-str": () => __webpack_require__(708),
-  "no-multiple-empty-lines": () => __webpack_require__(709),
-  "no-native-reassign": () => __webpack_require__(710),
-  "no-negated-condition": () => __webpack_require__(711),
-  "no-negated-in-lhs": () => __webpack_require__(712),
-  "no-nested-ternary": () => __webpack_require__(713),
-  "no-new": () => __webpack_require__(714),
-  "no-new-func": () => __webpack_require__(715),
-  "no-new-object": () => __webpack_require__(716),
-  "no-new-require": () => __webpack_require__(717),
-  "no-new-symbol": () => __webpack_require__(718),
-  "no-new-wrappers": () => __webpack_require__(719),
-  "no-nonoctal-decimal-escape": () => __webpack_require__(720),
-  "no-obj-calls": () => __webpack_require__(721),
-  "no-octal": () => __webpack_require__(722),
-  "no-octal-escape": () => __webpack_require__(723),
-  "no-param-reassign": () => __webpack_require__(724),
-  "no-path-concat": () => __webpack_require__(725),
-  "no-plusplus": () => __webpack_require__(726),
-  "no-process-env": () => __webpack_require__(727),
-  "no-process-exit": () => __webpack_require__(728),
-  "no-promise-executor-return": () => __webpack_require__(729),
-  "no-proto": () => __webpack_require__(730),
-  "no-prototype-builtins": () => __webpack_require__(731),
-  "no-redeclare": () => __webpack_require__(732),
-  "no-regex-spaces": () => __webpack_require__(733),
-  "no-restricted-exports": () => __webpack_require__(734),
-  "no-restricted-globals": () => __webpack_require__(735),
-  "no-restricted-imports": () => __webpack_require__(736),
-  "no-restricted-modules": () => __webpack_require__(738),
-  "no-restricted-properties": () => __webpack_require__(739),
-  "no-restricted-syntax": () => __webpack_require__(740),
-  "no-return-assign": () => __webpack_require__(741),
-  "no-return-await": () => __webpack_require__(742),
-  "no-script-url": () => __webpack_require__(743),
-  "no-self-assign": () => __webpack_require__(744),
-  "no-self-compare": () => __webpack_require__(745),
-  "no-sequences": () => __webpack_require__(746),
-  "no-setter-return": () => __webpack_require__(747),
-  "no-shadow": () => __webpack_require__(748),
-  "no-shadow-restricted-names": () => __webpack_require__(749),
-  "no-spaced-func": () => __webpack_require__(750),
-  "no-sparse-arrays": () => __webpack_require__(751),
-  "no-sync": () => __webpack_require__(752),
-  "no-tabs": () => __webpack_require__(753),
-  "no-template-curly-in-string": () => __webpack_require__(754),
-  "no-ternary": () => __webpack_require__(755),
-  "no-this-before-super": () => __webpack_require__(756),
-  "no-throw-literal": () => __webpack_require__(757),
-  "no-trailing-spaces": () => __webpack_require__(758),
-  "no-undef": () => __webpack_require__(759),
-  "no-undef-init": () => __webpack_require__(760),
-  "no-undefined": () => __webpack_require__(761),
-  "no-underscore-dangle": () => __webpack_require__(762),
-  "no-unexpected-multiline": () => __webpack_require__(763),
-  "no-unmodified-loop-condition": () => __webpack_require__(764),
-  "no-unneeded-ternary": () => __webpack_require__(765),
-  "no-unreachable": () => __webpack_require__(766),
-  "no-unreachable-loop": () => __webpack_require__(767),
-  "no-unsafe-finally": () => __webpack_require__(768),
-  "no-unsafe-negation": () => __webpack_require__(769),
-  "no-unsafe-optional-chaining": () => __webpack_require__(770),
-  "no-unused-expressions": () => __webpack_require__(771),
-  "no-unused-labels": () => __webpack_require__(772),
-  "no-unused-private-class-members": () => __webpack_require__(773),
-  "no-unused-vars": () => __webpack_require__(774),
-  "no-use-before-define": () => __webpack_require__(775),
-  "no-useless-backreference": () => __webpack_require__(776),
-  "no-useless-call": () => __webpack_require__(777),
-  "no-useless-catch": () => __webpack_require__(778),
-  "no-useless-computed-key": () => __webpack_require__(779),
-  "no-useless-concat": () => __webpack_require__(780),
-  "no-useless-constructor": () => __webpack_require__(781),
-  "no-useless-escape": () => __webpack_require__(782),
-  "no-useless-rename": () => __webpack_require__(783),
-  "no-useless-return": () => __webpack_require__(784),
-  "no-var": () => __webpack_require__(785),
-  "no-void": () => __webpack_require__(786),
-  "no-warning-comments": () => __webpack_require__(787),
-  "no-whitespace-before-property": () => __webpack_require__(788),
-  "no-with": () => __webpack_require__(789),
-  "nonblock-statement-body-position": () => __webpack_require__(790),
-  "object-curly-newline": () => __webpack_require__(791),
-  "object-curly-spacing": () => __webpack_require__(792),
-  "object-property-newline": () => __webpack_require__(793),
-  "object-shorthand": () => __webpack_require__(794),
-  "one-var": () => __webpack_require__(795),
-  "one-var-declaration-per-line": () => __webpack_require__(796),
-  "operator-assignment": () => __webpack_require__(797),
-  "operator-linebreak": () => __webpack_require__(798),
-  "padded-blocks": () => __webpack_require__(799),
-  "padding-line-between-statements": () => __webpack_require__(800),
-  "prefer-arrow-callback": () => __webpack_require__(801),
-  "prefer-const": () => __webpack_require__(802),
-  "prefer-destructuring": () => __webpack_require__(803),
-  "prefer-exponentiation-operator": () => __webpack_require__(804),
-  "prefer-named-capture-group": () => __webpack_require__(805),
-  "prefer-numeric-literals": () => __webpack_require__(806),
-  "prefer-object-spread": () => __webpack_require__(807),
-  "prefer-promise-reject-errors": () => __webpack_require__(808),
-  "prefer-reflect": () => __webpack_require__(809),
-  "prefer-regex-literals": () => __webpack_require__(810),
-  "prefer-rest-params": () => __webpack_require__(811),
-  "prefer-spread": () => __webpack_require__(812),
-  "prefer-template": () => __webpack_require__(813),
-  "quote-props": () => __webpack_require__(814),
-  quotes: () => __webpack_require__(815),
-  radix: () => __webpack_require__(816),
-  "require-atomic-updates": () => __webpack_require__(817),
-  "require-await": () => __webpack_require__(818),
-  "require-jsdoc": () => __webpack_require__(819),
-  "require-unicode-regexp": () => __webpack_require__(820),
-  "require-yield": () => __webpack_require__(821),
-  "rest-spread-spacing": () => __webpack_require__(822),
-  semi: () => __webpack_require__(823),
-  "semi-spacing": () => __webpack_require__(824),
-  "semi-style": () => __webpack_require__(825),
-  "sort-imports": () => __webpack_require__(826),
-  "sort-keys": () => __webpack_require__(827),
-  "sort-vars": () => __webpack_require__(829),
-  "space-before-blocks": () => __webpack_require__(830),
-  "space-before-function-paren": () => __webpack_require__(831),
-  "space-in-parens": () => __webpack_require__(832),
-  "space-infix-ops": () => __webpack_require__(833),
-  "space-unary-ops": () => __webpack_require__(834),
-  "spaced-comment": () => __webpack_require__(835),
-  strict: () => __webpack_require__(836),
-  "switch-colon-spacing": () => __webpack_require__(837),
-  "symbol-description": () => __webpack_require__(838),
-  "template-curly-spacing": () => __webpack_require__(839),
-  "template-tag-spacing": () => __webpack_require__(840),
-  "unicode-bom": () => __webpack_require__(841),
-  "use-isnan": () => __webpack_require__(842),
-  "valid-jsdoc": () => __webpack_require__(843),
-  "valid-typeof": () => __webpack_require__(848),
-  "vars-on-top": () => __webpack_require__(849),
-  "wrap-iife": () => __webpack_require__(850),
-  "wrap-regex": () => __webpack_require__(851),
-  "yield-star-spacing": () => __webpack_require__(852),
-  yoda: () => __webpack_require__(853)
+  "accessor-pairs": () => __webpack_require__(617),
+  "array-bracket-newline": () => __webpack_require__(623),
+  "array-bracket-spacing": () => __webpack_require__(624),
+  "array-callback-return": () => __webpack_require__(625),
+  "array-element-newline": () => __webpack_require__(626),
+  "arrow-body-style": () => __webpack_require__(627),
+  "arrow-parens": () => __webpack_require__(628),
+  "arrow-spacing": () => __webpack_require__(629),
+  "block-scoped-var": () => __webpack_require__(630),
+  "block-spacing": () => __webpack_require__(631),
+  "brace-style": () => __webpack_require__(632),
+  "callback-return": () => __webpack_require__(633),
+  camelcase: () => __webpack_require__(634),
+  "capitalized-comments": () => __webpack_require__(635),
+  "class-methods-use-this": () => __webpack_require__(637),
+  "comma-dangle": () => __webpack_require__(638),
+  "comma-spacing": () => __webpack_require__(639),
+  "comma-style": () => __webpack_require__(640),
+  complexity: () => __webpack_require__(641),
+  "computed-property-spacing": () => __webpack_require__(643),
+  "consistent-return": () => __webpack_require__(644),
+  "consistent-this": () => __webpack_require__(645),
+  "constructor-super": () => __webpack_require__(646),
+  curly: () => __webpack_require__(647),
+  "default-case": () => __webpack_require__(648),
+  "default-case-last": () => __webpack_require__(649),
+  "default-param-last": () => __webpack_require__(650),
+  "dot-location": () => __webpack_require__(651),
+  "dot-notation": () => __webpack_require__(652),
+  "eol-last": () => __webpack_require__(654),
+  eqeqeq: () => __webpack_require__(655),
+  "for-direction": () => __webpack_require__(656),
+  "func-call-spacing": () => __webpack_require__(657),
+  "func-name-matching": () => __webpack_require__(658),
+  "func-names": () => __webpack_require__(659),
+  "func-style": () => __webpack_require__(660),
+  "function-call-argument-newline": () => __webpack_require__(661),
+  "function-paren-newline": () => __webpack_require__(662),
+  "generator-star-spacing": () => __webpack_require__(663),
+  "getter-return": () => __webpack_require__(664),
+  "global-require": () => __webpack_require__(665),
+  "grouped-accessor-pairs": () => __webpack_require__(666),
+  "guard-for-in": () => __webpack_require__(667),
+  "handle-callback-err": () => __webpack_require__(668),
+  "id-blacklist": () => __webpack_require__(669),
+  "id-denylist": () => __webpack_require__(670),
+  "id-length": () => __webpack_require__(671),
+  "id-match": () => __webpack_require__(672),
+  "implicit-arrow-linebreak": () => __webpack_require__(673),
+  indent: () => __webpack_require__(674),
+  "indent-legacy": () => __webpack_require__(694),
+  "init-declarations": () => __webpack_require__(695),
+  "jsx-quotes": () => __webpack_require__(696),
+  "key-spacing": () => __webpack_require__(697),
+  "keyword-spacing": () => __webpack_require__(699),
+  "line-comment-position": () => __webpack_require__(700),
+  "linebreak-style": () => __webpack_require__(701),
+  "lines-around-comment": () => __webpack_require__(702),
+  "lines-around-directive": () => __webpack_require__(703),
+  "lines-between-class-members": () => __webpack_require__(704),
+  "max-classes-per-file": () => __webpack_require__(705),
+  "max-depth": () => __webpack_require__(706),
+  "max-len": () => __webpack_require__(707),
+  "max-lines": () => __webpack_require__(708),
+  "max-lines-per-function": () => __webpack_require__(709),
+  "max-nested-callbacks": () => __webpack_require__(710),
+  "max-params": () => __webpack_require__(711),
+  "max-statements": () => __webpack_require__(712),
+  "max-statements-per-line": () => __webpack_require__(713),
+  "multiline-comment-style": () => __webpack_require__(714),
+  "multiline-ternary": () => __webpack_require__(715),
+  "new-cap": () => __webpack_require__(716),
+  "new-parens": () => __webpack_require__(717),
+  "newline-after-var": () => __webpack_require__(718),
+  "newline-before-return": () => __webpack_require__(719),
+  "newline-per-chained-call": () => __webpack_require__(720),
+  "no-alert": () => __webpack_require__(721),
+  "no-array-constructor": () => __webpack_require__(722),
+  "no-async-promise-executor": () => __webpack_require__(723),
+  "no-await-in-loop": () => __webpack_require__(724),
+  "no-bitwise": () => __webpack_require__(725),
+  "no-buffer-constructor": () => __webpack_require__(726),
+  "no-caller": () => __webpack_require__(727),
+  "no-case-declarations": () => __webpack_require__(728),
+  "no-catch-shadow": () => __webpack_require__(729),
+  "no-class-assign": () => __webpack_require__(730),
+  "no-compare-neg-zero": () => __webpack_require__(731),
+  "no-cond-assign": () => __webpack_require__(732),
+  "no-confusing-arrow": () => __webpack_require__(733),
+  "no-console": () => __webpack_require__(734),
+  "no-const-assign": () => __webpack_require__(735),
+  "no-constant-binary-expression": () => __webpack_require__(736),
+  "no-constant-condition": () => __webpack_require__(737),
+  "no-constructor-return": () => __webpack_require__(738),
+  "no-continue": () => __webpack_require__(739),
+  "no-control-regex": () => __webpack_require__(740),
+  "no-debugger": () => __webpack_require__(742),
+  "no-delete-var": () => __webpack_require__(743),
+  "no-div-regex": () => __webpack_require__(744),
+  "no-dupe-args": () => __webpack_require__(745),
+  "no-dupe-class-members": () => __webpack_require__(746),
+  "no-dupe-else-if": () => __webpack_require__(747),
+  "no-dupe-keys": () => __webpack_require__(748),
+  "no-duplicate-case": () => __webpack_require__(749),
+  "no-duplicate-imports": () => __webpack_require__(750),
+  "no-else-return": () => __webpack_require__(751),
+  "no-empty": () => __webpack_require__(753),
+  "no-empty-character-class": () => __webpack_require__(754),
+  "no-empty-function": () => __webpack_require__(755),
+  "no-empty-pattern": () => __webpack_require__(756),
+  "no-eq-null": () => __webpack_require__(757),
+  "no-eval": () => __webpack_require__(758),
+  "no-ex-assign": () => __webpack_require__(759),
+  "no-extend-native": () => __webpack_require__(760),
+  "no-extra-bind": () => __webpack_require__(761),
+  "no-extra-boolean-cast": () => __webpack_require__(762),
+  "no-extra-label": () => __webpack_require__(763),
+  "no-extra-parens": () => __webpack_require__(764),
+  "no-extra-semi": () => __webpack_require__(765),
+  "no-fallthrough": () => __webpack_require__(766),
+  "no-floating-decimal": () => __webpack_require__(767),
+  "no-func-assign": () => __webpack_require__(768),
+  "no-global-assign": () => __webpack_require__(769),
+  "no-implicit-coercion": () => __webpack_require__(770),
+  "no-implicit-globals": () => __webpack_require__(771),
+  "no-implied-eval": () => __webpack_require__(772),
+  "no-import-assign": () => __webpack_require__(773),
+  "no-inline-comments": () => __webpack_require__(774),
+  "no-inner-declarations": () => __webpack_require__(775),
+  "no-invalid-regexp": () => __webpack_require__(776),
+  "no-invalid-this": () => __webpack_require__(777),
+  "no-irregular-whitespace": () => __webpack_require__(778),
+  "no-iterator": () => __webpack_require__(779),
+  "no-label-var": () => __webpack_require__(780),
+  "no-labels": () => __webpack_require__(781),
+  "no-lone-blocks": () => __webpack_require__(782),
+  "no-lonely-if": () => __webpack_require__(783),
+  "no-loop-func": () => __webpack_require__(784),
+  "no-loss-of-precision": () => __webpack_require__(785),
+  "no-magic-numbers": () => __webpack_require__(786),
+  "no-misleading-character-class": () => __webpack_require__(787),
+  "no-mixed-operators": () => __webpack_require__(793),
+  "no-mixed-requires": () => __webpack_require__(794),
+  "no-mixed-spaces-and-tabs": () => __webpack_require__(795),
+  "no-multi-assign": () => __webpack_require__(796),
+  "no-multi-spaces": () => __webpack_require__(797),
+  "no-multi-str": () => __webpack_require__(798),
+  "no-multiple-empty-lines": () => __webpack_require__(799),
+  "no-native-reassign": () => __webpack_require__(800),
+  "no-negated-condition": () => __webpack_require__(801),
+  "no-negated-in-lhs": () => __webpack_require__(802),
+  "no-nested-ternary": () => __webpack_require__(803),
+  "no-new": () => __webpack_require__(804),
+  "no-new-func": () => __webpack_require__(805),
+  "no-new-object": () => __webpack_require__(806),
+  "no-new-require": () => __webpack_require__(807),
+  "no-new-symbol": () => __webpack_require__(808),
+  "no-new-wrappers": () => __webpack_require__(809),
+  "no-nonoctal-decimal-escape": () => __webpack_require__(810),
+  "no-obj-calls": () => __webpack_require__(811),
+  "no-octal": () => __webpack_require__(812),
+  "no-octal-escape": () => __webpack_require__(813),
+  "no-param-reassign": () => __webpack_require__(814),
+  "no-path-concat": () => __webpack_require__(815),
+  "no-plusplus": () => __webpack_require__(816),
+  "no-process-env": () => __webpack_require__(817),
+  "no-process-exit": () => __webpack_require__(818),
+  "no-promise-executor-return": () => __webpack_require__(819),
+  "no-proto": () => __webpack_require__(820),
+  "no-prototype-builtins": () => __webpack_require__(821),
+  "no-redeclare": () => __webpack_require__(822),
+  "no-regex-spaces": () => __webpack_require__(823),
+  "no-restricted-exports": () => __webpack_require__(824),
+  "no-restricted-globals": () => __webpack_require__(825),
+  "no-restricted-imports": () => __webpack_require__(826),
+  "no-restricted-modules": () => __webpack_require__(828),
+  "no-restricted-properties": () => __webpack_require__(829),
+  "no-restricted-syntax": () => __webpack_require__(830),
+  "no-return-assign": () => __webpack_require__(831),
+  "no-return-await": () => __webpack_require__(832),
+  "no-script-url": () => __webpack_require__(833),
+  "no-self-assign": () => __webpack_require__(834),
+  "no-self-compare": () => __webpack_require__(835),
+  "no-sequences": () => __webpack_require__(836),
+  "no-setter-return": () => __webpack_require__(837),
+  "no-shadow": () => __webpack_require__(838),
+  "no-shadow-restricted-names": () => __webpack_require__(839),
+  "no-spaced-func": () => __webpack_require__(840),
+  "no-sparse-arrays": () => __webpack_require__(841),
+  "no-sync": () => __webpack_require__(842),
+  "no-tabs": () => __webpack_require__(843),
+  "no-template-curly-in-string": () => __webpack_require__(844),
+  "no-ternary": () => __webpack_require__(845),
+  "no-this-before-super": () => __webpack_require__(846),
+  "no-throw-literal": () => __webpack_require__(847),
+  "no-trailing-spaces": () => __webpack_require__(848),
+  "no-undef": () => __webpack_require__(849),
+  "no-undef-init": () => __webpack_require__(850),
+  "no-undefined": () => __webpack_require__(851),
+  "no-underscore-dangle": () => __webpack_require__(852),
+  "no-unexpected-multiline": () => __webpack_require__(853),
+  "no-unmodified-loop-condition": () => __webpack_require__(854),
+  "no-unneeded-ternary": () => __webpack_require__(855),
+  "no-unreachable": () => __webpack_require__(856),
+  "no-unreachable-loop": () => __webpack_require__(857),
+  "no-unsafe-finally": () => __webpack_require__(858),
+  "no-unsafe-negation": () => __webpack_require__(859),
+  "no-unsafe-optional-chaining": () => __webpack_require__(860),
+  "no-unused-expressions": () => __webpack_require__(861),
+  "no-unused-labels": () => __webpack_require__(862),
+  "no-unused-private-class-members": () => __webpack_require__(863),
+  "no-unused-vars": () => __webpack_require__(864),
+  "no-use-before-define": () => __webpack_require__(865),
+  "no-useless-backreference": () => __webpack_require__(866),
+  "no-useless-call": () => __webpack_require__(867),
+  "no-useless-catch": () => __webpack_require__(868),
+  "no-useless-computed-key": () => __webpack_require__(869),
+  "no-useless-concat": () => __webpack_require__(870),
+  "no-useless-constructor": () => __webpack_require__(871),
+  "no-useless-escape": () => __webpack_require__(872),
+  "no-useless-rename": () => __webpack_require__(873),
+  "no-useless-return": () => __webpack_require__(874),
+  "no-var": () => __webpack_require__(875),
+  "no-void": () => __webpack_require__(876),
+  "no-warning-comments": () => __webpack_require__(877),
+  "no-whitespace-before-property": () => __webpack_require__(878),
+  "no-with": () => __webpack_require__(879),
+  "nonblock-statement-body-position": () => __webpack_require__(880),
+  "object-curly-newline": () => __webpack_require__(881),
+  "object-curly-spacing": () => __webpack_require__(882),
+  "object-property-newline": () => __webpack_require__(883),
+  "object-shorthand": () => __webpack_require__(884),
+  "one-var": () => __webpack_require__(885),
+  "one-var-declaration-per-line": () => __webpack_require__(886),
+  "operator-assignment": () => __webpack_require__(887),
+  "operator-linebreak": () => __webpack_require__(888),
+  "padded-blocks": () => __webpack_require__(889),
+  "padding-line-between-statements": () => __webpack_require__(890),
+  "prefer-arrow-callback": () => __webpack_require__(891),
+  "prefer-const": () => __webpack_require__(892),
+  "prefer-destructuring": () => __webpack_require__(893),
+  "prefer-exponentiation-operator": () => __webpack_require__(894),
+  "prefer-named-capture-group": () => __webpack_require__(895),
+  "prefer-numeric-literals": () => __webpack_require__(896),
+  "prefer-object-has-own": () => __webpack_require__(897),
+  "prefer-object-spread": () => __webpack_require__(898),
+  "prefer-promise-reject-errors": () => __webpack_require__(899),
+  "prefer-reflect": () => __webpack_require__(900),
+  "prefer-regex-literals": () => __webpack_require__(901),
+  "prefer-rest-params": () => __webpack_require__(902),
+  "prefer-spread": () => __webpack_require__(903),
+  "prefer-template": () => __webpack_require__(904),
+  "quote-props": () => __webpack_require__(905),
+  quotes: () => __webpack_require__(906),
+  radix: () => __webpack_require__(907),
+  "require-atomic-updates": () => __webpack_require__(908),
+  "require-await": () => __webpack_require__(909),
+  "require-jsdoc": () => __webpack_require__(910),
+  "require-unicode-regexp": () => __webpack_require__(911),
+  "require-yield": () => __webpack_require__(912),
+  "rest-spread-spacing": () => __webpack_require__(913),
+  semi: () => __webpack_require__(914),
+  "semi-spacing": () => __webpack_require__(915),
+  "semi-style": () => __webpack_require__(916),
+  "sort-imports": () => __webpack_require__(917),
+  "sort-keys": () => __webpack_require__(918),
+  "sort-vars": () => __webpack_require__(920),
+  "space-before-blocks": () => __webpack_require__(921),
+  "space-before-function-paren": () => __webpack_require__(922),
+  "space-in-parens": () => __webpack_require__(923),
+  "space-infix-ops": () => __webpack_require__(924),
+  "space-unary-ops": () => __webpack_require__(925),
+  "spaced-comment": () => __webpack_require__(926),
+  strict: () => __webpack_require__(927),
+  "switch-colon-spacing": () => __webpack_require__(928),
+  "symbol-description": () => __webpack_require__(929),
+  "template-curly-spacing": () => __webpack_require__(930),
+  "template-tag-spacing": () => __webpack_require__(931),
+  "unicode-bom": () => __webpack_require__(932),
+  "use-isnan": () => __webpack_require__(933),
+  "valid-jsdoc": () => __webpack_require__(934),
+  "valid-typeof": () => __webpack_require__(939),
+  "vars-on-top": () => __webpack_require__(940),
+  "wrap-iife": () => __webpack_require__(941),
+  "wrap-regex": () => __webpack_require__(942),
+  "yield-star-spacing": () => __webpack_require__(943),
+  yoda: () => __webpack_require__(944)
 }));
 
 /***/ }),
-/* 546 */
+/* 616 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -58619,7 +61266,7 @@ module.exports = new LazyLoadingRuleMap(Object.entries({
  */
 
 
-const debug = __webpack_require__(496)("eslint:rules");
+const debug = __webpack_require__(566)("eslint:rules");
 /** @typedef {import("./types").Rule} Rule */
 
 /**
@@ -58733,7 +61380,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 547 */
+/* 617 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -58745,7 +61392,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -58866,7 +61513,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce getter and setter pairs in objects and classes",
+      description: "Enforce getter and setter pairs in objects and classes",
       recommended: false,
       url: "https://eslint.org/docs/rules/accessor-pairs"
     },
@@ -58916,7 +61563,7 @@ module.exports = {
       if (node.type === "Property") {
         context.report({
           node,
-          messageId: "".concat(messageKind, "InObjectLiteral"),
+          messageId: `${messageKind}InObjectLiteral`,
           loc: astUtils.getFunctionHeadLoc(node.value, sourceCode),
           data: {
             name: astUtils.getFunctionNameWithKind(node.value)
@@ -58925,7 +61572,7 @@ module.exports = {
       } else if (node.type === "MethodDefinition") {
         context.report({
           node,
-          messageId: "".concat(messageKind, "InClass"),
+          messageId: `${messageKind}InClass`,
           loc: astUtils.getFunctionHeadLoc(node.value, sourceCode),
           data: {
             name: astUtils.getFunctionNameWithKind(node.value)
@@ -58934,7 +61581,7 @@ module.exports = {
       } else {
         context.report({
           node,
-          messageId: "".concat(messageKind, "InPropertyDescriptor")
+          messageId: `${messageKind}InPropertyDescriptor`
         });
       }
     }
@@ -59034,14 +61681,14 @@ module.exports = {
 
 
     function checkPropertyDescriptor(node) {
-      const namesToCheck = node.properties.filter(p => p.type === "Property" && p.kind === "init" && !p.computed).map(_ref => {
+      const namesToCheck = new Set(node.properties.filter(p => p.type === "Property" && p.kind === "init" && !p.computed).map(_ref => {
         let {
           key
         } = _ref;
         return key.name;
-      });
-      const hasGetter = namesToCheck.includes("get");
-      const hasSetter = namesToCheck.includes("set");
+      }));
+      const hasGetter = namesToCheck.has("get");
+      const hasSetter = namesToCheck.has("set");
 
       if (checkSetWithoutGet && hasSetter && !hasGetter) {
         report(node, "missingGetter");
@@ -59096,7 +61743,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 548 */
+/* 618 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -59108,18 +61755,18 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const esutils = __webpack_require__(549);
+const esutils = __webpack_require__(619);
 
-const espree = __webpack_require__(436);
+const espree = __webpack_require__(508);
 
-const escapeRegExp = __webpack_require__(525);
+const escapeRegExp = __webpack_require__(595);
 
 const {
   breakableTypePattern,
   createGlobalLinebreakMatcher,
   lineBreakPattern,
   shebangPattern
-} = __webpack_require__(444); //------------------------------------------------------------------------------
+} = __webpack_require__(514); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -59131,6 +61778,7 @@ const arrayMethodPattern = /^(?:every|filter|find|findIndex|forEach|map|some)$/u
 const bindOrCallOrApplyPattern = /^(?:bind|call|apply)$/u;
 const thisTagPattern = /^[\s*]*@this/mu;
 const COMMENTS_IGNORE_PATTERN = /^\s*(?:eslint|jshint\s+|jslint\s+|istanbul\s+|globals?\s+|exported\s+|jscs)/u;
+const ESLINT_DIRECTIVE_PATTERN = /^(?:eslint[- ]|(?:globals?|exported) )/u;
 const LINEBREAKS = new Set(["\r\n", "\r", "\n", "\u2028", "\u2029"]); // A set of node types that can contain a list of statements
 
 const STATEMENT_LIST_PARENTS = new Set(["Program", "BlockStatement", "StaticBlock", "SwitchCase"]);
@@ -59300,7 +61948,7 @@ function getStaticStringValue(node) {
         }
 
         if (node.regex) {
-          return "/".concat(node.regex.pattern, "/").concat(node.regex.flags);
+          return `/${node.regex.pattern}/${node.regex.flags}`;
         }
 
         if (node.bigint) {
@@ -59874,6 +62522,211 @@ function getSwitchCaseColonToken(node, sourceCode) {
   }
 
   return sourceCode.getFirstToken(node, 1);
+}
+/**
+ * Gets ESM module export name represented by the given node.
+ * @param {ASTNode} node `Identifier` or string `Literal` node in a position
+ * that represents a module export name:
+ *   - `ImportSpecifier#imported`
+ *   - `ExportSpecifier#local` (if it is a re-export from another module)
+ *   - `ExportSpecifier#exported`
+ *   - `ExportAllDeclaration#exported`
+ * @returns {string} The module export name.
+ */
+
+
+function getModuleExportName(node) {
+  if (node.type === "Identifier") {
+    return node.name;
+  } // string literal
+
+
+  return node.value;
+}
+/**
+ * Returns literal's value converted to the Boolean type
+ * @param {ASTNode} node any `Literal` node
+ * @returns {boolean | null} `true` when node is truthy, `false` when node is falsy,
+ *  `null` when it cannot be determined.
+ */
+
+
+function getBooleanValue(node) {
+  if (node.value === null) {
+    /*
+     * it might be a null literal or bigint/regex literal in unsupported environments .
+     * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es5.md#regexpliteral
+     * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es2020.md#bigintliteral
+     */
+    if (node.raw === "null") {
+      return false;
+    } // regex is always truthy
+
+
+    if (typeof node.regex === "object") {
+      return true;
+    }
+
+    return null;
+  }
+
+  return !!node.value;
+}
+/**
+ * Checks if a branch node of LogicalExpression short circuits the whole condition
+ * @param {ASTNode} node The branch of main condition which needs to be checked
+ * @param {string} operator The operator of the main LogicalExpression.
+ * @returns {boolean} true when condition short circuits whole condition
+ */
+
+
+function isLogicalIdentity(node, operator) {
+  switch (node.type) {
+    case "Literal":
+      return operator === "||" && getBooleanValue(node) === true || operator === "&&" && getBooleanValue(node) === false;
+
+    case "UnaryExpression":
+      return operator === "&&" && node.operator === "void";
+
+    case "LogicalExpression":
+      /*
+       * handles `a && false || b`
+       * `false` is an identity element of `&&` but not `||`
+       */
+      return operator === node.operator && (isLogicalIdentity(node.left, operator) || isLogicalIdentity(node.right, operator));
+
+    case "AssignmentExpression":
+      return ["||=", "&&="].includes(node.operator) && operator === node.operator.slice(0, -1) && isLogicalIdentity(node.right, operator);
+    // no default
+  }
+
+  return false;
+}
+/**
+ * Checks if an identifier is a reference to a global variable.
+ * @param {Scope} scope The scope in which the identifier is referenced.
+ * @param {ASTNode} node An identifier node to check.
+ * @returns {boolean} `true` if the identifier is a reference to a global variable.
+ */
+
+
+function isReferenceToGlobalVariable(scope, node) {
+  const reference = scope.references.find(ref => ref.identifier === node);
+  return Boolean(reference && reference.resolved && reference.resolved.scope.type === "global" && reference.resolved.defs.length === 0);
+}
+/**
+ * Checks if a  node has a constant truthiness value.
+ * @param {Scope} scope Scope in which the node appears.
+ * @param {ASTNode} node The AST node to check.
+ * @param {boolean} inBooleanPosition `true` if checking the test of a
+ * condition. `false` in all other cases. When `false`, checks if -- for
+ * both string and number -- if coerced to that type, the value will
+ * be constant.
+ * @returns {boolean} true when node's truthiness is constant
+ * @private
+ */
+
+
+function isConstant(scope, node, inBooleanPosition) {
+  // node.elements can return null values in the case of sparse arrays ex. [,]
+  if (!node) {
+    return true;
+  }
+
+  switch (node.type) {
+    case "Literal":
+    case "ArrowFunctionExpression":
+    case "FunctionExpression":
+      return true;
+
+    case "ClassExpression":
+    case "ObjectExpression":
+      /**
+       * In theory objects like:
+       *
+       * `{toString: () => a}`
+       * `{valueOf: () => a}`
+       *
+       * Or a classes like:
+       *
+       * `class { static toString() { return a } }`
+       * `class { static valueOf() { return a } }`
+       *
+       * Are not constant verifiably when `inBooleanPosition` is
+       * false, but it's an edge case we've opted not to handle.
+       */
+      return true;
+
+    case "TemplateLiteral":
+      return inBooleanPosition && node.quasis.some(quasi => quasi.value.cooked.length) || node.expressions.every(exp => isConstant(scope, exp, false));
+
+    case "ArrayExpression":
+      {
+        if (!inBooleanPosition) {
+          return node.elements.every(element => isConstant(scope, element, false));
+        }
+
+        return true;
+      }
+
+    case "UnaryExpression":
+      if (node.operator === "void" || node.operator === "typeof" && inBooleanPosition) {
+        return true;
+      }
+
+      if (node.operator === "!") {
+        return isConstant(scope, node.argument, true);
+      }
+
+      return isConstant(scope, node.argument, false);
+
+    case "BinaryExpression":
+      return isConstant(scope, node.left, false) && isConstant(scope, node.right, false) && node.operator !== "in";
+
+    case "LogicalExpression":
+      {
+        const isLeftConstant = isConstant(scope, node.left, inBooleanPosition);
+        const isRightConstant = isConstant(scope, node.right, inBooleanPosition);
+        const isLeftShortCircuit = isLeftConstant && isLogicalIdentity(node.left, node.operator);
+        const isRightShortCircuit = inBooleanPosition && isRightConstant && isLogicalIdentity(node.right, node.operator);
+        return isLeftConstant && isRightConstant || isLeftShortCircuit || isRightShortCircuit;
+      }
+
+    case "NewExpression":
+      return inBooleanPosition;
+
+    case "AssignmentExpression":
+      if (node.operator === "=") {
+        return isConstant(scope, node.right, inBooleanPosition);
+      }
+
+      if (["||=", "&&="].includes(node.operator) && inBooleanPosition) {
+        return isLogicalIdentity(node.right, node.operator.slice(0, -1));
+      }
+
+      return false;
+
+    case "SequenceExpression":
+      return isConstant(scope, node.expressions[node.expressions.length - 1], inBooleanPosition);
+
+    case "SpreadElement":
+      return isConstant(scope, node.argument, inBooleanPosition);
+
+    case "CallExpression":
+      if (node.callee.type === "Identifier" && node.callee.name === "Boolean") {
+        if (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)) {
+          return isReferenceToGlobalVariable(scope, node.callee);
+        }
+      }
+
+      return false;
+
+    case "Identifier":
+      return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
+    // no default
+  }
+
+  return false;
 } //------------------------------------------------------------------------------
 // Public Interface
 //------------------------------------------------------------------------------
@@ -59989,7 +62842,7 @@ module.exports = {
    */
   isDirectiveComment(node) {
     const comment = node.value.trim();
-    return node.type === "Line" && comment.indexOf("eslint-") === 0 || node.type === "Block" && (comment.indexOf("global ") === 0 || comment.indexOf("eslint ") === 0 || comment.indexOf("eslint-") === 0);
+    return node.type === "Line" && comment.startsWith("eslint-") || node.type === "Block" && ESLINT_DIRECTIVE_PATTERN.test(comment);
   },
 
   /**
@@ -60213,7 +63066,7 @@ module.exports = {
           return true;
       }
     }
-    /* istanbul ignore next */
+    /* c8 ignore next */
 
 
     return true;
@@ -60512,18 +63365,18 @@ module.exports = {
 
     if (parent.type === "Property" || parent.type === "MethodDefinition" || parent.type === "PropertyDefinition") {
       if (!parent.computed && parent.key.type === "PrivateIdentifier") {
-        tokens.push("#".concat(parent.key.name));
+        tokens.push(`#${parent.key.name}`);
       } else {
         const name = getStaticPropertyName(parent);
 
         if (name !== null) {
-          tokens.push("'".concat(name, "'"));
+          tokens.push(`'${name}'`);
         } else if (node.id) {
-          tokens.push("'".concat(node.id.name, "'"));
+          tokens.push(`'${node.id.name}'`);
         }
       }
     } else if (node.id) {
-      tokens.push("'".concat(node.id.name, "'"));
+      tokens.push(`'${node.id.name}'`);
     }
 
     return tokens.join(" ");
@@ -60836,15 +63689,22 @@ module.exports = {
       if (comments.length) {
         const lastComment = comments[comments.length - 1];
 
-        if (lastComment.range[0] > leftToken.range[0]) {
+        if (!leftToken || lastComment.range[0] > leftToken.range[0]) {
           leftToken = lastComment;
         }
       }
     } else {
       leftToken = leftValue;
     }
+    /*
+     * If a hashbang comment was passed as a token object from SourceCode,
+     * its type will be "Shebang" because of the way ESLint itself handles hashbangs.
+     * If a hashbang comment was passed in a string and then tokenized in this function,
+     * its type will be "Hashbang" because of the way Espree tokenizes hashbangs.
+     */
+
 
-    if (leftToken.type === "Shebang") {
+    if (leftToken.type === "Shebang" || leftToken.type === "Hashbang") {
       return false;
     }
 
@@ -60865,7 +63725,7 @@ module.exports = {
       if (comments.length) {
         const firstComment = comments[0];
 
-        if (firstComment.range[0] < rightToken.range[0]) {
+        if (!rightToken || firstComment.range[0] < rightToken.range[0]) {
           rightToken = firstComment;
         }
       }
@@ -60914,7 +63774,7 @@ module.exports = {
    * @returns {SourceLocation} The `loc` object.
    */
   getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) {
-    const namePattern = new RegExp("[\\s,]".concat(escapeRegExp(name), "(?:$|[\\s,:])"), "gu"); // To ignore the first text "global".
+    const namePattern = new RegExp(`[\\s,]${escapeRegExp(name)}(?:$|[\\s,:])`, "gu"); // To ignore the first text "global".
 
     namePattern.lastIndex = comment.value.indexOf("global") + 6; // Search a given variable name.
 
@@ -60947,6 +63807,7 @@ module.exports = {
     return OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN.test(rawString);
   },
 
+  isReferenceToGlobalVariable,
   isLogicalExpression,
   isCoalesceExpression,
   isMixedLogicalAndCoalesceExpressions,
@@ -60959,11 +63820,13 @@ module.exports = {
   equalLiteralValue,
   isSameReference,
   isLogicalAssignmentOperator,
-  getSwitchCaseColonToken
+  getSwitchCaseColonToken,
+  getModuleExportName,
+  isConstant
 };
 
 /***/ }),
-/* 549 */
+/* 619 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 /*
@@ -60992,14 +63855,14 @@ module.exports = {
 (function () {
   'use strict';
 
-  exports.ast = __webpack_require__(550);
-  exports.code = __webpack_require__(551);
-  exports.keyword = __webpack_require__(552);
+  exports.ast = __webpack_require__(620);
+  exports.code = __webpack_require__(621);
+  exports.keyword = __webpack_require__(622);
 })();
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 550 */
+/* 620 */
 /***/ ((module) => {
 
 /*
@@ -61164,7 +64027,7 @@ module.exports = {
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 551 */
+/* 621 */
 /***/ ((module) => {
 
 /*
@@ -61294,7 +64157,7 @@ module.exports = {
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 552 */
+/* 622 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 /*
@@ -61323,7 +64186,7 @@ module.exports = {
 (function () {
   'use strict';
 
-  var code = __webpack_require__(551);
+  var code = __webpack_require__(621);
 
   function isStrictModeReservedWordES6(id) {
     switch (id) {
@@ -61487,7 +64350,7 @@ module.exports = {
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 553 */
+/* 623 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -61497,7 +64360,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -61508,7 +64371,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce linebreaks after opening and before closing array brackets",
+      description: "Enforce linebreaks after opening and before closing array brackets",
       recommended: false,
       url: "https://eslint.org/docs/rules/array-bracket-newline"
     },
@@ -61750,7 +64613,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 554 */
+/* 624 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -61760,7 +64623,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -61771,7 +64634,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing inside array brackets",
+      description: "Enforce consistent spacing inside array brackets",
       recommended: false,
       url: "https://eslint.org/docs/rules/array-bracket-spacing"
     },
@@ -61998,7 +64861,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 555 */
+/* 625 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -62010,7 +64873,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -62127,7 +64990,7 @@ function getArrayMethodName(node) {
         return null;
     }
   }
-  /* istanbul ignore next: unreachable */
+  /* c8 ignore next */
 
 
   return null;
@@ -62142,7 +65005,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "enforce `return` statements in callbacks of array methods",
+      description: "Enforce `return` statements in callbacks of array methods",
       recommended: false,
       url: "https://eslint.org/docs/rules/array-callback-return"
     },
@@ -62289,7 +65152,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 556 */
+/* 626 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -62299,7 +65162,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -62310,7 +65173,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce line breaks after each array element",
+      description: "Enforce line breaks after each array element",
       recommended: false,
       url: "https://eslint.org/docs/rules/array-element-newline"
     },
@@ -62586,7 +65449,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 557 */
+/* 627 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -62598,7 +65461,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -62609,7 +65472,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require braces around arrow function bodies",
+      description: "Require braces around arrow function bodies",
       recommended: false,
       url: "https://eslint.org/docs/rules/arrow-body-style"
     },
@@ -62871,7 +65734,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 558 */
+/* 628 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -62883,7 +65746,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -62907,7 +65770,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require parentheses around arrow function arguments",
+      description: "Require parentheses around arrow function arguments",
       recommended: false,
       url: "https://eslint.org/docs/rules/arrow-parens"
     },
@@ -63043,7 +65906,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 559 */
+/* 629 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -63055,7 +65918,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -63066,7 +65929,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before and after the arrow in arrow functions",
+      description: "Enforce consistent spacing before and after the arrow in arrow functions",
       recommended: false,
       url: "https://eslint.org/docs/rules/arrow-spacing"
     },
@@ -63206,7 +66069,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 560 */
+/* 630 */
 /***/ ((module) => {
 
 "use strict";
@@ -63224,7 +66087,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce the use of variables within the scope they are defined",
+      description: "Enforce the use of variables within the scope they are defined",
       recommended: false,
       url: "https://eslint.org/docs/rules/block-scoped-var"
     },
@@ -63334,7 +66197,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 561 */
+/* 631 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -63344,7 +66207,7 @@ module.exports = {
  */
 
 
-const util = __webpack_require__(548); //------------------------------------------------------------------------------
+const util = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -63355,7 +66218,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow or enforce spaces inside of blocks after opening block and before closing block",
+      description: "Disallow or enforce spaces inside of blocks after opening block and before closing block",
       recommended: false,
       url: "https://eslint.org/docs/rules/block-spacing"
     },
@@ -63512,7 +66375,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 562 */
+/* 632 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -63522,7 +66385,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -63533,7 +66396,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent brace style for blocks",
+      description: "Enforce consistent brace style for blocks",
       recommended: false,
       url: "https://eslint.org/docs/rules/brace-style"
     },
@@ -63707,7 +66570,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 563 */
+/* 633 */
 /***/ ((module) => {
 
 "use strict";
@@ -63728,7 +66591,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "require `return` statements after callbacks",
+      description: "Require `return` statements after callbacks",
       recommended: false,
       url: "https://eslint.org/docs/rules/callback-return"
     },
@@ -63761,7 +66624,7 @@ module.exports = {
         return null;
       }
 
-      if (types.indexOf(node.parent.type) === -1) {
+      if (!types.includes(node.parent.type)) {
         return findClosestParentOfType(node.parent, types);
       }
 
@@ -63799,7 +66662,7 @@ module.exports = {
 
 
     function isCallback(node) {
-      return containsOnlyIdentifiers(node.callee) && callbacks.indexOf(sourceCode.getText(node.callee)) > -1;
+      return containsOnlyIdentifiers(node.callee) && callbacks.includes(sourceCode.getText(node.callee));
     }
     /**
      * Determines whether or not the callback is part of a callback expression.
@@ -63889,8 +66752,8 @@ module.exports = {
 };
 
 /***/ }),
-/* 564 */
-/***/ ((module) => {
+/* 634 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 /**
@@ -63898,16 +66761,21 @@ module.exports = {
  * @author Nicholas C. Zakas
  */
  //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
 /** @type {import('../shared/types').Rule} */
 
+
 module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce camelcase naming convention",
+      description: "Enforce camelcase naming convention",
       recommended: false,
       url: "https://eslint.org/docs/rules/camelcase"
     },
@@ -64021,7 +66889,7 @@ module.exports = {
     }
     /**
      * Checks if a given binding identifier uses the original name as-is.
-     * - If it's in object destructuring, the original name is its property name.
+     * - If it's in object destructuring or object expression, the original name is its property name.
      * - If it's in import declaration, the original name is its exported name.
      * @param {ASTNode} node The `Identifier` node to check.
      * @returns {boolean} `true` if the identifier uses the original name as-is.
@@ -64035,10 +66903,10 @@ module.exports = {
 
       switch (parent.type) {
         case "Property":
-          return parent.parent.type === "ObjectPattern" && parent.value === valueNode && !parent.computed && parent.key.type === "Identifier" && parent.key.name === localName;
+          return (parent.parent.type === "ObjectPattern" || parent.parent.type === "ObjectExpression") && parent.value === valueNode && !parent.computed && parent.key.type === "Identifier" && parent.key.name === localName;
 
         case "ImportSpecifier":
-          return parent.local === node && parent.imported.name === localName;
+          return parent.local === node && astUtils.getModuleExportName(parent.imported) === localName;
 
         default:
           return false;
@@ -64243,7 +67111,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 565 */
+/* 635 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -64255,9 +67123,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const LETTER_PATTERN = __webpack_require__(566);
+const LETTER_PATTERN = __webpack_require__(636);
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -64339,7 +67207,7 @@ function createRegExpForIgnorePatterns(normalizedOptions) {
     const ignorePatternStr = normalizedOptions[key].ignorePattern;
 
     if (ignorePatternStr) {
-      const regExp = RegExp("^\\s*(?:".concat(ignorePatternStr, ")"), "u");
+      const regExp = RegExp(`^\\s*(?:${ignorePatternStr})`, "u");
       normalizedOptions[key].ignorePatternRegExp = regExp;
     }
   });
@@ -64354,7 +67222,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce or disallow capitalization of the first letter of a comment",
+      description: "Enforce or disallow capitalization of the first letter of a comment",
       recommended: false,
       url: "https://eslint.org/docs/rules/capitalized-comments"
     },
@@ -64422,7 +67290,7 @@ module.exports = {
       const previousTokenOrComment = sourceCode.getTokenBefore(comment, {
         includeComments: true
       });
-      return Boolean(previousTokenOrComment && ["Block", "Line"].indexOf(previousTokenOrComment.type) !== -1);
+      return Boolean(previousTokenOrComment && ["Block", "Line"].includes(previousTokenOrComment.type));
     }
     /**
      * Check a comment to determine if it is valid for this rule.
@@ -64531,7 +67399,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 566 */
+/* 636 */
 /***/ ((module) => {
 
 "use strict";
@@ -64572,7 +67440,7 @@ module.exports = {
 module.exports = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/u;
 
 /***/ }),
-/* 567 */
+/* 637 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -64584,7 +67452,7 @@ module.exports = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -64595,7 +67463,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce that class methods utilize `this`",
+      description: "Enforce that class methods utilize `this`",
       recommended: false,
       url: "https://eslint.org/docs/rules/class-methods-use-this"
     },
@@ -64763,7 +67631,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 568 */
+/* 638 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -64775,7 +67643,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -64838,7 +67706,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow trailing commas",
+      description: "Require or disallow trailing commas",
       recommended: false,
       url: "https://eslint.org/docs/rules/comma-dangle"
     },
@@ -65005,8 +67873,18 @@ module.exports = {
           loc: trailingToken.loc,
           messageId: "unexpected",
 
-          fix(fixer) {
-            return fixer.remove(trailingToken);
+          *fix(fixer) {
+            yield fixer.remove(trailingToken);
+            /*
+             * Extend the range of the fix to include surrounding tokens to ensure
+             * that the element after which the comma is removed stays _last_.
+             * This intentionally makes conflicts in fix ranges with rules that may be
+             * adding or removing elements in the same autofix pass.
+             * https://github.com/eslint/eslint/issues/15660
+             */
+
+            yield fixer.insertTextBefore(sourceCode.getTokenBefore(trailingToken), "");
+            yield fixer.insertTextAfter(sourceCode.getTokenAfter(trailingToken), "");
           }
 
         });
@@ -65048,8 +67926,18 @@ module.exports = {
           },
           messageId: "missing",
 
-          fix(fixer) {
-            return fixer.insertTextAfter(trailingToken, ",");
+          *fix(fixer) {
+            yield fixer.insertTextAfter(trailingToken, ",");
+            /*
+             * Extend the range of the fix to include surrounding tokens to ensure
+             * that the element after which the comma is inserted stays _last_.
+             * This intentionally makes conflicts in fix ranges with rules that may be
+             * adding or removing elements in the same autofix pass.
+             * https://github.com/eslint/eslint/issues/15660
+             */
+
+            yield fixer.insertTextBefore(trailingToken, "");
+            yield fixer.insertTextAfter(sourceCode.getTokenAfter(trailingToken), "");
           }
 
         });
@@ -65115,7 +68003,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 569 */
+/* 639 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -65125,7 +68013,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -65136,7 +68024,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before and after commas",
+      description: "Enforce consistent spacing before and after commas",
       recommended: false,
       url: "https://eslint.org/docs/rules/comma-spacing"
     },
@@ -65215,35 +68103,6 @@ module.exports = {
         }
       });
     }
-    /**
-     * Validates the spacing around a comma token.
-     * @param {Object} tokens The tokens to be validated.
-     * @param {Token} tokens.comma The token representing the comma.
-     * @param {Token} [tokens.left] The last token before the comma.
-     * @param {Token} [tokens.right] The first token after the comma.
-     * @param {Token|ASTNode} reportItem The item to use when reporting an error.
-     * @returns {void}
-     * @private
-     */
-
-
-    function validateCommaItemSpacing(tokens, reportItem) {
-      if (tokens.left && astUtils.isTokenOnSameLine(tokens.left, tokens.comma) && options.before !== sourceCode.isSpaceBetweenTokens(tokens.left, tokens.comma)) {
-        report(reportItem, "before", tokens.left);
-      }
-
-      if (tokens.right && astUtils.isClosingParenToken(tokens.right)) {
-        return;
-      }
-
-      if (tokens.right && !options.after && tokens.right.type === "Line") {
-        return;
-      }
-
-      if (tokens.right && astUtils.isTokenOnSameLine(tokens.comma, tokens.right) && options.after !== sourceCode.isSpaceBetweenTokens(tokens.comma, tokens.right)) {
-        report(reportItem, "after", tokens.right);
-      }
-    }
     /**
      * Adds null elements of the given ArrayExpression or ArrayPattern node to the ignore list.
      * @param {ASTNode} node An ArrayExpression or ArrayPattern node.
@@ -65280,17 +68139,34 @@ module.exports = {
             return;
           }
 
-          if (token && token.type === "JSXText") {
-            return;
-          }
-
           const previousToken = tokensAndComments[i - 1];
           const nextToken = tokensAndComments[i + 1];
-          validateCommaItemSpacing({
-            comma: token,
-            left: astUtils.isCommaToken(previousToken) || commaTokensToIgnore.includes(token) ? null : previousToken,
-            right: astUtils.isCommaToken(nextToken) ? null : nextToken
-          }, token);
+
+          if (previousToken && !astUtils.isCommaToken(previousToken) && // ignore spacing between two commas
+
+          /*
+           * `commaTokensToIgnore` are ending commas of `null` elements (array holes/elisions).
+           * In addition to spacing between two commas, this can also ignore:
+           *
+           *   - Spacing after `[` (controlled by array-bracket-spacing)
+           *       Example: [ , ]
+           *                 ^
+           *   - Spacing after a comment (for backwards compatibility, this was possibly unintentional)
+           *       Example: [a, /* * / ,]
+           *                          ^
+           */
+          !commaTokensToIgnore.includes(token) && astUtils.isTokenOnSameLine(previousToken, token) && options.before !== sourceCode.isSpaceBetweenTokens(previousToken, token)) {
+            report(token, "before", previousToken);
+          }
+
+          if (nextToken && !astUtils.isCommaToken(nextToken) && // ignore spacing between two commas
+          !astUtils.isClosingParenToken(nextToken) && // controlled by space-in-parens
+          !astUtils.isClosingBracketToken(nextToken) && // controlled by array-bracket-spacing
+          !astUtils.isClosingBraceToken(nextToken) && // controlled by object-curly-spacing
+          !(!options.after && nextToken.type === "Line") && // special case, allow space before line comment
+          astUtils.isTokenOnSameLine(token, nextToken) && options.after !== sourceCode.isSpaceBetweenTokens(token, nextToken)) {
+            report(token, "after", nextToken);
+          }
         });
       },
 
@@ -65302,7 +68178,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 570 */
+/* 640 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -65312,7 +68188,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -65323,7 +68199,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent comma style",
+      description: "Enforce consistent comma style",
       recommended: false,
       url: "https://eslint.org/docs/rules/comma-style"
     },
@@ -65385,13 +68261,13 @@ module.exports = {
     function getReplacedText(styleType, text) {
       switch (styleType) {
         case "between":
-          return ",".concat(text.replace(astUtils.LINEBREAK_MATCHER, ""));
+          return `,${text.replace(astUtils.LINEBREAK_MATCHER, "")}`;
 
         case "first":
-          return "".concat(text, ",");
+          return `${text},`;
 
         case "last":
-          return ",".concat(text);
+          return `,${text}`;
 
         default:
           return "";
@@ -65596,7 +68472,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 571 */
+/* 641 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -65609,11 +68485,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   upperCaseFirst
-} = __webpack_require__(572); //------------------------------------------------------------------------------
+} = __webpack_require__(642); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -65624,7 +68500,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum cyclomatic complexity allowed in a program",
+      description: "Enforce a maximum cyclomatic complexity allowed in a program",
       recommended: false,
       url: "https://eslint.org/docs/rules/complexity"
     },
@@ -65748,7 +68624,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 572 */
+/* 642 */
 /***/ ((module) => {
 
 "use strict";
@@ -65776,7 +68652,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 573 */
+/* 643 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -65786,7 +68662,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -65797,7 +68673,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing inside computed property brackets",
+      description: "Enforce consistent spacing inside computed property brackets",
       recommended: false,
       url: "https://eslint.org/docs/rules/computed-property-spacing"
     },
@@ -65997,7 +68873,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 574 */
+/* 644 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -66009,11 +68885,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   upperCaseFirst
-} = __webpack_require__(572); //------------------------------------------------------------------------------
+} = __webpack_require__(642); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -66047,7 +68923,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `return` statements to either always or never specify values",
+      description: "Require `return` statements to either always or never specify values",
       recommended: false,
       url: "https://eslint.org/docs/rules/consistent-return"
     },
@@ -66177,7 +69053,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 575 */
+/* 645 */
 /***/ ((module) => {
 
 "use strict";
@@ -66195,7 +69071,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce consistent naming when capturing the current execution context",
+      description: "Enforce consistent naming when capturing the current execution context",
       recommended: false,
       url: "https://eslint.org/docs/rules/consistent-this"
     },
@@ -66252,7 +69128,7 @@ module.exports = {
     function checkAssignment(node, name, value) {
       const isThis = value.type === "ThisExpression";
 
-      if (aliases.indexOf(name) !== -1) {
+      if (aliases.includes(name)) {
         if (!isThis || node.operator && node.operator !== "=") {
           reportBadAssignment(node, name);
         }
@@ -66340,7 +69216,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 576 */
+/* 646 */
 /***/ ((module) => {
 
 "use strict";
@@ -66454,7 +69330,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "require `super()` calls in constructors",
+      description: "Require `super()` calls in constructors",
       recommended: true,
       url: "https://eslint.org/docs/rules/constructor-super"
     },
@@ -66738,7 +69614,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 577 */
+/* 647 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -66750,7 +69626,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -66761,7 +69637,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce consistent brace style for all control statements",
+      description: "Enforce consistent brace style for all control statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/curly"
     },
@@ -67081,7 +69957,7 @@ module.exports = {
                 data: {
                   name
                 },
-                fix: fixer => fixer.replaceText(body, "{".concat(sourceCode.getText(body), "}"))
+                fix: fixer => fixer.replaceText(body, `{${sourceCode.getText(body)}}`)
               });
             } else {
               context.report({
@@ -67213,7 +70089,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 578 */
+/* 648 */
 /***/ ((module) => {
 
 "use strict";
@@ -67233,7 +70109,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `default` cases in `switch` statements",
+      description: "Require `default` cases in `switch` statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/default-case"
     },
@@ -67307,7 +70183,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 579 */
+/* 649 */
 /***/ ((module) => {
 
 "use strict";
@@ -67325,7 +70201,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce default clauses in switch statements to be last",
+      description: "Enforce default clauses in switch statements to be last",
       recommended: false,
       url: "https://eslint.org/docs/rules/default-case-last"
     },
@@ -67356,7 +70232,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 580 */
+/* 650 */
 /***/ ((module) => {
 
 "use strict";
@@ -67371,7 +70247,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce default parameters to be last",
+      description: "Enforce default parameters to be last",
       recommended: false,
       url: "https://eslint.org/docs/rules/default-param-last"
     },
@@ -67417,7 +70293,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 581 */
+/* 651 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -67427,7 +70303,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -67438,7 +70314,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent newlines before and after dots",
+      description: "Enforce consistent newlines before and after dots",
       recommended: false,
       url: "https://eslint.org/docs/rules/dot-location"
     },
@@ -67479,7 +70355,7 @@ module.exports = {
 
             *fix(fixer) {
               if (dotToken.value.startsWith(".") && astUtils.isDecimalIntegerNumericToken(tokenBeforeDot)) {
-                yield fixer.insertTextAfter(tokenBeforeDot, " ".concat(dotToken.value));
+                yield fixer.insertTextAfter(tokenBeforeDot, ` ${dotToken.value}`);
               } else {
                 yield fixer.insertTextAfter(tokenBeforeDot, dotToken.value);
               }
@@ -67524,7 +70400,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 582 */
+/* 652 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -67536,9 +70412,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const keywords = __webpack_require__(583); //------------------------------------------------------------------------------
+const keywords = __webpack_require__(653); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -67552,7 +70428,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce dot notation whenever possible",
+      description: "Enforce dot notation whenever possible",
       recommended: false,
       url: "https://eslint.org/docs/rules/dot-notation"
     },
@@ -67595,8 +70471,8 @@ module.exports = {
 
 
     function checkComputedProperty(node, value) {
-      if (validIdentifier.test(value) && (allowKeywords || keywords.indexOf(String(value)) === -1) && !(allowPattern && allowPattern.test(value))) {
-        const formattedValue = node.property.type === "Literal" ? JSON.stringify(value) : "`".concat(value, "`");
+      if (validIdentifier.test(value) && (allowKeywords || !keywords.includes(String(value))) && !(allowPattern && allowPattern.test(value))) {
+        const formattedValue = node.property.type === "Literal" ? JSON.stringify(value) : `\`${value}\``;
         context.report({
           node: node.property,
           messageId: "useDot",
@@ -67639,7 +70515,7 @@ module.exports = {
           checkComputedProperty(node, node.property.quasis[0].value.cooked);
         }
 
-        if (!allowKeywords && !node.computed && node.property.type === "Identifier" && keywords.indexOf(String(node.property.name)) !== -1) {
+        if (!allowKeywords && !node.computed && node.property.type === "Identifier" && keywords.includes(String(node.property.name))) {
           context.report({
             node: node.property,
             messageId: "useBrackets",
@@ -67664,7 +70540,7 @@ module.exports = {
                 yield fixer.remove(dotToken);
               }
 
-              yield fixer.replaceText(node.property, "[\"".concat(node.property.name, "\"]"));
+              yield fixer.replaceText(node.property, `["${node.property.name}"]`);
             }
 
           });
@@ -67677,7 +70553,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 583 */
+/* 653 */
 /***/ ((module) => {
 
 "use strict";
@@ -67690,7 +70566,7 @@ module.exports = {
 module.exports = ["abstract", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "debugger", "default", "delete", "do", "double", "else", "enum", "export", "extends", "false", "final", "finally", "float", "for", "function", "goto", "if", "implements", "import", "in", "instanceof", "int", "interface", "long", "native", "new", "null", "package", "private", "protected", "public", "return", "short", "static", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "true", "try", "typeof", "var", "void", "volatile", "while", "with"];
 
 /***/ }),
-/* 584 */
+/* 654 */
 /***/ ((module) => {
 
 "use strict";
@@ -67708,7 +70584,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow newline at the end of files",
+      description: "Require or disallow newline at the end of files",
       recommended: false,
       url: "https://eslint.org/docs/rules/eol-last"
     },
@@ -67736,7 +70612,7 @@ module.exports = {
           line: sourceCode.lines.length
         },
               LF = "\n",
-              CRLF = "\r".concat(LF),
+              CRLF = `\r${LF}`,
               endsWithNewline = src.endsWith(LF);
         /*
          * Empty source is always valid: No content in file so we don't
@@ -67807,7 +70683,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 585 */
+/* 655 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -67819,7 +70695,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -67830,7 +70706,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require the use of `===` and `!==`",
+      description: "Require the use of `===` and `!==`",
       recommended: false,
       url: "https://eslint.org/docs/rules/eqeqeq"
     },
@@ -67964,7 +70840,7 @@ module.exports = {
           return;
         }
 
-        report(node, "".concat(node.operator, "="));
+        report(node, `${node.operator}=`);
       }
 
     };
@@ -67973,7 +70849,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 586 */
+/* 656 */
 /***/ ((module) => {
 
 "use strict";
@@ -67991,7 +70867,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "enforce \"for\" loop update clause moving the counter in the right direction.",
+      description: "Enforce \"for\" loop update clause moving the counter in the right direction.",
       recommended: true,
       url: "https://eslint.org/docs/rules/for-direction"
     },
@@ -68108,7 +70984,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 587 */
+/* 657 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -68120,7 +70996,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -68131,7 +71007,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow spacing between function identifiers and their invocations",
+      description: "Require or disallow spacing between function identifiers and their invocations",
       recommended: false,
       url: "https://eslint.org/docs/rules/func-call-spacing"
     },
@@ -68335,7 +71211,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 588 */
+/* 658 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -68347,9 +71223,9 @@ module.exports = {
 // Requirements
 //--------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const esutils = __webpack_require__(549); //--------------------------------------------------------------------------
+const esutils = __webpack_require__(619); //--------------------------------------------------------------------------
 // Helpers
 //--------------------------------------------------------------------------
 
@@ -68415,7 +71291,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require function names to match the name of the variable or property to which they are assigned",
+      description: "Require function names to match the name of the variable or property to which they are assigned",
       recommended: false,
       url: "https://eslint.org/docs/rules/func-name-matching"
     },
@@ -68589,7 +71465,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 589 */
+/* 659 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -68601,7 +71477,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 /**
  * Checks whether or not a given variable is a function name.
  * @param {eslint-scope.Variable} variable A variable to check.
@@ -68622,7 +71498,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require or disallow named `function` expressions",
+      description: "Require or disallow named `function` expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/func-names"
     },
@@ -68765,7 +71641,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 590 */
+/* 660 */
 /***/ ((module) => {
 
 "use strict";
@@ -68783,7 +71659,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce the consistent use of either `function` declarations or expressions",
+      description: "Enforce the consistent use of either `function` declarations or expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/func-style"
     },
@@ -68872,7 +71748,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 591 */
+/* 661 */
 /***/ ((module) => {
 
 "use strict";
@@ -68890,7 +71766,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce line breaks between arguments of a function call",
+      description: "Enforce line breaks between arguments of a function call",
       recommended: false,
       url: "https://eslint.org/docs/rules/function-call-argument-newline"
     },
@@ -68988,7 +71864,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 592 */
+/* 662 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -69000,7 +71876,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -69011,7 +71887,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent line breaks inside function parentheses",
+      description: "Enforce consistent line breaks inside function parentheses",
       recommended: false,
       url: "https://eslint.org/docs/rules/function-paren-newline"
     },
@@ -69168,7 +72044,7 @@ module.exports = {
     /**
      * Gets the left paren and right paren tokens of a node.
      * @param {ASTNode} node The node with parens
-     * @throws {TypeError} Unexecpted node type.
+     * @throws {TypeError} Unexpected node type.
      * @returns {Object} An object with keys `leftParen` for the left paren token, and `rightParen` for the right paren token.
      * Can also return `null` if an expression has no parens (e.g. a NewExpression with no arguments, or an ArrowFunctionExpression
      * with a single parameter)
@@ -69180,7 +72056,7 @@ module.exports = {
         case "NewExpression":
           if (!node.arguments.length && !(astUtils.isOpeningParenToken(sourceCode.getLastToken(node, {
             skip: 1
-          })) && astUtils.isClosingParenToken(sourceCode.getLastToken(node)))) {
+          })) && astUtils.isClosingParenToken(sourceCode.getLastToken(node)) && node.callee.range[1] < node.range[1])) {
             // If the NewExpression does not have parens (e.g. `new Foo`), return null.
             return null;
           }
@@ -69215,9 +72091,10 @@ module.exports = {
               return null;
             }
 
+            const rightParen = node.params.length ? sourceCode.getTokenAfter(node.params[node.params.length - 1], astUtils.isClosingParenToken) : sourceCode.getTokenAfter(firstToken);
             return {
               leftParen: firstToken,
-              rightParen: sourceCode.getTokenBefore(node.body, astUtils.isClosingParenToken)
+              rightParen
             };
           }
 
@@ -69232,7 +72109,7 @@ module.exports = {
           }
 
         default:
-          throw new TypeError("unexpected node with type ".concat(node.type));
+          throw new TypeError(`unexpected node with type ${node.type}`);
       }
     } //----------------------------------------------------------------------
     // Public
@@ -69267,7 +72144,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 593 */
+/* 663 */
 /***/ ((module) => {
 
 "use strict";
@@ -69301,7 +72178,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing around `*` operators in generator functions",
+      description: "Enforce consistent spacing around `*` operators in generator functions",
       recommended: false,
       url: "https://eslint.org/docs/rules/generator-star-spacing"
     },
@@ -69423,7 +72300,7 @@ module.exports = {
         const after = leftToken.value === "*";
         const spaceRequired = modes[kind][side];
         const node = after ? leftToken : rightToken;
-        const messageId = "".concat(spaceRequired ? "missing" : "unexpected").concat(capitalize(side));
+        const messageId = `${spaceRequired ? "missing" : "unexpected"}${capitalize(side)}`;
         context.report({
           node,
           messageId,
@@ -69483,7 +72360,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 594 */
+/* 664 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -69495,7 +72372,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -69520,7 +72397,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "enforce `return` statements in getters",
+      description: "Enforce `return` statements in getters",
       recommended: true,
       url: "https://eslint.org/docs/rules/getter-return"
     },
@@ -69649,7 +72526,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 595 */
+/* 665 */
 /***/ ((module) => {
 
 "use strict";
@@ -69660,7 +72537,7 @@ module.exports = {
  */
 
 
-const ACCEPTABLE_PARENTS = ["AssignmentExpression", "VariableDeclarator", "MemberExpression", "ExpressionStatement", "CallExpression", "ConditionalExpression", "Program", "VariableDeclaration", "ChainExpression"];
+const ACCEPTABLE_PARENTS = new Set(["AssignmentExpression", "VariableDeclarator", "MemberExpression", "ExpressionStatement", "CallExpression", "ConditionalExpression", "Program", "VariableDeclaration", "ChainExpression"]);
 /**
  * Finds the eslint-scope reference in the given scope.
  * @param {Object} scope The scope to search.
@@ -69670,11 +72547,12 @@ const ACCEPTABLE_PARENTS = ["AssignmentExpression", "VariableDeclarator", "Membe
 
 function findReference(scope, node) {
   const references = scope.references.filter(reference => reference.identifier.range[0] === node.range[0] && reference.identifier.range[1] === node.range[1]);
-  /* istanbul ignore else: correctly returns null */
 
   if (references.length === 1) {
     return references[0];
   }
+  /* c8 ignore next */
+
 
   return null;
 }
@@ -69699,7 +72577,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "require `require()` calls to be placed at top-level module scope",
+      description: "Require `require()` calls to be placed at top-level module scope",
       recommended: false,
       url: "https://eslint.org/docs/rules/global-require"
     },
@@ -69715,7 +72593,7 @@ module.exports = {
         const currentScope = context.getScope();
 
         if (node.callee.name === "require" && !isShadowed(currentScope, node.callee)) {
-          const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.indexOf(parent.type) > -1);
+          const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.has(parent.type));
 
           if (!isGoodRequire) {
             context.report({
@@ -69732,7 +72610,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 596 */
+/* 666 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -69744,7 +72622,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -69830,7 +72708,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require grouped accessor pairs in object literals and classes",
+      description: "Require grouped accessor pairs in object literals and classes",
       recommended: false,
       url: "https://eslint.org/docs/rules/grouped-accessor-pairs"
     },
@@ -69954,7 +72832,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 597 */
+/* 667 */
 /***/ ((module) => {
 
 "use strict";
@@ -69972,7 +72850,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `for-in` loops to include an `if` statement",
+      description: "Require `for-in` loops to include an `if` statement",
       recommended: false,
       url: "https://eslint.org/docs/rules/guard-for-in"
     },
@@ -70032,7 +72910,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 598 */
+/* 668 */
 /***/ ((module) => {
 
 "use strict";
@@ -70053,7 +72931,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "require error handling in callbacks",
+      description: "Require error handling in callbacks",
       recommended: false,
       url: "https://eslint.org/docs/rules/handle-callback-err"
     },
@@ -70134,7 +73012,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 599 */
+/* 669 */
 /***/ ((module) => {
 
 "use strict";
@@ -70214,7 +73092,7 @@ module.exports = {
     replacedBy: ["id-denylist"],
     type: "suggestion",
     docs: {
-      description: "disallow specified identifiers",
+      description: "Disallow specified identifiers",
       recommended: false,
       url: "https://eslint.org/docs/rules/id-blacklist"
     },
@@ -70324,7 +73202,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 600 */
+/* 670 */
 /***/ ((module) => {
 
 "use strict";
@@ -70390,7 +73268,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow specified identifiers",
+      description: "Disallow specified identifiers",
       recommended: false,
       url: "https://eslint.org/docs/rules/id-denylist"
     },
@@ -70502,7 +73380,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 601 */
+/* 671 */
 /***/ ((module) => {
 
 "use strict";
@@ -70521,7 +73399,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce minimum and maximum identifier lengths",
+      description: "Enforce minimum and maximum identifier lengths",
       recommended: false,
       url: "https://eslint.org/docs/rules/id-length"
     },
@@ -70665,7 +73543,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 602 */
+/* 672 */
 /***/ ((module) => {
 
 "use strict";
@@ -70683,7 +73561,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require identifiers to match a specified regular expression",
+      description: "Require identifiers to match a specified regular expression",
       recommended: false,
       url: "https://eslint.org/docs/rules/id-match"
     },
@@ -70727,7 +73605,8 @@ module.exports = {
           checkProperties = !!options.properties,
           checkClassFields = !!options.classFields,
           onlyDeclarations = !!options.onlyDeclarations,
-          ignoreDestructuring = !!options.ignoreDestructuring; //--------------------------------------------------------------------------
+          ignoreDestructuring = !!options.ignoreDestructuring;
+    let globalScope; //--------------------------------------------------------------------------
     // Helpers
     //--------------------------------------------------------------------------
     // contains reported nodes to avoid reporting twice on destructuring with shorthand notation
@@ -70736,6 +73615,17 @@ module.exports = {
     const ALLOWED_PARENT_TYPES = new Set(["CallExpression", "NewExpression"]);
     const DECLARATION_TYPES = new Set(["FunctionDeclaration", "VariableDeclarator"]);
     const IMPORT_TYPES = new Set(["ImportSpecifier", "ImportNamespaceSpecifier", "ImportDefaultSpecifier"]);
+    /**
+     * Checks whether the given node represents a reference to a global variable that is not declared in the source code.
+     * These identifiers will be allowed, as it is assumed that user has no control over the names of external global variables.
+     * @param {ASTNode} node `Identifier` node to check.
+     * @returns {boolean} `true` if the node is a reference to a global variable.
+     */
+
+    function isReferenceToGlobalVariable(node) {
+      const variable = globalScope.set.get(node.name);
+      return variable && variable.defs.length === 0 && variable.references.some(ref => ref.identifier === node);
+    }
     /**
      * Checks if a string matches the provided pattern
      * @param {string} name The string to check.
@@ -70743,6 +73633,7 @@ module.exports = {
      * @private
      */
 
+
     function isInvalid(name) {
       return !regexp.test(name);
     }
@@ -70814,11 +73705,19 @@ module.exports = {
     }
 
     return {
+      Program() {
+        globalScope = context.getScope();
+      },
+
       Identifier(node) {
         const name = node.name,
               parent = node.parent,
               effectiveParent = parent.type === "MemberExpression" ? parent.parent : parent;
 
+        if (isReferenceToGlobalVariable(node)) {
+          return;
+        }
+
         if (parent.type === "MemberExpression") {
           if (!checkProperties) {
             return;
@@ -70839,6 +73738,11 @@ module.exports = {
             if (isInvalid(name)) {
               report(node);
             }
+          } // For https://github.com/eslint/eslint/issues/15123
+
+        } else if (parent.type === "Property" && parent.parent.type === "ObjectExpression" && parent.key === node && !parent.computed) {
+          if (checkProperties && isInvalid(name)) {
+            report(node);
           }
           /*
            * Properties have their own rules, and
@@ -70866,7 +73770,7 @@ module.exports = {
           } // never check properties or always ignore destructuring
 
 
-          if (!checkProperties || ignoreDestructuring && isInsideObjectPattern(node)) {
+          if (!checkProperties && !parent.computed || ignoreDestructuring && isInsideObjectPattern(node)) {
             return;
           } // don't check right hand side of AssignmentExpression to prevent duplicate warnings
 
@@ -70908,7 +73812,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 603 */
+/* 673 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -70921,7 +73825,7 @@ module.exports = {
 const {
   isCommentToken,
   isNotOpeningParenToken
-} = __webpack_require__(548); //------------------------------------------------------------------------------
+} = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -70932,7 +73836,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce the location of arrow function bodies",
+      description: "Enforce the location of arrow function bodies",
       recommended: false,
       url: "https://eslint.org/docs/rules/implicit-arrow-linebreak"
     },
@@ -71000,7 +73904,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 604 */
+/* 674 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -71015,9 +73919,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const createTree = __webpack_require__(605);
+const {
+  OrderedMap
+} = __webpack_require__(675);
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -71047,7 +73953,8 @@ class BinarySearchTree {
    * Creates an empty tree
    */
   constructor() {
-    this._rbTree = createTree();
+    this._orderedMap = new OrderedMap();
+    this._orderedMapEnd = this._orderedMap.end();
   }
   /**
    * Inserts an entry into the tree.
@@ -71058,13 +73965,7 @@ class BinarySearchTree {
 
 
   insert(key, value) {
-    const iterator = this._rbTree.find(key);
-
-    if (iterator.valid) {
-      this._rbTree = iterator.update(value);
-    } else {
-      this._rbTree = this._rbTree.insert(key, value);
-    }
+    this._orderedMap.setElement(key, value);
   }
   /**
    * Finds the entry with the largest key less than or equal to the provided key
@@ -71074,11 +73975,15 @@ class BinarySearchTree {
 
 
   findLe(key) {
-    const iterator = this._rbTree.le(key);
+    const iterator = this._orderedMap.reverseLowerBound(key);
+
+    if (iterator.equals(this._orderedMapEnd)) {
+      return {};
+    }
 
-    return iterator && {
-      key: iterator.key,
-      value: iterator.value
+    return {
+      key: iterator.pointer[0],
+      value: iterator.pointer[1]
     };
   }
   /**
@@ -71095,11 +74000,20 @@ class BinarySearchTree {
       return;
     }
 
-    const iterator = this._rbTree.ge(start);
+    const iterator = this._orderedMap.lowerBound(start);
+
+    if (iterator.equals(this._orderedMapEnd)) {
+      return;
+    }
 
-    while (iterator.valid && iterator.key < end) {
-      this._rbTree = this._rbTree.remove(iterator.key);
-      iterator.next();
+    if (end > this._orderedMap.back()[0]) {
+      while (!iterator.equals(this._orderedMapEnd)) {
+        this._orderedMap.eraseElementByIterator(iterator);
+      }
+    } else {
+      while (iterator.pointer[0] < end) {
+        this._orderedMap.eraseElementByIterator(iterator);
+      }
     }
   }
 
@@ -71420,7 +74334,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent indentation",
+      description: "Enforce consistent indentation",
       recommended: false,
       url: "https://eslint.org/docs/rules/indent"
     },
@@ -71610,11 +74524,11 @@ module.exports = {
      */
 
     function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
-      const expectedStatement = "".concat(expectedAmount, " ").concat(indentType).concat(expectedAmount === 1 ? "" : "s"); // e.g. "2 tabs"
+      const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
 
-      const foundSpacesWord = "space".concat(actualSpaces === 1 ? "" : "s"); // e.g. "space"
+      const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
 
-      const foundTabsWord = "tab".concat(actualTabs === 1 ? "" : "s"); // e.g. "tabs"
+      const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
 
       let foundStatement;
 
@@ -71623,9 +74537,9 @@ module.exports = {
          * Abbreviate the message if the expected indentation is also spaces.
          * e.g. 'Expected 4 spaces but found 2' rather than 'Expected 4 spaces but found 2 spaces'
          */
-        foundStatement = indentType === "space" ? actualSpaces : "".concat(actualSpaces, " ").concat(foundSpacesWord);
+        foundStatement = indentType === "space" ? actualSpaces : `${actualSpaces} ${foundSpacesWord}`;
       } else if (actualTabs > 0) {
-        foundStatement = indentType === "tab" ? actualTabs : "".concat(actualTabs, " ").concat(foundTabsWord);
+        foundStatement = indentType === "tab" ? actualTabs : `${actualTabs} ${foundTabsWord}`;
       } else {
         foundStatement = "0";
       }
@@ -71706,7 +74620,7 @@ module.exports = {
 
       let statement = node.parent && node.parent.parent;
 
-      while (statement.type === "UnaryExpression" && ["!", "~", "+", "-"].indexOf(statement.operator) > -1 || statement.type === "AssignmentExpression" || statement.type === "LogicalExpression" || statement.type === "SequenceExpression" || statement.type === "VariableDeclarator") {
+      while (statement.type === "UnaryExpression" && ["!", "~", "+", "-"].includes(statement.operator) || statement.type === "AssignmentExpression" || statement.type === "LogicalExpression" || statement.type === "SequenceExpression" || statement.type === "VariableDeclarator") {
         statement = statement.parent;
       }
 
@@ -71808,18 +74722,6 @@ module.exports = {
         }
 
         offsets.setDesiredOffsets([firstBodyToken.range[0], lastBodyToken.range[1]], lastParentToken, 1);
-        /*
-         * For blockless nodes with semicolon-first style, don't indent the semicolon.
-         * e.g.
-         * if (foo) bar()
-         * ; [1, 2, 3].map(foo)
-         */
-
-        const lastToken = sourceCode.getLastToken(node);
-
-        if (node.type !== "EmptyStatement" && astUtils.isSemicolonToken(lastToken)) {
-          offsets.setDesiredOffset(lastToken, lastParentToken, 0);
-        }
       }
     }
     /**
@@ -72098,7 +75000,7 @@ module.exports = {
         }
       },
 
-      "DoWhileStatement, WhileStatement, ForInStatement, ForOfStatement": node => addBlocklessNodeIndent(node.body),
+      "DoWhileStatement, WhileStatement, ForInStatement, ForOfStatement, WithStatement": node => addBlocklessNodeIndent(node.body),
 
       ExportNamedDeclaration(node) {
         if (node.declaration === null) {
@@ -72149,6 +75051,42 @@ module.exports = {
         }
       },
 
+      /*
+       * For blockless nodes with semicolon-first style, don't indent the semicolon.
+       * e.g.
+       * if (foo)
+       *     bar()
+       * ; [1, 2, 3].map(foo)
+       *
+       * Traversal into the node sets indentation of the semicolon, so we need to override it on exit.
+       */
+      ":matches(DoWhileStatement, ForStatement, ForInStatement, ForOfStatement, IfStatement, WhileStatement, WithStatement):exit"(node) {
+        let nodesToCheck;
+
+        if (node.type === "IfStatement") {
+          nodesToCheck = [node.consequent];
+
+          if (node.alternate) {
+            nodesToCheck.push(node.alternate);
+          }
+        } else {
+          nodesToCheck = [node.body];
+        }
+
+        for (const nodeToCheck of nodesToCheck) {
+          const lastToken = sourceCode.getLastToken(nodeToCheck);
+
+          if (astUtils.isSemicolonToken(lastToken)) {
+            const tokenBeforeLast = sourceCode.getTokenBefore(lastToken);
+            const tokenAfterLast = sourceCode.getTokenAfter(lastToken); // override indentation of `;` only if its line looks like a semicolon-first style line
+
+            if (!astUtils.isTokenOnSameLine(tokenBeforeLast, lastToken) && tokenAfterLast && astUtils.isTokenOnSameLine(lastToken, tokenAfterLast)) {
+              offsets.setDesiredOffset(lastToken, sourceCode.getFirstToken(node), 0);
+            }
+          }
+        }
+      },
+
       ImportDeclaration(node) {
         if (node.specifiers.some(specifier => specifier.type === "ImportSpecifier")) {
           const openingCurly = sourceCode.getFirstToken(node, astUtils.isOpeningBraceToken);
@@ -72593,1164 +75531,3383 @@ module.exports = {
 };
 
 /***/ }),
-/* 605 */
-/***/ ((module) => {
+/* 675 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
 "use strict";
 
 
-module.exports = createRBTree;
-var RED = 0;
-var BLACK = 1;
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
 
-function RBNode(color, key, value, left, right, count) {
-  this._color = color;
-  this.key = key;
-  this.value = value;
-  this.left = left;
-  this.right = right;
-  this._count = count;
-}
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.HashContainer = exports.TreeContainer = exports.SequentialContainer = exports.ContainerIterator = exports.Container = exports.HashMap = exports.HashSet = exports.OrderedMapIterator = exports.OrderedMap = exports.OrderedSetIterator = exports.OrderedSet = exports.DequeIterator = exports.Deque = exports.LinkListIterator = exports.LinkList = exports.VectorIterator = exports.Vector = exports.PriorityQueue = exports.Queue = exports.Stack = void 0;
 
-function cloneNode(node) {
-  return new RBNode(node._color, node.key, node.value, node.left, node.right, node._count);
-}
+var Stack_1 = __webpack_require__(676);
 
-function repaint(color, node) {
-  return new RBNode(color, node.key, node.value, node.left, node.right, node._count);
-}
+Object.defineProperty(exports, "Stack", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(Stack_1).default;
+  }
+}));
 
-function recount(node) {
-  node._count = 1 + (node.left ? node.left._count : 0) + (node.right ? node.right._count : 0);
-}
+var Queue_1 = __webpack_require__(678);
 
-function RedBlackTree(compare, root) {
-  this._compare = compare;
-  this.root = root;
-}
+Object.defineProperty(exports, "Queue", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(Queue_1).default;
+  }
+}));
 
-var proto = RedBlackTree.prototype;
-Object.defineProperty(proto, "keys", {
+var PriorityQueue_1 = __webpack_require__(683);
+
+Object.defineProperty(exports, "PriorityQueue", ({
+  enumerable: true,
   get: function () {
-    var result = [];
-    this.forEach(function (k, v) {
-      result.push(k);
-    });
-    return result;
+    return __importDefault(PriorityQueue_1).default;
   }
-});
-Object.defineProperty(proto, "values", {
+}));
+
+var Vector_1 = __webpack_require__(684);
+
+Object.defineProperty(exports, "Vector", ({
+  enumerable: true,
   get: function () {
-    var result = [];
-    this.forEach(function (k, v) {
-      result.push(v);
-    });
-    return result;
+    return __importDefault(Vector_1).default;
+  }
+}));
+Object.defineProperty(exports, "VectorIterator", ({
+  enumerable: true,
+  get: function () {
+    return Vector_1.VectorIterator;
   }
-}); //Returns the number of nodes in the tree
+}));
 
-Object.defineProperty(proto, "length", {
+var LinkList_1 = __webpack_require__(685);
+
+Object.defineProperty(exports, "LinkList", ({
+  enumerable: true,
   get: function () {
-    if (this.root) {
-      return this.root._count;
-    }
+    return __importDefault(LinkList_1).default;
+  }
+}));
+Object.defineProperty(exports, "LinkListIterator", ({
+  enumerable: true,
+  get: function () {
+    return LinkList_1.LinkListIterator;
+  }
+}));
 
-    return 0;
+var Deque_1 = __webpack_require__(679);
+
+Object.defineProperty(exports, "Deque", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(Deque_1).default;
+  }
+}));
+Object.defineProperty(exports, "DequeIterator", ({
+  enumerable: true,
+  get: function () {
+    return Deque_1.DequeIterator;
   }
-}); //Insert a new item into the tree
+}));
 
-proto.insert = function (key, value) {
-  var cmp = this._compare; //Find point to insert new node at
+var OrderedSet_1 = __webpack_require__(686);
 
-  var n = this.root;
-  var n_stack = [];
-  var d_stack = [];
+Object.defineProperty(exports, "OrderedSet", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(OrderedSet_1).default;
+  }
+}));
+Object.defineProperty(exports, "OrderedSetIterator", ({
+  enumerable: true,
+  get: function () {
+    return OrderedSet_1.OrderedSetIterator;
+  }
+}));
 
-  while (n) {
-    var d = cmp(key, n.key);
-    n_stack.push(n);
-    d_stack.push(d);
+var OrderedMap_1 = __webpack_require__(690);
 
-    if (d <= 0) {
-      n = n.left;
-    } else {
-      n = n.right;
-    }
-  } //Rebuild path to leaf node
+Object.defineProperty(exports, "OrderedMap", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(OrderedMap_1).default;
+  }
+}));
+Object.defineProperty(exports, "OrderedMapIterator", ({
+  enumerable: true,
+  get: function () {
+    return OrderedMap_1.OrderedMapIterator;
+  }
+}));
 
+var HashSet_1 = __webpack_require__(691);
 
-  n_stack.push(new RBNode(RED, key, value, null, null, 1));
+Object.defineProperty(exports, "HashSet", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(HashSet_1).default;
+  }
+}));
 
-  for (var s = n_stack.length - 2; s >= 0; --s) {
-    var n = n_stack[s];
+var HashMap_1 = __webpack_require__(693);
 
-    if (d_stack[s] <= 0) {
-      n_stack[s] = new RBNode(n._color, n.key, n.value, n_stack[s + 1], n.right, n._count + 1);
-    } else {
-      n_stack[s] = new RBNode(n._color, n.key, n.value, n.left, n_stack[s + 1], n._count + 1);
-    }
-  } //Rebalance tree using rotations
-  //console.log("start insert", key, d_stack)
+Object.defineProperty(exports, "HashMap", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(HashMap_1).default;
+  }
+}));
 
+var index_1 = __webpack_require__(677);
+
+Object.defineProperty(exports, "Container", ({
+  enumerable: true,
+  get: function () {
+    return index_1.Container;
+  }
+}));
+Object.defineProperty(exports, "ContainerIterator", ({
+  enumerable: true,
+  get: function () {
+    return index_1.ContainerIterator;
+  }
+}));
 
-  for (var s = n_stack.length - 1; s > 1; --s) {
-    var p = n_stack[s - 1];
-    var n = n_stack[s];
+var index_2 = __webpack_require__(680);
 
-    if (p._color === BLACK || n._color === BLACK) {
-      break;
-    }
+Object.defineProperty(exports, "SequentialContainer", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(index_2).default;
+  }
+}));
 
-    var pp = n_stack[s - 2];
+var index_3 = __webpack_require__(687);
 
-    if (pp.left === p) {
-      if (p.left === n) {
-        var y = pp.right;
+Object.defineProperty(exports, "TreeContainer", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(index_3).default;
+  }
+}));
 
-        if (y && y._color === RED) {
-          //console.log("LLr")
-          p._color = BLACK;
-          pp.right = repaint(BLACK, y);
-          pp._color = RED;
-          s -= 1;
-        } else {
-          //console.log("LLb")
-          pp._color = RED;
-          pp.left = p.right;
-          p._color = BLACK;
-          p.right = pp;
-          n_stack[s - 2] = p;
-          n_stack[s - 1] = n;
-          recount(pp);
-          recount(p);
-
-          if (s >= 3) {
-            var ppp = n_stack[s - 3];
-
-            if (ppp.left === pp) {
-              ppp.left = p;
-            } else {
-              ppp.right = p;
-            }
-          }
+var index_4 = __webpack_require__(692);
 
-          break;
-        }
-      } else {
-        var y = pp.right;
-
-        if (y && y._color === RED) {
-          //console.log("LRr")
-          p._color = BLACK;
-          pp.right = repaint(BLACK, y);
-          pp._color = RED;
-          s -= 1;
-        } else {
-          //console.log("LRb")
-          p.right = n.left;
-          pp._color = RED;
-          pp.left = n.right;
-          n._color = BLACK;
-          n.left = p;
-          n.right = pp;
-          n_stack[s - 2] = n;
-          n_stack[s - 1] = p;
-          recount(pp);
-          recount(p);
-          recount(n);
-
-          if (s >= 3) {
-            var ppp = n_stack[s - 3];
-
-            if (ppp.left === pp) {
-              ppp.left = n;
-            } else {
-              ppp.right = n;
-            }
-          }
+Object.defineProperty(exports, "HashContainer", ({
+  enumerable: true,
+  get: function () {
+    return __importDefault(index_4).default;
+  }
+}));
 
-          break;
-        }
+/***/ }),
+/* 676 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __webpack_require__(677);
+
+class Stack extends index_1.Base {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    super();
+    this.stack = [];
+    container.forEach(element => this.push(element));
+  }
+
+  clear() {
+    this.length = 0;
+    this.stack.length = 0;
+  }
+  /**
+   * @description Insert element to stack's end.
+   */
+
+
+  push(element) {
+    this.stack.push(element);
+    this.length += 1;
+  }
+  /**
+   * @description Removes the end element.
+   */
+
+
+  pop() {
+    this.stack.pop();
+    if (this.length > 0) this.length -= 1;
+  }
+  /**
+   * @description Accesses the end element.
+   */
+
+
+  top() {
+    return this.stack[this.length - 1];
+  }
+
+}
+
+exports["default"] = Stack;
+
+/***/ }),
+/* 677 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.Container = exports.Base = exports.ContainerIterator = void 0;
+
+class ContainerIterator {
+  constructor() {
+    let iteratorType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ContainerIterator.NORMAL;
+    this.iteratorType = iteratorType;
+  }
+
+}
+
+exports.ContainerIterator = ContainerIterator;
+ContainerIterator.NORMAL = false;
+ContainerIterator.REVERSE = true;
+
+class Base {
+  constructor() {
+    /**
+     * @description Container's size.
+     * @protected
+     */
+    this.length = 0;
+  }
+  /**
+   * @return The size of the container.
+   */
+
+
+  size() {
+    return this.length;
+  }
+  /**
+   * @return Boolean about if the container is empty.
+   */
+
+
+  empty() {
+    return this.length === 0;
+  }
+
+}
+
+exports.Base = Base;
+
+class Container extends Base {}
+
+exports.Container = Container;
+
+/***/ }),
+/* 678 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const Deque_1 = __importDefault(__webpack_require__(679));
+
+const index_1 = __webpack_require__(677);
+
+class Queue extends index_1.Base {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    super();
+    this.queue = new Deque_1.default(container);
+    this.length = this.queue.size();
+  }
+
+  clear() {
+    this.queue.clear();
+    this.length = 0;
+  }
+  /**
+   * @description Inserts element to queue's end.
+   */
+
+
+  push(element) {
+    this.queue.pushBack(element);
+    this.length += 1;
+  }
+  /**
+   * @description Removes the first element.
+   */
+
+
+  pop() {
+    this.queue.popFront();
+    if (this.length) this.length -= 1;
+  }
+  /**
+   * @description Access the first element.
+   */
+
+
+  front() {
+    return this.queue.front();
+  }
+
+}
+
+exports["default"] = Queue;
+
+/***/ }),
+/* 679 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.DequeIterator = void 0;
+
+const index_1 = __importDefault(__webpack_require__(680));
+
+const checkParams_1 = __webpack_require__(681);
+
+const index_2 = __webpack_require__(677);
+
+const RandomIterator_1 = __webpack_require__(682);
+
+class DequeIterator extends RandomIterator_1.RandomIterator {
+  copy() {
+    return new DequeIterator(this.node, this.size, this.getElementByPos, this.setElementByPos, this.iteratorType);
+  }
+
+}
+
+exports.DequeIterator = DequeIterator;
+
+class Deque extends index_1.default {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let bucketSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1 << 12;
+    super();
+    this.first = 0;
+    this.curFirst = 0;
+    this.last = 0;
+    this.curLast = 0;
+    this.bucketNum = 0;
+    this.map = [];
+
+    let _length;
+
+    if ('size' in container) {
+      if (typeof container.size === 'number') {
+        _length = container.size;
+      } else {
+        _length = container.size();
       }
+    } else if ('length' in container) {
+      _length = container.length;
     } else {
-      if (p.right === n) {
-        var y = pp.left;
-
-        if (y && y._color === RED) {
-          //console.log("RRr", y.key)
-          p._color = BLACK;
-          pp.left = repaint(BLACK, y);
-          pp._color = RED;
-          s -= 1;
-        } else {
-          //console.log("RRb")
-          pp._color = RED;
-          pp.right = p.left;
-          p._color = BLACK;
-          p.left = pp;
-          n_stack[s - 2] = p;
-          n_stack[s - 1] = n;
-          recount(pp);
-          recount(p);
-
-          if (s >= 3) {
-            var ppp = n_stack[s - 3];
-
-            if (ppp.right === pp) {
-              ppp.right = p;
-            } else {
-              ppp.left = p;
-            }
-          }
+      throw new RangeError('Can\'t get container\'s size!');
+    }
 
-          break;
-        }
-      } else {
-        var y = pp.left;
-
-        if (y && y._color === RED) {
-          //console.log("RLr")
-          p._color = BLACK;
-          pp.left = repaint(BLACK, y);
-          pp._color = RED;
-          s -= 1;
-        } else {
-          //console.log("RLb")
-          p.left = n.right;
-          pp._color = RED;
-          pp.right = n.left;
-          n._color = BLACK;
-          n.right = p;
-          n.left = pp;
-          n_stack[s - 2] = n;
-          n_stack[s - 1] = p;
-          recount(pp);
-          recount(p);
-          recount(n);
-
-          if (s >= 3) {
-            var ppp = n_stack[s - 3];
-
-            if (ppp.right === pp) {
-              ppp.right = n;
-            } else {
-              ppp.left = n;
-            }
-          }
+    this.bucketSize = bucketSize;
+    this.bucketNum = Math.max(Math.ceil(_length / this.bucketSize), 1);
 
-          break;
-        }
-      }
+    for (let i = 0; i < this.bucketNum; ++i) {
+      this.map.push(new Array(this.bucketSize));
     }
-  } //Return new tree
 
+    const needBucketNum = Math.ceil(_length / this.bucketSize);
+    this.first = this.last = (this.bucketNum >> 1) - (needBucketNum >> 1);
+    this.curFirst = this.curLast = this.bucketSize - _length % this.bucketSize >> 1;
+    container.forEach(element => this.pushBack(element));
+    this.size = this.size.bind(this);
+    this.getElementByPos = this.getElementByPos.bind(this);
+    this.setElementByPos = this.setElementByPos.bind(this);
+  }
+  /**
+   * @description Growth the Deque.
+   * @private
+   */
 
-  n_stack[0]._color = BLACK;
-  return new RedBlackTree(cmp, n_stack[0]);
-}; //Visit all nodes inorder
 
+  reAllocate() {
+    const newMap = [];
+    const addBucketNum = Math.max(this.bucketNum >> 1, 1);
 
-function doVisitFull(visit, node) {
-  if (node.left) {
-    var v = doVisitFull(visit, node.left);
+    for (let i = 0; i < addBucketNum; ++i) {
+      newMap[i] = new Array(this.bucketSize);
+    }
 
-    if (v) {
-      return v;
+    for (let i = this.first; i < this.bucketNum; ++i) {
+      newMap[newMap.length] = this.map[i];
     }
+
+    for (let i = 0; i < this.last; ++i) {
+      newMap[newMap.length] = this.map[i];
+    }
+
+    newMap[newMap.length] = [...this.map[this.last]];
+    this.first = addBucketNum;
+    this.last = newMap.length - 1;
+
+    for (let i = 0; i < addBucketNum; ++i) {
+      newMap[newMap.length] = new Array(this.bucketSize);
+    }
+
+    this.map = newMap;
+    this.bucketNum = newMap.length;
+  }
+  /**
+   * @description Get the bucket position of the element and the pointer position by index.
+   * @param pos The element's index.
+   * @private
+   */
+
+
+  getElementIndex(pos) {
+    const offset = this.curFirst + pos + 1;
+    const offsetRemainder = offset % this.bucketSize;
+    let curNodePointerIndex = offsetRemainder - 1;
+    let curNodeBucketIndex = this.first + (offset - offsetRemainder) / this.bucketSize;
+    if (offsetRemainder === 0) curNodeBucketIndex -= 1;
+    curNodeBucketIndex %= this.bucketNum;
+    if (curNodePointerIndex < 0) curNodePointerIndex += this.bucketSize;
+    return {
+      curNodeBucketIndex,
+      curNodePointerIndex
+    };
+  }
+
+  clear() {
+    this.map = [[]];
+    this.bucketNum = 1;
+    this.first = this.last = this.length = 0;
+    this.curFirst = this.curLast = this.bucketSize >> 1;
   }
 
-  var v = visit(node.key, node.value);
+  front() {
+    return this.map[this.first][this.curFirst];
+  }
 
-  if (v) {
-    return v;
+  back() {
+    return this.map[this.last][this.curLast];
   }
 
-  if (node.right) {
-    return doVisitFull(visit, node.right);
+  begin() {
+    return new DequeIterator(0, this.size, this.getElementByPos, this.setElementByPos);
   }
-} //Visit half nodes in order
 
+  end() {
+    return new DequeIterator(this.length, this.size, this.getElementByPos, this.setElementByPos);
+  }
 
-function doVisitHalf(lo, compare, visit, node) {
-  var l = compare(lo, node.key);
+  rBegin() {
+    return new DequeIterator(this.length - 1, this.size, this.getElementByPos, this.setElementByPos, index_2.ContainerIterator.REVERSE);
+  }
 
-  if (l <= 0) {
-    if (node.left) {
-      var v = doVisitHalf(lo, compare, visit, node.left);
+  rEnd() {
+    return new DequeIterator(-1, this.size, this.getElementByPos, this.setElementByPos, index_2.ContainerIterator.REVERSE);
+  }
 
-      if (v) {
-        return v;
+  pushBack(element) {
+    if (this.length) {
+      if (this.curLast < this.bucketSize - 1) {
+        this.curLast += 1;
+      } else if (this.last < this.bucketNum - 1) {
+        this.last += 1;
+        this.curLast = 0;
+      } else {
+        this.last = 0;
+        this.curLast = 0;
       }
+
+      if (this.last === this.first && this.curLast === this.curFirst) this.reAllocate();
     }
 
-    var v = visit(node.key, node.value);
+    this.length += 1;
+    this.map[this.last][this.curLast] = element;
+  }
 
-    if (v) {
-      return v;
+  popBack() {
+    if (!this.length) return;
+    this.map[this.last][this.curLast] = undefined;
+
+    if (this.length !== 1) {
+      if (this.curLast > 0) {
+        this.curLast -= 1;
+      } else if (this.last > 0) {
+        this.last -= 1;
+        this.curLast = this.bucketSize - 1;
+      } else {
+        this.last = this.bucketNum - 1;
+        this.curLast = this.bucketSize - 1;
+      }
     }
-  }
 
-  if (node.right) {
-    return doVisitHalf(lo, compare, visit, node.right);
+    this.length -= 1;
   }
-} //Visit all nodes within a range
+  /**
+   * @description Push the element to the front.
+   * @param element The element you want to push.
+   */
 
 
-function doVisit(lo, hi, compare, visit, node) {
-  var l = compare(lo, node.key);
-  var h = compare(hi, node.key);
-  var v;
+  pushFront(element) {
+    if (this.length) {
+      if (this.curFirst > 0) {
+        this.curFirst -= 1;
+      } else if (this.first > 0) {
+        this.first -= 1;
+        this.curFirst = this.bucketSize - 1;
+      } else {
+        this.first = this.bucketNum - 1;
+        this.curFirst = this.bucketSize - 1;
+      }
+
+      if (this.first === this.last && this.curFirst === this.curLast) this.reAllocate();
+    }
+
+    this.length += 1;
+    this.map[this.first][this.curFirst] = element;
+  }
+  /**
+   * @description Remove the first element.
+   */
+
 
-  if (l <= 0) {
-    if (node.left) {
-      v = doVisit(lo, hi, compare, visit, node.left);
+  popFront() {
+    if (!this.length) return;
+    this.map[this.first][this.curFirst] = undefined;
 
-      if (v) {
-        return v;
+    if (this.length !== 1) {
+      if (this.curFirst < this.bucketSize - 1) {
+        this.curFirst += 1;
+      } else if (this.first < this.bucketNum - 1) {
+        this.first += 1;
+        this.curFirst = 0;
+      } else {
+        this.first = 0;
+        this.curFirst = 0;
       }
     }
 
-    if (h > 0) {
-      v = visit(node.key, node.value);
+    this.length -= 1;
+  }
 
-      if (v) {
-        return v;
-      }
+  forEach(callback) {
+    for (let i = 0; i < this.length; ++i) {
+      callback(this.getElementByPos(i), i);
     }
   }
 
-  if (h > 0 && node.right) {
-    return doVisit(lo, hi, compare, visit, node.right);
+  getElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    const {
+      curNodeBucketIndex,
+      curNodePointerIndex
+    } = this.getElementIndex(pos);
+    return this.map[curNodeBucketIndex][curNodePointerIndex];
   }
-}
 
-proto.forEach = function rbTreeForEach(visit, lo, hi) {
-  if (!this.root) {
-    return;
+  setElementByPos(pos, element) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    const {
+      curNodeBucketIndex,
+      curNodePointerIndex
+    } = this.getElementIndex(pos);
+    this.map[curNodeBucketIndex][curNodePointerIndex] = element;
   }
 
-  switch (arguments.length) {
-    case 1:
-      return doVisitFull(visit, this.root);
-      break;
+  insert(pos, element) {
+    let num = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length);
 
-    case 2:
-      return doVisitHalf(lo, this._compare, visit, this.root);
-      break;
+    if (pos === 0) {
+      while (num--) this.pushFront(element);
+    } else if (pos === this.length) {
+      while (num--) this.pushBack(element);
+    } else {
+      const arr = [];
 
-    case 3:
-      if (this._compare(lo, hi) >= 0) {
-        return;
+      for (let i = pos; i < this.length; ++i) {
+        arr.push(this.getElementByPos(i));
       }
 
-      return doVisit(lo, hi, this._compare, visit, this.root);
-      break;
+      this.cut(pos - 1);
+
+      for (let i = 0; i < num; ++i) this.pushBack(element);
+
+      for (let i = 0; i < arr.length; ++i) this.pushBack(arr[i]);
+    }
   }
-}; //First item in list
+  /**
+   * @description Remove all elements after the specified position (excluding the specified position).
+   * @param pos The previous position of the first removed element.
+   * @example deque.cut(1); // Then deque's size will be 2. deque -> [0, 1]
+   */
 
 
-Object.defineProperty(proto, "begin", {
-  get: function () {
-    var stack = [];
-    var n = this.root;
+  cut(pos) {
+    if (pos < 0) {
+      this.clear();
+      return;
+    }
+
+    const {
+      curNodeBucketIndex,
+      curNodePointerIndex
+    } = this.getElementIndex(pos);
+    this.last = curNodeBucketIndex;
+    this.curLast = curNodePointerIndex;
+    this.length = pos + 1;
+  }
+
+  eraseElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    if (pos === 0) this.popFront();else if (pos === this.length - 1) this.popBack();else {
+      const arr = [];
+
+      for (let i = pos + 1; i < this.length; ++i) {
+        arr.push(this.getElementByPos(i));
+      }
+
+      this.cut(pos);
+      this.popBack();
+      arr.forEach(element => this.pushBack(element));
+    }
+  }
 
-    while (n) {
-      stack.push(n);
-      n = n.left;
+  eraseElementByValue(value) {
+    if (!this.length) return;
+    const arr = [];
+
+    for (let i = 0; i < this.length; ++i) {
+      const element = this.getElementByPos(i);
+      if (element !== value) arr.push(element);
     }
 
-    return new RedBlackTreeIterator(this, stack);
+    const _length = arr.length;
+
+    for (let i = 0; i < _length; ++i) this.setElementByPos(i, arr[i]);
+
+    this.cut(_length - 1);
   }
-}); //Last item in list
 
-Object.defineProperty(proto, "end", {
-  get: function () {
-    var stack = [];
-    var n = this.root;
+  eraseElementByIterator(iter) {
+    // @ts-ignore
+    const node = iter.node;
+    this.eraseElementByPos(node);
+    iter = iter.next();
+    return iter;
+  }
 
-    while (n) {
-      stack.push(n);
-      n = n.right;
+  find(element) {
+    for (let i = 0; i < this.length; ++i) {
+      if (this.getElementByPos(i) === element) {
+        return new DequeIterator(i, this.size, this.getElementByPos, this.setElementByPos);
+      }
     }
 
-    return new RedBlackTreeIterator(this, stack);
+    return this.end();
   }
-}); //Find the ith item in the tree
 
-proto.at = function (idx) {
-  if (idx < 0) {
-    return new RedBlackTreeIterator(this, []);
+  reverse() {
+    let l = 0;
+    let r = this.length - 1;
+
+    while (l < r) {
+      const tmp = this.getElementByPos(l);
+      this.setElementByPos(l, this.getElementByPos(r));
+      this.setElementByPos(r, tmp);
+      l += 1;
+      r -= 1;
+    }
   }
 
-  var n = this.root;
-  var stack = [];
+  unique() {
+    if (this.length <= 1) return;
+    let index = 1;
+    let pre = this.getElementByPos(0);
 
-  while (true) {
-    stack.push(n);
+    for (let i = 1; i < this.length; ++i) {
+      const cur = this.getElementByPos(i);
 
-    if (n.left) {
-      if (idx < n.left._count) {
-        n = n.left;
-        continue;
+      if (cur !== pre) {
+        pre = cur;
+        this.setElementByPos(index++, cur);
       }
+    }
+
+    while (this.length > index) this.popBack();
+  }
+
+  sort(cmp) {
+    const arr = [];
 
-      idx -= n.left._count;
+    for (let i = 0; i < this.length; ++i) {
+      arr.push(this.getElementByPos(i));
     }
 
-    if (!idx) {
-      return new RedBlackTreeIterator(this, stack);
+    arr.sort(cmp);
+
+    for (let i = 0; i < this.length; ++i) this.setElementByPos(i, arr[i]);
+  }
+  /**
+   * @description Remove as much useless space as possible.
+   */
+
+
+  shrinkToFit() {
+    if (!this.length) return;
+    const arr = [];
+    this.forEach(element => arr.push(element));
+    this.bucketNum = Math.max(Math.ceil(this.length / this.bucketSize), 1);
+    this.length = this.first = this.last = this.curFirst = this.curLast = 0;
+    this.map = [];
+
+    for (let i = 0; i < this.bucketNum; ++i) {
+      this.map.push(new Array(this.bucketSize));
     }
 
-    idx -= 1;
+    for (let i = 0; i < arr.length; ++i) this.pushBack(arr[i]);
+  }
 
-    if (n.right) {
-      if (idx >= n.right._count) {
-        break;
+  [Symbol.iterator]() {
+    return function* () {
+      for (let i = 0; i < this.length; ++i) {
+        yield this.getElementByPos(i);
       }
+    }.bind(this)();
+  }
+
+}
+
+exports["default"] = Deque;
+
+/***/ }),
+/* 680 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __webpack_require__(677);
+
+class SequentialContainer extends index_1.Container {}
+
+exports["default"] = SequentialContainer;
+
+/***/ }),
+/* 681 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.checkWithinAccessParams = void 0;
+/**
+ * @description Check if access is out of bounds.
+ * @param pos The position want to access.
+ * @param lower The lower bound.
+ * @param upper The upper bound.
+ * @return Boolean about if access is out of bounds.
+ */
+
+function checkWithinAccessParams(pos, lower, upper) {
+  if (pos < lower || pos > upper) {
+    throw new RangeError();
+  }
+}
+
+exports.checkWithinAccessParams = checkWithinAccessParams;
+
+/***/ }),
+/* 682 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-      n = n.right;
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.RandomIterator = void 0;
+
+const checkParams_1 = __webpack_require__(681);
+
+const index_1 = __webpack_require__(677);
+
+class RandomIterator extends index_1.ContainerIterator {
+  constructor(index, size, getElementByPos, setElementByPos, iteratorType) {
+    super(iteratorType);
+    this.node = index;
+    this.size = size;
+    this.getElementByPos = getElementByPos;
+    this.setElementByPos = setElementByPos;
+
+    if (this.iteratorType === index_1.ContainerIterator.NORMAL) {
+      this.pre = function () {
+        if (this.node === 0) {
+          throw new RangeError('Deque iterator access denied!');
+        }
+
+        this.node -= 1;
+        return this;
+      };
+
+      this.next = function () {
+        if (this.node === this.size()) {
+          throw new RangeError('Deque Iterator access denied!');
+        }
+
+        this.node += 1;
+        return this;
+      };
     } else {
-      break;
+      this.pre = function () {
+        if (this.node === this.size() - 1) {
+          throw new RangeError('Deque iterator access denied!');
+        }
+
+        this.node += 1;
+        return this;
+      };
+
+      this.next = function () {
+        if (this.node === -1) {
+          throw new RangeError('Deque iterator access denied!');
+        }
+
+        this.node -= 1;
+        return this;
+      };
     }
   }
 
-  return new RedBlackTreeIterator(this, []);
-};
+  get pointer() {
+    (0, checkParams_1.checkWithinAccessParams)(this.node, 0, this.size() - 1);
+    return this.getElementByPos(this.node);
+  }
+
+  set pointer(newValue) {
+    (0, checkParams_1.checkWithinAccessParams)(this.node, 0, this.size() - 1);
+    this.setElementByPos(this.node, newValue);
+  }
 
-proto.ge = function (key) {
-  var cmp = this._compare;
-  var n = this.root;
-  var stack = [];
-  var last_ptr = 0;
+  equals(obj) {
+    return this.node === obj.node;
+  }
 
-  while (n) {
-    var d = cmp(key, n.key);
-    stack.push(n);
+}
 
-    if (d <= 0) {
-      last_ptr = stack.length;
-    }
+exports.RandomIterator = RandomIterator;
+
+/***/ }),
+/* 683 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __webpack_require__(677);
 
-    if (d <= 0) {
-      n = n.left;
+class PriorityQueue extends index_1.Base {
+  /**
+   * @description PriorityQueue's constructor.
+   * @param container Initialize container, must have a forEach function.
+   * @param cmp Compare function.
+   * @param copy When the container is an array, you can choose to directly operate on the original object of
+   *             the array or perform a shallow copy. The default is shallow copy.
+   */
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let cmp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (x, y) => {
+      if (x > y) return -1;
+      if (x < y) return 1;
+      return 0;
+    };
+    let copy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+    super();
+    this.cmp = cmp;
+
+    if (Array.isArray(container)) {
+      this.priorityQueue = copy ? [...container] : container;
     } else {
-      n = n.right;
+      this.priorityQueue = [];
+      container.forEach(element => this.priorityQueue.push(element));
     }
-  }
 
-  stack.length = last_ptr;
-  return new RedBlackTreeIterator(this, stack);
-};
+    this.length = this.priorityQueue.length;
+
+    for (let parent = this.length - 1 >> 1; parent >= 0; --parent) {
+      let curParent = parent;
+      let curChild = curParent << 1 | 1;
+
+      while (curChild < this.length) {
+        const left = curChild;
+        const right = left + 1;
+        let minChild = left;
+
+        if (right < this.length && this.cmp(this.priorityQueue[left], this.priorityQueue[right]) > 0) {
+          minChild = right;
+        }
+
+        if (this.cmp(this.priorityQueue[curParent], this.priorityQueue[minChild]) <= 0) break;
+        [this.priorityQueue[curParent], this.priorityQueue[minChild]] = [this.priorityQueue[minChild], this.priorityQueue[curParent]];
+        curParent = minChild;
+        curChild = curParent << 1 | 1;
+      }
+    }
+  }
+  /**
+   * @description Adjusting parent's children to suit the nature of the heap.
+   * @param parent Parent's index.
+   * @private
+   */
 
-proto.gt = function (key) {
-  var cmp = this._compare;
-  var n = this.root;
-  var stack = [];
-  var last_ptr = 0;
 
-  while (n) {
-    var d = cmp(key, n.key);
-    stack.push(n);
+  adjust(parent) {
+    const left = parent << 1 | 1;
+    const right = (parent << 1) + 2;
 
-    if (d < 0) {
-      last_ptr = stack.length;
+    if (left < this.length && this.cmp(this.priorityQueue[parent], this.priorityQueue[left]) > 0) {
+      [this.priorityQueue[parent], this.priorityQueue[left]] = [this.priorityQueue[left], this.priorityQueue[parent]];
     }
 
-    if (d < 0) {
-      n = n.left;
-    } else {
-      n = n.right;
+    if (right < this.length && this.cmp(this.priorityQueue[parent], this.priorityQueue[right]) > 0) {
+      [this.priorityQueue[parent], this.priorityQueue[right]] = [this.priorityQueue[right], this.priorityQueue[parent]];
     }
   }
 
-  stack.length = last_ptr;
-  return new RedBlackTreeIterator(this, stack);
-};
+  clear() {
+    this.length = 0;
+    this.priorityQueue.length = 0;
+  }
+  /**
+   * @description Push element into a container in order.
+   * @param element The element you want to push.
+   */
 
-proto.lt = function (key) {
-  var cmp = this._compare;
-  var n = this.root;
-  var stack = [];
-  var last_ptr = 0;
 
-  while (n) {
-    var d = cmp(key, n.key);
-    stack.push(n);
+  push(element) {
+    this.priorityQueue.push(element);
+    this.length += 1;
+    if (this.length === 1) return;
+    let curNode = this.length - 1;
 
-    if (d > 0) {
-      last_ptr = stack.length;
+    while (curNode > 0) {
+      const parent = curNode - 1 >> 1;
+      if (this.cmp(this.priorityQueue[parent], element) <= 0) break;
+      this.adjust(parent);
+      curNode = parent;
     }
+  }
+  /**
+   * @description Removes the top element.
+   */
 
-    if (d <= 0) {
-      n = n.left;
-    } else {
-      n = n.right;
+
+  pop() {
+    if (!this.length) return;
+    const last = this.priorityQueue[this.length - 1];
+    this.length -= 1;
+    let parent = 0;
+
+    while (parent < this.length) {
+      const left = parent << 1 | 1;
+      const right = (parent << 1) + 2;
+      if (left >= this.length) break;
+      let minChild = left;
+
+      if (right < this.length && this.cmp(this.priorityQueue[left], this.priorityQueue[right]) > 0) {
+        minChild = right;
+      }
+
+      if (this.cmp(this.priorityQueue[minChild], last) >= 0) break;
+      this.priorityQueue[parent] = this.priorityQueue[minChild];
+      parent = minChild;
     }
+
+    this.priorityQueue[parent] = last;
+    this.priorityQueue.pop();
+  }
+  /**
+   * @description Accesses the top element.
+   */
+
+
+  top() {
+    return this.priorityQueue[0];
   }
 
-  stack.length = last_ptr;
-  return new RedBlackTreeIterator(this, stack);
+}
+
+exports["default"] = PriorityQueue;
+
+/***/ }),
+/* 684 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
 };
 
-proto.le = function (key) {
-  var cmp = this._compare;
-  var n = this.root;
-  var stack = [];
-  var last_ptr = 0;
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.VectorIterator = void 0;
 
-  while (n) {
-    var d = cmp(key, n.key);
-    stack.push(n);
+const index_1 = __importDefault(__webpack_require__(680));
 
-    if (d >= 0) {
-      last_ptr = stack.length;
-    }
+const checkParams_1 = __webpack_require__(681);
+
+const index_2 = __webpack_require__(677);
+
+const RandomIterator_1 = __webpack_require__(682);
+
+class VectorIterator extends RandomIterator_1.RandomIterator {
+  copy() {
+    return new VectorIterator(this.node, this.size, this.getElementByPos, this.setElementByPos, this.iteratorType);
+  }
+
+}
+
+exports.VectorIterator = VectorIterator;
+
+class Vector extends index_1.default {
+  /**
+   * @description Vector's constructor.
+   * @param container Initialize container, must have a forEach function.
+   * @param copy When the container is an array, you can choose to directly operate on the original object of
+   *             the array or perform a shallow copy. The default is shallow copy.
+   */
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let copy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+    super();
 
-    if (d < 0) {
-      n = n.left;
+    if (Array.isArray(container)) {
+      this.vector = copy ? [...container] : container;
+      this.length = container.length;
     } else {
-      n = n.right;
+      this.vector = [];
+      container.forEach(element => this.pushBack(element));
     }
+
+    this.size = this.size.bind(this);
+    this.getElementByPos = this.getElementByPos.bind(this);
+    this.setElementByPos = this.setElementByPos.bind(this);
+  }
+
+  clear() {
+    this.length = 0;
+    this.vector.length = 0;
   }
 
-  stack.length = last_ptr;
-  return new RedBlackTreeIterator(this, stack);
-}; //Finds the item with key if it exists
+  begin() {
+    return new VectorIterator(0, this.size, this.getElementByPos, this.setElementByPos);
+  }
 
+  end() {
+    return new VectorIterator(this.length, this.size, this.getElementByPos, this.setElementByPos);
+  }
 
-proto.find = function (key) {
-  var cmp = this._compare;
-  var n = this.root;
-  var stack = [];
+  rBegin() {
+    return new VectorIterator(this.length - 1, this.size, this.getElementByPos, this.setElementByPos, index_2.ContainerIterator.REVERSE);
+  }
 
-  while (n) {
-    var d = cmp(key, n.key);
-    stack.push(n);
+  rEnd() {
+    return new VectorIterator(-1, this.size, this.getElementByPos, this.setElementByPos, index_2.ContainerIterator.REVERSE);
+  }
 
-    if (d === 0) {
-      return new RedBlackTreeIterator(this, stack);
-    }
+  front() {
+    return this.vector[0];
+  }
 
-    if (d <= 0) {
-      n = n.left;
-    } else {
-      n = n.right;
+  back() {
+    return this.vector[this.length - 1];
+  }
+
+  forEach(callback) {
+    for (let i = 0; i < this.length; ++i) {
+      callback(this.vector[i], i);
     }
   }
 
-  return new RedBlackTreeIterator(this, []);
-}; //Removes item with key from tree
+  getElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    return this.vector[pos];
+  }
+
+  eraseElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    this.vector.splice(pos, 1);
+    this.length -= 1;
+  }
 
+  eraseElementByValue(value) {
+    let index = 0;
 
-proto.remove = function (key) {
-  var iter = this.find(key);
+    for (let i = 0; i < this.length; ++i) {
+      if (this.vector[i] !== value) {
+        this.vector[index++] = this.vector[i];
+      }
+    }
 
-  if (iter) {
-    return iter.remove();
+    this.length = this.vector.length = index;
   }
 
-  return this;
-}; //Returns the item at `key`
+  eraseElementByIterator(iter) {
+    // @ts-ignore
+    const node = iter.node;
+    iter = iter.next();
+    this.eraseElementByPos(node);
+    return iter;
+  }
 
+  pushBack(element) {
+    this.vector.push(element);
+    this.length += 1;
+  }
 
-proto.get = function (key) {
-  var cmp = this._compare;
-  var n = this.root;
+  popBack() {
+    if (!this.length) return;
+    this.vector.pop();
+    this.length -= 1;
+  }
 
-  while (n) {
-    var d = cmp(key, n.key);
+  setElementByPos(pos, element) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    this.vector[pos] = element;
+  }
 
-    if (d === 0) {
-      return n.value;
-    }
+  insert(pos, element) {
+    let num = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length);
+    this.vector.splice(pos, 0, ...new Array(num).fill(element));
+    this.length += num;
+  }
 
-    if (d <= 0) {
-      n = n.left;
-    } else {
-      n = n.right;
+  find(element) {
+    for (let i = 0; i < this.length; ++i) {
+      if (this.vector[i] === element) {
+        return new VectorIterator(i, this.size, this.getElementByPos, this.getElementByPos);
+      }
     }
+
+    return this.end();
   }
 
-  return;
-}; //Iterator for red black tree
+  reverse() {
+    this.vector.reverse();
+  }
 
+  unique() {
+    let index = 1;
 
-function RedBlackTreeIterator(tree, stack) {
-  this.tree = tree;
-  this._stack = stack;
-}
+    for (let i = 1; i < this.length; ++i) {
+      if (this.vector[i] !== this.vector[i - 1]) {
+        this.vector[index++] = this.vector[i];
+      }
+    }
 
-var iproto = RedBlackTreeIterator.prototype; //Test if iterator is valid
+    this.length = this.vector.length = index;
+  }
 
-Object.defineProperty(iproto, "valid", {
-  get: function () {
-    return this._stack.length > 0;
+  sort(cmp) {
+    this.vector.sort(cmp);
   }
-}); //Node of the iterator
 
-Object.defineProperty(iproto, "node", {
-  get: function () {
-    if (this._stack.length > 0) {
-      return this._stack[this._stack.length - 1];
-    }
+  [Symbol.iterator]() {
+    return function* () {
+      return yield* this.vector;
+    }.bind(this)();
+  }
 
-    return null;
-  },
-  enumerable: true
-}); //Makes a copy of an iterator
+}
 
-iproto.clone = function () {
-  return new RedBlackTreeIterator(this.tree, this._stack.slice());
-}; //Swaps two nodes
+exports["default"] = Vector;
 
+/***/ }),
+/* 685 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
 
-function swapNode(n, v) {
-  n.key = v.key;
-  n.value = v.value;
-  n.left = v.left;
-  n.right = v.right;
-  n._color = v._color;
-  n._count = v._count;
-} //Fix up a double black node in a tree
+"use strict";
 
 
-function fixDoubleBlack(stack) {
-  var n, p, s, z;
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
 
-  for (var i = stack.length - 1; i >= 0; --i) {
-    n = stack[i];
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.LinkListIterator = exports.LinkNode = void 0;
 
-    if (i === 0) {
-      n._color = BLACK;
-      return;
-    } //console.log("visit node:", n.key, i, stack[i].key, stack[i-1].key)
-
-
-    p = stack[i - 1];
-
-    if (p.left === n) {
-      //console.log("left child")
-      s = p.right;
-
-      if (s.right && s.right._color === RED) {
-        //console.log("case 1: right sibling child red")
-        s = p.right = cloneNode(s);
-        z = s.right = cloneNode(s.right);
-        p.right = s.left;
-        s.left = p;
-        s.right = z;
-        s._color = p._color;
-        n._color = BLACK;
-        p._color = BLACK;
-        z._color = BLACK;
-        recount(p);
-        recount(s);
-
-        if (i > 1) {
-          var pp = stack[i - 2];
-
-          if (pp.left === p) {
-            pp.left = s;
-          } else {
-            pp.right = s;
-          }
-        }
+const index_1 = __importDefault(__webpack_require__(680));
 
-        stack[i - 1] = s;
-        return;
-      } else if (s.left && s.left._color === RED) {
-        //console.log("case 1: left sibling child red")
-        s = p.right = cloneNode(s);
-        z = s.left = cloneNode(s.left);
-        p.right = z.left;
-        s.left = z.right;
-        z.left = p;
-        z.right = s;
-        z._color = p._color;
-        p._color = BLACK;
-        s._color = BLACK;
-        n._color = BLACK;
-        recount(p);
-        recount(s);
-        recount(z);
-
-        if (i > 1) {
-          var pp = stack[i - 2];
-
-          if (pp.left === p) {
-            pp.left = z;
-          } else {
-            pp.right = z;
-          }
-        }
+const checkParams_1 = __webpack_require__(681);
 
-        stack[i - 1] = z;
-        return;
-      }
+const index_2 = __webpack_require__(677);
 
-      if (s._color === BLACK) {
-        if (p._color === RED) {
-          //console.log("case 2: black sibling, red parent", p.right.value)
-          p._color = BLACK;
-          p.right = repaint(RED, s);
-          return;
-        } else {
-          //console.log("case 2: black sibling, black parent", p.right.value)
-          p.right = repaint(RED, s);
-          continue;
-        }
-      } else {
-        //console.log("case 3: red sibling")
-        s = cloneNode(s);
-        p.right = s.left;
-        s.left = p;
-        s._color = p._color;
-        p._color = RED;
-        recount(p);
-        recount(s);
-
-        if (i > 1) {
-          var pp = stack[i - 2];
-
-          if (pp.left === p) {
-            pp.left = s;
-          } else {
-            pp.right = s;
-          }
-        }
+class LinkNode {
+  constructor(element) {
+    this.value = undefined;
+    this.pre = undefined;
+    this.next = undefined;
+    this.value = element;
+  }
 
-        stack[i - 1] = s;
-        stack[i] = p;
+}
 
-        if (i + 1 < stack.length) {
-          stack[i + 1] = n;
-        } else {
-          stack.push(n);
-        }
+exports.LinkNode = LinkNode;
 
-        i = i + 2;
-      }
-    } else {
-      //console.log("right child")
-      s = p.left;
-
-      if (s.left && s.left._color === RED) {
-        //console.log("case 1: left sibling child red", p.value, p._color)
-        s = p.left = cloneNode(s);
-        z = s.left = cloneNode(s.left);
-        p.left = s.right;
-        s.right = p;
-        s.left = z;
-        s._color = p._color;
-        n._color = BLACK;
-        p._color = BLACK;
-        z._color = BLACK;
-        recount(p);
-        recount(s);
-
-        if (i > 1) {
-          var pp = stack[i - 2];
-
-          if (pp.right === p) {
-            pp.right = s;
-          } else {
-            pp.left = s;
-          }
-        }
+class LinkListIterator extends index_2.ContainerIterator {
+  constructor(node, header, iteratorType) {
+    super(iteratorType);
+    this.node = node;
+    this.header = header;
 
-        stack[i - 1] = s;
-        return;
-      } else if (s.right && s.right._color === RED) {
-        //console.log("case 1: right sibling child red")
-        s = p.left = cloneNode(s);
-        z = s.right = cloneNode(s.right);
-        p.left = z.right;
-        s.right = z.left;
-        z.right = p;
-        z.left = s;
-        z._color = p._color;
-        p._color = BLACK;
-        s._color = BLACK;
-        n._color = BLACK;
-        recount(p);
-        recount(s);
-        recount(z);
-
-        if (i > 1) {
-          var pp = stack[i - 2];
-
-          if (pp.right === p) {
-            pp.right = z;
-          } else {
-            pp.left = z;
-          }
+    if (this.iteratorType === index_2.ContainerIterator.NORMAL) {
+      this.pre = function () {
+        if (this.node.pre === this.header) {
+          throw new RangeError('LinkList iterator access denied!');
         }
 
-        stack[i - 1] = z;
-        return;
-      }
+        this.node = this.node.pre;
+        return this;
+      };
 
-      if (s._color === BLACK) {
-        if (p._color === RED) {
-          //console.log("case 2: black sibling, red parent")
-          p._color = BLACK;
-          p.left = repaint(RED, s);
-          return;
-        } else {
-          //console.log("case 2: black sibling, black parent")
-          p.left = repaint(RED, s);
-          continue;
+      this.next = function () {
+        if (this.node === this.header) {
+          throw new RangeError('LinkList iterator access denied!');
         }
-      } else {
-        //console.log("case 3: red sibling")
-        s = cloneNode(s);
-        p.left = s.right;
-        s.right = p;
-        s._color = p._color;
-        p._color = RED;
-        recount(p);
-        recount(s);
-
-        if (i > 1) {
-          var pp = stack[i - 2];
-
-          if (pp.right === p) {
-            pp.right = s;
-          } else {
-            pp.left = s;
-          }
+
+        this.node = this.node.next;
+        return this;
+      };
+    } else {
+      this.pre = function () {
+        if (this.node.next === this.header) {
+          throw new RangeError('LinkList iterator access denied!');
         }
 
-        stack[i - 1] = s;
-        stack[i] = p;
+        this.node = this.node.next;
+        return this;
+      };
 
-        if (i + 1 < stack.length) {
-          stack[i + 1] = n;
-        } else {
-          stack.push(n);
+      this.next = function () {
+        if (this.node === this.header) {
+          throw new RangeError('LinkList iterator access denied!');
         }
 
-        i = i + 2;
-      }
+        this.node = this.node.pre;
+        return this;
+      };
     }
   }
-} //Removes item at iterator from tree
 
+  get pointer() {
+    if (this.node === this.header) {
+      throw new RangeError('LinkList iterator access denied!');
+    }
+
+    return this.node.value;
+  }
 
-iproto.remove = function () {
-  var stack = this._stack;
+  set pointer(newValue) {
+    if (this.node === this.header) {
+      throw new RangeError('LinkList iterator access denied!');
+    }
 
-  if (stack.length === 0) {
-    return this.tree;
-  } //First copy path to node
+    this.node.value = newValue;
+  }
 
+  equals(obj) {
+    return this.node === obj.node;
+  }
 
-  var cstack = new Array(stack.length);
-  var n = stack[stack.length - 1];
-  cstack[cstack.length - 1] = new RBNode(n._color, n.key, n.value, n.left, n.right, n._count);
+  copy() {
+    return new LinkListIterator(this.node, this.header, this.iteratorType);
+  }
 
-  for (var i = stack.length - 2; i >= 0; --i) {
-    var n = stack[i];
+}
 
-    if (n.left === stack[i + 1]) {
-      cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i + 1], n.right, n._count);
-    } else {
-      cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);
-    }
-  } //Get node
+exports.LinkListIterator = LinkListIterator;
 
+class LinkList extends index_1.default {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    super();
+    this.header = new LinkNode();
+    this.head = undefined;
+    this.tail = undefined;
+    container.forEach(element => this.pushBack(element));
+  }
 
-  n = cstack[cstack.length - 1]; //console.log("start remove: ", n.value)
-  //If not leaf, then swap with previous node
+  clear() {
+    this.length = 0;
+    this.head = this.tail = undefined;
+    this.header.pre = this.header.next = undefined;
+  }
 
-  if (n.left && n.right) {
-    //console.log("moving to leaf")
-    //First walk to previous leaf
-    var split = cstack.length;
-    n = n.left;
+  begin() {
+    return new LinkListIterator(this.head || this.header, this.header);
+  }
 
-    while (n.right) {
-      cstack.push(n);
-      n = n.right;
-    } //Copy path to leaf
+  end() {
+    return new LinkListIterator(this.header, this.header);
+  }
 
+  rBegin() {
+    return new LinkListIterator(this.tail || this.header, this.header, index_2.ContainerIterator.REVERSE);
+  }
 
-    var v = cstack[split - 1];
-    cstack.push(new RBNode(n._color, v.key, v.value, n.left, n.right, n._count));
-    cstack[split - 1].key = n.key;
-    cstack[split - 1].value = n.value; //Fix up stack
+  rEnd() {
+    return new LinkListIterator(this.header, this.header, index_2.ContainerIterator.REVERSE);
+  }
 
-    for (var i = cstack.length - 2; i >= split; --i) {
-      n = cstack[i];
-      cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);
-    }
+  front() {
+    return this.head ? this.head.value : undefined;
+  }
 
-    cstack[split - 1].left = cstack[split];
-  } //console.log("stack=", cstack.map(function(v) { return v.value }))
-  //Remove leaf node
+  back() {
+    return this.tail ? this.tail.value : undefined;
+  }
 
+  forEach(callback) {
+    if (!this.length) return;
+    let curNode = this.head;
+    let index = 0;
 
-  n = cstack[cstack.length - 1];
+    while (curNode !== this.header) {
+      callback(curNode.value, index++);
+      curNode = curNode.next;
+    }
+  }
 
-  if (n._color === RED) {
-    //Easy case: removing red leaf
-    //console.log("RED leaf")
-    var p = cstack[cstack.length - 2];
+  getElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    let curNode = this.head;
 
-    if (p.left === n) {
-      p.left = null;
-    } else if (p.right === n) {
-      p.right = null;
+    while (pos--) {
+      curNode = curNode.next;
     }
 
-    cstack.pop();
+    return curNode.value;
+  }
+
+  eraseElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    if (pos === 0) this.popFront();else if (pos === this.length - 1) this.popBack();else {
+      let curNode = this.head;
+
+      while (pos--) {
+        curNode = curNode.next;
+      }
 
-    for (var i = 0; i < cstack.length; ++i) {
-      cstack[i]._count--;
+      curNode = curNode;
+      const pre = curNode.pre;
+      const next = curNode.next;
+      next.pre = pre;
+      pre.next = next;
+      this.length -= 1;
     }
+  }
 
-    return new RedBlackTree(this.tree._compare, cstack[0]);
-  } else {
-    if (n.left || n.right) {
-      //Second easy case:  Single child black parent
-      //console.log("BLACK single child")
-      if (n.left) {
-        swapNode(n, n.left);
-      } else if (n.right) {
-        swapNode(n, n.right);
-      } //Child must be red, so repaint it black to balance color
+  eraseElementByValue(value) {
+    while (this.head && this.head.value === value) this.popFront();
 
+    while (this.tail && this.tail.value === value) this.popBack();
 
-      n._color = BLACK;
+    if (!this.head) return;
+    let curNode = this.head;
 
-      for (var i = 0; i < cstack.length - 1; ++i) {
-        cstack[i]._count--;
+    while (curNode !== this.header) {
+      if (curNode.value === value) {
+        const pre = curNode.pre;
+        const next = curNode.next;
+        if (next) next.pre = pre;
+        if (pre) pre.next = next;
+        this.length -= 1;
       }
 
-      return new RedBlackTree(this.tree._compare, cstack[0]);
-    } else if (cstack.length === 1) {
-      //Third easy case: root
-      //console.log("ROOT")
-      return new RedBlackTree(this.tree._compare, null);
-    } else {
-      //Hard case: Repaint n, and then do some nasty stuff
-      //console.log("BLACK leaf no children")
-      for (var i = 0; i < cstack.length; ++i) {
-        cstack[i]._count--;
-      }
+      curNode = curNode.next;
+    }
+  }
 
-      var parent = cstack[cstack.length - 2];
-      fixDoubleBlack(cstack); //Fix up links
+  eraseElementByIterator(iter) {
+    // @ts-ignore
+    const node = iter.node;
 
-      if (parent.left === n) {
-        parent.left = null;
-      } else {
-        parent.right = null;
-      }
+    if (node === this.header) {
+      throw new RangeError('Invalid iterator');
+    }
+
+    iter = iter.next();
+    if (this.head === node) this.popFront();else if (this.tail === node) this.popBack();else {
+      const pre = node.pre;
+      const next = node.next;
+      if (next) next.pre = pre;
+      if (pre) pre.next = next;
+      this.length -= 1;
     }
+    return iter;
   }
 
-  return new RedBlackTree(this.tree._compare, cstack[0]);
-}; //Returns key
+  pushBack(element) {
+    this.length += 1;
+    const newTail = new LinkNode(element);
 
+    if (!this.tail) {
+      this.head = this.tail = newTail;
+      this.header.next = this.head;
+      this.head.pre = this.header;
+    } else {
+      this.tail.next = newTail;
+      newTail.pre = this.tail;
+      this.tail = newTail;
+    }
 
-Object.defineProperty(iproto, "key", {
-  get: function () {
-    if (this._stack.length > 0) {
-      return this._stack[this._stack.length - 1].key;
+    this.tail.next = this.header;
+    this.header.pre = this.tail;
+  }
+
+  popBack() {
+    if (!this.tail) return;
+    this.length -= 1;
+
+    if (this.head === this.tail) {
+      this.head = this.tail = undefined;
+      this.header.next = undefined;
+    } else {
+      this.tail = this.tail.pre;
+      if (this.tail) this.tail.next = undefined;
     }
 
-    return;
-  },
-  enumerable: true
-}); //Returns value
+    this.header.pre = this.tail;
+    if (this.tail) this.tail.next = this.header;
+  }
 
-Object.defineProperty(iproto, "value", {
-  get: function () {
-    if (this._stack.length > 0) {
-      return this._stack[this._stack.length - 1].value;
+  setElementByPos(pos, element) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    let curNode = this.head;
+
+    while (pos--) {
+      curNode = curNode.next;
     }
 
-    return;
-  },
-  enumerable: true
-}); //Returns the position of this iterator in the sorted list
+    curNode.value = element;
+  }
 
-Object.defineProperty(iproto, "index", {
-  get: function () {
-    var idx = 0;
-    var stack = this._stack;
+  insert(pos, element) {
+    let num = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length);
+    if (num <= 0) return;
+
+    if (pos === 0) {
+      while (num--) this.pushFront(element);
+    } else if (pos === this.length) {
+      while (num--) this.pushBack(element);
+    } else {
+      let curNode = this.head;
+
+      for (let i = 1; i < pos; ++i) {
+        curNode = curNode.next;
+      }
 
-    if (stack.length === 0) {
-      var r = this.tree.root;
+      const next = curNode.next;
+      this.length += num;
 
-      if (r) {
-        return r._count;
+      while (num--) {
+        curNode.next = new LinkNode(element);
+        curNode.next.pre = curNode;
+        curNode = curNode.next;
       }
 
-      return 0;
-    } else if (stack[stack.length - 1].left) {
-      idx = stack[stack.length - 1].left._count;
+      curNode.next = next;
+      if (next) next.pre = curNode;
     }
+  }
 
-    for (var s = stack.length - 2; s >= 0; --s) {
-      if (stack[s + 1] === stack[s].right) {
-        ++idx;
+  find(element) {
+    if (!this.head) return this.end();
+    let curNode = this.head;
 
-        if (stack[s].left) {
-          idx += stack[s].left._count;
-        }
+    while (curNode !== this.header) {
+      if (curNode.value === element) {
+        return new LinkListIterator(curNode, this.header);
       }
+
+      curNode = curNode.next;
     }
 
-    return idx;
-  },
-  enumerable: true
-}); //Advances iterator to next element in list
+    return this.end();
+  }
 
-iproto.next = function () {
-  var stack = this._stack;
+  reverse() {
+    if (this.length <= 1) return;
+    let pHead = this.head;
+    let pTail = this.tail;
+    let cnt = 0;
 
-  if (stack.length === 0) {
-    return;
+    while (cnt << 1 < this.length) {
+      const tmp = pHead.value;
+      pHead.value = pTail.value;
+      pTail.value = tmp;
+      pHead = pHead.next;
+      pTail = pTail.pre;
+      cnt += 1;
+    }
   }
 
-  var n = stack[stack.length - 1];
+  unique() {
+    if (this.length <= 1) return;
+    let curNode = this.head;
 
-  if (n.right) {
-    n = n.right;
+    while (curNode !== this.header) {
+      let tmpNode = curNode;
 
-    while (n) {
-      stack.push(n);
-      n = n.left;
+      while (tmpNode.next && tmpNode.value === tmpNode.next.value) {
+        tmpNode = tmpNode.next;
+        this.length -= 1;
+      }
+
+      curNode.next = tmpNode.next;
+      if (curNode.next) curNode.next.pre = curNode;
+      curNode = curNode.next;
     }
-  } else {
-    stack.pop();
+  }
 
-    while (stack.length > 0 && stack[stack.length - 1].right === n) {
-      n = stack[stack.length - 1];
-      stack.pop();
+  sort(cmp) {
+    if (this.length <= 1) return;
+    const arr = [];
+    this.forEach(element => arr.push(element));
+    arr.sort(cmp);
+    let curNode = this.head;
+    arr.forEach(element => {
+      curNode.value = element;
+      curNode = curNode.next;
+    });
+  }
+  /**
+   * @description Push an element to the front.
+   * @param element The element you want to push.
+   */
+
+
+  pushFront(element) {
+    this.length += 1;
+    const newHead = new LinkNode(element);
+
+    if (!this.head) {
+      this.head = this.tail = newHead;
+      this.tail.next = this.header;
+      this.header.pre = this.tail;
+    } else {
+      newHead.next = this.head;
+      this.head.pre = newHead;
+      this.head = newHead;
     }
+
+    this.header.next = this.head;
+    this.head.pre = this.header;
   }
-}; //Checks if iterator is at end of tree
+  /**
+   * @description Removes the first element.
+   */
 
 
-Object.defineProperty(iproto, "hasNext", {
-  get: function () {
-    var stack = this._stack;
+  popFront() {
+    if (!this.head) return;
+    this.length -= 1;
 
-    if (stack.length === 0) {
-      return false;
+    if (this.head === this.tail) {
+      this.head = this.tail = undefined;
+      this.header.pre = this.tail;
+    } else {
+      this.head = this.head.next;
+      if (this.head) this.head.pre = this.header;
     }
 
-    if (stack[stack.length - 1].right) {
-      return true;
+    this.header.next = this.head;
+  }
+  /**
+   * @description Merges two sorted lists.
+   * @param list The other list you want to merge (must be sorted).
+   */
+
+
+  merge(list) {
+    if (!this.head) {
+      list.forEach(element => this.pushBack(element));
+      return;
     }
 
-    for (var s = stack.length - 1; s > 0; --s) {
-      if (stack[s - 1].left === stack[s]) {
-        return true;
+    let curNode = this.head;
+    list.forEach(element => {
+      while (curNode && curNode !== this.header && curNode.value <= element) {
+        curNode = curNode.next;
       }
-    }
 
-    return false;
+      if (curNode === this.header) {
+        this.pushBack(element);
+        curNode = this.tail;
+      } else if (curNode === this.head) {
+        this.pushFront(element);
+        curNode = this.head;
+      } else {
+        this.length += 1;
+        const pre = curNode.pre;
+        pre.next = new LinkNode(element);
+        pre.next.pre = pre;
+        pre.next.next = curNode;
+        curNode.pre = pre.next;
+      }
+    });
   }
-}); //Update value
 
-iproto.update = function (value) {
-  var stack = this._stack;
+  [Symbol.iterator]() {
+    return function* () {
+      if (!this.head) return;
+      let curNode = this.head;
 
-  if (stack.length === 0) {
-    throw new Error("Can't update empty node!");
+      while (curNode !== this.header) {
+        yield curNode.value;
+        curNode = curNode.next;
+      }
+    }.bind(this)();
   }
 
-  var cstack = new Array(stack.length);
-  var n = stack[stack.length - 1];
-  cstack[cstack.length - 1] = new RBNode(n._color, n.key, value, n.left, n.right, n._count);
+}
 
-  for (var i = stack.length - 2; i >= 0; --i) {
-    n = stack[i];
+exports["default"] = LinkList;
 
-    if (n.left === stack[i + 1]) {
-      cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i + 1], n.right, n._count);
-    } else {
-      cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);
+/***/ }),
+/* 686 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.OrderedSetIterator = void 0;
+
+const index_1 = __importDefault(__webpack_require__(687));
+
+const index_2 = __webpack_require__(677);
+
+const checkParams_1 = __webpack_require__(681);
+
+const TreeIterator_1 = __importDefault(__webpack_require__(689));
+
+class OrderedSetIterator extends TreeIterator_1.default {
+  get pointer() {
+    if (this.node === this.header) {
+      throw new RangeError('OrderedSet iterator access denied!');
     }
+
+    return this.node.key;
+  }
+
+  copy() {
+    return new OrderedSetIterator(this.node, this.header, this.iteratorType);
   }
 
-  return new RedBlackTree(this.tree._compare, cstack[0]);
-}; //Moves iterator backward one element
+}
 
+exports.OrderedSetIterator = OrderedSetIterator;
 
-iproto.prev = function () {
-  var stack = this._stack;
+class OrderedSet extends index_1.default {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let cmp = arguments.length > 1 ? arguments[1] : undefined;
+    super(cmp);
+
+    this.iterationFunc = function* (curNode) {
+      if (curNode === undefined) return;
+      yield* this.iterationFunc(curNode.left);
+      yield curNode.key;
+      yield* this.iterationFunc(curNode.right);
+    };
 
-  if (stack.length === 0) {
-    return;
+    container.forEach(element => this.insert(element));
+    this.iterationFunc = this.iterationFunc.bind(this);
   }
 
-  var n = stack[stack.length - 1];
+  begin() {
+    return new OrderedSetIterator(this.header.left || this.header, this.header);
+  }
 
-  if (n.left) {
-    n = n.left;
+  end() {
+    return new OrderedSetIterator(this.header, this.header);
+  }
 
-    while (n) {
-      stack.push(n);
-      n = n.right;
-    }
-  } else {
-    stack.pop();
+  rBegin() {
+    return new OrderedSetIterator(this.header.right || this.header, this.header, index_2.ContainerIterator.REVERSE);
+  }
 
-    while (stack.length > 0 && stack[stack.length - 1].left === n) {
-      n = stack[stack.length - 1];
-      stack.pop();
-    }
+  rEnd() {
+    return new OrderedSetIterator(this.header, this.header, index_2.ContainerIterator.REVERSE);
   }
-}; //Checks if iterator is at start of tree
 
+  front() {
+    return this.header.left ? this.header.left.key : undefined;
+  }
 
-Object.defineProperty(iproto, "hasPrev", {
-  get: function () {
-    var stack = this._stack;
+  back() {
+    return this.header.right ? this.header.right.key : undefined;
+  }
 
-    if (stack.length === 0) {
-      return false;
-    }
+  forEach(callback) {
+    let index = 0;
 
-    if (stack[stack.length - 1].left) {
-      return true;
-    }
+    for (const element of this) callback(element, index++);
+  }
 
-    for (var s = stack.length - 1; s > 0; --s) {
-      if (stack[s - 1].right === stack[s]) {
-        return true;
+  getElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    let res;
+    let index = 0;
+
+    for (const element of this) {
+      if (index === pos) {
+        res = element;
       }
+
+      index += 1;
     }
 
-    return false;
+    return res;
   }
-}); //Default comparison function
+  /**
+   * @description Insert element to set.
+   * @param key The key want to insert.
+   * @param hint You can give an iterator hint to improve insertion efficiency.
+   */
 
-function defaultCompare(a, b) {
-  if (a < b) {
-    return -1;
-  }
 
-  if (a > b) {
-    return 1;
+  insert(key, hint) {
+    this.set(key, undefined, hint);
   }
 
-  return 0;
-} //Build a tree
+  find(element) {
+    const curNode = this.findElementNode(this.root, element);
 
+    if (curNode !== undefined) {
+      return new OrderedSetIterator(curNode, this.header);
+    }
 
-function createRBTree(compare) {
-  return new RedBlackTree(compare || defaultCompare, null);
-}
+    return this.end();
+  }
 
-/***/ }),
-/* 606 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+  lowerBound(key) {
+    const resNode = this._lowerBound(this.root, key);
+
+    return new OrderedSetIterator(resNode, this.header);
+  }
+
+  upperBound(key) {
+    const resNode = this._upperBound(this.root, key);
+
+    return new OrderedSetIterator(resNode, this.header);
+  }
+
+  reverseLowerBound(key) {
+    const resNode = this._reverseLowerBound(this.root, key);
+
+    return new OrderedSetIterator(resNode, this.header);
+  }
+
+  reverseUpperBound(key) {
+    const resNode = this._reverseUpperBound(this.root, key);
+
+    return new OrderedSetIterator(resNode, this.header);
+  }
+
+  union(other) {
+    other.forEach(element => this.insert(element));
+  }
+
+  [Symbol.iterator]() {
+    return this.iterationFunc(this.root);
+  }
+
+}
+
+exports["default"] = OrderedSet;
+
+/***/ }),
+/* 687 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const TreeNode_1 = __importDefault(__webpack_require__(688));
+
+const index_1 = __webpack_require__(677);
+
+const checkParams_1 = __webpack_require__(681);
+
+class TreeContainer extends index_1.Container {
+  constructor() {
+    let cmp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (x, y) => {
+      if (x < y) return -1;
+      if (x > y) return 1;
+      return 0;
+    };
+    super();
+    this.root = undefined;
+    this.header = new TreeNode_1.default();
+    /**
+     * @description InOrder traversal the tree.
+     * @protected
+     */
+
+    this.inOrderTraversal = (curNode, callback) => {
+      if (curNode === undefined) return false;
+      const ifReturn = this.inOrderTraversal(curNode.left, callback);
+      if (ifReturn) return true;
+      if (callback(curNode)) return true;
+      return this.inOrderTraversal(curNode.right, callback);
+    };
+
+    this.cmp = cmp;
+  }
+  /**
+   * @param curNode The starting node of the search.
+   * @param key The key you want to search.
+   * @return TreeNode which key is greater than or equals to the given key.
+   * @protected
+   */
+
+
+  _lowerBound(curNode, key) {
+    let resNode;
+
+    while (curNode) {
+      const cmpResult = this.cmp(curNode.key, key);
+
+      if (cmpResult < 0) {
+        curNode = curNode.right;
+      } else if (cmpResult > 0) {
+        resNode = curNode;
+        curNode = curNode.left;
+      } else return curNode;
+    }
+
+    return resNode === undefined ? this.header : resNode;
+  }
+  /**
+   * @param curNode The starting node of the search.
+   * @param key The key you want to search.
+   * @return TreeNode which key is greater than the given key.
+   * @protected
+   */
+
+
+  _upperBound(curNode, key) {
+    let resNode;
+
+    while (curNode) {
+      const cmpResult = this.cmp(curNode.key, key);
+
+      if (cmpResult <= 0) {
+        curNode = curNode.right;
+      } else if (cmpResult > 0) {
+        resNode = curNode;
+        curNode = curNode.left;
+      }
+    }
+
+    return resNode === undefined ? this.header : resNode;
+  }
+  /**
+   * @param curNode The starting node of the search.
+   * @param key The key you want to search.
+   * @return TreeNode which key is less than or equals to the given key.
+   * @protected
+   */
+
+
+  _reverseLowerBound(curNode, key) {
+    let resNode;
+
+    while (curNode) {
+      const cmpResult = this.cmp(curNode.key, key);
+
+      if (cmpResult < 0) {
+        resNode = curNode;
+        curNode = curNode.right;
+      } else if (cmpResult > 0) {
+        curNode = curNode.left;
+      } else return curNode;
+    }
+
+    return resNode === undefined ? this.header : resNode;
+  }
+  /**
+   * @param curNode The starting node of the search.
+   * @param key The key you want to search.
+   * @return TreeNode which key is less than the given key.
+   * @protected
+   */
+
+
+  _reverseUpperBound(curNode, key) {
+    let resNode;
+
+    while (curNode) {
+      const cmpResult = this.cmp(curNode.key, key);
+
+      if (cmpResult < 0) {
+        resNode = curNode;
+        curNode = curNode.right;
+      } else if (cmpResult >= 0) {
+        curNode = curNode.left;
+      }
+    }
+
+    return resNode === undefined ? this.header : resNode;
+  }
+  /**
+   * @description Make self balance after erase a node.
+   * @param curNode The node want to remove.
+   * @protected
+   */
+
+
+  eraseNodeSelfBalance(curNode) {
+    while (true) {
+      const parentNode = curNode.parent;
+      if (parentNode === this.header) return;
+
+      if (curNode.color === TreeNode_1.default.RED) {
+        curNode.color = TreeNode_1.default.BLACK;
+        return;
+      }
+
+      if (curNode === parentNode.left) {
+        const brother = parentNode.right;
+
+        if (brother.color === TreeNode_1.default.RED) {
+          brother.color = TreeNode_1.default.BLACK;
+          parentNode.color = TreeNode_1.default.RED;
+
+          if (parentNode === this.root) {
+            this.root = parentNode.rotateLeft();
+          } else parentNode.rotateLeft();
+        } else if (brother.color === TreeNode_1.default.BLACK) {
+          if (brother.right && brother.right.color === TreeNode_1.default.RED) {
+            brother.color = parentNode.color;
+            parentNode.color = TreeNode_1.default.BLACK;
+            brother.right.color = TreeNode_1.default.BLACK;
+
+            if (parentNode === this.root) {
+              this.root = parentNode.rotateLeft();
+            } else parentNode.rotateLeft();
+
+            return;
+          } else if (brother.left && brother.left.color === TreeNode_1.default.RED) {
+            brother.color = TreeNode_1.default.RED;
+            brother.left.color = TreeNode_1.default.BLACK;
+            brother.rotateRight();
+          } else {
+            brother.color = TreeNode_1.default.RED;
+            curNode = parentNode;
+          }
+        }
+      } else {
+        const brother = parentNode.left;
+
+        if (brother.color === TreeNode_1.default.RED) {
+          brother.color = TreeNode_1.default.BLACK;
+          parentNode.color = TreeNode_1.default.RED;
+
+          if (parentNode === this.root) {
+            this.root = parentNode.rotateRight();
+          } else parentNode.rotateRight();
+        } else {
+          if (brother.left && brother.left.color === TreeNode_1.default.RED) {
+            brother.color = parentNode.color;
+            parentNode.color = TreeNode_1.default.BLACK;
+            brother.left.color = TreeNode_1.default.BLACK;
+
+            if (parentNode === this.root) {
+              this.root = parentNode.rotateRight();
+            } else parentNode.rotateRight();
+
+            return;
+          } else if (brother.right && brother.right.color === TreeNode_1.default.RED) {
+            brother.color = TreeNode_1.default.RED;
+            brother.right.color = TreeNode_1.default.BLACK;
+            brother.rotateLeft();
+          } else {
+            brother.color = TreeNode_1.default.RED;
+            curNode = parentNode;
+          }
+        }
+      }
+    }
+  }
+  /**
+   * @description Remove a node.
+   * @param curNode The node you want to remove.
+   * @protected
+   */
+
+
+  eraseNode(curNode) {
+    if (this.length === 1) {
+      this.clear();
+      return;
+    }
+
+    let swapNode = curNode;
+
+    while (swapNode.left || swapNode.right) {
+      if (swapNode.right) {
+        swapNode = swapNode.right;
+
+        while (swapNode.left) swapNode = swapNode.left;
+      } else if (swapNode.left) {
+        swapNode = swapNode.left;
+      }
+
+      [curNode.key, swapNode.key] = [swapNode.key, curNode.key];
+      [curNode.value, swapNode.value] = [swapNode.value, curNode.value];
+      curNode = swapNode;
+    }
+
+    if (this.header.left === swapNode) {
+      this.header.left = swapNode.parent;
+    } else if (this.header.right === swapNode) {
+      this.header.right = swapNode.parent;
+    }
+
+    this.eraseNodeSelfBalance(swapNode);
+    swapNode.remove();
+    this.length -= 1;
+    this.root.color = TreeNode_1.default.BLACK;
+  }
+  /**
+   * @description Make self balance after insert a node.
+   * @param curNode The node want to insert.
+   * @protected
+   */
+
+
+  insertNodeSelfBalance(curNode) {
+    while (true) {
+      const parentNode = curNode.parent;
+      if (parentNode.color === TreeNode_1.default.BLACK) return;
+      const grandParent = parentNode.parent;
+
+      if (parentNode === grandParent.left) {
+        const uncle = grandParent.right;
+
+        if (uncle && uncle.color === TreeNode_1.default.RED) {
+          uncle.color = parentNode.color = TreeNode_1.default.BLACK;
+          if (grandParent === this.root) return;
+          grandParent.color = TreeNode_1.default.RED;
+          curNode = grandParent;
+          continue;
+        } else if (curNode === parentNode.right) {
+          curNode.color = TreeNode_1.default.BLACK;
+          if (curNode.left) curNode.left.parent = parentNode;
+          if (curNode.right) curNode.right.parent = grandParent;
+          parentNode.right = curNode.left;
+          grandParent.left = curNode.right;
+          curNode.left = parentNode;
+          curNode.right = grandParent;
+
+          if (grandParent === this.root) {
+            this.root = curNode;
+            this.header.parent = curNode;
+          } else {
+            const GP = grandParent.parent;
+
+            if (GP.left === grandParent) {
+              GP.left = curNode;
+            } else GP.right = curNode;
+          }
+
+          curNode.parent = grandParent.parent;
+          parentNode.parent = curNode;
+          grandParent.parent = curNode;
+        } else {
+          parentNode.color = TreeNode_1.default.BLACK;
+
+          if (grandParent === this.root) {
+            this.root = grandParent.rotateRight();
+          } else grandParent.rotateRight();
+        }
+
+        grandParent.color = TreeNode_1.default.RED;
+      } else {
+        const uncle = grandParent.left;
+
+        if (uncle && uncle.color === TreeNode_1.default.RED) {
+          uncle.color = parentNode.color = TreeNode_1.default.BLACK;
+          if (grandParent === this.root) return;
+          grandParent.color = TreeNode_1.default.RED;
+          curNode = grandParent;
+          continue;
+        } else if (curNode === parentNode.left) {
+          curNode.color = TreeNode_1.default.BLACK;
+          if (curNode.left) curNode.left.parent = grandParent;
+          if (curNode.right) curNode.right.parent = parentNode;
+          grandParent.right = curNode.left;
+          parentNode.left = curNode.right;
+          curNode.left = grandParent;
+          curNode.right = parentNode;
+
+          if (grandParent === this.root) {
+            this.root = curNode;
+            this.header.parent = curNode;
+          } else {
+            const GP = grandParent.parent;
+
+            if (GP.left === grandParent) {
+              GP.left = curNode;
+            } else GP.right = curNode;
+          }
+
+          curNode.parent = grandParent.parent;
+          parentNode.parent = curNode;
+          grandParent.parent = curNode;
+        } else {
+          parentNode.color = TreeNode_1.default.BLACK;
+
+          if (grandParent === this.root) {
+            this.root = grandParent.rotateLeft();
+          } else grandParent.rotateLeft();
+        }
+
+        grandParent.color = TreeNode_1.default.RED;
+      }
+
+      return;
+    }
+  }
+  /**
+   * @description Find node which key is equals to the given key.
+   * @param curNode The starting node of the search.
+   * @param key The key you want to search.
+   * @protected
+   */
+
+
+  findElementNode(curNode, key) {
+    while (curNode) {
+      const cmpResult = this.cmp(curNode.key, key);
+
+      if (cmpResult < 0) {
+        curNode = curNode.right;
+      } else if (cmpResult > 0) {
+        curNode = curNode.left;
+      } else return curNode;
+    }
+
+    return curNode;
+  }
+  /**
+   * @description Insert a key-value pair or set value by the given key.
+   * @param key The key want to insert.
+   * @param value The value want to set.
+   * @param hint You can give an iterator hint to improve insertion efficiency.
+   * @protected
+   */
+
+
+  set(key, value, hint) {
+    if (this.root === undefined) {
+      this.length += 1;
+      this.root = new TreeNode_1.default(key, value);
+      this.root.color = TreeNode_1.default.BLACK;
+      this.root.parent = this.header;
+      this.header.parent = this.root;
+      this.header.left = this.root;
+      this.header.right = this.root;
+      return;
+    }
+
+    let curNode;
+    const minNode = this.header.left;
+    const compareToMin = this.cmp(minNode.key, key);
+
+    if (compareToMin === 0) {
+      minNode.value = value;
+      return;
+    } else if (compareToMin > 0) {
+      minNode.left = new TreeNode_1.default(key, value);
+      minNode.left.parent = minNode;
+      curNode = minNode.left;
+      this.header.left = curNode;
+    } else {
+      const maxNode = this.header.right;
+      const compareToMax = this.cmp(maxNode.key, key);
+
+      if (compareToMax === 0) {
+        maxNode.value = value;
+        return;
+      } else if (compareToMax < 0) {
+        maxNode.right = new TreeNode_1.default(key, value);
+        maxNode.right.parent = maxNode;
+        curNode = maxNode.right;
+        this.header.right = curNode;
+      } else {
+        if (hint !== undefined) {
+          // @ts-ignore
+          const iterNode = hint.node;
+
+          if (iterNode !== this.header) {
+            const iterCmpRes = this.cmp(iterNode.key, key);
+
+            if (iterCmpRes === 0) {
+              iterNode.value = value;
+              return;
+            } else if (iterCmpRes > 0) {
+              const preNode = iterNode.pre();
+              const preCmpRes = this.cmp(preNode.key, key);
+
+              if (preCmpRes === 0) {
+                preNode.value = value;
+                return;
+              } else if (preCmpRes < 0) {
+                curNode = new TreeNode_1.default(key, value);
+
+                if (preNode.right === undefined) {
+                  preNode.right = curNode;
+                  curNode.parent = preNode;
+                } else {
+                  iterNode.left = curNode;
+                  curNode.parent = iterNode;
+                }
+              }
+            }
+          }
+        }
+
+        if (curNode === undefined) {
+          curNode = this.root;
+
+          while (true) {
+            const cmpResult = this.cmp(curNode.key, key);
+
+            if (cmpResult > 0) {
+              if (curNode.left === undefined) {
+                curNode.left = new TreeNode_1.default(key, value);
+                curNode.left.parent = curNode;
+                curNode = curNode.left;
+                break;
+              }
+
+              curNode = curNode.left;
+            } else if (cmpResult < 0) {
+              if (curNode.right === undefined) {
+                curNode.right = new TreeNode_1.default(key, value);
+                curNode.right.parent = curNode;
+                curNode = curNode.right;
+                break;
+              }
+
+              curNode = curNode.right;
+            } else {
+              curNode.value = value;
+              return;
+            }
+          }
+        }
+      }
+    }
+
+    this.length += 1;
+    this.insertNodeSelfBalance(curNode);
+  }
+
+  clear() {
+    this.length = 0;
+    this.root = undefined;
+    this.header.parent = undefined;
+    this.header.left = this.header.right = undefined;
+  }
+  /**
+   * @description Update node's key by iterator.
+   * @param iter The iterator you want to change.
+   * @param key The key you want to update.
+   * @return Boolean about if the modification is successful.
+   */
+
+
+  updateKeyByIterator(iter, key) {
+    // @ts-ignore
+    const node = iter.node;
+
+    if (node === this.header) {
+      throw new TypeError('Invalid iterator!');
+    }
+
+    if (this.length === 1) {
+      node.key = key;
+      return true;
+    }
+
+    if (node === this.header.left) {
+      if (this.cmp(node.next().key, key) > 0) {
+        node.key = key;
+        return true;
+      }
+
+      return false;
+    }
+
+    if (node === this.header.right) {
+      if (this.cmp(node.pre().key, key) < 0) {
+        node.key = key;
+        return true;
+      }
+
+      return false;
+    }
+
+    const preKey = node.pre().key;
+    if (this.cmp(preKey, key) >= 0) return false;
+    const nextKey = node.next().key;
+    if (this.cmp(nextKey, key) <= 0) return false;
+    node.key = key;
+    return true;
+  }
+
+  eraseElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    let index = 0;
+    this.inOrderTraversal(this.root, curNode => {
+      if (pos === index) {
+        this.eraseNode(curNode);
+        return true;
+      }
+
+      index += 1;
+      return false;
+    });
+  }
+  /**
+   * @description Remove the element of the specified key.
+   * @param key The key you want to remove.
+   */
+
+
+  eraseElementByKey(key) {
+    if (!this.length) return;
+    const curNode = this.findElementNode(this.root, key);
+    if (curNode === undefined) return;
+    this.eraseNode(curNode);
+  }
+
+  eraseElementByIterator(iter) {
+    // @ts-ignore
+    const node = iter.node;
+
+    if (node === this.header) {
+      throw new RangeError('Invalid iterator');
+    }
+
+    if (node.right === undefined) {
+      iter = iter.next();
+    }
+
+    this.eraseNode(node);
+    return iter;
+  }
+  /**
+   * @description Get the height of the tree.
+   * @return Number about the height of the RB-tree.
+   */
+
+
+  getHeight() {
+    if (!this.length) return 0;
+
+    const traversal = curNode => {
+      if (!curNode) return 0;
+      return Math.max(traversal(curNode.left), traversal(curNode.right)) + 1;
+    };
+
+    return traversal(this.root);
+  }
+
+}
+
+exports["default"] = TreeContainer;
+
+/***/ }),
+/* 688 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+class TreeNode {
+  constructor(key, value) {
+    this.color = true;
+    this.key = undefined;
+    this.value = undefined;
+    this.left = undefined;
+    this.right = undefined;
+    this.parent = undefined;
+    this.key = key;
+    this.value = value;
+  }
+  /**
+   * @description Get the pre node.
+   * @return TreeNode about the pre node.
+   */
+
+
+  pre() {
+    let preNode = this;
+
+    if (preNode.color === TreeNode.RED && preNode.parent.parent === preNode) {
+      preNode = preNode.right;
+    } else if (preNode.left) {
+      preNode = preNode.left;
+
+      while (preNode.right) {
+        preNode = preNode.right;
+      }
+    } else {
+      let pre = preNode.parent;
+
+      while (pre.left === preNode) {
+        preNode = pre;
+        pre = preNode.parent;
+      }
+
+      preNode = pre;
+    }
+
+    return preNode;
+  }
+  /**
+   * @description Get the next node.
+   * @return TreeNode about the next node.
+   */
+
+
+  next() {
+    let nextNode = this;
+
+    if (nextNode.right) {
+      nextNode = nextNode.right;
+
+      while (nextNode.left) {
+        nextNode = nextNode.left;
+      }
+    } else {
+      let pre = nextNode.parent;
+
+      while (pre.right === nextNode) {
+        nextNode = pre;
+        pre = nextNode.parent;
+      }
+
+      if (nextNode.right !== pre) {
+        nextNode = pre;
+      }
+    }
+
+    return nextNode;
+  }
+  /**
+   * @description Rotate left.
+   * @return TreeNode about moved to original position after rotation.
+   */
+
+
+  rotateLeft() {
+    const PP = this.parent;
+    const V = this.right;
+    const R = V.left;
+    if (PP.parent === this) PP.parent = V;else if (PP.left === this) PP.left = V;else PP.right = V;
+    V.parent = PP;
+    V.left = this;
+    this.parent = V;
+    this.right = R;
+    if (R) R.parent = this;
+    return V;
+  }
+  /**
+   * @description Rotate left.
+   * @return TreeNode about moved to original position after rotation.
+   */
+
+
+  rotateRight() {
+    const PP = this.parent;
+    const F = this.left;
+    const K = F.right;
+    if (PP.parent === this) PP.parent = F;else if (PP.left === this) PP.left = F;else PP.right = F;
+    F.parent = PP;
+    F.right = this;
+    this.parent = F;
+    this.left = K;
+    if (K) K.parent = this;
+    return F;
+  }
+  /**
+   * @description Remove this.
+   */
+
+
+  remove() {
+    const parent = this.parent;
+
+    if (this === parent.left) {
+      parent.left = undefined;
+    } else parent.right = undefined;
+  }
+
+}
+
+TreeNode.RED = true;
+TreeNode.BLACK = false;
+exports["default"] = TreeNode;
+
+/***/ }),
+/* 689 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __webpack_require__(677);
+
+class TreeIterator extends index_1.ContainerIterator {
+  constructor(node, header, iteratorType) {
+    super(iteratorType);
+    this.node = node;
+    this.header = header;
+
+    if (this.iteratorType === index_1.ContainerIterator.NORMAL) {
+      this.pre = function () {
+        if (this.node === this.header.left) {
+          throw new RangeError('LinkList iterator access denied!');
+        }
+
+        this.node = this.node.pre();
+        return this;
+      };
+
+      this.next = function () {
+        if (this.node === this.header) {
+          throw new RangeError('LinkList iterator access denied!');
+        }
+
+        this.node = this.node.next();
+        return this;
+      };
+    } else {
+      this.pre = function () {
+        if (this.node === this.header.right) {
+          throw new RangeError('LinkList iterator access denied!');
+        }
+
+        this.node = this.node.next();
+        return this;
+      };
+
+      this.next = function () {
+        if (this.node === this.header) {
+          throw new RangeError('LinkList iterator access denied!');
+        }
+
+        this.node = this.node.pre();
+        return this;
+      };
+    }
+  }
+
+  equals(obj) {
+    return this.node === obj.node;
+  }
+
+}
+
+exports["default"] = TreeIterator;
+
+/***/ }),
+/* 690 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.OrderedMapIterator = void 0;
+
+const index_1 = __webpack_require__(677);
+
+const checkParams_1 = __webpack_require__(681);
+
+const index_2 = __importDefault(__webpack_require__(687));
+
+const TreeIterator_1 = __importDefault(__webpack_require__(689));
+
+class OrderedMapIterator extends TreeIterator_1.default {
+  get pointer() {
+    if (this.node === this.header) {
+      throw new RangeError('OrderedMap iterator access denied');
+    }
+
+    return new Proxy([], {
+      get: (_, props) => {
+        if (props === '0') return this.node.key;else if (props === '1') return this.node.value;
+      },
+      set: (_, props, newValue) => {
+        if (props !== '1') {
+          throw new TypeError('props must be 1');
+        }
+
+        this.node.value = newValue;
+        return true;
+      }
+    });
+  }
+
+  copy() {
+    return new OrderedMapIterator(this.node, this.header, this.iteratorType);
+  }
+
+}
+
+exports.OrderedMapIterator = OrderedMapIterator;
+
+class OrderedMap extends index_2.default {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let cmp = arguments.length > 1 ? arguments[1] : undefined;
+    super(cmp);
+
+    this.iterationFunc = function* (curNode) {
+      if (curNode === undefined) return;
+      yield* this.iterationFunc(curNode.left);
+      yield [curNode.key, curNode.value];
+      yield* this.iterationFunc(curNode.right);
+    };
+
+    this.iterationFunc = this.iterationFunc.bind(this);
+    container.forEach(_ref => {
+      let [key, value] = _ref;
+      return this.setElement(key, value);
+    });
+  }
+
+  begin() {
+    return new OrderedMapIterator(this.header.left || this.header, this.header);
+  }
+
+  end() {
+    return new OrderedMapIterator(this.header, this.header);
+  }
+
+  rBegin() {
+    return new OrderedMapIterator(this.header.right || this.header, this.header, index_1.ContainerIterator.REVERSE);
+  }
+
+  rEnd() {
+    return new OrderedMapIterator(this.header, this.header, index_1.ContainerIterator.REVERSE);
+  }
+
+  front() {
+    if (!this.length) return undefined;
+    const minNode = this.header.left;
+    return [minNode.key, minNode.value];
+  }
+
+  back() {
+    if (!this.length) return undefined;
+    const maxNode = this.header.right;
+    return [maxNode.key, maxNode.value];
+  }
+
+  forEach(callback) {
+    let index = 0;
+
+    for (const pair of this) callback(pair, index++);
+  }
+
+  lowerBound(key) {
+    const resNode = this._lowerBound(this.root, key);
+
+    return new OrderedMapIterator(resNode, this.header);
+  }
+
+  upperBound(key) {
+    const resNode = this._upperBound(this.root, key);
+
+    return new OrderedMapIterator(resNode, this.header);
+  }
+
+  reverseLowerBound(key) {
+    const resNode = this._reverseLowerBound(this.root, key);
+
+    return new OrderedMapIterator(resNode, this.header);
+  }
+
+  reverseUpperBound(key) {
+    const resNode = this._reverseUpperBound(this.root, key);
+
+    return new OrderedMapIterator(resNode, this.header);
+  }
+  /**
+   * @description Insert a key-value pair or set value by the given key.
+   * @param key The key want to insert.
+   * @param value The value want to set.
+   * @param hint You can give an iterator hint to improve insertion efficiency.
+   */
+
+
+  setElement(key, value, hint) {
+    this.set(key, value, hint);
+  }
+
+  find(key) {
+    const curNode = this.findElementNode(this.root, key);
+
+    if (curNode !== undefined) {
+      return new OrderedMapIterator(curNode, this.header);
+    }
+
+    return this.end();
+  }
+  /**
+   * @description Get the value of the element of the specified key.
+   */
+
+
+  getElementByKey(key) {
+    const curNode = this.findElementNode(this.root, key);
+    return curNode ? curNode.value : undefined;
+  }
+
+  getElementByPos(pos) {
+    (0, checkParams_1.checkWithinAccessParams)(pos, 0, this.length - 1);
+    let res;
+    let index = 0;
+
+    for (const pair of this) {
+      if (index === pos) {
+        res = pair;
+        break;
+      }
+
+      index += 1;
+    }
+
+    return res;
+  }
+
+  union(other) {
+    other.forEach(_ref2 => {
+      let [key, value] = _ref2;
+      return this.setElement(key, value);
+    });
+  }
+
+  [Symbol.iterator]() {
+    return this.iterationFunc(this.root);
+  }
+
+}
+
+exports["default"] = OrderedMap;
+
+/***/ }),
+/* 691 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __importDefault(__webpack_require__(692));
+
+const Vector_1 = __importDefault(__webpack_require__(684));
+
+const OrderedSet_1 = __importDefault(__webpack_require__(686));
+
+class HashSet extends index_1.default {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let initBucketNum = arguments.length > 1 ? arguments[1] : undefined;
+    let hashFunc = arguments.length > 2 ? arguments[2] : undefined;
+    super(initBucketNum, hashFunc);
+    this.hashTable = [];
+    container.forEach(element => this.insert(element));
+  }
+
+  reAllocate() {
+    if (this.bucketNum >= index_1.default.maxBucketNum) return;
+    const newHashTable = [];
+    const originalBucketNum = this.bucketNum;
+    this.bucketNum <<= 1;
+    const keys = Object.keys(this.hashTable);
+    const keyNums = keys.length;
+
+    for (let i = 0; i < keyNums; ++i) {
+      const index = parseInt(keys[i]);
+      const container = this.hashTable[index];
+      const size = container.size();
+      if (size === 0) continue;
+
+      if (size === 1) {
+        const element = container.front();
+        newHashTable[this.hashFunc(element) & this.bucketNum - 1] = new Vector_1.default([element], false);
+        continue;
+      }
+
+      const lowList = [];
+      const highList = [];
+      container.forEach(element => {
+        const hashCode = this.hashFunc(element);
+
+        if ((hashCode & originalBucketNum) === 0) {
+          lowList.push(element);
+        } else highList.push(element);
+      });
+
+      if (container instanceof OrderedSet_1.default) {
+        if (lowList.length > index_1.default.untreeifyThreshold) {
+          newHashTable[index] = new OrderedSet_1.default(lowList);
+        } else if (lowList.length) {
+          newHashTable[index] = new Vector_1.default(lowList, false);
+        }
+
+        if (highList.length > index_1.default.untreeifyThreshold) {
+          newHashTable[index + originalBucketNum] = new OrderedSet_1.default(highList);
+        } else if (highList.length) {
+          newHashTable[index + originalBucketNum] = new Vector_1.default(highList, false);
+        }
+      } else {
+        if (lowList.length >= index_1.default.treeifyThreshold) {
+          newHashTable[index] = new OrderedSet_1.default(lowList);
+        } else if (lowList.length) {
+          newHashTable[index] = new Vector_1.default(lowList, false);
+        }
+
+        if (highList.length >= index_1.default.treeifyThreshold) {
+          newHashTable[index + originalBucketNum] = new OrderedSet_1.default(highList);
+        } else if (highList.length) {
+          newHashTable[index + originalBucketNum] = new Vector_1.default(highList, false);
+        }
+      }
+    }
+
+    this.hashTable = newHashTable;
+  }
+
+  forEach(callback) {
+    const containers = Object.values(this.hashTable);
+    const containersNum = containers.length;
+    let index = 0;
+
+    for (let i = 0; i < containersNum; ++i) {
+      containers[i].forEach(element => callback(element, index++));
+    }
+  }
+  /**
+   * @description Insert element to hash set.
+   * @param element The element you want to insert.
+   */
+
+
+  insert(element) {
+    const index = this.hashFunc(element) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+
+    if (!container) {
+      this.hashTable[index] = new Vector_1.default([element], false);
+      this.length += 1;
+    } else {
+      const preSize = container.size();
+
+      if (container instanceof Vector_1.default) {
+        if (!container.find(element).equals(container.end())) return;
+        container.pushBack(element);
+
+        if (preSize + 1 >= index_1.default.treeifyThreshold) {
+          if (this.bucketNum <= index_1.default.minTreeifySize) {
+            this.length += 1;
+            this.reAllocate();
+            return;
+          }
+
+          this.hashTable[index] = new OrderedSet_1.default(container);
+        }
+
+        this.length += 1;
+      } else {
+        container.insert(element);
+        const curSize = container.size();
+        this.length += curSize - preSize;
+      }
+    }
+
+    if (this.length > this.bucketNum * index_1.default.sigma) {
+      this.reAllocate();
+    }
+  }
+
+  eraseElementByKey(key) {
+    const index = this.hashFunc(key) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+    if (!container) return;
+    const preSize = container.size();
+    if (preSize === 0) return;
+
+    if (container instanceof Vector_1.default) {
+      container.eraseElementByValue(key);
+      const curSize = container.size();
+      this.length += curSize - preSize;
+    } else {
+      container.eraseElementByKey(key);
+      const curSize = container.size();
+      this.length += curSize - preSize;
+
+      if (curSize <= index_1.default.untreeifyThreshold) {
+        this.hashTable[index] = new Vector_1.default(container);
+      }
+    }
+  }
+
+  find(element) {
+    const index = this.hashFunc(element) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+    if (!container) return false;
+    return !container.find(element).equals(container.end());
+  }
+
+  [Symbol.iterator]() {
+    return function* () {
+      const containers = Object.values(this.hashTable);
+      const containersNum = containers.length;
+
+      for (let i = 0; i < containersNum; ++i) {
+        const container = containers[i];
+
+        for (const element of container) {
+          yield element;
+        }
+      }
+    }.bind(this)();
+  }
+
+}
+
+exports["default"] = HashSet;
+
+/***/ }),
+/* 692 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __webpack_require__(677);
+
+class HashContainer extends index_1.Base {
+  constructor() {
+    let initBucketNum = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;
+    let hashFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x => {
+      let str;
+
+      if (typeof x !== 'string') {
+        str = JSON.stringify(x);
+      } else str = x;
+
+      let hashCode = 0;
+      const strLength = str.length;
+
+      for (let i = 0; i < strLength; i++) {
+        const ch = str.charCodeAt(i);
+        hashCode = (hashCode << 5) - hashCode + ch;
+        hashCode |= 0;
+      }
+
+      return hashCode >>> 0;
+    };
+    super();
+
+    if (initBucketNum < 16 || (initBucketNum & initBucketNum - 1) !== 0) {
+      throw new RangeError('InitBucketNum range error');
+    }
+
+    this.bucketNum = this.initBucketNum = initBucketNum;
+    this.hashFunc = hashFunc;
+  }
+
+  clear() {
+    this.length = 0;
+    this.bucketNum = this.initBucketNum;
+    this.hashTable = [];
+  }
+
+}
+
+HashContainer.sigma = 0.75;
+HashContainer.treeifyThreshold = 8;
+HashContainer.untreeifyThreshold = 6;
+HashContainer.minTreeifySize = 64;
+HashContainer.maxBucketNum = 1 << 30;
+exports["default"] = HashContainer;
+
+/***/ }),
+/* 693 */
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+  return mod && mod.__esModule ? mod : {
+    "default": mod
+  };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const index_1 = __importDefault(__webpack_require__(692));
+
+const Vector_1 = __importDefault(__webpack_require__(684));
+
+const OrderedMap_1 = __importDefault(__webpack_require__(690));
+
+class HashMap extends index_1.default {
+  constructor() {
+    let container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+    let initBucketNum = arguments.length > 1 ? arguments[1] : undefined;
+    let hashFunc = arguments.length > 2 ? arguments[2] : undefined;
+    super(initBucketNum, hashFunc);
+    this.hashTable = [];
+    container.forEach(element => this.setElement(element[0], element[1]));
+  }
+
+  reAllocate() {
+    if (this.bucketNum >= index_1.default.maxBucketNum) return;
+    const newHashTable = [];
+    const originalBucketNum = this.bucketNum;
+    this.bucketNum <<= 1;
+    const keys = Object.keys(this.hashTable);
+    const keyNums = keys.length;
+
+    for (let i = 0; i < keyNums; ++i) {
+      const index = parseInt(keys[i]);
+      const container = this.hashTable[index];
+      const size = container.size();
+      if (size === 0) continue;
+
+      if (size === 1) {
+        const element = container.front();
+        newHashTable[this.hashFunc(element[0]) & this.bucketNum - 1] = new Vector_1.default([element], false);
+        continue;
+      }
+
+      const lowList = [];
+      const highList = [];
+      container.forEach(element => {
+        const hashCode = this.hashFunc(element[0]);
+
+        if ((hashCode & originalBucketNum) === 0) {
+          lowList.push(element);
+        } else highList.push(element);
+      });
+
+      if (container instanceof OrderedMap_1.default) {
+        if (lowList.length > index_1.default.untreeifyThreshold) {
+          newHashTable[index] = new OrderedMap_1.default(lowList);
+        } else if (lowList.length) {
+          newHashTable[index] = new Vector_1.default(lowList, false);
+        }
+
+        if (highList.length > index_1.default.untreeifyThreshold) {
+          newHashTable[index + originalBucketNum] = new OrderedMap_1.default(highList);
+        } else if (highList.length) {
+          newHashTable[index + originalBucketNum] = new Vector_1.default(highList, false);
+        }
+      } else {
+        if (lowList.length >= index_1.default.treeifyThreshold) {
+          newHashTable[index] = new OrderedMap_1.default(lowList);
+        } else if (lowList.length) {
+          newHashTable[index] = new Vector_1.default(lowList, false);
+        }
+
+        if (highList.length >= index_1.default.treeifyThreshold) {
+          newHashTable[index + originalBucketNum] = new OrderedMap_1.default(highList);
+        } else if (highList.length) {
+          newHashTable[index + originalBucketNum] = new Vector_1.default(highList, false);
+        }
+      }
+    }
+
+    this.hashTable = newHashTable;
+  }
+
+  forEach(callback) {
+    const containers = Object.values(this.hashTable);
+    const containersNum = containers.length;
+    let index = 0;
+
+    for (let i = 0; i < containersNum; ++i) {
+      containers[i].forEach(element => callback(element, index++));
+    }
+  }
+  /**
+   * @description Insert a new key-value pair to hash map or set value by key.
+   * @param key The key you want to insert.
+   * @param value The value you want to insert.
+   * @example HashMap.setElement(1, 2); // insert a key-value pair [1, 2]
+   */
+
+
+  setElement(key, value) {
+    const index = this.hashFunc(key) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+
+    if (!container) {
+      this.length += 1;
+      this.hashTable[index] = new Vector_1.default([[key, value]], false);
+    } else {
+      const preSize = container.size();
+
+      if (container instanceof Vector_1.default) {
+        for (const pair of container) {
+          if (pair[0] === key) {
+            pair[1] = value;
+            return;
+          }
+        }
+
+        container.pushBack([key, value]);
+
+        if (preSize + 1 >= HashMap.treeifyThreshold) {
+          if (this.bucketNum <= HashMap.minTreeifySize) {
+            this.length += 1;
+            this.reAllocate();
+            return;
+          }
+
+          this.hashTable[index] = new OrderedMap_1.default(this.hashTable[index]);
+        }
+
+        this.length += 1;
+      } else {
+        container.setElement(key, value);
+        const curSize = container.size();
+        this.length += curSize - preSize;
+      }
+    }
+
+    if (this.length > this.bucketNum * HashMap.sigma) {
+      this.reAllocate();
+    }
+  }
+  /**
+   * @description Get the value of the element which has the specified key.
+   * @param key The key you want to get.
+   */
+
+
+  getElementByKey(key) {
+    const index = this.hashFunc(key) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+    if (!container) return undefined;
+
+    if (container instanceof OrderedMap_1.default) {
+      return container.getElementByKey(key);
+    } else {
+      for (const pair of container) {
+        if (pair[0] === key) return pair[1];
+      }
+
+      return undefined;
+    }
+  }
+
+  eraseElementByKey(key) {
+    const index = this.hashFunc(key) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+    if (!container) return;
+
+    if (container instanceof Vector_1.default) {
+      let pos = 0;
+
+      for (const pair of container) {
+        if (pair[0] === key) {
+          container.eraseElementByPos(pos);
+          this.length -= 1;
+          return;
+        }
+
+        pos += 1;
+      }
+    } else {
+      const preSize = container.size();
+      container.eraseElementByKey(key);
+      const curSize = container.size();
+      this.length += curSize - preSize;
+
+      if (curSize <= index_1.default.untreeifyThreshold) {
+        this.hashTable[index] = new Vector_1.default(container);
+      }
+    }
+  }
+
+  find(key) {
+    const index = this.hashFunc(key) & this.bucketNum - 1;
+    const container = this.hashTable[index];
+    if (!container) return false;
+
+    if (container instanceof OrderedMap_1.default) {
+      return !container.find(key).equals(container.end());
+    }
+
+    for (const pair of container) {
+      if (pair[0] === key) return true;
+    }
+
+    return false;
+  }
+
+  [Symbol.iterator]() {
+    return function* () {
+      const containers = Object.values(this.hashTable);
+      const containersNum = containers.length;
+
+      for (let i = 0; i < containersNum; ++i) {
+        const container = containers[i];
+
+        for (const element of container) {
+          yield element;
+        }
+      }
+    }.bind(this)();
+  }
+
+}
+
+exports["default"] = HashMap;
+
+/***/ }),
+/* 694 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 /**
@@ -73765,11 +78922,12 @@ function createRBTree(compare) {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
+// this rule has known coverage issues, but it's deprecated and shouldn't be updated in the future anyway.
 
-/* istanbul ignore next: this rule has known coverage issues, but it's deprecated and shouldn't be updated in the future anyway. */
+/* c8 ignore next */
 
 /** @type {import('../shared/types').Rule} */
 
@@ -73778,7 +78936,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent indentation",
+      description: "Enforce consistent indentation",
       recommended: false,
       url: "https://eslint.org/docs/rules/indent-legacy"
     },
@@ -73936,11 +79094,13 @@ module.exports = {
         indentSize = 1;
         indentType = "tab";
       } else
-        /* istanbul ignore else : this will be caught by options validation */
+        /* c8 ignore start */
         if (typeof context.options[0] === "number") {
           indentSize = context.options[0];
           indentType = "space";
         }
+      /* c8 ignore stop */
+
 
       if (context.options[1]) {
         const opts = context.options[1];
@@ -73997,24 +79157,24 @@ module.exports = {
      */
 
     function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
-      const expectedStatement = "".concat(expectedAmount, " ").concat(indentType).concat(expectedAmount === 1 ? "" : "s"); // e.g. "2 tabs"
+      const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
 
-      const foundSpacesWord = "space".concat(actualSpaces === 1 ? "" : "s"); // e.g. "space"
+      const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
 
-      const foundTabsWord = "tab".concat(actualTabs === 1 ? "" : "s"); // e.g. "tabs"
+      const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
 
       let foundStatement;
 
       if (actualSpaces > 0 && actualTabs > 0) {
-        foundStatement = "".concat(actualSpaces, " ").concat(foundSpacesWord, " and ").concat(actualTabs, " ").concat(foundTabsWord); // e.g. "1 space and 2 tabs"
+        foundStatement = `${actualSpaces} ${foundSpacesWord} and ${actualTabs} ${foundTabsWord}`; // e.g. "1 space and 2 tabs"
       } else if (actualSpaces > 0) {
         /*
          * Abbreviate the message if the expected indentation is also spaces.
          * e.g. 'Expected 4 spaces but found 2' rather than 'Expected 4 spaces but found 2 spaces'
          */
-        foundStatement = indentType === "space" ? actualSpaces : "".concat(actualSpaces, " ").concat(foundSpacesWord);
+        foundStatement = indentType === "space" ? actualSpaces : `${actualSpaces} ${foundSpacesWord}`;
       } else if (actualTabs > 0) {
-        foundStatement = indentType === "tab" ? actualTabs : "".concat(actualTabs, " ").concat(foundTabsWord);
+        foundStatement = indentType === "tab" ? actualTabs : `${actualTabs} ${foundTabsWord}`;
       } else {
         foundStatement = "0";
       }
@@ -74435,7 +79595,7 @@ module.exports = {
               if (typeof options.CallExpression.arguments === "number") {
                 nodeIndent += options.CallExpression.arguments * indentSize;
               } else if (options.CallExpression.arguments === "first") {
-                if (parent.arguments.indexOf(node) !== -1) {
+                if (parent.arguments.includes(node)) {
                   nodeIndent = parent.arguments[0].loc.start.column;
                 }
               } else {
@@ -74515,7 +79675,7 @@ module.exports = {
 
       const statementsWithProperties = ["IfStatement", "WhileStatement", "ForStatement", "ForInStatement", "ForOfStatement", "DoWhileStatement", "ClassDeclaration", "TryStatement"];
 
-      if (node.parent && statementsWithProperties.indexOf(node.parent.type) !== -1 && isNodeBodyBlock(node)) {
+      if (node.parent && statementsWithProperties.includes(node.parent.type) && isNodeBodyBlock(node)) {
         indent = getNodeIndent(node.parent).goodChar;
       } else if (node.parent && node.parent.type === "CatchClause") {
         indent = getNodeIndent(node.parent.parent).goodChar;
@@ -74782,7 +79942,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 607 */
+/* 695 */
 /***/ ((module) => {
 
 "use strict";
@@ -74834,7 +79994,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require or disallow initialization in variable declarations",
+      description: "Require or disallow initialization in variable declarations",
       recommended: false,
       url: "https://eslint.org/docs/rules/init-declarations"
     },
@@ -74913,7 +80073,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 608 */
+/* 696 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -74925,7 +80085,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Constants
 //------------------------------------------------------------------------------
 
@@ -74959,7 +80119,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce the consistent use of either double or single quotes in JSX attributes",
+      description: "Enforce the consistent use of either double or single quotes in JSX attributes",
       recommended: false,
       url: "https://eslint.org/docs/rules/jsx-quotes"
     },
@@ -74983,7 +80143,7 @@ module.exports = {
      */
 
     function usesExpectedQuotes(node) {
-      return node.value.indexOf(setting.quote) !== -1 || astUtils.isSurroundedBy(node.raw, setting.quote);
+      return node.value.includes(setting.quote) || astUtils.isSurroundedBy(node.raw, setting.quote);
     }
 
     return {
@@ -75012,7 +80172,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 609 */
+/* 697 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -75024,7 +80184,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618);
+
+const GraphemeSplitter = __webpack_require__(698);
+
+const splitter = new GraphemeSplitter(); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -75035,7 +80199,6 @@ const astUtils = __webpack_require__(548); //-----------------------------------
  * @returns {boolean} True if str contains a line terminator.
  */
 
-
 function containsLineTerminator(str) {
   return astUtils.LINEBREAK_MATCHER.test(str);
 }
@@ -75155,7 +80318,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing between keys and values in object literal properties",
+      description: "Enforce consistent spacing between keys and values in object literal properties",
       recommended: false,
       url: "https://eslint.org/docs/rules/key-spacing"
     },
@@ -75509,7 +80672,7 @@ module.exports = {
     function getKeyWidth(property) {
       const startToken = sourceCode.getFirstToken(property);
       const endToken = getLastTokenBeforeColon(property.key);
-      return endToken.range[1] - startToken.range[0];
+      return splitter.countGraphemes(sourceCode.getText().slice(startToken.range[0], endToken.range[1]));
     }
     /**
      * Gets the whitespace around the colon in an object literal property.
@@ -75686,7 +80849,1752 @@ module.exports = {
 };
 
 /***/ }),
-/* 610 */
+/* 698 */
+/***/ ((module) => {
+
+/*\r
+Breaks a Javascript string into individual user-perceived "characters" \r
+called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0\r
+\r
+Usage:\r
+var splitter = new GraphemeSplitter();\r
+//returns an array of strings, one string for each grapheme cluster\r
+var graphemes = splitter.splitGraphemes(string); \r
+\r
+*/
+function GraphemeSplitter() {
+  var CR = 0,
+      LF = 1,
+      Control = 2,
+      Extend = 3,
+      Regional_Indicator = 4,
+      SpacingMark = 5,
+      L = 6,
+      V = 7,
+      T = 8,
+      LV = 9,
+      LVT = 10,
+      Other = 11,
+      Prepend = 12,
+      E_Base = 13,
+      E_Modifier = 14,
+      ZWJ = 15,
+      Glue_After_Zwj = 16,
+      E_Base_GAZ = 17; // BreakTypes
+
+  var NotBreak = 0,
+      BreakStart = 1,
+      Break = 2,
+      BreakLastRegional = 3,
+      BreakPenultimateRegional = 4;
+
+  function isSurrogate(str, pos) {
+    return 0xd800 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 0xdbff && 0xdc00 <= str.charCodeAt(pos + 1) && str.charCodeAt(pos + 1) <= 0xdfff;
+  } // Private function, gets a Unicode code point from a JavaScript UTF-16 string
+  // handling surrogate pairs appropriately
+
+
+  function codePointAt(str, idx) {
+    if (idx === undefined) {
+      idx = 0;
+    }
+
+    var code = str.charCodeAt(idx); // if a high surrogate
+
+    if (0xD800 <= code && code <= 0xDBFF && idx < str.length - 1) {
+      var hi = code;
+      var low = str.charCodeAt(idx + 1);
+
+      if (0xDC00 <= low && low <= 0xDFFF) {
+        return (hi - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000;
+      }
+
+      return hi;
+    } // if a low surrogate
+
+
+    if (0xDC00 <= code && code <= 0xDFFF && idx >= 1) {
+      var hi = str.charCodeAt(idx - 1);
+      var low = code;
+
+      if (0xD800 <= hi && hi <= 0xDBFF) {
+        return (hi - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000;
+      }
+
+      return low;
+    } //just return the char if an unmatched surrogate half or a 
+    //single-char codepoint
+
+
+    return code;
+  } // Private function, returns whether a break is allowed between the 
+  // two given grapheme breaking classes
+
+
+  function shouldBreak(start, mid, end) {
+    var all = [start].concat(mid).concat([end]);
+    var previous = all[all.length - 2];
+    var next = end; // Lookahead termintor for:
+    // GB10. (E_Base | EBG) Extend* ?  E_Modifier
+
+    var eModifierIndex = all.lastIndexOf(E_Modifier);
+
+    if (eModifierIndex > 1 && all.slice(1, eModifierIndex).every(function (c) {
+      return c == Extend;
+    }) && [Extend, E_Base, E_Base_GAZ].indexOf(start) == -1) {
+      return Break;
+    } // Lookahead termintor for:
+    // GB12. ^ (RI RI)* RI     ?       RI
+    // GB13. [^RI] (RI RI)* RI ?       RI
+
+
+    var rIIndex = all.lastIndexOf(Regional_Indicator);
+
+    if (rIIndex > 0 && all.slice(1, rIIndex).every(function (c) {
+      return c == Regional_Indicator;
+    }) && [Prepend, Regional_Indicator].indexOf(previous) == -1) {
+      if (all.filter(function (c) {
+        return c == Regional_Indicator;
+      }).length % 2 == 1) {
+        return BreakLastRegional;
+      } else {
+        return BreakPenultimateRegional;
+      }
+    } // GB3. CR X LF
+
+
+    if (previous == CR && next == LF) {
+      return NotBreak;
+    } // GB4. (Control|CR|LF) ÷
+    else if (previous == Control || previous == CR || previous == LF) {
+      if (next == E_Modifier && mid.every(function (c) {
+        return c == Extend;
+      })) {
+        return Break;
+      } else {
+        return BreakStart;
+      }
+    } // GB5. ÷ (Control|CR|LF)
+    else if (next == Control || next == CR || next == LF) {
+      return BreakStart;
+    } // GB6. L X (L|V|LV|LVT)
+    else if (previous == L && (next == L || next == V || next == LV || next == LVT)) {
+      return NotBreak;
+    } // GB7. (LV|V) X (V|T)
+    else if ((previous == LV || previous == V) && (next == V || next == T)) {
+      return NotBreak;
+    } // GB8. (LVT|T) X (T)
+    else if ((previous == LVT || previous == T) && next == T) {
+      return NotBreak;
+    } // GB9. X (Extend|ZWJ)
+    else if (next == Extend || next == ZWJ) {
+      return NotBreak;
+    } // GB9a. X SpacingMark
+    else if (next == SpacingMark) {
+      return NotBreak;
+    } // GB9b. Prepend X
+    else if (previous == Prepend) {
+      return NotBreak;
+    } // GB10. (E_Base | EBG) Extend* ?        E_Modifier
+
+
+    var previousNonExtendIndex = all.indexOf(Extend) != -1 ? all.lastIndexOf(Extend) - 1 : all.length - 2;
+
+    if ([E_Base, E_Base_GAZ].indexOf(all[previousNonExtendIndex]) != -1 && all.slice(previousNonExtendIndex + 1, -1).every(function (c) {
+      return c == Extend;
+    }) && next == E_Modifier) {
+      return NotBreak;
+    } // GB11. ZWJ ? (Glue_After_Zwj | EBG)
+
+
+    if (previous == ZWJ && [Glue_After_Zwj, E_Base_GAZ].indexOf(next) != -1) {
+      return NotBreak;
+    } // GB12. ^ (RI RI)* RI ? RI
+    // GB13. [^RI] (RI RI)* RI ? RI
+
+
+    if (mid.indexOf(Regional_Indicator) != -1) {
+      return Break;
+    }
+
+    if (previous == Regional_Indicator && next == Regional_Indicator) {
+      return NotBreak;
+    } // GB999. Any ? Any
+
+
+    return BreakStart;
+  } // Returns the next grapheme break in the string after the given index
+
+
+  this.nextBreak = function (string, index) {
+    if (index === undefined) {
+      index = 0;
+    }
+
+    if (index < 0) {
+      return 0;
+    }
+
+    if (index >= string.length - 1) {
+      return string.length;
+    }
+
+    var prev = getGraphemeBreakProperty(codePointAt(string, index));
+    var mid = [];
+
+    for (var i = index + 1; i < string.length; i++) {
+      // check for already processed low surrogates
+      if (isSurrogate(string, i - 1)) {
+        continue;
+      }
+
+      var next = getGraphemeBreakProperty(codePointAt(string, i));
+
+      if (shouldBreak(prev, mid, next)) {
+        return i;
+      }
+
+      mid.push(next);
+    }
+
+    return string.length;
+  }; // Breaks the given string into an array of grapheme cluster strings
+
+
+  this.splitGraphemes = function (str) {
+    var res = [];
+    var index = 0;
+    var brk;
+
+    while ((brk = this.nextBreak(str, index)) < str.length) {
+      res.push(str.slice(index, brk));
+      index = brk;
+    }
+
+    if (index < str.length) {
+      res.push(str.slice(index));
+    }
+
+    return res;
+  }; // Returns the iterator of grapheme clusters there are in the given string
+
+
+  this.iterateGraphemes = function (str) {
+    var index = 0;
+    var res = {
+      next: function () {
+        var value;
+        var brk;
+
+        if ((brk = this.nextBreak(str, index)) < str.length) {
+          value = str.slice(index, brk);
+          index = brk;
+          return {
+            value: value,
+            done: false
+          };
+        }
+
+        if (index < str.length) {
+          value = str.slice(index);
+          index = str.length;
+          return {
+            value: value,
+            done: false
+          };
+        }
+
+        return {
+          value: undefined,
+          done: true
+        };
+      }.bind(this)
+    }; // ES2015 @@iterator method (iterable) for spread syntax and for...of statement
+
+    if (typeof Symbol !== 'undefined' && Symbol.iterator) {
+      res[Symbol.iterator] = function () {
+        return res;
+      };
+    }
+
+    return res;
+  }; // Returns the number of grapheme clusters there are in the given string
+
+
+  this.countGraphemes = function (str) {
+    var count = 0;
+    var index = 0;
+    var brk;
+
+    while ((brk = this.nextBreak(str, index)) < str.length) {
+      index = brk;
+      count++;
+    }
+
+    if (index < str.length) {
+      count++;
+    }
+
+    return count;
+  }; //given a Unicode code point, determines this symbol's grapheme break property
+
+
+  function getGraphemeBreakProperty(code) {
+    //grapheme break property for Unicode 10.0.0, 
+    //taken from http://www.unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
+    //and adapted to JavaScript rules
+    if (0x0600 <= code && code <= 0x0605 || // Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+    0x06DD == code || // Cf       ARABIC END OF AYAH
+    0x070F == code || // Cf       SYRIAC ABBREVIATION MARK
+    0x08E2 == code || // Cf       ARABIC DISPUTED END OF AYAH
+    0x0D4E == code || // Lo       MALAYALAM LETTER DOT REPH
+    0x110BD == code || // Cf       KAITHI NUMBER SIGN
+    0x111C2 <= code && code <= 0x111C3 || // Lo   [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA
+    0x11A3A == code || // Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
+    0x11A86 <= code && code <= 0x11A89 || // Lo   [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+    0x11D46 == code // Lo       MASARAM GONDI REPHA
+    ) {
+      return Prepend;
+    }
+
+    if (0x000D == code // Cc       <control-000D>
+    ) {
+      return CR;
+    }
+
+    if (0x000A == code // Cc       <control-000A>
+    ) {
+      return LF;
+    }
+
+    if (0x0000 <= code && code <= 0x0009 || // Cc  [10] <control-0000>..<control-0009>
+    0x000B <= code && code <= 0x000C || // Cc   [2] <control-000B>..<control-000C>
+    0x000E <= code && code <= 0x001F || // Cc  [18] <control-000E>..<control-001F>
+    0x007F <= code && code <= 0x009F || // Cc  [33] <control-007F>..<control-009F>
+    0x00AD == code || // Cf       SOFT HYPHEN
+    0x061C == code || // Cf       ARABIC LETTER MARK
+    0x180E == code || // Cf       MONGOLIAN VOWEL SEPARATOR
+    0x200B == code || // Cf       ZERO WIDTH SPACE
+    0x200E <= code && code <= 0x200F || // Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+    0x2028 == code || // Zl       LINE SEPARATOR
+    0x2029 == code || // Zp       PARAGRAPH SEPARATOR
+    0x202A <= code && code <= 0x202E || // Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+    0x2060 <= code && code <= 0x2064 || // Cf   [5] WORD JOINER..INVISIBLE PLUS
+    0x2065 == code || // Cn       <reserved-2065>
+    0x2066 <= code && code <= 0x206F || // Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+    0xD800 <= code && code <= 0xDFFF || // Cs [2048] <surrogate-D800>..<surrogate-DFFF>
+    0xFEFF == code || // Cf       ZERO WIDTH NO-BREAK SPACE
+    0xFFF0 <= code && code <= 0xFFF8 || // Cn   [9] <reserved-FFF0>..<reserved-FFF8>
+    0xFFF9 <= code && code <= 0xFFFB || // Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+    0x1BCA0 <= code && code <= 0x1BCA3 || // Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+    0x1D173 <= code && code <= 0x1D17A || // Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+    0xE0000 == code || // Cn       <reserved-E0000>
+    0xE0001 == code || // Cf       LANGUAGE TAG
+    0xE0002 <= code && code <= 0xE001F || // Cn  [30] <reserved-E0002>..<reserved-E001F>
+    0xE0080 <= code && code <= 0xE00FF || // Cn [128] <reserved-E0080>..<reserved-E00FF>
+    0xE01F0 <= code && code <= 0xE0FFF // Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
+    ) {
+      return Control;
+    }
+
+    if (0x0300 <= code && code <= 0x036F || // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+    0x0483 <= code && code <= 0x0487 || // Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+    0x0488 <= code && code <= 0x0489 || // Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+    0x0591 <= code && code <= 0x05BD || // Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+    0x05BF == code || // Mn       HEBREW POINT RAFE
+    0x05C1 <= code && code <= 0x05C2 || // Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+    0x05C4 <= code && code <= 0x05C5 || // Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+    0x05C7 == code || // Mn       HEBREW POINT QAMATS QATAN
+    0x0610 <= code && code <= 0x061A || // Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+    0x064B <= code && code <= 0x065F || // Mn  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+    0x0670 == code || // Mn       ARABIC LETTER SUPERSCRIPT ALEF
+    0x06D6 <= code && code <= 0x06DC || // Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+    0x06DF <= code && code <= 0x06E4 || // Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+    0x06E7 <= code && code <= 0x06E8 || // Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+    0x06EA <= code && code <= 0x06ED || // Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+    0x0711 == code || // Mn       SYRIAC LETTER SUPERSCRIPT ALAPH
+    0x0730 <= code && code <= 0x074A || // Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+    0x07A6 <= code && code <= 0x07B0 || // Mn  [11] THAANA ABAFILI..THAANA SUKUN
+    0x07EB <= code && code <= 0x07F3 || // Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+    0x0816 <= code && code <= 0x0819 || // Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+    0x081B <= code && code <= 0x0823 || // Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+    0x0825 <= code && code <= 0x0827 || // Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+    0x0829 <= code && code <= 0x082D || // Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+    0x0859 <= code && code <= 0x085B || // Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+    0x08D4 <= code && code <= 0x08E1 || // Mn  [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
+    0x08E3 <= code && code <= 0x0902 || // Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
+    0x093A == code || // Mn       DEVANAGARI VOWEL SIGN OE
+    0x093C == code || // Mn       DEVANAGARI SIGN NUKTA
+    0x0941 <= code && code <= 0x0948 || // Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+    0x094D == code || // Mn       DEVANAGARI SIGN VIRAMA
+    0x0951 <= code && code <= 0x0957 || // Mn   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+    0x0962 <= code && code <= 0x0963 || // Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+    0x0981 == code || // Mn       BENGALI SIGN CANDRABINDU
+    0x09BC == code || // Mn       BENGALI SIGN NUKTA
+    0x09BE == code || // Mc       BENGALI VOWEL SIGN AA
+    0x09C1 <= code && code <= 0x09C4 || // Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+    0x09CD == code || // Mn       BENGALI SIGN VIRAMA
+    0x09D7 == code || // Mc       BENGALI AU LENGTH MARK
+    0x09E2 <= code && code <= 0x09E3 || // Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+    0x0A01 <= code && code <= 0x0A02 || // Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+    0x0A3C == code || // Mn       GURMUKHI SIGN NUKTA
+    0x0A41 <= code && code <= 0x0A42 || // Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+    0x0A47 <= code && code <= 0x0A48 || // Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+    0x0A4B <= code && code <= 0x0A4D || // Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+    0x0A51 == code || // Mn       GURMUKHI SIGN UDAAT
+    0x0A70 <= code && code <= 0x0A71 || // Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+    0x0A75 == code || // Mn       GURMUKHI SIGN YAKASH
+    0x0A81 <= code && code <= 0x0A82 || // Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+    0x0ABC == code || // Mn       GUJARATI SIGN NUKTA
+    0x0AC1 <= code && code <= 0x0AC5 || // Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+    0x0AC7 <= code && code <= 0x0AC8 || // Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+    0x0ACD == code || // Mn       GUJARATI SIGN VIRAMA
+    0x0AE2 <= code && code <= 0x0AE3 || // Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+    0x0AFA <= code && code <= 0x0AFF || // Mn   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+    0x0B01 == code || // Mn       ORIYA SIGN CANDRABINDU
+    0x0B3C == code || // Mn       ORIYA SIGN NUKTA
+    0x0B3E == code || // Mc       ORIYA VOWEL SIGN AA
+    0x0B3F == code || // Mn       ORIYA VOWEL SIGN I
+    0x0B41 <= code && code <= 0x0B44 || // Mn   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+    0x0B4D == code || // Mn       ORIYA SIGN VIRAMA
+    0x0B56 == code || // Mn       ORIYA AI LENGTH MARK
+    0x0B57 == code || // Mc       ORIYA AU LENGTH MARK
+    0x0B62 <= code && code <= 0x0B63 || // Mn   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+    0x0B82 == code || // Mn       TAMIL SIGN ANUSVARA
+    0x0BBE == code || // Mc       TAMIL VOWEL SIGN AA
+    0x0BC0 == code || // Mn       TAMIL VOWEL SIGN II
+    0x0BCD == code || // Mn       TAMIL SIGN VIRAMA
+    0x0BD7 == code || // Mc       TAMIL AU LENGTH MARK
+    0x0C00 == code || // Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
+    0x0C3E <= code && code <= 0x0C40 || // Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+    0x0C46 <= code && code <= 0x0C48 || // Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+    0x0C4A <= code && code <= 0x0C4D || // Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+    0x0C55 <= code && code <= 0x0C56 || // Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+    0x0C62 <= code && code <= 0x0C63 || // Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+    0x0C81 == code || // Mn       KANNADA SIGN CANDRABINDU
+    0x0CBC == code || // Mn       KANNADA SIGN NUKTA
+    0x0CBF == code || // Mn       KANNADA VOWEL SIGN I
+    0x0CC2 == code || // Mc       KANNADA VOWEL SIGN UU
+    0x0CC6 == code || // Mn       KANNADA VOWEL SIGN E
+    0x0CCC <= code && code <= 0x0CCD || // Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+    0x0CD5 <= code && code <= 0x0CD6 || // Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+    0x0CE2 <= code && code <= 0x0CE3 || // Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+    0x0D00 <= code && code <= 0x0D01 || // Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+    0x0D3B <= code && code <= 0x0D3C || // Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+    0x0D3E == code || // Mc       MALAYALAM VOWEL SIGN AA
+    0x0D41 <= code && code <= 0x0D44 || // Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+    0x0D4D == code || // Mn       MALAYALAM SIGN VIRAMA
+    0x0D57 == code || // Mc       MALAYALAM AU LENGTH MARK
+    0x0D62 <= code && code <= 0x0D63 || // Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+    0x0DCA == code || // Mn       SINHALA SIGN AL-LAKUNA
+    0x0DCF == code || // Mc       SINHALA VOWEL SIGN AELA-PILLA
+    0x0DD2 <= code && code <= 0x0DD4 || // Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+    0x0DD6 == code || // Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
+    0x0DDF == code || // Mc       SINHALA VOWEL SIGN GAYANUKITTA
+    0x0E31 == code || // Mn       THAI CHARACTER MAI HAN-AKAT
+    0x0E34 <= code && code <= 0x0E3A || // Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+    0x0E47 <= code && code <= 0x0E4E || // Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+    0x0EB1 == code || // Mn       LAO VOWEL SIGN MAI KAN
+    0x0EB4 <= code && code <= 0x0EB9 || // Mn   [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+    0x0EBB <= code && code <= 0x0EBC || // Mn   [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+    0x0EC8 <= code && code <= 0x0ECD || // Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+    0x0F18 <= code && code <= 0x0F19 || // Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+    0x0F35 == code || // Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
+    0x0F37 == code || // Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
+    0x0F39 == code || // Mn       TIBETAN MARK TSA -PHRU
+    0x0F71 <= code && code <= 0x0F7E || // Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+    0x0F80 <= code && code <= 0x0F84 || // Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+    0x0F86 <= code && code <= 0x0F87 || // Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+    0x0F8D <= code && code <= 0x0F97 || // Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+    0x0F99 <= code && code <= 0x0FBC || // Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+    0x0FC6 == code || // Mn       TIBETAN SYMBOL PADMA GDAN
+    0x102D <= code && code <= 0x1030 || // Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+    0x1032 <= code && code <= 0x1037 || // Mn   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+    0x1039 <= code && code <= 0x103A || // Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+    0x103D <= code && code <= 0x103E || // Mn   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+    0x1058 <= code && code <= 0x1059 || // Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+    0x105E <= code && code <= 0x1060 || // Mn   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+    0x1071 <= code && code <= 0x1074 || // Mn   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+    0x1082 == code || // Mn       MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+    0x1085 <= code && code <= 0x1086 || // Mn   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+    0x108D == code || // Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+    0x109D == code || // Mn       MYANMAR VOWEL SIGN AITON AI
+    0x135D <= code && code <= 0x135F || // Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+    0x1712 <= code && code <= 0x1714 || // Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+    0x1732 <= code && code <= 0x1734 || // Mn   [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+    0x1752 <= code && code <= 0x1753 || // Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+    0x1772 <= code && code <= 0x1773 || // Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+    0x17B4 <= code && code <= 0x17B5 || // Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+    0x17B7 <= code && code <= 0x17BD || // Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+    0x17C6 == code || // Mn       KHMER SIGN NIKAHIT
+    0x17C9 <= code && code <= 0x17D3 || // Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+    0x17DD == code || // Mn       KHMER SIGN ATTHACAN
+    0x180B <= code && code <= 0x180D || // Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+    0x1885 <= code && code <= 0x1886 || // Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+    0x18A9 == code || // Mn       MONGOLIAN LETTER ALI GALI DAGALGA
+    0x1920 <= code && code <= 0x1922 || // Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+    0x1927 <= code && code <= 0x1928 || // Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+    0x1932 == code || // Mn       LIMBU SMALL LETTER ANUSVARA
+    0x1939 <= code && code <= 0x193B || // Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+    0x1A17 <= code && code <= 0x1A18 || // Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+    0x1A1B == code || // Mn       BUGINESE VOWEL SIGN AE
+    0x1A56 == code || // Mn       TAI THAM CONSONANT SIGN MEDIAL LA
+    0x1A58 <= code && code <= 0x1A5E || // Mn   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+    0x1A60 == code || // Mn       TAI THAM SIGN SAKOT
+    0x1A62 == code || // Mn       TAI THAM VOWEL SIGN MAI SAT
+    0x1A65 <= code && code <= 0x1A6C || // Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+    0x1A73 <= code && code <= 0x1A7C || // Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+    0x1A7F == code || // Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+    0x1AB0 <= code && code <= 0x1ABD || // Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+    0x1ABE == code || // Me       COMBINING PARENTHESES OVERLAY
+    0x1B00 <= code && code <= 0x1B03 || // Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+    0x1B34 == code || // Mn       BALINESE SIGN REREKAN
+    0x1B36 <= code && code <= 0x1B3A || // Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+    0x1B3C == code || // Mn       BALINESE VOWEL SIGN LA LENGA
+    0x1B42 == code || // Mn       BALINESE VOWEL SIGN PEPET
+    0x1B6B <= code && code <= 0x1B73 || // Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+    0x1B80 <= code && code <= 0x1B81 || // Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+    0x1BA2 <= code && code <= 0x1BA5 || // Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+    0x1BA8 <= code && code <= 0x1BA9 || // Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+    0x1BAB <= code && code <= 0x1BAD || // Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+    0x1BE6 == code || // Mn       BATAK SIGN TOMPI
+    0x1BE8 <= code && code <= 0x1BE9 || // Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+    0x1BED == code || // Mn       BATAK VOWEL SIGN KARO O
+    0x1BEF <= code && code <= 0x1BF1 || // Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+    0x1C2C <= code && code <= 0x1C33 || // Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+    0x1C36 <= code && code <= 0x1C37 || // Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+    0x1CD0 <= code && code <= 0x1CD2 || // Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+    0x1CD4 <= code && code <= 0x1CE0 || // Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+    0x1CE2 <= code && code <= 0x1CE8 || // Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+    0x1CED == code || // Mn       VEDIC SIGN TIRYAK
+    0x1CF4 == code || // Mn       VEDIC TONE CANDRA ABOVE
+    0x1CF8 <= code && code <= 0x1CF9 || // Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+    0x1DC0 <= code && code <= 0x1DF9 || // Mn  [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
+    0x1DFB <= code && code <= 0x1DFF || // Mn   [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+    0x200C == code || // Cf       ZERO WIDTH NON-JOINER
+    0x20D0 <= code && code <= 0x20DC || // Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+    0x20DD <= code && code <= 0x20E0 || // Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+    0x20E1 == code || // Mn       COMBINING LEFT RIGHT ARROW ABOVE
+    0x20E2 <= code && code <= 0x20E4 || // Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+    0x20E5 <= code && code <= 0x20F0 || // Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+    0x2CEF <= code && code <= 0x2CF1 || // Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+    0x2D7F == code || // Mn       TIFINAGH CONSONANT JOINER
+    0x2DE0 <= code && code <= 0x2DFF || // Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+    0x302A <= code && code <= 0x302D || // Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+    0x302E <= code && code <= 0x302F || // Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+    0x3099 <= code && code <= 0x309A || // Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+    0xA66F == code || // Mn       COMBINING CYRILLIC VZMET
+    0xA670 <= code && code <= 0xA672 || // Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+    0xA674 <= code && code <= 0xA67D || // Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+    0xA69E <= code && code <= 0xA69F || // Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+    0xA6F0 <= code && code <= 0xA6F1 || // Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+    0xA802 == code || // Mn       SYLOTI NAGRI SIGN DVISVARA
+    0xA806 == code || // Mn       SYLOTI NAGRI SIGN HASANTA
+    0xA80B == code || // Mn       SYLOTI NAGRI SIGN ANUSVARA
+    0xA825 <= code && code <= 0xA826 || // Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+    0xA8C4 <= code && code <= 0xA8C5 || // Mn   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
+    0xA8E0 <= code && code <= 0xA8F1 || // Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+    0xA926 <= code && code <= 0xA92D || // Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+    0xA947 <= code && code <= 0xA951 || // Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+    0xA980 <= code && code <= 0xA982 || // Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+    0xA9B3 == code || // Mn       JAVANESE SIGN CECAK TELU
+    0xA9B6 <= code && code <= 0xA9B9 || // Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+    0xA9BC == code || // Mn       JAVANESE VOWEL SIGN PEPET
+    0xA9E5 == code || // Mn       MYANMAR SIGN SHAN SAW
+    0xAA29 <= code && code <= 0xAA2E || // Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+    0xAA31 <= code && code <= 0xAA32 || // Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+    0xAA35 <= code && code <= 0xAA36 || // Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+    0xAA43 == code || // Mn       CHAM CONSONANT SIGN FINAL NG
+    0xAA4C == code || // Mn       CHAM CONSONANT SIGN FINAL M
+    0xAA7C == code || // Mn       MYANMAR SIGN TAI LAING TONE-2
+    0xAAB0 == code || // Mn       TAI VIET MAI KANG
+    0xAAB2 <= code && code <= 0xAAB4 || // Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+    0xAAB7 <= code && code <= 0xAAB8 || // Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+    0xAABE <= code && code <= 0xAABF || // Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+    0xAAC1 == code || // Mn       TAI VIET TONE MAI THO
+    0xAAEC <= code && code <= 0xAAED || // Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+    0xAAF6 == code || // Mn       MEETEI MAYEK VIRAMA
+    0xABE5 == code || // Mn       MEETEI MAYEK VOWEL SIGN ANAP
+    0xABE8 == code || // Mn       MEETEI MAYEK VOWEL SIGN UNAP
+    0xABED == code || // Mn       MEETEI MAYEK APUN IYEK
+    0xFB1E == code || // Mn       HEBREW POINT JUDEO-SPANISH VARIKA
+    0xFE00 <= code && code <= 0xFE0F || // Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+    0xFE20 <= code && code <= 0xFE2F || // Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+    0xFF9E <= code && code <= 0xFF9F || // Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+    0x101FD == code || // Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+    0x102E0 == code || // Mn       COPTIC EPACT THOUSANDS MARK
+    0x10376 <= code && code <= 0x1037A || // Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+    0x10A01 <= code && code <= 0x10A03 || // Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+    0x10A05 <= code && code <= 0x10A06 || // Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+    0x10A0C <= code && code <= 0x10A0F || // Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+    0x10A38 <= code && code <= 0x10A3A || // Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+    0x10A3F == code || // Mn       KHAROSHTHI VIRAMA
+    0x10AE5 <= code && code <= 0x10AE6 || // Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+    0x11001 == code || // Mn       BRAHMI SIGN ANUSVARA
+    0x11038 <= code && code <= 0x11046 || // Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+    0x1107F <= code && code <= 0x11081 || // Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
+    0x110B3 <= code && code <= 0x110B6 || // Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+    0x110B9 <= code && code <= 0x110BA || // Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+    0x11100 <= code && code <= 0x11102 || // Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+    0x11127 <= code && code <= 0x1112B || // Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+    0x1112D <= code && code <= 0x11134 || // Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+    0x11173 == code || // Mn       MAHAJANI SIGN NUKTA
+    0x11180 <= code && code <= 0x11181 || // Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+    0x111B6 <= code && code <= 0x111BE || // Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+    0x111CA <= code && code <= 0x111CC || // Mn   [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK
+    0x1122F <= code && code <= 0x11231 || // Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+    0x11234 == code || // Mn       KHOJKI SIGN ANUSVARA
+    0x11236 <= code && code <= 0x11237 || // Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+    0x1123E == code || // Mn       KHOJKI SIGN SUKUN
+    0x112DF == code || // Mn       KHUDAWADI SIGN ANUSVARA
+    0x112E3 <= code && code <= 0x112EA || // Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+    0x11300 <= code && code <= 0x11301 || // Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+    0x1133C == code || // Mn       GRANTHA SIGN NUKTA
+    0x1133E == code || // Mc       GRANTHA VOWEL SIGN AA
+    0x11340 == code || // Mn       GRANTHA VOWEL SIGN II
+    0x11357 == code || // Mc       GRANTHA AU LENGTH MARK
+    0x11366 <= code && code <= 0x1136C || // Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+    0x11370 <= code && code <= 0x11374 || // Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+    0x11438 <= code && code <= 0x1143F || // Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+    0x11442 <= code && code <= 0x11444 || // Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+    0x11446 == code || // Mn       NEWA SIGN NUKTA
+    0x114B0 == code || // Mc       TIRHUTA VOWEL SIGN AA
+    0x114B3 <= code && code <= 0x114B8 || // Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+    0x114BA == code || // Mn       TIRHUTA VOWEL SIGN SHORT E
+    0x114BD == code || // Mc       TIRHUTA VOWEL SIGN SHORT O
+    0x114BF <= code && code <= 0x114C0 || // Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+    0x114C2 <= code && code <= 0x114C3 || // Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+    0x115AF == code || // Mc       SIDDHAM VOWEL SIGN AA
+    0x115B2 <= code && code <= 0x115B5 || // Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+    0x115BC <= code && code <= 0x115BD || // Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+    0x115BF <= code && code <= 0x115C0 || // Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+    0x115DC <= code && code <= 0x115DD || // Mn   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+    0x11633 <= code && code <= 0x1163A || // Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+    0x1163D == code || // Mn       MODI SIGN ANUSVARA
+    0x1163F <= code && code <= 0x11640 || // Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+    0x116AB == code || // Mn       TAKRI SIGN ANUSVARA
+    0x116AD == code || // Mn       TAKRI VOWEL SIGN AA
+    0x116B0 <= code && code <= 0x116B5 || // Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+    0x116B7 == code || // Mn       TAKRI SIGN NUKTA
+    0x1171D <= code && code <= 0x1171F || // Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
+    0x11722 <= code && code <= 0x11725 || // Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+    0x11727 <= code && code <= 0x1172B || // Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+    0x11A01 <= code && code <= 0x11A06 || // Mn   [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O
+    0x11A09 <= code && code <= 0x11A0A || // Mn   [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+    0x11A33 <= code && code <= 0x11A38 || // Mn   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+    0x11A3B <= code && code <= 0x11A3E || // Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+    0x11A47 == code || // Mn       ZANABAZAR SQUARE SUBJOINER
+    0x11A51 <= code && code <= 0x11A56 || // Mn   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+    0x11A59 <= code && code <= 0x11A5B || // Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+    0x11A8A <= code && code <= 0x11A96 || // Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+    0x11A98 <= code && code <= 0x11A99 || // Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+    0x11C30 <= code && code <= 0x11C36 || // Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+    0x11C38 <= code && code <= 0x11C3D || // Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+    0x11C3F == code || // Mn       BHAIKSUKI SIGN VIRAMA
+    0x11C92 <= code && code <= 0x11CA7 || // Mn  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+    0x11CAA <= code && code <= 0x11CB0 || // Mn   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+    0x11CB2 <= code && code <= 0x11CB3 || // Mn   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+    0x11CB5 <= code && code <= 0x11CB6 || // Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+    0x11D31 <= code && code <= 0x11D36 || // Mn   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+    0x11D3A == code || // Mn       MASARAM GONDI VOWEL SIGN E
+    0x11D3C <= code && code <= 0x11D3D || // Mn   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+    0x11D3F <= code && code <= 0x11D45 || // Mn   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+    0x11D47 == code || // Mn       MASARAM GONDI RA-KARA
+    0x16AF0 <= code && code <= 0x16AF4 || // Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+    0x16B30 <= code && code <= 0x16B36 || // Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+    0x16F8F <= code && code <= 0x16F92 || // Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+    0x1BC9D <= code && code <= 0x1BC9E || // Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+    0x1D165 == code || // Mc       MUSICAL SYMBOL COMBINING STEM
+    0x1D167 <= code && code <= 0x1D169 || // Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+    0x1D16E <= code && code <= 0x1D172 || // Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
+    0x1D17B <= code && code <= 0x1D182 || // Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+    0x1D185 <= code && code <= 0x1D18B || // Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+    0x1D1AA <= code && code <= 0x1D1AD || // Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+    0x1D242 <= code && code <= 0x1D244 || // Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+    0x1DA00 <= code && code <= 0x1DA36 || // Mn  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+    0x1DA3B <= code && code <= 0x1DA6C || // Mn  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+    0x1DA75 == code || // Mn       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+    0x1DA84 == code || // Mn       SIGNWRITING LOCATION HEAD NECK
+    0x1DA9B <= code && code <= 0x1DA9F || // Mn   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+    0x1DAA1 <= code && code <= 0x1DAAF || // Mn  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+    0x1E000 <= code && code <= 0x1E006 || // Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+    0x1E008 <= code && code <= 0x1E018 || // Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+    0x1E01B <= code && code <= 0x1E021 || // Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+    0x1E023 <= code && code <= 0x1E024 || // Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+    0x1E026 <= code && code <= 0x1E02A || // Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+    0x1E8D0 <= code && code <= 0x1E8D6 || // Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+    0x1E944 <= code && code <= 0x1E94A || // Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+    0xE0020 <= code && code <= 0xE007F || // Cf  [96] TAG SPACE..CANCEL TAG
+    0xE0100 <= code && code <= 0xE01EF // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+    ) {
+      return Extend;
+    }
+
+    if (0x1F1E6 <= code && code <= 0x1F1FF // So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+    ) {
+      return Regional_Indicator;
+    }
+
+    if (0x0903 == code || // Mc       DEVANAGARI SIGN VISARGA
+    0x093B == code || // Mc       DEVANAGARI VOWEL SIGN OOE
+    0x093E <= code && code <= 0x0940 || // Mc   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+    0x0949 <= code && code <= 0x094C || // Mc   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+    0x094E <= code && code <= 0x094F || // Mc   [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+    0x0982 <= code && code <= 0x0983 || // Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+    0x09BF <= code && code <= 0x09C0 || // Mc   [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
+    0x09C7 <= code && code <= 0x09C8 || // Mc   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+    0x09CB <= code && code <= 0x09CC || // Mc   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+    0x0A03 == code || // Mc       GURMUKHI SIGN VISARGA
+    0x0A3E <= code && code <= 0x0A40 || // Mc   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+    0x0A83 == code || // Mc       GUJARATI SIGN VISARGA
+    0x0ABE <= code && code <= 0x0AC0 || // Mc   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+    0x0AC9 == code || // Mc       GUJARATI VOWEL SIGN CANDRA O
+    0x0ACB <= code && code <= 0x0ACC || // Mc   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+    0x0B02 <= code && code <= 0x0B03 || // Mc   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+    0x0B40 == code || // Mc       ORIYA VOWEL SIGN II
+    0x0B47 <= code && code <= 0x0B48 || // Mc   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+    0x0B4B <= code && code <= 0x0B4C || // Mc   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+    0x0BBF == code || // Mc       TAMIL VOWEL SIGN I
+    0x0BC1 <= code && code <= 0x0BC2 || // Mc   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+    0x0BC6 <= code && code <= 0x0BC8 || // Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+    0x0BCA <= code && code <= 0x0BCC || // Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+    0x0C01 <= code && code <= 0x0C03 || // Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+    0x0C41 <= code && code <= 0x0C44 || // Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+    0x0C82 <= code && code <= 0x0C83 || // Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+    0x0CBE == code || // Mc       KANNADA VOWEL SIGN AA
+    0x0CC0 <= code && code <= 0x0CC1 || // Mc   [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
+    0x0CC3 <= code && code <= 0x0CC4 || // Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
+    0x0CC7 <= code && code <= 0x0CC8 || // Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+    0x0CCA <= code && code <= 0x0CCB || // Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+    0x0D02 <= code && code <= 0x0D03 || // Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+    0x0D3F <= code && code <= 0x0D40 || // Mc   [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
+    0x0D46 <= code && code <= 0x0D48 || // Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+    0x0D4A <= code && code <= 0x0D4C || // Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+    0x0D82 <= code && code <= 0x0D83 || // Mc   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+    0x0DD0 <= code && code <= 0x0DD1 || // Mc   [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+    0x0DD8 <= code && code <= 0x0DDE || // Mc   [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+    0x0DF2 <= code && code <= 0x0DF3 || // Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+    0x0E33 == code || // Lo       THAI CHARACTER SARA AM
+    0x0EB3 == code || // Lo       LAO VOWEL SIGN AM
+    0x0F3E <= code && code <= 0x0F3F || // Mc   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+    0x0F7F == code || // Mc       TIBETAN SIGN RNAM BCAD
+    0x1031 == code || // Mc       MYANMAR VOWEL SIGN E
+    0x103B <= code && code <= 0x103C || // Mc   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+    0x1056 <= code && code <= 0x1057 || // Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+    0x1084 == code || // Mc       MYANMAR VOWEL SIGN SHAN E
+    0x17B6 == code || // Mc       KHMER VOWEL SIGN AA
+    0x17BE <= code && code <= 0x17C5 || // Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+    0x17C7 <= code && code <= 0x17C8 || // Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+    0x1923 <= code && code <= 0x1926 || // Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+    0x1929 <= code && code <= 0x192B || // Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+    0x1930 <= code && code <= 0x1931 || // Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+    0x1933 <= code && code <= 0x1938 || // Mc   [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+    0x1A19 <= code && code <= 0x1A1A || // Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+    0x1A55 == code || // Mc       TAI THAM CONSONANT SIGN MEDIAL RA
+    0x1A57 == code || // Mc       TAI THAM CONSONANT SIGN LA TANG LAI
+    0x1A6D <= code && code <= 0x1A72 || // Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+    0x1B04 == code || // Mc       BALINESE SIGN BISAH
+    0x1B35 == code || // Mc       BALINESE VOWEL SIGN TEDUNG
+    0x1B3B == code || // Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
+    0x1B3D <= code && code <= 0x1B41 || // Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+    0x1B43 <= code && code <= 0x1B44 || // Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+    0x1B82 == code || // Mc       SUNDANESE SIGN PANGWISAD
+    0x1BA1 == code || // Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
+    0x1BA6 <= code && code <= 0x1BA7 || // Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+    0x1BAA == code || // Mc       SUNDANESE SIGN PAMAAEH
+    0x1BE7 == code || // Mc       BATAK VOWEL SIGN E
+    0x1BEA <= code && code <= 0x1BEC || // Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+    0x1BEE == code || // Mc       BATAK VOWEL SIGN U
+    0x1BF2 <= code && code <= 0x1BF3 || // Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
+    0x1C24 <= code && code <= 0x1C2B || // Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+    0x1C34 <= code && code <= 0x1C35 || // Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+    0x1CE1 == code || // Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+    0x1CF2 <= code && code <= 0x1CF3 || // Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+    0x1CF7 == code || // Mc       VEDIC SIGN ATIKRAMA
+    0xA823 <= code && code <= 0xA824 || // Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+    0xA827 == code || // Mc       SYLOTI NAGRI VOWEL SIGN OO
+    0xA880 <= code && code <= 0xA881 || // Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+    0xA8B4 <= code && code <= 0xA8C3 || // Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+    0xA952 <= code && code <= 0xA953 || // Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+    0xA983 == code || // Mc       JAVANESE SIGN WIGNYAN
+    0xA9B4 <= code && code <= 0xA9B5 || // Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+    0xA9BA <= code && code <= 0xA9BB || // Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+    0xA9BD <= code && code <= 0xA9C0 || // Mc   [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+    0xAA2F <= code && code <= 0xAA30 || // Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+    0xAA33 <= code && code <= 0xAA34 || // Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+    0xAA4D == code || // Mc       CHAM CONSONANT SIGN FINAL H
+    0xAAEB == code || // Mc       MEETEI MAYEK VOWEL SIGN II
+    0xAAEE <= code && code <= 0xAAEF || // Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+    0xAAF5 == code || // Mc       MEETEI MAYEK VOWEL SIGN VISARGA
+    0xABE3 <= code && code <= 0xABE4 || // Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+    0xABE6 <= code && code <= 0xABE7 || // Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+    0xABE9 <= code && code <= 0xABEA || // Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+    0xABEC == code || // Mc       MEETEI MAYEK LUM IYEK
+    0x11000 == code || // Mc       BRAHMI SIGN CANDRABINDU
+    0x11002 == code || // Mc       BRAHMI SIGN VISARGA
+    0x11082 == code || // Mc       KAITHI SIGN VISARGA
+    0x110B0 <= code && code <= 0x110B2 || // Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+    0x110B7 <= code && code <= 0x110B8 || // Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+    0x1112C == code || // Mc       CHAKMA VOWEL SIGN E
+    0x11182 == code || // Mc       SHARADA SIGN VISARGA
+    0x111B3 <= code && code <= 0x111B5 || // Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+    0x111BF <= code && code <= 0x111C0 || // Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+    0x1122C <= code && code <= 0x1122E || // Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+    0x11232 <= code && code <= 0x11233 || // Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+    0x11235 == code || // Mc       KHOJKI SIGN VIRAMA
+    0x112E0 <= code && code <= 0x112E2 || // Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+    0x11302 <= code && code <= 0x11303 || // Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+    0x1133F == code || // Mc       GRANTHA VOWEL SIGN I
+    0x11341 <= code && code <= 0x11344 || // Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+    0x11347 <= code && code <= 0x11348 || // Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+    0x1134B <= code && code <= 0x1134D || // Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+    0x11362 <= code && code <= 0x11363 || // Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+    0x11435 <= code && code <= 0x11437 || // Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+    0x11440 <= code && code <= 0x11441 || // Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+    0x11445 == code || // Mc       NEWA SIGN VISARGA
+    0x114B1 <= code && code <= 0x114B2 || // Mc   [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
+    0x114B9 == code || // Mc       TIRHUTA VOWEL SIGN E
+    0x114BB <= code && code <= 0x114BC || // Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+    0x114BE == code || // Mc       TIRHUTA VOWEL SIGN AU
+    0x114C1 == code || // Mc       TIRHUTA SIGN VISARGA
+    0x115B0 <= code && code <= 0x115B1 || // Mc   [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
+    0x115B8 <= code && code <= 0x115BB || // Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+    0x115BE == code || // Mc       SIDDHAM SIGN VISARGA
+    0x11630 <= code && code <= 0x11632 || // Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+    0x1163B <= code && code <= 0x1163C || // Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+    0x1163E == code || // Mc       MODI SIGN VISARGA
+    0x116AC == code || // Mc       TAKRI SIGN VISARGA
+    0x116AE <= code && code <= 0x116AF || // Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+    0x116B6 == code || // Mc       TAKRI SIGN VIRAMA
+    0x11720 <= code && code <= 0x11721 || // Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
+    0x11726 == code || // Mc       AHOM VOWEL SIGN E
+    0x11A07 <= code && code <= 0x11A08 || // Mc   [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU
+    0x11A39 == code || // Mc       ZANABAZAR SQUARE SIGN VISARGA
+    0x11A57 <= code && code <= 0x11A58 || // Mc   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+    0x11A97 == code || // Mc       SOYOMBO SIGN VISARGA
+    0x11C2F == code || // Mc       BHAIKSUKI VOWEL SIGN AA
+    0x11C3E == code || // Mc       BHAIKSUKI SIGN VISARGA
+    0x11CA9 == code || // Mc       MARCHEN SUBJOINED LETTER YA
+    0x11CB1 == code || // Mc       MARCHEN VOWEL SIGN I
+    0x11CB4 == code || // Mc       MARCHEN VOWEL SIGN O
+    0x16F51 <= code && code <= 0x16F7E || // Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+    0x1D166 == code || // Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+    0x1D16D == code // Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT
+    ) {
+      return SpacingMark;
+    }
+
+    if (0x1100 <= code && code <= 0x115F || // Lo  [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+    0xA960 <= code && code <= 0xA97C // Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+    ) {
+      return L;
+    }
+
+    if (0x1160 <= code && code <= 0x11A7 || // Lo  [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
+    0xD7B0 <= code && code <= 0xD7C6 // Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+    ) {
+      return V;
+    }
+
+    if (0x11A8 <= code && code <= 0x11FF || // Lo  [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+    0xD7CB <= code && code <= 0xD7FB // Lo  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+    ) {
+      return T;
+    }
+
+    if (0xAC00 == code || // Lo       HANGUL SYLLABLE GA
+    0xAC1C == code || // Lo       HANGUL SYLLABLE GAE
+    0xAC38 == code || // Lo       HANGUL SYLLABLE GYA
+    0xAC54 == code || // Lo       HANGUL SYLLABLE GYAE
+    0xAC70 == code || // Lo       HANGUL SYLLABLE GEO
+    0xAC8C == code || // Lo       HANGUL SYLLABLE GE
+    0xACA8 == code || // Lo       HANGUL SYLLABLE GYEO
+    0xACC4 == code || // Lo       HANGUL SYLLABLE GYE
+    0xACE0 == code || // Lo       HANGUL SYLLABLE GO
+    0xACFC == code || // Lo       HANGUL SYLLABLE GWA
+    0xAD18 == code || // Lo       HANGUL SYLLABLE GWAE
+    0xAD34 == code || // Lo       HANGUL SYLLABLE GOE
+    0xAD50 == code || // Lo       HANGUL SYLLABLE GYO
+    0xAD6C == code || // Lo       HANGUL SYLLABLE GU
+    0xAD88 == code || // Lo       HANGUL SYLLABLE GWEO
+    0xADA4 == code || // Lo       HANGUL SYLLABLE GWE
+    0xADC0 == code || // Lo       HANGUL SYLLABLE GWI
+    0xADDC == code || // Lo       HANGUL SYLLABLE GYU
+    0xADF8 == code || // Lo       HANGUL SYLLABLE GEU
+    0xAE14 == code || // Lo       HANGUL SYLLABLE GYI
+    0xAE30 == code || // Lo       HANGUL SYLLABLE GI
+    0xAE4C == code || // Lo       HANGUL SYLLABLE GGA
+    0xAE68 == code || // Lo       HANGUL SYLLABLE GGAE
+    0xAE84 == code || // Lo       HANGUL SYLLABLE GGYA
+    0xAEA0 == code || // Lo       HANGUL SYLLABLE GGYAE
+    0xAEBC == code || // Lo       HANGUL SYLLABLE GGEO
+    0xAED8 == code || // Lo       HANGUL SYLLABLE GGE
+    0xAEF4 == code || // Lo       HANGUL SYLLABLE GGYEO
+    0xAF10 == code || // Lo       HANGUL SYLLABLE GGYE
+    0xAF2C == code || // Lo       HANGUL SYLLABLE GGO
+    0xAF48 == code || // Lo       HANGUL SYLLABLE GGWA
+    0xAF64 == code || // Lo       HANGUL SYLLABLE GGWAE
+    0xAF80 == code || // Lo       HANGUL SYLLABLE GGOE
+    0xAF9C == code || // Lo       HANGUL SYLLABLE GGYO
+    0xAFB8 == code || // Lo       HANGUL SYLLABLE GGU
+    0xAFD4 == code || // Lo       HANGUL SYLLABLE GGWEO
+    0xAFF0 == code || // Lo       HANGUL SYLLABLE GGWE
+    0xB00C == code || // Lo       HANGUL SYLLABLE GGWI
+    0xB028 == code || // Lo       HANGUL SYLLABLE GGYU
+    0xB044 == code || // Lo       HANGUL SYLLABLE GGEU
+    0xB060 == code || // Lo       HANGUL SYLLABLE GGYI
+    0xB07C == code || // Lo       HANGUL SYLLABLE GGI
+    0xB098 == code || // Lo       HANGUL SYLLABLE NA
+    0xB0B4 == code || // Lo       HANGUL SYLLABLE NAE
+    0xB0D0 == code || // Lo       HANGUL SYLLABLE NYA
+    0xB0EC == code || // Lo       HANGUL SYLLABLE NYAE
+    0xB108 == code || // Lo       HANGUL SYLLABLE NEO
+    0xB124 == code || // Lo       HANGUL SYLLABLE NE
+    0xB140 == code || // Lo       HANGUL SYLLABLE NYEO
+    0xB15C == code || // Lo       HANGUL SYLLABLE NYE
+    0xB178 == code || // Lo       HANGUL SYLLABLE NO
+    0xB194 == code || // Lo       HANGUL SYLLABLE NWA
+    0xB1B0 == code || // Lo       HANGUL SYLLABLE NWAE
+    0xB1CC == code || // Lo       HANGUL SYLLABLE NOE
+    0xB1E8 == code || // Lo       HANGUL SYLLABLE NYO
+    0xB204 == code || // Lo       HANGUL SYLLABLE NU
+    0xB220 == code || // Lo       HANGUL SYLLABLE NWEO
+    0xB23C == code || // Lo       HANGUL SYLLABLE NWE
+    0xB258 == code || // Lo       HANGUL SYLLABLE NWI
+    0xB274 == code || // Lo       HANGUL SYLLABLE NYU
+    0xB290 == code || // Lo       HANGUL SYLLABLE NEU
+    0xB2AC == code || // Lo       HANGUL SYLLABLE NYI
+    0xB2C8 == code || // Lo       HANGUL SYLLABLE NI
+    0xB2E4 == code || // Lo       HANGUL SYLLABLE DA
+    0xB300 == code || // Lo       HANGUL SYLLABLE DAE
+    0xB31C == code || // Lo       HANGUL SYLLABLE DYA
+    0xB338 == code || // Lo       HANGUL SYLLABLE DYAE
+    0xB354 == code || // Lo       HANGUL SYLLABLE DEO
+    0xB370 == code || // Lo       HANGUL SYLLABLE DE
+    0xB38C == code || // Lo       HANGUL SYLLABLE DYEO
+    0xB3A8 == code || // Lo       HANGUL SYLLABLE DYE
+    0xB3C4 == code || // Lo       HANGUL SYLLABLE DO
+    0xB3E0 == code || // Lo       HANGUL SYLLABLE DWA
+    0xB3FC == code || // Lo       HANGUL SYLLABLE DWAE
+    0xB418 == code || // Lo       HANGUL SYLLABLE DOE
+    0xB434 == code || // Lo       HANGUL SYLLABLE DYO
+    0xB450 == code || // Lo       HANGUL SYLLABLE DU
+    0xB46C == code || // Lo       HANGUL SYLLABLE DWEO
+    0xB488 == code || // Lo       HANGUL SYLLABLE DWE
+    0xB4A4 == code || // Lo       HANGUL SYLLABLE DWI
+    0xB4C0 == code || // Lo       HANGUL SYLLABLE DYU
+    0xB4DC == code || // Lo       HANGUL SYLLABLE DEU
+    0xB4F8 == code || // Lo       HANGUL SYLLABLE DYI
+    0xB514 == code || // Lo       HANGUL SYLLABLE DI
+    0xB530 == code || // Lo       HANGUL SYLLABLE DDA
+    0xB54C == code || // Lo       HANGUL SYLLABLE DDAE
+    0xB568 == code || // Lo       HANGUL SYLLABLE DDYA
+    0xB584 == code || // Lo       HANGUL SYLLABLE DDYAE
+    0xB5A0 == code || // Lo       HANGUL SYLLABLE DDEO
+    0xB5BC == code || // Lo       HANGUL SYLLABLE DDE
+    0xB5D8 == code || // Lo       HANGUL SYLLABLE DDYEO
+    0xB5F4 == code || // Lo       HANGUL SYLLABLE DDYE
+    0xB610 == code || // Lo       HANGUL SYLLABLE DDO
+    0xB62C == code || // Lo       HANGUL SYLLABLE DDWA
+    0xB648 == code || // Lo       HANGUL SYLLABLE DDWAE
+    0xB664 == code || // Lo       HANGUL SYLLABLE DDOE
+    0xB680 == code || // Lo       HANGUL SYLLABLE DDYO
+    0xB69C == code || // Lo       HANGUL SYLLABLE DDU
+    0xB6B8 == code || // Lo       HANGUL SYLLABLE DDWEO
+    0xB6D4 == code || // Lo       HANGUL SYLLABLE DDWE
+    0xB6F0 == code || // Lo       HANGUL SYLLABLE DDWI
+    0xB70C == code || // Lo       HANGUL SYLLABLE DDYU
+    0xB728 == code || // Lo       HANGUL SYLLABLE DDEU
+    0xB744 == code || // Lo       HANGUL SYLLABLE DDYI
+    0xB760 == code || // Lo       HANGUL SYLLABLE DDI
+    0xB77C == code || // Lo       HANGUL SYLLABLE RA
+    0xB798 == code || // Lo       HANGUL SYLLABLE RAE
+    0xB7B4 == code || // Lo       HANGUL SYLLABLE RYA
+    0xB7D0 == code || // Lo       HANGUL SYLLABLE RYAE
+    0xB7EC == code || // Lo       HANGUL SYLLABLE REO
+    0xB808 == code || // Lo       HANGUL SYLLABLE RE
+    0xB824 == code || // Lo       HANGUL SYLLABLE RYEO
+    0xB840 == code || // Lo       HANGUL SYLLABLE RYE
+    0xB85C == code || // Lo       HANGUL SYLLABLE RO
+    0xB878 == code || // Lo       HANGUL SYLLABLE RWA
+    0xB894 == code || // Lo       HANGUL SYLLABLE RWAE
+    0xB8B0 == code || // Lo       HANGUL SYLLABLE ROE
+    0xB8CC == code || // Lo       HANGUL SYLLABLE RYO
+    0xB8E8 == code || // Lo       HANGUL SYLLABLE RU
+    0xB904 == code || // Lo       HANGUL SYLLABLE RWEO
+    0xB920 == code || // Lo       HANGUL SYLLABLE RWE
+    0xB93C == code || // Lo       HANGUL SYLLABLE RWI
+    0xB958 == code || // Lo       HANGUL SYLLABLE RYU
+    0xB974 == code || // Lo       HANGUL SYLLABLE REU
+    0xB990 == code || // Lo       HANGUL SYLLABLE RYI
+    0xB9AC == code || // Lo       HANGUL SYLLABLE RI
+    0xB9C8 == code || // Lo       HANGUL SYLLABLE MA
+    0xB9E4 == code || // Lo       HANGUL SYLLABLE MAE
+    0xBA00 == code || // Lo       HANGUL SYLLABLE MYA
+    0xBA1C == code || // Lo       HANGUL SYLLABLE MYAE
+    0xBA38 == code || // Lo       HANGUL SYLLABLE MEO
+    0xBA54 == code || // Lo       HANGUL SYLLABLE ME
+    0xBA70 == code || // Lo       HANGUL SYLLABLE MYEO
+    0xBA8C == code || // Lo       HANGUL SYLLABLE MYE
+    0xBAA8 == code || // Lo       HANGUL SYLLABLE MO
+    0xBAC4 == code || // Lo       HANGUL SYLLABLE MWA
+    0xBAE0 == code || // Lo       HANGUL SYLLABLE MWAE
+    0xBAFC == code || // Lo       HANGUL SYLLABLE MOE
+    0xBB18 == code || // Lo       HANGUL SYLLABLE MYO
+    0xBB34 == code || // Lo       HANGUL SYLLABLE MU
+    0xBB50 == code || // Lo       HANGUL SYLLABLE MWEO
+    0xBB6C == code || // Lo       HANGUL SYLLABLE MWE
+    0xBB88 == code || // Lo       HANGUL SYLLABLE MWI
+    0xBBA4 == code || // Lo       HANGUL SYLLABLE MYU
+    0xBBC0 == code || // Lo       HANGUL SYLLABLE MEU
+    0xBBDC == code || // Lo       HANGUL SYLLABLE MYI
+    0xBBF8 == code || // Lo       HANGUL SYLLABLE MI
+    0xBC14 == code || // Lo       HANGUL SYLLABLE BA
+    0xBC30 == code || // Lo       HANGUL SYLLABLE BAE
+    0xBC4C == code || // Lo       HANGUL SYLLABLE BYA
+    0xBC68 == code || // Lo       HANGUL SYLLABLE BYAE
+    0xBC84 == code || // Lo       HANGUL SYLLABLE BEO
+    0xBCA0 == code || // Lo       HANGUL SYLLABLE BE
+    0xBCBC == code || // Lo       HANGUL SYLLABLE BYEO
+    0xBCD8 == code || // Lo       HANGUL SYLLABLE BYE
+    0xBCF4 == code || // Lo       HANGUL SYLLABLE BO
+    0xBD10 == code || // Lo       HANGUL SYLLABLE BWA
+    0xBD2C == code || // Lo       HANGUL SYLLABLE BWAE
+    0xBD48 == code || // Lo       HANGUL SYLLABLE BOE
+    0xBD64 == code || // Lo       HANGUL SYLLABLE BYO
+    0xBD80 == code || // Lo       HANGUL SYLLABLE BU
+    0xBD9C == code || // Lo       HANGUL SYLLABLE BWEO
+    0xBDB8 == code || // Lo       HANGUL SYLLABLE BWE
+    0xBDD4 == code || // Lo       HANGUL SYLLABLE BWI
+    0xBDF0 == code || // Lo       HANGUL SYLLABLE BYU
+    0xBE0C == code || // Lo       HANGUL SYLLABLE BEU
+    0xBE28 == code || // Lo       HANGUL SYLLABLE BYI
+    0xBE44 == code || // Lo       HANGUL SYLLABLE BI
+    0xBE60 == code || // Lo       HANGUL SYLLABLE BBA
+    0xBE7C == code || // Lo       HANGUL SYLLABLE BBAE
+    0xBE98 == code || // Lo       HANGUL SYLLABLE BBYA
+    0xBEB4 == code || // Lo       HANGUL SYLLABLE BBYAE
+    0xBED0 == code || // Lo       HANGUL SYLLABLE BBEO
+    0xBEEC == code || // Lo       HANGUL SYLLABLE BBE
+    0xBF08 == code || // Lo       HANGUL SYLLABLE BBYEO
+    0xBF24 == code || // Lo       HANGUL SYLLABLE BBYE
+    0xBF40 == code || // Lo       HANGUL SYLLABLE BBO
+    0xBF5C == code || // Lo       HANGUL SYLLABLE BBWA
+    0xBF78 == code || // Lo       HANGUL SYLLABLE BBWAE
+    0xBF94 == code || // Lo       HANGUL SYLLABLE BBOE
+    0xBFB0 == code || // Lo       HANGUL SYLLABLE BBYO
+    0xBFCC == code || // Lo       HANGUL SYLLABLE BBU
+    0xBFE8 == code || // Lo       HANGUL SYLLABLE BBWEO
+    0xC004 == code || // Lo       HANGUL SYLLABLE BBWE
+    0xC020 == code || // Lo       HANGUL SYLLABLE BBWI
+    0xC03C == code || // Lo       HANGUL SYLLABLE BBYU
+    0xC058 == code || // Lo       HANGUL SYLLABLE BBEU
+    0xC074 == code || // Lo       HANGUL SYLLABLE BBYI
+    0xC090 == code || // Lo       HANGUL SYLLABLE BBI
+    0xC0AC == code || // Lo       HANGUL SYLLABLE SA
+    0xC0C8 == code || // Lo       HANGUL SYLLABLE SAE
+    0xC0E4 == code || // Lo       HANGUL SYLLABLE SYA
+    0xC100 == code || // Lo       HANGUL SYLLABLE SYAE
+    0xC11C == code || // Lo       HANGUL SYLLABLE SEO
+    0xC138 == code || // Lo       HANGUL SYLLABLE SE
+    0xC154 == code || // Lo       HANGUL SYLLABLE SYEO
+    0xC170 == code || // Lo       HANGUL SYLLABLE SYE
+    0xC18C == code || // Lo       HANGUL SYLLABLE SO
+    0xC1A8 == code || // Lo       HANGUL SYLLABLE SWA
+    0xC1C4 == code || // Lo       HANGUL SYLLABLE SWAE
+    0xC1E0 == code || // Lo       HANGUL SYLLABLE SOE
+    0xC1FC == code || // Lo       HANGUL SYLLABLE SYO
+    0xC218 == code || // Lo       HANGUL SYLLABLE SU
+    0xC234 == code || // Lo       HANGUL SYLLABLE SWEO
+    0xC250 == code || // Lo       HANGUL SYLLABLE SWE
+    0xC26C == code || // Lo       HANGUL SYLLABLE SWI
+    0xC288 == code || // Lo       HANGUL SYLLABLE SYU
+    0xC2A4 == code || // Lo       HANGUL SYLLABLE SEU
+    0xC2C0 == code || // Lo       HANGUL SYLLABLE SYI
+    0xC2DC == code || // Lo       HANGUL SYLLABLE SI
+    0xC2F8 == code || // Lo       HANGUL SYLLABLE SSA
+    0xC314 == code || // Lo       HANGUL SYLLABLE SSAE
+    0xC330 == code || // Lo       HANGUL SYLLABLE SSYA
+    0xC34C == code || // Lo       HANGUL SYLLABLE SSYAE
+    0xC368 == code || // Lo       HANGUL SYLLABLE SSEO
+    0xC384 == code || // Lo       HANGUL SYLLABLE SSE
+    0xC3A0 == code || // Lo       HANGUL SYLLABLE SSYEO
+    0xC3BC == code || // Lo       HANGUL SYLLABLE SSYE
+    0xC3D8 == code || // Lo       HANGUL SYLLABLE SSO
+    0xC3F4 == code || // Lo       HANGUL SYLLABLE SSWA
+    0xC410 == code || // Lo       HANGUL SYLLABLE SSWAE
+    0xC42C == code || // Lo       HANGUL SYLLABLE SSOE
+    0xC448 == code || // Lo       HANGUL SYLLABLE SSYO
+    0xC464 == code || // Lo       HANGUL SYLLABLE SSU
+    0xC480 == code || // Lo       HANGUL SYLLABLE SSWEO
+    0xC49C == code || // Lo       HANGUL SYLLABLE SSWE
+    0xC4B8 == code || // Lo       HANGUL SYLLABLE SSWI
+    0xC4D4 == code || // Lo       HANGUL SYLLABLE SSYU
+    0xC4F0 == code || // Lo       HANGUL SYLLABLE SSEU
+    0xC50C == code || // Lo       HANGUL SYLLABLE SSYI
+    0xC528 == code || // Lo       HANGUL SYLLABLE SSI
+    0xC544 == code || // Lo       HANGUL SYLLABLE A
+    0xC560 == code || // Lo       HANGUL SYLLABLE AE
+    0xC57C == code || // Lo       HANGUL SYLLABLE YA
+    0xC598 == code || // Lo       HANGUL SYLLABLE YAE
+    0xC5B4 == code || // Lo       HANGUL SYLLABLE EO
+    0xC5D0 == code || // Lo       HANGUL SYLLABLE E
+    0xC5EC == code || // Lo       HANGUL SYLLABLE YEO
+    0xC608 == code || // Lo       HANGUL SYLLABLE YE
+    0xC624 == code || // Lo       HANGUL SYLLABLE O
+    0xC640 == code || // Lo       HANGUL SYLLABLE WA
+    0xC65C == code || // Lo       HANGUL SYLLABLE WAE
+    0xC678 == code || // Lo       HANGUL SYLLABLE OE
+    0xC694 == code || // Lo       HANGUL SYLLABLE YO
+    0xC6B0 == code || // Lo       HANGUL SYLLABLE U
+    0xC6CC == code || // Lo       HANGUL SYLLABLE WEO
+    0xC6E8 == code || // Lo       HANGUL SYLLABLE WE
+    0xC704 == code || // Lo       HANGUL SYLLABLE WI
+    0xC720 == code || // Lo       HANGUL SYLLABLE YU
+    0xC73C == code || // Lo       HANGUL SYLLABLE EU
+    0xC758 == code || // Lo       HANGUL SYLLABLE YI
+    0xC774 == code || // Lo       HANGUL SYLLABLE I
+    0xC790 == code || // Lo       HANGUL SYLLABLE JA
+    0xC7AC == code || // Lo       HANGUL SYLLABLE JAE
+    0xC7C8 == code || // Lo       HANGUL SYLLABLE JYA
+    0xC7E4 == code || // Lo       HANGUL SYLLABLE JYAE
+    0xC800 == code || // Lo       HANGUL SYLLABLE JEO
+    0xC81C == code || // Lo       HANGUL SYLLABLE JE
+    0xC838 == code || // Lo       HANGUL SYLLABLE JYEO
+    0xC854 == code || // Lo       HANGUL SYLLABLE JYE
+    0xC870 == code || // Lo       HANGUL SYLLABLE JO
+    0xC88C == code || // Lo       HANGUL SYLLABLE JWA
+    0xC8A8 == code || // Lo       HANGUL SYLLABLE JWAE
+    0xC8C4 == code || // Lo       HANGUL SYLLABLE JOE
+    0xC8E0 == code || // Lo       HANGUL SYLLABLE JYO
+    0xC8FC == code || // Lo       HANGUL SYLLABLE JU
+    0xC918 == code || // Lo       HANGUL SYLLABLE JWEO
+    0xC934 == code || // Lo       HANGUL SYLLABLE JWE
+    0xC950 == code || // Lo       HANGUL SYLLABLE JWI
+    0xC96C == code || // Lo       HANGUL SYLLABLE JYU
+    0xC988 == code || // Lo       HANGUL SYLLABLE JEU
+    0xC9A4 == code || // Lo       HANGUL SYLLABLE JYI
+    0xC9C0 == code || // Lo       HANGUL SYLLABLE JI
+    0xC9DC == code || // Lo       HANGUL SYLLABLE JJA
+    0xC9F8 == code || // Lo       HANGUL SYLLABLE JJAE
+    0xCA14 == code || // Lo       HANGUL SYLLABLE JJYA
+    0xCA30 == code || // Lo       HANGUL SYLLABLE JJYAE
+    0xCA4C == code || // Lo       HANGUL SYLLABLE JJEO
+    0xCA68 == code || // Lo       HANGUL SYLLABLE JJE
+    0xCA84 == code || // Lo       HANGUL SYLLABLE JJYEO
+    0xCAA0 == code || // Lo       HANGUL SYLLABLE JJYE
+    0xCABC == code || // Lo       HANGUL SYLLABLE JJO
+    0xCAD8 == code || // Lo       HANGUL SYLLABLE JJWA
+    0xCAF4 == code || // Lo       HANGUL SYLLABLE JJWAE
+    0xCB10 == code || // Lo       HANGUL SYLLABLE JJOE
+    0xCB2C == code || // Lo       HANGUL SYLLABLE JJYO
+    0xCB48 == code || // Lo       HANGUL SYLLABLE JJU
+    0xCB64 == code || // Lo       HANGUL SYLLABLE JJWEO
+    0xCB80 == code || // Lo       HANGUL SYLLABLE JJWE
+    0xCB9C == code || // Lo       HANGUL SYLLABLE JJWI
+    0xCBB8 == code || // Lo       HANGUL SYLLABLE JJYU
+    0xCBD4 == code || // Lo       HANGUL SYLLABLE JJEU
+    0xCBF0 == code || // Lo       HANGUL SYLLABLE JJYI
+    0xCC0C == code || // Lo       HANGUL SYLLABLE JJI
+    0xCC28 == code || // Lo       HANGUL SYLLABLE CA
+    0xCC44 == code || // Lo       HANGUL SYLLABLE CAE
+    0xCC60 == code || // Lo       HANGUL SYLLABLE CYA
+    0xCC7C == code || // Lo       HANGUL SYLLABLE CYAE
+    0xCC98 == code || // Lo       HANGUL SYLLABLE CEO
+    0xCCB4 == code || // Lo       HANGUL SYLLABLE CE
+    0xCCD0 == code || // Lo       HANGUL SYLLABLE CYEO
+    0xCCEC == code || // Lo       HANGUL SYLLABLE CYE
+    0xCD08 == code || // Lo       HANGUL SYLLABLE CO
+    0xCD24 == code || // Lo       HANGUL SYLLABLE CWA
+    0xCD40 == code || // Lo       HANGUL SYLLABLE CWAE
+    0xCD5C == code || // Lo       HANGUL SYLLABLE COE
+    0xCD78 == code || // Lo       HANGUL SYLLABLE CYO
+    0xCD94 == code || // Lo       HANGUL SYLLABLE CU
+    0xCDB0 == code || // Lo       HANGUL SYLLABLE CWEO
+    0xCDCC == code || // Lo       HANGUL SYLLABLE CWE
+    0xCDE8 == code || // Lo       HANGUL SYLLABLE CWI
+    0xCE04 == code || // Lo       HANGUL SYLLABLE CYU
+    0xCE20 == code || // Lo       HANGUL SYLLABLE CEU
+    0xCE3C == code || // Lo       HANGUL SYLLABLE CYI
+    0xCE58 == code || // Lo       HANGUL SYLLABLE CI
+    0xCE74 == code || // Lo       HANGUL SYLLABLE KA
+    0xCE90 == code || // Lo       HANGUL SYLLABLE KAE
+    0xCEAC == code || // Lo       HANGUL SYLLABLE KYA
+    0xCEC8 == code || // Lo       HANGUL SYLLABLE KYAE
+    0xCEE4 == code || // Lo       HANGUL SYLLABLE KEO
+    0xCF00 == code || // Lo       HANGUL SYLLABLE KE
+    0xCF1C == code || // Lo       HANGUL SYLLABLE KYEO
+    0xCF38 == code || // Lo       HANGUL SYLLABLE KYE
+    0xCF54 == code || // Lo       HANGUL SYLLABLE KO
+    0xCF70 == code || // Lo       HANGUL SYLLABLE KWA
+    0xCF8C == code || // Lo       HANGUL SYLLABLE KWAE
+    0xCFA8 == code || // Lo       HANGUL SYLLABLE KOE
+    0xCFC4 == code || // Lo       HANGUL SYLLABLE KYO
+    0xCFE0 == code || // Lo       HANGUL SYLLABLE KU
+    0xCFFC == code || // Lo       HANGUL SYLLABLE KWEO
+    0xD018 == code || // Lo       HANGUL SYLLABLE KWE
+    0xD034 == code || // Lo       HANGUL SYLLABLE KWI
+    0xD050 == code || // Lo       HANGUL SYLLABLE KYU
+    0xD06C == code || // Lo       HANGUL SYLLABLE KEU
+    0xD088 == code || // Lo       HANGUL SYLLABLE KYI
+    0xD0A4 == code || // Lo       HANGUL SYLLABLE KI
+    0xD0C0 == code || // Lo       HANGUL SYLLABLE TA
+    0xD0DC == code || // Lo       HANGUL SYLLABLE TAE
+    0xD0F8 == code || // Lo       HANGUL SYLLABLE TYA
+    0xD114 == code || // Lo       HANGUL SYLLABLE TYAE
+    0xD130 == code || // Lo       HANGUL SYLLABLE TEO
+    0xD14C == code || // Lo       HANGUL SYLLABLE TE
+    0xD168 == code || // Lo       HANGUL SYLLABLE TYEO
+    0xD184 == code || // Lo       HANGUL SYLLABLE TYE
+    0xD1A0 == code || // Lo       HANGUL SYLLABLE TO
+    0xD1BC == code || // Lo       HANGUL SYLLABLE TWA
+    0xD1D8 == code || // Lo       HANGUL SYLLABLE TWAE
+    0xD1F4 == code || // Lo       HANGUL SYLLABLE TOE
+    0xD210 == code || // Lo       HANGUL SYLLABLE TYO
+    0xD22C == code || // Lo       HANGUL SYLLABLE TU
+    0xD248 == code || // Lo       HANGUL SYLLABLE TWEO
+    0xD264 == code || // Lo       HANGUL SYLLABLE TWE
+    0xD280 == code || // Lo       HANGUL SYLLABLE TWI
+    0xD29C == code || // Lo       HANGUL SYLLABLE TYU
+    0xD2B8 == code || // Lo       HANGUL SYLLABLE TEU
+    0xD2D4 == code || // Lo       HANGUL SYLLABLE TYI
+    0xD2F0 == code || // Lo       HANGUL SYLLABLE TI
+    0xD30C == code || // Lo       HANGUL SYLLABLE PA
+    0xD328 == code || // Lo       HANGUL SYLLABLE PAE
+    0xD344 == code || // Lo       HANGUL SYLLABLE PYA
+    0xD360 == code || // Lo       HANGUL SYLLABLE PYAE
+    0xD37C == code || // Lo       HANGUL SYLLABLE PEO
+    0xD398 == code || // Lo       HANGUL SYLLABLE PE
+    0xD3B4 == code || // Lo       HANGUL SYLLABLE PYEO
+    0xD3D0 == code || // Lo       HANGUL SYLLABLE PYE
+    0xD3EC == code || // Lo       HANGUL SYLLABLE PO
+    0xD408 == code || // Lo       HANGUL SYLLABLE PWA
+    0xD424 == code || // Lo       HANGUL SYLLABLE PWAE
+    0xD440 == code || // Lo       HANGUL SYLLABLE POE
+    0xD45C == code || // Lo       HANGUL SYLLABLE PYO
+    0xD478 == code || // Lo       HANGUL SYLLABLE PU
+    0xD494 == code || // Lo       HANGUL SYLLABLE PWEO
+    0xD4B0 == code || // Lo       HANGUL SYLLABLE PWE
+    0xD4CC == code || // Lo       HANGUL SYLLABLE PWI
+    0xD4E8 == code || // Lo       HANGUL SYLLABLE PYU
+    0xD504 == code || // Lo       HANGUL SYLLABLE PEU
+    0xD520 == code || // Lo       HANGUL SYLLABLE PYI
+    0xD53C == code || // Lo       HANGUL SYLLABLE PI
+    0xD558 == code || // Lo       HANGUL SYLLABLE HA
+    0xD574 == code || // Lo       HANGUL SYLLABLE HAE
+    0xD590 == code || // Lo       HANGUL SYLLABLE HYA
+    0xD5AC == code || // Lo       HANGUL SYLLABLE HYAE
+    0xD5C8 == code || // Lo       HANGUL SYLLABLE HEO
+    0xD5E4 == code || // Lo       HANGUL SYLLABLE HE
+    0xD600 == code || // Lo       HANGUL SYLLABLE HYEO
+    0xD61C == code || // Lo       HANGUL SYLLABLE HYE
+    0xD638 == code || // Lo       HANGUL SYLLABLE HO
+    0xD654 == code || // Lo       HANGUL SYLLABLE HWA
+    0xD670 == code || // Lo       HANGUL SYLLABLE HWAE
+    0xD68C == code || // Lo       HANGUL SYLLABLE HOE
+    0xD6A8 == code || // Lo       HANGUL SYLLABLE HYO
+    0xD6C4 == code || // Lo       HANGUL SYLLABLE HU
+    0xD6E0 == code || // Lo       HANGUL SYLLABLE HWEO
+    0xD6FC == code || // Lo       HANGUL SYLLABLE HWE
+    0xD718 == code || // Lo       HANGUL SYLLABLE HWI
+    0xD734 == code || // Lo       HANGUL SYLLABLE HYU
+    0xD750 == code || // Lo       HANGUL SYLLABLE HEU
+    0xD76C == code || // Lo       HANGUL SYLLABLE HYI
+    0xD788 == code // Lo       HANGUL SYLLABLE HI
+    ) {
+      return LV;
+    }
+
+    if (0xAC01 <= code && code <= 0xAC1B || // Lo  [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+    0xAC1D <= code && code <= 0xAC37 || // Lo  [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+    0xAC39 <= code && code <= 0xAC53 || // Lo  [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+    0xAC55 <= code && code <= 0xAC6F || // Lo  [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+    0xAC71 <= code && code <= 0xAC8B || // Lo  [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+    0xAC8D <= code && code <= 0xACA7 || // Lo  [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+    0xACA9 <= code && code <= 0xACC3 || // Lo  [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+    0xACC5 <= code && code <= 0xACDF || // Lo  [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+    0xACE1 <= code && code <= 0xACFB || // Lo  [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+    0xACFD <= code && code <= 0xAD17 || // Lo  [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+    0xAD19 <= code && code <= 0xAD33 || // Lo  [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+    0xAD35 <= code && code <= 0xAD4F || // Lo  [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+    0xAD51 <= code && code <= 0xAD6B || // Lo  [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+    0xAD6D <= code && code <= 0xAD87 || // Lo  [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+    0xAD89 <= code && code <= 0xADA3 || // Lo  [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+    0xADA5 <= code && code <= 0xADBF || // Lo  [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+    0xADC1 <= code && code <= 0xADDB || // Lo  [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+    0xADDD <= code && code <= 0xADF7 || // Lo  [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+    0xADF9 <= code && code <= 0xAE13 || // Lo  [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+    0xAE15 <= code && code <= 0xAE2F || // Lo  [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+    0xAE31 <= code && code <= 0xAE4B || // Lo  [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+    0xAE4D <= code && code <= 0xAE67 || // Lo  [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+    0xAE69 <= code && code <= 0xAE83 || // Lo  [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+    0xAE85 <= code && code <= 0xAE9F || // Lo  [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+    0xAEA1 <= code && code <= 0xAEBB || // Lo  [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+    0xAEBD <= code && code <= 0xAED7 || // Lo  [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+    0xAED9 <= code && code <= 0xAEF3 || // Lo  [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+    0xAEF5 <= code && code <= 0xAF0F || // Lo  [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+    0xAF11 <= code && code <= 0xAF2B || // Lo  [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+    0xAF2D <= code && code <= 0xAF47 || // Lo  [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+    0xAF49 <= code && code <= 0xAF63 || // Lo  [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+    0xAF65 <= code && code <= 0xAF7F || // Lo  [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+    0xAF81 <= code && code <= 0xAF9B || // Lo  [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+    0xAF9D <= code && code <= 0xAFB7 || // Lo  [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+    0xAFB9 <= code && code <= 0xAFD3 || // Lo  [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+    0xAFD5 <= code && code <= 0xAFEF || // Lo  [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+    0xAFF1 <= code && code <= 0xB00B || // Lo  [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+    0xB00D <= code && code <= 0xB027 || // Lo  [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+    0xB029 <= code && code <= 0xB043 || // Lo  [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+    0xB045 <= code && code <= 0xB05F || // Lo  [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+    0xB061 <= code && code <= 0xB07B || // Lo  [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+    0xB07D <= code && code <= 0xB097 || // Lo  [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+    0xB099 <= code && code <= 0xB0B3 || // Lo  [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+    0xB0B5 <= code && code <= 0xB0CF || // Lo  [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+    0xB0D1 <= code && code <= 0xB0EB || // Lo  [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+    0xB0ED <= code && code <= 0xB107 || // Lo  [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+    0xB109 <= code && code <= 0xB123 || // Lo  [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+    0xB125 <= code && code <= 0xB13F || // Lo  [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+    0xB141 <= code && code <= 0xB15B || // Lo  [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+    0xB15D <= code && code <= 0xB177 || // Lo  [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+    0xB179 <= code && code <= 0xB193 || // Lo  [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+    0xB195 <= code && code <= 0xB1AF || // Lo  [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+    0xB1B1 <= code && code <= 0xB1CB || // Lo  [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+    0xB1CD <= code && code <= 0xB1E7 || // Lo  [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+    0xB1E9 <= code && code <= 0xB203 || // Lo  [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+    0xB205 <= code && code <= 0xB21F || // Lo  [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+    0xB221 <= code && code <= 0xB23B || // Lo  [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+    0xB23D <= code && code <= 0xB257 || // Lo  [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+    0xB259 <= code && code <= 0xB273 || // Lo  [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+    0xB275 <= code && code <= 0xB28F || // Lo  [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+    0xB291 <= code && code <= 0xB2AB || // Lo  [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+    0xB2AD <= code && code <= 0xB2C7 || // Lo  [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+    0xB2C9 <= code && code <= 0xB2E3 || // Lo  [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+    0xB2E5 <= code && code <= 0xB2FF || // Lo  [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+    0xB301 <= code && code <= 0xB31B || // Lo  [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+    0xB31D <= code && code <= 0xB337 || // Lo  [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+    0xB339 <= code && code <= 0xB353 || // Lo  [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+    0xB355 <= code && code <= 0xB36F || // Lo  [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+    0xB371 <= code && code <= 0xB38B || // Lo  [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+    0xB38D <= code && code <= 0xB3A7 || // Lo  [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+    0xB3A9 <= code && code <= 0xB3C3 || // Lo  [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+    0xB3C5 <= code && code <= 0xB3DF || // Lo  [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+    0xB3E1 <= code && code <= 0xB3FB || // Lo  [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+    0xB3FD <= code && code <= 0xB417 || // Lo  [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+    0xB419 <= code && code <= 0xB433 || // Lo  [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+    0xB435 <= code && code <= 0xB44F || // Lo  [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+    0xB451 <= code && code <= 0xB46B || // Lo  [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+    0xB46D <= code && code <= 0xB487 || // Lo  [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+    0xB489 <= code && code <= 0xB4A3 || // Lo  [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+    0xB4A5 <= code && code <= 0xB4BF || // Lo  [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+    0xB4C1 <= code && code <= 0xB4DB || // Lo  [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+    0xB4DD <= code && code <= 0xB4F7 || // Lo  [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+    0xB4F9 <= code && code <= 0xB513 || // Lo  [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+    0xB515 <= code && code <= 0xB52F || // Lo  [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+    0xB531 <= code && code <= 0xB54B || // Lo  [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+    0xB54D <= code && code <= 0xB567 || // Lo  [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+    0xB569 <= code && code <= 0xB583 || // Lo  [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+    0xB585 <= code && code <= 0xB59F || // Lo  [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+    0xB5A1 <= code && code <= 0xB5BB || // Lo  [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+    0xB5BD <= code && code <= 0xB5D7 || // Lo  [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+    0xB5D9 <= code && code <= 0xB5F3 || // Lo  [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+    0xB5F5 <= code && code <= 0xB60F || // Lo  [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+    0xB611 <= code && code <= 0xB62B || // Lo  [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+    0xB62D <= code && code <= 0xB647 || // Lo  [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+    0xB649 <= code && code <= 0xB663 || // Lo  [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+    0xB665 <= code && code <= 0xB67F || // Lo  [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+    0xB681 <= code && code <= 0xB69B || // Lo  [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+    0xB69D <= code && code <= 0xB6B7 || // Lo  [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+    0xB6B9 <= code && code <= 0xB6D3 || // Lo  [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+    0xB6D5 <= code && code <= 0xB6EF || // Lo  [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+    0xB6F1 <= code && code <= 0xB70B || // Lo  [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+    0xB70D <= code && code <= 0xB727 || // Lo  [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+    0xB729 <= code && code <= 0xB743 || // Lo  [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+    0xB745 <= code && code <= 0xB75F || // Lo  [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+    0xB761 <= code && code <= 0xB77B || // Lo  [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+    0xB77D <= code && code <= 0xB797 || // Lo  [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+    0xB799 <= code && code <= 0xB7B3 || // Lo  [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+    0xB7B5 <= code && code <= 0xB7CF || // Lo  [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+    0xB7D1 <= code && code <= 0xB7EB || // Lo  [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+    0xB7ED <= code && code <= 0xB807 || // Lo  [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+    0xB809 <= code && code <= 0xB823 || // Lo  [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+    0xB825 <= code && code <= 0xB83F || // Lo  [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+    0xB841 <= code && code <= 0xB85B || // Lo  [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+    0xB85D <= code && code <= 0xB877 || // Lo  [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+    0xB879 <= code && code <= 0xB893 || // Lo  [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+    0xB895 <= code && code <= 0xB8AF || // Lo  [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+    0xB8B1 <= code && code <= 0xB8CB || // Lo  [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+    0xB8CD <= code && code <= 0xB8E7 || // Lo  [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+    0xB8E9 <= code && code <= 0xB903 || // Lo  [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+    0xB905 <= code && code <= 0xB91F || // Lo  [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+    0xB921 <= code && code <= 0xB93B || // Lo  [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+    0xB93D <= code && code <= 0xB957 || // Lo  [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+    0xB959 <= code && code <= 0xB973 || // Lo  [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+    0xB975 <= code && code <= 0xB98F || // Lo  [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+    0xB991 <= code && code <= 0xB9AB || // Lo  [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+    0xB9AD <= code && code <= 0xB9C7 || // Lo  [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+    0xB9C9 <= code && code <= 0xB9E3 || // Lo  [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+    0xB9E5 <= code && code <= 0xB9FF || // Lo  [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+    0xBA01 <= code && code <= 0xBA1B || // Lo  [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+    0xBA1D <= code && code <= 0xBA37 || // Lo  [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+    0xBA39 <= code && code <= 0xBA53 || // Lo  [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+    0xBA55 <= code && code <= 0xBA6F || // Lo  [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+    0xBA71 <= code && code <= 0xBA8B || // Lo  [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+    0xBA8D <= code && code <= 0xBAA7 || // Lo  [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+    0xBAA9 <= code && code <= 0xBAC3 || // Lo  [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+    0xBAC5 <= code && code <= 0xBADF || // Lo  [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+    0xBAE1 <= code && code <= 0xBAFB || // Lo  [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+    0xBAFD <= code && code <= 0xBB17 || // Lo  [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+    0xBB19 <= code && code <= 0xBB33 || // Lo  [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+    0xBB35 <= code && code <= 0xBB4F || // Lo  [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+    0xBB51 <= code && code <= 0xBB6B || // Lo  [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+    0xBB6D <= code && code <= 0xBB87 || // Lo  [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+    0xBB89 <= code && code <= 0xBBA3 || // Lo  [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+    0xBBA5 <= code && code <= 0xBBBF || // Lo  [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+    0xBBC1 <= code && code <= 0xBBDB || // Lo  [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+    0xBBDD <= code && code <= 0xBBF7 || // Lo  [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+    0xBBF9 <= code && code <= 0xBC13 || // Lo  [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+    0xBC15 <= code && code <= 0xBC2F || // Lo  [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+    0xBC31 <= code && code <= 0xBC4B || // Lo  [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+    0xBC4D <= code && code <= 0xBC67 || // Lo  [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+    0xBC69 <= code && code <= 0xBC83 || // Lo  [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+    0xBC85 <= code && code <= 0xBC9F || // Lo  [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+    0xBCA1 <= code && code <= 0xBCBB || // Lo  [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+    0xBCBD <= code && code <= 0xBCD7 || // Lo  [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+    0xBCD9 <= code && code <= 0xBCF3 || // Lo  [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+    0xBCF5 <= code && code <= 0xBD0F || // Lo  [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+    0xBD11 <= code && code <= 0xBD2B || // Lo  [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+    0xBD2D <= code && code <= 0xBD47 || // Lo  [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+    0xBD49 <= code && code <= 0xBD63 || // Lo  [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+    0xBD65 <= code && code <= 0xBD7F || // Lo  [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+    0xBD81 <= code && code <= 0xBD9B || // Lo  [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+    0xBD9D <= code && code <= 0xBDB7 || // Lo  [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+    0xBDB9 <= code && code <= 0xBDD3 || // Lo  [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+    0xBDD5 <= code && code <= 0xBDEF || // Lo  [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+    0xBDF1 <= code && code <= 0xBE0B || // Lo  [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+    0xBE0D <= code && code <= 0xBE27 || // Lo  [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+    0xBE29 <= code && code <= 0xBE43 || // Lo  [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+    0xBE45 <= code && code <= 0xBE5F || // Lo  [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+    0xBE61 <= code && code <= 0xBE7B || // Lo  [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+    0xBE7D <= code && code <= 0xBE97 || // Lo  [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+    0xBE99 <= code && code <= 0xBEB3 || // Lo  [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+    0xBEB5 <= code && code <= 0xBECF || // Lo  [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+    0xBED1 <= code && code <= 0xBEEB || // Lo  [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+    0xBEED <= code && code <= 0xBF07 || // Lo  [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+    0xBF09 <= code && code <= 0xBF23 || // Lo  [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+    0xBF25 <= code && code <= 0xBF3F || // Lo  [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+    0xBF41 <= code && code <= 0xBF5B || // Lo  [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+    0xBF5D <= code && code <= 0xBF77 || // Lo  [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+    0xBF79 <= code && code <= 0xBF93 || // Lo  [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+    0xBF95 <= code && code <= 0xBFAF || // Lo  [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+    0xBFB1 <= code && code <= 0xBFCB || // Lo  [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+    0xBFCD <= code && code <= 0xBFE7 || // Lo  [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+    0xBFE9 <= code && code <= 0xC003 || // Lo  [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+    0xC005 <= code && code <= 0xC01F || // Lo  [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+    0xC021 <= code && code <= 0xC03B || // Lo  [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+    0xC03D <= code && code <= 0xC057 || // Lo  [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+    0xC059 <= code && code <= 0xC073 || // Lo  [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+    0xC075 <= code && code <= 0xC08F || // Lo  [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+    0xC091 <= code && code <= 0xC0AB || // Lo  [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+    0xC0AD <= code && code <= 0xC0C7 || // Lo  [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+    0xC0C9 <= code && code <= 0xC0E3 || // Lo  [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+    0xC0E5 <= code && code <= 0xC0FF || // Lo  [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+    0xC101 <= code && code <= 0xC11B || // Lo  [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+    0xC11D <= code && code <= 0xC137 || // Lo  [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+    0xC139 <= code && code <= 0xC153 || // Lo  [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+    0xC155 <= code && code <= 0xC16F || // Lo  [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+    0xC171 <= code && code <= 0xC18B || // Lo  [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+    0xC18D <= code && code <= 0xC1A7 || // Lo  [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+    0xC1A9 <= code && code <= 0xC1C3 || // Lo  [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+    0xC1C5 <= code && code <= 0xC1DF || // Lo  [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+    0xC1E1 <= code && code <= 0xC1FB || // Lo  [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+    0xC1FD <= code && code <= 0xC217 || // Lo  [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+    0xC219 <= code && code <= 0xC233 || // Lo  [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+    0xC235 <= code && code <= 0xC24F || // Lo  [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+    0xC251 <= code && code <= 0xC26B || // Lo  [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+    0xC26D <= code && code <= 0xC287 || // Lo  [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+    0xC289 <= code && code <= 0xC2A3 || // Lo  [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+    0xC2A5 <= code && code <= 0xC2BF || // Lo  [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+    0xC2C1 <= code && code <= 0xC2DB || // Lo  [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+    0xC2DD <= code && code <= 0xC2F7 || // Lo  [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+    0xC2F9 <= code && code <= 0xC313 || // Lo  [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+    0xC315 <= code && code <= 0xC32F || // Lo  [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+    0xC331 <= code && code <= 0xC34B || // Lo  [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+    0xC34D <= code && code <= 0xC367 || // Lo  [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+    0xC369 <= code && code <= 0xC383 || // Lo  [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+    0xC385 <= code && code <= 0xC39F || // Lo  [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+    0xC3A1 <= code && code <= 0xC3BB || // Lo  [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+    0xC3BD <= code && code <= 0xC3D7 || // Lo  [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+    0xC3D9 <= code && code <= 0xC3F3 || // Lo  [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+    0xC3F5 <= code && code <= 0xC40F || // Lo  [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+    0xC411 <= code && code <= 0xC42B || // Lo  [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+    0xC42D <= code && code <= 0xC447 || // Lo  [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+    0xC449 <= code && code <= 0xC463 || // Lo  [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+    0xC465 <= code && code <= 0xC47F || // Lo  [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+    0xC481 <= code && code <= 0xC49B || // Lo  [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+    0xC49D <= code && code <= 0xC4B7 || // Lo  [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+    0xC4B9 <= code && code <= 0xC4D3 || // Lo  [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+    0xC4D5 <= code && code <= 0xC4EF || // Lo  [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+    0xC4F1 <= code && code <= 0xC50B || // Lo  [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+    0xC50D <= code && code <= 0xC527 || // Lo  [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+    0xC529 <= code && code <= 0xC543 || // Lo  [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+    0xC545 <= code && code <= 0xC55F || // Lo  [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+    0xC561 <= code && code <= 0xC57B || // Lo  [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+    0xC57D <= code && code <= 0xC597 || // Lo  [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+    0xC599 <= code && code <= 0xC5B3 || // Lo  [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+    0xC5B5 <= code && code <= 0xC5CF || // Lo  [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+    0xC5D1 <= code && code <= 0xC5EB || // Lo  [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+    0xC5ED <= code && code <= 0xC607 || // Lo  [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+    0xC609 <= code && code <= 0xC623 || // Lo  [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+    0xC625 <= code && code <= 0xC63F || // Lo  [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+    0xC641 <= code && code <= 0xC65B || // Lo  [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+    0xC65D <= code && code <= 0xC677 || // Lo  [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+    0xC679 <= code && code <= 0xC693 || // Lo  [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+    0xC695 <= code && code <= 0xC6AF || // Lo  [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+    0xC6B1 <= code && code <= 0xC6CB || // Lo  [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+    0xC6CD <= code && code <= 0xC6E7 || // Lo  [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+    0xC6E9 <= code && code <= 0xC703 || // Lo  [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+    0xC705 <= code && code <= 0xC71F || // Lo  [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+    0xC721 <= code && code <= 0xC73B || // Lo  [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+    0xC73D <= code && code <= 0xC757 || // Lo  [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+    0xC759 <= code && code <= 0xC773 || // Lo  [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+    0xC775 <= code && code <= 0xC78F || // Lo  [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+    0xC791 <= code && code <= 0xC7AB || // Lo  [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+    0xC7AD <= code && code <= 0xC7C7 || // Lo  [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+    0xC7C9 <= code && code <= 0xC7E3 || // Lo  [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+    0xC7E5 <= code && code <= 0xC7FF || // Lo  [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+    0xC801 <= code && code <= 0xC81B || // Lo  [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+    0xC81D <= code && code <= 0xC837 || // Lo  [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+    0xC839 <= code && code <= 0xC853 || // Lo  [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+    0xC855 <= code && code <= 0xC86F || // Lo  [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+    0xC871 <= code && code <= 0xC88B || // Lo  [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+    0xC88D <= code && code <= 0xC8A7 || // Lo  [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+    0xC8A9 <= code && code <= 0xC8C3 || // Lo  [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+    0xC8C5 <= code && code <= 0xC8DF || // Lo  [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+    0xC8E1 <= code && code <= 0xC8FB || // Lo  [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+    0xC8FD <= code && code <= 0xC917 || // Lo  [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+    0xC919 <= code && code <= 0xC933 || // Lo  [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+    0xC935 <= code && code <= 0xC94F || // Lo  [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+    0xC951 <= code && code <= 0xC96B || // Lo  [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+    0xC96D <= code && code <= 0xC987 || // Lo  [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+    0xC989 <= code && code <= 0xC9A3 || // Lo  [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+    0xC9A5 <= code && code <= 0xC9BF || // Lo  [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+    0xC9C1 <= code && code <= 0xC9DB || // Lo  [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+    0xC9DD <= code && code <= 0xC9F7 || // Lo  [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+    0xC9F9 <= code && code <= 0xCA13 || // Lo  [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+    0xCA15 <= code && code <= 0xCA2F || // Lo  [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+    0xCA31 <= code && code <= 0xCA4B || // Lo  [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+    0xCA4D <= code && code <= 0xCA67 || // Lo  [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+    0xCA69 <= code && code <= 0xCA83 || // Lo  [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+    0xCA85 <= code && code <= 0xCA9F || // Lo  [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+    0xCAA1 <= code && code <= 0xCABB || // Lo  [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+    0xCABD <= code && code <= 0xCAD7 || // Lo  [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+    0xCAD9 <= code && code <= 0xCAF3 || // Lo  [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+    0xCAF5 <= code && code <= 0xCB0F || // Lo  [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+    0xCB11 <= code && code <= 0xCB2B || // Lo  [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+    0xCB2D <= code && code <= 0xCB47 || // Lo  [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+    0xCB49 <= code && code <= 0xCB63 || // Lo  [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+    0xCB65 <= code && code <= 0xCB7F || // Lo  [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+    0xCB81 <= code && code <= 0xCB9B || // Lo  [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+    0xCB9D <= code && code <= 0xCBB7 || // Lo  [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+    0xCBB9 <= code && code <= 0xCBD3 || // Lo  [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+    0xCBD5 <= code && code <= 0xCBEF || // Lo  [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+    0xCBF1 <= code && code <= 0xCC0B || // Lo  [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+    0xCC0D <= code && code <= 0xCC27 || // Lo  [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+    0xCC29 <= code && code <= 0xCC43 || // Lo  [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+    0xCC45 <= code && code <= 0xCC5F || // Lo  [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+    0xCC61 <= code && code <= 0xCC7B || // Lo  [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+    0xCC7D <= code && code <= 0xCC97 || // Lo  [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+    0xCC99 <= code && code <= 0xCCB3 || // Lo  [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+    0xCCB5 <= code && code <= 0xCCCF || // Lo  [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+    0xCCD1 <= code && code <= 0xCCEB || // Lo  [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+    0xCCED <= code && code <= 0xCD07 || // Lo  [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+    0xCD09 <= code && code <= 0xCD23 || // Lo  [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+    0xCD25 <= code && code <= 0xCD3F || // Lo  [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+    0xCD41 <= code && code <= 0xCD5B || // Lo  [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+    0xCD5D <= code && code <= 0xCD77 || // Lo  [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+    0xCD79 <= code && code <= 0xCD93 || // Lo  [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+    0xCD95 <= code && code <= 0xCDAF || // Lo  [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+    0xCDB1 <= code && code <= 0xCDCB || // Lo  [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+    0xCDCD <= code && code <= 0xCDE7 || // Lo  [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+    0xCDE9 <= code && code <= 0xCE03 || // Lo  [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+    0xCE05 <= code && code <= 0xCE1F || // Lo  [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+    0xCE21 <= code && code <= 0xCE3B || // Lo  [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+    0xCE3D <= code && code <= 0xCE57 || // Lo  [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+    0xCE59 <= code && code <= 0xCE73 || // Lo  [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+    0xCE75 <= code && code <= 0xCE8F || // Lo  [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+    0xCE91 <= code && code <= 0xCEAB || // Lo  [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+    0xCEAD <= code && code <= 0xCEC7 || // Lo  [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+    0xCEC9 <= code && code <= 0xCEE3 || // Lo  [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+    0xCEE5 <= code && code <= 0xCEFF || // Lo  [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+    0xCF01 <= code && code <= 0xCF1B || // Lo  [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+    0xCF1D <= code && code <= 0xCF37 || // Lo  [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+    0xCF39 <= code && code <= 0xCF53 || // Lo  [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+    0xCF55 <= code && code <= 0xCF6F || // Lo  [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+    0xCF71 <= code && code <= 0xCF8B || // Lo  [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+    0xCF8D <= code && code <= 0xCFA7 || // Lo  [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+    0xCFA9 <= code && code <= 0xCFC3 || // Lo  [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+    0xCFC5 <= code && code <= 0xCFDF || // Lo  [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+    0xCFE1 <= code && code <= 0xCFFB || // Lo  [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+    0xCFFD <= code && code <= 0xD017 || // Lo  [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+    0xD019 <= code && code <= 0xD033 || // Lo  [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+    0xD035 <= code && code <= 0xD04F || // Lo  [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+    0xD051 <= code && code <= 0xD06B || // Lo  [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+    0xD06D <= code && code <= 0xD087 || // Lo  [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+    0xD089 <= code && code <= 0xD0A3 || // Lo  [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+    0xD0A5 <= code && code <= 0xD0BF || // Lo  [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+    0xD0C1 <= code && code <= 0xD0DB || // Lo  [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+    0xD0DD <= code && code <= 0xD0F7 || // Lo  [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+    0xD0F9 <= code && code <= 0xD113 || // Lo  [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+    0xD115 <= code && code <= 0xD12F || // Lo  [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+    0xD131 <= code && code <= 0xD14B || // Lo  [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+    0xD14D <= code && code <= 0xD167 || // Lo  [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+    0xD169 <= code && code <= 0xD183 || // Lo  [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+    0xD185 <= code && code <= 0xD19F || // Lo  [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+    0xD1A1 <= code && code <= 0xD1BB || // Lo  [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+    0xD1BD <= code && code <= 0xD1D7 || // Lo  [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+    0xD1D9 <= code && code <= 0xD1F3 || // Lo  [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+    0xD1F5 <= code && code <= 0xD20F || // Lo  [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+    0xD211 <= code && code <= 0xD22B || // Lo  [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+    0xD22D <= code && code <= 0xD247 || // Lo  [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+    0xD249 <= code && code <= 0xD263 || // Lo  [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+    0xD265 <= code && code <= 0xD27F || // Lo  [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+    0xD281 <= code && code <= 0xD29B || // Lo  [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+    0xD29D <= code && code <= 0xD2B7 || // Lo  [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+    0xD2B9 <= code && code <= 0xD2D3 || // Lo  [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+    0xD2D5 <= code && code <= 0xD2EF || // Lo  [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+    0xD2F1 <= code && code <= 0xD30B || // Lo  [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+    0xD30D <= code && code <= 0xD327 || // Lo  [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+    0xD329 <= code && code <= 0xD343 || // Lo  [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+    0xD345 <= code && code <= 0xD35F || // Lo  [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+    0xD361 <= code && code <= 0xD37B || // Lo  [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+    0xD37D <= code && code <= 0xD397 || // Lo  [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+    0xD399 <= code && code <= 0xD3B3 || // Lo  [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+    0xD3B5 <= code && code <= 0xD3CF || // Lo  [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+    0xD3D1 <= code && code <= 0xD3EB || // Lo  [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+    0xD3ED <= code && code <= 0xD407 || // Lo  [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+    0xD409 <= code && code <= 0xD423 || // Lo  [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+    0xD425 <= code && code <= 0xD43F || // Lo  [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+    0xD441 <= code && code <= 0xD45B || // Lo  [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+    0xD45D <= code && code <= 0xD477 || // Lo  [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+    0xD479 <= code && code <= 0xD493 || // Lo  [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+    0xD495 <= code && code <= 0xD4AF || // Lo  [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+    0xD4B1 <= code && code <= 0xD4CB || // Lo  [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+    0xD4CD <= code && code <= 0xD4E7 || // Lo  [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+    0xD4E9 <= code && code <= 0xD503 || // Lo  [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+    0xD505 <= code && code <= 0xD51F || // Lo  [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+    0xD521 <= code && code <= 0xD53B || // Lo  [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+    0xD53D <= code && code <= 0xD557 || // Lo  [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+    0xD559 <= code && code <= 0xD573 || // Lo  [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+    0xD575 <= code && code <= 0xD58F || // Lo  [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+    0xD591 <= code && code <= 0xD5AB || // Lo  [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+    0xD5AD <= code && code <= 0xD5C7 || // Lo  [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+    0xD5C9 <= code && code <= 0xD5E3 || // Lo  [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+    0xD5E5 <= code && code <= 0xD5FF || // Lo  [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+    0xD601 <= code && code <= 0xD61B || // Lo  [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+    0xD61D <= code && code <= 0xD637 || // Lo  [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+    0xD639 <= code && code <= 0xD653 || // Lo  [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+    0xD655 <= code && code <= 0xD66F || // Lo  [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+    0xD671 <= code && code <= 0xD68B || // Lo  [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+    0xD68D <= code && code <= 0xD6A7 || // Lo  [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+    0xD6A9 <= code && code <= 0xD6C3 || // Lo  [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+    0xD6C5 <= code && code <= 0xD6DF || // Lo  [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+    0xD6E1 <= code && code <= 0xD6FB || // Lo  [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+    0xD6FD <= code && code <= 0xD717 || // Lo  [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+    0xD719 <= code && code <= 0xD733 || // Lo  [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+    0xD735 <= code && code <= 0xD74F || // Lo  [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+    0xD751 <= code && code <= 0xD76B || // Lo  [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+    0xD76D <= code && code <= 0xD787 || // Lo  [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+    0xD789 <= code && code <= 0xD7A3 // Lo  [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+    ) {
+      return LVT;
+    }
+
+    if (0x261D == code || // So       WHITE UP POINTING INDEX
+    0x26F9 == code || // So       PERSON WITH BALL
+    0x270A <= code && code <= 0x270D || // So   [4] RAISED FIST..WRITING HAND
+    0x1F385 == code || // So       FATHER CHRISTMAS
+    0x1F3C2 <= code && code <= 0x1F3C4 || // So   [3] SNOWBOARDER..SURFER
+    0x1F3C7 == code || // So       HORSE RACING
+    0x1F3CA <= code && code <= 0x1F3CC || // So   [3] SWIMMER..GOLFER
+    0x1F442 <= code && code <= 0x1F443 || // So   [2] EAR..NOSE
+    0x1F446 <= code && code <= 0x1F450 || // So  [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN
+    0x1F46E == code || // So       POLICE OFFICER
+    0x1F470 <= code && code <= 0x1F478 || // So   [9] BRIDE WITH VEIL..PRINCESS
+    0x1F47C == code || // So       BABY ANGEL
+    0x1F481 <= code && code <= 0x1F483 || // So   [3] INFORMATION DESK PERSON..DANCER
+    0x1F485 <= code && code <= 0x1F487 || // So   [3] NAIL POLISH..HAIRCUT
+    0x1F4AA == code || // So       FLEXED BICEPS
+    0x1F574 <= code && code <= 0x1F575 || // So   [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY
+    0x1F57A == code || // So       MAN DANCING
+    0x1F590 == code || // So       RAISED HAND WITH FINGERS SPLAYED
+    0x1F595 <= code && code <= 0x1F596 || // So   [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+    0x1F645 <= code && code <= 0x1F647 || // So   [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY
+    0x1F64B <= code && code <= 0x1F64F || // So   [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS
+    0x1F6A3 == code || // So       ROWBOAT
+    0x1F6B4 <= code && code <= 0x1F6B6 || // So   [3] BICYCLIST..PEDESTRIAN
+    0x1F6C0 == code || // So       BATH
+    0x1F6CC == code || // So       SLEEPING ACCOMMODATION
+    0x1F918 <= code && code <= 0x1F91C || // So   [5] SIGN OF THE HORNS..RIGHT-FACING FIST
+    0x1F91E <= code && code <= 0x1F91F || // So   [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN
+    0x1F926 == code || // So       FACE PALM
+    0x1F930 <= code && code <= 0x1F939 || // So  [10] PREGNANT WOMAN..JUGGLING
+    0x1F93D <= code && code <= 0x1F93E || // So   [2] WATER POLO..HANDBALL
+    0x1F9D1 <= code && code <= 0x1F9DD // So  [13] ADULT..ELF
+    ) {
+      return E_Base;
+    }
+
+    if (0x1F3FB <= code && code <= 0x1F3FF // Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+    ) {
+      return E_Modifier;
+    }
+
+    if (0x200D == code // Cf       ZERO WIDTH JOINER
+    ) {
+      return ZWJ;
+    }
+
+    if (0x2640 == code || // So       FEMALE SIGN
+    0x2642 == code || // So       MALE SIGN
+    0x2695 <= code && code <= 0x2696 || // So   [2] STAFF OF AESCULAPIUS..SCALES
+    0x2708 == code || // So       AIRPLANE
+    0x2764 == code || // So       HEAVY BLACK HEART
+    0x1F308 == code || // So       RAINBOW
+    0x1F33E == code || // So       EAR OF RICE
+    0x1F373 == code || // So       COOKING
+    0x1F393 == code || // So       GRADUATION CAP
+    0x1F3A4 == code || // So       MICROPHONE
+    0x1F3A8 == code || // So       ARTIST PALETTE
+    0x1F3EB == code || // So       SCHOOL
+    0x1F3ED == code || // So       FACTORY
+    0x1F48B == code || // So       KISS MARK
+    0x1F4BB <= code && code <= 0x1F4BC || // So   [2] PERSONAL COMPUTER..BRIEFCASE
+    0x1F527 == code || // So       WRENCH
+    0x1F52C == code || // So       MICROSCOPE
+    0x1F5E8 == code || // So       LEFT SPEECH BUBBLE
+    0x1F680 == code || // So       ROCKET
+    0x1F692 == code // So       FIRE ENGINE
+    ) {
+      return Glue_After_Zwj;
+    }
+
+    if (0x1F466 <= code && code <= 0x1F469 // So   [4] BOY..WOMAN
+    ) {
+      return E_Base_GAZ;
+    } //all unlisted characters have a grapheme break property of "Other"
+
+
+    return Other;
+  }
+
+  return this;
+}
+
+if ( true && module.exports) {
+  module.exports = GraphemeSplitter;
+}
+
+/***/ }),
+/* 699 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -75698,8 +82606,8 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548),
-      keywords = __webpack_require__(583); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618),
+      keywords = __webpack_require__(653); //------------------------------------------------------------------------------
 // Constants
 //------------------------------------------------------------------------------
 
@@ -75718,7 +82626,7 @@ const KEYS = keywords.concat(["as", "async", "await", "from", "get", "let", "of"
 
   for (let i = 1; i < KEYS.length; ++i) {
     if (KEYS[i] === KEYS[i - 1]) {
-      throw new Error("Duplication was found in the keyword list: ".concat(KEYS[i]));
+      throw new Error(`Duplication was found in the keyword list: ${KEYS[i]}`);
     }
   }
 })(); //------------------------------------------------------------------------------
@@ -75755,7 +82663,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before and after keywords",
+      description: "Enforce consistent spacing before and after keywords",
       recommended: false,
       url: "https://eslint.org/docs/rules/keyword-spacing"
     },
@@ -76161,6 +83069,7 @@ module.exports = {
       if (node.type === "ExportAllDeclaration" && node.exported) {
         const asToken = sourceCode.getTokenBefore(node.exported);
         checkSpacingBefore(asToken, PREV_TOKEN_M);
+        checkSpacingAfter(asToken, NEXT_TOKEN_M);
       }
 
       if (node.source) {
@@ -76169,6 +83078,35 @@ module.exports = {
         checkSpacingAfter(fromToken, NEXT_TOKEN_M);
       }
     }
+    /**
+     * Reports `as` keyword of a given node if usage of spacing around this
+     * keyword is invalid.
+     * @param {ASTNode} node An `ImportSpecifier` node to check.
+     * @returns {void}
+     */
+
+
+    function checkSpacingForImportSpecifier(node) {
+      if (node.imported.range[0] !== node.local.range[0]) {
+        const asToken = sourceCode.getTokenBefore(node.local);
+        checkSpacingBefore(asToken, PREV_TOKEN_M);
+      }
+    }
+    /**
+     * Reports `as` keyword of a given node if usage of spacing around this
+     * keyword is invalid.
+     * @param {ASTNode} node An `ExportSpecifier` node to check.
+     * @returns {void}
+     */
+
+
+    function checkSpacingForExportSpecifier(node) {
+      if (node.local.range[0] !== node.exported.range[0]) {
+        const asToken = sourceCode.getTokenBefore(node.exported);
+        checkSpacingBefore(asToken, PREV_TOKEN_M);
+        checkSpacingAfter(asToken, NEXT_TOKEN_M);
+      }
+    }
     /**
      * Reports `as` keyword of a given node if usage of spacing around this
      * keyword is invalid.
@@ -76266,6 +83204,8 @@ module.exports = {
       UnaryExpression: checkSpacingBeforeFirstToken,
       YieldExpression: checkSpacingBeforeFirstToken,
       // Others
+      ImportSpecifier: checkSpacingForImportSpecifier,
+      ExportSpecifier: checkSpacingForExportSpecifier,
       ImportNamespaceSpecifier: checkSpacingForImportNamespaceSpecifier,
       MethodDefinition: checkSpacingForProperty,
       PropertyDefinition: checkSpacingForProperty,
@@ -76284,7 +83224,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 611 */
+/* 700 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -76294,7 +83234,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -76305,7 +83245,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce position of line comments",
+      description: "Enforce position of line comments",
       recommended: false,
       url: "https://eslint.org/docs/rules/line-comment-position"
     },
@@ -76404,7 +83344,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 612 */
+/* 701 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -76416,7 +83356,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -76427,7 +83367,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent linebreak style",
+      description: "Enforce consistent linebreak style",
       recommended: false,
       url: "https://eslint.org/docs/rules/linebreak-style"
     },
@@ -76505,7 +83445,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 613 */
+/* 702 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -76517,7 +83457,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -76561,7 +83501,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require empty lines around comments",
+      description: "Require empty lines around comments",
       recommended: false,
       url: "https://eslint.org/docs/rules/lines-around-comment"
     },
@@ -76639,7 +83579,7 @@ module.exports = {
           comments = sourceCode.getAllComments(),
           commentLines = getCommentLineNums(comments),
           emptyLines = getEmptyLineNums(lines),
-          commentAndEmptyLines = commentLines.concat(emptyLines);
+          commentAndEmptyLines = new Set(commentLines.concat(emptyLines));
     /**
      * Returns whether or not comments are on lines starting with or ending with code
      * @param {token} token The comment token to check.
@@ -76735,10 +83675,18 @@ module.exports = {
       const parent = getParentNodeOfToken(token);
 
       if (parent && isParentNodeType(parent, nodeType)) {
-        const parentStartNodeOrToken = parent.type === "StaticBlock" ? sourceCode.getFirstToken(parent, {
-          skip: 1
-        }) // opening brace of the static block
-        : parent;
+        let parentStartNodeOrToken = parent;
+
+        if (parent.type === "StaticBlock") {
+          parentStartNodeOrToken = sourceCode.getFirstToken(parent, {
+            skip: 1
+          }); // opening brace of the static block
+        } else if (parent.type === "SwitchStatement") {
+          parentStartNodeOrToken = sourceCode.getTokenAfter(parent.discriminant, {
+            filter: astUtils.isOpeningBraceToken
+          }); // opening brace of the switch statement
+        }
+
         return token.loc.start.line - parentStartNodeOrToken.loc.start.line === 1;
       }
 
@@ -76764,7 +83712,7 @@ module.exports = {
 
 
     function isCommentAtBlockStart(token) {
-      return isCommentAtParentStart(token, "ClassBody") || isCommentAtParentStart(token, "BlockStatement") || isCommentAtParentStart(token, "StaticBlock") || isCommentAtParentStart(token, "SwitchCase");
+      return isCommentAtParentStart(token, "ClassBody") || isCommentAtParentStart(token, "BlockStatement") || isCommentAtParentStart(token, "StaticBlock") || isCommentAtParentStart(token, "SwitchCase") || isCommentAtParentStart(token, "SwitchStatement");
     }
     /**
      * Returns whether or not comments are at the block end or not.
@@ -76891,7 +83839,7 @@ module.exports = {
         includeComments: true
       }); // check for newline before
 
-      if (!exceptionStartAllowed && before && !commentAndEmptyLines.includes(prevLineNum) && !(astUtils.isCommentToken(previousTokenOrComment) && astUtils.isTokenOnSameLine(previousTokenOrComment, token))) {
+      if (!exceptionStartAllowed && before && !commentAndEmptyLines.has(prevLineNum) && !(astUtils.isCommentToken(previousTokenOrComment) && astUtils.isTokenOnSameLine(previousTokenOrComment, token))) {
         const lineStart = token.range[0] - token.loc.start.column;
         const range = [lineStart, lineStart];
         context.report({
@@ -76906,7 +83854,7 @@ module.exports = {
       } // check for newline after
 
 
-      if (!exceptionEndAllowed && after && !commentAndEmptyLines.includes(nextLineNum) && !(astUtils.isCommentToken(nextTokenOrComment) && astUtils.isTokenOnSameLine(token, nextTokenOrComment))) {
+      if (!exceptionEndAllowed && after && !commentAndEmptyLines.has(nextLineNum) && !(astUtils.isCommentToken(nextTokenOrComment) && astUtils.isTokenOnSameLine(token, nextTokenOrComment))) {
         context.report({
           node: token,
           messageId: "after",
@@ -76949,7 +83897,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 614 */
+/* 703 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -76960,7 +83908,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -76971,7 +83919,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow newlines around directives",
+      description: "Require or disallow newlines around directives",
       recommended: false,
       url: "https://eslint.org/docs/rules/lines-around-directive"
     },
@@ -77149,7 +84097,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 615 */
+/* 704 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -77161,7 +84109,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -77172,7 +84120,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow an empty line between class members",
+      description: "Require or disallow an empty line between class members",
       recommended: false,
       url: "https://eslint.org/docs/rules/lines-between-class-members"
     },
@@ -77342,7 +84290,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 616 */
+/* 705 */
 /***/ ((module) => {
 
 "use strict";
@@ -77363,7 +84311,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum number of classes per file",
+      description: "Enforce a maximum number of classes per file",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-classes-per-file"
     },
@@ -77428,7 +84376,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 617 */
+/* 706 */
 /***/ ((module) => {
 
 "use strict";
@@ -77446,7 +84394,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum depth that blocks can be nested",
+      description: "Enforce a maximum depth that blocks can be nested",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-depth"
     },
@@ -77586,7 +84534,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 618 */
+/* 707 */
 /***/ ((module) => {
 
 "use strict";
@@ -77652,7 +84600,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce a maximum line length",
+      description: "Enforce a maximum line length",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-len"
     },
@@ -77987,7 +84935,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 619 */
+/* 708 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -77999,7 +84947,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -78024,7 +84972,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum number of lines per file",
+      description: "Enforce a maximum number of lines per file",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-lines"
     },
@@ -78139,8 +85087,8 @@ module.exports = {
 
         if (skipComments) {
           const comments = sourceCode.getAllComments();
-          const commentLines = comments.flatMap(getLinesWithoutCode);
-          lines = lines.filter(l => !commentLines.includes(l.lineNumber));
+          const commentLines = new Set(comments.flatMap(getLinesWithoutCode));
+          lines = lines.filter(l => !commentLines.has(l.lineNumber));
         }
 
         if (lines.length > max) {
@@ -78171,7 +85119,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 620 */
+/* 709 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -78183,11 +85131,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   upperCaseFirst
-} = __webpack_require__(572); //------------------------------------------------------------------------------
+} = __webpack_require__(642); //------------------------------------------------------------------------------
 // Constants
 //------------------------------------------------------------------------------
 
@@ -78242,13 +85190,13 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum number of lines of code in a function",
+      description: "Enforce a maximum number of lines of code in a function",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-lines-per-function"
     },
     schema: [OPTIONS_OR_INTEGER_SCHEMA],
     messages: {
-      exceed: "{{name}} has exceeded the limit of lines allowed by {{linesExceed}}. Maximum allowed number of lines per function is {{maxLines}}."
+      exceed: "{{name}} has too many lines ({{lineCount}}). Maximum allowed is {{maxLines}}."
     }
   },
 
@@ -78341,28 +85289,18 @@ module.exports = {
       }
 
       let lineCount = 0;
-      let comments = 0;
-      let blankLines = 0;
 
       for (let i = node.loc.start.line - 1; i < node.loc.end.line; ++i) {
         const line = lines[i];
 
         if (skipComments) {
           if (commentLineNumbers.has(i + 1) && isFullLineComment(line, i + 1, commentLineNumbers.get(i + 1))) {
-            if (lineCount <= maxLines) {
-              comments++;
-            }
-
             continue;
           }
         }
 
         if (skipBlankLines) {
           if (line.match(/^\s*$/u)) {
-            if (lineCount <= maxLines) {
-              blankLines++;
-            }
-
             continue;
           }
         }
@@ -78372,21 +85310,12 @@ module.exports = {
 
       if (lineCount > maxLines) {
         const name = upperCaseFirst(astUtils.getFunctionNameWithKind(funcNode));
-        const linesExceed = lineCount - maxLines;
-        const loc = {
-          start: {
-            line: node.loc.start.line + maxLines + (comments + blankLines),
-            column: 0
-          },
-          end: node.loc.end
-        };
         context.report({
           node,
-          loc,
           messageId: "exceed",
           data: {
             name,
-            linesExceed,
+            lineCount,
             maxLines
           }
         });
@@ -78406,7 +85335,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 621 */
+/* 710 */
 /***/ ((module) => {
 
 "use strict";
@@ -78424,7 +85353,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum depth that callbacks can be nested",
+      description: "Enforce a maximum depth that callbacks can be nested",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-nested-callbacks"
     },
@@ -78520,7 +85449,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 622 */
+/* 711 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -78532,11 +85461,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   upperCaseFirst
-} = __webpack_require__(572); //------------------------------------------------------------------------------
+} = __webpack_require__(642); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -78547,7 +85476,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum number of parameters in function definitions",
+      description: "Enforce a maximum number of parameters in function definitions",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-params"
     },
@@ -78620,7 +85549,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 623 */
+/* 712 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -78632,11 +85561,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   upperCaseFirst
-} = __webpack_require__(572); //------------------------------------------------------------------------------
+} = __webpack_require__(642); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -78647,7 +85576,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a maximum number of statements allowed in function blocks",
+      description: "Enforce a maximum number of statements allowed in function blocks",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-statements"
     },
@@ -78744,7 +85673,7 @@ module.exports = {
       const count = functionStack.pop();
       /*
        * This rule does not apply to class static blocks, but we have to track them so
-       * that stataments in them do not count as statements in the enclosing function.
+       * that statements in them do not count as statements in the enclosing function.
        */
 
       if (node.type === "StaticBlock") {
@@ -78804,7 +85733,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 624 */
+/* 713 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -78816,7 +85745,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -78827,7 +85756,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce a maximum number of statements allowed per line",
+      description: "Enforce a maximum number of statements allowed per line",
       recommended: false,
       url: "https://eslint.org/docs/rules/max-statements-per-line"
     },
@@ -78996,7 +85925,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 625 */
+/* 714 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -79006,7 +85935,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -79017,7 +85946,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce a particular style for multiline comments",
+      description: "Enforce a particular style for multiline comments",
       recommended: false,
       url: "https://eslint.org/docs/rules/multiline-comment-style"
     },
@@ -79128,7 +86057,7 @@ module.exports = {
 
     function processBareBlockComment(comment) {
       const lines = comment.value.split(astUtils.LINEBREAK_MATCHER).map(line => line.replace(/^\s*$/u, ""));
-      const leadingWhitespace = "".concat(sourceCode.text.slice(comment.range[0] - comment.loc.start.column, comment.range[0]), "   ");
+      const leadingWhitespace = `${sourceCode.text.slice(comment.range[0] - comment.loc.start.column, comment.range[0])}   `;
       let offset = "";
       /*
        * Calculate the offset of the least indented line and use that as the basis for offsetting all the lines.
@@ -79156,11 +86085,11 @@ module.exports = {
         const [, lineOffset, lineContents] = match;
 
         if (lineOffset.length > leadingWhitespace.length) {
-          return "".concat(lineOffset.slice(leadingWhitespace.length - (offset.length + lineOffset.length))).concat(lineContents);
+          return `${lineOffset.slice(leadingWhitespace.length - (offset.length + lineOffset.length))}${lineContents}`;
         }
 
         if (lineOffset.length < leadingWhitespace.length) {
-          return "".concat(lineOffset.slice(leadingWhitespace.length)).concat(lineContents);
+          return `${lineOffset.slice(leadingWhitespace.length)}${lineContents}`;
         }
 
         return lineContents;
@@ -79206,7 +86135,7 @@ module.exports = {
 
     function convertToStarredBlock(firstComment, commentLinesList) {
       const initialOffset = getInitialOffset(firstComment);
-      return "/*\n".concat(commentLinesList.map(line => "".concat(initialOffset, " * ").concat(line)).join("\n"), "\n").concat(initialOffset, " */");
+      return `/*\n${commentLinesList.map(line => `${initialOffset} * ${line}`).join("\n")}\n${initialOffset} */`;
     }
     /**
      * Converts a comment into separate-line form
@@ -79217,7 +86146,7 @@ module.exports = {
 
 
     function convertToSeparateLines(firstComment, commentLinesList) {
-      return commentLinesList.map(line => "// ".concat(line)).join("\n".concat(getInitialOffset(firstComment)));
+      return commentLinesList.map(line => `// ${line}`).join(`\n${getInitialOffset(firstComment)}`);
     }
     /**
      * Converts a comment into bare-block form
@@ -79228,7 +86157,7 @@ module.exports = {
 
 
     function convertToBlock(firstComment, commentLinesList) {
-      return "/* ".concat(commentLinesList.join("\n".concat(getInitialOffset(firstComment), "   ")), " */");
+      return `/* ${commentLinesList.join(`\n${getInitialOffset(firstComment)}   `)} */`;
     }
     /**
      * Each method checks a group of comments to see if it's valid according to the given option.
@@ -79264,7 +86193,7 @@ module.exports = {
         } else {
           const lines = firstComment.value.split(astUtils.LINEBREAK_MATCHER);
           const expectedLeadingWhitespace = getInitialOffset(firstComment);
-          const expectedLinePrefix = "".concat(expectedLeadingWhitespace, " *");
+          const expectedLinePrefix = `${expectedLeadingWhitespace} *`;
 
           if (!/^\*?\s*$/u.test(lines[0])) {
             const start = firstComment.value.startsWith("*") ? firstComment.range[0] + 1 : firstComment.range[0];
@@ -79277,7 +86206,7 @@ module.exports = {
                 }
               },
               messageId: "startNewline",
-              fix: fixer => fixer.insertTextAfterRange([start, start + 2], "\n".concat(expectedLinePrefix))
+              fix: fixer => fixer.insertTextAfterRange([start, start + 2], `\n${expectedLinePrefix}`)
             });
           }
 
@@ -79291,7 +86220,7 @@ module.exports = {
                 end: firstComment.loc.end
               },
               messageId: "endNewline",
-              fix: fixer => fixer.replaceTextRange([firstComment.range[1] - 2, firstComment.range[1]], "\n".concat(expectedLinePrefix, "/"))
+              fix: fixer => fixer.replaceTextRange([firstComment.range[1] - 2, firstComment.range[1]], `\n${expectedLinePrefix}/`)
             });
           }
 
@@ -79336,7 +86265,7 @@ module.exports = {
 
                     const lineTextToAlignWith = sourceCode.lines[firstComment.loc.start.line - 1 + idx];
                     const [, prefix = "", initialOffset = ""] = lineTextToAlignWith.match(/^(\s*(?:\/?\*)?(\s*))/u) || [];
-                    offset = "".concat(commentTextPrefix.slice(prefix.length)).concat(initialOffset);
+                    offset = `${commentTextPrefix.slice(prefix.length)}${initialOffset}`;
 
                     if (/^\s*\//u.test(lineText) && offset.length === 0) {
                       offset += " ";
@@ -79345,7 +86274,7 @@ module.exports = {
                     break;
                   }
 
-                  return fixer.replaceTextRange([lineStartIndex, commentTextStartIndex], "".concat(expectedLinePrefix).concat(offset));
+                  return fixer.replaceTextRange([lineStartIndex, commentTextStartIndex], `${expectedLinePrefix}${offset}`);
                 }
 
               });
@@ -79462,7 +86391,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 626 */
+/* 715 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -79472,7 +86401,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -79483,7 +86412,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce newlines between operands of ternary expressions",
+      description: "Enforce newlines between operands of ternary expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/multiline-ternary"
     },
@@ -79617,7 +86546,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 627 */
+/* 716 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -79629,7 +86558,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -79645,10 +86574,12 @@ const CAPS_ALLOWED = ["Array", "Boolean", "Date", "Error", "Function", "Number",
  */
 
 function checkArray(obj, key, fallback) {
-  /* istanbul ignore if */
+  /* c8 ignore start */
   if (Object.prototype.hasOwnProperty.call(obj, key) && !Array.isArray(obj[key])) {
-    throw new TypeError("".concat(key, ", if provided, must be an Array"));
+    throw new TypeError(`${key}, if provided, must be an Array`);
   }
+  /* c8 ignore stop */
+
 
   return obj[key] || fallback;
 }
@@ -79690,7 +86621,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require constructor names to begin with a capital letter",
+      description: "Require constructor names to begin with a capital letter",
       recommended: false,
       url: "https://eslint.org/docs/rules/new-cap"
     },
@@ -79874,7 +86805,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 628 */
+/* 717 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -79886,7 +86817,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
@@ -79900,7 +86831,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce or disallow parentheses when invoking a constructor with no arguments",
+      description: "Enforce or disallow parentheses when invoking a constructor with no arguments",
       recommended: false,
       url: "https://eslint.org/docs/rules/new-parens"
     },
@@ -79962,7 +86893,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 629 */
+/* 718 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -79975,7 +86906,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -79986,7 +86917,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow an empty line after variable declarations",
+      description: "Require or disallow an empty line after variable declarations",
       recommended: false,
       url: "https://eslint.org/docs/rules/newline-after-var"
     },
@@ -80177,7 +87108,7 @@ module.exports = {
 
           fix(fixer) {
             const linesBetween = sourceCode.getText().slice(lastToken.range[1], nextToken.range[0]).split(astUtils.LINEBREAK_MATCHER);
-            return fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], "".concat(linesBetween.slice(0, -1).join(""), "\n").concat(linesBetween[linesBetween.length - 1]));
+            return fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], `${linesBetween.slice(0, -1).join("")}\n${linesBetween[linesBetween.length - 1]}`);
           }
 
         });
@@ -80215,7 +87146,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 630 */
+/* 719 */
 /***/ ((module) => {
 
 "use strict";
@@ -80234,7 +87165,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require an empty line before `return` statements",
+      description: "Require an empty line before `return` statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/newline-before-return"
     },
@@ -80262,7 +87193,7 @@ module.exports = {
 
     function isPrecededByTokens(node, testTokens) {
       const tokenBefore = sourceCode.getTokenBefore(node);
-      return testTokens.some(token => tokenBefore.value === token);
+      return testTokens.includes(tokenBefore.value);
     }
     /**
      * Checks whether node is the first node after statement or in block
@@ -80438,7 +87369,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 631 */
+/* 720 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -80449,7 +87380,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -80460,7 +87391,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require a newline after each call in a method chain",
+      description: "Require a newline after each call in a method chain",
       recommended: false,
       url: "https://eslint.org/docs/rules/newline-per-chained-call"
     },
@@ -80567,7 +87498,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 632 */
+/* 721 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -80583,7 +87514,7 @@ const {
   getStaticPropertyName: getPropertyName,
   getVariableByName,
   skipChainExpression
-} = __webpack_require__(548); //------------------------------------------------------------------------------
+} = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -80655,7 +87586,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `alert`, `confirm`, and `prompt`",
+      description: "Disallow the use of `alert`, `confirm`, and `prompt`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-alert"
     },
@@ -80704,7 +87635,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 633 */
+/* 722 */
 /***/ ((module) => {
 
 "use strict";
@@ -80722,7 +87653,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `Array` constructors",
+      description: "Disallow `Array` constructors",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-array-constructor"
     },
@@ -80757,7 +87688,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 634 */
+/* 723 */
 /***/ ((module) => {
 
 "use strict";
@@ -80775,7 +87706,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow using an async function as a Promise executor",
+      description: "Disallow using an async function as a Promise executor",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-async-promise-executor"
     },
@@ -80801,7 +87732,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 635 */
+/* 724 */
 /***/ ((module) => {
 
 "use strict";
@@ -80857,7 +87788,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow `await` inside of loops",
+      description: "Disallow `await` inside of loops",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-await-in-loop"
     },
@@ -80904,7 +87835,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 636 */
+/* 725 */
 /***/ ((module) => {
 
 "use strict";
@@ -80929,7 +87860,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow bitwise operators",
+      description: "Disallow bitwise operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-bitwise"
     },
@@ -80982,7 +87913,7 @@ module.exports = {
 
 
     function hasBitwiseOperator(node) {
-      return BITWISE_OPERATORS.indexOf(node.operator) !== -1;
+      return BITWISE_OPERATORS.includes(node.operator);
     }
     /**
      * Checks if exceptions were provided, e.g. `{ allow: ['~', '|'] }`.
@@ -80992,7 +87923,7 @@ module.exports = {
 
 
     function allowedOperator(node) {
-      return allowed.indexOf(node.operator) !== -1;
+      return allowed.includes(node.operator);
     }
     /**
      * Checks if the given bitwise operator is used for integer typecasting, i.e. "|0"
@@ -81027,7 +87958,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 637 */
+/* 726 */
 /***/ ((module) => {
 
 "use strict";
@@ -81048,7 +87979,7 @@ module.exports = {
     replacedBy: [],
     type: "problem",
     docs: {
-      description: "disallow use of the `Buffer()` constructor",
+      description: "Disallow use of the `Buffer()` constructor",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-buffer-constructor"
     },
@@ -81079,7 +88010,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 638 */
+/* 727 */
 /***/ ((module) => {
 
 "use strict";
@@ -81097,7 +88028,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `arguments.caller` or `arguments.callee`",
+      description: "Disallow the use of `arguments.caller` or `arguments.callee`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-caller"
     },
@@ -81130,7 +88061,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 639 */
+/* 728 */
 /***/ ((module) => {
 
 "use strict";
@@ -81148,7 +88079,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow lexical declarations in case clauses",
+      description: "Disallow lexical declarations in case clauses",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-case-declarations"
     },
@@ -81198,7 +88129,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 640 */
+/* 729 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -81211,7 +88142,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -81222,7 +88153,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `catch` clause parameters from shadowing variables in the outer scope",
+      description: "Disallow `catch` clause parameters from shadowing variables in the outer scope",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-catch-shadow"
     },
@@ -81281,7 +88212,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 641 */
+/* 730 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -81291,7 +88222,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -81302,7 +88233,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow reassigning class members",
+      description: "Disallow reassigning class members",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-class-assign"
     },
@@ -81349,7 +88280,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 642 */
+/* 731 */
 /***/ ((module) => {
 
 "use strict";
@@ -81367,7 +88298,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow comparing against -0",
+      description: "Disallow comparing against -0",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-compare-neg-zero"
     },
@@ -81414,7 +88345,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 643 */
+/* 732 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -81426,7 +88357,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -81447,7 +88378,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow assignment operators in conditional expressions",
+      description: "Disallow assignment operators in conditional expressions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-cond-assign"
     },
@@ -81557,7 +88488,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 644 */
+/* 733 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -81568,7 +88499,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -81592,7 +88523,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow arrow functions where they could be confused with comparisons",
+      description: "Disallow arrow functions where they could be confused with comparisons",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-confusing-arrow"
     },
@@ -81603,6 +88534,10 @@ module.exports = {
         allowParens: {
           type: "boolean",
           default: true
+        },
+        onlyOneSimpleParam: {
+          type: "boolean",
+          default: false
         }
       },
       additionalProperties: false
@@ -81615,6 +88550,7 @@ module.exports = {
   create(context) {
     const config = context.options[0] || {};
     const allowParens = config.allowParens || config.allowParens === void 0;
+    const onlyOneSimpleParam = config.onlyOneSimpleParam;
     const sourceCode = context.getSourceCode();
     /**
      * Reports if an arrow function contains an ambiguous conditional.
@@ -81625,14 +88561,14 @@ module.exports = {
     function checkArrowFunc(node) {
       const body = node.body;
 
-      if (isConditional(body) && !(allowParens && astUtils.isParenthesised(sourceCode, body))) {
+      if (isConditional(body) && !(allowParens && astUtils.isParenthesised(sourceCode, body)) && !(onlyOneSimpleParam && !(node.params.length === 1 && node.params[0].type === "Identifier"))) {
         context.report({
           node,
           messageId: "confusing",
 
           fix(fixer) {
             // if `allowParens` is not set to true don't bother wrapping in parens
-            return allowParens && fixer.replaceText(node.body, "(".concat(sourceCode.getText(node.body), ")"));
+            return allowParens && fixer.replaceText(node.body, `(${sourceCode.getText(node.body)})`);
           }
 
         });
@@ -81647,7 +88583,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 645 */
+/* 734 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -81659,7 +88595,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -81670,7 +88606,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `console`",
+      description: "Disallow the use of `console`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-console"
     },
@@ -81716,7 +88652,7 @@ module.exports = {
 
     function isAllowed(node) {
       const propertyName = astUtils.getStaticPropertyName(node);
-      return propertyName && allowed.indexOf(propertyName) !== -1;
+      return propertyName && allowed.includes(propertyName);
     }
     /**
      * Checks whether the given reference is a member access which is not
@@ -81772,7 +88708,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 646 */
+/* 735 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -81782,7 +88718,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -81793,7 +88729,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow reassigning `const` variables",
+      description: "Disallow reassigning `const` variables",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-const-assign"
     },
@@ -81834,192 +88770,670 @@ module.exports = {
 };
 
 /***/ }),
-/* 647 */
-/***/ ((module) => {
+/* 736 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 /**
- * @fileoverview Rule to flag use constant conditions
- * @author Christian Schulz <http://rndm.de>
+ * @fileoverview Rule to flag constant comparisons and logical expressions that always/never short circuit
+ * @author Jordan Eldredge <https://jordaneldredge.com>
  */
- //------------------------------------------------------------------------------
+
+
+const globals = __webpack_require__(563);
+
+const {
+  isNullLiteral,
+  isConstant,
+  isReferenceToGlobalVariable,
+  isLogicalAssignmentOperator
+} = __webpack_require__(618);
+
+const NUMERIC_OR_STRING_BINARY_OPERATORS = new Set(["+", "-", "*", "/", "%", "|", "^", "&", "**", "<<", ">>", ">>>"]); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-// Rule Definition
-//------------------------------------------------------------------------------
 
-/** @type {import('../shared/types').Rule} */
+/**
+ * Test if an AST node has a statically knowable constant nullishness. Meaning,
+ * it will always resolve to a constant value of either: `null`, `undefined`
+ * or not `null` _or_ `undefined`. An expression that can vary between those
+ * three states at runtime would return `false`.
+ * @param {Scope} scope The scope in which the node was found.
+ * @param {ASTNode} node The AST node being tested.
+ * @returns {boolean} Does `node` have constant nullishness?
+ */
 
-module.exports = {
-  meta: {
-    type: "problem",
-    docs: {
-      description: "disallow constant expressions in conditions",
-      recommended: true,
-      url: "https://eslint.org/docs/rules/no-constant-condition"
-    },
-    schema: [{
-      type: "object",
-      properties: {
-        checkLoops: {
-          type: "boolean",
-          default: true
+function hasConstantNullishness(scope, node) {
+  switch (node.type) {
+    case "ObjectExpression": // Objects are never nullish
+
+    case "ArrayExpression": // Arrays are never nullish
+
+    case "ArrowFunctionExpression": // Functions never nullish
+
+    case "FunctionExpression": // Functions are never nullish
+
+    case "ClassExpression": // Classes are never nullish
+
+    case "NewExpression": // Objects are never nullish
+
+    case "Literal": // Nullish, or non-nullish, literals never change
+
+    case "TemplateLiteral": // A string is never nullish
+
+    case "UpdateExpression": // Numbers are never nullish
+
+    case "BinaryExpression":
+      // Numbers, strings, or booleans are never nullish
+      return true;
+
+    case "CallExpression":
+      {
+        if (node.callee.type !== "Identifier") {
+          return false;
         }
-      },
-      additionalProperties: false
-    }],
-    messages: {
-      unexpected: "Unexpected constant condition."
-    }
-  },
 
-  create(context) {
-    const options = context.options[0] || {},
-          checkLoops = options.checkLoops !== false,
-          loopSetStack = [];
-    let loopsInCurrentScope = new Set(); //--------------------------------------------------------------------------
-    // Helpers
-    //--------------------------------------------------------------------------
+        const functionName = node.callee.name;
+        return (functionName === "Boolean" || functionName === "String" || functionName === "Number") && isReferenceToGlobalVariable(scope, node.callee);
+      }
 
-    /**
-     * Returns literal's value converted to the Boolean type
-     * @param {ASTNode} node any `Literal` node
-     * @returns {boolean | null} `true` when node is truthy, `false` when node is falsy,
-     *  `null` when it cannot be determined.
-     */
+    case "AssignmentExpression":
+      if (node.operator === "=") {
+        return hasConstantNullishness(scope, node.right);
+      }
+      /*
+       * Handling short-circuiting assignment operators would require
+       * walking the scope. We won't attempt that (for now...) /
+       */
 
-    function getBooleanValue(node) {
-      if (node.value === null) {
+
+      if (isLogicalAssignmentOperator(node.operator)) {
+        return false;
+      }
+      /*
+       * The remaining assignment expressions all result in a numeric or
+       * string (non-nullish) value:
+       *   "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&="
+       */
+
+
+      return true;
+
+    case "UnaryExpression":
+      /*
+       * "void" Always returns `undefined`
+       * "typeof" All types are strings, and thus non-nullish
+       * "!" Boolean is never nullish
+       * "delete" Returns a boolean, which is never nullish
+       * Math operators always return numbers or strings, neither of which
+       * are non-nullish "+", "-", "~"
+       */
+      return true;
+
+    case "SequenceExpression":
+      {
+        const last = node.expressions[node.expressions.length - 1];
+        return hasConstantNullishness(scope, last);
+      }
+
+    case "Identifier":
+      return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
+
+    case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
+
+    case "JSXFragment":
+      return false;
+
+    default:
+      return false;
+  }
+}
+/**
+ * Test if an AST node is a boolean value that never changes. Specifically we
+ * test for:
+ * 1. Literal booleans (`true` or `false`)
+ * 2. Unary `!` expressions with a constant value
+ * 3. Constant booleans created via the `Boolean` global function
+ * @param {Scope} scope The scope in which the node was found.
+ * @param {ASTNode} node The node to test
+ * @returns {boolean} Is `node` guaranteed to be a boolean?
+ */
+
+
+function isStaticBoolean(scope, node) {
+  switch (node.type) {
+    case "Literal":
+      return typeof node.value === "boolean";
+
+    case "CallExpression":
+      return node.callee.type === "Identifier" && node.callee.name === "Boolean" && isReferenceToGlobalVariable(scope, node.callee) && (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true));
+
+    case "UnaryExpression":
+      return node.operator === "!" && isConstant(scope, node.argument, true);
+
+    default:
+      return false;
+  }
+}
+/**
+ * Test if an AST node will always give the same result when compared to a
+ * boolean value. Note that comparison to boolean values is different than
+ * truthiness.
+ * https://262.ecma-international.org/5.1/#sec-11.9.3
+ *
+ * Javascript `==` operator works by converting the boolean to `1` (true) or
+ * `+0` (false) and then checks the values `==` equality to that number.
+ * @param {Scope} scope The scope in which node was found.
+ * @param {ASTNode} node The node to test.
+ * @returns {boolean} Will `node` always coerce to the same boolean value?
+ */
+
+
+function hasConstantLooseBooleanComparison(scope, node) {
+  switch (node.type) {
+    case "ObjectExpression":
+    case "ClassExpression":
+      /**
+       * In theory objects like:
+       *
+       * `{toString: () => a}`
+       * `{valueOf: () => a}`
+       *
+       * Or a classes like:
+       *
+       * `class { static toString() { return a } }`
+       * `class { static valueOf() { return a } }`
+       *
+       * Are not constant verifiably when `inBooleanPosition` is
+       * false, but it's an edge case we've opted not to handle.
+       */
+      return true;
+
+    case "ArrayExpression":
+      {
+        const nonSpreadElements = node.elements.filter(e => // Elements can be `null` in sparse arrays: `[,,]`;
+        e !== null && e.type !== "SpreadElement");
         /*
-         * it might be a null literal or bigint/regex literal in unsupported environments .
-         * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es5.md#regexpliteral
-         * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es2020.md#bigintliteral
+         * Possible future direction if needed: We could check if the
+         * single value would result in variable boolean comparison.
+         * For now we will err on the side of caution since `[x]` could
+         * evaluate to `[0]` or `[1]`.
          */
-        if (node.raw === "null") {
-          return false;
-        } // regex is always truthy
 
+        return node.elements.length === 0 || nonSpreadElements.length > 1;
+      }
 
-        if (typeof node.regex === "object") {
-          return true;
+    case "ArrowFunctionExpression":
+    case "FunctionExpression":
+      return true;
+
+    case "UnaryExpression":
+      if (node.operator === "void" || // Always returns `undefined`
+      node.operator === "typeof" // All `typeof` strings, when coerced to number, are not 0 or 1.
+      ) {
+        return true;
+      }
+
+      if (node.operator === "!") {
+        return isConstant(scope, node.argument, true);
+      }
+      /*
+       * We won't try to reason about +, -, ~, or delete
+       * In theory, for the mathematical operators, we could look at the
+       * argument and try to determine if it coerces to a constant numeric
+       * value.
+       */
+
+
+      return false;
+
+    case "NewExpression":
+      // Objects might have custom `.valueOf` or `.toString`.
+      return false;
+
+    case "CallExpression":
+      {
+        if (node.callee.type === "Identifier" && node.callee.name === "Boolean" && isReferenceToGlobalVariable(scope, node.callee)) {
+          return node.arguments.length === 0 || isConstant(scope, node.arguments[0], true);
         }
 
-        return null;
+        return false;
       }
 
-      return !!node.value;
-    }
-    /**
-     * Checks if a branch node of LogicalExpression short circuits the whole condition
-     * @param {ASTNode} node The branch of main condition which needs to be checked
-     * @param {string} operator The operator of the main LogicalExpression.
-     * @returns {boolean} true when condition short circuits whole condition
-     */
+    case "Literal":
+      // True or false, literals never change
+      return true;
 
+    case "Identifier":
+      return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
 
-    function isLogicalIdentity(node, operator) {
-      switch (node.type) {
-        case "Literal":
-          return operator === "||" && getBooleanValue(node) === true || operator === "&&" && getBooleanValue(node) === false;
+    case "TemplateLiteral":
+      /*
+       * In theory we could try to check if the quasi are sufficient to
+       * prove that the expression will always be true, but it would be
+       * tricky to get right. For example: `000.${foo}000`
+       */
+      return node.expressions.length === 0;
 
-        case "UnaryExpression":
-          return operator === "&&" && node.operator === "void";
+    case "AssignmentExpression":
+      if (node.operator === "=") {
+        return hasConstantLooseBooleanComparison(scope, node.right);
+      }
+      /*
+       * Handling short-circuiting assignment operators would require
+       * walking the scope. We won't attempt that (for now...)
+       *
+       * The remaining assignment expressions all result in a numeric or
+       * string (non-nullish) values which could be truthy or falsy:
+       *   "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&="
+       */
 
-        case "LogicalExpression":
-          /*
-           * handles `a && false || b`
-           * `false` is an identity element of `&&` but not `||`
-           */
-          return operator === node.operator && (isLogicalIdentity(node.left, operator) || isLogicalIdentity(node.right, operator));
 
-        case "AssignmentExpression":
-          return ["||=", "&&="].includes(node.operator) && operator === node.operator.slice(0, -1) && isLogicalIdentity(node.right, operator);
-        // no default
+      return false;
+
+    case "SequenceExpression":
+      {
+        const last = node.expressions[node.expressions.length - 1];
+        return hasConstantLooseBooleanComparison(scope, last);
       }
 
+    case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
+
+    case "JSXFragment":
       return false;
-    }
-    /**
-     * Checks if a node has a constant truthiness value.
-     * @param {ASTNode} node The AST node to check.
-     * @param {boolean} inBooleanPosition `false` if checking branch of a condition.
-     *  `true` in all other cases
-     * @returns {Bool} true when node's truthiness is constant
-     * @private
-     */
+
+    default:
+      return false;
+  }
+}
+/**
+ * Test if an AST node will always give the same result when _strictly_ compared
+ * to a boolean value. This can happen if the expression can never be boolean, or
+ * if it is always the same boolean value.
+ * @param {Scope} scope The scope in which the node was found.
+ * @param {ASTNode} node The node to test
+ * @returns {boolean} Will `node` always give the same result when compared to a
+ * static boolean value?
+ */
+
+
+function hasConstantStrictBooleanComparison(scope, node) {
+  switch (node.type) {
+    case "ObjectExpression": // Objects are not booleans
+
+    case "ArrayExpression": // Arrays are not booleans
+
+    case "ArrowFunctionExpression": // Functions are not booleans
+
+    case "FunctionExpression":
+    case "ClassExpression": // Classes are not booleans
+
+    case "NewExpression": // Objects are not booleans
+
+    case "TemplateLiteral": // Strings are not booleans
+
+    case "Literal": // True, false, or not boolean, literals never change.
+
+    case "UpdateExpression":
+      // Numbers are not booleans
+      return true;
+
+    case "BinaryExpression":
+      return NUMERIC_OR_STRING_BINARY_OPERATORS.has(node.operator);
+
+    case "UnaryExpression":
+      {
+        if (node.operator === "delete") {
+          return false;
+        }
+
+        if (node.operator === "!") {
+          return isConstant(scope, node.argument, true);
+        }
+        /*
+         * The remaining operators return either strings or numbers, neither
+         * of which are boolean.
+         */
 
 
-    function isConstant(node, inBooleanPosition) {
-      // node.elements can return null values in the case of sparse arrays ex. [,]
-      if (!node) {
         return true;
       }
 
-      switch (node.type) {
-        case "Literal":
-        case "ArrowFunctionExpression":
-        case "FunctionExpression":
-        case "ObjectExpression":
-        case "ClassExpression":
-          return true;
+    case "SequenceExpression":
+      {
+        const last = node.expressions[node.expressions.length - 1];
+        return hasConstantStrictBooleanComparison(scope, last);
+      }
 
-        case "TemplateLiteral":
-          return inBooleanPosition && node.quasis.some(quasi => quasi.value.cooked.length) || node.expressions.every(exp => isConstant(exp, inBooleanPosition));
+    case "Identifier":
+      return node.name === "undefined" && isReferenceToGlobalVariable(scope, node);
 
-        case "ArrayExpression":
-          {
-            if (node.parent.type === "BinaryExpression" && node.parent.operator === "+") {
-              return node.elements.every(element => isConstant(element, false));
-            }
+    case "AssignmentExpression":
+      if (node.operator === "=") {
+        return hasConstantStrictBooleanComparison(scope, node.right);
+      }
+      /*
+       * Handling short-circuiting assignment operators would require
+       * walking the scope. We won't attempt that (for now...)
+       */
 
-            return true;
-          }
 
-        case "UnaryExpression":
-          if (node.operator === "void" || node.operator === "typeof" && inBooleanPosition) {
-            return true;
-          }
+      if (isLogicalAssignmentOperator(node.operator)) {
+        return false;
+      }
+      /*
+       * The remaining assignment expressions all result in either a number
+       * or a string, neither of which can ever be boolean.
+       */
 
-          if (node.operator === "!") {
-            return isConstant(node.argument, true);
-          }
 
-          return isConstant(node.argument, false);
+      return true;
 
-        case "BinaryExpression":
-          return isConstant(node.left, false) && isConstant(node.right, false) && node.operator !== "in";
+    case "CallExpression":
+      {
+        if (node.callee.type !== "Identifier") {
+          return false;
+        }
 
-        case "LogicalExpression":
-          {
-            const isLeftConstant = isConstant(node.left, inBooleanPosition);
-            const isRightConstant = isConstant(node.right, inBooleanPosition);
-            const isLeftShortCircuit = isLeftConstant && isLogicalIdentity(node.left, node.operator);
-            const isRightShortCircuit = inBooleanPosition && isRightConstant && isLogicalIdentity(node.right, node.operator);
-            return isLeftConstant && isRightConstant || isLeftShortCircuit || isRightShortCircuit;
-          }
+        const functionName = node.callee.name;
 
-        case "NewExpression":
-          return inBooleanPosition;
+        if ((functionName === "String" || functionName === "Number") && isReferenceToGlobalVariable(scope, node.callee)) {
+          return true;
+        }
 
-        case "AssignmentExpression":
-          if (node.operator === "=") {
-            return isConstant(node.right, inBooleanPosition);
-          }
+        if (functionName === "Boolean" && isReferenceToGlobalVariable(scope, node.callee)) {
+          return node.arguments.length === 0 || isConstant(scope, node.arguments[0], true);
+        }
 
-          if (["||=", "&&="].includes(node.operator) && inBooleanPosition) {
-            return isLogicalIdentity(node.right, node.operator.slice(0, -1));
-          }
+        return false;
+      }
 
+    case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
+
+    case "JSXFragment":
+      return false;
+
+    default:
+      return false;
+  }
+}
+/**
+ * Test if an AST node will always result in a newly constructed object
+ * @param {Scope} scope The scope in which the node was found.
+ * @param {ASTNode} node The node to test
+ * @returns {boolean} Will `node` always be new?
+ */
+
+
+function isAlwaysNew(scope, node) {
+  switch (node.type) {
+    case "ObjectExpression":
+    case "ArrayExpression":
+    case "ArrowFunctionExpression":
+    case "FunctionExpression":
+    case "ClassExpression":
+      return true;
+
+    case "NewExpression":
+      {
+        if (node.callee.type !== "Identifier") {
           return false;
+        }
+        /*
+         * All the built-in constructors are always new, but
+         * user-defined constructors could return a sentinel
+         * object.
+         *
+         * Catching these is especially useful for primitive constructures
+         * which return boxed values, a surprising gotcha' in JavaScript.
+         */
 
-        case "SequenceExpression":
-          return isConstant(node.expressions[node.expressions.length - 1], inBooleanPosition);
-        // no default
+
+        return Object.hasOwnProperty.call(globals.builtin, node.callee.name) && isReferenceToGlobalVariable(scope, node.callee);
+      }
+
+    case "Literal":
+      // Regular expressions are objects, and thus always new
+      return typeof node.regex === "object";
+
+    case "SequenceExpression":
+      {
+        const last = node.expressions[node.expressions.length - 1];
+        return isAlwaysNew(scope, last);
       }
 
+    case "AssignmentExpression":
+      if (node.operator === "=") {
+        return isAlwaysNew(scope, node.right);
+      }
+
+      return false;
+
+    case "ConditionalExpression":
+      return isAlwaysNew(scope, node.consequent) && isAlwaysNew(scope, node.alternate);
+
+    case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior.
+
+    case "JSXFragment":
+      return false;
+
+    default:
       return false;
+  }
+}
+/**
+ * Checks whether or not a node is `null` or `undefined`. Similar to the one
+ * found in ast-utils.js, but this one correctly handles the edge case that
+ * `undefined` has been redefined.
+ * @param {Scope} scope Scope in which the expression was found.
+ * @param {ASTNode} node A node to check.
+ * @returns {boolean} Whether or not the node is a `null` or `undefined`.
+ * @public
+ */
+
+
+function isNullOrUndefined(scope, node) {
+  return isNullLiteral(node) || node.type === "Identifier" && node.name === "undefined" && isReferenceToGlobalVariable(scope, node) || node.type === "UnaryExpression" && node.operator === "void";
+}
+/**
+ * Checks if one operand will cause the result to be constant.
+ * @param {Scope} scope Scope in which the expression was found.
+ * @param {ASTNode} a One side of the expression
+ * @param {ASTNode} b The other side of the expression
+ * @param {string} operator The binary expression operator
+ * @returns {ASTNode | null} The node which will cause the expression to have a constant result.
+ */
+
+
+function findBinaryExpressionConstantOperand(scope, a, b, operator) {
+  if (operator === "==" || operator === "!=") {
+    if (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b) || isStaticBoolean(scope, a) && hasConstantLooseBooleanComparison(scope, b)) {
+      return b;
+    }
+  } else if (operator === "===" || operator === "!==") {
+    if (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b) || isStaticBoolean(scope, a) && hasConstantStrictBooleanComparison(scope, b)) {
+      return b;
+    }
+  }
+
+  return null;
+} //------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+/** @type {import('../shared/types').Rule} */
+
+
+module.exports = {
+  meta: {
+    type: "problem",
+    docs: {
+      description: "Disallow expressions where the operation doesn't affect the value",
+      recommended: false,
+      url: "https://eslint.org/docs/rules/no-constant-binary-expression"
+    },
+    schema: [],
+    messages: {
+      constantBinaryOperand: "Unexpected constant binary expression. Compares constantly with the {{otherSide}}-hand side of the `{{operator}}`.",
+      constantShortCircuit: "Unexpected constant {{property}} on the left-hand side of a `{{operator}}` expression.",
+      alwaysNew: "Unexpected comparison to newly constructed object. These two values can never be equal.",
+      bothAlwaysNew: "Unexpected comparison of two newly constructed objects. These two values can never be equal."
+    }
+  },
+
+  create(context) {
+    return {
+      LogicalExpression(node) {
+        const {
+          operator,
+          left
+        } = node;
+        const scope = context.getScope();
+
+        if ((operator === "&&" || operator === "||") && isConstant(scope, left, true)) {
+          context.report({
+            node: left,
+            messageId: "constantShortCircuit",
+            data: {
+              property: "truthiness",
+              operator
+            }
+          });
+        } else if (operator === "??" && hasConstantNullishness(scope, left)) {
+          context.report({
+            node: left,
+            messageId: "constantShortCircuit",
+            data: {
+              property: "nullishness",
+              operator
+            }
+          });
+        }
+      },
+
+      BinaryExpression(node) {
+        const scope = context.getScope();
+        const {
+          right,
+          left,
+          operator
+        } = node;
+        const rightConstantOperand = findBinaryExpressionConstantOperand(scope, left, right, operator);
+        const leftConstantOperand = findBinaryExpressionConstantOperand(scope, right, left, operator);
+
+        if (rightConstantOperand) {
+          context.report({
+            node: rightConstantOperand,
+            messageId: "constantBinaryOperand",
+            data: {
+              operator,
+              otherSide: "left"
+            }
+          });
+        } else if (leftConstantOperand) {
+          context.report({
+            node: leftConstantOperand,
+            messageId: "constantBinaryOperand",
+            data: {
+              operator,
+              otherSide: "right"
+            }
+          });
+        } else if (operator === "===" || operator === "!==") {
+          if (isAlwaysNew(scope, left)) {
+            context.report({
+              node: left,
+              messageId: "alwaysNew"
+            });
+          } else if (isAlwaysNew(scope, right)) {
+            context.report({
+              node: right,
+              messageId: "alwaysNew"
+            });
+          }
+        } else if (operator === "==" || operator === "!=") {
+          /*
+           * If both sides are "new", then both sides are objects and
+           * therefore they will be compared by reference even with `==`
+           * equality.
+           */
+          if (isAlwaysNew(scope, left) && isAlwaysNew(scope, right)) {
+            context.report({
+              node: left,
+              messageId: "bothAlwaysNew"
+            });
+          }
+        }
+      }
+      /*
+       * In theory we could handle short-circuiting assignment operators,
+       * for some constant values, but that would require walking the
+       * scope to find the value of the variable being assigned. This is
+       * dependant on https://github.com/eslint/eslint/issues/13776
+       *
+       * AssignmentExpression() {},
+       */
+
+
+    };
+  }
+
+};
+
+/***/ }),
+/* 737 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Rule to flag use constant conditions
+ * @author Christian Schulz <http://rndm.de>
+ */
+
+
+const {
+  isConstant
+} = __webpack_require__(618); //------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+/** @type {import('../shared/types').Rule} */
+
+
+module.exports = {
+  meta: {
+    type: "problem",
+    docs: {
+      description: "Disallow constant expressions in conditions",
+      recommended: true,
+      url: "https://eslint.org/docs/rules/no-constant-condition"
+    },
+    schema: [{
+      type: "object",
+      properties: {
+        checkLoops: {
+          type: "boolean",
+          default: true
+        }
+      },
+      additionalProperties: false
+    }],
+    messages: {
+      unexpected: "Unexpected constant condition."
     }
+  },
+
+  create(context) {
+    const options = context.options[0] || {},
+          checkLoops = options.checkLoops !== false,
+          loopSetStack = [];
+    let loopsInCurrentScope = new Set(); //--------------------------------------------------------------------------
+    // Helpers
+    //--------------------------------------------------------------------------
+
     /**
      * Tracks when the given node contains a constant condition.
      * @param {ASTNode} node The AST node to check.
@@ -82027,9 +89441,8 @@ module.exports = {
      * @private
      */
 
-
     function trackConstantConditionLoop(node) {
-      if (node.test && isConstant(node.test, true)) {
+      if (node.test && isConstant(context.getScope(), node.test, true)) {
         loopsInCurrentScope.add(node);
       }
     }
@@ -82059,7 +89472,7 @@ module.exports = {
 
 
     function reportIfConstant(node) {
-      if (node.test && isConstant(node.test, true)) {
+      if (node.test && isConstant(context.getScope(), node.test, true)) {
         context.report({
           node: node.test,
           messageId: "unexpected"
@@ -82126,7 +89539,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 648 */
+/* 738 */
 /***/ ((module) => {
 
 "use strict";
@@ -82144,7 +89557,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow returning value from constructor",
+      description: "Disallow returning value from constructor",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-constructor-return"
     },
@@ -82187,7 +89600,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 649 */
+/* 739 */
 /***/ ((module) => {
 
 "use strict";
@@ -82205,7 +89618,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `continue` statements",
+      description: "Disallow `continue` statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-continue"
     },
@@ -82230,7 +89643,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 650 */
+/* 740 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -82240,7 +89653,7 @@ module.exports = {
  */
 
 
-const RegExpValidator = (__webpack_require__(651).RegExpValidator);
+const RegExpValidator = (__webpack_require__(741).RegExpValidator);
 
 const collector = new class {
   constructor() {
@@ -82255,15 +89668,17 @@ const collector = new class {
 
   onCharacter(start, end, cp) {
     if (cp >= 0x00 && cp <= 0x1F && (this._source.codePointAt(start) === cp || this._source.slice(start, end).startsWith("\\x") || this._source.slice(start, end).startsWith("\\u"))) {
-      this._controlChars.push("\\x".concat("0".concat(cp.toString(16)).slice(-2)));
+      this._controlChars.push(`\\x${`0${cp.toString(16)}`.slice(-2)}`);
     }
   }
 
-  collectControlChars(regexpStr) {
+  collectControlChars(regexpStr, flags) {
+    const uFlag = typeof flags === "string" && flags.includes("u");
+
     try {
       this._source = regexpStr;
 
-      this._validator.validatePattern(regexpStr); // Call onCharacter hook
+      this._validator.validatePattern(regexpStr, void 0, void 0, uFlag); // Call onCharacter hook
 
     } catch {// Ignore syntax errors in RegExp.
     }
@@ -82281,7 +89696,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow control characters in regular expressions",
+      description: "Disallow control characters in regular expressions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-control-regex"
     },
@@ -82294,17 +89709,24 @@ module.exports = {
   create(context) {
     /**
      * Get the regex expression
-     * @param {ASTNode} node node to evaluate
-     * @returns {RegExp|null} Regex if found else null
+     * @param {ASTNode} node `Literal` node to evaluate
+     * @returns {{ pattern: string, flags: string | null } | null} Regex if found (the given node is either a regex literal
+     * or a string literal that is the pattern argument of a RegExp constructor call). Otherwise `null`. If flags cannot be determined,
+     * the `flags` property will be `null`.
      * @private
      */
-    function getRegExpPattern(node) {
+    function getRegExp(node) {
       if (node.regex) {
-        return node.regex.pattern;
+        return node.regex;
       }
 
       if (typeof node.value === "string" && (node.parent.type === "NewExpression" || node.parent.type === "CallExpression") && node.parent.callee.type === "Identifier" && node.parent.callee.name === "RegExp" && node.parent.arguments[0] === node) {
-        return node.value;
+        const pattern = node.value;
+        const flags = node.parent.arguments.length > 1 && node.parent.arguments[1].type === "Literal" && typeof node.parent.arguments[1].value === "string" ? node.parent.arguments[1].value : null;
+        return {
+          pattern,
+          flags
+        };
       }
 
       return null;
@@ -82312,10 +89734,14 @@ module.exports = {
 
     return {
       Literal(node) {
-        const pattern = getRegExpPattern(node);
+        const regExp = getRegExp(node);
 
-        if (pattern) {
-          const controlCharacters = collector.collectControlChars(pattern);
+        if (regExp) {
+          const {
+            pattern,
+            flags
+          } = regExp;
+          const controlCharacters = collector.collectControlChars(pattern, flags);
 
           if (controlCharacters.length > 0) {
             context.report({
@@ -82335,7 +89761,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 651 */
+/* 741 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
@@ -82706,13 +90132,13 @@ class RegExpSyntaxError extends SyntaxError {
   constructor(source, uFlag, index, message) {
     if (source) {
       if (!source.startsWith("/")) {
-        source = "/".concat(source, "/").concat(uFlag ? "u" : "");
+        source = `/${source}/${uFlag ? "u" : ""}`;
       }
 
-      source = ": ".concat(source);
+      source = `: ${source}`;
     }
 
-    super("Invalid regular expression".concat(source, ": ").concat(message));
+    super(`Invalid regular expression${source}: ${message}`);
     this.index = index;
   }
 
@@ -82772,7 +90198,7 @@ class RegExpValidator {
       this.raise("Empty");
     } else {
       const c = String.fromCodePoint(this.currentCodePoint);
-      this.raise("Unexpected character '".concat(c, "'"));
+      this.raise(`Unexpected character '${c}'`);
     }
 
     this.onLiteralLeave(start, end);
@@ -82794,7 +90220,7 @@ class RegExpValidator {
       const flag = source.charCodeAt(i);
 
       if (existingFlags.has(flag)) {
-        this.raise("Duplicated flag '".concat(source[i], "'"));
+        this.raise(`Duplicated flag '${source[i]}'`);
       }
 
       existingFlags.add(flag);
@@ -82814,7 +90240,7 @@ class RegExpValidator {
       } else if (flag === LatinSmallLetterD && this.ecmaVersion >= 2022) {
         hasIndices = true;
       } else {
-        this.raise("Invalid flag '".concat(source[i], "'"));
+        this.raise(`Invalid flag '${source[i]}'`);
       }
     }
 
@@ -83063,7 +90489,7 @@ class RegExpValidator {
 
       if (cp === -1 || isLineTerminator(cp)) {
         const kind = inClass ? "character class" : "regular expression";
-        this.raise("Unterminated ".concat(kind));
+        this.raise(`Unterminated ${kind}`);
       }
 
       if (escaped) {
@@ -83110,7 +90536,7 @@ class RegExpValidator {
       }
 
       const c = String.fromCodePoint(cp);
-      this.raise("Unexpected character '".concat(c, "'"));
+      this.raise(`Unexpected character '${c}'`);
     }
 
     for (const name of this._backreferenceNames) {
@@ -84618,7 +92044,7 @@ class RegExpVisitor {
         break;
 
       default:
-        throw new Error("Unknown type: ".concat(node.type));
+        throw new Error(`Unknown type: ${node.type}`);
     }
   }
 
@@ -84796,7 +92222,7 @@ exports.validateRegExpLiteral = validateRegExpLiteral;
 exports.visitRegExpAST = visitRegExpAST;
 
 /***/ }),
-/* 652 */
+/* 742 */
 /***/ ((module) => {
 
 "use strict";
@@ -84814,7 +92240,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow the use of `debugger`",
+      description: "Disallow the use of `debugger`",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-debugger"
     },
@@ -84840,7 +92266,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 653 */
+/* 743 */
 /***/ ((module) => {
 
 "use strict";
@@ -84858,7 +92284,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow deleting variables",
+      description: "Disallow deleting variables",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-delete-var"
     },
@@ -84885,7 +92311,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 654 */
+/* 744 */
 /***/ ((module) => {
 
 "use strict";
@@ -84903,7 +92329,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow division operators explicitly at the beginning of regular expressions",
+      description: "Disallow division operators explicitly at the beginning of regular expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-div-regex"
     },
@@ -84939,7 +92365,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 655 */
+/* 745 */
 /***/ ((module) => {
 
 "use strict";
@@ -84957,7 +92383,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow duplicate arguments in `function` definitions",
+      description: "Disallow duplicate arguments in `function` definitions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-dupe-args"
     },
@@ -85020,7 +92446,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 656 */
+/* 746 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -85030,7 +92456,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -85041,7 +92467,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow duplicate class members",
+      description: "Disallow duplicate class members",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-dupe-class-members"
     },
@@ -85065,7 +92491,7 @@ module.exports = {
 
     function getState(name, isStatic) {
       const stateMap = stack[stack.length - 1];
-      const key = "$".concat(name); // to avoid "__proto__".
+      const key = `$${name}`; // to avoid "__proto__".
 
       if (!stateMap[key]) {
         stateMap[key] = {
@@ -85141,7 +92567,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 657 */
+/* 747 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -85153,7 +92579,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -85196,7 +92622,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow duplicate conditions in if-else-if chains",
+      description: "Disallow duplicate conditions in if-else-if chains",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-dupe-else-if"
     },
@@ -85257,7 +92683,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 658 */
+/* 748 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -85269,7 +92695,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -85350,7 +92776,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow duplicate keys in object literals",
+      description: "Disallow duplicate keys in object literals",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-dupe-keys"
     },
@@ -85405,7 +92831,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 659 */
+/* 749 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -85418,7 +92844,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -85429,7 +92855,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow duplicate case labels",
+      description: "Disallow duplicate case labels",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-duplicate-case"
     },
@@ -85482,7 +92908,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 660 */
+/* 750 */
 /***/ ((module) => {
 
 "use strict";
@@ -85714,7 +93140,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow duplicate module imports",
+      description: "Disallow duplicate module imports",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-duplicate-imports"
     },
@@ -85754,7 +93180,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 661 */
+/* 751 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -85766,9 +93192,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const FixTracker = __webpack_require__(662); //------------------------------------------------------------------------------
+const FixTracker = __webpack_require__(752); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -85779,7 +93205,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `else` blocks after `return` statements in `if` statements",
+      description: "Disallow `else` blocks after `return` statements in `if` statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-else-return"
     },
@@ -86201,7 +93627,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 662 */
+/* 752 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -86213,7 +93639,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Public Interface
 //------------------------------------------------------------------------------
 
@@ -86314,7 +93740,7 @@ class FixTracker {
 module.exports = FixTracker;
 
 /***/ }),
-/* 663 */
+/* 753 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -86326,7 +93752,7 @@ module.exports = FixTracker;
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -86337,7 +93763,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow empty block statements",
+      description: "Disallow empty block statements",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-empty"
     },
@@ -86408,7 +93834,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 664 */
+/* 754 */
 /***/ ((module) => {
 
 "use strict";
@@ -86440,7 +93866,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow empty character classes in regular expressions",
+      description: "Disallow empty character classes in regular expressions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-empty-character-class"
     },
@@ -86467,7 +93893,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 665 */
+/* 755 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -86479,7 +93905,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -86556,7 +93982,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow empty functions",
+      description: "Disallow empty functions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-empty-function"
     },
@@ -86602,7 +94028,7 @@ module.exports = {
         filter: astUtils.isCommentToken
       });
 
-      if (allowed.indexOf(kind) === -1 && node.body.type === "BlockStatement" && node.body.body.length === 0 && innerComments.length === 0) {
+      if (!allowed.includes(kind) && node.body.type === "BlockStatement" && node.body.body.length === 0 && innerComments.length === 0) {
         context.report({
           node,
           loc: node.body.loc,
@@ -86624,7 +94050,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 666 */
+/* 756 */
 /***/ ((module) => {
 
 "use strict";
@@ -86642,7 +94068,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow empty destructuring patterns",
+      description: "Disallow empty destructuring patterns",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-empty-pattern"
     },
@@ -86684,7 +94110,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 667 */
+/* 757 */
 /***/ ((module) => {
 
 "use strict";
@@ -86703,7 +94129,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `null` comparisons without type-checking operators",
+      description: "Disallow `null` comparisons without type-checking operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-eq-null"
     },
@@ -86732,7 +94158,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 668 */
+/* 758 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -86744,7 +94170,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -86772,7 +94198,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `eval()`",
+      description: "Disallow the use of `eval()`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-eval"
     },
@@ -86796,21 +94222,25 @@ module.exports = {
     const sourceCode = context.getSourceCode();
     let funcInfo = null;
     /**
-     * Pushs a variable scope (Program or Function) information to the stack.
+     * Pushs a `this` scope (non-arrow function, class static block, or class field initializer) information to the stack.
+     * Top-level scopes are handled separately.
      *
      * This is used in order to check whether or not `this` binding is a
      * reference to the global object.
-     * @param {ASTNode} node A node of the scope. This is one of Program,
-     *      FunctionDeclaration, FunctionExpression, and ArrowFunctionExpression.
+     * @param {ASTNode} node A node of the scope.
+     *      For functions, this is one of FunctionDeclaration, FunctionExpression.
+     *      For class static blocks, this is StaticBlock.
+     *      For class field initializers, this can be any node that is PropertyDefinition#value.
      * @returns {void}
      */
 
-    function enterVarScope(node) {
+    function enterThisScope(node) {
       const strict = context.getScope().isStrict;
       funcInfo = {
         upper: funcInfo,
         node,
         strict,
+        isTopLevelOfScript: false,
         defaultThis: false,
         initialized: strict
       };
@@ -86821,7 +94251,7 @@ module.exports = {
      */
 
 
-    function exitVarScope() {
+    function exitThisScope() {
       funcInfo = funcInfo.upper;
     }
     /**
@@ -86939,11 +94369,13 @@ module.exports = {
       Program(node) {
         const scope = context.getScope(),
               features = context.parserOptions.ecmaFeatures || {},
-              strict = scope.isStrict || node.sourceType === "module" || features.globalReturn && scope.childScopes[0].isStrict;
+              strict = scope.isStrict || node.sourceType === "module" || features.globalReturn && scope.childScopes[0].isStrict,
+              isTopLevelOfScript = node.sourceType !== "module" && !features.globalReturn;
         funcInfo = {
           upper: null,
           node,
           strict,
+          isTopLevelOfScript,
           defaultThis: true,
           initialized: true
         };
@@ -86951,21 +94383,19 @@ module.exports = {
 
       "Program:exit"() {
         const globalScope = context.getScope();
-        exitVarScope();
+        exitThisScope();
         reportAccessingEval(globalScope);
         reportAccessingEvalViaGlobalObject(globalScope);
       },
 
-      FunctionDeclaration: enterVarScope,
-      "FunctionDeclaration:exit": exitVarScope,
-      FunctionExpression: enterVarScope,
-      "FunctionExpression:exit": exitVarScope,
-      ArrowFunctionExpression: enterVarScope,
-      "ArrowFunctionExpression:exit": exitVarScope,
-      "PropertyDefinition > *.value": enterVarScope,
-      "PropertyDefinition > *.value:exit": exitVarScope,
-      StaticBlock: enterVarScope,
-      "StaticBlock:exit": exitVarScope,
+      FunctionDeclaration: enterThisScope,
+      "FunctionDeclaration:exit": exitThisScope,
+      FunctionExpression: enterThisScope,
+      "FunctionExpression:exit": exitThisScope,
+      "PropertyDefinition > *.value": enterThisScope,
+      "PropertyDefinition > *.value:exit": exitThisScope,
+      StaticBlock: enterThisScope,
+      "StaticBlock:exit": exitThisScope,
 
       ThisExpression(node) {
         if (!isMember(node.parent, "eval")) {
@@ -86980,9 +94410,10 @@ module.exports = {
         if (!funcInfo.initialized) {
           funcInfo.initialized = true;
           funcInfo.defaultThis = astUtils.isDefaultThisBinding(funcInfo.node, sourceCode);
-        }
+        } // `this` at the top level of scripts always refers to the global object
 
-        if (!funcInfo.strict && funcInfo.defaultThis) {
+
+        if (funcInfo.isTopLevelOfScript || !funcInfo.strict && funcInfo.defaultThis) {
           // `this.eval` is possible built-in `eval`.
           report(node.parent);
         }
@@ -86994,7 +94425,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 669 */
+/* 759 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -87004,7 +94435,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -87015,7 +94446,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow reassigning exceptions in `catch` clauses",
+      description: "Disallow reassigning exceptions in `catch` clauses",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-ex-assign"
     },
@@ -87051,7 +94482,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 670 */
+/* 760 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -87063,9 +94494,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const globals = __webpack_require__(492); //------------------------------------------------------------------------------
+const globals = __webpack_require__(563); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -87076,7 +94507,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow extending native types",
+      description: "Disallow extending native types",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-extend-native"
     },
@@ -87205,7 +94636,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 671 */
+/* 761 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -87217,7 +94648,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -87232,7 +94663,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary calls to `.bind()`",
+      description: "Disallow unnecessary calls to `.bind()`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-extra-bind"
     },
@@ -87398,7 +94829,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 672 */
+/* 762 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -87410,9 +94841,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const eslintUtils = __webpack_require__(501);
+const eslintUtils = __webpack_require__(571);
 
 const precedence = astUtils.getPrecedence; //------------------------------------------------------------------------------
 // Rule Definition
@@ -87424,7 +94855,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary boolean casts",
+      description: "Disallow unnecessary boolean casts",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-extra-boolean-cast"
     },
@@ -87448,7 +94879,7 @@ module.exports = {
   create(context) {
     const sourceCode = context.getSourceCode(); // Node types which have a test which will coerce values to booleans.
 
-    const BOOLEAN_NODE_TYPES = ["IfStatement", "DoWhileStatement", "WhileStatement", "ConditionalExpression", "ForStatement"];
+    const BOOLEAN_NODE_TYPES = new Set(["IfStatement", "DoWhileStatement", "WhileStatement", "ConditionalExpression", "ForStatement"]);
     /**
      * Check if a node is a Boolean function or constructor.
      * @param {ASTNode} node the node
@@ -87477,7 +94908,7 @@ module.exports = {
 
 
     function isInBooleanContext(node) {
-      return isBooleanFunctionOrConstructorCall(node.parent) && node === node.parent.arguments[0] || BOOLEAN_NODE_TYPES.indexOf(node.parent.type) !== -1 && node === node.parent.test || // !<bool>
+      return isBooleanFunctionOrConstructorCall(node.parent) && node === node.parent.arguments[0] || BOOLEAN_NODE_TYPES.has(node.parent.type) && node === node.parent.test || // !<bool>
       node.parent.type === "UnaryExpression" && node.parent.operator === "!";
     }
     /**
@@ -87570,10 +95001,10 @@ module.exports = {
 
           return precedence(node) <= precedence(parent);
 
-        /* istanbul ignore next */
+        /* c8 ignore next */
 
         default:
-          throw new Error("Unexpected parent type: ".concat(parent.type));
+          throw new Error(`Unexpected parent type: ${parent.type}`);
       }
     }
 
@@ -87596,7 +95027,7 @@ module.exports = {
               }
 
               if (needsParens(parent, node.argument)) {
-                return fixer.replaceText(parent, "(".concat(sourceCode.getText(node.argument), ")"));
+                return fixer.replaceText(parent, `(${sourceCode.getText(node.argument)})`);
               }
 
               let prefix = "";
@@ -87670,7 +95101,7 @@ module.exports = {
 
 
                 if (needsParens(node, argument)) {
-                  return fixer.replaceText(node, "(".concat(sourceCode.getText(argument), ")"));
+                  return fixer.replaceText(node, `(${sourceCode.getText(argument)})`);
                 }
 
                 return fixer.replaceText(node, sourceCode.getText(argument));
@@ -87690,7 +95121,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 673 */
+/* 763 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -87702,7 +95133,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -87713,7 +95144,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary labels",
+      description: "Disallow unnecessary labels",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-extra-label"
     },
@@ -87847,7 +95278,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 674 */
+/* 764 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -87861,9 +95292,9 @@ module.exports = {
 
 const {
   isParenthesized: isParenthesizedRaw
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 /** @type {import('../shared/types').Rule} */
 
 
@@ -87871,7 +95302,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow unnecessary parentheses",
+      description: "Disallow unnecessary parentheses",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-extra-parens"
     },
@@ -88442,11 +95873,13 @@ module.exports = {
 
       while (currentNode !== ancestor) {
         currentNode = currentNode.parent;
-        /* istanbul ignore if */
+        /* c8 ignore start */
 
         if (currentNode === null) {
           throw new Error("Nodes are not in the ancestor-descendant relationship.");
         }
+        /* c8 ignore stop */
+
 
         path.push(currentNode);
       }
@@ -89002,7 +96435,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 675 */
+/* 765 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -89014,9 +96447,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const FixTracker = __webpack_require__(662);
+const FixTracker = __webpack_require__(752);
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -89027,7 +96460,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary semicolons",
+      description: "Disallow unnecessary semicolons",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-extra-semi"
     },
@@ -89088,7 +96521,7 @@ module.exports = {
         const parent = node.parent,
               allowedParentTypes = ["ForStatement", "ForInStatement", "ForOfStatement", "WhileStatement", "DoWhileStatement", "IfStatement", "LabeledStatement", "WithStatement"];
 
-        if (allowedParentTypes.indexOf(parent.type) === -1) {
+        if (!allowedParentTypes.includes(parent.type)) {
           report(node);
         }
       },
@@ -89117,7 +96550,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 676 */
+/* 766 */
 /***/ ((module) => {
 
 "use strict";
@@ -89185,7 +96618,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow fallthrough of `case` statements",
+      description: "Disallow fallthrough of `case` statements",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-fallthrough"
     },
@@ -89195,6 +96628,10 @@ module.exports = {
         commentPattern: {
           type: "string",
           default: ""
+        },
+        allowEmptyCase: {
+          type: "boolean",
+          default: false
         }
       },
       additionalProperties: false
@@ -89209,6 +96646,7 @@ module.exports = {
     const options = context.options[0] || {};
     let currentCodePath = null;
     const sourceCode = context.getSourceCode();
+    const allowEmptyCase = options.allowEmptyCase || false;
     /*
      * We need to use leading comments of the next SwitchCase node because
      * trailing comments is wrong if semicolons are omitted.
@@ -89255,7 +96693,7 @@ module.exports = {
          * And allows empty cases and the last case.
          */
 
-        if (currentCodePath.currentSegments.some(isReachable) && (node.consequent.length > 0 || hasBlankLinesBetween(node, nextToken)) && node.parent.cases[node.parent.cases.length - 1] !== node) {
+        if (currentCodePath.currentSegments.some(isReachable) && (node.consequent.length > 0 || !allowEmptyCase && hasBlankLinesBetween(node, nextToken)) && node.parent.cases[node.parent.cases.length - 1] !== node) {
           fallthroughCase = node;
         }
       }
@@ -89266,7 +96704,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 677 */
+/* 767 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -89278,7 +96716,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -89289,7 +96727,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow leading or trailing decimal points in numeric literals",
+      description: "Disallow leading or trailing decimal points in numeric literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-floating-decimal"
     },
@@ -89313,7 +96751,7 @@ module.exports = {
 
               fix(fixer) {
                 const tokenBefore = sourceCode.getTokenBefore(node);
-                const needsSpaceBefore = tokenBefore && tokenBefore.range[1] === node.range[0] && !astUtils.canTokensBeAdjacent(tokenBefore, "0".concat(node.raw));
+                const needsSpaceBefore = tokenBefore && tokenBefore.range[1] === node.range[0] && !astUtils.canTokensBeAdjacent(tokenBefore, `0${node.raw}`);
                 return fixer.insertTextBefore(node, needsSpaceBefore ? " 0" : "0");
               }
 
@@ -89336,7 +96774,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 678 */
+/* 768 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -89346,7 +96784,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -89357,7 +96795,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow reassigning `function` declarations",
+      description: "Disallow reassigning `function` declarations",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-func-assign"
     },
@@ -89416,7 +96854,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 679 */
+/* 769 */
 /***/ ((module) => {
 
 "use strict";
@@ -89434,7 +96872,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow assignments to native objects or read-only global variables",
+      description: "Disallow assignments to native objects or read-only global variables",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-global-assign"
     },
@@ -89493,7 +96931,7 @@ module.exports = {
 
 
     function checkVariable(variable) {
-      if (variable.writeable === false && exceptions.indexOf(variable.name) === -1) {
+      if (variable.writeable === false && !exceptions.includes(variable.name)) {
         variable.references.forEach(checkReference);
       }
     }
@@ -89510,7 +96948,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 680 */
+/* 770 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -89520,7 +96958,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -89543,9 +96981,9 @@ function parseOptions(options) {
   };
 }
 /**
- * Checks whether or not a node is a double logical nigating.
+ * Checks whether or not a node is a double logical negating.
  * @param {ASTNode} node An UnaryExpression node to check.
- * @returns {boolean} Whether or not the node is a double logical nigating.
+ * @returns {boolean} Whether or not the node is a double logical negating.
  */
 
 
@@ -89671,7 +97109,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow shorthand type conversions",
+      description: "Disallow shorthand type conversions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-implicit-coercion"
     },
@@ -89737,7 +97175,7 @@ module.exports = {
           const tokenBefore = sourceCode.getTokenBefore(node);
 
           if (tokenBefore && tokenBefore.range[1] === node.range[0] && !astUtils.canTokensBeAdjacent(tokenBefore, recommendation)) {
-            return fixer.replaceText(node, " ".concat(recommendation));
+            return fixer.replaceText(node, ` ${recommendation}`);
           }
 
           return fixer.replaceText(node, recommendation);
@@ -89750,28 +97188,28 @@ module.exports = {
       UnaryExpression(node) {
         let operatorAllowed; // !!foo
 
-        operatorAllowed = options.allow.indexOf("!!") >= 0;
+        operatorAllowed = options.allow.includes("!!");
 
         if (!operatorAllowed && options.boolean && isDoubleLogicalNegating(node)) {
-          const recommendation = "Boolean(".concat(sourceCode.getText(node.argument.argument), ")");
+          const recommendation = `Boolean(${sourceCode.getText(node.argument.argument)})`;
           report(node, recommendation, true);
         } // ~foo.indexOf(bar)
 
 
-        operatorAllowed = options.allow.indexOf("~") >= 0;
+        operatorAllowed = options.allow.includes("~");
 
         if (!operatorAllowed && options.boolean && isBinaryNegatingOfIndexOf(node)) {
           // `foo?.indexOf(bar) !== -1` will be true (== found) if the `foo` is nullish. So use `>= 0` in that case.
           const comparison = node.argument.type === "ChainExpression" ? ">= 0" : "!== -1";
-          const recommendation = "".concat(sourceCode.getText(node.argument), " ").concat(comparison);
+          const recommendation = `${sourceCode.getText(node.argument)} ${comparison}`;
           report(node, recommendation, false);
         } // +foo
 
 
-        operatorAllowed = options.allow.indexOf("+") >= 0;
+        operatorAllowed = options.allow.includes("+");
 
         if (!operatorAllowed && options.number && node.operator === "+" && !isNumeric(node.argument)) {
-          const recommendation = "Number(".concat(sourceCode.getText(node.argument), ")");
+          const recommendation = `Number(${sourceCode.getText(node.argument)})`;
           report(node, recommendation, true);
         }
       },
@@ -89780,30 +97218,30 @@ module.exports = {
       "BinaryExpression:exit"(node) {
         let operatorAllowed; // 1 * foo
 
-        operatorAllowed = options.allow.indexOf("*") >= 0;
+        operatorAllowed = options.allow.includes("*");
         const nonNumericOperand = !operatorAllowed && options.number && isMultiplyByOne(node) && getNonNumericOperand(node);
 
         if (nonNumericOperand) {
-          const recommendation = "Number(".concat(sourceCode.getText(nonNumericOperand), ")");
+          const recommendation = `Number(${sourceCode.getText(nonNumericOperand)})`;
           report(node, recommendation, true);
         } // "" + foo
 
 
-        operatorAllowed = options.allow.indexOf("+") >= 0;
+        operatorAllowed = options.allow.includes("+");
 
         if (!operatorAllowed && options.string && isConcatWithEmptyString(node)) {
-          const recommendation = "String(".concat(sourceCode.getText(getNonEmptyOperand(node)), ")");
+          const recommendation = `String(${sourceCode.getText(getNonEmptyOperand(node))})`;
           report(node, recommendation, true);
         }
       },
 
       AssignmentExpression(node) {
         // foo += ""
-        const operatorAllowed = options.allow.indexOf("+") >= 0;
+        const operatorAllowed = options.allow.includes("+");
 
         if (!operatorAllowed && options.string && isAppendEmptyString(node)) {
           const code = sourceCode.getText(getNonEmptyOperand(node));
-          const recommendation = "".concat(code, " = String(").concat(code, ")");
+          const recommendation = `${code} = String(${code})`;
           report(node, recommendation, true);
         }
       },
@@ -89839,7 +97277,7 @@ module.exports = {
         }
 
         const code = sourceCode.getText(node.expressions[0]);
-        const recommendation = "String(".concat(code, ")");
+        const recommendation = `String(${code})`;
         report(node, recommendation, true);
       }
 
@@ -89849,7 +97287,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 681 */
+/* 771 */
 /***/ ((module) => {
 
 "use strict";
@@ -89867,7 +97305,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow declarations in the global scope",
+      description: "Disallow declarations in the global scope",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-implicit-globals"
     },
@@ -89930,7 +97368,7 @@ module.exports = {
               if (isReadonlyEslintGlobalVariable) {
                 report(defNode, "redeclarationOfReadonlyGlobal");
               } else {
-                report(defNode, "globalNonLexicalBinding", def.type === "FunctionName" ? "function" : "'".concat(def.parent.kind, "'"));
+                report(defNode, "globalNonLexicalBinding", def.type === "FunctionName" ? "function" : `'${def.parent.kind}'`);
               }
             }
 
@@ -89939,7 +97377,7 @@ module.exports = {
                 if (isReadonlyEslintGlobalVariable) {
                   report(defNode, "redeclarationOfReadonlyGlobal");
                 } else {
-                  report(defNode, "globalLexicalBinding", def.type === "ClassName" ? "class" : "'".concat(def.parent.kind, "'"));
+                  report(defNode, "globalLexicalBinding", def.type === "ClassName" ? "class" : `'${def.parent.kind}'`);
                 }
               }
             }
@@ -89975,7 +97413,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 682 */
+/* 772 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -89987,11 +97425,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   getStaticValue
-} = __webpack_require__(501); //------------------------------------------------------------------------------
+} = __webpack_require__(571); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -90002,7 +97440,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `eval()`-like methods",
+      description: "Disallow the use of `eval()`-like methods",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-implied-eval"
     },
@@ -90107,7 +97545,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 683 */
+/* 773 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -90121,9 +97559,9 @@ module.exports = {
 
 const {
   findVariable
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const WellKnownMutationFunctions = {
   Object: /^(?:assign|definePropert(?:y|ies)|freeze|setPrototypeOf)$/u,
@@ -90244,7 +97682,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow assigning to imported bindings",
+      description: "Disallow assigning to imported bindings",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-import-assign"
     },
@@ -90305,7 +97743,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 684 */
+/* 774 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -90315,7 +97753,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -90326,7 +97764,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow inline comments after code",
+      description: "Disallow inline comments after code",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-inline-comments"
     },
@@ -90411,7 +97849,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 685 */
+/* 775 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -90423,7 +97861,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -90464,7 +97902,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow variable or `function` declarations in nested blocks",
+      description: "Disallow variable or `function` declarations in nested blocks",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-inner-declarations"
     },
@@ -90518,7 +97956,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 686 */
+/* 776 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -90530,7 +97968,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const RegExpValidator = (__webpack_require__(651).RegExpValidator);
+const RegExpValidator = (__webpack_require__(741).RegExpValidator);
 
 const validator = new RegExpValidator();
 const validFlags = /[dgimsuy]/gu;
@@ -90544,7 +97982,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow invalid regular expression strings in `RegExp` constructors",
+      description: "Disallow invalid regular expression strings in `RegExp` constructors",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-invalid-regexp"
     },
@@ -90573,7 +98011,7 @@ module.exports = {
       const temp = options.allowConstructorFlags.join("").replace(validFlags, "");
 
       if (temp) {
-        allowedFlags = new RegExp("[".concat(temp, "]"), "giu");
+        allowedFlags = new RegExp(`[${temp}]`, "giu");
       }
     }
     /**
@@ -90638,7 +98076,7 @@ module.exports = {
         validator.validateFlags(flags);
         return null;
       } catch {
-        return "Invalid flags supplied to RegExp constructor '".concat(flags, "'");
+        return `Invalid flags supplied to RegExp constructor '${flags}'`;
       }
     }
 
@@ -90675,19 +98113,34 @@ module.exports = {
 };
 
 /***/ }),
-/* 687 */
+/* 777 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 /**
- * @fileoverview A rule to disallow `this` keywords outside of classes or class-like objects.
+ * @fileoverview A rule to disallow `this` keywords in contexts where the value of `this` is `undefined`.
  * @author Toru Nagashima
  */
  //------------------------------------------------------------------------------
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+/**
+ * Determines if the given code path is a code path with lexical `this` binding.
+ * That is, if `this` within the code path refers to `this` of surrounding code path.
+ * @param {CodePath} codePath Code path.
+ * @param {ASTNode} node Node that started the code path.
+ * @returns {boolean} `true` if it is a code path with lexical `this` binding.
+ */
+
+
+function isCodePathWithLexicalThis(codePath, node) {
+  return codePath.origin === "function" && node.type === "ArrowFunctionExpression";
+} //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -90698,7 +98151,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `this` keywords outside of classes or class-like objects",
+      description: "Disallow use of `this` in contexts where the value of `this` is `undefined`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-invalid-this"
     },
@@ -90743,65 +98196,49 @@ module.exports = {
 
       return current;
     };
-    /**
-     * Pushs new checking context into the stack.
-     *
-     * The checking context is not initialized yet.
-     * Because most functions don't have `this` keyword.
-     * When `this` keyword was found, the checking context is initialized.
-     * @param {ASTNode} node A function node that was entered.
-     * @returns {void}
-     */
 
+    return {
+      onCodePathStart(codePath, node) {
+        if (isCodePathWithLexicalThis(codePath, node)) {
+          return;
+        }
 
-    function enterFunction(node) {
-      // `this` can be invalid only under strict mode.
-      stack.push({
-        init: !context.getScope().isStrict,
-        node,
-        valid: true
-      });
-    }
-    /**
-     * Pops the current checking context from the stack.
-     * @returns {void}
-     */
+        if (codePath.origin === "program") {
+          const scope = context.getScope();
+          const features = context.parserOptions.ecmaFeatures || {}; // `this` at the top level of scripts always refers to the global object
 
+          stack.push({
+            init: true,
+            node,
+            valid: !(node.sourceType === "module" || features.globalReturn && scope.childScopes[0].isStrict)
+          });
+          return;
+        }
+        /*
+         * `init: false` means that `valid` isn't determined yet.
+         * Most functions don't use `this`, and the calculation for `valid`
+         * is relatively costly, so we'll calculate it lazily when the first
+         * `this` within the function is traversed. A special case are non-strict
+         * functions, because `this` refers to the global object and therefore is
+         * always valid, so we can set `init: true` right away.
+         */
 
-    function exitFunction() {
-      stack.pop();
-    }
 
-    return {
-      /*
-       * `this` is invalid only under strict mode.
-       * Modules is always strict mode.
-       */
-      Program(node) {
-        const scope = context.getScope(),
-              features = context.parserOptions.ecmaFeatures || {};
         stack.push({
-          init: true,
+          init: !context.getScope().isStrict,
           node,
-          valid: !(scope.isStrict || node.sourceType === "module" || features.globalReturn && scope.childScopes[0].isStrict)
+          valid: true
         });
       },
 
-      "Program:exit"() {
+      onCodePathEnd(codePath, node) {
+        if (isCodePathWithLexicalThis(codePath, node)) {
+          return;
+        }
+
         stack.pop();
       },
 
-      FunctionDeclaration: enterFunction,
-      "FunctionDeclaration:exit": exitFunction,
-      FunctionExpression: enterFunction,
-      "FunctionExpression:exit": exitFunction,
-      // Field initializers are implicit functions.
-      "PropertyDefinition > *.value": enterFunction,
-      "PropertyDefinition > *.value:exit": exitFunction,
-      // Class static blocks are implicit functions.
-      StaticBlock: enterFunction,
-      "StaticBlock:exit": exitFunction,
-
       // Reports if `this` of the current context is invalid.
       ThisExpression(node) {
         const current = stack.getCurrent();
@@ -90820,7 +98257,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 688 */
+/* 778 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -90833,7 +98270,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Constants
 //------------------------------------------------------------------------------
 
@@ -90851,7 +98288,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow irregular whitespace",
+      description: "Disallow irregular whitespace",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-irregular-whitespace"
     },
@@ -91075,7 +98512,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 689 */
+/* 779 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -91089,7 +98526,7 @@ module.exports = {
 
 const {
   getStaticPropertyName
-} = __webpack_require__(548); //------------------------------------------------------------------------------
+} = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -91100,7 +98537,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of the `__iterator__` property",
+      description: "Disallow the use of the `__iterator__` property",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-iterator"
     },
@@ -91127,7 +98564,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 690 */
+/* 780 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -91139,7 +98576,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -91150,7 +98587,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow labels that share a name with a variable",
+      description: "Disallow labels that share a name with a variable",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-label-var"
     },
@@ -91202,7 +98639,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 691 */
+/* 781 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -91214,7 +98651,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -91225,7 +98662,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow labeled statements",
+      description: "Disallow labeled statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-labels"
     },
@@ -91308,7 +98745,7 @@ module.exports = {
 
         info = info.upper;
       }
-      /* istanbul ignore next: syntax error */
+      /* c8 ignore next */
 
 
       return "other";
@@ -91361,7 +98798,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 692 */
+/* 782 */
 /***/ ((module) => {
 
 "use strict";
@@ -91379,7 +98816,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary nested blocks",
+      description: "Disallow unnecessary nested blocks",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-lone-blocks"
     },
@@ -91447,7 +98884,7 @@ module.exports = {
 
     }; // ES6: report blocks without block-level bindings, or that's only child of another block
 
-    if (context.parserOptions.ecmaVersion >= 6) {
+    if (context.languageOptions.ecmaVersion >= 2015) {
       ruleDef = {
         BlockStatement(node) {
           if (isLoneBlock(node)) {
@@ -91487,7 +98924,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 693 */
+/* 783 */
 /***/ ((module) => {
 
 "use strict";
@@ -91505,7 +98942,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `if` statements as the only statement in `else` blocks",
+      description: "Disallow `if` statements as the only statement in `else` blocks",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-lonely-if"
     },
@@ -91563,7 +99000,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 694 */
+/* 784 */
 /***/ ((module) => {
 
 "use strict";
@@ -91685,7 +99122,7 @@ function isSafe(loopNode, reference) {
    * The reference is every reference of the upper scope's variable we are
    * looking now.
    *
-   * It's safeafe if the reference matches one of the following condition.
+   * It's safe if the reference matches one of the following condition.
    * - is readonly.
    * - doesn't exist inside a local function and after the border.
    * @param {eslint-scope.Reference} upperRef A reference to check.
@@ -91709,7 +99146,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow function declarations that contain unsafe references inside loop statements",
+      description: "Disallow function declarations that contain unsafe references inside loop statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-loop-func"
     },
@@ -91743,7 +99180,7 @@ module.exports = {
           node,
           messageId: "unsafeRefs",
           data: {
-            varNames: "'".concat(unsafeRefs.join("', '"), "'")
+            varNames: `'${unsafeRefs.join("', '")}'`
           }
         });
       }
@@ -91759,7 +99196,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 695 */
+/* 785 */
 /***/ ((module) => {
 
 "use strict";
@@ -91777,7 +99214,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow literal numbers that lose precision",
+      description: "Disallow literal numbers that lose precision",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-loss-of-precision"
     },
@@ -91846,7 +99283,7 @@ module.exports = {
 
 
     function addDecimalPointToNumber(stringNumber) {
-      return "".concat(stringNumber.slice(0, 1), ".").concat(stringNumber.slice(1));
+      return `${stringNumber.slice(0, 1)}.${stringNumber.slice(1)}`;
     }
     /**
      * Returns the number stripped of leading zeros
@@ -91920,7 +99357,7 @@ module.exports = {
       const normalizedNumber = stringNumber.includes(".") ? normalizeFloat(originalCoefficient) : normalizeInteger(originalCoefficient);
       const normalizedCoefficient = normalizedNumber.coefficient;
       const magnitude = splitNumber.length > 1 ? parseInt(splitNumber[1], 10) + normalizedNumber.magnitude : normalizedNumber.magnitude;
-      return "".concat(normalizedCoefficient, "e").concat(magnitude);
+      return `${normalizedCoefficient}e${magnitude}`;
     }
     /**
      * Checks that the user-intended base ten number equals the actual number after is has been converted to the Number type
@@ -91968,7 +99405,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 696 */
+/* 786 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -91978,7 +99415,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); // Maximum array length by the ECMAScript Specification.
+const astUtils = __webpack_require__(618); // Maximum array length by the ECMAScript Specification.
 
 
 const MAX_ARRAY_LENGTH = 2 ** 32 - 1; //------------------------------------------------------------------------------
@@ -92005,7 +99442,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow magic numbers",
+      description: "Disallow magic numbers",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-magic-numbers"
     },
@@ -92053,7 +99490,7 @@ module.exports = {
     const config = context.options[0] || {},
           detectObjects = !!config.detectObjects,
           enforceConst = !!config.enforceConst,
-          ignore = (config.ignore || []).map(normalizeIgnoreValue),
+          ignore = new Set((config.ignore || []).map(normalizeIgnoreValue)),
           ignoreArrayIndexes = !!config.ignoreArrayIndexes,
           ignoreDefaultValues = !!config.ignoreDefaultValues;
     const okTypes = detectObjects ? [] : ["ObjectExpression", "Property", "AssignmentExpression"];
@@ -92064,7 +99501,7 @@ module.exports = {
      */
 
     function isIgnoredValue(value) {
-      return ignore.indexOf(value) !== -1;
+      return ignore.has(value);
     }
     /**
      * Returns whether the number is a default value assignment.
@@ -92147,7 +99584,7 @@ module.exports = {
         if (node.parent.type === "UnaryExpression" && node.parent.operator === "-") {
           fullNumberNode = node.parent;
           value = -node.value;
-          raw = "-".concat(node.raw);
+          raw = `-${node.raw}`;
         } else {
           fullNumberNode = node;
           value = node.value;
@@ -92167,7 +99604,7 @@ module.exports = {
               messageId: "useConst"
             });
           }
-        } else if (okTypes.indexOf(parent.type) === -1 || parent.type === "AssignmentExpression" && parent.left.type === "Identifier") {
+        } else if (!okTypes.includes(parent.type) || parent.type === "AssignmentExpression" && parent.left.type === "Identifier") {
           context.report({
             node: fullNumberNode,
             messageId: "noMagic",
@@ -92184,7 +99621,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 697 */
+/* 787 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -92198,22 +99635,27 @@ const {
   CONSTRUCT,
   ReferenceTracker,
   getStringIfConstant
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
 const {
+  RegExpValidator,
   RegExpParser,
   visitRegExpAST
-} = __webpack_require__(651);
+} = __webpack_require__(741);
 
 const {
   isCombiningCharacter,
   isEmojiModifier,
   isRegionalIndicatorSymbol,
   isSurrogatePair
-} = __webpack_require__(698); //------------------------------------------------------------------------------
+} = __webpack_require__(788);
+
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
+
+const REGEXPP_LATEST_ECMA_VERSION = 2022;
 /**
  * Iterate character sequences of a given nodes.
  *
@@ -92223,7 +99665,6 @@ const {
  * @returns {IterableIterator<number[]>} The list of character sequences.
  */
 
-
 function* iterateCharacterSequence(nodes) {
   let seq = [];
 
@@ -92288,39 +99729,35 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow characters which are made with multiple code points in character class syntax",
+      description: "Disallow characters which are made with multiple code points in character class syntax",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-misleading-character-class"
     },
+    hasSuggestions: true,
     schema: [],
     messages: {
       surrogatePairWithoutUFlag: "Unexpected surrogate pair in character class. Use 'u' flag.",
       combiningClass: "Unexpected combined character in character class.",
       emojiModifier: "Unexpected modified Emoji in character class.",
       regionalIndicatorSymbol: "Unexpected national flag in character class.",
-      zwj: "Unexpected joined character sequence in character class."
+      zwj: "Unexpected joined character sequence in character class.",
+      suggestUnicodeFlag: "Add unicode 'u' flag to regex."
     }
   },
 
   create(context) {
+    const sourceCode = context.getSourceCode();
     const parser = new RegExpParser();
     /**
      * Verify a given regular expression.
      * @param {Node} node The node to report.
      * @param {string} pattern The regular expression pattern to verify.
      * @param {string} flags The flags of the regular expression.
+     * @param {Function} unicodeFixer Fixer for missing "u" flag.
      * @returns {void}
      */
 
-    function verify(node, pattern, flags) {
-      const has = {
-        surrogatePairWithoutUFlag: false,
-        combiningClass: false,
-        variationSelector: false,
-        emojiModifier: false,
-        regionalIndicatorSymbol: false,
-        zwj: false
-      };
+    function verify(node, pattern, flags, unicodeFixer) {
       let patternNode;
 
       try {
@@ -92330,30 +99767,79 @@ module.exports = {
         return;
       }
 
+      const foundKinds = new Set();
       visitRegExpAST(patternNode, {
         onCharacterClassEnter(ccNode) {
           for (const chars of iterateCharacterSequence(ccNode.elements)) {
             for (const kind of kinds) {
-              has[kind] = has[kind] || hasCharacterSequence[kind](chars);
+              if (hasCharacterSequence[kind](chars)) {
+                foundKinds.add(kind);
+              }
             }
           }
         }
 
       });
 
-      for (const kind of kinds) {
-        if (has[kind]) {
-          context.report({
-            node,
-            messageId: kind
-          });
+      for (const kind of foundKinds) {
+        let suggest;
+
+        if (kind === "surrogatePairWithoutUFlag") {
+          suggest = [{
+            messageId: "suggestUnicodeFlag",
+            fix: unicodeFixer
+          }];
         }
+
+        context.report({
+          node,
+          messageId: kind,
+          suggest
+        });
+      }
+    }
+    /**
+     * Checks if the given regular expression pattern would be valid with the `u` flag.
+     * @param {string} pattern The regular expression pattern to verify.
+     * @returns {boolean} `true` if the pattern would be valid with the `u` flag.
+     * `false` if the pattern would be invalid with the `u` flag or the configured
+     * ecmaVersion doesn't support the `u` flag.
+     */
+
+
+    function isValidWithUnicodeFlag(pattern) {
+      const {
+        ecmaVersion
+      } = context.parserOptions; // ecmaVersion is unknown or it doesn't support the 'u' flag
+
+      if (typeof ecmaVersion !== "number" || ecmaVersion <= 5) {
+        return false;
+      }
+
+      const validator = new RegExpValidator({
+        ecmaVersion: Math.min(ecmaVersion + 2009, REGEXPP_LATEST_ECMA_VERSION)
+      });
+
+      try {
+        validator.validatePattern(pattern, void 0, void 0,
+        /* uFlag = */
+        true);
+      } catch {
+        return false;
       }
+
+      return true;
     }
 
     return {
       "Literal[regex]"(node) {
-        verify(node, node.regex.pattern, node.regex.flags);
+        verify(node, node.regex.pattern, node.regex.flags, fixer => {
+          if (!isValidWithUnicodeFlag(node.regex.pattern)) {
+            return null;
+          }
+
+          return fixer.insertTextAfter(node, "u");
+        });
       },
 
       "Program"() {
@@ -92378,7 +99864,26 @@ module.exports = {
           const flags = getStringIfConstant(flagsNode, scope);
 
           if (typeof pattern === "string") {
-            verify(node, pattern, flags || "");
+            verify(node, pattern, flags || "", fixer => {
+              if (!isValidWithUnicodeFlag(pattern)) {
+                return null;
+              }
+
+              if (node.arguments.length === 1) {
+                const penultimateToken = sourceCode.getLastToken(node, {
+                  skip: 1
+                }); // skip closing parenthesis
+
+                return fixer.insertTextAfter(penultimateToken, astUtils.isCommaToken(penultimateToken) ? ' "u",' : ', "u"');
+              }
+
+              if (flagsNode.type === "Literal" && typeof flagsNode.value === "string" || flagsNode.type === "TemplateLiteral") {
+                const range = [flagsNode.range[0], flagsNode.range[1] - 1];
+                return fixer.insertTextAfterRange(range, "u");
+              }
+
+              return null;
+            });
           }
         }
       }
@@ -92389,7 +99894,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 698 */
+/* 788 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -92399,14 +99904,14 @@ module.exports = {
 
 
 module.exports = {
-  isCombiningCharacter: __webpack_require__(699),
-  isEmojiModifier: __webpack_require__(700),
-  isRegionalIndicatorSymbol: __webpack_require__(701),
-  isSurrogatePair: __webpack_require__(702)
+  isCombiningCharacter: __webpack_require__(789),
+  isEmojiModifier: __webpack_require__(790),
+  isRegionalIndicatorSymbol: __webpack_require__(791),
+  isSurrogatePair: __webpack_require__(792)
 };
 
 /***/ }),
-/* 699 */
+/* 789 */
 /***/ ((module) => {
 
 "use strict";
@@ -92425,7 +99930,7 @@ module.exports = function isCombiningCharacter(codePoint) {
 };
 
 /***/ }),
-/* 700 */
+/* 790 */
 /***/ ((module) => {
 
 "use strict";
@@ -92444,7 +99949,7 @@ module.exports = function isEmojiModifier(code) {
 };
 
 /***/ }),
-/* 701 */
+/* 791 */
 /***/ ((module) => {
 
 "use strict";
@@ -92463,7 +99968,7 @@ module.exports = function isRegionalIndicatorSymbol(code) {
 };
 
 /***/ }),
-/* 702 */
+/* 792 */
 /***/ ((module) => {
 
 "use strict";
@@ -92483,7 +99988,7 @@ module.exports = function isSurrogatePair(lead, tail) {
 };
 
 /***/ }),
-/* 703 */
+/* 793 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -92495,7 +100000,7 @@ module.exports = function isSurrogatePair(lead, tail) {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -92536,7 +100041,7 @@ function normalizeOptions() {
 
 
 function includesBothInAGroup(groups, left, right) {
-  return groups.some(group => group.indexOf(left) !== -1 && group.indexOf(right) !== -1);
+  return groups.some(group => group.includes(left) && group.includes(right));
 }
 /**
  * Checks whether the given node is a conditional expression and returns the test node else the left node.
@@ -92560,7 +100065,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow mixed binary operators",
+      description: "Disallow mixed binary operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-mixed-operators"
     },
@@ -92685,7 +100190,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 704 */
+/* 794 */
 /***/ ((module) => {
 
 "use strict";
@@ -92706,7 +100211,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow `require` calls to be mixed with regular variable declarations",
+      description: "Disallow `require` calls to be mixed with regular variable declarations",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-mixed-requires"
     },
@@ -92821,7 +100326,7 @@ module.exports = {
         return REQ_COMPUTED;
       }
 
-      if (BUILTIN_MODULES.indexOf(arg.value) !== -1) {
+      if (BUILTIN_MODULES.includes(arg.value)) {
         // "var fs = require('fs');"
         return REQ_CORE;
       }
@@ -92889,7 +100394,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 705 */
+/* 795 */
 /***/ ((module) => {
 
 "use strict";
@@ -92907,7 +100412,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow mixed spaces and tabs for indentation",
+      description: "Disallow mixed spaces and tabs for indentation",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-mixed-spaces-and-tabs"
     },
@@ -93001,7 +100506,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 706 */
+/* 796 */
 /***/ ((module) => {
 
 "use strict";
@@ -93019,7 +100524,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow use of chained assignment expressions",
+      description: "Disallow use of chained assignment expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-multi-assign"
     },
@@ -93065,7 +100570,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 707 */
+/* 797 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -93075,7 +100580,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -93086,7 +100591,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow multiple spaces",
+      description: "Disallow multiple spaces",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-multi-spaces"
     },
@@ -93122,7 +100627,7 @@ module.exports = {
     const exceptions = Object.assign({
       Property: true
     }, options.exceptions);
-    const hasExceptions = Object.keys(exceptions).filter(key => exceptions[key]).length > 0;
+    const hasExceptions = Object.keys(exceptions).some(key => exceptions[key]);
     /**
      * Formats value of given comment token for error message by truncating its length.
      * @param {Token} token comment token
@@ -93133,7 +100638,7 @@ module.exports = {
     function formatReportedCommentValue(token) {
       const valueLines = token.value.split("\n");
       const value = valueLines[0];
-      const formattedValue = "".concat(value.slice(0, 12), "...");
+      const formattedValue = `${value.slice(0, 12)}...`;
       return valueLines.length === 1 && value.length <= 12 ? value : formattedValue;
     } //--------------------------------------------------------------------------
     // Public
@@ -93170,9 +100675,9 @@ module.exports = {
           let displayValue;
 
           if (rightToken.type === "Block") {
-            displayValue = "/*".concat(formatReportedCommentValue(rightToken), "*/");
+            displayValue = `/*${formatReportedCommentValue(rightToken)}*/`;
           } else if (rightToken.type === "Line") {
-            displayValue = "//".concat(formatReportedCommentValue(rightToken));
+            displayValue = `//${formatReportedCommentValue(rightToken)}`;
           } else {
             displayValue = rightToken.value;
           }
@@ -93198,7 +100703,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 708 */
+/* 798 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -93210,7 +100715,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -93221,7 +100726,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow multiline strings",
+      description: "Disallow multiline strings",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-multi-str"
     },
@@ -93261,7 +100766,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 709 */
+/* 799 */
 /***/ ((module) => {
 
 "use strict";
@@ -93280,7 +100785,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow multiple empty lines",
+      description: "Disallow multiple empty lines",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-multiple-empty-lines"
     },
@@ -93415,7 +100920,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 710 */
+/* 800 */
 /***/ ((module) => {
 
 "use strict";
@@ -93434,7 +100939,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow assignments to native objects or read-only global variables",
+      description: "Disallow assignments to native objects or read-only global variables",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-native-reassign"
     },
@@ -93493,7 +100998,7 @@ module.exports = {
 
 
     function checkVariable(variable) {
-      if (variable.writeable === false && exceptions.indexOf(variable.name) === -1) {
+      if (variable.writeable === false && !exceptions.includes(variable.name)) {
         variable.references.forEach(checkReference);
       }
     }
@@ -93510,7 +101015,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 711 */
+/* 801 */
 /***/ ((module) => {
 
 "use strict";
@@ -93528,7 +101033,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow negated conditions",
+      description: "Disallow negated conditions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-negated-condition"
     },
@@ -93611,7 +101116,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 712 */
+/* 802 */
 /***/ ((module) => {
 
 "use strict";
@@ -93630,7 +101135,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow negating the left operand in `in` expressions",
+      description: "Disallow negating the left operand in `in` expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-negated-in-lhs"
     },
@@ -93659,7 +101164,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 713 */
+/* 803 */
 /***/ ((module) => {
 
 "use strict";
@@ -93677,7 +101182,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow nested ternary expressions",
+      description: "Disallow nested ternary expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-nested-ternary"
     },
@@ -93704,7 +101209,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 714 */
+/* 804 */
 /***/ ((module) => {
 
 "use strict";
@@ -93723,7 +101228,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `new` operators outside of assignments or comparisons",
+      description: "Disallow `new` operators outside of assignments or comparisons",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-new"
     },
@@ -93748,7 +101253,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 715 */
+/* 805 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -93760,7 +101265,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -93775,7 +101280,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `new` operators with the `Function` object",
+      description: "Disallow `new` operators with the `Function` object",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-new-func"
     },
@@ -93827,7 +101332,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 716 */
+/* 806 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -93839,7 +101344,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -93850,13 +101355,13 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `Object` constructors",
+      description: "Disallow `Object` constructors",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-new-object"
     },
     schema: [],
     messages: {
-      preferLiteral: "The object literal notation {} is preferrable."
+      preferLiteral: "The object literal notation {} is preferable."
     }
   },
 
@@ -93883,7 +101388,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 717 */
+/* 807 */
 /***/ ((module) => {
 
 "use strict";
@@ -93904,7 +101409,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow `new` operators with calls to `require`",
+      description: "Disallow `new` operators with calls to `require`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-new-require"
     },
@@ -93931,7 +101436,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 718 */
+/* 808 */
 /***/ ((module) => {
 
 "use strict";
@@ -93949,7 +101454,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow `new` operators with the `Symbol` object",
+      description: "Disallow `new` operators with the `Symbol` object",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-new-symbol"
     },
@@ -93986,7 +101491,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 719 */
+/* 809 */
 /***/ ((module) => {
 
 "use strict";
@@ -94004,7 +101509,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
+      description: "Disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-new-wrappers"
     },
@@ -94019,7 +101524,7 @@ module.exports = {
       NewExpression(node) {
         const wrapperObjects = ["String", "Number", "Boolean"];
 
-        if (wrapperObjects.indexOf(node.callee.name) > -1) {
+        if (wrapperObjects.includes(node.callee.name)) {
           context.report({
             node,
             messageId: "noConstructor",
@@ -94036,7 +101541,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 720 */
+/* 810 */
 /***/ ((module) => {
 
 "use strict";
@@ -94056,7 +101561,7 @@ const QUICK_TEST_REGEX = /\\[89]/u;
  */
 
 function getUnicodeEscape(character) {
-  return "\\u".concat(character.charCodeAt(0).toString(16).padStart(4, "0"));
+  return `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`;
 } //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
@@ -94068,7 +101573,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `\\8` and `\\9` escape sequences in string literals",
+      description: "Disallow `\\8` and `\\9` escape sequences in string literals",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-nonoctal-decimal-escape"
     },
@@ -94137,7 +101642,7 @@ module.exports = {
              * an octal escape while fixing a decimal escape, we provide different suggestions.
              */
             suggest.push(createSuggestion( // "\0\8" -> "\u00008"
-            "refactor", [decimalEscapeRangeStart - previousEscape.length, decimalEscapeRangeEnd], "".concat(getUnicodeEscape("\0")).concat(decimalEscape[1])), createSuggestion( // "\8" -> "\u0038"
+            "refactor", [decimalEscapeRangeStart - previousEscape.length, decimalEscapeRangeEnd], `${getUnicodeEscape("\0")}${decimalEscape[1]}`), createSuggestion( // "\8" -> "\u0038"
             "refactor", decimalEscapeRange, getUnicodeEscape(decimalEscape[1])));
           } else {
             suggest.push(createSuggestion( // "\8" -> "8"
@@ -94145,7 +101650,7 @@ module.exports = {
           }
 
           suggest.push(createSuggestion( // "\8" -> "\\8"
-          "escapeBackslash", decimalEscapeRange, "\\".concat(decimalEscape)));
+          "escapeBackslash", decimalEscapeRange, `\\${decimalEscape}`));
           context.report({
             node,
             loc: {
@@ -94167,7 +101672,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 721 */
+/* 811 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -94183,9 +101688,9 @@ const {
   CALL,
   CONSTRUCT,
   ReferenceTracker
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
-const getPropertyName = (__webpack_require__(548).getStaticPropertyName); //------------------------------------------------------------------------------
+const getPropertyName = (__webpack_require__(618).getStaticPropertyName); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -94218,7 +101723,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow calling global object properties as functions",
+      description: "Disallow calling global object properties as functions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-obj-calls"
     },
@@ -94267,7 +101772,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 722 */
+/* 812 */
 /***/ ((module) => {
 
 "use strict";
@@ -94285,13 +101790,13 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow octal literals",
+      description: "Disallow octal literals",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-octal"
     },
     schema: [],
     messages: {
-      noOcatal: "Octal literals should not be used."
+      noOctal: "Octal literals should not be used."
     }
   },
 
@@ -94301,7 +101806,7 @@ module.exports = {
         if (typeof node.value === "number" && /^0[0-9]/u.test(node.raw)) {
           context.report({
             node,
-            messageId: "noOcatal"
+            messageId: "noOctal"
           });
         }
       }
@@ -94312,7 +101817,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 723 */
+/* 813 */
 /***/ ((module) => {
 
 "use strict";
@@ -94330,7 +101835,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow octal escape sequences in string literals",
+      description: "Disallow octal escape sequences in string literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-octal-escape"
     },
@@ -94367,7 +101872,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 724 */
+/* 814 */
 /***/ ((module) => {
 
 "use strict";
@@ -94386,7 +101891,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow reassigning `function` parameters",
+      description: "Disallow reassigning `function` parameters",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-param-reassign"
     },
@@ -94595,7 +102100,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 725 */
+/* 815 */
 /***/ ((module) => {
 
 "use strict";
@@ -94616,7 +102121,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow string concatenation with `__dirname` and `__filename`",
+      description: "Disallow string concatenation with `__dirname` and `__filename`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-path-concat"
     },
@@ -94650,7 +102155,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 726 */
+/* 816 */
 /***/ ((module) => {
 
 "use strict";
@@ -94704,7 +102209,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the unary operators `++` and `--`",
+      description: "Disallow the unary operators `++` and `--`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-plusplus"
     },
@@ -94752,7 +102257,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 727 */
+/* 817 */
 /***/ ((module) => {
 
 "use strict";
@@ -94773,7 +102278,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow the use of `process.env`",
+      description: "Disallow the use of `process.env`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-process-env"
     },
@@ -94803,7 +102308,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 728 */
+/* 818 */
 /***/ ((module) => {
 
 "use strict";
@@ -94824,7 +102329,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow the use of `process.exit()`",
+      description: "Disallow the use of `process.exit()`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-process-exit"
     },
@@ -94852,7 +102357,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 729 */
+/* 819 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -94866,7 +102371,7 @@ module.exports = {
 
 const {
   findVariable
-} = __webpack_require__(501); //------------------------------------------------------------------------------
+} = __webpack_require__(571); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -94921,7 +102426,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow returning values from Promise executor functions",
+      description: "Disallow returning values from Promise executor functions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-promise-executor-return"
     },
@@ -94974,7 +102479,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 730 */
+/* 820 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -94988,7 +102493,7 @@ module.exports = {
 
 const {
   getStaticPropertyName
-} = __webpack_require__(548); //------------------------------------------------------------------------------
+} = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -94999,7 +102504,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of the `__proto__` property",
+      description: "Disallow the use of the `__proto__` property",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-proto"
     },
@@ -95026,7 +102531,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 731 */
+/* 821 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -95038,7 +102543,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -95049,7 +102554,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow calling some `Object.prototype` methods directly on objects",
+      description: "Disallow calling some `Object.prototype` methods directly on objects",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-prototype-builtins"
     },
@@ -95060,7 +102565,7 @@ module.exports = {
   },
 
   create(context) {
-    const DISALLOWED_PROPS = ["hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"];
+    const DISALLOWED_PROPS = new Set(["hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"]);
     /**
      * Reports if a disallowed property is used in a CallExpression
      * @param {ASTNode} node The CallExpression node.
@@ -95076,7 +102581,7 @@ module.exports = {
 
       const propName = astUtils.getStaticPropertyName(callee);
 
-      if (propName !== null && DISALLOWED_PROPS.indexOf(propName) > -1) {
+      if (propName !== null && DISALLOWED_PROPS.has(propName)) {
         context.report({
           messageId: "prototypeBuildIn",
           loc: callee.property.loc,
@@ -95096,7 +102601,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 732 */
+/* 822 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -95108,7 +102613,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -95119,7 +102624,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow variable redeclaration",
+      description: "Disallow variable redeclaration",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-redeclare"
     },
@@ -95264,7 +102769,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 733 */
+/* 823 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -95276,9 +102781,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const regexpp = __webpack_require__(651); //------------------------------------------------------------------------------
+const regexpp = __webpack_require__(741); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -95305,7 +102810,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow multiple spaces in regular expressions",
+      description: "Disallow multiple spaces in regular expressions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-regex-spaces"
     },
@@ -95379,7 +102884,7 @@ module.exports = {
                 return null;
               }
 
-              return fixer.replaceTextRange([rawPatternStartRange + index, rawPatternStartRange + index + length], " {".concat(length, "}"));
+              return fixer.replaceTextRange([rawPatternStartRange + index, rawPatternStartRange + index + length], ` {${length}}`);
             }
 
           }); // Report only the first occurrence of consecutive spaces
@@ -95439,8 +102944,8 @@ module.exports = {
 };
 
 /***/ }),
-/* 734 */
-/***/ ((module) => {
+/* 824 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
 /**
@@ -95448,16 +102953,21 @@ module.exports = {
  * @author Milos Djermanovic
  */
  //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
 /** @type {import('../shared/types').Rule} */
 
+
 module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow specified names in exports",
+      description: "Disallow specified names in exports",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-restricted-exports"
     },
@@ -95482,13 +102992,13 @@ module.exports = {
   create(context) {
     const restrictedNames = new Set(context.options[0] && context.options[0].restrictedNamedExports);
     /**
-     * Checks and reports given exported identifier.
-     * @param {ASTNode} node exported `Identifier` node to check.
+     * Checks and reports given exported name.
+     * @param {ASTNode} node exported `Identifier` or string `Literal` node to check.
      * @returns {void}
      */
 
     function checkExportedName(node) {
-      const name = node.name;
+      const name = astUtils.getModuleExportName(node);
 
       if (restrictedNames.has(name)) {
         context.report({
@@ -95529,7 +103039,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 735 */
+/* 825 */
 /***/ ((module) => {
 
 "use strict";
@@ -95547,7 +103057,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow specified global variables",
+      description: "Disallow specified global variables",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-restricted-globals"
     },
@@ -95650,7 +103160,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 736 */
+/* 826 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -95659,10 +103169,15 @@ module.exports = {
  * @author Guy Ellis
  */
  //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
-const ignore = __webpack_require__(737);
+
+const ignore = __webpack_require__(827);
 
 const arrayOfStringsOrObjects = {
   type: "array",
@@ -95704,6 +103219,14 @@ const arrayOfStringsOrObjectPatterns = {
     items: {
       type: "object",
       properties: {
+        importNames: {
+          type: "array",
+          items: {
+            type: "string"
+          },
+          minItems: 1,
+          uniqueItems: true
+        },
         group: {
           type: "array",
           items: {
@@ -95715,6 +103238,9 @@ const arrayOfStringsOrObjectPatterns = {
         message: {
           type: "string",
           minLength: 1
+        },
+        caseSensitive: {
+          type: "boolean"
         }
       },
       additionalProperties: false,
@@ -95729,7 +103255,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow specified modules when loaded by `import`",
+      description: "Disallow specified modules when loaded by `import`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-restricted-imports"
     },
@@ -95740,6 +103266,12 @@ module.exports = {
       patterns: "'{{importSource}}' import is restricted from being used by a pattern.",
       // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period
       patternWithCustomMessage: "'{{importSource}}' import is restricted from being used by a pattern. {{customMessage}}",
+      patternAndImportName: "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern.",
+      // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period
+      patternAndImportNameWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}",
+      patternAndEverything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern.",
+      // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period
+      patternAndEverythingWithCustomMessage: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}",
       everything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted.",
       // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period
       everythingWithCustomMessage: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted. {{customMessage}}",
@@ -95783,17 +103315,29 @@ module.exports = {
       return memo;
     }, {}); // Handle patterns too, either as strings or groups
 
-    const restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || [];
-    const restrictedPatternGroups = restrictedPatterns.length > 0 && typeof restrictedPatterns[0] === "string" ? [{
-      matcher: ignore().add(restrictedPatterns)
-    }] : restrictedPatterns.map(_ref => {
+    let restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || []; // standardize to array of objects if we have an array of strings
+
+    if (restrictedPatterns.length > 0 && typeof restrictedPatterns[0] === "string") {
+      restrictedPatterns = [{
+        group: restrictedPatterns
+      }];
+    } // relative paths are supported for this rule
+
+
+    const restrictedPatternGroups = restrictedPatterns.map(_ref => {
       let {
         group,
-        message
+        message,
+        caseSensitive,
+        importNames
       } = _ref;
       return {
-        matcher: ignore().add(group),
-        customMessage: message
+        matcher: ignore({
+          allowRelativePaths: true,
+          ignorecase: !caseSensitive
+        }).add(group),
+        customMessage: message,
+        importNames
       };
     }); // if no imports are restricted we don't need to check
 
@@ -95864,21 +103408,67 @@ module.exports = {
     /**
      * Report a restricted path specifically for patterns.
      * @param {node} node representing the restricted path reference
-     * @param {Object} group contains a Ignore instance for paths, and the customMessage to show if it fails
+     * @param {Object} group contains an Ignore instance for paths, the customMessage to show on failure,
+     * and any restricted import names that have been specified in the config
+     * @param {Map<string,Object[]>} importNames Map of import names that are being imported
      * @returns {void}
      * @private
      */
 
 
-    function reportPathForPatterns(node, group) {
+    function reportPathForPatterns(node, group, importNames) {
       const importSource = node.source.value.trim();
-      context.report({
-        node,
-        messageId: group.customMessage ? "patternWithCustomMessage" : "patterns",
-        data: {
-          importSource,
-          customMessage: group.customMessage
+      const customMessage = group.customMessage;
+      const restrictedImportNames = group.importNames;
+      /*
+       * If we are not restricting to any specific import names and just the pattern itself,
+       * report the error and move on
+       */
+
+      if (!restrictedImportNames) {
+        context.report({
+          node,
+          messageId: customMessage ? "patternWithCustomMessage" : "patterns",
+          data: {
+            importSource,
+            customMessage
+          }
+        });
+        return;
+      }
+
+      if (importNames.has("*")) {
+        const specifierData = importNames.get("*")[0];
+        context.report({
+          node,
+          messageId: customMessage ? "patternAndEverythingWithCustomMessage" : "patternAndEverything",
+          loc: specifierData.loc,
+          data: {
+            importSource,
+            importNames: restrictedImportNames,
+            customMessage
+          }
+        });
+      }
+
+      restrictedImportNames.forEach(importName => {
+        if (!importNames.has(importName)) {
+          return;
         }
+
+        const specifiers = importNames.get(importName);
+        specifiers.forEach(specifier => {
+          context.report({
+            node,
+            messageId: customMessage ? "patternAndImportNameWithCustomMessage" : "patternAndImportName",
+            loc: specifier.loc,
+            data: {
+              importSource,
+              customMessage,
+              importName
+            }
+          });
+        });
       });
     }
     /**
@@ -95922,12 +103512,12 @@ module.exports = {
           } else if (specifier.type === "ImportNamespaceSpecifier") {
             name = "*";
           } else if (specifier.imported) {
-            name = specifier.imported.name;
+            name = astUtils.getModuleExportName(specifier.imported);
           } else if (specifier.local) {
-            name = specifier.local.name;
+            name = astUtils.getModuleExportName(specifier.local);
           }
 
-          if (name) {
+          if (typeof name === "string") {
             if (importNames.has(name)) {
               importNames.get(name).push(specifierData);
             } else {
@@ -95940,7 +103530,7 @@ module.exports = {
       checkRestrictedPathAndReport(importSource, importNames, node);
       restrictedPatternGroups.forEach(group => {
         if (isRestrictedPattern(importSource, group)) {
-          reportPathForPatterns(node, group);
+          reportPathForPatterns(node, group, importNames);
         }
       });
     }
@@ -95961,18 +103551,27 @@ module.exports = {
 };
 
 /***/ }),
-/* 737 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 827 */
+/***/ ((module) => {
 
-/* provided dependency */ var process = __webpack_require__(494);
 // A simple implementation of make-array
-function make_array(subject) {
+function makeArray(subject) {
   return Array.isArray(subject) ? subject : [subject];
 }
 
-const REGEX_BLANK_LINE = /^\s+$/;
-const REGEX_LEADING_EXCAPED_EXCLAMATION = /^\\!/;
-const REGEX_LEADING_EXCAPED_HASH = /^\\#/;
+const EMPTY = '';
+const SPACE = ' ';
+const ESCAPE = '\\';
+const REGEX_TEST_BLANK_LINE = /^\s+$/;
+const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/;
+const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
+const REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo,
+// ./foo,
+// ../foo,
+// .
+// ..
+
+const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
 const SLASH = '/';
 const KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore')
 /* istanbul ignore next */
@@ -95982,12 +103581,23 @@ const define = (object, key, value) => Object.defineProperty(object, key, {
   value
 });
 
-const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; // Sanitize the range of a regular expression
+const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;
+
+const RETURN_FALSE = () => false; // Sanitize the range of a regular expression
 // The cases are complicated, see test cases for details
 
+
 const sanitizeRange = range => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but
 //   fatal for JavaScript regular expression, so eliminate it.
-: ''); // > If the pattern ends with a slash,
+: EMPTY); // See fixtures #59
+
+
+const cleanRangeBackSlash = slashes => {
+  const {
+    length
+  } = slashes;
+  return slashes.slice(0, length - length % 2);
+}; // > If the pattern ends with a slash,
 // > it is removed for the purpose of the following description,
 // > but it would only find a match with a directory.
 // > In other words, foo/ will match a directory foo and paths underneath it,
@@ -95999,12 +103609,12 @@ const sanitizeRange = range => range.replace(REGEX_REGEXP_RANGE, (match, from, t
 // '`foo/`' should not continue with the '`..`'
 
 
-const DEFAULT_REPLACER_PREFIX = [// > Trailing spaces are ignored unless they are quoted with backslash ("\")
+const REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\")
 [// (a\ ) -> (a )
 // (a  ) -> (a)
 // (a \ ) -> (a  )
-/\\?\s+$/, match => match.indexOf('\\') === 0 ? ' ' : ''], // replace (\ ) with ' '
-[/\\\s/g, () => ' '], // Escape metacharacters
+/\\?\s+$/, match => match.indexOf('\\') === 0 ? SPACE : EMPTY], // replace (\ ) with ' '
+[/\\\s/g, () => SPACE], // Escape metacharacters
 // which is written down by users but means special for regular expressions.
 // > There are 12 characters with special meanings:
 // > - the backslash \,
@@ -96020,9 +103630,7 @@ const DEFAULT_REPLACER_PREFIX = [// > Trailing spaces are ignored unless they ar
 // > - and the opening square bracket [,
 // > - the opening curly brace {,
 // > These special characters are often called "metacharacters".
-[/[\\^$.|*+(){]/g, match => "\\".concat(match)], [// > [abc] matches any character inside the brackets
-// >    (in this case a, b, or c);
-/\[([^\]/]*)($|\])/g, (match, p1, p2) => p2 === ']' ? "[".concat(sanitizeRange(p1), "]") : "\\".concat(match)], [// > a question mark (?) matches a single character
+[/[\\$.|*+(){^]/g, match => `\\${match}`], [// > a question mark (?) matches a single character
 /(?!\\)\?/g, () => '[^/]'], // leading slash
 [// > A leading slash matches the beginning of the pathname.
 // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".
@@ -96035,16 +103643,23 @@ const DEFAULT_REPLACER_PREFIX = [// > Trailing spaces are ignored unless they ar
 // >   under directory "foo".
 // Notice that the '*'s have been replaced as '\\*'
 /^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo'
-() => '^(?:.*\\/)?']];
-const DEFAULT_REPLACER_SUFFIX = [// starting
+() => '^(?:.*\\/)?'], // starting
 [// there will be no leading '/'
 //   (which has been replaced by section "leading slash")
 // If starts with '**', adding a '^' to the regular expression also works
 /^(?=[^^])/, function startingReplacer() {
-  return !/\/(?!$)/.test(this) // > If the pattern does not contain a slash /,
+  // If has a slash `/` at the beginning or middle
+  return !/\/(?!$)/.test(this) // > Prior to 2.22.1
+  // > If the pattern does not contain a slash /,
   // >   Git treats it as a shell glob pattern
   // Actually, if there is only a trailing slash,
   //   git also treats it as a shell glob pattern
+  // After 2.22.1 (compatible but clearer)
+  // > If there is a separator at the beginning or middle (or both)
+  // > of the pattern, then the pattern is relative to the directory
+  // > level of the particular .gitignore file itself.
+  // > Otherwise the pattern may also match at any level below
+  // > the .gitignore level.
   ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for
   // >   consumption by fnmatch(3)
   : '^';
@@ -96053,7 +103668,7 @@ const DEFAULT_REPLACER_SUFFIX = [// starting
 /\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories
 // should not use '*', or it will be replaced by the next replacer
 // Check if it is not the last `'/**'`
-(match, index, str) => index + 6 < str.length // case: /**/
+(_, index, str) => index + 6 < str.length // case: /**/
 // > A slash followed by two consecutive asterisks then a slash matches
 // >   zero or more directories.
 // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.
@@ -96068,65 +103683,79 @@ const DEFAULT_REPLACER_SUFFIX = [// starting
 // 'abc.*'  -> skip this rule
 /(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js'
 // '*.js' doesn't match 'abc'
-(match, p1) => "".concat(p1, "[^\\/]*")], // trailing wildcard
-[/(\^|\\\/)?\\\*$/, (match, p1) => {
+(_, p1) => `${p1}[^\\/]*`], [// unescape, revert step 3 except for back slash
+// For example, if a user escape a '\\*',
+// after step 3, the result will be '\\\\\\*'
+/\\\\\\(?=[$.|*+(){^])/g, () => ESCAPE], [// '\\\\' -> '\\'
+/\\\\/g, () => ESCAPE], [// > The range notation, e.g. [a-zA-Z],
+// > can be used to match one of the characters in a range.
+// `\` is escaped by step 3
+/(\\)?\[([^\]/]*?)(\\*)($|\])/g, (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]'
+? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation
+// '[bar]'
+// '[bar\\\\]'
+? `[${sanitizeRange(range)}${endEscape}]` // Invalid range notaton
+// '[bar\\]' -> '[bar\\\\]'
+: '[]' : '[]'], // ending
+[// 'js' will not match 'js.'
+// 'ab' will not match 'abc'
+/(?:[^*])$/, // WTF!
+// https://git-scm.com/docs/gitignore
+// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)
+// which re-fixes #24, #38
+// > If there is a separator at the end of the pattern then the pattern
+// > will only match directories, otherwise the pattern can match both
+// > files and directories.
+// 'js*' will not match 'a.js'
+// 'js/' will not match 'a.js'
+// 'js' will match 'a.js' and 'a.js/'
+match => /\/$/.test(match) // foo/ will not match 'foo'
+? `${match}$` // foo matches 'foo' and 'foo/'
+: `${match}(?=$|\\/$)`], // trailing wildcard
+[/(\^|\\\/)?\\\*$/, (_, p1) => {
   const prefix = p1 // '\^':
-  // '/*' does not match ''
+  // '/*' does not match EMPTY
   // '/*' does not match everything
   // '\\\/':
   // 'abc/*' does not match 'abc/'
-  ? "".concat(p1, "[^/]+") // 'a*' matches 'a'
+  ? `${p1}[^/]+` // 'a*' matches 'a'
   // 'a*' matches 'aa'
   : '[^/]*';
-  return "".concat(prefix, "(?=$|\\/$)");
-}], [// unescape
-/\\\\\\/g, () => '\\']];
-const POSITIVE_REPLACERS = [...DEFAULT_REPLACER_PREFIX, // 'f'
-// matches
-// - /f(end)
-// - /f/
-// - (start)f(end)
-// - (start)f/
-// doesn't match
-// - oof
-// - foo
-// pseudo:
-// -> (^|/)f(/|$)
-// ending
-[// 'js' will not match 'js.'
-// 'ab' will not match 'abc'
-/(?:[^*/])$/, // 'js*' will not match 'a.js'
-// 'js/' will not match 'a.js'
-// 'js' will match 'a.js' and 'a.js/'
-match => "".concat(match, "(?=$|\\/)")], ...DEFAULT_REPLACER_SUFFIX];
-const NEGATIVE_REPLACERS = [...DEFAULT_REPLACER_PREFIX, // #24, #38
-// The MISSING rule of [gitignore docs](https://git-scm.com/docs/gitignore)
-// A negative pattern without a trailing wildcard should not
-// re-include the things inside that directory.
-// eg:
-// ['node_modules/*', '!node_modules']
-// should ignore `node_modules/a.js`
-[/(?:[^*])$/, match => "".concat(match, "(?=$|\\/$)")], ...DEFAULT_REPLACER_SUFFIX]; // A simple cache, because an ignore rule only has only one certain meaning
+  return `${prefix}(?=$|\\/$)`;
+}]]; // A simple cache, because an ignore rule only has only one certain meaning
 
-const cache = Object.create(null); // @param {pattern}
+const regexCache = Object.create(null); // @param {pattern}
 
-const make_regex = (pattern, negative, ignorecase) => {
-  const r = cache[pattern];
+const makeRegex = (pattern, ignoreCase) => {
+  let source = regexCache[pattern];
 
-  if (r) {
-    return r;
+  if (!source) {
+    source = REPLACERS.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern);
+    regexCache[pattern] = source;
   }
 
-  const replacers = negative ? NEGATIVE_REPLACERS : POSITIVE_REPLACERS;
-  const source = replacers.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern);
-  return cache[pattern] = ignorecase ? new RegExp(source, 'i') : new RegExp(source);
-}; // > A blank line matches no files, so it can serve as a separator for readability.
+  return ignoreCase ? new RegExp(source, 'i') : new RegExp(source);
+};
+
+const isString = subject => typeof subject === 'string'; // > A blank line matches no files, so it can serve as a separator for readability.
 
 
-const checkPattern = pattern => pattern && typeof pattern === 'string' && !REGEX_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment.
+const checkPattern = pattern => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment.
 && pattern.indexOf('#') !== 0;
 
-const createRule = (pattern, ignorecase) => {
+const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF);
+
+class IgnoreRule {
+  constructor(origin, pattern, negative, regex) {
+    this.origin = origin;
+    this.pattern = pattern;
+    this.negative = negative;
+    this.regex = regex;
+  }
+
+}
+
+const createRule = (pattern, ignoreCase) => {
   const origin = pattern;
   let negative = false; // > An optional prefix "!" which negates the pattern;
 
@@ -96137,43 +103766,82 @@ const createRule = (pattern, ignorecase) => {
 
   pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that
   // >   begin with a literal "!", for example, `"\!important!.txt"`.
-  .replace(REGEX_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that
+  .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that
   // >   begin with a hash.
-  .replace(REGEX_LEADING_EXCAPED_HASH, '#');
-  const regex = make_regex(pattern, negative, ignorecase);
-  return {
-    origin,
-    pattern,
-    negative,
-    regex
-  };
+  .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#');
+  const regex = makeRegex(pattern, ignoreCase);
+  return new IgnoreRule(origin, pattern, negative, regex);
+};
+
+const throwError = (message, Ctor) => {
+  throw new Ctor(message);
 };
 
-class IgnoreBase {
+const checkPath = (path, originalPath, doThrow) => {
+  if (!isString(path)) {
+    return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError);
+  } // We don't know if we should ignore EMPTY, so throw
+
+
+  if (!path) {
+    return doThrow(`path must not be empty`, TypeError);
+  } // Check if it is a relative path
+
+
+  if (checkPath.isNotRelative(path)) {
+    const r = '`path.relative()`d';
+    return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError);
+  }
+
+  return true;
+};
+
+const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path);
+
+checkPath.isNotRelative = isNotRelative;
+
+checkPath.convert = p => p;
+
+class Ignore {
   constructor() {
     let {
-      ignorecase = true
+      ignorecase = true,
+      ignoreCase = ignorecase,
+      allowRelativePaths = false
     } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-    this._rules = [];
-    this._ignorecase = ignorecase;
     define(this, KEY_IGNORE, true);
+    this._rules = [];
+    this._ignoreCase = ignoreCase;
+    this._allowRelativePaths = allowRelativePaths;
 
     this._initCache();
   }
 
   _initCache() {
-    this._cache = Object.create(null);
-  } // @param {Array.<string>|string|Ignore} pattern
+    this._ignoreCache = Object.create(null);
+    this._testCache = Object.create(null);
+  }
 
+  _addPattern(pattern) {
+    // #32
+    if (pattern && pattern[KEY_IGNORE]) {
+      this._rules = this._rules.concat(pattern._rules);
+      this._added = true;
+      return;
+    }
 
-  add(pattern) {
-    this._added = false;
+    if (checkPattern(pattern)) {
+      const rule = createRule(pattern, this._ignoreCase);
+      this._added = true;
 
-    if (typeof pattern === 'string') {
-      pattern = pattern.split(/\r?\n/g);
+      this._rules.push(rule);
     }
+  } // @param {Array<string> | string | Ignore} pattern
+
 
-    make_array(pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore,
+  add(pattern) {
+    this._added = false;
+    makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore,
     // making the behavior changed.
 
     if (this._added) {
@@ -96186,44 +103854,59 @@ class IgnoreBase {
 
   addPattern(pattern) {
     return this.add(pattern);
-  }
-
-  _addPattern(pattern) {
-    // #32
-    if (pattern && pattern[KEY_IGNORE]) {
-      this._rules = this._rules.concat(pattern._rules);
-      this._added = true;
-      return;
-    }
+  } //          |           ignored : unignored
+  // negative |   0:0   |   0:1   |   1:0   |   1:1
+  // -------- | ------- | ------- | ------- | --------
+  //     0    |  TEST   |  TEST   |  SKIP   |    X
+  //     1    |  TESTIF |  SKIP   |  TEST   |    X
+  // - SKIP: always skip
+  // - TEST: always test
+  // - TESTIF: only test if checkUnignored
+  // - X: that never happen
+  // @param {boolean} whether should check if the path is unignored,
+  //   setting `checkUnignored` to `false` could reduce additional
+  //   path matching.
+  // @returns {TestResult} true if a file is ignored
+
+
+  _testOne(path, checkUnignored) {
+    let ignored = false;
+    let unignored = false;
 
-    if (checkPattern(pattern)) {
-      const rule = createRule(pattern, this._ignorecase);
-      this._added = true;
+    this._rules.forEach(rule => {
+      const {
+        negative
+      } = rule;
 
-      this._rules.push(rule);
-    }
-  }
+      if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
+        return;
+      }
 
-  filter(paths) {
-    return make_array(paths).filter(path => this._filter(path));
-  }
+      const matched = rule.regex.test(path);
 
-  createFilter() {
-    return path => this._filter(path);
-  }
+      if (matched) {
+        ignored = !negative;
+        unignored = negative;
+      }
+    });
 
-  ignores(path) {
-    return !this._filter(path);
-  } // @returns `Boolean` true if the `path` is NOT ignored
+    return {
+      ignored,
+      unignored
+    };
+  } // @returns {TestResult}
 
 
-  _filter(path, slices) {
-    if (!path) {
-      return false;
-    }
+  _test(originalPath, cache, checkUnignored, slices) {
+    const path = originalPath // Supports nullable path
+    && checkPath.convert(originalPath);
+    checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError);
+    return this._t(path, cache, checkUnignored, slices);
+  }
 
-    if (path in this._cache) {
-      return this._cache[path];
+  _t(path, cache, checkUnignored, slices) {
+    if (path in cache) {
+      return cache[path];
     }
 
     if (!slices) {
@@ -96232,53 +103915,66 @@ class IgnoreBase {
       slices = path.split(SLASH);
     }
 
-    slices.pop();
-    return this._cache[path] = slices.length // > It is not possible to re-include a file if a parent directory of
+    slices.pop(); // If the path has no parent directory, just test it
+
+    if (!slices.length) {
+      return cache[path] = this._testOne(path, checkUnignored);
+    }
+
+    const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first
+
+
+    return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of
     // >   that file is excluded.
-    // If the path contains a parent directory, check the parent first
-    ? this._filter(slices.join(SLASH) + SLASH, slices) && this._test(path) // Or only test the path
-    : this._test(path);
-  } // @returns {Boolean} true if a file is NOT ignored
+    ? parent : this._testOne(path, checkUnignored);
+  }
+
+  ignores(path) {
+    return this._test(path, this._ignoreCache, false).ignored;
+  }
 
+  createFilter() {
+    return path => !this.ignores(path);
+  }
 
-  _test(path) {
-    // Explicitly define variable type by setting matched to `0`
-    let matched = 0;
+  filter(paths) {
+    return makeArray(paths).filter(this.createFilter());
+  } // @returns {TestResult}
 
-    this._rules.forEach(rule => {
-      // if matched = true, then we only test negative rules
-      // if matched = false, then we test non-negative rules
-      if (!(matched ^ rule.negative)) {
-        matched = rule.negative ^ rule.regex.test(path);
-      }
-    });
 
-    return !matched;
+  test(path) {
+    return this._test(path, this._testCache, true);
   }
 
-} // Windows
+}
+
+const factory = options => new Ignore(options);
+
+const isPathValid = path => checkPath(path && checkPath.convert(path), path, RETURN_FALSE);
+
+factory.isPathValid = isPathValid; // Fixes typescript
+
+factory.default = factory;
+module.exports = factory; // Windows
 // --------------------------------------------------------------
 
 /* istanbul ignore if  */
 
-
 if ( // Detect `process` so that it can run in browsers.
 typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) {
-  const filter = IgnoreBase.prototype._filter;
   /* eslint no-control-regex: "off" */
+  const makePosix = str => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, '/');
 
-  const make_posix = str => /^\\\\\?\\/.test(str) || /[^\x00-\x80]+/.test(str) ? str : str.replace(/\\/g, '/');
+  checkPath.convert = makePosix; // 'C:\\foo'     <- 'C:\\foo' has been converted to 'C:/'
+  // 'd:\\foo'
 
-  IgnoreBase.prototype._filter = function filterWin32(path, slices) {
-    path = make_posix(path);
-    return filter.call(this, path, slices);
-  };
-}
+  const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
 
-module.exports = options => new IgnoreBase(options);
+  checkPath.isNotRelative = path => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path);
+}
 
 /***/ }),
-/* 738 */
+/* 828 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -96291,7 +103987,7 @@ module.exports = options => new IgnoreBase(options);
 // Rule Definition
 //------------------------------------------------------------------------------
 
-const ignore = __webpack_require__(737);
+const ignore = __webpack_require__(827);
 
 const arrayOfStrings = {
   type: "array",
@@ -96330,7 +104026,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow specified modules when loaded by `require`",
+      description: "Disallow specified modules when loaded by `require`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-restricted-modules"
     },
@@ -96373,9 +104069,12 @@ module.exports = {
 
     if (Object.keys(restrictedPaths).length === 0 && restrictedPatterns.length === 0) {
       return {};
-    }
+    } // relative paths are supported for this rule
+
 
-    const ig = ignore().add(restrictedPatterns);
+    const ig = ignore({
+      allowRelativePaths: true
+    }).add(restrictedPatterns);
     /**
      * Function to check if a node is a string literal.
      * @param {ASTNode} node The node to check.
@@ -96489,7 +104188,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 739 */
+/* 829 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -96499,7 +104198,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -96510,7 +104209,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow certain properties on certain objects",
+      description: "Disallow certain properties on certain objects",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-restricted-properties"
     },
@@ -96610,7 +104309,7 @@ module.exports = {
       const globalMatchedProperty = globallyRestrictedProperties.get(propertyName);
 
       if (matchedObjectProperty) {
-        const message = matchedObjectProperty.message ? " ".concat(matchedObjectProperty.message) : "";
+        const message = matchedObjectProperty.message ? ` ${matchedObjectProperty.message}` : "";
         context.report({
           node,
           messageId: "restrictedObjectProperty",
@@ -96621,7 +104320,7 @@ module.exports = {
           }
         });
       } else if (globalMatchedProperty) {
-        const message = globalMatchedProperty.message ? " ".concat(globalMatchedProperty.message) : "";
+        const message = globalMatchedProperty.message ? ` ${globalMatchedProperty.message}` : "";
         context.report({
           node,
           messageId: "restrictedProperty",
@@ -96676,7 +104375,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 740 */
+/* 830 */
 /***/ ((module) => {
 
 "use strict";
@@ -96694,7 +104393,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow specified syntax",
+      description: "Disallow specified syntax",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-restricted-syntax"
     },
@@ -96731,7 +104430,7 @@ module.exports = {
       const isStringFormat = typeof selectorOrObject === "string";
       const hasCustomMessage = !isStringFormat && Boolean(selectorOrObject.message);
       const selector = isStringFormat ? selectorOrObject : selectorOrObject.selector;
-      const message = hasCustomMessage ? selectorOrObject.message : "Using '".concat(selector, "' is not allowed.");
+      const message = hasCustomMessage ? selectorOrObject.message : `Using '${selector}' is not allowed.`;
       return Object.assign(result, {
         [selector](node) {
           context.report({
@@ -96750,7 +104449,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 741 */
+/* 831 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -96762,7 +104461,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -96777,7 +104476,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow assignment operators in `return` statements",
+      description: "Disallow assignment operators in `return` statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-return-assign"
     },
@@ -96827,7 +104526,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 742 */
+/* 832 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -96837,7 +104536,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -96848,7 +104547,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary `return await`",
+      description: "Disallow unnecessary `return await`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-return-await"
     },
@@ -96939,7 +104638,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 743 */
+/* 833 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -96951,7 +104650,7 @@ module.exports = {
 /* eslint no-script-url: 0 -- Code is checking to report such URLs */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -96962,7 +104661,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `javascript:` urls",
+      description: "Disallow `javascript:` urls",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-script-url"
     },
@@ -97009,7 +104708,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 744 */
+/* 834 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -97021,7 +104720,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -97102,7 +104801,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow assignments where both sides are exactly the same",
+      description: "Disallow assignments where both sides are exactly the same",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-self-assign"
     },
@@ -97144,7 +104843,7 @@ module.exports = {
 
     return {
       AssignmentExpression(node) {
-        if (node.operator === "=") {
+        if (["=", "&&=", "||=", "??="].includes(node.operator)) {
           eachSelfAssignment(node.left, node.right, props, report);
         }
       }
@@ -97155,7 +104854,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 745 */
+/* 835 */
 /***/ ((module) => {
 
 "use strict";
@@ -97174,7 +104873,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow comparisons where both sides are exactly the same",
+      description: "Disallow comparisons where both sides are exactly the same",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-self-compare"
     },
@@ -97217,7 +104916,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 746 */
+/* 836 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -97229,7 +104928,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -97246,7 +104945,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow comma operators",
+      description: "Disallow comma operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-sequences"
     },
@@ -97353,7 +105052,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 747 */
+/* 837 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -97365,11 +105064,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   findVariable
-} = __webpack_require__(501); //------------------------------------------------------------------------------
+} = __webpack_require__(571); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -97475,7 +105174,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow returning values from setters",
+      description: "Disallow returning values from setters",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-setter-return"
     },
@@ -97560,7 +105259,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 748 */
+/* 838 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -97572,18 +105271,25 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+
+const FUNC_EXPR_NODE_TYPES = new Set(["ArrowFunctionExpression", "FunctionExpression"]);
+const CALL_EXPR_NODE_TYPE = new Set(["CallExpression"]);
+const FOR_IN_OF_TYPE = /^For(?:In|Of)Statement$/u;
+const SENTINEL_TYPE = /^(?:(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|CatchClause|ImportDeclaration|ExportNamedDeclaration)$/u; //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
 /** @type {import('../shared/types').Rule} */
 
-
 module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow variable declarations from shadowing variables declared in the outer scope",
+      description: "Disallow variable declarations from shadowing variables declared in the outer scope",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-shadow"
     },
@@ -97603,6 +105309,10 @@ module.exports = {
           items: {
             type: "string"
           }
+        },
+        ignoreOnInitialization: {
+          type: "boolean",
+          default: false
         }
       },
       additionalProperties: false
@@ -97617,16 +105327,121 @@ module.exports = {
     const options = {
       builtinGlobals: context.options[0] && context.options[0].builtinGlobals,
       hoist: context.options[0] && context.options[0].hoist || "functions",
-      allow: context.options[0] && context.options[0].allow || []
+      allow: context.options[0] && context.options[0].allow || [],
+      ignoreOnInitialization: context.options[0] && context.options[0].ignoreOnInitialization
     };
+    /**
+     * Checks whether or not a given location is inside of the range of a given node.
+     * @param {ASTNode} node An node to check.
+     * @param {number} location A location to check.
+     * @returns {boolean} `true` if the location is inside of the range of the node.
+     */
+
+    function isInRange(node, location) {
+      return node && node.range[0] <= location && location <= node.range[1];
+    }
+    /**
+     * Searches from the current node through its ancestry to find a matching node.
+     * @param {ASTNode} node a node to get.
+     * @param {(node: ASTNode) => boolean} match a callback that checks whether or not the node verifies its condition or not.
+     * @returns {ASTNode|null} the matching node.
+     */
+
+
+    function findSelfOrAncestor(node, match) {
+      let currentNode = node;
+
+      while (currentNode && !match(currentNode)) {
+        currentNode = currentNode.parent;
+      }
+
+      return currentNode;
+    }
+    /**
+     * Finds function's outer scope.
+     * @param {Scope} scope Function's own scope.
+     * @returns {Scope} Function's outer scope.
+     */
+
+
+    function getOuterScope(scope) {
+      const upper = scope.upper;
+
+      if (upper.type === "function-expression-name") {
+        return upper.upper;
+      }
+
+      return upper;
+    }
+    /**
+     * Checks if a variable and a shadowedVariable have the same init pattern ancestor.
+     * @param {Object} variable a variable to check.
+     * @param {Object} shadowedVariable a shadowedVariable to check.
+     * @returns {boolean} Whether or not the variable and the shadowedVariable have the same init pattern ancestor.
+     */
+
+
+    function isInitPatternNode(variable, shadowedVariable) {
+      const outerDef = shadowedVariable.defs[0];
+
+      if (!outerDef) {
+        return false;
+      }
+
+      const {
+        variableScope
+      } = variable.scope;
+
+      if (!(FUNC_EXPR_NODE_TYPES.has(variableScope.block.type) && getOuterScope(variableScope) === shadowedVariable.scope)) {
+        return false;
+      }
+
+      const fun = variableScope.block;
+      const {
+        parent
+      } = fun;
+      const callExpression = findSelfOrAncestor(parent, node => CALL_EXPR_NODE_TYPE.has(node.type));
+
+      if (!callExpression) {
+        return false;
+      }
+
+      let node = outerDef.name;
+      const location = callExpression.range[1];
+
+      while (node) {
+        if (node.type === "VariableDeclarator") {
+          if (isInRange(node.init, location)) {
+            return true;
+          }
+
+          if (FOR_IN_OF_TYPE.test(node.parent.parent.type) && isInRange(node.parent.parent.right, location)) {
+            return true;
+          }
+
+          break;
+        } else if (node.type === "AssignmentPattern") {
+          if (isInRange(node.right, location)) {
+            return true;
+          }
+        } else if (SENTINEL_TYPE.test(node.type)) {
+          break;
+        }
+
+        node = node.parent;
+      }
+
+      return false;
+    }
     /**
      * Check if variable name is allowed.
      * @param {ASTNode} variable The variable to check.
      * @returns {boolean} Whether or not the variable name is allowed.
      */
 
+
     function isAllowed(variable) {
-      return options.allow.indexOf(variable.name) !== -1;
+      return options.allow.includes(variable.name);
     }
     /**
      * Checks if a variable of the class name in the class scope of ClassDeclaration.
@@ -97733,7 +105548,7 @@ module.exports = {
 
         const shadowed = astUtils.getVariableByName(scope.upper, variable.name);
 
-        if (shadowed && (shadowed.identifiers.length > 0 || options.builtinGlobals && "writeable" in shadowed) && !isOnInitializer(variable, shadowed) && !(options.hoist !== "all" && isInTdz(variable, shadowed))) {
+        if (shadowed && (shadowed.identifiers.length > 0 || options.builtinGlobals && "writeable" in shadowed) && !isOnInitializer(variable, shadowed) && !(options.ignoreOnInitialization && isInitPatternNode(variable, shadowed)) && !(options.hoist !== "all" && isInTdz(variable, shadowed))) {
           const location = getDeclaredLocation(shadowed);
           const messageId = location.global ? "noShadowGlobal" : "noShadow";
           const data = {
@@ -97772,7 +105587,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 749 */
+/* 839 */
 /***/ ((module) => {
 
 "use strict";
@@ -97802,7 +105617,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow identifiers from shadowing restricted names",
+      description: "Disallow identifiers from shadowing restricted names",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-shadow-restricted-names"
     },
@@ -97835,7 +105650,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 750 */
+/* 840 */
 /***/ ((module) => {
 
 "use strict";
@@ -97854,7 +105669,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow spacing between function identifiers and their applications (deprecated)",
+      description: "Disallow spacing between function identifiers and their applications (deprecated)",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-spaced-func"
     },
@@ -97910,7 +105725,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 751 */
+/* 841 */
 /***/ ((module) => {
 
 "use strict";
@@ -97928,7 +105743,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow sparse arrays",
+      description: "Disallow sparse arrays",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-sparse-arrays"
     },
@@ -97944,7 +105759,7 @@ module.exports = {
     //--------------------------------------------------------------------------
     return {
       ArrayExpression(node) {
-        const emptySpot = node.elements.indexOf(null) > -1;
+        const emptySpot = node.elements.includes(null);
 
         if (emptySpot) {
           context.report({
@@ -97960,7 +105775,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 752 */
+/* 842 */
 /***/ ((module) => {
 
 "use strict";
@@ -97981,7 +105796,7 @@ module.exports = {
     replacedBy: [],
     type: "suggestion",
     docs: {
-      description: "disallow synchronous methods",
+      description: "Disallow synchronous methods",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-sync"
     },
@@ -98019,7 +105834,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 753 */
+/* 843 */
 /***/ ((module) => {
 
 "use strict";
@@ -98042,7 +105857,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow all tabs",
+      description: "Disallow all tabs",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-tabs"
     },
@@ -98098,7 +105913,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 754 */
+/* 844 */
 /***/ ((module) => {
 
 "use strict";
@@ -98116,7 +105931,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow template literal placeholder syntax in regular strings",
+      description: "Disallow template literal placeholder syntax in regular strings",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-template-curly-in-string"
     },
@@ -98144,7 +105959,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 755 */
+/* 845 */
 /***/ ((module) => {
 
 "use strict";
@@ -98162,7 +105977,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow ternary operators",
+      description: "Disallow ternary operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-ternary"
     },
@@ -98187,7 +106002,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 756 */
+/* 846 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -98199,7 +106014,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -98225,7 +106040,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow `this`/`super` before calling `super()` in constructors",
+      description: "Disallow `this`/`super` before calling `super()` in constructors",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-this-before-super"
     },
@@ -98476,7 +106291,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 757 */
+/* 847 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -98486,7 +106301,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -98497,7 +106312,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow throwing literals as exceptions",
+      description: "Disallow throwing literals as exceptions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-throw-literal"
     },
@@ -98532,7 +106347,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 758 */
+/* 848 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -98544,7 +106359,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -98555,7 +106370,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow trailing whitespace at the end of lines",
+      description: "Disallow trailing whitespace at the end of lines",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-trailing-spaces"
     },
@@ -98582,8 +106397,8 @@ module.exports = {
   create(context) {
     const sourceCode = context.getSourceCode();
     const BLANK_CLASS = "[ \t\u00a0\u2000-\u200b\u3000]",
-          SKIP_BLANK = "^".concat(BLANK_CLASS, "*$"),
-          NONBLANK = "".concat(BLANK_CLASS, "+$");
+          SKIP_BLANK = `^${BLANK_CLASS}*$`,
+          NONBLANK = `${BLANK_CLASS}+$`;
     const options = context.options[0] || {},
           skipBlankLines = options.skipBlankLines || false,
           ignoreComments = options.ignoreComments || false;
@@ -98708,7 +106523,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 759 */
+/* 849 */
 /***/ ((module) => {
 
 "use strict";
@@ -98740,7 +106555,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow the use of undeclared variables unless mentioned in `/*global */` comments",
+      description: "Disallow the use of undeclared variables unless mentioned in `/*global */` comments",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-undef"
     },
@@ -98786,7 +106601,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 760 */
+/* 850 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -98796,7 +106611,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -98807,7 +106622,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow initializing variables to `undefined`",
+      description: "Disallow initializing variables to `undefined`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-undef-init"
     },
@@ -98864,7 +106679,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 761 */
+/* 851 */
 /***/ ((module) => {
 
 "use strict";
@@ -98882,7 +106697,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `undefined` as an identifier",
+      description: "Disallow the use of `undefined` as an identifier",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-undefined"
     },
@@ -98944,7 +106759,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 762 */
+/* 852 */
 /***/ ((module) => {
 
 "use strict";
@@ -98962,7 +106777,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow dangling underscores in identifiers",
+      description: "Disallow dangling underscores in identifiers",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-underscore-dangle"
     },
@@ -98994,6 +106809,10 @@ module.exports = {
         allowFunctionParams: {
           type: "boolean",
           default: true
+        },
+        enforceInClassFields: {
+          type: "boolean",
+          default: false
         }
       },
       additionalProperties: false
@@ -99010,6 +106829,7 @@ module.exports = {
     const allowAfterSuper = typeof options.allowAfterSuper !== "undefined" ? options.allowAfterSuper : false;
     const allowAfterThisConstructor = typeof options.allowAfterThisConstructor !== "undefined" ? options.allowAfterThisConstructor : false;
     const enforceInMethodNames = typeof options.enforceInMethodNames !== "undefined" ? options.enforceInMethodNames : false;
+    const enforceInClassFields = typeof options.enforceInClassFields !== "undefined" ? options.enforceInClassFields : false;
     const allowFunctionParams = typeof options.allowFunctionParams !== "undefined" ? options.allowFunctionParams : true; //-------------------------------------------------------------------------
     // Helpers
     //-------------------------------------------------------------------------
@@ -99022,7 +106842,7 @@ module.exports = {
      */
 
     function isAllowed(identifier) {
-      return ALLOWED_VARIABLES.some(ident => ident === identifier);
+      return ALLOWED_VARIABLES.includes(identifier);
     }
     /**
      * Check if identifier has a dangling underscore
@@ -99197,7 +107017,28 @@ module.exports = {
           node,
           messageId: "unexpectedUnderscore",
           data: {
-            identifier: node.key.type === "PrivateIdentifier" ? "#".concat(identifier) : identifier
+            identifier: node.key.type === "PrivateIdentifier" ? `#${identifier}` : identifier
+          }
+        });
+      }
+    }
+    /**
+     * Check if a class field has a dangling underscore
+     * @param {ASTNode} node node to evaluate
+     * @returns {void}
+     * @private
+     */
+
+
+    function checkForDanglingUnderscoreInClassField(node) {
+      const identifier = node.key.name;
+
+      if (typeof identifier !== "undefined" && hasDanglingUnderscore(identifier) && enforceInClassFields && !isAllowed(identifier)) {
+        context.report({
+          node,
+          messageId: "unexpectedUnderscore",
+          data: {
+            identifier: node.key.type === "PrivateIdentifier" ? `#${identifier}` : identifier
           }
         });
       }
@@ -99211,7 +107052,7 @@ module.exports = {
       VariableDeclarator: checkForDanglingUnderscoreInVariableExpression,
       MemberExpression: checkForDanglingUnderscoreInMemberExpression,
       MethodDefinition: checkForDanglingUnderscoreInMethod,
-      PropertyDefinition: checkForDanglingUnderscoreInMethod,
+      PropertyDefinition: checkForDanglingUnderscoreInClassField,
       Property: checkForDanglingUnderscoreInMethod,
       FunctionExpression: checkForDanglingUnderscoreInFunction,
       ArrowFunctionExpression: checkForDanglingUnderscoreInFunction
@@ -99221,7 +107062,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 763 */
+/* 853 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -99233,7 +107074,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -99244,7 +107085,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow confusing multiline expressions",
+      description: "Disallow confusing multiline expressions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unexpected-multiline"
     },
@@ -99339,7 +107180,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 764 */
+/* 854 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -99351,8 +107192,8 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const Traverser = __webpack_require__(495),
-      astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const Traverser = __webpack_require__(565),
+      astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -99501,7 +107342,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow unmodified loop conditions",
+      description: "Disallow unmodified loop conditions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-unmodified-loop-condition"
     },
@@ -99695,7 +107536,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 765 */
+/* 855 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -99705,7 +107546,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); // Operators that always result in a boolean value
+const astUtils = __webpack_require__(618); // Operators that always result in a boolean value
 
 
 const BOOLEAN_OPERATORS = new Set(["==", "===", "!=", "!==", ">", ">=", "<", "<=", "in", "instanceof"]);
@@ -99729,7 +107570,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow ternary operators when simpler alternatives exist",
+      description: "Disallow ternary operators when simpler alternatives exist",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-unneeded-ternary"
     },
@@ -99781,10 +107622,10 @@ module.exports = {
       if (astUtils.getPrecedence(node) < astUtils.getPrecedence({
         type: "UnaryExpression"
       })) {
-        return "!(".concat(astUtils.getParenthesisedText(sourceCode, node), ")");
+        return `!(${astUtils.getParenthesisedText(sourceCode, node)})`;
       }
 
-      return "!".concat(astUtils.getParenthesisedText(sourceCode, node));
+      return `!${astUtils.getParenthesisedText(sourceCode, node)}`;
     }
     /**
      * Tests if a given node always evaluates to a boolean value
@@ -99827,7 +107668,7 @@ module.exports = {
               } // Replace `foo ? true : false` with `foo` if `foo` is guaranteed to be a boolean, or `!!foo` otherwise.
 
 
-              return fixer.replaceText(node, isBooleanExpression(node.test) ? astUtils.getParenthesisedText(sourceCode, node.test) : "!".concat(invertExpression(node.test)));
+              return fixer.replaceText(node, isBooleanExpression(node.test) ? astUtils.getParenthesisedText(sourceCode, node.test) : `!${invertExpression(node.test)}`);
             }
 
           });
@@ -99837,9 +107678,9 @@ module.exports = {
             messageId: "unnecessaryConditionalAssignment",
             fix: fixer => {
               const shouldParenthesizeAlternate = (astUtils.getPrecedence(node.alternate) < OR_PRECEDENCE || astUtils.isCoalesceExpression(node.alternate)) && !astUtils.isParenthesised(sourceCode, node.alternate);
-              const alternateText = shouldParenthesizeAlternate ? "(".concat(sourceCode.getText(node.alternate), ")") : astUtils.getParenthesisedText(sourceCode, node.alternate);
+              const alternateText = shouldParenthesizeAlternate ? `(${sourceCode.getText(node.alternate)})` : astUtils.getParenthesisedText(sourceCode, node.alternate);
               const testText = astUtils.getParenthesisedText(sourceCode, node.test);
-              return fixer.replaceText(node, "".concat(testText, " || ").concat(alternateText));
+              return fixer.replaceText(node, `${testText} || ${alternateText}`);
             }
           });
         }
@@ -99851,7 +107692,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 766 */
+/* 856 */
 /***/ ((module) => {
 
 "use strict";
@@ -99972,7 +107813,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
+      description: "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unreachable"
     },
@@ -100126,7 +107967,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 767 */
+/* 857 */
 /***/ ((module) => {
 
 "use strict";
@@ -100190,7 +108031,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow loops with a body that allows only one iteration",
+      description: "Disallow loops with a body that allows only one iteration",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-unreachable-loop"
     },
@@ -100277,7 +108118,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 768 */
+/* 858 */
 /***/ ((module) => {
 
 "use strict";
@@ -100301,7 +108142,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow control flow statements in `finally` blocks",
+      description: "Disallow control flow statements in `finally` blocks",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unsafe-finally"
     },
@@ -100388,7 +108229,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 769 */
+/* 859 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -100400,7 +108241,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -100444,7 +108285,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow negating the left operand of relational operators",
+      description: "Disallow negating the left operand of relational operators",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unsafe-negation"
     },
@@ -100494,14 +108335,14 @@ module.exports = {
                 const negationToken = sourceCode.getFirstToken(node.left);
                 const fixRange = [negationToken.range[1], node.range[1]];
                 const text = sourceCode.text.slice(fixRange[0], fixRange[1]);
-                return fixer.replaceTextRange(fixRange, "(".concat(text, ")"));
+                return fixer.replaceTextRange(fixRange, `(${text})`);
               }
 
             }, {
               messageId: "suggestParenthesisedNegation",
 
               fix(fixer) {
-                return fixer.replaceText(node.left, "(".concat(sourceCode.getText(node.left), ")"));
+                return fixer.replaceText(node.left, `(${sourceCode.getText(node.left)})`);
               }
 
             }]
@@ -100515,7 +108356,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 770 */
+/* 860 */
 /***/ ((module) => {
 
 "use strict";
@@ -100544,7 +108385,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow use of optional chaining in contexts where the `undefined` value is not allowed",
+      description: "Disallow use of optional chaining in contexts where the `undefined` value is not allowed",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unsafe-optional-chaining"
     },
@@ -100739,7 +108580,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 771 */
+/* 861 */
 /***/ ((module) => {
 
 "use strict";
@@ -100775,7 +108616,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unused expressions",
+      description: "Disallow unused expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-unused-expressions"
     },
@@ -100866,7 +108707,7 @@ module.exports = {
        * Class static blocks do not have directive prologue.
        */
 
-      return (parent.type === "Program" || parent.type === "BlockStatement" && /Function/u.test(grandparent.type)) && directives(parent).indexOf(node) >= 0;
+      return (parent.type === "Program" || parent.type === "BlockStatement" && /Function/u.test(grandparent.type)) && directives(parent).includes(node);
     }
     /**
      * The member functions return `true` if the type has no side-effects.
@@ -100951,7 +108792,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 772 */
+/* 862 */
 /***/ ((module) => {
 
 "use strict";
@@ -100969,7 +108810,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unused labels",
+      description: "Disallow unused labels",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unused-labels"
     },
@@ -101069,7 +108910,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 773 */
+/* 863 */
 /***/ ((module) => {
 
 "use strict";
@@ -101087,7 +108928,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow unused private class members",
+      description: "Disallow unused private class members",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-unused-private-class-members"
     },
@@ -101249,7 +109090,7 @@ module.exports = {
             loc: declaredNode.key.loc,
             messageId: "unusedPrivateClassMember",
             data: {
-              classMemberName: "#".concat(classMemberName)
+              classMemberName: `#${classMemberName}`
             }
           });
         }
@@ -101261,7 +109102,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 774 */
+/* 864 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -101273,7 +109114,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -101295,7 +109136,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow unused variables",
+      description: "Disallow unused variables",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-unused-vars"
     },
@@ -101325,6 +109166,9 @@ module.exports = {
           },
           caughtErrorsIgnorePattern: {
             type: "string"
+          },
+          destructuredArrayIgnorePattern: {
+            type: "string"
           }
         },
         additionalProperties: false
@@ -101366,6 +109210,10 @@ module.exports = {
         if (firstOption.caughtErrorsIgnorePattern) {
           config.caughtErrorsIgnorePattern = new RegExp(firstOption.caughtErrorsIgnorePattern, "u");
         }
+
+        if (firstOption.destructuredArrayIgnorePattern) {
+          config.destructuredArrayIgnorePattern = new RegExp(firstOption.destructuredArrayIgnorePattern, "u");
+        }
       }
     }
     /**
@@ -101392,7 +109240,7 @@ module.exports = {
         pattern = config.varsIgnorePattern.toString();
       }
 
-      const additional = type ? ". Allowed unused ".concat(type, " must match ").concat(pattern) : "";
+      const additional = type ? `. Allowed unused ${type} must match ${pattern}` : "";
       return {
         varName: unusedVar.name,
         action: "defined",
@@ -101408,7 +109256,15 @@ module.exports = {
 
 
     function getAssignedMessageData(unusedVar) {
-      const additional = config.varsIgnorePattern ? ". Allowed unused vars must match ".concat(config.varsIgnorePattern.toString()) : "";
+      const def = unusedVar.defs[0];
+      let additional = "";
+
+      if (config.destructuredArrayIgnorePattern && def && def.name.parent.type === "ArrayPattern") {
+        additional = `. Allowed unused elements of array destructuring patterns must match ${config.destructuredArrayIgnorePattern.toString()}`;
+      } else if (config.varsIgnorePattern) {
+        additional = `. Allowed unused vars must match ${config.varsIgnorePattern.toString()}`;
+      }
+
       return {
         varName: unusedVar.name,
         action: "assigned a value",
@@ -101495,7 +109351,7 @@ module.exports = {
       let scope = ref.from;
 
       while (scope) {
-        if (nodes.indexOf(scope.block) >= 0) {
+        if (nodes.includes(scope.block)) {
           return true;
         }
 
@@ -101697,21 +109553,21 @@ module.exports = {
       rhsNode && isInside(id, rhsNode) && !isInsideOfStorableFunction(id, rhsNode));
     }
     /**
-     * Determine if an identifier is used either in for-in loops.
+     * Determine if an identifier is used either in for-in or for-of loops.
      * @param {Reference} ref The reference to check.
      * @returns {boolean} whether reference is used in the for-in loops
      * @private
      */
 
 
-    function isForInRef(ref) {
+    function isForInOfRef(ref) {
       let target = ref.identifier.parent; // "for (var ...) { return; }"
 
       if (target.type === "VariableDeclarator") {
         target = target.parent.parent;
       }
 
-      if (target.type !== "ForInStatement") {
+      if (target.type !== "ForInStatement" && target.type !== "ForOfStatement") {
         return false;
       } // "for (...) { return; }"
 
@@ -101742,7 +109598,7 @@ module.exports = {
             isFunctionDefinition = functionNodes.length > 0;
       let rhsNode = null;
       return variable.references.some(ref => {
-        if (isForInRef(ref)) {
+        if (isForInOfRef(ref)) {
           return true;
         }
 
@@ -101802,7 +109658,13 @@ module.exports = {
           const def = variable.defs[0];
 
           if (def) {
-            const type = def.type; // skip catch variables
+            const type = def.type;
+            const refUsedInArrayPatterns = variable.references.some(ref => ref.identifier.parent.type === "ArrayPattern"); // skip elements of array destructuring patterns
+
+            if ((def.name.parent.type === "ArrayPattern" || refUsedInArrayPatterns) && config.destructuredArrayIgnorePattern && config.destructuredArrayIgnorePattern.test(def.name.name)) {
+              continue;
+            } // skip catch variables
+
 
             if (type === "CatchClause") {
               if (config.caughtErrors === "none") {
@@ -101898,7 +109760,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 775 */
+/* 865 */
 /***/ ((module) => {
 
 "use strict";
@@ -101922,6 +109784,7 @@ function parseOptions(options) {
   let functions = true;
   let classes = true;
   let variables = true;
+  let allowNamedExports = false;
 
   if (typeof options === "string") {
     functions = options !== "nofunc";
@@ -101929,12 +109792,14 @@ function parseOptions(options) {
     functions = options.functions !== false;
     classes = options.classes !== false;
     variables = options.variables !== false;
+    allowNamedExports = !!options.allowNamedExports;
   }
 
   return {
     functions,
     classes,
-    variables
+    variables,
+    allowNamedExports
   };
 }
 /**
@@ -102113,7 +109978,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow the use of variables before they are defined",
+      description: "Disallow the use of variables before they are defined",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-use-before-define"
     },
@@ -102131,6 +109996,9 @@ module.exports = {
           },
           variables: {
             type: "boolean"
+          },
+          allowNamedExports: {
+            type: "boolean"
           }
         },
         additionalProperties: false
@@ -102161,6 +110029,14 @@ module.exports = {
         return false;
       }
 
+      const {
+        identifier
+      } = reference;
+
+      if (options.allowNamedExports && identifier.parent.type === "ExportSpecifier" && identifier.parent.local === identifier) {
+        return false;
+      }
+
       const variable = reference.resolved;
 
       if (!variable || variable.defs.length === 0) {
@@ -102214,7 +110090,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 776 */
+/* 866 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -102231,12 +110107,12 @@ const {
   CONSTRUCT,
   ReferenceTracker,
   getStringIfConstant
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
 const {
   RegExpParser,
   visitRegExpAST
-} = __webpack_require__(651); //------------------------------------------------------------------------------
+} = __webpack_require__(741); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -102289,7 +110165,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow useless backreferences in regular expressions",
+      description: "Disallow useless backreferences in regular expressions",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-useless-backreference"
     },
@@ -102415,7 +110291,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 777 */
+/* 867 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -102425,7 +110301,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -102466,7 +110342,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary calls to `.call()` and `.apply()`",
+      description: "Disallow unnecessary calls to `.call()` and `.apply()`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-useless-call"
     },
@@ -102506,7 +110382,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 778 */
+/* 868 */
 /***/ ((module) => {
 
 "use strict";
@@ -102524,7 +110400,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary `catch` clauses",
+      description: "Disallow unnecessary `catch` clauses",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-useless-catch"
     },
@@ -102559,7 +110435,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 779 */
+/* 869 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -102571,7 +110447,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -102641,10 +110517,10 @@ function hasUselessComputedKey(node) {
 
       return value !== "constructor";
 
-    /* istanbul ignore next */
+    /* c8 ignore next */
 
     default:
-      throw new Error("Unexpected node type: ".concat(node.type));
+      throw new Error(`Unexpected node type: ${node.type}`);
   }
 } //------------------------------------------------------------------------------
 // Rule Definition
@@ -102657,7 +110533,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary computed property keys in objects and classes",
+      description: "Disallow unnecessary computed property keys in objects and classes",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-useless-computed-key"
     },
@@ -102735,7 +110611,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 780 */
+/* 870 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -102747,7 +110623,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -102813,7 +110689,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary concatenation of literals or template literals",
+      description: "Disallow unnecessary concatenation of literals or template literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-useless-concat"
     },
@@ -102852,7 +110728,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 781 */
+/* 871 */
 /***/ ((module) => {
 
 "use strict";
@@ -102973,7 +110849,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary constructors",
+      description: "Disallow unnecessary constructors",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-useless-constructor"
     },
@@ -103023,7 +110899,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 782 */
+/* 872 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -103033,7 +110909,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -103129,7 +111005,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow unnecessary escape characters",
+      description: "Disallow unnecessary escape characters",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-useless-escape"
     },
@@ -103285,7 +111161,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 783 */
+/* 873 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -103297,7 +111173,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -103308,7 +111184,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow renaming import, export, and destructured assignments to the same name",
+      description: "Disallow renaming import, export, and destructured assignments to the same name",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-useless-rename"
     },
@@ -103421,7 +111297,7 @@ module.exports = {
         return;
       }
 
-      if (node.imported.name === node.local.name && node.imported.range[0] !== node.local.range[0]) {
+      if (node.imported.range[0] !== node.local.range[0] && astUtils.getModuleExportName(node.imported) === node.local.name) {
         reportError(node, node.imported, "Import");
       }
     }
@@ -103437,7 +111313,7 @@ module.exports = {
         return;
       }
 
-      if (node.local.name === node.exported.name && node.local.range[0] !== node.exported.range[0]) {
+      if (node.local.range[0] !== node.exported.range[0] && astUtils.getModuleExportName(node.local) === astUtils.getModuleExportName(node.exported)) {
         reportError(node, node.local, "Export");
       }
     } //--------------------------------------------------------------------------
@@ -103455,7 +111331,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 784 */
+/* 874 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -103467,8 +111343,8 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548),
-      FixTracker = __webpack_require__(662); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618),
+      FixTracker = __webpack_require__(752); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -103523,7 +111399,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow redundant return statements",
+      description: "Disallow redundant return statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-useless-return"
     },
@@ -103747,7 +111623,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 785 */
+/* 875 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -103759,7 +111635,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -103841,7 +111717,7 @@ function getScopeNode(node) {
       return currentNode;
     }
   }
-  /* istanbul ignore next : unreachable */
+  /* c8 ignore next */
 
 
   return null;
@@ -103932,7 +111808,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `let` or `const` instead of `var`",
+      description: "Require `let` or `const` instead of `var`",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-var"
     },
@@ -104073,7 +111949,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 786 */
+/* 876 */
 /***/ ((module) => {
 
 "use strict";
@@ -104091,7 +111967,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `void` operators",
+      description: "Disallow `void` operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-void"
     },
@@ -104133,7 +112009,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 787 */
+/* 877 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -104143,9 +112019,9 @@ module.exports = {
  */
 
 
-const escapeRegExp = __webpack_require__(525);
+const escapeRegExp = __webpack_require__(595);
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const CHAR_LIMIT = 40; //------------------------------------------------------------------------------
 // Rule Definition
@@ -104157,7 +112033,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow specified warning terms in comments",
+      description: "Disallow specified warning terms in comments",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-warning-comments"
     },
@@ -104172,6 +112048,15 @@ module.exports = {
         },
         location: {
           enum: ["start", "anywhere"]
+        },
+        decoration: {
+          type: "array",
+          items: {
+            type: "string",
+            pattern: "^\\S$"
+          },
+          minItems: 1,
+          uniqueItems: true
         }
       },
       additionalProperties: false
@@ -104186,6 +112071,7 @@ module.exports = {
           configuration = context.options[0] || {},
           warningTerms = configuration.terms || ["todo", "fixme", "xxx"],
           location = configuration.location || "start",
+          decoration = [...(configuration.decoration || [])].join(""),
           selfConfigRegEx = /\bno-warning-comments\b/u;
     /**
      * Convert a warning term into a RegExp which will match a comment containing that whole word in the specified
@@ -104197,50 +112083,54 @@ module.exports = {
 
     function convertToRegExp(term) {
       const escaped = escapeRegExp(term);
-      const wordBoundary = "\\b";
-      const eitherOrWordBoundary = "|".concat(wordBoundary);
-      let prefix;
+      const escapedDecoration = escapeRegExp(decoration);
       /*
-       * If the term ends in a word character (a-z0-9_), ensure a word
-       * boundary at the end, so that substrings do not get falsely
-       * matched. eg "todo" in a string such as "mastodon".
-       * If the term ends in a non-word character, then \b won't match on
-       * the boundary to the next non-word character, which would likely
-       * be a space. For example `/\bFIX!\b/.test('FIX! blah') === false`.
-       * In these cases, use no bounding match. Same applies for the
-       * prefix, handled below.
+       * When matching at the start, ignore leading whitespace, and
+       * there's no need to worry about word boundaries.
+       *
+       * These expressions for the prefix and suffix are designed as follows:
+       * ^   handles any terms at the beginning of a comment.
+       *     e.g. terms ["TODO"] matches `//TODO something`
+       * $   handles any terms at the end of a comment
+       *     e.g. terms ["TODO"] matches `// something TODO`
+       * \b  handles terms preceded/followed by word boundary
+       *     e.g. terms: ["!FIX", "FIX!"] matches `// FIX!something` or `// something!FIX`
+       *          terms: ["FIX"] matches `// FIX!` or `// !FIX`, but not `// fixed or affix`
+       *
+       * For location start:
+       * [\s]* handles optional leading spaces
+       *     e.g. terms ["TODO"] matches `//    TODO something`
+       * [\s\*]* (where "\*" is the escaped string of decoration)
+       *     handles optional leading spaces or decoration characters (for "start" location only)
+       *     e.g. terms ["TODO"] matches `/**** TODO something ... `
        */
 
-      const suffix = /\w$/u.test(term) ? "\\b" : "";
+      const wordBoundary = "\\b";
+      let prefix = "";
 
       if (location === "start") {
-        /*
-         * When matching at the start, ignore leading whitespace, and
-         * there's no need to worry about word boundaries.
-         */
-        prefix = "^\\s*";
+        prefix = `^[\\s${escapedDecoration}]*`;
       } else if (/^\w/u.test(term)) {
         prefix = wordBoundary;
-      } else {
-        prefix = "";
       }
 
-      if (location === "start") {
-        /*
-         * For location "start" the regex should be
-         * ^\s*TERM\b.  This checks the word boundary
-         * at the beginning of the comment.
-         */
-        return new RegExp(prefix + escaped + suffix, "iu");
-      }
+      const suffix = /\w$/u.test(term) ? wordBoundary : "";
+      const flags = "iu"; // Case-insensitive with Unicode case folding.
+
       /*
-       * For location "anywhere" the regex should be
-       * \bTERM\b|\bTERM\b, this checks the entire comment
-       * for the term.
+       * For location "start", the typical regex is:
+       *   /^[\s]*ESCAPED_TERM\b/iu.
+       * Or if decoration characters are specified (e.g. "*"), then any of
+       * those characters may appear in any order at the start:
+       *   /^[\s\*]*ESCAPED_TERM\b/iu.
+       *
+       * For location "anywhere" the typical regex is
+       *   /\bESCAPED_TERM\b/iu
+       *
+       * If it starts or ends with non-word character, the prefix and suffix are empty, respectively.
        */
 
-
-      return new RegExp(prefix + escaped + suffix + eitherOrWordBoundary + term + wordBoundary, "iu");
+      return new RegExp(`${prefix}${escaped}${suffix}`, flags);
     }
 
     const warningRegExps = warningTerms.map(convertToRegExp);
@@ -104279,7 +112169,7 @@ module.exports = {
         let truncated = false;
 
         for (const c of comment.trim().split(/\s+/u)) {
-          const tmp = commentToDisplay ? "".concat(commentToDisplay, " ").concat(c) : c;
+          const tmp = commentToDisplay ? `${commentToDisplay} ${c}` : c;
 
           if (tmp.length <= CHAR_LIMIT) {
             commentToDisplay = tmp;
@@ -104294,7 +112184,7 @@ module.exports = {
           messageId: "unexpectedComment",
           data: {
             matchedTerm,
-            comment: "".concat(commentToDisplay).concat(truncated ? "..." : "")
+            comment: `${commentToDisplay}${truncated ? "..." : ""}`
           }
         });
       });
@@ -104312,7 +112202,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 788 */
+/* 878 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -104324,7 +112214,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -104335,7 +112225,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "disallow whitespace before properties",
+      description: "Disallow whitespace before properties",
       recommended: false,
       url: "https://eslint.org/docs/rules/no-whitespace-before-property"
     },
@@ -104427,7 +112317,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 789 */
+/* 879 */
 /***/ ((module) => {
 
 "use strict";
@@ -104445,7 +112335,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `with` statements",
+      description: "Disallow `with` statements",
       recommended: true,
       url: "https://eslint.org/docs/rules/no-with"
     },
@@ -104470,7 +112360,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 790 */
+/* 880 */
 /***/ ((module) => {
 
 "use strict";
@@ -104491,7 +112381,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce the location of single-line statements",
+      description: "Enforce the location of single-line statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/nonblock-statement-body-position"
     },
@@ -104594,7 +112484,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 791 */
+/* 881 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -104606,7 +112496,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 // Schema objects.
@@ -104747,7 +112637,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent line breaks after opening and before closing braces",
+      description: "Enforce consistent line breaks after opening and before closing braces",
       recommended: false,
       url: "https://eslint.org/docs/rules/object-curly-newline"
     },
@@ -104905,7 +112795,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 792 */
+/* 882 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -104915,7 +112805,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -104926,7 +112816,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing inside braces",
+      description: "Enforce consistent spacing inside braces",
       recommended: false,
       url: "https://eslint.org/docs/rules/object-curly-spacing"
     },
@@ -105233,7 +113123,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 793 */
+/* 883 */
 /***/ ((module) => {
 
 "use strict";
@@ -105251,7 +113141,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce placing object properties on separate lines",
+      description: "Enforce placing object properties on separate lines",
       recommended: false,
       url: "https://eslint.org/docs/rules/object-property-newline"
     },
@@ -105329,7 +113219,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 794 */
+/* 884 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -105350,7 +113240,7 @@ const OPTIONS = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -105361,7 +113251,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require or disallow method and property shorthand syntax for object literals",
+      description: "Require or disallow method and property shorthand syntax for object literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/object-shorthand"
     },
@@ -105399,6 +113289,9 @@ module.exports = {
             ignoreConstructors: {
               type: "boolean"
             },
+            methodsIgnorePattern: {
+              type: "string"
+            },
             avoidQuotes: {
               type: "boolean"
             },
@@ -105432,6 +113325,7 @@ module.exports = {
     const APPLY_CONSISTENT_AS_NEEDED = APPLY === OPTIONS.consistentAsNeeded;
     const PARAMS = context.options[1] || {};
     const IGNORE_CONSTRUCTORS = PARAMS.ignoreConstructors;
+    const METHODS_IGNORE_PATTERN = PARAMS.methodsIgnorePattern ? new RegExp(PARAMS.methodsIgnorePattern, "u") : null;
     const AVOID_QUOTES = PARAMS.avoidQuotes;
     const AVOID_EXPLICIT_RETURN_ARROWS = !!PARAMS.avoidExplicitReturnArrows;
     const sourceCode = context.getSourceCode(); //--------------------------------------------------------------------------
@@ -105608,7 +113502,7 @@ module.exports = {
       const sliceStart = shouldAddParensAroundParameters ? node.value.params[0].range[0] : tokenBeforeParams.range[0];
       const sliceEnd = sourceCode.getTokenBefore(arrowToken).range[1];
       const oldParamText = sourceCode.text.slice(sliceStart, sliceEnd);
-      const newParamText = shouldAddParensAroundParameters ? "(".concat(oldParamText, ")") : oldParamText;
+      const newParamText = shouldAddParensAroundParameters ? `(${oldParamText})` : oldParamText;
       return fixer.replaceTextRange(fixRange, methodPrefix + newParamText + fnBody);
     }
     /**
@@ -105626,14 +113520,14 @@ module.exports = {
       let functionHeader = "function";
 
       if (node.value.async) {
-        functionHeader = "async ".concat(functionHeader);
+        functionHeader = `async ${functionHeader}`;
       }
 
       if (node.value.generator) {
-        functionHeader = "".concat(functionHeader, "*");
+        functionHeader = `${functionHeader}*`;
       }
 
-      return fixer.replaceTextRange([node.range[0], lastKeyToken.range[1]], "".concat(keyText, ": ").concat(functionHeader));
+      return fixer.replaceTextRange([node.range[0], lastKeyToken.range[1]], `${keyText}: ${functionHeader}`);
     }
     /*
      * To determine whether a given arrow function has a lexical identifier (`this`, `arguments`, `super`, or `new.target`),
@@ -105757,7 +113651,7 @@ module.exports = {
             context.report({
               node,
               messageId: "expectedPropertyLongform",
-              fix: fixer => fixer.insertTextAfter(node.key, ": ".concat(node.key.name))
+              fix: fixer => fixer.insertTextAfter(node.key, `: ${node.key.name}`)
             });
           }
         } else if (APPLY_TO_METHODS && !node.value.id && (node.value.type === "FunctionExpression" || node.value.type === "ArrowFunctionExpression")) {
@@ -105765,6 +113659,14 @@ module.exports = {
             return;
           }
 
+          if (METHODS_IGNORE_PATTERN) {
+            const propertyName = astUtils.getStaticPropertyName(node);
+
+            if (propertyName !== null && METHODS_IGNORE_PATTERN.test(propertyName)) {
+              return;
+            }
+          }
+
           if (AVOID_QUOTES && isStringLiteral(node.key)) {
             return;
           } // {[x]: function(){}} should be written as {[x]() {}}
@@ -105812,7 +113714,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 795 */
+/* 885 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -105824,7 +113726,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -105848,7 +113750,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce variables to be declared either together or separately in functions",
+      description: "Enforce variables to be declared either together or separately in functions",
       recommended: false,
       url: "https://eslint.org/docs/rules/one-var"
     },
@@ -106200,7 +114102,7 @@ module.exports = {
          */
 
         if (afterComma.range[0] === tokenAfterDeclarator.range[1]) {
-          return fixer.replaceText(tokenAfterDeclarator, "; ".concat(exportPlacement).concat(declaration.kind, " "));
+          return fixer.replaceText(tokenAfterDeclarator, `; ${exportPlacement}${declaration.kind} `);
         }
         /*
          * `var x,
@@ -106219,10 +114121,10 @@ module.exports = {
             });
           }
 
-          return fixer.replaceTextRange([tokenAfterDeclarator.range[0], lastComment.range[0]], ";".concat(sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])).concat(exportPlacement).concat(declaration.kind, " "));
+          return fixer.replaceTextRange([tokenAfterDeclarator.range[0], lastComment.range[0]], `;${sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])}${exportPlacement}${declaration.kind} `);
         }
 
-        return fixer.replaceText(tokenAfterDeclarator, "; ".concat(exportPlacement).concat(declaration.kind));
+        return fixer.replaceText(tokenAfterDeclarator, `; ${exportPlacement}${declaration.kind}`);
       }).filter(x => x);
     }
     /**
@@ -106408,7 +114310,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 796 */
+/* 886 */
 /***/ ((module) => {
 
 "use strict";
@@ -106426,7 +114328,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require or disallow newlines around variable declarations",
+      description: "Require or disallow newlines around variable declarations",
       recommended: false,
       url: "https://eslint.org/docs/rules/one-var-declaration-per-line"
     },
@@ -106496,7 +114398,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 797 */
+/* 887 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -106508,7 +114410,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -106522,7 +114424,7 @@ const astUtils = __webpack_require__(548); //-----------------------------------
 
 
 function isCommutativeOperatorWithShorthand(operator) {
-  return ["*", "&", "^", "|"].indexOf(operator) >= 0;
+  return ["*", "&", "^", "|"].includes(operator);
 }
 /**
  * Checks whether an operator is not commutative and has an operator assignment
@@ -106534,7 +114436,7 @@ function isCommutativeOperatorWithShorthand(operator) {
 
 
 function isNonCommutativeOperatorWithShorthand(operator) {
-  return ["+", "-", "/", "%", "<<", ">>", ">>>", "**"].indexOf(operator) >= 0;
+  return ["+", "-", "/", "%", "<<", ">>", ">>>", "**"].includes(operator);
 } //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
@@ -106557,7 +114459,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require or disallow assignment operator shorthand where possible",
+      description: "Require or disallow assignment operator shorthand where possible",
       recommended: false,
       url: "https://eslint.org/docs/rules/operator-assignment"
     },
@@ -106566,8 +114468,8 @@ module.exports = {
     }],
     fixable: "code",
     messages: {
-      replaced: "Assignment (=) can be replaced with operator assignment ({{operator}}=).",
-      unexpected: "Unexpected operator assignment ({{operator}}=) shorthand."
+      replaced: "Assignment (=) can be replaced with operator assignment ({{operator}}).",
+      unexpected: "Unexpected operator assignment ({{operator}}) shorthand."
     }
   },
 
@@ -106599,12 +114501,14 @@ module.exports = {
       const operator = expr.operator;
 
       if (isCommutativeOperatorWithShorthand(operator) || isNonCommutativeOperatorWithShorthand(operator)) {
+        const replacementOperator = `${operator}=`;
+
         if (astUtils.isSameReference(left, expr.left, true)) {
           context.report({
             node,
             messageId: "replaced",
             data: {
-              operator
+              operator: replacementOperator
             },
 
             fix(fixer) {
@@ -106618,7 +114522,7 @@ module.exports = {
                   return null;
                 }
 
-                return fixer.replaceText(node, "".concat(leftText).concat(expr.operator, "=").concat(rightText));
+                return fixer.replaceText(node, `${leftText}${replacementOperator}${rightText}`);
               }
 
               return null;
@@ -106635,7 +114539,7 @@ module.exports = {
             node,
             messageId: "replaced",
             data: {
-              operator
+              operator: replacementOperator
             }
           });
         }
@@ -106674,7 +114578,7 @@ module.exports = {
                 type: "BinaryExpression",
                 operator: newOperator
               }) && !astUtils.isParenthesised(sourceCode, node.right)) {
-                rightText = "".concat(sourceCode.text.slice(operatorToken.range[1], node.right.range[0]), "(").concat(sourceCode.getText(node.right), ")");
+                rightText = `${sourceCode.text.slice(operatorToken.range[1], node.right.range[0])}(${sourceCode.getText(node.right)})`;
               } else {
                 const tokenAfterOperator = sourceCode.getTokenAfter(operatorToken, {
                   includeComments: true
@@ -106688,10 +114592,10 @@ module.exports = {
                   rightTextPrefix = " "; // foo+=+bar -> foo= foo+ +bar
                 }
 
-                rightText = "".concat(rightTextPrefix).concat(sourceCode.text.slice(operatorToken.range[1], node.range[1]));
+                rightText = `${rightTextPrefix}${sourceCode.text.slice(operatorToken.range[1], node.range[1])}`;
               }
 
-              return fixer.replaceText(node, "".concat(leftText, "= ").concat(leftText).concat(newOperator).concat(rightText));
+              return fixer.replaceText(node, `${leftText}= ${leftText}${newOperator}${rightText}`);
             }
 
             return null;
@@ -106709,7 +114613,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 798 */
+/* 888 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -106721,7 +114625,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -106732,7 +114636,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent linebreak style for operators",
+      description: "Enforce consistent linebreak style for operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/operator-linebreak"
     },
@@ -106943,7 +114847,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 799 */
+/* 889 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -106955,7 +114859,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -106966,7 +114870,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow padding within blocks",
+      description: "Require or disallow padding within blocks",
       recommended: false,
       url: "https://eslint.org/docs/rules/padded-blocks"
     },
@@ -107135,7 +115039,7 @@ module.exports = {
         case "ClassBody":
           return options.classes;
 
-        /* istanbul ignore next */
+        /* c8 ignore next */
 
         default:
           throw new Error("unreachable");
@@ -107273,7 +115177,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 800 */
+/* 890 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -107285,17 +115189,13 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-var _templateObject;
-
-function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
-
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
 
-const LT = "[".concat(Array.from(astUtils.LINEBREAKS).join(""), "]");
-const PADDING_LINE_SEQUENCE = new RegExp(String.raw(_templateObject || (_templateObject = _taggedTemplateLiteral(["^(s*?", ")s*", "(s*;?)$"], ["^(\\s*?", ")\\s*", "(\\s*;?)$"])), LT, LT), "u");
+const LT = `[${Array.from(astUtils.LINEBREAKS).join("")}]`;
+const PADDING_LINE_SEQUENCE = new RegExp(String.raw`^(\s*?${LT})\s*${LT}(\s*;?)$`, "u");
 const CJS_EXPORT = /^(?:module\s*\.\s*)?exports(?:\s*\.|\s*\[|$)/u;
 const CJS_IMPORT = /^require\(/u;
 /**
@@ -107677,7 +115577,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow padding lines between statements",
+      description: "Require or disallow padding lines between statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/padding-line-between-statements"
     },
@@ -107696,8 +115596,7 @@ module.exports = {
               enum: Object.keys(StatementTypes)
             },
             minItems: 1,
-            uniqueItems: true,
-            additionalItems: false
+            uniqueItems: true
           }]
         }
       },
@@ -107717,8 +115616,7 @@ module.exports = {
         },
         additionalProperties: false,
         required: ["blankLine", "prev", "next"]
-      },
-      additionalItems: false
+      }
     },
     messages: {
       unexpectedBlankLine: "Unexpected blank line before this statement.",
@@ -107885,7 +115783,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 801 */
+/* 891 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -107895,7 +115793,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -107943,7 +115841,7 @@ function getVariableOfArguments(scope) {
       return variable.identifiers.length === 0 ? variable : null;
     }
   }
-  /* istanbul ignore next */
+  /* c8 ignore next */
 
 
   return null;
@@ -108013,7 +115911,7 @@ function getCallbackInfo(node) {
     currentNode = parent;
     parent = parent.parent;
   }
-  /* istanbul ignore next */
+  /* c8 ignore next */
 
 
   throw new Error("unreachable");
@@ -108040,7 +115938,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require using arrow functions for callbacks",
+      description: "Require using arrow functions for callbacks",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-arrow-callback"
     },
@@ -108261,7 +116159,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 802 */
+/* 892 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -108273,9 +116171,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const FixTracker = __webpack_require__(662);
+const FixTracker = __webpack_require__(752);
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -108318,7 +116216,7 @@ function canBecomeVariableDeclaration(identifier) {
 
 
 function isOuterVariableInDestructing(name, initScope) {
-  if (initScope.through.find(ref => ref.resolved && ref.resolved.name === name)) {
+  if (initScope.through.some(ref => ref.resolved && ref.resolved.name === name)) {
     return true;
   }
 
@@ -108579,7 +116477,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `const` declarations for variables that are never reassigned after declared",
+      description: "Require `const` declarations for variables that are never reassigned after declared",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-const"
     },
@@ -108684,7 +116582,17 @@ module.exports = {
              * of the declarations in the current block.
              */
             reportCount += nodesToReport.length;
-            shouldFix = shouldFix && reportCount === varDeclParent.declarations.length;
+            let totalDeclarationsCount = 0;
+            varDeclParent.declarations.forEach(declaration => {
+              if (declaration.id.type === "ObjectPattern") {
+                totalDeclarationsCount += declaration.id.properties.length;
+              } else if (declaration.id.type === "ArrayPattern") {
+                totalDeclarationsCount += declaration.id.elements.length;
+              } else {
+                totalDeclarationsCount += 1;
+              }
+            });
+            shouldFix = shouldFix && reportCount === totalDeclarationsCount;
           }
         }
 
@@ -108725,7 +116633,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 803 */
+/* 893 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -108737,7 +116645,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -108754,7 +116662,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require destructuring from arrays and/or objects",
+      description: "Require destructuring from arrays and/or objects",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-destructuring"
     },
@@ -108923,10 +116831,10 @@ module.exports = {
       let objectText = sourceCode.getText(rightNode.object);
 
       if (astUtils.getPrecedence(rightNode.object) < PRECEDENCE_OF_ASSIGNMENT_EXPR) {
-        objectText = "(".concat(objectText, ")");
+        objectText = `(${objectText})`;
       }
 
-      return fixer.replaceText(node, "{".concat(rightNode.property.name, "} = ").concat(objectText));
+      return fixer.replaceText(node, `{${rightNode.property.name}} = ${objectText}`);
     }
     /**
      * Check that the `prefer-destructuring` rules are followed based on the
@@ -109015,7 +116923,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 804 */
+/* 894 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -109027,12 +116935,12 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   CALL,
   ReferenceTracker
-} = __webpack_require__(501); //------------------------------------------------------------------------------
+} = __webpack_require__(571); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -109086,7 +116994,7 @@ function doesExponentiationExpressionNeedParens(node, sourceCode) {
 
 
 function parenthesizeIfShould(text, shouldParenthesize) {
-  return shouldParenthesize ? "(".concat(text, ")") : text;
+  return shouldParenthesize ? `(${text})` : text;
 } //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
@@ -109098,7 +117006,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow the use of `Math.pow` in favor of the `**` operator",
+      description: "Disallow the use of `Math.pow` in favor of the `**` operator",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-exponentiation-operator"
     },
@@ -109159,8 +117067,8 @@ module.exports = {
 
           const baseReplacement = parenthesizeIfShould(baseText, shouldParenthesizeBase),
                 exponentReplacement = parenthesizeIfShould(exponentText, shouldParenthesizeExponent),
-                replacement = parenthesizeIfShould("".concat(baseReplacement, "**").concat(exponentReplacement), shouldParenthesizeAll);
-          return fixer.replaceText(node, "".concat(prefix).concat(replacement).concat(suffix));
+                replacement = parenthesizeIfShould(`${baseReplacement}**${exponentReplacement}`, shouldParenthesizeAll);
+          return fixer.replaceText(node, `${prefix}${replacement}${suffix}`);
         }
 
       });
@@ -109191,7 +117099,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 805 */
+/* 895 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -109208,9 +117116,9 @@ const {
   CONSTRUCT,
   ReferenceTracker,
   getStringIfConstant
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
-const regexpp = __webpack_require__(651); //------------------------------------------------------------------------------
+const regexpp = __webpack_require__(741); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -109225,7 +117133,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce using named capture group in regular expression",
+      description: "Enforce using named capture group in regular expression",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-named-capture-group"
     },
@@ -109304,7 +117212,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 806 */
+/* 896 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -109316,7 +117224,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -109352,7 +117260,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals",
+      description: "Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-numeric-literals"
     },
@@ -109392,7 +117300,7 @@ module.exports = {
                 return null;
               }
 
-              const replacement = "".concat(literalPrefix).concat(str);
+              const replacement = `${literalPrefix}${str}`;
 
               if (+replacement !== parseInt(str, radix)) {
                 /*
@@ -109425,7 +117333,7 @@ module.exports = {
                 suffix = " ";
               }
 
-              return fixer.replaceText(node, "".concat(prefix).concat(replacement).concat(suffix));
+              return fixer.replaceText(node, `${prefix}${replacement}${suffix}`);
             }
 
           });
@@ -109438,7 +117346,116 @@ module.exports = {
 };
 
 /***/ }),
-/* 807 */
+/* 897 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Prefers Object.hasOwn() instead of Object.prototype.hasOwnProperty.call()
+ * @author Nitin Kumar
+ * @author Gautam Arora
+ */
+ //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+/**
+ * Checks if the given node is considered to be an access to a property of `Object.prototype`.
+ * @param {ASTNode} node `MemberExpression` node to evaluate.
+ * @returns {boolean} `true` if `node.object` is `Object`, `Object.prototype`, or `{}` (empty 'ObjectExpression' node).
+ */
+
+
+function hasLeftHandObject(node) {
+  /*
+   * ({}).hasOwnProperty.call(obj, prop) - `true`
+   * ({ foo }.hasOwnProperty.call(obj, prop)) - `false`, object literal should be empty
+   */
+  if (node.object.type === "ObjectExpression" && node.object.properties.length === 0) {
+    return true;
+  }
+
+  const objectNodeToCheck = node.object.type === "MemberExpression" && astUtils.getStaticPropertyName(node.object) === "prototype" ? node.object.object : node.object;
+
+  if (objectNodeToCheck.type === "Identifier" && objectNodeToCheck.name === "Object") {
+    return true;
+  }
+
+  return false;
+} //------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+/** @type {import('../shared/types').Rule} */
+
+
+module.exports = {
+  meta: {
+    type: "suggestion",
+    docs: {
+      description: "Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`",
+      recommended: false,
+      url: "https://eslint.org/docs/rules/prefer-object-has-own"
+    },
+    schema: [],
+    messages: {
+      useHasOwn: "Use 'Object.hasOwn()' instead of 'Object.prototype.hasOwnProperty.call()'."
+    },
+    fixable: "code"
+  },
+
+  create(context) {
+    return {
+      CallExpression(node) {
+        if (!(node.callee.type === "MemberExpression" && node.callee.object.type === "MemberExpression")) {
+          return;
+        }
+
+        const calleePropertyName = astUtils.getStaticPropertyName(node.callee);
+        const objectPropertyName = astUtils.getStaticPropertyName(node.callee.object);
+        const isObject = hasLeftHandObject(node.callee.object); // check `Object` scope
+
+        const scope = context.getScope();
+        const variable = astUtils.getVariableByName(scope, "Object");
+
+        if (calleePropertyName === "call" && objectPropertyName === "hasOwnProperty" && isObject && variable && variable.scope.type === "global") {
+          context.report({
+            node,
+            messageId: "useHasOwn",
+
+            fix(fixer) {
+              const sourceCode = context.getSourceCode();
+
+              if (sourceCode.getCommentsInside(node.callee).length > 0) {
+                return null;
+              }
+
+              const tokenJustBeforeNode = sourceCode.getTokenBefore(node.callee, {
+                includeComments: true
+              }); // for https://github.com/eslint/eslint/pull/15346#issuecomment-991417335
+
+              if (tokenJustBeforeNode && tokenJustBeforeNode.range[1] === node.callee.range[0] && !astUtils.canTokensBeAdjacent(tokenJustBeforeNode, "Object.hasOwn")) {
+                return fixer.replaceText(node.callee, " Object.hasOwn");
+              }
+
+              return fixer.replaceText(node.callee, "Object.hasOwn");
+            }
+
+          });
+        }
+      }
+
+    };
+  }
+
+};
+
+/***/ }),
+/* 898 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -109452,14 +117469,14 @@ module.exports = {
 const {
   CALL,
   ReferenceTracker
-} = __webpack_require__(501);
+} = __webpack_require__(571);
 
 const {
   isCommaToken,
   isOpeningParenToken,
   isClosingParenToken,
   isParenthesised
-} = __webpack_require__(548);
+} = __webpack_require__(618);
 
 const ANY_SPACE = /\s/u;
 /**
@@ -109685,7 +117702,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead.",
+      description: "Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead.",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-object-spread"
     },
@@ -109732,7 +117749,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 808 */
+/* 899 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -109742,7 +117759,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -109753,7 +117770,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require using Error objects as Promise rejection reasons",
+      description: "Require using Error objects as Promise rejection reasons",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-promise-reject-errors"
     },
@@ -109849,7 +117866,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 809 */
+/* 900 */
 /***/ ((module) => {
 
 "use strict";
@@ -109868,7 +117885,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `Reflect` methods where applicable",
+      description: "Require `Reflect` methods where applicable",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-reflect"
     },
@@ -109940,7 +117957,7 @@ module.exports = {
         const methodName = (node.callee.property || {}).name;
         const isReflectCall = (node.callee.object || {}).name === "Reflect";
         const hasReflectSubstitute = Object.prototype.hasOwnProperty.call(reflectSubstitutes, methodName);
-        const userConfiguredException = exceptions.indexOf(methodName) !== -1;
+        const userConfiguredException = exceptions.includes(methodName);
 
         if (hasReflectSubstitute && !isReflectCall && !userConfiguredException) {
           report(node, existingNames[methodName], reflectSubstitutes[methodName]);
@@ -109950,7 +117967,7 @@ module.exports = {
       UnaryExpression(node) {
         const isDeleteOperator = node.operator === "delete";
         const targetsIdentifier = node.argument.type === "Identifier";
-        const userConfiguredException = exceptions.indexOf("delete") !== -1;
+        const userConfiguredException = exceptions.includes("delete");
 
         if (isDeleteOperator && !targetsIdentifier && !userConfiguredException) {
           report(node, "the delete keyword", "Reflect.deleteProperty");
@@ -109963,7 +117980,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 810 */
+/* 901 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -109975,24 +117992,35 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
 const {
   CALL,
   CONSTRUCT,
   ReferenceTracker,
   findVariable
-} = __webpack_require__(501); //------------------------------------------------------------------------------
+} = __webpack_require__(571);
+
+const {
+  RegExpValidator,
+  visitRegExpAST,
+  RegExpParser
+} = __webpack_require__(741);
+
+const {
+  canTokensBeAdjacent
+} = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
+
+const REGEXPP_LATEST_ECMA_VERSION = 2022;
 /**
  * Determines whether the given node is a string literal.
  * @param {ASTNode} node Node to check.
  * @returns {boolean} True if the node is a string literal.
  */
 
-
 function isStringLiteral(node) {
   return node.type === "Literal" && typeof node.value === "string";
 }
@@ -110015,21 +118043,23 @@ function isRegexLiteral(node) {
 
 function isStaticTemplateLiteral(node) {
   return node.type === "TemplateLiteral" && node.expressions.length === 0;
-} //------------------------------------------------------------------------------
+}
+
+const validPrecedingTokens = new Set(["(", ";", "[", ",", "=", "+", "*", "-", "?", "~", "%", "**", "!", "typeof", "instanceof", "&&", "||", "??", "return", "...", "delete", "void", "in", "<", ">", "<=", ">=", "==", "===", "!=", "!==", "<<", ">>", ">>>", "&", "|", "^", ":", "{", "=>", "*=", "<<=", ">>=", ">>>=", "^=", "|=", "&=", "??=", "||=", "&&=", "**=", "+=", "-=", "/=", "%=", "/", "do", "break", "continue", "debugger", "case", "throw"]); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
 /** @type {import('../shared/types').Rule} */
 
-
 module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow use of the `RegExp` constructor in favor of regular expression literals",
+      description: "Disallow use of the `RegExp` constructor in favor of regular expression literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-regex-literals"
     },
+    hasSuggestions: true,
     schema: [{
       type: "object",
       properties: {
@@ -110042,6 +118072,7 @@ module.exports = {
     }],
     messages: {
       unexpectedRegExp: "Use a regular expression literal instead of the 'RegExp' constructor.",
+      replaceWithLiteral: "Replace with an equivalent regular expression literal.",
       unexpectedRedundantRegExp: "Regular expression literal is unnecessarily wrapped within a 'RegExp' constructor.",
       unexpectedRedundantRegExpWithFlags: "Use regular expression literal with flags instead of the 'RegExp' constructor."
     }
@@ -110051,6 +118082,7 @@ module.exports = {
     const [{
       disallowRedundantWrapping = false
     } = {}] = context.options;
+    const sourceCode = context.getSourceCode();
     /**
      * Determines whether the given identifier node is a reference to a global variable.
      * @param {ASTNode} node `Identifier` node to check.
@@ -110073,6 +118105,28 @@ module.exports = {
     function isStringRawTaggedStaticTemplateLiteral(node) {
       return node.type === "TaggedTemplateExpression" && astUtils.isSpecificMemberAccess(node.tag, "String", "raw") && isGlobalReference(astUtils.skipChainExpression(node.tag).object) && isStaticTemplateLiteral(node.quasi);
     }
+    /**
+     * Gets the value of a string
+     * @param {ASTNode} node The node to get the string of.
+     * @returns {string|null} The value of the node.
+     */
+
+
+    function getStringValue(node) {
+      if (isStringLiteral(node)) {
+        return node.value;
+      }
+
+      if (isStaticTemplateLiteral(node)) {
+        return node.quasis[0].value.cooked;
+      }
+
+      if (isStringRawTaggedStaticTemplateLiteral(node)) {
+        return node.quasi.quasis[0].value.raw;
+      }
+
+      return null;
+    }
     /**
      * Determines whether the given node is considered to be a static string by the logic of this rule.
      * @param {ASTNode} node Node to check.
@@ -110119,6 +118173,56 @@ module.exports = {
 
       return false;
     }
+    /**
+     * Returns a ecmaVersion compatible for regexpp.
+     * @param {any} ecmaVersion The ecmaVersion to convert.
+     * @returns {import("regexpp/ecma-versions").EcmaVersion} The resulting ecmaVersion compatible for regexpp.
+     */
+
+
+    function getRegexppEcmaVersion(ecmaVersion) {
+      if (typeof ecmaVersion !== "number" || ecmaVersion <= 5) {
+        return 5;
+      }
+
+      return Math.min(ecmaVersion + 2009, REGEXPP_LATEST_ECMA_VERSION);
+    }
+    /**
+     * Makes a character escaped or else returns null.
+     * @param {string} character The character to escape.
+     * @returns {string} The resulting escaped character.
+     */
+
+
+    function resolveEscapes(character) {
+      switch (character) {
+        case "\n":
+        case "\\\n":
+          return "\\n";
+
+        case "\r":
+        case "\\\r":
+          return "\\r";
+
+        case "\t":
+        case "\\\t":
+          return "\\t";
+
+        case "\v":
+        case "\\\v":
+          return "\\v";
+
+        case "\f":
+        case "\\\f":
+          return "\\f";
+
+        case "/":
+          return "\\/";
+
+        default:
+          return null;
+      }
+    }
 
     return {
       Program() {
@@ -110147,9 +118251,77 @@ module.exports = {
               });
             }
           } else if (hasOnlyStaticStringArguments(node)) {
+            let regexContent = getStringValue(node.arguments[0]);
+            let noFix = false;
+            let flags;
+
+            if (node.arguments[1]) {
+              flags = getStringValue(node.arguments[1]);
+            }
+
+            const regexppEcmaVersion = getRegexppEcmaVersion(context.parserOptions.ecmaVersion);
+            const RegExpValidatorInstance = new RegExpValidator({
+              ecmaVersion: regexppEcmaVersion
+            });
+
+            try {
+              RegExpValidatorInstance.validatePattern(regexContent, 0, regexContent.length, flags ? flags.includes("u") : false);
+
+              if (flags) {
+                RegExpValidatorInstance.validateFlags(flags);
+              }
+            } catch {
+              noFix = true;
+            }
+
+            const tokenBefore = sourceCode.getTokenBefore(node);
+
+            if (tokenBefore && !validPrecedingTokens.has(tokenBefore.value)) {
+              noFix = true;
+            }
+
+            if (!/^[-a-zA-Z0-9\\[\](){} \t\r\n\v\f!@#$%^&*+^_=/~`.><?,'"|:;]*$/u.test(regexContent)) {
+              noFix = true;
+            }
+
+            if (sourceCode.getCommentsInside(node).length > 0) {
+              noFix = true;
+            }
+
+            if (regexContent && !noFix) {
+              let charIncrease = 0;
+              const ast = new RegExpParser({
+                ecmaVersion: regexppEcmaVersion
+              }).parsePattern(regexContent, 0, regexContent.length, flags ? flags.includes("u") : false);
+              visitRegExpAST(ast, {
+                onCharacterEnter(characterNode) {
+                  const escaped = resolveEscapes(characterNode.raw);
+
+                  if (escaped) {
+                    regexContent = regexContent.slice(0, characterNode.start + charIncrease) + escaped + regexContent.slice(characterNode.end + charIncrease);
+
+                    if (characterNode.raw.length === 1) {
+                      charIncrease += 1;
+                    }
+                  }
+                }
+
+              });
+            }
+
+            const newRegExpValue = `/${regexContent || "(?:)"}/${flags || ""}`;
             context.report({
               node,
-              messageId: "unexpectedRegExp"
+              messageId: "unexpectedRegExp",
+              suggest: noFix ? [] : [{
+                messageId: "replaceWithLiteral",
+
+                fix(fixer) {
+                  const tokenAfter = sourceCode.getTokenAfter(node);
+                  return fixer.replaceText(node, (tokenBefore && !canTokensBeAdjacent(tokenBefore, newRegExpValue) && tokenBefore.range[1] === node.range[0] ? " " : "") + newRegExpValue + (tokenAfter && !canTokensBeAdjacent(newRegExpValue, tokenAfter) && node.range[1] === tokenAfter.range[0] ? " " : ""));
+                }
+
+              }]
             });
           }
         }
@@ -110161,7 +118333,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 811 */
+/* 902 */
 /***/ ((module) => {
 
 "use strict";
@@ -110193,7 +118365,7 @@ function getVariableOfArguments(scope) {
       return variable.identifiers.length === 0 ? variable : null;
     }
   }
-  /* istanbul ignore next : unreachable */
+  /* c8 ignore next */
 
 
   return null;
@@ -110225,7 +118397,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require rest parameters instead of `arguments`",
+      description: "Require rest parameters instead of `arguments`",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-rest-params"
     },
@@ -110271,7 +118443,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 812 */
+/* 903 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -110281,7 +118453,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -110321,7 +118493,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require spread operators instead of `.apply()`",
+      description: "Require spread operators instead of `.apply()`",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-spread"
     },
@@ -110358,7 +118530,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 813 */
+/* 904 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -110370,7 +118542,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -110496,7 +118668,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require template literals instead of string concatenation",
+      description: "Require template literals instead of string concatenation",
       recommended: false,
       url: "https://eslint.org/docs/rules/prefer-template"
     },
@@ -110539,20 +118711,20 @@ module.exports = {
          * for some reason, don't add another backslash, because that would change the meaning of the code (it would cause
          * an actual backslash character to appear before the dollar sign).
          */
-        return "`".concat(currentNode.raw.slice(1, -1).replace(/\\*(\$\{|`)/gu, matched => {
+        return `\`${currentNode.raw.slice(1, -1).replace(/\\*(\$\{|`)/gu, matched => {
           if (matched.lastIndexOf("\\") % 2) {
-            return "\\".concat(matched);
+            return `\\${matched}`;
           }
 
           return matched; // Unescape any quotes that appear in the original Literal that no longer need to be escaped.
-        }).replace(new RegExp("\\\\".concat(currentNode.raw[0]), "gu"), currentNode.raw[0]), "`");
+        }).replace(new RegExp(`\\\\${currentNode.raw[0]}`, "gu"), currentNode.raw[0])}\``;
       }
 
       if (currentNode.type === "TemplateLiteral") {
         return sourceCode.getText(currentNode);
       }
 
-      if (isConcatenation(currentNode) && hasStringLiteral(currentNode) && hasNonStringLiteral(currentNode)) {
+      if (isConcatenation(currentNode) && hasStringLiteral(currentNode)) {
         const plusSign = sourceCode.getFirstTokenBetween(currentNode.left, currentNode.right, token => token.value === "+");
         const textBeforePlus = getTextBetween(currentNode.left, plusSign);
         const textAfterPlus = getTextBetween(plusSign, currentNode.right);
@@ -110576,10 +118748,10 @@ module.exports = {
          */
 
 
-        return "".concat(getTemplateLiteral(currentNode.left, textBeforeNode, null)).concat(textBeforePlus, "+").concat(textAfterPlus).concat(getTemplateLiteral(currentNode.right, textAfterNode, null));
+        return `${getTemplateLiteral(currentNode.left, textBeforeNode, null)}${textBeforePlus}+${textAfterPlus}${getTemplateLiteral(currentNode.right, textAfterNode, null)}`;
       }
 
-      return "`${".concat(textBeforeNode || "").concat(sourceCode.getText(currentNode)).concat(textAfterNode || "", "}`");
+      return `\`\${${textBeforeNode || ""}${sourceCode.getText(currentNode)}${textAfterNode || ""}}\``;
     }
     /**
      * Returns a fixer object that converts a non-string binary expression to a template literal
@@ -110640,7 +118812,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 814 */
+/* 905 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -110652,11 +118824,11 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const espree = __webpack_require__(436);
+const espree = __webpack_require__(508);
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const keywords = __webpack_require__(583); //------------------------------------------------------------------------------
+const keywords = __webpack_require__(653); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -110667,7 +118839,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require quotes around object literal property names",
+      description: "Require quotes around object literal property names",
       recommended: false,
       url: "https://eslint.org/docs/rules/quote-props"
     },
@@ -110727,7 +118899,7 @@ module.exports = {
      */
 
     function isKeyword(tokenStr) {
-      return keywords.indexOf(tokenStr) >= 0;
+      return keywords.includes(tokenStr);
     }
     /**
      * Checks if an espree-tokenized key has redundant quotes (i.e. whether quotes are unnecessary)
@@ -110740,7 +118912,7 @@ module.exports = {
 
 
     function areQuotesRedundant(rawKey, tokens, skipNumberLiterals) {
-      return tokens.length === 1 && tokens[0].start === 0 && tokens[0].end === rawKey.length && (["Identifier", "Keyword", "Null", "Boolean"].indexOf(tokens[0].type) >= 0 || tokens[0].type === "Numeric" && !skipNumberLiterals && String(+tokens[0].value) === tokens[0].value);
+      return tokens.length === 1 && tokens[0].start === 0 && tokens[0].end === rawKey.length && (["Identifier", "Keyword", "Null", "Boolean"].includes(tokens[0].type) || tokens[0].type === "Numeric" && !skipNumberLiterals && String(+tokens[0].value) === tokens[0].value);
     }
     /**
      * Returns a string representation of a property node with quotes removed
@@ -110766,7 +118938,7 @@ module.exports = {
       } // Otherwise, the key is either an identifier or a number literal.
 
 
-      return "\"".concat(key.type === "Identifier" ? key.name : key.value, "\"");
+      return `"${key.type === "Identifier" ? key.name : key.value}"`;
     }
     /**
      * Ensures that a property's key is quoted only when necessary
@@ -110956,7 +119128,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 815 */
+/* 906 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -110968,11 +119140,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-var _templateObject;
-
-function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
-
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Constants
 //------------------------------------------------------------------------------
 
@@ -110995,7 +119163,7 @@ const QUOTE_SETTINGS = {
   }
 }; // An unescaped newline is a newline preceded by an even number of backslashes.
 
-const UNESCAPED_LINEBREAK_PATTERN = new RegExp(String.raw(_templateObject || (_templateObject = _taggedTemplateLiteral(["(^|[^\\])(\\\\)*[", "]"], ["(^|[^\\\\])(\\\\\\\\)*[", "]"])), Array.from(astUtils.LINEBREAKS).join("")), "u");
+const UNESCAPED_LINEBREAK_PATTERN = new RegExp(String.raw`(^|[^\\])(\\\\)*[${Array.from(astUtils.LINEBREAKS).join("")}]`, "u");
 /**
  * Switches quoting of javascript string between ' " and `
  * escaping and unescaping as necessary.
@@ -111020,7 +119188,7 @@ QUOTE_SETTINGS.double.convert = QUOTE_SETTINGS.single.convert = QUOTE_SETTINGS.b
     }
 
     if (match === newQuote || newQuote === "`" && match === "${") {
-      return "\\".concat(match); // escape
+      return `\\${match}`; // escape
     }
 
     if (newline && oldQuote === "`") {
@@ -111041,7 +119209,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce the consistent use of either backticks, double, or single quotes",
+      description: "Enforce the consistent use of either backticks, double, or single quotes",
       recommended: false,
       url: "https://eslint.org/docs/rules/quotes"
     },
@@ -111173,8 +119341,19 @@ module.exports = {
 
         case "ImportDeclaration":
         case "ExportNamedDeclaration":
-        case "ExportAllDeclaration":
           return parent.source === node;
+        // ModuleExportName or ModuleSpecifier.
+
+        case "ExportAllDeclaration":
+          return parent.exported === node || parent.source === node;
+        // ModuleExportName.
+
+        case "ImportSpecifier":
+          return parent.imported === node;
+        // ModuleExportName.
+
+        case "ExportSpecifier":
+          return parent.local === node || parent.exported === node;
         // Others don't allow.
 
         default:
@@ -111220,7 +119399,7 @@ module.exports = {
           let isValid = quoteOption === "backtick" && isAllowedAsNonBacktick(node) || isJSXLiteral(node) || astUtils.isSurroundedBy(rawVal, settings.quote);
 
           if (!isValid && avoidEscape) {
-            isValid = astUtils.isSurroundedBy(rawVal, settings.alternateQuote) && rawVal.indexOf(settings.quote) >= 0;
+            isValid = astUtils.isSurroundedBy(rawVal, settings.alternateQuote) && rawVal.includes(settings.quote);
           }
 
           if (!isValid) {
@@ -111283,7 +119462,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 816 */
+/* 907 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -111295,7 +119474,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -111360,7 +119539,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce the consistent use of the radix argument when using `parseInt()`",
+      description: "Enforce the consistent use of the radix argument when using `parseInt()`",
       recommended: false,
       url: "https://eslint.org/docs/rules/radix"
     },
@@ -111477,7 +119656,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 817 */
+/* 908 */
 /***/ ((module) => {
 
 "use strict";
@@ -111667,7 +119846,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "disallow assignments that can lead to race conditions due to usage of `await` or `yield`",
+      description: "Disallow assignments that can lead to race conditions due to usage of `await` or `yield`",
       recommended: false,
       url: "https://eslint.org/docs/rules/require-atomic-updates"
     },
@@ -111810,7 +119989,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 818 */
+/* 909 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -111822,7 +120001,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -111846,7 +120025,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "disallow async functions which have no `await` expression",
+      description: "Disallow async functions which have no `await` expression",
       recommended: false,
       url: "https://eslint.org/docs/rules/require-await"
     },
@@ -111925,7 +120104,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 819 */
+/* 910 */
 /***/ ((module) => {
 
 "use strict";
@@ -111941,7 +120120,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require JSDoc comments",
+      description: "Require JSDoc comments",
       recommended: false,
       url: "https://eslint.org/docs/rules/require-jsdoc"
     },
@@ -112053,7 +120232,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 820 */
+/* 911 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -112070,7 +120249,7 @@ const {
   CONSTRUCT,
   ReferenceTracker,
   getStringIfConstant
-} = __webpack_require__(501); //------------------------------------------------------------------------------
+} = __webpack_require__(571); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -112081,7 +120260,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce the use of `u` flag on RegExp",
+      description: "Enforce the use of `u` flag on RegExp",
       recommended: false,
       url: "https://eslint.org/docs/rules/require-unicode-regexp"
     },
@@ -112135,7 +120314,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 821 */
+/* 912 */
 /***/ ((module) => {
 
 "use strict";
@@ -112153,7 +120332,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require generator functions to contain `yield`",
+      description: "Require generator functions to contain `yield`",
       recommended: true,
       url: "https://eslint.org/docs/rules/require-yield"
     },
@@ -112207,7 +120386,6 @@ module.exports = {
 
       // Increases the count of `yield` keyword.
       YieldExpression() {
-        /* istanbul ignore else */
         if (stack.length > 0) {
           stack[stack.length - 1] += 1;
         }
@@ -112219,7 +120397,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 822 */
+/* 913 */
 /***/ ((module) => {
 
 "use strict";
@@ -112237,7 +120415,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce spacing between rest and spread operators and their expressions",
+      description: "Enforce spacing between rest and spread operators and their expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/rest-spread-spacing"
     },
@@ -112348,7 +120526,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 823 */
+/* 914 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -112360,9 +120538,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const FixTracker = __webpack_require__(662);
+const FixTracker = __webpack_require__(752);
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -112373,7 +120551,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow semicolons instead of ASI",
+      description: "Require or disallow semicolons instead of ASI",
       recommended: false,
       url: "https://eslint.org/docs/rules/semi"
     },
@@ -112735,7 +120913,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 824 */
+/* 915 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -112745,7 +120923,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -112756,7 +120934,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before and after semicolons",
+      description: "Enforce consistent spacing before and after semicolons",
       recommended: false,
       url: "https://eslint.org/docs/rules/semi-spacing"
     },
@@ -112984,7 +121162,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 825 */
+/* 916 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -112996,7 +121174,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -113054,7 +121232,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce location of semicolons",
+      description: "Enforce location of semicolons",
       recommended: false,
       url: "https://eslint.org/docs/rules/semi-style"
     },
@@ -113138,7 +121316,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 826 */
+/* 917 */
 /***/ ((module) => {
 
 "use strict";
@@ -113156,7 +121334,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce sorted import declarations within modules",
+      description: "Enforce sorted import declarations within modules",
       recommended: false,
       url: "https://eslint.org/docs/rules/sort-imports"
     },
@@ -113365,7 +121543,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 827 */
+/* 918 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -113377,8 +121555,8 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548),
-      naturalCompare = __webpack_require__(828); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618),
+      naturalCompare = __webpack_require__(919); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -113456,7 +121634,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require object keys to be sorted",
+      description: "Require object keys to be sorted",
       recommended: false,
       url: "https://eslint.org/docs/rules/sort-keys"
     },
@@ -113477,6 +121655,10 @@ module.exports = {
           type: "integer",
           minimum: 2,
           default: 2
+        },
+        allowLineSeparatedGroups: {
+          type: "boolean",
+          default: false
         }
       },
       additionalProperties: false
@@ -113493,13 +121675,17 @@ module.exports = {
     const insensitive = options && options.caseSensitive === false;
     const natural = options && options.natural;
     const minKeys = options && options.minKeys;
+    const allowLineSeparatedGroups = options && options.allowLineSeparatedGroups || false;
     const isValidOrder = isValidOrders[order + (insensitive ? "I" : "") + (natural ? "N" : "")]; // The stack to save the previous property's name for each object literals.
 
     let stack = null;
+    const sourceCode = context.getSourceCode();
     return {
       ObjectExpression(node) {
         stack = {
           upper: stack,
+          prevNode: null,
+          prevBlankLine: false,
           prevName: null,
           numKeys: node.properties.length
         };
@@ -113522,12 +121708,44 @@ module.exports = {
 
         const prevName = stack.prevName;
         const numKeys = stack.numKeys;
-        const thisName = getPropertyName(node);
+        const thisName = getPropertyName(node); // Get tokens between current node and previous node
+
+        const tokens = stack.prevNode && sourceCode.getTokensBetween(stack.prevNode, node, {
+          includeComments: true
+        });
+        let isBlankLineBetweenNodes = stack.prevBlankLine;
+
+        if (tokens) {
+          // check blank line between tokens
+          tokens.forEach((token, index) => {
+            const previousToken = tokens[index - 1];
+
+            if (previousToken && token.loc.start.line - previousToken.loc.end.line > 1) {
+              isBlankLineBetweenNodes = true;
+            }
+          }); // check blank line between the current node and the last token
+
+          if (!isBlankLineBetweenNodes && node.loc.start.line - tokens[tokens.length - 1].loc.end.line > 1) {
+            isBlankLineBetweenNodes = true;
+          } // check blank line between the first token and the previous node
+
+
+          if (!isBlankLineBetweenNodes && tokens[0].loc.start.line - stack.prevNode.loc.end.line > 1) {
+            isBlankLineBetweenNodes = true;
+          }
+        }
+
+        stack.prevNode = node;
 
         if (thisName !== null) {
           stack.prevName = thisName;
         }
 
+        if (allowLineSeparatedGroups && isBlankLineBetweenNodes) {
+          stack.prevBlankLine = thisName === null;
+          return;
+        }
+
         if (prevName === null || thisName === null || numKeys < minKeys) {
           return;
         }
@@ -113554,7 +121772,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 828 */
+/* 919 */
 /***/ ((module) => {
 
 /*
@@ -113609,7 +121827,7 @@ try {
 }
 
 /***/ }),
-/* 829 */
+/* 920 */
 /***/ ((module) => {
 
 "use strict";
@@ -113627,7 +121845,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require variables within the same declaration block to be sorted",
+      description: "Require variables within the same declaration block to be sorted",
       recommended: false,
       url: "https://eslint.org/docs/rules/sort-vars"
     },
@@ -113699,7 +121917,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 830 */
+/* 921 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -113711,7 +121929,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -113736,7 +121954,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before blocks",
+      description: "Enforce consistent spacing before blocks",
       recommended: false,
       url: "https://eslint.org/docs/rules/space-before-blocks"
     },
@@ -113884,7 +122102,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 831 */
+/* 922 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -113896,7 +122114,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -113907,7 +122125,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before `function` definition opening parenthesis",
+      description: "Enforce consistent spacing before `function` definition opening parenthesis",
       recommended: false,
       url: "https://eslint.org/docs/rules/space-before-function-paren"
     },
@@ -114036,7 +122254,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 832 */
+/* 923 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -114046,7 +122264,7 @@ module.exports = {
  */
 
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -114057,7 +122275,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing inside parentheses",
+      description: "Enforce consistent spacing inside parentheses",
       recommended: false,
       url: "https://eslint.org/docs/rules/space-in-parens"
     },
@@ -114338,7 +122556,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 833 */
+/* 924 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -114350,7 +122568,7 @@ module.exports = {
 
 const {
   isEqToken
-} = __webpack_require__(548); //------------------------------------------------------------------------------
+} = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -114361,7 +122579,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require spacing around infix operators",
+      description: "Require spacing around infix operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/space-infix-ops"
     },
@@ -114538,7 +122756,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 834 */
+/* 925 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -114550,7 +122768,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -114561,7 +122779,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce consistent spacing before or after unary operators",
+      description: "Enforce consistent spacing before or after unary operators",
       recommended: false,
       url: "https://eslint.org/docs/rules/space-unary-ops"
     },
@@ -114878,7 +123096,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 835 */
+/* 926 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -114888,9 +123106,9 @@ module.exports = {
  */
 
 
-const escapeRegExp = __webpack_require__(525);
+const escapeRegExp = __webpack_require__(595);
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -114902,7 +123120,7 @@ const astUtils = __webpack_require__(548); //-----------------------------------
 
 
 function escape(s) {
-  return "(?:".concat(escapeRegExp(s), ")");
+  return `(?:${escapeRegExp(s)})`;
 }
 /**
  * Escapes the control characters of a given string.
@@ -114913,7 +123131,7 @@ function escape(s) {
 
 
 function escapeAndRepeat(s) {
-  return "".concat(escape(s), "+");
+  return `${escape(s)}+`;
 }
 /**
  * Parses `markers` option.
@@ -114925,7 +123143,7 @@ function escapeAndRepeat(s) {
 
 function parseMarkersOption(markers) {
   // `*` is a marker for JSDoc comments.
-  if (markers.indexOf("*") === -1) {
+  if (!markers.includes("*")) {
     return markers.concat("*");
   }
 
@@ -114968,7 +123186,7 @@ function createExceptionsPattern(exceptions) {
       pattern += ")";
     }
 
-    pattern += "(?:$|[".concat(Array.from(astUtils.LINEBREAKS).join(""), "]))");
+    pattern += `(?:$|[${Array.from(astUtils.LINEBREAKS).join("")}]))`;
   }
 
   return pattern;
@@ -115021,7 +123239,7 @@ function createAlwaysStylePattern(markers, exceptions) {
 
 
 function createNeverStylePattern(markers) {
-  const pattern = "^(".concat(markers.map(escape).join("|"), ")?[ \t]+");
+  const pattern = `^(${markers.map(escape).join("|")})?[ \t]+`;
   return new RegExp(pattern, "u");
 } //------------------------------------------------------------------------------
 // Rule Definition
@@ -115034,7 +123252,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce consistent spacing after the `//` or `/*` in a comment",
+      description: "Enforce consistent spacing after the `//` or `/*` in a comment",
       recommended: false,
       url: "https://eslint.org/docs/rules/spaced-comment"
     },
@@ -115128,9 +123346,9 @@ module.exports = {
 
       rule[type] = {
         beginRegex: requireSpace ? createAlwaysStylePattern(markers, exceptions) : createNeverStylePattern(markers),
-        endRegex: balanced && requireSpace ? new RegExp("".concat(createExceptionsPattern(exceptions), "$"), "u") : new RegExp(endNeverPattern, "u"),
+        endRegex: balanced && requireSpace ? new RegExp(`${createExceptionsPattern(exceptions)}$`, "u") : new RegExp(endNeverPattern, "u"),
         hasExceptions: exceptions.length > 0,
-        captureMarker: new RegExp("^(".concat(markers.map(escape).join("|"), ")"), "u"),
+        captureMarker: new RegExp(`^(${markers.map(escape).join("|")})`, "u"),
         markers: new Set(markers)
       };
       return rule;
@@ -115259,7 +123477,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 836 */
+/* 927 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -115271,7 +123489,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -115328,7 +123546,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require or disallow strict mode directives",
+      description: "Require or disallow strict mode directives",
       recommended: false,
       url: "https://eslint.org/docs/rules/strict"
     },
@@ -115567,7 +123785,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 837 */
+/* 928 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -115579,7 +123797,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -115590,7 +123808,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "enforce spacing around colons of switch statements",
+      description: "Enforce spacing around colons of switch statements",
       recommended: false,
       url: "https://eslint.org/docs/rules/switch-colon-spacing"
     },
@@ -115702,7 +123920,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 838 */
+/* 929 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -115714,7 +123932,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -115725,7 +123943,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require symbol descriptions",
+      description: "Require symbol descriptions",
       recommended: false,
       url: "https://eslint.org/docs/rules/symbol-description"
     },
@@ -115774,7 +123992,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 839 */
+/* 930 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -115786,7 +124004,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -115797,7 +124015,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow spacing around embedded expressions of template strings",
+      description: "Require or disallow spacing around embedded expressions of template strings",
       recommended: false,
       url: "https://eslint.org/docs/rules/template-curly-spacing"
     },
@@ -115921,7 +124139,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 840 */
+/* 931 */
 /***/ ((module) => {
 
 "use strict";
@@ -115939,7 +124157,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow spacing between template tags and their literals",
+      description: "Require or disallow spacing between template tags and their literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/template-tag-spacing"
     },
@@ -116013,7 +124231,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 841 */
+/* 932 */
 /***/ ((module) => {
 
 "use strict";
@@ -116031,7 +124249,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow Unicode byte order mark (BOM)",
+      description: "Require or disallow Unicode byte order mark (BOM)",
       recommended: false,
       url: "https://eslint.org/docs/rules/unicode-bom"
     },
@@ -116088,7 +124306,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 842 */
+/* 933 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -116100,7 +124318,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //------------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -116124,7 +124342,7 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "require calls to `isNaN()` when checking for `NaN`",
+      description: "Require calls to `isNaN()` when checking for `NaN`",
       recommended: true,
       url: "https://eslint.org/docs/rules/use-isnan"
     },
@@ -116234,7 +124452,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 843 */
+/* 934 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -116247,7 +124465,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const doctrine = __webpack_require__(844); //------------------------------------------------------------------------------
+const doctrine = __webpack_require__(935); //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
@@ -116258,7 +124476,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "enforce valid JSDoc comments",
+      description: "Enforce valid JSDoc comments",
       recommended: false,
       url: "https://eslint.org/docs/rules/valid-jsdoc"
     },
@@ -116601,7 +124819,7 @@ module.exports = {
                 start: entireTagRange.start,
                 end: {
                   line: entireTagRange.start.line,
-                  column: entireTagRange.start.column + "@".concat(tag.title).length
+                  column: entireTagRange.start.column + `@${tag.title}`.length
                 }
               },
               data: {
@@ -116652,7 +124870,7 @@ module.exports = {
                 name: param.name
               }
             });
-          } else if (param.name.indexOf(".") === -1) {
+          } else if (!param.name.includes(".")) {
             paramTagsByName[param.name] = param;
           }
         });
@@ -116764,7 +124982,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 844 */
+/* 935 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 /*
@@ -116777,9 +124995,9 @@ module.exports = {
   'use strict';
 
   var typed, utility, jsdoc, esutils, hasOwnProperty;
-  esutils = __webpack_require__(549);
-  typed = __webpack_require__(845);
-  utility = __webpack_require__(846);
+  esutils = __webpack_require__(619);
+  typed = __webpack_require__(936);
+  utility = __webpack_require__(937);
 
   function sliceSource(source, index, last) {
     return source.slice(index, last);
@@ -117747,7 +125965,7 @@ module.exports = {
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 845 */
+/* 936 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 /*
@@ -117761,8 +125979,8 @@ module.exports = {
   'use strict';
 
   var Syntax, Token, source, length, index, previous, token, value, esutils, utility, rangeOffset, addRange;
-  esutils = __webpack_require__(549);
-  utility = __webpack_require__(846);
+  esutils = __webpack_require__(619);
+  utility = __webpack_require__(937);
   Syntax = {
     NullableLiteral: 'NullableLiteral',
     AllLiteral: 'AllLiteral',
@@ -119220,7 +127438,7 @@ module.exports = {
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 846 */
+/* 937 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 /*
@@ -119231,7 +127449,7 @@ module.exports = {
   'use strict';
 
   var VERSION;
-  VERSION = (__webpack_require__(847).version);
+  VERSION = (__webpack_require__(938).version);
   exports.VERSION = VERSION;
 
   function DoctrineError(message) {
@@ -119254,19 +127472,19 @@ module.exports = {
   }
 
   exports.throwError = throwError;
-  exports.assert = __webpack_require__(431);
+  exports.assert = __webpack_require__(503);
 })();
 /* vim: set sw=4 ts=4 et tw=80 : */
 
 /***/ }),
-/* 847 */
+/* 938 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"name":"doctrine","description":"JSDoc parser","homepage":"https://github.com/eslint/doctrine","main":"lib/doctrine.js","version":"3.0.0","engines":{"node":">=6.0.0"},"directories":{"lib":"./lib"},"files":["lib"],"maintainers":[{"name":"Nicholas C. Zakas","email":"nicholas+npm@nczconsulting.com","web":"https://www.nczonline.net"},{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","web":"https://github.com/Constellation"}],"repository":"eslint/doctrine","devDependencies":{"coveralls":"^3.0.1","dateformat":"^1.0.11","eslint":"^1.10.3","eslint-release":"^1.0.0","linefix":"^0.1.1","mocha":"^3.4.2","npm-license":"^0.3.1","nyc":"^10.3.2","semver":"^5.0.3","shelljs":"^0.5.3","shelljs-nodecli":"^0.1.1","should":"^5.0.1"},"license":"Apache-2.0","scripts":{"pretest":"npm run lint","test":"nyc mocha","coveralls":"nyc report --reporter=text-lcov | coveralls","lint":"eslint lib/","generate-release":"eslint-generate-release","generate-alpharelease":"eslint-generate-prerelease alpha","generate-betarelease":"eslint-generate-prerelease beta","generate-rcrelease":"eslint-generate-prerelease rc","publish-release":"eslint-publish-release"},"dependencies":{"esutils":"^2.0.2"}}');
 
 /***/ }),
-/* 848 */
+/* 939 */
 /***/ ((module) => {
 
 "use strict";
@@ -119284,10 +127502,11 @@ module.exports = {
   meta: {
     type: "problem",
     docs: {
-      description: "enforce comparing `typeof` expressions against valid strings",
+      description: "Enforce comparing `typeof` expressions against valid strings",
       recommended: true,
       url: "https://eslint.org/docs/rules/valid-typeof"
     },
+    hasSuggestions: true,
     schema: [{
       type: "object",
       properties: {
@@ -119300,20 +127519,34 @@ module.exports = {
     }],
     messages: {
       invalidValue: "Invalid typeof comparison value.",
-      notString: "Typeof comparisons should be to string literals."
+      notString: "Typeof comparisons should be to string literals.",
+      suggestString: 'Use `"{{type}}"` instead of `{{type}}`.'
     }
   },
 
   create(context) {
-    const VALID_TYPES = ["symbol", "undefined", "object", "boolean", "number", "string", "function", "bigint"],
-          OPERATORS = ["==", "===", "!=", "!=="];
+    const VALID_TYPES = new Set(["symbol", "undefined", "object", "boolean", "number", "string", "function", "bigint"]),
+          OPERATORS = new Set(["==", "===", "!=", "!=="]);
     const requireStringLiterals = context.options[0] && context.options[0].requireStringLiterals;
+    let globalScope;
+    /**
+     * Checks whether the given node represents a reference to a global variable that is not declared in the source code.
+     * These identifiers will be allowed, as it is assumed that user has no control over the names of external global variables.
+     * @param {ASTNode} node `Identifier` node to check.
+     * @returns {boolean} `true` if the node is a reference to a global variable.
+     */
+
+    function isReferenceToGlobalVariable(node) {
+      const variable = globalScope.set.get(node.name);
+      return variable && variable.defs.length === 0 && variable.references.some(ref => ref.identifier === node);
+    }
     /**
      * Determines whether a node is a typeof expression.
      * @param {ASTNode} node The node
      * @returns {boolean} `true` if the node is a typeof expression
      */
 
+
     function isTypeofExpression(node) {
       return node.type === "UnaryExpression" && node.operator === "typeof";
     } //--------------------------------------------------------------------------
@@ -119322,22 +127555,42 @@ module.exports = {
 
 
     return {
+      Program() {
+        globalScope = context.getScope();
+      },
+
       UnaryExpression(node) {
         if (isTypeofExpression(node)) {
           const parent = context.getAncestors().pop();
 
-          if (parent.type === "BinaryExpression" && OPERATORS.indexOf(parent.operator) !== -1) {
+          if (parent.type === "BinaryExpression" && OPERATORS.has(parent.operator)) {
             const sibling = parent.left === node ? parent.right : parent.left;
 
             if (sibling.type === "Literal" || sibling.type === "TemplateLiteral" && !sibling.expressions.length) {
               const value = sibling.type === "Literal" ? sibling.value : sibling.quasis[0].value.cooked;
 
-              if (VALID_TYPES.indexOf(value) === -1) {
+              if (!VALID_TYPES.has(value)) {
                 context.report({
                   node: sibling,
                   messageId: "invalidValue"
                 });
               }
+            } else if (sibling.type === "Identifier" && sibling.name === "undefined" && isReferenceToGlobalVariable(sibling)) {
+              context.report({
+                node: sibling,
+                messageId: requireStringLiterals ? "notString" : "invalidValue",
+                suggest: [{
+                  messageId: "suggestString",
+                  data: {
+                    type: "undefined"
+                  },
+
+                  fix(fixer) {
+                    return fixer.replaceText(sibling, '"undefined"');
+                  }
+
+                }]
+              });
             } else if (requireStringLiterals && !isTypeofExpression(sibling)) {
               context.report({
                 node: sibling,
@@ -119354,7 +127607,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 849 */
+/* 940 */
 /***/ ((module) => {
 
 "use strict";
@@ -119373,7 +127626,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: "require `var` declarations be placed at the top of their containing scope",
+      description: "Require `var` declarations be placed at the top of their containing scope",
       recommended: false,
       url: "https://eslint.org/docs/rules/vars-on-top"
     },
@@ -119510,7 +127763,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 850 */
+/* 941 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -119522,9 +127775,9 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548);
+const astUtils = __webpack_require__(618);
 
-const eslintUtils = __webpack_require__(501); //----------------------------------------------------------------------
+const eslintUtils = __webpack_require__(571); //----------------------------------------------------------------------
 // Helpers
 //----------------------------------------------------------------------
 
@@ -119550,7 +127803,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require parentheses around immediate `function` invocations",
+      description: "Require parentheses around immediate `function` invocations",
       recommended: false,
       url: "https://eslint.org/docs/rules/wrap-iife"
     },
@@ -119638,7 +127891,7 @@ module.exports = {
 
             fix(fixer) {
               const nodeToSurround = style === "inside" ? innerNode : node;
-              return fixer.replaceText(nodeToSurround, "(".concat(sourceCode.getText(nodeToSurround), ")"));
+              return fixer.replaceText(nodeToSurround, `(${sourceCode.getText(nodeToSurround)})`);
             }
 
           });
@@ -119656,7 +127909,7 @@ module.exports = {
                  * for example, in `(function(foo) {}(bar))`, the range `(bar))` should get replaced with `)(bar)`.
                  */
                 const parenAfter = sourceCode.getTokenAfter(node);
-                return fixer.replaceTextRange([innerNode.range[1], parenAfter.range[1]], ")".concat(sourceCode.getText().slice(innerNode.range[1], parenAfter.range[0])));
+                return fixer.replaceTextRange([innerNode.range[1], parenAfter.range[1]], `)${sourceCode.getText().slice(innerNode.range[1], parenAfter.range[0])}`);
               }
               /*
                * Call expression is wrapped in mandatory parens such as if(), or in necessary grouping parens.
@@ -119664,7 +127917,7 @@ module.exports = {
                */
 
 
-              return fixer.replaceText(innerNode, "(".concat(sourceCode.getText(innerNode), ")"));
+              return fixer.replaceText(innerNode, `(${sourceCode.getText(innerNode)})`);
             }
 
           });
@@ -119681,7 +127934,7 @@ module.exports = {
                * should get replaced with `(bar))`.
                */
               const parenAfter = sourceCode.getTokenAfter(innerNode);
-              return fixer.replaceTextRange([parenAfter.range[0], node.range[1]], "".concat(sourceCode.getText().slice(parenAfter.range[1], node.range[1]), ")"));
+              return fixer.replaceTextRange([parenAfter.range[0], node.range[1]], `${sourceCode.getText().slice(parenAfter.range[1], node.range[1])})`);
             }
 
           });
@@ -119694,7 +127947,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 851 */
+/* 942 */
 /***/ ((module) => {
 
 "use strict";
@@ -119712,7 +127965,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require parenthesis around regex literals",
+      description: "Require parenthesis around regex literals",
       recommended: false,
       url: "https://eslint.org/docs/rules/wrap-regex"
     },
@@ -119740,7 +127993,7 @@ module.exports = {
             context.report({
               node,
               messageId: "requireParens",
-              fix: fixer => fixer.replaceText(node, "(".concat(sourceCode.getText(node), ")"))
+              fix: fixer => fixer.replaceText(node, `(${sourceCode.getText(node)})`)
             });
           }
         }
@@ -119752,7 +128005,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 852 */
+/* 943 */
 /***/ ((module) => {
 
 "use strict";
@@ -119770,7 +128023,7 @@ module.exports = {
   meta: {
     type: "layout",
     docs: {
-      description: "require or disallow spacing around the `*` in `yield*` expressions",
+      description: "Require or disallow spacing around the `*` in `yield*` expressions",
       recommended: false,
       url: "https://eslint.org/docs/rules/yield-star-spacing"
     },
@@ -119897,7 +128150,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 853 */
+/* 944 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -119909,7 +128162,7 @@ module.exports = {
 // Requirements
 //--------------------------------------------------------------------------
 
-const astUtils = __webpack_require__(548); //--------------------------------------------------------------------------
+const astUtils = __webpack_require__(618); //--------------------------------------------------------------------------
 // Helpers
 //--------------------------------------------------------------------------
 
@@ -119942,7 +128195,7 @@ function isEqualityOperator(operator) {
 
 
 function isRangeTestOperator(operator) {
-  return ["<", "<="].indexOf(operator) >= 0;
+  return ["<", "<="].includes(operator);
 }
 /**
  * Determines whether a non-Literal node is a negative number that should be
@@ -119998,7 +128251,7 @@ function getNormalizedLiteral(node) {
     return {
       type: "Literal",
       value: -node.argument.value,
-      raw: "-".concat(node.argument.value)
+      raw: `-${node.argument.value}`
     };
   }
 
@@ -120022,7 +128275,7 @@ module.exports = {
   meta: {
     type: "suggestion",
     docs: {
-      description: 'require or disallow "Yoda" conditions',
+      description: 'Require or disallow "Yoda" conditions',
       recommended: false,
       url: "https://eslint.org/docs/rules/yoda"
     },
@@ -120202,7 +128455,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 854 */
+/* 945 */
 /***/ ((module) => {
 
 function webpackEmptyContext(req) {
@@ -120212,11 +128465,11 @@ function webpackEmptyContext(req) {
 }
 webpackEmptyContext.keys = () => ([]);
 webpackEmptyContext.resolve = webpackEmptyContext;
-webpackEmptyContext.id = 854;
+webpackEmptyContext.id = 945;
 module.exports = webpackEmptyContext;
 
 /***/ }),
-/* 855 */
+/* 946 */
 /***/ ((module) => {
 
 "use strict";
@@ -120278,7 +128531,7 @@ module.exports = () => {
 };
 
 /***/ }),
-/* 856 */
+/* 947 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -120290,7 +128543,7 @@ module.exports = () => {
 // Requirements
 //------------------------------------------------------------------------------
 
-const debug = __webpack_require__(496)("eslint:source-code-fixer"); //------------------------------------------------------------------------------
+const debug = __webpack_require__(566)("eslint:source-code-fixer"); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -120433,12 +128686,10 @@ SourceCodeFixer.applyFixes = function (sourceText, messages, shouldFix) {
 module.exports = SourceCodeFixer;
 
 /***/ }),
-/* 857 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 948 */
+/***/ ((module) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
-/* provided dependency */ var console = __webpack_require__(438);
 /**
  * @fileoverview Tracks performance of individual rules.
  * @author Brandon Mills
@@ -120447,7 +128698,7 @@ module.exports = SourceCodeFixer;
 // Helpers
 //------------------------------------------------------------------------------
 
-/* istanbul ignore next */
+/* c8 ignore next */
 
 /**
  * Align the string to left
@@ -120461,7 +128712,7 @@ module.exports = SourceCodeFixer;
 function alignLeft(str, len, ch) {
   return str + new Array(len - str.length + 1).join(ch || " ");
 }
-/* istanbul ignore next */
+/* c8 ignore next */
 
 /**
  * Align the string to right
@@ -120502,7 +128753,7 @@ function getListSize() {
   const TIMING_ENV_VAR_AS_INTEGER = Number.parseInt(process.env.TIMING, 10);
   return TIMING_ENV_VAR_AS_INTEGER > 10 ? TIMING_ENV_VAR_AS_INTEGER : MINIMUM_SIZE;
 }
-/* istanbul ignore next */
+/* c8 ignore next */
 
 /**
  * display the data
@@ -120520,7 +128771,7 @@ function display(data) {
     return [key, time];
   }).sort((a, b) => b[1] - a[1]).slice(0, getListSize());
   rows.forEach(row => {
-    row.push("".concat((row[1] * 100 / total).toFixed(1), "%"));
+    row.push(`${(row[1] * 100 / total).toFixed(1)}%`);
     row[1] = row[1].toFixed(3);
   });
   rows.unshift(HEADERS);
@@ -120543,7 +128794,7 @@ function display(data) {
   }).join("|"));
   console.log(table.join("\n")); // eslint-disable-line no-console -- Debugging function
 }
-/* istanbul ignore next */
+/* c8 ignore next */
 
 
 module.exports = function () {
@@ -120563,9 +128814,10 @@ module.exports = function () {
 
     return function () {
       let t = process.hrtime();
-      fn(...arguments);
+      const result = fn(...arguments);
       t = process.hrtime(t);
       data[key] += t[0] * 1e3 + t[1] / 1e6;
+      return result;
     };
   }
 
@@ -120583,14 +128835,14 @@ module.exports = function () {
 }();
 
 /***/ }),
-/* 858 */
+/* 949 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"rules":{"generator-star":["generator-star-spacing"],"global-strict":["strict"],"no-arrow-condition":["no-confusing-arrow","no-constant-condition"],"no-comma-dangle":["comma-dangle"],"no-empty-class":["no-empty-character-class"],"no-empty-label":["no-labels"],"no-extra-strict":["strict"],"no-reserved-keys":["quote-props"],"no-space-before-semi":["semi-spacing"],"no-wrap-func":["no-extra-parens"],"space-after-function-name":["space-before-function-paren"],"space-after-keywords":["keyword-spacing"],"space-before-function-parentheses":["space-before-function-paren"],"space-before-keywords":["keyword-spacing"],"space-in-brackets":["object-curly-spacing","array-bracket-spacing","computed-property-spacing"],"space-return-throw-case":["keyword-spacing"],"space-unary-word-ops":["space-unary-ops"],"spaced-line-comment":["spaced-comment"]}}');
 
 /***/ }),
-/* 859 */
+/* 950 */
 /***/ ((module) => {
 
 "use strict";
@@ -120613,7 +128865,13 @@ function parseRuleId(ruleId) {
   let pluginName, ruleName; // distinguish between core rules and plugin rules
 
   if (ruleId.includes("/")) {
-    pluginName = ruleId.slice(0, ruleId.lastIndexOf("/"));
+    // mimic scoped npm packages
+    if (ruleId.startsWith("@")) {
+      pluginName = ruleId.slice(0, ruleId.lastIndexOf("/"));
+    } else {
+      pluginName = ruleId.slice(0, ruleId.indexOf("/"));
+    }
+
     ruleName = ruleId.slice(pluginName.length + 1);
   } else {
     pluginName = "@";
@@ -120649,6 +128907,40 @@ function getRuleFromConfig(ruleId, config) {
   }
 
   return rule;
+}
+/**
+ * Gets a complete options schema for a rule.
+ * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object
+ * @returns {Object} JSON Schema for the rule's options.
+ */
+
+
+function getRuleOptionsSchema(rule) {
+  if (!rule) {
+    return null;
+  }
+
+  const schema = rule.schema || rule.meta && rule.meta.schema;
+
+  if (Array.isArray(schema)) {
+    if (schema.length) {
+      return {
+        type: "array",
+        items: schema,
+        minItems: 0,
+        maxItems: schema.length
+      };
+    }
+
+    return {
+      type: "array",
+      minItems: 0,
+      maxItems: 0
+    };
+  } // Given a full schema, leave it alone
+
+
+  return schema || null;
 } //-----------------------------------------------------------------------------
 // Exports
 //-----------------------------------------------------------------------------
@@ -120656,11 +128948,12 @@ function getRuleFromConfig(ruleId, config) {
 
 module.exports = {
   parseRuleId,
-  getRuleFromConfig
+  getRuleFromConfig,
+  getRuleOptionsSchema
 };
 
 /***/ }),
-/* 860 */
+/* 951 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -120675,23 +128968,21 @@ module.exports = {
 const {
   ConfigArray,
   ConfigArraySymbol
-} = __webpack_require__(861);
+} = __webpack_require__(952);
 
 const {
   flatConfigSchema
-} = __webpack_require__(870);
+} = __webpack_require__(961);
 
 const {
   RuleValidator
-} = __webpack_require__(871);
+} = __webpack_require__(962);
 
 const {
   defaultConfig
-} = __webpack_require__(874);
+} = __webpack_require__(965);
 
-const recommendedConfig = __webpack_require__(875);
-
-const allConfig = __webpack_require__(876); //-----------------------------------------------------------------------------
+const recommendedConfig = __webpack_require__(966); //-----------------------------------------------------------------------------
 // Helpers
 //-----------------------------------------------------------------------------
 
@@ -120710,7 +129001,9 @@ function splitPluginIdentifier(identifier) {
     objectName: parts.pop(),
     pluginName: parts.join("/")
   };
-} //-----------------------------------------------------------------------------
+}
+
+const originalBaseConfig = Symbol("originalBaseConfig"); //-----------------------------------------------------------------------------
 // Exports
 //-----------------------------------------------------------------------------
 
@@ -120718,24 +129011,50 @@ function splitPluginIdentifier(identifier) {
  * Represents an array containing configuration information for ESLint.
  */
 
-
 class FlatConfigArray extends ConfigArray {
   /**
    * Creates a new instance.
    * @param {*[]} configs An array of configuration information.
-   * @param {{basePath: string, baseConfig: FlatConfig}} options The options
+   * @param {{basePath: string, shouldIgnore: boolean, baseConfig: FlatConfig}} options The options
    *      to use for the config array instance.
    */
   constructor(configs) {
     let {
       basePath,
+      shouldIgnore = true,
       baseConfig = defaultConfig
     } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
     super(configs, {
       basePath,
       schema: flatConfigSchema
     });
-    this.unshift(...baseConfig);
+
+    if (baseConfig[Symbol.iterator]) {
+      this.unshift(...baseConfig);
+    } else {
+      this.unshift(baseConfig);
+    }
+    /**
+     * The baes config used to build the config array.
+     * @type {Array<FlatConfig>}
+     */
+
+
+    this[originalBaseConfig] = baseConfig;
+    Object.defineProperty(this, originalBaseConfig, {
+      writable: false
+    });
+    /**
+     * Determines if `ignores` fields should be honored.
+     * If true, then all `ignores` fields are honored.
+     * if false, then only `ignores` fields in the baseConfig are honored.
+     * @type {boolean}
+     */
+
+    this.shouldIgnore = shouldIgnore;
+    Object.defineProperty(this, "shouldIgnore", {
+      writable: false
+    });
   }
   /* eslint-disable class-methods-use-this -- Desired as instance method */
 
@@ -120754,7 +129073,27 @@ class FlatConfigArray extends ConfigArray {
     }
 
     if (config === "eslint:all") {
-      return allConfig;
+      /*
+       * Load `eslint-all.js` here instead of at the top level to avoid loading all rule modules
+       * when it isn't necessary. `eslint-all.js` reads `meta` of rule objects to filter out deprecated ones,
+       * so requiring `eslint-all.js` module loads all rule modules as a consequence.
+       */
+      return __webpack_require__(967);
+    }
+    /*
+     * If `shouldIgnore` is false, we remove any ignore patterns specified
+     * in the config so long as it's not a default config and it doesn't
+     * have a `files` entry.
+     */
+
+
+    if (!this.shouldIgnore && !this[originalBaseConfig].includes(config) && config.ignores && !config.files) {
+      /* eslint-disable-next-line no-unused-vars -- need to strip off other keys */
+      const {
+        ignores,
+        ...otherKeys
+      } = config;
+      return otherKeys;
     }
 
     return config;
@@ -120773,36 +129112,73 @@ class FlatConfigArray extends ConfigArray {
       plugins,
       languageOptions,
       processor
-    } = config; // Check parser value
+    } = config;
+    let parserName, processorName;
+    let invalidParser = false,
+        invalidProcessor = false; // Check parser value
 
-    if (languageOptions && languageOptions.parser && typeof languageOptions.parser === "string") {
-      const {
-        pluginName,
-        objectName: parserName
-      } = splitPluginIdentifier(languageOptions.parser);
+    if (languageOptions && languageOptions.parser) {
+      if (typeof languageOptions.parser === "string") {
+        const {
+          pluginName,
+          objectName: localParserName
+        } = splitPluginIdentifier(languageOptions.parser);
+        parserName = languageOptions.parser;
 
-      if (!plugins || !plugins[pluginName] || !plugins[pluginName].parsers || !plugins[pluginName].parsers[parserName]) {
-        throw new TypeError("Key \"parser\": Could not find \"".concat(parserName, "\" in plugin \"").concat(pluginName, "\"."));
-      }
+        if (!plugins || !plugins[pluginName] || !plugins[pluginName].parsers || !plugins[pluginName].parsers[localParserName]) {
+          throw new TypeError(`Key "parser": Could not find "${localParserName}" in plugin "${pluginName}".`);
+        }
 
-      languageOptions.parser = plugins[pluginName].parsers[parserName];
+        languageOptions.parser = plugins[pluginName].parsers[localParserName];
+      } else {
+        invalidParser = true;
+      }
     } // Check processor value
 
 
-    if (processor && typeof processor === "string") {
-      const {
-        pluginName,
-        objectName: processorName
-      } = splitPluginIdentifier(processor);
+    if (processor) {
+      if (typeof processor === "string") {
+        const {
+          pluginName,
+          objectName: localProcessorName
+        } = splitPluginIdentifier(processor);
+        processorName = processor;
 
-      if (!plugins || !plugins[pluginName] || !plugins[pluginName].processors || !plugins[pluginName].processors[processorName]) {
-        throw new TypeError("Key \"processor\": Could not find \"".concat(processorName, "\" in plugin \"").concat(pluginName, "\"."));
-      }
+        if (!plugins || !plugins[pluginName] || !plugins[pluginName].processors || !plugins[pluginName].processors[localProcessorName]) {
+          throw new TypeError(`Key "processor": Could not find "${localProcessorName}" in plugin "${pluginName}".`);
+        }
 
-      config.processor = plugins[pluginName].processors[processorName];
+        config.processor = plugins[pluginName].processors[localProcessorName];
+      } else {
+        invalidProcessor = true;
+      }
     }
 
-    ruleValidator.validate(config);
+    ruleValidator.validate(config); // apply special logic for serialization into JSON
+
+    /* eslint-disable object-shorthand -- shorthand would change "this" value */
+
+    Object.defineProperty(config, "toJSON", {
+      value: function () {
+        if (invalidParser) {
+          throw new Error("Caching is not supported when parser is an object.");
+        }
+
+        if (invalidProcessor) {
+          throw new Error("Caching is not supported when processor is an object.");
+        }
+
+        return { ...this,
+          plugins: Object.keys(plugins),
+          languageOptions: { ...languageOptions,
+            parser: parserName
+          },
+          processor: processorName
+        };
+      }
+    });
+    /* eslint-enable object-shorthand -- ok to enable now */
+
     return config;
   }
   /* eslint-enable class-methods-use-this -- Desired as instance method */
@@ -120813,7 +129189,7 @@ class FlatConfigArray extends ConfigArray {
 exports.FlatConfigArray = FlatConfigArray;
 
 /***/ }),
-/* 861 */
+/* 952 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -120827,13 +129203,13 @@ function _interopDefault(ex) {
   return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;
 }
 
-var path = _interopDefault(__webpack_require__(429));
+var path = _interopDefault(__webpack_require__(501));
 
-var minimatch = _interopDefault(__webpack_require__(862));
+var minimatch = _interopDefault(__webpack_require__(953));
 
-var createDebug = _interopDefault(__webpack_require__(496));
+var createDebug = _interopDefault(__webpack_require__(566));
 
-var objectSchema = __webpack_require__(866);
+var objectSchema = __webpack_require__(957);
 /**
  * @fileoverview ConfigSchema
  * @author Nicholas C. Zakas
@@ -120935,7 +129311,8 @@ const baseSchema = Object.freeze({
 
 const debug = createDebug('@hwc/config-array');
 const MINIMATCH_OPTIONS = {
-  matchBase: true
+  // matchBase: true,
+  dot: true
 };
 const CONFIG_TYPES = new Set(['array', 'function']);
 /**
@@ -121054,19 +129431,53 @@ function normalizeSync(items, context, extraConfigTypes) {
 /**
  * Determines if a given file path should be ignored based on the given
  * matcher.
- * @param {string|() => boolean} matcher The pattern to match
+ * @param {Array<string|() => boolean>} ignores The ignore patterns to check
  * @param {string} filePath The absolute path of the file to check.
  * @param {string} relativeFilePath The relative path of the file to check.
  * @returns {boolean} True if the path should be ignored and false if not.
  */
 
 
-function shouldIgnoreFilePath(matcher, filePath, relativeFilePath) {
-  if (typeof matcher === 'function') {
-    return matcher(filePath);
+function shouldIgnoreFilePath(ignores, filePath, relativeFilePath) {
+  // all files outside of the basePath are ignored
+  if (relativeFilePath.startsWith('..')) {
+    return true;
+  }
+
+  let shouldIgnore = false;
+
+  for (const matcher of ignores) {
+    if (typeof matcher === 'function') {
+      shouldIgnore = shouldIgnore || matcher(filePath);
+      continue;
+    }
+    /*
+     * If there's a negated pattern, that means anything matching
+     * must NOT be ignored. To do that, we need to use the `flipNegate`
+     * option for minimatch to check if the filepath matches the
+     * pattern specified after the !, and if that result is true,
+     * then we return false immediately because this file should
+     * never be ignored.
+     */
+
+
+    if (matcher.startsWith('!')) {
+      /*
+       * The file must already be ignored in order to apply a negated
+       * pattern, because negated patterns simply remove files that
+       * would already be ignored.
+       */
+      if (shouldIgnore && minimatch(relativeFilePath, matcher, { ...MINIMATCH_OPTIONS,
+        flipNegate: true
+      })) {
+        return false;
+      }
+    } else {
+      shouldIgnore = shouldIgnore || minimatch(relativeFilePath, matcher, MINIMATCH_OPTIONS);
+    }
   }
 
-  return minimatch(relativeFilePath, matcher, MINIMATCH_OPTIONS);
+  return shouldIgnore;
 }
 /**
  * Determines if a given file path is matched by a config. If the config
@@ -121081,17 +129492,11 @@ function shouldIgnoreFilePath(matcher, filePath, relativeFilePath) {
 
 
 function pathMatches(filePath, basePath, config) {
-  // a config without `files` field always match
-  if (!config.files) {
-    return true;
-  }
   /*
    * For both files and ignores, functions are passed the absolute
    * file path while strings are compared against the relative
    * file path.
    */
-
-
   const relativeFilePath = path.relative(basePath, filePath); // if files isn't an array, throw an error
 
   if (!Array.isArray(config.files) || config.files.length === 0) {
@@ -121108,11 +129513,7 @@ function pathMatches(filePath, basePath, config) {
       return pattern(filePath);
     }
 
-    throw new TypeError("Unexpected matcher type ".concat(pattern, "."));
-  };
-
-  const isFilePathIgnored = matcher => {
-    return shouldIgnoreFilePath(matcher, filePath, relativeFilePath);
+    throw new TypeError(`Unexpected matcher type ${pattern}.`);
   }; // check for all matches to config.files
 
 
@@ -121129,7 +129530,7 @@ function pathMatches(filePath, basePath, config) {
    */
 
   if (filePathMatchesPattern && config.ignores) {
-    filePathMatchesPattern = !config.ignores.some(isFilePathIgnored);
+    filePathMatchesPattern = !shouldIgnoreFilePath(config.ignores, filePath, relativeFilePath);
   }
 
   return filePathMatchesPattern;
@@ -121163,7 +129564,7 @@ function assertExtraConfigTypes(extraConfigTypes) {
 
   for (const configType of extraConfigTypes) {
     if (!CONFIG_TYPES.has(configType)) {
-      throw new TypeError("Unexpected config type \"".concat(configType, "\" found. Expected one of: \"object\", \"array\", \"function\"."));
+      throw new TypeError(`Unexpected config type "${configType}" found. Expected one of: "object", "array", "function".`);
     }
   }
 } //------------------------------------------------------------------------------
@@ -121206,49 +129607,51 @@ class ConfigArray extends Array {
     } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
     super();
     /**
-     * Tracks if the array has been normalized.
-     * @property isNormalized
-     * @type boolean
-     * @private
-     */
+    * Tracks if the array has been normalized.
+    * @property isNormalized
+    * @type boolean
+    * @private
+    */
 
     this[ConfigArraySymbol.isNormalized] = normalized;
     /**
-     * The schema used for validating and merging configs.
-     * @property schema
-     * @type ObjectSchema
-     * @private
-     */
+    * The schema used for validating and merging configs.
+    * @property schema
+    * @type ObjectSchema
+    * @private
+    */
 
     this[ConfigArraySymbol.schema] = new objectSchema.ObjectSchema({ ...customSchema,
       ...baseSchema
     });
     /**
-     * The path of the config file that this array was loaded from.
-     * This is used to calculate filename matches.
-     * @property basePath
-     * @type string
-     */
+    * The path of the config file that this array was loaded from.
+    * This is used to calculate filename matches.
+    * @property basePath
+    * @type string
+    */
 
     this.basePath = basePath;
     assertExtraConfigTypes(extraConfigTypes);
     /**
-     * The supported config types.
-     * @property configTypes
-     * @type Array<string>
-     */
+    * The supported config types.
+    * @property configTypes
+    * @type Array<string>
+    */
 
     this.extraConfigTypes = Object.freeze([...extraConfigTypes]);
     /**
-     * A cache to store calculated configs for faster repeat lookup.
-     * @property configCache
-     * @type Map
-     * @private
-     */
+    * A cache to store calculated configs for faster repeat lookup.
+    * @property configCache
+    * @type Map
+    * @private
+    */
 
     this[ConfigArraySymbol.configCache] = new Map(); // init cache
 
-    dataCache.set(this, {}); // load the configs into this array
+    dataCache.set(this, {
+      explicitMatches: new Map()
+    }); // load the configs into this array
 
     if (Array.isArray(configs)) {
       this.push(...configs);
@@ -121257,24 +129660,24 @@ class ConfigArray extends Array {
     }
   }
   /**
-   * Prevent normal array methods from creating a new `ConfigArray` instance.
-   * This is to ensure that methods such as `slice()` won't try to create a 
-   * new instance of `ConfigArray` behind the scenes as doing so may throw
-   * an error due to the different constructor signature.
-   * @returns {Function} The `Array` constructor.
-   */
+        * Prevent normal array methods from creating a new `ConfigArray` instance.
+        * This is to ensure that methods such as `slice()` won't try to create a 
+        * new instance of `ConfigArray` behind the scenes as doing so may throw
+        * an error due to the different constructor signature.
+        * @returns {Function} The `Array` constructor.
+        */
 
 
   static get [Symbol.species]() {
     return Array;
   }
   /**
-   * Returns the `files` globs from every config object in the array.
-   * This can be used to determine which files will be matched by a
-   * config array or to use as a glob pattern when no patterns are provided
-   * for a command line interface.
-   * @returns {Array<string|Function>} An array of matchers.
-   */
+        * Returns the `files` globs from every config object in the array.
+        * This can be used to determine which files will be matched by a
+        * config array or to use as a glob pattern when no patterns are provided
+        * for a command line interface.
+        * @returns {Array<string|Function>} An array of matchers.
+        */
 
 
   get files() {
@@ -121303,12 +129706,12 @@ class ConfigArray extends Array {
     return result;
   }
   /**
-   * Returns ignore matchers that should always be ignored regardless of
-   * the matching `files` fields in any configs. This is necessary to mimic
-   * the behavior of things like .gitignore and .eslintignore, allowing a
-   * globbing operation to be faster.
-   * @returns {string[]} An array of string patterns and functions to be ignored.
-   */
+        * Returns ignore matchers that should always be ignored regardless of
+        * the matching `files` fields in any configs. This is necessary to mimic
+        * the behavior of things like .gitignore and .eslintignore, allowing a
+        * globbing operation to be faster.
+        * @returns {string[]} An array of string patterns and functions to be ignored.
+        */
 
 
   get ignores() {
@@ -121324,7 +129727,12 @@ class ConfigArray extends Array {
     const result = [];
 
     for (const config of this) {
-      if (config.ignores && !config.files) {
+      /*
+       * We only count ignores if there are no other keys in the object.
+       * In this case, it acts list a globally ignored pattern. If there
+       * are additional keys, then ignores act like exclusions.
+       */
+      if (config.ignores && Object.keys(config).length === 1) {
         result.push(...config.ignores);
       }
     } // store result
@@ -121335,20 +129743,20 @@ class ConfigArray extends Array {
     return result;
   }
   /**
-   * Indicates if the config array has been normalized.
-   * @returns {boolean} True if the config array is normalized, false if not.
-   */
+        * Indicates if the config array has been normalized.
+        * @returns {boolean} True if the config array is normalized, false if not.
+        */
 
 
   isNormalized() {
     return this[ConfigArraySymbol.isNormalized];
   }
   /**
-   * Normalizes a config array by flattening embedded arrays and executing
-   * config functions.
-   * @param {ConfigContext} context The context object for config functions.
-   * @returns {Promise<ConfigArray>} The current ConfigArray instance.
-   */
+        * Normalizes a config array by flattening embedded arrays and executing
+        * config functions.
+        * @param {ConfigContext} context The context object for config functions.
+        * @returns {Promise<ConfigArray>} The current ConfigArray instance.
+        */
 
 
   async normalize() {
@@ -121357,7 +129765,7 @@ class ConfigArray extends Array {
     if (!this.isNormalized()) {
       const normalizedConfigs = await normalize(this, context, this.extraConfigTypes);
       this.length = 0;
-      this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig]));
+      this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig].bind(this)));
       this[ConfigArraySymbol.isNormalized] = true; // prevent further changes
 
       Object.freeze(this);
@@ -121366,11 +129774,11 @@ class ConfigArray extends Array {
     return this;
   }
   /**
-   * Normalizes a config array by flattening embedded arrays and executing
-   * config functions.
-   * @param {ConfigContext} context The context object for config functions.
-   * @returns {ConfigArray} The current ConfigArray instance.
-   */
+        * Normalizes a config array by flattening embedded arrays and executing
+        * config functions.
+        * @param {ConfigContext} context The context object for config functions.
+        * @returns {ConfigArray} The current ConfigArray instance.
+        */
 
 
   normalizeSync() {
@@ -121379,7 +129787,7 @@ class ConfigArray extends Array {
     if (!this.isNormalized()) {
       const normalizedConfigs = normalizeSync(this, context, this.extraConfigTypes);
       this.length = 0;
-      this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig]));
+      this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig].bind(this)));
       this[ConfigArraySymbol.isNormalized] = true; // prevent further changes
 
       Object.freeze(this);
@@ -121388,35 +129796,80 @@ class ConfigArray extends Array {
     return this;
   }
   /**
-   * Finalizes the state of a config before being cached and returned by
-   * `getConfig()`. Does nothing by default but is provided to be
-   * overridden by subclasses as necessary.
-   * @param {Object} config The config to finalize.
-   * @returns {Object} The finalized config.
-   */
+        * Finalizes the state of a config before being cached and returned by
+        * `getConfig()`. Does nothing by default but is provided to be
+        * overridden by subclasses as necessary.
+        * @param {Object} config The config to finalize.
+        * @returns {Object} The finalized config.
+        */
 
 
   [ConfigArraySymbol.finalizeConfig](config) {
     return config;
   }
   /**
-   * Preprocesses a config during the normalization process. This is the
-   * method to override if you want to convert an array item before it is
-   * validated for the first time. For example, if you want to replace a
-   * string with an object, this is the method to override.
-   * @param {Object} config The config to preprocess.
-   * @returns {Object} The config to use in place of the argument.
-   */
+        * Preprocesses a config during the normalization process. This is the
+        * method to override if you want to convert an array item before it is
+        * validated for the first time. For example, if you want to replace a
+        * string with an object, this is the method to override.
+        * @param {Object} config The config to preprocess.
+        * @returns {Object} The config to use in place of the argument.
+        */
 
 
   [ConfigArraySymbol.preprocessConfig](config) {
     return config;
   }
   /**
-   * Returns the config object for a given file path.
-   * @param {string} filePath The complete path of a file to get a config for.
-   * @returns {Object} The config object for this file.
-   */
+        * Determines if a given file path explicitly matches a `files` entry
+        * and also doesn't match an `ignores` entry. Configs that don't have
+        * a `files` property are not considered an explicit match.
+        * @param {string} filePath The complete path of a file to check.
+        * @returns {boolean} True if the file path matches a `files` entry
+        *              or false if not.
+        */
+
+
+  isExplicitMatch(filePath) {
+    assertNormalized(this);
+    const cache = dataCache.get(this); // first check the cache to avoid duplicate work
+
+    let result = cache.explicitMatches.get(filePath);
+
+    if (typeof result == 'boolean') {
+      return result;
+    } // TODO: Maybe move elsewhere? Maybe combine with getConfig() logic?
+
+
+    const relativeFilePath = path.relative(this.basePath, filePath);
+
+    if (shouldIgnoreFilePath(this.ignores, filePath, relativeFilePath)) {
+      debug(`Ignoring ${filePath}`); // cache and return result
+
+      cache.explicitMatches.set(filePath, false);
+      return false;
+    } // filePath isn't automatically ignored, so try to find a match
+
+
+    for (const config of this) {
+      if (!config.files) {
+        continue;
+      }
+
+      if (pathMatches(filePath, this.basePath, config)) {
+        debug(`Matching config found for ${filePath}`);
+        cache.explicitMatches.set(filePath, true);
+        return true;
+      }
+    }
+
+    return false;
+  }
+  /**
+        * Returns the config object for a given file path.
+        * @param {string} filePath The complete path of a file to get a config for.
+        * @returns {Object} The config object for this file.
+        */
 
 
   getConfig(filePath) {
@@ -121429,31 +129882,38 @@ class ConfigArray extends Array {
     } // TODO: Maybe move elsewhere?
 
 
-    const relativeFilePath = path.relative(this.basePath, filePath); // if there is a global matcher ignoring this file, just return null
+    const relativeFilePath = path.relative(this.basePath, filePath);
 
-    for (const shouldIgnore of this.ignores) {
-      if (shouldIgnoreFilePath(shouldIgnore, filePath, relativeFilePath)) {
-        // cache and return result - finalConfig is undefined at this point
-        this[ConfigArraySymbol.configCache].set(filePath, finalConfig);
-        return finalConfig;
-      }
+    if (shouldIgnoreFilePath(this.ignores, filePath, relativeFilePath)) {
+      debug(`Ignoring ${filePath}`); // cache and return result - finalConfig is undefined at this point
+
+      this[ConfigArraySymbol.configCache].set(filePath, finalConfig);
+      return finalConfig;
     } // filePath isn't automatically ignored, so try to construct config
 
 
     const matchingConfigs = [];
+    let matchFound = false;
 
     for (const config of this) {
+      if (!config.files) {
+        debug(`Universal config found for ${filePath}`);
+        matchingConfigs.push(config);
+        continue;
+      }
+
       if (pathMatches(filePath, this.basePath, config)) {
-        debug("Matching config found for ".concat(filePath));
+        debug(`Matching config found for ${filePath}`);
         matchingConfigs.push(config);
-      } else {
-        debug("No matching config found for ".concat(filePath));
+        matchFound = true;
+        continue;
       }
     } // if matching both files and ignores, there will be no config to create
 
 
-    if (matchingConfigs.length === 0) {
-      // cache and return result - finalConfig is undefined at this point
+    if (!matchFound) {
+      debug(`No matching configs found for ${filePath}`); // cache and return result - finalConfig is undefined at this point
+
       this[ConfigArraySymbol.configCache].set(filePath, finalConfig);
       return finalConfig;
     } // otherwise construct the config
@@ -121467,10 +129927,10 @@ class ConfigArray extends Array {
     return finalConfig;
   }
   /**
-   * Determines if the given filepath is ignored based on the configs.
-   * @param {string} filePath The complete path of a file to check.
-   * @returns {boolean} True if the path is ignored, false if not.
-   */
+        * Determines if the given filepath is ignored based on the configs.
+        * @param {string} filePath The complete path of a file to check.
+        * @returns {boolean} True if the path is ignored, false if not.
+        */
 
 
   isIgnored(filePath) {
@@ -121483,23 +129943,24 @@ exports.ConfigArray = ConfigArray;
 exports.ConfigArraySymbol = ConfigArraySymbol;
 
 /***/ }),
-/* 862 */
+/* 953 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/* provided dependency */ var console = __webpack_require__(438);
 module.exports = minimatch;
 minimatch.Minimatch = Minimatch;
-var path = {
+
+var path = function () {
+  try {
+    return __webpack_require__(501);
+  } catch (e) {}
+}() || {
   sep: '/'
 };
 
-try {
-  path = __webpack_require__(429);
-} catch (er) {}
-
+minimatch.sep = path.sep;
 var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {};
 
-var expand = __webpack_require__(863);
+var expand = __webpack_require__(954);
 
 var plTypes = {
   '!': {
@@ -121557,51 +130018,71 @@ function filter(pattern, options) {
 }
 
 function ext(a, b) {
-  a = a || {};
   b = b || {};
   var t = {};
-  Object.keys(b).forEach(function (k) {
-    t[k] = b[k];
-  });
   Object.keys(a).forEach(function (k) {
     t[k] = a[k];
   });
+  Object.keys(b).forEach(function (k) {
+    t[k] = b[k];
+  });
   return t;
 }
 
 minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return minimatch;
+  if (!def || typeof def !== 'object' || !Object.keys(def).length) {
+    return minimatch;
+  }
+
   var orig = minimatch;
 
   var m = function minimatch(p, pattern, options) {
-    return orig.minimatch(p, pattern, ext(def, options));
+    return orig(p, pattern, ext(def, options));
   };
 
   m.Minimatch = function Minimatch(pattern, options) {
     return new orig.Minimatch(pattern, ext(def, options));
   };
 
+  m.Minimatch.defaults = function defaults(options) {
+    return orig.defaults(ext(def, options)).Minimatch;
+  };
+
+  m.filter = function filter(pattern, options) {
+    return orig.filter(pattern, ext(def, options));
+  };
+
+  m.defaults = function defaults(options) {
+    return orig.defaults(ext(def, options));
+  };
+
+  m.makeRe = function makeRe(pattern, options) {
+    return orig.makeRe(pattern, ext(def, options));
+  };
+
+  m.braceExpand = function braceExpand(pattern, options) {
+    return orig.braceExpand(pattern, ext(def, options));
+  };
+
+  m.match = function (list, pattern, options) {
+    return orig.match(list, pattern, ext(def, options));
+  };
+
   return m;
 };
 
 Minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return Minimatch;
   return minimatch.defaults(def).Minimatch;
 };
 
 function minimatch(p, pattern, options) {
-  if (typeof pattern !== 'string') {
-    throw new TypeError('glob pattern string required');
-  }
-
+  assertValidPattern(pattern);
   if (!options) options = {}; // shortcut: comments match nothing.
 
   if (!options.nocomment && pattern.charAt(0) === '#') {
     return false;
-  } // "" only matches ""
-
+  }
 
-  if (pattern.trim() === '') return p === '';
   return new Minimatch(pattern, options).match(p);
 }
 
@@ -121610,14 +130091,11 @@ function Minimatch(pattern, options) {
     return new Minimatch(pattern, options);
   }
 
-  if (typeof pattern !== 'string') {
-    throw new TypeError('glob pattern string required');
-  }
-
+  assertValidPattern(pattern);
   if (!options) options = {};
   pattern = pattern.trim(); // windows support: need to use /, not \
 
-  if (path.sep !== '/') {
+  if (!options.allowWindowsEscape && path.sep !== '/') {
     pattern = pattern.split(path.sep).join('/');
   }
 
@@ -121627,7 +130105,8 @@ function Minimatch(pattern, options) {
   this.regexp = null;
   this.negate = false;
   this.comment = false;
-  this.empty = false; // make the set of regexps etc.
+  this.empty = false;
+  this.partial = !!options.partial; // make the set of regexps etc.
 
   this.make();
 }
@@ -121637,8 +130116,6 @@ Minimatch.prototype.debug = function () {};
 Minimatch.prototype.make = make;
 
 function make() {
-  // don't do it more than once.
-  if (this._made) return;
   var pattern = this.pattern;
   var options = this.options; // empty patterns and comments match nothing.
 
@@ -121656,7 +130133,9 @@ function make() {
   this.parseNegate(); // step 2: expand braces
 
   var set = this.globSet = this.braceExpand();
-  if (options.debug) this.debug = console.error;
+  if (options.debug) this.debug = function debug() {
+    console.error.apply(console, arguments);
+  };
   this.debug(this.pattern, set); // step 3: now we have a set, so turn each one into a series of path-portion
   // matching patterns.
   // These will be regexps, except in the case of "**", which is
@@ -121724,18 +130203,28 @@ function braceExpand(pattern, options) {
   }
 
   pattern = typeof pattern === 'undefined' ? this.pattern : pattern;
+  assertValidPattern(pattern); // Thanks to Yeting Li <https://github.com/yetingli> for
+  // improving this regexp to avoid a ReDOS vulnerability.
 
-  if (typeof pattern === 'undefined') {
-    throw new TypeError('undefined pattern');
-  }
-
-  if (options.nobrace || !pattern.match(/\{.*\}/)) {
+  if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
     // shortcut. no need to expand.
     return [pattern];
   }
 
   return expand(pattern);
-} // parse a component of the expanded set.
+}
+
+var MAX_PATTERN_LENGTH = 1024 * 64;
+
+var assertValidPattern = function (pattern) {
+  if (typeof pattern !== 'string') {
+    throw new TypeError('invalid pattern');
+  }
+
+  if (pattern.length > MAX_PATTERN_LENGTH) {
+    throw new TypeError('pattern is too long');
+  }
+}; // parse a component of the expanded set.
 // At this point, no pattern may contain "/" in it
 // so we're going to return a 2d array, where each entry is the full
 // pattern, split on '/', and then turned into a regular expression.
@@ -121752,13 +130241,13 @@ Minimatch.prototype.parse = parse;
 var SUBPARSE = {};
 
 function parse(pattern, isSub) {
-  if (pattern.length > 1024 * 64) {
-    throw new TypeError('pattern is too long');
-  }
-
+  assertValidPattern(pattern);
   var options = this.options; // shortcuts
 
-  if (!options.noglobstar && pattern === '**') return GLOBSTAR;
+  if (pattern === '**') {
+    if (!options.noglobstar) return GLOBSTAR;else pattern = '*';
+  }
+
   if (pattern === '') return '';
   var re = '';
   var hasMagic = !!options.nocase;
@@ -121812,10 +130301,13 @@ function parse(pattern, isSub) {
     }
 
     switch (c) {
+      /* istanbul ignore next */
       case '/':
-        // completely not allowed, even escaped.
-        // Should already be path-split by now.
-        return false;
+        {
+          // completely not allowed, even escaped.
+          // Should already be path-split by now.
+          return false;
+        }
 
       case '\\':
         clearStateChar();
@@ -121933,28 +130425,26 @@ function parse(pattern, isSub) {
           continue;
         } // handle the case where we left a class open.
         // "[z-a]" is valid, equivalent to "\[z-a\]"
+        // split where the last [ was, make sure we don't have
+        // an invalid re. if so, re-walk the contents of the
+        // would-be class to re-translate any characters that
+        // were passed through as-is
+        // TODO: It would probably be faster to determine this
+        // without a try/catch and a new RegExp, but it's tricky
+        // to do safely.  For now, this is safe and works.
 
 
-        if (inClass) {
-          // split where the last [ was, make sure we don't have
-          // an invalid re. if so, re-walk the contents of the
-          // would-be class to re-translate any characters that
-          // were passed through as-is
-          // TODO: It would probably be faster to determine this
-          // without a try/catch and a new RegExp, but it's tricky
-          // to do safely.  For now, this is safe and works.
-          var cs = pattern.substring(classStart + 1, i);
+        var cs = pattern.substring(classStart + 1, i);
 
-          try {
-            RegExp('[' + cs + ']');
-          } catch (er) {
-            // not a valid class!
-            var sp = this.parse(cs, SUBPARSE);
-            re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]';
-            hasMagic = hasMagic || sp[1];
-            inClass = false;
-            continue;
-          }
+        try {
+          RegExp('[' + cs + ']');
+        } catch (er) {
+          // not a valid class!
+          var sp = this.parse(cs, SUBPARSE);
+          re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]';
+          hasMagic = hasMagic || sp[1];
+          inClass = false;
+          continue;
         } // finish up the class.
 
 
@@ -122036,8 +130526,8 @@ function parse(pattern, isSub) {
   var addPatternStart = false;
 
   switch (re.charAt(0)) {
-    case '.':
     case '[':
+    case '.':
     case '(':
       addPatternStart = true;
   } // Hack to work around lack of negative lookbehind in JS
@@ -122102,7 +130592,9 @@ function parse(pattern, isSub) {
 
   try {
     var regExp = new RegExp('^' + re + '$', flags);
-  } catch (er) {
+  } catch (er)
+  /* istanbul ignore next - should be impossible */
+  {
     // If it was an invalid regular expression, then it can't match
     // anything.  This trick looks for a character after the end of
     // the string, which is of course impossible, except in multi-line
@@ -122152,7 +130644,9 @@ function makeRe() {
 
   try {
     this.regexp = new RegExp(re, flags);
-  } catch (ex) {
+  } catch (ex)
+  /* istanbul ignore next - should be impossible */
+  {
     this.regexp = false;
   }
 
@@ -122173,9 +130667,8 @@ minimatch.match = function (list, pattern, options) {
   return list;
 };
 
-Minimatch.prototype.match = match;
-
-function match(f, partial) {
+Minimatch.prototype.match = function match(f, partial) {
+  if (typeof partial === 'undefined') partial = this.partial;
   this.debug('match', f, this.pattern); // short-circuit in the case of busted things.
   // comments, etc.
 
@@ -122226,7 +130719,7 @@ function match(f, partial) {
 
   if (options.flipNegate) return false;
   return this.negate;
-} // set partial to true to test if, for example,
+}; // set partial to true to test if, for example,
 // "/a/b" matches the start of "/*/b/*/d"
 // Partial means, if you run out of file before you run
 // out of pattern, then that's fine, as long as all
@@ -122249,6 +130742,8 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
     this.debug(pattern, p, f); // should be impossible.
     // some invalid regexp stuff in the set.
 
+    /* istanbul ignore if */
+
     if (p === false) return false;
 
     if (p === GLOBSTAR) {
@@ -122318,6 +130813,8 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
       // However, in partial mode, we can't say this is necessarily over.
       // If there's more *pattern* left, then
 
+      /* istanbul ignore if */
+
 
       if (partial) {
         // ran out of file
@@ -122334,12 +130831,7 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
     var hit;
 
     if (typeof p === 'string') {
-      if (options.nocase) {
-        hit = f.toLowerCase() === p.toLowerCase();
-      } else {
-        hit = f === p;
-      }
-
+      hit = f === p;
       this.debug('string match', p, f, hit);
     } else {
       hit = f.match(p);
@@ -122369,14 +130861,17 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
     // this is ok if we're doing the match as part of
     // a glob fs traversal.
     return partial;
-  } else if (pi === pl) {
-    // ran out of pattern, still have file left.
-    // this is only acceptable if we're on the very last
-    // empty segment of a file with a trailing slash.
-    // a/* should match a/b/
-    var emptyFileEnd = fi === fl - 1 && file[fi] === '';
-    return emptyFileEnd;
-  } // should be unreachable.
+  } else
+    /* istanbul ignore else */
+    if (pi === pl) {
+      // ran out of pattern, still have file left.
+      // this is only acceptable if we're on the very last
+      // empty segment of a file with a trailing slash.
+      // a/* should match a/b/
+      return fi === fl - 1 && file[fi] === '';
+    } // should be unreachable.
+
+  /* istanbul ignore next */
 
 
   throw new Error('wtf?');
@@ -122392,12 +130887,12 @@ function regExpEscape(s) {
 }
 
 /***/ }),
-/* 863 */
+/* 954 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var concatMap = __webpack_require__(864);
+var concatMap = __webpack_require__(955);
 
-var balanced = __webpack_require__(865);
+var balanced = __webpack_require__(956);
 
 module.exports = expandTop;
 var escSlash = '\0SLASH' + Math.random() + '\0';
@@ -122577,7 +131072,7 @@ function expand(str, isTop) {
 }
 
 /***/ }),
-/* 864 */
+/* 955 */
 /***/ ((module) => {
 
 module.exports = function (xs, fn) {
@@ -122596,7 +131091,7 @@ var isArray = Array.isArray || function (xs) {
 };
 
 /***/ }),
-/* 865 */
+/* 956 */
 /***/ ((module) => {
 
 "use strict";
@@ -122667,18 +131162,18 @@ function range(a, b, str) {
 }
 
 /***/ }),
-/* 866 */
+/* 957 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 /**
  * @filedescription Object Schema Package
  */
-exports.ObjectSchema = __webpack_require__(867).ObjectSchema;
-exports.MergeStrategy = __webpack_require__(868).MergeStrategy;
-exports.ValidationStrategy = __webpack_require__(869).ValidationStrategy;
+exports.ObjectSchema = __webpack_require__(958).ObjectSchema;
+exports.MergeStrategy = __webpack_require__(959).MergeStrategy;
+exports.ValidationStrategy = __webpack_require__(960).ValidationStrategy;
 
 /***/ }),
-/* 867 */
+/* 958 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -122691,11 +131186,11 @@ exports.ValidationStrategy = __webpack_require__(869).ValidationStrategy;
 
 const {
   MergeStrategy
-} = __webpack_require__(868);
+} = __webpack_require__(959);
 
 const {
   ValidationStrategy
-} = __webpack_require__(869); //-----------------------------------------------------------------------------
+} = __webpack_require__(960); //-----------------------------------------------------------------------------
 // Private
 //-----------------------------------------------------------------------------
 
@@ -122732,18 +131227,18 @@ function validateDefinition(name, strategy) {
 
   if (typeof strategy.merge === "string") {
     if (!(strategy.merge in MergeStrategy)) {
-      throw new TypeError("Definition for key \"".concat(name, "\" missing valid merge strategy."));
+      throw new TypeError(`Definition for key "${name}" missing valid merge strategy.`);
     }
   } else if (!hasSchema && typeof strategy.merge !== "function") {
-    throw new TypeError("Definition for key \"".concat(name, "\" must have a merge property."));
+    throw new TypeError(`Definition for key "${name}" must have a merge property.`);
   }
 
   if (typeof strategy.validate === "string") {
     if (!(strategy.validate in ValidationStrategy)) {
-      throw new TypeError("Definition for key \"".concat(name, "\" missing valid validation strategy."));
+      throw new TypeError(`Definition for key "${name}" missing valid validation strategy.`);
     }
   } else if (!hasSchema && typeof strategy.validate !== "function") {
-    throw new TypeError("Definition for key \"".concat(name, "\" must have a validate() method."));
+    throw new TypeError(`Definition for key "${name}" must have a validate() method.`);
   }
 } //-----------------------------------------------------------------------------
 // Class
@@ -122869,7 +131364,7 @@ class ObjectSchema {
             }
           }
         } catch (ex) {
-          ex.message = "Key \"".concat(key, "\": ") + ex.message;
+          ex.message = `Key "${key}": ` + ex.message;
           throw ex;
         }
       }
@@ -122890,7 +131385,7 @@ class ObjectSchema {
     for (const key of Object.keys(object)) {
       // check to see if the key is defined
       if (!this.hasKey(key)) {
-        throw new Error("Unexpected key \"".concat(key, "\" found."));
+        throw new Error(`Unexpected key "${key}" found.`);
       } // validate existing keys
 
 
@@ -122898,7 +131393,7 @@ class ObjectSchema {
 
       if (Array.isArray(strategy.requires)) {
         if (!strategy.requires.every(otherKey => otherKey in object)) {
-          throw new Error("Key \"".concat(key, "\" requires keys \"").concat(strategy.requires.join("\", \""), "\"."));
+          throw new Error(`Key "${key}" requires keys "${strategy.requires.join("\", \"")}".`);
         }
       } // now apply remaining validation strategy
 
@@ -122906,7 +131401,7 @@ class ObjectSchema {
       try {
         strategy.validate.call(strategy, object[key]);
       } catch (ex) {
-        ex.message = "Key \"".concat(key, "\": ") + ex.message;
+        ex.message = `Key "${key}": ` + ex.message;
         throw ex;
       }
     } // ensure required keys aren't missing
@@ -122914,7 +131409,7 @@ class ObjectSchema {
 
     for (const [key] of this[requiredKeys]) {
       if (!(key in object)) {
-        throw new Error("Missing required key \"".concat(key, "\"."));
+        throw new Error(`Missing required key "${key}".`);
       }
     }
   }
@@ -122924,7 +131419,7 @@ class ObjectSchema {
 exports.ObjectSchema = ObjectSchema;
 
 /***/ }),
-/* 868 */
+/* 959 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
@@ -122983,7 +131478,7 @@ class MergeStrategy {
 exports.MergeStrategy = MergeStrategy;
 
 /***/ }),
-/* 869 */
+/* 960 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
@@ -123094,7 +131589,7 @@ class ValidationStrategy {
 exports.ValidationStrategy = ValidationStrategy;
 
 /***/ }),
-/* 870 */
+/* 961 */
 /***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
@@ -123245,7 +131740,7 @@ function assertIsRuleSeverity(value) {
 
 function assertIsPluginMemberName(value) {
   if (!/[@a-z0-9-_$]+(?:\/(?:[a-z0-9-_$]+))+$/iu.test(value)) {
-    throw new TypeError("Expected string in the form \"pluginName/objectName\" but found \"".concat(value, "\"."));
+    throw new TypeError(`Expected string in the form "pluginName/objectName" but found "${value}".`);
   }
 }
 /**
@@ -123313,11 +131808,11 @@ const globalsSchema = {
       }
 
       if (key !== key.trim()) {
-        throw new TypeError("Global \"".concat(key, "\" has leading or trailing whitespace."));
+        throw new TypeError(`Global "${key}" has leading or trailing whitespace.`);
       }
 
       if (!globalVariablesValues.has(value[key])) {
-        throw new TypeError("Key \"".concat(key, "\": Expected \"readonly\", \"writable\", or \"off\"."));
+        throw new TypeError(`Key "${key}": Expected "readonly", "writable", or "off".`);
       }
     }
   }
@@ -123357,7 +131852,7 @@ const pluginsSchema = {
       }
 
       if (key in first && key in second && first[key] !== second[key]) {
-        throw new TypeError("Cannot redefine plugin \"".concat(key, "\"."));
+        throw new TypeError(`Cannot redefine plugin "${key}".`);
       }
 
       result[key] = second[key] || first[key];
@@ -123380,7 +131875,7 @@ const pluginsSchema = {
       }
 
       if (value[key] === null || typeof value[key] !== "object") {
-        throw new TypeError("Key \"".concat(key, "\": Expected an object."));
+        throw new TypeError(`Key "${key}": Expected an object.`);
       }
     }
   }
@@ -123484,7 +131979,7 @@ const rulesSchema = {
         }
       }
     } catch (error) {
-      error.message = "Key \"".concat(lastRuleId, "\": ").concat(error.message);
+      error.message = `Key "${lastRuleId}": ${error.message}`;
       throw error;
     }
   }
@@ -123542,7 +132037,7 @@ exports.flatConfigSchema = {
 };
 
 /***/ }),
-/* 871 */
+/* 962 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -123554,14 +132049,15 @@ exports.flatConfigSchema = {
 // Requirements
 //-----------------------------------------------------------------------------
 
-const ajv = __webpack_require__(872)();
+const ajv = __webpack_require__(963)();
 
 const {
   parseRuleId,
-  getRuleFromConfig
-} = __webpack_require__(859);
+  getRuleFromConfig,
+  getRuleOptionsSchema
+} = __webpack_require__(950);
 
-const ruleReplacements = __webpack_require__(858); //-----------------------------------------------------------------------------
+const ruleReplacements = __webpack_require__(949); //-----------------------------------------------------------------------------
 // Helpers
 //-----------------------------------------------------------------------------
 
@@ -123581,21 +132077,21 @@ function throwRuleNotFoundError(_ref, config) {
     pluginName,
     ruleName
   } = _ref;
-  const ruleId = pluginName === "@" ? ruleName : "".concat(pluginName, "/").concat(ruleName);
-  const errorMessageHeader = "Key \"rules\": Key \"".concat(ruleId, "\"");
-  let errorMessage = "".concat(errorMessageHeader, ": Could not find plugin \"").concat(pluginName, "\"."); // if the plugin exists then we need to check if the rule exists
+  const ruleId = pluginName === "@" ? ruleName : `${pluginName}/${ruleName}`;
+  const errorMessageHeader = `Key "rules": Key "${ruleId}"`;
+  let errorMessage = `${errorMessageHeader}: Could not find plugin "${pluginName}".`; // if the plugin exists then we need to check if the rule exists
 
   if (config.plugins && config.plugins[pluginName]) {
     const replacementRuleName = ruleReplacements.rules[ruleName];
 
     if (pluginName === "@" && replacementRuleName) {
-      errorMessage = "".concat(errorMessageHeader, ": Rule \"").concat(ruleName, "\" was removed and replaced by \"").concat(replacementRuleName, "\".");
+      errorMessage = `${errorMessageHeader}: Rule "${ruleName}" was removed and replaced by "${replacementRuleName}".`;
     } else {
-      errorMessage = "".concat(errorMessageHeader, ": Could not find \"").concat(ruleName, "\" in plugin \"").concat(pluginName, "\"."); // otherwise, let's see if we can find the rule name elsewhere
+      errorMessage = `${errorMessageHeader}: Could not find "${ruleName}" in plugin "${pluginName}".`; // otherwise, let's see if we can find the rule name elsewhere
 
       for (const [otherPluginName, otherPlugin] of Object.entries(config.plugins)) {
         if (otherPlugin.rules && otherPlugin.rules[ruleName]) {
-          errorMessage += " Did you mean \"".concat(otherPluginName, "/").concat(ruleName, "\"?");
+          errorMessage += ` Did you mean "${otherPluginName}/${ruleName}"?`;
           break;
         }
       }
@@ -123604,40 +132100,6 @@ function throwRuleNotFoundError(_ref, config) {
   }
 
   throw new TypeError(errorMessage);
-}
-/**
- * Gets a complete options schema for a rule.
- * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object
- * @returns {Object} JSON Schema for the rule's options.
- */
-
-
-function getRuleOptionsSchema(rule) {
-  if (!rule) {
-    return null;
-  }
-
-  const schema = rule.schema || rule.meta && rule.meta.schema;
-
-  if (Array.isArray(schema)) {
-    if (schema.length) {
-      return {
-        type: "array",
-        items: schema,
-        minItems: 0,
-        maxItems: schema.length
-      };
-    }
-
-    return {
-      type: "array",
-      minItems: 0,
-      maxItems: 0
-    };
-  } // Given a full schema, leave it alone
-
-
-  return schema || null;
 } //-----------------------------------------------------------------------------
 // Exports
 //-----------------------------------------------------------------------------
@@ -123715,7 +132177,7 @@ class RuleValidator {
         validateRule(ruleOptions.slice(1));
 
         if (validateRule.errors) {
-          throw new Error("Key \"rules\": Key \"".concat(ruleId, "\": ").concat(validateRule.errors.map(error => "\tValue ".concat(JSON.stringify(error.data), " ").concat(error.message, ".\n")).join("")));
+          throw new Error(`Key "rules": Key "${ruleId}": ${validateRule.errors.map(error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n`).join("")}`);
         }
       }
     }
@@ -123726,7 +132188,7 @@ class RuleValidator {
 exports.RuleValidator = RuleValidator;
 
 /***/ }),
-/* 872 */
+/* 963 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -123738,8 +132200,8 @@ exports.RuleValidator = RuleValidator;
 // Requirements
 //------------------------------------------------------------------------------
 
-const Ajv = __webpack_require__(446),
-      metaSchema = __webpack_require__(873); //------------------------------------------------------------------------------
+const Ajv = __webpack_require__(517),
+      metaSchema = __webpack_require__(964); //------------------------------------------------------------------------------
 // Public Interface
 //------------------------------------------------------------------------------
 
@@ -123762,14 +132224,14 @@ module.exports = function () {
 };
 
 /***/ }),
-/* 873 */
+/* 964 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = JSON.parse('{"id":"http://json-schema.org/draft-04/schema#","$schema":"http://json-schema.org/draft-04/schema#","description":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"positiveInteger":{"type":"integer","minimum":0},"positiveIntegerDefault0":{"allOf":[{"$ref":"#/definitions/positiveInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true}},"type":"object","properties":{"id":{"type":"string"},"$schema":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"multipleOf":{"type":"number","minimum":0,"exclusiveMinimum":true},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"boolean","default":false},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"boolean","default":false},"maxLength":{"$ref":"#/definitions/positiveInteger"},"minLength":{"$ref":"#/definitions/positiveIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/positiveInteger"},"minItems":{"$ref":"#/definitions/positiveIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"maxProperties":{"$ref":"#/definitions/positiveInteger"},"minProperties":{"$ref":"#/definitions/positiveIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"dependencies":{"exclusiveMaximum":["maximum"],"exclusiveMinimum":["minimum"]},"default":{}}');
 
 /***/ }),
-/* 874 */
+/* 965 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
@@ -123781,7 +132243,7 @@ module.exports = JSON.parse('{"id":"http://json-schema.org/draft-04/schema#","$s
 // Requirements
 //-----------------------------------------------------------------------------
 
-const Rules = __webpack_require__(545); //-----------------------------------------------------------------------------
+const Rules = __webpack_require__(615); //-----------------------------------------------------------------------------
 // Helpers
 //-----------------------------------------------------------------------------
 
@@ -123790,7 +132252,7 @@ exports.defaultConfig = [{
   plugins: {
     "@": {
       parsers: {
-        espree: __webpack_require__(436)
+        espree: __webpack_require__(508)
       },
 
       /*
@@ -123811,22 +132273,28 @@ exports.defaultConfig = [{
       })
     }
   },
-  ignores: ["**/node_modules/**", ".git/**"],
   languageOptions: {
-    ecmaVersion: "latest",
     sourceType: "module",
+    ecmaVersion: "latest",
     parser: "@/espree",
     parserOptions: {}
   }
+}, // default ignores are listed here
+{
+  ignores: ["**/node_modules/**", ".git/**"]
+}, // intentionally empty config to ensure these files are globbed by default
+{
+  files: ["**/*.js", "**/*.mjs"]
 }, {
   files: ["**/*.cjs"],
   languageOptions: {
-    sourceType: "commonjs"
+    sourceType: "commonjs",
+    ecmaVersion: "latest"
   }
 }];
 
 /***/ }),
-/* 875 */
+/* 966 */
 /***/ ((module) => {
 
 "use strict";
@@ -123907,7 +132375,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 876 */
+/* 967 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -123919,7 +132387,7 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const builtInRules = __webpack_require__(545); //------------------------------------------------------------------------------
+const builtInRules = __webpack_require__(615); //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
@@ -123942,7 +132410,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 877 */
+/* 968 */
 /***/ ((module) => {
 
 "use strict";
@@ -124048,6 +132516,8 @@ const es2021 = { ...es2020,
   WeakRef: false
 };
 const es2022 = { ...es2021
+};
+const es2023 = { ...es2022
 }; //-----------------------------------------------------------------------------
 // Exports
 //-----------------------------------------------------------------------------
@@ -124063,11 +132533,12 @@ module.exports = {
   es2019,
   es2020,
   es2021,
-  es2022
+  es2022,
+  es2023
 };
 
 /***/ }),
-/* 878 */
+/* 969 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
@@ -124075,18 +132546,22 @@ module.exports = {
 
 const {
   ESLint
-} = __webpack_require__(879);
+} = __webpack_require__(970);
+
+const {
+  FlatESLint
+} = __webpack_require__(1013);
 
 module.exports = {
-  ESLint
+  ESLint,
+  FlatESLint
 };
 
 /***/ }),
-/* 879 */
+/* 970 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
 /**
  * @fileoverview Main API Class
  * @author Kai Cataldo
@@ -124096,20 +132571,20 @@ module.exports = {
 // Requirements
 //------------------------------------------------------------------------------
 
-const path = __webpack_require__(429);
+const path = __webpack_require__(501);
 
-const fs = __webpack_require__(880);
+const fs = __webpack_require__(971);
 
 const {
   promisify
-} = __webpack_require__(439);
+} = __webpack_require__(516);
 
 const {
   CLIEngine,
   getCLIEngineInternalSlots
-} = __webpack_require__(881);
+} = __webpack_require__(972);
 
-const BuiltinRules = __webpack_require__(545);
+const BuiltinRules = __webpack_require__(615);
 
 const {
   Legacy: {
@@ -124117,11 +132592,11 @@ const {
       getRuleSeverity
     }
   }
-} = __webpack_require__(883);
+} = __webpack_require__(974);
 
 const {
   version
-} = __webpack_require__(443); //------------------------------------------------------------------------------
+} = __webpack_require__(513); //------------------------------------------------------------------------------
 // Typedefs
 //------------------------------------------------------------------------------
 
@@ -124133,13 +132608,17 @@ const {
 
 /** @typedef {import("../shared/types").LintMessage} LintMessage */
 
+/** @typedef {import("../shared/types").SuppressedLintMessage} SuppressedLintMessage */
+
 /** @typedef {import("../shared/types").Plugin} Plugin */
 
 /** @typedef {import("../shared/types").Rule} Rule */
 
+/** @typedef {import("../shared/types").LintResult} LintResult */
+
 /**
  * The main formatter object.
- * @typedef Formatter
+ * @typedef LoadedFormatter
  * @property {function(LintResult[]): string | Promise<string>} format format function.
  */
 
@@ -124175,20 +132654,6 @@ const {
  * @property {Object} definition The plugin definition.
  */
 
-/**
- * A linting result.
- * @typedef {Object} LintResult
- * @property {string} filePath The path to the file that was linted.
- * @property {LintMessage[]} messages All of the messages for the result.
- * @property {number} errorCount Number of errors for the result.
- * @property {number} warningCount Number of warnings for the result.
- * @property {number} fixableErrorCount Number of fixable errors for the result.
- * @property {number} fixableWarningCount Number of fixable warnings for the result.
- * @property {string} [source] The source code of the file that was linted.
- * @property {string} [output] The source code of the file that was linted, with as many fixes applied as possible.
- * @property {DeprecatedRuleInfo[]} usedDeprecatedRules The list of used deprecated rules.
- */
-
 /**
  * Private members for the `ESLint` instance.
  * @typedef {Object} ESLintPrivateMembers
@@ -124217,9 +132682,9 @@ function isNonEmptyString(x) {
   return typeof x === "string" && x.trim() !== "";
 }
 /**
- * Check if a given value is an array of non-empty stringss or not.
+ * Check if a given value is an array of non-empty strings or not.
  * @param {any} x The value to check.
- * @returns {boolean} `true` if `x` is an array of non-empty stringss.
+ * @returns {boolean} `true` if `x` is an array of non-empty strings.
  */
 
 
@@ -124253,7 +132718,7 @@ function isFixTypeArray(x) {
 
 class ESLintInvalidOptionsError extends Error {
   constructor(messages) {
-    super("Invalid Options:\n- ".concat(messages.join("\n- ")));
+    super(`Invalid Options:\n- ${messages.join("\n- ")}`);
     this.code = "ESLINT_INVALID_OPTIONS";
     Error.captureStackTrace(this, ESLintInvalidOptionsError);
   }
@@ -124301,7 +132766,7 @@ function processOptions(_ref) {
   const unknownOptionKeys = Object.keys(unknownOptions);
 
   if (unknownOptionKeys.length >= 1) {
-    errors.push("Unknown options: ".concat(unknownOptionKeys.join(", ")));
+    errors.push(`Unknown options: ${unknownOptionKeys.join(", ")}`);
 
     if (unknownOptionKeys.includes("cacheFile")) {
       errors.push("'cacheFile' has been removed. Please use the 'cacheLocation' option instead.");
@@ -124673,6 +133138,12 @@ class ESLint {
       } of result.messages) {
         resultRuleIds.add(ruleId);
       }
+
+      for (const {
+        ruleId
+      } of result.suppressedMessages) {
+        resultRuleIds.add(ruleId);
+      }
     } // create a map of all rules in the results
 
 
@@ -124736,7 +133207,7 @@ class ESLint {
     const unknownOptionKeys = Object.keys(unknownOptions);
 
     if (unknownOptionKeys.length > 0) {
-      throw new Error("'options' must not include the unknown option(s): ".concat(unknownOptionKeys.join(", ")));
+      throw new Error(`'options' must not include the unknown option(s): ${unknownOptionKeys.join(", ")}`);
     }
 
     if (filePath !== void 0 && !isNonEmptyString(filePath)) {
@@ -124758,12 +133229,12 @@ class ESLint {
    * The following values are allowed:
    * - `undefined` ... Load `stylish` builtin formatter.
    * - A builtin formatter name ... Load the builtin formatter.
-   * - A thirdparty formatter name:
+   * - A third-party formatter name:
    *   - `foo` → `eslint-formatter-foo`
    *   - `@foo` → `@foo/eslint-formatter`
    *   - `@foo/bar` → `@foo/eslint-formatter-bar`
    * - A file path ... Load the file.
-   * @returns {Promise<Formatter>} A promise resolving to the formatter object.
+   * @returns {Promise<LoadedFormatter>} A promise resolving to the formatter object.
    * This promise will be rejected if the given formatter was not found or not
    * a function.
    */
@@ -124783,13 +133254,13 @@ class ESLint {
     const formatter = cliEngine.getFormatter(name);
 
     if (typeof formatter !== "function") {
-      throw new Error("Formatter must be a function, but got a ".concat(typeof formatter, "."));
+      throw new Error(`Formatter must be a function, but got a ${typeof formatter}.`);
     }
 
     return {
       /**
        * The main formatter method.
-       * @param {LintResults[]} results The lint results to format.
+       * @param {LintResult[]} results The lint results to format.
        * @returns {string | Promise<string>} The formatted lint results.
        */
       format(results) {
@@ -124870,18 +133341,17 @@ module.exports = {
 };
 
 /***/ }),
-/* 880 */
+/* 971 */
 /***/ ((module) => {
 
 "use strict";
 module.exports = require("fs");
 
 /***/ }),
-/* 881 */
+/* 972 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
 /**
  * @fileoverview Main CLI object.
  * @author Nicholas C. Zakas
@@ -124896,13 +133366,13 @@ module.exports = require("fs");
 // Requirements
 //------------------------------------------------------------------------------
 
-const fs = __webpack_require__(880);
+const fs = __webpack_require__(971);
 
-const path = __webpack_require__(429);
+const path = __webpack_require__(501);
 
-const defaultOptions = __webpack_require__(882);
+const defaultOptions = __webpack_require__(973);
 
-const pkg = __webpack_require__(443);
+const pkg = __webpack_require__(513);
 
 const {
   Legacy: {
@@ -124913,25 +133383,25 @@ const {
     getUsedExtractedConfigs,
     ModuleResolver
   }
-} = __webpack_require__(883);
+} = __webpack_require__(974);
 
 const {
   FileEnumerator
-} = __webpack_require__(893);
+} = __webpack_require__(984);
 
 const {
   Linter
-} = __webpack_require__(897);
+} = __webpack_require__(988);
 
-const builtInRules = __webpack_require__(545);
+const builtInRules = __webpack_require__(615);
 
-const loadRules = __webpack_require__(898);
+const loadRules = __webpack_require__(989);
 
-const hash = __webpack_require__(900);
+const hash = __webpack_require__(991);
 
-const LintResultCache = __webpack_require__(902);
+const LintResultCache = __webpack_require__(993);
 
-const debug = __webpack_require__(496)("eslint:cli-engine");
+const debug = __webpack_require__(566)("eslint:cli-engine");
 
 const validFixTypes = new Set(["directive", "problem", "suggestion", "layout"]); //------------------------------------------------------------------------------
 // Typedefs
@@ -124944,6 +133414,8 @@ const validFixTypes = new Set(["directive", "problem", "suggestion", "layout"]);
 
 /** @typedef {import("../shared/types").LintMessage} LintMessage */
 
+/** @typedef {import("../shared/types").SuppressedLintMessage} SuppressedLintMessage */
+
 /** @typedef {import("../shared/types").ParserOptions} ParserOptions */
 
 /** @typedef {import("../shared/types").Plugin} Plugin */
@@ -124952,6 +133424,8 @@ const validFixTypes = new Set(["directive", "problem", "suggestion", "layout"]);
 
 /** @typedef {import("../shared/types").Rule} Rule */
 
+/** @typedef {import("../shared/types").FormatterFunction} FormatterFunction */
+
 /** @typedef {ReturnType<CascadingConfigArrayFactory.getConfigArrayForFile>} ConfigArray */
 
 /** @typedef {ReturnType<ConfigArray.extractConfig>} ExtractedConfig */
@@ -124989,7 +133463,9 @@ const validFixTypes = new Set(["directive", "problem", "suggestion", "layout"]);
  * @typedef {Object} LintResult
  * @property {string} filePath The path to the file that was linted.
  * @property {LintMessage[]} messages All of the messages for the result.
+ * @property {SuppressedLintMessage[]} suppressedMessages All of the suppressed messages for the result.
  * @property {number} errorCount Number of errors for the result.
+ * @property {number} fatalErrorCount Number of fatal errors for the result.
  * @property {number} warningCount Number of warnings for the result.
  * @property {number} fixableErrorCount Number of fixable errors for the result.
  * @property {number} fixableWarningCount Number of fixable warnings for the result.
@@ -125002,6 +133478,7 @@ const validFixTypes = new Set(["directive", "problem", "suggestion", "layout"]);
  * @typedef {Object} LintReport
  * @property {LintResult[]} results All of the result.
  * @property {number} errorCount Number of errors for the result.
+ * @property {number} fatalErrorCount Number of fatal errors for the result.
  * @property {number} warningCount Number of warnings for the result.
  * @property {number} fixableErrorCount Number of fixable errors for the result.
  * @property {number} fixableWarningCount Number of fixable warnings for the result.
@@ -125039,7 +133516,7 @@ const internalSlotsMap = new WeakMap();
 function validateFixTypes(fixTypes) {
   for (const fixType of fixTypes) {
     if (!validFixTypes.has(fixType)) {
-      throw new Error("Invalid fix type \"".concat(fixType, "\" found."));
+      throw new Error(`Invalid fix type "${fixType}" found.`);
     }
   }
 }
@@ -125134,7 +133611,7 @@ function verifyText(_ref) {
     linter
   } = _ref;
   const filePath = providedFilePath || "<text>";
-  debug("Lint ".concat(filePath));
+  debug(`Lint ${filePath}`);
   /*
    * Verify.
    * `config.extractConfig(filePath)` requires an absolute path, but `linter`
@@ -125166,6 +133643,7 @@ function verifyText(_ref) {
   const result = {
     filePath,
     messages,
+    suppressedMessages: linter.getSuppressedMessages(),
     ...calculateStatsPerFile(messages)
   };
 
@@ -125208,7 +133686,9 @@ function createIgnoreResult(filePath, baseDir) {
       severity: 1,
       message
     }],
+    suppressedMessages: [],
     errorCount: 0,
+    fatalErrorCount: 0,
     warningCount: 1,
     fixableErrorCount: 0,
     fixableWarningCount: 0
@@ -125262,7 +133742,7 @@ function* iterateRuleDeprecationWarnings(usedConfigArrays) {
 
   /** @type {ExtractedConfig[]} */
 
-  const configs = [].concat(...usedConfigArrays.map(getUsedExtractedConfigs)); // Traverse rule configs.
+  const configs = usedConfigArrays.flatMap(getUsedExtractedConfigs); // Traverse rule configs.
 
   for (const config of configs) {
     for (const [ruleId, ruleConfig] of Object.entries(config.rules)) {
@@ -125307,7 +133787,7 @@ function isErrorMessage(message) {
  * a directory or looks like a directory (ends in `path.sep`), in which case the file
  * name will be the `cacheFile/.cache_hashOfCWD`
  *
- * if cacheFile points to a file or looks like a file then in will just use that file
+ * if cacheFile points to a file or looks like a file then it will just use that file
  * @param {string} cacheFile The name of file to be used to store the cache
  * @param {string} cwd Current working directory
  * @returns {string} the resolved path to the cache file
@@ -125328,7 +133808,7 @@ function getCacheFile(cacheFile, cwd) {
    */
 
   function getCacheFileForDirectory() {
-    return path.join(resolvedCacheFile, ".cache_".concat(hash(cwd)));
+    return path.join(resolvedCacheFile, `.cache_${hash(cwd)}`);
   }
 
   let fileStats;
@@ -125384,7 +133864,7 @@ function getCacheFile(cacheFile, cwd) {
 
 function toBooleanMap(keys, defaultValue, displayName) {
   if (keys && !Array.isArray(keys)) {
-    throw new Error("".concat(displayName, " must be an array."));
+    throw new Error(`${displayName} must be an array.`);
   }
 
   if (keys && keys.length > 0) {
@@ -125500,8 +133980,8 @@ class CLIEngine {
       useEslintrc: options.useEslintrc,
       builtInRules,
       loadRules,
-      eslintRecommendedPath: path.resolve(__dirname, "../../conf/eslint-recommended.js"),
-      eslintAllPath: path.resolve(__dirname, "../../conf/eslint-all.js")
+      getEslintRecommendedConfig: () => __webpack_require__(966),
+      getEslintAllConfig: () => __webpack_require__(967)
     });
     const fileEnumerator = new FileEnumerator({
       configArrayFactory,
@@ -125532,7 +134012,7 @@ class CLIEngine {
     }); // setup special filter for fixes
 
     if (options.fix && options.fixTypes && options.fixTypes.length > 0) {
-      debug("Using fix types ".concat(options.fixTypes)); // throw an error if any invalid fix types are found
+      debug(`Using fix types ${options.fixTypes}`); // throw an error if any invalid fix types are found
 
       validateFixTypes(options.fixTypes); // convert to Set for faster lookup
 
@@ -125567,10 +134047,12 @@ class CLIEngine {
     const filtered = [];
     results.forEach(result => {
       const filteredMessages = result.messages.filter(isErrorMessage);
+      const filteredSuppressedMessages = result.suppressedMessages.filter(isErrorMessage);
 
       if (filteredMessages.length > 0) {
         filtered.push({ ...result,
           messages: filteredMessages,
+          suppressedMessages: filteredSuppressedMessages,
           errorCount: filteredMessages.length,
           warningCount: 0,
           fixableErrorCount: result.fixableErrorCount,
@@ -125610,7 +134092,7 @@ class CLIEngine {
     }
 
     const extensions = (options.extensions || [".js"]).map(ext => ext.replace(/^\./u, ""));
-    const dirSuffix = "/**/*.{".concat(extensions.join(","), "}");
+    const dirSuffix = `/**/*.{${extensions.join(",")}}`;
     return patterns.filter(Boolean).map(pathname => {
       const resolvedPath = path.resolve(options.cwd, pathname);
       const newPath = directoryExists(resolvedPath) ? pathname.replace(/[/\\]$/u, "") + dirSuffix : pathname;
@@ -125687,9 +134169,9 @@ class CLIEngine {
           const hadMessages = cachedResult.messages && cachedResult.messages.length > 0;
 
           if (hadMessages && fix) {
-            debug("Reprocessing cached file to allow autofix: ".concat(filePath));
+            debug(`Reprocessing cached file to allow autofix: ${filePath}`);
           } else {
-            debug("Skipping file since it hasn't changed: ".concat(filePath));
+            debug(`Skipping file since it hasn't changed: ${filePath}`);
             results.push(cachedResult);
             continue;
           }
@@ -125726,7 +134208,7 @@ class CLIEngine {
       lintResultCache.reconcile();
     }
 
-    debug("Linting complete in: ".concat(Date.now() - startTime, "ms"));
+    debug(`Linting complete in: ${Date.now() - startTime}ms`);
     let usedDeprecatedRules;
     return {
       results,
@@ -125799,7 +134281,7 @@ class CLIEngine {
       }));
     }
 
-    debug("Linting complete in: ".concat(Date.now() - startTime, "ms"));
+    debug(`Linting complete in: ${Date.now() - startTime}ms`);
     let usedDeprecatedRules;
     return {
       results,
@@ -125872,7 +134354,7 @@ class CLIEngine {
    * @param {string} [format] The name of the format to load or the path to a
    *      custom formatter.
    * @throws {any} As may be thrown by requiring of formatter
-   * @returns {(Function|null)} The formatter function or null if the `format` is not a string.
+   * @returns {(FormatterFunction|null)} The formatter function or null if the `format` is not a string.
    */
 
 
@@ -125888,7 +134370,7 @@ class CLIEngine {
       const namespace = naming.getNamespaceFromTerm(normalizedFormatName);
       let formatterPath; // if there's a slash, then it's a file (TODO: this check seems dubious for scoped npm packages)
 
-      if (!namespace && normalizedFormatName.indexOf("/") > -1) {
+      if (!namespace && normalizedFormatName.includes("/")) {
         formatterPath = path.resolve(cwd, normalizedFormatName);
       } else {
         try {
@@ -125900,12 +134382,12 @@ class CLIEngine {
       }
 
       try {
-        return __webpack_require__(899)(formatterPath);
+        return __webpack_require__(990)(formatterPath);
       } catch (ex) {
         if (format === "table" || format === "codeframe") {
-          ex.message = "The ".concat(format, " formatter is no longer part of core ESLint. Install it manually with `npm install -D eslint-formatter-").concat(format, "`");
+          ex.message = `The ${format} formatter is no longer part of core ESLint. Install it manually with \`npm install -D eslint-formatter-${format}\``;
         } else {
-          ex.message = "There was a problem loading formatter: ".concat(formatterPath, "\nError: ").concat(ex.message);
+          ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`;
         }
 
         throw ex;
@@ -125934,7 +134416,7 @@ module.exports = {
 };
 
 /***/ }),
-/* 882 */
+/* 973 */
 /***/ ((module) => {
 
 "use strict";
@@ -125971,8876 +134453,20040 @@ module.exports = {
 };
 
 /***/ }),
-/* 883 */
+/* 974 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
 
 
 Object.defineProperty(exports, "__esModule", ({ value: true }));
 
-var fs = __webpack_require__(880);
-var path = __webpack_require__(429);
-var importFresh = __webpack_require__(884);
-var stripComments = __webpack_require__(890);
-var util = __webpack_require__(439);
-var Ajv = __webpack_require__(446);
-var globals = __webpack_require__(492);
-var Module = __webpack_require__(886);
-var assert = __webpack_require__(431);
-var ignore = __webpack_require__(737);
-var debugOrig = __webpack_require__(496);
-var minimatch = __webpack_require__(862);
-var os = __webpack_require__(891);
-var url = __webpack_require__(892);
+var debugOrig = __webpack_require__(566);
+var fs = __webpack_require__(971);
+var importFresh = __webpack_require__(975);
+var Module = __webpack_require__(977);
+var path = __webpack_require__(501);
+var stripComments = __webpack_require__(981);
+var assert = __webpack_require__(503);
+var ignore = __webpack_require__(827);
+var util = __webpack_require__(516);
+var minimatch = __webpack_require__(953);
+var Ajv = __webpack_require__(517);
+var globals = __webpack_require__(563);
+var os = __webpack_require__(982);
 
 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
 
+var debugOrig__default = /*#__PURE__*/_interopDefaultLegacy(debugOrig);
 var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
-var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
 var importFresh__default = /*#__PURE__*/_interopDefaultLegacy(importFresh);
-var stripComments__default = /*#__PURE__*/_interopDefaultLegacy(stripComments);
-var util__default = /*#__PURE__*/_interopDefaultLegacy(util);
-var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv);
-var globals__default = /*#__PURE__*/_interopDefaultLegacy(globals);
 var Module__default = /*#__PURE__*/_interopDefaultLegacy(Module);
+var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
+var stripComments__default = /*#__PURE__*/_interopDefaultLegacy(stripComments);
 var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
 var ignore__default = /*#__PURE__*/_interopDefaultLegacy(ignore);
-var debugOrig__default = /*#__PURE__*/_interopDefaultLegacy(debugOrig);
+var util__default = /*#__PURE__*/_interopDefaultLegacy(util);
 var minimatch__default = /*#__PURE__*/_interopDefaultLegacy(minimatch);
+var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv);
+var globals__default = /*#__PURE__*/_interopDefaultLegacy(globals);
 var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
 
 /**
- * @fileoverview Config file operations. This file must be usable in the browser,
- * so no Node-specific code can be here.
- * @author Nicholas C. Zakas
+ * @fileoverview `IgnorePattern` class.
+ *
+ * `IgnorePattern` class has the set of glob patterns and the base path.
+ *
+ * It provides two static methods.
+ *
+ * - `IgnorePattern.createDefaultIgnore(cwd)`
+ *      Create the default predicate function.
+ * - `IgnorePattern.createIgnore(ignorePatterns)`
+ *      Create the predicate function from multiple `IgnorePattern` objects.
+ *
+ * It provides two properties and a method.
+ *
+ * - `patterns`
+ *      The glob patterns that ignore to lint.
+ * - `basePath`
+ *      The base path of the glob patterns. If absolute paths existed in the
+ *      glob patterns, those are handled as relative paths to the base path.
+ * - `getPatternsRelativeTo(basePath)`
+ *      Get `patterns` as modified for a given base path. It modifies the
+ *      absolute paths in the patterns as prepending the difference of two base
+ *      paths.
+ *
+ * `ConfigArrayFactory` creates `IgnorePattern` objects when it processes
+ * `ignorePatterns` properties.
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
  */
 
-//------------------------------------------------------------------------------
-// Private
-//------------------------------------------------------------------------------
+const debug$3 = debugOrig__default["default"]("eslintrc:ignore-pattern");
 
-const RULE_SEVERITY_STRINGS = ["off", "warn", "error"],
-    RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => {
-        map[value] = index;
-        return map;
-    }, {}),
-    VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"];
+/** @typedef {ReturnType<import("ignore").default>} Ignore */
 
 //------------------------------------------------------------------------------
-// Public Interface
+// Helpers
 //------------------------------------------------------------------------------
 
 /**
- * Normalizes the severity value of a rule's configuration to a number
- * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally
- * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0),
- * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array
- * whose first element is one of the above values. Strings are matched case-insensitively.
- * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0.
+ * Get the path to the common ancestor directory of given paths.
+ * @param {string[]} sourcePaths The paths to calculate the common ancestor.
+ * @returns {string} The path to the common ancestor directory.
  */
-function getRuleSeverity(ruleConfig) {
-    const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
+function getCommonAncestorPath(sourcePaths) {
+    let result = sourcePaths[0];
 
-    if (severityValue === 0 || severityValue === 1 || severityValue === 2) {
-        return severityValue;
-    }
+    for (let i = 1; i < sourcePaths.length; ++i) {
+        const a = result;
+        const b = sourcePaths[i];
 
-    if (typeof severityValue === "string") {
-        return RULE_SEVERITY[severityValue.toLowerCase()] || 0;
+        // Set the shorter one (it's the common ancestor if one includes the other).
+        result = a.length < b.length ? a : b;
+
+        // Set the common ancestor.
+        for (let j = 0, lastSepPos = 0; j < a.length && j < b.length; ++j) {
+            if (a[j] !== b[j]) {
+                result = a.slice(0, lastSepPos);
+                break;
+            }
+            if (a[j] === path__default["default"].sep) {
+                lastSepPos = j;
+            }
+        }
     }
 
-    return 0;
+    let resolvedResult = result || path__default["default"].sep;
+
+    // if Windows common ancestor is root of drive must have trailing slash to be absolute.
+    if (resolvedResult && resolvedResult.endsWith(":") && process.platform === "win32") {
+        resolvedResult += path__default["default"].sep;
+    }
+    return resolvedResult;
 }
 
 /**
- * Converts old-style severity settings (0, 1, 2) into new-style
- * severity settings (off, warn, error) for all rules. Assumption is that severity
- * values have already been validated as correct.
- * @param {Object} config The config object to normalize.
- * @returns {void}
+ * Make relative path.
+ * @param {string} from The source path to get relative path.
+ * @param {string} to The destination path to get relative path.
+ * @returns {string} The relative path.
  */
-function normalizeToStrings(config) {
-
-    if (config.rules) {
-        Object.keys(config.rules).forEach(ruleId => {
-            const ruleConfig = config.rules[ruleId];
+function relative(from, to) {
+    const relPath = path__default["default"].relative(from, to);
 
-            if (typeof ruleConfig === "number") {
-                config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0];
-            } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") {
-                ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0];
-            }
-        });
+    if (path__default["default"].sep === "/") {
+        return relPath;
     }
+    return relPath.split(path__default["default"].sep).join("/");
 }
 
 /**
- * Determines if the severity for the given rule configuration represents an error.
- * @param {int|string|Array} ruleConfig The configuration for an individual rule.
- * @returns {boolean} True if the rule represents an error, false if not.
+ * Get the trailing slash if existed.
+ * @param {string} filePath The path to check.
+ * @returns {string} The trailing slash if existed.
  */
-function isErrorSeverity(ruleConfig) {
-    return getRuleSeverity(ruleConfig) === 2;
+function dirSuffix(filePath) {
+    const isDir = (
+        filePath.endsWith(path__default["default"].sep) ||
+        (process.platform === "win32" && filePath.endsWith("/"))
+    );
+
+    return isDir ? "/" : "";
 }
 
-/**
- * Checks whether a given config has valid severity or not.
- * @param {number|string|Array} ruleConfig The configuration for an individual rule.
- * @returns {boolean} `true` if the configuration has valid severity.
- */
-function isValidSeverity(ruleConfig) {
-    let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
+const DefaultPatterns = Object.freeze(["/**/node_modules/*"]);
+const DotPatterns = Object.freeze([".*", "!.eslintrc.*", "!../"]);
 
-    if (typeof severity === "string") {
-        severity = severity.toLowerCase();
+//------------------------------------------------------------------------------
+// Public
+//------------------------------------------------------------------------------
+
+class IgnorePattern {
+
+    /**
+     * The default patterns.
+     * @type {string[]}
+     */
+    static get DefaultPatterns() {
+        return DefaultPatterns;
     }
-    return VALID_SEVERITIES.indexOf(severity) !== -1;
-}
 
-/**
- * Checks whether every rule of a given config has valid severity or not.
- * @param {Object} config The configuration for rules.
- * @returns {boolean} `true` if the configuration has valid severity.
- */
-function isEverySeverityValid(config) {
-    return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId]));
-}
+    /**
+     * Create the default predicate function.
+     * @param {string} cwd The current working directory.
+     * @returns {((filePath:string, dot:boolean) => boolean) & {basePath:string; patterns:string[]}}
+     * The preficate function.
+     * The first argument is an absolute path that is checked.
+     * The second argument is the flag to not ignore dotfiles.
+     * If the predicate function returned `true`, it means the path should be ignored.
+     */
+    static createDefaultIgnore(cwd) {
+        return this.createIgnore([new IgnorePattern(DefaultPatterns, cwd)]);
+    }
 
-/**
- * Normalizes a value for a global in a config
- * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in
- * a global directive comment
- * @returns {("readable"|"writeable"|"off")} The value normalized as a string
- * @throws Error if global value is invalid
- */
-function normalizeConfigGlobal(configuredValue) {
-    switch (configuredValue) {
-        case "off":
-            return "off";
+    /**
+     * Create the predicate function from multiple `IgnorePattern` objects.
+     * @param {IgnorePattern[]} ignorePatterns The list of ignore patterns.
+     * @returns {((filePath:string, dot?:boolean) => boolean) & {basePath:string; patterns:string[]}}
+     * The preficate function.
+     * The first argument is an absolute path that is checked.
+     * The second argument is the flag to not ignore dotfiles.
+     * If the predicate function returned `true`, it means the path should be ignored.
+     */
+    static createIgnore(ignorePatterns) {
+        debug$3("Create with: %o", ignorePatterns);
 
-        case true:
-        case "true":
-        case "writeable":
-        case "writable":
-            return "writable";
+        const basePath = getCommonAncestorPath(ignorePatterns.map(p => p.basePath));
+        const patterns = [].concat(
+            ...ignorePatterns.map(p => p.getPatternsRelativeTo(basePath))
+        );
+        const ig = ignore__default["default"]({ allowRelativePaths: true }).add([...DotPatterns, ...patterns]);
+        const dotIg = ignore__default["default"]({ allowRelativePaths: true }).add(patterns);
 
-        case null:
-        case false:
-        case "false":
-        case "readable":
-        case "readonly":
-            return "readonly";
+        debug$3("  processed: %o", { basePath, patterns });
 
-        default:
-            throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`);
+        return Object.assign(
+            (filePath, dot = false) => {
+                assert__default["default"](path__default["default"].isAbsolute(filePath), "'filePath' should be an absolute path.");
+                const relPathRaw = relative(basePath, filePath);
+                const relPath = relPathRaw && (relPathRaw + dirSuffix(filePath));
+                const adoptedIg = dot ? dotIg : ig;
+                const result = relPath !== "" && adoptedIg.ignores(relPath);
+
+                debug$3("Check", { filePath, dot, relativePath: relPath, result });
+                return result;
+            },
+            { basePath, patterns }
+        );
     }
-}
 
-var ConfigOps = {
-    __proto__: null,
-    getRuleSeverity: getRuleSeverity,
-    normalizeToStrings: normalizeToStrings,
-    isErrorSeverity: isErrorSeverity,
-    isValidSeverity: isValidSeverity,
-    isEverySeverityValid: isEverySeverityValid,
-    normalizeConfigGlobal: normalizeConfigGlobal
-};
+    /**
+     * Initialize a new `IgnorePattern` instance.
+     * @param {string[]} patterns The glob patterns that ignore to lint.
+     * @param {string} basePath The base path of `patterns`.
+     */
+    constructor(patterns, basePath) {
+        assert__default["default"](path__default["default"].isAbsolute(basePath), "'basePath' should be an absolute path.");
 
-/**
- * @fileoverview Provide the function that emits deprecation warnings.
- * @author Toru Nagashima <http://github.com/mysticatea>
- */
+        /**
+         * The glob patterns that ignore to lint.
+         * @type {string[]}
+         */
+        this.patterns = patterns;
 
-//------------------------------------------------------------------------------
-// Private
-//------------------------------------------------------------------------------
+        /**
+         * The base path of `patterns`.
+         * @type {string}
+         */
+        this.basePath = basePath;
 
-// Defitions for deprecation warnings.
-const deprecationWarningMessages = {
-    ESLINT_LEGACY_ECMAFEATURES:
-        "The 'ecmaFeatures' config file property is deprecated and has no effect.",
-    ESLINT_PERSONAL_CONFIG_LOAD:
-        "'~/.eslintrc.*' config files have been deprecated. " +
-        "Please use a config file per project or the '--config' option.",
-    ESLINT_PERSONAL_CONFIG_SUPPRESS:
-        "'~/.eslintrc.*' config files have been deprecated. " +
-        "Please remove it or add 'root:true' to the config files in your " +
-        "projects in order to avoid loading '~/.eslintrc.*' accidentally."
-};
+        /**
+         * If `true` then patterns which don't start with `/` will match the paths to the outside of `basePath`. Defaults to `false`.
+         *
+         * It's set `true` for `.eslintignore`, `package.json`, and `--ignore-path` for backward compatibility.
+         * It's `false` as-is for `ignorePatterns` property in config files.
+         * @type {boolean}
+         */
+        this.loose = false;
+    }
 
-const sourceFileErrorCache = new Set();
+    /**
+     * Get `patterns` as modified for a given base path. It modifies the
+     * absolute paths in the patterns as prepending the difference of two base
+     * paths.
+     * @param {string} newBasePath The base path.
+     * @returns {string[]} Modifired patterns.
+     */
+    getPatternsRelativeTo(newBasePath) {
+        assert__default["default"](path__default["default"].isAbsolute(newBasePath), "'newBasePath' should be an absolute path.");
+        const { basePath, loose, patterns } = this;
 
-/**
- * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted
- * for each unique file path, but repeated invocations with the same file path have no effect.
- * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active.
- * @param {string} source The name of the configuration source to report the warning for.
- * @param {string} errorCode The warning message to show.
- * @returns {void}
- */
-function emitDeprecationWarning(source, errorCode) {
-    const cacheKey = JSON.stringify({ source, errorCode });
+        if (newBasePath === basePath) {
+            return patterns;
+        }
+        const prefix = `/${relative(newBasePath, basePath)}`;
 
-    if (sourceFileErrorCache.has(cacheKey)) {
-        return;
+        return patterns.map(pattern => {
+            const negative = pattern.startsWith("!");
+            const head = negative ? "!" : "";
+            const body = negative ? pattern.slice(1) : pattern;
+
+            if (body.startsWith("/") || body.startsWith("../")) {
+                return `${head}${prefix}${body}`;
+            }
+            return loose ? pattern : `${head}${prefix}/**/${body}`;
+        });
     }
-    sourceFileErrorCache.add(cacheKey);
+}
 
-    const rel = path__default["default"].relative(process.cwd(), source);
-    const message = deprecationWarningMessages[errorCode];
+/**
+ * @fileoverview `ExtractedConfig` class.
+ *
+ * `ExtractedConfig` class expresses a final configuration for a specific file.
+ *
+ * It provides one method.
+ *
+ * - `toCompatibleObjectAsConfigFileContent()`
+ *      Convert this configuration to the compatible object as the content of
+ *      config files. It converts the loaded parser and plugins to strings.
+ *      `CLIEngine#getConfigForFile(filePath)` method uses this method.
+ *
+ * `ConfigArray#extractConfig(filePath)` creates a `ExtractedConfig` instance.
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
+ */
 
-    process.emitWarning(
-        `${message} (found in "${rel}")`,
-        "DeprecationWarning",
-        errorCode
-    );
+// For VSCode intellisense
+/** @typedef {import("../../shared/types").ConfigData} ConfigData */
+/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */
+/** @typedef {import("../../shared/types").SeverityConf} SeverityConf */
+/** @typedef {import("./config-dependency").DependentParser} DependentParser */
+/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */
+
+/**
+ * Check if `xs` starts with `ys`.
+ * @template T
+ * @param {T[]} xs The array to check.
+ * @param {T[]} ys The array that may be the first part of `xs`.
+ * @returns {boolean} `true` if `xs` starts with `ys`.
+ */
+function startsWith(xs, ys) {
+    return xs.length >= ys.length && ys.every((y, i) => y === xs[i]);
 }
 
 /**
- * @fileoverview The instance of Ajv validator.
- * @author Evgeny Poberezkin
+ * The class for extracted config data.
  */
+class ExtractedConfig {
+    constructor() {
 
-//-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
+        /**
+         * The config name what `noInlineConfig` setting came from.
+         * @type {string}
+         */
+        this.configNameOfNoInlineConfig = "";
 
-/*
- * Copied from ajv/lib/refs/json-schema-draft-04.json
- * The MIT License (MIT)
- * Copyright (c) 2015-2017 Evgeny Poberezkin
- */
-const metaSchema = {
-    id: "http://json-schema.org/draft-04/schema#",
-    $schema: "http://json-schema.org/draft-04/schema#",
-    description: "Core schema meta-schema",
-    definitions: {
-        schemaArray: {
-            type: "array",
-            minItems: 1,
-            items: { $ref: "#" }
-        },
-        positiveInteger: {
-            type: "integer",
-            minimum: 0
-        },
-        positiveIntegerDefault0: {
-            allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }]
-        },
-        simpleTypes: {
-            enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
-        },
-        stringArray: {
-            type: "array",
-            items: { type: "string" },
-            minItems: 1,
-            uniqueItems: true
-        }
-    },
-    type: "object",
-    properties: {
-        id: {
-            type: "string"
-        },
-        $schema: {
-            type: "string"
-        },
-        title: {
-            type: "string"
-        },
-        description: {
-            type: "string"
-        },
-        default: { },
-        multipleOf: {
-            type: "number",
-            minimum: 0,
-            exclusiveMinimum: true
-        },
-        maximum: {
-            type: "number"
-        },
-        exclusiveMaximum: {
-            type: "boolean",
-            default: false
-        },
-        minimum: {
-            type: "number"
-        },
-        exclusiveMinimum: {
-            type: "boolean",
-            default: false
-        },
-        maxLength: { $ref: "#/definitions/positiveInteger" },
-        minLength: { $ref: "#/definitions/positiveIntegerDefault0" },
-        pattern: {
-            type: "string",
-            format: "regex"
-        },
-        additionalItems: {
-            anyOf: [
-                { type: "boolean" },
-                { $ref: "#" }
-            ],
-            default: { }
-        },
-        items: {
-            anyOf: [
-                { $ref: "#" },
-                { $ref: "#/definitions/schemaArray" }
-            ],
-            default: { }
-        },
-        maxItems: { $ref: "#/definitions/positiveInteger" },
-        minItems: { $ref: "#/definitions/positiveIntegerDefault0" },
-        uniqueItems: {
-            type: "boolean",
-            default: false
-        },
-        maxProperties: { $ref: "#/definitions/positiveInteger" },
-        minProperties: { $ref: "#/definitions/positiveIntegerDefault0" },
-        required: { $ref: "#/definitions/stringArray" },
-        additionalProperties: {
-            anyOf: [
-                { type: "boolean" },
-                { $ref: "#" }
-            ],
-            default: { }
-        },
-        definitions: {
-            type: "object",
-            additionalProperties: { $ref: "#" },
-            default: { }
-        },
-        properties: {
-            type: "object",
-            additionalProperties: { $ref: "#" },
-            default: { }
-        },
-        patternProperties: {
-            type: "object",
-            additionalProperties: { $ref: "#" },
-            default: { }
-        },
-        dependencies: {
-            type: "object",
-            additionalProperties: {
-                anyOf: [
-                    { $ref: "#" },
-                    { $ref: "#/definitions/stringArray" }
-                ]
-            }
-        },
-        enum: {
-            type: "array",
-            minItems: 1,
-            uniqueItems: true
-        },
-        type: {
-            anyOf: [
-                { $ref: "#/definitions/simpleTypes" },
-                {
-                    type: "array",
-                    items: { $ref: "#/definitions/simpleTypes" },
-                    minItems: 1,
-                    uniqueItems: true
-                }
-            ]
-        },
-        format: { type: "string" },
-        allOf: { $ref: "#/definitions/schemaArray" },
-        anyOf: { $ref: "#/definitions/schemaArray" },
-        oneOf: { $ref: "#/definitions/schemaArray" },
-        not: { $ref: "#" }
-    },
-    dependencies: {
-        exclusiveMaximum: ["maximum"],
-        exclusiveMinimum: ["minimum"]
-    },
-    default: { }
-};
+        /**
+         * Environments.
+         * @type {Record<string, boolean>}
+         */
+        this.env = {};
 
-//------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+        /**
+         * Global variables.
+         * @type {Record<string, GlobalConf>}
+         */
+        this.globals = {};
 
-var ajvOrig = (additionalOptions = {}) => {
-    const ajv = new Ajv__default["default"]({
-        meta: false,
-        useDefaults: true,
-        validateSchema: false,
-        missingRefs: "ignore",
-        verbose: true,
-        schemaId: "auto",
-        ...additionalOptions
-    });
+        /**
+         * The glob patterns that ignore to lint.
+         * @type {(((filePath:string, dot?:boolean) => boolean) & { basePath:string; patterns:string[] }) | undefined}
+         */
+        this.ignores = void 0;
 
-    ajv.addMetaSchema(metaSchema);
-    // eslint-disable-next-line no-underscore-dangle
-    ajv._opts.defaultMeta = metaSchema.id;
+        /**
+         * The flag that disables directive comments.
+         * @type {boolean|undefined}
+         */
+        this.noInlineConfig = void 0;
 
-    return ajv;
-};
+        /**
+         * Parser definition.
+         * @type {DependentParser|null}
+         */
+        this.parser = null;
 
-/**
- * @fileoverview Defines a schema for configs.
- * @author Sylvan Mably
- */
+        /**
+         * Options for the parser.
+         * @type {Object}
+         */
+        this.parserOptions = {};
 
-const baseConfigProperties = {
-    $schema: { type: "string" },
-    env: { type: "object" },
-    extends: { $ref: "#/definitions/stringOrStrings" },
-    globals: { type: "object" },
-    overrides: {
-        type: "array",
-        items: { $ref: "#/definitions/overrideConfig" },
-        additionalItems: false
-    },
-    parser: { type: ["string", "null"] },
-    parserOptions: { type: "object" },
-    plugins: { type: "array" },
-    processor: { type: "string" },
-    rules: { type: "object" },
-    settings: { type: "object" },
-    noInlineConfig: { type: "boolean" },
-    reportUnusedDisableDirectives: { type: "boolean" },
+        /**
+         * Plugin definitions.
+         * @type {Record<string, DependentPlugin>}
+         */
+        this.plugins = {};
 
-    ecmaFeatures: { type: "object" } // deprecated; logs a warning when used
-};
+        /**
+         * Processor ID.
+         * @type {string|null}
+         */
+        this.processor = null;
 
-const configSchema = {
-    definitions: {
-        stringOrStrings: {
-            oneOf: [
-                { type: "string" },
-                {
-                    type: "array",
-                    items: { type: "string" },
-                    additionalItems: false
-                }
-            ]
-        },
-        stringOrStringsRequired: {
-            oneOf: [
-                { type: "string" },
-                {
-                    type: "array",
-                    items: { type: "string" },
-                    additionalItems: false,
-                    minItems: 1
-                }
-            ]
-        },
+        /**
+         * The flag that reports unused `eslint-disable` directive comments.
+         * @type {boolean|undefined}
+         */
+        this.reportUnusedDisableDirectives = void 0;
 
-        // Config at top-level.
-        objectConfig: {
-            type: "object",
-            properties: {
-                root: { type: "boolean" },
-                ignorePatterns: { $ref: "#/definitions/stringOrStrings" },
-                ...baseConfigProperties
-            },
-            additionalProperties: false
-        },
+        /**
+         * Rule settings.
+         * @type {Record<string, [SeverityConf, ...any[]]>}
+         */
+        this.rules = {};
 
-        // Config in `overrides`.
-        overrideConfig: {
-            type: "object",
-            properties: {
-                excludedFiles: { $ref: "#/definitions/stringOrStrings" },
-                files: { $ref: "#/definitions/stringOrStringsRequired" },
-                ...baseConfigProperties
-            },
-            required: ["files"],
-            additionalProperties: false
+        /**
+         * Shared settings.
+         * @type {Object}
+         */
+        this.settings = {};
+    }
+
+    /**
+     * Convert this config to the compatible object as a config file content.
+     * @returns {ConfigData} The converted object.
+     */
+    toCompatibleObjectAsConfigFileContent() {
+        const {
+            /* eslint-disable no-unused-vars */
+            configNameOfNoInlineConfig: _ignore1,
+            processor: _ignore2,
+            /* eslint-enable no-unused-vars */
+            ignores,
+            ...config
+        } = this;
+
+        config.parser = config.parser && config.parser.filePath;
+        config.plugins = Object.keys(config.plugins).filter(Boolean).reverse();
+        config.ignorePatterns = ignores ? ignores.patterns : [];
+
+        // Strip the default patterns from `ignorePatterns`.
+        if (startsWith(config.ignorePatterns, IgnorePattern.DefaultPatterns)) {
+            config.ignorePatterns =
+                config.ignorePatterns.slice(IgnorePattern.DefaultPatterns.length);
         }
-    },
 
-    $ref: "#/definitions/objectConfig"
-};
+        return config;
+    }
+}
 
 /**
- * @fileoverview Defines environment settings and globals.
- * @author Elan Shanker
+ * @fileoverview `ConfigArray` class.
+ *
+ * `ConfigArray` class expresses the full of a configuration. It has the entry
+ * config file, base config files that were extended, loaded parsers, and loaded
+ * plugins.
+ *
+ * `ConfigArray` class provides three properties and two methods.
+ *
+ * - `pluginEnvironments`
+ * - `pluginProcessors`
+ * - `pluginRules`
+ *      The `Map` objects that contain the members of all plugins that this
+ *      config array contains. Those map objects don't have mutation methods.
+ *      Those keys are the member ID such as `pluginId/memberName`.
+ * - `isRoot()`
+ *      If `true` then this configuration has `root:true` property.
+ * - `extractConfig(filePath)`
+ *      Extract the final configuration for a given file. This means merging
+ *      every config array element which that `criteria` property matched. The
+ *      `filePath` argument must be an absolute path.
+ *
+ * `ConfigArrayFactory` provides the loading logic of config files.
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
  */
 
 //------------------------------------------------------------------------------
 // Helpers
 //------------------------------------------------------------------------------
 
+// Define types for VSCode IntelliSense.
+/** @typedef {import("../../shared/types").Environment} Environment */
+/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */
+/** @typedef {import("../../shared/types").RuleConf} RuleConf */
+/** @typedef {import("../../shared/types").Rule} Rule */
+/** @typedef {import("../../shared/types").Plugin} Plugin */
+/** @typedef {import("../../shared/types").Processor} Processor */
+/** @typedef {import("./config-dependency").DependentParser} DependentParser */
+/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */
+/** @typedef {import("./override-tester")["OverrideTester"]} OverrideTester */
+
 /**
- * Get the object that has difference.
- * @param {Record<string,boolean>} current The newer object.
- * @param {Record<string,boolean>} prev The older object.
- * @returns {Record<string,boolean>} The difference object.
+ * @typedef {Object} ConfigArrayElement
+ * @property {string} name The name of this config element.
+ * @property {string} filePath The path to the source file of this config element.
+ * @property {InstanceType<OverrideTester>|null} criteria The tester for the `files` and `excludedFiles` of this config element.
+ * @property {Record<string, boolean>|undefined} env The environment settings.
+ * @property {Record<string, GlobalConf>|undefined} globals The global variable settings.
+ * @property {IgnorePattern|undefined} ignorePattern The ignore patterns.
+ * @property {boolean|undefined} noInlineConfig The flag that disables directive comments.
+ * @property {DependentParser|undefined} parser The parser loader.
+ * @property {Object|undefined} parserOptions The parser options.
+ * @property {Record<string, DependentPlugin>|undefined} plugins The plugin loaders.
+ * @property {string|undefined} processor The processor name to refer plugin's processor.
+ * @property {boolean|undefined} reportUnusedDisableDirectives The flag to report unused `eslint-disable` comments.
+ * @property {boolean|undefined} root The flag to express root.
+ * @property {Record<string, RuleConf>|undefined} rules The rule settings
+ * @property {Object|undefined} settings The shared settings.
+ * @property {"config" | "ignore" | "implicit-processor"} type The element type.
  */
-function getDiff(current, prev) {
-    const retv = {};
 
-    for (const [key, value] of Object.entries(current)) {
-        if (!Object.hasOwnProperty.call(prev, key)) {
-            retv[key] = value;
+/**
+ * @typedef {Object} ConfigArrayInternalSlots
+ * @property {Map<string, ExtractedConfig>} cache The cache to extract configs.
+ * @property {ReadonlyMap<string, Environment>|null} envMap The map from environment ID to environment definition.
+ * @property {ReadonlyMap<string, Processor>|null} processorMap The map from processor ID to environment definition.
+ * @property {ReadonlyMap<string, Rule>|null} ruleMap The map from rule ID to rule definition.
+ */
+
+/** @type {WeakMap<ConfigArray, ConfigArrayInternalSlots>} */
+const internalSlotsMap$2 = new class extends WeakMap {
+    get(key) {
+        let value = super.get(key);
+
+        if (!value) {
+            value = {
+                cache: new Map(),
+                envMap: null,
+                processorMap: null,
+                ruleMap: null
+            };
+            super.set(key, value);
         }
+
+        return value;
     }
+}();
 
-    return retv;
-}
+/**
+ * Get the indices which are matched to a given file.
+ * @param {ConfigArrayElement[]} elements The elements.
+ * @param {string} filePath The path to a target file.
+ * @returns {number[]} The indices.
+ */
+function getMatchedIndices(elements, filePath) {
+    const indices = [];
 
-const newGlobals2015 = getDiff(globals__default["default"].es2015, globals__default["default"].es5); // 19 variables such as Promise, Map, ...
-const newGlobals2017 = {
-    Atomics: false,
-    SharedArrayBuffer: false
-};
-const newGlobals2020 = {
-    BigInt: false,
-    BigInt64Array: false,
-    BigUint64Array: false,
-    globalThis: false
-};
+    for (let i = elements.length - 1; i >= 0; --i) {
+        const element = elements[i];
 
-const newGlobals2021 = {
-    AggregateError: false,
-    FinalizationRegistry: false,
-    WeakRef: false
-};
+        if (!element.criteria || (filePath && element.criteria.test(filePath))) {
+            indices.push(i);
+        }
+    }
 
-//------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+    return indices;
+}
 
-/** @type {Map<string, import("../lib/shared/types").Environment>} */
-var environments = new Map(Object.entries({
+/**
+ * Check if a value is a non-null object.
+ * @param {any} x The value to check.
+ * @returns {boolean} `true` if the value is a non-null object.
+ */
+function isNonNullObject(x) {
+    return typeof x === "object" && x !== null;
+}
 
-    // Language
-    builtin: {
-        globals: globals__default["default"].es5
-    },
-    es6: {
-        globals: newGlobals2015,
-        parserOptions: {
-            ecmaVersion: 6
-        }
-    },
-    es2015: {
-        globals: newGlobals2015,
-        parserOptions: {
-            ecmaVersion: 6
-        }
-    },
-    es2017: {
-        globals: { ...newGlobals2015, ...newGlobals2017 },
-        parserOptions: {
-            ecmaVersion: 8
+/**
+ * Merge two objects.
+ *
+ * Assign every property values of `y` to `x` if `x` doesn't have the property.
+ * If `x`'s property value is an object, it does recursive.
+ * @param {Object} target The destination to merge
+ * @param {Object|undefined} source The source to merge.
+ * @returns {void}
+ */
+function mergeWithoutOverwrite(target, source) {
+    if (!isNonNullObject(source)) {
+        return;
+    }
+
+    for (const key of Object.keys(source)) {
+        if (key === "__proto__") {
+            continue;
         }
-    },
-    es2020: {
-        globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },
-        parserOptions: {
-            ecmaVersion: 11
+
+        if (isNonNullObject(target[key])) {
+            mergeWithoutOverwrite(target[key], source[key]);
+        } else if (target[key] === void 0) {
+            if (isNonNullObject(source[key])) {
+                target[key] = Array.isArray(source[key]) ? [] : {};
+                mergeWithoutOverwrite(target[key], source[key]);
+            } else if (source[key] !== void 0) {
+                target[key] = source[key];
+            }
         }
-    },
-    es2021: {
-        globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
-        parserOptions: {
-            ecmaVersion: 12
+    }
+}
+
+/**
+ * The error for plugin conflicts.
+ */
+class PluginConflictError extends Error {
+
+    /**
+     * Initialize this error object.
+     * @param {string} pluginId The plugin ID.
+     * @param {{filePath:string, importerName:string}[]} plugins The resolved plugins.
+     */
+    constructor(pluginId, plugins) {
+        super(`Plugin "${pluginId}" was conflicted between ${plugins.map(p => `"${p.importerName}"`).join(" and ")}.`);
+        this.messageTemplate = "plugin-conflict";
+        this.messageData = { pluginId, plugins };
+    }
+}
+
+/**
+ * Merge plugins.
+ * `target`'s definition is prior to `source`'s.
+ * @param {Record<string, DependentPlugin>} target The destination to merge
+ * @param {Record<string, DependentPlugin>|undefined} source The source to merge.
+ * @returns {void}
+ */
+function mergePlugins(target, source) {
+    if (!isNonNullObject(source)) {
+        return;
+    }
+
+    for (const key of Object.keys(source)) {
+        if (key === "__proto__") {
+            continue;
         }
-    },
+        const targetValue = target[key];
+        const sourceValue = source[key];
 
-    // Platforms
-    browser: {
-        globals: globals__default["default"].browser
-    },
-    node: {
-        globals: globals__default["default"].node,
-        parserOptions: {
-            ecmaFeatures: {
-                globalReturn: true
+        // Adopt the plugin which was found at first.
+        if (targetValue === void 0) {
+            if (sourceValue.error) {
+                throw sourceValue.error;
             }
+            target[key] = sourceValue;
+        } else if (sourceValue.filePath !== targetValue.filePath) {
+            throw new PluginConflictError(key, [
+                {
+                    filePath: targetValue.filePath,
+                    importerName: targetValue.importerName
+                },
+                {
+                    filePath: sourceValue.filePath,
+                    importerName: sourceValue.importerName
+                }
+            ]);
         }
-    },
-    "shared-node-browser": {
-        globals: globals__default["default"]["shared-node-browser"]
-    },
-    worker: {
-        globals: globals__default["default"].worker
-    },
-    serviceworker: {
-        globals: globals__default["default"].serviceworker
-    },
-
-    // Frameworks
-    commonjs: {
-        globals: globals__default["default"].commonjs,
-        parserOptions: {
-            ecmaFeatures: {
-                globalReturn: true
-            }
-        }
-    },
-    amd: {
-        globals: globals__default["default"].amd
-    },
-    mocha: {
-        globals: globals__default["default"].mocha
-    },
-    jasmine: {
-        globals: globals__default["default"].jasmine
-    },
-    jest: {
-        globals: globals__default["default"].jest
-    },
-    phantomjs: {
-        globals: globals__default["default"].phantomjs
-    },
-    jquery: {
-        globals: globals__default["default"].jquery
-    },
-    qunit: {
-        globals: globals__default["default"].qunit
-    },
-    prototypejs: {
-        globals: globals__default["default"].prototypejs
-    },
-    shelljs: {
-        globals: globals__default["default"].shelljs
-    },
-    meteor: {
-        globals: globals__default["default"].meteor
-    },
-    mongo: {
-        globals: globals__default["default"].mongo
-    },
-    protractor: {
-        globals: globals__default["default"].protractor
-    },
-    applescript: {
-        globals: globals__default["default"].applescript
-    },
-    nashorn: {
-        globals: globals__default["default"].nashorn
-    },
-    atomtest: {
-        globals: globals__default["default"].atomtest
-    },
-    embertest: {
-        globals: globals__default["default"].embertest
-    },
-    webextensions: {
-        globals: globals__default["default"].webextensions
-    },
-    greasemonkey: {
-        globals: globals__default["default"].greasemonkey
-    }
-}));
+    }
+}
 
 /**
- * @fileoverview Validates configs.
- * @author Brandon Mills
+ * Merge rule configs.
+ * `target`'s definition is prior to `source`'s.
+ * @param {Record<string, Array>} target The destination to merge
+ * @param {Record<string, RuleConf>|undefined} source The source to merge.
+ * @returns {void}
  */
+function mergeRuleConfigs(target, source) {
+    if (!isNonNullObject(source)) {
+        return;
+    }
 
-const ajv = ajvOrig();
+    for (const key of Object.keys(source)) {
+        if (key === "__proto__") {
+            continue;
+        }
+        const targetDef = target[key];
+        const sourceDef = source[key];
 
-const ruleValidators = new WeakMap();
-const noop = Function.prototype;
+        // Adopt the rule config which was found at first.
+        if (targetDef === void 0) {
+            if (Array.isArray(sourceDef)) {
+                target[key] = [...sourceDef];
+            } else {
+                target[key] = [sourceDef];
+            }
 
-//------------------------------------------------------------------------------
-// Private
-//------------------------------------------------------------------------------
-let validateSchema;
-const severityMap = {
-    error: 2,
-    warn: 1,
-    off: 0
-};
+        /*
+         * If the first found rule config is severity only and the current rule
+         * config has options, merge the severity and the options.
+         */
+        } else if (
+            targetDef.length === 1 &&
+            Array.isArray(sourceDef) &&
+            sourceDef.length >= 2
+        ) {
+            targetDef.push(...sourceDef.slice(1));
+        }
+    }
+}
 
-const validated = new WeakSet();
+/**
+ * Create the extracted config.
+ * @param {ConfigArray} instance The config elements.
+ * @param {number[]} indices The indices to use.
+ * @returns {ExtractedConfig} The extracted config.
+ */
+function createConfig(instance, indices) {
+    const config = new ExtractedConfig();
+    const ignorePatterns = [];
 
-//-----------------------------------------------------------------------------
-// Exports
-//-----------------------------------------------------------------------------
+    // Merge elements.
+    for (const index of indices) {
+        const element = instance[index];
 
-class ConfigValidator {
-    constructor({ builtInRules = new Map() } = {}) {
-        this.builtInRules = builtInRules;
-    }
+        // Adopt the parser which was found at first.
+        if (!config.parser && element.parser) {
+            if (element.parser.error) {
+                throw element.parser.error;
+            }
+            config.parser = element.parser;
+        }
 
-    /**
-     * Gets a complete options schema for a rule.
-     * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object
-     * @returns {Object} JSON Schema for the rule's options.
-     */
-    getRuleOptionsSchema(rule) {
-        if (!rule) {
-            return null;
+        // Adopt the processor which was found at first.
+        if (!config.processor && element.processor) {
+            config.processor = element.processor;
         }
 
-        const schema = rule.schema || rule.meta && rule.meta.schema;
+        // Adopt the noInlineConfig which was found at first.
+        if (config.noInlineConfig === void 0 && element.noInlineConfig !== void 0) {
+            config.noInlineConfig = element.noInlineConfig;
+            config.configNameOfNoInlineConfig = element.name;
+        }
 
-        // Given a tuple of schemas, insert warning level at the beginning
-        if (Array.isArray(schema)) {
-            if (schema.length) {
-                return {
-                    type: "array",
-                    items: schema,
-                    minItems: 0,
-                    maxItems: schema.length
-                };
-            }
-            return {
-                type: "array",
-                minItems: 0,
-                maxItems: 0
-            };
+        // Adopt the reportUnusedDisableDirectives which was found at first.
+        if (config.reportUnusedDisableDirectives === void 0 && element.reportUnusedDisableDirectives !== void 0) {
+            config.reportUnusedDisableDirectives = element.reportUnusedDisableDirectives;
+        }
 
+        // Collect ignorePatterns
+        if (element.ignorePattern) {
+            ignorePatterns.push(element.ignorePattern);
         }
 
-        // Given a full schema, leave it alone
-        return schema || null;
+        // Merge others.
+        mergeWithoutOverwrite(config.env, element.env);
+        mergeWithoutOverwrite(config.globals, element.globals);
+        mergeWithoutOverwrite(config.parserOptions, element.parserOptions);
+        mergeWithoutOverwrite(config.settings, element.settings);
+        mergePlugins(config.plugins, element.plugins);
+        mergeRuleConfigs(config.rules, element.rules);
     }
 
-    /**
-     * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid.
-     * @param {options} options The given options for the rule.
-     * @returns {number|string} The rule's severity value
-     */
-    validateRuleSeverity(options) {
-        const severity = Array.isArray(options) ? options[0] : options;
-        const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity;
+    // Create the predicate function for ignore patterns.
+    if (ignorePatterns.length > 0) {
+        config.ignores = IgnorePattern.createIgnore(ignorePatterns.reverse());
+    }
 
-        if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) {
-            return normSeverity;
-        }
+    return config;
+}
 
-        throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util__default["default"].inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`);
+/**
+ * Collect definitions.
+ * @template T, U
+ * @param {string} pluginId The plugin ID for prefix.
+ * @param {Record<string,T>} defs The definitions to collect.
+ * @param {Map<string, U>} map The map to output.
+ * @param {function(T): U} [normalize] The normalize function for each value.
+ * @returns {void}
+ */
+function collect(pluginId, defs, map, normalize) {
+    if (defs) {
+        const prefix = pluginId && `${pluginId}/`;
 
+        for (const [key, value] of Object.entries(defs)) {
+            map.set(
+                `${prefix}${key}`,
+                normalize ? normalize(value) : value
+            );
+        }
     }
+}
 
-    /**
-     * Validates the non-severity options passed to a rule, based on its schema.
-     * @param {{create: Function}} rule The rule to validate
-     * @param {Array} localOptions The options for the rule, excluding severity
-     * @returns {void}
-     */
-    validateRuleSchema(rule, localOptions) {
-        if (!ruleValidators.has(rule)) {
-            const schema = this.getRuleOptionsSchema(rule);
+/**
+ * Normalize a rule definition.
+ * @param {Function|Rule} rule The rule definition to normalize.
+ * @returns {Rule} The normalized rule definition.
+ */
+function normalizePluginRule(rule) {
+    return typeof rule === "function" ? { create: rule } : rule;
+}
 
-            if (schema) {
-                ruleValidators.set(rule, ajv.compile(schema));
-            }
-        }
+/**
+ * Delete the mutation methods from a given map.
+ * @param {Map<any, any>} map The map object to delete.
+ * @returns {void}
+ */
+function deleteMutationMethods(map) {
+    Object.defineProperties(map, {
+        clear: { configurable: true, value: void 0 },
+        delete: { configurable: true, value: void 0 },
+        set: { configurable: true, value: void 0 }
+    });
+}
 
-        const validateRule = ruleValidators.get(rule);
+/**
+ * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array.
+ * @param {ConfigArrayElement[]} elements The config elements.
+ * @param {ConfigArrayInternalSlots} slots The internal slots.
+ * @returns {void}
+ */
+function initPluginMemberMaps(elements, slots) {
+    const processed = new Set();
 
-        if (validateRule) {
-            validateRule(localOptions);
-            if (validateRule.errors) {
-                throw new Error(validateRule.errors.map(
-                    error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n`
-                ).join(""));
-            }
+    slots.envMap = new Map();
+    slots.processorMap = new Map();
+    slots.ruleMap = new Map();
+
+    for (const element of elements) {
+        if (!element.plugins) {
+            continue;
         }
-    }
 
-    /**
-     * Validates a rule's options against its schema.
-     * @param {{create: Function}|null} rule The rule that the config is being validated for
-     * @param {string} ruleId The rule's unique name.
-     * @param {Array|number} options The given options for the rule.
-     * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined,
-     * no source is prepended to the message.
-     * @returns {void}
-     */
-    validateRuleOptions(rule, ruleId, options, source = null) {
-        try {
-            const severity = this.validateRuleSeverity(options);
+        for (const [pluginId, value] of Object.entries(element.plugins)) {
+            const plugin = value.definition;
 
-            if (severity !== 0) {
-                this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []);
+            if (!plugin || processed.has(pluginId)) {
+                continue;
             }
-        } catch (err) {
-            const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`;
+            processed.add(pluginId);
 
-            if (typeof source === "string") {
-                throw new Error(`${source}:\n\t${enhancedMessage}`);
-            } else {
-                throw new Error(enhancedMessage);
-            }
+            collect(pluginId, plugin.environments, slots.envMap);
+            collect(pluginId, plugin.processors, slots.processorMap);
+            collect(pluginId, plugin.rules, slots.ruleMap, normalizePluginRule);
         }
     }
 
-    /**
-     * Validates an environment object
-     * @param {Object} environment The environment config object to validate.
-     * @param {string} source The name of the configuration source to report in any errors.
-     * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments.
-     * @returns {void}
-     */
-    validateEnvironment(
-        environment,
-        source,
-        getAdditionalEnv = noop
-    ) {
-
-        // not having an environment is ok
-        if (!environment) {
-            return;
-        }
-
-        Object.keys(environment).forEach(id => {
-            const env = getAdditionalEnv(id) || environments.get(id) || null;
+    deleteMutationMethods(slots.envMap);
+    deleteMutationMethods(slots.processorMap);
+    deleteMutationMethods(slots.ruleMap);
+}
 
-            if (!env) {
-                const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`;
+/**
+ * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array.
+ * @param {ConfigArray} instance The config elements.
+ * @returns {ConfigArrayInternalSlots} The extracted config.
+ */
+function ensurePluginMemberMaps(instance) {
+    const slots = internalSlotsMap$2.get(instance);
 
-                throw new Error(message);
-            }
-        });
+    if (!slots.ruleMap) {
+        initPluginMemberMaps(instance, slots);
     }
 
-    /**
-     * Validates a rules config object
-     * @param {Object} rulesConfig The rules config object to validate.
-     * @param {string} source The name of the configuration source to report in any errors.
-     * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules
-     * @returns {void}
-     */
-    validateRules(
-        rulesConfig,
-        source,
-        getAdditionalRule = noop
-    ) {
-        if (!rulesConfig) {
-            return;
-        }
+    return slots;
+}
 
-        Object.keys(rulesConfig).forEach(id => {
-            const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null;
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
 
-            this.validateRuleOptions(rule, id, rulesConfig[id], source);
-        });
-    }
+/**
+ * The Config Array.
+ *
+ * `ConfigArray` instance contains all settings, parsers, and plugins.
+ * You need to call `ConfigArray#extractConfig(filePath)` method in order to
+ * extract, merge and get only the config data which is related to an arbitrary
+ * file.
+ * @extends {Array<ConfigArrayElement>}
+ */
+class ConfigArray extends Array {
 
     /**
-     * Validates a `globals` section of a config file
-     * @param {Object} globalsConfig The `globals` section
-     * @param {string|null} source The name of the configuration source to report in the event of an error.
-     * @returns {void}
+     * Get the plugin environments.
+     * The returned map cannot be mutated.
+     * @type {ReadonlyMap<string, Environment>} The plugin environments.
      */
-    validateGlobals(globalsConfig, source = null) {
-        if (!globalsConfig) {
-            return;
-        }
-
-        Object.entries(globalsConfig)
-            .forEach(([configuredGlobal, configuredValue]) => {
-                try {
-                    normalizeConfigGlobal(configuredValue);
-                } catch (err) {
-                    throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`);
-                }
-            });
+    get pluginEnvironments() {
+        return ensurePluginMemberMaps(this).envMap;
     }
 
     /**
-     * Validate `processor` configuration.
-     * @param {string|undefined} processorName The processor name.
-     * @param {string} source The name of config file.
-     * @param {function(id:string): Processor} getProcessor The getter of defined processors.
-     * @returns {void}
+     * Get the plugin processors.
+     * The returned map cannot be mutated.
+     * @type {ReadonlyMap<string, Processor>} The plugin processors.
      */
-    validateProcessor(processorName, source, getProcessor) {
-        if (processorName && !getProcessor(processorName)) {
-            throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`);
-        }
+    get pluginProcessors() {
+        return ensurePluginMemberMaps(this).processorMap;
     }
 
     /**
-     * Formats an array of schema validation errors.
-     * @param {Array} errors An array of error messages to format.
-     * @returns {string} Formatted error message
+     * Get the plugin rules.
+     * The returned map cannot be mutated.
+     * @returns {ReadonlyMap<string, Rule>} The plugin rules.
      */
-    formatErrors(errors) {
-        return errors.map(error => {
-            if (error.keyword === "additionalProperties") {
-                const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty;
-
-                return `Unexpected top-level property "${formattedPropertyPath}"`;
-            }
-            if (error.keyword === "type") {
-                const formattedField = error.dataPath.slice(1);
-                const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema;
-                const formattedValue = JSON.stringify(error.data);
-
-                return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`;
-            }
-
-            const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath;
-
-            return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`;
-        }).map(message => `\t- ${message}.\n`).join("");
+    get pluginRules() {
+        return ensurePluginMemberMaps(this).ruleMap;
     }
 
     /**
-     * Validates the top level properties of the config object.
-     * @param {Object} config The config object to validate.
-     * @param {string} source The name of the configuration source to report in any errors.
-     * @returns {void}
+     * Check if this config has `root` flag.
+     * @returns {boolean} `true` if this config array is root.
      */
-    validateConfigSchema(config, source = null) {
-        validateSchema = validateSchema || ajv.compile(configSchema);
-
-        if (!validateSchema(config)) {
-            throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`);
-        }
+    isRoot() {
+        for (let i = this.length - 1; i >= 0; --i) {
+            const root = this[i].root;
 
-        if (Object.hasOwnProperty.call(config, "ecmaFeatures")) {
-            emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES");
+            if (typeof root === "boolean") {
+                return root;
+            }
         }
+        return false;
     }
 
     /**
-     * Validates an entire config object.
-     * @param {Object} config The config object to validate.
-     * @param {string} source The name of the configuration source to report in any errors.
-     * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules.
-     * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs.
-     * @returns {void}
+     * Extract the config data which is related to a given file.
+     * @param {string} filePath The absolute path to the target file.
+     * @returns {ExtractedConfig} The extracted config data.
      */
-    validate(config, source, getAdditionalRule, getAdditionalEnv) {
-        this.validateConfigSchema(config, source);
-        this.validateRules(config.rules, source, getAdditionalRule);
-        this.validateEnvironment(config.env, source, getAdditionalEnv);
-        this.validateGlobals(config.globals, source);
+    extractConfig(filePath) {
+        const { cache } = internalSlotsMap$2.get(this);
+        const indices = getMatchedIndices(this, filePath);
+        const cacheKey = indices.join(",");
 
-        for (const override of config.overrides || []) {
-            this.validateRules(override.rules, source, getAdditionalRule);
-            this.validateEnvironment(override.env, source, getAdditionalEnv);
-            this.validateGlobals(config.globals, source);
+        if (!cache.has(cacheKey)) {
+            cache.set(cacheKey, createConfig(this, indices));
         }
+
+        return cache.get(cacheKey);
     }
 
     /**
-     * Validate config array object.
-     * @param {ConfigArray} configArray The config array to validate.
-     * @returns {void}
+     * Check if a given path is an additional lint target.
+     * @param {string} filePath The absolute path to the target file.
+     * @returns {boolean} `true` if the file is an additional lint target.
      */
-    validateConfigArray(configArray) {
-        const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments);
-        const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors);
-        const getPluginRule = Map.prototype.get.bind(configArray.pluginRules);
-
-        // Validate.
-        for (const element of configArray) {
-            if (validated.has(element)) {
-                continue;
+    isAdditionalTargetPath(filePath) {
+        for (const { criteria, type } of this) {
+            if (
+                type === "config" &&
+                criteria &&
+                !criteria.endsWithWildcard &&
+                criteria.test(filePath)
+            ) {
+                return true;
             }
-            validated.add(element);
-
-            this.validateEnvironment(element.env, element.name, getPluginEnv);
-            this.validateGlobals(element.globals, element.name);
-            this.validateProcessor(element.processor, element.name, getPluginProcessor);
-            this.validateRules(element.rules, element.name, getPluginRule);
         }
+        return false;
     }
-
 }
 
 /**
- * @fileoverview Common helpers for naming of plugins, formatters and configs
+ * Get the used extracted configs.
+ * CLIEngine will use this method to collect used deprecated rules.
+ * @param {ConfigArray} instance The config array object to get.
+ * @returns {ExtractedConfig[]} The used extracted configs.
+ * @private
  */
+function getUsedExtractedConfigs(instance) {
+    const { cache } = internalSlotsMap$2.get(instance);
 
-const NAMESPACE_REGEX = /^@.*\//iu;
+    return Array.from(cache.values());
+}
 
 /**
- * Brings package name to correct format based on prefix
- * @param {string} name The name of the package.
- * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter"
- * @returns {string} Normalized name of the package
- * @private
+ * @fileoverview `ConfigDependency` class.
+ *
+ * `ConfigDependency` class expresses a loaded parser or plugin.
+ *
+ * If the parser or plugin was loaded successfully, it has `definition` property
+ * and `filePath` property. Otherwise, it has `error` property.
+ *
+ * When `JSON.stringify()` converted a `ConfigDependency` object to a JSON, it
+ * omits `definition` property.
+ *
+ * `ConfigArrayFactory` creates `ConfigDependency` objects when it loads parsers
+ * or plugins.
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
  */
-function normalizePackageName(name, prefix) {
-    let normalizedName = name;
+
+/**
+ * The class is to store parsers or plugins.
+ * This class hides the loaded object from `JSON.stringify()` and `console.log`.
+ * @template T
+ */
+class ConfigDependency {
 
     /**
-     * On Windows, name can come in with Windows slashes instead of Unix slashes.
-     * Normalize to Unix first to avoid errors later on.
-     * https://github.com/eslint/eslint/issues/5644
+     * Initialize this instance.
+     * @param {Object} data The dependency data.
+     * @param {T} [data.definition] The dependency if the loading succeeded.
+     * @param {Error} [data.error] The error object if the loading failed.
+     * @param {string} [data.filePath] The actual path to the dependency if the loading succeeded.
+     * @param {string} data.id The ID of this dependency.
+     * @param {string} data.importerName The name of the config file which loads this dependency.
+     * @param {string} data.importerPath The path to the config file which loads this dependency.
      */
-    if (normalizedName.includes("\\")) {
-        normalizedName = normalizedName.replace(/\\/gu, "/");
-    }
-
-    if (normalizedName.charAt(0) === "@") {
+    constructor({
+        definition = null,
+        error = null,
+        filePath = null,
+        id,
+        importerName,
+        importerPath
+    }) {
 
         /**
-         * it's a scoped package
-         * package name is the prefix, or just a username
+         * The loaded dependency if the loading succeeded.
+         * @type {T|null}
          */
-        const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"),
-            scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u");
-
-        if (scopedPackageShortcutRegex.test(normalizedName)) {
-            normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);
-        } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) {
+        this.definition = definition;
 
-            /**
-             * for scoped packages, insert the prefix after the first / unless
-             * the path is already @scope/eslint or @scope/eslint-xxx-yyy
-             */
-            normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`);
-        }
-    } else if (!normalizedName.startsWith(`${prefix}-`)) {
-        normalizedName = `${prefix}-${normalizedName}`;
-    }
+        /**
+         * The error object if the loading failed.
+         * @type {Error|null}
+         */
+        this.error = error;
 
-    return normalizedName;
-}
+        /**
+         * The loaded dependency if the loading succeeded.
+         * @type {string|null}
+         */
+        this.filePath = filePath;
 
-/**
- * Removes the prefix from a fullname.
- * @param {string} fullname The term which may have the prefix.
- * @param {string} prefix The prefix to remove.
- * @returns {string} The term without prefix.
- */
-function getShorthandName(fullname, prefix) {
-    if (fullname[0] === "@") {
-        let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname);
+        /**
+         * The ID of this dependency.
+         * @type {string}
+         */
+        this.id = id;
 
-        if (matchResult) {
-            return matchResult[1];
-        }
+        /**
+         * The name of the config file which loads this dependency.
+         * @type {string}
+         */
+        this.importerName = importerName;
 
-        matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname);
-        if (matchResult) {
-            return `${matchResult[1]}/${matchResult[2]}`;
-        }
-    } else if (fullname.startsWith(`${prefix}-`)) {
-        return fullname.slice(prefix.length + 1);
+        /**
+         * The path to the config file which loads this dependency.
+         * @type {string}
+         */
+        this.importerPath = importerPath;
     }
 
-    return fullname;
-}
-
-/**
- * Gets the scope (namespace) of a term.
- * @param {string} term The term which may have the namespace.
- * @returns {string} The namespace of the term if it has one.
- */
-function getNamespaceFromTerm(term) {
-    const match = term.match(NAMESPACE_REGEX);
-
-    return match ? match[0] : "";
-}
-
-var naming = {
-    __proto__: null,
-    normalizePackageName: normalizePackageName,
-    getShorthandName: getShorthandName,
-    getNamespaceFromTerm: getNamespaceFromTerm
-};
+    // eslint-disable-next-line jsdoc/require-description
+    /**
+     * @returns {Object} a JSON compatible object.
+     */
+    toJSON() {
+        const obj = this[util__default["default"].inspect.custom]();
 
-/**
- * Utility for resolving a module relative to another module
- * @author Teddy Katz
- */
+        // Display `error.message` (`Error#message` is unenumerable).
+        if (obj.error instanceof Error) {
+            obj.error = { ...obj.error, message: obj.error.message };
+        }
 
-/*
- * `Module.createRequire` is added in v12.2.0. It supports URL as well.
- * We only support the case where the argument is a filepath, not a URL.
- */
-const createRequire = Module__default["default"].createRequire;
+        return obj;
+    }
 
-/**
- * Resolves a Node module relative to another module
- * @param {string} moduleName The name of a Node module, or a path to a Node module.
- * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be
- * a file rather than a directory, but the file need not actually exist.
- * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath`
- */
-function resolve(moduleName, relativeToPath) {
-    try {
-        return createRequire(relativeToPath).resolve(moduleName);
-    } catch (error) {
+    // eslint-disable-next-line jsdoc/require-description
+    /**
+     * @returns {Object} an object to display by `console.log()`.
+     */
+    [util__default["default"].inspect.custom]() {
+        const {
+            definition: _ignore, // eslint-disable-line no-unused-vars
+            ...obj
+        } = this;
 
-        // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future.
-        if (
-            typeof error === "object" &&
-            error !== null &&
-            error.code === "MODULE_NOT_FOUND" &&
-            !error.requireStack &&
-            error.message.includes(moduleName)
-        ) {
-            error.message += `\nRequire stack:\n- ${relativeToPath}`;
-        }
-        throw error;
+        return obj;
     }
 }
 
-var ModuleResolver = {
-    __proto__: null,
-    resolve: resolve
-};
-
 /**
- * @fileoverview `IgnorePattern` class.
- *
- * `IgnorePattern` class has the set of glob patterns and the base path.
- *
- * It provides two static methods.
+ * @fileoverview `OverrideTester` class.
  *
- * - `IgnorePattern.createDefaultIgnore(cwd)`
- *      Create the default predicate function.
- * - `IgnorePattern.createIgnore(ignorePatterns)`
- *      Create the predicate function from multiple `IgnorePattern` objects.
+ * `OverrideTester` class handles `files` property and `excludedFiles` property
+ * of `overrides` config.
  *
- * It provides two properties and a method.
+ * It provides one method.
  *
- * - `patterns`
- *      The glob patterns that ignore to lint.
- * - `basePath`
- *      The base path of the glob patterns. If absolute paths existed in the
- *      glob patterns, those are handled as relative paths to the base path.
- * - `getPatternsRelativeTo(basePath)`
- *      Get `patterns` as modified for a given base path. It modifies the
- *      absolute paths in the patterns as prepending the difference of two base
- *      paths.
+ * - `test(filePath)`
+ *      Test if a file path matches the pair of `files` property and
+ *      `excludedFiles` property. The `filePath` argument must be an absolute
+ *      path.
  *
- * `ConfigArrayFactory` creates `IgnorePattern` objects when it processes
- * `ignorePatterns` properties.
+ * `ConfigArrayFactory` creates `OverrideTester` objects when it processes
+ * `overrides` properties.
  *
  * @author Toru Nagashima <https://github.com/mysticatea>
  */
 
-const debug$3 = debugOrig__default["default"]("eslintrc:ignore-pattern");
-
-/** @typedef {ReturnType<import("ignore").default>} Ignore */
+const { Minimatch } = minimatch__default["default"];
 
-//------------------------------------------------------------------------------
-// Helpers
-//------------------------------------------------------------------------------
+const minimatchOpts = { dot: true, matchBase: true };
 
 /**
- * Get the path to the common ancestor directory of given paths.
- * @param {string[]} sourcePaths The paths to calculate the common ancestor.
- * @returns {string} The path to the common ancestor directory.
+ * @typedef {Object} Pattern
+ * @property {InstanceType<Minimatch>[] | null} includes The positive matchers.
+ * @property {InstanceType<Minimatch>[] | null} excludes The negative matchers.
  */
-function getCommonAncestorPath(sourcePaths) {
-    let result = sourcePaths[0];
 
-    for (let i = 1; i < sourcePaths.length; ++i) {
-        const a = result;
-        const b = sourcePaths[i];
-
-        // Set the shorter one (it's the common ancestor if one includes the other).
-        result = a.length < b.length ? a : b;
-
-        // Set the common ancestor.
-        for (let j = 0, lastSepPos = 0; j < a.length && j < b.length; ++j) {
-            if (a[j] !== b[j]) {
-                result = a.slice(0, lastSepPos);
-                break;
-            }
-            if (a[j] === path__default["default"].sep) {
-                lastSepPos = j;
-            }
-        }
+/**
+ * Normalize a given pattern to an array.
+ * @param {string|string[]|undefined} patterns A glob pattern or an array of glob patterns.
+ * @returns {string[]|null} Normalized patterns.
+ * @private
+ */
+function normalizePatterns(patterns) {
+    if (Array.isArray(patterns)) {
+        return patterns.filter(Boolean);
     }
-
-    let resolvedResult = result || path__default["default"].sep;
-
-    // if Windows common ancestor is root of drive must have trailing slash to be absolute.
-    if (resolvedResult && resolvedResult.endsWith(":") && process.platform === "win32") {
-        resolvedResult += path__default["default"].sep;
+    if (typeof patterns === "string" && patterns) {
+        return [patterns];
     }
-    return resolvedResult;
+    return [];
 }
 
 /**
- * Make relative path.
- * @param {string} from The source path to get relative path.
- * @param {string} to The destination path to get relative path.
- * @returns {string} The relative path.
+ * Create the matchers of given patterns.
+ * @param {string[]} patterns The patterns.
+ * @returns {InstanceType<Minimatch>[] | null} The matchers.
  */
-function relative(from, to) {
-    const relPath = path__default["default"].relative(from, to);
-
-    if (path__default["default"].sep === "/") {
-        return relPath;
+function toMatcher(patterns) {
+    if (patterns.length === 0) {
+        return null;
     }
-    return relPath.split(path__default["default"].sep).join("/");
+    return patterns.map(pattern => {
+        if (/^\.[/\\]/u.test(pattern)) {
+            return new Minimatch(
+                pattern.slice(2),
+
+                // `./*.js` should not match with `subdir/foo.js`
+                { ...minimatchOpts, matchBase: false }
+            );
+        }
+        return new Minimatch(pattern, minimatchOpts);
+    });
 }
 
 /**
- * Get the trailing slash if existed.
- * @param {string} filePath The path to check.
- * @returns {string} The trailing slash if existed.
+ * Convert a given matcher to string.
+ * @param {Pattern} matchers The matchers.
+ * @returns {string} The string expression of the matcher.
  */
-function dirSuffix(filePath) {
-    const isDir = (
-        filePath.endsWith(path__default["default"].sep) ||
-        (process.platform === "win32" && filePath.endsWith("/"))
-    );
-
-    return isDir ? "/" : "";
+function patternToJson({ includes, excludes }) {
+    return {
+        includes: includes && includes.map(m => m.pattern),
+        excludes: excludes && excludes.map(m => m.pattern)
+    };
 }
 
-const DefaultPatterns = Object.freeze(["/**/node_modules/*"]);
-const DotPatterns = Object.freeze([".*", "!.eslintrc.*", "!../"]);
-
-//------------------------------------------------------------------------------
-// Public
-//------------------------------------------------------------------------------
-
-class IgnorePattern {
+/**
+ * The class to test given paths are matched by the patterns.
+ */
+class OverrideTester {
 
     /**
-     * The default patterns.
-     * @type {string[]}
+     * Create a tester with given criteria.
+     * If there are no criteria, returns `null`.
+     * @param {string|string[]} files The glob patterns for included files.
+     * @param {string|string[]} excludedFiles The glob patterns for excluded files.
+     * @param {string} basePath The path to the base directory to test paths.
+     * @returns {OverrideTester|null} The created instance or `null`.
      */
-    static get DefaultPatterns() {
-        return DefaultPatterns;
-    }
+    static create(files, excludedFiles, basePath) {
+        const includePatterns = normalizePatterns(files);
+        const excludePatterns = normalizePatterns(excludedFiles);
+        let endsWithWildcard = false;
 
-    /**
-     * Create the default predicate function.
-     * @param {string} cwd The current working directory.
-     * @returns {((filePath:string, dot:boolean) => boolean) & {basePath:string; patterns:string[]}}
-     * The preficate function.
-     * The first argument is an absolute path that is checked.
-     * The second argument is the flag to not ignore dotfiles.
-     * If the predicate function returned `true`, it means the path should be ignored.
-     */
-    static createDefaultIgnore(cwd) {
-        return this.createIgnore([new IgnorePattern(DefaultPatterns, cwd)]);
-    }
+        if (includePatterns.length === 0) {
+            return null;
+        }
 
-    /**
-     * Create the predicate function from multiple `IgnorePattern` objects.
-     * @param {IgnorePattern[]} ignorePatterns The list of ignore patterns.
-     * @returns {((filePath:string, dot?:boolean) => boolean) & {basePath:string; patterns:string[]}}
-     * The preficate function.
-     * The first argument is an absolute path that is checked.
-     * The second argument is the flag to not ignore dotfiles.
-     * If the predicate function returned `true`, it means the path should be ignored.
-     */
-    static createIgnore(ignorePatterns) {
-        debug$3("Create with: %o", ignorePatterns);
+        // Rejects absolute paths or relative paths to parents.
+        for (const pattern of includePatterns) {
+            if (path__default["default"].isAbsolute(pattern) || pattern.includes("..")) {
+                throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);
+            }
+            if (pattern.endsWith("*")) {
+                endsWithWildcard = true;
+            }
+        }
+        for (const pattern of excludePatterns) {
+            if (path__default["default"].isAbsolute(pattern) || pattern.includes("..")) {
+                throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);
+            }
+        }
 
-        const basePath = getCommonAncestorPath(ignorePatterns.map(p => p.basePath));
-        const patterns = [].concat(
-            ...ignorePatterns.map(p => p.getPatternsRelativeTo(basePath))
-        );
-        const ig = ignore__default["default"]().add([...DotPatterns, ...patterns]);
-        const dotIg = ignore__default["default"]().add(patterns);
+        const includes = toMatcher(includePatterns);
+        const excludes = toMatcher(excludePatterns);
 
-        debug$3("  processed: %o", { basePath, patterns });
+        return new OverrideTester(
+            [{ includes, excludes }],
+            basePath,
+            endsWithWildcard
+        );
+    }
 
-        return Object.assign(
-            (filePath, dot = false) => {
-                assert__default["default"](path__default["default"].isAbsolute(filePath), "'filePath' should be an absolute path.");
-                const relPathRaw = relative(basePath, filePath);
-                const relPath = relPathRaw && (relPathRaw + dirSuffix(filePath));
-                const adoptedIg = dot ? dotIg : ig;
-                const result = relPath !== "" && adoptedIg.ignores(relPath);
+    /**
+     * Combine two testers by logical and.
+     * If either of the testers was `null`, returns the other tester.
+     * The `basePath` property of the two must be the same value.
+     * @param {OverrideTester|null} a A tester.
+     * @param {OverrideTester|null} b Another tester.
+     * @returns {OverrideTester|null} Combined tester.
+     */
+    static and(a, b) {
+        if (!b) {
+            return a && new OverrideTester(
+                a.patterns,
+                a.basePath,
+                a.endsWithWildcard
+            );
+        }
+        if (!a) {
+            return new OverrideTester(
+                b.patterns,
+                b.basePath,
+                b.endsWithWildcard
+            );
+        }
 
-                debug$3("Check", { filePath, dot, relativePath: relPath, result });
-                return result;
-            },
-            { basePath, patterns }
+        assert__default["default"].strictEqual(a.basePath, b.basePath);
+        return new OverrideTester(
+            a.patterns.concat(b.patterns),
+            a.basePath,
+            a.endsWithWildcard || b.endsWithWildcard
         );
     }
 
     /**
-     * Initialize a new `IgnorePattern` instance.
-     * @param {string[]} patterns The glob patterns that ignore to lint.
-     * @param {string} basePath The base path of `patterns`.
+     * Initialize this instance.
+     * @param {Pattern[]} patterns The matchers.
+     * @param {string} basePath The base path.
+     * @param {boolean} endsWithWildcard If `true` then a pattern ends with `*`.
      */
-    constructor(patterns, basePath) {
-        assert__default["default"](path__default["default"].isAbsolute(basePath), "'basePath' should be an absolute path.");
+    constructor(patterns, basePath, endsWithWildcard = false) {
 
-        /**
-         * The glob patterns that ignore to lint.
-         * @type {string[]}
-         */
+        /** @type {Pattern[]} */
         this.patterns = patterns;
 
-        /**
-         * The base path of `patterns`.
-         * @type {string}
-         */
+        /** @type {string} */
         this.basePath = basePath;
 
-        /**
-         * If `true` then patterns which don't start with `/` will match the paths to the outside of `basePath`. Defaults to `false`.
-         *
-         * It's set `true` for `.eslintignore`, `package.json`, and `--ignore-path` for backward compatibility.
-         * It's `false` as-is for `ignorePatterns` property in config files.
-         * @type {boolean}
-         */
-        this.loose = false;
+        /** @type {boolean} */
+        this.endsWithWildcard = endsWithWildcard;
     }
 
     /**
-     * Get `patterns` as modified for a given base path. It modifies the
-     * absolute paths in the patterns as prepending the difference of two base
-     * paths.
-     * @param {string} newBasePath The base path.
-     * @returns {string[]} Modifired patterns.
+     * Test if a given path is matched or not.
+     * @param {string} filePath The absolute path to the target file.
+     * @returns {boolean} `true` if the path was matched.
      */
-    getPatternsRelativeTo(newBasePath) {
-        assert__default["default"](path__default["default"].isAbsolute(newBasePath), "'newBasePath' should be an absolute path.");
-        const { basePath, loose, patterns } = this;
-
-        if (newBasePath === basePath) {
-            return patterns;
+    test(filePath) {
+        if (typeof filePath !== "string" || !path__default["default"].isAbsolute(filePath)) {
+            throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`);
         }
-        const prefix = `/${relative(newBasePath, basePath)}`;
+        const relativePath = path__default["default"].relative(this.basePath, filePath);
+
+        return this.patterns.every(({ includes, excludes }) => (
+            (!includes || includes.some(m => m.match(relativePath))) &&
+            (!excludes || !excludes.some(m => m.match(relativePath)))
+        ));
+    }
+
+    // eslint-disable-next-line jsdoc/require-description
+    /**
+     * @returns {Object} a JSON compatible object.
+     */
+    toJSON() {
+        if (this.patterns.length === 1) {
+            return {
+                ...patternToJson(this.patterns[0]),
+                basePath: this.basePath
+            };
+        }
+        return {
+            AND: this.patterns.map(patternToJson),
+            basePath: this.basePath
+        };
+    }
+
+    // eslint-disable-next-line jsdoc/require-description
+    /**
+     * @returns {Object} an object to display by `console.log()`.
+     */
+    [util__default["default"].inspect.custom]() {
+        return this.toJSON();
+    }
+}
+
+/**
+ * @fileoverview `ConfigArray` class.
+ * @author Toru Nagashima <https://github.com/mysticatea>
+ */
+
+/**
+ * @fileoverview Config file operations. This file must be usable in the browser,
+ * so no Node-specific code can be here.
+ * @author Nicholas C. Zakas
+ */
+
+//------------------------------------------------------------------------------
+// Private
+//------------------------------------------------------------------------------
+
+const RULE_SEVERITY_STRINGS = ["off", "warn", "error"],
+    RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => {
+        map[value] = index;
+        return map;
+    }, {}),
+    VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"];
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+/**
+ * Normalizes the severity value of a rule's configuration to a number
+ * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally
+ * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0),
+ * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array
+ * whose first element is one of the above values. Strings are matched case-insensitively.
+ * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0.
+ */
+function getRuleSeverity(ruleConfig) {
+    const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
+
+    if (severityValue === 0 || severityValue === 1 || severityValue === 2) {
+        return severityValue;
+    }
+
+    if (typeof severityValue === "string") {
+        return RULE_SEVERITY[severityValue.toLowerCase()] || 0;
+    }
+
+    return 0;
+}
+
+/**
+ * Converts old-style severity settings (0, 1, 2) into new-style
+ * severity settings (off, warn, error) for all rules. Assumption is that severity
+ * values have already been validated as correct.
+ * @param {Object} config The config object to normalize.
+ * @returns {void}
+ */
+function normalizeToStrings(config) {
+
+    if (config.rules) {
+        Object.keys(config.rules).forEach(ruleId => {
+            const ruleConfig = config.rules[ruleId];
+
+            if (typeof ruleConfig === "number") {
+                config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0];
+            } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") {
+                ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0];
+            }
+        });
+    }
+}
+
+/**
+ * Determines if the severity for the given rule configuration represents an error.
+ * @param {int|string|Array} ruleConfig The configuration for an individual rule.
+ * @returns {boolean} True if the rule represents an error, false if not.
+ */
+function isErrorSeverity(ruleConfig) {
+    return getRuleSeverity(ruleConfig) === 2;
+}
+
+/**
+ * Checks whether a given config has valid severity or not.
+ * @param {number|string|Array} ruleConfig The configuration for an individual rule.
+ * @returns {boolean} `true` if the configuration has valid severity.
+ */
+function isValidSeverity(ruleConfig) {
+    let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
+
+    if (typeof severity === "string") {
+        severity = severity.toLowerCase();
+    }
+    return VALID_SEVERITIES.indexOf(severity) !== -1;
+}
+
+/**
+ * Checks whether every rule of a given config has valid severity or not.
+ * @param {Object} config The configuration for rules.
+ * @returns {boolean} `true` if the configuration has valid severity.
+ */
+function isEverySeverityValid(config) {
+    return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId]));
+}
+
+/**
+ * Normalizes a value for a global in a config
+ * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in
+ * a global directive comment
+ * @returns {("readable"|"writeable"|"off")} The value normalized as a string
+ * @throws Error if global value is invalid
+ */
+function normalizeConfigGlobal(configuredValue) {
+    switch (configuredValue) {
+        case "off":
+            return "off";
+
+        case true:
+        case "true":
+        case "writeable":
+        case "writable":
+            return "writable";
+
+        case null:
+        case false:
+        case "false":
+        case "readable":
+        case "readonly":
+            return "readonly";
+
+        default:
+            throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`);
+    }
+}
+
+var ConfigOps = {
+    __proto__: null,
+    getRuleSeverity: getRuleSeverity,
+    normalizeToStrings: normalizeToStrings,
+    isErrorSeverity: isErrorSeverity,
+    isValidSeverity: isValidSeverity,
+    isEverySeverityValid: isEverySeverityValid,
+    normalizeConfigGlobal: normalizeConfigGlobal
+};
+
+/**
+ * @fileoverview Provide the function that emits deprecation warnings.
+ * @author Toru Nagashima <http://github.com/mysticatea>
+ */
+
+//------------------------------------------------------------------------------
+// Private
+//------------------------------------------------------------------------------
+
+// Defitions for deprecation warnings.
+const deprecationWarningMessages = {
+    ESLINT_LEGACY_ECMAFEATURES:
+        "The 'ecmaFeatures' config file property is deprecated and has no effect.",
+    ESLINT_PERSONAL_CONFIG_LOAD:
+        "'~/.eslintrc.*' config files have been deprecated. " +
+        "Please use a config file per project or the '--config' option.",
+    ESLINT_PERSONAL_CONFIG_SUPPRESS:
+        "'~/.eslintrc.*' config files have been deprecated. " +
+        "Please remove it or add 'root:true' to the config files in your " +
+        "projects in order to avoid loading '~/.eslintrc.*' accidentally."
+};
+
+const sourceFileErrorCache = new Set();
+
+/**
+ * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted
+ * for each unique file path, but repeated invocations with the same file path have no effect.
+ * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active.
+ * @param {string} source The name of the configuration source to report the warning for.
+ * @param {string} errorCode The warning message to show.
+ * @returns {void}
+ */
+function emitDeprecationWarning(source, errorCode) {
+    const cacheKey = JSON.stringify({ source, errorCode });
+
+    if (sourceFileErrorCache.has(cacheKey)) {
+        return;
+    }
+    sourceFileErrorCache.add(cacheKey);
+
+    const rel = path__default["default"].relative(process.cwd(), source);
+    const message = deprecationWarningMessages[errorCode];
+
+    process.emitWarning(
+        `${message} (found in "${rel}")`,
+        "DeprecationWarning",
+        errorCode
+    );
+}
+
+/**
+ * @fileoverview The instance of Ajv validator.
+ * @author Evgeny Poberezkin
+ */
+
+//-----------------------------------------------------------------------------
+// Helpers
+//-----------------------------------------------------------------------------
+
+/*
+ * Copied from ajv/lib/refs/json-schema-draft-04.json
+ * The MIT License (MIT)
+ * Copyright (c) 2015-2017 Evgeny Poberezkin
+ */
+const metaSchema = {
+    id: "http://json-schema.org/draft-04/schema#",
+    $schema: "http://json-schema.org/draft-04/schema#",
+    description: "Core schema meta-schema",
+    definitions: {
+        schemaArray: {
+            type: "array",
+            minItems: 1,
+            items: { $ref: "#" }
+        },
+        positiveInteger: {
+            type: "integer",
+            minimum: 0
+        },
+        positiveIntegerDefault0: {
+            allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }]
+        },
+        simpleTypes: {
+            enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
+        },
+        stringArray: {
+            type: "array",
+            items: { type: "string" },
+            minItems: 1,
+            uniqueItems: true
+        }
+    },
+    type: "object",
+    properties: {
+        id: {
+            type: "string"
+        },
+        $schema: {
+            type: "string"
+        },
+        title: {
+            type: "string"
+        },
+        description: {
+            type: "string"
+        },
+        default: { },
+        multipleOf: {
+            type: "number",
+            minimum: 0,
+            exclusiveMinimum: true
+        },
+        maximum: {
+            type: "number"
+        },
+        exclusiveMaximum: {
+            type: "boolean",
+            default: false
+        },
+        minimum: {
+            type: "number"
+        },
+        exclusiveMinimum: {
+            type: "boolean",
+            default: false
+        },
+        maxLength: { $ref: "#/definitions/positiveInteger" },
+        minLength: { $ref: "#/definitions/positiveIntegerDefault0" },
+        pattern: {
+            type: "string",
+            format: "regex"
+        },
+        additionalItems: {
+            anyOf: [
+                { type: "boolean" },
+                { $ref: "#" }
+            ],
+            default: { }
+        },
+        items: {
+            anyOf: [
+                { $ref: "#" },
+                { $ref: "#/definitions/schemaArray" }
+            ],
+            default: { }
+        },
+        maxItems: { $ref: "#/definitions/positiveInteger" },
+        minItems: { $ref: "#/definitions/positiveIntegerDefault0" },
+        uniqueItems: {
+            type: "boolean",
+            default: false
+        },
+        maxProperties: { $ref: "#/definitions/positiveInteger" },
+        minProperties: { $ref: "#/definitions/positiveIntegerDefault0" },
+        required: { $ref: "#/definitions/stringArray" },
+        additionalProperties: {
+            anyOf: [
+                { type: "boolean" },
+                { $ref: "#" }
+            ],
+            default: { }
+        },
+        definitions: {
+            type: "object",
+            additionalProperties: { $ref: "#" },
+            default: { }
+        },
+        properties: {
+            type: "object",
+            additionalProperties: { $ref: "#" },
+            default: { }
+        },
+        patternProperties: {
+            type: "object",
+            additionalProperties: { $ref: "#" },
+            default: { }
+        },
+        dependencies: {
+            type: "object",
+            additionalProperties: {
+                anyOf: [
+                    { $ref: "#" },
+                    { $ref: "#/definitions/stringArray" }
+                ]
+            }
+        },
+        enum: {
+            type: "array",
+            minItems: 1,
+            uniqueItems: true
+        },
+        type: {
+            anyOf: [
+                { $ref: "#/definitions/simpleTypes" },
+                {
+                    type: "array",
+                    items: { $ref: "#/definitions/simpleTypes" },
+                    minItems: 1,
+                    uniqueItems: true
+                }
+            ]
+        },
+        format: { type: "string" },
+        allOf: { $ref: "#/definitions/schemaArray" },
+        anyOf: { $ref: "#/definitions/schemaArray" },
+        oneOf: { $ref: "#/definitions/schemaArray" },
+        not: { $ref: "#" }
+    },
+    dependencies: {
+        exclusiveMaximum: ["maximum"],
+        exclusiveMinimum: ["minimum"]
+    },
+    default: { }
+};
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+var ajvOrig = (additionalOptions = {}) => {
+    const ajv = new Ajv__default["default"]({
+        meta: false,
+        useDefaults: true,
+        validateSchema: false,
+        missingRefs: "ignore",
+        verbose: true,
+        schemaId: "auto",
+        ...additionalOptions
+    });
+
+    ajv.addMetaSchema(metaSchema);
+    // eslint-disable-next-line no-underscore-dangle
+    ajv._opts.defaultMeta = metaSchema.id;
+
+    return ajv;
+};
+
+/**
+ * @fileoverview Defines a schema for configs.
+ * @author Sylvan Mably
+ */
+
+const baseConfigProperties = {
+    $schema: { type: "string" },
+    env: { type: "object" },
+    extends: { $ref: "#/definitions/stringOrStrings" },
+    globals: { type: "object" },
+    overrides: {
+        type: "array",
+        items: { $ref: "#/definitions/overrideConfig" },
+        additionalItems: false
+    },
+    parser: { type: ["string", "null"] },
+    parserOptions: { type: "object" },
+    plugins: { type: "array" },
+    processor: { type: "string" },
+    rules: { type: "object" },
+    settings: { type: "object" },
+    noInlineConfig: { type: "boolean" },
+    reportUnusedDisableDirectives: { type: "boolean" },
+
+    ecmaFeatures: { type: "object" } // deprecated; logs a warning when used
+};
+
+const configSchema = {
+    definitions: {
+        stringOrStrings: {
+            oneOf: [
+                { type: "string" },
+                {
+                    type: "array",
+                    items: { type: "string" },
+                    additionalItems: false
+                }
+            ]
+        },
+        stringOrStringsRequired: {
+            oneOf: [
+                { type: "string" },
+                {
+                    type: "array",
+                    items: { type: "string" },
+                    additionalItems: false,
+                    minItems: 1
+                }
+            ]
+        },
+
+        // Config at top-level.
+        objectConfig: {
+            type: "object",
+            properties: {
+                root: { type: "boolean" },
+                ignorePatterns: { $ref: "#/definitions/stringOrStrings" },
+                ...baseConfigProperties
+            },
+            additionalProperties: false
+        },
+
+        // Config in `overrides`.
+        overrideConfig: {
+            type: "object",
+            properties: {
+                excludedFiles: { $ref: "#/definitions/stringOrStrings" },
+                files: { $ref: "#/definitions/stringOrStringsRequired" },
+                ...baseConfigProperties
+            },
+            required: ["files"],
+            additionalProperties: false
+        }
+    },
+
+    $ref: "#/definitions/objectConfig"
+};
+
+/**
+ * @fileoverview Defines environment settings and globals.
+ * @author Elan Shanker
+ */
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+/**
+ * Get the object that has difference.
+ * @param {Record<string,boolean>} current The newer object.
+ * @param {Record<string,boolean>} prev The older object.
+ * @returns {Record<string,boolean>} The difference object.
+ */
+function getDiff(current, prev) {
+    const retv = {};
+
+    for (const [key, value] of Object.entries(current)) {
+        if (!Object.hasOwnProperty.call(prev, key)) {
+            retv[key] = value;
+        }
+    }
+
+    return retv;
+}
+
+const newGlobals2015 = getDiff(globals__default["default"].es2015, globals__default["default"].es5); // 19 variables such as Promise, Map, ...
+const newGlobals2017 = {
+    Atomics: false,
+    SharedArrayBuffer: false
+};
+const newGlobals2020 = {
+    BigInt: false,
+    BigInt64Array: false,
+    BigUint64Array: false,
+    globalThis: false
+};
+
+const newGlobals2021 = {
+    AggregateError: false,
+    FinalizationRegistry: false,
+    WeakRef: false
+};
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+/** @type {Map<string, import("../lib/shared/types").Environment>} */
+var environments = new Map(Object.entries({
+
+    // Language
+    builtin: {
+        globals: globals__default["default"].es5
+    },
+    es6: {
+        globals: newGlobals2015,
+        parserOptions: {
+            ecmaVersion: 6
+        }
+    },
+    es2015: {
+        globals: newGlobals2015,
+        parserOptions: {
+            ecmaVersion: 6
+        }
+    },
+    es2016: {
+        globals: newGlobals2015,
+        parserOptions: {
+            ecmaVersion: 7
+        }
+    },
+    es2017: {
+        globals: { ...newGlobals2015, ...newGlobals2017 },
+        parserOptions: {
+            ecmaVersion: 8
+        }
+    },
+    es2018: {
+        globals: { ...newGlobals2015, ...newGlobals2017 },
+        parserOptions: {
+            ecmaVersion: 9
+        }
+    },
+    es2019: {
+        globals: { ...newGlobals2015, ...newGlobals2017 },
+        parserOptions: {
+            ecmaVersion: 10
+        }
+    },
+    es2020: {
+        globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },
+        parserOptions: {
+            ecmaVersion: 11
+        }
+    },
+    es2021: {
+        globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
+        parserOptions: {
+            ecmaVersion: 12
+        }
+    },
+    es2022: {
+        globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
+        parserOptions: {
+            ecmaVersion: 13
+        }
+    },
+
+    // Platforms
+    browser: {
+        globals: globals__default["default"].browser
+    },
+    node: {
+        globals: globals__default["default"].node,
+        parserOptions: {
+            ecmaFeatures: {
+                globalReturn: true
+            }
+        }
+    },
+    "shared-node-browser": {
+        globals: globals__default["default"]["shared-node-browser"]
+    },
+    worker: {
+        globals: globals__default["default"].worker
+    },
+    serviceworker: {
+        globals: globals__default["default"].serviceworker
+    },
+
+    // Frameworks
+    commonjs: {
+        globals: globals__default["default"].commonjs,
+        parserOptions: {
+            ecmaFeatures: {
+                globalReturn: true
+            }
+        }
+    },
+    amd: {
+        globals: globals__default["default"].amd
+    },
+    mocha: {
+        globals: globals__default["default"].mocha
+    },
+    jasmine: {
+        globals: globals__default["default"].jasmine
+    },
+    jest: {
+        globals: globals__default["default"].jest
+    },
+    phantomjs: {
+        globals: globals__default["default"].phantomjs
+    },
+    jquery: {
+        globals: globals__default["default"].jquery
+    },
+    qunit: {
+        globals: globals__default["default"].qunit
+    },
+    prototypejs: {
+        globals: globals__default["default"].prototypejs
+    },
+    shelljs: {
+        globals: globals__default["default"].shelljs
+    },
+    meteor: {
+        globals: globals__default["default"].meteor
+    },
+    mongo: {
+        globals: globals__default["default"].mongo
+    },
+    protractor: {
+        globals: globals__default["default"].protractor
+    },
+    applescript: {
+        globals: globals__default["default"].applescript
+    },
+    nashorn: {
+        globals: globals__default["default"].nashorn
+    },
+    atomtest: {
+        globals: globals__default["default"].atomtest
+    },
+    embertest: {
+        globals: globals__default["default"].embertest
+    },
+    webextensions: {
+        globals: globals__default["default"].webextensions
+    },
+    greasemonkey: {
+        globals: globals__default["default"].greasemonkey
+    }
+}));
+
+/**
+ * @fileoverview Validates configs.
+ * @author Brandon Mills
+ */
+
+const ajv = ajvOrig();
+
+const ruleValidators = new WeakMap();
+const noop = Function.prototype;
+
+//------------------------------------------------------------------------------
+// Private
+//------------------------------------------------------------------------------
+let validateSchema;
+const severityMap = {
+    error: 2,
+    warn: 1,
+    off: 0
+};
+
+const validated = new WeakSet();
+
+//-----------------------------------------------------------------------------
+// Exports
+//-----------------------------------------------------------------------------
+
+class ConfigValidator {
+    constructor({ builtInRules = new Map() } = {}) {
+        this.builtInRules = builtInRules;
+    }
+
+    /**
+     * Gets a complete options schema for a rule.
+     * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object
+     * @returns {Object} JSON Schema for the rule's options.
+     */
+    getRuleOptionsSchema(rule) {
+        if (!rule) {
+            return null;
+        }
+
+        const schema = rule.schema || rule.meta && rule.meta.schema;
+
+        // Given a tuple of schemas, insert warning level at the beginning
+        if (Array.isArray(schema)) {
+            if (schema.length) {
+                return {
+                    type: "array",
+                    items: schema,
+                    minItems: 0,
+                    maxItems: schema.length
+                };
+            }
+            return {
+                type: "array",
+                minItems: 0,
+                maxItems: 0
+            };
+
+        }
+
+        // Given a full schema, leave it alone
+        return schema || null;
+    }
+
+    /**
+     * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid.
+     * @param {options} options The given options for the rule.
+     * @returns {number|string} The rule's severity value
+     */
+    validateRuleSeverity(options) {
+        const severity = Array.isArray(options) ? options[0] : options;
+        const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity;
+
+        if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) {
+            return normSeverity;
+        }
+
+        throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util__default["default"].inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`);
+
+    }
+
+    /**
+     * Validates the non-severity options passed to a rule, based on its schema.
+     * @param {{create: Function}} rule The rule to validate
+     * @param {Array} localOptions The options for the rule, excluding severity
+     * @returns {void}
+     */
+    validateRuleSchema(rule, localOptions) {
+        if (!ruleValidators.has(rule)) {
+            const schema = this.getRuleOptionsSchema(rule);
+
+            if (schema) {
+                ruleValidators.set(rule, ajv.compile(schema));
+            }
+        }
+
+        const validateRule = ruleValidators.get(rule);
+
+        if (validateRule) {
+            validateRule(localOptions);
+            if (validateRule.errors) {
+                throw new Error(validateRule.errors.map(
+                    error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n`
+                ).join(""));
+            }
+        }
+    }
+
+    /**
+     * Validates a rule's options against its schema.
+     * @param {{create: Function}|null} rule The rule that the config is being validated for
+     * @param {string} ruleId The rule's unique name.
+     * @param {Array|number} options The given options for the rule.
+     * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined,
+     * no source is prepended to the message.
+     * @returns {void}
+     */
+    validateRuleOptions(rule, ruleId, options, source = null) {
+        try {
+            const severity = this.validateRuleSeverity(options);
+
+            if (severity !== 0) {
+                this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []);
+            }
+        } catch (err) {
+            const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`;
+
+            if (typeof source === "string") {
+                throw new Error(`${source}:\n\t${enhancedMessage}`);
+            } else {
+                throw new Error(enhancedMessage);
+            }
+        }
+    }
+
+    /**
+     * Validates an environment object
+     * @param {Object} environment The environment config object to validate.
+     * @param {string} source The name of the configuration source to report in any errors.
+     * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments.
+     * @returns {void}
+     */
+    validateEnvironment(
+        environment,
+        source,
+        getAdditionalEnv = noop
+    ) {
+
+        // not having an environment is ok
+        if (!environment) {
+            return;
+        }
+
+        Object.keys(environment).forEach(id => {
+            const env = getAdditionalEnv(id) || environments.get(id) || null;
+
+            if (!env) {
+                const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`;
+
+                throw new Error(message);
+            }
+        });
+    }
+
+    /**
+     * Validates a rules config object
+     * @param {Object} rulesConfig The rules config object to validate.
+     * @param {string} source The name of the configuration source to report in any errors.
+     * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules
+     * @returns {void}
+     */
+    validateRules(
+        rulesConfig,
+        source,
+        getAdditionalRule = noop
+    ) {
+        if (!rulesConfig) {
+            return;
+        }
+
+        Object.keys(rulesConfig).forEach(id => {
+            const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null;
+
+            this.validateRuleOptions(rule, id, rulesConfig[id], source);
+        });
+    }
+
+    /**
+     * Validates a `globals` section of a config file
+     * @param {Object} globalsConfig The `globals` section
+     * @param {string|null} source The name of the configuration source to report in the event of an error.
+     * @returns {void}
+     */
+    validateGlobals(globalsConfig, source = null) {
+        if (!globalsConfig) {
+            return;
+        }
+
+        Object.entries(globalsConfig)
+            .forEach(([configuredGlobal, configuredValue]) => {
+                try {
+                    normalizeConfigGlobal(configuredValue);
+                } catch (err) {
+                    throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`);
+                }
+            });
+    }
+
+    /**
+     * Validate `processor` configuration.
+     * @param {string|undefined} processorName The processor name.
+     * @param {string} source The name of config file.
+     * @param {function(id:string): Processor} getProcessor The getter of defined processors.
+     * @returns {void}
+     */
+    validateProcessor(processorName, source, getProcessor) {
+        if (processorName && !getProcessor(processorName)) {
+            throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`);
+        }
+    }
+
+    /**
+     * Formats an array of schema validation errors.
+     * @param {Array} errors An array of error messages to format.
+     * @returns {string} Formatted error message
+     */
+    formatErrors(errors) {
+        return errors.map(error => {
+            if (error.keyword === "additionalProperties") {
+                const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty;
+
+                return `Unexpected top-level property "${formattedPropertyPath}"`;
+            }
+            if (error.keyword === "type") {
+                const formattedField = error.dataPath.slice(1);
+                const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema;
+                const formattedValue = JSON.stringify(error.data);
+
+                return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`;
+            }
+
+            const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath;
+
+            return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`;
+        }).map(message => `\t- ${message}.\n`).join("");
+    }
+
+    /**
+     * Validates the top level properties of the config object.
+     * @param {Object} config The config object to validate.
+     * @param {string} source The name of the configuration source to report in any errors.
+     * @returns {void}
+     */
+    validateConfigSchema(config, source = null) {
+        validateSchema = validateSchema || ajv.compile(configSchema);
+
+        if (!validateSchema(config)) {
+            throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`);
+        }
+
+        if (Object.hasOwnProperty.call(config, "ecmaFeatures")) {
+            emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES");
+        }
+    }
+
+    /**
+     * Validates an entire config object.
+     * @param {Object} config The config object to validate.
+     * @param {string} source The name of the configuration source to report in any errors.
+     * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules.
+     * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs.
+     * @returns {void}
+     */
+    validate(config, source, getAdditionalRule, getAdditionalEnv) {
+        this.validateConfigSchema(config, source);
+        this.validateRules(config.rules, source, getAdditionalRule);
+        this.validateEnvironment(config.env, source, getAdditionalEnv);
+        this.validateGlobals(config.globals, source);
+
+        for (const override of config.overrides || []) {
+            this.validateRules(override.rules, source, getAdditionalRule);
+            this.validateEnvironment(override.env, source, getAdditionalEnv);
+            this.validateGlobals(config.globals, source);
+        }
+    }
+
+    /**
+     * Validate config array object.
+     * @param {ConfigArray} configArray The config array to validate.
+     * @returns {void}
+     */
+    validateConfigArray(configArray) {
+        const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments);
+        const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors);
+        const getPluginRule = Map.prototype.get.bind(configArray.pluginRules);
+
+        // Validate.
+        for (const element of configArray) {
+            if (validated.has(element)) {
+                continue;
+            }
+            validated.add(element);
+
+            this.validateEnvironment(element.env, element.name, getPluginEnv);
+            this.validateGlobals(element.globals, element.name);
+            this.validateProcessor(element.processor, element.name, getPluginProcessor);
+            this.validateRules(element.rules, element.name, getPluginRule);
+        }
+    }
+
+}
+
+/**
+ * @fileoverview Common helpers for naming of plugins, formatters and configs
+ */
+
+const NAMESPACE_REGEX = /^@.*\//iu;
+
+/**
+ * Brings package name to correct format based on prefix
+ * @param {string} name The name of the package.
+ * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter"
+ * @returns {string} Normalized name of the package
+ * @private
+ */
+function normalizePackageName(name, prefix) {
+    let normalizedName = name;
+
+    /**
+     * On Windows, name can come in with Windows slashes instead of Unix slashes.
+     * Normalize to Unix first to avoid errors later on.
+     * https://github.com/eslint/eslint/issues/5644
+     */
+    if (normalizedName.includes("\\")) {
+        normalizedName = normalizedName.replace(/\\/gu, "/");
+    }
+
+    if (normalizedName.charAt(0) === "@") {
+
+        /**
+         * it's a scoped package
+         * package name is the prefix, or just a username
+         */
+        const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"),
+            scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u");
+
+        if (scopedPackageShortcutRegex.test(normalizedName)) {
+            normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);
+        } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) {
+
+            /**
+             * for scoped packages, insert the prefix after the first / unless
+             * the path is already @scope/eslint or @scope/eslint-xxx-yyy
+             */
+            normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`);
+        }
+    } else if (!normalizedName.startsWith(`${prefix}-`)) {
+        normalizedName = `${prefix}-${normalizedName}`;
+    }
+
+    return normalizedName;
+}
+
+/**
+ * Removes the prefix from a fullname.
+ * @param {string} fullname The term which may have the prefix.
+ * @param {string} prefix The prefix to remove.
+ * @returns {string} The term without prefix.
+ */
+function getShorthandName(fullname, prefix) {
+    if (fullname[0] === "@") {
+        let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname);
+
+        if (matchResult) {
+            return matchResult[1];
+        }
+
+        matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname);
+        if (matchResult) {
+            return `${matchResult[1]}/${matchResult[2]}`;
+        }
+    } else if (fullname.startsWith(`${prefix}-`)) {
+        return fullname.slice(prefix.length + 1);
+    }
+
+    return fullname;
+}
+
+/**
+ * Gets the scope (namespace) of a term.
+ * @param {string} term The term which may have the namespace.
+ * @returns {string} The namespace of the term if it has one.
+ */
+function getNamespaceFromTerm(term) {
+    const match = term.match(NAMESPACE_REGEX);
+
+    return match ? match[0] : "";
+}
+
+var naming = {
+    __proto__: null,
+    normalizePackageName: normalizePackageName,
+    getShorthandName: getShorthandName,
+    getNamespaceFromTerm: getNamespaceFromTerm
+};
+
+/**
+ * Utility for resolving a module relative to another module
+ * @author Teddy Katz
+ */
+
+/*
+ * `Module.createRequire` is added in v12.2.0. It supports URL as well.
+ * We only support the case where the argument is a filepath, not a URL.
+ */
+const createRequire = Module__default["default"].createRequire;
+
+/**
+ * Resolves a Node module relative to another module
+ * @param {string} moduleName The name of a Node module, or a path to a Node module.
+ * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be
+ * a file rather than a directory, but the file need not actually exist.
+ * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath`
+ */
+function resolve(moduleName, relativeToPath) {
+    try {
+        return createRequire(relativeToPath).resolve(moduleName);
+    } catch (error) {
+
+        // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future.
+        if (
+            typeof error === "object" &&
+            error !== null &&
+            error.code === "MODULE_NOT_FOUND" &&
+            !error.requireStack &&
+            error.message.includes(moduleName)
+        ) {
+            error.message += `\nRequire stack:\n- ${relativeToPath}`;
+        }
+        throw error;
+    }
+}
+
+var ModuleResolver = {
+    __proto__: null,
+    resolve: resolve
+};
+
+/**
+ * @fileoverview The factory of `ConfigArray` objects.
+ *
+ * This class provides methods to create `ConfigArray` instance.
+ *
+ * - `create(configData, options)`
+ *     Create a `ConfigArray` instance from a config data. This is to handle CLI
+ *     options except `--config`.
+ * - `loadFile(filePath, options)`
+ *     Create a `ConfigArray` instance from a config file. This is to handle
+ *     `--config` option. If the file was not found, throws the following error:
+ *      - If the filename was `*.js`, a `MODULE_NOT_FOUND` error.
+ *      - If the filename was `package.json`, an IO error or an
+ *        `ESLINT_CONFIG_FIELD_NOT_FOUND` error.
+ *      - Otherwise, an IO error such as `ENOENT`.
+ * - `loadInDirectory(directoryPath, options)`
+ *     Create a `ConfigArray` instance from a config file which is on a given
+ *     directory. This tries to load `.eslintrc.*` or `package.json`. If not
+ *     found, returns an empty `ConfigArray`.
+ * - `loadESLintIgnore(filePath)`
+ *     Create a `ConfigArray` instance from a config file that is `.eslintignore`
+ *     format. This is to handle `--ignore-path` option.
+ * - `loadDefaultESLintIgnore()`
+ *     Create a `ConfigArray` instance from `.eslintignore` or `package.json` in
+ *     the current working directory.
+ *
+ * `ConfigArrayFactory` class has the responsibility that loads configuration
+ * files, including loading `extends`, `parser`, and `plugins`. The created
+ * `ConfigArray` instance has the loaded `extends`, `parser`, and `plugins`.
+ *
+ * But this class doesn't handle cascading. `CascadingConfigArrayFactory` class
+ * handles cascading and hierarchy.
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
+ */
+
+const require$1 = Module.createRequire((__webpack_require__(983).pathToFileURL)(__filename).toString());
+
+const debug$2 = debugOrig__default["default"]("eslintrc:config-array-factory");
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+const configFilenames = [
+    ".eslintrc.js",
+    ".eslintrc.cjs",
+    ".eslintrc.yaml",
+    ".eslintrc.yml",
+    ".eslintrc.json",
+    ".eslintrc",
+    "package.json"
+];
+
+// Define types for VSCode IntelliSense.
+/** @typedef {import("./shared/types").ConfigData} ConfigData */
+/** @typedef {import("./shared/types").OverrideConfigData} OverrideConfigData */
+/** @typedef {import("./shared/types").Parser} Parser */
+/** @typedef {import("./shared/types").Plugin} Plugin */
+/** @typedef {import("./shared/types").Rule} Rule */
+/** @typedef {import("./config-array/config-dependency").DependentParser} DependentParser */
+/** @typedef {import("./config-array/config-dependency").DependentPlugin} DependentPlugin */
+/** @typedef {ConfigArray[0]} ConfigArrayElement */
+
+/**
+ * @typedef {Object} ConfigArrayFactoryOptions
+ * @property {Map<string,Plugin>} [additionalPluginPool] The map for additional plugins.
+ * @property {string} [cwd] The path to the current working directory.
+ * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`.
+ * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
+ * @property {Object} [resolver=ModuleResolver] The module resolver object.
+ * @property {string} eslintAllPath The path to the definitions for eslint:all.
+ * @property {Function} getEslintAllConfig Returns the config data for eslint:all.
+ * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
+ * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.
+ */
+
+/**
+ * @typedef {Object} ConfigArrayFactoryInternalSlots
+ * @property {Map<string,Plugin>} additionalPluginPool The map for additional plugins.
+ * @property {string} cwd The path to the current working directory.
+ * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from.
+ * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
+ * @property {Object} [resolver=ModuleResolver] The module resolver object.
+ * @property {string} eslintAllPath The path to the definitions for eslint:all.
+ * @property {Function} getEslintAllConfig Returns the config data for eslint:all.
+ * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
+ * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.
+ */
+
+/**
+ * @typedef {Object} ConfigArrayFactoryLoadingContext
+ * @property {string} filePath The path to the current configuration.
+ * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
+ * @property {string} name The name of the current configuration.
+ * @property {string} pluginBasePath The base path to resolve plugins.
+ * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors.
+ */
+
+/**
+ * @typedef {Object} ConfigArrayFactoryLoadingContext
+ * @property {string} filePath The path to the current configuration.
+ * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
+ * @property {string} name The name of the current configuration.
+ * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors.
+ */
+
+/** @type {WeakMap<ConfigArrayFactory, ConfigArrayFactoryInternalSlots>} */
+const internalSlotsMap$1 = new WeakMap();
+
+/** @type {WeakMap<object, Plugin>} */
+const normalizedPlugins = new WeakMap();
+
+/**
+ * Check if a given string is a file path.
+ * @param {string} nameOrPath A module name or file path.
+ * @returns {boolean} `true` if the `nameOrPath` is a file path.
+ */
+function isFilePath(nameOrPath) {
+    return (
+        /^\.{1,2}[/\\]/u.test(nameOrPath) ||
+        path__default["default"].isAbsolute(nameOrPath)
+    );
+}
+
+/**
+ * Convenience wrapper for synchronously reading file contents.
+ * @param {string} filePath The filename to read.
+ * @returns {string} The file contents, with the BOM removed.
+ * @private
+ */
+function readFile(filePath) {
+    return fs__default["default"].readFileSync(filePath, "utf8").replace(/^\ufeff/u, "");
+}
+
+/**
+ * Loads a YAML configuration from a file.
+ * @param {string} filePath The filename to load.
+ * @returns {ConfigData} The configuration object from the file.
+ * @throws {Error} If the file cannot be read.
+ * @private
+ */
+function loadYAMLConfigFile(filePath) {
+    debug$2(`Loading YAML config file: ${filePath}`);
+
+    // lazy load YAML to improve performance when not used
+    const yaml = require$1("js-yaml");
+
+    try {
+
+        // empty YAML file can be null, so always use
+        return yaml.load(readFile(filePath)) || {};
+    } catch (e) {
+        debug$2(`Error reading YAML file: ${filePath}`);
+        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
+        throw e;
+    }
+}
+
+/**
+ * Loads a JSON configuration from a file.
+ * @param {string} filePath The filename to load.
+ * @returns {ConfigData} The configuration object from the file.
+ * @throws {Error} If the file cannot be read.
+ * @private
+ */
+function loadJSONConfigFile(filePath) {
+    debug$2(`Loading JSON config file: ${filePath}`);
+
+    try {
+        return JSON.parse(stripComments__default["default"](readFile(filePath)));
+    } catch (e) {
+        debug$2(`Error reading JSON file: ${filePath}`);
+        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
+        e.messageTemplate = "failed-to-read-json";
+        e.messageData = {
+            path: filePath,
+            message: e.message
+        };
+        throw e;
+    }
+}
+
+/**
+ * Loads a legacy (.eslintrc) configuration from a file.
+ * @param {string} filePath The filename to load.
+ * @returns {ConfigData} The configuration object from the file.
+ * @throws {Error} If the file cannot be read.
+ * @private
+ */
+function loadLegacyConfigFile(filePath) {
+    debug$2(`Loading legacy config file: ${filePath}`);
+
+    // lazy load YAML to improve performance when not used
+    const yaml = require$1("js-yaml");
+
+    try {
+        return yaml.load(stripComments__default["default"](readFile(filePath))) || /* istanbul ignore next */ {};
+    } catch (e) {
+        debug$2("Error reading YAML file: %s\n%o", filePath, e);
+        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
+        throw e;
+    }
+}
+
+/**
+ * Loads a JavaScript configuration from a file.
+ * @param {string} filePath The filename to load.
+ * @returns {ConfigData} The configuration object from the file.
+ * @throws {Error} If the file cannot be read.
+ * @private
+ */
+function loadJSConfigFile(filePath) {
+    debug$2(`Loading JS config file: ${filePath}`);
+    try {
+        return importFresh__default["default"](filePath);
+    } catch (e) {
+        debug$2(`Error reading JavaScript file: ${filePath}`);
+        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
+        throw e;
+    }
+}
+
+/**
+ * Loads a configuration from a package.json file.
+ * @param {string} filePath The filename to load.
+ * @returns {ConfigData} The configuration object from the file.
+ * @throws {Error} If the file cannot be read.
+ * @private
+ */
+function loadPackageJSONConfigFile(filePath) {
+    debug$2(`Loading package.json config file: ${filePath}`);
+    try {
+        const packageData = loadJSONConfigFile(filePath);
+
+        if (!Object.hasOwnProperty.call(packageData, "eslintConfig")) {
+            throw Object.assign(
+                new Error("package.json file doesn't have 'eslintConfig' field."),
+                { code: "ESLINT_CONFIG_FIELD_NOT_FOUND" }
+            );
+        }
+
+        return packageData.eslintConfig;
+    } catch (e) {
+        debug$2(`Error reading package.json file: ${filePath}`);
+        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
+        throw e;
+    }
+}
+
+/**
+ * Loads a `.eslintignore` from a file.
+ * @param {string} filePath The filename to load.
+ * @returns {string[]} The ignore patterns from the file.
+ * @private
+ */
+function loadESLintIgnoreFile(filePath) {
+    debug$2(`Loading .eslintignore file: ${filePath}`);
+
+    try {
+        return readFile(filePath)
+            .split(/\r?\n/gu)
+            .filter(line => line.trim() !== "" && !line.startsWith("#"));
+    } catch (e) {
+        debug$2(`Error reading .eslintignore file: ${filePath}`);
+        e.message = `Cannot read .eslintignore file: ${filePath}\nError: ${e.message}`;
+        throw e;
+    }
+}
+
+/**
+ * Creates an error to notify about a missing config to extend from.
+ * @param {string} configName The name of the missing config.
+ * @param {string} importerName The name of the config that imported the missing config
+ * @param {string} messageTemplate The text template to source error strings from.
+ * @returns {Error} The error object to throw
+ * @private
+ */
+function configInvalidError(configName, importerName, messageTemplate) {
+    return Object.assign(
+        new Error(`Failed to load config "${configName}" to extend from.`),
+        {
+            messageTemplate,
+            messageData: { configName, importerName }
+        }
+    );
+}
+
+/**
+ * Loads a configuration file regardless of the source. Inspects the file path
+ * to determine the correctly way to load the config file.
+ * @param {string} filePath The path to the configuration.
+ * @returns {ConfigData|null} The configuration information.
+ * @private
+ */
+function loadConfigFile(filePath) {
+    switch (path__default["default"].extname(filePath)) {
+        case ".js":
+        case ".cjs":
+            return loadJSConfigFile(filePath);
+
+        case ".json":
+            if (path__default["default"].basename(filePath) === "package.json") {
+                return loadPackageJSONConfigFile(filePath);
+            }
+            return loadJSONConfigFile(filePath);
+
+        case ".yaml":
+        case ".yml":
+            return loadYAMLConfigFile(filePath);
+
+        default:
+            return loadLegacyConfigFile(filePath);
+    }
+}
+
+/**
+ * Write debug log.
+ * @param {string} request The requested module name.
+ * @param {string} relativeTo The file path to resolve the request relative to.
+ * @param {string} filePath The resolved file path.
+ * @returns {void}
+ */
+function writeDebugLogForLoading(request, relativeTo, filePath) {
+    /* istanbul ignore next */
+    if (debug$2.enabled) {
+        let nameAndVersion = null;
+
+        try {
+            const packageJsonPath = resolve(
+                `${request}/package.json`,
+                relativeTo
+            );
+            const { version = "unknown" } = require$1(packageJsonPath);
+
+            nameAndVersion = `${request}@${version}`;
+        } catch (error) {
+            debug$2("package.json was not found:", error.message);
+            nameAndVersion = request;
+        }
+
+        debug$2("Loaded: %s (%s)", nameAndVersion, filePath);
+    }
+}
+
+/**
+ * Create a new context with default values.
+ * @param {ConfigArrayFactoryInternalSlots} slots The internal slots.
+ * @param {"config" | "ignore" | "implicit-processor" | undefined} providedType The type of the current configuration. Default is `"config"`.
+ * @param {string | undefined} providedName The name of the current configuration. Default is the relative path from `cwd` to `filePath`.
+ * @param {string | undefined} providedFilePath The path to the current configuration. Default is empty string.
+ * @param {string | undefined} providedMatchBasePath The type of the current configuration. Default is the directory of `filePath` or `cwd`.
+ * @returns {ConfigArrayFactoryLoadingContext} The created context.
+ */
+function createContext(
+    { cwd, resolvePluginsRelativeTo },
+    providedType,
+    providedName,
+    providedFilePath,
+    providedMatchBasePath
+) {
+    const filePath = providedFilePath
+        ? path__default["default"].resolve(cwd, providedFilePath)
+        : "";
+    const matchBasePath =
+        (providedMatchBasePath && path__default["default"].resolve(cwd, providedMatchBasePath)) ||
+        (filePath && path__default["default"].dirname(filePath)) ||
+        cwd;
+    const name =
+        providedName ||
+        (filePath && path__default["default"].relative(cwd, filePath)) ||
+        "";
+    const pluginBasePath =
+        resolvePluginsRelativeTo ||
+        (filePath && path__default["default"].dirname(filePath)) ||
+        cwd;
+    const type = providedType || "config";
+
+    return { filePath, matchBasePath, name, pluginBasePath, type };
+}
+
+/**
+ * Normalize a given plugin.
+ * - Ensure the object to have four properties: configs, environments, processors, and rules.
+ * - Ensure the object to not have other properties.
+ * @param {Plugin} plugin The plugin to normalize.
+ * @returns {Plugin} The normalized plugin.
+ */
+function normalizePlugin(plugin) {
+
+    // first check the cache
+    let normalizedPlugin = normalizedPlugins.get(plugin);
+
+    if (normalizedPlugin) {
+        return normalizedPlugin;
+    }
+
+    normalizedPlugin = {
+        configs: plugin.configs || {},
+        environments: plugin.environments || {},
+        processors: plugin.processors || {},
+        rules: plugin.rules || {}
+    };
+
+    // save the reference for later
+    normalizedPlugins.set(plugin, normalizedPlugin);
+
+    return normalizedPlugin;
+}
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+/**
+ * The factory of `ConfigArray` objects.
+ */
+class ConfigArrayFactory {
+
+    /**
+     * Initialize this instance.
+     * @param {ConfigArrayFactoryOptions} [options] The map for additional plugins.
+     */
+    constructor({
+        additionalPluginPool = new Map(),
+        cwd = process.cwd(),
+        resolvePluginsRelativeTo,
+        builtInRules,
+        resolver = ModuleResolver,
+        eslintAllPath,
+        getEslintAllConfig,
+        eslintRecommendedPath,
+        getEslintRecommendedConfig
+    } = {}) {
+        internalSlotsMap$1.set(this, {
+            additionalPluginPool,
+            cwd,
+            resolvePluginsRelativeTo:
+                resolvePluginsRelativeTo &&
+                path__default["default"].resolve(cwd, resolvePluginsRelativeTo),
+            builtInRules,
+            resolver,
+            eslintAllPath,
+            getEslintAllConfig,
+            eslintRecommendedPath,
+            getEslintRecommendedConfig
+        });
+    }
+
+    /**
+     * Create `ConfigArray` instance from a config data.
+     * @param {ConfigData|null} configData The config data to create.
+     * @param {Object} [options] The options.
+     * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
+     * @param {string} [options.filePath] The path to this config data.
+     * @param {string} [options.name] The config name.
+     * @returns {ConfigArray} Loaded config.
+     */
+    create(configData, { basePath, filePath, name } = {}) {
+        if (!configData) {
+            return new ConfigArray();
+        }
+
+        const slots = internalSlotsMap$1.get(this);
+        const ctx = createContext(slots, "config", name, filePath, basePath);
+        const elements = this._normalizeConfigData(configData, ctx);
+
+        return new ConfigArray(...elements);
+    }
+
+    /**
+     * Load a config file.
+     * @param {string} filePath The path to a config file.
+     * @param {Object} [options] The options.
+     * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
+     * @param {string} [options.name] The config name.
+     * @returns {ConfigArray} Loaded config.
+     */
+    loadFile(filePath, { basePath, name } = {}) {
+        const slots = internalSlotsMap$1.get(this);
+        const ctx = createContext(slots, "config", name, filePath, basePath);
+
+        return new ConfigArray(...this._loadConfigData(ctx));
+    }
+
+    /**
+     * Load the config file on a given directory if exists.
+     * @param {string} directoryPath The path to a directory.
+     * @param {Object} [options] The options.
+     * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
+     * @param {string} [options.name] The config name.
+     * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.
+     */
+    loadInDirectory(directoryPath, { basePath, name } = {}) {
+        const slots = internalSlotsMap$1.get(this);
+
+        for (const filename of configFilenames) {
+            const ctx = createContext(
+                slots,
+                "config",
+                name,
+                path__default["default"].join(directoryPath, filename),
+                basePath
+            );
+
+            if (fs__default["default"].existsSync(ctx.filePath) && fs__default["default"].statSync(ctx.filePath).isFile()) {
+                let configData;
+
+                try {
+                    configData = loadConfigFile(ctx.filePath);
+                } catch (error) {
+                    if (!error || error.code !== "ESLINT_CONFIG_FIELD_NOT_FOUND") {
+                        throw error;
+                    }
+                }
+
+                if (configData) {
+                    debug$2(`Config file found: ${ctx.filePath}`);
+                    return new ConfigArray(
+                        ...this._normalizeConfigData(configData, ctx)
+                    );
+                }
+            }
+        }
+
+        debug$2(`Config file not found on ${directoryPath}`);
+        return new ConfigArray();
+    }
+
+    /**
+     * Check if a config file on a given directory exists or not.
+     * @param {string} directoryPath The path to a directory.
+     * @returns {string | null} The path to the found config file. If not found then null.
+     */
+    static getPathToConfigFileInDirectory(directoryPath) {
+        for (const filename of configFilenames) {
+            const filePath = path__default["default"].join(directoryPath, filename);
+
+            if (fs__default["default"].existsSync(filePath)) {
+                if (filename === "package.json") {
+                    try {
+                        loadPackageJSONConfigFile(filePath);
+                        return filePath;
+                    } catch { /* ignore */ }
+                } else {
+                    return filePath;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Load `.eslintignore` file.
+     * @param {string} filePath The path to a `.eslintignore` file to load.
+     * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.
+     */
+    loadESLintIgnore(filePath) {
+        const slots = internalSlotsMap$1.get(this);
+        const ctx = createContext(
+            slots,
+            "ignore",
+            void 0,
+            filePath,
+            slots.cwd
+        );
+        const ignorePatterns = loadESLintIgnoreFile(ctx.filePath);
+
+        return new ConfigArray(
+            ...this._normalizeESLintIgnoreData(ignorePatterns, ctx)
+        );
+    }
+
+    /**
+     * Load `.eslintignore` file in the current working directory.
+     * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.
+     */
+    loadDefaultESLintIgnore() {
+        const slots = internalSlotsMap$1.get(this);
+        const eslintIgnorePath = path__default["default"].resolve(slots.cwd, ".eslintignore");
+        const packageJsonPath = path__default["default"].resolve(slots.cwd, "package.json");
+
+        if (fs__default["default"].existsSync(eslintIgnorePath)) {
+            return this.loadESLintIgnore(eslintIgnorePath);
+        }
+        if (fs__default["default"].existsSync(packageJsonPath)) {
+            const data = loadJSONConfigFile(packageJsonPath);
+
+            if (Object.hasOwnProperty.call(data, "eslintIgnore")) {
+                if (!Array.isArray(data.eslintIgnore)) {
+                    throw new Error("Package.json eslintIgnore property requires an array of paths");
+                }
+                const ctx = createContext(
+                    slots,
+                    "ignore",
+                    "eslintIgnore in package.json",
+                    packageJsonPath,
+                    slots.cwd
+                );
+
+                return new ConfigArray(
+                    ...this._normalizeESLintIgnoreData(data.eslintIgnore, ctx)
+                );
+            }
+        }
+
+        return new ConfigArray();
+    }
+
+    /**
+     * Load a given config file.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} Loaded config.
+     * @private
+     */
+    _loadConfigData(ctx) {
+        return this._normalizeConfigData(loadConfigFile(ctx.filePath), ctx);
+    }
+
+    /**
+     * Normalize a given `.eslintignore` data to config array elements.
+     * @param {string[]} ignorePatterns The patterns to ignore files.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    *_normalizeESLintIgnoreData(ignorePatterns, ctx) {
+        const elements = this._normalizeObjectConfigData(
+            { ignorePatterns },
+            ctx
+        );
+
+        // Set `ignorePattern.loose` flag for backward compatibility.
+        for (const element of elements) {
+            if (element.ignorePattern) {
+                element.ignorePattern.loose = true;
+            }
+            yield element;
+        }
+    }
+
+    /**
+     * Normalize a given config to an array.
+     * @param {ConfigData} configData The config data to normalize.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    _normalizeConfigData(configData, ctx) {
+        const validator = new ConfigValidator();
+
+        validator.validateConfigSchema(configData, ctx.name || ctx.filePath);
+        return this._normalizeObjectConfigData(configData, ctx);
+    }
+
+    /**
+     * Normalize a given config to an array.
+     * @param {ConfigData|OverrideConfigData} configData The config data to normalize.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    *_normalizeObjectConfigData(configData, ctx) {
+        const { files, excludedFiles, ...configBody } = configData;
+        const criteria = OverrideTester.create(
+            files,
+            excludedFiles,
+            ctx.matchBasePath
+        );
+        const elements = this._normalizeObjectConfigDataBody(configBody, ctx);
+
+        // Apply the criteria to every element.
+        for (const element of elements) {
+
+            /*
+             * Merge the criteria.
+             * This is for the `overrides` entries that came from the
+             * configurations of `overrides[].extends`.
+             */
+            element.criteria = OverrideTester.and(criteria, element.criteria);
+
+            /*
+             * Remove `root` property to ignore `root` settings which came from
+             * `extends` in `overrides`.
+             */
+            if (element.criteria) {
+                element.root = void 0;
+            }
+
+            yield element;
+        }
+    }
+
+    /**
+     * Normalize a given config to an array.
+     * @param {ConfigData} configData The config data to normalize.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    *_normalizeObjectConfigDataBody(
+        {
+            env,
+            extends: extend,
+            globals,
+            ignorePatterns,
+            noInlineConfig,
+            parser: parserName,
+            parserOptions,
+            plugins: pluginList,
+            processor,
+            reportUnusedDisableDirectives,
+            root,
+            rules,
+            settings,
+            overrides: overrideList = []
+        },
+        ctx
+    ) {
+        const extendList = Array.isArray(extend) ? extend : [extend];
+        const ignorePattern = ignorePatterns && new IgnorePattern(
+            Array.isArray(ignorePatterns) ? ignorePatterns : [ignorePatterns],
+            ctx.matchBasePath
+        );
+
+        // Flatten `extends`.
+        for (const extendName of extendList.filter(Boolean)) {
+            yield* this._loadExtends(extendName, ctx);
+        }
+
+        // Load parser & plugins.
+        const parser = parserName && this._loadParser(parserName, ctx);
+        const plugins = pluginList && this._loadPlugins(pluginList, ctx);
+
+        // Yield pseudo config data for file extension processors.
+        if (plugins) {
+            yield* this._takeFileExtensionProcessors(plugins, ctx);
+        }
+
+        // Yield the config data except `extends` and `overrides`.
+        yield {
+
+            // Debug information.
+            type: ctx.type,
+            name: ctx.name,
+            filePath: ctx.filePath,
+
+            // Config data.
+            criteria: null,
+            env,
+            globals,
+            ignorePattern,
+            noInlineConfig,
+            parser,
+            parserOptions,
+            plugins,
+            processor,
+            reportUnusedDisableDirectives,
+            root,
+            rules,
+            settings
+        };
+
+        // Flatten `overries`.
+        for (let i = 0; i < overrideList.length; ++i) {
+            yield* this._normalizeObjectConfigData(
+                overrideList[i],
+                { ...ctx, name: `${ctx.name}#overrides[${i}]` }
+            );
+        }
+    }
+
+    /**
+     * Load configs of an element in `extends`.
+     * @param {string} extendName The name of a base config.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    _loadExtends(extendName, ctx) {
+        debug$2("Loading {extends:%j} relative to %s", extendName, ctx.filePath);
+        try {
+            if (extendName.startsWith("eslint:")) {
+                return this._loadExtendedBuiltInConfig(extendName, ctx);
+            }
+            if (extendName.startsWith("plugin:")) {
+                return this._loadExtendedPluginConfig(extendName, ctx);
+            }
+            return this._loadExtendedShareableConfig(extendName, ctx);
+        } catch (error) {
+            error.message += `\nReferenced from: ${ctx.filePath || ctx.name}`;
+            throw error;
+        }
+    }
+
+    /**
+     * Load configs of an element in `extends`.
+     * @param {string} extendName The name of a base config.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    _loadExtendedBuiltInConfig(extendName, ctx) {
+        const {
+            eslintAllPath,
+            getEslintAllConfig,
+            eslintRecommendedPath,
+            getEslintRecommendedConfig
+        } = internalSlotsMap$1.get(this);
+
+        if (extendName === "eslint:recommended") {
+            const name = `${ctx.name} » ${extendName}`;
+
+            if (getEslintRecommendedConfig) {
+                if (typeof getEslintRecommendedConfig !== "function") {
+                    throw new Error(`getEslintRecommendedConfig must be a function instead of '${getEslintRecommendedConfig}'`);
+                }
+                return this._normalizeConfigData(getEslintRecommendedConfig(), { ...ctx, name, filePath: "" });
+            }
+            return this._loadConfigData({
+                ...ctx,
+                name,
+                filePath: eslintRecommendedPath
+            });
+        }
+        if (extendName === "eslint:all") {
+            const name = `${ctx.name} » ${extendName}`;
+
+            if (getEslintAllConfig) {
+                if (typeof getEslintAllConfig !== "function") {
+                    throw new Error(`getEslintAllConfig must be a function instead of '${getEslintAllConfig}'`);
+                }
+                return this._normalizeConfigData(getEslintAllConfig(), { ...ctx, name, filePath: "" });
+            }
+            return this._loadConfigData({
+                ...ctx,
+                name,
+                filePath: eslintAllPath
+            });
+        }
+
+        throw configInvalidError(extendName, ctx.name, "extend-config-missing");
+    }
+
+    /**
+     * Load configs of an element in `extends`.
+     * @param {string} extendName The name of a base config.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    _loadExtendedPluginConfig(extendName, ctx) {
+        const slashIndex = extendName.lastIndexOf("/");
+
+        if (slashIndex === -1) {
+            throw configInvalidError(extendName, ctx.filePath, "plugin-invalid");
+        }
+
+        const pluginName = extendName.slice("plugin:".length, slashIndex);
+        const configName = extendName.slice(slashIndex + 1);
+
+        if (isFilePath(pluginName)) {
+            throw new Error("'extends' cannot use a file path for plugins.");
+        }
+
+        const plugin = this._loadPlugin(pluginName, ctx);
+        const configData =
+            plugin.definition &&
+            plugin.definition.configs[configName];
+
+        if (configData) {
+            return this._normalizeConfigData(configData, {
+                ...ctx,
+                filePath: plugin.filePath || ctx.filePath,
+                name: `${ctx.name} » plugin:${plugin.id}/${configName}`
+            });
+        }
+
+        throw plugin.error || configInvalidError(extendName, ctx.filePath, "extend-config-missing");
+    }
+
+    /**
+     * Load configs of an element in `extends`.
+     * @param {string} extendName The name of a base config.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
+     * @private
+     */
+    _loadExtendedShareableConfig(extendName, ctx) {
+        const { cwd, resolver } = internalSlotsMap$1.get(this);
+        const relativeTo = ctx.filePath || path__default["default"].join(cwd, "__placeholder__.js");
+        let request;
+
+        if (isFilePath(extendName)) {
+            request = extendName;
+        } else if (extendName.startsWith(".")) {
+            request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior.
+        } else {
+            request = normalizePackageName(
+                extendName,
+                "eslint-config"
+            );
+        }
+
+        let filePath;
+
+        try {
+            filePath = resolver.resolve(request, relativeTo);
+        } catch (error) {
+            /* istanbul ignore else */
+            if (error && error.code === "MODULE_NOT_FOUND") {
+                throw configInvalidError(extendName, ctx.filePath, "extend-config-missing");
+            }
+            throw error;
+        }
+
+        writeDebugLogForLoading(request, relativeTo, filePath);
+        return this._loadConfigData({
+            ...ctx,
+            filePath,
+            name: `${ctx.name} » ${request}`
+        });
+    }
+
+    /**
+     * Load given plugins.
+     * @param {string[]} names The plugin names to load.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {Record<string,DependentPlugin>} The loaded parser.
+     * @private
+     */
+    _loadPlugins(names, ctx) {
+        return names.reduce((map, name) => {
+            if (isFilePath(name)) {
+                throw new Error("Plugins array cannot includes file paths.");
+            }
+            const plugin = this._loadPlugin(name, ctx);
+
+            map[plugin.id] = plugin;
+
+            return map;
+        }, {});
+    }
+
+    /**
+     * Load a given parser.
+     * @param {string} nameOrPath The package name or the path to a parser file.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {DependentParser} The loaded parser.
+     */
+    _loadParser(nameOrPath, ctx) {
+        debug$2("Loading parser %j from %s", nameOrPath, ctx.filePath);
+
+        const { cwd, resolver } = internalSlotsMap$1.get(this);
+        const relativeTo = ctx.filePath || path__default["default"].join(cwd, "__placeholder__.js");
+
+        try {
+            const filePath = resolver.resolve(nameOrPath, relativeTo);
+
+            writeDebugLogForLoading(nameOrPath, relativeTo, filePath);
+
+            return new ConfigDependency({
+                definition: require$1(filePath),
+                filePath,
+                id: nameOrPath,
+                importerName: ctx.name,
+                importerPath: ctx.filePath
+            });
+        } catch (error) {
+
+            // If the parser name is "espree", load the espree of ESLint.
+            if (nameOrPath === "espree") {
+                debug$2("Fallback espree.");
+                return new ConfigDependency({
+                    definition: require$1("espree"),
+                    filePath: require$1.resolve("espree"),
+                    id: nameOrPath,
+                    importerName: ctx.name,
+                    importerPath: ctx.filePath
+                });
+            }
+
+            debug$2("Failed to load parser '%s' declared in '%s'.", nameOrPath, ctx.name);
+            error.message = `Failed to load parser '${nameOrPath}' declared in '${ctx.name}': ${error.message}`;
+
+            return new ConfigDependency({
+                error,
+                id: nameOrPath,
+                importerName: ctx.name,
+                importerPath: ctx.filePath
+            });
+        }
+    }
+
+    /**
+     * Load a given plugin.
+     * @param {string} name The plugin name to load.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {DependentPlugin} The loaded plugin.
+     * @private
+     */
+    _loadPlugin(name, ctx) {
+        debug$2("Loading plugin %j from %s", name, ctx.filePath);
+
+        const { additionalPluginPool, resolver } = internalSlotsMap$1.get(this);
+        const request = normalizePackageName(name, "eslint-plugin");
+        const id = getShorthandName(request, "eslint-plugin");
+        const relativeTo = path__default["default"].join(ctx.pluginBasePath, "__placeholder__.js");
+
+        if (name.match(/\s+/u)) {
+            const error = Object.assign(
+                new Error(`Whitespace found in plugin name '${name}'`),
+                {
+                    messageTemplate: "whitespace-found",
+                    messageData: { pluginName: request }
+                }
+            );
+
+            return new ConfigDependency({
+                error,
+                id,
+                importerName: ctx.name,
+                importerPath: ctx.filePath
+            });
+        }
+
+        // Check for additional pool.
+        const plugin =
+            additionalPluginPool.get(request) ||
+            additionalPluginPool.get(id);
+
+        if (plugin) {
+            return new ConfigDependency({
+                definition: normalizePlugin(plugin),
+                filePath: "", // It's unknown where the plugin came from.
+                id,
+                importerName: ctx.name,
+                importerPath: ctx.filePath
+            });
+        }
+
+        let filePath;
+        let error;
+
+        try {
+            filePath = resolver.resolve(request, relativeTo);
+        } catch (resolveError) {
+            error = resolveError;
+            /* istanbul ignore else */
+            if (error && error.code === "MODULE_NOT_FOUND") {
+                error.messageTemplate = "plugin-missing";
+                error.messageData = {
+                    pluginName: request,
+                    resolvePluginsRelativeTo: ctx.pluginBasePath,
+                    importerName: ctx.name
+                };
+            }
+        }
+
+        if (filePath) {
+            try {
+                writeDebugLogForLoading(request, relativeTo, filePath);
+
+                const startTime = Date.now();
+                const pluginDefinition = require$1(filePath);
+
+                debug$2(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`);
+
+                return new ConfigDependency({
+                    definition: normalizePlugin(pluginDefinition),
+                    filePath,
+                    id,
+                    importerName: ctx.name,
+                    importerPath: ctx.filePath
+                });
+            } catch (loadError) {
+                error = loadError;
+            }
+        }
+
+        debug$2("Failed to load plugin '%s' declared in '%s'.", name, ctx.name);
+        error.message = `Failed to load plugin '${name}' declared in '${ctx.name}': ${error.message}`;
+        return new ConfigDependency({
+            error,
+            id,
+            importerName: ctx.name,
+            importerPath: ctx.filePath
+        });
+    }
+
+    /**
+     * Take file expression processors as config array elements.
+     * @param {Record<string,DependentPlugin>} plugins The plugin definitions.
+     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
+     * @returns {IterableIterator<ConfigArrayElement>} The config array elements of file expression processors.
+     * @private
+     */
+    *_takeFileExtensionProcessors(plugins, ctx) {
+        for (const pluginId of Object.keys(plugins)) {
+            const processors =
+                plugins[pluginId] &&
+                plugins[pluginId].definition &&
+                plugins[pluginId].definition.processors;
+
+            if (!processors) {
+                continue;
+            }
+
+            for (const processorId of Object.keys(processors)) {
+                if (processorId.startsWith(".")) {
+                    yield* this._normalizeObjectConfigData(
+                        {
+                            files: [`*${processorId}`],
+                            processor: `${pluginId}/${processorId}`
+                        },
+                        {
+                            ...ctx,
+                            type: "implicit-processor",
+                            name: `${ctx.name}#processors["${pluginId}/${processorId}"]`
+                        }
+                    );
+                }
+            }
+        }
+    }
+}
+
+/**
+ * @fileoverview `CascadingConfigArrayFactory` class.
+ *
+ * `CascadingConfigArrayFactory` class has a responsibility:
+ *
+ * 1. Handles cascading of config files.
+ *
+ * It provides two methods:
+ *
+ * - `getConfigArrayForFile(filePath)`
+ *     Get the corresponded configuration of a given file. This method doesn't
+ *     throw even if the given file didn't exist.
+ * - `clearCache()`
+ *     Clear the internal cache. You have to call this method when
+ *     `additionalPluginPool` was updated if `baseConfig` or `cliConfig` depends
+ *     on the additional plugins. (`CLIEngine#addPlugin()` method calls this.)
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
+ */
+
+const debug$1 = debugOrig__default["default"]("eslintrc:cascading-config-array-factory");
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+// Define types for VSCode IntelliSense.
+/** @typedef {import("./shared/types").ConfigData} ConfigData */
+/** @typedef {import("./shared/types").Parser} Parser */
+/** @typedef {import("./shared/types").Plugin} Plugin */
+/** @typedef {import("./shared/types").Rule} Rule */
+/** @typedef {ReturnType<ConfigArrayFactory["create"]>} ConfigArray */
+
+/**
+ * @typedef {Object} CascadingConfigArrayFactoryOptions
+ * @property {Map<string,Plugin>} [additionalPluginPool] The map for additional plugins.
+ * @property {ConfigData} [baseConfig] The config by `baseConfig` option.
+ * @property {ConfigData} [cliConfig] The config by CLI options (`--env`, `--global`, `--ignore-pattern`, `--parser`, `--parser-options`, `--plugin`, and `--rule`). CLI options overwrite the setting in config files.
+ * @property {string} [cwd] The base directory to start lookup.
+ * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`.
+ * @property {string[]} [rulePaths] The value of `--rulesdir` option.
+ * @property {string} [specificConfigPath] The value of `--config` option.
+ * @property {boolean} [useEslintrc] if `false` then it doesn't load config files.
+ * @property {Function} loadRules The function to use to load rules.
+ * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
+ * @property {Object} [resolver=ModuleResolver] The module resolver object.
+ * @property {string} eslintAllPath The path to the definitions for eslint:all.
+ * @property {Function} getEslintAllConfig Returns the config data for eslint:all.
+ * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
+ * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.
+ */
+
+/**
+ * @typedef {Object} CascadingConfigArrayFactoryInternalSlots
+ * @property {ConfigArray} baseConfigArray The config array of `baseConfig` option.
+ * @property {ConfigData} baseConfigData The config data of `baseConfig` option. This is used to reset `baseConfigArray`.
+ * @property {ConfigArray} cliConfigArray The config array of CLI options.
+ * @property {ConfigData} cliConfigData The config data of CLI options. This is used to reset `cliConfigArray`.
+ * @property {ConfigArrayFactory} configArrayFactory The factory for config arrays.
+ * @property {Map<string, ConfigArray>} configCache The cache from directory paths to config arrays.
+ * @property {string} cwd The base directory to start lookup.
+ * @property {WeakMap<ConfigArray, ConfigArray>} finalizeCache The cache from config arrays to finalized config arrays.
+ * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`.
+ * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`.
+ * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`.
+ * @property {boolean} useEslintrc if `false` then it doesn't load config files.
+ * @property {Function} loadRules The function to use to load rules.
+ * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
+ * @property {Object} [resolver=ModuleResolver] The module resolver object.
+ * @property {string} eslintAllPath The path to the definitions for eslint:all.
+ * @property {Function} getEslintAllConfig Returns the config data for eslint:all.
+ * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
+ * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.
+ */
+
+/** @type {WeakMap<CascadingConfigArrayFactory, CascadingConfigArrayFactoryInternalSlots>} */
+const internalSlotsMap = new WeakMap();
+
+/**
+ * Create the config array from `baseConfig` and `rulePaths`.
+ * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots.
+ * @returns {ConfigArray} The config array of the base configs.
+ */
+function createBaseConfigArray({
+    configArrayFactory,
+    baseConfigData,
+    rulePaths,
+    cwd,
+    loadRules
+}) {
+    const baseConfigArray = configArrayFactory.create(
+        baseConfigData,
+        { name: "BaseConfig" }
+    );
+
+    /*
+     * Create the config array element for the default ignore patterns.
+     * This element has `ignorePattern` property that ignores the default
+     * patterns in the current working directory.
+     */
+    baseConfigArray.unshift(configArrayFactory.create(
+        { ignorePatterns: IgnorePattern.DefaultPatterns },
+        { name: "DefaultIgnorePattern" }
+    )[0]);
+
+    /*
+     * Load rules `--rulesdir` option as a pseudo plugin.
+     * Use a pseudo plugin to define rules of `--rulesdir`, so we can validate
+     * the rule's options with only information in the config array.
+     */
+    if (rulePaths && rulePaths.length > 0) {
+        baseConfigArray.push({
+            type: "config",
+            name: "--rulesdir",
+            filePath: "",
+            plugins: {
+                "": new ConfigDependency({
+                    definition: {
+                        rules: rulePaths.reduce(
+                            (map, rulesPath) => Object.assign(
+                                map,
+                                loadRules(rulesPath, cwd)
+                            ),
+                            {}
+                        )
+                    },
+                    filePath: "",
+                    id: "",
+                    importerName: "--rulesdir",
+                    importerPath: ""
+                })
+            }
+        });
+    }
+
+    return baseConfigArray;
+}
+
+/**
+ * Create the config array from CLI options.
+ * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots.
+ * @returns {ConfigArray} The config array of the base configs.
+ */
+function createCLIConfigArray({
+    cliConfigData,
+    configArrayFactory,
+    cwd,
+    ignorePath,
+    specificConfigPath
+}) {
+    const cliConfigArray = configArrayFactory.create(
+        cliConfigData,
+        { name: "CLIOptions" }
+    );
+
+    cliConfigArray.unshift(
+        ...(ignorePath
+            ? configArrayFactory.loadESLintIgnore(ignorePath)
+            : configArrayFactory.loadDefaultESLintIgnore())
+    );
+
+    if (specificConfigPath) {
+        cliConfigArray.unshift(
+            ...configArrayFactory.loadFile(
+                specificConfigPath,
+                { name: "--config", basePath: cwd }
+            )
+        );
+    }
+
+    return cliConfigArray;
+}
+
+/**
+ * The error type when there are files matched by a glob, but all of them have been ignored.
+ */
+class ConfigurationNotFoundError extends Error {
+
+    // eslint-disable-next-line jsdoc/require-description
+    /**
+     * @param {string} directoryPath The directory path.
+     */
+    constructor(directoryPath) {
+        super(`No ESLint configuration found in ${directoryPath}.`);
+        this.messageTemplate = "no-config-found";
+        this.messageData = { directoryPath };
+    }
+}
+
+/**
+ * This class provides the functionality that enumerates every file which is
+ * matched by given glob patterns and that configuration.
+ */
+class CascadingConfigArrayFactory {
+
+    /**
+     * Initialize this enumerator.
+     * @param {CascadingConfigArrayFactoryOptions} options The options.
+     */
+    constructor({
+        additionalPluginPool = new Map(),
+        baseConfig: baseConfigData = null,
+        cliConfig: cliConfigData = null,
+        cwd = process.cwd(),
+        ignorePath,
+        resolvePluginsRelativeTo,
+        rulePaths = [],
+        specificConfigPath = null,
+        useEslintrc = true,
+        builtInRules = new Map(),
+        loadRules,
+        resolver,
+        eslintRecommendedPath,
+        getEslintRecommendedConfig,
+        eslintAllPath,
+        getEslintAllConfig
+    } = {}) {
+        const configArrayFactory = new ConfigArrayFactory({
+            additionalPluginPool,
+            cwd,
+            resolvePluginsRelativeTo,
+            builtInRules,
+            resolver,
+            eslintRecommendedPath,
+            getEslintRecommendedConfig,
+            eslintAllPath,
+            getEslintAllConfig
+        });
+
+        internalSlotsMap.set(this, {
+            baseConfigArray: createBaseConfigArray({
+                baseConfigData,
+                configArrayFactory,
+                cwd,
+                rulePaths,
+                loadRules,
+                resolver
+            }),
+            baseConfigData,
+            cliConfigArray: createCLIConfigArray({
+                cliConfigData,
+                configArrayFactory,
+                cwd,
+                ignorePath,
+                specificConfigPath
+            }),
+            cliConfigData,
+            configArrayFactory,
+            configCache: new Map(),
+            cwd,
+            finalizeCache: new WeakMap(),
+            ignorePath,
+            rulePaths,
+            specificConfigPath,
+            useEslintrc,
+            builtInRules,
+            loadRules
+        });
+    }
+
+    /**
+     * The path to the current working directory.
+     * This is used by tests.
+     * @type {string}
+     */
+    get cwd() {
+        const { cwd } = internalSlotsMap.get(this);
+
+        return cwd;
+    }
+
+    /**
+     * Get the config array of a given file.
+     * If `filePath` was not given, it returns the config which contains only
+     * `baseConfigData` and `cliConfigData`.
+     * @param {string} [filePath] The file path to a file.
+     * @param {Object} [options] The options.
+     * @param {boolean} [options.ignoreNotFoundError] If `true` then it doesn't throw `ConfigurationNotFoundError`.
+     * @returns {ConfigArray} The config array of the file.
+     */
+    getConfigArrayForFile(filePath, { ignoreNotFoundError = false } = {}) {
+        const {
+            baseConfigArray,
+            cliConfigArray,
+            cwd
+        } = internalSlotsMap.get(this);
+
+        if (!filePath) {
+            return new ConfigArray(...baseConfigArray, ...cliConfigArray);
+        }
+
+        const directoryPath = path__default["default"].dirname(path__default["default"].resolve(cwd, filePath));
+
+        debug$1(`Load config files for ${directoryPath}.`);
+
+        return this._finalizeConfigArray(
+            this._loadConfigInAncestors(directoryPath),
+            directoryPath,
+            ignoreNotFoundError
+        );
+    }
+
+    /**
+     * Set the config data to override all configs.
+     * Require to call `clearCache()` method after this method is called.
+     * @param {ConfigData} configData The config data to override all configs.
+     * @returns {void}
+     */
+    setOverrideConfig(configData) {
+        const slots = internalSlotsMap.get(this);
+
+        slots.cliConfigData = configData;
+    }
+
+    /**
+     * Clear config cache.
+     * @returns {void}
+     */
+    clearCache() {
+        const slots = internalSlotsMap.get(this);
+
+        slots.baseConfigArray = createBaseConfigArray(slots);
+        slots.cliConfigArray = createCLIConfigArray(slots);
+        slots.configCache.clear();
+    }
+
+    /**
+     * Load and normalize config files from the ancestor directories.
+     * @param {string} directoryPath The path to a leaf directory.
+     * @param {boolean} configsExistInSubdirs `true` if configurations exist in subdirectories.
+     * @returns {ConfigArray} The loaded config.
+     * @private
+     */
+    _loadConfigInAncestors(directoryPath, configsExistInSubdirs = false) {
+        const {
+            baseConfigArray,
+            configArrayFactory,
+            configCache,
+            cwd,
+            useEslintrc
+        } = internalSlotsMap.get(this);
+
+        if (!useEslintrc) {
+            return baseConfigArray;
+        }
+
+        let configArray = configCache.get(directoryPath);
+
+        // Hit cache.
+        if (configArray) {
+            debug$1(`Cache hit: ${directoryPath}.`);
+            return configArray;
+        }
+        debug$1(`No cache found: ${directoryPath}.`);
+
+        const homePath = os__default["default"].homedir();
+
+        // Consider this is root.
+        if (directoryPath === homePath && cwd !== homePath) {
+            debug$1("Stop traversing because of considered root.");
+            if (configsExistInSubdirs) {
+                const filePath = ConfigArrayFactory.getPathToConfigFileInDirectory(directoryPath);
+
+                if (filePath) {
+                    emitDeprecationWarning(
+                        filePath,
+                        "ESLINT_PERSONAL_CONFIG_SUPPRESS"
+                    );
+                }
+            }
+            return this._cacheConfig(directoryPath, baseConfigArray);
+        }
+
+        // Load the config on this directory.
+        try {
+            configArray = configArrayFactory.loadInDirectory(directoryPath);
+        } catch (error) {
+            /* istanbul ignore next */
+            if (error.code === "EACCES") {
+                debug$1("Stop traversing because of 'EACCES' error.");
+                return this._cacheConfig(directoryPath, baseConfigArray);
+            }
+            throw error;
+        }
+
+        if (configArray.length > 0 && configArray.isRoot()) {
+            debug$1("Stop traversing because of 'root:true'.");
+            configArray.unshift(...baseConfigArray);
+            return this._cacheConfig(directoryPath, configArray);
+        }
+
+        // Load from the ancestors and merge it.
+        const parentPath = path__default["default"].dirname(directoryPath);
+        const parentConfigArray = parentPath && parentPath !== directoryPath
+            ? this._loadConfigInAncestors(
+                parentPath,
+                configsExistInSubdirs || configArray.length > 0
+            )
+            : baseConfigArray;
+
+        if (configArray.length > 0) {
+            configArray.unshift(...parentConfigArray);
+        } else {
+            configArray = parentConfigArray;
+        }
+
+        // Cache and return.
+        return this._cacheConfig(directoryPath, configArray);
+    }
+
+    /**
+     * Freeze and cache a given config.
+     * @param {string} directoryPath The path to a directory as a cache key.
+     * @param {ConfigArray} configArray The config array as a cache value.
+     * @returns {ConfigArray} The `configArray` (frozen).
+     */
+    _cacheConfig(directoryPath, configArray) {
+        const { configCache } = internalSlotsMap.get(this);
+
+        Object.freeze(configArray);
+        configCache.set(directoryPath, configArray);
+
+        return configArray;
+    }
+
+    /**
+     * Finalize a given config array.
+     * Concatenate `--config` and other CLI options.
+     * @param {ConfigArray} configArray The parent config array.
+     * @param {string} directoryPath The path to the leaf directory to find config files.
+     * @param {boolean} ignoreNotFoundError If `true` then it doesn't throw `ConfigurationNotFoundError`.
+     * @returns {ConfigArray} The loaded config.
+     * @private
+     */
+    _finalizeConfigArray(configArray, directoryPath, ignoreNotFoundError) {
+        const {
+            cliConfigArray,
+            configArrayFactory,
+            finalizeCache,
+            useEslintrc,
+            builtInRules
+        } = internalSlotsMap.get(this);
+
+        let finalConfigArray = finalizeCache.get(configArray);
+
+        if (!finalConfigArray) {
+            finalConfigArray = configArray;
+
+            // Load the personal config if there are no regular config files.
+            if (
+                useEslintrc &&
+                configArray.every(c => !c.filePath) &&
+                cliConfigArray.every(c => !c.filePath) // `--config` option can be a file.
+            ) {
+                const homePath = os__default["default"].homedir();
+
+                debug$1("Loading the config file of the home directory:", homePath);
+
+                const personalConfigArray = configArrayFactory.loadInDirectory(
+                    homePath,
+                    { name: "PersonalConfig" }
+                );
+
+                if (
+                    personalConfigArray.length > 0 &&
+                    !directoryPath.startsWith(homePath)
+                ) {
+                    const lastElement =
+                        personalConfigArray[personalConfigArray.length - 1];
+
+                    emitDeprecationWarning(
+                        lastElement.filePath,
+                        "ESLINT_PERSONAL_CONFIG_LOAD"
+                    );
+                }
+
+                finalConfigArray = finalConfigArray.concat(personalConfigArray);
+            }
+
+            // Apply CLI options.
+            if (cliConfigArray.length > 0) {
+                finalConfigArray = finalConfigArray.concat(cliConfigArray);
+            }
+
+            // Validate rule settings and environments.
+            const validator = new ConfigValidator({
+                builtInRules
+            });
+
+            validator.validateConfigArray(finalConfigArray);
+
+            // Cache it.
+            Object.freeze(finalConfigArray);
+            finalizeCache.set(configArray, finalConfigArray);
+
+            debug$1(
+                "Configuration was determined: %o on %s",
+                finalConfigArray,
+                directoryPath
+            );
+        }
+
+        // At least one element (the default ignore patterns) exists.
+        if (!ignoreNotFoundError && useEslintrc && finalConfigArray.length <= 1) {
+            throw new ConfigurationNotFoundError(directoryPath);
+        }
+
+        return finalConfigArray;
+    }
+}
+
+/**
+ * @fileoverview Compatibility class for flat config.
+ * @author Nicholas C. Zakas
+ */
+
+//-----------------------------------------------------------------------------
+// Helpers
+//-----------------------------------------------------------------------------
+
+/** @typedef {import("../../shared/types").Environment} Environment */
+/** @typedef {import("../../shared/types").Processor} Processor */
+
+const debug = debugOrig__default["default"]("eslintrc:flat-compat");
+const cafactory = Symbol("cafactory");
+
+/**
+ * Translates an ESLintRC-style config object into a flag-config-style config
+ * object.
+ * @param {Object} eslintrcConfig An ESLintRC-style config object.
+ * @param {Object} options Options to help translate the config.
+ * @param {string} options.resolveConfigRelativeTo To the directory to resolve
+ *      configs from.
+ * @param {string} options.resolvePluginsRelativeTo The directory to resolve
+ *      plugins from.
+ * @param {ReadOnlyMap<string,Environment>} options.pluginEnvironments A map of plugin environment
+ *      names to objects.
+ * @param {ReadOnlyMap<string,Processor>} options.pluginProcessors A map of plugin processor
+ *      names to objects.
+ * @returns {Object} A flag-config-style config object.
+ */
+function translateESLintRC(eslintrcConfig, {
+    resolveConfigRelativeTo,
+    resolvePluginsRelativeTo,
+    pluginEnvironments,
+    pluginProcessors
+}) {
+
+    const flatConfig = {};
+    const configs = [];
+    const languageOptions = {};
+    const linterOptions = {};
+    const keysToCopy = ["settings", "rules", "processor"];
+    const languageOptionsKeysToCopy = ["globals", "parser", "parserOptions"];
+    const linterOptionsKeysToCopy = ["noInlineConfig", "reportUnusedDisableDirectives"];
+
+    // check for special settings for eslint:all and eslint:recommended:
+    if (eslintrcConfig.settings) {
+        if (eslintrcConfig.settings["eslint:all"] === true) {
+            return ["eslint:all"];
+        }
+
+        if (eslintrcConfig.settings["eslint:recommended"] === true) {
+            return ["eslint:recommended"];
+        }
+    }
+
+    // copy over simple translations
+    for (const key of keysToCopy) {
+        if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
+            flatConfig[key] = eslintrcConfig[key];
+        }
+    }
+
+    // copy over languageOptions
+    for (const key of languageOptionsKeysToCopy) {
+        if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
+
+            // create the languageOptions key in the flat config
+            flatConfig.languageOptions = languageOptions;
+
+            if (key === "parser") {
+                debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`);
+
+                if (eslintrcConfig[key].error) {
+                    throw eslintrcConfig[key].error;
+                }
+
+                languageOptions[key] = eslintrcConfig[key].definition;
+                continue;
+            }
+
+            // clone any object values that are in the eslintrc config
+            if (eslintrcConfig[key] && typeof eslintrcConfig[key] === "object") {
+                languageOptions[key] = {
+                    ...eslintrcConfig[key]
+                };
+            } else {
+                languageOptions[key] = eslintrcConfig[key];
+            }
+        }
+    }
+
+    // copy over linterOptions
+    for (const key of linterOptionsKeysToCopy) {
+        if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
+            flatConfig.linterOptions = linterOptions;
+            linterOptions[key] = eslintrcConfig[key];
+        }
+    }
+
+    // move ecmaVersion a level up
+    if (languageOptions.parserOptions) {
+
+        if ("ecmaVersion" in languageOptions.parserOptions) {
+            languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion;
+            delete languageOptions.parserOptions.ecmaVersion;
+        }
+
+        if ("sourceType" in languageOptions.parserOptions) {
+            languageOptions.sourceType = languageOptions.parserOptions.sourceType;
+            delete languageOptions.parserOptions.sourceType;
+        }
+
+        // check to see if we even need parserOptions anymore and remove it if not
+        if (Object.keys(languageOptions.parserOptions).length === 0) {
+            delete languageOptions.parserOptions;
+        }
+    }
+
+    // overrides
+    if (eslintrcConfig.criteria) {
+        flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)];
+    }
+
+    // translate plugins
+    if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === "object") {
+        debug(`Translating plugins: ${eslintrcConfig.plugins}`);
+
+        flatConfig.plugins = {};
+
+        for (const pluginName of Object.keys(eslintrcConfig.plugins)) {
+
+            debug(`Translating plugin: ${pluginName}`);
+            debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`);
+
+            const { definition: plugin, error } = eslintrcConfig.plugins[pluginName];
+
+            if (error) {
+                throw error;
+            }
+
+            flatConfig.plugins[pluginName] = plugin;
+
+            // create a config for any processors
+            if (plugin.processors) {
+                for (const processorName of Object.keys(plugin.processors)) {
+                    if (processorName.startsWith(".")) {
+                        debug(`Assigning processor: ${pluginName}/${processorName}`);
+
+                        configs.unshift({
+                            files: [`**/*${processorName}`],
+                            processor: pluginProcessors.get(`${pluginName}/${processorName}`)
+                        });
+                    }
+
+                }
+            }
+        }
+    }
+
+    // translate env - must come after plugins
+    if (eslintrcConfig.env && typeof eslintrcConfig.env === "object") {
+        for (const envName of Object.keys(eslintrcConfig.env)) {
+
+            // only add environments that are true
+            if (eslintrcConfig.env[envName]) {
+                debug(`Translating environment: ${envName}`);
+
+                if (environments.has(envName)) {
+
+                    // built-in environments should be defined first
+                    configs.unshift(...translateESLintRC(environments.get(envName), {
+                        resolveConfigRelativeTo,
+                        resolvePluginsRelativeTo
+                    }));
+                } else if (pluginEnvironments.has(envName)) {
+
+                    // if the environment comes from a plugin, it should come after the plugin config
+                    configs.push(...translateESLintRC(pluginEnvironments.get(envName), {
+                        resolveConfigRelativeTo,
+                        resolvePluginsRelativeTo
+                    }));
+                }
+            }
+        }
+    }
+
+    // only add if there are actually keys in the config
+    if (Object.keys(flatConfig).length > 0) {
+        configs.push(flatConfig);
+    }
+
+    return configs;
+}
+
+
+//-----------------------------------------------------------------------------
+// Exports
+//-----------------------------------------------------------------------------
+
+/**
+ * A compatibility class for working with configs.
+ */
+class FlatCompat {
+
+    constructor({
+        baseDirectory = process.cwd(),
+        resolvePluginsRelativeTo = baseDirectory
+    } = {}) {
+        this.baseDirectory = baseDirectory;
+        this.resolvePluginsRelativeTo = resolvePluginsRelativeTo;
+        this[cafactory] = new ConfigArrayFactory({
+            cwd: baseDirectory,
+            resolvePluginsRelativeTo,
+            getEslintAllConfig: () => ({ settings: { "eslint:all": true } }),
+            getEslintRecommendedConfig: () => ({ settings: { "eslint:recommended": true } })
+        });
+    }
+
+    /**
+     * Translates an ESLintRC-style config into a flag-config-style config.
+     * @param {Object} eslintrcConfig The ESLintRC-style config object.
+     * @returns {Object} A flag-config-style config object.
+     */
+    config(eslintrcConfig) {
+        const eslintrcArray = this[cafactory].create(eslintrcConfig, {
+            basePath: this.baseDirectory
+        });
+
+        const flatArray = [];
+        let hasIgnorePatterns = false;
+
+        eslintrcArray.forEach(configData => {
+            if (configData.type === "config") {
+                hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern;
+                flatArray.push(...translateESLintRC(configData, {
+                    resolveConfigRelativeTo: path__default["default"].join(this.baseDirectory, "__placeholder.js"),
+                    resolvePluginsRelativeTo: path__default["default"].join(this.resolvePluginsRelativeTo, "__placeholder.js"),
+                    pluginEnvironments: eslintrcArray.pluginEnvironments,
+                    pluginProcessors: eslintrcArray.pluginProcessors
+                }));
+            }
+        });
+
+        // combine ignorePatterns to emulate ESLintRC behavior better
+        if (hasIgnorePatterns) {
+            flatArray.unshift({
+                ignores: [filePath => {
+
+                    // Compute the final config for this file.
+                    // This filters config array elements by `files`/`excludedFiles` then merges the elements.
+                    const finalConfig = eslintrcArray.extractConfig(filePath);
+
+                    // Test the `ignorePattern` properties of the final config.
+                    return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath);
+                }]
+            });
+        }
+
+        return flatArray;
+    }
+
+    /**
+     * Translates the `env` section of an ESLintRC-style config.
+     * @param {Object} envConfig The `env` section of an ESLintRC config.
+     * @returns {Object} A flag-config object representing the environments.
+     */
+    env(envConfig) {
+        return this.config({
+            env: envConfig
+        });
+    }
+
+    /**
+     * Translates the `extends` section of an ESLintRC-style config.
+     * @param {...string} configsToExtend The names of the configs to load.
+     * @returns {Object} A flag-config object representing the config.
+     */
+    extends(...configsToExtend) {
+        return this.config({
+            extends: configsToExtend
+        });
+    }
+
+    /**
+     * Translates the `plugins` section of an ESLintRC-style config.
+     * @param {...string} plugins The names of the plugins to load.
+     * @returns {Object} A flag-config object representing the plugins.
+     */
+    plugins(...plugins) {
+        return this.config({
+            plugins
+        });
+    }
+}
+
+/**
+ * @fileoverview Package exports for @eslint/eslintrc
+ * @author Nicholas C. Zakas
+ */
+
+//-----------------------------------------------------------------------------
+// Exports
+//-----------------------------------------------------------------------------
+
+const Legacy = {
+    ConfigArray,
+    createConfigArrayFactoryContext: createContext,
+    CascadingConfigArrayFactory,
+    ConfigArrayFactory,
+    ConfigDependency,
+    ExtractedConfig,
+    IgnorePattern,
+    OverrideTester,
+    getUsedExtractedConfigs,
+    environments,
+
+    // shared
+    ConfigOps,
+    ConfigValidator,
+    ModuleResolver,
+    naming
+};
+
+exports.FlatCompat = FlatCompat;
+exports.Legacy = Legacy;
+//# sourceMappingURL=eslintrc.cjs.map
+
+
+/***/ }),
+/* 975 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const path = __webpack_require__(501);
+
+const resolveFrom = __webpack_require__(976);
+
+const parentModule = __webpack_require__(978);
+
+module.exports = moduleId => {
+  if (typeof moduleId !== 'string') {
+    throw new TypeError('Expected a string');
+  }
+
+  const parentPath = parentModule(__filename);
+  const cwd = parentPath ? path.dirname(parentPath) : __dirname;
+  const filePath = resolveFrom(cwd, moduleId);
+  const oldModule = __webpack_require__.c[filePath]; // Delete itself from module parent
+
+  if (oldModule && oldModule.parent) {
+    let i = oldModule.parent.children.length;
+
+    while (i--) {
+      if (oldModule.parent.children[i].id === filePath) {
+        oldModule.parent.children.splice(i, 1);
+      }
+    }
+  }
+
+  delete __webpack_require__.c[filePath]; // Delete module from cache
+
+  const parent = __webpack_require__.c[parentPath]; // If `filePath` and `parentPath` are the same, cache will already be deleted so we won't get a memory leak in next step
+
+  return parent === undefined ? __webpack_require__(980)(filePath) : parent.require(filePath); // In case cache doesn't have parent, fall back to normal require
+};
+
+/***/ }),
+/* 976 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const path = __webpack_require__(501);
+
+const Module = __webpack_require__(977);
+
+const fs = __webpack_require__(971);
+
+const resolveFrom = (fromDir, moduleId, silent) => {
+  if (typeof fromDir !== 'string') {
+    throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
+  }
+
+  if (typeof moduleId !== 'string') {
+    throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
+  }
+
+  try {
+    fromDir = fs.realpathSync(fromDir);
+  } catch (err) {
+    if (err.code === 'ENOENT') {
+      fromDir = path.resolve(fromDir);
+    } else if (silent) {
+      return null;
+    } else {
+      throw err;
+    }
+  }
+
+  const fromFile = path.join(fromDir, 'noop.js');
+
+  const resolveFileName = () => Module._resolveFilename(moduleId, {
+    id: fromFile,
+    filename: fromFile,
+    paths: Module._nodeModulePaths(fromDir)
+  });
+
+  if (silent) {
+    try {
+      return resolveFileName();
+    } catch (err) {
+      return null;
+    }
+  }
+
+  return resolveFileName();
+};
+
+module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
+
+module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
+
+/***/ }),
+/* 977 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("module");
+
+/***/ }),
+/* 978 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const callsites = __webpack_require__(979);
+
+module.exports = filepath => {
+  const stacks = callsites();
+
+  if (!filepath) {
+    return stacks[2].getFileName();
+  }
+
+  let seenVal = false; // Skip the first stack as it's this function
+
+  stacks.shift();
+
+  for (const stack of stacks) {
+    const parentFilepath = stack.getFileName();
+
+    if (typeof parentFilepath !== 'string') {
+      continue;
+    }
+
+    if (parentFilepath === filepath) {
+      seenVal = true;
+      continue;
+    } // Skip native modules
+
+
+    if (parentFilepath === 'module.js') {
+      continue;
+    }
+
+    if (seenVal && parentFilepath !== filepath) {
+      return parentFilepath;
+    }
+  }
+};
+
+/***/ }),
+/* 979 */
+/***/ ((module) => {
+
+"use strict";
+
+
+const callsites = () => {
+  const _prepareStackTrace = Error.prepareStackTrace;
+
+  Error.prepareStackTrace = (_, stack) => stack;
+
+  const stack = new Error().stack.slice(1);
+  Error.prepareStackTrace = _prepareStackTrace;
+  return stack;
+};
+
+module.exports = callsites; // TODO: Remove this for the next major release
+
+module.exports["default"] = callsites;
+
+/***/ }),
+/* 980 */
+/***/ ((module) => {
+
+function webpackEmptyContext(req) {
+       var e = new Error("Cannot find module '" + req + "'");
+       e.code = 'MODULE_NOT_FOUND';
+       throw e;
+}
+webpackEmptyContext.keys = () => ([]);
+webpackEmptyContext.resolve = webpackEmptyContext;
+webpackEmptyContext.id = 980;
+module.exports = webpackEmptyContext;
+
+/***/ }),
+/* 981 */
+/***/ ((module) => {
+
+"use strict";
+
+
+const singleComment = Symbol('singleComment');
+const multiComment = Symbol('multiComment');
+
+const stripWithoutWhitespace = () => '';
+
+const stripWithWhitespace = (string, start, end) => string.slice(start, end).replace(/\S/g, ' ');
+
+const isEscaped = (jsonString, quotePosition) => {
+  let index = quotePosition - 1;
+  let backslashCount = 0;
+
+  while (jsonString[index] === '\\') {
+    index -= 1;
+    backslashCount += 1;
+  }
+
+  return Boolean(backslashCount % 2);
+};
+
+module.exports = function (jsonString) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  if (typeof jsonString !== 'string') {
+    throw new TypeError(`Expected argument \`jsonString\` to be a \`string\`, got \`${typeof jsonString}\``);
+  }
+
+  const strip = options.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace;
+  let insideString = false;
+  let insideComment = false;
+  let offset = 0;
+  let result = '';
+
+  for (let i = 0; i < jsonString.length; i++) {
+    const currentCharacter = jsonString[i];
+    const nextCharacter = jsonString[i + 1];
+
+    if (!insideComment && currentCharacter === '"') {
+      const escaped = isEscaped(jsonString, i);
+
+      if (!escaped) {
+        insideString = !insideString;
+      }
+    }
+
+    if (insideString) {
+      continue;
+    }
+
+    if (!insideComment && currentCharacter + nextCharacter === '//') {
+      result += jsonString.slice(offset, i);
+      offset = i;
+      insideComment = singleComment;
+      i++;
+    } else if (insideComment === singleComment && currentCharacter + nextCharacter === '\r\n') {
+      i++;
+      insideComment = false;
+      result += strip(jsonString, offset, i);
+      offset = i;
+      continue;
+    } else if (insideComment === singleComment && currentCharacter === '\n') {
+      insideComment = false;
+      result += strip(jsonString, offset, i);
+      offset = i;
+    } else if (!insideComment && currentCharacter + nextCharacter === '/*') {
+      result += jsonString.slice(offset, i);
+      offset = i;
+      insideComment = multiComment;
+      i++;
+      continue;
+    } else if (insideComment === multiComment && currentCharacter + nextCharacter === '*/') {
+      i++;
+      insideComment = false;
+      result += strip(jsonString, offset, i + 1);
+      offset = i + 1;
+      continue;
+    }
+  }
+
+  return result + (insideComment ? strip(jsonString.slice(offset)) : jsonString.slice(offset));
+};
+
+/***/ }),
+/* 982 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("os");
+
+/***/ }),
+/* 983 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("url");
+
+/***/ }),
+/* 984 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview `FileEnumerator` class.
+ *
+ * `FileEnumerator` class has two responsibilities:
+ *
+ * 1. Find target files by processing glob patterns.
+ * 2. Tie each target file and appropriate configuration.
+ *
+ * It provides a method:
+ *
+ * - `iterateFiles(patterns)`
+ *     Iterate files which are matched by given patterns together with the
+ *     corresponded configuration. This is for `CLIEngine#executeOnFiles()`.
+ *     While iterating files, it loads the configuration file of each directory
+ *     before iterate files on the directory, so we can use the configuration
+ *     files to determine target files.
+ *
+ * @example
+ * const enumerator = new FileEnumerator();
+ * const linter = new Linter();
+ *
+ * for (const { config, filePath } of enumerator.iterateFiles(["*.js"])) {
+ *     const code = fs.readFileSync(filePath, "utf8");
+ *     const messages = linter.verify(code, config, filePath);
+ *
+ *     console.log(messages);
+ * }
+ *
+ * @author Toru Nagashima <https://github.com/mysticatea>
+ */
+ //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const fs = __webpack_require__(971);
+
+const path = __webpack_require__(501);
+
+const getGlobParent = __webpack_require__(985);
+
+const isGlob = __webpack_require__(986);
+
+const escapeRegExp = __webpack_require__(595);
+
+const {
+  Minimatch
+} = __webpack_require__(953);
+
+const {
+  Legacy: {
+    IgnorePattern,
+    CascadingConfigArrayFactory
+  }
+} = __webpack_require__(974);
+
+const debug = __webpack_require__(566)("eslint:file-enumerator"); //------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+
+const minimatchOpts = {
+  dot: true,
+  matchBase: true
+};
+const dotfilesPattern = /(?:(?:^\.)|(?:[/\\]\.))[^/\\.].*/u;
+const NONE = 0;
+const IGNORED_SILENTLY = 1;
+const IGNORED = 2; // For VSCode intellisense
+
+/** @typedef {ReturnType<CascadingConfigArrayFactory.getConfigArrayForFile>} ConfigArray */
+
+/**
+ * @typedef {Object} FileEnumeratorOptions
+ * @property {CascadingConfigArrayFactory} [configArrayFactory] The factory for config arrays.
+ * @property {string} [cwd] The base directory to start lookup.
+ * @property {string[]} [extensions] The extensions to match files for directory patterns.
+ * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file.
+ * @property {boolean} [ignore] The flag to check ignored files.
+ * @property {string[]} [rulePaths] The value of `--rulesdir` option.
+ */
+
+/**
+ * @typedef {Object} FileAndConfig
+ * @property {string} filePath The path to a target file.
+ * @property {ConfigArray} config The config entries of that file.
+ * @property {boolean} ignored If `true` then this file should be ignored and warned because it was directly specified.
+ */
+
+/**
+ * @typedef {Object} FileEntry
+ * @property {string} filePath The path to a target file.
+ * @property {ConfigArray} config The config entries of that file.
+ * @property {NONE|IGNORED_SILENTLY|IGNORED} flag The flag.
+ * - `NONE` means the file is a target file.
+ * - `IGNORED_SILENTLY` means the file should be ignored silently.
+ * - `IGNORED` means the file should be ignored and warned because it was directly specified.
+ */
+
+/**
+ * @typedef {Object} FileEnumeratorInternalSlots
+ * @property {CascadingConfigArrayFactory} configArrayFactory The factory for config arrays.
+ * @property {string} cwd The base directory to start lookup.
+ * @property {RegExp|null} extensionRegExp The RegExp to test if a string ends with specific file extensions.
+ * @property {boolean} globInputPaths Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file.
+ * @property {boolean} ignoreFlag The flag to check ignored files.
+ * @property {(filePath:string, dot:boolean) => boolean} defaultIgnores The default predicate function to ignore files.
+ */
+
+/** @type {WeakMap<FileEnumerator, FileEnumeratorInternalSlots>} */
+
+const internalSlotsMap = new WeakMap();
+/**
+ * Check if a string is a glob pattern or not.
+ * @param {string} pattern A glob pattern.
+ * @returns {boolean} `true` if the string is a glob pattern.
+ */
+
+function isGlobPattern(pattern) {
+  return isGlob(path.sep === "\\" ? pattern.replace(/\\/gu, "/") : pattern);
+}
+/**
+ * Get stats of a given path.
+ * @param {string} filePath The path to target file.
+ * @throws {Error} As may be thrown by `fs.statSync`.
+ * @returns {fs.Stats|null} The stats.
+ * @private
+ */
+
+
+function statSafeSync(filePath) {
+  try {
+    return fs.statSync(filePath);
+  } catch (error) {
+    /* c8 ignore next */
+    if (error.code !== "ENOENT") {
+      throw error;
+    }
+
+    return null;
+  }
+}
+/**
+ * Get filenames in a given path to a directory.
+ * @param {string} directoryPath The path to target directory.
+ * @throws {Error} As may be thrown by `fs.readdirSync`.
+ * @returns {import("fs").Dirent[]} The filenames.
+ * @private
+ */
+
+
+function readdirSafeSync(directoryPath) {
+  try {
+    return fs.readdirSync(directoryPath, {
+      withFileTypes: true
+    });
+  } catch (error) {
+    /* c8 ignore next */
+    if (error.code !== "ENOENT") {
+      throw error;
+    }
+
+    return [];
+  }
+}
+/**
+ * Create a `RegExp` object to detect extensions.
+ * @param {string[] | null} extensions The extensions to create.
+ * @returns {RegExp | null} The created `RegExp` object or null.
+ */
+
+
+function createExtensionRegExp(extensions) {
+  if (extensions) {
+    const normalizedExts = extensions.map(ext => escapeRegExp(ext.startsWith(".") ? ext.slice(1) : ext));
+    return new RegExp(`.\\.(?:${normalizedExts.join("|")})$`, "u");
+  }
+
+  return null;
+}
+/**
+ * The error type when no files match a glob.
+ */
+
+
+class NoFilesFoundError extends Error {
+  /**
+   * @param {string} pattern The glob pattern which was not found.
+   * @param {boolean} globDisabled If `true` then the pattern was a glob pattern, but glob was disabled.
+   */
+  constructor(pattern, globDisabled) {
+    super(`No files matching '${pattern}' were found${globDisabled ? " (glob was disabled)" : ""}.`);
+    this.messageTemplate = "file-not-found";
+    this.messageData = {
+      pattern,
+      globDisabled
+    };
+  }
+
+}
+/**
+ * The error type when there are files matched by a glob, but all of them have been ignored.
+ */
+
+
+class AllFilesIgnoredError extends Error {
+  /**
+   * @param {string} pattern The glob pattern which was not found.
+   */
+  constructor(pattern) {
+    super(`All files matched by '${pattern}' are ignored.`);
+    this.messageTemplate = "all-files-ignored";
+    this.messageData = {
+      pattern
+    };
+  }
+
+}
+/**
+ * This class provides the functionality that enumerates every file which is
+ * matched by given glob patterns and that configuration.
+ */
+
+
+class FileEnumerator {
+  /**
+   * Initialize this enumerator.
+   * @param {FileEnumeratorOptions} options The options.
+   */
+  constructor() {
+    let {
+      cwd = process.cwd(),
+      configArrayFactory = new CascadingConfigArrayFactory({
+        cwd,
+        getEslintRecommendedConfig: () => __webpack_require__(966),
+        getEslintAllConfig: () => __webpack_require__(967)
+      }),
+      extensions = null,
+      globInputPaths = true,
+      errorOnUnmatchedPattern = true,
+      ignore = true
+    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    internalSlotsMap.set(this, {
+      configArrayFactory,
+      cwd,
+      defaultIgnores: IgnorePattern.createDefaultIgnore(cwd),
+      extensionRegExp: createExtensionRegExp(extensions),
+      globInputPaths,
+      errorOnUnmatchedPattern,
+      ignoreFlag: ignore
+    });
+  }
+  /**
+   * Check if a given file is target or not.
+   * @param {string} filePath The path to a candidate file.
+   * @param {ConfigArray} [providedConfig] Optional. The configuration for the file.
+   * @returns {boolean} `true` if the file is a target.
+   */
+
+
+  isTargetPath(filePath, providedConfig) {
+    const {
+      configArrayFactory,
+      extensionRegExp
+    } = internalSlotsMap.get(this); // If `--ext` option is present, use it.
+
+    if (extensionRegExp) {
+      return extensionRegExp.test(filePath);
+    } // `.js` file is target by default.
+
+
+    if (filePath.endsWith(".js")) {
+      return true;
+    } // use `overrides[].files` to check additional targets.
+
+
+    const config = providedConfig || configArrayFactory.getConfigArrayForFile(filePath, {
+      ignoreNotFoundError: true
+    });
+    return config.isAdditionalTargetPath(filePath);
+  }
+  /**
+   * Iterate files which are matched by given glob patterns.
+   * @param {string|string[]} patternOrPatterns The glob patterns to iterate files.
+   * @throws {NoFilesFoundError|AllFilesIgnoredError} On an unmatched pattern.
+   * @returns {IterableIterator<FileAndConfig>} The found files.
+   */
+
+
+  *iterateFiles(patternOrPatterns) {
+    const {
+      globInputPaths,
+      errorOnUnmatchedPattern
+    } = internalSlotsMap.get(this);
+    const patterns = Array.isArray(patternOrPatterns) ? patternOrPatterns : [patternOrPatterns];
+    debug("Start to iterate files: %o", patterns); // The set of paths to remove duplicate.
+
+    const set = new Set();
+
+    for (const pattern of patterns) {
+      let foundRegardlessOfIgnored = false;
+      let found = false; // Skip empty string.
+
+      if (!pattern) {
+        continue;
+      } // Iterate files of this pattern.
+
+
+      for (const {
+        config,
+        filePath,
+        flag
+      } of this._iterateFiles(pattern)) {
+        foundRegardlessOfIgnored = true;
+
+        if (flag === IGNORED_SILENTLY) {
+          continue;
+        }
+
+        found = true; // Remove duplicate paths while yielding paths.
+
+        if (!set.has(filePath)) {
+          set.add(filePath);
+          yield {
+            config,
+            filePath,
+            ignored: flag === IGNORED
+          };
+        }
+      } // Raise an error if any files were not found.
+
+
+      if (errorOnUnmatchedPattern) {
+        if (!foundRegardlessOfIgnored) {
+          throw new NoFilesFoundError(pattern, !globInputPaths && isGlob(pattern));
+        }
+
+        if (!found) {
+          throw new AllFilesIgnoredError(pattern);
+        }
+      }
+    }
+
+    debug(`Complete iterating files: ${JSON.stringify(patterns)}`);
+  }
+  /**
+   * Iterate files which are matched by a given glob pattern.
+   * @param {string} pattern The glob pattern to iterate files.
+   * @returns {IterableIterator<FileEntry>} The found files.
+   */
+
+
+  _iterateFiles(pattern) {
+    const {
+      cwd,
+      globInputPaths
+    } = internalSlotsMap.get(this);
+    const absolutePath = path.resolve(cwd, pattern);
+    const isDot = dotfilesPattern.test(pattern);
+    const stat = statSafeSync(absolutePath);
+
+    if (stat && stat.isDirectory()) {
+      return this._iterateFilesWithDirectory(absolutePath, isDot);
+    }
+
+    if (stat && stat.isFile()) {
+      return this._iterateFilesWithFile(absolutePath);
+    }
+
+    if (globInputPaths && isGlobPattern(pattern)) {
+      return this._iterateFilesWithGlob(absolutePath, isDot);
+    }
+
+    return [];
+  }
+  /**
+   * Iterate a file which is matched by a given path.
+   * @param {string} filePath The path to the target file.
+   * @returns {IterableIterator<FileEntry>} The found files.
+   * @private
+   */
+
+
+  _iterateFilesWithFile(filePath) {
+    debug(`File: ${filePath}`);
+    const {
+      configArrayFactory
+    } = internalSlotsMap.get(this);
+    const config = configArrayFactory.getConfigArrayForFile(filePath);
+
+    const ignored = this._isIgnoredFile(filePath, {
+      config,
+      direct: true
+    });
+
+    const flag = ignored ? IGNORED : NONE;
+    return [{
+      config,
+      filePath,
+      flag
+    }];
+  }
+  /**
+   * Iterate files in a given path.
+   * @param {string} directoryPath The path to the target directory.
+   * @param {boolean} dotfiles If `true` then it doesn't skip dot files by default.
+   * @returns {IterableIterator<FileEntry>} The found files.
+   * @private
+   */
+
+
+  _iterateFilesWithDirectory(directoryPath, dotfiles) {
+    debug(`Directory: ${directoryPath}`);
+    return this._iterateFilesRecursive(directoryPath, {
+      dotfiles,
+      recursive: true,
+      selector: null
+    });
+  }
+  /**
+   * Iterate files which are matched by a given glob pattern.
+   * @param {string} pattern The glob pattern to iterate files.
+   * @param {boolean} dotfiles If `true` then it doesn't skip dot files by default.
+   * @returns {IterableIterator<FileEntry>} The found files.
+   * @private
+   */
+
+
+  _iterateFilesWithGlob(pattern, dotfiles) {
+    debug(`Glob: ${pattern}`);
+    const directoryPath = path.resolve(getGlobParent(pattern));
+    const globPart = pattern.slice(directoryPath.length + 1);
+    /*
+     * recursive if there are `**` or path separators in the glob part.
+     * Otherwise, patterns such as `src/*.js`, it doesn't need recursive.
+     */
+
+    const recursive = /\*\*|\/|\\/u.test(globPart);
+    const selector = new Minimatch(pattern, minimatchOpts);
+    debug(`recursive? ${recursive}`);
+    return this._iterateFilesRecursive(directoryPath, {
+      dotfiles,
+      recursive,
+      selector
+    });
+  }
+  /**
+   * Iterate files in a given path.
+   * @param {string} directoryPath The path to the target directory.
+   * @param {Object} options The options to iterate files.
+   * @param {boolean} [options.dotfiles] If `true` then it doesn't skip dot files by default.
+   * @param {boolean} [options.recursive] If `true` then it dives into sub directories.
+   * @param {InstanceType<Minimatch>} [options.selector] The matcher to choose files.
+   * @returns {IterableIterator<FileEntry>} The found files.
+   * @private
+   */
+
+
+  *_iterateFilesRecursive(directoryPath, options) {
+    debug(`Enter the directory: ${directoryPath}`);
+    const {
+      configArrayFactory
+    } = internalSlotsMap.get(this);
+    /** @type {ConfigArray|null} */
+
+    let config = null; // Enumerate the files of this directory.
+
+    for (const entry of readdirSafeSync(directoryPath)) {
+      const filePath = path.join(directoryPath, entry.name);
+      const fileInfo = entry.isSymbolicLink() ? statSafeSync(filePath) : entry;
+
+      if (!fileInfo) {
+        continue;
+      } // Check if the file is matched.
+
+
+      if (fileInfo.isFile()) {
+        if (!config) {
+          config = configArrayFactory.getConfigArrayForFile(filePath,
+          /*
+           * We must ignore `ConfigurationNotFoundError` at this
+           * point because we don't know if target files exist in
+           * this directory.
+           */
+          {
+            ignoreNotFoundError: true
+          });
+        }
+
+        const matched = options.selector // Started with a glob pattern; choose by the pattern.
+        ? options.selector.match(filePath) // Started with a directory path; choose by file extensions.
+        : this.isTargetPath(filePath, config);
+
+        if (matched) {
+          const ignored = this._isIgnoredFile(filePath, { ...options,
+            config
+          });
+
+          const flag = ignored ? IGNORED_SILENTLY : NONE;
+          debug(`Yield: ${entry.name}${ignored ? " but ignored" : ""}`);
+          yield {
+            config: configArrayFactory.getConfigArrayForFile(filePath),
+            filePath,
+            flag
+          };
+        } else {
+          debug(`Didn't match: ${entry.name}`);
+        } // Dive into the sub directory.
+
+      } else if (options.recursive && fileInfo.isDirectory()) {
+        if (!config) {
+          config = configArrayFactory.getConfigArrayForFile(filePath, {
+            ignoreNotFoundError: true
+          });
+        }
+
+        const ignored = this._isIgnoredFile(filePath + path.sep, { ...options,
+          config
+        });
+
+        if (!ignored) {
+          yield* this._iterateFilesRecursive(filePath, options);
+        }
+      }
+    }
+
+    debug(`Leave the directory: ${directoryPath}`);
+  }
+  /**
+   * Check if a given file should be ignored.
+   * @param {string} filePath The path to a file to check.
+   * @param {Object} options Options
+   * @param {ConfigArray} [options.config] The config for this file.
+   * @param {boolean} [options.dotfiles] If `true` then this is not ignore dot files by default.
+   * @param {boolean} [options.direct] If `true` then this is a direct specified file.
+   * @returns {boolean} `true` if the file should be ignored.
+   * @private
+   */
+
+
+  _isIgnoredFile(filePath, _ref) {
+    let {
+      config: providedConfig,
+      dotfiles = false,
+      direct = false
+    } = _ref;
+    const {
+      configArrayFactory,
+      defaultIgnores,
+      ignoreFlag
+    } = internalSlotsMap.get(this);
+
+    if (ignoreFlag) {
+      const config = providedConfig || configArrayFactory.getConfigArrayForFile(filePath, {
+        ignoreNotFoundError: true
+      });
+      const ignores = config.extractConfig(filePath).ignores || defaultIgnores;
+      return ignores(filePath, dotfiles);
+    }
+
+    return !direct && defaultIgnores(filePath, dotfiles);
+  }
+
+} //------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+
+module.exports = {
+  FileEnumerator
+};
+
+/***/ }),
+/* 985 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var isGlob = __webpack_require__(986);
+
+var pathPosixDirname = (__webpack_require__(501).posix.dirname);
+
+var isWin32 = (__webpack_require__(982).platform)() === 'win32';
+var slash = '/';
+var backslash = /\\/g;
+var escaped = /\\([!*?|[\](){}])/g;
+/**
+ * @param {string} str
+ * @param {Object} opts
+ * @param {boolean} [opts.flipBackslashes=true]
+ */
+
+module.exports = function globParent(str, opts) {
+  var options = Object.assign({
+    flipBackslashes: true
+  }, opts); // flip windows path separators
+
+  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {
+    str = str.replace(backslash, slash);
+  } // special case for strings ending in enclosure containing path separator
+
+
+  if (isEnclosure(str)) {
+    str += slash;
+  } // preserves full path in case of trailing path separator
+
+
+  str += 'a'; // remove path parts that are globby
+
+  do {
+    str = pathPosixDirname(str);
+  } while (isGlobby(str)); // remove escape chars and return result
+
+
+  return str.replace(escaped, '$1');
+};
+
+function isEnclosure(str) {
+  var lastChar = str.slice(-1);
+  var enclosureStart;
+
+  switch (lastChar) {
+    case '}':
+      enclosureStart = '{';
+      break;
+
+    case ']':
+      enclosureStart = '[';
+      break;
+
+    default:
+      return false;
+  }
+
+  var foundIndex = str.indexOf(enclosureStart);
+
+  if (foundIndex < 0) {
+    return false;
+  }
+
+  return str.slice(foundIndex + 1, -1).includes(slash);
+}
+
+function isGlobby(str) {
+  if (/\([^()]+$/.test(str)) {
+    return true;
+  }
+
+  if (str[0] === '{' || str[0] === '[') {
+    return true;
+  }
+
+  if (/[^\\][{[]/.test(str)) {
+    return true;
+  }
+
+  return isGlob(str);
+}
+
+/***/ }),
+/* 986 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+/*!
+ * is-glob <https://github.com/jonschlinkert/is-glob>
+ *
+ * Copyright (c) 2014-2017, Jon Schlinkert.
+ * Released under the MIT License.
+ */
+var isExtglob = __webpack_require__(987);
+
+var chars = {
+  '{': '}',
+  '(': ')',
+  '[': ']'
+};
+
+var strictCheck = function (str) {
+  if (str[0] === '!') {
+    return true;
+  }
+
+  var index = 0;
+  var pipeIndex = -2;
+  var closeSquareIndex = -2;
+  var closeCurlyIndex = -2;
+  var closeParenIndex = -2;
+  var backSlashIndex = -2;
+
+  while (index < str.length) {
+    if (str[index] === '*') {
+      return true;
+    }
+
+    if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) {
+      return true;
+    }
+
+    if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {
+      if (closeSquareIndex < index) {
+        closeSquareIndex = str.indexOf(']', index);
+      }
+
+      if (closeSquareIndex > index) {
+        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
+          return true;
+        }
+
+        backSlashIndex = str.indexOf('\\', index);
+
+        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
+          return true;
+        }
+      }
+    }
+
+    if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {
+      closeCurlyIndex = str.indexOf('}', index);
+
+      if (closeCurlyIndex > index) {
+        backSlashIndex = str.indexOf('\\', index);
+
+        if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {
+          return true;
+        }
+      }
+    }
+
+    if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {
+      closeParenIndex = str.indexOf(')', index);
+
+      if (closeParenIndex > index) {
+        backSlashIndex = str.indexOf('\\', index);
+
+        if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
+          return true;
+        }
+      }
+    }
+
+    if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {
+      if (pipeIndex < index) {
+        pipeIndex = str.indexOf('|', index);
+      }
+
+      if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {
+        closeParenIndex = str.indexOf(')', pipeIndex);
+
+        if (closeParenIndex > pipeIndex) {
+          backSlashIndex = str.indexOf('\\', pipeIndex);
+
+          if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
+            return true;
+          }
+        }
+      }
+    }
+
+    if (str[index] === '\\') {
+      var open = str[index + 1];
+      index += 2;
+      var close = chars[open];
+
+      if (close) {
+        var n = str.indexOf(close, index);
+
+        if (n !== -1) {
+          index = n + 1;
+        }
+      }
+
+      if (str[index] === '!') {
+        return true;
+      }
+    } else {
+      index++;
+    }
+  }
+
+  return false;
+};
+
+var relaxedCheck = function (str) {
+  if (str[0] === '!') {
+    return true;
+  }
+
+  var index = 0;
+
+  while (index < str.length) {
+    if (/[*?{}()[\]]/.test(str[index])) {
+      return true;
+    }
+
+    if (str[index] === '\\') {
+      var open = str[index + 1];
+      index += 2;
+      var close = chars[open];
+
+      if (close) {
+        var n = str.indexOf(close, index);
+
+        if (n !== -1) {
+          index = n + 1;
+        }
+      }
+
+      if (str[index] === '!') {
+        return true;
+      }
+    } else {
+      index++;
+    }
+  }
+
+  return false;
+};
+
+module.exports = function isGlob(str, options) {
+  if (typeof str !== 'string' || str === '') {
+    return false;
+  }
+
+  if (isExtglob(str)) {
+    return true;
+  }
+
+  var check = strictCheck; // optionally relax check
+
+  if (options && options.strict === false) {
+    check = relaxedCheck;
+  }
+
+  return check(str);
+};
+
+/***/ }),
+/* 987 */
+/***/ ((module) => {
+
+/*!
+ * is-extglob <https://github.com/jonschlinkert/is-extglob>
+ *
+ * Copyright (c) 2014-2016, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+module.exports = function isExtglob(str) {
+  if (typeof str !== 'string' || str === '') {
+    return false;
+  }
+
+  var match;
+
+  while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) {
+    if (match[2]) return true;
+    str = str.slice(match.index + match[0].length);
+  }
+
+  return false;
+};
+
+/***/ }),
+/* 988 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const {
+  Linter
+} = __webpack_require__(500);
+
+const interpolate = __webpack_require__(613);
+
+const SourceCodeFixer = __webpack_require__(947);
+
+module.exports = {
+  Linter,
+  // For testers.
+  SourceCodeFixer,
+  interpolate
+};
+
+/***/ }),
+/* 989 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Module for loading rules from files and directories.
+ * @author Michael Ficarra
+ */
+ //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const fs = __webpack_require__(971),
+      path = __webpack_require__(501);
+
+const rulesDirCache = {}; //------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+/**
+ * Load all rule modules from specified directory.
+ * @param {string} relativeRulesDir Path to rules directory, may be relative.
+ * @param {string} cwd Current working directory
+ * @returns {Object} Loaded rule modules.
+ */
+
+module.exports = function (relativeRulesDir, cwd) {
+  const rulesDir = path.resolve(cwd, relativeRulesDir); // cache will help performance as IO operation are expensive
+
+  if (rulesDirCache[rulesDir]) {
+    return rulesDirCache[rulesDir];
+  }
+
+  const rules = Object.create(null);
+  fs.readdirSync(rulesDir).forEach(file => {
+    if (path.extname(file) !== ".js") {
+      return;
+    }
+
+    rules[file.slice(0, -3)] = __webpack_require__(990)(path.join(rulesDir, file));
+  });
+  rulesDirCache[rulesDir] = rules;
+  return rules;
+};
+
+/***/ }),
+/* 990 */
+/***/ ((module) => {
+
+function webpackEmptyContext(req) {
+       var e = new Error("Cannot find module '" + req + "'");
+       e.code = 'MODULE_NOT_FOUND';
+       throw e;
+}
+webpackEmptyContext.keys = () => ([]);
+webpackEmptyContext.resolve = webpackEmptyContext;
+webpackEmptyContext.id = 990;
+module.exports = webpackEmptyContext;
+
+/***/ }),
+/* 991 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Defining the hashing function in one place.
+ * @author Michael Ficarra
+ */
+ //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const murmur = __webpack_require__(992); //------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+// Private
+//------------------------------------------------------------------------------
+
+/**
+ * hash the given string
+ * @param {string} str the string to hash
+ * @returns {string} the hash
+ */
+
+
+function hash(str) {
+  return murmur(str).result().toString(36);
+} //------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+
+module.exports = hash;
+
+/***/ }),
+/* 992 */
+/***/ ((module) => {
+
+/**
+ * @preserve
+ * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
+ *
+ * @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
+ * @see http://github.com/homebrewing/brauhaus-diff
+ * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
+ * @see http://github.com/garycourt/murmurhash-js
+ * @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
+ * @see http://sites.google.com/site/murmurhash/
+ */
+(function () {
+  var cache; // Call this function without `new` to use the cached object (good for
+  // single-threaded environments), or with `new` to create a new object.
+  //
+  // @param {string} key A UTF-16 or ASCII string
+  // @param {number} seed An optional positive integer
+  // @return {object} A MurmurHash3 object for incremental hashing
+
+  function MurmurHash3(key, seed) {
+    var m = this instanceof MurmurHash3 ? this : cache;
+    m.reset(seed);
+
+    if (typeof key === 'string' && key.length > 0) {
+      m.hash(key);
+    }
+
+    if (m !== this) {
+      return m;
+    }
+  }
+
+  ; // Incrementally add a string to this hash
+  //
+  // @param {string} key A UTF-16 or ASCII string
+  // @return {object} this
+
+  MurmurHash3.prototype.hash = function (key) {
+    var h1, k1, i, top, len;
+    len = key.length;
+    this.len += len;
+    k1 = this.k1;
+    i = 0;
+
+    switch (this.rem) {
+      case 0:
+        k1 ^= len > i ? key.charCodeAt(i++) & 0xffff : 0;
+
+      case 1:
+        k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;
+
+      case 2:
+        k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;
+
+      case 3:
+        k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;
+        k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;
+    }
+
+    this.rem = len + this.rem & 3; // & 3 is same as % 4
+
+    len -= this.rem;
+
+    if (len > 0) {
+      h1 = this.h1;
+
+      while (1) {
+        k1 = k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000 & 0xffffffff;
+        k1 = k1 << 15 | k1 >>> 17;
+        k1 = k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000 & 0xffffffff;
+        h1 ^= k1;
+        h1 = h1 << 13 | h1 >>> 19;
+        h1 = h1 * 5 + 0xe6546b64 & 0xffffffff;
+
+        if (i >= len) {
+          break;
+        }
+
+        k1 = key.charCodeAt(i++) & 0xffff ^ (key.charCodeAt(i++) & 0xffff) << 8 ^ (key.charCodeAt(i++) & 0xffff) << 16;
+        top = key.charCodeAt(i++);
+        k1 ^= (top & 0xff) << 24 ^ (top & 0xff00) >> 8;
+      }
+
+      k1 = 0;
+
+      switch (this.rem) {
+        case 3:
+          k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;
+
+        case 2:
+          k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;
+
+        case 1:
+          k1 ^= key.charCodeAt(i) & 0xffff;
+      }
+
+      this.h1 = h1;
+    }
+
+    this.k1 = k1;
+    return this;
+  }; // Get the result of this hash
+  //
+  // @return {number} The 32-bit hash
+
+
+  MurmurHash3.prototype.result = function () {
+    var k1, h1;
+    k1 = this.k1;
+    h1 = this.h1;
+
+    if (k1 > 0) {
+      k1 = k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000 & 0xffffffff;
+      k1 = k1 << 15 | k1 >>> 17;
+      k1 = k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000 & 0xffffffff;
+      h1 ^= k1;
+    }
+
+    h1 ^= this.len;
+    h1 ^= h1 >>> 16;
+    h1 = h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000 & 0xffffffff;
+    h1 ^= h1 >>> 13;
+    h1 = h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000 & 0xffffffff;
+    h1 ^= h1 >>> 16;
+    return h1 >>> 0;
+  }; // Reset the hash object for reuse
+  //
+  // @param {number} seed An optional positive integer
+
+
+  MurmurHash3.prototype.reset = function (seed) {
+    this.h1 = typeof seed === 'number' ? seed : 0;
+    this.rem = this.k1 = this.len = 0;
+    return this;
+  }; // A cached object to use. This can be safely used if you're in a single-
+  // threaded environment, otherwise you need to create new hashes to use.
+
+
+  cache = new MurmurHash3();
+
+  if (true) {
+    module.exports = MurmurHash3;
+  } else {}
+})();
+
+/***/ }),
+/* 993 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Utility for caching lint results.
+ * @author Kevin Partington
+ */
+ //-----------------------------------------------------------------------------
+// Requirements
+//-----------------------------------------------------------------------------
+
+const assert = __webpack_require__(503);
+
+const fs = __webpack_require__(971);
+
+const fileEntryCache = __webpack_require__(994);
+
+const stringify = __webpack_require__(1012);
+
+const pkg = __webpack_require__(513);
+
+const hash = __webpack_require__(991);
+
+const debug = __webpack_require__(566)("eslint:lint-result-cache"); //-----------------------------------------------------------------------------
+// Helpers
+//-----------------------------------------------------------------------------
+
+
+const configHashCache = new WeakMap();
+const nodeVersion = process && process.version;
+const validCacheStrategies = ["metadata", "content"];
+const invalidCacheStrategyErrorMessage = `Cache strategy must be one of: ${validCacheStrategies.map(strategy => `"${strategy}"`).join(", ")}`;
+/**
+ * Tests whether a provided cacheStrategy is valid
+ * @param {string} cacheStrategy The cache strategy to use
+ * @returns {boolean} true if `cacheStrategy` is one of `validCacheStrategies`; false otherwise
+ */
+
+function isValidCacheStrategy(cacheStrategy) {
+  return validCacheStrategies.includes(cacheStrategy);
+}
+/**
+ * Calculates the hash of the config
+ * @param {ConfigArray} config The config.
+ * @returns {string} The hash of the config
+ */
+
+
+function hashOfConfigFor(config) {
+  if (!configHashCache.has(config)) {
+    configHashCache.set(config, hash(`${pkg.version}_${nodeVersion}_${stringify(config)}`));
+  }
+
+  return configHashCache.get(config);
+} //-----------------------------------------------------------------------------
+// Public Interface
+//-----------------------------------------------------------------------------
+
+/**
+ * Lint result cache. This wraps around the file-entry-cache module,
+ * transparently removing properties that are difficult or expensive to
+ * serialize and adding them back in on retrieval.
+ */
+
+
+class LintResultCache {
+  /**
+   * Creates a new LintResultCache instance.
+   * @param {string} cacheFileLocation The cache file location.
+   * @param {"metadata" | "content"} cacheStrategy The cache strategy to use.
+   */
+  constructor(cacheFileLocation, cacheStrategy) {
+    assert(cacheFileLocation, "Cache file location is required");
+    assert(cacheStrategy, "Cache strategy is required");
+    assert(isValidCacheStrategy(cacheStrategy), invalidCacheStrategyErrorMessage);
+    debug(`Caching results to ${cacheFileLocation}`);
+    const useChecksum = cacheStrategy === "content";
+    debug(`Using "${cacheStrategy}" strategy to detect changes`);
+    this.fileEntryCache = fileEntryCache.create(cacheFileLocation, void 0, useChecksum);
+    this.cacheFileLocation = cacheFileLocation;
+  }
+  /**
+   * Retrieve cached lint results for a given file path, if present in the
+   * cache. If the file is present and has not been changed, rebuild any
+   * missing result information.
+   * @param {string} filePath The file for which to retrieve lint results.
+   * @param {ConfigArray} config The config of the file.
+   * @returns {Object|null} The rebuilt lint results, or null if the file is
+   *   changed or not in the filesystem.
+   */
+
+
+  getCachedLintResults(filePath, config) {
+    /*
+     * Cached lint results are valid if and only if:
+     * 1. The file is present in the filesystem
+     * 2. The file has not changed since the time it was previously linted
+     * 3. The ESLint configuration has not changed since the time the file
+     *    was previously linted
+     * If any of these are not true, we will not reuse the lint results.
+     */
+    const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath);
+    const hashOfConfig = hashOfConfigFor(config);
+    const changed = fileDescriptor.changed || fileDescriptor.meta.hashOfConfig !== hashOfConfig;
+
+    if (fileDescriptor.notFound) {
+      debug(`File not found on the file system: ${filePath}`);
+      return null;
+    }
+
+    if (changed) {
+      debug(`Cache entry not found or no longer valid: ${filePath}`);
+      return null;
+    } // If source is present but null, need to reread the file from the filesystem.
+
+
+    if (fileDescriptor.meta.results && fileDescriptor.meta.results.source === null) {
+      debug(`Rereading cached result source from filesystem: ${filePath}`);
+      fileDescriptor.meta.results.source = fs.readFileSync(filePath, "utf-8");
+    }
+
+    return fileDescriptor.meta.results;
+  }
+  /**
+   * Set the cached lint results for a given file path, after removing any
+   * information that will be both unnecessary and difficult to serialize.
+   * Avoids caching results with an "output" property (meaning fixes were
+   * applied), to prevent potentially incorrect results if fixes are not
+   * written to disk.
+   * @param {string} filePath The file for which to set lint results.
+   * @param {ConfigArray} config The config of the file.
+   * @param {Object} result The lint result to be set for the file.
+   * @returns {void}
+   */
+
+
+  setCachedLintResults(filePath, config, result) {
+    if (result && Object.prototype.hasOwnProperty.call(result, "output")) {
+      return;
+    }
+
+    const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath);
+
+    if (fileDescriptor && !fileDescriptor.notFound) {
+      debug(`Updating cached result: ${filePath}`); // Serialize the result, except that we want to remove the file source if present.
+
+      const resultToSerialize = Object.assign({}, result);
+      /*
+       * Set result.source to null.
+       * In `getCachedLintResults`, if source is explicitly null, we will
+       * read the file from the filesystem to set the value again.
+       */
+
+      if (Object.prototype.hasOwnProperty.call(resultToSerialize, "source")) {
+        resultToSerialize.source = null;
+      }
+
+      fileDescriptor.meta.results = resultToSerialize;
+      fileDescriptor.meta.hashOfConfig = hashOfConfigFor(config);
+    }
+  }
+  /**
+   * Persists the in-memory cache to disk.
+   * @returns {void}
+   */
+
+
+  reconcile() {
+    debug(`Persisting cached results: ${this.cacheFileLocation}`);
+    this.fileEntryCache.reconcile();
+  }
+
+}
+
+module.exports = LintResultCache;
+
+/***/ }),
+/* 994 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var path = __webpack_require__(501);
+
+var crypto = __webpack_require__(995);
+
+module.exports = {
+  createFromFile: function (filePath, useChecksum) {
+    var fname = path.basename(filePath);
+    var dir = path.dirname(filePath);
+    return this.create(fname, dir, useChecksum);
+  },
+  create: function (cacheId, _path, useChecksum) {
+    var fs = __webpack_require__(971);
+
+    var flatCache = __webpack_require__(996);
+
+    var cache = flatCache.load(cacheId, _path);
+    var normalizedEntries = {};
+
+    var removeNotFoundFiles = function removeNotFoundFiles() {
+      const cachedEntries = cache.keys(); // remove not found entries
+
+      cachedEntries.forEach(function remover(fPath) {
+        try {
+          fs.statSync(fPath);
+        } catch (err) {
+          if (err.code === 'ENOENT') {
+            cache.removeKey(fPath);
+          }
+        }
+      });
+    };
+
+    removeNotFoundFiles();
+    return {
+      /**
+       * the flat cache storage used to persist the metadata of the `files
+       * @type {Object}
+       */
+      cache: cache,
+
+      /**
+       * Given a buffer, calculate md5 hash of its content.
+       * @method getHash
+       * @param  {Buffer} buffer   buffer to calculate hash on
+       * @return {String}          content hash digest
+       */
+      getHash: function (buffer) {
+        return crypto.createHash('md5').update(buffer).digest('hex');
+      },
+
+      /**
+       * Return whether or not a file has changed since last time reconcile was called.
+       * @method hasFileChanged
+       * @param  {String}  file  the filepath to check
+       * @return {Boolean}       wheter or not the file has changed
+       */
+      hasFileChanged: function (file) {
+        return this.getFileDescriptor(file).changed;
+      },
+
+      /**
+       * given an array of file paths it return and object with three arrays:
+       *  - changedFiles: Files that changed since previous run
+       *  - notChangedFiles: Files that haven't change
+       *  - notFoundFiles: Files that were not found, probably deleted
+       *
+       * @param  {Array} files the files to analyze and compare to the previous seen files
+       * @return {[type]}       [description]
+       */
+      analyzeFiles: function (files) {
+        var me = this;
+        files = files || [];
+        var res = {
+          changedFiles: [],
+          notFoundFiles: [],
+          notChangedFiles: []
+        };
+        me.normalizeEntries(files).forEach(function (entry) {
+          if (entry.changed) {
+            res.changedFiles.push(entry.key);
+            return;
+          }
+
+          if (entry.notFound) {
+            res.notFoundFiles.push(entry.key);
+            return;
+          }
+
+          res.notChangedFiles.push(entry.key);
+        });
+        return res;
+      },
+      getFileDescriptor: function (file) {
+        var fstat;
+
+        try {
+          fstat = fs.statSync(file);
+        } catch (ex) {
+          this.removeEntry(file);
+          return {
+            key: file,
+            notFound: true,
+            err: ex
+          };
+        }
+
+        if (useChecksum) {
+          return this._getFileDescriptorUsingChecksum(file);
+        }
+
+        return this._getFileDescriptorUsingMtimeAndSize(file, fstat);
+      },
+      _getFileDescriptorUsingMtimeAndSize: function (file, fstat) {
+        var meta = cache.getKey(file);
+        var cacheExists = !!meta;
+        var cSize = fstat.size;
+        var cTime = fstat.mtime.getTime();
+        var isDifferentDate;
+        var isDifferentSize;
+
+        if (!meta) {
+          meta = {
+            size: cSize,
+            mtime: cTime
+          };
+        } else {
+          isDifferentDate = cTime !== meta.mtime;
+          isDifferentSize = cSize !== meta.size;
+        }
+
+        var nEntry = normalizedEntries[file] = {
+          key: file,
+          changed: !cacheExists || isDifferentDate || isDifferentSize,
+          meta: meta
+        };
+        return nEntry;
+      },
+      _getFileDescriptorUsingChecksum: function (file) {
+        var meta = cache.getKey(file);
+        var cacheExists = !!meta;
+        var contentBuffer;
+
+        try {
+          contentBuffer = fs.readFileSync(file);
+        } catch (ex) {
+          contentBuffer = '';
+        }
+
+        var isDifferent = true;
+        var hash = this.getHash(contentBuffer);
+
+        if (!meta) {
+          meta = {
+            hash: hash
+          };
+        } else {
+          isDifferent = hash !== meta.hash;
+        }
+
+        var nEntry = normalizedEntries[file] = {
+          key: file,
+          changed: !cacheExists || isDifferent,
+          meta: meta
+        };
+        return nEntry;
+      },
+
+      /**
+       * Return the list o the files that changed compared
+       * against the ones stored in the cache
+       *
+       * @method getUpdated
+       * @param files {Array} the array of files to compare against the ones in the cache
+       * @returns {Array}
+       */
+      getUpdatedFiles: function (files) {
+        var me = this;
+        files = files || [];
+        return me.normalizeEntries(files).filter(function (entry) {
+          return entry.changed;
+        }).map(function (entry) {
+          return entry.key;
+        });
+      },
+
+      /**
+       * return the list of files
+       * @method normalizeEntries
+       * @param files
+       * @returns {*}
+       */
+      normalizeEntries: function (files) {
+        files = files || [];
+        var me = this;
+        var nEntries = files.map(function (file) {
+          return me.getFileDescriptor(file);
+        }); //normalizeEntries = nEntries;
+
+        return nEntries;
+      },
+
+      /**
+       * Remove an entry from the file-entry-cache. Useful to force the file to still be considered
+       * modified the next time the process is run
+       *
+       * @method removeEntry
+       * @param entryName
+       */
+      removeEntry: function (entryName) {
+        delete normalizedEntries[entryName];
+        cache.removeKey(entryName);
+      },
+
+      /**
+       * Delete the cache file from the disk
+       * @method deleteCacheFile
+       */
+      deleteCacheFile: function () {
+        cache.removeCacheFile();
+      },
+
+      /**
+       * remove the cache from the file and clear the memory cache
+       */
+      destroy: function () {
+        normalizedEntries = {};
+        cache.destroy();
+      },
+      _getMetaForFileUsingCheckSum: function (cacheEntry) {
+        var contentBuffer = fs.readFileSync(cacheEntry.key);
+        var hash = this.getHash(contentBuffer);
+        var meta = Object.assign(cacheEntry.meta, {
+          hash: hash
+        });
+        delete meta.size;
+        delete meta.mtime;
+        return meta;
+      },
+      _getMetaForFileUsingMtimeAndSize: function (cacheEntry) {
+        var stat = fs.statSync(cacheEntry.key);
+        var meta = Object.assign(cacheEntry.meta, {
+          size: stat.size,
+          mtime: stat.mtime.getTime()
+        });
+        delete meta.hash;
+        return meta;
+      },
+
+      /**
+       * Sync the files and persist them to the cache
+       * @method reconcile
+       */
+      reconcile: function (noPrune) {
+        removeNotFoundFiles();
+        noPrune = typeof noPrune === 'undefined' ? true : noPrune;
+        var entries = normalizedEntries;
+        var keys = Object.keys(entries);
+
+        if (keys.length === 0) {
+          return;
+        }
+
+        var me = this;
+        keys.forEach(function (entryName) {
+          var cacheEntry = entries[entryName];
+
+          try {
+            var meta = useChecksum ? me._getMetaForFileUsingCheckSum(cacheEntry) : me._getMetaForFileUsingMtimeAndSize(cacheEntry);
+            cache.setKey(entryName, meta);
+          } catch (err) {
+            // if the file does not exists we don't save it
+            // other errors are just thrown
+            if (err.code !== 'ENOENT') {
+              throw err;
+            }
+          }
+        });
+        cache.save(noPrune);
+      }
+    };
+  }
+};
+
+/***/ }),
+/* 995 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("crypto");
+
+/***/ }),
+/* 996 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var path = __webpack_require__(501);
+
+var fs = __webpack_require__(971);
+
+var utils = __webpack_require__(997);
+
+var del = __webpack_require__(999);
+
+var writeJSON = utils.writeJSON;
+var cache = {
+  /**
+   * Load a cache identified by the given Id. If the element does not exists, then initialize an empty
+   * cache storage. If specified `cacheDir` will be used as the directory to persist the data to. If omitted
+   * then the cache module directory `./cache` will be used instead
+   *
+   * @method load
+   * @param docId {String} the id of the cache, would also be used as the name of the file cache
+   * @param [cacheDir] {String} directory for the cache entry
+   */
+  load: function (docId, cacheDir) {
+    var me = this;
+    me._visited = {};
+    me._persisted = {};
+    me._pathToFile = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, '../.cache/', docId);
+
+    if (fs.existsSync(me._pathToFile)) {
+      me._persisted = utils.tryParse(me._pathToFile, {});
+    }
+  },
+
+  /**
+   * Load the cache from the provided file
+   * @method loadFile
+   * @param  {String} pathToFile the path to the file containing the info for the cache
+   */
+  loadFile: function (pathToFile) {
+    var me = this;
+    var dir = path.dirname(pathToFile);
+    var fName = path.basename(pathToFile);
+    me.load(fName, dir);
+  },
+
+  /**
+   * Returns the entire persisted object
+   * @method all
+   * @returns {*}
+   */
+  all: function () {
+    return this._persisted;
+  },
+  keys: function () {
+    return Object.keys(this._persisted);
+  },
+
+  /**
+   * sets a key to a given value
+   * @method setKey
+   * @param key {string} the key to set
+   * @param value {object} the value of the key. Could be any object that can be serialized with JSON.stringify
+   */
+  setKey: function (key, value) {
+    this._visited[key] = true;
+    this._persisted[key] = value;
+  },
+
+  /**
+   * remove a given key from the cache
+   * @method removeKey
+   * @param key {String} the key to remove from the object
+   */
+  removeKey: function (key) {
+    delete this._visited[key]; // esfmt-ignore-line
+
+    delete this._persisted[key]; // esfmt-ignore-line
+  },
+
+  /**
+   * Return the value of the provided key
+   * @method getKey
+   * @param key {String} the name of the key to retrieve
+   * @returns {*} the value from the key
+   */
+  getKey: function (key) {
+    this._visited[key] = true;
+    return this._persisted[key];
+  },
+
+  /**
+   * Remove keys that were not accessed/set since the
+   * last time the `prune` method was called.
+   * @method _prune
+   * @private
+   */
+  _prune: function () {
+    var me = this;
+    var obj = {};
+    var keys = Object.keys(me._visited); // no keys visited for either get or set value
+
+    if (keys.length === 0) {
+      return;
+    }
+
+    keys.forEach(function (key) {
+      obj[key] = me._persisted[key];
+    });
+    me._visited = {};
+    me._persisted = obj;
+  },
+
+  /**
+   * Save the state of the cache identified by the docId to disk
+   * as a JSON structure
+   * @param [noPrune=false] {Boolean} whether to remove from cache the non visited files
+   * @method save
+   */
+  save: function (noPrune) {
+    var me = this;
+    !noPrune && me._prune();
+    writeJSON(me._pathToFile, me._persisted);
+  },
+
+  /**
+   * remove the file where the cache is persisted
+   * @method removeCacheFile
+   * @return {Boolean} true or false if the file was successfully deleted
+   */
+  removeCacheFile: function () {
+    return del(this._pathToFile);
+  },
+
+  /**
+   * Destroy the file cache and cache content.
+   * @method destroy
+   */
+  destroy: function () {
+    var me = this;
+    me._visited = {};
+    me._persisted = {};
+    me.removeCacheFile();
+  }
+};
+module.exports = {
+  /**
+   * Alias for create. Should be considered depreacted. Will be removed in next releases
+   *
+   * @method load
+   * @param docId {String} the id of the cache, would also be used as the name of the file cache
+   * @param [cacheDir] {String} directory for the cache entry
+   * @returns {cache} cache instance
+   */
+  load: function (docId, cacheDir) {
+    return this.create(docId, cacheDir);
+  },
+
+  /**
+   * Load a cache identified by the given Id. If the element does not exists, then initialize an empty
+   * cache storage.
+   *
+   * @method create
+   * @param docId {String} the id of the cache, would also be used as the name of the file cache
+   * @param [cacheDir] {String} directory for the cache entry
+   * @returns {cache} cache instance
+   */
+  create: function (docId, cacheDir) {
+    var obj = Object.create(cache);
+    obj.load(docId, cacheDir);
+    return obj;
+  },
+  createFromFile: function (filePath) {
+    var obj = Object.create(cache);
+    obj.loadFile(filePath);
+    return obj;
+  },
+
+  /**
+   * Clear the cache identified by the given id. Caches stored in a different cache directory can be deleted directly
+   *
+   * @method clearCache
+   * @param docId {String} the id of the cache, would also be used as the name of the file cache
+   * @param cacheDir {String} the directory where the cache file was written
+   * @returns {Boolean} true if the cache folder was deleted. False otherwise
+   */
+  clearCacheById: function (docId, cacheDir) {
+    var filePath = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, '../.cache/', docId);
+    return del(filePath);
+  },
+
+  /**
+   * Remove all cache stored in the cache directory
+   * @method clearAll
+   * @returns {Boolean} true if the cache folder was deleted. False otherwise
+   */
+  clearAll: function (cacheDir) {
+    var filePath = cacheDir ? path.resolve(cacheDir) : path.resolve(__dirname, '../.cache/');
+    return del(filePath);
+  }
+};
+
+/***/ }),
+/* 997 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var fs = __webpack_require__(971);
+
+var path = __webpack_require__(501);
+
+var flatted = __webpack_require__(998);
+
+module.exports = {
+  tryParse: function (filePath, defaultValue) {
+    var result;
+
+    try {
+      result = this.readJSON(filePath);
+    } catch (ex) {
+      result = defaultValue;
+    }
+
+    return result;
+  },
+
+  /**
+   * Read json file synchronously using flatted
+   *
+   * @method readJSON
+   * @param  {String} filePath Json filepath
+   * @returns {*} parse result
+   */
+  readJSON: function (filePath) {
+    return flatted.parse(fs.readFileSync(filePath, {
+      encoding: 'utf8'
+    }));
+  },
+
+  /**
+   * Write json file synchronously using circular-json
+   *
+   * @method writeJSON
+   * @param  {String} filePath Json filepath
+   * @param  {*} data Object to serialize
+   */
+  writeJSON: function (filePath, data) {
+    fs.mkdirSync(path.dirname(filePath), {
+      recursive: true
+    });
+    fs.writeFileSync(filePath, flatted.stringify(data));
+  }
+};
+
+/***/ }),
+/* 998 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+/*! (c) 2020 Andrea Giammarchi */
+
+const {
+  parse: $parse,
+  stringify: $stringify
+} = JSON;
+const {
+  keys
+} = Object;
+const Primitive = String; // it could be Number
+
+const primitive = 'string'; // it could be 'number'
+
+const ignore = {};
+const object = 'object';
+
+const noop = (_, value) => value;
+
+const primitives = value => value instanceof Primitive ? Primitive(value) : value;
+
+const Primitives = (_, value) => typeof value === primitive ? new Primitive(value) : value;
+
+const revive = (input, parsed, output, $) => {
+  const lazy = [];
+
+  for (let ke = keys(output), {
+    length
+  } = ke, y = 0; y < length; y++) {
+    const k = ke[y];
+    const value = output[k];
+
+    if (value instanceof Primitive) {
+      const tmp = input[value];
+
+      if (typeof tmp === object && !parsed.has(tmp)) {
+        parsed.add(tmp);
+        output[k] = ignore;
+        lazy.push({
+          k,
+          a: [input, parsed, tmp, $]
+        });
+      } else output[k] = $.call(output, k, tmp);
+    } else if (output[k] !== ignore) output[k] = $.call(output, k, value);
+  }
+
+  for (let {
+    length
+  } = lazy, i = 0; i < length; i++) {
+    const {
+      k,
+      a
+    } = lazy[i];
+    output[k] = $.call(output, k, revive.apply(null, a));
+  }
+
+  return output;
+};
+
+const set = (known, input, value) => {
+  const index = Primitive(input.push(value) - 1);
+  known.set(value, index);
+  return index;
+};
+
+const parse = (text, reviver) => {
+  const input = $parse(text, Primitives).map(primitives);
+  const value = input[0];
+  const $ = reviver || noop;
+  const tmp = typeof value === object && value ? revive(input, new Set(), value, $) : value;
+  return $.call({
+    '': tmp
+  }, '', tmp);
+};
+
+exports.parse = parse;
+
+const stringify = (value, replacer, space) => {
+  const $ = replacer && typeof replacer === object ? (k, v) => k === '' || -1 < replacer.indexOf(k) ? v : void 0 : replacer || noop;
+  const known = new Map();
+  const input = [];
+  const output = [];
+  let i = +set(known, input, $.call({
+    '': value
+  }, '', value));
+  let firstRun = !i;
+
+  while (i < input.length) {
+    firstRun = true;
+    output[i] = $stringify(input[i++], replace, space);
+  }
+
+  return '[' + output.join(',') + ']';
+
+  function replace(key, value) {
+    if (firstRun) {
+      firstRun = !firstRun;
+      return value;
+    }
+
+    const after = $.call(this, key, value);
+
+    switch (typeof after) {
+      case object:
+        if (after === null) return after;
+
+      case primitive:
+        return known.get(after) || set(known, input, after);
+    }
+
+    return after;
+  }
+};
+
+exports.stringify = stringify;
+
+const toJSON = any => $parse(stringify(any));
+
+exports.toJSON = toJSON;
+
+const fromJSON = any => parse($stringify(any));
+
+exports.fromJSON = fromJSON;
+
+/***/ }),
+/* 999 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var rimraf = (__webpack_require__(1000).sync);
+
+var fs = __webpack_require__(971);
+
+module.exports = function del(file) {
+  if (fs.existsSync(file)) {
+    //if rimraf doesn't throw then the file has been deleted or didn't exist
+    rimraf(file, {
+      glob: false
+    });
+    return true;
+  }
+
+  return false;
+};
+
+/***/ }),
+/* 1000 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+const assert = __webpack_require__(503);
+
+const path = __webpack_require__(501);
+
+const fs = __webpack_require__(971);
+
+let glob = undefined;
+
+try {
+  glob = __webpack_require__(1001);
+} catch (_err) {// treat glob as optional.
+}
+
+const defaultGlobOpts = {
+  nosort: true,
+  silent: true
+}; // for EMFILE handling
+
+let timeout = 0;
+const isWindows = process.platform === "win32";
+
+const defaults = options => {
+  const methods = ['unlink', 'chmod', 'stat', 'lstat', 'rmdir', 'readdir'];
+  methods.forEach(m => {
+    options[m] = options[m] || fs[m];
+    m = m + 'Sync';
+    options[m] = options[m] || fs[m];
+  });
+  options.maxBusyTries = options.maxBusyTries || 3;
+  options.emfileWait = options.emfileWait || 1000;
+
+  if (options.glob === false) {
+    options.disableGlob = true;
+  }
+
+  if (options.disableGlob !== true && glob === undefined) {
+    throw Error('glob dependency not found, set `options.disableGlob = true` if intentional');
+  }
+
+  options.disableGlob = options.disableGlob || false;
+  options.glob = options.glob || defaultGlobOpts;
+};
+
+const rimraf = (p, options, cb) => {
+  if (typeof options === 'function') {
+    cb = options;
+    options = {};
+  }
+
+  assert(p, 'rimraf: missing path');
+  assert.equal(typeof p, 'string', 'rimraf: path should be a string');
+  assert.equal(typeof cb, 'function', 'rimraf: callback function required');
+  assert(options, 'rimraf: invalid options argument provided');
+  assert.equal(typeof options, 'object', 'rimraf: options should be object');
+  defaults(options);
+  let busyTries = 0;
+  let errState = null;
+  let n = 0;
+
+  const next = er => {
+    errState = errState || er;
+    if (--n === 0) cb(errState);
+  };
+
+  const afterGlob = (er, results) => {
+    if (er) return cb(er);
+    n = results.length;
+    if (n === 0) return cb();
+    results.forEach(p => {
+      const CB = er => {
+        if (er) {
+          if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && busyTries < options.maxBusyTries) {
+            busyTries++; // try again, with the same exact callback as this one.
+
+            return setTimeout(() => rimraf_(p, options, CB), busyTries * 100);
+          } // this one won't happen if graceful-fs is used.
+
+
+          if (er.code === "EMFILE" && timeout < options.emfileWait) {
+            return setTimeout(() => rimraf_(p, options, CB), timeout++);
+          } // already gone
+
+
+          if (er.code === "ENOENT") er = null;
+        }
+
+        timeout = 0;
+        next(er);
+      };
+
+      rimraf_(p, options, CB);
+    });
+  };
+
+  if (options.disableGlob || !glob.hasMagic(p)) return afterGlob(null, [p]);
+  options.lstat(p, (er, stat) => {
+    if (!er) return afterGlob(null, [p]);
+    glob(p, options.glob, afterGlob);
+  });
+}; // Two possible strategies.
+// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
+// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
+//
+// Both result in an extra syscall when you guess wrong.  However, there
+// are likely far more normal files in the world than directories.  This
+// is based on the assumption that a the average number of files per
+// directory is >= 1.
+//
+// If anyone ever complains about this, then I guess the strategy could
+// be made configurable somehow.  But until then, YAGNI.
+
+
+const rimraf_ = (p, options, cb) => {
+  assert(p);
+  assert(options);
+  assert(typeof cb === 'function'); // sunos lets the root user unlink directories, which is... weird.
+  // so we have to lstat here and make sure it's not a dir.
+
+  options.lstat(p, (er, st) => {
+    if (er && er.code === "ENOENT") return cb(null); // Windows can EPERM on stat.  Life is suffering.
+
+    if (er && er.code === "EPERM" && isWindows) fixWinEPERM(p, options, er, cb);
+    if (st && st.isDirectory()) return rmdir(p, options, er, cb);
+    options.unlink(p, er => {
+      if (er) {
+        if (er.code === "ENOENT") return cb(null);
+        if (er.code === "EPERM") return isWindows ? fixWinEPERM(p, options, er, cb) : rmdir(p, options, er, cb);
+        if (er.code === "EISDIR") return rmdir(p, options, er, cb);
+      }
+
+      return cb(er);
+    });
+  });
+};
+
+const fixWinEPERM = (p, options, er, cb) => {
+  assert(p);
+  assert(options);
+  assert(typeof cb === 'function');
+  options.chmod(p, 0o666, er2 => {
+    if (er2) cb(er2.code === "ENOENT" ? null : er);else options.stat(p, (er3, stats) => {
+      if (er3) cb(er3.code === "ENOENT" ? null : er);else if (stats.isDirectory()) rmdir(p, options, er, cb);else options.unlink(p, cb);
+    });
+  });
+};
+
+const fixWinEPERMSync = (p, options, er) => {
+  assert(p);
+  assert(options);
+
+  try {
+    options.chmodSync(p, 0o666);
+  } catch (er2) {
+    if (er2.code === "ENOENT") return;else throw er;
+  }
+
+  let stats;
+
+  try {
+    stats = options.statSync(p);
+  } catch (er3) {
+    if (er3.code === "ENOENT") return;else throw er;
+  }
+
+  if (stats.isDirectory()) rmdirSync(p, options, er);else options.unlinkSync(p);
+};
+
+const rmdir = (p, options, originalEr, cb) => {
+  assert(p);
+  assert(options);
+  assert(typeof cb === 'function'); // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
+  // if we guessed wrong, and it's not a directory, then
+  // raise the original error.
+
+  options.rmdir(p, er => {
+    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) rmkids(p, options, cb);else if (er && er.code === "ENOTDIR") cb(originalEr);else cb(er);
+  });
+};
+
+const rmkids = (p, options, cb) => {
+  assert(p);
+  assert(options);
+  assert(typeof cb === 'function');
+  options.readdir(p, (er, files) => {
+    if (er) return cb(er);
+    let n = files.length;
+    if (n === 0) return options.rmdir(p, cb);
+    let errState;
+    files.forEach(f => {
+      rimraf(path.join(p, f), options, er => {
+        if (errState) return;
+        if (er) return cb(errState = er);
+        if (--n === 0) options.rmdir(p, cb);
+      });
+    });
+  });
+}; // this looks simpler, and is strictly *faster*, but will
+// tie up the JavaScript thread and fail on excessively
+// deep directory trees.
+
+
+const rimrafSync = (p, options) => {
+  options = options || {};
+  defaults(options);
+  assert(p, 'rimraf: missing path');
+  assert.equal(typeof p, 'string', 'rimraf: path should be a string');
+  assert(options, 'rimraf: missing options');
+  assert.equal(typeof options, 'object', 'rimraf: options should be object');
+  let results;
+
+  if (options.disableGlob || !glob.hasMagic(p)) {
+    results = [p];
+  } else {
+    try {
+      options.lstatSync(p);
+      results = [p];
+    } catch (er) {
+      results = glob.sync(p, options.glob);
+    }
+  }
+
+  if (!results.length) return;
+
+  for (let i = 0; i < results.length; i++) {
+    const p = results[i];
+    let st;
+
+    try {
+      st = options.lstatSync(p);
+    } catch (er) {
+      if (er.code === "ENOENT") return; // Windows can EPERM on stat.  Life is suffering.
+
+      if (er.code === "EPERM" && isWindows) fixWinEPERMSync(p, options, er);
+    }
+
+    try {
+      // sunos lets the root user unlink directories, which is... weird.
+      if (st && st.isDirectory()) rmdirSync(p, options, null);else options.unlinkSync(p);
+    } catch (er) {
+      if (er.code === "ENOENT") return;
+      if (er.code === "EPERM") return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er);
+      if (er.code !== "EISDIR") throw er;
+      rmdirSync(p, options, er);
+    }
+  }
+};
+
+const rmdirSync = (p, options, originalEr) => {
+  assert(p);
+  assert(options);
+
+  try {
+    options.rmdirSync(p);
+  } catch (er) {
+    if (er.code === "ENOENT") return;
+    if (er.code === "ENOTDIR") throw originalEr;
+    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") rmkidsSync(p, options);
+  }
+};
+
+const rmkidsSync = (p, options) => {
+  assert(p);
+  assert(options);
+  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)); // We only end up here once we got ENOTEMPTY at least once, and
+  // at this point, we are guaranteed to have removed all the kids.
+  // So, we know that it won't be ENOENT or ENOTDIR or anything else.
+  // try really hard to delete stuff on windows, because it has a
+  // PROFOUNDLY annoying habit of not closing handles promptly when
+  // files are deleted, resulting in spurious ENOTEMPTY errors.
+
+  const retries = isWindows ? 100 : 1;
+  let i = 0;
+
+  do {
+    let threw = true;
+
+    try {
+      const ret = options.rmdirSync(p, options);
+      threw = false;
+      return ret;
+    } finally {
+      if (++i < retries && threw) continue;
+    }
+  } while (true);
+};
+
+module.exports = rimraf;
+rimraf.sync = rimrafSync;
+
+/***/ }),
+/* 1001 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+// Approach:
+//
+// 1. Get the minimatch set
+// 2. For each pattern in the set, PROCESS(pattern, false)
+// 3. Store matches per-set, then uniq them
+//
+// PROCESS(pattern, inGlobStar)
+// Get the first [n] items from pattern that are all strings
+// Join these together.  This is PREFIX.
+//   If there is no more remaining, then stat(PREFIX) and
+//   add to matches if it succeeds.  END.
+//
+// If inGlobStar and PREFIX is symlink and points to dir
+//   set ENTRIES = []
+// else readdir(PREFIX) as ENTRIES
+//   If fail, END
+//
+// with ENTRIES
+//   If pattern[n] is GLOBSTAR
+//     // handle the case where the globstar match is empty
+//     // by pruning it out, and testing the resulting pattern
+//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
+//     // handle other cases.
+//     for ENTRY in ENTRIES (not dotfiles)
+//       // attach globstar + tail onto the entry
+//       // Mark that this entry is a globstar match
+//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
+//
+//   else // not globstar
+//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
+//       Test ENTRY against pattern[n]
+//       If fails, continue
+//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
+//
+// Caveat:
+//   Cache all stats and readdirs results to minimize syscall.  Since all
+//   we ever care about is existence and directory-ness, we can just keep
+//   `true` for files, and [children,...] for directories, or `false` for
+//   things that don't exist.
+module.exports = glob;
+
+var rp = __webpack_require__(1002);
+
+var minimatch = __webpack_require__(953);
+
+var Minimatch = minimatch.Minimatch;
+
+var inherits = __webpack_require__(1004);
+
+var EE = (__webpack_require__(1005).EventEmitter);
+
+var path = __webpack_require__(501);
+
+var assert = __webpack_require__(503);
+
+var isAbsolute = __webpack_require__(1006);
+
+var globSync = __webpack_require__(1007);
+
+var common = __webpack_require__(1008);
+
+var setopts = common.setopts;
+var ownProp = common.ownProp;
+
+var inflight = __webpack_require__(1009);
+
+var util = __webpack_require__(516);
+
+var childrenIgnored = common.childrenIgnored;
+var isIgnored = common.isIgnored;
+
+var once = __webpack_require__(1011);
+
+function glob(pattern, options, cb) {
+  if (typeof options === 'function') cb = options, options = {};
+  if (!options) options = {};
+
+  if (options.sync) {
+    if (cb) throw new TypeError('callback provided to sync glob');
+    return globSync(pattern, options);
+  }
+
+  return new Glob(pattern, options, cb);
+}
+
+glob.sync = globSync;
+var GlobSync = glob.GlobSync = globSync.GlobSync; // old api surface
+
+glob.glob = glob;
+
+function extend(origin, add) {
+  if (add === null || typeof add !== 'object') {
+    return origin;
+  }
+
+  var keys = Object.keys(add);
+  var i = keys.length;
+
+  while (i--) {
+    origin[keys[i]] = add[keys[i]];
+  }
+
+  return origin;
+}
+
+glob.hasMagic = function (pattern, options_) {
+  var options = extend({}, options_);
+  options.noprocess = true;
+  var g = new Glob(pattern, options);
+  var set = g.minimatch.set;
+  if (!pattern) return false;
+  if (set.length > 1) return true;
+
+  for (var j = 0; j < set[0].length; j++) {
+    if (typeof set[0][j] !== 'string') return true;
+  }
+
+  return false;
+};
+
+glob.Glob = Glob;
+inherits(Glob, EE);
+
+function Glob(pattern, options, cb) {
+  if (typeof options === 'function') {
+    cb = options;
+    options = null;
+  }
+
+  if (options && options.sync) {
+    if (cb) throw new TypeError('callback provided to sync glob');
+    return new GlobSync(pattern, options);
+  }
+
+  if (!(this instanceof Glob)) return new Glob(pattern, options, cb);
+  setopts(this, pattern, options);
+  this._didRealPath = false; // process each pattern in the minimatch set
+
+  var n = this.minimatch.set.length; // The matches are stored as {<filename>: true,...} so that
+  // duplicates are automagically pruned.
+  // Later, we do an Object.keys() on these.
+  // Keep them as a list so we can fill in when nonull is set.
+
+  this.matches = new Array(n);
+
+  if (typeof cb === 'function') {
+    cb = once(cb);
+    this.on('error', cb);
+    this.on('end', function (matches) {
+      cb(null, matches);
+    });
+  }
+
+  var self = this;
+  this._processing = 0;
+  this._emitQueue = [];
+  this._processQueue = [];
+  this.paused = false;
+  if (this.noprocess) return this;
+  if (n === 0) return done();
+  var sync = true;
+
+  for (var i = 0; i < n; i++) {
+    this._process(this.minimatch.set[i], i, false, done);
+  }
+
+  sync = false;
+
+  function done() {
+    --self._processing;
+
+    if (self._processing <= 0) {
+      if (sync) {
+        process.nextTick(function () {
+          self._finish();
+        });
+      } else {
+        self._finish();
+      }
+    }
+  }
+}
+
+Glob.prototype._finish = function () {
+  assert(this instanceof Glob);
+  if (this.aborted) return;
+  if (this.realpath && !this._didRealpath) return this._realpath();
+  common.finish(this);
+  this.emit('end', this.found);
+};
+
+Glob.prototype._realpath = function () {
+  if (this._didRealpath) return;
+  this._didRealpath = true;
+  var n = this.matches.length;
+  if (n === 0) return this._finish();
+  var self = this;
+
+  for (var i = 0; i < this.matches.length; i++) this._realpathSet(i, next);
+
+  function next() {
+    if (--n === 0) self._finish();
+  }
+};
+
+Glob.prototype._realpathSet = function (index, cb) {
+  var matchset = this.matches[index];
+  if (!matchset) return cb();
+  var found = Object.keys(matchset);
+  var self = this;
+  var n = found.length;
+  if (n === 0) return cb();
+  var set = this.matches[index] = Object.create(null);
+  found.forEach(function (p, i) {
+    // If there's a problem with the stat, then it means that
+    // one or more of the links in the realpath couldn't be
+    // resolved.  just return the abs value in that case.
+    p = self._makeAbs(p);
+    rp.realpath(p, self.realpathCache, function (er, real) {
+      if (!er) set[real] = true;else if (er.syscall === 'stat') set[p] = true;else self.emit('error', er); // srsly wtf right here
+
+      if (--n === 0) {
+        self.matches[index] = set;
+        cb();
+      }
+    });
+  });
+};
+
+Glob.prototype._mark = function (p) {
+  return common.mark(this, p);
+};
+
+Glob.prototype._makeAbs = function (f) {
+  return common.makeAbs(this, f);
+};
+
+Glob.prototype.abort = function () {
+  this.aborted = true;
+  this.emit('abort');
+};
+
+Glob.prototype.pause = function () {
+  if (!this.paused) {
+    this.paused = true;
+    this.emit('pause');
+  }
+};
+
+Glob.prototype.resume = function () {
+  if (this.paused) {
+    this.emit('resume');
+    this.paused = false;
+
+    if (this._emitQueue.length) {
+      var eq = this._emitQueue.slice(0);
+
+      this._emitQueue.length = 0;
+
+      for (var i = 0; i < eq.length; i++) {
+        var e = eq[i];
+
+        this._emitMatch(e[0], e[1]);
+      }
+    }
+
+    if (this._processQueue.length) {
+      var pq = this._processQueue.slice(0);
+
+      this._processQueue.length = 0;
+
+      for (var i = 0; i < pq.length; i++) {
+        var p = pq[i];
+        this._processing--;
+
+        this._process(p[0], p[1], p[2], p[3]);
+      }
+    }
+  }
+};
+
+Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
+  assert(this instanceof Glob);
+  assert(typeof cb === 'function');
+  if (this.aborted) return;
+  this._processing++;
+
+  if (this.paused) {
+    this._processQueue.push([pattern, index, inGlobStar, cb]);
+
+    return;
+  } //console.error('PROCESS %d', this._processing, pattern)
+  // Get the first [n] parts of pattern that are all strings.
+
+
+  var n = 0;
+
+  while (typeof pattern[n] === 'string') {
+    n++;
+  } // now n is the index of the first one that is *not* a string.
+  // see if there's anything else
+
+
+  var prefix;
+
+  switch (n) {
+    // if not, then this is rather simple
+    case pattern.length:
+      this._processSimple(pattern.join('/'), index, cb);
+
+      return;
+
+    case 0:
+      // pattern *starts* with some non-trivial item.
+      // going to readdir(cwd), but not include the prefix in matches.
+      prefix = null;
+      break;
+
+    default:
+      // pattern has some string bits in the front.
+      // whatever it starts with, whether that's 'absolute' like /foo/bar,
+      // or 'relative' like '../baz'
+      prefix = pattern.slice(0, n).join('/');
+      break;
+  }
+
+  var remain = pattern.slice(n); // get the list of entries.
+
+  var read;
+  if (prefix === null) read = '.';else if (isAbsolute(prefix) || isAbsolute(pattern.map(function (p) {
+    return typeof p === 'string' ? p : '[*]';
+  }).join('/'))) {
+    if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix;
+    read = prefix;
+  } else read = prefix;
+
+  var abs = this._makeAbs(read); //if ignored, skip _processing
+
+
+  if (childrenIgnored(this, read)) return cb();
+  var isGlobStar = remain[0] === minimatch.GLOBSTAR;
+  if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb);else this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb);
+};
+
+Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+  var self = this;
+
+  this._readdir(abs, inGlobStar, function (er, entries) {
+    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb);
+  });
+};
+
+Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+  // if the abs isn't a dir, then nothing can match!
+  if (!entries) return cb(); // It will only match dot entries if it starts with a dot, or if
+  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
+
+  var pn = remain[0];
+  var negate = !!this.minimatch.negate;
+  var rawGlob = pn._glob;
+  var dotOk = this.dot || rawGlob.charAt(0) === '.';
+  var matchedEntries = [];
+
+  for (var i = 0; i < entries.length; i++) {
+    var e = entries[i];
+
+    if (e.charAt(0) !== '.' || dotOk) {
+      var m;
+
+      if (negate && !prefix) {
+        m = !e.match(pn);
+      } else {
+        m = e.match(pn);
+      }
+
+      if (m) matchedEntries.push(e);
+    }
+  } //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
+
+
+  var len = matchedEntries.length; // If there are no matched entries, then nothing matches.
+
+  if (len === 0) return cb(); // if this is the last remaining pattern bit, then no need for
+  // an additional stat *unless* the user has specified mark or
+  // stat explicitly.  We know they exist, since readdir returned
+  // them.
+
+  if (remain.length === 1 && !this.mark && !this.stat) {
+    if (!this.matches[index]) this.matches[index] = Object.create(null);
+
+    for (var i = 0; i < len; i++) {
+      var e = matchedEntries[i];
+
+      if (prefix) {
+        if (prefix !== '/') e = prefix + '/' + e;else e = prefix + e;
+      }
+
+      if (e.charAt(0) === '/' && !this.nomount) {
+        e = path.join(this.root, e);
+      }
+
+      this._emitMatch(index, e);
+    } // This was the last one, and no stats were needed
+
+
+    return cb();
+  } // now test all matched entries as stand-ins for that part
+  // of the pattern.
+
+
+  remain.shift();
+
+  for (var i = 0; i < len; i++) {
+    var e = matchedEntries[i];
+    var newPattern;
+
+    if (prefix) {
+      if (prefix !== '/') e = prefix + '/' + e;else e = prefix + e;
+    }
+
+    this._process([e].concat(remain), index, inGlobStar, cb);
+  }
+
+  cb();
+};
+
+Glob.prototype._emitMatch = function (index, e) {
+  if (this.aborted) return;
+  if (isIgnored(this, e)) return;
+
+  if (this.paused) {
+    this._emitQueue.push([index, e]);
+
+    return;
+  }
+
+  var abs = isAbsolute(e) ? e : this._makeAbs(e);
+  if (this.mark) e = this._mark(e);
+  if (this.absolute) e = abs;
+  if (this.matches[index][e]) return;
+
+  if (this.nodir) {
+    var c = this.cache[abs];
+    if (c === 'DIR' || Array.isArray(c)) return;
+  }
+
+  this.matches[index][e] = true;
+  var st = this.statCache[abs];
+  if (st) this.emit('stat', e, st);
+  this.emit('match', e);
+};
+
+Glob.prototype._readdirInGlobStar = function (abs, cb) {
+  if (this.aborted) return; // follow all symlinked directories forever
+  // just proceed as if this is a non-globstar situation
+
+  if (this.follow) return this._readdir(abs, false, cb);
+  var lstatkey = 'lstat\0' + abs;
+  var self = this;
+  var lstatcb = inflight(lstatkey, lstatcb_);
+  if (lstatcb) self.fs.lstat(abs, lstatcb);
+
+  function lstatcb_(er, lstat) {
+    if (er && er.code === 'ENOENT') return cb();
+    var isSym = lstat && lstat.isSymbolicLink();
+    self.symlinks[abs] = isSym; // If it's not a symlink or a dir, then it's definitely a regular file.
+    // don't bother doing a readdir in that case.
+
+    if (!isSym && lstat && !lstat.isDirectory()) {
+      self.cache[abs] = 'FILE';
+      cb();
+    } else self._readdir(abs, false, cb);
+  }
+};
+
+Glob.prototype._readdir = function (abs, inGlobStar, cb) {
+  if (this.aborted) return;
+  cb = inflight('readdir\0' + abs + '\0' + inGlobStar, cb);
+  if (!cb) return; //console.error('RD %j %j', +inGlobStar, abs)
+
+  if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs, cb);
+
+  if (ownProp(this.cache, abs)) {
+    var c = this.cache[abs];
+    if (!c || c === 'FILE') return cb();
+    if (Array.isArray(c)) return cb(null, c);
+  }
+
+  var self = this;
+  self.fs.readdir(abs, readdirCb(this, abs, cb));
+};
+
+function readdirCb(self, abs, cb) {
+  return function (er, entries) {
+    if (er) self._readdirError(abs, er, cb);else self._readdirEntries(abs, entries, cb);
+  };
+}
+
+Glob.prototype._readdirEntries = function (abs, entries, cb) {
+  if (this.aborted) return; // if we haven't asked to stat everything, then just
+  // assume that everything in there exists, so we can avoid
+  // having to stat it a second time.
+
+  if (!this.mark && !this.stat) {
+    for (var i = 0; i < entries.length; i++) {
+      var e = entries[i];
+      if (abs === '/') e = abs + e;else e = abs + '/' + e;
+      this.cache[e] = true;
+    }
+  }
+
+  this.cache[abs] = entries;
+  return cb(null, entries);
+};
+
+Glob.prototype._readdirError = function (f, er, cb) {
+  if (this.aborted) return; // handle errors, and cache the information
+
+  switch (er.code) {
+    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+
+    case 'ENOTDIR':
+      // totally normal. means it *does* exist.
+      var abs = this._makeAbs(f);
+
+      this.cache[abs] = 'FILE';
+
+      if (abs === this.cwdAbs) {
+        var error = new Error(er.code + ' invalid cwd ' + this.cwd);
+        error.path = this.cwd;
+        error.code = er.code;
+        this.emit('error', error);
+        this.abort();
+      }
+
+      break;
+
+    case 'ENOENT': // not terribly unusual
+
+    case 'ELOOP':
+    case 'ENAMETOOLONG':
+    case 'UNKNOWN':
+      this.cache[this._makeAbs(f)] = false;
+      break;
+
+    default:
+      // some unusual error.  Treat as failure.
+      this.cache[this._makeAbs(f)] = false;
+
+      if (this.strict) {
+        this.emit('error', er); // If the error is handled, then we abort
+        // if not, we threw out of here
+
+        this.abort();
+      }
+
+      if (!this.silent) console.error('glob error', er);
+      break;
+  }
+
+  return cb();
+};
+
+Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
+  var self = this;
+
+  this._readdir(abs, inGlobStar, function (er, entries) {
+    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb);
+  });
+};
+
+Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
+  //console.error('pgs2', prefix, remain[0], entries)
+  // no entries means not a dir, so it can never have matches
+  // foo.txt/** doesn't match foo.txt
+  if (!entries) return cb(); // test without the globstar, and with every child both below
+  // and replacing the globstar.
+
+  var remainWithoutGlobStar = remain.slice(1);
+  var gspref = prefix ? [prefix] : [];
+  var noGlobStar = gspref.concat(remainWithoutGlobStar); // the noGlobStar pattern exits the inGlobStar state
+
+  this._process(noGlobStar, index, false, cb);
+
+  var isSym = this.symlinks[abs];
+  var len = entries.length; // If it's a symlink, and we're in a globstar, then stop
+
+  if (isSym && inGlobStar) return cb();
+
+  for (var i = 0; i < len; i++) {
+    var e = entries[i];
+    if (e.charAt(0) === '.' && !this.dot) continue; // these two cases enter the inGlobStar state
+
+    var instead = gspref.concat(entries[i], remainWithoutGlobStar);
+
+    this._process(instead, index, true, cb);
+
+    var below = gspref.concat(entries[i], remain);
+
+    this._process(below, index, true, cb);
+  }
+
+  cb();
+};
+
+Glob.prototype._processSimple = function (prefix, index, cb) {
+  // XXX review this.  Shouldn't it be doing the mounting etc
+  // before doing stat?  kinda weird?
+  var self = this;
+
+  this._stat(prefix, function (er, exists) {
+    self._processSimple2(prefix, index, er, exists, cb);
+  });
+};
+
+Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
+  //console.error('ps2', prefix, exists)
+  if (!this.matches[index]) this.matches[index] = Object.create(null); // If it doesn't exist, then just mark the lack of results
+
+  if (!exists) return cb();
+
+  if (prefix && isAbsolute(prefix) && !this.nomount) {
+    var trail = /[\/\\]$/.test(prefix);
+
+    if (prefix.charAt(0) === '/') {
+      prefix = path.join(this.root, prefix);
+    } else {
+      prefix = path.resolve(this.root, prefix);
+      if (trail) prefix += '/';
+    }
+  }
+
+  if (process.platform === 'win32') prefix = prefix.replace(/\\/g, '/'); // Mark this as a match
+
+  this._emitMatch(index, prefix);
+
+  cb();
+}; // Returns either 'DIR', 'FILE', or false
+
+
+Glob.prototype._stat = function (f, cb) {
+  var abs = this._makeAbs(f);
+
+  var needDir = f.slice(-1) === '/';
+  if (f.length > this.maxLength) return cb();
+
+  if (!this.stat && ownProp(this.cache, abs)) {
+    var c = this.cache[abs];
+    if (Array.isArray(c)) c = 'DIR'; // It exists, but maybe not how we need it
+
+    if (!needDir || c === 'DIR') return cb(null, c);
+    if (needDir && c === 'FILE') return cb(); // otherwise we have to stat, because maybe c=true
+    // if we know it exists, but not what it is.
+  }
+
+  var exists;
+  var stat = this.statCache[abs];
+
+  if (stat !== undefined) {
+    if (stat === false) return cb(null, stat);else {
+      var type = stat.isDirectory() ? 'DIR' : 'FILE';
+      if (needDir && type === 'FILE') return cb();else return cb(null, type, stat);
+    }
+  }
+
+  var self = this;
+  var statcb = inflight('stat\0' + abs, lstatcb_);
+  if (statcb) self.fs.lstat(abs, statcb);
+
+  function lstatcb_(er, lstat) {
+    if (lstat && lstat.isSymbolicLink()) {
+      // If it's a symlink, then treat it as the target, unless
+      // the target does not exist, then treat it as a file.
+      return self.fs.stat(abs, function (er, stat) {
+        if (er) self._stat2(f, abs, null, lstat, cb);else self._stat2(f, abs, er, stat, cb);
+      });
+    } else {
+      self._stat2(f, abs, er, lstat, cb);
+    }
+  }
+};
+
+Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
+  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
+    this.statCache[abs] = false;
+    return cb();
+  }
+
+  var needDir = f.slice(-1) === '/';
+  this.statCache[abs] = stat;
+  if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) return cb(null, false, stat);
+  var c = true;
+  if (stat) c = stat.isDirectory() ? 'DIR' : 'FILE';
+  this.cache[abs] = this.cache[abs] || c;
+  if (needDir && c === 'FILE') return cb();
+  return cb(null, c, stat);
+};
+
+/***/ }),
+/* 1002 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports = realpath;
+realpath.realpath = realpath;
+realpath.sync = realpathSync;
+realpath.realpathSync = realpathSync;
+realpath.monkeypatch = monkeypatch;
+realpath.unmonkeypatch = unmonkeypatch;
+
+var fs = __webpack_require__(971);
+
+var origRealpath = fs.realpath;
+var origRealpathSync = fs.realpathSync;
+var version = process.version;
+var ok = /^v[0-5]\./.test(version);
+
+var old = __webpack_require__(1003);
+
+function newError(er) {
+  return er && er.syscall === 'realpath' && (er.code === 'ELOOP' || er.code === 'ENOMEM' || er.code === 'ENAMETOOLONG');
+}
+
+function realpath(p, cache, cb) {
+  if (ok) {
+    return origRealpath(p, cache, cb);
+  }
+
+  if (typeof cache === 'function') {
+    cb = cache;
+    cache = null;
+  }
+
+  origRealpath(p, cache, function (er, result) {
+    if (newError(er)) {
+      old.realpath(p, cache, cb);
+    } else {
+      cb(er, result);
+    }
+  });
+}
+
+function realpathSync(p, cache) {
+  if (ok) {
+    return origRealpathSync(p, cache);
+  }
+
+  try {
+    return origRealpathSync(p, cache);
+  } catch (er) {
+    if (newError(er)) {
+      return old.realpathSync(p, cache);
+    } else {
+      throw er;
+    }
+  }
+}
+
+function monkeypatch() {
+  fs.realpath = realpath;
+  fs.realpathSync = realpathSync;
+}
+
+function unmonkeypatch() {
+  fs.realpath = origRealpath;
+  fs.realpathSync = origRealpathSync;
+}
+
+/***/ }),
+/* 1003 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+var pathModule = __webpack_require__(501);
+
+var isWindows = process.platform === 'win32';
+
+var fs = __webpack_require__(971); // JavaScript implementation of realpath, ported from node pre-v6
+
+
+var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
+
+function rethrow() {
+  // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
+  // is fairly slow to generate.
+  var callback;
+
+  if (DEBUG) {
+    var backtrace = new Error();
+    callback = debugCallback;
+  } else callback = missingCallback;
+
+  return callback;
+
+  function debugCallback(err) {
+    if (err) {
+      backtrace.message = err.message;
+      err = backtrace;
+      missingCallback(err);
+    }
+  }
+
+  function missingCallback(err) {
+    if (err) {
+      if (process.throwDeprecation) throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
+      else if (!process.noDeprecation) {
+        var msg = 'fs: missing callback ' + (err.stack || err.message);
+        if (process.traceDeprecation) console.trace(msg);else console.error(msg);
+      }
+    }
+  }
+}
+
+function maybeCallback(cb) {
+  return typeof cb === 'function' ? cb : rethrow();
+}
+
+var normalize = pathModule.normalize; // Regexp that finds the next partion of a (partial) path
+// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
+
+if (isWindows) {
+  var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
+} else {
+  var nextPartRe = /(.*?)(?:[\/]+|$)/g;
+} // Regex to find the device root, including trailing slash. E.g. 'c:\\'.
+
+
+if (isWindows) {
+  var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
+} else {
+  var splitRootRe = /^[\/]*/;
+}
+
+exports.realpathSync = function realpathSync(p, cache) {
+  // make p is absolute
+  p = pathModule.resolve(p);
+
+  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
+    return cache[p];
+  }
+
+  var original = p,
+      seenLinks = {},
+      knownHard = {}; // current character position in p
+
+  var pos; // the partial path so far, including a trailing slash if any
+
+  var current; // the partial path without a trailing slash (except when pointing at a root)
+
+  var base; // the partial path scanned in the previous round, with slash
+
+  var previous;
+  start();
+
+  function start() {
+    // Skip over roots
+    var m = splitRootRe.exec(p);
+    pos = m[0].length;
+    current = m[0];
+    base = m[0];
+    previous = ''; // On windows, check that the root exists. On unix there is no need.
+
+    if (isWindows && !knownHard[base]) {
+      fs.lstatSync(base);
+      knownHard[base] = true;
+    }
+  } // walk down the path, swapping out linked pathparts for their real
+  // values
+  // NB: p.length changes.
+
+
+  while (pos < p.length) {
+    // find the next part
+    nextPartRe.lastIndex = pos;
+    var result = nextPartRe.exec(p);
+    previous = current;
+    current += result[0];
+    base = previous + result[1];
+    pos = nextPartRe.lastIndex; // continue if not a symlink
+
+    if (knownHard[base] || cache && cache[base] === base) {
+      continue;
+    }
+
+    var resolvedLink;
+
+    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
+      // some known symbolic link.  no need to stat again.
+      resolvedLink = cache[base];
+    } else {
+      var stat = fs.lstatSync(base);
+
+      if (!stat.isSymbolicLink()) {
+        knownHard[base] = true;
+        if (cache) cache[base] = base;
+        continue;
+      } // read the link if it wasn't read before
+      // dev/ino always return 0 on windows, so skip the check.
+
+
+      var linkTarget = null;
+
+      if (!isWindows) {
+        var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+
+        if (seenLinks.hasOwnProperty(id)) {
+          linkTarget = seenLinks[id];
+        }
+      }
+
+      if (linkTarget === null) {
+        fs.statSync(base);
+        linkTarget = fs.readlinkSync(base);
+      }
+
+      resolvedLink = pathModule.resolve(previous, linkTarget); // track this, if given a cache.
+
+      if (cache) cache[base] = resolvedLink;
+      if (!isWindows) seenLinks[id] = linkTarget;
+    } // resolve the link, then start over
+
+
+    p = pathModule.resolve(resolvedLink, p.slice(pos));
+    start();
+  }
+
+  if (cache) cache[original] = p;
+  return p;
+};
+
+exports.realpath = function realpath(p, cache, cb) {
+  if (typeof cb !== 'function') {
+    cb = maybeCallback(cache);
+    cache = null;
+  } // make p is absolute
+
+
+  p = pathModule.resolve(p);
+
+  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
+    return process.nextTick(cb.bind(null, null, cache[p]));
+  }
+
+  var original = p,
+      seenLinks = {},
+      knownHard = {}; // current character position in p
+
+  var pos; // the partial path so far, including a trailing slash if any
+
+  var current; // the partial path without a trailing slash (except when pointing at a root)
+
+  var base; // the partial path scanned in the previous round, with slash
+
+  var previous;
+  start();
+
+  function start() {
+    // Skip over roots
+    var m = splitRootRe.exec(p);
+    pos = m[0].length;
+    current = m[0];
+    base = m[0];
+    previous = ''; // On windows, check that the root exists. On unix there is no need.
+
+    if (isWindows && !knownHard[base]) {
+      fs.lstat(base, function (err) {
+        if (err) return cb(err);
+        knownHard[base] = true;
+        LOOP();
+      });
+    } else {
+      process.nextTick(LOOP);
+    }
+  } // walk down the path, swapping out linked pathparts for their real
+  // values
+
+
+  function LOOP() {
+    // stop if scanned past end of path
+    if (pos >= p.length) {
+      if (cache) cache[original] = p;
+      return cb(null, p);
+    } // find the next part
+
+
+    nextPartRe.lastIndex = pos;
+    var result = nextPartRe.exec(p);
+    previous = current;
+    current += result[0];
+    base = previous + result[1];
+    pos = nextPartRe.lastIndex; // continue if not a symlink
+
+    if (knownHard[base] || cache && cache[base] === base) {
+      return process.nextTick(LOOP);
+    }
+
+    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
+      // known symbolic link.  no need to stat again.
+      return gotResolvedLink(cache[base]);
+    }
+
+    return fs.lstat(base, gotStat);
+  }
+
+  function gotStat(err, stat) {
+    if (err) return cb(err); // if not a symlink, skip to the next path part
+
+    if (!stat.isSymbolicLink()) {
+      knownHard[base] = true;
+      if (cache) cache[base] = base;
+      return process.nextTick(LOOP);
+    } // stat & read the link if not read before
+    // call gotTarget as soon as the link target is known
+    // dev/ino always return 0 on windows, so skip the check.
+
+
+    if (!isWindows) {
+      var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+
+      if (seenLinks.hasOwnProperty(id)) {
+        return gotTarget(null, seenLinks[id], base);
+      }
+    }
+
+    fs.stat(base, function (err) {
+      if (err) return cb(err);
+      fs.readlink(base, function (err, target) {
+        if (!isWindows) seenLinks[id] = target;
+        gotTarget(err, target);
+      });
+    });
+  }
+
+  function gotTarget(err, target, base) {
+    if (err) return cb(err);
+    var resolvedLink = pathModule.resolve(previous, target);
+    if (cache) cache[base] = resolvedLink;
+    gotResolvedLink(resolvedLink);
+  }
+
+  function gotResolvedLink(resolvedLink) {
+    // resolve the link, then start over
+    p = pathModule.resolve(resolvedLink, p.slice(pos));
+    start();
+  }
+};
+
+/***/ }),
+/* 1004 */
+/***/ ((module) => {
+
+if (typeof Object.create === 'function') {
+  // implementation from standard node.js 'util' module
+  module.exports = function inherits(ctor, superCtor) {
+    if (superCtor) {
+      ctor.super_ = superCtor;
+      ctor.prototype = Object.create(superCtor.prototype, {
+        constructor: {
+          value: ctor,
+          enumerable: false,
+          writable: true,
+          configurable: true
+        }
+      });
+    }
+  };
+} else {
+  // old school shim for old browsers
+  module.exports = function inherits(ctor, superCtor) {
+    if (superCtor) {
+      ctor.super_ = superCtor;
+
+      var TempCtor = function () {};
+
+      TempCtor.prototype = superCtor.prototype;
+      ctor.prototype = new TempCtor();
+      ctor.prototype.constructor = ctor;
+    }
+  };
+}
+
+/***/ }),
+/* 1005 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("events");
+
+/***/ }),
+/* 1006 */
+/***/ ((module) => {
+
+"use strict";
+
+
+function posix(path) {
+  return path.charAt(0) === '/';
+}
+
+function win32(path) {
+  // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
+  var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
+  var result = splitDeviceRe.exec(path);
+  var device = result[1] || '';
+  var isUnc = Boolean(device && device.charAt(1) !== ':'); // UNC paths are always absolute
+
+  return Boolean(result[2] || isUnc);
+}
+
+module.exports = process.platform === 'win32' ? win32 : posix;
+module.exports.posix = posix;
+module.exports.win32 = win32;
+
+/***/ }),
+/* 1007 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports = globSync;
+globSync.GlobSync = GlobSync;
+
+var rp = __webpack_require__(1002);
+
+var minimatch = __webpack_require__(953);
+
+var Minimatch = minimatch.Minimatch;
+
+var Glob = (__webpack_require__(1001).Glob);
+
+var util = __webpack_require__(516);
+
+var path = __webpack_require__(501);
+
+var assert = __webpack_require__(503);
+
+var isAbsolute = __webpack_require__(1006);
+
+var common = __webpack_require__(1008);
+
+var setopts = common.setopts;
+var ownProp = common.ownProp;
+var childrenIgnored = common.childrenIgnored;
+var isIgnored = common.isIgnored;
+
+function globSync(pattern, options) {
+  if (typeof options === 'function' || arguments.length === 3) throw new TypeError('callback provided to sync glob\n' + 'See: https://github.com/isaacs/node-glob/issues/167');
+  return new GlobSync(pattern, options).found;
+}
+
+function GlobSync(pattern, options) {
+  if (!pattern) throw new Error('must provide pattern');
+  if (typeof options === 'function' || arguments.length === 3) throw new TypeError('callback provided to sync glob\n' + 'See: https://github.com/isaacs/node-glob/issues/167');
+  if (!(this instanceof GlobSync)) return new GlobSync(pattern, options);
+  setopts(this, pattern, options);
+  if (this.noprocess) return this;
+  var n = this.minimatch.set.length;
+  this.matches = new Array(n);
+
+  for (var i = 0; i < n; i++) {
+    this._process(this.minimatch.set[i], i, false);
+  }
+
+  this._finish();
+}
+
+GlobSync.prototype._finish = function () {
+  assert.ok(this instanceof GlobSync);
+
+  if (this.realpath) {
+    var self = this;
+    this.matches.forEach(function (matchset, index) {
+      var set = self.matches[index] = Object.create(null);
+
+      for (var p in matchset) {
+        try {
+          p = self._makeAbs(p);
+          var real = rp.realpathSync(p, self.realpathCache);
+          set[real] = true;
+        } catch (er) {
+          if (er.syscall === 'stat') set[self._makeAbs(p)] = true;else throw er;
+        }
+      }
+    });
+  }
+
+  common.finish(this);
+};
+
+GlobSync.prototype._process = function (pattern, index, inGlobStar) {
+  assert.ok(this instanceof GlobSync); // Get the first [n] parts of pattern that are all strings.
+
+  var n = 0;
+
+  while (typeof pattern[n] === 'string') {
+    n++;
+  } // now n is the index of the first one that is *not* a string.
+  // See if there's anything else
+
+
+  var prefix;
+
+  switch (n) {
+    // if not, then this is rather simple
+    case pattern.length:
+      this._processSimple(pattern.join('/'), index);
+
+      return;
+
+    case 0:
+      // pattern *starts* with some non-trivial item.
+      // going to readdir(cwd), but not include the prefix in matches.
+      prefix = null;
+      break;
+
+    default:
+      // pattern has some string bits in the front.
+      // whatever it starts with, whether that's 'absolute' like /foo/bar,
+      // or 'relative' like '../baz'
+      prefix = pattern.slice(0, n).join('/');
+      break;
+  }
+
+  var remain = pattern.slice(n); // get the list of entries.
+
+  var read;
+  if (prefix === null) read = '.';else if (isAbsolute(prefix) || isAbsolute(pattern.map(function (p) {
+    return typeof p === 'string' ? p : '[*]';
+  }).join('/'))) {
+    if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix;
+    read = prefix;
+  } else read = prefix;
+
+  var abs = this._makeAbs(read); //if ignored, skip processing
+
+
+  if (childrenIgnored(this, read)) return;
+  var isGlobStar = remain[0] === minimatch.GLOBSTAR;
+  if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar);else this._processReaddir(prefix, read, abs, remain, index, inGlobStar);
+};
+
+GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
+  var entries = this._readdir(abs, inGlobStar); // if the abs isn't a dir, then nothing can match!
+
+
+  if (!entries) return; // It will only match dot entries if it starts with a dot, or if
+  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
+
+  var pn = remain[0];
+  var negate = !!this.minimatch.negate;
+  var rawGlob = pn._glob;
+  var dotOk = this.dot || rawGlob.charAt(0) === '.';
+  var matchedEntries = [];
+
+  for (var i = 0; i < entries.length; i++) {
+    var e = entries[i];
+
+    if (e.charAt(0) !== '.' || dotOk) {
+      var m;
+
+      if (negate && !prefix) {
+        m = !e.match(pn);
+      } else {
+        m = e.match(pn);
+      }
+
+      if (m) matchedEntries.push(e);
+    }
+  }
+
+  var len = matchedEntries.length; // If there are no matched entries, then nothing matches.
+
+  if (len === 0) return; // if this is the last remaining pattern bit, then no need for
+  // an additional stat *unless* the user has specified mark or
+  // stat explicitly.  We know they exist, since readdir returned
+  // them.
+
+  if (remain.length === 1 && !this.mark && !this.stat) {
+    if (!this.matches[index]) this.matches[index] = Object.create(null);
+
+    for (var i = 0; i < len; i++) {
+      var e = matchedEntries[i];
+
+      if (prefix) {
+        if (prefix.slice(-1) !== '/') e = prefix + '/' + e;else e = prefix + e;
+      }
+
+      if (e.charAt(0) === '/' && !this.nomount) {
+        e = path.join(this.root, e);
+      }
+
+      this._emitMatch(index, e);
+    } // This was the last one, and no stats were needed
+
+
+    return;
+  } // now test all matched entries as stand-ins for that part
+  // of the pattern.
+
+
+  remain.shift();
+
+  for (var i = 0; i < len; i++) {
+    var e = matchedEntries[i];
+    var newPattern;
+    if (prefix) newPattern = [prefix, e];else newPattern = [e];
+
+    this._process(newPattern.concat(remain), index, inGlobStar);
+  }
+};
+
+GlobSync.prototype._emitMatch = function (index, e) {
+  if (isIgnored(this, e)) return;
+
+  var abs = this._makeAbs(e);
+
+  if (this.mark) e = this._mark(e);
+
+  if (this.absolute) {
+    e = abs;
+  }
+
+  if (this.matches[index][e]) return;
+
+  if (this.nodir) {
+    var c = this.cache[abs];
+    if (c === 'DIR' || Array.isArray(c)) return;
+  }
+
+  this.matches[index][e] = true;
+  if (this.stat) this._stat(e);
+};
+
+GlobSync.prototype._readdirInGlobStar = function (abs) {
+  // follow all symlinked directories forever
+  // just proceed as if this is a non-globstar situation
+  if (this.follow) return this._readdir(abs, false);
+  var entries;
+  var lstat;
+  var stat;
+
+  try {
+    lstat = this.fs.lstatSync(abs);
+  } catch (er) {
+    if (er.code === 'ENOENT') {
+      // lstat failed, doesn't exist
+      return null;
+    }
+  }
+
+  var isSym = lstat && lstat.isSymbolicLink();
+  this.symlinks[abs] = isSym; // If it's not a symlink or a dir, then it's definitely a regular file.
+  // don't bother doing a readdir in that case.
+
+  if (!isSym && lstat && !lstat.isDirectory()) this.cache[abs] = 'FILE';else entries = this._readdir(abs, false);
+  return entries;
+};
+
+GlobSync.prototype._readdir = function (abs, inGlobStar) {
+  var entries;
+  if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs);
+
+  if (ownProp(this.cache, abs)) {
+    var c = this.cache[abs];
+    if (!c || c === 'FILE') return null;
+    if (Array.isArray(c)) return c;
+  }
+
+  try {
+    return this._readdirEntries(abs, this.fs.readdirSync(abs));
+  } catch (er) {
+    this._readdirError(abs, er);
+
+    return null;
+  }
+};
+
+GlobSync.prototype._readdirEntries = function (abs, entries) {
+  // if we haven't asked to stat everything, then just
+  // assume that everything in there exists, so we can avoid
+  // having to stat it a second time.
+  if (!this.mark && !this.stat) {
+    for (var i = 0; i < entries.length; i++) {
+      var e = entries[i];
+      if (abs === '/') e = abs + e;else e = abs + '/' + e;
+      this.cache[e] = true;
+    }
+  }
+
+  this.cache[abs] = entries; // mark and cache dir-ness
+
+  return entries;
+};
+
+GlobSync.prototype._readdirError = function (f, er) {
+  // handle errors, and cache the information
+  switch (er.code) {
+    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+
+    case 'ENOTDIR':
+      // totally normal. means it *does* exist.
+      var abs = this._makeAbs(f);
+
+      this.cache[abs] = 'FILE';
+
+      if (abs === this.cwdAbs) {
+        var error = new Error(er.code + ' invalid cwd ' + this.cwd);
+        error.path = this.cwd;
+        error.code = er.code;
+        throw error;
+      }
+
+      break;
+
+    case 'ENOENT': // not terribly unusual
+
+    case 'ELOOP':
+    case 'ENAMETOOLONG':
+    case 'UNKNOWN':
+      this.cache[this._makeAbs(f)] = false;
+      break;
+
+    default:
+      // some unusual error.  Treat as failure.
+      this.cache[this._makeAbs(f)] = false;
+      if (this.strict) throw er;
+      if (!this.silent) console.error('glob error', er);
+      break;
+  }
+};
+
+GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
+  var entries = this._readdir(abs, inGlobStar); // no entries means not a dir, so it can never have matches
+  // foo.txt/** doesn't match foo.txt
+
+
+  if (!entries) return; // test without the globstar, and with every child both below
+  // and replacing the globstar.
+
+  var remainWithoutGlobStar = remain.slice(1);
+  var gspref = prefix ? [prefix] : [];
+  var noGlobStar = gspref.concat(remainWithoutGlobStar); // the noGlobStar pattern exits the inGlobStar state
+
+  this._process(noGlobStar, index, false);
+
+  var len = entries.length;
+  var isSym = this.symlinks[abs]; // If it's a symlink, and we're in a globstar, then stop
+
+  if (isSym && inGlobStar) return;
+
+  for (var i = 0; i < len; i++) {
+    var e = entries[i];
+    if (e.charAt(0) === '.' && !this.dot) continue; // these two cases enter the inGlobStar state
+
+    var instead = gspref.concat(entries[i], remainWithoutGlobStar);
+
+    this._process(instead, index, true);
+
+    var below = gspref.concat(entries[i], remain);
+
+    this._process(below, index, true);
+  }
+};
+
+GlobSync.prototype._processSimple = function (prefix, index) {
+  // XXX review this.  Shouldn't it be doing the mounting etc
+  // before doing stat?  kinda weird?
+  var exists = this._stat(prefix);
+
+  if (!this.matches[index]) this.matches[index] = Object.create(null); // If it doesn't exist, then just mark the lack of results
+
+  if (!exists) return;
+
+  if (prefix && isAbsolute(prefix) && !this.nomount) {
+    var trail = /[\/\\]$/.test(prefix);
+
+    if (prefix.charAt(0) === '/') {
+      prefix = path.join(this.root, prefix);
+    } else {
+      prefix = path.resolve(this.root, prefix);
+      if (trail) prefix += '/';
+    }
+  }
+
+  if (process.platform === 'win32') prefix = prefix.replace(/\\/g, '/'); // Mark this as a match
+
+  this._emitMatch(index, prefix);
+}; // Returns either 'DIR', 'FILE', or false
+
+
+GlobSync.prototype._stat = function (f) {
+  var abs = this._makeAbs(f);
+
+  var needDir = f.slice(-1) === '/';
+  if (f.length > this.maxLength) return false;
+
+  if (!this.stat && ownProp(this.cache, abs)) {
+    var c = this.cache[abs];
+    if (Array.isArray(c)) c = 'DIR'; // It exists, but maybe not how we need it
+
+    if (!needDir || c === 'DIR') return c;
+    if (needDir && c === 'FILE') return false; // otherwise we have to stat, because maybe c=true
+    // if we know it exists, but not what it is.
+  }
+
+  var exists;
+  var stat = this.statCache[abs];
+
+  if (!stat) {
+    var lstat;
+
+    try {
+      lstat = this.fs.lstatSync(abs);
+    } catch (er) {
+      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
+        this.statCache[abs] = false;
+        return false;
+      }
+    }
+
+    if (lstat && lstat.isSymbolicLink()) {
+      try {
+        stat = this.fs.statSync(abs);
+      } catch (er) {
+        stat = lstat;
+      }
+    } else {
+      stat = lstat;
+    }
+  }
+
+  this.statCache[abs] = stat;
+  var c = true;
+  if (stat) c = stat.isDirectory() ? 'DIR' : 'FILE';
+  this.cache[abs] = this.cache[abs] || c;
+  if (needDir && c === 'FILE') return false;
+  return c;
+};
+
+GlobSync.prototype._mark = function (p) {
+  return common.mark(this, p);
+};
+
+GlobSync.prototype._makeAbs = function (f) {
+  return common.makeAbs(this, f);
+};
+
+/***/ }),
+/* 1008 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+exports.setopts = setopts;
+exports.ownProp = ownProp;
+exports.makeAbs = makeAbs;
+exports.finish = finish;
+exports.mark = mark;
+exports.isIgnored = isIgnored;
+exports.childrenIgnored = childrenIgnored;
+
+function ownProp(obj, field) {
+  return Object.prototype.hasOwnProperty.call(obj, field);
+}
+
+var fs = __webpack_require__(971);
+
+var path = __webpack_require__(501);
+
+var minimatch = __webpack_require__(953);
+
+var isAbsolute = __webpack_require__(1006);
+
+var Minimatch = minimatch.Minimatch;
+
+function alphasort(a, b) {
+  return a.localeCompare(b, 'en');
+}
+
+function setupIgnores(self, options) {
+  self.ignore = options.ignore || [];
+  if (!Array.isArray(self.ignore)) self.ignore = [self.ignore];
+
+  if (self.ignore.length) {
+    self.ignore = self.ignore.map(ignoreMap);
+  }
+} // ignore patterns are always in dot:true mode.
+
+
+function ignoreMap(pattern) {
+  var gmatcher = null;
+
+  if (pattern.slice(-3) === '/**') {
+    var gpattern = pattern.replace(/(\/\*\*)+$/, '');
+    gmatcher = new Minimatch(gpattern, {
+      dot: true
+    });
+  }
+
+  return {
+    matcher: new Minimatch(pattern, {
+      dot: true
+    }),
+    gmatcher: gmatcher
+  };
+}
+
+function setopts(self, pattern, options) {
+  if (!options) options = {}; // base-matching: just use globstar for that.
+
+  if (options.matchBase && -1 === pattern.indexOf("/")) {
+    if (options.noglobstar) {
+      throw new Error("base matching requires globstar");
+    }
+
+    pattern = "**/" + pattern;
+  }
+
+  self.silent = !!options.silent;
+  self.pattern = pattern;
+  self.strict = options.strict !== false;
+  self.realpath = !!options.realpath;
+  self.realpathCache = options.realpathCache || Object.create(null);
+  self.follow = !!options.follow;
+  self.dot = !!options.dot;
+  self.mark = !!options.mark;
+  self.nodir = !!options.nodir;
+  if (self.nodir) self.mark = true;
+  self.sync = !!options.sync;
+  self.nounique = !!options.nounique;
+  self.nonull = !!options.nonull;
+  self.nosort = !!options.nosort;
+  self.nocase = !!options.nocase;
+  self.stat = !!options.stat;
+  self.noprocess = !!options.noprocess;
+  self.absolute = !!options.absolute;
+  self.fs = options.fs || fs;
+  self.maxLength = options.maxLength || Infinity;
+  self.cache = options.cache || Object.create(null);
+  self.statCache = options.statCache || Object.create(null);
+  self.symlinks = options.symlinks || Object.create(null);
+  setupIgnores(self, options);
+  self.changedCwd = false;
+  var cwd = process.cwd();
+  if (!ownProp(options, "cwd")) self.cwd = cwd;else {
+    self.cwd = path.resolve(options.cwd);
+    self.changedCwd = self.cwd !== cwd;
+  }
+  self.root = options.root || path.resolve(self.cwd, "/");
+  self.root = path.resolve(self.root);
+  if (process.platform === "win32") self.root = self.root.replace(/\\/g, "/"); // TODO: is an absolute `cwd` supposed to be resolved against `root`?
+  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
+
+  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd);
+  if (process.platform === "win32") self.cwdAbs = self.cwdAbs.replace(/\\/g, "/");
+  self.nomount = !!options.nomount; // disable comments and negation in Minimatch.
+  // Note that they are not supported in Glob itself anyway.
+
+  options.nonegate = true;
+  options.nocomment = true; // always treat \ in patterns as escapes, not path separators
+
+  options.allowWindowsEscape = false;
+  self.minimatch = new Minimatch(pattern, options);
+  self.options = self.minimatch.options;
+}
+
+function finish(self) {
+  var nou = self.nounique;
+  var all = nou ? [] : Object.create(null);
+
+  for (var i = 0, l = self.matches.length; i < l; i++) {
+    var matches = self.matches[i];
+
+    if (!matches || Object.keys(matches).length === 0) {
+      if (self.nonull) {
+        // do like the shell, and spit out the literal glob
+        var literal = self.minimatch.globSet[i];
+        if (nou) all.push(literal);else all[literal] = true;
+      }
+    } else {
+      // had matches
+      var m = Object.keys(matches);
+      if (nou) all.push.apply(all, m);else m.forEach(function (m) {
+        all[m] = true;
+      });
+    }
+  }
+
+  if (!nou) all = Object.keys(all);
+  if (!self.nosort) all = all.sort(alphasort); // at *some* point we statted all of these
+
+  if (self.mark) {
+    for (var i = 0; i < all.length; i++) {
+      all[i] = self._mark(all[i]);
+    }
+
+    if (self.nodir) {
+      all = all.filter(function (e) {
+        var notDir = !/\/$/.test(e);
+        var c = self.cache[e] || self.cache[makeAbs(self, e)];
+        if (notDir && c) notDir = c !== 'DIR' && !Array.isArray(c);
+        return notDir;
+      });
+    }
+  }
+
+  if (self.ignore.length) all = all.filter(function (m) {
+    return !isIgnored(self, m);
+  });
+  self.found = all;
+}
+
+function mark(self, p) {
+  var abs = makeAbs(self, p);
+  var c = self.cache[abs];
+  var m = p;
+
+  if (c) {
+    var isDir = c === 'DIR' || Array.isArray(c);
+    var slash = p.slice(-1) === '/';
+    if (isDir && !slash) m += '/';else if (!isDir && slash) m = m.slice(0, -1);
+
+    if (m !== p) {
+      var mabs = makeAbs(self, m);
+      self.statCache[mabs] = self.statCache[abs];
+      self.cache[mabs] = self.cache[abs];
+    }
+  }
+
+  return m;
+} // lotta situps...
+
+
+function makeAbs(self, f) {
+  var abs = f;
+
+  if (f.charAt(0) === '/') {
+    abs = path.join(self.root, f);
+  } else if (isAbsolute(f) || f === '') {
+    abs = f;
+  } else if (self.changedCwd) {
+    abs = path.resolve(self.cwd, f);
+  } else {
+    abs = path.resolve(f);
+  }
+
+  if (process.platform === 'win32') abs = abs.replace(/\\/g, '/');
+  return abs;
+} // Return true, if pattern ends with globstar '**', for the accompanying parent directory.
+// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
+
+
+function isIgnored(self, path) {
+  if (!self.ignore.length) return false;
+  return self.ignore.some(function (item) {
+    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path));
+  });
+}
+
+function childrenIgnored(self, path) {
+  if (!self.ignore.length) return false;
+  return self.ignore.some(function (item) {
+    return !!(item.gmatcher && item.gmatcher.match(path));
+  });
+}
+
+/***/ }),
+/* 1009 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var wrappy = __webpack_require__(1010);
+
+var reqs = Object.create(null);
+
+var once = __webpack_require__(1011);
+
+module.exports = wrappy(inflight);
+
+function inflight(key, cb) {
+  if (reqs[key]) {
+    reqs[key].push(cb);
+    return null;
+  } else {
+    reqs[key] = [cb];
+    return makeres(key);
+  }
+}
+
+function makeres(key) {
+  return once(function RES() {
+    var cbs = reqs[key];
+    var len = cbs.length;
+    var args = slice(arguments); // XXX It's somewhat ambiguous whether a new callback added in this
+    // pass should be queued for later execution if something in the
+    // list of callbacks throws, or if it should just be discarded.
+    // However, it's such an edge case that it hardly matters, and either
+    // choice is likely as surprising as the other.
+    // As it happens, we do go ahead and schedule it for later execution.
+
+    try {
+      for (var i = 0; i < len; i++) {
+        cbs[i].apply(null, args);
+      }
+    } finally {
+      if (cbs.length > len) {
+        // added more in the interim.
+        // de-zalgo, just in case, but don't call again.
+        cbs.splice(0, len);
+        process.nextTick(function () {
+          RES.apply(null, args);
+        });
+      } else {
+        delete reqs[key];
+      }
+    }
+  });
+}
+
+function slice(args) {
+  var length = args.length;
+  var array = [];
+
+  for (var i = 0; i < length; i++) array[i] = args[i];
+
+  return array;
+}
+
+/***/ }),
+/* 1010 */
+/***/ ((module) => {
+
+// Returns a wrapper function that returns a wrapped callback
+// The wrapper function should do some stuff, and return a
+// presumably different callback function.
+// This makes sure that own properties are retained, so that
+// decorations and such are not lost along the way.
+module.exports = wrappy;
+
+function wrappy(fn, cb) {
+  if (fn && cb) return wrappy(fn)(cb);
+  if (typeof fn !== 'function') throw new TypeError('need wrapper function');
+  Object.keys(fn).forEach(function (k) {
+    wrapper[k] = fn[k];
+  });
+  return wrapper;
+
+  function wrapper() {
+    var args = new Array(arguments.length);
+
+    for (var i = 0; i < args.length; i++) {
+      args[i] = arguments[i];
+    }
+
+    var ret = fn.apply(this, args);
+    var cb = args[args.length - 1];
+
+    if (typeof ret === 'function' && ret !== cb) {
+      Object.keys(cb).forEach(function (k) {
+        ret[k] = cb[k];
+      });
+    }
+
+    return ret;
+  }
+}
+
+/***/ }),
+/* 1011 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var wrappy = __webpack_require__(1010);
+
+module.exports = wrappy(once);
+module.exports.strict = wrappy(onceStrict);
+once.proto = once(function () {
+  Object.defineProperty(Function.prototype, 'once', {
+    value: function () {
+      return once(this);
+    },
+    configurable: true
+  });
+  Object.defineProperty(Function.prototype, 'onceStrict', {
+    value: function () {
+      return onceStrict(this);
+    },
+    configurable: true
+  });
+});
+
+function once(fn) {
+  var f = function () {
+    if (f.called) return f.value;
+    f.called = true;
+    return f.value = fn.apply(this, arguments);
+  };
+
+  f.called = false;
+  return f;
+}
+
+function onceStrict(fn) {
+  var f = function () {
+    if (f.called) throw new Error(f.onceError);
+    f.called = true;
+    return f.value = fn.apply(this, arguments);
+  };
+
+  var name = fn.name || 'Function wrapped with `once`';
+  f.onceError = name + " shouldn't be called more than once";
+  f.called = false;
+  return f;
+}
+
+/***/ }),
+/* 1012 */
+/***/ ((module) => {
+
+module.exports = function (obj, opts) {
+  if (!opts) opts = {};
+  if (typeof opts === 'function') opts = {
+    cmp: opts
+  };
+  var space = opts.space || '';
+  if (typeof space === 'number') space = Array(space + 1).join(' ');
+  var cycles = typeof opts.cycles === 'boolean' ? opts.cycles : false;
+
+  var replacer = opts.replacer || function (key, value) {
+    return value;
+  };
+
+  var cmp = opts.cmp && function (f) {
+    return function (node) {
+      return function (a, b) {
+        var aobj = {
+          key: a,
+          value: node[a]
+        };
+        var bobj = {
+          key: b,
+          value: node[b]
+        };
+        return f(aobj, bobj);
+      };
+    };
+  }(opts.cmp);
+
+  var seen = [];
+  return function stringify(parent, key, node, level) {
+    var indent = space ? '\n' + new Array(level + 1).join(space) : '';
+    var colonSeparator = space ? ': ' : ':';
+
+    if (node && node.toJSON && typeof node.toJSON === 'function') {
+      node = node.toJSON();
+    }
+
+    node = replacer.call(parent, key, node);
+
+    if (node === undefined) {
+      return;
+    }
+
+    if (typeof node !== 'object' || node === null) {
+      return JSON.stringify(node);
+    }
+
+    if (isArray(node)) {
+      var out = [];
+
+      for (var i = 0; i < node.length; i++) {
+        var item = stringify(node, i, node[i], level + 1) || JSON.stringify(null);
+        out.push(indent + space + item);
+      }
+
+      return '[' + out.join(',') + indent + ']';
+    } else {
+      if (seen.indexOf(node) !== -1) {
+        if (cycles) return JSON.stringify('__cycle__');
+        throw new TypeError('Converting circular structure to JSON');
+      } else seen.push(node);
+
+      var keys = objectKeys(node).sort(cmp && cmp(node));
+      var out = [];
+
+      for (var i = 0; i < keys.length; i++) {
+        var key = keys[i];
+        var value = stringify(node, key, node[key], level + 1);
+        if (!value) continue;
+        var keyValue = JSON.stringify(key) + colonSeparator + value;
+        ;
+        out.push(indent + space + keyValue);
+      }
+
+      seen.splice(seen.indexOf(node), 1);
+      return '{' + out.join(',') + indent + '}';
+    }
+  }({
+    '': obj
+  }, '', obj, 0);
+};
+
+var isArray = Array.isArray || function (x) {
+  return {}.toString.call(x) === '[object Array]';
+};
+
+var objectKeys = Object.keys || function (obj) {
+  var has = Object.prototype.hasOwnProperty || function () {
+    return true;
+  };
+
+  var keys = [];
+
+  for (var key in obj) {
+    if (has.call(obj, key)) keys.push(key);
+  }
+
+  return keys;
+};
+
+/***/ }),
+/* 1013 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Main class using flat config
+ * @author Nicholas C. Zakas
+ */
+ //------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+// Note: Node.js 12 does not support fs/promises.
+
+const fs = (__webpack_require__(971).promises);
+
+const path = __webpack_require__(501);
+
+const findUp = __webpack_require__(1014);
+
+const {
+  version
+} = __webpack_require__(513);
+
+const {
+  Linter
+} = __webpack_require__(988);
+
+const {
+  getRuleFromConfig
+} = __webpack_require__(950);
+
+const {
+  gitignoreToMinimatch
+} = __webpack_require__(1020);
+
+const {
+  Legacy: {
+    ConfigOps: {
+      getRuleSeverity
+    },
+    ModuleResolver,
+    naming
+  }
+} = __webpack_require__(974);
+
+const {
+  fileExists,
+  findFiles,
+  getCacheFile,
+  isNonEmptyString,
+  isArrayOfNonEmptyString,
+  createIgnoreResult,
+  isErrorMessage,
+  processOptions
+} = __webpack_require__(1021);
+
+const {
+  pathToFileURL
+} = __webpack_require__(983);
+
+const {
+  FlatConfigArray
+} = __webpack_require__(951);
+
+const LintResultCache = __webpack_require__(993);
+/*
+ * This is necessary to allow overwriting writeFile for testing purposes.
+ * We can just use fs/promises once we drop Node.js 12 support.
+ */
+//------------------------------------------------------------------------------
+// Typedefs
+//------------------------------------------------------------------------------
+// For VSCode IntelliSense
+
+/** @typedef {import("../shared/types").ConfigData} ConfigData */
+
+/** @typedef {import("../shared/types").DeprecatedRuleInfo} DeprecatedRuleInfo */
+
+/** @typedef {import("../shared/types").LintMessage} LintMessage */
+
+/** @typedef {import("../shared/types").ParserOptions} ParserOptions */
+
+/** @typedef {import("../shared/types").Plugin} Plugin */
+
+/** @typedef {import("../shared/types").RuleConf} RuleConf */
+
+/** @typedef {import("../shared/types").Rule} Rule */
+
+/** @typedef {ReturnType<ConfigArray.extractConfig>} ExtractedConfig */
+
+/**
+ * The options with which to configure the ESLint instance.
+ * @typedef {Object} FlatESLintOptions
+ * @property {boolean} [allowInlineConfig] Enable or disable inline configuration comments.
+ * @property {ConfigData} [baseConfig] Base config object, extended by all configs used with this instance
+ * @property {boolean} [cache] Enable result caching.
+ * @property {string} [cacheLocation] The cache file to use instead of .eslintcache.
+ * @property {"metadata" | "content"} [cacheStrategy] The strategy used to detect changed files.
+ * @property {string} [cwd] The value to use for the current working directory.
+ * @property {boolean} [errorOnUnmatchedPattern] If `false` then `ESLint#lintFiles()` doesn't throw even if no target files found. Defaults to `true`.
+ * @property {boolean|Function} [fix] Execute in autofix mode. If a function, should return a boolean.
+ * @property {string[]} [fixTypes] Array of rule types to apply fixes for.
+ * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file.
+ * @property {boolean} [ignore] False disables use of .eslintignore.
+ * @property {string} [ignorePath] The ignore file to use instead of .eslintignore.
+ * @property {string[]} [ignorePatterns] Ignore file patterns to use in addition to .eslintignore.
+ * @property {ConfigData} [overrideConfig] Override config object, overrides all configs used with this instance
+ * @property {boolean|string} [overrideConfigFile] Searches for default config file when falsy;
+ *      doesn't do any config file lookup when `true`; considered to be a config filename
+ *      when a string.
+ * @property {Record<string,Plugin>} [plugins] An array of plugin implementations.
+ * @property {"error" | "warn" | "off"} [reportUnusedDisableDirectives] the severity to report unused eslint-disable directives.
+ */
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+
+const FLAT_CONFIG_FILENAME = "eslint.config.js";
+
+const debug = __webpack_require__(566)("eslint:flat-eslint");
+
+const removedFormatters = new Set(["table", "codeframe"]);
+const privateMembers = new WeakMap();
+/**
+ * It will calculate the error and warning count for collection of messages per file
+ * @param {LintMessage[]} messages Collection of messages
+ * @returns {Object} Contains the stats
+ * @private
+ */
+
+function calculateStatsPerFile(messages) {
+  return messages.reduce((stat, message) => {
+    if (message.fatal || message.severity === 2) {
+      stat.errorCount++;
+
+      if (message.fatal) {
+        stat.fatalErrorCount++;
+      }
+
+      if (message.fix) {
+        stat.fixableErrorCount++;
+      }
+    } else {
+      stat.warningCount++;
+
+      if (message.fix) {
+        stat.fixableWarningCount++;
+      }
+    }
+
+    return stat;
+  }, {
+    errorCount: 0,
+    fatalErrorCount: 0,
+    warningCount: 0,
+    fixableErrorCount: 0,
+    fixableWarningCount: 0
+  });
+}
+/**
+ * It will calculate the error and warning count for collection of results from all files
+ * @param {LintResult[]} results Collection of messages from all the files
+ * @returns {Object} Contains the stats
+ * @private
+ */
+
+
+function calculateStatsPerRun(results) {
+  return results.reduce((stat, result) => {
+    stat.errorCount += result.errorCount;
+    stat.fatalErrorCount += result.fatalErrorCount;
+    stat.warningCount += result.warningCount;
+    stat.fixableErrorCount += result.fixableErrorCount;
+    stat.fixableWarningCount += result.fixableWarningCount;
+    return stat;
+  }, {
+    errorCount: 0,
+    fatalErrorCount: 0,
+    warningCount: 0,
+    fixableErrorCount: 0,
+    fixableWarningCount: 0
+  });
+}
+/**
+ * Loads global ignore patterns from an ignore file (usually .eslintignore).
+ * @param {string} filePath The filename to load.
+ * @returns {ignore} A function encapsulating the ignore patterns.
+ * @throws {Error} If the file cannot be read.
+ * @private
+ */
+
+
+async function loadIgnoreFilePatterns(filePath) {
+  debug(`Loading ignore file: ${filePath}`);
+
+  try {
+    const ignoreFileText = await fs.readFile(filePath, {
+      encoding: "utf8"
+    });
+    return ignoreFileText.split(/\r?\n/gu).filter(line => line.trim() !== "" && !line.startsWith("#"));
+  } catch (e) {
+    debug(`Error reading ignore file: ${filePath}`);
+    e.message = `Cannot read ignore file: ${filePath}\nError: ${e.message}`;
+    throw e;
+  }
+}
+/**
+ * Create rulesMeta object.
+ * @param {Map<string,Rule>} rules a map of rules from which to generate the object.
+ * @returns {Object} metadata for all enabled rules.
+ */
+
+
+function createRulesMeta(rules) {
+  return Array.from(rules).reduce((retVal, _ref) => {
+    let [id, rule] = _ref;
+    retVal[id] = rule.meta;
+    return retVal;
+  }, {});
+}
+/** @type {WeakMap<ExtractedConfig, DeprecatedRuleInfo[]>} */
+
+
+const usedDeprecatedRulesCache = new WeakMap();
+/**
+ * Create used deprecated rule list.
+ * @param {CLIEngine} eslint The CLIEngine instance.
+ * @param {string} maybeFilePath The absolute path to a lint target file or `"<text>"`.
+ * @returns {DeprecatedRuleInfo[]} The used deprecated rule list.
+ */
+
+function getOrFindUsedDeprecatedRules(eslint, maybeFilePath) {
+  const {
+    configs,
+    options: {
+      cwd
+    }
+  } = privateMembers.get(eslint);
+  const filePath = path.isAbsolute(maybeFilePath) ? maybeFilePath : path.join(cwd, "__placeholder__.js");
+  const config = configs.getConfig(filePath); // Most files use the same config, so cache it.
+
+  if (config && !usedDeprecatedRulesCache.has(config)) {
+    const retv = [];
+
+    if (config.rules) {
+      for (const [ruleId, ruleConf] of Object.entries(config.rules)) {
+        if (getRuleSeverity(ruleConf) === 0) {
+          continue;
+        }
+
+        const rule = getRuleFromConfig(ruleId, config);
+        const meta = rule && rule.meta;
+
+        if (meta && meta.deprecated) {
+          retv.push({
+            ruleId,
+            replacedBy: meta.replacedBy || []
+          });
+        }
+      }
+    }
+
+    usedDeprecatedRulesCache.set(config, Object.freeze(retv));
+  }
+
+  return config ? usedDeprecatedRulesCache.get(config) : Object.freeze([]);
+}
+/**
+ * Processes the linting results generated by a CLIEngine linting report to
+ * match the ESLint class's API.
+ * @param {CLIEngine} eslint The CLIEngine instance.
+ * @param {CLIEngineLintReport} report The CLIEngine linting report to process.
+ * @returns {LintResult[]} The processed linting results.
+ */
+
+
+function processLintReport(eslint, _ref2) {
+  let {
+    results
+  } = _ref2;
+  const descriptor = {
+    configurable: true,
+    enumerable: true,
+
+    get() {
+      return getOrFindUsedDeprecatedRules(eslint, this.filePath);
+    }
+
+  };
+
+  for (const result of results) {
+    Object.defineProperty(result, "usedDeprecatedRules", descriptor);
+  }
+
+  return results;
+}
+/**
+ * An Array.prototype.sort() compatible compare function to order results by their file path.
+ * @param {LintResult} a The first lint result.
+ * @param {LintResult} b The second lint result.
+ * @returns {number} An integer representing the order in which the two results should occur.
+ */
+
+
+function compareResultsByFilePath(a, b) {
+  if (a.filePath < b.filePath) {
+    return -1;
+  }
+
+  if (a.filePath > b.filePath) {
+    return 1;
+  }
+
+  return 0;
+}
+/**
+ * Searches from the current working directory up until finding the
+ * given flat config filename.
+ * @param {string} cwd The current working directory to search from.
+ * @returns {Promise<string|null>} The filename if found or `null` if not.
+ */
+
+
+function findFlatConfigFile(cwd) {
+  return findUp(FLAT_CONFIG_FILENAME, {
+    cwd
+  });
+}
+/**
+ * Load the config array from the given filename.
+ * @param {string} filePath The filename to load from.
+ * @param {Object} options Options to help load the config file.
+ * @param {string} options.basePath The base path for the config array.
+ * @param {boolean} options.shouldIgnore Whether to honor ignore patterns.
+ * @returns {Promise<FlatConfigArray>} The config array loaded from the config file.
+ */
+
+
+async function loadFlatConfigFile(filePath, _ref3) {
+  let {
+    basePath,
+    shouldIgnore
+  } = _ref3;
+  debug(`Loading config from ${filePath}`);
+  const fileURL = pathToFileURL(filePath);
+  debug(`Config file URL is ${fileURL}`);
+  const module = await __webpack_require__(1102)(fileURL);
+  return new FlatConfigArray(module.default, {
+    basePath,
+    shouldIgnore
+  });
+}
+/**
+ * Calculates the config array for this run based on inputs.
+ * @param {FlatESLint} eslint The instance to create the config array for.
+ * @param {import("./eslint").ESLintOptions} options The ESLint instance options.
+ * @returns {FlatConfigArray} The config array for `eslint``.
+ */
+
+
+async function calculateConfigArray(eslint, _ref4) {
+  let {
+    cwd,
+    overrideConfig,
+    configFile,
+    ignore: shouldIgnore,
+    ignorePath,
+    ignorePatterns
+  } = _ref4;
+  // check for cached instance
+  const slots = privateMembers.get(eslint);
+
+  if (slots.configs) {
+    return slots.configs;
+  } // determine where to load config file from
+
+
+  let configFilePath;
+  let basePath = cwd;
+
+  if (typeof configFile === "string") {
+    debug(`Override config file path is ${configFile}`);
+    configFilePath = path.resolve(cwd, configFile);
+  } else if (configFile !== false) {
+    debug("Searching for eslint.config.js");
+    configFilePath = await findFlatConfigFile(cwd);
+
+    if (!configFilePath) {
+      throw new Error("Could not find config file.");
+    }
+
+    basePath = path.resolve(path.dirname(configFilePath));
+  } // load config array
+
+
+  let configs;
+
+  if (configFilePath) {
+    configs = await loadFlatConfigFile(configFilePath, {
+      basePath,
+      shouldIgnore
+    });
+  } else {
+    configs = new FlatConfigArray([], {
+      basePath,
+      shouldIgnore
+    });
+  } // add in any configured defaults
+
+
+  configs.push(...slots.defaultConfigs);
+  let allIgnorePatterns = [];
+  let ignoreFilePath; // load ignore file if necessary
+
+  if (shouldIgnore) {
+    if (ignorePath) {
+      ignoreFilePath = path.resolve(cwd, ignorePath);
+      allIgnorePatterns = await loadIgnoreFilePatterns(ignoreFilePath);
+    } else {
+      ignoreFilePath = path.resolve(cwd, ".eslintignore"); // no error if .eslintignore doesn't exist`
+
+      if (fileExists(ignoreFilePath)) {
+        allIgnorePatterns = await loadIgnoreFilePatterns(ignoreFilePath);
+      }
+    }
+  } // append command line ignore patterns
+
+
+  if (ignorePatterns) {
+    if (typeof ignorePatterns === "string") {
+      allIgnorePatterns.push(ignorePatterns);
+    } else {
+      allIgnorePatterns.push(...ignorePatterns);
+    }
+  }
+  /*
+   * If the config file basePath is different than the cwd, then
+   * the ignore patterns won't work correctly. Here, we adjust the
+   * ignore pattern to include the correct relative path. Patterns
+   * loaded from ignore files are always relative to the cwd, whereas
+   * the config file basePath can be an ancestor of the cwd.
+   */
+
+
+  if (basePath !== cwd && allIgnorePatterns.length) {
+    const relativeIgnorePath = path.relative(basePath, cwd);
+    allIgnorePatterns = allIgnorePatterns.map(pattern => {
+      const negated = pattern.startsWith("!");
+      const basePattern = negated ? pattern.slice(1) : pattern;
+      /*
+       * Ignore patterns are considered relative to a directory
+       * when the pattern contains a slash in a position other
+       * than the last character. If that's the case, we need to
+       * add the relative ignore path to the current pattern to
+       * get the correct behavior. Otherwise, no change is needed.
+       */
+
+      if (!basePattern.includes("/") || basePattern.endsWith("/")) {
+        return pattern;
+      }
+
+      return (negated ? "!" : "") + path.posix.join(relativeIgnorePath, basePattern);
+    });
+  }
+
+  if (allIgnorePatterns.length) {
+    /*
+     * Ignore patterns are added to the end of the config array
+     * so they can override default ignores.
+     */
+    configs.push({
+      ignores: allIgnorePatterns.map(gitignoreToMinimatch)
+    });
+  }
+
+  if (overrideConfig) {
+    if (Array.isArray(overrideConfig)) {
+      configs.push(...overrideConfig);
+    } else {
+      configs.push(overrideConfig);
+    }
+  }
+
+  await configs.normalize(); // cache the config array for this instance
+
+  slots.configs = configs;
+  return configs;
+}
+/**
+ * Processes an source code using ESLint.
+ * @param {Object} config The config object.
+ * @param {string} config.text The source code to verify.
+ * @param {string} config.cwd The path to the current working directory.
+ * @param {string|undefined} config.filePath The path to the file of `text`. If this is undefined, it uses `<text>`.
+ * @param {FlatConfigArray} config.configs The config.
+ * @param {boolean} config.fix If `true` then it does fix.
+ * @param {boolean} config.allowInlineConfig If `true` then it uses directive comments.
+ * @param {boolean} config.reportUnusedDisableDirectives If `true` then it reports unused `eslint-disable` comments.
+ * @param {Linter} config.linter The linter instance to verify.
+ * @returns {LintResult} The result of linting.
+ * @private
+ */
+
+
+function verifyText(_ref5) {
+  let {
+    text,
+    cwd,
+    filePath: providedFilePath,
+    configs,
+    fix,
+    allowInlineConfig,
+    reportUnusedDisableDirectives,
+    linter
+  } = _ref5;
+  const filePath = providedFilePath || "<text>";
+  debug(`Lint ${filePath}`);
+  /*
+   * Verify.
+   * `config.extractConfig(filePath)` requires an absolute path, but `linter`
+   * doesn't know CWD, so it gives `linter` an absolute path always.
+   */
+
+  const filePathToVerify = filePath === "<text>" ? path.join(cwd, "__placeholder__.js") : filePath;
+  const {
+    fixed,
+    messages,
+    output
+  } = linter.verifyAndFix(text, configs, {
+    allowInlineConfig,
+    filename: filePathToVerify,
+    fix,
+    reportUnusedDisableDirectives,
+
+    /**
+     * Check if the linter should adopt a given code block or not.
+     * @param {string} blockFilename The virtual filename of a code block.
+     * @returns {boolean} `true` if the linter should adopt the code block.
+     */
+    filterCodeBlock(blockFilename) {
+      return configs.isExplicitMatch(blockFilename);
+    }
+
+  }); // Tweak and return.
+
+  const result = {
+    filePath: filePath === "<text>" ? filePath : path.resolve(filePath),
+    messages,
+    suppressedMessages: linter.getSuppressedMessages(),
+    ...calculateStatsPerFile(messages)
+  };
+
+  if (fixed) {
+    result.output = output;
+  }
+
+  if (result.errorCount + result.warningCount > 0 && typeof result.output === "undefined") {
+    result.source = text;
+  }
+
+  return result;
+}
+/**
+ * Checks whether a message's rule type should be fixed.
+ * @param {LintMessage} message The message to check.
+ * @param {FlatConfig} config The config for the file that generated the message.
+ * @param {string[]} fixTypes An array of fix types to check.
+ * @returns {boolean} Whether the message should be fixed.
+ */
+
+
+function shouldMessageBeFixed(message, config, fixTypes) {
+  if (!message.ruleId) {
+    return fixTypes.has("directive");
+  }
+
+  const rule = message.ruleId && getRuleFromConfig(message.ruleId, config);
+  return Boolean(rule && rule.meta && fixTypes.has(rule.meta.type));
+}
+/**
+ * Collect used deprecated rules.
+ * @param {Array<FlatConfig>} configs The configs to evaluate.
+ * @returns {IterableIterator<DeprecatedRuleInfo>} Used deprecated rules.
+ */
+
+
+function* iterateRuleDeprecationWarnings(configs) {
+  const processedRuleIds = new Set();
+
+  for (const config of configs) {
+    for (const [ruleId, ruleConfig] of Object.entries(config.rules)) {
+      // Skip if it was processed.
+      if (processedRuleIds.has(ruleId)) {
+        continue;
+      }
+
+      processedRuleIds.add(ruleId); // Skip if it's not used.
+
+      if (!getRuleSeverity(ruleConfig)) {
+        continue;
+      }
+
+      const rule = getRuleFromConfig(ruleId, config); // Skip if it's not deprecated.
+
+      if (!(rule && rule.meta && rule.meta.deprecated)) {
+        continue;
+      } // This rule was used and deprecated.
+
+
+      yield {
+        ruleId,
+        replacedBy: rule.meta.replacedBy || []
+      };
+    }
+  }
+} //-----------------------------------------------------------------------------
+// Main API
+//-----------------------------------------------------------------------------
+
+/**
+ * Primary Node.js API for ESLint.
+ */
+
+
+class FlatESLint {
+  /**
+   * Creates a new instance of the main ESLint API.
+   * @param {FlatESLintOptions} options The options for this instance.
+   */
+  constructor() {
+    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    const defaultConfigs = [];
+    const processedOptions = processOptions(options);
+    const linter = new Linter({
+      cwd: processedOptions.cwd,
+      configType: "flat"
+    });
+    const cacheFilePath = getCacheFile(processedOptions.cacheLocation, processedOptions.cwd);
+    const lintResultCache = processedOptions.cache ? new LintResultCache(cacheFilePath, processedOptions.cacheStrategy) : null;
+    privateMembers.set(this, {
+      options: processedOptions,
+      linter,
+      cacheFilePath,
+      lintResultCache,
+      defaultConfigs,
+      defaultIgnores: () => false,
+      configs: null
+    });
+    /**
+     * If additional plugins are passed in, add that to the default
+     * configs for this instance.
+     */
+
+    if (options.plugins) {
+      const plugins = {};
+
+      for (const [pluginName, plugin] of Object.entries(options.plugins)) {
+        plugins[naming.getShorthandName(pluginName, "eslint-plugin")] = plugin;
+      }
+
+      defaultConfigs.push({
+        plugins
+      });
+    }
+  }
+  /**
+   * The version text.
+   * @type {string}
+   */
+
+
+  static get version() {
+    return version;
+  }
+  /**
+   * Outputs fixes from the given results to files.
+   * @param {LintResult[]} results The lint results.
+   * @returns {Promise<void>} Returns a promise that is used to track side effects.
+   */
+
+
+  static async outputFixes(results) {
+    if (!Array.isArray(results)) {
+      throw new Error("'results' must be an array");
+    }
+
+    await Promise.all(results.filter(result => {
+      if (typeof result !== "object" || result === null) {
+        throw new Error("'results' must include only objects");
+      }
+
+      return typeof result.output === "string" && path.isAbsolute(result.filePath);
+    }).map(r => fs.writeFile(r.filePath, r.output)));
+  }
+  /**
+   * Returns results that only contains errors.
+   * @param {LintResult[]} results The results to filter.
+   * @returns {LintResult[]} The filtered results.
+   */
+
+
+  static getErrorResults(results) {
+    const filtered = [];
+    results.forEach(result => {
+      const filteredMessages = result.messages.filter(isErrorMessage);
+      const filteredSuppressedMessages = result.suppressedMessages.filter(isErrorMessage);
+
+      if (filteredMessages.length > 0) {
+        filtered.push({ ...result,
+          messages: filteredMessages,
+          suppressedMessages: filteredSuppressedMessages,
+          errorCount: filteredMessages.length,
+          warningCount: 0,
+          fixableErrorCount: result.fixableErrorCount,
+          fixableWarningCount: 0
+        });
+      }
+    });
+    return filtered;
+  }
+  /**
+   * Returns meta objects for each rule represented in the lint results.
+   * @param {LintResult[]} results The results to fetch rules meta for.
+   * @returns {Object} A mapping of ruleIds to rule meta objects.
+   * @throws {TypeError} When the results object wasn't created from this ESLint instance.
+   * @throws {TypeError} When a plugin or rule is missing.
+   */
+
+
+  getRulesMetaForResults(results) {
+    const resultRules = new Map(); // short-circuit simple case
+
+    if (results.length === 0) {
+      return resultRules;
+    }
+
+    const {
+      configs
+    } = privateMembers.get(this);
+    /*
+     * We can only accurately return rules meta information for linting results if the
+     * results were created by this instance. Otherwise, the necessary rules data is
+     * not available. So if the config array doesn't already exist, just throw an error
+     * to let the user know we can't do anything here.
+     */
+
+    if (!configs) {
+      throw new TypeError("Results object was not created from this ESLint instance.");
+    }
+
+    for (const result of results) {
+      /*
+       * Normalize filename for <text>.
+       */
+      const filePath = result.filePath === "<text>" ? "__placeholder__.js" : result.filePath;
+      /*
+       * All of the plugin and rule information is contained within the
+       * calculated config for the given file.
+       */
+
+      const config = configs.getConfig(filePath);
+      const allMessages = result.messages.concat(result.suppressedMessages);
+
+      for (const {
+        ruleId
+      } of allMessages) {
+        const rule = getRuleFromConfig(ruleId, config); // ensure the rule exists
+
+        if (!rule) {
+          throw new TypeError(`Could not find the rule "${ruleId}".`);
+        }
+
+        resultRules.set(ruleId, rule);
+      }
+    }
+
+    return createRulesMeta(resultRules);
+  }
+  /**
+   * Executes the current configuration on an array of file and directory names.
+   * @param {string|string[]} patterns An array of file and directory names.
+   * @returns {Promise<LintResult[]>} The results of linting the file patterns given.
+   */
+
+
+  async lintFiles(patterns) {
+    if (!isNonEmptyString(patterns) && !isArrayOfNonEmptyString(patterns)) {
+      throw new Error("'patterns' must be a non-empty string or an array of non-empty strings");
+    }
+
+    const {
+      cacheFilePath,
+      lintResultCache,
+      linter,
+      options: eslintOptions
+    } = privateMembers.get(this);
+    const configs = await calculateConfigArray(this, eslintOptions);
+    const {
+      allowInlineConfig,
+      cache,
+      cwd,
+      fix,
+      fixTypes,
+      reportUnusedDisableDirectives,
+      globInputPaths,
+      errorOnUnmatchedPattern
+    } = eslintOptions;
+    const startTime = Date.now();
+    const usedConfigs = [];
+    const fixTypesSet = fixTypes ? new Set(fixTypes) : null; // Delete cache file; should this be done here?
+
+    if (!cache && cacheFilePath) {
+      debug(`Deleting cache file at ${cacheFilePath}`);
+
+      try {
+        await fs.unlink(cacheFilePath);
+      } catch (error) {
+        const errorCode = error && error.code; // Ignore errors when no such file exists or file system is read only (and cache file does not exist)
+
+        if (errorCode !== "ENOENT" && !(errorCode === "EROFS" && !(await fs.exists(cacheFilePath)))) {
+          throw error;
+        }
+      }
+    }
+
+    const filePaths = await findFiles({
+      patterns: typeof patterns === "string" ? [patterns] : patterns,
+      cwd,
+      globInputPaths,
+      configs,
+      errorOnUnmatchedPattern
+    });
+    debug(`${filePaths.length} files found in: ${Date.now() - startTime}ms`);
+    /*
+     * Because we need to process multiple files, including reading from disk,
+     * it is most efficient to start by reading each file via promises so that
+     * they can be done in parallel. Then, we can lint the returned text. This
+     * ensures we are waiting the minimum amount of time in between lints.
+     */
+
+    const results = await Promise.all(filePaths.map(_ref6 => {
+      let {
+        filePath,
+        ignored
+      } = _ref6;
+
+      /*
+       * If a filename was entered that matches an ignore
+       * pattern, then notify the user.
+       */
+      if (ignored) {
+        return createIgnoreResult(filePath, cwd);
+      }
+
+      const config = configs.getConfig(filePath);
+      /*
+       * Sometimes a file found through a glob pattern will
+       * be ignored. In this case, `config` will be undefined
+       * and we just silently ignore the file.
+       */
+
+      if (!config) {
+        return void 0;
+      }
+      /*
+       * Store used configs for:
+       * - this method uses to collect used deprecated rules.
+       * - `--fix-type` option uses to get the loaded rule's meta data.
+       */
+
+
+      if (!usedConfigs.includes(config)) {
+        usedConfigs.push(config);
+      } // Skip if there is cached result.
+
+
+      if (lintResultCache) {
+        const cachedResult = lintResultCache.getCachedLintResults(filePath, config);
+
+        if (cachedResult) {
+          const hadMessages = cachedResult.messages && cachedResult.messages.length > 0;
+
+          if (hadMessages && fix) {
+            debug(`Reprocessing cached file to allow autofix: ${filePath}`);
+          } else {
+            debug(`Skipping file since it hasn't changed: ${filePath}`);
+            return cachedResult;
+          }
+        }
+      } // set up fixer for fixtypes if necessary
+
+
+      let fixer = fix;
+
+      if (fix && fixTypesSet) {
+        // save original value of options.fix in case it's a function
+        const originalFix = typeof fix === "function" ? fix : () => true;
+
+        fixer = message => shouldMessageBeFixed(message, config, fixTypesSet) && originalFix(message);
+      }
+
+      return fs.readFile(filePath, "utf8").then(text => {
+        // do the linting
+        const result = verifyText({
+          text,
+          filePath,
+          configs,
+          cwd,
+          fix: fixer,
+          allowInlineConfig,
+          reportUnusedDisableDirectives,
+          linter
+        });
+        /*
+         * Store the lint result in the LintResultCache.
+         * NOTE: The LintResultCache will remove the file source and any
+         * other properties that are difficult to serialize, and will
+         * hydrate those properties back in on future lint runs.
+         */
+
+        if (lintResultCache) {
+          lintResultCache.setCachedLintResults(filePath, config, result);
+        }
+
+        return result;
+      });
+    })); // Persist the cache to disk.
+
+    if (lintResultCache) {
+      lintResultCache.reconcile();
+    }
+
+    let usedDeprecatedRules;
+    const finalResults = results.filter(result => !!result);
+    return processLintReport(this, {
+      results: finalResults,
+      ...calculateStatsPerRun(finalResults),
+
+      // Initialize it lazily because CLI and `ESLint` API don't use it.
+      get usedDeprecatedRules() {
+        if (!usedDeprecatedRules) {
+          usedDeprecatedRules = Array.from(iterateRuleDeprecationWarnings(usedConfigs));
+        }
+
+        return usedDeprecatedRules;
+      }
+
+    });
+  }
+  /**
+   * Executes the current configuration on text.
+   * @param {string} code A string of JavaScript code to lint.
+   * @param {Object} [options] The options.
+   * @param {string} [options.filePath] The path to the file of the source code.
+   * @param {boolean} [options.warnIgnored] When set to true, warn if given filePath is an ignored path.
+   * @returns {Promise<LintResult[]>} The results of linting the string of code given.
+   */
+
+
+  async lintText(code) {
+    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+    // Parameter validation
+    if (typeof code !== "string") {
+      throw new Error("'code' must be a string");
+    }
+
+    if (typeof options !== "object") {
+      throw new Error("'options' must be an object, null, or undefined");
+    } // Options validation
+
+
+    const {
+      filePath,
+      warnIgnored = false,
+      ...unknownOptions
+    } = options || {};
+    const unknownOptionKeys = Object.keys(unknownOptions);
+
+    if (unknownOptionKeys.length > 0) {
+      throw new Error(`'options' must not include the unknown option(s): ${unknownOptionKeys.join(", ")}`);
+    }
+
+    if (filePath !== void 0 && !isNonEmptyString(filePath)) {
+      throw new Error("'options.filePath' must be a non-empty string or undefined");
+    }
+
+    if (typeof warnIgnored !== "boolean") {
+      throw new Error("'options.warnIgnored' must be a boolean or undefined");
+    } // Now we can get down to linting
+
+
+    const {
+      linter,
+      options: eslintOptions
+    } = privateMembers.get(this);
+    const configs = await calculateConfigArray(this, eslintOptions);
+    const {
+      allowInlineConfig,
+      cwd,
+      fix,
+      reportUnusedDisableDirectives
+    } = eslintOptions;
+    const results = [];
+    const startTime = Date.now();
+    const resolvedFilename = path.resolve(cwd, filePath || "__placeholder__.js");
+    let config; // Clear the last used config arrays.
+
+    if (resolvedFilename && (await this.isPathIgnored(resolvedFilename))) {
+      if (warnIgnored) {
+        results.push(createIgnoreResult(resolvedFilename, cwd));
+      }
+    } else {
+      // TODO: Needed?
+      config = configs.getConfig(resolvedFilename); // Do lint.
+
+      results.push(verifyText({
+        text: code,
+        filePath: resolvedFilename.endsWith("__placeholder__.js") ? "<text>" : resolvedFilename,
+        configs,
+        cwd,
+        fix,
+        allowInlineConfig,
+        reportUnusedDisableDirectives,
+        linter
+      }));
+    }
+
+    debug(`Linting complete in: ${Date.now() - startTime}ms`);
+    let usedDeprecatedRules;
+    return processLintReport(this, {
+      results,
+      ...calculateStatsPerRun(results),
+
+      // Initialize it lazily because CLI and `ESLint` API don't use it.
+      get usedDeprecatedRules() {
+        if (!usedDeprecatedRules) {
+          usedDeprecatedRules = Array.from(iterateRuleDeprecationWarnings(config));
+        }
+
+        return usedDeprecatedRules;
+      }
+
+    });
+  }
+  /**
+   * Returns the formatter representing the given formatter name.
+   * @param {string} [name] The name of the formatter to load.
+   * The following values are allowed:
+   * - `undefined` ... Load `stylish` builtin formatter.
+   * - A builtin formatter name ... Load the builtin formatter.
+   * - A thirdparty formatter name:
+   *   - `foo` → `eslint-formatter-foo`
+   *   - `@foo` → `@foo/eslint-formatter`
+   *   - `@foo/bar` → `@foo/eslint-formatter-bar`
+   * - A file path ... Load the file.
+   * @returns {Promise<Formatter>} A promise resolving to the formatter object.
+   * This promise will be rejected if the given formatter was not found or not
+   * a function.
+   */
+
+
+  async loadFormatter() {
+    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "stylish";
+
+    if (typeof name !== "string") {
+      throw new Error("'name' must be a string");
+    } // replace \ with / for Windows compatibility
+
+
+    const normalizedFormatName = name.replace(/\\/gu, "/");
+    const namespace = naming.getNamespaceFromTerm(normalizedFormatName); // grab our options
+
+    const {
+      cwd
+    } = privateMembers.get(this).options;
+    let formatterPath; // if there's a slash, then it's a file (TODO: this check seems dubious for scoped npm packages)
+
+    if (!namespace && normalizedFormatName.includes("/")) {
+      formatterPath = path.resolve(cwd, normalizedFormatName);
+    } else {
+      try {
+        const npmFormat = naming.normalizePackageName(normalizedFormatName, "eslint-formatter"); // TODO: This is pretty dirty...would be nice to clean up at some point.
+
+        formatterPath = ModuleResolver.resolve(npmFormat, path.join(cwd, "__placeholder__.js"));
+      } catch {
+        formatterPath = path.resolve(__dirname, "../", "cli-engine", "formatters", `${normalizedFormatName}.js`);
+      }
+    }
+
+    let formatter;
+
+    try {
+      formatter = (await __webpack_require__(1102)(pathToFileURL(formatterPath))).default;
+    } catch (ex) {
+      // check for formatters that have been removed
+      if (removedFormatters.has(name)) {
+        ex.message = `The ${name} formatter is no longer part of core ESLint. Install it manually with \`npm install -D eslint-formatter-${name}\``;
+      } else {
+        ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`;
+      }
+
+      throw ex;
+    }
+
+    if (typeof formatter !== "function") {
+      throw new TypeError(`Formatter must be a function, but got a ${typeof formatter}.`);
+    }
+
+    const eslint = this;
+    return {
+      /**
+       * The main formatter method.
+       * @param {LintResults[]} results The lint results to format.
+       * @returns {string} The formatted lint results.
+       */
+      format(results) {
+        let rulesMeta = null;
+        results.sort(compareResultsByFilePath);
+        return formatter(results, {
+          cwd,
+
+          get rulesMeta() {
+            if (!rulesMeta) {
+              rulesMeta = eslint.getRulesMetaForResults(results);
+            }
+
+            return rulesMeta;
+          }
+
+        });
+      }
+
+    };
+  }
+  /**
+   * Returns a configuration object for the given file based on the CLI options.
+   * This is the same logic used by the ESLint CLI executable to determine
+   * configuration for each file it processes.
+   * @param {string} filePath The path of the file to retrieve a config object for.
+   * @returns {Promise<ConfigData|undefined>} A configuration object for the file
+   *      or `undefined` if there is no configuration data for the object.
+   */
+
+
+  async calculateConfigForFile(filePath) {
+    if (!isNonEmptyString(filePath)) {
+      throw new Error("'filePath' must be a non-empty string");
+    }
+
+    const options = privateMembers.get(this).options;
+    const absolutePath = path.resolve(options.cwd, filePath);
+    const configs = await calculateConfigArray(this, options);
+    return configs.getConfig(absolutePath);
+  }
+  /**
+   * Checks if a given path is ignored by ESLint.
+   * @param {string} filePath The path of the file to check.
+   * @returns {Promise<boolean>} Whether or not the given path is ignored.
+   */
+
+
+  async isPathIgnored(filePath) {
+    const config = await this.calculateConfigForFile(filePath);
+    return config === void 0;
+  }
+
+} //------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+
+module.exports = {
+  FlatESLint,
+  findFlatConfigFile
+};
+
+/***/ }),
+/* 1014 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const path = __webpack_require__(501);
+
+const locatePath = __webpack_require__(1015);
+
+const pathExists = __webpack_require__(1019);
+
+const stop = Symbol('findUp.stop');
+
+module.exports = async function (name) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let directory = path.resolve(options.cwd || '');
+  const {
+    root
+  } = path.parse(directory);
+  const paths = [].concat(name);
+
+  const runMatcher = async locateOptions => {
+    if (typeof name !== 'function') {
+      return locatePath(paths, locateOptions);
+    }
+
+    const foundPath = await name(locateOptions.cwd);
+
+    if (typeof foundPath === 'string') {
+      return locatePath([foundPath], locateOptions);
+    }
+
+    return foundPath;
+  }; // eslint-disable-next-line no-constant-condition
+
+
+  while (true) {
+    // eslint-disable-next-line no-await-in-loop
+    const foundPath = await runMatcher({ ...options,
+      cwd: directory
+    });
+
+    if (foundPath === stop) {
+      return;
+    }
+
+    if (foundPath) {
+      return path.resolve(directory, foundPath);
+    }
+
+    if (directory === root) {
+      return;
+    }
+
+    directory = path.dirname(directory);
+  }
+};
+
+module.exports.sync = function (name) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let directory = path.resolve(options.cwd || '');
+  const {
+    root
+  } = path.parse(directory);
+  const paths = [].concat(name);
+
+  const runMatcher = locateOptions => {
+    if (typeof name !== 'function') {
+      return locatePath.sync(paths, locateOptions);
+    }
+
+    const foundPath = name(locateOptions.cwd);
+
+    if (typeof foundPath === 'string') {
+      return locatePath.sync([foundPath], locateOptions);
+    }
+
+    return foundPath;
+  }; // eslint-disable-next-line no-constant-condition
+
+
+  while (true) {
+    const foundPath = runMatcher({ ...options,
+      cwd: directory
+    });
+
+    if (foundPath === stop) {
+      return;
+    }
+
+    if (foundPath) {
+      return path.resolve(directory, foundPath);
+    }
+
+    if (directory === root) {
+      return;
+    }
+
+    directory = path.dirname(directory);
+  }
+};
+
+module.exports.exists = pathExists;
+module.exports.sync.exists = pathExists.sync;
+module.exports.stop = stop;
+
+/***/ }),
+/* 1015 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const path = __webpack_require__(501);
+
+const fs = __webpack_require__(971);
+
+const {
+  promisify
+} = __webpack_require__(516);
+
+const pLocate = __webpack_require__(1016);
+
+const fsStat = promisify(fs.stat);
+const fsLStat = promisify(fs.lstat);
+const typeMappings = {
+  directory: 'isDirectory',
+  file: 'isFile'
+};
+
+function checkType(_ref) {
+  let {
+    type
+  } = _ref;
+
+  if (type in typeMappings) {
+    return;
+  }
+
+  throw new Error(`Invalid type specified: ${type}`);
+}
+
+const matchType = (type, stat) => type === undefined || stat[typeMappings[type]]();
+
+module.exports = async (paths, options) => {
+  options = {
+    cwd: process.cwd(),
+    type: 'file',
+    allowSymlinks: true,
+    ...options
+  };
+  checkType(options);
+  const statFn = options.allowSymlinks ? fsStat : fsLStat;
+  return pLocate(paths, async path_ => {
+    try {
+      const stat = await statFn(path.resolve(options.cwd, path_));
+      return matchType(options.type, stat);
+    } catch {
+      return false;
+    }
+  }, options);
+};
+
+module.exports.sync = (paths, options) => {
+  options = {
+    cwd: process.cwd(),
+    allowSymlinks: true,
+    type: 'file',
+    ...options
+  };
+  checkType(options);
+  const statFn = options.allowSymlinks ? fs.statSync : fs.lstatSync;
+
+  for (const path_ of paths) {
+    try {
+      const stat = statFn(path.resolve(options.cwd, path_));
+
+      if (matchType(options.type, stat)) {
+        return path_;
+      }
+    } catch {}
+  }
+};
+
+/***/ }),
+/* 1016 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const pLimit = __webpack_require__(1017);
+
+class EndError extends Error {
+  constructor(value) {
+    super();
+    this.value = value;
+  }
+
+} // The input can also be a promise, so we await it
+
+
+const testElement = async (element, tester) => tester(await element); // The input can also be a promise, so we `Promise.all()` them both
+
+
+const finder = async element => {
+  const values = await Promise.all(element);
+
+  if (values[1] === true) {
+    throw new EndError(values[0]);
+  }
+
+  return false;
+};
+
+const pLocate = async (iterable, tester, options) => {
+  options = {
+    concurrency: Infinity,
+    preserveOrder: true,
+    ...options
+  };
+  const limit = pLimit(options.concurrency); // Start all the promises concurrently with optional limit
+
+  const items = [...iterable].map(element => [element, limit(testElement, element, tester)]); // Check the promises either serially or concurrently
+
+  const checkLimit = pLimit(options.preserveOrder ? 1 : Infinity);
+
+  try {
+    await Promise.all(items.map(element => checkLimit(finder, element)));
+  } catch (error) {
+    if (error instanceof EndError) {
+      return error.value;
+    }
+
+    throw error;
+  }
+};
+
+module.exports = pLocate;
+
+/***/ }),
+/* 1017 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const Queue = __webpack_require__(1018);
+
+const pLimit = concurrency => {
+  if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {
+    throw new TypeError('Expected `concurrency` to be a number from 1 and up');
+  }
+
+  const queue = new Queue();
+  let activeCount = 0;
+
+  const next = () => {
+    activeCount--;
+
+    if (queue.size > 0) {
+      queue.dequeue()();
+    }
+  };
+
+  const run = async function (fn, resolve) {
+    for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+      args[_key - 2] = arguments[_key];
+    }
+
+    activeCount++;
+
+    const result = (async () => fn(...args))();
+
+    resolve(result);
+
+    try {
+      await result;
+    } catch {}
+
+    next();
+  };
+
+  const enqueue = function (fn, resolve) {
+    for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
+      args[_key2 - 2] = arguments[_key2];
+    }
+
+    queue.enqueue(run.bind(null, fn, resolve, ...args));
+
+    (async () => {
+      // This function needs to wait until the next microtask before comparing
+      // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously
+      // when the run function is dequeued and called. The comparison in the if-statement
+      // needs to happen asynchronously as well to get an up-to-date value for `activeCount`.
+      await Promise.resolve();
+
+      if (activeCount < concurrency && queue.size > 0) {
+        queue.dequeue()();
+      }
+    })();
+  };
+
+  const generator = function (fn) {
+    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
+      args[_key3 - 1] = arguments[_key3];
+    }
+
+    return new Promise(resolve => {
+      enqueue(fn, resolve, ...args);
+    });
+  };
+
+  Object.defineProperties(generator, {
+    activeCount: {
+      get: () => activeCount
+    },
+    pendingCount: {
+      get: () => queue.size
+    },
+    clearQueue: {
+      value: () => {
+        queue.clear();
+      }
+    }
+  });
+  return generator;
+};
+
+module.exports = pLimit;
+
+/***/ }),
+/* 1018 */
+/***/ ((module) => {
+
+class Node {
+  /// value;
+  /// next;
+  constructor(value) {
+    this.value = value; // TODO: Remove this when targeting Node.js 12.
+
+    this.next = undefined;
+  }
+
+}
+
+class Queue {
+  // TODO: Use private class fields when targeting Node.js 12.
+  // #_head;
+  // #_tail;
+  // #_size;
+  constructor() {
+    this.clear();
+  }
+
+  enqueue(value) {
+    const node = new Node(value);
+
+    if (this._head) {
+      this._tail.next = node;
+      this._tail = node;
+    } else {
+      this._head = node;
+      this._tail = node;
+    }
+
+    this._size++;
+  }
+
+  dequeue() {
+    const current = this._head;
+
+    if (!current) {
+      return;
+    }
+
+    this._head = this._head.next;
+    this._size--;
+    return current.value;
+  }
+
+  clear() {
+    this._head = undefined;
+    this._tail = undefined;
+    this._size = 0;
+  }
+
+  get size() {
+    return this._size;
+  }
+
+  *[Symbol.iterator]() {
+    let current = this._head;
+
+    while (current) {
+      yield current.value;
+      current = current.next;
+    }
+  }
+
+}
+
+module.exports = Queue;
+
+/***/ }),
+/* 1019 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const fs = __webpack_require__(971);
+
+const {
+  promisify
+} = __webpack_require__(516);
+
+const pAccess = promisify(fs.access);
+
+module.exports = async path => {
+  try {
+    await pAccess(path);
+    return true;
+  } catch (_) {
+    return false;
+  }
+};
+
+module.exports.sync = path => {
+  try {
+    fs.accessSync(path);
+    return true;
+  } catch (_) {
+    return false;
+  }
+};
+
+/***/ }),
+/* 1020 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+/**
+ * @fileoverview Utility to convert gitignore patterns to minimatch.
+ * @author Nicholas C. Zakas
+ */
+
+/**
+ * Converts a gitignore pattern to a minimatch pattern.
+ * @param {string} pattern The gitignore pattern to convert. 
+ * @returns {string} A minimatch pattern equivalent to `pattern`.
+ */
+function gitignoreToMinimatch(pattern) {
+
+    if (typeof pattern !== "string") {
+        throw new TypeError("Argument must be a string.");
+    }
+
+    // Special case: Empty string
+    if (!pattern) {
+        return pattern;
+    }
+
+    // strip off negation to make life easier
+    const negated = pattern.startsWith("!");
+    let patternToTest = negated ? pattern.slice(1) : pattern;
+    let result = patternToTest;
+    let leadingSlash = false;
+
+    // strip off leading slash
+    if (patternToTest[0] === "/") {
+        leadingSlash = true;
+        result = patternToTest.slice(1);
+    }
+
+    // For the most part, the first character determines what to do
+    switch (result[0]) {
+
+        case "*":
+            if (patternToTest[1] !== "*") {
+                result = "**/" + result;
+            }
+            break;
+
+        default:
+            if (!leadingSlash && !result.includes("/") || result.endsWith("/")) {
+                result = "**/" + result;
+            }
+
+            // no further changes if the pattern ends with a wildcard
+            if (result.endsWith("*") || result.endsWith("?")) {
+                break;
+            }
+
+            // differentiate between filenames and directory names
+            if (!/\.[a-z\d_-]+$/.test(result)) {
+                if (!result.endsWith("/")) {
+                    result += "/";
+                }
+
+                result += "**";
+            }
+    }
+
+    return negated ? "!" + result : result;
+
+}
+
+exports.gitignoreToMinimatch = gitignoreToMinimatch;
+
+
+/***/ }),
+/* 1021 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/**
+ * @fileoverview Helper functions for ESLint class
+ * @author Nicholas C. Zakas
+ */
+ //-----------------------------------------------------------------------------
+// Requirements
+//-----------------------------------------------------------------------------
+
+const path = __webpack_require__(501);
+
+const fs = __webpack_require__(971);
+
+const fsp = fs.promises;
+
+const isGlob = __webpack_require__(986);
+
+const globby = __webpack_require__(1022);
+
+const hash = __webpack_require__(991);
+
+const minimatch = __webpack_require__(953); //-----------------------------------------------------------------------------
+// Errors
+//-----------------------------------------------------------------------------
+
+/**
+ * The error type when no files match a glob.
+ */
+
+
+class NoFilesFoundError extends Error {
+  /**
+   * @param {string} pattern The glob pattern which was not found.
+   * @param {boolean} globEnabled If `false` then the pattern was a glob pattern, but glob was disabled.
+   */
+  constructor(pattern, globEnabled) {
+    super(`No files matching '${pattern}' were found${!globEnabled ? " (glob was disabled)" : ""}.`);
+    this.messageTemplate = "file-not-found";
+    this.messageData = {
+      pattern,
+      globDisabled: !globEnabled
+    };
+  }
+
+}
+/**
+ * The error type when there are files matched by a glob, but all of them have been ignored.
+ */
+
+
+class AllFilesIgnoredError extends Error {
+  /**
+   * @param {string} pattern The glob pattern which was not found.
+   */
+  constructor(pattern) {
+    super(`All files matched by '${pattern}' are ignored.`);
+    this.messageTemplate = "all-files-ignored";
+    this.messageData = {
+      pattern
+    };
+  }
+
+} //-----------------------------------------------------------------------------
+// General Helpers
+//-----------------------------------------------------------------------------
+
+/**
+ * Check if a given value is a non-empty string or not.
+ * @param {any} x The value to check.
+ * @returns {boolean} `true` if `x` is a non-empty string.
+ */
+
+
+function isNonEmptyString(x) {
+  return typeof x === "string" && x.trim() !== "";
+}
+/**
+ * Check if a given value is an array of non-empty stringss or not.
+ * @param {any} x The value to check.
+ * @returns {boolean} `true` if `x` is an array of non-empty stringss.
+ */
+
+
+function isArrayOfNonEmptyString(x) {
+  return Array.isArray(x) && x.every(isNonEmptyString);
+} //-----------------------------------------------------------------------------
+// File-related Helpers
+//-----------------------------------------------------------------------------
+
+/**
+ * Normalizes slashes in a file pattern to posix-style.
+ * @param {string} pattern The pattern to replace slashes in.
+ * @returns {string} The pattern with slashes normalized.
+ */
+
+
+function normalizeToPosix(pattern) {
+  return pattern.replace(/\\/gu, "/");
+}
+/**
+ * Check if a string is a glob pattern or not.
+ * @param {string} pattern A glob pattern.
+ * @returns {boolean} `true` if the string is a glob pattern.
+ */
+
+
+function isGlobPattern(pattern) {
+  return isGlob(path.sep === "\\" ? normalizeToPosix(pattern) : pattern);
+}
+/**
+ * Finds all files matching the options specified.
+ * @param {Object} args The arguments objects.
+ * @param {Array<string>} args.patterns An array of glob patterns.
+ * @param {boolean} args.globInputPaths true to interpret glob patterns,
+ *      false to not interpret glob patterns.
+ * @param {string} args.cwd The current working directory to find from.
+ * @param {FlatConfigArray} args.configs The configs for the current run.
+ * @param {boolean} args.errorOnUnmatchedPattern Determines if an unmatched pattern
+ *      should throw an error.
+ * @returns {Promise<Array<string>>} The fully resolved file paths.
+ * @throws {AllFilesIgnoredError} If there are no results due to an ignore pattern.
+ * @throws {NoFilesFoundError} If no files matched the given patterns.
+ */
+
+
+async function findFiles(_ref) {
+  let {
+    patterns,
+    globInputPaths,
+    cwd,
+    configs,
+    errorOnUnmatchedPattern
+  } = _ref;
+  const results = [];
+  const globbyPatterns = [];
+  const missingPatterns = []; // check to see if we have explicit files and directories
+
+  const filePaths = patterns.map(filePath => path.resolve(cwd, filePath));
+  const stats = await Promise.all(filePaths.map(filePath => fsp.stat(filePath).catch(() => {})));
+  stats.forEach((stat, index) => {
+    const filePath = filePaths[index];
+    const pattern = normalizeToPosix(patterns[index]);
+
+    if (stat) {
+      // files are added directly to the list
+      if (stat.isFile()) {
+        results.push({
+          filePath,
+          ignored: configs.isIgnored(filePath)
+        });
+      } // directories need extensions attached
+
+
+      if (stat.isDirectory()) {
+        // filePatterns are all relative to cwd
+        const filePatterns = configs.files.filter(filePattern => {
+          // can only do this for strings, not functions
+          if (typeof filePattern !== "string") {
+            return false;
+          } // patterns starting with ** always apply
+
+
+          if (filePattern.startsWith("**")) {
+            return true;
+          } // patterns ending with * are not used for file search
+
+
+          if (filePattern.endsWith("*")) {
+            return false;
+          } // not sure how to handle negated patterns yet
+
+
+          if (filePattern.startsWith("!")) {
+            return false;
+          } // check if the pattern would be inside the config base path or not
+
+
+          const fullFilePattern = path.join(cwd, filePattern);
+          const patternRelativeToConfigBasePath = path.relative(configs.basePath, fullFilePattern);
+
+          if (patternRelativeToConfigBasePath.startsWith("..")) {
+            return false;
+          } // check if the pattern matches
+
+
+          if (minimatch(filePath, path.dirname(fullFilePattern), {
+            partial: true
+          })) {
+            return true;
+          } // check if the pattern is inside the directory or not
+
+
+          const patternRelativeToFilePath = path.relative(filePath, fullFilePattern);
+
+          if (patternRelativeToFilePath.startsWith("..")) {
+            return false;
+          }
+
+          return true;
+        }).map(filePattern => {
+          if (filePattern.startsWith("**")) {
+            return path.join(pattern, filePattern);
+          } // adjust the path to be relative to the cwd
+
+
+          return path.relative(cwd, path.join(configs.basePath, filePattern));
+        }).map(normalizeToPosix);
+
+        if (filePatterns.length) {
+          globbyPatterns.push(...filePatterns);
+        }
+      }
+
+      return;
+    } // save patterns for later use based on whether globs are enabled
+
+
+    if (globInputPaths && isGlobPattern(filePath)) {
+      globbyPatterns.push(pattern);
+    } else {
+      missingPatterns.push(pattern);
+    }
+  }); // note: globbyPatterns can be an empty array
+
+  const globbyResults = await globby(globbyPatterns, {
+    cwd,
+    absolute: true,
+    ignore: configs.ignores.filter(matcher => typeof matcher === "string")
+  }); // if there are no results, tell the user why
+
+  if (!results.length && !globbyResults.length) {
+    // try globby without ignoring anything
+
+    /* eslint-disable no-unreachable-loop -- We want to exit early. */
+    for (const globbyPattern of globbyPatterns) {
+      /* eslint-disable-next-line no-unused-vars -- Want to exit early. */
+      for await (const filePath of globby.stream(globbyPattern, {
+        cwd,
+        absolute: true
+      })) {
+        // files were found but ignored
+        throw new AllFilesIgnoredError(globbyPattern);
+      } // no files were found
+
+
+      if (errorOnUnmatchedPattern) {
+        throw new NoFilesFoundError(globbyPattern, globInputPaths);
+      }
+    }
+    /* eslint-enable no-unreachable-loop -- Go back to normal. */
+
+  } // there were patterns that didn't match anything, tell the user
+
+
+  if (errorOnUnmatchedPattern && missingPatterns.length) {
+    throw new NoFilesFoundError(missingPatterns[0], globInputPaths);
+  }
+
+  return [...results, ...globbyResults.map(filePath => ({
+    filePath: path.resolve(filePath),
+    ignored: false
+  }))];
+}
+/**
+ * Checks whether a file exists at the given location
+ * @param {string} resolvedPath A path from the CWD
+ * @throws {Error} As thrown by `fs.statSync` or `fs.isFile`.
+ * @returns {boolean} `true` if a file exists
+ */
+
+
+function fileExists(resolvedPath) {
+  try {
+    return fs.statSync(resolvedPath).isFile();
+  } catch (error) {
+    if (error && (error.code === "ENOENT" || error.code === "ENOTDIR")) {
+      return false;
+    }
+
+    throw error;
+  }
+}
+/**
+ * Checks whether a directory exists at the given location
+ * @param {string} resolvedPath A path from the CWD
+ * @throws {Error} As thrown by `fs.statSync` or `fs.isDirectory`.
+ * @returns {boolean} `true` if a directory exists
+ */
+
+
+function directoryExists(resolvedPath) {
+  try {
+    return fs.statSync(resolvedPath).isDirectory();
+  } catch (error) {
+    if (error && (error.code === "ENOENT" || error.code === "ENOTDIR")) {
+      return false;
+    }
+
+    throw error;
+  }
+} //-----------------------------------------------------------------------------
+// Results-related Helpers
+//-----------------------------------------------------------------------------
+
+/**
+ * Checks if the given message is an error message.
+ * @param {LintMessage} message The message to check.
+ * @returns {boolean} Whether or not the message is an error message.
+ * @private
+ */
+
+
+function isErrorMessage(message) {
+  return message.severity === 2;
+}
+/**
+ * Returns result with warning by ignore settings
+ * @param {string} filePath File path of checked code
+ * @param {string} baseDir Absolute path of base directory
+ * @returns {LintResult} Result with single warning
+ * @private
+ */
+
+
+function createIgnoreResult(filePath, baseDir) {
+  let message;
+  const isHidden = filePath.split(path.sep).find(segment => /^\./u.test(segment));
+  const isInNodeModules = baseDir && path.relative(baseDir, filePath).startsWith("node_modules");
+
+  if (isHidden) {
+    message = "File ignored by default.  Use a negated ignore pattern (like \"--ignore-pattern '!<relative/path/to/filename>'\") to override.";
+  } else if (isInNodeModules) {
+    message = "File ignored by default. Use \"--ignore-pattern '!node_modules/*'\" to override.";
+  } else {
+    message = "File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override.";
+  }
+
+  return {
+    filePath: path.resolve(filePath),
+    messages: [{
+      fatal: false,
+      severity: 1,
+      message
+    }],
+    suppressedMessages: [],
+    errorCount: 0,
+    warningCount: 1,
+    fatalErrorCount: 0,
+    fixableErrorCount: 0,
+    fixableWarningCount: 0
+  };
+} //-----------------------------------------------------------------------------
+// Options-related Helpers
+//-----------------------------------------------------------------------------
+
+/**
+ * Check if a given value is a valid fix type or not.
+ * @param {any} x The value to check.
+ * @returns {boolean} `true` if `x` is valid fix type.
+ */
+
+
+function isFixType(x) {
+  return x === "directive" || x === "problem" || x === "suggestion" || x === "layout";
+}
+/**
+ * Check if a given value is an array of fix types or not.
+ * @param {any} x The value to check.
+ * @returns {boolean} `true` if `x` is an array of fix types.
+ */
+
+
+function isFixTypeArray(x) {
+  return Array.isArray(x) && x.every(isFixType);
+}
+/**
+ * The error for invalid options.
+ */
+
+
+class ESLintInvalidOptionsError extends Error {
+  constructor(messages) {
+    super(`Invalid Options:\n- ${messages.join("\n- ")}`);
+    this.code = "ESLINT_INVALID_OPTIONS";
+    Error.captureStackTrace(this, ESLintInvalidOptionsError);
+  }
+
+}
+/**
+ * Validates and normalizes options for the wrapped CLIEngine instance.
+ * @param {FlatESLintOptions} options The options to process.
+ * @throws {ESLintInvalidOptionsError} If of any of a variety of type errors.
+ * @returns {FlatESLintOptions} The normalized options.
+ */
+
+
+function processOptions(_ref2) {
+  let {
+    allowInlineConfig = true,
+    // ← we cannot use `overrideConfig.noInlineConfig` instead because `allowInlineConfig` has side-effect that suppress warnings that show inline configs are ignored.
+    baseConfig = null,
+    cache = false,
+    cacheLocation = ".eslintcache",
+    cacheStrategy = "metadata",
+    cwd = process.cwd(),
+    errorOnUnmatchedPattern = true,
+    fix = false,
+    fixTypes = null,
+    // ← should be null by default because if it's an array then it suppresses rules that don't have the `meta.type` property.
+    globInputPaths = true,
+    ignore = true,
+    ignorePath = null,
+    // ← should be null by default because if it's a string then it may throw ENOENT.
+    ignorePatterns = null,
+    overrideConfig = null,
+    overrideConfigFile = null,
+    plugins = {},
+    reportUnusedDisableDirectives = null,
+    // ← should be null by default because if it's a string then it overrides the 'reportUnusedDisableDirectives' setting in config files. And we cannot use `overrideConfig.reportUnusedDisableDirectives` instead because we cannot configure the `error` severity with that.
+    ...unknownOptions
+  } = _ref2;
+  const errors = [];
+  const unknownOptionKeys = Object.keys(unknownOptions);
+
+  if (unknownOptionKeys.length >= 1) {
+    errors.push(`Unknown options: ${unknownOptionKeys.join(", ")}`);
+
+    if (unknownOptionKeys.includes("cacheFile")) {
+      errors.push("'cacheFile' has been removed. Please use the 'cacheLocation' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("configFile")) {
+      errors.push("'configFile' has been removed. Please use the 'overrideConfigFile' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("envs")) {
+      errors.push("'envs' has been removed.");
+    }
+
+    if (unknownOptionKeys.includes("extensions")) {
+      errors.push("'extensions' has been removed.");
+    }
+
+    if (unknownOptionKeys.includes("resolvePluginsRelativeTo")) {
+      errors.push("'resolvePluginsRelativeTo' has been removed.");
+    }
+
+    if (unknownOptionKeys.includes("globals")) {
+      errors.push("'globals' has been removed. Please use the 'overrideConfig.languageOptions.globals' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("ignorePattern")) {
+      errors.push("'ignorePattern' has been removed. Please use the 'overrideConfig.ignorePatterns' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("parser")) {
+      errors.push("'parser' has been removed. Please use the 'overrideConfig.languageOptions.parser' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("parserOptions")) {
+      errors.push("'parserOptions' has been removed. Please use the 'overrideConfig.languageOptions.parserOptions' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("rules")) {
+      errors.push("'rules' has been removed. Please use the 'overrideConfig.rules' option instead.");
+    }
+
+    if (unknownOptionKeys.includes("rulePaths")) {
+      errors.push("'rulePaths' has been removed. Please define your rules using plugins.");
+    }
+  }
+
+  if (typeof allowInlineConfig !== "boolean") {
+    errors.push("'allowInlineConfig' must be a boolean.");
+  }
+
+  if (typeof baseConfig !== "object") {
+    errors.push("'baseConfig' must be an object or null.");
+  }
+
+  if (typeof cache !== "boolean") {
+    errors.push("'cache' must be a boolean.");
+  }
+
+  if (!isNonEmptyString(cacheLocation)) {
+    errors.push("'cacheLocation' must be a non-empty string.");
+  }
+
+  if (cacheStrategy !== "metadata" && cacheStrategy !== "content") {
+    errors.push("'cacheStrategy' must be any of \"metadata\", \"content\".");
+  }
+
+  if (!isNonEmptyString(cwd) || !path.isAbsolute(cwd)) {
+    errors.push("'cwd' must be an absolute path.");
+  }
+
+  if (typeof errorOnUnmatchedPattern !== "boolean") {
+    errors.push("'errorOnUnmatchedPattern' must be a boolean.");
+  }
+
+  if (typeof fix !== "boolean" && typeof fix !== "function") {
+    errors.push("'fix' must be a boolean or a function.");
+  }
+
+  if (fixTypes !== null && !isFixTypeArray(fixTypes)) {
+    errors.push("'fixTypes' must be an array of any of \"directive\", \"problem\", \"suggestion\", and \"layout\".");
+  }
+
+  if (typeof globInputPaths !== "boolean") {
+    errors.push("'globInputPaths' must be a boolean.");
+  }
+
+  if (typeof ignore !== "boolean") {
+    errors.push("'ignore' must be a boolean.");
+  }
+
+  if (!isNonEmptyString(ignorePath) && ignorePath !== null) {
+    errors.push("'ignorePath' must be a non-empty string or null.");
+  }
+
+  if (typeof overrideConfig !== "object") {
+    errors.push("'overrideConfig' must be an object or null.");
+  }
+
+  if (!isNonEmptyString(overrideConfigFile) && overrideConfigFile !== null && overrideConfigFile !== true) {
+    errors.push("'overrideConfigFile' must be a non-empty string, null, or true.");
+  }
+
+  if (typeof plugins !== "object") {
+    errors.push("'plugins' must be an object or null.");
+  } else if (plugins !== null && Object.keys(plugins).includes("")) {
+    errors.push("'plugins' must not include an empty string.");
+  }
+
+  if (Array.isArray(plugins)) {
+    errors.push("'plugins' doesn't add plugins to configuration to load. Please use the 'overrideConfig.plugins' option instead.");
+  }
+
+  if (reportUnusedDisableDirectives !== "error" && reportUnusedDisableDirectives !== "warn" && reportUnusedDisableDirectives !== "off" && reportUnusedDisableDirectives !== null) {
+    errors.push("'reportUnusedDisableDirectives' must be any of \"error\", \"warn\", \"off\", and null.");
+  }
+
+  if (errors.length > 0) {
+    throw new ESLintInvalidOptionsError(errors);
+  }
+
+  return {
+    allowInlineConfig,
+    baseConfig,
+    cache,
+    cacheLocation,
+    cacheStrategy,
+    // when overrideConfigFile is true that means don't do config file lookup
+    configFile: overrideConfigFile === true ? false : overrideConfigFile,
+    overrideConfig,
+    cwd,
+    errorOnUnmatchedPattern,
+    fix,
+    fixTypes,
+    globInputPaths,
+    ignore,
+    ignorePath,
+    ignorePatterns,
+    reportUnusedDisableDirectives
+  };
+} //-----------------------------------------------------------------------------
+// Cache-related helpers
+//-----------------------------------------------------------------------------
+
+/**
+ * return the cacheFile to be used by eslint, based on whether the provided parameter is
+ * a directory or looks like a directory (ends in `path.sep`), in which case the file
+ * name will be the `cacheFile/.cache_hashOfCWD`
+ *
+ * if cacheFile points to a file or looks like a file then in will just use that file
+ * @param {string} cacheFile The name of file to be used to store the cache
+ * @param {string} cwd Current working directory
+ * @returns {string} the resolved path to the cache file
+ */
+
+
+function getCacheFile(cacheFile, cwd) {
+  /*
+   * make sure the path separators are normalized for the environment/os
+   * keeping the trailing path separator if present
+   */
+  const normalizedCacheFile = path.normalize(cacheFile);
+  const resolvedCacheFile = path.resolve(cwd, normalizedCacheFile);
+  const looksLikeADirectory = normalizedCacheFile.slice(-1) === path.sep;
+  /**
+   * return the name for the cache file in case the provided parameter is a directory
+   * @returns {string} the resolved path to the cacheFile
+   */
+
+  function getCacheFileForDirectory() {
+    return path.join(resolvedCacheFile, `.cache_${hash(cwd)}`);
+  }
+
+  let fileStats;
+
+  try {
+    fileStats = fs.lstatSync(resolvedCacheFile);
+  } catch {
+    fileStats = null;
+  }
+  /*
+   * in case the file exists we need to verify if the provided path
+   * is a directory or a file. If it is a directory we want to create a file
+   * inside that directory
+   */
+
+
+  if (fileStats) {
+    /*
+     * is a directory or is a file, but the original file the user provided
+     * looks like a directory but `path.resolve` removed the `last path.sep`
+     * so we need to still treat this like a directory
+     */
+    if (fileStats.isDirectory() || looksLikeADirectory) {
+      return getCacheFileForDirectory();
+    } // is file so just use that file
+
+
+    return resolvedCacheFile;
+  }
+  /*
+   * here we known the file or directory doesn't exist,
+   * so we will try to infer if its a directory if it looks like a directory
+   * for the current operating system.
+   */
+  // if the last character passed is a path separator we assume is a directory
+
+
+  if (looksLikeADirectory) {
+    return getCacheFileForDirectory();
+  }
+
+  return resolvedCacheFile;
+} //-----------------------------------------------------------------------------
+// Exports
+//-----------------------------------------------------------------------------
+
+
+module.exports = {
+  isGlobPattern,
+  directoryExists,
+  fileExists,
+  findFiles,
+  isNonEmptyString,
+  isArrayOfNonEmptyString,
+  createIgnoreResult,
+  isErrorMessage,
+  processOptions,
+  getCacheFile
+};
+
+/***/ }),
+/* 1022 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const fs = __webpack_require__(971);
+
+const arrayUnion = __webpack_require__(1023);
+
+const merge2 = __webpack_require__(1024);
+
+const fastGlob = __webpack_require__(1026);
+
+const dirGlob = __webpack_require__(1097);
+
+const gitignore = __webpack_require__(1099);
+
+const {
+  FilterStream,
+  UniqueStream
+} = __webpack_require__(1101);
+
+const DEFAULT_FILTER = () => false;
+
+const isNegative = pattern => pattern[0] === '!';
+
+const assertPatternsInput = patterns => {
+  if (!patterns.every(pattern => typeof pattern === 'string')) {
+    throw new TypeError('Patterns must be a string or an array of strings');
+  }
+};
+
+const checkCwdOption = function () {
+  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  if (!options.cwd) {
+    return;
+  }
+
+  let stat;
+
+  try {
+    stat = fs.statSync(options.cwd);
+  } catch {
+    return;
+  }
+
+  if (!stat.isDirectory()) {
+    throw new Error('The `cwd` option must be a path to a directory');
+  }
+};
+
+const getPathString = p => p.stats instanceof fs.Stats ? p.path : p;
+
+const generateGlobTasks = (patterns, taskOptions) => {
+  patterns = arrayUnion([].concat(patterns));
+  assertPatternsInput(patterns);
+  checkCwdOption(taskOptions);
+  const globTasks = [];
+  taskOptions = {
+    ignore: [],
+    expandDirectories: true,
+    ...taskOptions
+  };
+
+  for (const [index, pattern] of patterns.entries()) {
+    if (isNegative(pattern)) {
+      continue;
+    }
+
+    const ignore = patterns.slice(index).filter(pattern => isNegative(pattern)).map(pattern => pattern.slice(1));
+    const options = { ...taskOptions,
+      ignore: taskOptions.ignore.concat(ignore)
+    };
+    globTasks.push({
+      pattern,
+      options
+    });
+  }
+
+  return globTasks;
+};
+
+const globDirs = (task, fn) => {
+  let options = {};
+
+  if (task.options.cwd) {
+    options.cwd = task.options.cwd;
+  }
+
+  if (Array.isArray(task.options.expandDirectories)) {
+    options = { ...options,
+      files: task.options.expandDirectories
+    };
+  } else if (typeof task.options.expandDirectories === 'object') {
+    options = { ...options,
+      ...task.options.expandDirectories
+    };
+  }
+
+  return fn(task.pattern, options);
+};
+
+const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern];
+
+const getFilterSync = options => {
+  return options && options.gitignore ? gitignore.sync({
+    cwd: options.cwd,
+    ignore: options.ignore
+  }) : DEFAULT_FILTER;
+};
+
+const globToTask = task => glob => {
+  const {
+    options
+  } = task;
+
+  if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) {
+    options.ignore = dirGlob.sync(options.ignore);
+  }
+
+  return {
+    pattern: glob,
+    options
+  };
+};
+
+module.exports = async (patterns, options) => {
+  const globTasks = generateGlobTasks(patterns, options);
+
+  const getFilter = async () => {
+    return options && options.gitignore ? gitignore({
+      cwd: options.cwd,
+      ignore: options.ignore
+    }) : DEFAULT_FILTER;
+  };
+
+  const getTasks = async () => {
+    const tasks = await Promise.all(globTasks.map(async task => {
+      const globs = await getPattern(task, dirGlob);
+      return Promise.all(globs.map(globToTask(task)));
+    }));
+    return arrayUnion(...tasks);
+  };
+
+  const [filter, tasks] = await Promise.all([getFilter(), getTasks()]);
+  const paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options)));
+  return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_)));
+};
+
+module.exports.sync = (patterns, options) => {
+  const globTasks = generateGlobTasks(patterns, options);
+  const tasks = [];
+
+  for (const task of globTasks) {
+    const newTask = getPattern(task, dirGlob.sync).map(globToTask(task));
+    tasks.push(...newTask);
+  }
+
+  const filter = getFilterSync(options);
+  let matches = [];
+
+  for (const task of tasks) {
+    matches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options));
+  }
+
+  return matches.filter(path_ => !filter(path_));
+};
+
+module.exports.stream = (patterns, options) => {
+  const globTasks = generateGlobTasks(patterns, options);
+  const tasks = [];
+
+  for (const task of globTasks) {
+    const newTask = getPattern(task, dirGlob.sync).map(globToTask(task));
+    tasks.push(...newTask);
+  }
+
+  const filter = getFilterSync(options);
+  const filterStream = new FilterStream(p => !filter(p));
+  const uniqueStream = new UniqueStream();
+  return merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options))).pipe(filterStream).pipe(uniqueStream);
+};
+
+module.exports.generateGlobTasks = generateGlobTasks;
+
+module.exports.hasMagic = (patterns, options) => [].concat(patterns).some(pattern => fastGlob.isDynamicPattern(pattern, options));
+
+module.exports.gitignore = gitignore;
+
+/***/ }),
+/* 1023 */
+/***/ ((module) => {
+
+"use strict";
+
+
+module.exports = function () {
+  return [...new Set([].concat(...arguments))];
+};
+
+/***/ }),
+/* 1024 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+/*
+ * merge2
+ * https://github.com/teambition/merge2
+ *
+ * Copyright (c) 2014-2020 Teambition
+ * Licensed under the MIT license.
+ */
+
+const Stream = __webpack_require__(1025);
+
+const PassThrough = Stream.PassThrough;
+const slice = Array.prototype.slice;
+module.exports = merge2;
+
+function merge2() {
+  const streamsQueue = [];
+  const args = slice.call(arguments);
+  let merging = false;
+  let options = args[args.length - 1];
+
+  if (options && !Array.isArray(options) && options.pipe == null) {
+    args.pop();
+  } else {
+    options = {};
+  }
+
+  const doEnd = options.end !== false;
+  const doPipeError = options.pipeError === true;
+
+  if (options.objectMode == null) {
+    options.objectMode = true;
+  }
+
+  if (options.highWaterMark == null) {
+    options.highWaterMark = 64 * 1024;
+  }
+
+  const mergedStream = PassThrough(options);
+
+  function addStream() {
+    for (let i = 0, len = arguments.length; i < len; i++) {
+      streamsQueue.push(pauseStreams(arguments[i], options));
+    }
+
+    mergeStream();
+    return this;
+  }
+
+  function mergeStream() {
+    if (merging) {
+      return;
+    }
+
+    merging = true;
+    let streams = streamsQueue.shift();
+
+    if (!streams) {
+      process.nextTick(endStream);
+      return;
+    }
+
+    if (!Array.isArray(streams)) {
+      streams = [streams];
+    }
+
+    let pipesCount = streams.length + 1;
+
+    function next() {
+      if (--pipesCount > 0) {
+        return;
+      }
+
+      merging = false;
+      mergeStream();
+    }
+
+    function pipe(stream) {
+      function onend() {
+        stream.removeListener('merge2UnpipeEnd', onend);
+        stream.removeListener('end', onend);
+
+        if (doPipeError) {
+          stream.removeListener('error', onerror);
+        }
+
+        next();
+      }
+
+      function onerror(err) {
+        mergedStream.emit('error', err);
+      } // skip ended stream
+
+
+      if (stream._readableState.endEmitted) {
+        return next();
+      }
+
+      stream.on('merge2UnpipeEnd', onend);
+      stream.on('end', onend);
+
+      if (doPipeError) {
+        stream.on('error', onerror);
+      }
+
+      stream.pipe(mergedStream, {
+        end: false
+      }); // compatible for old stream
+
+      stream.resume();
+    }
+
+    for (let i = 0; i < streams.length; i++) {
+      pipe(streams[i]);
+    }
+
+    next();
+  }
+
+  function endStream() {
+    merging = false; // emit 'queueDrain' when all streams merged.
+
+    mergedStream.emit('queueDrain');
+
+    if (doEnd) {
+      mergedStream.end();
+    }
+  }
+
+  mergedStream.setMaxListeners(0);
+  mergedStream.add = addStream;
+  mergedStream.on('unpipe', function (stream) {
+    stream.emit('merge2UnpipeEnd');
+  });
+
+  if (args.length) {
+    addStream.apply(null, args);
+  }
+
+  return mergedStream;
+} // check and pause streams for pipe.
+
+
+function pauseStreams(streams, options) {
+  if (!Array.isArray(streams)) {
+    // Backwards-compat with old-style streams
+    if (!streams._readableState && streams.pipe) {
+      streams = streams.pipe(PassThrough(options));
+    }
+
+    if (!streams._readableState || !streams.pause || !streams.pipe) {
+      throw new Error('Only readable stream can be merged.');
+    }
+
+    streams.pause();
+  } else {
+    for (let i = 0, len = streams.length; i < len; i++) {
+      streams[i] = pauseStreams(streams[i], options);
+    }
+  }
+
+  return streams;
+}
+
+/***/ }),
+/* 1025 */
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("stream");
+
+/***/ }),
+/* 1026 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const taskManager = __webpack_require__(1027);
+
+const patternManager = __webpack_require__(1054);
+
+const async_1 = __webpack_require__(1055);
+
+const stream_1 = __webpack_require__(1093);
+
+const sync_1 = __webpack_require__(1094);
+
+const settings_1 = __webpack_require__(1096);
+
+const utils = __webpack_require__(1028);
+
+async function FastGlob(source, options) {
+  assertPatternsInput(source);
+  const works = getWorks(source, async_1.default, options);
+  const result = await Promise.all(works);
+  return utils.array.flatten(result);
+} // https://github.com/typescript-eslint/typescript-eslint/issues/60
+// eslint-disable-next-line no-redeclare
+
+
+(function (FastGlob) {
+  function sync(source, options) {
+    assertPatternsInput(source);
+    const works = getWorks(source, sync_1.default, options);
+    return utils.array.flatten(works);
+  }
+
+  FastGlob.sync = sync;
+
+  function stream(source, options) {
+    assertPatternsInput(source);
+    const works = getWorks(source, stream_1.default, options);
+    /**\r
+     * The stream returned by the provider cannot work with an asynchronous iterator.\r
+     * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\r
+     * This affects performance (+25%). I don't see best solution right now.\r
+     */
+
+    return utils.stream.merge(works);
+  }
+
+  FastGlob.stream = stream;
+
+  function generateTasks(source, options) {
+    assertPatternsInput(source);
+    const patterns = patternManager.transform([].concat(source));
+    const settings = new settings_1.default(options);
+    return taskManager.generate(patterns, settings);
+  }
+
+  FastGlob.generateTasks = generateTasks;
+
+  function isDynamicPattern(source, options) {
+    assertPatternsInput(source);
+    const settings = new settings_1.default(options);
+    return utils.pattern.isDynamicPattern(source, settings);
+  }
+
+  FastGlob.isDynamicPattern = isDynamicPattern;
+
+  function escapePath(source) {
+    assertPatternsInput(source);
+    return utils.path.escape(source);
+  }
+
+  FastGlob.escapePath = escapePath;
+})(FastGlob || (FastGlob = {}));
+
+function getWorks(source, _Provider, options) {
+  const patterns = patternManager.transform([].concat(source));
+  const settings = new settings_1.default(options);
+  const tasks = taskManager.generate(patterns, settings);
+  const provider = new _Provider(settings);
+  return tasks.map(provider.read, provider);
+}
+
+function assertPatternsInput(input) {
+  const source = [].concat(input);
+  const isValidSource = source.every(item => utils.string.isString(item) && !utils.string.isEmpty(item));
+
+  if (!isValidSource) {
+    throw new TypeError('Patterns must be a string (non empty) or an array of strings');
+  }
+}
+
+module.exports = FastGlob;
+
+/***/ }),
+/* 1027 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;
+
+const utils = __webpack_require__(1028);
+
+function generate(patterns, settings) {
+  const positivePatterns = getPositivePatterns(patterns);
+  const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore);
+  const staticPatterns = positivePatterns.filter(pattern => utils.pattern.isStaticPattern(pattern, settings));
+  const dynamicPatterns = positivePatterns.filter(pattern => utils.pattern.isDynamicPattern(pattern, settings));
+  const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns,
+  /* dynamic */
+  false);
+  const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns,
+  /* dynamic */
+  true);
+  return staticTasks.concat(dynamicTasks);
+}
+
+exports.generate = generate;
+/**\r
+ * Returns tasks grouped by basic pattern directories.\r
+ *\r
+ * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\r
+ * This is necessary because directory traversal starts at the base directory and goes deeper.\r
+ */
+
+function convertPatternsToTasks(positive, negative, dynamic) {
+  const tasks = [];
+  const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);
+  const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);
+  const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);
+  const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);
+  tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));
+  /*\r
+   * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\r
+   * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\r
+   */
+
+  if ('.' in insideCurrentDirectoryGroup) {
+    tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));
+  } else {
+    tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));
+  }
+
+  return tasks;
+}
+
+exports.convertPatternsToTasks = convertPatternsToTasks;
+
+function getPositivePatterns(patterns) {
+  return utils.pattern.getPositivePatterns(patterns);
+}
+
+exports.getPositivePatterns = getPositivePatterns;
+
+function getNegativePatternsAsPositive(patterns, ignore) {
+  const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);
+  const positive = negative.map(utils.pattern.convertToPositivePattern);
+  return positive;
+}
+
+exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;
+
+function groupPatternsByBaseDirectory(patterns) {
+  const group = {};
+  return patterns.reduce((collection, pattern) => {
+    const base = utils.pattern.getBaseDirectory(pattern);
+
+    if (base in collection) {
+      collection[base].push(pattern);
+    } else {
+      collection[base] = [pattern];
+    }
+
+    return collection;
+  }, group);
+}
+
+exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;
+
+function convertPatternGroupsToTasks(positive, negative, dynamic) {
+  return Object.keys(positive).map(base => {
+    return convertPatternGroupToTask(base, positive[base], negative, dynamic);
+  });
+}
+
+exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;
+
+function convertPatternGroupToTask(base, positive, negative, dynamic) {
+  return {
+    dynamic,
+    positive,
+    negative,
+    base,
+    patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))
+  };
+}
+
+exports.convertPatternGroupToTask = convertPatternGroupToTask;
+
+/***/ }),
+/* 1028 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;
+
+const array = __webpack_require__(1029);
+
+exports.array = array;
+
+const errno = __webpack_require__(1030);
+
+exports.errno = errno;
+
+const fs = __webpack_require__(1031);
+
+exports.fs = fs;
+
+const path = __webpack_require__(1032);
+
+exports.path = path;
+
+const pattern = __webpack_require__(1033);
+
+exports.pattern = pattern;
+
+const stream = __webpack_require__(1052);
+
+exports.stream = stream;
+
+const string = __webpack_require__(1053);
+
+exports.string = string;
+
+/***/ }),
+/* 1029 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
 
-        return patterns.map(pattern => {
-            const negative = pattern.startsWith("!");
-            const head = negative ? "!" : "";
-            const body = negative ? pattern.slice(1) : pattern;
 
-            if (body.startsWith("/") || body.startsWith("../")) {
-                return `${head}${prefix}${body}`;
-            }
-            return loose ? pattern : `${head}${prefix}/**/${body}`;
-        });
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.splitWhen = exports.flatten = void 0;
+
+function flatten(items) {
+  return items.reduce((collection, item) => [].concat(collection, item), []);
+}
+
+exports.flatten = flatten;
+
+function splitWhen(items, predicate) {
+  const result = [[]];
+  let groupIndex = 0;
+
+  for (const item of items) {
+    if (predicate(item)) {
+      groupIndex++;
+      result[groupIndex] = [];
+    } else {
+      result[groupIndex].push(item);
+    }
+  }
+
+  return result;
+}
+
+exports.splitWhen = splitWhen;
+
+/***/ }),
+/* 1030 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.isEnoentCodeError = void 0;
+
+function isEnoentCodeError(error) {
+  return error.code === 'ENOENT';
+}
+
+exports.isEnoentCodeError = isEnoentCodeError;
+
+/***/ }),
+/* 1031 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.createDirentFromStats = void 0;
+
+class DirentFromStats {
+  constructor(name, stats) {
+    this.name = name;
+    this.isBlockDevice = stats.isBlockDevice.bind(stats);
+    this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
+    this.isDirectory = stats.isDirectory.bind(stats);
+    this.isFIFO = stats.isFIFO.bind(stats);
+    this.isFile = stats.isFile.bind(stats);
+    this.isSocket = stats.isSocket.bind(stats);
+    this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
+  }
+
+}
+
+function createDirentFromStats(name, stats) {
+  return new DirentFromStats(name, stats);
+}
+
+exports.createDirentFromStats = createDirentFromStats;
+
+/***/ }),
+/* 1032 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0;
+
+const path = __webpack_require__(501);
+
+const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\
+
+const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;
+/**\r
+ * Designed to work only with simple paths: `dir\\file`.\r
+ */
+
+function unixify(filepath) {
+  return filepath.replace(/\\/g, '/');
+}
+
+exports.unixify = unixify;
+
+function makeAbsolute(cwd, filepath) {
+  return path.resolve(cwd, filepath);
+}
+
+exports.makeAbsolute = makeAbsolute;
+
+function escape(pattern) {
+  return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2');
+}
+
+exports.escape = escape;
+
+function removeLeadingDotSegment(entry) {
+  // We do not use `startsWith` because this is 10x slower than current implementation for some cases.
+  // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
+  if (entry.charAt(0) === '.') {
+    const secondCharactery = entry.charAt(1);
+
+    if (secondCharactery === '/' || secondCharactery === '\\') {
+      return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);
     }
+  }
+
+  return entry;
+}
+
+exports.removeLeadingDotSegment = removeLeadingDotSegment;
+
+/***/ }),
+/* 1033 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;
+
+const path = __webpack_require__(501);
+
+const globParent = __webpack_require__(1034);
+
+const micromatch = __webpack_require__(1035);
+
+const GLOBSTAR = '**';
+const ESCAPE_SYMBOL = '\\';
+const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;
+const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/;
+const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/;
+const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/;
+const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./;
+
+function isStaticPattern(pattern) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  return !isDynamicPattern(pattern, options);
+}
+
+exports.isStaticPattern = isStaticPattern;
+
+function isDynamicPattern(pattern) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  /**\r
+   * A special case with an empty string is necessary for matching patterns that start with a forward slash.\r
+   * An empty string cannot be a dynamic pattern.\r
+   * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\r
+   */
+  if (pattern === '') {
+    return false;
+  }
+  /**\r
+   * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\r
+   * filepath directly (without read directory).\r
+   */
+
+
+  if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {
+    return true;
+  }
+
+  if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {
+    return true;
+  }
+
+  if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {
+    return true;
+  }
+
+  if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {
+    return true;
+  }
+
+  return false;
+}
+
+exports.isDynamicPattern = isDynamicPattern;
+
+function hasBraceExpansion(pattern) {
+  const openingBraceIndex = pattern.indexOf('{');
+
+  if (openingBraceIndex === -1) {
+    return false;
+  }
+
+  const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);
+
+  if (closingBraceIndex === -1) {
+    return false;
+  }
+
+  const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);
+  return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);
+}
+
+function convertToPositivePattern(pattern) {
+  return isNegativePattern(pattern) ? pattern.slice(1) : pattern;
+}
+
+exports.convertToPositivePattern = convertToPositivePattern;
+
+function convertToNegativePattern(pattern) {
+  return '!' + pattern;
+}
+
+exports.convertToNegativePattern = convertToNegativePattern;
+
+function isNegativePattern(pattern) {
+  return pattern.startsWith('!') && pattern[1] !== '(';
+}
+
+exports.isNegativePattern = isNegativePattern;
+
+function isPositivePattern(pattern) {
+  return !isNegativePattern(pattern);
+}
+
+exports.isPositivePattern = isPositivePattern;
+
+function getNegativePatterns(patterns) {
+  return patterns.filter(isNegativePattern);
+}
+
+exports.getNegativePatterns = getNegativePatterns;
+
+function getPositivePatterns(patterns) {
+  return patterns.filter(isPositivePattern);
+}
+
+exports.getPositivePatterns = getPositivePatterns;
+/**\r
+ * Returns patterns that can be applied inside the current directory.\r
+ *\r
+ * @example\r
+ * // ['./*', '*', 'a/*']\r
+ * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\r
+ */
+
+function getPatternsInsideCurrentDirectory(patterns) {
+  return patterns.filter(pattern => !isPatternRelatedToParentDirectory(pattern));
+}
+
+exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;
+/**\r
+ * Returns patterns to be expanded relative to (outside) the current directory.\r
+ *\r
+ * @example\r
+ * // ['../*', './../*']\r
+ * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\r
+ */
+
+function getPatternsOutsideCurrentDirectory(patterns) {
+  return patterns.filter(isPatternRelatedToParentDirectory);
+}
+
+exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;
+
+function isPatternRelatedToParentDirectory(pattern) {
+  return pattern.startsWith('..') || pattern.startsWith('./..');
+}
+
+exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;
+
+function getBaseDirectory(pattern) {
+  return globParent(pattern, {
+    flipBackslashes: false
+  });
+}
+
+exports.getBaseDirectory = getBaseDirectory;
+
+function hasGlobStar(pattern) {
+  return pattern.includes(GLOBSTAR);
+}
+
+exports.hasGlobStar = hasGlobStar;
+
+function endsWithSlashGlobStar(pattern) {
+  return pattern.endsWith('/' + GLOBSTAR);
+}
+
+exports.endsWithSlashGlobStar = endsWithSlashGlobStar;
+
+function isAffectDepthOfReadingPattern(pattern) {
+  const basename = path.basename(pattern);
+  return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);
+}
+
+exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
+
+function expandPatternsWithBraceExpansion(patterns) {
+  return patterns.reduce((collection, pattern) => {
+    return collection.concat(expandBraceExpansion(pattern));
+  }, []);
+}
+
+exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;
+
+function expandBraceExpansion(pattern) {
+  return micromatch.braces(pattern, {
+    expand: true,
+    nodupes: true
+  });
+}
+
+exports.expandBraceExpansion = expandBraceExpansion;
+
+function getPatternParts(pattern, options) {
+  let {
+    parts
+  } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), {
+    parts: true
+  }));
+  /**\r
+   * The scan method returns an empty array in some cases.\r
+   * See micromatch/picomatch#58 for more details.\r
+   */
+
+  if (parts.length === 0) {
+    parts = [pattern];
+  }
+  /**\r
+   * The scan method does not return an empty part for the pattern with a forward slash.\r
+   * This is another part of micromatch/picomatch#58.\r
+   */
+
+
+  if (parts[0].startsWith('/')) {
+    parts[0] = parts[0].slice(1);
+    parts.unshift('');
+  }
+
+  return parts;
+}
+
+exports.getPatternParts = getPatternParts;
+
+function makeRe(pattern, options) {
+  return micromatch.makeRe(pattern, options);
 }
 
+exports.makeRe = makeRe;
+
+function convertPatternsToRe(patterns, options) {
+  return patterns.map(pattern => makeRe(pattern, options));
+}
+
+exports.convertPatternsToRe = convertPatternsToRe;
+
+function matchAny(entry, patternsRe) {
+  return patternsRe.some(patternRe => patternRe.test(entry));
+}
+
+exports.matchAny = matchAny;
+
+/***/ }),
+/* 1034 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+var isGlob = __webpack_require__(986);
+
+var pathPosixDirname = (__webpack_require__(501).posix.dirname);
+
+var isWin32 = (__webpack_require__(982).platform)() === 'win32';
+var slash = '/';
+var backslash = /\\/g;
+var enclosure = /[\{\[].*[\}\]]$/;
+var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;
+var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;
 /**
- * @fileoverview `ExtractedConfig` class.
+ * @param {string} str
+ * @param {Object} opts
+ * @param {boolean} [opts.flipBackslashes=true]
+ * @returns {string}
+ */
+
+module.exports = function globParent(str, opts) {
+  var options = Object.assign({
+    flipBackslashes: true
+  }, opts); // flip windows path separators
+
+  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {
+    str = str.replace(backslash, slash);
+  } // special case for strings ending in enclosure containing path separator
+
+
+  if (enclosure.test(str)) {
+    str += slash;
+  } // preserves full path in case of trailing path separator
+
+
+  str += 'a'; // remove path parts that are globby
+
+  do {
+    str = pathPosixDirname(str);
+  } while (isGlob(str) || globby.test(str)); // remove escape chars and return result
+
+
+  return str.replace(escaped, '$1');
+};
+
+/***/ }),
+/* 1035 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const util = __webpack_require__(516);
+
+const braces = __webpack_require__(1036);
+
+const picomatch = __webpack_require__(1046);
+
+const utils = __webpack_require__(1049);
+
+const isEmptyString = val => val === '' || val === './';
+/**
+ * Returns an array of strings that match one or more glob patterns.
  *
- * `ExtractedConfig` class expresses a final configuration for a specific file.
+ * ```js
+ * const mm = require('micromatch');
+ * // mm(list, patterns[, options]);
  *
- * It provides one method.
+ * console.log(mm(['a.js', 'a.txt'], ['*.js']));
+ * //=> [ 'a.js' ]
+ * ```
+ * @param {String|Array<string>} `list` List of strings to match.
+ * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.
+ * @param {Object} `options` See available [options](#options)
+ * @return {Array} Returns an array of matches
+ * @summary false
+ * @api public
+ */
+
+
+const micromatch = (list, patterns, options) => {
+  patterns = [].concat(patterns);
+  list = [].concat(list);
+  let omit = new Set();
+  let keep = new Set();
+  let items = new Set();
+  let negatives = 0;
+
+  let onResult = state => {
+    items.add(state.output);
+
+    if (options && options.onResult) {
+      options.onResult(state);
+    }
+  };
+
+  for (let i = 0; i < patterns.length; i++) {
+    let isMatch = picomatch(String(patterns[i]), { ...options,
+      onResult
+    }, true);
+    let negated = isMatch.state.negated || isMatch.state.negatedExtglob;
+    if (negated) negatives++;
+
+    for (let item of list) {
+      let matched = isMatch(item, true);
+      let match = negated ? !matched.isMatch : matched.isMatch;
+      if (!match) continue;
+
+      if (negated) {
+        omit.add(matched.output);
+      } else {
+        omit.delete(matched.output);
+        keep.add(matched.output);
+      }
+    }
+  }
+
+  let result = negatives === patterns.length ? [...items] : [...keep];
+  let matches = result.filter(item => !omit.has(item));
+
+  if (options && matches.length === 0) {
+    if (options.failglob === true) {
+      throw new Error(`No matches found for "${patterns.join(', ')}"`);
+    }
+
+    if (options.nonull === true || options.nullglob === true) {
+      return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns;
+    }
+  }
+
+  return matches;
+};
+/**
+ * Backwards compatibility
+ */
+
+
+micromatch.match = micromatch;
+/**
+ * Returns a matcher function from the given glob `pattern` and `options`.
+ * The returned function takes a string to match as its only argument and returns
+ * true if the string is a match.
  *
- * - `toCompatibleObjectAsConfigFileContent()`
- *      Convert this configuration to the compatible object as the content of
- *      config files. It converts the loaded parser and plugins to strings.
- *      `CLIEngine#getConfigForFile(filePath)` method uses this method.
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.matcher(pattern[, options]);
  *
- * `ConfigArray#extractConfig(filePath)` creates a `ExtractedConfig` instance.
+ * const isMatch = mm.matcher('*.!(*a)');
+ * console.log(isMatch('a.a')); //=> false
+ * console.log(isMatch('a.b')); //=> true
+ * ```
+ * @param {String} `pattern` Glob pattern
+ * @param {Object} `options`
+ * @return {Function} Returns a matcher function.
+ * @api public
+ */
+
+micromatch.matcher = (pattern, options) => picomatch(pattern, options);
+/**
+ * Returns true if **any** of the given glob `patterns` match the specified `string`.
  *
- * @author Toru Nagashima <https://github.com/mysticatea>
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.isMatch(string, patterns[, options]);
+ *
+ * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true
+ * console.log(mm.isMatch('a.a', 'b.*')); //=> false
+ * ```
+ * @param {String} `str` The string to test.
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
+ * @param {Object} `[options]` See available [options](#options).
+ * @return {Boolean} Returns true if any patterns match `str`
+ * @api public
  */
 
-// For VSCode intellisense
-/** @typedef {import("../../shared/types").ConfigData} ConfigData */
-/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */
-/** @typedef {import("../../shared/types").SeverityConf} SeverityConf */
-/** @typedef {import("./config-dependency").DependentParser} DependentParser */
-/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */
 
+micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
 /**
- * Check if `xs` starts with `ys`.
- * @template T
- * @param {T[]} xs The array to check.
- * @param {T[]} ys The array that may be the first part of `xs`.
- * @returns {boolean} `true` if `xs` starts with `ys`.
+ * Backwards compatibility
  */
-function startsWith(xs, ys) {
-    return xs.length >= ys.length && ys.every((y, i) => y === xs[i]);
-}
 
+
+micromatch.any = micromatch.isMatch;
 /**
- * The class for extracted config data.
+ * Returns a list of strings that _**do not match any**_ of the given `patterns`.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.not(list, patterns[, options]);
+ *
+ * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));
+ * //=> ['b.b', 'c.c']
+ * ```
+ * @param {Array} `list` Array of strings to match.
+ * @param {String|Array} `patterns` One or more glob pattern to use for matching.
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Array} Returns an array of strings that **do not match** the given patterns.
+ * @api public
  */
-class ExtractedConfig {
-    constructor() {
 
-        /**
-         * The config name what `noInlineConfig` setting came from.
-         * @type {string}
-         */
-        this.configNameOfNoInlineConfig = "";
+micromatch.not = function (list, patterns) {
+  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+  patterns = [].concat(patterns).map(String);
+  let result = new Set();
+  let items = [];
 
-        /**
-         * Environments.
-         * @type {Record<string, boolean>}
-         */
-        this.env = {};
+  let onResult = state => {
+    if (options.onResult) options.onResult(state);
+    items.push(state.output);
+  };
 
-        /**
-         * Global variables.
-         * @type {Record<string, GlobalConf>}
-         */
-        this.globals = {};
+  let matches = new Set(micromatch(list, patterns, { ...options,
+    onResult
+  }));
 
-        /**
-         * The glob patterns that ignore to lint.
-         * @type {(((filePath:string, dot?:boolean) => boolean) & { basePath:string; patterns:string[] }) | undefined}
-         */
-        this.ignores = void 0;
+  for (let item of items) {
+    if (!matches.has(item)) {
+      result.add(item);
+    }
+  }
 
-        /**
-         * The flag that disables directive comments.
-         * @type {boolean|undefined}
-         */
-        this.noInlineConfig = void 0;
+  return [...result];
+};
+/**
+ * Returns true if the given `string` contains the given pattern. Similar
+ * to [.isMatch](#isMatch) but the pattern can match any part of the string.
+ *
+ * ```js
+ * var mm = require('micromatch');
+ * // mm.contains(string, pattern[, options]);
+ *
+ * console.log(mm.contains('aa/bb/cc', '*b'));
+ * //=> true
+ * console.log(mm.contains('aa/bb/cc', '*d'));
+ * //=> false
+ * ```
+ * @param {String} `str` The string to match.
+ * @param {String|Array} `patterns` Glob pattern to use for matching.
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Boolean} Returns true if any of the patterns matches any part of `str`.
+ * @api public
+ */
 
-        /**
-         * Parser definition.
-         * @type {DependentParser|null}
-         */
-        this.parser = null;
 
-        /**
-         * Options for the parser.
-         * @type {Object}
-         */
-        this.parserOptions = {};
+micromatch.contains = (str, pattern, options) => {
+  if (typeof str !== 'string') {
+    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
+  }
 
-        /**
-         * Plugin definitions.
-         * @type {Record<string, DependentPlugin>}
-         */
-        this.plugins = {};
+  if (Array.isArray(pattern)) {
+    return pattern.some(p => micromatch.contains(str, p, options));
+  }
 
-        /**
-         * Processor ID.
-         * @type {string|null}
-         */
-        this.processor = null;
+  if (typeof pattern === 'string') {
+    if (isEmptyString(str) || isEmptyString(pattern)) {
+      return false;
+    }
 
-        /**
-         * The flag that reports unused `eslint-disable` directive comments.
-         * @type {boolean|undefined}
-         */
-        this.reportUnusedDisableDirectives = void 0;
+    if (str.includes(pattern) || str.startsWith('./') && str.slice(2).includes(pattern)) {
+      return true;
+    }
+  }
 
-        /**
-         * Rule settings.
-         * @type {Record<string, [SeverityConf, ...any[]]>}
-         */
-        this.rules = {};
+  return micromatch.isMatch(str, pattern, { ...options,
+    contains: true
+  });
+};
+/**
+ * Filter the keys of the given object with the given `glob` pattern
+ * and `options`. Does not attempt to match nested keys. If you need this feature,
+ * use [glob-object][] instead.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.matchKeys(object, patterns[, options]);
+ *
+ * const obj = { aa: 'a', ab: 'b', ac: 'c' };
+ * console.log(mm.matchKeys(obj, '*b'));
+ * //=> { ab: 'b' }
+ * ```
+ * @param {Object} `object` The object with keys to filter.
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Object} Returns an object with only keys that match the given patterns.
+ * @api public
+ */
 
-        /**
-         * Shared settings.
-         * @type {Object}
-         */
-        this.settings = {};
+
+micromatch.matchKeys = (obj, patterns, options) => {
+  if (!utils.isObject(obj)) {
+    throw new TypeError('Expected the first argument to be an object');
+  }
+
+  let keys = micromatch(Object.keys(obj), patterns, options);
+  let res = {};
+
+  for (let key of keys) res[key] = obj[key];
+
+  return res;
+};
+/**
+ * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.some(list, patterns[, options]);
+ *
+ * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
+ * // true
+ * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));
+ * // false
+ * ```
+ * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`
+ * @api public
+ */
+
+
+micromatch.some = (list, patterns, options) => {
+  let items = [].concat(list);
+
+  for (let pattern of [].concat(patterns)) {
+    let isMatch = picomatch(String(pattern), options);
+
+    if (items.some(item => isMatch(item))) {
+      return true;
     }
+  }
 
-    /**
-     * Convert this config to the compatible object as a config file content.
-     * @returns {ConfigData} The converted object.
-     */
-    toCompatibleObjectAsConfigFileContent() {
-        const {
-            /* eslint-disable no-unused-vars */
-            configNameOfNoInlineConfig: _ignore1,
-            processor: _ignore2,
-            /* eslint-enable no-unused-vars */
-            ignores,
-            ...config
-        } = this;
+  return false;
+};
+/**
+ * Returns true if every string in the given `list` matches
+ * any of the given glob `patterns`.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.every(list, patterns[, options]);
+ *
+ * console.log(mm.every('foo.js', ['foo.js']));
+ * // true
+ * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));
+ * // true
+ * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
+ * // false
+ * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));
+ * // false
+ * ```
+ * @param {String|Array} `list` The string or array of strings to test.
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`
+ * @api public
+ */
 
-        config.parser = config.parser && config.parser.filePath;
-        config.plugins = Object.keys(config.plugins).filter(Boolean).reverse();
-        config.ignorePatterns = ignores ? ignores.patterns : [];
 
-        // Strip the default patterns from `ignorePatterns`.
-        if (startsWith(config.ignorePatterns, IgnorePattern.DefaultPatterns)) {
-            config.ignorePatterns =
-                config.ignorePatterns.slice(IgnorePattern.DefaultPatterns.length);
-        }
+micromatch.every = (list, patterns, options) => {
+  let items = [].concat(list);
 
-        return config;
+  for (let pattern of [].concat(patterns)) {
+    let isMatch = picomatch(String(pattern), options);
+
+    if (!items.every(item => isMatch(item))) {
+      return false;
     }
-}
+  }
 
+  return true;
+};
 /**
- * @fileoverview `ConfigArray` class.
+ * Returns true if **all** of the given `patterns` match
+ * the specified string.
  *
- * `ConfigArray` class expresses the full of a configuration. It has the entry
- * config file, base config files that were extended, loaded parsers, and loaded
- * plugins.
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.all(string, patterns[, options]);
  *
- * `ConfigArray` class provides three properties and two methods.
+ * console.log(mm.all('foo.js', ['foo.js']));
+ * // true
  *
- * - `pluginEnvironments`
- * - `pluginProcessors`
- * - `pluginRules`
- *      The `Map` objects that contain the members of all plugins that this
- *      config array contains. Those map objects don't have mutation methods.
- *      Those keys are the member ID such as `pluginId/memberName`.
- * - `isRoot()`
- *      If `true` then this configuration has `root:true` property.
- * - `extractConfig(filePath)`
- *      Extract the final configuration for a given file. This means merging
- *      every config array element which that `criteria` property matched. The
- *      `filePath` argument must be an absolute path.
+ * console.log(mm.all('foo.js', ['*.js', '!foo.js']));
+ * // false
  *
- * `ConfigArrayFactory` provides the loading logic of config files.
+ * console.log(mm.all('foo.js', ['*.js', 'foo.js']));
+ * // true
  *
- * @author Toru Nagashima <https://github.com/mysticatea>
+ * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
+ * // true
+ * ```
+ * @param {String|Array} `str` The string to test.
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Boolean} Returns true if any patterns match `str`
+ * @api public
  */
 
-//------------------------------------------------------------------------------
-// Helpers
-//------------------------------------------------------------------------------
 
-// Define types for VSCode IntelliSense.
-/** @typedef {import("../../shared/types").Environment} Environment */
-/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */
-/** @typedef {import("../../shared/types").RuleConf} RuleConf */
-/** @typedef {import("../../shared/types").Rule} Rule */
-/** @typedef {import("../../shared/types").Plugin} Plugin */
-/** @typedef {import("../../shared/types").Processor} Processor */
-/** @typedef {import("./config-dependency").DependentParser} DependentParser */
-/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */
-/** @typedef {import("./override-tester")["OverrideTester"]} OverrideTester */
+micromatch.all = (str, patterns, options) => {
+  if (typeof str !== 'string') {
+    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
+  }
 
+  return [].concat(patterns).every(p => picomatch(p, options)(str));
+};
 /**
- * @typedef {Object} ConfigArrayElement
- * @property {string} name The name of this config element.
- * @property {string} filePath The path to the source file of this config element.
- * @property {InstanceType<OverrideTester>|null} criteria The tester for the `files` and `excludedFiles` of this config element.
- * @property {Record<string, boolean>|undefined} env The environment settings.
- * @property {Record<string, GlobalConf>|undefined} globals The global variable settings.
- * @property {IgnorePattern|undefined} ignorePattern The ignore patterns.
- * @property {boolean|undefined} noInlineConfig The flag that disables directive comments.
- * @property {DependentParser|undefined} parser The parser loader.
- * @property {Object|undefined} parserOptions The parser options.
- * @property {Record<string, DependentPlugin>|undefined} plugins The plugin loaders.
- * @property {string|undefined} processor The processor name to refer plugin's processor.
- * @property {boolean|undefined} reportUnusedDisableDirectives The flag to report unused `eslint-disable` comments.
- * @property {boolean|undefined} root The flag to express root.
- * @property {Record<string, RuleConf>|undefined} rules The rule settings
- * @property {Object|undefined} settings The shared settings.
- * @property {"config" | "ignore" | "implicit-processor"} type The element type.
+ * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.capture(pattern, string[, options]);
+ *
+ * console.log(mm.capture('test/*.js', 'test/foo.js'));
+ * //=> ['foo']
+ * console.log(mm.capture('test/*.js', 'foo/bar.css'));
+ * //=> null
+ * ```
+ * @param {String} `glob` Glob pattern to use for matching.
+ * @param {String} `input` String to match
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
+ * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.
+ * @api public
  */
 
+
+micromatch.capture = (glob, input, options) => {
+  let posix = utils.isWindows(options);
+  let regex = picomatch.makeRe(String(glob), { ...options,
+    capture: true
+  });
+  let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);
+
+  if (match) {
+    return match.slice(1).map(v => v === void 0 ? '' : v);
+  }
+};
 /**
- * @typedef {Object} ConfigArrayInternalSlots
- * @property {Map<string, ExtractedConfig>} cache The cache to extract configs.
- * @property {ReadonlyMap<string, Environment>|null} envMap The map from environment ID to environment definition.
- * @property {ReadonlyMap<string, Processor>|null} processorMap The map from processor ID to environment definition.
- * @property {ReadonlyMap<string, Rule>|null} ruleMap The map from rule ID to rule definition.
+ * Create a regular expression from the given glob `pattern`.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * // mm.makeRe(pattern[, options]);
+ *
+ * console.log(mm.makeRe('*.js'));
+ * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
+ * ```
+ * @param {String} `pattern` A glob pattern to convert to regex.
+ * @param {Object} `options`
+ * @return {RegExp} Returns a regex created from the given pattern.
+ * @api public
  */
 
-/** @type {WeakMap<ConfigArray, ConfigArrayInternalSlots>} */
-const internalSlotsMap$2 = new class extends WeakMap {
-    get(key) {
-        let value = super.get(key);
 
-        if (!value) {
-            value = {
-                cache: new Map(),
-                envMap: null,
-                processorMap: null,
-                ruleMap: null
-            };
-            super.set(key, value);
-        }
+micromatch.makeRe = function () {
+  return picomatch.makeRe(...arguments);
+};
+/**
+ * Scan a glob pattern to separate the pattern into segments. Used
+ * by the [split](#split) method.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * const state = mm.scan(pattern[, options]);
+ * ```
+ * @param {String} `pattern`
+ * @param {Object} `options`
+ * @return {Object} Returns an object with
+ * @api public
+ */
 
-        return value;
+
+micromatch.scan = function () {
+  return picomatch.scan(...arguments);
+};
+/**
+ * Parse a glob pattern to create the source string for a regular
+ * expression.
+ *
+ * ```js
+ * const mm = require('micromatch');
+ * const state = mm.parse(pattern[, options]);
+ * ```
+ * @param {String} `glob`
+ * @param {Object} `options`
+ * @return {Object} Returns an object with useful properties and output to be used as regex source string.
+ * @api public
+ */
+
+
+micromatch.parse = (patterns, options) => {
+  let res = [];
+
+  for (let pattern of [].concat(patterns || [])) {
+    for (let str of braces(String(pattern), options)) {
+      res.push(picomatch.parse(str, options));
     }
-}();
+  }
 
+  return res;
+};
 /**
- * Get the indices which are matched to a given file.
- * @param {ConfigArrayElement[]} elements The elements.
- * @param {string} filePath The path to a target file.
- * @returns {number[]} The indices.
+ * Process the given brace `pattern`.
+ *
+ * ```js
+ * const { braces } = require('micromatch');
+ * console.log(braces('foo/{a,b,c}/bar'));
+ * //=> [ 'foo/(a|b|c)/bar' ]
+ *
+ * console.log(braces('foo/{a,b,c}/bar', { expand: true }));
+ * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]
+ * ```
+ * @param {String} `pattern` String with brace pattern to process.
+ * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.
+ * @return {Array}
+ * @api public
  */
-function getMatchedIndices(elements, filePath) {
-    const indices = [];
 
-    for (let i = elements.length - 1; i >= 0; --i) {
-        const element = elements[i];
 
-        if (!element.criteria || (filePath && element.criteria.test(filePath))) {
-            indices.push(i);
-        }
+micromatch.braces = (pattern, options) => {
+  if (typeof pattern !== 'string') throw new TypeError('Expected a string');
+
+  if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) {
+    return [pattern];
+  }
+
+  return braces(pattern, options);
+};
+/**
+ * Expand braces
+ */
+
+
+micromatch.braceExpand = (pattern, options) => {
+  if (typeof pattern !== 'string') throw new TypeError('Expected a string');
+  return micromatch.braces(pattern, { ...options,
+    expand: true
+  });
+};
+/**
+ * Expose micromatch
+ */
+
+
+module.exports = micromatch;
+
+/***/ }),
+/* 1036 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const stringify = __webpack_require__(1037);
+
+const compile = __webpack_require__(1039);
+
+const expand = __webpack_require__(1043);
+
+const parse = __webpack_require__(1044);
+/**
+ * Expand the given pattern or create a regex-compatible string.
+ *
+ * ```js
+ * const braces = require('braces');
+ * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']
+ * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']
+ * ```
+ * @param {String} `str`
+ * @param {Object} `options`
+ * @return {String}
+ * @api public
+ */
+
+
+const braces = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let output = [];
+
+  if (Array.isArray(input)) {
+    for (let pattern of input) {
+      let result = braces.create(pattern, options);
+
+      if (Array.isArray(result)) {
+        output.push(...result);
+      } else {
+        output.push(result);
+      }
     }
+  } else {
+    output = [].concat(braces.create(input, options));
+  }
 
-    return indices;
-}
+  if (options && options.expand === true && options.nodupes === true) {
+    output = [...new Set(output)];
+  }
 
+  return output;
+};
 /**
- * Check if a value is a non-null object.
- * @param {any} x The value to check.
- * @returns {boolean} `true` if the value is a non-null object.
+ * Parse the given `str` with the given `options`.
+ *
+ * ```js
+ * // braces.parse(pattern, [, options]);
+ * const ast = braces.parse('a/{b,c}/d');
+ * console.log(ast);
+ * ```
+ * @param {String} pattern Brace pattern to parse
+ * @param {Object} options
+ * @return {Object} Returns an AST
+ * @api public
  */
-function isNonNullObject(x) {
-    return typeof x === "object" && x !== null;
-}
 
+
+braces.parse = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  return parse(input, options);
+};
 /**
- * Merge two objects.
+ * Creates a braces string from an AST, or an AST node.
  *
- * Assign every property values of `y` to `x` if `x` doesn't have the property.
- * If `x`'s property value is an object, it does recursive.
- * @param {Object} target The destination to merge
- * @param {Object|undefined} source The source to merge.
- * @returns {void}
+ * ```js
+ * const braces = require('braces');
+ * let ast = braces.parse('foo/{a,b}/bar');
+ * console.log(stringify(ast.nodes[2])); //=> '{a,b}'
+ * ```
+ * @param {String} `input` Brace pattern or AST.
+ * @param {Object} `options`
+ * @return {Array} Returns an array of expanded values.
+ * @api public
  */
-function mergeWithoutOverwrite(target, source) {
-    if (!isNonNullObject(source)) {
-        return;
+
+
+braces.stringify = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  if (typeof input === 'string') {
+    return stringify(braces.parse(input, options), options);
+  }
+
+  return stringify(input, options);
+};
+/**
+ * Compiles a brace pattern into a regex-compatible, optimized string.
+ * This method is called by the main [braces](#braces) function by default.
+ *
+ * ```js
+ * const braces = require('braces');
+ * console.log(braces.compile('a/{b,c}/d'));
+ * //=> ['a/(b|c)/d']
+ * ```
+ * @param {String} `input` Brace pattern or AST.
+ * @param {Object} `options`
+ * @return {Array} Returns an array of expanded values.
+ * @api public
+ */
+
+
+braces.compile = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  if (typeof input === 'string') {
+    input = braces.parse(input, options);
+  }
+
+  return compile(input, options);
+};
+/**
+ * Expands a brace pattern into an array. This method is called by the
+ * main [braces](#braces) function when `options.expand` is true. Before
+ * using this method it's recommended that you read the [performance notes](#performance))
+ * and advantages of using [.compile](#compile) instead.
+ *
+ * ```js
+ * const braces = require('braces');
+ * console.log(braces.expand('a/{b,c}/d'));
+ * //=> ['a/b/d', 'a/c/d'];
+ * ```
+ * @param {String} `pattern` Brace pattern
+ * @param {Object} `options`
+ * @return {Array} Returns an array of expanded values.
+ * @api public
+ */
+
+
+braces.expand = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  if (typeof input === 'string') {
+    input = braces.parse(input, options);
+  }
+
+  let result = expand(input, options); // filter out empty strings if specified
+
+  if (options.noempty === true) {
+    result = result.filter(Boolean);
+  } // filter out duplicates if specified
+
+
+  if (options.nodupes === true) {
+    result = [...new Set(result)];
+  }
+
+  return result;
+};
+/**
+ * Processes a brace pattern and returns either an expanded array
+ * (if `options.expand` is true), a highly optimized regex-compatible string.
+ * This method is called by the main [braces](#braces) function.
+ *
+ * ```js
+ * const braces = require('braces');
+ * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))
+ * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'
+ * ```
+ * @param {String} `pattern` Brace pattern
+ * @param {Object} `options`
+ * @return {Array} Returns an array of expanded values.
+ * @api public
+ */
+
+
+braces.create = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  if (input === '' || input.length < 3) {
+    return [input];
+  }
+
+  return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options);
+};
+/**
+ * Expose "braces"
+ */
+
+
+module.exports = braces;
+
+/***/ }),
+/* 1037 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const utils = __webpack_require__(1038);
+
+module.exports = function (ast) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  let stringify = function (node) {
+    let parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);
+    let invalidNode = node.invalid === true && options.escapeInvalid === true;
+    let output = '';
+
+    if (node.value) {
+      if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {
+        return '\\' + node.value;
+      }
+
+      return node.value;
     }
 
-    for (const key of Object.keys(source)) {
-        if (key === "__proto__") {
-            continue;
-        }
+    if (node.value) {
+      return node.value;
+    }
 
-        if (isNonNullObject(target[key])) {
-            mergeWithoutOverwrite(target[key], source[key]);
-        } else if (target[key] === void 0) {
-            if (isNonNullObject(source[key])) {
-                target[key] = Array.isArray(source[key]) ? [] : {};
-                mergeWithoutOverwrite(target[key], source[key]);
-            } else if (source[key] !== void 0) {
-                target[key] = source[key];
-            }
-        }
+    if (node.nodes) {
+      for (let child of node.nodes) {
+        output += stringify(child);
+      }
     }
-}
 
+    return output;
+  };
+
+  return stringify(ast);
+};
+
+/***/ }),
+/* 1038 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+exports.isInteger = num => {
+  if (typeof num === 'number') {
+    return Number.isInteger(num);
+  }
+
+  if (typeof num === 'string' && num.trim() !== '') {
+    return Number.isInteger(Number(num));
+  }
+
+  return false;
+};
 /**
- * The error for plugin conflicts.
+ * Find a node of the given type
  */
-class PluginConflictError extends Error {
 
-    /**
-     * Initialize this error object.
-     * @param {string} pluginId The plugin ID.
-     * @param {{filePath:string, importerName:string}[]} plugins The resolved plugins.
-     */
-    constructor(pluginId, plugins) {
-        super(`Plugin "${pluginId}" was conflicted between ${plugins.map(p => `"${p.importerName}"`).join(" and ")}.`);
-        this.messageTemplate = "plugin-conflict";
-        this.messageData = { pluginId, plugins };
+
+exports.find = (node, type) => node.nodes.find(node => node.type === type);
+/**
+ * Find a node of the given type
+ */
+
+
+exports.exceedsLimit = function (min, max) {
+  let step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  let limit = arguments.length > 3 ? arguments[3] : undefined;
+  if (limit === false) return false;
+  if (!exports.isInteger(min) || !exports.isInteger(max)) return false;
+  return (Number(max) - Number(min)) / Number(step) >= limit;
+};
+/**
+ * Escape the given node with '\\' before node.value
+ */
+
+
+exports.escapeNode = function (block) {
+  let n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+  let type = arguments.length > 2 ? arguments[2] : undefined;
+  let node = block.nodes[n];
+  if (!node) return;
+
+  if (type && node.type === type || node.type === 'open' || node.type === 'close') {
+    if (node.escaped !== true) {
+      node.value = '\\' + node.value;
+      node.escaped = true;
     }
-}
+  }
+};
+/**
+ * Returns true if the given brace node should be enclosed in literal braces
+ */
+
+
+exports.encloseBrace = node => {
+  if (node.type !== 'brace') return false;
+
+  if (node.commas >> 0 + node.ranges >> 0 === 0) {
+    node.invalid = true;
+    return true;
+  }
 
+  return false;
+};
 /**
- * Merge plugins.
- * `target`'s definition is prior to `source`'s.
- * @param {Record<string, DependentPlugin>} target The destination to merge
- * @param {Record<string, DependentPlugin>|undefined} source The source to merge.
- * @returns {void}
+ * Returns true if a brace node is invalid.
  */
-function mergePlugins(target, source) {
-    if (!isNonNullObject(source)) {
-        return;
+
+
+exports.isInvalidBrace = block => {
+  if (block.type !== 'brace') return false;
+  if (block.invalid === true || block.dollar) return true;
+
+  if (block.commas >> 0 + block.ranges >> 0 === 0) {
+    block.invalid = true;
+    return true;
+  }
+
+  if (block.open !== true || block.close !== true) {
+    block.invalid = true;
+    return true;
+  }
+
+  return false;
+};
+/**
+ * Returns true if a node is an open or close node
+ */
+
+
+exports.isOpenOrClose = node => {
+  if (node.type === 'open' || node.type === 'close') {
+    return true;
+  }
+
+  return node.open === true || node.close === true;
+};
+/**
+ * Reduce an array of text nodes.
+ */
+
+
+exports.reduce = nodes => nodes.reduce((acc, node) => {
+  if (node.type === 'text') acc.push(node.value);
+  if (node.type === 'range') node.type = 'text';
+  return acc;
+}, []);
+/**
+ * Flatten an array
+ */
+
+
+exports.flatten = function () {
+  const result = [];
+
+  const flat = arr => {
+    for (let i = 0; i < arr.length; i++) {
+      let ele = arr[i];
+      Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele);
     }
 
-    for (const key of Object.keys(source)) {
-        if (key === "__proto__") {
-            continue;
-        }
-        const targetValue = target[key];
-        const sourceValue = source[key];
+    return result;
+  };
 
-        // Adopt the plugin which was found at first.
-        if (targetValue === void 0) {
-            if (sourceValue.error) {
-                throw sourceValue.error;
-            }
-            target[key] = sourceValue;
-        } else if (sourceValue.filePath !== targetValue.filePath) {
-            throw new PluginConflictError(key, [
-                {
-                    filePath: targetValue.filePath,
-                    importerName: targetValue.importerName
-                },
-                {
-                    filePath: sourceValue.filePath,
-                    importerName: sourceValue.importerName
-                }
-            ]);
-        }
+  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key];
+  }
+
+  flat(args);
+  return result;
+};
+
+/***/ }),
+/* 1039 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const fill = __webpack_require__(1040);
+
+const utils = __webpack_require__(1038);
+
+const compile = function (ast) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  let walk = function (node) {
+    let parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    let invalidBlock = utils.isInvalidBrace(parent);
+    let invalidNode = node.invalid === true && options.escapeInvalid === true;
+    let invalid = invalidBlock === true || invalidNode === true;
+    let prefix = options.escapeInvalid === true ? '\\' : '';
+    let output = '';
+
+    if (node.isOpen === true) {
+      return prefix + node.value;
     }
-}
 
-/**
- * Merge rule configs.
- * `target`'s definition is prior to `source`'s.
- * @param {Record<string, Array>} target The destination to merge
- * @param {Record<string, RuleConf>|undefined} source The source to merge.
- * @returns {void}
+    if (node.isClose === true) {
+      return prefix + node.value;
+    }
+
+    if (node.type === 'open') {
+      return invalid ? prefix + node.value : '(';
+    }
+
+    if (node.type === 'close') {
+      return invalid ? prefix + node.value : ')';
+    }
+
+    if (node.type === 'comma') {
+      return node.prev.type === 'comma' ? '' : invalid ? node.value : '|';
+    }
+
+    if (node.value) {
+      return node.value;
+    }
+
+    if (node.nodes && node.ranges > 0) {
+      let args = utils.reduce(node.nodes);
+      let range = fill(...args, { ...options,
+        wrap: false,
+        toRegex: true
+      });
+
+      if (range.length !== 0) {
+        return args.length > 1 && range.length > 1 ? `(${range})` : range;
+      }
+    }
+
+    if (node.nodes) {
+      for (let child of node.nodes) {
+        output += walk(child, node);
+      }
+    }
+
+    return output;
+  };
+
+  return walk(ast);
+};
+
+module.exports = compile;
+
+/***/ }),
+/* 1040 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/*!
+ * fill-range <https://github.com/jonschlinkert/fill-range>
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+
+
+const util = __webpack_require__(516);
+
+const toRegexRange = __webpack_require__(1041);
+
+const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
+
+const transform = toNumber => {
+  return value => toNumber === true ? Number(value) : String(value);
+};
+
+const isValidValue = value => {
+  return typeof value === 'number' || typeof value === 'string' && value !== '';
+};
+
+const isNumber = num => Number.isInteger(+num);
+
+const zeros = input => {
+  let value = `${input}`;
+  let index = -1;
+  if (value[0] === '-') value = value.slice(1);
+  if (value === '0') return false;
+
+  while (value[++index] === '0');
+
+  return index > 0;
+};
+
+const stringify = (start, end, options) => {
+  if (typeof start === 'string' || typeof end === 'string') {
+    return true;
+  }
+
+  return options.stringify === true;
+};
+
+const pad = (input, maxLength, toNumber) => {
+  if (maxLength > 0) {
+    let dash = input[0] === '-' ? '-' : '';
+    if (dash) input = input.slice(1);
+    input = dash + input.padStart(dash ? maxLength - 1 : maxLength, '0');
+  }
+
+  if (toNumber === false) {
+    return String(input);
+  }
+
+  return input;
+};
+
+const toMaxLen = (input, maxLength) => {
+  let negative = input[0] === '-' ? '-' : '';
+
+  if (negative) {
+    input = input.slice(1);
+    maxLength--;
+  }
+
+  while (input.length < maxLength) input = '0' + input;
+
+  return negative ? '-' + input : input;
+};
+
+const toSequence = (parts, options) => {
+  parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
+  parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
+  let prefix = options.capture ? '' : '?:';
+  let positives = '';
+  let negatives = '';
+  let result;
+
+  if (parts.positives.length) {
+    positives = parts.positives.join('|');
+  }
+
+  if (parts.negatives.length) {
+    negatives = `-(${prefix}${parts.negatives.join('|')})`;
+  }
+
+  if (positives && negatives) {
+    result = `${positives}|${negatives}`;
+  } else {
+    result = positives || negatives;
+  }
+
+  if (options.wrap) {
+    return `(${prefix}${result})`;
+  }
+
+  return result;
+};
+
+const toRange = (a, b, isNumbers, options) => {
+  if (isNumbers) {
+    return toRegexRange(a, b, {
+      wrap: false,
+      ...options
+    });
+  }
+
+  let start = String.fromCharCode(a);
+  if (a === b) return start;
+  let stop = String.fromCharCode(b);
+  return `[${start}-${stop}]`;
+};
+
+const toRegex = (start, end, options) => {
+  if (Array.isArray(start)) {
+    let wrap = options.wrap === true;
+    let prefix = options.capture ? '' : '?:';
+    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');
+  }
+
+  return toRegexRange(start, end, options);
+};
+
+const rangeError = function () {
+  return new RangeError('Invalid range arguments: ' + util.inspect(...arguments));
+};
+
+const invalidRange = (start, end, options) => {
+  if (options.strictRanges === true) throw rangeError([start, end]);
+  return [];
+};
+
+const invalidStep = (step, options) => {
+  if (options.strictRanges === true) {
+    throw new TypeError(`Expected step "${step}" to be a number`);
+  }
+
+  return [];
+};
+
+const fillNumbers = function (start, end) {
+  let step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
+  let a = Number(start);
+  let b = Number(end);
+
+  if (!Number.isInteger(a) || !Number.isInteger(b)) {
+    if (options.strictRanges === true) throw rangeError([start, end]);
+    return [];
+  } // fix negative zero
+
+
+  if (a === 0) a = 0;
+  if (b === 0) b = 0;
+  let descending = a > b;
+  let startString = String(start);
+  let endString = String(end);
+  let stepString = String(step);
+  step = Math.max(Math.abs(step), 1);
+  let padded = zeros(startString) || zeros(endString) || zeros(stepString);
+  let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;
+  let toNumber = padded === false && stringify(start, end, options) === false;
+  let format = options.transform || transform(toNumber);
+
+  if (options.toRegex && step === 1) {
+    return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);
+  }
+
+  let parts = {
+    negatives: [],
+    positives: []
+  };
+
+  let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));
+
+  let range = [];
+  let index = 0;
+
+  while (descending ? a >= b : a <= b) {
+    if (options.toRegex === true && step > 1) {
+      push(a);
+    } else {
+      range.push(pad(format(a, index), maxLen, toNumber));
+    }
+
+    a = descending ? a - step : a + step;
+    index++;
+  }
+
+  if (options.toRegex === true) {
+    return step > 1 ? toSequence(parts, options) : toRegex(range, null, {
+      wrap: false,
+      ...options
+    });
+  }
+
+  return range;
+};
+
+const fillLetters = function (start, end) {
+  let step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
+
+  if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) {
+    return invalidRange(start, end, options);
+  }
+
+  let format = options.transform || (val => String.fromCharCode(val));
+
+  let a = `${start}`.charCodeAt(0);
+  let b = `${end}`.charCodeAt(0);
+  let descending = a > b;
+  let min = Math.min(a, b);
+  let max = Math.max(a, b);
+
+  if (options.toRegex && step === 1) {
+    return toRange(min, max, false, options);
+  }
+
+  let range = [];
+  let index = 0;
+
+  while (descending ? a >= b : a <= b) {
+    range.push(format(a, index));
+    a = descending ? a - step : a + step;
+    index++;
+  }
+
+  if (options.toRegex === true) {
+    return toRegex(range, null, {
+      wrap: false,
+      options
+    });
+  }
+
+  return range;
+};
+
+const fill = function (start, end, step) {
+  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
+
+  if (end == null && isValidValue(start)) {
+    return [start];
+  }
+
+  if (!isValidValue(start) || !isValidValue(end)) {
+    return invalidRange(start, end, options);
+  }
+
+  if (typeof step === 'function') {
+    return fill(start, end, 1, {
+      transform: step
+    });
+  }
+
+  if (isObject(step)) {
+    return fill(start, end, 0, step);
+  }
+
+  let opts = { ...options
+  };
+  if (opts.capture === true) opts.wrap = true;
+  step = step || opts.step || 1;
+
+  if (!isNumber(step)) {
+    if (step != null && !isObject(step)) return invalidStep(step, opts);
+    return fill(start, end, 1, step);
+  }
+
+  if (isNumber(start) && isNumber(end)) {
+    return fillNumbers(start, end, step, opts);
+  }
+
+  return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);
+};
+
+module.exports = fill;
+
+/***/ }),
+/* 1041 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+/*!
+ * to-regex-range <https://github.com/micromatch/to-regex-range>
+ *
+ * Copyright (c) 2015-present, Jon Schlinkert.
+ * Released under the MIT License.
  */
-function mergeRuleConfigs(target, source) {
-    if (!isNonNullObject(source)) {
-        return;
-    }
 
-    for (const key of Object.keys(source)) {
-        if (key === "__proto__") {
-            continue;
-        }
-        const targetDef = target[key];
-        const sourceDef = source[key];
 
-        // Adopt the rule config which was found at first.
-        if (targetDef === void 0) {
-            if (Array.isArray(sourceDef)) {
-                target[key] = [...sourceDef];
-            } else {
-                target[key] = [sourceDef];
-            }
+const isNumber = __webpack_require__(1042);
 
-        /*
-         * If the first found rule config is severity only and the current rule
-         * config has options, merge the severity and the options.
-         */
-        } else if (
-            targetDef.length === 1 &&
-            Array.isArray(sourceDef) &&
-            sourceDef.length >= 2
-        ) {
-            targetDef.push(...sourceDef.slice(1));
-        }
-    }
-}
+const toRegexRange = (min, max, options) => {
+  if (isNumber(min) === false) {
+    throw new TypeError('toRegexRange: expected the first argument to be a number');
+  }
 
-/**
- * Create the extracted config.
- * @param {ConfigArray} instance The config elements.
- * @param {number[]} indices The indices to use.
- * @returns {ExtractedConfig} The extracted config.
- */
-function createConfig(instance, indices) {
-    const config = new ExtractedConfig();
-    const ignorePatterns = [];
+  if (max === void 0 || min === max) {
+    return String(min);
+  }
 
-    // Merge elements.
-    for (const index of indices) {
-        const element = instance[index];
+  if (isNumber(max) === false) {
+    throw new TypeError('toRegexRange: expected the second argument to be a number.');
+  }
 
-        // Adopt the parser which was found at first.
-        if (!config.parser && element.parser) {
-            if (element.parser.error) {
-                throw element.parser.error;
-            }
-            config.parser = element.parser;
-        }
+  let opts = {
+    relaxZeros: true,
+    ...options
+  };
 
-        // Adopt the processor which was found at first.
-        if (!config.processor && element.processor) {
-            config.processor = element.processor;
-        }
+  if (typeof opts.strictZeros === 'boolean') {
+    opts.relaxZeros = opts.strictZeros === false;
+  }
 
-        // Adopt the noInlineConfig which was found at first.
-        if (config.noInlineConfig === void 0 && element.noInlineConfig !== void 0) {
-            config.noInlineConfig = element.noInlineConfig;
-            config.configNameOfNoInlineConfig = element.name;
-        }
+  let relax = String(opts.relaxZeros);
+  let shorthand = String(opts.shorthand);
+  let capture = String(opts.capture);
+  let wrap = String(opts.wrap);
+  let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;
 
-        // Adopt the reportUnusedDisableDirectives which was found at first.
-        if (config.reportUnusedDisableDirectives === void 0 && element.reportUnusedDisableDirectives !== void 0) {
-            config.reportUnusedDisableDirectives = element.reportUnusedDisableDirectives;
-        }
+  if (toRegexRange.cache.hasOwnProperty(cacheKey)) {
+    return toRegexRange.cache[cacheKey].result;
+  }
 
-        // Collect ignorePatterns
-        if (element.ignorePattern) {
-            ignorePatterns.push(element.ignorePattern);
-        }
+  let a = Math.min(min, max);
+  let b = Math.max(min, max);
 
-        // Merge others.
-        mergeWithoutOverwrite(config.env, element.env);
-        mergeWithoutOverwrite(config.globals, element.globals);
-        mergeWithoutOverwrite(config.parserOptions, element.parserOptions);
-        mergeWithoutOverwrite(config.settings, element.settings);
-        mergePlugins(config.plugins, element.plugins);
-        mergeRuleConfigs(config.rules, element.rules);
+  if (Math.abs(a - b) === 1) {
+    let result = min + '|' + max;
+
+    if (opts.capture) {
+      return `(${result})`;
     }
 
-    // Create the predicate function for ignore patterns.
-    if (ignorePatterns.length > 0) {
-        config.ignores = IgnorePattern.createIgnore(ignorePatterns.reverse());
+    if (opts.wrap === false) {
+      return result;
     }
 
-    return config;
-}
+    return `(?:${result})`;
+  }
 
-/**
- * Collect definitions.
- * @template T, U
- * @param {string} pluginId The plugin ID for prefix.
- * @param {Record<string,T>} defs The definitions to collect.
- * @param {Map<string, U>} map The map to output.
- * @param {function(T): U} [normalize] The normalize function for each value.
- * @returns {void}
- */
-function collect(pluginId, defs, map, normalize) {
-    if (defs) {
-        const prefix = pluginId && `${pluginId}/`;
+  let isPadded = hasPadding(min) || hasPadding(max);
+  let state = {
+    min,
+    max,
+    a,
+    b
+  };
+  let positives = [];
+  let negatives = [];
 
-        for (const [key, value] of Object.entries(defs)) {
-            map.set(
-                `${prefix}${key}`,
-                normalize ? normalize(value) : value
-            );
-        }
-    }
-}
+  if (isPadded) {
+    state.isPadded = isPadded;
+    state.maxLen = String(state.max).length;
+  }
 
-/**
- * Normalize a rule definition.
- * @param {Function|Rule} rule The rule definition to normalize.
- * @returns {Rule} The normalized rule definition.
- */
-function normalizePluginRule(rule) {
-    return typeof rule === "function" ? { create: rule } : rule;
-}
+  if (a < 0) {
+    let newMin = b < 0 ? Math.abs(b) : 1;
+    negatives = splitToPatterns(newMin, Math.abs(a), state, opts);
+    a = state.a = 0;
+  }
 
-/**
- * Delete the mutation methods from a given map.
- * @param {Map<any, any>} map The map object to delete.
- * @returns {void}
- */
-function deleteMutationMethods(map) {
-    Object.defineProperties(map, {
-        clear: { configurable: true, value: void 0 },
-        delete: { configurable: true, value: void 0 },
-        set: { configurable: true, value: void 0 }
-    });
-}
+  if (b >= 0) {
+    positives = splitToPatterns(a, b, state, opts);
+  }
 
-/**
- * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array.
- * @param {ConfigArrayElement[]} elements The config elements.
- * @param {ConfigArrayInternalSlots} slots The internal slots.
- * @returns {void}
- */
-function initPluginMemberMaps(elements, slots) {
-    const processed = new Set();
+  state.negatives = negatives;
+  state.positives = positives;
+  state.result = collatePatterns(negatives, positives, opts);
 
-    slots.envMap = new Map();
-    slots.processorMap = new Map();
-    slots.ruleMap = new Map();
+  if (opts.capture === true) {
+    state.result = `(${state.result})`;
+  } else if (opts.wrap !== false && positives.length + negatives.length > 1) {
+    state.result = `(?:${state.result})`;
+  }
 
-    for (const element of elements) {
-        if (!element.plugins) {
-            continue;
-        }
+  toRegexRange.cache[cacheKey] = state;
+  return state.result;
+};
 
-        for (const [pluginId, value] of Object.entries(element.plugins)) {
-            const plugin = value.definition;
+function collatePatterns(neg, pos, options) {
+  let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];
+  let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];
+  let intersected = filterPatterns(neg, pos, '-?', true, options) || [];
+  let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);
+  return subpatterns.join('|');
+}
 
-            if (!plugin || processed.has(pluginId)) {
-                continue;
-            }
-            processed.add(pluginId);
+function splitToRanges(min, max) {
+  let nines = 1;
+  let zeros = 1;
+  let stop = countNines(min, nines);
+  let stops = new Set([max]);
 
-            collect(pluginId, plugin.environments, slots.envMap);
-            collect(pluginId, plugin.processors, slots.processorMap);
-            collect(pluginId, plugin.rules, slots.ruleMap, normalizePluginRule);
-        }
-    }
+  while (min <= stop && stop <= max) {
+    stops.add(stop);
+    nines += 1;
+    stop = countNines(min, nines);
+  }
 
-    deleteMutationMethods(slots.envMap);
-    deleteMutationMethods(slots.processorMap);
-    deleteMutationMethods(slots.ruleMap);
-}
+  stop = countZeros(max + 1, zeros) - 1;
+
+  while (min < stop && stop <= max) {
+    stops.add(stop);
+    zeros += 1;
+    stop = countZeros(max + 1, zeros) - 1;
+  }
 
+  stops = [...stops];
+  stops.sort(compare);
+  return stops;
+}
 /**
- * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array.
- * @param {ConfigArray} instance The config elements.
- * @returns {ConfigArrayInternalSlots} The extracted config.
+ * Convert a range to a regex pattern
+ * @param {Number} `start`
+ * @param {Number} `stop`
+ * @return {String}
  */
-function ensurePluginMemberMaps(instance) {
-    const slots = internalSlotsMap$2.get(instance);
 
-    if (!slots.ruleMap) {
-        initPluginMemberMaps(instance, slots);
+
+function rangeToPattern(start, stop, options) {
+  if (start === stop) {
+    return {
+      pattern: start,
+      count: [],
+      digits: 0
+    };
+  }
+
+  let zipped = zip(start, stop);
+  let digits = zipped.length;
+  let pattern = '';
+  let count = 0;
+
+  for (let i = 0; i < digits; i++) {
+    let [startDigit, stopDigit] = zipped[i];
+
+    if (startDigit === stopDigit) {
+      pattern += startDigit;
+    } else if (startDigit !== '0' || stopDigit !== '9') {
+      pattern += toCharacterClass(startDigit, stopDigit, options);
+    } else {
+      count++;
     }
+  }
 
-    return slots;
+  if (count) {
+    pattern += options.shorthand === true ? '\\d' : '[0-9]';
+  }
+
+  return {
+    pattern,
+    count: [count],
+    digits
+  };
 }
 
-//------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+function splitToPatterns(min, max, tok, options) {
+  let ranges = splitToRanges(min, max);
+  let tokens = [];
+  let start = min;
+  let prev;
 
-/**
- * The Config Array.
- *
- * `ConfigArray` instance contains all settings, parsers, and plugins.
- * You need to call `ConfigArray#extractConfig(filePath)` method in order to
- * extract, merge and get only the config data which is related to an arbitrary
- * file.
- * @extends {Array<ConfigArrayElement>}
- */
-class ConfigArray extends Array {
+  for (let i = 0; i < ranges.length; i++) {
+    let max = ranges[i];
+    let obj = rangeToPattern(String(start), String(max), options);
+    let zeros = '';
 
-    /**
-     * Get the plugin environments.
-     * The returned map cannot be mutated.
-     * @type {ReadonlyMap<string, Environment>} The plugin environments.
-     */
-    get pluginEnvironments() {
-        return ensurePluginMemberMaps(this).envMap;
-    }
+    if (!tok.isPadded && prev && prev.pattern === obj.pattern) {
+      if (prev.count.length > 1) {
+        prev.count.pop();
+      }
 
-    /**
-     * Get the plugin processors.
-     * The returned map cannot be mutated.
-     * @type {ReadonlyMap<string, Processor>} The plugin processors.
-     */
-    get pluginProcessors() {
-        return ensurePluginMemberMaps(this).processorMap;
+      prev.count.push(obj.count[0]);
+      prev.string = prev.pattern + toQuantifier(prev.count);
+      start = max + 1;
+      continue;
     }
 
-    /**
-     * Get the plugin rules.
-     * The returned map cannot be mutated.
-     * @returns {ReadonlyMap<string, Rule>} The plugin rules.
-     */
-    get pluginRules() {
-        return ensurePluginMemberMaps(this).ruleMap;
+    if (tok.isPadded) {
+      zeros = padZeros(max, tok, options);
     }
 
-    /**
-     * Check if this config has `root` flag.
-     * @returns {boolean} `true` if this config array is root.
-     */
-    isRoot() {
-        for (let i = this.length - 1; i >= 0; --i) {
-            const root = this[i].root;
+    obj.string = zeros + obj.pattern + toQuantifier(obj.count);
+    tokens.push(obj);
+    start = max + 1;
+    prev = obj;
+  }
 
-            if (typeof root === "boolean") {
-                return root;
-            }
-        }
-        return false;
-    }
+  return tokens;
+}
 
-    /**
-     * Extract the config data which is related to a given file.
-     * @param {string} filePath The absolute path to the target file.
-     * @returns {ExtractedConfig} The extracted config data.
-     */
-    extractConfig(filePath) {
-        const { cache } = internalSlotsMap$2.get(this);
-        const indices = getMatchedIndices(this, filePath);
-        const cacheKey = indices.join(",");
+function filterPatterns(arr, comparison, prefix, intersection, options) {
+  let result = [];
 
-        if (!cache.has(cacheKey)) {
-            cache.set(cacheKey, createConfig(this, indices));
-        }
+  for (let ele of arr) {
+    let {
+      string
+    } = ele; // only push if _both_ are negative...
 
-        return cache.get(cacheKey);
-    }
+    if (!intersection && !contains(comparison, 'string', string)) {
+      result.push(prefix + string);
+    } // or _both_ are positive
 
-    /**
-     * Check if a given path is an additional lint target.
-     * @param {string} filePath The absolute path to the target file.
-     * @returns {boolean} `true` if the file is an additional lint target.
-     */
-    isAdditionalTargetPath(filePath) {
-        for (const { criteria, type } of this) {
-            if (
-                type === "config" &&
-                criteria &&
-                !criteria.endsWithWildcard &&
-                criteria.test(filePath)
-            ) {
-                return true;
-            }
-        }
-        return false;
+
+    if (intersection && contains(comparison, 'string', string)) {
+      result.push(prefix + string);
     }
-}
+  }
 
+  return result;
+}
 /**
- * Get the used extracted configs.
- * CLIEngine will use this method to collect used deprecated rules.
- * @param {ConfigArray} instance The config array object to get.
- * @returns {ExtractedConfig[]} The used extracted configs.
- * @private
+ * Zip strings
  */
-function getUsedExtractedConfigs(instance) {
-    const { cache } = internalSlotsMap$2.get(instance);
 
-    return Array.from(cache.values());
+
+function zip(a, b) {
+  let arr = [];
+
+  for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);
+
+  return arr;
 }
 
-/**
- * @fileoverview `ConfigDependency` class.
- *
- * `ConfigDependency` class expresses a loaded parser or plugin.
- *
- * If the parser or plugin was loaded successfully, it has `definition` property
- * and `filePath` property. Otherwise, it has `error` property.
- *
- * When `JSON.stringify()` converted a `ConfigDependency` object to a JSON, it
- * omits `definition` property.
- *
- * `ConfigArrayFactory` creates `ConfigDependency` objects when it loads parsers
- * or plugins.
- *
- * @author Toru Nagashima <https://github.com/mysticatea>
- */
+function compare(a, b) {
+  return a > b ? 1 : b > a ? -1 : 0;
+}
 
-/**
- * The class is to store parsers or plugins.
- * This class hides the loaded object from `JSON.stringify()` and `console.log`.
- * @template T
- */
-class ConfigDependency {
+function contains(arr, key, val) {
+  return arr.some(ele => ele[key] === val);
+}
 
-    /**
-     * Initialize this instance.
-     * @param {Object} data The dependency data.
-     * @param {T} [data.definition] The dependency if the loading succeeded.
-     * @param {Error} [data.error] The error object if the loading failed.
-     * @param {string} [data.filePath] The actual path to the dependency if the loading succeeded.
-     * @param {string} data.id The ID of this dependency.
-     * @param {string} data.importerName The name of the config file which loads this dependency.
-     * @param {string} data.importerPath The path to the config file which loads this dependency.
-     */
-    constructor({
-        definition = null,
-        error = null,
-        filePath = null,
-        id,
-        importerName,
-        importerPath
-    }) {
+function countNines(min, len) {
+  return Number(String(min).slice(0, -len) + '9'.repeat(len));
+}
 
-        /**
-         * The loaded dependency if the loading succeeded.
-         * @type {T|null}
-         */
-        this.definition = definition;
+function countZeros(integer, zeros) {
+  return integer - integer % Math.pow(10, zeros);
+}
 
-        /**
-         * The error object if the loading failed.
-         * @type {Error|null}
-         */
-        this.error = error;
+function toQuantifier(digits) {
+  let [start = 0, stop = ''] = digits;
 
-        /**
-         * The loaded dependency if the loading succeeded.
-         * @type {string|null}
-         */
-        this.filePath = filePath;
+  if (stop || start > 1) {
+    return `{${start + (stop ? ',' + stop : '')}}`;
+  }
 
-        /**
-         * The ID of this dependency.
-         * @type {string}
-         */
-        this.id = id;
+  return '';
+}
 
-        /**
-         * The name of the config file which loads this dependency.
-         * @type {string}
-         */
-        this.importerName = importerName;
+function toCharacterClass(a, b, options) {
+  return `[${a}${b - a === 1 ? '' : '-'}${b}]`;
+}
 
-        /**
-         * The path to the config file which loads this dependency.
-         * @type {string}
-         */
-        this.importerPath = importerPath;
-    }
+function hasPadding(str) {
+  return /^-?(0+)\d/.test(str);
+}
 
-    // eslint-disable-next-line jsdoc/require-description
-    /**
-     * @returns {Object} a JSON compatible object.
-     */
-    toJSON() {
-        const obj = this[util__default["default"].inspect.custom]();
+function padZeros(value, tok, options) {
+  if (!tok.isPadded) {
+    return value;
+  }
 
-        // Display `error.message` (`Error#message` is unenumerable).
-        if (obj.error instanceof Error) {
-            obj.error = { ...obj.error, message: obj.error.message };
-        }
+  let diff = Math.abs(tok.maxLen - String(value).length);
+  let relax = options.relaxZeros !== false;
 
-        return obj;
-    }
+  switch (diff) {
+    case 0:
+      return '';
 
-    // eslint-disable-next-line jsdoc/require-description
-    /**
-     * @returns {Object} an object to display by `console.log()`.
-     */
-    [util__default["default"].inspect.custom]() {
-        const {
-            definition: _ignore, // eslint-disable-line no-unused-vars
-            ...obj
-        } = this;
+    case 1:
+      return relax ? '0?' : '0';
 
-        return obj;
-    }
-}
+    case 2:
+      return relax ? '0{0,2}' : '00';
 
+    default:
+      {
+        return relax ? `0{0,${diff}}` : `0{${diff}}`;
+      }
+  }
+}
 /**
- * @fileoverview `OverrideTester` class.
- *
- * `OverrideTester` class handles `files` property and `excludedFiles` property
- * of `overrides` config.
- *
- * It provides one method.
- *
- * - `test(filePath)`
- *      Test if a file path matches the pair of `files` property and
- *      `excludedFiles` property. The `filePath` argument must be an absolute
- *      path.
- *
- * `ConfigArrayFactory` creates `OverrideTester` objects when it processes
- * `overrides` properties.
- *
- * @author Toru Nagashima <https://github.com/mysticatea>
+ * Cache
  */
 
-const { Minimatch } = minimatch__default["default"];
 
-const minimatchOpts = { dot: true, matchBase: true };
+toRegexRange.cache = {};
 
+toRegexRange.clearCache = () => toRegexRange.cache = {};
 /**
- * @typedef {Object} Pattern
- * @property {InstanceType<Minimatch>[] | null} includes The positive matchers.
- * @property {InstanceType<Minimatch>[] | null} excludes The negative matchers.
+ * Expose `toRegexRange`
  */
 
-/**
- * Normalize a given pattern to an array.
- * @param {string|string[]|undefined} patterns A glob pattern or an array of glob patterns.
- * @returns {string[]|null} Normalized patterns.
- * @private
- */
-function normalizePatterns(patterns) {
-    if (Array.isArray(patterns)) {
-        return patterns.filter(Boolean);
-    }
-    if (typeof patterns === "string" && patterns) {
-        return [patterns];
-    }
-    return [];
-}
 
-/**
- * Create the matchers of given patterns.
- * @param {string[]} patterns The patterns.
- * @returns {InstanceType<Minimatch>[] | null} The matchers.
- */
-function toMatcher(patterns) {
-    if (patterns.length === 0) {
-        return null;
-    }
-    return patterns.map(pattern => {
-        if (/^\.[/\\]/u.test(pattern)) {
-            return new Minimatch(
-                pattern.slice(2),
+module.exports = toRegexRange;
 
-                // `./*.js` should not match with `subdir/foo.js`
-                { ...minimatchOpts, matchBase: false }
-            );
-        }
-        return new Minimatch(pattern, minimatchOpts);
-    });
-}
+/***/ }),
+/* 1042 */
+/***/ ((module) => {
 
-/**
- * Convert a given matcher to string.
- * @param {Pattern} matchers The matchers.
- * @returns {string} The string expression of the matcher.
+"use strict";
+/*!
+ * is-number <https://github.com/jonschlinkert/is-number>
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Released under the MIT License.
  */
-function patternToJson({ includes, excludes }) {
-    return {
-        includes: includes && includes.map(m => m.pattern),
-        excludes: excludes && excludes.map(m => m.pattern)
-    };
-}
 
-/**
- * The class to test given paths are matched by the patterns.
- */
-class OverrideTester {
 
-    /**
-     * Create a tester with given criteria.
-     * If there are no criteria, returns `null`.
-     * @param {string|string[]} files The glob patterns for included files.
-     * @param {string|string[]} excludedFiles The glob patterns for excluded files.
-     * @param {string} basePath The path to the base directory to test paths.
-     * @returns {OverrideTester|null} The created instance or `null`.
-     */
-    static create(files, excludedFiles, basePath) {
-        const includePatterns = normalizePatterns(files);
-        const excludePatterns = normalizePatterns(excludedFiles);
-        let endsWithWildcard = false;
+module.exports = function (num) {
+  if (typeof num === 'number') {
+    return num - num === 0;
+  }
 
-        if (includePatterns.length === 0) {
-            return null;
-        }
+  if (typeof num === 'string' && num.trim() !== '') {
+    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);
+  }
 
-        // Rejects absolute paths or relative paths to parents.
-        for (const pattern of includePatterns) {
-            if (path__default["default"].isAbsolute(pattern) || pattern.includes("..")) {
-                throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);
-            }
-            if (pattern.endsWith("*")) {
-                endsWithWildcard = true;
-            }
-        }
-        for (const pattern of excludePatterns) {
-            if (path__default["default"].isAbsolute(pattern) || pattern.includes("..")) {
-                throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);
-            }
-        }
+  return false;
+};
 
-        const includes = toMatcher(includePatterns);
-        const excludes = toMatcher(excludePatterns);
+/***/ }),
+/* 1043 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-        return new OverrideTester(
-            [{ includes, excludes }],
-            basePath,
-            endsWithWildcard
-        );
-    }
+"use strict";
 
-    /**
-     * Combine two testers by logical and.
-     * If either of the testers was `null`, returns the other tester.
-     * The `basePath` property of the two must be the same value.
-     * @param {OverrideTester|null} a A tester.
-     * @param {OverrideTester|null} b Another tester.
-     * @returns {OverrideTester|null} Combined tester.
-     */
-    static and(a, b) {
-        if (!b) {
-            return a && new OverrideTester(
-                a.patterns,
-                a.basePath,
-                a.endsWithWildcard
-            );
-        }
-        if (!a) {
-            return new OverrideTester(
-                b.patterns,
-                b.basePath,
-                b.endsWithWildcard
-            );
-        }
 
-        assert__default["default"].strictEqual(a.basePath, b.basePath);
-        return new OverrideTester(
-            a.patterns.concat(b.patterns),
-            a.basePath,
-            a.endsWithWildcard || b.endsWithWildcard
-        );
-    }
+const fill = __webpack_require__(1040);
 
-    /**
-     * Initialize this instance.
-     * @param {Pattern[]} patterns The matchers.
-     * @param {string} basePath The base path.
-     * @param {boolean} endsWithWildcard If `true` then a pattern ends with `*`.
-     */
-    constructor(patterns, basePath, endsWithWildcard = false) {
+const stringify = __webpack_require__(1037);
 
-        /** @type {Pattern[]} */
-        this.patterns = patterns;
+const utils = __webpack_require__(1038);
 
-        /** @type {string} */
-        this.basePath = basePath;
+const append = function () {
+  let queue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+  let stash = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+  let enclose = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+  let result = [];
+  queue = [].concat(queue);
+  stash = [].concat(stash);
+  if (!stash.length) return queue;
 
-        /** @type {boolean} */
-        this.endsWithWildcard = endsWithWildcard;
+  if (!queue.length) {
+    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;
+  }
+
+  for (let item of queue) {
+    if (Array.isArray(item)) {
+      for (let value of item) {
+        result.push(append(value, stash, enclose));
+      }
+    } else {
+      for (let ele of stash) {
+        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;
+        result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);
+      }
     }
+  }
 
-    /**
-     * Test if a given path is matched or not.
-     * @param {string} filePath The absolute path to the target file.
-     * @returns {boolean} `true` if the path was matched.
-     */
-    test(filePath) {
-        if (typeof filePath !== "string" || !path__default["default"].isAbsolute(filePath)) {
-            throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`);
-        }
-        const relativePath = path__default["default"].relative(this.basePath, filePath);
+  return utils.flatten(result);
+};
 
-        return this.patterns.every(({ includes, excludes }) => (
-            (!includes || includes.some(m => m.match(relativePath))) &&
-            (!excludes || !excludes.some(m => m.match(relativePath)))
-        ));
-    }
+const expand = function (ast) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;
 
-    // eslint-disable-next-line jsdoc/require-description
-    /**
-     * @returns {Object} a JSON compatible object.
-     */
-    toJSON() {
-        if (this.patterns.length === 1) {
-            return {
-                ...patternToJson(this.patterns[0]),
-                basePath: this.basePath
-            };
-        }
-        return {
-            AND: this.patterns.map(patternToJson),
-            basePath: this.basePath
-        };
+  let walk = function (node) {
+    let parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    node.queue = [];
+    let p = parent;
+    let q = parent.queue;
+
+    while (p.type !== 'brace' && p.type !== 'root' && p.parent) {
+      p = p.parent;
+      q = p.queue;
     }
 
-    // eslint-disable-next-line jsdoc/require-description
-    /**
-     * @returns {Object} an object to display by `console.log()`.
-     */
-    [util__default["default"].inspect.custom]() {
-        return this.toJSON();
+    if (node.invalid || node.dollar) {
+      q.push(append(q.pop(), stringify(node, options)));
+      return;
     }
-}
 
-/**
- * @fileoverview `ConfigArray` class.
- * @author Toru Nagashima <https://github.com/mysticatea>
- */
+    if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {
+      q.push(append(q.pop(), ['{}']));
+      return;
+    }
 
-/**
- * @fileoverview The factory of `ConfigArray` objects.
- *
- * This class provides methods to create `ConfigArray` instance.
- *
- * - `create(configData, options)`
- *     Create a `ConfigArray` instance from a config data. This is to handle CLI
- *     options except `--config`.
- * - `loadFile(filePath, options)`
- *     Create a `ConfigArray` instance from a config file. This is to handle
- *     `--config` option. If the file was not found, throws the following error:
- *      - If the filename was `*.js`, a `MODULE_NOT_FOUND` error.
- *      - If the filename was `package.json`, an IO error or an
- *        `ESLINT_CONFIG_FIELD_NOT_FOUND` error.
- *      - Otherwise, an IO error such as `ENOENT`.
- * - `loadInDirectory(directoryPath, options)`
- *     Create a `ConfigArray` instance from a config file which is on a given
- *     directory. This tries to load `.eslintrc.*` or `package.json`. If not
- *     found, returns an empty `ConfigArray`.
- * - `loadESLintIgnore(filePath)`
- *     Create a `ConfigArray` instance from a config file that is `.eslintignore`
- *     format. This is to handle `--ignore-path` option.
- * - `loadDefaultESLintIgnore()`
- *     Create a `ConfigArray` instance from `.eslintignore` or `package.json` in
- *     the current working directory.
- *
- * `ConfigArrayFactory` class has the responsibility that loads configuration
- * files, including loading `extends`, `parser`, and `plugins`. The created
- * `ConfigArray` instance has the loaded `extends`, `parser`, and `plugins`.
- *
- * But this class doesn't handle cascading. `CascadingConfigArrayFactory` class
- * handles cascading and hierarchy.
- *
- * @author Toru Nagashima <https://github.com/mysticatea>
- */
-const require$1 = Module.createRequire((typeof document === 'undefined' ? new ((__webpack_require__(892).URL))('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('eslintrc.cjs', document.baseURI).href)));
+    if (node.nodes && node.ranges > 0) {
+      let args = utils.reduce(node.nodes);
 
-const debug$2 = debugOrig__default["default"]("eslintrc:config-array-factory");
+      if (utils.exceedsLimit(...args, options.step, rangeLimit)) {
+        throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');
+      }
 
-//------------------------------------------------------------------------------
-// Helpers
-//------------------------------------------------------------------------------
+      let range = fill(...args, options);
 
-const configFilenames = [
-    ".eslintrc.js",
-    ".eslintrc.cjs",
-    ".eslintrc.yaml",
-    ".eslintrc.yml",
-    ".eslintrc.json",
-    ".eslintrc",
-    "package.json"
-];
+      if (range.length === 0) {
+        range = stringify(node, options);
+      }
 
-// Define types for VSCode IntelliSense.
-/** @typedef {import("./shared/types").ConfigData} ConfigData */
-/** @typedef {import("./shared/types").OverrideConfigData} OverrideConfigData */
-/** @typedef {import("./shared/types").Parser} Parser */
-/** @typedef {import("./shared/types").Plugin} Plugin */
-/** @typedef {import("./shared/types").Rule} Rule */
-/** @typedef {import("./config-array/config-dependency").DependentParser} DependentParser */
-/** @typedef {import("./config-array/config-dependency").DependentPlugin} DependentPlugin */
-/** @typedef {ConfigArray[0]} ConfigArrayElement */
+      q.push(append(q.pop(), range));
+      node.nodes = [];
+      return;
+    }
 
-/**
- * @typedef {Object} ConfigArrayFactoryOptions
- * @property {Map<string,Plugin>} [additionalPluginPool] The map for additional plugins.
- * @property {string} [cwd] The path to the current working directory.
- * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`.
- * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
- * @property {Object} [resolver=ModuleResolver] The module resolver object.
- * @property {string} eslintAllPath The path to the definitions for eslint:all.
- * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
- */
+    let enclose = utils.encloseBrace(node);
+    let queue = node.queue;
+    let block = node;
 
-/**
- * @typedef {Object} ConfigArrayFactoryInternalSlots
- * @property {Map<string,Plugin>} additionalPluginPool The map for additional plugins.
- * @property {string} cwd The path to the current working directory.
- * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from.
- * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
- * @property {Object} [resolver=ModuleResolver] The module resolver object.
- * @property {string} eslintAllPath The path to the definitions for eslint:all.
- * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
- */
+    while (block.type !== 'brace' && block.type !== 'root' && block.parent) {
+      block = block.parent;
+      queue = block.queue;
+    }
 
-/**
- * @typedef {Object} ConfigArrayFactoryLoadingContext
- * @property {string} filePath The path to the current configuration.
- * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
- * @property {string} name The name of the current configuration.
- * @property {string} pluginBasePath The base path to resolve plugins.
- * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors.
- */
+    for (let i = 0; i < node.nodes.length; i++) {
+      let child = node.nodes[i];
 
-/**
- * @typedef {Object} ConfigArrayFactoryLoadingContext
- * @property {string} filePath The path to the current configuration.
- * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
- * @property {string} name The name of the current configuration.
- * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors.
- */
+      if (child.type === 'comma' && node.type === 'brace') {
+        if (i === 1) queue.push('');
+        queue.push('');
+        continue;
+      }
 
-/** @type {WeakMap<ConfigArrayFactory, ConfigArrayFactoryInternalSlots>} */
-const internalSlotsMap$1 = new WeakMap();
+      if (child.type === 'close') {
+        q.push(append(q.pop(), queue, enclose));
+        continue;
+      }
 
-/**
- * Check if a given string is a file path.
- * @param {string} nameOrPath A module name or file path.
- * @returns {boolean} `true` if the `nameOrPath` is a file path.
- */
-function isFilePath(nameOrPath) {
-    return (
-        /^\.{1,2}[/\\]/u.test(nameOrPath) ||
-        path__default["default"].isAbsolute(nameOrPath)
-    );
-}
+      if (child.value && child.type !== 'open') {
+        queue.push(append(queue.pop(), child.value));
+        continue;
+      }
 
-/**
- * Convenience wrapper for synchronously reading file contents.
- * @param {string} filePath The filename to read.
- * @returns {string} The file contents, with the BOM removed.
- * @private
- */
-function readFile(filePath) {
-    return fs__default["default"].readFileSync(filePath, "utf8").replace(/^\ufeff/u, "");
-}
+      if (child.nodes) {
+        walk(child, node);
+      }
+    }
 
-/**
- * Loads a YAML configuration from a file.
- * @param {string} filePath The filename to load.
- * @returns {ConfigData} The configuration object from the file.
- * @throws {Error} If the file cannot be read.
- * @private
- */
-function loadYAMLConfigFile(filePath) {
-    debug$2(`Loading YAML config file: ${filePath}`);
+    return queue;
+  };
 
-    // lazy load YAML to improve performance when not used
-    const yaml = require$1("js-yaml");
+  return utils.flatten(walk(ast));
+};
 
-    try {
+module.exports = expand;
 
-        // empty YAML file can be null, so always use
-        return yaml.load(readFile(filePath)) || {};
-    } catch (e) {
-        debug$2(`Error reading YAML file: ${filePath}`);
-        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
-        throw e;
-    }
-}
+/***/ }),
+/* 1044 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/**
- * Loads a JSON configuration from a file.
- * @param {string} filePath The filename to load.
- * @returns {ConfigData} The configuration object from the file.
- * @throws {Error} If the file cannot be read.
- * @private
- */
-function loadJSONConfigFile(filePath) {
-    debug$2(`Loading JSON config file: ${filePath}`);
+"use strict";
 
-    try {
-        return JSON.parse(stripComments__default["default"](readFile(filePath)));
-    } catch (e) {
-        debug$2(`Error reading JSON file: ${filePath}`);
-        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
-        e.messageTemplate = "failed-to-read-json";
-        e.messageData = {
-            path: filePath,
-            message: e.message
-        };
-        throw e;
-    }
-}
 
+const stringify = __webpack_require__(1037);
 /**
- * Loads a legacy (.eslintrc) configuration from a file.
- * @param {string} filePath The filename to load.
- * @returns {ConfigData} The configuration object from the file.
- * @throws {Error} If the file cannot be read.
- * @private
+ * Constants
  */
-function loadLegacyConfigFile(filePath) {
-    debug$2(`Loading legacy config file: ${filePath}`);
 
-    // lazy load YAML to improve performance when not used
-    const yaml = require$1("js-yaml");
 
-    try {
-        return yaml.load(stripComments__default["default"](readFile(filePath))) || /* istanbul ignore next */ {};
-    } catch (e) {
-        debug$2("Error reading YAML file: %s\n%o", filePath, e);
-        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
-        throw e;
-    }
-}
+const {
+  MAX_LENGTH,
+  CHAR_BACKSLASH,
 
-/**
- * Loads a JavaScript configuration from a file.
- * @param {string} filePath The filename to load.
- * @returns {ConfigData} The configuration object from the file.
- * @throws {Error} If the file cannot be read.
- * @private
- */
-function loadJSConfigFile(filePath) {
-    debug$2(`Loading JS config file: ${filePath}`);
-    try {
-        return importFresh__default["default"](filePath);
-    } catch (e) {
-        debug$2(`Error reading JavaScript file: ${filePath}`);
-        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
-        throw e;
-    }
-}
+  /* \ */
+  CHAR_BACKTICK,
 
-/**
- * Loads a configuration from a package.json file.
- * @param {string} filePath The filename to load.
- * @returns {ConfigData} The configuration object from the file.
- * @throws {Error} If the file cannot be read.
- * @private
- */
-function loadPackageJSONConfigFile(filePath) {
-    debug$2(`Loading package.json config file: ${filePath}`);
-    try {
-        const packageData = loadJSONConfigFile(filePath);
+  /* ` */
+  CHAR_COMMA,
 
-        if (!Object.hasOwnProperty.call(packageData, "eslintConfig")) {
-            throw Object.assign(
-                new Error("package.json file doesn't have 'eslintConfig' field."),
-                { code: "ESLINT_CONFIG_FIELD_NOT_FOUND" }
-            );
-        }
+  /* , */
+  CHAR_DOT,
 
-        return packageData.eslintConfig;
-    } catch (e) {
-        debug$2(`Error reading package.json file: ${filePath}`);
-        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
-        throw e;
-    }
-}
+  /* . */
+  CHAR_LEFT_PARENTHESES,
 
-/**
- * Loads a `.eslintignore` from a file.
- * @param {string} filePath The filename to load.
- * @returns {string[]} The ignore patterns from the file.
- * @private
- */
-function loadESLintIgnoreFile(filePath) {
-    debug$2(`Loading .eslintignore file: ${filePath}`);
+  /* ( */
+  CHAR_RIGHT_PARENTHESES,
 
-    try {
-        return readFile(filePath)
-            .split(/\r?\n/gu)
-            .filter(line => line.trim() !== "" && !line.startsWith("#"));
-    } catch (e) {
-        debug$2(`Error reading .eslintignore file: ${filePath}`);
-        e.message = `Cannot read .eslintignore file: ${filePath}\nError: ${e.message}`;
-        throw e;
-    }
-}
+  /* ) */
+  CHAR_LEFT_CURLY_BRACE,
 
-/**
- * Creates an error to notify about a missing config to extend from.
- * @param {string} configName The name of the missing config.
- * @param {string} importerName The name of the config that imported the missing config
- * @param {string} messageTemplate The text template to source error strings from.
- * @returns {Error} The error object to throw
- * @private
- */
-function configInvalidError(configName, importerName, messageTemplate) {
-    return Object.assign(
-        new Error(`Failed to load config "${configName}" to extend from.`),
-        {
-            messageTemplate,
-            messageData: { configName, importerName }
-        }
-    );
-}
+  /* { */
+  CHAR_RIGHT_CURLY_BRACE,
 
-/**
- * Loads a configuration file regardless of the source. Inspects the file path
- * to determine the correctly way to load the config file.
- * @param {string} filePath The path to the configuration.
- * @returns {ConfigData|null} The configuration information.
- * @private
- */
-function loadConfigFile(filePath) {
-    switch (path__default["default"].extname(filePath)) {
-        case ".js":
-        case ".cjs":
-            return loadJSConfigFile(filePath);
+  /* } */
+  CHAR_LEFT_SQUARE_BRACKET,
 
-        case ".json":
-            if (path__default["default"].basename(filePath) === "package.json") {
-                return loadPackageJSONConfigFile(filePath);
-            }
-            return loadJSONConfigFile(filePath);
+  /* [ */
+  CHAR_RIGHT_SQUARE_BRACKET,
 
-        case ".yaml":
-        case ".yml":
-            return loadYAMLConfigFile(filePath);
+  /* ] */
+  CHAR_DOUBLE_QUOTE,
 
-        default:
-            return loadLegacyConfigFile(filePath);
-    }
-}
+  /* " */
+  CHAR_SINGLE_QUOTE,
 
+  /* ' */
+  CHAR_NO_BREAK_SPACE,
+  CHAR_ZERO_WIDTH_NOBREAK_SPACE
+} = __webpack_require__(1045);
 /**
- * Write debug log.
- * @param {string} request The requested module name.
- * @param {string} relativeTo The file path to resolve the request relative to.
- * @param {string} filePath The resolved file path.
- * @returns {void}
+ * parse
  */
-function writeDebugLogForLoading(request, relativeTo, filePath) {
-    /* istanbul ignore next */
-    if (debug$2.enabled) {
-        let nameAndVersion = null;
 
-        try {
-            const packageJsonPath = resolve(
-                `${request}/package.json`,
-                relativeTo
-            );
-            const { version = "unknown" } = require$1(packageJsonPath);
 
-            nameAndVersion = `${request}@${version}`;
-        } catch (error) {
-            debug$2("package.json was not found:", error.message);
-            nameAndVersion = request;
-        }
+const parse = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 
-        debug$2("Loaded: %s (%s)", nameAndVersion, filePath);
-    }
-}
+  if (typeof input !== 'string') {
+    throw new TypeError('Expected a string');
+  }
 
-/**
- * Create a new context with default values.
- * @param {ConfigArrayFactoryInternalSlots} slots The internal slots.
- * @param {"config" | "ignore" | "implicit-processor" | undefined} providedType The type of the current configuration. Default is `"config"`.
- * @param {string | undefined} providedName The name of the current configuration. Default is the relative path from `cwd` to `filePath`.
- * @param {string | undefined} providedFilePath The path to the current configuration. Default is empty string.
- * @param {string | undefined} providedMatchBasePath The type of the current configuration. Default is the directory of `filePath` or `cwd`.
- * @returns {ConfigArrayFactoryLoadingContext} The created context.
- */
-function createContext(
-    { cwd, resolvePluginsRelativeTo },
-    providedType,
-    providedName,
-    providedFilePath,
-    providedMatchBasePath
-) {
-    const filePath = providedFilePath
-        ? path__default["default"].resolve(cwd, providedFilePath)
-        : "";
-    const matchBasePath =
-        (providedMatchBasePath && path__default["default"].resolve(cwd, providedMatchBasePath)) ||
-        (filePath && path__default["default"].dirname(filePath)) ||
-        cwd;
-    const name =
-        providedName ||
-        (filePath && path__default["default"].relative(cwd, filePath)) ||
-        "";
-    const pluginBasePath =
-        resolvePluginsRelativeTo ||
-        (filePath && path__default["default"].dirname(filePath)) ||
-        cwd;
-    const type = providedType || "config";
+  let opts = options || {};
+  let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
 
-    return { filePath, matchBasePath, name, pluginBasePath, type };
-}
+  if (input.length > max) {
+    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
+  }
 
-/**
- * Normalize a given plugin.
- * - Ensure the object to have four properties: configs, environments, processors, and rules.
- * - Ensure the object to not have other properties.
- * @param {Plugin} plugin The plugin to normalize.
- * @returns {Plugin} The normalized plugin.
- */
-function normalizePlugin(plugin) {
-    return {
-        configs: plugin.configs || {},
-        environments: plugin.environments || {},
-        processors: plugin.processors || {},
-        rules: plugin.rules || {}
-    };
-}
+  let ast = {
+    type: 'root',
+    input,
+    nodes: []
+  };
+  let stack = [ast];
+  let block = ast;
+  let prev = ast;
+  let brackets = 0;
+  let length = input.length;
+  let index = 0;
+  let depth = 0;
+  let value;
+  let memo = {};
+  /**
+   * Helpers
+   */
 
-//------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+  const advance = () => input[index++];
 
-/**
- * The factory of `ConfigArray` objects.
- */
-class ConfigArrayFactory {
+  const push = node => {
+    if (node.type === 'text' && prev.type === 'dot') {
+      prev.type = 'text';
+    }
+
+    if (prev && prev.type === 'text' && node.type === 'text') {
+      prev.value += node.value;
+      return;
+    }
+
+    block.nodes.push(node);
+    node.parent = block;
+    node.prev = prev;
+    prev = node;
+    return node;
+  };
+
+  push({
+    type: 'bos'
+  });
 
+  while (index < length) {
+    block = stack[stack.length - 1];
+    value = advance();
     /**
-     * Initialize this instance.
-     * @param {ConfigArrayFactoryOptions} [options] The map for additional plugins.
+     * Invalid chars
      */
-    constructor({
-        additionalPluginPool = new Map(),
-        cwd = process.cwd(),
-        resolvePluginsRelativeTo,
-        builtInRules,
-        resolver = ModuleResolver,
-        eslintAllPath,
-        eslintRecommendedPath
-    } = {}) {
-        internalSlotsMap$1.set(this, {
-            additionalPluginPool,
-            cwd,
-            resolvePluginsRelativeTo:
-                resolvePluginsRelativeTo &&
-                path__default["default"].resolve(cwd, resolvePluginsRelativeTo),
-            builtInRules,
-            resolver,
-            eslintAllPath,
-            eslintRecommendedPath
-        });
-    }
 
+    if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {
+      continue;
+    }
     /**
-     * Create `ConfigArray` instance from a config data.
-     * @param {ConfigData|null} configData The config data to create.
-     * @param {Object} [options] The options.
-     * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
-     * @param {string} [options.filePath] The path to this config data.
-     * @param {string} [options.name] The config name.
-     * @returns {ConfigArray} Loaded config.
+     * Escaped chars
      */
-    create(configData, { basePath, filePath, name } = {}) {
-        if (!configData) {
-            return new ConfigArray();
-        }
 
-        const slots = internalSlotsMap$1.get(this);
-        const ctx = createContext(slots, "config", name, filePath, basePath);
-        const elements = this._normalizeConfigData(configData, ctx);
 
-        return new ConfigArray(...elements);
+    if (value === CHAR_BACKSLASH) {
+      push({
+        type: 'text',
+        value: (options.keepEscaping ? value : '') + advance()
+      });
+      continue;
     }
-
     /**
-     * Load a config file.
-     * @param {string} filePath The path to a config file.
-     * @param {Object} [options] The options.
-     * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
-     * @param {string} [options.name] The config name.
-     * @returns {ConfigArray} Loaded config.
+     * Right square bracket (literal): ']'
      */
-    loadFile(filePath, { basePath, name } = {}) {
-        const slots = internalSlotsMap$1.get(this);
-        const ctx = createContext(slots, "config", name, filePath, basePath);
 
-        return new ConfigArray(...this._loadConfigData(ctx));
-    }
 
+    if (value === CHAR_RIGHT_SQUARE_BRACKET) {
+      push({
+        type: 'text',
+        value: '\\' + value
+      });
+      continue;
+    }
     /**
-     * Load the config file on a given directory if exists.
-     * @param {string} directoryPath The path to a directory.
-     * @param {Object} [options] The options.
-     * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.
-     * @param {string} [options.name] The config name.
-     * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.
+     * Left square bracket: '['
      */
-    loadInDirectory(directoryPath, { basePath, name } = {}) {
-        const slots = internalSlotsMap$1.get(this);
 
-        for (const filename of configFilenames) {
-            const ctx = createContext(
-                slots,
-                "config",
-                name,
-                path__default["default"].join(directoryPath, filename),
-                basePath
-            );
 
-            if (fs__default["default"].existsSync(ctx.filePath) && fs__default["default"].statSync(ctx.filePath).isFile()) {
-                let configData;
+    if (value === CHAR_LEFT_SQUARE_BRACKET) {
+      brackets++;
+      let closed = true;
+      let next;
 
-                try {
-                    configData = loadConfigFile(ctx.filePath);
-                } catch (error) {
-                    if (!error || error.code !== "ESLINT_CONFIG_FIELD_NOT_FOUND") {
-                        throw error;
-                    }
-                }
+      while (index < length && (next = advance())) {
+        value += next;
 
-                if (configData) {
-                    debug$2(`Config file found: ${ctx.filePath}`);
-                    return new ConfigArray(
-                        ...this._normalizeConfigData(configData, ctx)
-                    );
-                }
-            }
+        if (next === CHAR_LEFT_SQUARE_BRACKET) {
+          brackets++;
+          continue;
         }
 
-        debug$2(`Config file not found on ${directoryPath}`);
-        return new ConfigArray();
-    }
+        if (next === CHAR_BACKSLASH) {
+          value += advance();
+          continue;
+        }
 
-    /**
-     * Check if a config file on a given directory exists or not.
-     * @param {string} directoryPath The path to a directory.
-     * @returns {string | null} The path to the found config file. If not found then null.
-     */
-    static getPathToConfigFileInDirectory(directoryPath) {
-        for (const filename of configFilenames) {
-            const filePath = path__default["default"].join(directoryPath, filename);
+        if (next === CHAR_RIGHT_SQUARE_BRACKET) {
+          brackets--;
 
-            if (fs__default["default"].existsSync(filePath)) {
-                if (filename === "package.json") {
-                    try {
-                        loadPackageJSONConfigFile(filePath);
-                        return filePath;
-                    } catch { /* ignore */ }
-                } else {
-                    return filePath;
-                }
-            }
+          if (brackets === 0) {
+            break;
+          }
         }
-        return null;
-    }
+      }
 
+      push({
+        type: 'text',
+        value
+      });
+      continue;
+    }
     /**
-     * Load `.eslintignore` file.
-     * @param {string} filePath The path to a `.eslintignore` file to load.
-     * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.
+     * Parentheses
      */
-    loadESLintIgnore(filePath) {
-        const slots = internalSlotsMap$1.get(this);
-        const ctx = createContext(
-            slots,
-            "ignore",
-            void 0,
-            filePath,
-            slots.cwd
-        );
-        const ignorePatterns = loadESLintIgnoreFile(ctx.filePath);
 
-        return new ConfigArray(
-            ...this._normalizeESLintIgnoreData(ignorePatterns, ctx)
-        );
+
+    if (value === CHAR_LEFT_PARENTHESES) {
+      block = push({
+        type: 'paren',
+        nodes: []
+      });
+      stack.push(block);
+      push({
+        type: 'text',
+        value
+      });
+      continue;
     }
 
+    if (value === CHAR_RIGHT_PARENTHESES) {
+      if (block.type !== 'paren') {
+        push({
+          type: 'text',
+          value
+        });
+        continue;
+      }
+
+      block = stack.pop();
+      push({
+        type: 'text',
+        value
+      });
+      block = stack[stack.length - 1];
+      continue;
+    }
     /**
-     * Load `.eslintignore` file in the current working directory.
-     * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.
+     * Quotes: '|"|`
      */
-    loadDefaultESLintIgnore() {
-        const slots = internalSlotsMap$1.get(this);
-        const eslintIgnorePath = path__default["default"].resolve(slots.cwd, ".eslintignore");
-        const packageJsonPath = path__default["default"].resolve(slots.cwd, "package.json");
 
-        if (fs__default["default"].existsSync(eslintIgnorePath)) {
-            return this.loadESLintIgnore(eslintIgnorePath);
-        }
-        if (fs__default["default"].existsSync(packageJsonPath)) {
-            const data = loadJSONConfigFile(packageJsonPath);
 
-            if (Object.hasOwnProperty.call(data, "eslintIgnore")) {
-                if (!Array.isArray(data.eslintIgnore)) {
-                    throw new Error("Package.json eslintIgnore property requires an array of paths");
-                }
-                const ctx = createContext(
-                    slots,
-                    "ignore",
-                    "eslintIgnore in package.json",
-                    packageJsonPath,
-                    slots.cwd
-                );
+    if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {
+      let open = value;
+      let next;
 
-                return new ConfigArray(
-                    ...this._normalizeESLintIgnoreData(data.eslintIgnore, ctx)
-                );
-            }
+      if (options.keepQuotes !== true) {
+        value = '';
+      }
+
+      while (index < length && (next = advance())) {
+        if (next === CHAR_BACKSLASH) {
+          value += next + advance();
+          continue;
         }
 
-        return new ConfigArray();
-    }
+        if (next === open) {
+          if (options.keepQuotes === true) value += next;
+          break;
+        }
 
+        value += next;
+      }
+
+      push({
+        type: 'text',
+        value
+      });
+      continue;
+    }
     /**
-     * Load a given config file.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} Loaded config.
-     * @private
+     * Left curly brace: '{'
      */
-    _loadConfigData(ctx) {
-        return this._normalizeConfigData(loadConfigFile(ctx.filePath), ctx);
-    }
 
+
+    if (value === CHAR_LEFT_CURLY_BRACE) {
+      depth++;
+      let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;
+      let brace = {
+        type: 'brace',
+        open: true,
+        close: false,
+        dollar,
+        depth,
+        commas: 0,
+        ranges: 0,
+        nodes: []
+      };
+      block = push(brace);
+      stack.push(block);
+      push({
+        type: 'open',
+        value
+      });
+      continue;
+    }
     /**
-     * Normalize a given `.eslintignore` data to config array elements.
-     * @param {string[]} ignorePatterns The patterns to ignore files.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
+     * Right curly brace: '}'
      */
-    *_normalizeESLintIgnoreData(ignorePatterns, ctx) {
-        const elements = this._normalizeObjectConfigData(
-            { ignorePatterns },
-            ctx
-        );
 
-        // Set `ignorePattern.loose` flag for backward compatibility.
-        for (const element of elements) {
-            if (element.ignorePattern) {
-                element.ignorePattern.loose = true;
-            }
-            yield element;
-        }
-    }
 
+    if (value === CHAR_RIGHT_CURLY_BRACE) {
+      if (block.type !== 'brace') {
+        push({
+          type: 'text',
+          value
+        });
+        continue;
+      }
+
+      let type = 'close';
+      block = stack.pop();
+      block.close = true;
+      push({
+        type,
+        value
+      });
+      depth--;
+      block = stack[stack.length - 1];
+      continue;
+    }
     /**
-     * Normalize a given config to an array.
-     * @param {ConfigData} configData The config data to normalize.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
+     * Comma: ','
      */
-    _normalizeConfigData(configData, ctx) {
-        const validator = new ConfigValidator();
 
-        validator.validateConfigSchema(configData, ctx.name || ctx.filePath);
-        return this._normalizeObjectConfigData(configData, ctx);
-    }
 
+    if (value === CHAR_COMMA && depth > 0) {
+      if (block.ranges > 0) {
+        block.ranges = 0;
+        let open = block.nodes.shift();
+        block.nodes = [open, {
+          type: 'text',
+          value: stringify(block)
+        }];
+      }
+
+      push({
+        type: 'comma',
+        value
+      });
+      block.commas++;
+      continue;
+    }
     /**
-     * Normalize a given config to an array.
-     * @param {ConfigData|OverrideConfigData} configData The config data to normalize.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
+     * Dot: '.'
      */
-    *_normalizeObjectConfigData(configData, ctx) {
-        const { files, excludedFiles, ...configBody } = configData;
-        const criteria = OverrideTester.create(
-            files,
-            excludedFiles,
-            ctx.matchBasePath
-        );
-        const elements = this._normalizeObjectConfigDataBody(configBody, ctx);
 
-        // Apply the criteria to every element.
-        for (const element of elements) {
 
-            /*
-             * Merge the criteria.
-             * This is for the `overrides` entries that came from the
-             * configurations of `overrides[].extends`.
-             */
-            element.criteria = OverrideTester.and(criteria, element.criteria);
+    if (value === CHAR_DOT && depth > 0 && block.commas === 0) {
+      let siblings = block.nodes;
 
-            /*
-             * Remove `root` property to ignore `root` settings which came from
-             * `extends` in `overrides`.
-             */
-            if (element.criteria) {
-                element.root = void 0;
-            }
+      if (depth === 0 || siblings.length === 0) {
+        push({
+          type: 'text',
+          value
+        });
+        continue;
+      }
 
-            yield element;
+      if (prev.type === 'dot') {
+        block.range = [];
+        prev.value += value;
+        prev.type = 'range';
+
+        if (block.nodes.length !== 3 && block.nodes.length !== 5) {
+          block.invalid = true;
+          block.ranges = 0;
+          prev.type = 'text';
+          continue;
         }
-    }
 
+        block.ranges++;
+        block.args = [];
+        continue;
+      }
+
+      if (prev.type === 'range') {
+        siblings.pop();
+        let before = siblings[siblings.length - 1];
+        before.value += prev.value + value;
+        prev = before;
+        block.ranges--;
+        continue;
+      }
+
+      push({
+        type: 'dot',
+        value
+      });
+      continue;
+    }
     /**
-     * Normalize a given config to an array.
-     * @param {ConfigData} configData The config data to normalize.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
+     * Text
      */
-    *_normalizeObjectConfigDataBody(
-        {
-            env,
-            extends: extend,
-            globals,
-            ignorePatterns,
-            noInlineConfig,
-            parser: parserName,
-            parserOptions,
-            plugins: pluginList,
-            processor,
-            reportUnusedDisableDirectives,
-            root,
-            rules,
-            settings,
-            overrides: overrideList = []
-        },
-        ctx
-    ) {
-        const extendList = Array.isArray(extend) ? extend : [extend];
-        const ignorePattern = ignorePatterns && new IgnorePattern(
-            Array.isArray(ignorePatterns) ? ignorePatterns : [ignorePatterns],
-            ctx.matchBasePath
-        );
 
-        // Flatten `extends`.
-        for (const extendName of extendList.filter(Boolean)) {
-            yield* this._loadExtends(extendName, ctx);
-        }
 
-        // Load parser & plugins.
-        const parser = parserName && this._loadParser(parserName, ctx);
-        const plugins = pluginList && this._loadPlugins(pluginList, ctx);
+    push({
+      type: 'text',
+      value
+    });
+  } // Mark imbalanced braces and brackets as invalid
 
-        // Yield pseudo config data for file extension processors.
-        if (plugins) {
-            yield* this._takeFileExtensionProcessors(plugins, ctx);
-        }
 
-        // Yield the config data except `extends` and `overrides`.
-        yield {
+  do {
+    block = stack.pop();
 
-            // Debug information.
-            type: ctx.type,
-            name: ctx.name,
-            filePath: ctx.filePath,
+    if (block.type !== 'root') {
+      block.nodes.forEach(node => {
+        if (!node.nodes) {
+          if (node.type === 'open') node.isOpen = true;
+          if (node.type === 'close') node.isClose = true;
+          if (!node.nodes) node.type = 'text';
+          node.invalid = true;
+        }
+      }); // get the location of the block on parent.nodes (block's siblings)
 
-            // Config data.
-            criteria: null,
-            env,
-            globals,
-            ignorePattern,
-            noInlineConfig,
-            parser,
-            parserOptions,
-            plugins,
-            processor,
-            reportUnusedDisableDirectives,
-            root,
-            rules,
-            settings
-        };
+      let parent = stack[stack.length - 1];
+      let index = parent.nodes.indexOf(block); // replace the (invalid) block with it's nodes
 
-        // Flatten `overries`.
-        for (let i = 0; i < overrideList.length; ++i) {
-            yield* this._normalizeObjectConfigData(
-                overrideList[i],
-                { ...ctx, name: `${ctx.name}#overrides[${i}]` }
-            );
-        }
+      parent.nodes.splice(index, 1, ...block.nodes);
     }
+  } while (stack.length > 0);
 
-    /**
-     * Load configs of an element in `extends`.
-     * @param {string} extendName The name of a base config.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
-     */
-    _loadExtends(extendName, ctx) {
-        debug$2("Loading {extends:%j} relative to %s", extendName, ctx.filePath);
-        try {
-            if (extendName.startsWith("eslint:")) {
-                return this._loadExtendedBuiltInConfig(extendName, ctx);
-            }
-            if (extendName.startsWith("plugin:")) {
-                return this._loadExtendedPluginConfig(extendName, ctx);
-            }
-            return this._loadExtendedShareableConfig(extendName, ctx);
-        } catch (error) {
-            error.message += `\nReferenced from: ${ctx.filePath || ctx.name}`;
-            throw error;
-        }
-    }
+  push({
+    type: 'eos'
+  });
+  return ast;
+};
 
-    /**
-     * Load configs of an element in `extends`.
-     * @param {string} extendName The name of a base config.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
-     */
-    _loadExtendedBuiltInConfig(extendName, ctx) {
-        const { eslintAllPath, eslintRecommendedPath } = internalSlotsMap$1.get(this);
+module.exports = parse;
 
-        if (extendName === "eslint:recommended") {
-            return this._loadConfigData({
-                ...ctx,
-                filePath: eslintRecommendedPath,
-                name: `${ctx.name} » ${extendName}`
-            });
-        }
-        if (extendName === "eslint:all") {
-            return this._loadConfigData({
-                ...ctx,
-                filePath: eslintAllPath,
-                name: `${ctx.name} » ${extendName}`
-            });
-        }
+/***/ }),
+/* 1045 */
+/***/ ((module) => {
 
-        throw configInvalidError(extendName, ctx.name, "extend-config-missing");
-    }
+"use strict";
 
-    /**
-     * Load configs of an element in `extends`.
-     * @param {string} extendName The name of a base config.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
-     */
-    _loadExtendedPluginConfig(extendName, ctx) {
-        const slashIndex = extendName.lastIndexOf("/");
 
-        if (slashIndex === -1) {
-            throw configInvalidError(extendName, ctx.filePath, "plugin-invalid");
-        }
+module.exports = {
+  MAX_LENGTH: 1024 * 64,
+  // Digits
+  CHAR_0: '0',
 
-        const pluginName = extendName.slice("plugin:".length, slashIndex);
-        const configName = extendName.slice(slashIndex + 1);
+  /* 0 */
+  CHAR_9: '9',
 
-        if (isFilePath(pluginName)) {
-            throw new Error("'extends' cannot use a file path for plugins.");
-        }
+  /* 9 */
+  // Alphabet chars.
+  CHAR_UPPERCASE_A: 'A',
 
-        const plugin = this._loadPlugin(pluginName, ctx);
-        const configData =
-            plugin.definition &&
-            plugin.definition.configs[configName];
+  /* A */
+  CHAR_LOWERCASE_A: 'a',
 
-        if (configData) {
-            return this._normalizeConfigData(configData, {
-                ...ctx,
-                filePath: plugin.filePath || ctx.filePath,
-                name: `${ctx.name} » plugin:${plugin.id}/${configName}`
-            });
-        }
+  /* a */
+  CHAR_UPPERCASE_Z: 'Z',
 
-        throw plugin.error || configInvalidError(extendName, ctx.filePath, "extend-config-missing");
-    }
+  /* Z */
+  CHAR_LOWERCASE_Z: 'z',
 
-    /**
-     * Load configs of an element in `extends`.
-     * @param {string} extendName The name of a base config.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The normalized config.
-     * @private
-     */
-    _loadExtendedShareableConfig(extendName, ctx) {
-        const { cwd, resolver } = internalSlotsMap$1.get(this);
-        const relativeTo = ctx.filePath || path__default["default"].join(cwd, "__placeholder__.js");
-        let request;
+  /* z */
+  CHAR_LEFT_PARENTHESES: '(',
 
-        if (isFilePath(extendName)) {
-            request = extendName;
-        } else if (extendName.startsWith(".")) {
-            request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior.
-        } else {
-            request = normalizePackageName(
-                extendName,
-                "eslint-config"
-            );
-        }
+  /* ( */
+  CHAR_RIGHT_PARENTHESES: ')',
 
-        let filePath;
+  /* ) */
+  CHAR_ASTERISK: '*',
 
-        try {
-            filePath = resolver.resolve(request, relativeTo);
-        } catch (error) {
-            /* istanbul ignore else */
-            if (error && error.code === "MODULE_NOT_FOUND") {
-                throw configInvalidError(extendName, ctx.filePath, "extend-config-missing");
-            }
-            throw error;
-        }
+  /* * */
+  // Non-alphabetic chars.
+  CHAR_AMPERSAND: '&',
 
-        writeDebugLogForLoading(request, relativeTo, filePath);
-        return this._loadConfigData({
-            ...ctx,
-            filePath,
-            name: `${ctx.name} » ${request}`
-        });
-    }
+  /* & */
+  CHAR_AT: '@',
 
-    /**
-     * Load given plugins.
-     * @param {string[]} names The plugin names to load.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {Record<string,DependentPlugin>} The loaded parser.
-     * @private
-     */
-    _loadPlugins(names, ctx) {
-        return names.reduce((map, name) => {
-            if (isFilePath(name)) {
-                throw new Error("Plugins array cannot includes file paths.");
-            }
-            const plugin = this._loadPlugin(name, ctx);
+  /* @ */
+  CHAR_BACKSLASH: '\\',
 
-            map[plugin.id] = plugin;
+  /* \ */
+  CHAR_BACKTICK: '`',
 
-            return map;
-        }, {});
-    }
+  /* ` */
+  CHAR_CARRIAGE_RETURN: '\r',
 
-    /**
-     * Load a given parser.
-     * @param {string} nameOrPath The package name or the path to a parser file.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {DependentParser} The loaded parser.
-     */
-    _loadParser(nameOrPath, ctx) {
-        debug$2("Loading parser %j from %s", nameOrPath, ctx.filePath);
+  /* \r */
+  CHAR_CIRCUMFLEX_ACCENT: '^',
 
-        const { cwd, resolver } = internalSlotsMap$1.get(this);
-        const relativeTo = ctx.filePath || path__default["default"].join(cwd, "__placeholder__.js");
+  /* ^ */
+  CHAR_COLON: ':',
 
-        try {
-            const filePath = resolver.resolve(nameOrPath, relativeTo);
+  /* : */
+  CHAR_COMMA: ',',
 
-            writeDebugLogForLoading(nameOrPath, relativeTo, filePath);
+  /* , */
+  CHAR_DOLLAR: '$',
 
-            return new ConfigDependency({
-                definition: require$1(filePath),
-                filePath,
-                id: nameOrPath,
-                importerName: ctx.name,
-                importerPath: ctx.filePath
-            });
-        } catch (error) {
+  /* . */
+  CHAR_DOT: '.',
 
-            // If the parser name is "espree", load the espree of ESLint.
-            if (nameOrPath === "espree") {
-                debug$2("Fallback espree.");
-                return new ConfigDependency({
-                    definition: require$1("espree"),
-                    filePath: require$1.resolve("espree"),
-                    id: nameOrPath,
-                    importerName: ctx.name,
-                    importerPath: ctx.filePath
-                });
-            }
+  /* . */
+  CHAR_DOUBLE_QUOTE: '"',
 
-            debug$2("Failed to load parser '%s' declared in '%s'.", nameOrPath, ctx.name);
-            error.message = `Failed to load parser '${nameOrPath}' declared in '${ctx.name}': ${error.message}`;
+  /* " */
+  CHAR_EQUAL: '=',
 
-            return new ConfigDependency({
-                error,
-                id: nameOrPath,
-                importerName: ctx.name,
-                importerPath: ctx.filePath
-            });
-        }
-    }
+  /* = */
+  CHAR_EXCLAMATION_MARK: '!',
 
-    /**
-     * Load a given plugin.
-     * @param {string} name The plugin name to load.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {DependentPlugin} The loaded plugin.
-     * @private
-     */
-    _loadPlugin(name, ctx) {
-        debug$2("Loading plugin %j from %s", name, ctx.filePath);
+  /* ! */
+  CHAR_FORM_FEED: '\f',
 
-        const { additionalPluginPool, resolver } = internalSlotsMap$1.get(this);
-        const request = normalizePackageName(name, "eslint-plugin");
-        const id = getShorthandName(request, "eslint-plugin");
-        const relativeTo = path__default["default"].join(ctx.pluginBasePath, "__placeholder__.js");
+  /* \f */
+  CHAR_FORWARD_SLASH: '/',
 
-        if (name.match(/\s+/u)) {
-            const error = Object.assign(
-                new Error(`Whitespace found in plugin name '${name}'`),
-                {
-                    messageTemplate: "whitespace-found",
-                    messageData: { pluginName: request }
-                }
-            );
+  /* / */
+  CHAR_HASH: '#',
 
-            return new ConfigDependency({
-                error,
-                id,
-                importerName: ctx.name,
-                importerPath: ctx.filePath
-            });
-        }
+  /* # */
+  CHAR_HYPHEN_MINUS: '-',
 
-        // Check for additional pool.
-        const plugin =
-            additionalPluginPool.get(request) ||
-            additionalPluginPool.get(id);
+  /* - */
+  CHAR_LEFT_ANGLE_BRACKET: '<',
 
-        if (plugin) {
-            return new ConfigDependency({
-                definition: normalizePlugin(plugin),
-                filePath: "", // It's unknown where the plugin came from.
-                id,
-                importerName: ctx.name,
-                importerPath: ctx.filePath
-            });
-        }
+  /* < */
+  CHAR_LEFT_CURLY_BRACE: '{',
 
-        let filePath;
-        let error;
+  /* { */
+  CHAR_LEFT_SQUARE_BRACKET: '[',
 
-        try {
-            filePath = resolver.resolve(request, relativeTo);
-        } catch (resolveError) {
-            error = resolveError;
-            /* istanbul ignore else */
-            if (error && error.code === "MODULE_NOT_FOUND") {
-                error.messageTemplate = "plugin-missing";
-                error.messageData = {
-                    pluginName: request,
-                    resolvePluginsRelativeTo: ctx.pluginBasePath,
-                    importerName: ctx.name
-                };
-            }
-        }
+  /* [ */
+  CHAR_LINE_FEED: '\n',
 
-        if (filePath) {
-            try {
-                writeDebugLogForLoading(request, relativeTo, filePath);
+  /* \n */
+  CHAR_NO_BREAK_SPACE: '\u00A0',
 
-                const startTime = Date.now();
-                const pluginDefinition = require$1(filePath);
+  /* \u00A0 */
+  CHAR_PERCENT: '%',
 
-                debug$2(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`);
+  /* % */
+  CHAR_PLUS: '+',
 
-                return new ConfigDependency({
-                    definition: normalizePlugin(pluginDefinition),
-                    filePath,
-                    id,
-                    importerName: ctx.name,
-                    importerPath: ctx.filePath
-                });
-            } catch (loadError) {
-                error = loadError;
-            }
-        }
+  /* + */
+  CHAR_QUESTION_MARK: '?',
 
-        debug$2("Failed to load plugin '%s' declared in '%s'.", name, ctx.name);
-        error.message = `Failed to load plugin '${name}' declared in '${ctx.name}': ${error.message}`;
-        return new ConfigDependency({
-            error,
-            id,
-            importerName: ctx.name,
-            importerPath: ctx.filePath
-        });
-    }
+  /* ? */
+  CHAR_RIGHT_ANGLE_BRACKET: '>',
 
-    /**
-     * Take file expression processors as config array elements.
-     * @param {Record<string,DependentPlugin>} plugins The plugin definitions.
-     * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.
-     * @returns {IterableIterator<ConfigArrayElement>} The config array elements of file expression processors.
-     * @private
-     */
-    *_takeFileExtensionProcessors(plugins, ctx) {
-        for (const pluginId of Object.keys(plugins)) {
-            const processors =
-                plugins[pluginId] &&
-                plugins[pluginId].definition &&
-                plugins[pluginId].definition.processors;
+  /* > */
+  CHAR_RIGHT_CURLY_BRACE: '}',
 
-            if (!processors) {
-                continue;
-            }
+  /* } */
+  CHAR_RIGHT_SQUARE_BRACKET: ']',
+
+  /* ] */
+  CHAR_SEMICOLON: ';',
+
+  /* ; */
+  CHAR_SINGLE_QUOTE: '\'',
+
+  /* ' */
+  CHAR_SPACE: ' ',
+
+  /*   */
+  CHAR_TAB: '\t',
+
+  /* \t */
+  CHAR_UNDERSCORE: '_',
+
+  /* _ */
+  CHAR_VERTICAL_LINE: '|',
+
+  /* | */
+  CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF'
+  /* \uFEFF */
+
+};
+
+/***/ }),
+/* 1046 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
 
-            for (const processorId of Object.keys(processors)) {
-                if (processorId.startsWith(".")) {
-                    yield* this._normalizeObjectConfigData(
-                        {
-                            files: [`*${processorId}`],
-                            processor: `${pluginId}/${processorId}`
-                        },
-                        {
-                            ...ctx,
-                            type: "implicit-processor",
-                            name: `${ctx.name}#processors["${pluginId}/${processorId}"]`
-                        }
-                    );
-                }
-            }
-        }
-    }
-}
 
+module.exports = __webpack_require__(1047);
+
+/***/ }),
+/* 1047 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+
+
+const path = __webpack_require__(501);
+
+const scan = __webpack_require__(1048);
+
+const parse = __webpack_require__(1051);
+
+const utils = __webpack_require__(1049);
+
+const constants = __webpack_require__(1050);
+
+const isObject = val => val && typeof val === 'object' && !Array.isArray(val);
 /**
- * @fileoverview `CascadingConfigArrayFactory` class.
- *
- * `CascadingConfigArrayFactory` class has a responsibility:
- *
- * 1. Handles cascading of config files.
- *
- * It provides two methods:
+ * Creates a matcher function from one or more glob patterns. The
+ * returned function takes a string to match as its first argument,
+ * and returns true if the string is a match. The returned matcher
+ * function also takes a boolean as the second argument that, when true,
+ * returns an object with additional information.
  *
- * - `getConfigArrayForFile(filePath)`
- *     Get the corresponded configuration of a given file. This method doesn't
- *     throw even if the given file didn't exist.
- * - `clearCache()`
- *     Clear the internal cache. You have to call this method when
- *     `additionalPluginPool` was updated if `baseConfig` or `cliConfig` depends
- *     on the additional plugins. (`CLIEngine#addPlugin()` method calls this.)
+ * ```js
+ * const picomatch = require('picomatch');
+ * // picomatch(glob[, options]);
  *
- * @author Toru Nagashima <https://github.com/mysticatea>
+ * const isMatch = picomatch('*.!(*a)');
+ * console.log(isMatch('a.a')); //=> false
+ * console.log(isMatch('a.b')); //=> true
+ * ```
+ * @name picomatch
+ * @param {String|Array} `globs` One or more glob patterns.
+ * @param {Object=} `options`
+ * @return {Function=} Returns a matcher function.
+ * @api public
  */
 
-const debug$1 = debugOrig__default["default"]("eslintrc:cascading-config-array-factory");
 
-//------------------------------------------------------------------------------
-// Helpers
-//------------------------------------------------------------------------------
+const picomatch = function (glob, options) {
+  let returnState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
 
-// Define types for VSCode IntelliSense.
-/** @typedef {import("./shared/types").ConfigData} ConfigData */
-/** @typedef {import("./shared/types").Parser} Parser */
-/** @typedef {import("./shared/types").Plugin} Plugin */
-/** @typedef {import("./shared/types").Rule} Rule */
-/** @typedef {ReturnType<ConfigArrayFactory["create"]>} ConfigArray */
+  if (Array.isArray(glob)) {
+    const fns = glob.map(input => picomatch(input, options, returnState));
 
-/**
- * @typedef {Object} CascadingConfigArrayFactoryOptions
- * @property {Map<string,Plugin>} [additionalPluginPool] The map for additional plugins.
- * @property {ConfigData} [baseConfig] The config by `baseConfig` option.
- * @property {ConfigData} [cliConfig] The config by CLI options (`--env`, `--global`, `--ignore-pattern`, `--parser`, `--parser-options`, `--plugin`, and `--rule`). CLI options overwrite the setting in config files.
- * @property {string} [cwd] The base directory to start lookup.
- * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`.
- * @property {string[]} [rulePaths] The value of `--rulesdir` option.
- * @property {string} [specificConfigPath] The value of `--config` option.
- * @property {boolean} [useEslintrc] if `false` then it doesn't load config files.
- * @property {Function} loadRules The function to use to load rules.
- * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
- * @property {Object} [resolver=ModuleResolver] The module resolver object.
- * @property {string} eslintAllPath The path to the definitions for eslint:all.
- * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
- */
+    const arrayMatcher = str => {
+      for (const isMatch of fns) {
+        const state = isMatch(str);
+        if (state) return state;
+      }
 
-/**
- * @typedef {Object} CascadingConfigArrayFactoryInternalSlots
- * @property {ConfigArray} baseConfigArray The config array of `baseConfig` option.
- * @property {ConfigData} baseConfigData The config data of `baseConfig` option. This is used to reset `baseConfigArray`.
- * @property {ConfigArray} cliConfigArray The config array of CLI options.
- * @property {ConfigData} cliConfigData The config data of CLI options. This is used to reset `cliConfigArray`.
- * @property {ConfigArrayFactory} configArrayFactory The factory for config arrays.
- * @property {Map<string, ConfigArray>} configCache The cache from directory paths to config arrays.
- * @property {string} cwd The base directory to start lookup.
- * @property {WeakMap<ConfigArray, ConfigArray>} finalizeCache The cache from config arrays to finalized config arrays.
- * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`.
- * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`.
- * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`.
- * @property {boolean} useEslintrc if `false` then it doesn't load config files.
- * @property {Function} loadRules The function to use to load rules.
- * @property {Map<string,Rule>} builtInRules The rules that are built in to ESLint.
- * @property {Object} [resolver=ModuleResolver] The module resolver object.
- * @property {string} eslintAllPath The path to the definitions for eslint:all.
- * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.
- */
+      return false;
+    };
 
-/** @type {WeakMap<CascadingConfigArrayFactory, CascadingConfigArrayFactoryInternalSlots>} */
-const internalSlotsMap = new WeakMap();
+    return arrayMatcher;
+  }
 
-/**
- * Create the config array from `baseConfig` and `rulePaths`.
- * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots.
- * @returns {ConfigArray} The config array of the base configs.
- */
-function createBaseConfigArray({
-    configArrayFactory,
-    baseConfigData,
-    rulePaths,
-    cwd,
-    loadRules
-}) {
-    const baseConfigArray = configArrayFactory.create(
-        baseConfigData,
-        { name: "BaseConfig" }
-    );
+  const isState = isObject(glob) && glob.tokens && glob.input;
 
-    /*
-     * Create the config array element for the default ignore patterns.
-     * This element has `ignorePattern` property that ignores the default
-     * patterns in the current working directory.
-     */
-    baseConfigArray.unshift(configArrayFactory.create(
-        { ignorePatterns: IgnorePattern.DefaultPatterns },
-        { name: "DefaultIgnorePattern" }
-    )[0]);
+  if (glob === '' || typeof glob !== 'string' && !isState) {
+    throw new TypeError('Expected pattern to be a non-empty string');
+  }
 
-    /*
-     * Load rules `--rulesdir` option as a pseudo plugin.
-     * Use a pseudo plugin to define rules of `--rulesdir`, so we can validate
-     * the rule's options with only information in the config array.
-     */
-    if (rulePaths && rulePaths.length > 0) {
-        baseConfigArray.push({
-            type: "config",
-            name: "--rulesdir",
-            filePath: "",
-            plugins: {
-                "": new ConfigDependency({
-                    definition: {
-                        rules: rulePaths.reduce(
-                            (map, rulesPath) => Object.assign(
-                                map,
-                                loadRules(rulesPath, cwd)
-                            ),
-                            {}
-                        )
-                    },
-                    filePath: "",
-                    id: "",
-                    importerName: "--rulesdir",
-                    importerPath: ""
-                })
-            }
-        });
+  const opts = options || {};
+  const posix = utils.isWindows(options);
+  const regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true);
+  const state = regex.state;
+  delete regex.state;
+
+  let isIgnored = () => false;
+
+  if (opts.ignore) {
+    const ignoreOpts = { ...options,
+      ignore: null,
+      onMatch: null,
+      onResult: null
+    };
+    isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);
+  }
+
+  const matcher = function (input) {
+    let returnObject = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+    const {
+      isMatch,
+      match,
+      output
+    } = picomatch.test(input, regex, options, {
+      glob,
+      posix
+    });
+    const result = {
+      glob,
+      state,
+      regex,
+      posix,
+      input,
+      output,
+      match,
+      isMatch
+    };
+
+    if (typeof opts.onResult === 'function') {
+      opts.onResult(result);
     }
 
-    return baseConfigArray;
-}
+    if (isMatch === false) {
+      result.isMatch = false;
+      return returnObject ? result : false;
+    }
+
+    if (isIgnored(input)) {
+      if (typeof opts.onIgnore === 'function') {
+        opts.onIgnore(result);
+      }
+
+      result.isMatch = false;
+      return returnObject ? result : false;
+    }
 
+    if (typeof opts.onMatch === 'function') {
+      opts.onMatch(result);
+    }
+
+    return returnObject ? result : true;
+  };
+
+  if (returnState) {
+    matcher.state = state;
+  }
+
+  return matcher;
+};
 /**
- * Create the config array from CLI options.
- * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots.
- * @returns {ConfigArray} The config array of the base configs.
+ * Test `input` with the given `regex`. This is used by the main
+ * `picomatch()` function to test the input string.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * // picomatch.test(input, regex[, options]);
+ *
+ * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/));
+ * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }
+ * ```
+ * @param {String} `input` String to test.
+ * @param {RegExp} `regex`
+ * @return {Object} Returns an object with matching info.
+ * @api public
  */
-function createCLIConfigArray({
-    cliConfigData,
-    configArrayFactory,
-    cwd,
-    ignorePath,
-    specificConfigPath
-}) {
-    const cliConfigArray = configArrayFactory.create(
-        cliConfigData,
-        { name: "CLIOptions" }
-    );
 
-    cliConfigArray.unshift(
-        ...(ignorePath
-            ? configArrayFactory.loadESLintIgnore(ignorePath)
-            : configArrayFactory.loadDefaultESLintIgnore())
-    );
 
-    if (specificConfigPath) {
-        cliConfigArray.unshift(
-            ...configArrayFactory.loadFile(
-                specificConfigPath,
-                { name: "--config", basePath: cwd }
-            )
-        );
+picomatch.test = function (input, regex, options) {
+  let {
+    glob,
+    posix
+  } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
+
+  if (typeof input !== 'string') {
+    throw new TypeError('Expected input to be a string');
+  }
+
+  if (input === '') {
+    return {
+      isMatch: false,
+      output: ''
+    };
+  }
+
+  const opts = options || {};
+  const format = opts.format || (posix ? utils.toPosixSlashes : null);
+  let match = input === glob;
+  let output = match && format ? format(input) : input;
+
+  if (match === false) {
+    output = format ? format(input) : input;
+    match = output === glob;
+  }
+
+  if (match === false || opts.capture === true) {
+    if (opts.matchBase === true || opts.basename === true) {
+      match = picomatch.matchBase(input, regex, options, posix);
+    } else {
+      match = regex.exec(output);
     }
+  }
+
+  return {
+    isMatch: Boolean(match),
+    match,
+    output
+  };
+};
+/**
+ * Match the basename of a filepath.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * // picomatch.matchBase(input, glob[, options]);
+ * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true
+ * ```
+ * @param {String} `input` String to test.
+ * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).
+ * @return {Boolean}
+ * @api public
+ */
 
-    return cliConfigArray;
-}
 
+picomatch.matchBase = function (input, glob, options) {
+  let posix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : utils.isWindows(options);
+  const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);
+  return regex.test(path.basename(input));
+};
 /**
- * The error type when there are files matched by a glob, but all of them have been ignored.
+ * Returns true if **any** of the given glob `patterns` match the specified `string`.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * // picomatch.isMatch(string, patterns[, options]);
+ *
+ * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true
+ * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false
+ * ```
+ * @param {String|Array} str The string to test.
+ * @param {String|Array} patterns One or more glob patterns to use for matching.
+ * @param {Object} [options] See available [options](#options).
+ * @return {Boolean} Returns true if any patterns match `str`
+ * @api public
  */
-class ConfigurationNotFoundError extends Error {
 
-    // eslint-disable-next-line jsdoc/require-description
-    /**
-     * @param {string} directoryPath The directory path.
-     */
-    constructor(directoryPath) {
-        super(`No ESLint configuration found in ${directoryPath}.`);
-        this.messageTemplate = "no-config-found";
-        this.messageData = { directoryPath };
-    }
-}
 
+picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
 /**
- * This class provides the functionality that enumerates every file which is
- * matched by given glob patterns and that configuration.
+ * Parse a glob pattern to create the source string for a regular
+ * expression.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * const result = picomatch.parse(pattern[, options]);
+ * ```
+ * @param {String} `pattern`
+ * @param {Object} `options`
+ * @return {Object} Returns an object with useful properties and output to be used as a regex source string.
+ * @api public
  */
-class CascadingConfigArrayFactory {
 
-    /**
-     * Initialize this enumerator.
-     * @param {CascadingConfigArrayFactoryOptions} options The options.
-     */
-    constructor({
-        additionalPluginPool = new Map(),
-        baseConfig: baseConfigData = null,
-        cliConfig: cliConfigData = null,
-        cwd = process.cwd(),
-        ignorePath,
-        resolvePluginsRelativeTo,
-        rulePaths = [],
-        specificConfigPath = null,
-        useEslintrc = true,
-        builtInRules = new Map(),
-        loadRules,
-        resolver,
-        eslintRecommendedPath,
-        eslintAllPath
-    } = {}) {
-        const configArrayFactory = new ConfigArrayFactory({
-            additionalPluginPool,
-            cwd,
-            resolvePluginsRelativeTo,
-            builtInRules,
-            resolver,
-            eslintRecommendedPath,
-            eslintAllPath
-        });
 
-        internalSlotsMap.set(this, {
-            baseConfigArray: createBaseConfigArray({
-                baseConfigData,
-                configArrayFactory,
-                cwd,
-                rulePaths,
-                loadRules,
-                resolver
-            }),
-            baseConfigData,
-            cliConfigArray: createCLIConfigArray({
-                cliConfigData,
-                configArrayFactory,
-                cwd,
-                ignorePath,
-                specificConfigPath
-            }),
-            cliConfigData,
-            configArrayFactory,
-            configCache: new Map(),
-            cwd,
-            finalizeCache: new WeakMap(),
-            ignorePath,
-            rulePaths,
-            specificConfigPath,
-            useEslintrc,
-            builtInRules,
-            loadRules
-        });
-    }
+picomatch.parse = (pattern, options) => {
+  if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));
+  return parse(pattern, { ...options,
+    fastpaths: false
+  });
+};
+/**
+ * Scan a glob pattern to separate the pattern into segments.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * // picomatch.scan(input[, options]);
+ *
+ * const result = picomatch.scan('!./foo/*.js');
+ * console.log(result);
+ * { prefix: '!./',
+ *   input: '!./foo/*.js',
+ *   start: 3,
+ *   base: 'foo',
+ *   glob: '*.js',
+ *   isBrace: false,
+ *   isBracket: false,
+ *   isGlob: true,
+ *   isExtglob: false,
+ *   isGlobstar: false,
+ *   negated: true }
+ * ```
+ * @param {String} `input` Glob pattern to scan.
+ * @param {Object} `options`
+ * @return {Object} Returns an object with
+ * @api public
+ */
 
-    /**
-     * The path to the current working directory.
-     * This is used by tests.
-     * @type {string}
-     */
-    get cwd() {
-        const { cwd } = internalSlotsMap.get(this);
 
-        return cwd;
-    }
+picomatch.scan = (input, options) => scan(input, options);
+/**
+ * Compile a regular expression from the `state` object returned by the
+ * [parse()](#parse) method.
+ *
+ * @param {Object} `state`
+ * @param {Object} `options`
+ * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.
+ * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.
+ * @return {RegExp}
+ * @api public
+ */
 
-    /**
-     * Get the config array of a given file.
-     * If `filePath` was not given, it returns the config which contains only
-     * `baseConfigData` and `cliConfigData`.
-     * @param {string} [filePath] The file path to a file.
-     * @param {Object} [options] The options.
-     * @param {boolean} [options.ignoreNotFoundError] If `true` then it doesn't throw `ConfigurationNotFoundError`.
-     * @returns {ConfigArray} The config array of the file.
-     */
-    getConfigArrayForFile(filePath, { ignoreNotFoundError = false } = {}) {
-        const {
-            baseConfigArray,
-            cliConfigArray,
-            cwd
-        } = internalSlotsMap.get(this);
 
-        if (!filePath) {
-            return new ConfigArray(...baseConfigArray, ...cliConfigArray);
-        }
+picomatch.compileRe = function (state, options) {
+  let returnOutput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+  let returnState = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
 
-        const directoryPath = path__default["default"].dirname(path__default["default"].resolve(cwd, filePath));
+  if (returnOutput === true) {
+    return state.output;
+  }
 
-        debug$1(`Load config files for ${directoryPath}.`);
+  const opts = options || {};
+  const prepend = opts.contains ? '' : '^';
+  const append = opts.contains ? '' : '$';
+  let source = `${prepend}(?:${state.output})${append}`;
 
-        return this._finalizeConfigArray(
-            this._loadConfigInAncestors(directoryPath),
-            directoryPath,
-            ignoreNotFoundError
-        );
-    }
+  if (state && state.negated === true) {
+    source = `^(?!${source}).*$`;
+  }
 
-    /**
-     * Set the config data to override all configs.
-     * Require to call `clearCache()` method after this method is called.
-     * @param {ConfigData} configData The config data to override all configs.
-     * @returns {void}
-     */
-    setOverrideConfig(configData) {
-        const slots = internalSlotsMap.get(this);
+  const regex = picomatch.toRegex(source, options);
+
+  if (returnState === true) {
+    regex.state = state;
+  }
 
-        slots.cliConfigData = configData;
-    }
+  return regex;
+};
+/**
+ * Create a regular expression from a parsed glob pattern.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * const state = picomatch.parse('*.js');
+ * // picomatch.compileRe(state[, options]);
+ *
+ * console.log(picomatch.compileRe(state));
+ * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
+ * ```
+ * @param {String} `state` The object returned from the `.parse` method.
+ * @param {Object} `options`
+ * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.
+ * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.
+ * @return {RegExp} Returns a regex created from the given pattern.
+ * @api public
+ */
 
-    /**
-     * Clear config cache.
-     * @returns {void}
-     */
-    clearCache() {
-        const slots = internalSlotsMap.get(this);
 
-        slots.baseConfigArray = createBaseConfigArray(slots);
-        slots.cliConfigArray = createCLIConfigArray(slots);
-        slots.configCache.clear();
-    }
+picomatch.makeRe = function (input) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let returnOutput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+  let returnState = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
 
-    /**
-     * Load and normalize config files from the ancestor directories.
-     * @param {string} directoryPath The path to a leaf directory.
-     * @param {boolean} configsExistInSubdirs `true` if configurations exist in subdirectories.
-     * @returns {ConfigArray} The loaded config.
-     * @private
-     */
-    _loadConfigInAncestors(directoryPath, configsExistInSubdirs = false) {
-        const {
-            baseConfigArray,
-            configArrayFactory,
-            configCache,
-            cwd,
-            useEslintrc
-        } = internalSlotsMap.get(this);
+  if (!input || typeof input !== 'string') {
+    throw new TypeError('Expected a non-empty string');
+  }
 
-        if (!useEslintrc) {
-            return baseConfigArray;
-        }
+  let parsed = {
+    negated: false,
+    fastpaths: true
+  };
 
-        let configArray = configCache.get(directoryPath);
+  if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {
+    parsed.output = parse.fastpaths(input, options);
+  }
 
-        // Hit cache.
-        if (configArray) {
-            debug$1(`Cache hit: ${directoryPath}.`);
-            return configArray;
-        }
-        debug$1(`No cache found: ${directoryPath}.`);
+  if (!parsed.output) {
+    parsed = parse(input, options);
+  }
 
-        const homePath = os__default["default"].homedir();
+  return picomatch.compileRe(parsed, options, returnOutput, returnState);
+};
+/**
+ * Create a regular expression from the given regex source string.
+ *
+ * ```js
+ * const picomatch = require('picomatch');
+ * // picomatch.toRegex(source[, options]);
+ *
+ * const { output } = picomatch.parse('*.js');
+ * console.log(picomatch.toRegex(output));
+ * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
+ * ```
+ * @param {String} `source` Regular expression source string.
+ * @param {Object} `options`
+ * @return {RegExp}
+ * @api public
+ */
 
-        // Consider this is root.
-        if (directoryPath === homePath && cwd !== homePath) {
-            debug$1("Stop traversing because of considered root.");
-            if (configsExistInSubdirs) {
-                const filePath = ConfigArrayFactory.getPathToConfigFileInDirectory(directoryPath);
 
-                if (filePath) {
-                    emitDeprecationWarning(
-                        filePath,
-                        "ESLINT_PERSONAL_CONFIG_SUPPRESS"
-                    );
-                }
-            }
-            return this._cacheConfig(directoryPath, baseConfigArray);
-        }
+picomatch.toRegex = (source, options) => {
+  try {
+    const opts = options || {};
+    return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));
+  } catch (err) {
+    if (options && options.debug === true) throw err;
+    return /$^/;
+  }
+};
+/**
+ * Picomatch constants.
+ * @return {Object}
+ */
 
-        // Load the config on this directory.
-        try {
-            configArray = configArrayFactory.loadInDirectory(directoryPath);
-        } catch (error) {
-            /* istanbul ignore next */
-            if (error.code === "EACCES") {
-                debug$1("Stop traversing because of 'EACCES' error.");
-                return this._cacheConfig(directoryPath, baseConfigArray);
-            }
-            throw error;
-        }
 
-        if (configArray.length > 0 && configArray.isRoot()) {
-            debug$1("Stop traversing because of 'root:true'.");
-            configArray.unshift(...baseConfigArray);
-            return this._cacheConfig(directoryPath, configArray);
-        }
+picomatch.constants = constants;
+/**
+ * Expose "picomatch"
+ */
 
-        // Load from the ancestors and merge it.
-        const parentPath = path__default["default"].dirname(directoryPath);
-        const parentConfigArray = parentPath && parentPath !== directoryPath
-            ? this._loadConfigInAncestors(
-                parentPath,
-                configsExistInSubdirs || configArray.length > 0
-            )
-            : baseConfigArray;
+module.exports = picomatch;
 
-        if (configArray.length > 0) {
-            configArray.unshift(...parentConfigArray);
-        } else {
-            configArray = parentConfigArray;
-        }
+/***/ }),
+/* 1048 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-        // Cache and return.
-        return this._cacheConfig(directoryPath, configArray);
-    }
+"use strict";
 
-    /**
-     * Freeze and cache a given config.
-     * @param {string} directoryPath The path to a directory as a cache key.
-     * @param {ConfigArray} configArray The config array as a cache value.
-     * @returns {ConfigArray} The `configArray` (frozen).
-     */
-    _cacheConfig(directoryPath, configArray) {
-        const { configCache } = internalSlotsMap.get(this);
 
-        Object.freeze(configArray);
-        configCache.set(directoryPath, configArray);
+const utils = __webpack_require__(1049);
 
-        return configArray;
-    }
+const {
+  CHAR_ASTERISK,
 
-    /**
-     * Finalize a given config array.
-     * Concatenate `--config` and other CLI options.
-     * @param {ConfigArray} configArray The parent config array.
-     * @param {string} directoryPath The path to the leaf directory to find config files.
-     * @param {boolean} ignoreNotFoundError If `true` then it doesn't throw `ConfigurationNotFoundError`.
-     * @returns {ConfigArray} The loaded config.
-     * @private
-     */
-    _finalizeConfigArray(configArray, directoryPath, ignoreNotFoundError) {
-        const {
-            cliConfigArray,
-            configArrayFactory,
-            finalizeCache,
-            useEslintrc,
-            builtInRules
-        } = internalSlotsMap.get(this);
+  /* * */
+  CHAR_AT,
 
-        let finalConfigArray = finalizeCache.get(configArray);
+  /* @ */
+  CHAR_BACKWARD_SLASH,
 
-        if (!finalConfigArray) {
-            finalConfigArray = configArray;
+  /* \ */
+  CHAR_COMMA,
 
-            // Load the personal config if there are no regular config files.
-            if (
-                useEslintrc &&
-                configArray.every(c => !c.filePath) &&
-                cliConfigArray.every(c => !c.filePath) // `--config` option can be a file.
-            ) {
-                const homePath = os__default["default"].homedir();
+  /* , */
+  CHAR_DOT,
 
-                debug$1("Loading the config file of the home directory:", homePath);
+  /* . */
+  CHAR_EXCLAMATION_MARK,
 
-                const personalConfigArray = configArrayFactory.loadInDirectory(
-                    homePath,
-                    { name: "PersonalConfig" }
-                );
+  /* ! */
+  CHAR_FORWARD_SLASH,
 
-                if (
-                    personalConfigArray.length > 0 &&
-                    !directoryPath.startsWith(homePath)
-                ) {
-                    const lastElement =
-                        personalConfigArray[personalConfigArray.length - 1];
+  /* / */
+  CHAR_LEFT_CURLY_BRACE,
 
-                    emitDeprecationWarning(
-                        lastElement.filePath,
-                        "ESLINT_PERSONAL_CONFIG_LOAD"
-                    );
-                }
+  /* { */
+  CHAR_LEFT_PARENTHESES,
 
-                finalConfigArray = finalConfigArray.concat(personalConfigArray);
-            }
+  /* ( */
+  CHAR_LEFT_SQUARE_BRACKET,
 
-            // Apply CLI options.
-            if (cliConfigArray.length > 0) {
-                finalConfigArray = finalConfigArray.concat(cliConfigArray);
-            }
+  /* [ */
+  CHAR_PLUS,
 
-            // Validate rule settings and environments.
-            const validator = new ConfigValidator({
-                builtInRules
-            });
+  /* + */
+  CHAR_QUESTION_MARK,
 
-            validator.validateConfigArray(finalConfigArray);
+  /* ? */
+  CHAR_RIGHT_CURLY_BRACE,
 
-            // Cache it.
-            Object.freeze(finalConfigArray);
-            finalizeCache.set(configArray, finalConfigArray);
+  /* } */
+  CHAR_RIGHT_PARENTHESES,
 
-            debug$1(
-                "Configuration was determined: %o on %s",
-                finalConfigArray,
-                directoryPath
-            );
-        }
+  /* ) */
+  CHAR_RIGHT_SQUARE_BRACKET
+  /* ] */
 
-        // At least one element (the default ignore patterns) exists.
-        if (!ignoreNotFoundError && useEslintrc && finalConfigArray.length <= 1) {
-            throw new ConfigurationNotFoundError(directoryPath);
-        }
+} = __webpack_require__(1050);
 
-        return finalConfigArray;
-    }
-}
+const isPathSeparator = code => {
+  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
+};
 
+const depth = token => {
+  if (token.isPrefix !== true) {
+    token.depth = token.isGlobstar ? Infinity : 1;
+  }
+};
 /**
- * @fileoverview Compatibility class for flat config.
- * @author Nicholas C. Zakas
+ * Quickly scans a glob pattern and returns an object with a handful of
+ * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),
+ * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not
+ * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).
+ *
+ * ```js
+ * const pm = require('picomatch');
+ * console.log(pm.scan('foo/bar/*.js'));
+ * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }
+ * ```
+ * @param {String} `str`
+ * @param {Object} `options`
+ * @return {Object} Returns an object with tokens and regex source string.
+ * @api public
  */
 
-const dirname = path__default["default"].dirname(url.fileURLToPath((typeof document === 'undefined' ? new ((__webpack_require__(892).URL))('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('eslintrc.cjs', document.baseURI).href))));
 
-//-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
+const scan = (input, options) => {
+  const opts = options || {};
+  const length = input.length - 1;
+  const scanToEnd = opts.parts === true || opts.scanToEnd === true;
+  const slashes = [];
+  const tokens = [];
+  const parts = [];
+  let str = input;
+  let index = -1;
+  let start = 0;
+  let lastIndex = 0;
+  let isBrace = false;
+  let isBracket = false;
+  let isGlob = false;
+  let isExtglob = false;
+  let isGlobstar = false;
+  let braceEscaped = false;
+  let backslashes = false;
+  let negated = false;
+  let negatedExtglob = false;
+  let finished = false;
+  let braces = 0;
+  let prev;
+  let code;
+  let token = {
+    value: '',
+    depth: 0,
+    isGlob: false
+  };
 
-/** @typedef {import("../../shared/types").Environment} Environment */
-/** @typedef {import("../../shared/types").Processor} Processor */
+  const eos = () => index >= length;
 
-const debug = debugOrig__default["default"]("eslintrc:flat-compat");
-const cafactory = Symbol("cafactory");
+  const peek = () => str.charCodeAt(index + 1);
 
-/**
- * Translates an ESLintRC-style config object into a flag-config-style config
- * object.
- * @param {Object} eslintrcConfig An ESLintRC-style config object.
- * @param {Object} options Options to help translate the config.
- * @param {string} options.resolveConfigRelativeTo To the directory to resolve
- *      configs from.
- * @param {string} options.resolvePluginsRelativeTo The directory to resolve
- *      plugins from.
- * @param {ReadOnlyMap<string,Environment>} options.pluginEnvironments A map of plugin environment
- *      names to objects.
- * @param {ReadOnlyMap<string,Processor>} options.pluginProcessors A map of plugin processor
- *      names to objects.
- * @returns {Object} A flag-config-style config object.
- */
-function translateESLintRC(eslintrcConfig, {
-    resolveConfigRelativeTo,
-    resolvePluginsRelativeTo,
-    pluginEnvironments,
-    pluginProcessors
-}) {
+  const advance = () => {
+    prev = code;
+    return str.charCodeAt(++index);
+  };
 
-    const flatConfig = {};
-    const configs = [];
-    const languageOptions = {};
-    const linterOptions = {};
-    const keysToCopy = ["settings", "rules", "processor"];
-    const languageOptionsKeysToCopy = ["globals", "parser", "parserOptions"];
-    const linterOptionsKeysToCopy = ["noInlineConfig", "reportUnusedDisableDirectives"];
+  while (index < length) {
+    code = advance();
+    let next;
 
-    // check for special settings for eslint:all and eslint:recommended:
-    if (eslintrcConfig.settings) {
-        if (eslintrcConfig.settings["eslint:all"] === true) {
-            return ["eslint:all"];
-        }
+    if (code === CHAR_BACKWARD_SLASH) {
+      backslashes = token.backslashes = true;
+      code = advance();
 
-        if (eslintrcConfig.settings["eslint:recommended"] === true) {
-            return ["eslint:recommended"];
-        }
-    }
+      if (code === CHAR_LEFT_CURLY_BRACE) {
+        braceEscaped = true;
+      }
 
-    // copy over simple translations
-    for (const key of keysToCopy) {
-        if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
-            flatConfig[key] = eslintrcConfig[key];
-        }
+      continue;
     }
 
-    // copy over languageOptions
-    for (const key of languageOptionsKeysToCopy) {
-        if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
+    if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {
+      braces++;
 
-            // create the languageOptions key in the flat config
-            flatConfig.languageOptions = languageOptions;
+      while (eos() !== true && (code = advance())) {
+        if (code === CHAR_BACKWARD_SLASH) {
+          backslashes = token.backslashes = true;
+          advance();
+          continue;
+        }
 
-            if (key === "parser") {
-                debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`);
+        if (code === CHAR_LEFT_CURLY_BRACE) {
+          braces++;
+          continue;
+        }
 
-                if (eslintrcConfig[key].error) {
-                    throw eslintrcConfig[key].error;
-                }
+        if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {
+          isBrace = token.isBrace = true;
+          isGlob = token.isGlob = true;
+          finished = true;
 
-                languageOptions[key] = eslintrcConfig[key].definition;
-                continue;
-            }
+          if (scanToEnd === true) {
+            continue;
+          }
 
-            // clone any object values that are in the eslintrc config
-            if (eslintrcConfig[key] && typeof eslintrcConfig[key] === "object") {
-                languageOptions[key] = {
-                    ...eslintrcConfig[key]
-                };
-            } else {
-                languageOptions[key] = eslintrcConfig[key];
-            }
+          break;
         }
-    }
 
-    // copy over linterOptions
-    for (const key of linterOptionsKeysToCopy) {
-        if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
-            flatConfig.linterOptions = linterOptions;
-            linterOptions[key] = eslintrcConfig[key];
-        }
-    }
+        if (braceEscaped !== true && code === CHAR_COMMA) {
+          isBrace = token.isBrace = true;
+          isGlob = token.isGlob = true;
+          finished = true;
 
-    // move ecmaVersion a level up
-    if (languageOptions.parserOptions) {
+          if (scanToEnd === true) {
+            continue;
+          }
 
-        if ("ecmaVersion" in languageOptions.parserOptions) {
-            languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion;
-            delete languageOptions.parserOptions.ecmaVersion;
+          break;
         }
 
-        if ("sourceType" in languageOptions.parserOptions) {
-            languageOptions.sourceType = languageOptions.parserOptions.sourceType;
-            delete languageOptions.parserOptions.sourceType;
-        }
+        if (code === CHAR_RIGHT_CURLY_BRACE) {
+          braces--;
 
-        // check to see if we even need parserOptions anymore and remove it if not
-        if (Object.keys(languageOptions.parserOptions).length === 0) {
-            delete languageOptions.parserOptions;
+          if (braces === 0) {
+            braceEscaped = false;
+            isBrace = token.isBrace = true;
+            finished = true;
+            break;
+          }
         }
-    }
-
-    // overrides
-    if (eslintrcConfig.criteria) {
-        flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)];
-    }
+      }
 
-    // translate plugins
-    if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === "object") {
-        debug(`Translating plugins: ${eslintrcConfig.plugins}`);
+      if (scanToEnd === true) {
+        continue;
+      }
 
-        flatConfig.plugins = {};
+      break;
+    }
 
-        for (const pluginName of Object.keys(eslintrcConfig.plugins)) {
+    if (code === CHAR_FORWARD_SLASH) {
+      slashes.push(index);
+      tokens.push(token);
+      token = {
+        value: '',
+        depth: 0,
+        isGlob: false
+      };
+      if (finished === true) continue;
 
-            debug(`Translating plugin: ${pluginName}`);
-            debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`);
+      if (prev === CHAR_DOT && index === start + 1) {
+        start += 2;
+        continue;
+      }
 
-            const { definition: plugin, error } = eslintrcConfig.plugins[pluginName];
+      lastIndex = index + 1;
+      continue;
+    }
 
-            if (error) {
-                throw error;
-            }
+    if (opts.noext !== true) {
+      const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK;
 
-            flatConfig.plugins[pluginName] = plugin;
+      if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {
+        isGlob = token.isGlob = true;
+        isExtglob = token.isExtglob = true;
+        finished = true;
 
-            // create a config for any processors
-            if (plugin.processors) {
-                for (const processorName of Object.keys(plugin.processors)) {
-                    if (processorName.startsWith(".")) {
-                        debug(`Assigning processor: ${pluginName}/${processorName}`);
+        if (code === CHAR_EXCLAMATION_MARK && index === start) {
+          negatedExtglob = true;
+        }
 
-                        configs.unshift({
-                            files: [`**/*${processorName}`],
-                            processor: pluginProcessors.get(`${pluginName}/${processorName}`)
-                        });
-                    }
+        if (scanToEnd === true) {
+          while (eos() !== true && (code = advance())) {
+            if (code === CHAR_BACKWARD_SLASH) {
+              backslashes = token.backslashes = true;
+              code = advance();
+              continue;
+            }
 
-                }
+            if (code === CHAR_RIGHT_PARENTHESES) {
+              isGlob = token.isGlob = true;
+              finished = true;
+              break;
             }
+          }
+
+          continue;
         }
+
+        break;
+      }
     }
 
-    // translate env - must come after plugins
-    if (eslintrcConfig.env && typeof eslintrcConfig.env === "object") {
-        for (const envName of Object.keys(eslintrcConfig.env)) {
+    if (code === CHAR_ASTERISK) {
+      if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;
+      isGlob = token.isGlob = true;
+      finished = true;
 
-            // only add environments that are true
-            if (eslintrcConfig.env[envName]) {
-                debug(`Translating environment: ${envName}`);
+      if (scanToEnd === true) {
+        continue;
+      }
 
-                if (environments.has(envName)) {
+      break;
+    }
 
-                    // built-in environments should be defined first
-                    configs.unshift(...translateESLintRC(environments.get(envName), {
-                        resolveConfigRelativeTo,
-                        resolvePluginsRelativeTo
-                    }));
-                } else if (pluginEnvironments.has(envName)) {
+    if (code === CHAR_QUESTION_MARK) {
+      isGlob = token.isGlob = true;
+      finished = true;
 
-                    // if the environment comes from a plugin, it should come after the plugin config
-                    configs.push(...translateESLintRC(pluginEnvironments.get(envName), {
-                        resolveConfigRelativeTo,
-                        resolvePluginsRelativeTo
-                    }));
-                }
-            }
-        }
-    }
+      if (scanToEnd === true) {
+        continue;
+      }
 
-    // only add if there are actually keys in the config
-    if (Object.keys(flatConfig).length > 0) {
-        configs.push(flatConfig);
+      break;
     }
 
-    return configs;
-}
-
+    if (code === CHAR_LEFT_SQUARE_BRACKET) {
+      while (eos() !== true && (next = advance())) {
+        if (next === CHAR_BACKWARD_SLASH) {
+          backslashes = token.backslashes = true;
+          advance();
+          continue;
+        }
 
-//-----------------------------------------------------------------------------
-// Exports
-//-----------------------------------------------------------------------------
+        if (next === CHAR_RIGHT_SQUARE_BRACKET) {
+          isBracket = token.isBracket = true;
+          isGlob = token.isGlob = true;
+          finished = true;
+          break;
+        }
+      }
 
-/**
- * A compatibility class for working with configs.
- */
-class FlatCompat {
+      if (scanToEnd === true) {
+        continue;
+      }
 
-    constructor({
-        baseDirectory = process.cwd(),
-        resolvePluginsRelativeTo = baseDirectory
-    } = {}) {
-        this.baseDirectory = baseDirectory;
-        this.resolvePluginsRelativeTo = resolvePluginsRelativeTo;
-        this[cafactory] = new ConfigArrayFactory({
-            cwd: baseDirectory,
-            resolvePluginsRelativeTo,
-            eslintAllPath: path__default["default"].resolve(dirname, "../conf/eslint-all.cjs"),
-            eslintRecommendedPath: path__default["default"].resolve(dirname, "../conf/eslint-recommended.cjs")
-        });
+      break;
     }
 
-    /**
-     * Translates an ESLintRC-style config into a flag-config-style config.
-     * @param {Object} eslintrcConfig The ESLintRC-style config object.
-     * @returns {Object} A flag-config-style config object.
-     */
-    config(eslintrcConfig) {
-        const eslintrcArray = this[cafactory].create(eslintrcConfig, {
-            basePath: this.baseDirectory
-        });
-
-        const flatArray = [];
-        let hasIgnorePatterns = false;
-
-        eslintrcArray.forEach(configData => {
-            if (configData.type === "config") {
-                hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern;
-                flatArray.push(...translateESLintRC(configData, {
-                    resolveConfigRelativeTo: path__default["default"].join(this.baseDirectory, "__placeholder.js"),
-                    resolvePluginsRelativeTo: path__default["default"].join(this.resolvePluginsRelativeTo, "__placeholder.js"),
-                    pluginEnvironments: eslintrcArray.pluginEnvironments,
-                    pluginProcessors: eslintrcArray.pluginProcessors
-                }));
-            }
-        });
+    if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {
+      negated = token.negated = true;
+      start++;
+      continue;
+    }
 
-        // combine ignorePatterns to emulate ESLintRC behavior better
-        if (hasIgnorePatterns) {
-            flatArray.unshift({
-                ignores: [filePath => {
+    if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {
+      isGlob = token.isGlob = true;
 
-                    // Compute the final config for this file.
-                    // This filters config array elements by `files`/`excludedFiles` then merges the elements.
-                    const finalConfig = eslintrcArray.extractConfig(filePath);
+      if (scanToEnd === true) {
+        while (eos() !== true && (code = advance())) {
+          if (code === CHAR_LEFT_PARENTHESES) {
+            backslashes = token.backslashes = true;
+            code = advance();
+            continue;
+          }
 
-                    // Test the `ignorePattern` properties of the final config.
-                    return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath);
-                }]
-            });
+          if (code === CHAR_RIGHT_PARENTHESES) {
+            finished = true;
+            break;
+          }
         }
 
-        return flatArray;
-    }
+        continue;
+      }
 
-    /**
-     * Translates the `env` section of an ESLintRC-style config.
-     * @param {Object} envConfig The `env` section of an ESLintRC config.
-     * @returns {Object} A flag-config object representing the environments.
-     */
-    env(envConfig) {
-        return this.config({
-            env: envConfig
-        });
+      break;
     }
 
-    /**
-     * Translates the `extends` section of an ESLintRC-style config.
-     * @param {...string} configsToExtend The names of the configs to load.
-     * @returns {Object} A flag-config object representing the config.
-     */
-    extends(...configsToExtend) {
-        return this.config({
-            extends: configsToExtend
-        });
-    }
+    if (isGlob === true) {
+      finished = true;
 
-    /**
-     * Translates the `plugins` section of an ESLintRC-style config.
-     * @param {...string} plugins The names of the plugins to load.
-     * @returns {Object} A flag-config object representing the plugins.
-     */
-    plugins(...plugins) {
-        return this.config({
-            plugins
-        });
+      if (scanToEnd === true) {
+        continue;
+      }
+
+      break;
     }
-}
+  }
 
-/**
- * @fileoverview Package exports for @eslint/eslintrc
- * @author Nicholas C. Zakas
- */
+  if (opts.noext === true) {
+    isExtglob = false;
+    isGlob = false;
+  }
 
-//-----------------------------------------------------------------------------
-// Exports
-//-----------------------------------------------------------------------------
+  let base = str;
+  let prefix = '';
+  let glob = '';
 
-const Legacy = {
-    ConfigArray,
-    createConfigArrayFactoryContext: createContext,
-    CascadingConfigArrayFactory,
-    ConfigArrayFactory,
-    ConfigDependency,
-    ExtractedConfig,
-    IgnorePattern,
-    OverrideTester,
-    getUsedExtractedConfigs,
-    environments,
+  if (start > 0) {
+    prefix = str.slice(0, start);
+    str = str.slice(start);
+    lastIndex -= start;
+  }
 
-    // shared
-    ConfigOps,
-    ConfigValidator,
-    ModuleResolver,
-    naming
-};
+  if (base && isGlob === true && lastIndex > 0) {
+    base = str.slice(0, lastIndex);
+    glob = str.slice(lastIndex);
+  } else if (isGlob === true) {
+    base = '';
+    glob = str;
+  } else {
+    base = str;
+  }
 
-exports.FlatCompat = FlatCompat;
-exports.Legacy = Legacy;
-//# sourceMappingURL=eslintrc.cjs.map
+  if (base && base !== '' && base !== '/' && base !== str) {
+    if (isPathSeparator(base.charCodeAt(base.length - 1))) {
+      base = base.slice(0, -1);
+    }
+  }
 
+  if (opts.unescape === true) {
+    if (glob) glob = utils.removeBackslashes(glob);
 
-/***/ }),
-/* 884 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+    if (base && backslashes === true) {
+      base = utils.removeBackslashes(base);
+    }
+  }
 
-"use strict";
+  const state = {
+    prefix,
+    input,
+    start,
+    base,
+    glob,
+    isBrace,
+    isBracket,
+    isGlob,
+    isExtglob,
+    isGlobstar,
+    negated,
+    negatedExtglob
+  };
 
+  if (opts.tokens === true) {
+    state.maxDepth = 0;
 
-const path = __webpack_require__(429);
+    if (!isPathSeparator(code)) {
+      tokens.push(token);
+    }
 
-const resolveFrom = __webpack_require__(885);
+    state.tokens = tokens;
+  }
 
-const parentModule = __webpack_require__(887);
+  if (opts.parts === true || opts.tokens === true) {
+    let prevIndex;
 
-module.exports = moduleId => {
-  if (typeof moduleId !== 'string') {
-    throw new TypeError('Expected a string');
-  }
+    for (let idx = 0; idx < slashes.length; idx++) {
+      const n = prevIndex ? prevIndex + 1 : start;
+      const i = slashes[idx];
+      const value = input.slice(n, i);
 
-  const parentPath = parentModule(__filename);
-  const cwd = parentPath ? path.dirname(parentPath) : __dirname;
-  const filePath = resolveFrom(cwd, moduleId);
-  const oldModule = __webpack_require__.c[filePath]; // Delete itself from module parent
+      if (opts.tokens) {
+        if (idx === 0 && start !== 0) {
+          tokens[idx].isPrefix = true;
+          tokens[idx].value = prefix;
+        } else {
+          tokens[idx].value = value;
+        }
 
-  if (oldModule && oldModule.parent) {
-    let i = oldModule.parent.children.length;
+        depth(tokens[idx]);
+        state.maxDepth += tokens[idx].depth;
+      }
 
-    while (i--) {
-      if (oldModule.parent.children[i].id === filePath) {
-        oldModule.parent.children.splice(i, 1);
+      if (idx !== 0 || value !== '') {
+        parts.push(value);
       }
+
+      prevIndex = i;
     }
-  }
 
-  delete __webpack_require__.c[filePath]; // Delete module from cache
+    if (prevIndex && prevIndex + 1 < input.length) {
+      const value = input.slice(prevIndex + 1);
+      parts.push(value);
 
-  const parent = __webpack_require__.c[parentPath]; // If `filePath` and `parentPath` are the same, cache will already be deleted so we won't get a memory leak in next step
+      if (opts.tokens) {
+        tokens[tokens.length - 1].value = value;
+        depth(tokens[tokens.length - 1]);
+        state.maxDepth += tokens[tokens.length - 1].depth;
+      }
+    }
 
-  return parent === undefined ? __webpack_require__(889)(filePath) : parent.require(filePath); // In case cache doesn't have parent, fall back to normal require
+    state.slashes = slashes;
+    state.parts = parts;
+  }
+
+  return state;
 };
 
+module.exports = scan;
+
 /***/ }),
-/* 885 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 1049 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
 
 
-const path = __webpack_require__(429);
+const path = __webpack_require__(501);
+
+const win32 = process.platform === 'win32';
 
-const Module = __webpack_require__(886);
+const {
+  REGEX_BACKSLASH,
+  REGEX_REMOVE_BACKSLASH,
+  REGEX_SPECIAL_CHARS,
+  REGEX_SPECIAL_CHARS_GLOBAL
+} = __webpack_require__(1050);
 
-const fs = __webpack_require__(880);
+exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
 
-const resolveFrom = (fromDir, moduleId, silent) => {
-  if (typeof fromDir !== 'string') {
-    throw new TypeError("Expected `fromDir` to be of type `string`, got `".concat(typeof fromDir, "`"));
-  }
+exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
 
-  if (typeof moduleId !== 'string') {
-    throw new TypeError("Expected `moduleId` to be of type `string`, got `".concat(typeof moduleId, "`"));
-  }
+exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);
 
-  try {
-    fromDir = fs.realpathSync(fromDir);
-  } catch (err) {
-    if (err.code === 'ENOENT') {
-      fromDir = path.resolve(fromDir);
-    } else if (silent) {
-      return null;
-    } else {
-      throw err;
-    }
-  }
+exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
 
-  const fromFile = path.join(fromDir, 'noop.js');
+exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
 
-  const resolveFileName = () => Module._resolveFilename(moduleId, {
-    id: fromFile,
-    filename: fromFile,
-    paths: Module._nodeModulePaths(fromDir)
+exports.removeBackslashes = str => {
+  return str.replace(REGEX_REMOVE_BACKSLASH, match => {
+    return match === '\\' ? '' : match;
   });
+};
 
-  if (silent) {
-    try {
-      return resolveFileName();
-    } catch (err) {
-      return null;
-    }
+exports.supportsLookbehinds = () => {
+  const segs = process.version.slice(1).split('.').map(Number);
+
+  if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) {
+    return true;
   }
 
-  return resolveFileName();
+  return false;
 };
 
-module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
-
-module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
-
-/***/ }),
-/* 886 */
-/***/ ((module) => {
+exports.isWindows = options => {
+  if (options && typeof options.windows === 'boolean') {
+    return options.windows;
+  }
 
-"use strict";
-module.exports = require("module");
+  return win32 === true || path.sep === '\\';
+};
 
-/***/ }),
-/* 887 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+exports.escapeLast = (input, char, lastIdx) => {
+  const idx = input.lastIndexOf(char, lastIdx);
+  if (idx === -1) return input;
+  if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
+  return `${input.slice(0, idx)}\\${input.slice(idx)}`;
+};
 
-"use strict";
+exports.removePrefix = function (input) {
+  let state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let output = input;
 
+  if (output.startsWith('./')) {
+    output = output.slice(2);
+    state.prefix = './';
+  }
 
-const callsites = __webpack_require__(888);
+  return output;
+};
 
-module.exports = filepath => {
-  const stacks = callsites();
+exports.wrapOutput = function (input) {
+  let state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+  const prepend = options.contains ? '' : '^';
+  const append = options.contains ? '' : '$';
+  let output = `${prepend}(?:${input})${append}`;
 
-  if (!filepath) {
-    return stacks[2].getFileName();
+  if (state.negated === true) {
+    output = `(?:^(?!${output}).*$)`;
   }
 
-  let seenVal = false; // Skip the first stack as it's this function
-
-  stacks.shift();
+  return output;
+};
 
-  for (const stack of stacks) {
-    const parentFilepath = stack.getFileName();
+/***/ }),
+/* 1050 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-    if (typeof parentFilepath !== 'string') {
-      continue;
-    }
+"use strict";
 
-    if (parentFilepath === filepath) {
-      seenVal = true;
-      continue;
-    } // Skip native modules
 
+const path = __webpack_require__(501);
+
+const WIN_SLASH = '\\\\/';
+const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
+/**
+ * Posix glob regex
+ */
+
+const DOT_LITERAL = '\\.';
+const PLUS_LITERAL = '\\+';
+const QMARK_LITERAL = '\\?';
+const SLASH_LITERAL = '\\/';
+const ONE_CHAR = '(?=.)';
+const QMARK = '[^/]';
+const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;
+const START_ANCHOR = `(?:^|${SLASH_LITERAL})`;
+const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;
+const NO_DOT = `(?!${DOT_LITERAL})`;
+const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
+const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
+const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
+const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
+const STAR = `${QMARK}*?`;
+const POSIX_CHARS = {
+  DOT_LITERAL,
+  PLUS_LITERAL,
+  QMARK_LITERAL,
+  SLASH_LITERAL,
+  ONE_CHAR,
+  QMARK,
+  END_ANCHOR,
+  DOTS_SLASH,
+  NO_DOT,
+  NO_DOTS,
+  NO_DOT_SLASH,
+  NO_DOTS_SLASH,
+  QMARK_NO_DOT,
+  STAR,
+  START_ANCHOR
+};
+/**
+ * Windows glob regex
+ */
+
+const WINDOWS_CHARS = { ...POSIX_CHARS,
+  SLASH_LITERAL: `[${WIN_SLASH}]`,
+  QMARK: WIN_NO_SLASH,
+  STAR: `${WIN_NO_SLASH}*?`,
+  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,
+  NO_DOT: `(?!${DOT_LITERAL})`,
+  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
+  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,
+  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
+  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,
+  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,
+  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
+};
+/**
+ * POSIX Bracket Regex
+ */
+
+const POSIX_REGEX_SOURCE = {
+  alnum: 'a-zA-Z0-9',
+  alpha: 'a-zA-Z',
+  ascii: '\\x00-\\x7F',
+  blank: ' \\t',
+  cntrl: '\\x00-\\x1F\\x7F',
+  digit: '0-9',
+  graph: '\\x21-\\x7E',
+  lower: 'a-z',
+  print: '\\x20-\\x7E ',
+  punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~',
+  space: ' \\t\\r\\n\\v\\f',
+  upper: 'A-Z',
+  word: 'A-Za-z0-9_',
+  xdigit: 'A-Fa-f0-9'
+};
+module.exports = {
+  MAX_LENGTH: 1024 * 64,
+  POSIX_REGEX_SOURCE,
+  // regular expressions
+  REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
+  REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/,
+  REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/,
+  REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g,
+  REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
+  REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
+  // Replace globs with equivalent patterns to reduce parsing time.
+  REPLACEMENTS: {
+    '***': '*',
+    '**/**': '**',
+    '**/**/**': '**'
+  },
+  // Digits
+  CHAR_0: 48,
 
-    if (parentFilepath === 'module.js') {
-      continue;
-    }
+  /* 0 */
+  CHAR_9: 57,
 
-    if (seenVal && parentFilepath !== filepath) {
-      return parentFilepath;
-    }
-  }
-};
+  /* 9 */
+  // Alphabet chars.
+  CHAR_UPPERCASE_A: 65,
 
-/***/ }),
-/* 888 */
-/***/ ((module) => {
+  /* A */
+  CHAR_LOWERCASE_A: 97,
 
-"use strict";
+  /* a */
+  CHAR_UPPERCASE_Z: 90,
 
+  /* Z */
+  CHAR_LOWERCASE_Z: 122,
 
-const callsites = () => {
-  const _prepareStackTrace = Error.prepareStackTrace;
+  /* z */
+  CHAR_LEFT_PARENTHESES: 40,
 
-  Error.prepareStackTrace = (_, stack) => stack;
+  /* ( */
+  CHAR_RIGHT_PARENTHESES: 41,
 
-  const stack = new Error().stack.slice(1);
-  Error.prepareStackTrace = _prepareStackTrace;
-  return stack;
-};
+  /* ) */
+  CHAR_ASTERISK: 42,
 
-module.exports = callsites; // TODO: Remove this for the next major release
+  /* * */
+  // Non-alphabetic chars.
+  CHAR_AMPERSAND: 38,
 
-module.exports["default"] = callsites;
+  /* & */
+  CHAR_AT: 64,
 
-/***/ }),
-/* 889 */
-/***/ ((module) => {
+  /* @ */
+  CHAR_BACKWARD_SLASH: 92,
 
-function webpackEmptyContext(req) {
-       var e = new Error("Cannot find module '" + req + "'");
-       e.code = 'MODULE_NOT_FOUND';
-       throw e;
-}
-webpackEmptyContext.keys = () => ([]);
-webpackEmptyContext.resolve = webpackEmptyContext;
-webpackEmptyContext.id = 889;
-module.exports = webpackEmptyContext;
+  /* \ */
+  CHAR_CARRIAGE_RETURN: 13,
 
-/***/ }),
-/* 890 */
-/***/ ((module) => {
+  /* \r */
+  CHAR_CIRCUMFLEX_ACCENT: 94,
 
-"use strict";
+  /* ^ */
+  CHAR_COLON: 58,
 
+  /* : */
+  CHAR_COMMA: 44,
 
-const singleComment = Symbol('singleComment');
-const multiComment = Symbol('multiComment');
+  /* , */
+  CHAR_DOT: 46,
 
-const stripWithoutWhitespace = () => '';
+  /* . */
+  CHAR_DOUBLE_QUOTE: 34,
 
-const stripWithWhitespace = (string, start, end) => string.slice(start, end).replace(/\S/g, ' ');
+  /* " */
+  CHAR_EQUAL: 61,
 
-const isEscaped = (jsonString, quotePosition) => {
-  let index = quotePosition - 1;
-  let backslashCount = 0;
+  /* = */
+  CHAR_EXCLAMATION_MARK: 33,
 
-  while (jsonString[index] === '\\') {
-    index -= 1;
-    backslashCount += 1;
-  }
+  /* ! */
+  CHAR_FORM_FEED: 12,
 
-  return Boolean(backslashCount % 2);
-};
+  /* \f */
+  CHAR_FORWARD_SLASH: 47,
 
-module.exports = function (jsonString) {
-  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  /* / */
+  CHAR_GRAVE_ACCENT: 96,
 
-  if (typeof jsonString !== 'string') {
-    throw new TypeError("Expected argument `jsonString` to be a `string`, got `".concat(typeof jsonString, "`"));
-  }
+  /* ` */
+  CHAR_HASH: 35,
 
-  const strip = options.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace;
-  let insideString = false;
-  let insideComment = false;
-  let offset = 0;
-  let result = '';
+  /* # */
+  CHAR_HYPHEN_MINUS: 45,
 
-  for (let i = 0; i < jsonString.length; i++) {
-    const currentCharacter = jsonString[i];
-    const nextCharacter = jsonString[i + 1];
+  /* - */
+  CHAR_LEFT_ANGLE_BRACKET: 60,
 
-    if (!insideComment && currentCharacter === '"') {
-      const escaped = isEscaped(jsonString, i);
+  /* < */
+  CHAR_LEFT_CURLY_BRACE: 123,
 
-      if (!escaped) {
-        insideString = !insideString;
-      }
-    }
+  /* { */
+  CHAR_LEFT_SQUARE_BRACKET: 91,
 
-    if (insideString) {
-      continue;
-    }
+  /* [ */
+  CHAR_LINE_FEED: 10,
 
-    if (!insideComment && currentCharacter + nextCharacter === '//') {
-      result += jsonString.slice(offset, i);
-      offset = i;
-      insideComment = singleComment;
-      i++;
-    } else if (insideComment === singleComment && currentCharacter + nextCharacter === '\r\n') {
-      i++;
-      insideComment = false;
-      result += strip(jsonString, offset, i);
-      offset = i;
-      continue;
-    } else if (insideComment === singleComment && currentCharacter === '\n') {
-      insideComment = false;
-      result += strip(jsonString, offset, i);
-      offset = i;
-    } else if (!insideComment && currentCharacter + nextCharacter === '/*') {
-      result += jsonString.slice(offset, i);
-      offset = i;
-      insideComment = multiComment;
-      i++;
-      continue;
-    } else if (insideComment === multiComment && currentCharacter + nextCharacter === '*/') {
-      i++;
-      insideComment = false;
-      result += strip(jsonString, offset, i + 1);
-      offset = i + 1;
-      continue;
-    }
-  }
+  /* \n */
+  CHAR_NO_BREAK_SPACE: 160,
 
-  return result + (insideComment ? strip(jsonString.slice(offset)) : jsonString.slice(offset));
-};
+  /* \u00A0 */
+  CHAR_PERCENT: 37,
 
-/***/ }),
-/* 891 */
-/***/ ((module) => {
+  /* % */
+  CHAR_PLUS: 43,
 
-"use strict";
-module.exports = require("os");
+  /* + */
+  CHAR_QUESTION_MARK: 63,
 
-/***/ }),
-/* 892 */
-/***/ ((module) => {
+  /* ? */
+  CHAR_RIGHT_ANGLE_BRACKET: 62,
 
-"use strict";
-module.exports = require("url");
+  /* > */
+  CHAR_RIGHT_CURLY_BRACE: 125,
 
-/***/ }),
-/* 893 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+  /* } */
+  CHAR_RIGHT_SQUARE_BRACKET: 93,
 
-"use strict";
-/* provided dependency */ var process = __webpack_require__(494);
-/**
- * @fileoverview `FileEnumerator` class.
- *
- * `FileEnumerator` class has two responsibilities:
- *
- * 1. Find target files by processing glob patterns.
- * 2. Tie each target file and appropriate configuration.
- *
- * It provides a method:
- *
- * - `iterateFiles(patterns)`
- *     Iterate files which are matched by given patterns together with the
- *     corresponded configuration. This is for `CLIEngine#executeOnFiles()`.
- *     While iterating files, it loads the configuration file of each directory
- *     before iterate files on the directory, so we can use the configuration
- *     files to determine target files.
- *
- * @example
- * const enumerator = new FileEnumerator();
- * const linter = new Linter();
- *
- * for (const { config, filePath } of enumerator.iterateFiles(["*.js"])) {
- *     const code = fs.readFileSync(filePath, "utf8");
- *     const messages = linter.verify(code, config, filePath);
- *
- *     console.log(messages);
- * }
- *
- * @author Toru Nagashima <https://github.com/mysticatea>
- */
- //------------------------------------------------------------------------------
-// Requirements
-//------------------------------------------------------------------------------
+  /* ] */
+  CHAR_SEMICOLON: 59,
 
-const fs = __webpack_require__(880);
+  /* ; */
+  CHAR_SINGLE_QUOTE: 39,
 
-const path = __webpack_require__(429);
+  /* ' */
+  CHAR_SPACE: 32,
 
-const getGlobParent = __webpack_require__(894);
+  /*   */
+  CHAR_TAB: 9,
 
-const isGlob = __webpack_require__(895);
+  /* \t */
+  CHAR_UNDERSCORE: 95,
 
-const escapeRegExp = __webpack_require__(525);
+  /* _ */
+  CHAR_VERTICAL_LINE: 124,
 
-const {
-  Minimatch
-} = __webpack_require__(862);
+  /* | */
+  CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,
 
-const {
-  Legacy: {
-    IgnorePattern,
-    CascadingConfigArrayFactory
-  }
-} = __webpack_require__(883);
+  /* \uFEFF */
+  SEP: path.sep,
 
-const debug = __webpack_require__(496)("eslint:file-enumerator"); //------------------------------------------------------------------------------
-// Helpers
-//------------------------------------------------------------------------------
+  /**
+   * Create EXTGLOB_CHARS
+   */
+  extglobChars(chars) {
+    return {
+      '!': {
+        type: 'negate',
+        open: '(?:(?!(?:',
+        close: `))${chars.STAR})`
+      },
+      '?': {
+        type: 'qmark',
+        open: '(?:',
+        close: ')?'
+      },
+      '+': {
+        type: 'plus',
+        open: '(?:',
+        close: ')+'
+      },
+      '*': {
+        type: 'star',
+        open: '(?:',
+        close: ')*'
+      },
+      '@': {
+        type: 'at',
+        open: '(?:',
+        close: ')'
+      }
+    };
+  },
 
+  /**
+   * Create GLOB_CHARS
+   */
+  globChars(win32) {
+    return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;
+  }
 
-const minimatchOpts = {
-  dot: true,
-  matchBase: true
 };
-const dotfilesPattern = /(?:(?:^\.)|(?:[/\\]\.))[^/\\.].*/u;
-const NONE = 0;
-const IGNORED_SILENTLY = 1;
-const IGNORED = 2; // For VSCode intellisense
 
-/** @typedef {ReturnType<CascadingConfigArrayFactory.getConfigArrayForFile>} ConfigArray */
+/***/ }),
+/* 1051 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/**
- * @typedef {Object} FileEnumeratorOptions
- * @property {CascadingConfigArrayFactory} [configArrayFactory] The factory for config arrays.
- * @property {string} [cwd] The base directory to start lookup.
- * @property {string[]} [extensions] The extensions to match files for directory patterns.
- * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file.
- * @property {boolean} [ignore] The flag to check ignored files.
- * @property {string[]} [rulePaths] The value of `--rulesdir` option.
- */
+"use strict";
 
-/**
- * @typedef {Object} FileAndConfig
- * @property {string} filePath The path to a target file.
- * @property {ConfigArray} config The config entries of that file.
- * @property {boolean} ignored If `true` then this file should be ignored and warned because it was directly specified.
- */
 
-/**
- * @typedef {Object} FileEntry
- * @property {string} filePath The path to a target file.
- * @property {ConfigArray} config The config entries of that file.
- * @property {NONE|IGNORED_SILENTLY|IGNORED} flag The flag.
- * - `NONE` means the file is a target file.
- * - `IGNORED_SILENTLY` means the file should be ignored silently.
- * - `IGNORED` means the file should be ignored and warned because it was directly specified.
- */
+const constants = __webpack_require__(1050);
 
+const utils = __webpack_require__(1049);
 /**
- * @typedef {Object} FileEnumeratorInternalSlots
- * @property {CascadingConfigArrayFactory} configArrayFactory The factory for config arrays.
- * @property {string} cwd The base directory to start lookup.
- * @property {RegExp|null} extensionRegExp The RegExp to test if a string ends with specific file extensions.
- * @property {boolean} globInputPaths Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file.
- * @property {boolean} ignoreFlag The flag to check ignored files.
- * @property {(filePath:string, dot:boolean) => boolean} defaultIgnores The default predicate function to ignore files.
+ * Constants
  */
 
-/** @type {WeakMap<FileEnumerator, FileEnumeratorInternalSlots>} */
 
-const internalSlotsMap = new WeakMap();
+const {
+  MAX_LENGTH,
+  POSIX_REGEX_SOURCE,
+  REGEX_NON_SPECIAL_CHARS,
+  REGEX_SPECIAL_CHARS_BACKREF,
+  REPLACEMENTS
+} = constants;
 /**
- * Check if a string is a glob pattern or not.
- * @param {string} pattern A glob pattern.
- * @returns {boolean} `true` if the string is a glob pattern.
+ * Helpers
  */
 
-function isGlobPattern(pattern) {
-  return isGlob(path.sep === "\\" ? pattern.replace(/\\/gu, "/") : pattern);
-}
-/**
- * Get stats of a given path.
- * @param {string} filePath The path to target file.
- * @throws {Error} As may be thrown by `fs.statSync`.
- * @returns {fs.Stats|null} The stats.
- * @private
- */
+const expandRange = (args, options) => {
+  if (typeof options.expandRange === 'function') {
+    return options.expandRange(...args, options);
+  }
 
+  args.sort();
+  const value = `[${args.join('-')}]`;
 
-function statSafeSync(filePath) {
   try {
-    return fs.statSync(filePath);
-  } catch (error) {
-    /* istanbul ignore next */
-    if (error.code !== "ENOENT") {
-      throw error;
-    }
-
-    return null;
+    /* eslint-disable-next-line no-new */
+    new RegExp(value);
+  } catch (ex) {
+    return args.map(v => utils.escapeRegex(v)).join('..');
   }
-}
+
+  return value;
+};
 /**
- * Get filenames in a given path to a directory.
- * @param {string} directoryPath The path to target directory.
- * @throws {Error} As may be thrown by `fs.readdirSync`.
- * @returns {import("fs").Dirent[]} The filenames.
- * @private
+ * Create the message for a syntax error
  */
 
 
-function readdirSafeSync(directoryPath) {
-  try {
-    return fs.readdirSync(directoryPath, {
-      withFileTypes: true
-    });
-  } catch (error) {
-    /* istanbul ignore next */
-    if (error.code !== "ENOENT") {
-      throw error;
-    }
-
-    return [];
-  }
-}
+const syntaxError = (type, char) => {
+  return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
+};
 /**
- * Create a `RegExp` object to detect extensions.
- * @param {string[] | null} extensions The extensions to create.
- * @returns {RegExp | null} The created `RegExp` object or null.
+ * Parse the given input string.
+ * @param {String} input
+ * @param {Object} options
+ * @return {Object}
  */
 
 
-function createExtensionRegExp(extensions) {
-  if (extensions) {
-    const normalizedExts = extensions.map(ext => escapeRegExp(ext.startsWith(".") ? ext.slice(1) : ext));
-    return new RegExp(".\\.(?:".concat(normalizedExts.join("|"), ")$"), "u");
+const parse = (input, options) => {
+  if (typeof input !== 'string') {
+    throw new TypeError('Expected a string');
   }
 
-  return null;
-}
-/**
- * The error type when no files match a glob.
- */
-
+  input = REPLACEMENTS[input] || input;
+  const opts = { ...options
+  };
+  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
+  let len = input.length;
 
-class NoFilesFoundError extends Error {
-  /**
-   * @param {string} pattern The glob pattern which was not found.
-   * @param {boolean} globDisabled If `true` then the pattern was a glob pattern, but glob was disabled.
-   */
-  constructor(pattern, globDisabled) {
-    super("No files matching '".concat(pattern, "' were found").concat(globDisabled ? " (glob was disabled)" : "", "."));
-    this.messageTemplate = "file-not-found";
-    this.messageData = {
-      pattern,
-      globDisabled
-    };
+  if (len > max) {
+    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
   }
 
-}
-/**
- * The error type when there are files matched by a glob, but all of them have been ignored.
- */
+  const bos = {
+    type: 'bos',
+    value: '',
+    output: opts.prepend || ''
+  };
+  const tokens = [bos];
+  const capture = opts.capture ? '' : '?:';
+  const win32 = utils.isWindows(options); // create constants based on platform, for windows or posix
 
+  const PLATFORM_CHARS = constants.globChars(win32);
+  const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);
+  const {
+    DOT_LITERAL,
+    PLUS_LITERAL,
+    SLASH_LITERAL,
+    ONE_CHAR,
+    DOTS_SLASH,
+    NO_DOT,
+    NO_DOT_SLASH,
+    NO_DOTS_SLASH,
+    QMARK,
+    QMARK_NO_DOT,
+    STAR,
+    START_ANCHOR
+  } = PLATFORM_CHARS;
+
+  const globstar = opts => {
+    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
+  };
 
-class AllFilesIgnoredError extends Error {
+  const nodot = opts.dot ? '' : NO_DOT;
+  const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;
+  let star = opts.bash === true ? globstar(opts) : STAR;
+
+  if (opts.capture) {
+    star = `(${star})`;
+  } // minimatch options support
+
+
+  if (typeof opts.noext === 'boolean') {
+    opts.noextglob = opts.noext;
+  }
+
+  const state = {
+    input,
+    index: -1,
+    start: 0,
+    dot: opts.dot === true,
+    consumed: '',
+    output: '',
+    prefix: '',
+    backtrack: false,
+    negated: false,
+    brackets: 0,
+    braces: 0,
+    parens: 0,
+    quotes: 0,
+    globstar: false,
+    tokens
+  };
+  input = utils.removePrefix(input, state);
+  len = input.length;
+  const extglobs = [];
+  const braces = [];
+  const stack = [];
+  let prev = bos;
+  let value;
   /**
-   * @param {string} pattern The glob pattern which was not found.
+   * Tokenizing helpers
    */
-  constructor(pattern) {
-    super("All files matched by '".concat(pattern, "' are ignored."));
-    this.messageTemplate = "all-files-ignored";
-    this.messageData = {
-      pattern
-    };
-  }
 
-}
-/**
- * This class provides the functionality that enumerates every file which is
- * matched by given glob patterns and that configuration.
- */
+  const eos = () => state.index === len - 1;
 
+  const peek = state.peek = function () {
+    let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
+    return input[state.index + n];
+  };
 
-class FileEnumerator {
-  /**
-   * Initialize this enumerator.
-   * @param {FileEnumeratorOptions} options The options.
-   */
-  constructor() {
-    let {
-      cwd = process.cwd(),
-      configArrayFactory = new CascadingConfigArrayFactory({
-        cwd,
-        eslintRecommendedPath: path.resolve(__dirname, "../../conf/eslint-recommended.js"),
-        eslintAllPath: path.resolve(__dirname, "../../conf/eslint-all.js")
-      }),
-      extensions = null,
-      globInputPaths = true,
-      errorOnUnmatchedPattern = true,
-      ignore = true
-    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-    internalSlotsMap.set(this, {
-      configArrayFactory,
-      cwd,
-      defaultIgnores: IgnorePattern.createDefaultIgnore(cwd),
-      extensionRegExp: createExtensionRegExp(extensions),
-      globInputPaths,
-      errorOnUnmatchedPattern,
-      ignoreFlag: ignore
-    });
-  }
+  const advance = state.advance = () => input[++state.index] || '';
+
+  const remaining = () => input.slice(state.index + 1);
+
+  const consume = function () {
+    let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+    let num = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+    state.consumed += value;
+    state.index += num;
+  };
+
+  const append = token => {
+    state.output += token.output != null ? token.output : token.value;
+    consume(token.value);
+  };
+
+  const negate = () => {
+    let count = 1;
+
+    while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {
+      advance();
+      state.start++;
+      count++;
+    }
+
+    if (count % 2 === 0) {
+      return false;
+    }
+
+    state.negated = true;
+    state.start++;
+    return true;
+  };
+
+  const increment = type => {
+    state[type]++;
+    stack.push(type);
+  };
+
+  const decrement = type => {
+    state[type]--;
+    stack.pop();
+  };
   /**
-   * Check if a given file is target or not.
-   * @param {string} filePath The path to a candidate file.
-   * @param {ConfigArray} [providedConfig] Optional. The configuration for the file.
-   * @returns {boolean} `true` if the file is a target.
+   * Push tokens onto the tokens array. This helper speeds up
+   * tokenizing by 1) helping us avoid backtracking as much as possible,
+   * and 2) helping us avoid creating extra tokens when consecutive
+   * characters are plain text. This improves performance and simplifies
+   * lookbehinds.
    */
 
 
-  isTargetPath(filePath, providedConfig) {
-    const {
-      configArrayFactory,
-      extensionRegExp
-    } = internalSlotsMap.get(this); // If `--ext` option is present, use it.
+  const push = tok => {
+    if (prev.type === 'globstar') {
+      const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');
+      const isExtglob = tok.extglob === true || extglobs.length && (tok.type === 'pipe' || tok.type === 'paren');
 
-    if (extensionRegExp) {
-      return extensionRegExp.test(filePath);
-    } // `.js` file is target by default.
+      if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {
+        state.output = state.output.slice(0, -prev.output.length);
+        prev.type = 'star';
+        prev.value = '*';
+        prev.output = star;
+        state.output += prev.output;
+      }
+    }
+
+    if (extglobs.length && tok.type !== 'paren') {
+      extglobs[extglobs.length - 1].inner += tok.value;
+    }
 
+    if (tok.value || tok.output) append(tok);
 
-    if (filePath.endsWith(".js")) {
-      return true;
-    } // use `overrides[].files` to check additional targets.
+    if (prev && prev.type === 'text' && tok.type === 'text') {
+      prev.value += tok.value;
+      prev.output = (prev.output || '') + tok.value;
+      return;
+    }
 
+    tok.prev = prev;
+    tokens.push(tok);
+    prev = tok;
+  };
 
-    const config = providedConfig || configArrayFactory.getConfigArrayForFile(filePath, {
-      ignoreNotFoundError: true
+  const extglobOpen = (type, value) => {
+    const token = { ...EXTGLOB_CHARS[value],
+      conditions: 1,
+      inner: ''
+    };
+    token.prev = prev;
+    token.parens = state.parens;
+    token.output = state.output;
+    const output = (opts.capture ? '(' : '') + token.open;
+    increment('parens');
+    push({
+      type,
+      value,
+      output: state.output ? '' : ONE_CHAR
     });
-    return config.isAdditionalTargetPath(filePath);
-  }
-  /**
-   * Iterate files which are matched by given glob patterns.
-   * @param {string|string[]} patternOrPatterns The glob patterns to iterate files.
-   * @throws {NoFilesFoundError|AllFilesIgnoredError} On an unmatched pattern.
-   * @returns {IterableIterator<FileAndConfig>} The found files.
-   */
+    push({
+      type: 'paren',
+      extglob: true,
+      value: advance(),
+      output
+    });
+    extglobs.push(token);
+  };
 
+  const extglobClose = token => {
+    let output = token.close + (opts.capture ? ')' : '');
+    let rest;
 
-  *iterateFiles(patternOrPatterns) {
-    const {
-      globInputPaths,
-      errorOnUnmatchedPattern
-    } = internalSlotsMap.get(this);
-    const patterns = Array.isArray(patternOrPatterns) ? patternOrPatterns : [patternOrPatterns];
-    debug("Start to iterate files: %o", patterns); // The set of paths to remove duplicate.
+    if (token.type === 'negate') {
+      let extglobStar = star;
 
-    const set = new Set();
+      if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {
+        extglobStar = globstar(opts);
+      }
 
-    for (const pattern of patterns) {
-      let foundRegardlessOfIgnored = false;
-      let found = false; // Skip empty string.
+      if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) {
+        output = token.close = `)$))${extglobStar}`;
+      }
 
-      if (!pattern) {
-        continue;
-      } // Iterate files of this pattern.
+      if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
+        // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.
+        // In this case, we need to parse the string and use it in the output of the original pattern.
+        // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.
+        //
+        // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.
+        const expression = parse(rest, { ...options,
+          fastpaths: false
+        }).output;
+        output = token.close = `)${expression})${extglobStar})`;
+      }
 
+      if (token.prev.type === 'bos') {
+        state.negatedExtglob = true;
+      }
+    }
 
-      for (const {
-        config,
-        filePath,
-        flag
-      } of this._iterateFiles(pattern)) {
-        foundRegardlessOfIgnored = true;
+    push({
+      type: 'paren',
+      extglob: true,
+      value,
+      output
+    });
+    decrement('parens');
+  };
+  /**
+   * Fast paths
+   */
 
-        if (flag === IGNORED_SILENTLY) {
-          continue;
-        }
 
-        found = true; // Remove duplicate paths while yielding paths.
+  if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) {
+    let backslashes = false;
+    let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {
+      if (first === '\\') {
+        backslashes = true;
+        return m;
+      }
 
-        if (!set.has(filePath)) {
-          set.add(filePath);
-          yield {
-            config,
-            filePath,
-            ignored: flag === IGNORED
-          };
+      if (first === '?') {
+        if (esc) {
+          return esc + first + (rest ? QMARK.repeat(rest.length) : '');
         }
-      } // Raise an error if any files were not found.
 
-
-      if (errorOnUnmatchedPattern) {
-        if (!foundRegardlessOfIgnored) {
-          throw new NoFilesFoundError(pattern, !globInputPaths && isGlob(pattern));
+        if (index === 0) {
+          return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');
         }
 
-        if (!found) {
-          throw new AllFilesIgnoredError(pattern);
-        }
+        return QMARK.repeat(chars.length);
       }
-    }
 
-    debug("Complete iterating files: ".concat(JSON.stringify(patterns)));
-  }
-  /**
-   * Iterate files which are matched by a given glob pattern.
-   * @param {string} pattern The glob pattern to iterate files.
-   * @returns {IterableIterator<FileEntry>} The found files.
-   */
+      if (first === '.') {
+        return DOT_LITERAL.repeat(chars.length);
+      }
 
+      if (first === '*') {
+        if (esc) {
+          return esc + first + (rest ? star : '');
+        }
 
-  _iterateFiles(pattern) {
-    const {
-      cwd,
-      globInputPaths
-    } = internalSlotsMap.get(this);
-    const absolutePath = path.resolve(cwd, pattern);
-    const isDot = dotfilesPattern.test(pattern);
-    const stat = statSafeSync(absolutePath);
+        return star;
+      }
 
-    if (stat && stat.isDirectory()) {
-      return this._iterateFilesWithDirectory(absolutePath, isDot);
-    }
+      return esc ? m : `\\${m}`;
+    });
 
-    if (stat && stat.isFile()) {
-      return this._iterateFilesWithFile(absolutePath);
+    if (backslashes === true) {
+      if (opts.unescape === true) {
+        output = output.replace(/\\/g, '');
+      } else {
+        output = output.replace(/\\+/g, m => {
+          return m.length % 2 === 0 ? '\\\\' : m ? '\\' : '';
+        });
+      }
     }
 
-    if (globInputPaths && isGlobPattern(pattern)) {
-      return this._iterateFilesWithGlob(absolutePath, isDot);
+    if (output === input && opts.contains === true) {
+      state.output = input;
+      return state;
     }
 
-    return [];
+    state.output = utils.wrapOutput(output, state, options);
+    return state;
   }
   /**
-   * Iterate a file which is matched by a given path.
-   * @param {string} filePath The path to the target file.
-   * @returns {IterableIterator<FileEntry>} The found files.
-   * @private
+   * Tokenize input until we reach end-of-string
    */
 
 
-  _iterateFilesWithFile(filePath) {
-    debug("File: ".concat(filePath));
-    const {
-      configArrayFactory
-    } = internalSlotsMap.get(this);
-    const config = configArrayFactory.getConfigArrayForFile(filePath);
+  while (!eos()) {
+    value = advance();
 
-    const ignored = this._isIgnoredFile(filePath, {
-      config,
-      direct: true
-    });
+    if (value === '\u0000') {
+      continue;
+    }
+    /**
+     * Escaped characters
+     */
 
-    const flag = ignored ? IGNORED : NONE;
-    return [{
-      config,
-      filePath,
-      flag
-    }];
-  }
-  /**
-   * Iterate files in a given path.
-   * @param {string} directoryPath The path to the target directory.
-   * @param {boolean} dotfiles If `true` then it doesn't skip dot files by default.
-   * @returns {IterableIterator<FileEntry>} The found files.
-   * @private
-   */
 
+    if (value === '\\') {
+      const next = peek();
 
-  _iterateFilesWithDirectory(directoryPath, dotfiles) {
-    debug("Directory: ".concat(directoryPath));
-    return this._iterateFilesRecursive(directoryPath, {
-      dotfiles,
-      recursive: true,
-      selector: null
-    });
-  }
-  /**
-   * Iterate files which are matched by a given glob pattern.
-   * @param {string} pattern The glob pattern to iterate files.
-   * @param {boolean} dotfiles If `true` then it doesn't skip dot files by default.
-   * @returns {IterableIterator<FileEntry>} The found files.
-   * @private
-   */
+      if (next === '/' && opts.bash !== true) {
+        continue;
+      }
 
+      if (next === '.' || next === ';') {
+        continue;
+      }
 
-  _iterateFilesWithGlob(pattern, dotfiles) {
-    debug("Glob: ".concat(pattern));
-    const directoryPath = path.resolve(getGlobParent(pattern));
-    const globPart = pattern.slice(directoryPath.length + 1);
-    /*
-     * recursive if there are `**` or path separators in the glob part.
-     * Otherwise, patterns such as `src/*.js`, it doesn't need recursive.
-     */
+      if (!next) {
+        value += '\\';
+        push({
+          type: 'text',
+          value
+        });
+        continue;
+      } // collapse slashes to reduce potential for exploits
 
-    const recursive = /\*\*|\/|\\/u.test(globPart);
-    const selector = new Minimatch(pattern, minimatchOpts);
-    debug("recursive? ".concat(recursive));
-    return this._iterateFilesRecursive(directoryPath, {
-      dotfiles,
-      recursive,
-      selector
-    });
-  }
-  /**
-   * Iterate files in a given path.
-   * @param {string} directoryPath The path to the target directory.
-   * @param {Object} options The options to iterate files.
-   * @param {boolean} [options.dotfiles] If `true` then it doesn't skip dot files by default.
-   * @param {boolean} [options.recursive] If `true` then it dives into sub directories.
-   * @param {InstanceType<Minimatch>} [options.selector] The matcher to choose files.
-   * @returns {IterableIterator<FileEntry>} The found files.
-   * @private
-   */
 
+      const match = /^\\+/.exec(remaining());
+      let slashes = 0;
 
-  *_iterateFilesRecursive(directoryPath, options) {
-    debug("Enter the directory: ".concat(directoryPath));
-    const {
-      configArrayFactory
-    } = internalSlotsMap.get(this);
-    /** @type {ConfigArray|null} */
+      if (match && match[0].length > 2) {
+        slashes = match[0].length;
+        state.index += slashes;
 
-    let config = null; // Enumerate the files of this directory.
+        if (slashes % 2 !== 0) {
+          value += '\\';
+        }
+      }
 
-    for (const entry of readdirSafeSync(directoryPath)) {
-      const filePath = path.join(directoryPath, entry.name);
-      const fileInfo = entry.isSymbolicLink() ? statSafeSync(filePath) : entry;
+      if (opts.unescape === true) {
+        value = advance();
+      } else {
+        value += advance();
+      }
 
-      if (!fileInfo) {
+      if (state.brackets === 0) {
+        push({
+          type: 'text',
+          value
+        });
         continue;
-      } // Check if the file is matched.
+      }
+    }
+    /**
+     * If we're inside a regex character class, continue
+     * until we reach the closing bracket.
+     */
 
 
-      if (fileInfo.isFile()) {
-        if (!config) {
-          config = configArrayFactory.getConfigArrayForFile(filePath,
-          /*
-           * We must ignore `ConfigurationNotFoundError` at this
-           * point because we don't know if target files exist in
-           * this directory.
-           */
-          {
-            ignoreNotFoundError: true
-          });
-        }
+    if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {
+      if (opts.posix !== false && value === ':') {
+        const inner = prev.value.slice(1);
 
-        const matched = options.selector // Started with a glob pattern; choose by the pattern.
-        ? options.selector.match(filePath) // Started with a directory path; choose by file extensions.
-        : this.isTargetPath(filePath, config);
+        if (inner.includes('[')) {
+          prev.posix = true;
 
-        if (matched) {
-          const ignored = this._isIgnoredFile(filePath, { ...options,
-            config
-          });
+          if (inner.includes(':')) {
+            const idx = prev.value.lastIndexOf('[');
+            const pre = prev.value.slice(0, idx);
+            const rest = prev.value.slice(idx + 2);
+            const posix = POSIX_REGEX_SOURCE[rest];
 
-          const flag = ignored ? IGNORED_SILENTLY : NONE;
-          debug("Yield: ".concat(entry.name).concat(ignored ? " but ignored" : ""));
-          yield {
-            config: configArrayFactory.getConfigArrayForFile(filePath),
-            filePath,
-            flag
-          };
-        } else {
-          debug("Didn't match: ".concat(entry.name));
-        } // Dive into the sub directory.
+            if (posix) {
+              prev.value = pre + posix;
+              state.backtrack = true;
+              advance();
 
-      } else if (options.recursive && fileInfo.isDirectory()) {
-        if (!config) {
-          config = configArrayFactory.getConfigArrayForFile(filePath, {
-            ignoreNotFoundError: true
-          });
+              if (!bos.output && tokens.indexOf(prev) === 1) {
+                bos.output = ONE_CHAR;
+              }
+
+              continue;
+            }
+          }
         }
+      }
 
-        const ignored = this._isIgnoredFile(filePath + path.sep, { ...options,
-          config
-        });
+      if (value === '[' && peek() !== ':' || value === '-' && peek() === ']') {
+        value = `\\${value}`;
+      }
 
-        if (!ignored) {
-          yield* this._iterateFilesRecursive(filePath, options);
-        }
+      if (value === ']' && (prev.value === '[' || prev.value === '[^')) {
+        value = `\\${value}`;
       }
-    }
 
-    debug("Leave the directory: ".concat(directoryPath));
-  }
-  /**
-   * Check if a given file should be ignored.
-   * @param {string} filePath The path to a file to check.
-   * @param {Object} options Options
-   * @param {ConfigArray} [options.config] The config for this file.
-   * @param {boolean} [options.dotfiles] If `true` then this is not ignore dot files by default.
-   * @param {boolean} [options.direct] If `true` then this is a direct specified file.
-   * @returns {boolean} `true` if the file should be ignored.
-   * @private
-   */
+      if (opts.posix === true && value === '!' && prev.value === '[') {
+        value = '^';
+      }
 
+      prev.value += value;
+      append({
+        value
+      });
+      continue;
+    }
+    /**
+     * If we're inside a quoted string, continue
+     * until we reach the closing double quote.
+     */
 
-  _isIgnoredFile(filePath, _ref) {
-    let {
-      config: providedConfig,
-      dotfiles = false,
-      direct = false
-    } = _ref;
-    const {
-      configArrayFactory,
-      defaultIgnores,
-      ignoreFlag
-    } = internalSlotsMap.get(this);
 
-    if (ignoreFlag) {
-      const config = providedConfig || configArrayFactory.getConfigArrayForFile(filePath, {
-        ignoreNotFoundError: true
+    if (state.quotes === 1 && value !== '"') {
+      value = utils.escapeRegex(value);
+      prev.value += value;
+      append({
+        value
       });
-      const ignores = config.extractConfig(filePath).ignores || defaultIgnores;
-      return ignores(filePath, dotfiles);
+      continue;
     }
+    /**
+     * Double quotes
+     */
 
-    return !direct && defaultIgnores(filePath, dotfiles);
-  }
 
-} //------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+    if (value === '"') {
+      state.quotes = state.quotes === 1 ? 0 : 1;
 
+      if (opts.keepQuotes === true) {
+        push({
+          type: 'text',
+          value
+        });
+      }
 
-module.exports = {
-  FileEnumerator
-};
+      continue;
+    }
+    /**
+     * Parentheses
+     */
 
-/***/ }),
-/* 894 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-"use strict";
+    if (value === '(') {
+      increment('parens');
+      push({
+        type: 'paren',
+        value
+      });
+      continue;
+    }
 
+    if (value === ')') {
+      if (state.parens === 0 && opts.strictBrackets === true) {
+        throw new SyntaxError(syntaxError('opening', '('));
+      }
 
-var isGlob = __webpack_require__(895);
+      const extglob = extglobs[extglobs.length - 1];
 
-var pathPosixDirname = (__webpack_require__(429).posix.dirname);
+      if (extglob && state.parens === extglob.parens + 1) {
+        extglobClose(extglobs.pop());
+        continue;
+      }
 
-var isWin32 = (__webpack_require__(891).platform)() === 'win32';
-var slash = '/';
-var backslash = /\\/g;
-var escaped = /\\([!*?|[\](){}])/g;
-/**
- * @param {string} str
- * @param {Object} opts
- * @param {boolean} [opts.flipBackslashes=true]
- */
+      push({
+        type: 'paren',
+        value,
+        output: state.parens ? ')' : '\\)'
+      });
+      decrement('parens');
+      continue;
+    }
+    /**
+     * Square brackets
+     */
 
-module.exports = function globParent(str, opts) {
-  var options = Object.assign({
-    flipBackslashes: true
-  }, opts); // flip windows path separators
 
-  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {
-    str = str.replace(backslash, slash);
-  } // special case for strings ending in enclosure containing path separator
+    if (value === '[') {
+      if (opts.nobracket === true || !remaining().includes(']')) {
+        if (opts.nobracket !== true && opts.strictBrackets === true) {
+          throw new SyntaxError(syntaxError('closing', ']'));
+        }
 
+        value = `\\${value}`;
+      } else {
+        increment('brackets');
+      }
 
-  if (isEnclosure(str)) {
-    str += slash;
-  } // preserves full path in case of trailing path separator
+      push({
+        type: 'bracket',
+        value
+      });
+      continue;
+    }
 
+    if (value === ']') {
+      if (opts.nobracket === true || prev && prev.type === 'bracket' && prev.value.length === 1) {
+        push({
+          type: 'text',
+          value,
+          output: `\\${value}`
+        });
+        continue;
+      }
 
-  str += 'a'; // remove path parts that are globby
+      if (state.brackets === 0) {
+        if (opts.strictBrackets === true) {
+          throw new SyntaxError(syntaxError('opening', '['));
+        }
 
-  do {
-    str = pathPosixDirname(str);
-  } while (isGlobby(str)); // remove escape chars and return result
+        push({
+          type: 'text',
+          value,
+          output: `\\${value}`
+        });
+        continue;
+      }
 
+      decrement('brackets');
+      const prevValue = prev.value.slice(1);
 
-  return str.replace(escaped, '$1');
-};
+      if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {
+        value = `/${value}`;
+      }
 
-function isEnclosure(str) {
-  var lastChar = str.slice(-1);
-  var enclosureStart;
+      prev.value += value;
+      append({
+        value
+      }); // when literal brackets are explicitly disabled
+      // assume we should match with a regex character class
 
-  switch (lastChar) {
-    case '}':
-      enclosureStart = '{';
-      break;
+      if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {
+        continue;
+      }
 
-    case ']':
-      enclosureStart = '[';
-      break;
+      const escaped = utils.escapeRegex(prev.value);
+      state.output = state.output.slice(0, -prev.value.length); // when literal brackets are explicitly enabled
+      // assume we should escape the brackets to match literal characters
 
-    default:
-      return false;
-  }
+      if (opts.literalBrackets === true) {
+        state.output += escaped;
+        prev.value = escaped;
+        continue;
+      } // when the user specifies nothing, try to match both
 
-  var foundIndex = str.indexOf(enclosureStart);
 
-  if (foundIndex < 0) {
-    return false;
-  }
+      prev.value = `(${capture}${escaped}|${prev.value})`;
+      state.output += prev.value;
+      continue;
+    }
+    /**
+     * Braces
+     */
 
-  return str.slice(foundIndex + 1, -1).includes(slash);
-}
 
-function isGlobby(str) {
-  if (/\([^()]+$/.test(str)) {
-    return true;
-  }
+    if (value === '{' && opts.nobrace !== true) {
+      increment('braces');
+      const open = {
+        type: 'brace',
+        value,
+        output: '(',
+        outputIndex: state.output.length,
+        tokensIndex: state.tokens.length
+      };
+      braces.push(open);
+      push(open);
+      continue;
+    }
 
-  if (str[0] === '{' || str[0] === '[') {
-    return true;
-  }
+    if (value === '}') {
+      const brace = braces[braces.length - 1];
 
-  if (/[^\\][{[]/.test(str)) {
-    return true;
-  }
+      if (opts.nobrace === true || !brace) {
+        push({
+          type: 'text',
+          value,
+          output: value
+        });
+        continue;
+      }
 
-  return isGlob(str);
-}
+      let output = ')';
 
-/***/ }),
-/* 895 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+      if (brace.dots === true) {
+        const arr = tokens.slice();
+        const range = [];
 
-/*!
- * is-glob <https://github.com/jonschlinkert/is-glob>
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-var isExtglob = __webpack_require__(896);
+        for (let i = arr.length - 1; i >= 0; i--) {
+          tokens.pop();
 
-var chars = {
-  '{': '}',
-  '(': ')',
-  '[': ']'
-};
+          if (arr[i].type === 'brace') {
+            break;
+          }
 
-var strictCheck = function (str) {
-  if (str[0] === '!') {
-    return true;
-  }
+          if (arr[i].type !== 'dots') {
+            range.unshift(arr[i].value);
+          }
+        }
 
-  var index = 0;
-  var pipeIndex = -2;
-  var closeSquareIndex = -2;
-  var closeCurlyIndex = -2;
-  var closeParenIndex = -2;
-  var backSlashIndex = -2;
+        output = expandRange(range, opts);
+        state.backtrack = true;
+      }
 
-  while (index < str.length) {
-    if (str[index] === '*') {
-      return true;
-    }
+      if (brace.comma !== true && brace.dots !== true) {
+        const out = state.output.slice(0, brace.outputIndex);
+        const toks = state.tokens.slice(brace.tokensIndex);
+        brace.value = brace.output = '\\{';
+        value = output = '\\}';
+        state.output = out;
 
-    if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) {
-      return true;
+        for (const t of toks) {
+          state.output += t.output || t.value;
+        }
+      }
+
+      push({
+        type: 'brace',
+        value,
+        output
+      });
+      decrement('braces');
+      braces.pop();
+      continue;
     }
+    /**
+     * Pipes
+     */
 
-    if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {
-      if (closeSquareIndex < index) {
-        closeSquareIndex = str.indexOf(']', index);
+
+    if (value === '|') {
+      if (extglobs.length > 0) {
+        extglobs[extglobs.length - 1].conditions++;
       }
 
-      if (closeSquareIndex > index) {
-        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
-          return true;
-        }
+      push({
+        type: 'text',
+        value
+      });
+      continue;
+    }
+    /**
+     * Commas
+     */
 
-        backSlashIndex = str.indexOf('\\', index);
 
-        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
-          return true;
-        }
+    if (value === ',') {
+      let output = value;
+      const brace = braces[braces.length - 1];
+
+      if (brace && stack[stack.length - 1] === 'braces') {
+        brace.comma = true;
+        output = '|';
       }
+
+      push({
+        type: 'comma',
+        value,
+        output
+      });
+      continue;
     }
+    /**
+     * Slashes
+     */
 
-    if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {
-      closeCurlyIndex = str.indexOf('}', index);
 
-      if (closeCurlyIndex > index) {
-        backSlashIndex = str.indexOf('\\', index);
+    if (value === '/') {
+      // if the beginning of the glob is "./", advance the start
+      // to the current index, and don't add the "./" characters
+      // to the state. This greatly simplifies lookbehinds when
+      // checking for BOS characters like "!" and "." (not "./")
+      if (prev.type === 'dot' && state.index === state.start + 1) {
+        state.start = state.index + 1;
+        state.consumed = '';
+        state.output = '';
+        tokens.pop();
+        prev = bos; // reset "prev" to the first token
 
-        if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {
-          return true;
-        }
+        continue;
       }
+
+      push({
+        type: 'slash',
+        value,
+        output: SLASH_LITERAL
+      });
+      continue;
     }
+    /**
+     * Dots
+     */
 
-    if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {
-      closeParenIndex = str.indexOf(')', index);
 
-      if (closeParenIndex > index) {
-        backSlashIndex = str.indexOf('\\', index);
+    if (value === '.') {
+      if (state.braces > 0 && prev.type === 'dot') {
+        if (prev.value === '.') prev.output = DOT_LITERAL;
+        const brace = braces[braces.length - 1];
+        prev.type = 'dots';
+        prev.output += value;
+        prev.value += value;
+        brace.dots = true;
+        continue;
+      }
 
-        if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
-          return true;
-        }
+      if (state.braces + state.parens === 0 && prev.type !== 'bos' && prev.type !== 'slash') {
+        push({
+          type: 'text',
+          value,
+          output: DOT_LITERAL
+        });
+        continue;
       }
+
+      push({
+        type: 'dot',
+        value,
+        output: DOT_LITERAL
+      });
+      continue;
     }
+    /**
+     * Question marks
+     */
 
-    if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {
-      if (pipeIndex < index) {
-        pipeIndex = str.indexOf('|', index);
+
+    if (value === '?') {
+      const isGroup = prev && prev.value === '(';
+
+      if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
+        extglobOpen('qmark', value);
+        continue;
       }
 
-      if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {
-        closeParenIndex = str.indexOf(')', pipeIndex);
+      if (prev && prev.type === 'paren') {
+        const next = peek();
+        let output = value;
 
-        if (closeParenIndex > pipeIndex) {
-          backSlashIndex = str.indexOf('\\', pipeIndex);
+        if (next === '<' && !utils.supportsLookbehinds()) {
+          throw new Error('Node.js v10 or higher is required for regex lookbehinds');
+        }
 
-          if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
-            return true;
-          }
+        if (prev.value === '(' && !/[!=<:]/.test(next) || next === '<' && !/<([!=]|\w+>)/.test(remaining())) {
+          output = `\\${value}`;
         }
+
+        push({
+          type: 'text',
+          value,
+          output
+        });
+        continue;
       }
-    }
 
-    if (str[index] === '\\') {
-      var open = str[index + 1];
-      index += 2;
-      var close = chars[open];
+      if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {
+        push({
+          type: 'qmark',
+          value,
+          output: QMARK_NO_DOT
+        });
+        continue;
+      }
 
-      if (close) {
-        var n = str.indexOf(close, index);
+      push({
+        type: 'qmark',
+        value,
+        output: QMARK
+      });
+      continue;
+    }
+    /**
+     * Exclamation
+     */
 
-        if (n !== -1) {
-          index = n + 1;
+
+    if (value === '!') {
+      if (opts.noextglob !== true && peek() === '(') {
+        if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {
+          extglobOpen('negate', value);
+          continue;
         }
       }
 
-      if (str[index] === '!') {
-        return true;
+      if (opts.nonegate !== true && state.index === 0) {
+        negate();
+        continue;
       }
-    } else {
-      index++;
     }
-  }
+    /**
+     * Plus
+     */
 
-  return false;
-};
 
-var relaxedCheck = function (str) {
-  if (str[0] === '!') {
-    return true;
-  }
+    if (value === '+') {
+      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
+        extglobOpen('plus', value);
+        continue;
+      }
 
-  var index = 0;
+      if (prev && prev.value === '(' || opts.regex === false) {
+        push({
+          type: 'plus',
+          value,
+          output: PLUS_LITERAL
+        });
+        continue;
+      }
 
-  while (index < str.length) {
-    if (/[*?{}()[\]]/.test(str[index])) {
-      return true;
-    }
+      if (prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace') || state.parens > 0) {
+        push({
+          type: 'plus',
+          value
+        });
+        continue;
+      }
 
-    if (str[index] === '\\') {
-      var open = str[index + 1];
-      index += 2;
-      var close = chars[open];
+      push({
+        type: 'plus',
+        value: PLUS_LITERAL
+      });
+      continue;
+    }
+    /**
+     * Plain text
+     */
 
-      if (close) {
-        var n = str.indexOf(close, index);
 
-        if (n !== -1) {
-          index = n + 1;
-        }
+    if (value === '@') {
+      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
+        push({
+          type: 'at',
+          extglob: true,
+          value,
+          output: ''
+        });
+        continue;
       }
 
-      if (str[index] === '!') {
-        return true;
-      }
-    } else {
-      index++;
+      push({
+        type: 'text',
+        value
+      });
+      continue;
     }
-  }
+    /**
+     * Plain text
+     */
 
-  return false;
-};
 
-module.exports = function isGlob(str, options) {
-  if (typeof str !== 'string' || str === '') {
-    return false;
-  }
+    if (value !== '*') {
+      if (value === '$' || value === '^') {
+        value = `\\${value}`;
+      }
 
-  if (isExtglob(str)) {
-    return true;
-  }
+      const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());
 
-  var check = strictCheck; // optionally relax check
+      if (match) {
+        value += match[0];
+        state.index += match[0].length;
+      }
 
-  if (options && options.strict === false) {
-    check = relaxedCheck;
-  }
+      push({
+        type: 'text',
+        value
+      });
+      continue;
+    }
+    /**
+     * Stars
+     */
 
-  return check(str);
-};
 
-/***/ }),
-/* 896 */
-/***/ ((module) => {
+    if (prev && (prev.type === 'globstar' || prev.star === true)) {
+      prev.type = 'star';
+      prev.star = true;
+      prev.value += value;
+      prev.output = star;
+      state.backtrack = true;
+      state.globstar = true;
+      consume(value);
+      continue;
+    }
 
-/*!
- * is-extglob <https://github.com/jonschlinkert/is-extglob>
- *
- * Copyright (c) 2014-2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-module.exports = function isExtglob(str) {
-  if (typeof str !== 'string' || str === '') {
-    return false;
-  }
+    let rest = remaining();
 
-  var match;
+    if (opts.noextglob !== true && /^\([^?]/.test(rest)) {
+      extglobOpen('star', value);
+      continue;
+    }
 
-  while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) {
-    if (match[2]) return true;
-    str = str.slice(match.index + match[0].length);
-  }
+    if (prev.type === 'star') {
+      if (opts.noglobstar === true) {
+        consume(value);
+        continue;
+      }
 
-  return false;
-};
+      const prior = prev.prev;
+      const before = prior.prev;
+      const isStart = prior.type === 'slash' || prior.type === 'bos';
+      const afterStar = before && (before.type === 'star' || before.type === 'globstar');
 
-/***/ }),
-/* 897 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+      if (opts.bash === true && (!isStart || rest[0] && rest[0] !== '/')) {
+        push({
+          type: 'star',
+          value,
+          output: ''
+        });
+        continue;
+      }
 
-"use strict";
+      const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');
+      const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');
 
+      if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {
+        push({
+          type: 'star',
+          value,
+          output: ''
+        });
+        continue;
+      } // strip consecutive `/**/`
 
-const {
-  Linter
-} = __webpack_require__(428);
 
-const interpolate = __webpack_require__(543);
+      while (rest.slice(0, 3) === '/**') {
+        const after = input[state.index + 4];
 
-const SourceCodeFixer = __webpack_require__(856);
+        if (after && after !== '/') {
+          break;
+        }
 
-module.exports = {
-  Linter,
-  // For testers.
-  SourceCodeFixer,
-  interpolate
-};
+        rest = rest.slice(3);
+        consume('/**', 3);
+      }
 
-/***/ }),
-/* 898 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+      if (prior.type === 'bos' && eos()) {
+        prev.type = 'globstar';
+        prev.value += value;
+        prev.output = globstar(opts);
+        state.output = prev.output;
+        state.globstar = true;
+        consume(value);
+        continue;
+      }
 
-"use strict";
-/**
- * @fileoverview Module for loading rules from files and directories.
- * @author Michael Ficarra
- */
- //------------------------------------------------------------------------------
-// Requirements
-//------------------------------------------------------------------------------
+      if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
+        state.output = state.output.slice(0, -(prior.output + prev.output).length);
+        prior.output = `(?:${prior.output}`;
+        prev.type = 'globstar';
+        prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');
+        prev.value += value;
+        state.globstar = true;
+        state.output += prior.output + prev.output;
+        consume(value);
+        continue;
+      }
 
-const fs = __webpack_require__(880),
-      path = __webpack_require__(429);
+      if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {
+        const end = rest[1] !== void 0 ? '|$' : '';
+        state.output = state.output.slice(0, -(prior.output + prev.output).length);
+        prior.output = `(?:${prior.output}`;
+        prev.type = 'globstar';
+        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
+        prev.value += value;
+        state.output += prior.output + prev.output;
+        state.globstar = true;
+        consume(value + advance());
+        push({
+          type: 'slash',
+          value: '/',
+          output: ''
+        });
+        continue;
+      }
 
-const rulesDirCache = {}; //------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+      if (prior.type === 'bos' && rest[0] === '/') {
+        prev.type = 'globstar';
+        prev.value += value;
+        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
+        state.output = prev.output;
+        state.globstar = true;
+        consume(value + advance());
+        push({
+          type: 'slash',
+          value: '/',
+          output: ''
+        });
+        continue;
+      } // remove single star from output
 
-/**
- * Load all rule modules from specified directory.
- * @param {string} relativeRulesDir Path to rules directory, may be relative.
- * @param {string} cwd Current working directory
- * @returns {Object} Loaded rule modules.
- */
 
-module.exports = function (relativeRulesDir, cwd) {
-  const rulesDir = path.resolve(cwd, relativeRulesDir); // cache will help performance as IO operation are expensive
+      state.output = state.output.slice(0, -prev.output.length); // reset previous token to globstar
 
-  if (rulesDirCache[rulesDir]) {
-    return rulesDirCache[rulesDir];
-  }
+      prev.type = 'globstar';
+      prev.output = globstar(opts);
+      prev.value += value; // reset output with globstar
 
-  const rules = Object.create(null);
-  fs.readdirSync(rulesDir).forEach(file => {
-    if (path.extname(file) !== ".js") {
-      return;
+      state.output += prev.output;
+      state.globstar = true;
+      consume(value);
+      continue;
     }
 
-    rules[file.slice(0, -3)] = __webpack_require__(899)(path.join(rulesDir, file));
-  });
-  rulesDirCache[rulesDir] = rules;
-  return rules;
-};
+    const token = {
+      type: 'star',
+      value,
+      output: star
+    };
 
-/***/ }),
-/* 899 */
-/***/ ((module) => {
+    if (opts.bash === true) {
+      token.output = '.*?';
 
-function webpackEmptyContext(req) {
-       var e = new Error("Cannot find module '" + req + "'");
-       e.code = 'MODULE_NOT_FOUND';
-       throw e;
-}
-webpackEmptyContext.keys = () => ([]);
-webpackEmptyContext.resolve = webpackEmptyContext;
-webpackEmptyContext.id = 899;
-module.exports = webpackEmptyContext;
+      if (prev.type === 'bos' || prev.type === 'slash') {
+        token.output = nodot + token.output;
+      }
 
-/***/ }),
-/* 900 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+      push(token);
+      continue;
+    }
 
-"use strict";
-/**
- * @fileoverview Defining the hashing function in one place.
- * @author Michael Ficarra
- */
- //------------------------------------------------------------------------------
-// Requirements
-//------------------------------------------------------------------------------
+    if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {
+      token.output = value;
+      push(token);
+      continue;
+    }
 
-const murmur = __webpack_require__(901); //------------------------------------------------------------------------------
-// Helpers
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-// Private
-//------------------------------------------------------------------------------
+    if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {
+      if (prev.type === 'dot') {
+        state.output += NO_DOT_SLASH;
+        prev.output += NO_DOT_SLASH;
+      } else if (opts.dot === true) {
+        state.output += NO_DOTS_SLASH;
+        prev.output += NO_DOTS_SLASH;
+      } else {
+        state.output += nodot;
+        prev.output += nodot;
+      }
 
-/**
- * hash the given string
- * @param {string} str the string to hash
- * @returns {string} the hash
- */
+      if (peek() !== '*') {
+        state.output += ONE_CHAR;
+        prev.output += ONE_CHAR;
+      }
+    }
 
+    push(token);
+  }
 
-function hash(str) {
-  return murmur(str).result().toString(36);
-} //------------------------------------------------------------------------------
-// Public Interface
-//------------------------------------------------------------------------------
+  while (state.brackets > 0) {
+    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));
+    state.output = utils.escapeLast(state.output, '[');
+    decrement('brackets');
+  }
 
+  while (state.parens > 0) {
+    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));
+    state.output = utils.escapeLast(state.output, '(');
+    decrement('parens');
+  }
 
-module.exports = hash;
+  while (state.braces > 0) {
+    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));
+    state.output = utils.escapeLast(state.output, '{');
+    decrement('braces');
+  }
 
-/***/ }),
-/* 901 */
-/***/ ((module) => {
+  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
+    push({
+      type: 'maybe_slash',
+      value: '',
+      output: `${SLASH_LITERAL}?`
+    });
+  } // rebuild the output if we had to backtrack at any point
 
-/**
- * @preserve
- * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
- *
- * @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
- * @see http://github.com/homebrewing/brauhaus-diff
- * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
- * @see http://github.com/garycourt/murmurhash-js
- * @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
- * @see http://sites.google.com/site/murmurhash/
- */
-(function () {
-  var cache; // Call this function without `new` to use the cached object (good for
-  // single-threaded environments), or with `new` to create a new object.
-  //
-  // @param {string} key A UTF-16 or ASCII string
-  // @param {number} seed An optional positive integer
-  // @return {object} A MurmurHash3 object for incremental hashing
 
-  function MurmurHash3(key, seed) {
-    var m = this instanceof MurmurHash3 ? this : cache;
-    m.reset(seed);
+  if (state.backtrack === true) {
+    state.output = '';
 
-    if (typeof key === 'string' && key.length > 0) {
-      m.hash(key);
-    }
+    for (const token of state.tokens) {
+      state.output += token.output != null ? token.output : token.value;
 
-    if (m !== this) {
-      return m;
+      if (token.suffix) {
+        state.output += token.suffix;
+      }
     }
   }
 
-  ; // Incrementally add a string to this hash
-  //
-  // @param {string} key A UTF-16 or ASCII string
-  // @return {object} this
+  return state;
+};
+/**
+ * Fast paths for creating regular expressions for common glob patterns.
+ * This can significantly speed up processing and has very little downside
+ * impact when none of the fast paths match.
+ */
 
-  MurmurHash3.prototype.hash = function (key) {
-    var h1, k1, i, top, len;
-    len = key.length;
-    this.len += len;
-    k1 = this.k1;
-    i = 0;
 
-    switch (this.rem) {
-      case 0:
-        k1 ^= len > i ? key.charCodeAt(i++) & 0xffff : 0;
+parse.fastpaths = (input, options) => {
+  const opts = { ...options
+  };
+  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
+  const len = input.length;
 
-      case 1:
-        k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;
+  if (len > max) {
+    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
+  }
 
-      case 2:
-        k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;
+  input = REPLACEMENTS[input] || input;
+  const win32 = utils.isWindows(options); // create constants based on platform, for windows or posix
 
-      case 3:
-        k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;
-        k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;
-    }
+  const {
+    DOT_LITERAL,
+    SLASH_LITERAL,
+    ONE_CHAR,
+    DOTS_SLASH,
+    NO_DOT,
+    NO_DOTS,
+    NO_DOTS_SLASH,
+    STAR,
+    START_ANCHOR
+  } = constants.globChars(win32);
+  const nodot = opts.dot ? NO_DOTS : NO_DOT;
+  const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
+  const capture = opts.capture ? '' : '?:';
+  const state = {
+    negated: false,
+    prefix: ''
+  };
+  let star = opts.bash === true ? '.*?' : STAR;
 
-    this.rem = len + this.rem & 3; // & 3 is same as % 4
+  if (opts.capture) {
+    star = `(${star})`;
+  }
 
-    len -= this.rem;
+  const globstar = opts => {
+    if (opts.noglobstar === true) return star;
+    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
+  };
 
-    if (len > 0) {
-      h1 = this.h1;
+  const create = str => {
+    switch (str) {
+      case '*':
+        return `${nodot}${ONE_CHAR}${star}`;
 
-      while (1) {
-        k1 = k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000 & 0xffffffff;
-        k1 = k1 << 15 | k1 >>> 17;
-        k1 = k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000 & 0xffffffff;
-        h1 ^= k1;
-        h1 = h1 << 13 | h1 >>> 19;
-        h1 = h1 * 5 + 0xe6546b64 & 0xffffffff;
+      case '.*':
+        return `${DOT_LITERAL}${ONE_CHAR}${star}`;
 
-        if (i >= len) {
-          break;
-        }
+      case '*.*':
+        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
 
-        k1 = key.charCodeAt(i++) & 0xffff ^ (key.charCodeAt(i++) & 0xffff) << 8 ^ (key.charCodeAt(i++) & 0xffff) << 16;
-        top = key.charCodeAt(i++);
-        k1 ^= (top & 0xff) << 24 ^ (top & 0xff00) >> 8;
-      }
+      case '*/*':
+        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
 
-      k1 = 0;
+      case '**':
+        return nodot + globstar(opts);
 
-      switch (this.rem) {
-        case 3:
-          k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;
+      case '**/*':
+        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
 
-        case 2:
-          k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;
+      case '**/*.*':
+        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
 
-        case 1:
-          k1 ^= key.charCodeAt(i) & 0xffff;
-      }
+      case '**/.*':
+        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
 
-      this.h1 = h1;
+      default:
+        {
+          const match = /^(.*?)\.(\w+)$/.exec(str);
+          if (!match) return;
+          const source = create(match[1]);
+          if (!source) return;
+          return source + DOT_LITERAL + match[2];
+        }
     }
+  };
 
-    this.k1 = k1;
-    return this;
-  }; // Get the result of this hash
-  //
-  // @return {number} The 32-bit hash
+  const output = utils.removePrefix(input, state);
+  let source = create(output);
 
+  if (source && opts.strictSlashes !== true) {
+    source += `${SLASH_LITERAL}?`;
+  }
 
-  MurmurHash3.prototype.result = function () {
-    var k1, h1;
-    k1 = this.k1;
-    h1 = this.h1;
+  return source;
+};
 
-    if (k1 > 0) {
-      k1 = k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000 & 0xffffffff;
-      k1 = k1 << 15 | k1 >>> 17;
-      k1 = k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000 & 0xffffffff;
-      h1 ^= k1;
-    }
+module.exports = parse;
 
-    h1 ^= this.len;
-    h1 ^= h1 >>> 16;
-    h1 = h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000 & 0xffffffff;
-    h1 ^= h1 >>> 13;
-    h1 = h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000 & 0xffffffff;
-    h1 ^= h1 >>> 16;
-    return h1 >>> 0;
-  }; // Reset the hash object for reuse
-  //
-  // @param {number} seed An optional positive integer
+/***/ }),
+/* 1052 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
+"use strict";
 
-  MurmurHash3.prototype.reset = function (seed) {
-    this.h1 = typeof seed === 'number' ? seed : 0;
-    this.rem = this.k1 = this.len = 0;
-    return this;
-  }; // A cached object to use. This can be safely used if you're in a single-
-  // threaded environment, otherwise you need to create new hashes to use.
 
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.merge = void 0;
+
+const merge2 = __webpack_require__(1024);
 
-  cache = new MurmurHash3();
+function merge(streams) {
+  const mergedStream = merge2(streams);
+  streams.forEach(stream => {
+    stream.once('error', error => mergedStream.emit('error', error));
+  });
+  mergedStream.once('close', () => propagateCloseEventToSources(streams));
+  mergedStream.once('end', () => propagateCloseEventToSources(streams));
+  return mergedStream;
+}
 
-  if (true) {
-    module.exports = MurmurHash3;
-  } else {}
-})();
+exports.merge = merge;
+
+function propagateCloseEventToSources(streams) {
+  streams.forEach(stream => stream.emit('close'));
+}
 
 /***/ }),
-/* 902 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 1053 */
+/***/ ((__unused_webpack_module, exports) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
-/**
- * @fileoverview Utility for caching lint results.
- * @author Kevin Partington
- */
- //-----------------------------------------------------------------------------
-// Requirements
-//-----------------------------------------------------------------------------
 
-const assert = __webpack_require__(431);
 
-const fs = __webpack_require__(880);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.isEmpty = exports.isString = void 0;
 
-const fileEntryCache = __webpack_require__(903);
+function isString(input) {
+  return typeof input === 'string';
+}
 
-const stringify = __webpack_require__(921);
+exports.isString = isString;
 
-const pkg = __webpack_require__(443);
+function isEmpty(input) {
+  return input === '';
+}
 
-const hash = __webpack_require__(900);
+exports.isEmpty = isEmpty;
 
-const debug = __webpack_require__(496)("eslint:lint-result-cache"); //-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
+/***/ }),
+/* 1054 */
+/***/ ((__unused_webpack_module, exports) => {
 
+"use strict";
 
-const configHashCache = new WeakMap();
-const nodeVersion = process && process.version;
-const validCacheStrategies = ["metadata", "content"];
-const invalidCacheStrategyErrorMessage = "Cache strategy must be one of: ".concat(validCacheStrategies.map(strategy => "\"".concat(strategy, "\"")).join(", "));
-/**
- * Tests whether a provided cacheStrategy is valid
- * @param {string} cacheStrategy The cache strategy to use
- * @returns {boolean} true if `cacheStrategy` is one of `validCacheStrategies`; false otherwise
- */
 
-function isValidCacheStrategy(cacheStrategy) {
-  return validCacheStrategies.indexOf(cacheStrategy) !== -1;
-}
-/**
- * Calculates the hash of the config
- * @param {ConfigArray} config The config.
- * @returns {string} The hash of the config
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.removeDuplicateSlashes = exports.transform = void 0;
+/**\r
+ * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\r
+ * The latter is due to the presence of the device path at the beginning of the UNC path.\r
+ * @todo rewrite to negative lookbehind with the next major release.\r
  */
 
+const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g;
 
-function hashOfConfigFor(config) {
-  if (!configHashCache.has(config)) {
-    configHashCache.set(config, hash("".concat(pkg.version, "_").concat(nodeVersion, "_").concat(stringify(config))));
-  }
-
-  return configHashCache.get(config);
-} //-----------------------------------------------------------------------------
-// Public Interface
-//-----------------------------------------------------------------------------
+function transform(patterns) {
+  return patterns.map(pattern => removeDuplicateSlashes(pattern));
+}
 
-/**
- * Lint result cache. This wraps around the file-entry-cache module,
- * transparently removing properties that are difficult or expensive to
- * serialize and adding them back in on retrieval.
+exports.transform = transform;
+/**\r
+ * This package only works with forward slashes as a path separator.\r
+ * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\r
  */
 
+function removeDuplicateSlashes(pattern) {
+  return pattern.replace(DOUBLE_SLASH_RE, '/');
+}
 
-class LintResultCache {
-  /**
-   * Creates a new LintResultCache instance.
-   * @param {string} cacheFileLocation The cache file location.
-   * @param {"metadata" | "content"} cacheStrategy The cache strategy to use.
-   */
-  constructor(cacheFileLocation, cacheStrategy) {
-    assert(cacheFileLocation, "Cache file location is required");
-    assert(cacheStrategy, "Cache strategy is required");
-    assert(isValidCacheStrategy(cacheStrategy), invalidCacheStrategyErrorMessage);
-    debug("Caching results to ".concat(cacheFileLocation));
-    const useChecksum = cacheStrategy === "content";
-    debug("Using \"".concat(cacheStrategy, "\" strategy to detect changes"));
-    this.fileEntryCache = fileEntryCache.create(cacheFileLocation, void 0, useChecksum);
-    this.cacheFileLocation = cacheFileLocation;
-  }
-  /**
-   * Retrieve cached lint results for a given file path, if present in the
-   * cache. If the file is present and has not been changed, rebuild any
-   * missing result information.
-   * @param {string} filePath The file for which to retrieve lint results.
-   * @param {ConfigArray} config The config of the file.
-   * @returns {Object|null} The rebuilt lint results, or null if the file is
-   *   changed or not in the filesystem.
-   */
-
-
-  getCachedLintResults(filePath, config) {
-    /*
-     * Cached lint results are valid if and only if:
-     * 1. The file is present in the filesystem
-     * 2. The file has not changed since the time it was previously linted
-     * 3. The ESLint configuration has not changed since the time the file
-     *    was previously linted
-     * If any of these are not true, we will not reuse the lint results.
-     */
-    const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath);
-    const hashOfConfig = hashOfConfigFor(config);
-    const changed = fileDescriptor.changed || fileDescriptor.meta.hashOfConfig !== hashOfConfig;
-
-    if (fileDescriptor.notFound) {
-      debug("File not found on the file system: ".concat(filePath));
-      return null;
-    }
-
-    if (changed) {
-      debug("Cache entry not found or no longer valid: ".concat(filePath));
-      return null;
-    } // If source is present but null, need to reread the file from the filesystem.
+exports.removeDuplicateSlashes = removeDuplicateSlashes;
 
+/***/ }),
+/* 1055 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-    if (fileDescriptor.meta.results && fileDescriptor.meta.results.source === null) {
-      debug("Rereading cached result source from filesystem: ".concat(filePath));
-      fileDescriptor.meta.results.source = fs.readFileSync(filePath, "utf-8");
-    }
+"use strict";
 
-    return fileDescriptor.meta.results;
-  }
-  /**
-   * Set the cached lint results for a given file path, after removing any
-   * information that will be both unnecessary and difficult to serialize.
-   * Avoids caching results with an "output" property (meaning fixes were
-   * applied), to prevent potentially incorrect results if fixes are not
-   * written to disk.
-   * @param {string} filePath The file for which to set lint results.
-   * @param {ConfigArray} config The config of the file.
-   * @param {Object} result The lint result to be set for the file.
-   * @returns {void}
-   */
 
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-  setCachedLintResults(filePath, config, result) {
-    if (result && Object.prototype.hasOwnProperty.call(result, "output")) {
-      return;
-    }
+const async_1 = __webpack_require__(1056);
 
-    const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath);
+const provider_1 = __webpack_require__(1086);
 
-    if (fileDescriptor && !fileDescriptor.notFound) {
-      debug("Updating cached result: ".concat(filePath)); // Serialize the result, except that we want to remove the file source if present.
+class ProviderAsync extends provider_1.default {
+  constructor() {
+    super(...arguments);
+    this._reader = new async_1.default(this._settings);
+  }
 
-      const resultToSerialize = Object.assign({}, result);
-      /*
-       * Set result.source to null.
-       * In `getCachedLintResults`, if source is explicitly null, we will
-       * read the file from the filesystem to set the value again.
-       */
+  async read(task) {
+    const root = this._getRootDirectory(task);
 
-      if (Object.prototype.hasOwnProperty.call(resultToSerialize, "source")) {
-        resultToSerialize.source = null;
-      }
+    const options = this._getReaderOptions(task);
 
-      fileDescriptor.meta.results = resultToSerialize;
-      fileDescriptor.meta.hashOfConfig = hashOfConfigFor(config);
-    }
+    const entries = await this.api(root, task, options);
+    return entries.map(entry => options.transform(entry));
   }
-  /**
-   * Persists the in-memory cache to disk.
-   * @returns {void}
-   */
 
+  api(root, task, options) {
+    if (task.dynamic) {
+      return this._reader.dynamic(root, options);
+    }
 
-  reconcile() {
-    debug("Persisting cached results: ".concat(this.cacheFileLocation));
-    this.fileEntryCache.reconcile();
+    return this._reader.static(task.patterns, options);
   }
 
 }
 
-module.exports = LintResultCache;
+exports["default"] = ProviderAsync;
 
 /***/ }),
-/* 903 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 1056 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var path = __webpack_require__(429);
+"use strict";
 
-var crypto = __webpack_require__(904);
 
-module.exports = {
-  createFromFile: function (filePath, useChecksum) {
-    var fname = path.basename(filePath);
-    var dir = path.dirname(filePath);
-    return this.create(fname, dir, useChecksum);
-  },
-  create: function (cacheId, _path, useChecksum) {
-    var fs = __webpack_require__(880);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-    var flatCache = __webpack_require__(905);
+const fsWalk = __webpack_require__(1057);
 
-    var cache = flatCache.load(cacheId, _path);
-    var normalizedEntries = {};
+const reader_1 = __webpack_require__(1084);
 
-    var removeNotFoundFiles = function removeNotFoundFiles() {
-      const cachedEntries = cache.keys(); // remove not found entries
+const stream_1 = __webpack_require__(1085);
 
-      cachedEntries.forEach(function remover(fPath) {
-        try {
-          fs.statSync(fPath);
-        } catch (err) {
-          if (err.code === 'ENOENT') {
-            cache.removeKey(fPath);
-          }
+class ReaderAsync extends reader_1.default {
+  constructor() {
+    super(...arguments);
+    this._walkAsync = fsWalk.walk;
+    this._readerStream = new stream_1.default(this._settings);
+  }
+
+  dynamic(root, options) {
+    return new Promise((resolve, reject) => {
+      this._walkAsync(root, options, (error, entries) => {
+        if (error === null) {
+          resolve(entries);
+        } else {
+          reject(error);
         }
       });
-    };
-
-    removeNotFoundFiles();
-    return {
-      /**
-       * the flat cache storage used to persist the metadata of the `files
-       * @type {Object}
-       */
-      cache: cache,
+    });
+  }
 
-      /**
-       * Given a buffer, calculate md5 hash of its content.
-       * @method getHash
-       * @param  {Buffer} buffer   buffer to calculate hash on
-       * @return {String}          content hash digest
-       */
-      getHash: function (buffer) {
-        return crypto.createHash('md5').update(buffer).digest('hex');
-      },
+  async static(patterns, options) {
+    const entries = [];
 
-      /**
-       * Return whether or not a file has changed since last time reconcile was called.
-       * @method hasFileChanged
-       * @param  {String}  file  the filepath to check
-       * @return {Boolean}       wheter or not the file has changed
-       */
-      hasFileChanged: function (file) {
-        return this.getFileDescriptor(file).changed;
-      },
+    const stream = this._readerStream.static(patterns, options); // After #235, replace it with an asynchronous iterator.
 
-      /**
-       * given an array of file paths it return and object with three arrays:
-       *  - changedFiles: Files that changed since previous run
-       *  - notChangedFiles: Files that haven't change
-       *  - notFoundFiles: Files that were not found, probably deleted
-       *
-       * @param  {Array} files the files to analyze and compare to the previous seen files
-       * @return {[type]}       [description]
-       */
-      analyzeFiles: function (files) {
-        var me = this;
-        files = files || [];
-        var res = {
-          changedFiles: [],
-          notFoundFiles: [],
-          notChangedFiles: []
-        };
-        me.normalizeEntries(files).forEach(function (entry) {
-          if (entry.changed) {
-            res.changedFiles.push(entry.key);
-            return;
-          }
 
-          if (entry.notFound) {
-            res.notFoundFiles.push(entry.key);
-            return;
-          }
+    return new Promise((resolve, reject) => {
+      stream.once('error', reject);
+      stream.on('data', entry => entries.push(entry));
+      stream.once('end', () => resolve(entries));
+    });
+  }
 
-          res.notChangedFiles.push(entry.key);
-        });
-        return res;
-      },
-      getFileDescriptor: function (file) {
-        var fstat;
+}
 
-        try {
-          fstat = fs.statSync(file);
-        } catch (ex) {
-          this.removeEntry(file);
-          return {
-            key: file,
-            notFound: true,
-            err: ex
-          };
-        }
+exports["default"] = ReaderAsync;
 
-        if (useChecksum) {
-          return this._getFileDescriptorUsingChecksum(file);
-        }
+/***/ }),
+/* 1057 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-        return this._getFileDescriptorUsingMtimeAndSize(file, fstat);
-      },
-      _getFileDescriptorUsingMtimeAndSize: function (file, fstat) {
-        var meta = cache.getKey(file);
-        var cacheExists = !!meta;
-        var cSize = fstat.size;
-        var cTime = fstat.mtime.getTime();
-        var isDifferentDate;
-        var isDifferentSize;
+"use strict";
 
-        if (!meta) {
-          meta = {
-            size: cSize,
-            mtime: cTime
-          };
-        } else {
-          isDifferentDate = cTime !== meta.mtime;
-          isDifferentSize = cSize !== meta.size;
-        }
 
-        var nEntry = normalizedEntries[file] = {
-          key: file,
-          changed: !cacheExists || isDifferentDate || isDifferentSize,
-          meta: meta
-        };
-        return nEntry;
-      },
-      _getFileDescriptorUsingChecksum: function (file) {
-        var meta = cache.getKey(file);
-        var cacheExists = !!meta;
-        var contentBuffer;
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;
 
-        try {
-          contentBuffer = fs.readFileSync(file);
-        } catch (ex) {
-          contentBuffer = '';
-        }
+const async_1 = __webpack_require__(1058);
 
-        var isDifferent = true;
-        var hash = this.getHash(contentBuffer);
+const stream_1 = __webpack_require__(1080);
 
-        if (!meta) {
-          meta = {
-            hash: hash
-          };
-        } else {
-          isDifferent = hash !== meta.hash;
-        }
+const sync_1 = __webpack_require__(1081);
 
-        var nEntry = normalizedEntries[file] = {
-          key: file,
-          changed: !cacheExists || isDifferent,
-          meta: meta
-        };
-        return nEntry;
-      },
+const settings_1 = __webpack_require__(1083);
 
-      /**
-       * Return the list o the files that changed compared
-       * against the ones stored in the cache
-       *
-       * @method getUpdated
-       * @param files {Array} the array of files to compare against the ones in the cache
-       * @returns {Array}
-       */
-      getUpdatedFiles: function (files) {
-        var me = this;
-        files = files || [];
-        return me.normalizeEntries(files).filter(function (entry) {
-          return entry.changed;
-        }).map(function (entry) {
-          return entry.key;
-        });
-      },
+exports.Settings = settings_1.default;
 
-      /**
-       * return the list of files
-       * @method normalizeEntries
-       * @param files
-       * @returns {*}
-       */
-      normalizeEntries: function (files) {
-        files = files || [];
-        var me = this;
-        var nEntries = files.map(function (file) {
-          return me.getFileDescriptor(file);
-        }); //normalizeEntries = nEntries;
+function walk(directory, optionsOrSettingsOrCallback, callback) {
+  if (typeof optionsOrSettingsOrCallback === 'function') {
+    new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);
+    return;
+  }
 
-        return nEntries;
-      },
+  new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);
+}
 
-      /**
-       * Remove an entry from the file-entry-cache. Useful to force the file to still be considered
-       * modified the next time the process is run
-       *
-       * @method removeEntry
-       * @param entryName
-       */
-      removeEntry: function (entryName) {
-        delete normalizedEntries[entryName];
-        cache.removeKey(entryName);
-      },
+exports.walk = walk;
 
-      /**
-       * Delete the cache file from the disk
-       * @method deleteCacheFile
-       */
-      deleteCacheFile: function () {
-        cache.removeCacheFile();
-      },
+function walkSync(directory, optionsOrSettings) {
+  const settings = getSettings(optionsOrSettings);
+  const provider = new sync_1.default(directory, settings);
+  return provider.read();
+}
 
-      /**
-       * remove the cache from the file and clear the memory cache
-       */
-      destroy: function () {
-        normalizedEntries = {};
-        cache.destroy();
-      },
-      _getMetaForFileUsingCheckSum: function (cacheEntry) {
-        var contentBuffer = fs.readFileSync(cacheEntry.key);
-        var hash = this.getHash(contentBuffer);
-        var meta = Object.assign(cacheEntry.meta, {
-          hash: hash
-        });
-        delete meta.size;
-        delete meta.mtime;
-        return meta;
-      },
-      _getMetaForFileUsingMtimeAndSize: function (cacheEntry) {
-        var stat = fs.statSync(cacheEntry.key);
-        var meta = Object.assign(cacheEntry.meta, {
-          size: stat.size,
-          mtime: stat.mtime.getTime()
-        });
-        delete meta.hash;
-        return meta;
-      },
+exports.walkSync = walkSync;
 
-      /**
-       * Sync the files and persist them to the cache
-       * @method reconcile
-       */
-      reconcile: function (noPrune) {
-        removeNotFoundFiles();
-        noPrune = typeof noPrune === 'undefined' ? true : noPrune;
-        var entries = normalizedEntries;
-        var keys = Object.keys(entries);
+function walkStream(directory, optionsOrSettings) {
+  const settings = getSettings(optionsOrSettings);
+  const provider = new stream_1.default(directory, settings);
+  return provider.read();
+}
 
-        if (keys.length === 0) {
-          return;
-        }
+exports.walkStream = walkStream;
 
-        var me = this;
-        keys.forEach(function (entryName) {
-          var cacheEntry = entries[entryName];
+function getSettings() {
+  let settingsOrOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 
-          try {
-            var meta = useChecksum ? me._getMetaForFileUsingCheckSum(cacheEntry) : me._getMetaForFileUsingMtimeAndSize(cacheEntry);
-            cache.setKey(entryName, meta);
-          } catch (err) {
-            // if the file does not exists we don't save it
-            // other errors are just thrown
-            if (err.code !== 'ENOENT') {
-              throw err;
-            }
-          }
-        });
-        cache.save(noPrune);
-      }
-    };
+  if (settingsOrOptions instanceof settings_1.default) {
+    return settingsOrOptions;
   }
-};
+
+  return new settings_1.default(settingsOrOptions);
+}
 
 /***/ }),
-/* 904 */
-/***/ ((module) => {
+/* 1058 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
-module.exports = require("crypto");
 
-/***/ }),
-/* 905 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-var path = __webpack_require__(429);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-var fs = __webpack_require__(880);
+const async_1 = __webpack_require__(1059);
 
-var utils = __webpack_require__(906);
+class AsyncProvider {
+  constructor(_root, _settings) {
+    this._root = _root;
+    this._settings = _settings;
+    this._reader = new async_1.default(this._root, this._settings);
+    this._storage = [];
+  }
 
-var del = __webpack_require__(908);
+  read(callback) {
+    this._reader.onError(error => {
+      callFailureCallback(callback, error);
+    });
 
-var writeJSON = utils.writeJSON;
-var cache = {
-  /**
-   * Load a cache identified by the given Id. If the element does not exists, then initialize an empty
-   * cache storage. If specified `cacheDir` will be used as the directory to persist the data to. If omitted
-   * then the cache module directory `./cache` will be used instead
-   *
-   * @method load
-   * @param docId {String} the id of the cache, would also be used as the name of the file cache
-   * @param [cacheDir] {String} directory for the cache entry
-   */
-  load: function (docId, cacheDir) {
-    var me = this;
-    me._visited = {};
-    me._persisted = {};
-    me._pathToFile = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, '../.cache/', docId);
+    this._reader.onEntry(entry => {
+      this._storage.push(entry);
+    });
 
-    if (fs.existsSync(me._pathToFile)) {
-      me._persisted = utils.tryParse(me._pathToFile, {});
-    }
-  },
+    this._reader.onEnd(() => {
+      callSuccessCallback(callback, this._storage);
+    });
 
-  /**
-   * Load the cache from the provided file
-   * @method loadFile
-   * @param  {String} pathToFile the path to the file containing the info for the cache
-   */
-  loadFile: function (pathToFile) {
-    var me = this;
-    var dir = path.dirname(pathToFile);
-    var fName = path.basename(pathToFile);
-    me.load(fName, dir);
-  },
+    this._reader.read();
+  }
 
-  /**
-   * Returns the entire persisted object
-   * @method all
-   * @returns {*}
-   */
-  all: function () {
-    return this._persisted;
-  },
-  keys: function () {
-    return Object.keys(this._persisted);
-  },
+}
 
-  /**
-   * sets a key to a given value
-   * @method setKey
-   * @param key {string} the key to set
-   * @param value {object} the value of the key. Could be any object that can be serialized with JSON.stringify
-   */
-  setKey: function (key, value) {
-    this._visited[key] = true;
-    this._persisted[key] = value;
-  },
+exports["default"] = AsyncProvider;
 
-  /**
-   * remove a given key from the cache
-   * @method removeKey
-   * @param key {String} the key to remove from the object
-   */
-  removeKey: function (key) {
-    delete this._visited[key]; // esfmt-ignore-line
+function callFailureCallback(callback, error) {
+  callback(error);
+}
 
-    delete this._persisted[key]; // esfmt-ignore-line
-  },
+function callSuccessCallback(callback, entries) {
+  callback(null, entries);
+}
 
-  /**
-   * Return the value of the provided key
-   * @method getKey
-   * @param key {String} the name of the key to retrieve
-   * @returns {*} the value from the key
-   */
-  getKey: function (key) {
-    this._visited[key] = true;
-    return this._persisted[key];
-  },
+/***/ }),
+/* 1059 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-  /**
-   * Remove keys that were not accessed/set since the
-   * last time the `prune` method was called.
-   * @method _prune
-   * @private
-   */
-  _prune: function () {
-    var me = this;
-    var obj = {};
-    var keys = Object.keys(me._visited); // no keys visited for either get or set value
+"use strict";
 
-    if (keys.length === 0) {
-      return;
-    }
 
-    keys.forEach(function (key) {
-      obj[key] = me._persisted[key];
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const events_1 = __webpack_require__(1005);
+
+const fsScandir = __webpack_require__(1060);
+
+const fastq = __webpack_require__(1076);
+
+const common = __webpack_require__(1078);
+
+const reader_1 = __webpack_require__(1079);
+
+class AsyncReader extends reader_1.default {
+  constructor(_root, _settings) {
+    super(_root, _settings);
+    this._settings = _settings;
+    this._scandir = fsScandir.scandir;
+    this._emitter = new events_1.EventEmitter();
+    this._queue = fastq(this._worker.bind(this), this._settings.concurrency);
+    this._isFatalError = false;
+    this._isDestroyed = false;
+
+    this._queue.drain = () => {
+      if (!this._isFatalError) {
+        this._emitter.emit('end');
+      }
+    };
+  }
+
+  read() {
+    this._isFatalError = false;
+    this._isDestroyed = false;
+    setImmediate(() => {
+      this._pushToQueue(this._root, this._settings.basePath);
     });
-    me._visited = {};
-    me._persisted = obj;
-  },
+    return this._emitter;
+  }
 
-  /**
-   * Save the state of the cache identified by the docId to disk
-   * as a JSON structure
-   * @param [noPrune=false] {Boolean} whether to remove from cache the non visited files
-   * @method save
-   */
-  save: function (noPrune) {
-    var me = this;
-    !noPrune && me._prune();
-    writeJSON(me._pathToFile, me._persisted);
-  },
+  get isDestroyed() {
+    return this._isDestroyed;
+  }
 
-  /**
-   * remove the file where the cache is persisted
-   * @method removeCacheFile
-   * @return {Boolean} true or false if the file was successfully deleted
-   */
-  removeCacheFile: function () {
-    return del(this._pathToFile);
-  },
+  destroy() {
+    if (this._isDestroyed) {
+      throw new Error('The reader is already destroyed');
+    }
 
-  /**
-   * Destroy the file cache and cache content.
-   * @method destroy
-   */
-  destroy: function () {
-    var me = this;
-    me._visited = {};
-    me._persisted = {};
-    me.removeCacheFile();
+    this._isDestroyed = true;
+
+    this._queue.killAndDrain();
   }
-};
-module.exports = {
-  /**
-   * Alias for create. Should be considered depreacted. Will be removed in next releases
-   *
-   * @method load
-   * @param docId {String} the id of the cache, would also be used as the name of the file cache
-   * @param [cacheDir] {String} directory for the cache entry
-   * @returns {cache} cache instance
-   */
-  load: function (docId, cacheDir) {
-    return this.create(docId, cacheDir);
-  },
 
-  /**
-   * Load a cache identified by the given Id. If the element does not exists, then initialize an empty
-   * cache storage.
-   *
-   * @method create
-   * @param docId {String} the id of the cache, would also be used as the name of the file cache
-   * @param [cacheDir] {String} directory for the cache entry
-   * @returns {cache} cache instance
-   */
-  create: function (docId, cacheDir) {
-    var obj = Object.create(cache);
-    obj.load(docId, cacheDir);
-    return obj;
-  },
-  createFromFile: function (filePath) {
-    var obj = Object.create(cache);
-    obj.loadFile(filePath);
-    return obj;
-  },
+  onEntry(callback) {
+    this._emitter.on('entry', callback);
+  }
 
-  /**
-   * Clear the cache identified by the given id. Caches stored in a different cache directory can be deleted directly
-   *
-   * @method clearCache
-   * @param docId {String} the id of the cache, would also be used as the name of the file cache
-   * @param cacheDir {String} the directory where the cache file was written
-   * @returns {Boolean} true if the cache folder was deleted. False otherwise
-   */
-  clearCacheById: function (docId, cacheDir) {
-    var filePath = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, '../.cache/', docId);
-    return del(filePath);
-  },
+  onError(callback) {
+    this._emitter.once('error', callback);
+  }
 
-  /**
-   * Remove all cache stored in the cache directory
-   * @method clearAll
-   * @returns {Boolean} true if the cache folder was deleted. False otherwise
-   */
-  clearAll: function (cacheDir) {
-    var filePath = cacheDir ? path.resolve(cacheDir) : path.resolve(__dirname, '../.cache/');
-    return del(filePath);
+  onEnd(callback) {
+    this._emitter.once('end', callback);
   }
-};
 
-/***/ }),
-/* 906 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+  _pushToQueue(directory, base) {
+    const queueItem = {
+      directory,
+      base
+    };
 
-var fs = __webpack_require__(880);
+    this._queue.push(queueItem, error => {
+      if (error !== null) {
+        this._handleError(error);
+      }
+    });
+  }
 
-var path = __webpack_require__(429);
+  _worker(item, done) {
+    this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {
+      if (error !== null) {
+        done(error, undefined);
+        return;
+      }
 
-var flatted = __webpack_require__(907);
+      for (const entry of entries) {
+        this._handleEntry(entry, item.base);
+      }
 
-module.exports = {
-  tryParse: function (filePath, defaultValue) {
-    var result;
+      done(null, undefined);
+    });
+  }
 
-    try {
-      result = this.readJSON(filePath);
-    } catch (ex) {
-      result = defaultValue;
+  _handleError(error) {
+    if (this._isDestroyed || !common.isFatalError(this._settings, error)) {
+      return;
     }
 
-    return result;
-  },
+    this._isFatalError = true;
+    this._isDestroyed = true;
 
-  /**
-   * Read json file synchronously using flatted
-   *
-   * @method readJSON
-   * @param  {String} filePath Json filepath
-   * @returns {*} parse result
-   */
-  readJSON: function (filePath) {
-    return flatted.parse(fs.readFileSync(filePath, {
-      encoding: 'utf8'
-    }));
-  },
+    this._emitter.emit('error', error);
+  }
 
-  /**
-   * Write json file synchronously using circular-json
-   *
-   * @method writeJSON
-   * @param  {String} filePath Json filepath
-   * @param  {*} data Object to serialize
-   */
-  writeJSON: function (filePath, data) {
-    fs.mkdirSync(path.dirname(filePath), {
-      recursive: true
-    });
-    fs.writeFileSync(filePath, flatted.stringify(data));
+  _handleEntry(entry, base) {
+    if (this._isDestroyed || this._isFatalError) {
+      return;
+    }
+
+    const fullpath = entry.path;
+
+    if (base !== undefined) {
+      entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
+    }
+
+    if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
+      this._emitEntry(entry);
+    }
+
+    if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
+      this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
+    }
   }
-};
+
+  _emitEntry(entry) {
+    this._emitter.emit('entry', entry);
+  }
+
+}
+
+exports["default"] = AsyncReader;
 
 /***/ }),
-/* 907 */
-/***/ ((__unused_webpack_module, exports) => {
+/* 1060 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
 
-/*! (c) 2020 Andrea Giammarchi */
 
-const {
-  parse: $parse,
-  stringify: $stringify
-} = JSON;
-const {
-  keys
-} = Object;
-const Primitive = String; // it could be Number
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.Settings = exports.scandirSync = exports.scandir = void 0;
 
-const primitive = 'string'; // it could be 'number'
+const async = __webpack_require__(1061);
 
-const ignore = {};
-const object = 'object';
+const sync = __webpack_require__(1073);
 
-const noop = (_, value) => value;
+const settings_1 = __webpack_require__(1074);
 
-const primitives = value => value instanceof Primitive ? Primitive(value) : value;
+exports.Settings = settings_1.default;
 
-const Primitives = (_, value) => typeof value === primitive ? new Primitive(value) : value;
+function scandir(path, optionsOrSettingsOrCallback, callback) {
+  if (typeof optionsOrSettingsOrCallback === 'function') {
+    async.read(path, getSettings(), optionsOrSettingsOrCallback);
+    return;
+  }
 
-const revive = (input, parsed, output, $) => {
-  const lazy = [];
+  async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
+}
 
-  for (let ke = keys(output), {
-    length
-  } = ke, y = 0; y < length; y++) {
-    const k = ke[y];
-    const value = output[k];
+exports.scandir = scandir;
 
-    if (value instanceof Primitive) {
-      const tmp = input[value];
+function scandirSync(path, optionsOrSettings) {
+  const settings = getSettings(optionsOrSettings);
+  return sync.read(path, settings);
+}
 
-      if (typeof tmp === object && !parsed.has(tmp)) {
-        parsed.add(tmp);
-        output[k] = ignore;
-        lazy.push({
-          k,
-          a: [input, parsed, tmp, $]
-        });
-      } else output[k] = $.call(output, k, tmp);
-    } else if (output[k] !== ignore) output[k] = $.call(output, k, value);
-  }
+exports.scandirSync = scandirSync;
 
-  for (let {
-    length
-  } = lazy, i = 0; i < length; i++) {
-    const {
-      k,
-      a
-    } = lazy[i];
-    output[k] = $.call(output, k, revive.apply(null, a));
+function getSettings() {
+  let settingsOrOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  if (settingsOrOptions instanceof settings_1.default) {
+    return settingsOrOptions;
   }
 
-  return output;
-};
+  return new settings_1.default(settingsOrOptions);
+}
 
-const set = (known, input, value) => {
-  const index = Primitive(input.push(value) - 1);
-  known.set(value, index);
-  return index;
-};
+/***/ }),
+/* 1061 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-const parse = (text, reviver) => {
-  const input = $parse(text, Primitives).map(primitives);
-  const value = input[0];
-  const $ = reviver || noop;
-  const tmp = typeof value === object && value ? revive(input, new Set(), value, $) : value;
-  return $.call({
-    '': tmp
-  }, '', tmp);
-};
+"use strict";
 
-exports.parse = parse;
 
-const stringify = (value, replacer, space) => {
-  const $ = replacer && typeof replacer === object ? (k, v) => k === '' || -1 < replacer.indexOf(k) ? v : void 0 : replacer || noop;
-  const known = new Map();
-  const input = [];
-  const output = [];
-  let i = +set(known, input, $.call({
-    '': value
-  }, '', value));
-  let firstRun = !i;
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
 
-  while (i < input.length) {
-    firstRun = true;
-    output[i] = $stringify(input[i++], replace, space);
+const fsStat = __webpack_require__(1062);
+
+const rpl = __webpack_require__(1067);
+
+const constants_1 = __webpack_require__(1069);
+
+const utils = __webpack_require__(1070);
+
+const common = __webpack_require__(1072);
+
+function read(directory, settings, callback) {
+  if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
+    readdirWithFileTypes(directory, settings, callback);
+    return;
   }
 
-  return '[' + output.join(',') + ']';
+  readdir(directory, settings, callback);
+}
 
-  function replace(key, value) {
-    if (firstRun) {
-      firstRun = !firstRun;
-      return value;
-    }
+exports.read = read;
 
-    const after = $.call(this, key, value);
+function readdirWithFileTypes(directory, settings, callback) {
+  settings.fs.readdir(directory, {
+    withFileTypes: true
+  }, (readdirError, dirents) => {
+    if (readdirError !== null) {
+      callFailureCallback(callback, readdirError);
+      return;
+    }
 
-    switch (typeof after) {
-      case object:
-        if (after === null) return after;
+    const entries = dirents.map(dirent => ({
+      dirent,
+      name: dirent.name,
+      path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
+    }));
 
-      case primitive:
-        return known.get(after) || set(known, input, after);
+    if (!settings.followSymbolicLinks) {
+      callSuccessCallback(callback, entries);
+      return;
     }
 
-    return after;
-  }
-};
+    const tasks = entries.map(entry => makeRplTaskEntry(entry, settings));
+    rpl(tasks, (rplError, rplEntries) => {
+      if (rplError !== null) {
+        callFailureCallback(callback, rplError);
+        return;
+      }
 
-exports.stringify = stringify;
+      callSuccessCallback(callback, rplEntries);
+    });
+  });
+}
 
-const toJSON = any => $parse(stringify(any));
+exports.readdirWithFileTypes = readdirWithFileTypes;
 
-exports.toJSON = toJSON;
+function makeRplTaskEntry(entry, settings) {
+  return done => {
+    if (!entry.dirent.isSymbolicLink()) {
+      done(null, entry);
+      return;
+    }
 
-const fromJSON = any => parse($stringify(any));
+    settings.fs.stat(entry.path, (statError, stats) => {
+      if (statError !== null) {
+        if (settings.throwErrorOnBrokenSymbolicLink) {
+          done(statError);
+          return;
+        }
 
-exports.fromJSON = fromJSON;
+        done(null, entry);
+        return;
+      }
 
-/***/ }),
-/* 908 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+      entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
+      done(null, entry);
+    });
+  };
+}
 
-var rimraf = (__webpack_require__(909).sync);
+function readdir(directory, settings, callback) {
+  settings.fs.readdir(directory, (readdirError, names) => {
+    if (readdirError !== null) {
+      callFailureCallback(callback, readdirError);
+      return;
+    }
 
-var fs = __webpack_require__(880);
+    const tasks = names.map(name => {
+      const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
+      return done => {
+        fsStat.stat(path, settings.fsStatSettings, (error, stats) => {
+          if (error !== null) {
+            done(error);
+            return;
+          }
 
-module.exports = function del(file) {
-  if (fs.existsSync(file)) {
-    //if rimraf doesn't throw then the file has been deleted or didn't exist
-    rimraf(file, {
-      glob: false
+          const entry = {
+            name,
+            path,
+            dirent: utils.fs.createDirentFromStats(name, stats)
+          };
+
+          if (settings.stats) {
+            entry.stats = stats;
+          }
+
+          done(null, entry);
+        });
+      };
     });
-    return true;
-  }
+    rpl(tasks, (rplError, entries) => {
+      if (rplError !== null) {
+        callFailureCallback(callback, rplError);
+        return;
+      }
 
-  return false;
-};
+      callSuccessCallback(callback, entries);
+    });
+  });
+}
 
-/***/ }),
-/* 909 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+exports.readdir = readdir;
 
-/* provided dependency */ var process = __webpack_require__(494);
-const assert = __webpack_require__(431);
+function callFailureCallback(callback, error) {
+  callback(error);
+}
 
-const path = __webpack_require__(429);
+function callSuccessCallback(callback, result) {
+  callback(null, result);
+}
 
-const fs = __webpack_require__(880);
+/***/ }),
+/* 1062 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-let glob = undefined;
+"use strict";
 
-try {
-  glob = __webpack_require__(910);
-} catch (_err) {// treat glob as optional.
-}
 
-const defaultGlobOpts = {
-  nosort: true,
-  silent: true
-}; // for EMFILE handling
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.statSync = exports.stat = exports.Settings = void 0;
 
-let timeout = 0;
-const isWindows = process.platform === "win32";
+const async = __webpack_require__(1063);
 
-const defaults = options => {
-  const methods = ['unlink', 'chmod', 'stat', 'lstat', 'rmdir', 'readdir'];
-  methods.forEach(m => {
-    options[m] = options[m] || fs[m];
-    m = m + 'Sync';
-    options[m] = options[m] || fs[m];
-  });
-  options.maxBusyTries = options.maxBusyTries || 3;
-  options.emfileWait = options.emfileWait || 1000;
+const sync = __webpack_require__(1064);
 
-  if (options.glob === false) {
-    options.disableGlob = true;
-  }
+const settings_1 = __webpack_require__(1065);
 
-  if (options.disableGlob !== true && glob === undefined) {
-    throw Error('glob dependency not found, set `options.disableGlob = true` if intentional');
+exports.Settings = settings_1.default;
+
+function stat(path, optionsOrSettingsOrCallback, callback) {
+  if (typeof optionsOrSettingsOrCallback === 'function') {
+    async.read(path, getSettings(), optionsOrSettingsOrCallback);
+    return;
   }
 
-  options.disableGlob = options.disableGlob || false;
-  options.glob = options.glob || defaultGlobOpts;
-};
+  async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
+}
 
-const rimraf = (p, options, cb) => {
-  if (typeof options === 'function') {
-    cb = options;
-    options = {};
+exports.stat = stat;
+
+function statSync(path, optionsOrSettings) {
+  const settings = getSettings(optionsOrSettings);
+  return sync.read(path, settings);
+}
+
+exports.statSync = statSync;
+
+function getSettings() {
+  let settingsOrOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+  if (settingsOrOptions instanceof settings_1.default) {
+    return settingsOrOptions;
   }
 
-  assert(p, 'rimraf: missing path');
-  assert.equal(typeof p, 'string', 'rimraf: path should be a string');
-  assert.equal(typeof cb, 'function', 'rimraf: callback function required');
-  assert(options, 'rimraf: invalid options argument provided');
-  assert.equal(typeof options, 'object', 'rimraf: options should be object');
-  defaults(options);
-  let busyTries = 0;
-  let errState = null;
-  let n = 0;
+  return new settings_1.default(settingsOrOptions);
+}
 
-  const next = er => {
-    errState = errState || er;
-    if (--n === 0) cb(errState);
-  };
+/***/ }),
+/* 1063 */
+/***/ ((__unused_webpack_module, exports) => {
 
-  const afterGlob = (er, results) => {
-    if (er) return cb(er);
-    n = results.length;
-    if (n === 0) return cb();
-    results.forEach(p => {
-      const CB = er => {
-        if (er) {
-          if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && busyTries < options.maxBusyTries) {
-            busyTries++; // try again, with the same exact callback as this one.
+"use strict";
 
-            return setTimeout(() => rimraf_(p, options, CB), busyTries * 100);
-          } // this one won't happen if graceful-fs is used.
 
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.read = void 0;
 
-          if (er.code === "EMFILE" && timeout < options.emfileWait) {
-            return setTimeout(() => rimraf_(p, options, CB), timeout++);
-          } // already gone
+function read(path, settings, callback) {
+  settings.fs.lstat(path, (lstatError, lstat) => {
+    if (lstatError !== null) {
+      callFailureCallback(callback, lstatError);
+      return;
+    }
 
+    if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
+      callSuccessCallback(callback, lstat);
+      return;
+    }
 
-          if (er.code === "ENOENT") er = null;
+    settings.fs.stat(path, (statError, stat) => {
+      if (statError !== null) {
+        if (settings.throwErrorOnBrokenSymbolicLink) {
+          callFailureCallback(callback, statError);
+          return;
         }
 
-        timeout = 0;
-        next(er);
-      };
+        callSuccessCallback(callback, lstat);
+        return;
+      }
 
-      rimraf_(p, options, CB);
-    });
-  };
+      if (settings.markSymbolicLink) {
+        stat.isSymbolicLink = () => true;
+      }
 
-  if (options.disableGlob || !glob.hasMagic(p)) return afterGlob(null, [p]);
-  options.lstat(p, (er, stat) => {
-    if (!er) return afterGlob(null, [p]);
-    glob(p, options.glob, afterGlob);
+      callSuccessCallback(callback, stat);
+    });
   });
-}; // Two possible strategies.
-// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
-// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
-//
-// Both result in an extra syscall when you guess wrong.  However, there
-// are likely far more normal files in the world than directories.  This
-// is based on the assumption that a the average number of files per
-// directory is >= 1.
-//
-// If anyone ever complains about this, then I guess the strategy could
-// be made configurable somehow.  But until then, YAGNI.
+}
 
+exports.read = read;
 
-const rimraf_ = (p, options, cb) => {
-  assert(p);
-  assert(options);
-  assert(typeof cb === 'function'); // sunos lets the root user unlink directories, which is... weird.
-  // so we have to lstat here and make sure it's not a dir.
+function callFailureCallback(callback, error) {
+  callback(error);
+}
 
-  options.lstat(p, (er, st) => {
-    if (er && er.code === "ENOENT") return cb(null); // Windows can EPERM on stat.  Life is suffering.
+function callSuccessCallback(callback, result) {
+  callback(null, result);
+}
 
-    if (er && er.code === "EPERM" && isWindows) fixWinEPERM(p, options, er, cb);
-    if (st && st.isDirectory()) return rmdir(p, options, er, cb);
-    options.unlink(p, er => {
-      if (er) {
-        if (er.code === "ENOENT") return cb(null);
-        if (er.code === "EPERM") return isWindows ? fixWinEPERM(p, options, er, cb) : rmdir(p, options, er, cb);
-        if (er.code === "EISDIR") return rmdir(p, options, er, cb);
-      }
+/***/ }),
+/* 1064 */
+/***/ ((__unused_webpack_module, exports) => {
 
-      return cb(er);
-    });
-  });
-};
+"use strict";
 
-const fixWinEPERM = (p, options, er, cb) => {
-  assert(p);
-  assert(options);
-  assert(typeof cb === 'function');
-  options.chmod(p, 0o666, er2 => {
-    if (er2) cb(er2.code === "ENOENT" ? null : er);else options.stat(p, (er3, stats) => {
-      if (er3) cb(er3.code === "ENOENT" ? null : er);else if (stats.isDirectory()) rmdir(p, options, er, cb);else options.unlink(p, cb);
-    });
-  });
-};
 
-const fixWinEPERMSync = (p, options, er) => {
-  assert(p);
-  assert(options);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.read = void 0;
 
-  try {
-    options.chmodSync(p, 0o666);
-  } catch (er2) {
-    if (er2.code === "ENOENT") return;else throw er;
-  }
+function read(path, settings) {
+  const lstat = settings.fs.lstatSync(path);
 
-  let stats;
+  if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
+    return lstat;
+  }
 
   try {
-    stats = options.statSync(p);
-  } catch (er3) {
-    if (er3.code === "ENOENT") return;else throw er;
+    const stat = settings.fs.statSync(path);
+
+    if (settings.markSymbolicLink) {
+      stat.isSymbolicLink = () => true;
+    }
+
+    return stat;
+  } catch (error) {
+    if (!settings.throwErrorOnBrokenSymbolicLink) {
+      return lstat;
+    }
+
+    throw error;
   }
+}
 
-  if (stats.isDirectory()) rmdirSync(p, options, er);else options.unlinkSync(p);
-};
+exports.read = read;
 
-const rmdir = (p, options, originalEr, cb) => {
-  assert(p);
-  assert(options);
-  assert(typeof cb === 'function'); // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
-  // if we guessed wrong, and it's not a directory, then
-  // raise the original error.
+/***/ }),
+/* 1065 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-  options.rmdir(p, er => {
-    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) rmkids(p, options, cb);else if (er && er.code === "ENOTDIR") cb(originalEr);else cb(er);
-  });
-};
+"use strict";
 
-const rmkids = (p, options, cb) => {
-  assert(p);
-  assert(options);
-  assert(typeof cb === 'function');
-  options.readdir(p, (er, files) => {
-    if (er) return cb(er);
-    let n = files.length;
-    if (n === 0) return options.rmdir(p, cb);
-    let errState;
-    files.forEach(f => {
-      rimraf(path.join(p, f), options, er => {
-        if (errState) return;
-        if (er) return cb(errState = er);
-        if (--n === 0) options.rmdir(p, cb);
-      });
-    });
-  });
-}; // this looks simpler, and is strictly *faster*, but will
-// tie up the JavaScript thread and fail on excessively
-// deep directory trees.
 
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-const rimrafSync = (p, options) => {
-  options = options || {};
-  defaults(options);
-  assert(p, 'rimraf: missing path');
-  assert.equal(typeof p, 'string', 'rimraf: path should be a string');
-  assert(options, 'rimraf: missing options');
-  assert.equal(typeof options, 'object', 'rimraf: options should be object');
-  let results;
+const fs = __webpack_require__(1066);
 
-  if (options.disableGlob || !glob.hasMagic(p)) {
-    results = [p];
-  } else {
-    try {
-      options.lstatSync(p);
-      results = [p];
-    } catch (er) {
-      results = glob.sync(p, options.glob);
-    }
+class Settings {
+  constructor() {
+    let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+    this._options = _options;
+    this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);
+    this.fs = fs.createFileSystemAdapter(this._options.fs);
+    this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);
+    this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
   }
 
-  if (!results.length) return;
+  _getValue(option, value) {
+    return option !== null && option !== void 0 ? option : value;
+  }
 
-  for (let i = 0; i < results.length; i++) {
-    const p = results[i];
-    let st;
+}
 
-    try {
-      st = options.lstatSync(p);
-    } catch (er) {
-      if (er.code === "ENOENT") return; // Windows can EPERM on stat.  Life is suffering.
+exports["default"] = Settings;
 
-      if (er.code === "EPERM" && isWindows) fixWinEPERMSync(p, options, er);
-    }
+/***/ }),
+/* 1066 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-    try {
-      // sunos lets the root user unlink directories, which is... weird.
-      if (st && st.isDirectory()) rmdirSync(p, options, null);else options.unlinkSync(p);
-    } catch (er) {
-      if (er.code === "ENOENT") return;
-      if (er.code === "EPERM") return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er);
-      if (er.code !== "EISDIR") throw er;
-      rmdirSync(p, options, er);
-    }
-  }
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
+
+const fs = __webpack_require__(971);
+
+exports.FILE_SYSTEM_ADAPTER = {
+  lstat: fs.lstat,
+  stat: fs.stat,
+  lstatSync: fs.lstatSync,
+  statSync: fs.statSync
 };
 
-const rmdirSync = (p, options, originalEr) => {
-  assert(p);
-  assert(options);
+function createFileSystemAdapter(fsMethods) {
+  if (fsMethods === undefined) {
+    return exports.FILE_SYSTEM_ADAPTER;
+  }
 
-  try {
-    options.rmdirSync(p);
-  } catch (er) {
-    if (er.code === "ENOENT") return;
-    if (er.code === "ENOTDIR") throw originalEr;
-    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") rmkidsSync(p, options);
+  return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
+}
+
+exports.createFileSystemAdapter = createFileSystemAdapter;
+
+/***/ }),
+/* 1067 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
+module.exports = runParallel;
+
+const queueMicrotask = __webpack_require__(1068);
+
+function runParallel(tasks, cb) {
+  let results, pending, keys;
+  let isSync = true;
+
+  if (Array.isArray(tasks)) {
+    results = [];
+    pending = tasks.length;
+  } else {
+    keys = Object.keys(tasks);
+    results = {};
+    pending = keys.length;
   }
-};
 
-const rmkidsSync = (p, options) => {
-  assert(p);
-  assert(options);
-  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)); // We only end up here once we got ENOTEMPTY at least once, and
-  // at this point, we are guaranteed to have removed all the kids.
-  // So, we know that it won't be ENOENT or ENOTDIR or anything else.
-  // try really hard to delete stuff on windows, because it has a
-  // PROFOUNDLY annoying habit of not closing handles promptly when
-  // files are deleted, resulting in spurious ENOTEMPTY errors.
+  function done(err) {
+    function end() {
+      if (cb) cb(err, results);
+      cb = null;
+    }
 
-  const retries = isWindows ? 100 : 1;
-  let i = 0;
+    if (isSync) queueMicrotask(end);else end();
+  }
 
-  do {
-    let threw = true;
+  function each(i, err, result) {
+    results[i] = result;
 
-    try {
-      const ret = options.rmdirSync(p, options);
-      threw = false;
-      return ret;
-    } finally {
-      if (++i < retries && threw) continue;
+    if (--pending === 0 || err) {
+      done(err);
     }
-  } while (true);
-};
+  }
 
-module.exports = rimraf;
-rimraf.sync = rimrafSync;
+  if (!pending) {
+    // empty
+    done(null);
+  } else if (keys) {
+    // object
+    keys.forEach(function (key) {
+      tasks[key](function (err, result) {
+        each(key, err, result);
+      });
+    });
+  } else {
+    // array
+    tasks.forEach(function (task, i) {
+      task(function (err, result) {
+        each(i, err, result);
+      });
+    });
+  }
+
+  isSync = false;
+}
 
 /***/ }),
-/* 910 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 1068 */
+/***/ ((module) => {
 
-/* provided dependency */ var process = __webpack_require__(494);
-/* provided dependency */ var console = __webpack_require__(438);
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern, false)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern, inGlobStar)
-// Get the first [n] items from pattern that are all strings
-// Join these together.  This is PREFIX.
-//   If there is no more remaining, then stat(PREFIX) and
-//   add to matches if it succeeds.  END.
-//
-// If inGlobStar and PREFIX is symlink and points to dir
-//   set ENTRIES = []
-// else readdir(PREFIX) as ENTRIES
-//   If fail, END
-//
-// with ENTRIES
-//   If pattern[n] is GLOBSTAR
-//     // handle the case where the globstar match is empty
-//     // by pruning it out, and testing the resulting pattern
-//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
-//     // handle other cases.
-//     for ENTRY in ENTRIES (not dotfiles)
-//       // attach globstar + tail onto the entry
-//       // Mark that this entry is a globstar match
-//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
-//
-//   else // not globstar
-//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-//       Test ENTRY against pattern[n]
-//       If fails, continue
-//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-//   Cache all stats and readdirs results to minimize syscall.  Since all
-//   we ever care about is existence and directory-ness, we can just keep
-//   `true` for files, and [children,...] for directories, or `false` for
-//   things that don't exist.
-module.exports = glob;
+/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
+let promise;
+module.exports = typeof queueMicrotask === 'function' ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) // reuse resolved promise, and allocate it lazily
+: cb => (promise || (promise = Promise.resolve())).then(cb).catch(err => setTimeout(() => {
+  throw err;
+}, 0));
 
-var rp = __webpack_require__(911);
+/***/ }),
+/* 1069 */
+/***/ ((__unused_webpack_module, exports) => {
 
-var minimatch = __webpack_require__(862);
+"use strict";
 
-var Minimatch = minimatch.Minimatch;
 
-var inherits = __webpack_require__(913);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
+const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');
 
-var EE = (__webpack_require__(914).EventEmitter);
+if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {
+  throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);
+}
 
-var path = __webpack_require__(429);
+const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);
+const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);
+const SUPPORTED_MAJOR_VERSION = 10;
+const SUPPORTED_MINOR_VERSION = 10;
+const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;
+const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;
+/**
+ * IS `true` for Node.js 10.10 and greater.
+ */
 
-var assert = __webpack_require__(431);
+exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;
 
-var isAbsolute = __webpack_require__(915);
+/***/ }),
+/* 1070 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var globSync = __webpack_require__(916);
+"use strict";
 
-var common = __webpack_require__(917);
 
-var setopts = common.setopts;
-var ownProp = common.ownProp;
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.fs = void 0;
 
-var inflight = __webpack_require__(918);
+const fs = __webpack_require__(1071);
 
-var util = __webpack_require__(439);
+exports.fs = fs;
 
-var childrenIgnored = common.childrenIgnored;
-var isIgnored = common.isIgnored;
+/***/ }),
+/* 1071 */
+/***/ ((__unused_webpack_module, exports) => {
 
-var once = __webpack_require__(920);
+"use strict";
 
-function glob(pattern, options, cb) {
-  if (typeof options === 'function') cb = options, options = {};
-  if (!options) options = {};
 
-  if (options.sync) {
-    if (cb) throw new TypeError('callback provided to sync glob');
-    return globSync(pattern, options);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.createDirentFromStats = void 0;
+
+class DirentFromStats {
+  constructor(name, stats) {
+    this.name = name;
+    this.isBlockDevice = stats.isBlockDevice.bind(stats);
+    this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
+    this.isDirectory = stats.isDirectory.bind(stats);
+    this.isFIFO = stats.isFIFO.bind(stats);
+    this.isFile = stats.isFile.bind(stats);
+    this.isSocket = stats.isSocket.bind(stats);
+    this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
   }
 
-  return new Glob(pattern, options, cb);
 }
 
-glob.sync = globSync;
-var GlobSync = glob.GlobSync = globSync.GlobSync; // old api surface
+function createDirentFromStats(name, stats) {
+  return new DirentFromStats(name, stats);
+}
 
-glob.glob = glob;
+exports.createDirentFromStats = createDirentFromStats;
 
-function extend(origin, add) {
-  if (add === null || typeof add !== 'object') {
-    return origin;
-  }
+/***/ }),
+/* 1072 */
+/***/ ((__unused_webpack_module, exports) => {
 
-  var keys = Object.keys(add);
-  var i = keys.length;
+"use strict";
 
-  while (i--) {
-    origin[keys[i]] = add[keys[i]];
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.joinPathSegments = void 0;
+
+function joinPathSegments(a, b, separator) {
+  /**
+   * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
+   */
+  if (a.endsWith(separator)) {
+    return a + b;
   }
 
-  return origin;
+  return a + separator + b;
 }
 
-glob.hasMagic = function (pattern, options_) {
-  var options = extend({}, options_);
-  options.noprocess = true;
-  var g = new Glob(pattern, options);
-  var set = g.minimatch.set;
-  if (!pattern) return false;
-  if (set.length > 1) return true;
+exports.joinPathSegments = joinPathSegments;
 
-  for (var j = 0; j < set[0].length; j++) {
-    if (typeof set[0][j] !== 'string') return true;
-  }
+/***/ }),
+/* 1073 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-  return false;
-};
+"use strict";
 
-glob.Glob = Glob;
-inherits(Glob, EE);
 
-function Glob(pattern, options, cb) {
-  if (typeof options === 'function') {
-    cb = options;
-    options = null;
-  }
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
 
-  if (options && options.sync) {
-    if (cb) throw new TypeError('callback provided to sync glob');
-    return new GlobSync(pattern, options);
-  }
+const fsStat = __webpack_require__(1062);
 
-  if (!(this instanceof Glob)) return new Glob(pattern, options, cb);
-  setopts(this, pattern, options);
-  this._didRealPath = false; // process each pattern in the minimatch set
+const constants_1 = __webpack_require__(1069);
 
-  var n = this.minimatch.set.length; // The matches are stored as {<filename>: true,...} so that
-  // duplicates are automagically pruned.
-  // Later, we do an Object.keys() on these.
-  // Keep them as a list so we can fill in when nonull is set.
+const utils = __webpack_require__(1070);
 
-  this.matches = new Array(n);
+const common = __webpack_require__(1072);
 
-  if (typeof cb === 'function') {
-    cb = once(cb);
-    this.on('error', cb);
-    this.on('end', function (matches) {
-      cb(null, matches);
-    });
+function read(directory, settings) {
+  if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
+    return readdirWithFileTypes(directory, settings);
   }
 
-  var self = this;
-  this._processing = 0;
-  this._emitQueue = [];
-  this._processQueue = [];
-  this.paused = false;
-  if (this.noprocess) return this;
-  if (n === 0) return done();
-  var sync = true;
-
-  for (var i = 0; i < n; i++) {
-    this._process(this.minimatch.set[i], i, false, done);
-  }
+  return readdir(directory, settings);
+}
 
-  sync = false;
+exports.read = read;
 
-  function done() {
-    --self._processing;
+function readdirWithFileTypes(directory, settings) {
+  const dirents = settings.fs.readdirSync(directory, {
+    withFileTypes: true
+  });
+  return dirents.map(dirent => {
+    const entry = {
+      dirent,
+      name: dirent.name,
+      path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
+    };
 
-    if (self._processing <= 0) {
-      if (sync) {
-        process.nextTick(function () {
-          self._finish();
-        });
-      } else {
-        self._finish();
+    if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {
+      try {
+        const stats = settings.fs.statSync(entry.path);
+        entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
+      } catch (error) {
+        if (settings.throwErrorOnBrokenSymbolicLink) {
+          throw error;
+        }
       }
     }
-  }
-}
-
-Glob.prototype._finish = function () {
-  assert(this instanceof Glob);
-  if (this.aborted) return;
-  if (this.realpath && !this._didRealpath) return this._realpath();
-  common.finish(this);
-  this.emit('end', this.found);
-};
 
-Glob.prototype._realpath = function () {
-  if (this._didRealpath) return;
-  this._didRealpath = true;
-  var n = this.matches.length;
-  if (n === 0) return this._finish();
-  var self = this;
+    return entry;
+  });
+}
 
-  for (var i = 0; i < this.matches.length; i++) this._realpathSet(i, next);
+exports.readdirWithFileTypes = readdirWithFileTypes;
 
-  function next() {
-    if (--n === 0) self._finish();
-  }
-};
+function readdir(directory, settings) {
+  const names = settings.fs.readdirSync(directory);
+  return names.map(name => {
+    const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
+    const stats = fsStat.statSync(entryPath, settings.fsStatSettings);
+    const entry = {
+      name,
+      path: entryPath,
+      dirent: utils.fs.createDirentFromStats(name, stats)
+    };
 
-Glob.prototype._realpathSet = function (index, cb) {
-  var matchset = this.matches[index];
-  if (!matchset) return cb();
-  var found = Object.keys(matchset);
-  var self = this;
-  var n = found.length;
-  if (n === 0) return cb();
-  var set = this.matches[index] = Object.create(null);
-  found.forEach(function (p, i) {
-    // If there's a problem with the stat, then it means that
-    // one or more of the links in the realpath couldn't be
-    // resolved.  just return the abs value in that case.
-    p = self._makeAbs(p);
-    rp.realpath(p, self.realpathCache, function (er, real) {
-      if (!er) set[real] = true;else if (er.syscall === 'stat') set[p] = true;else self.emit('error', er); // srsly wtf right here
+    if (settings.stats) {
+      entry.stats = stats;
+    }
 
-      if (--n === 0) {
-        self.matches[index] = set;
-        cb();
-      }
-    });
+    return entry;
   });
-};
+}
 
-Glob.prototype._mark = function (p) {
-  return common.mark(this, p);
-};
+exports.readdir = readdir;
 
-Glob.prototype._makeAbs = function (f) {
-  return common.makeAbs(this, f);
-};
+/***/ }),
+/* 1074 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-Glob.prototype.abort = function () {
-  this.aborted = true;
-  this.emit('abort');
-};
+"use strict";
 
-Glob.prototype.pause = function () {
-  if (!this.paused) {
-    this.paused = true;
-    this.emit('pause');
-  }
-};
 
-Glob.prototype.resume = function () {
-  if (this.paused) {
-    this.emit('resume');
-    this.paused = false;
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-    if (this._emitQueue.length) {
-      var eq = this._emitQueue.slice(0);
+const path = __webpack_require__(501);
 
-      this._emitQueue.length = 0;
+const fsStat = __webpack_require__(1062);
 
-      for (var i = 0; i < eq.length; i++) {
-        var e = eq[i];
+const fs = __webpack_require__(1075);
 
-        this._emitMatch(e[0], e[1]);
-      }
-    }
+class Settings {
+  constructor() {
+    let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+    this._options = _options;
+    this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
+    this.fs = fs.createFileSystemAdapter(this._options.fs);
+    this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
+    this.stats = this._getValue(this._options.stats, false);
+    this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
+    this.fsStatSettings = new fsStat.Settings({
+      followSymbolicLink: this.followSymbolicLinks,
+      fs: this.fs,
+      throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink
+    });
+  }
 
-    if (this._processQueue.length) {
-      var pq = this._processQueue.slice(0);
+  _getValue(option, value) {
+    return option !== null && option !== void 0 ? option : value;
+  }
 
-      this._processQueue.length = 0;
+}
 
-      for (var i = 0; i < pq.length; i++) {
-        var p = pq[i];
-        this._processing--;
+exports["default"] = Settings;
 
-        this._process(p[0], p[1], p[2], p[3]);
-      }
-    }
-  }
-};
+/***/ }),
+/* 1075 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
-  assert(this instanceof Glob);
-  assert(typeof cb === 'function');
-  if (this.aborted) return;
-  this._processing++;
+"use strict";
 
-  if (this.paused) {
-    this._processQueue.push([pattern, index, inGlobStar, cb]);
 
-    return;
-  } //console.error('PROCESS %d', this._processing, pattern)
-  // Get the first [n] parts of pattern that are all strings.
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
 
+const fs = __webpack_require__(971);
 
-  var n = 0;
+exports.FILE_SYSTEM_ADAPTER = {
+  lstat: fs.lstat,
+  stat: fs.stat,
+  lstatSync: fs.lstatSync,
+  statSync: fs.statSync,
+  readdir: fs.readdir,
+  readdirSync: fs.readdirSync
+};
 
-  while (typeof pattern[n] === 'string') {
-    n++;
-  } // now n is the index of the first one that is *not* a string.
-  // see if there's anything else
+function createFileSystemAdapter(fsMethods) {
+  if (fsMethods === undefined) {
+    return exports.FILE_SYSTEM_ADAPTER;
+  }
 
+  return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
+}
 
-  var prefix;
+exports.createFileSystemAdapter = createFileSystemAdapter;
 
-  switch (n) {
-    // if not, then this is rather simple
-    case pattern.length:
-      this._processSimple(pattern.join('/'), index, cb);
+/***/ }),
+/* 1076 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-      return;
+"use strict";
 
-    case 0:
-      // pattern *starts* with some non-trivial item.
-      // going to readdir(cwd), but not include the prefix in matches.
-      prefix = null;
-      break;
+/* eslint-disable no-var */
+
+var reusify = __webpack_require__(1077);
+
+function fastqueue(context, worker, concurrency) {
+  if (typeof context === 'function') {
+    concurrency = worker;
+    worker = context;
+    context = null;
+  }
+
+  if (concurrency < 1) {
+    throw new Error('fastqueue concurrency must be greater than 1');
+  }
+
+  var cache = reusify(Task);
+  var queueHead = null;
+  var queueTail = null;
+  var _running = 0;
+  var errorHandler = null;
+  var self = {
+    push: push,
+    drain: noop,
+    saturated: noop,
+    pause: pause,
+    paused: false,
+    concurrency: concurrency,
+    running: running,
+    resume: resume,
+    idle: idle,
+    length: length,
+    getQueue: getQueue,
+    unshift: unshift,
+    empty: noop,
+    kill: kill,
+    killAndDrain: killAndDrain,
+    error: error
+  };
+  return self;
 
-    default:
-      // pattern has some string bits in the front.
-      // whatever it starts with, whether that's 'absolute' like /foo/bar,
-      // or 'relative' like '../baz'
-      prefix = pattern.slice(0, n).join('/');
-      break;
+  function running() {
+    return _running;
   }
 
-  var remain = pattern.slice(n); // get the list of entries.
+  function pause() {
+    self.paused = true;
+  }
 
-  var read;
-  if (prefix === null) read = '.';else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
-    if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix;
-    read = prefix;
-  } else read = prefix;
+  function length() {
+    var current = queueHead;
+    var counter = 0;
 
-  var abs = this._makeAbs(read); //if ignored, skip _processing
+    while (current) {
+      current = current.next;
+      counter++;
+    }
 
+    return counter;
+  }
 
-  if (childrenIgnored(this, read)) return cb();
-  var isGlobStar = remain[0] === minimatch.GLOBSTAR;
-  if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb);else this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb);
-};
+  function getQueue() {
+    var current = queueHead;
+    var tasks = [];
 
-Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
-  var self = this;
+    while (current) {
+      tasks.push(current.value);
+      current = current.next;
+    }
 
-  this._readdir(abs, inGlobStar, function (er, entries) {
-    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb);
-  });
-};
+    return tasks;
+  }
 
-Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-  // if the abs isn't a dir, then nothing can match!
-  if (!entries) return cb(); // It will only match dot entries if it starts with a dot, or if
-  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
+  function resume() {
+    if (!self.paused) return;
+    self.paused = false;
 
-  var pn = remain[0];
-  var negate = !!this.minimatch.negate;
-  var rawGlob = pn._glob;
-  var dotOk = this.dot || rawGlob.charAt(0) === '.';
-  var matchedEntries = [];
+    for (var i = 0; i < self.concurrency; i++) {
+      _running++;
+      release();
+    }
+  }
 
-  for (var i = 0; i < entries.length; i++) {
-    var e = entries[i];
+  function idle() {
+    return _running === 0 && self.length() === 0;
+  }
 
-    if (e.charAt(0) !== '.' || dotOk) {
-      var m;
+  function push(value, done) {
+    var current = cache.get();
+    current.context = context;
+    current.release = release;
+    current.value = value;
+    current.callback = done || noop;
+    current.errorHandler = errorHandler;
 
-      if (negate && !prefix) {
-        m = !e.match(pn);
+    if (_running === self.concurrency || self.paused) {
+      if (queueTail) {
+        queueTail.next = current;
+        queueTail = current;
       } else {
-        m = e.match(pn);
+        queueHead = current;
+        queueTail = current;
+        self.saturated();
       }
-
-      if (m) matchedEntries.push(e);
+    } else {
+      _running++;
+      worker.call(context, current.value, current.worked);
     }
-  } //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
+  }
 
+  function unshift(value, done) {
+    var current = cache.get();
+    current.context = context;
+    current.release = release;
+    current.value = value;
+    current.callback = done || noop;
 
-  var len = matchedEntries.length; // If there are no matched entries, then nothing matches.
+    if (_running === self.concurrency || self.paused) {
+      if (queueHead) {
+        current.next = queueHead;
+        queueHead = current;
+      } else {
+        queueHead = current;
+        queueTail = current;
+        self.saturated();
+      }
+    } else {
+      _running++;
+      worker.call(context, current.value, current.worked);
+    }
+  }
 
-  if (len === 0) return cb(); // if this is the last remaining pattern bit, then no need for
-  // an additional stat *unless* the user has specified mark or
-  // stat explicitly.  We know they exist, since readdir returned
-  // them.
+  function release(holder) {
+    if (holder) {
+      cache.release(holder);
+    }
 
-  if (remain.length === 1 && !this.mark && !this.stat) {
-    if (!this.matches[index]) this.matches[index] = Object.create(null);
+    var next = queueHead;
 
-    for (var i = 0; i < len; i++) {
-      var e = matchedEntries[i];
+    if (next) {
+      if (!self.paused) {
+        if (queueTail === queueHead) {
+          queueTail = null;
+        }
 
-      if (prefix) {
-        if (prefix !== '/') e = prefix + '/' + e;else e = prefix + e;
-      }
+        queueHead = next.next;
+        next.next = null;
+        worker.call(context, next.value, next.worked);
 
-      if (e.charAt(0) === '/' && !this.nomount) {
-        e = path.join(this.root, e);
+        if (queueTail === null) {
+          self.empty();
+        }
+      } else {
+        _running--;
       }
+    } else if (--_running === 0) {
+      self.drain();
+    }
+  }
 
-      this._emitMatch(index, e);
-    } // This was the last one, and no stats were needed
+  function kill() {
+    queueHead = null;
+    queueTail = null;
+    self.drain = noop;
+  }
 
+  function killAndDrain() {
+    queueHead = null;
+    queueTail = null;
+    self.drain();
+    self.drain = noop;
+  }
 
-    return cb();
-  } // now test all matched entries as stand-ins for that part
-  // of the pattern.
+  function error(handler) {
+    errorHandler = handler;
+  }
+}
 
+function noop() {}
 
-  remain.shift();
+function Task() {
+  this.value = null;
+  this.callback = noop;
+  this.next = null;
+  this.release = noop;
+  this.context = null;
+  this.errorHandler = null;
+  var self = this;
 
-  for (var i = 0; i < len; i++) {
-    var e = matchedEntries[i];
-    var newPattern;
+  this.worked = function worked(err, result) {
+    var callback = self.callback;
+    var errorHandler = self.errorHandler;
+    var val = self.value;
+    self.value = null;
+    self.callback = noop;
 
-    if (prefix) {
-      if (prefix !== '/') e = prefix + '/' + e;else e = prefix + e;
+    if (self.errorHandler) {
+      errorHandler(err, val);
     }
 
-    this._process([e].concat(remain), index, inGlobStar, cb);
+    callback.call(self.context, err, result);
+    self.release(self);
+  };
+}
+
+function queueAsPromised(context, worker, concurrency) {
+  if (typeof context === 'function') {
+    concurrency = worker;
+    worker = context;
+    context = null;
   }
 
-  cb();
-};
+  function asyncWrapper(arg, cb) {
+    worker.call(this, arg).then(function (res) {
+      cb(null, res);
+    }, cb);
+  }
 
-Glob.prototype._emitMatch = function (index, e) {
-  if (this.aborted) return;
-  if (isIgnored(this, e)) return;
+  var queue = fastqueue(context, asyncWrapper, concurrency);
+  var pushCb = queue.push;
+  var unshiftCb = queue.unshift;
+  queue.push = push;
+  queue.unshift = unshift;
+  queue.drained = drained;
+  return queue;
 
-  if (this.paused) {
-    this._emitQueue.push([index, e]);
+  function push(value) {
+    var p = new Promise(function (resolve, reject) {
+      pushCb(value, function (err, result) {
+        if (err) {
+          reject(err);
+          return;
+        }
 
-    return;
+        resolve(result);
+      });
+    }); // Let's fork the promise chain to
+    // make the error bubble up to the user but
+    // not lead to a unhandledRejection
+
+    p.catch(noop);
+    return p;
   }
 
-  var abs = isAbsolute(e) ? e : this._makeAbs(e);
-  if (this.mark) e = this._mark(e);
-  if (this.absolute) e = abs;
-  if (this.matches[index][e]) return;
+  function unshift(value) {
+    var p = new Promise(function (resolve, reject) {
+      unshiftCb(value, function (err, result) {
+        if (err) {
+          reject(err);
+          return;
+        }
 
-  if (this.nodir) {
-    var c = this.cache[abs];
-    if (c === 'DIR' || Array.isArray(c)) return;
+        resolve(result);
+      });
+    }); // Let's fork the promise chain to
+    // make the error bubble up to the user but
+    // not lead to a unhandledRejection
+
+    p.catch(noop);
+    return p;
   }
 
-  this.matches[index][e] = true;
-  var st = this.statCache[abs];
-  if (st) this.emit('stat', e, st);
-  this.emit('match', e);
-};
+  function drained() {
+    var previousDrain = queue.drain;
+    var p = new Promise(function (resolve) {
+      queue.drain = function () {
+        previousDrain();
+        resolve();
+      };
+    });
+    return p;
+  }
+}
 
-Glob.prototype._readdirInGlobStar = function (abs, cb) {
-  if (this.aborted) return; // follow all symlinked directories forever
-  // just proceed as if this is a non-globstar situation
+module.exports = fastqueue;
+module.exports.promise = queueAsPromised;
 
-  if (this.follow) return this._readdir(abs, false, cb);
-  var lstatkey = 'lstat\0' + abs;
-  var self = this;
-  var lstatcb = inflight(lstatkey, lstatcb_);
-  if (lstatcb) self.fs.lstat(abs, lstatcb);
+/***/ }),
+/* 1077 */
+/***/ ((module) => {
 
-  function lstatcb_(er, lstat) {
-    if (er && er.code === 'ENOENT') return cb();
-    var isSym = lstat && lstat.isSymbolicLink();
-    self.symlinks[abs] = isSym; // If it's not a symlink or a dir, then it's definitely a regular file.
-    // don't bother doing a readdir in that case.
+"use strict";
 
-    if (!isSym && lstat && !lstat.isDirectory()) {
-      self.cache[abs] = 'FILE';
-      cb();
-    } else self._readdir(abs, false, cb);
-  }
-};
 
-Glob.prototype._readdir = function (abs, inGlobStar, cb) {
-  if (this.aborted) return;
-  cb = inflight('readdir\0' + abs + '\0' + inGlobStar, cb);
-  if (!cb) return; //console.error('RD %j %j', +inGlobStar, abs)
+function reusify(Constructor) {
+  var head = new Constructor();
+  var tail = head;
 
-  if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs, cb);
+  function get() {
+    var current = head;
 
-  if (ownProp(this.cache, abs)) {
-    var c = this.cache[abs];
-    if (!c || c === 'FILE') return cb();
-    if (Array.isArray(c)) return cb(null, c);
+    if (current.next) {
+      head = current.next;
+    } else {
+      head = new Constructor();
+      tail = head;
+    }
+
+    current.next = null;
+    return current;
   }
 
-  var self = this;
-  self.fs.readdir(abs, readdirCb(this, abs, cb));
-};
+  function release(obj) {
+    tail.next = obj;
+    tail = obj;
+  }
 
-function readdirCb(self, abs, cb) {
-  return function (er, entries) {
-    if (er) self._readdirError(abs, er, cb);else self._readdirEntries(abs, entries, cb);
+  return {
+    get: get,
+    release: release
   };
 }
 
-Glob.prototype._readdirEntries = function (abs, entries, cb) {
-  if (this.aborted) return; // if we haven't asked to stat everything, then just
-  // assume that everything in there exists, so we can avoid
-  // having to stat it a second time.
+module.exports = reusify;
 
-  if (!this.mark && !this.stat) {
-    for (var i = 0; i < entries.length; i++) {
-      var e = entries[i];
-      if (abs === '/') e = abs + e;else e = abs + '/' + e;
-      this.cache[e] = true;
-    }
+/***/ }),
+/* 1078 */
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;
+
+function isFatalError(settings, error) {
+  if (settings.errorFilter === null) {
+    return true;
   }
 
-  this.cache[abs] = entries;
-  return cb(null, entries);
-};
+  return !settings.errorFilter(error);
+}
 
-Glob.prototype._readdirError = function (f, er, cb) {
-  if (this.aborted) return; // handle errors, and cache the information
+exports.isFatalError = isFatalError;
 
-  switch (er.code) {
-    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+function isAppliedFilter(filter, value) {
+  return filter === null || filter(value);
+}
 
-    case 'ENOTDIR':
-      // totally normal. means it *does* exist.
-      var abs = this._makeAbs(f);
+exports.isAppliedFilter = isAppliedFilter;
 
-      this.cache[abs] = 'FILE';
+function replacePathSegmentSeparator(filepath, separator) {
+  return filepath.split(/[/\\]/).join(separator);
+}
 
-      if (abs === this.cwdAbs) {
-        var error = new Error(er.code + ' invalid cwd ' + this.cwd);
-        error.path = this.cwd;
-        error.code = er.code;
-        this.emit('error', error);
-        this.abort();
-      }
+exports.replacePathSegmentSeparator = replacePathSegmentSeparator;
 
-      break;
+function joinPathSegments(a, b, separator) {
+  if (a === '') {
+    return b;
+  }
+  /**
+   * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
+   */
 
-    case 'ENOENT': // not terribly unusual
 
-    case 'ELOOP':
-    case 'ENAMETOOLONG':
-    case 'UNKNOWN':
-      this.cache[this._makeAbs(f)] = false;
-      break;
+  if (a.endsWith(separator)) {
+    return a + b;
+  }
 
-    default:
-      // some unusual error.  Treat as failure.
-      this.cache[this._makeAbs(f)] = false;
+  return a + separator + b;
+}
 
-      if (this.strict) {
-        this.emit('error', er); // If the error is handled, then we abort
-        // if not, we threw out of here
+exports.joinPathSegments = joinPathSegments;
 
-        this.abort();
-      }
+/***/ }),
+/* 1079 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-      if (!this.silent) console.error('glob error', er);
-      break;
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const common = __webpack_require__(1078);
+
+class Reader {
+  constructor(_root, _settings) {
+    this._root = _root;
+    this._settings = _settings;
+    this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);
   }
 
-  return cb();
-};
+}
 
-Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
-  var self = this;
+exports["default"] = Reader;
 
-  this._readdir(abs, inGlobStar, function (er, entries) {
-    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb);
-  });
-};
+/***/ }),
+/* 1080 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-  //console.error('pgs2', prefix, remain[0], entries)
-  // no entries means not a dir, so it can never have matches
-  // foo.txt/** doesn't match foo.txt
-  if (!entries) return cb(); // test without the globstar, and with every child both below
-  // and replacing the globstar.
+"use strict";
 
-  var remainWithoutGlobStar = remain.slice(1);
-  var gspref = prefix ? [prefix] : [];
-  var noGlobStar = gspref.concat(remainWithoutGlobStar); // the noGlobStar pattern exits the inGlobStar state
 
-  this._process(noGlobStar, index, false, cb);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-  var isSym = this.symlinks[abs];
-  var len = entries.length; // If it's a symlink, and we're in a globstar, then stop
+const stream_1 = __webpack_require__(1025);
 
-  if (isSym && inGlobStar) return cb();
+const async_1 = __webpack_require__(1059);
 
-  for (var i = 0; i < len; i++) {
-    var e = entries[i];
-    if (e.charAt(0) === '.' && !this.dot) continue; // these two cases enter the inGlobStar state
+class StreamProvider {
+  constructor(_root, _settings) {
+    this._root = _root;
+    this._settings = _settings;
+    this._reader = new async_1.default(this._root, this._settings);
+    this._stream = new stream_1.Readable({
+      objectMode: true,
+      read: () => {},
+      destroy: () => {
+        if (!this._reader.isDestroyed) {
+          this._reader.destroy();
+        }
+      }
+    });
+  }
 
-    var instead = gspref.concat(entries[i], remainWithoutGlobStar);
+  read() {
+    this._reader.onError(error => {
+      this._stream.emit('error', error);
+    });
 
-    this._process(instead, index, true, cb);
+    this._reader.onEntry(entry => {
+      this._stream.push(entry);
+    });
 
-    var below = gspref.concat(entries[i], remain);
+    this._reader.onEnd(() => {
+      this._stream.push(null);
+    });
 
-    this._process(below, index, true, cb);
+    this._reader.read();
+
+    return this._stream;
   }
 
-  cb();
-};
+}
 
-Glob.prototype._processSimple = function (prefix, index, cb) {
-  // XXX review this.  Shouldn't it be doing the mounting etc
-  // before doing stat?  kinda weird?
-  var self = this;
+exports["default"] = StreamProvider;
 
-  this._stat(prefix, function (er, exists) {
-    self._processSimple2(prefix, index, er, exists, cb);
-  });
-};
+/***/ }),
+/* 1081 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
-  //console.error('ps2', prefix, exists)
-  if (!this.matches[index]) this.matches[index] = Object.create(null); // If it doesn't exist, then just mark the lack of results
+"use strict";
 
-  if (!exists) return cb();
 
-  if (prefix && isAbsolute(prefix) && !this.nomount) {
-    var trail = /[\/\\]$/.test(prefix);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-    if (prefix.charAt(0) === '/') {
-      prefix = path.join(this.root, prefix);
-    } else {
-      prefix = path.resolve(this.root, prefix);
-      if (trail) prefix += '/';
-    }
+const sync_1 = __webpack_require__(1082);
+
+class SyncProvider {
+  constructor(_root, _settings) {
+    this._root = _root;
+    this._settings = _settings;
+    this._reader = new sync_1.default(this._root, this._settings);
   }
 
-  if (process.platform === 'win32') prefix = prefix.replace(/\\/g, '/'); // Mark this as a match
+  read() {
+    return this._reader.read();
+  }
 
-  this._emitMatch(index, prefix);
+}
 
-  cb();
-}; // Returns either 'DIR', 'FILE', or false
+exports["default"] = SyncProvider;
 
+/***/ }),
+/* 1082 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-Glob.prototype._stat = function (f, cb) {
-  var abs = this._makeAbs(f);
+"use strict";
 
-  var needDir = f.slice(-1) === '/';
-  if (f.length > this.maxLength) return cb();
 
-  if (!this.stat && ownProp(this.cache, abs)) {
-    var c = this.cache[abs];
-    if (Array.isArray(c)) c = 'DIR'; // It exists, but maybe not how we need it
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-    if (!needDir || c === 'DIR') return cb(null, c);
-    if (needDir && c === 'FILE') return cb(); // otherwise we have to stat, because maybe c=true
-    // if we know it exists, but not what it is.
-  }
+const fsScandir = __webpack_require__(1060);
 
-  var exists;
-  var stat = this.statCache[abs];
+const common = __webpack_require__(1078);
 
-  if (stat !== undefined) {
-    if (stat === false) return cb(null, stat);else {
-      var type = stat.isDirectory() ? 'DIR' : 'FILE';
-      if (needDir && type === 'FILE') return cb();else return cb(null, type, stat);
-    }
+const reader_1 = __webpack_require__(1079);
+
+class SyncReader extends reader_1.default {
+  constructor() {
+    super(...arguments);
+    this._scandir = fsScandir.scandirSync;
+    this._storage = [];
+    this._queue = new Set();
   }
 
-  var self = this;
-  var statcb = inflight('stat\0' + abs, lstatcb_);
-  if (statcb) self.fs.lstat(abs, statcb);
+  read() {
+    this._pushToQueue(this._root, this._settings.basePath);
 
-  function lstatcb_(er, lstat) {
-    if (lstat && lstat.isSymbolicLink()) {
-      // If it's a symlink, then treat it as the target, unless
-      // the target does not exist, then treat it as a file.
-      return self.fs.stat(abs, function (er, stat) {
-        if (er) self._stat2(f, abs, null, lstat, cb);else self._stat2(f, abs, er, stat, cb);
-      });
-    } else {
-      self._stat2(f, abs, er, lstat, cb);
-    }
+    this._handleQueue();
+
+    return this._storage;
   }
-};
 
-Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
-  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
-    this.statCache[abs] = false;
-    return cb();
+  _pushToQueue(directory, base) {
+    this._queue.add({
+      directory,
+      base
+    });
   }
 
-  var needDir = f.slice(-1) === '/';
-  this.statCache[abs] = stat;
-  if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) return cb(null, false, stat);
-  var c = true;
-  if (stat) c = stat.isDirectory() ? 'DIR' : 'FILE';
-  this.cache[abs] = this.cache[abs] || c;
-  if (needDir && c === 'FILE') return cb();
-  return cb(null, c, stat);
-};
+  _handleQueue() {
+    for (const item of this._queue.values()) {
+      this._handleDirectory(item.directory, item.base);
+    }
+  }
 
-/***/ }),
-/* 911 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+  _handleDirectory(directory, base) {
+    try {
+      const entries = this._scandir(directory, this._settings.fsScandirSettings);
 
-/* provided dependency */ var process = __webpack_require__(494);
-module.exports = realpath;
-realpath.realpath = realpath;
-realpath.sync = realpathSync;
-realpath.realpathSync = realpathSync;
-realpath.monkeypatch = monkeypatch;
-realpath.unmonkeypatch = unmonkeypatch;
+      for (const entry of entries) {
+        this._handleEntry(entry, base);
+      }
+    } catch (error) {
+      this._handleError(error);
+    }
+  }
 
-var fs = __webpack_require__(880);
+  _handleError(error) {
+    if (!common.isFatalError(this._settings, error)) {
+      return;
+    }
 
-var origRealpath = fs.realpath;
-var origRealpathSync = fs.realpathSync;
-var version = process.version;
-var ok = /^v[0-5]\./.test(version);
+    throw error;
+  }
 
-var old = __webpack_require__(912);
+  _handleEntry(entry, base) {
+    const fullpath = entry.path;
 
-function newError(er) {
-  return er && er.syscall === 'realpath' && (er.code === 'ELOOP' || er.code === 'ENOMEM' || er.code === 'ENAMETOOLONG');
-}
+    if (base !== undefined) {
+      entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
+    }
 
-function realpath(p, cache, cb) {
-  if (ok) {
-    return origRealpath(p, cache, cb);
+    if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
+      this._pushToStorage(entry);
+    }
+
+    if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
+      this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
+    }
   }
 
-  if (typeof cache === 'function') {
-    cb = cache;
-    cache = null;
+  _pushToStorage(entry) {
+    this._storage.push(entry);
   }
 
-  origRealpath(p, cache, function (er, result) {
-    if (newError(er)) {
-      old.realpath(p, cache, cb);
-    } else {
-      cb(er, result);
-    }
-  });
 }
 
-function realpathSync(p, cache) {
-  if (ok) {
-    return origRealpathSync(p, cache);
+exports["default"] = SyncReader;
+
+/***/ }),
+/* 1083 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const path = __webpack_require__(501);
+
+const fsScandir = __webpack_require__(1060);
+
+class Settings {
+  constructor() {
+    let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+    this._options = _options;
+    this.basePath = this._getValue(this._options.basePath, undefined);
+    this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);
+    this.deepFilter = this._getValue(this._options.deepFilter, null);
+    this.entryFilter = this._getValue(this._options.entryFilter, null);
+    this.errorFilter = this._getValue(this._options.errorFilter, null);
+    this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
+    this.fsScandirSettings = new fsScandir.Settings({
+      followSymbolicLinks: this._options.followSymbolicLinks,
+      fs: this._options.fs,
+      pathSegmentSeparator: this._options.pathSegmentSeparator,
+      stats: this._options.stats,
+      throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink
+    });
   }
 
-  try {
-    return origRealpathSync(p, cache);
-  } catch (er) {
-    if (newError(er)) {
-      return old.realpathSync(p, cache);
-    } else {
-      throw er;
-    }
+  _getValue(option, value) {
+    return option !== null && option !== void 0 ? option : value;
   }
-}
 
-function monkeypatch() {
-  fs.realpath = realpath;
-  fs.realpathSync = realpathSync;
 }
 
-function unmonkeypatch() {
-  fs.realpath = origRealpath;
-  fs.realpathSync = origRealpathSync;
-}
+exports["default"] = Settings;
 
 /***/ }),
-/* 912 */
+/* 1084 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-/* provided dependency */ var process = __webpack_require__(494);
-/* provided dependency */ var console = __webpack_require__(438);
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-var pathModule = __webpack_require__(429);
+"use strict";
 
-var isWindows = process.platform === 'win32';
 
-var fs = __webpack_require__(880); // JavaScript implementation of realpath, ported from node pre-v6
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+const path = __webpack_require__(501);
 
+const fsStat = __webpack_require__(1062);
 
-var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
+const utils = __webpack_require__(1028);
 
-function rethrow() {
-  // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
-  // is fairly slow to generate.
-  var callback;
+class Reader {
+  constructor(_settings) {
+    this._settings = _settings;
+    this._fsStatSettings = new fsStat.Settings({
+      followSymbolicLink: this._settings.followSymbolicLinks,
+      fs: this._settings.fs,
+      throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks
+    });
+  }
 
-  if (DEBUG) {
-    var backtrace = new Error();
-    callback = debugCallback;
-  } else callback = missingCallback;
+  _getFullEntryPath(filepath) {
+    return path.resolve(this._settings.cwd, filepath);
+  }
 
-  return callback;
+  _makeEntry(stats, pattern) {
+    const entry = {
+      name: pattern,
+      path: pattern,
+      dirent: utils.fs.createDirentFromStats(pattern, stats)
+    };
 
-  function debugCallback(err) {
-    if (err) {
-      backtrace.message = err.message;
-      err = backtrace;
-      missingCallback(err);
+    if (this._settings.stats) {
+      entry.stats = stats;
     }
+
+    return entry;
   }
 
-  function missingCallback(err) {
-    if (err) {
-      if (process.throwDeprecation) throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
-      else if (!process.noDeprecation) {
-        var msg = 'fs: missing callback ' + (err.stack || err.message);
-        if (process.traceDeprecation) console.trace(msg);else console.error(msg);
-      }
-    }
+  _isFatalError(error) {
+    return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;
   }
-}
 
-function maybeCallback(cb) {
-  return typeof cb === 'function' ? cb : rethrow();
 }
 
-var normalize = pathModule.normalize; // Regexp that finds the next partion of a (partial) path
-// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
+exports["default"] = Reader;
 
-if (isWindows) {
-  var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
-} else {
-  var nextPartRe = /(.*?)(?:[\/]+|$)/g;
-} // Regex to find the device root, including trailing slash. E.g. 'c:\\'.
+/***/ }),
+/* 1085 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
+"use strict";
 
-if (isWindows) {
-  var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
-} else {
-  var splitRootRe = /^[\/]*/;
-}
 
-exports.realpathSync = function realpathSync(p, cache) {
-  // make p is absolute
-  p = pathModule.resolve(p);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
-    return cache[p];
-  }
+const stream_1 = __webpack_require__(1025);
 
-  var original = p,
-      seenLinks = {},
-      knownHard = {}; // current character position in p
+const fsStat = __webpack_require__(1062);
 
-  var pos; // the partial path so far, including a trailing slash if any
+const fsWalk = __webpack_require__(1057);
 
-  var current; // the partial path without a trailing slash (except when pointing at a root)
+const reader_1 = __webpack_require__(1084);
 
-  var base; // the partial path scanned in the previous round, with slash
+class ReaderStream extends reader_1.default {
+  constructor() {
+    super(...arguments);
+    this._walkStream = fsWalk.walkStream;
+    this._stat = fsStat.stat;
+  }
 
-  var previous;
-  start();
+  dynamic(root, options) {
+    return this._walkStream(root, options);
+  }
 
-  function start() {
-    // Skip over roots
-    var m = splitRootRe.exec(p);
-    pos = m[0].length;
-    current = m[0];
-    base = m[0];
-    previous = ''; // On windows, check that the root exists. On unix there is no need.
+  static(patterns, options) {
+    const filepaths = patterns.map(this._getFullEntryPath, this);
+    const stream = new stream_1.PassThrough({
+      objectMode: true
+    });
 
-    if (isWindows && !knownHard[base]) {
-      fs.lstatSync(base);
-      knownHard[base] = true;
-    }
-  } // walk down the path, swapping out linked pathparts for their real
-  // values
-  // NB: p.length changes.
+    stream._write = (index, _enc, done) => {
+      return this._getEntry(filepaths[index], patterns[index], options).then(entry => {
+        if (entry !== null && options.entryFilter(entry)) {
+          stream.push(entry);
+        }
 
+        if (index === filepaths.length - 1) {
+          stream.end();
+        }
 
-  while (pos < p.length) {
-    // find the next part
-    nextPartRe.lastIndex = pos;
-    var result = nextPartRe.exec(p);
-    previous = current;
-    current += result[0];
-    base = previous + result[1];
-    pos = nextPartRe.lastIndex; // continue if not a symlink
+        done();
+      }).catch(done);
+    };
 
-    if (knownHard[base] || cache && cache[base] === base) {
-      continue;
+    for (let i = 0; i < filepaths.length; i++) {
+      stream.write(i);
     }
 
-    var resolvedLink;
-
-    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
-      // some known symbolic link.  no need to stat again.
-      resolvedLink = cache[base];
-    } else {
-      var stat = fs.lstatSync(base);
+    return stream;
+  }
 
-      if (!stat.isSymbolicLink()) {
-        knownHard[base] = true;
-        if (cache) cache[base] = base;
-        continue;
-      } // read the link if it wasn't read before
-      // dev/ino always return 0 on windows, so skip the check.
+  _getEntry(filepath, pattern, options) {
+    return this._getStat(filepath).then(stats => this._makeEntry(stats, pattern)).catch(error => {
+      if (options.errorFilter(error)) {
+        return null;
+      }
 
+      throw error;
+    });
+  }
 
-      var linkTarget = null;
+  _getStat(filepath) {
+    return new Promise((resolve, reject) => {
+      this._stat(filepath, this._fsStatSettings, (error, stats) => {
+        return error === null ? resolve(stats) : reject(error);
+      });
+    });
+  }
 
-      if (!isWindows) {
-        var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+}
 
-        if (seenLinks.hasOwnProperty(id)) {
-          linkTarget = seenLinks[id];
-        }
-      }
+exports["default"] = ReaderStream;
 
-      if (linkTarget === null) {
-        fs.statSync(base);
-        linkTarget = fs.readlinkSync(base);
-      }
+/***/ }),
+/* 1086 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-      resolvedLink = pathModule.resolve(previous, linkTarget); // track this, if given a cache.
+"use strict";
 
-      if (cache) cache[base] = resolvedLink;
-      if (!isWindows) seenLinks[id] = linkTarget;
-    } // resolve the link, then start over
 
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-    p = pathModule.resolve(resolvedLink, p.slice(pos));
-    start();
-  }
+const path = __webpack_require__(501);
 
-  if (cache) cache[original] = p;
-  return p;
-};
+const deep_1 = __webpack_require__(1087);
 
-exports.realpath = function realpath(p, cache, cb) {
-  if (typeof cb !== 'function') {
-    cb = maybeCallback(cache);
-    cache = null;
-  } // make p is absolute
+const entry_1 = __webpack_require__(1090);
 
+const error_1 = __webpack_require__(1091);
 
-  p = pathModule.resolve(p);
+const entry_2 = __webpack_require__(1092);
 
-  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
-    return process.nextTick(cb.bind(null, null, cache[p]));
+class Provider {
+  constructor(_settings) {
+    this._settings = _settings;
+    this.errorFilter = new error_1.default(this._settings);
+    this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());
+    this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());
+    this.entryTransformer = new entry_2.default(this._settings);
   }
 
-  var original = p,
-      seenLinks = {},
-      knownHard = {}; // current character position in p
-
-  var pos; // the partial path so far, including a trailing slash if any
-
-  var current; // the partial path without a trailing slash (except when pointing at a root)
-
-  var base; // the partial path scanned in the previous round, with slash
+  _getRootDirectory(task) {
+    return path.resolve(this._settings.cwd, task.base);
+  }
 
-  var previous;
-  start();
+  _getReaderOptions(task) {
+    const basePath = task.base === '.' ? '' : task.base;
+    return {
+      basePath,
+      pathSegmentSeparator: '/',
+      concurrency: this._settings.concurrency,
+      deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),
+      entryFilter: this.entryFilter.getFilter(task.positive, task.negative),
+      errorFilter: this.errorFilter.getFilter(),
+      followSymbolicLinks: this._settings.followSymbolicLinks,
+      fs: this._settings.fs,
+      stats: this._settings.stats,
+      throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,
+      transform: this.entryTransformer.getTransformer()
+    };
+  }
 
-  function start() {
-    // Skip over roots
-    var m = splitRootRe.exec(p);
-    pos = m[0].length;
-    current = m[0];
-    base = m[0];
-    previous = ''; // On windows, check that the root exists. On unix there is no need.
+  _getMicromatchOptions() {
+    return {
+      dot: this._settings.dot,
+      matchBase: this._settings.baseNameMatch,
+      nobrace: !this._settings.braceExpansion,
+      nocase: !this._settings.caseSensitiveMatch,
+      noext: !this._settings.extglob,
+      noglobstar: !this._settings.globstar,
+      posix: true,
+      strictSlashes: false
+    };
+  }
 
-    if (isWindows && !knownHard[base]) {
-      fs.lstat(base, function (err) {
-        if (err) return cb(err);
-        knownHard[base] = true;
-        LOOP();
-      });
-    } else {
-      process.nextTick(LOOP);
-    }
-  } // walk down the path, swapping out linked pathparts for their real
-  // values
+}
 
+exports["default"] = Provider;
 
-  function LOOP() {
-    // stop if scanned past end of path
-    if (pos >= p.length) {
-      if (cache) cache[original] = p;
-      return cb(null, p);
-    } // find the next part
+/***/ }),
+/* 1087 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
+"use strict";
 
-    nextPartRe.lastIndex = pos;
-    var result = nextPartRe.exec(p);
-    previous = current;
-    current += result[0];
-    base = previous + result[1];
-    pos = nextPartRe.lastIndex; // continue if not a symlink
 
-    if (knownHard[base] || cache && cache[base] === base) {
-      return process.nextTick(LOOP);
-    }
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
-      // known symbolic link.  no need to stat again.
-      return gotResolvedLink(cache[base]);
-    }
+const utils = __webpack_require__(1028);
 
-    return fs.lstat(base, gotStat);
+const partial_1 = __webpack_require__(1088);
+
+class DeepFilter {
+  constructor(_settings, _micromatchOptions) {
+    this._settings = _settings;
+    this._micromatchOptions = _micromatchOptions;
   }
 
-  function gotStat(err, stat) {
-    if (err) return cb(err); // if not a symlink, skip to the next path part
+  getFilter(basePath, positive, negative) {
+    const matcher = this._getMatcher(positive);
 
-    if (!stat.isSymbolicLink()) {
-      knownHard[base] = true;
-      if (cache) cache[base] = base;
-      return process.nextTick(LOOP);
-    } // stat & read the link if not read before
-    // call gotTarget as soon as the link target is known
-    // dev/ino always return 0 on windows, so skip the check.
+    const negativeRe = this._getNegativePatternsRe(negative);
 
+    return entry => this._filter(basePath, entry, matcher, negativeRe);
+  }
 
-    if (!isWindows) {
-      var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+  _getMatcher(patterns) {
+    return new partial_1.default(patterns, this._settings, this._micromatchOptions);
+  }
 
-      if (seenLinks.hasOwnProperty(id)) {
-        return gotTarget(null, seenLinks[id], base);
-      }
+  _getNegativePatternsRe(patterns) {
+    const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);
+    return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);
+  }
+
+  _filter(basePath, entry, matcher, negativeRe) {
+    if (this._isSkippedByDeep(basePath, entry.path)) {
+      return false;
     }
 
-    fs.stat(base, function (err) {
-      if (err) return cb(err);
-      fs.readlink(base, function (err, target) {
-        if (!isWindows) seenLinks[id] = target;
-        gotTarget(err, target);
-      });
-    });
-  }
+    if (this._isSkippedSymbolicLink(entry)) {
+      return false;
+    }
 
-  function gotTarget(err, target, base) {
-    if (err) return cb(err);
-    var resolvedLink = pathModule.resolve(previous, target);
-    if (cache) cache[base] = resolvedLink;
-    gotResolvedLink(resolvedLink);
+    const filepath = utils.path.removeLeadingDotSegment(entry.path);
+
+    if (this._isSkippedByPositivePatterns(filepath, matcher)) {
+      return false;
+    }
+
+    return this._isSkippedByNegativePatterns(filepath, negativeRe);
   }
 
-  function gotResolvedLink(resolvedLink) {
-    // resolve the link, then start over
-    p = pathModule.resolve(resolvedLink, p.slice(pos));
-    start();
+  _isSkippedByDeep(basePath, entryPath) {
+    /**\r
+     * Avoid unnecessary depth calculations when it doesn't matter.\r
+     */
+    if (this._settings.deep === Infinity) {
+      return false;
+    }
+
+    return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;
   }
-};
 
-/***/ }),
-/* 913 */
-/***/ ((module) => {
+  _getEntryLevel(basePath, entryPath) {
+    const entryPathDepth = entryPath.split('/').length;
 
-if (typeof Object.create === 'function') {
-  // implementation from standard node.js 'util' module
-  module.exports = function inherits(ctor, superCtor) {
-    if (superCtor) {
-      ctor.super_ = superCtor;
-      ctor.prototype = Object.create(superCtor.prototype, {
-        constructor: {
-          value: ctor,
-          enumerable: false,
-          writable: true,
-          configurable: true
-        }
-      });
+    if (basePath === '') {
+      return entryPathDepth;
     }
-  };
-} else {
-  // old school shim for old browsers
-  module.exports = function inherits(ctor, superCtor) {
-    if (superCtor) {
-      ctor.super_ = superCtor;
 
-      var TempCtor = function () {};
+    const basePathDepth = basePath.split('/').length;
+    return entryPathDepth - basePathDepth;
+  }
 
-      TempCtor.prototype = superCtor.prototype;
-      ctor.prototype = new TempCtor();
-      ctor.prototype.constructor = ctor;
-    }
-  };
-}
+  _isSkippedSymbolicLink(entry) {
+    return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();
+  }
 
-/***/ }),
-/* 914 */
-/***/ ((module) => {
+  _isSkippedByPositivePatterns(entryPath, matcher) {
+    return !this._settings.baseNameMatch && !matcher.match(entryPath);
+  }
 
-"use strict";
-module.exports = require("events");
+  _isSkippedByNegativePatterns(entryPath, patternsRe) {
+    return !utils.pattern.matchAny(entryPath, patternsRe);
+  }
+
+}
+
+exports["default"] = DeepFilter;
 
 /***/ }),
-/* 915 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+/* 1088 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
 "use strict";
-/* provided dependency */ var process = __webpack_require__(494);
 
 
-function posix(path) {
-  return path.charAt(0) === '/';
-}
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-function win32(path) {
-  // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
-  var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
-  var result = splitDeviceRe.exec(path);
-  var device = result[1] || '';
-  var isUnc = Boolean(device && device.charAt(1) !== ':'); // UNC paths are always absolute
+const matcher_1 = __webpack_require__(1089);
 
-  return Boolean(result[2] || isUnc);
-}
+class PartialMatcher extends matcher_1.default {
+  match(filepath) {
+    const parts = filepath.split('/');
+    const levels = parts.length;
 
-module.exports = process.platform === 'win32' ? win32 : posix;
-module.exports.posix = posix;
-module.exports.win32 = win32;
+    const patterns = this._storage.filter(info => !info.complete || info.segments.length > levels);
 
-/***/ }),
-/* 916 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+    for (const pattern of patterns) {
+      const section = pattern.sections[0];
+      /**\r
+       * In this case, the pattern has a globstar and we must read all directories unconditionally,\r
+       * but only if the level has reached the end of the first group.\r
+       *\r
+       * fixtures/{a,b}/**\r
+       *  ^ true/false  ^ always true\r
+      */
+
+      if (!pattern.complete && levels > section.length) {
+        return true;
+      }
 
-/* provided dependency */ var console = __webpack_require__(438);
-/* provided dependency */ var process = __webpack_require__(494);
-module.exports = globSync;
-globSync.GlobSync = GlobSync;
+      const match = parts.every((part, index) => {
+        const segment = pattern.segments[index];
+
+        if (segment.dynamic && segment.patternRe.test(part)) {
+          return true;
+        }
 
-var rp = __webpack_require__(911);
+        if (!segment.dynamic && segment.pattern === part) {
+          return true;
+        }
 
-var minimatch = __webpack_require__(862);
+        return false;
+      });
 
-var Minimatch = minimatch.Minimatch;
+      if (match) {
+        return true;
+      }
+    }
 
-var Glob = (__webpack_require__(910).Glob);
+    return false;
+  }
 
-var util = __webpack_require__(439);
+}
 
-var path = __webpack_require__(429);
+exports["default"] = PartialMatcher;
 
-var assert = __webpack_require__(431);
+/***/ }),
+/* 1089 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-var isAbsolute = __webpack_require__(915);
+"use strict";
 
-var common = __webpack_require__(917);
 
-var setopts = common.setopts;
-var ownProp = common.ownProp;
-var childrenIgnored = common.childrenIgnored;
-var isIgnored = common.isIgnored;
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-function globSync(pattern, options) {
-  if (typeof options === 'function' || arguments.length === 3) throw new TypeError('callback provided to sync glob\n' + 'See: https://github.com/isaacs/node-glob/issues/167');
-  return new GlobSync(pattern, options).found;
-}
+const utils = __webpack_require__(1028);
 
-function GlobSync(pattern, options) {
-  if (!pattern) throw new Error('must provide pattern');
-  if (typeof options === 'function' || arguments.length === 3) throw new TypeError('callback provided to sync glob\n' + 'See: https://github.com/isaacs/node-glob/issues/167');
-  if (!(this instanceof GlobSync)) return new GlobSync(pattern, options);
-  setopts(this, pattern, options);
-  if (this.noprocess) return this;
-  var n = this.minimatch.set.length;
-  this.matches = new Array(n);
+class Matcher {
+  constructor(_patterns, _settings, _micromatchOptions) {
+    this._patterns = _patterns;
+    this._settings = _settings;
+    this._micromatchOptions = _micromatchOptions;
+    this._storage = [];
 
-  for (var i = 0; i < n; i++) {
-    this._process(this.minimatch.set[i], i, false);
+    this._fillStorage();
   }
 
-  this._finish();
-}
+  _fillStorage() {
+    /**\r
+     * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level).\r
+     * So, before expand patterns with brace expansion into separated patterns.\r
+     */
+    const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns);
 
-GlobSync.prototype._finish = function () {
-  assert(this instanceof GlobSync);
+    for (const pattern of patterns) {
+      const segments = this._getPatternSegments(pattern);
 
-  if (this.realpath) {
-    var self = this;
-    this.matches.forEach(function (matchset, index) {
-      var set = self.matches[index] = Object.create(null);
+      const sections = this._splitSegmentsIntoSections(segments);
 
-      for (var p in matchset) {
-        try {
-          p = self._makeAbs(p);
-          var real = rp.realpathSync(p, self.realpathCache);
-          set[real] = true;
-        } catch (er) {
-          if (er.syscall === 'stat') set[self._makeAbs(p)] = true;else throw er;
-        }
+      this._storage.push({
+        complete: sections.length <= 1,
+        pattern,
+        segments,
+        sections
+      });
+    }
+  }
+
+  _getPatternSegments(pattern) {
+    const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);
+    return parts.map(part => {
+      const dynamic = utils.pattern.isDynamicPattern(part, this._settings);
+
+      if (!dynamic) {
+        return {
+          dynamic: false,
+          pattern: part
+        };
       }
+
+      return {
+        dynamic: true,
+        pattern: part,
+        patternRe: utils.pattern.makeRe(part, this._micromatchOptions)
+      };
     });
   }
 
-  common.finish(this);
-};
+  _splitSegmentsIntoSections(segments) {
+    return utils.array.splitWhen(segments, segment => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));
+  }
 
-GlobSync.prototype._process = function (pattern, index, inGlobStar) {
-  assert(this instanceof GlobSync); // Get the first [n] parts of pattern that are all strings.
+}
 
-  var n = 0;
+exports["default"] = Matcher;
 
-  while (typeof pattern[n] === 'string') {
-    n++;
-  } // now n is the index of the first one that is *not* a string.
-  // See if there's anything else
+/***/ }),
+/* 1090 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
+"use strict";
 
-  var prefix;
 
-  switch (n) {
-    // if not, then this is rather simple
-    case pattern.length:
-      this._processSimple(pattern.join('/'), index);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-      return;
+const utils = __webpack_require__(1028);
 
-    case 0:
-      // pattern *starts* with some non-trivial item.
-      // going to readdir(cwd), but not include the prefix in matches.
-      prefix = null;
-      break;
+class EntryFilter {
+  constructor(_settings, _micromatchOptions) {
+    this._settings = _settings;
+    this._micromatchOptions = _micromatchOptions;
+    this.index = new Map();
+  }
 
-    default:
-      // pattern has some string bits in the front.
-      // whatever it starts with, whether that's 'absolute' like /foo/bar,
-      // or 'relative' like '../baz'
-      prefix = pattern.slice(0, n).join('/');
-      break;
+  getFilter(positive, negative) {
+    const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);
+    const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions);
+    return entry => this._filter(entry, positiveRe, negativeRe);
   }
 
-  var remain = pattern.slice(n); // get the list of entries.
+  _filter(entry, positiveRe, negativeRe) {
+    if (this._settings.unique && this._isDuplicateEntry(entry)) {
+      return false;
+    }
 
-  var read;
-  if (prefix === null) read = '.';else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
-    if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix;
-    read = prefix;
-  } else read = prefix;
+    if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {
+      return false;
+    }
 
-  var abs = this._makeAbs(read); //if ignored, skip processing
+    if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) {
+      return false;
+    }
 
+    const filepath = this._settings.baseNameMatch ? entry.name : entry.path;
+    const isDirectory = entry.dirent.isDirectory();
+    const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(entry.path, negativeRe, isDirectory);
 
-  if (childrenIgnored(this, read)) return;
-  var isGlobStar = remain[0] === minimatch.GLOBSTAR;
-  if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar);else this._processReaddir(prefix, read, abs, remain, index, inGlobStar);
-};
+    if (this._settings.unique && isMatched) {
+      this._createIndexRecord(entry);
+    }
 
-GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
-  var entries = this._readdir(abs, inGlobStar); // if the abs isn't a dir, then nothing can match!
+    return isMatched;
+  }
 
+  _isDuplicateEntry(entry) {
+    return this.index.has(entry.path);
+  }
 
-  if (!entries) return; // It will only match dot entries if it starts with a dot, or if
-  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
+  _createIndexRecord(entry) {
+    this.index.set(entry.path, undefined);
+  }
 
-  var pn = remain[0];
-  var negate = !!this.minimatch.negate;
-  var rawGlob = pn._glob;
-  var dotOk = this.dot || rawGlob.charAt(0) === '.';
-  var matchedEntries = [];
+  _onlyFileFilter(entry) {
+    return this._settings.onlyFiles && !entry.dirent.isFile();
+  }
 
-  for (var i = 0; i < entries.length; i++) {
-    var e = entries[i];
+  _onlyDirectoryFilter(entry) {
+    return this._settings.onlyDirectories && !entry.dirent.isDirectory();
+  }
 
-    if (e.charAt(0) !== '.' || dotOk) {
-      var m;
+  _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {
+    if (!this._settings.absolute) {
+      return false;
+    }
 
-      if (negate && !prefix) {
-        m = !e.match(pn);
-      } else {
-        m = e.match(pn);
-      }
+    const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);
+    return utils.pattern.matchAny(fullpath, patternsRe);
+  }
 
-      if (m) matchedEntries.push(e);
+  _isMatchToPatterns(entryPath, patternsRe, isDirectory) {
+    const filepath = utils.path.removeLeadingDotSegment(entryPath); // Trying to match files and directories by patterns.
+
+    const isMatched = utils.pattern.matchAny(filepath, patternsRe); // A pattern with a trailling slash can be used for directory matching.
+    // To apply such pattern, we need to add a tralling slash to the path.
+
+    if (!isMatched && isDirectory) {
+      return utils.pattern.matchAny(filepath + '/', patternsRe);
     }
+
+    return isMatched;
   }
 
-  var len = matchedEntries.length; // If there are no matched entries, then nothing matches.
+}
 
-  if (len === 0) return; // if this is the last remaining pattern bit, then no need for
-  // an additional stat *unless* the user has specified mark or
-  // stat explicitly.  We know they exist, since readdir returned
-  // them.
+exports["default"] = EntryFilter;
 
-  if (remain.length === 1 && !this.mark && !this.stat) {
-    if (!this.matches[index]) this.matches[index] = Object.create(null);
+/***/ }),
+/* 1091 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-    for (var i = 0; i < len; i++) {
-      var e = matchedEntries[i];
+"use strict";
 
-      if (prefix) {
-        if (prefix.slice(-1) !== '/') e = prefix + '/' + e;else e = prefix + e;
-      }
 
-      if (e.charAt(0) === '/' && !this.nomount) {
-        e = path.join(this.root, e);
-      }
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-      this._emitMatch(index, e);
-    } // This was the last one, and no stats were needed
+const utils = __webpack_require__(1028);
 
+class ErrorFilter {
+  constructor(_settings) {
+    this._settings = _settings;
+  }
 
-    return;
-  } // now test all matched entries as stand-ins for that part
-  // of the pattern.
+  getFilter() {
+    return error => this._isNonFatalError(error);
+  }
+
+  _isNonFatalError(error) {
+    return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;
+  }
 
+}
 
-  remain.shift();
+exports["default"] = ErrorFilter;
 
-  for (var i = 0; i < len; i++) {
-    var e = matchedEntries[i];
-    var newPattern;
-    if (prefix) newPattern = [prefix, e];else newPattern = [e];
+/***/ }),
+/* 1092 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-    this._process(newPattern.concat(remain), index, inGlobStar);
-  }
-};
+"use strict";
 
-GlobSync.prototype._emitMatch = function (index, e) {
-  if (isIgnored(this, e)) return;
 
-  var abs = this._makeAbs(e);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-  if (this.mark) e = this._mark(e);
+const utils = __webpack_require__(1028);
 
-  if (this.absolute) {
-    e = abs;
+class EntryTransformer {
+  constructor(_settings) {
+    this._settings = _settings;
   }
 
-  if (this.matches[index][e]) return;
-
-  if (this.nodir) {
-    var c = this.cache[abs];
-    if (c === 'DIR' || Array.isArray(c)) return;
+  getTransformer() {
+    return entry => this._transform(entry);
   }
 
-  this.matches[index][e] = true;
-  if (this.stat) this._stat(e);
-};
+  _transform(entry) {
+    let filepath = entry.path;
 
-GlobSync.prototype._readdirInGlobStar = function (abs) {
-  // follow all symlinked directories forever
-  // just proceed as if this is a non-globstar situation
-  if (this.follow) return this._readdir(abs, false);
-  var entries;
-  var lstat;
-  var stat;
+    if (this._settings.absolute) {
+      filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);
+      filepath = utils.path.unixify(filepath);
+    }
 
-  try {
-    lstat = this.fs.lstatSync(abs);
-  } catch (er) {
-    if (er.code === 'ENOENT') {
-      // lstat failed, doesn't exist
-      return null;
+    if (this._settings.markDirectories && entry.dirent.isDirectory()) {
+      filepath += '/';
     }
-  }
 
-  var isSym = lstat && lstat.isSymbolicLink();
-  this.symlinks[abs] = isSym; // If it's not a symlink or a dir, then it's definitely a regular file.
-  // don't bother doing a readdir in that case.
+    if (!this._settings.objectMode) {
+      return filepath;
+    }
 
-  if (!isSym && lstat && !lstat.isDirectory()) this.cache[abs] = 'FILE';else entries = this._readdir(abs, false);
-  return entries;
-};
+    return Object.assign(Object.assign({}, entry), {
+      path: filepath
+    });
+  }
 
-GlobSync.prototype._readdir = function (abs, inGlobStar) {
-  var entries;
-  if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs);
+}
 
-  if (ownProp(this.cache, abs)) {
-    var c = this.cache[abs];
-    if (!c || c === 'FILE') return null;
-    if (Array.isArray(c)) return c;
-  }
+exports["default"] = EntryTransformer;
 
-  try {
-    return this._readdirEntries(abs, this.fs.readdirSync(abs));
-  } catch (er) {
-    this._readdirError(abs, er);
+/***/ }),
+/* 1093 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-    return null;
-  }
-};
+"use strict";
 
-GlobSync.prototype._readdirEntries = function (abs, entries) {
-  // if we haven't asked to stat everything, then just
-  // assume that everything in there exists, so we can avoid
-  // having to stat it a second time.
-  if (!this.mark && !this.stat) {
-    for (var i = 0; i < entries.length; i++) {
-      var e = entries[i];
-      if (abs === '/') e = abs + e;else e = abs + '/' + e;
-      this.cache[e] = true;
-    }
-  }
 
-  this.cache[abs] = entries; // mark and cache dir-ness
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-  return entries;
-};
+const stream_1 = __webpack_require__(1025);
 
-GlobSync.prototype._readdirError = function (f, er) {
-  // handle errors, and cache the information
-  switch (er.code) {
-    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
+const stream_2 = __webpack_require__(1085);
 
-    case 'ENOTDIR':
-      // totally normal. means it *does* exist.
-      var abs = this._makeAbs(f);
+const provider_1 = __webpack_require__(1086);
 
-      this.cache[abs] = 'FILE';
+class ProviderStream extends provider_1.default {
+  constructor() {
+    super(...arguments);
+    this._reader = new stream_2.default(this._settings);
+  }
 
-      if (abs === this.cwdAbs) {
-        var error = new Error(er.code + ' invalid cwd ' + this.cwd);
-        error.path = this.cwd;
-        error.code = er.code;
-        throw error;
-      }
+  read(task) {
+    const root = this._getRootDirectory(task);
 
-      break;
+    const options = this._getReaderOptions(task);
 
-    case 'ENOENT': // not terribly unusual
+    const source = this.api(root, task, options);
+    const destination = new stream_1.Readable({
+      objectMode: true,
+      read: () => {}
+    });
+    source.once('error', error => destination.emit('error', error)).on('data', entry => destination.emit('data', options.transform(entry))).once('end', () => destination.emit('end'));
+    destination.once('close', () => source.destroy());
+    return destination;
+  }
 
-    case 'ELOOP':
-    case 'ENAMETOOLONG':
-    case 'UNKNOWN':
-      this.cache[this._makeAbs(f)] = false;
-      break;
+  api(root, task, options) {
+    if (task.dynamic) {
+      return this._reader.dynamic(root, options);
+    }
 
-    default:
-      // some unusual error.  Treat as failure.
-      this.cache[this._makeAbs(f)] = false;
-      if (this.strict) throw er;
-      if (!this.silent) console.error('glob error', er);
-      break;
+    return this._reader.static(task.patterns, options);
   }
-};
 
-GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
-  var entries = this._readdir(abs, inGlobStar); // no entries means not a dir, so it can never have matches
-  // foo.txt/** doesn't match foo.txt
+}
 
+exports["default"] = ProviderStream;
 
-  if (!entries) return; // test without the globstar, and with every child both below
-  // and replacing the globstar.
+/***/ }),
+/* 1094 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-  var remainWithoutGlobStar = remain.slice(1);
-  var gspref = prefix ? [prefix] : [];
-  var noGlobStar = gspref.concat(remainWithoutGlobStar); // the noGlobStar pattern exits the inGlobStar state
+"use strict";
 
-  this._process(noGlobStar, index, false);
 
-  var len = entries.length;
-  var isSym = this.symlinks[abs]; // If it's a symlink, and we're in a globstar, then stop
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-  if (isSym && inGlobStar) return;
+const sync_1 = __webpack_require__(1095);
 
-  for (var i = 0; i < len; i++) {
-    var e = entries[i];
-    if (e.charAt(0) === '.' && !this.dot) continue; // these two cases enter the inGlobStar state
+const provider_1 = __webpack_require__(1086);
 
-    var instead = gspref.concat(entries[i], remainWithoutGlobStar);
+class ProviderSync extends provider_1.default {
+  constructor() {
+    super(...arguments);
+    this._reader = new sync_1.default(this._settings);
+  }
 
-    this._process(instead, index, true);
+  read(task) {
+    const root = this._getRootDirectory(task);
 
-    var below = gspref.concat(entries[i], remain);
+    const options = this._getReaderOptions(task);
 
-    this._process(below, index, true);
+    const entries = this.api(root, task, options);
+    return entries.map(options.transform);
   }
-};
 
-GlobSync.prototype._processSimple = function (prefix, index) {
-  // XXX review this.  Shouldn't it be doing the mounting etc
-  // before doing stat?  kinda weird?
-  var exists = this._stat(prefix);
+  api(root, task, options) {
+    if (task.dynamic) {
+      return this._reader.dynamic(root, options);
+    }
 
-  if (!this.matches[index]) this.matches[index] = Object.create(null); // If it doesn't exist, then just mark the lack of results
+    return this._reader.static(task.patterns, options);
+  }
 
-  if (!exists) return;
+}
 
-  if (prefix && isAbsolute(prefix) && !this.nomount) {
-    var trail = /[\/\\]$/.test(prefix);
+exports["default"] = ProviderSync;
 
-    if (prefix.charAt(0) === '/') {
-      prefix = path.join(this.root, prefix);
-    } else {
-      prefix = path.resolve(this.root, prefix);
-      if (trail) prefix += '/';
-    }
-  }
+/***/ }),
+/* 1095 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-  if (process.platform === 'win32') prefix = prefix.replace(/\\/g, '/'); // Mark this as a match
+"use strict";
 
-  this._emitMatch(index, prefix);
-}; // Returns either 'DIR', 'FILE', or false
 
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 
-GlobSync.prototype._stat = function (f) {
-  var abs = this._makeAbs(f);
+const fsStat = __webpack_require__(1062);
 
-  var needDir = f.slice(-1) === '/';
-  if (f.length > this.maxLength) return false;
+const fsWalk = __webpack_require__(1057);
 
-  if (!this.stat && ownProp(this.cache, abs)) {
-    var c = this.cache[abs];
-    if (Array.isArray(c)) c = 'DIR'; // It exists, but maybe not how we need it
+const reader_1 = __webpack_require__(1084);
 
-    if (!needDir || c === 'DIR') return c;
-    if (needDir && c === 'FILE') return false; // otherwise we have to stat, because maybe c=true
-    // if we know it exists, but not what it is.
+class ReaderSync extends reader_1.default {
+  constructor() {
+    super(...arguments);
+    this._walkSync = fsWalk.walkSync;
+    this._statSync = fsStat.statSync;
   }
 
-  var exists;
-  var stat = this.statCache[abs];
+  dynamic(root, options) {
+    return this._walkSync(root, options);
+  }
 
-  if (!stat) {
-    var lstat;
+  static(patterns, options) {
+    const entries = [];
 
-    try {
-      lstat = this.fs.lstatSync(abs);
-    } catch (er) {
-      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
-        this.statCache[abs] = false;
-        return false;
+    for (const pattern of patterns) {
+      const filepath = this._getFullEntryPath(pattern);
+
+      const entry = this._getEntry(filepath, pattern, options);
+
+      if (entry === null || !options.entryFilter(entry)) {
+        continue;
       }
+
+      entries.push(entry);
     }
 
-    if (lstat && lstat.isSymbolicLink()) {
-      try {
-        stat = this.fs.statSync(abs);
-      } catch (er) {
-        stat = lstat;
+    return entries;
+  }
+
+  _getEntry(filepath, pattern, options) {
+    try {
+      const stats = this._getStat(filepath);
+
+      return this._makeEntry(stats, pattern);
+    } catch (error) {
+      if (options.errorFilter(error)) {
+        return null;
       }
-    } else {
-      stat = lstat;
+
+      throw error;
     }
   }
 
-  this.statCache[abs] = stat;
-  var c = true;
-  if (stat) c = stat.isDirectory() ? 'DIR' : 'FILE';
-  this.cache[abs] = this.cache[abs] || c;
-  if (needDir && c === 'FILE') return false;
-  return c;
-};
+  _getStat(filepath) {
+    return this._statSync(filepath, this._fsStatSettings);
+  }
 
-GlobSync.prototype._mark = function (p) {
-  return common.mark(this, p);
-};
+}
 
-GlobSync.prototype._makeAbs = function (f) {
-  return common.makeAbs(this, f);
-};
+exports["default"] = ReaderSync;
 
 /***/ }),
-/* 917 */
+/* 1096 */
 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-/* provided dependency */ var process = __webpack_require__(494);
-exports.setopts = setopts;
-exports.ownProp = ownProp;
-exports.makeAbs = makeAbs;
-exports.finish = finish;
-exports.mark = mark;
-exports.isIgnored = isIgnored;
-exports.childrenIgnored = childrenIgnored;
+"use strict";
 
-function ownProp(obj, field) {
-  return Object.prototype.hasOwnProperty.call(obj, field);
-}
 
-var fs = __webpack_require__(880);
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;
 
-var path = __webpack_require__(429);
+const fs = __webpack_require__(971);
 
-var minimatch = __webpack_require__(862);
+const os = __webpack_require__(982);
+/**\r
+ * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\r
+ * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\r
+ */
 
-var isAbsolute = __webpack_require__(915);
 
-var Minimatch = minimatch.Minimatch;
+const CPU_COUNT = Math.max(os.cpus().length, 1);
+exports.DEFAULT_FILE_SYSTEM_ADAPTER = {
+  lstat: fs.lstat,
+  lstatSync: fs.lstatSync,
+  stat: fs.stat,
+  statSync: fs.statSync,
+  readdir: fs.readdir,
+  readdirSync: fs.readdirSync
+};
 
-function alphasort(a, b) {
-  return a.localeCompare(b, 'en');
-}
+class Settings {
+  constructor() {
+    let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 
-function setupIgnores(self, options) {
-  self.ignore = options.ignore || [];
-  if (!Array.isArray(self.ignore)) self.ignore = [self.ignore];
+    this._options = _options;
+    this.absolute = this._getValue(this._options.absolute, false);
+    this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);
+    this.braceExpansion = this._getValue(this._options.braceExpansion, true);
+    this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);
+    this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);
+    this.cwd = this._getValue(this._options.cwd, process.cwd());
+    this.deep = this._getValue(this._options.deep, Infinity);
+    this.dot = this._getValue(this._options.dot, false);
+    this.extglob = this._getValue(this._options.extglob, true);
+    this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);
+    this.fs = this._getFileSystemMethods(this._options.fs);
+    this.globstar = this._getValue(this._options.globstar, true);
+    this.ignore = this._getValue(this._options.ignore, []);
+    this.markDirectories = this._getValue(this._options.markDirectories, false);
+    this.objectMode = this._getValue(this._options.objectMode, false);
+    this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);
+    this.onlyFiles = this._getValue(this._options.onlyFiles, true);
+    this.stats = this._getValue(this._options.stats, false);
+    this.suppressErrors = this._getValue(this._options.suppressErrors, false);
+    this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);
+    this.unique = this._getValue(this._options.unique, true);
 
-  if (self.ignore.length) {
-    self.ignore = self.ignore.map(ignoreMap);
-  }
-} // ignore patterns are always in dot:true mode.
+    if (this.onlyDirectories) {
+      this.onlyFiles = false;
+    }
 
+    if (this.stats) {
+      this.objectMode = true;
+    }
+  }
 
-function ignoreMap(pattern) {
-  var gmatcher = null;
+  _getValue(option, value) {
+    return option === undefined ? value : option;
+  }
 
-  if (pattern.slice(-3) === '/**') {
-    var gpattern = pattern.replace(/(\/\*\*)+$/, '');
-    gmatcher = new Minimatch(gpattern, {
-      dot: true
-    });
+  _getFileSystemMethods() {
+    let methods = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);
   }
 
-  return {
-    matcher: new Minimatch(pattern, {
-      dot: true
-    }),
-    gmatcher: gmatcher
-  };
 }
 
-function setopts(self, pattern, options) {
-  if (!options) options = {}; // base-matching: just use globstar for that.
+exports["default"] = Settings;
 
-  if (options.matchBase && -1 === pattern.indexOf("/")) {
-    if (options.noglobstar) {
-      throw new Error("base matching requires globstar");
-    }
+/***/ }),
+/* 1097 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-    pattern = "**/" + pattern;
+"use strict";
+
+
+const path = __webpack_require__(501);
+
+const pathType = __webpack_require__(1098);
+
+const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0];
+
+const getPath = (filepath, cwd) => {
+  const pth = filepath[0] === '!' ? filepath.slice(1) : filepath;
+  return path.isAbsolute(pth) ? pth : path.join(cwd, pth);
+};
+
+const addExtensions = (file, extensions) => {
+  if (path.extname(file)) {
+    return `**/${file}`;
   }
 
-  self.silent = !!options.silent;
-  self.pattern = pattern;
-  self.strict = options.strict !== false;
-  self.realpath = !!options.realpath;
-  self.realpathCache = options.realpathCache || Object.create(null);
-  self.follow = !!options.follow;
-  self.dot = !!options.dot;
-  self.mark = !!options.mark;
-  self.nodir = !!options.nodir;
-  if (self.nodir) self.mark = true;
-  self.sync = !!options.sync;
-  self.nounique = !!options.nounique;
-  self.nonull = !!options.nonull;
-  self.nosort = !!options.nosort;
-  self.nocase = !!options.nocase;
-  self.stat = !!options.stat;
-  self.noprocess = !!options.noprocess;
-  self.absolute = !!options.absolute;
-  self.fs = options.fs || fs;
-  self.maxLength = options.maxLength || Infinity;
-  self.cache = options.cache || Object.create(null);
-  self.statCache = options.statCache || Object.create(null);
-  self.symlinks = options.symlinks || Object.create(null);
-  setupIgnores(self, options);
-  self.changedCwd = false;
-  var cwd = process.cwd();
-  if (!ownProp(options, "cwd")) self.cwd = cwd;else {
-    self.cwd = path.resolve(options.cwd);
-    self.changedCwd = self.cwd !== cwd;
+  return `**/${file}.${getExtensions(extensions)}`;
+};
+
+const getGlob = (directory, options) => {
+  if (options.files && !Array.isArray(options.files)) {
+    throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``);
   }
-  self.root = options.root || path.resolve(self.cwd, "/");
-  self.root = path.resolve(self.root);
-  if (process.platform === "win32") self.root = self.root.replace(/\\/g, "/"); // TODO: is an absolute `cwd` supposed to be resolved against `root`?
-  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
 
-  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd);
-  if (process.platform === "win32") self.cwdAbs = self.cwdAbs.replace(/\\/g, "/");
-  self.nomount = !!options.nomount; // disable comments and negation in Minimatch.
-  // Note that they are not supported in Glob itself anyway.
+  if (options.extensions && !Array.isArray(options.extensions)) {
+    throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``);
+  }
 
-  options.nonegate = true;
-  options.nocomment = true;
-  self.minimatch = new Minimatch(pattern, options);
-  self.options = self.minimatch.options;
-}
+  if (options.files && options.extensions) {
+    return options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions)));
+  }
 
-function finish(self) {
-  var nou = self.nounique;
-  var all = nou ? [] : Object.create(null);
+  if (options.files) {
+    return options.files.map(x => path.posix.join(directory, `**/${x}`));
+  }
 
-  for (var i = 0, l = self.matches.length; i < l; i++) {
-    var matches = self.matches[i];
+  if (options.extensions) {
+    return [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)];
+  }
 
-    if (!matches || Object.keys(matches).length === 0) {
-      if (self.nonull) {
-        // do like the shell, and spit out the literal glob
-        var literal = self.minimatch.globSet[i];
-        if (nou) all.push(literal);else all[literal] = true;
-      }
-    } else {
-      // had matches
-      var m = Object.keys(matches);
-      if (nou) all.push.apply(all, m);else m.forEach(function (m) {
-        all[m] = true;
-      });
-    }
+  return [path.posix.join(directory, '**')];
+};
+
+module.exports = async (input, options) => {
+  options = {
+    cwd: process.cwd(),
+    ...options
+  };
+
+  if (typeof options.cwd !== 'string') {
+    throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``);
   }
 
-  if (!nou) all = Object.keys(all);
-  if (!self.nosort) all = all.sort(alphasort); // at *some* point we statted all of these
+  const globs = await Promise.all([].concat(input).map(async x => {
+    const isDirectory = await pathType.isDirectory(getPath(x, options.cwd));
+    return isDirectory ? getGlob(x, options) : x;
+  }));
+  return [].concat.apply([], globs); // eslint-disable-line prefer-spread
+};
 
-  if (self.mark) {
-    for (var i = 0; i < all.length; i++) {
-      all[i] = self._mark(all[i]);
-    }
+module.exports.sync = (input, options) => {
+  options = {
+    cwd: process.cwd(),
+    ...options
+  };
 
-    if (self.nodir) {
-      all = all.filter(function (e) {
-        var notDir = !/\/$/.test(e);
-        var c = self.cache[e] || self.cache[makeAbs(self, e)];
-        if (notDir && c) notDir = c !== 'DIR' && !Array.isArray(c);
-        return notDir;
-      });
-    }
+  if (typeof options.cwd !== 'string') {
+    throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``);
   }
 
-  if (self.ignore.length) all = all.filter(function (m) {
-    return !isIgnored(self, m);
-  });
-  self.found = all;
-}
+  const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x);
+  return [].concat.apply([], globs); // eslint-disable-line prefer-spread
+};
 
-function mark(self, p) {
-  var abs = makeAbs(self, p);
-  var c = self.cache[abs];
-  var m = p;
+/***/ }),
+/* 1098 */
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 
-  if (c) {
-    var isDir = c === 'DIR' || Array.isArray(c);
-    var slash = p.slice(-1) === '/';
-    if (isDir && !slash) m += '/';else if (!isDir && slash) m = m.slice(0, -1);
+"use strict";
 
-    if (m !== p) {
-      var mabs = makeAbs(self, m);
-      self.statCache[mabs] = self.statCache[abs];
-      self.cache[mabs] = self.cache[abs];
-    }
-  }
 
-  return m;
-} // lotta situps...
+const {
+  promisify
+} = __webpack_require__(516);
 
+const fs = __webpack_require__(971);
 
-function makeAbs(self, f) {
-  var abs = f;
+async function isType(fsStatType, statsMethodName, filePath) {
+  if (typeof filePath !== 'string') {
+    throw new TypeError(`Expected a string, got ${typeof filePath}`);
+  }
 
-  if (f.charAt(0) === '/') {
-    abs = path.join(self.root, f);
-  } else if (isAbsolute(f) || f === '') {
-    abs = f;
-  } else if (self.changedCwd) {
-    abs = path.resolve(self.cwd, f);
-  } else {
-    abs = path.resolve(f);
+  try {
+    const stats = await promisify(fs[fsStatType])(filePath);
+    return stats[statsMethodName]();
+  } catch (error) {
+    if (error.code === 'ENOENT') {
+      return false;
+    }
+
+    throw error;
   }
+}
 
-  if (process.platform === 'win32') abs = abs.replace(/\\/g, '/');
-  return abs;
-} // Return true, if pattern ends with globstar '**', for the accompanying parent directory.
-// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
+function isTypeSync(fsStatType, statsMethodName, filePath) {
+  if (typeof filePath !== 'string') {
+    throw new TypeError(`Expected a string, got ${typeof filePath}`);
+  }
 
+  try {
+    return fs[fsStatType](filePath)[statsMethodName]();
+  } catch (error) {
+    if (error.code === 'ENOENT') {
+      return false;
+    }
 
-function isIgnored(self, path) {
-  if (!self.ignore.length) return false;
-  return self.ignore.some(function (item) {
-    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path));
-  });
+    throw error;
+  }
 }
 
-function childrenIgnored(self, path) {
-  if (!self.ignore.length) return false;
-  return self.ignore.some(function (item) {
-    return !!(item.gmatcher && item.gmatcher.match(path));
-  });
-}
+exports.isFile = isType.bind(null, 'stat', 'isFile');
+exports.isDirectory = isType.bind(null, 'stat', 'isDirectory');
+exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');
+exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');
+exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');
+exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');
 
 /***/ }),
-/* 918 */
+/* 1099 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-/* provided dependency */ var process = __webpack_require__(494);
-var wrappy = __webpack_require__(919);
+"use strict";
 
-var reqs = Object.create(null);
 
-var once = __webpack_require__(920);
+const {
+  promisify
+} = __webpack_require__(516);
 
-module.exports = wrappy(inflight);
+const fs = __webpack_require__(971);
 
-function inflight(key, cb) {
-  if (reqs[key]) {
-    reqs[key].push(cb);
-    return null;
-  } else {
-    reqs[key] = [cb];
-    return makeres(key);
-  }
-}
+const path = __webpack_require__(501);
 
-function makeres(key) {
-  return once(function RES() {
-    var cbs = reqs[key];
-    var len = cbs.length;
-    var args = slice(arguments); // XXX It's somewhat ambiguous whether a new callback added in this
-    // pass should be queued for later execution if something in the
-    // list of callbacks throws, or if it should just be discarded.
-    // However, it's such an edge case that it hardly matters, and either
-    // choice is likely as surprising as the other.
-    // As it happens, we do go ahead and schedule it for later execution.
+const fastGlob = __webpack_require__(1026);
 
-    try {
-      for (var i = 0; i < len; i++) {
-        cbs[i].apply(null, args);
-      }
-    } finally {
-      if (cbs.length > len) {
-        // added more in the interim.
-        // de-zalgo, just in case, but don't call again.
-        cbs.splice(0, len);
-        process.nextTick(function () {
-          RES.apply(null, args);
-        });
-      } else {
-        delete reqs[key];
-      }
-    }
-  });
-}
+const gitIgnore = __webpack_require__(827);
 
-function slice(args) {
-  var length = args.length;
-  var array = [];
+const slash = __webpack_require__(1100);
 
-  for (var i = 0; i < length; i++) array[i] = args[i];
+const DEFAULT_IGNORE = ['**/node_modules/**', '**/flow-typed/**', '**/coverage/**', '**/.git'];
+const readFileP = promisify(fs.readFile);
 
-  return array;
-}
+const mapGitIgnorePatternTo = base => ignore => {
+  if (ignore.startsWith('!')) {
+    return '!' + path.posix.join(base, ignore.slice(1));
+  }
 
-/***/ }),
-/* 919 */
-/***/ ((module) => {
+  return path.posix.join(base, ignore);
+};
 
-// Returns a wrapper function that returns a wrapped callback
-// The wrapper function should do some stuff, and return a
-// presumably different callback function.
-// This makes sure that own properties are retained, so that
-// decorations and such are not lost along the way.
-module.exports = wrappy;
+const parseGitIgnore = (content, options) => {
+  const base = slash(path.relative(options.cwd, path.dirname(options.fileName)));
+  return content.split(/\r?\n/).filter(Boolean).filter(line => !line.startsWith('#')).map(mapGitIgnorePatternTo(base));
+};
 
-function wrappy(fn, cb) {
-  if (fn && cb) return wrappy(fn)(cb);
-  if (typeof fn !== 'function') throw new TypeError('need wrapper function');
-  Object.keys(fn).forEach(function (k) {
-    wrapper[k] = fn[k];
-  });
-  return wrapper;
+const reduceIgnore = files => {
+  const ignores = gitIgnore();
 
-  function wrapper() {
-    var args = new Array(arguments.length);
+  for (const file of files) {
+    ignores.add(parseGitIgnore(file.content, {
+      cwd: file.cwd,
+      fileName: file.filePath
+    }));
+  }
 
-    for (var i = 0; i < args.length; i++) {
-      args[i] = arguments[i];
-    }
+  return ignores;
+};
 
-    var ret = fn.apply(this, args);
-    var cb = args[args.length - 1];
+const ensureAbsolutePathForCwd = (cwd, p) => {
+  cwd = slash(cwd);
 
-    if (typeof ret === 'function' && ret !== cb) {
-      Object.keys(cb).forEach(function (k) {
-        ret[k] = cb[k];
-      });
+  if (path.isAbsolute(p)) {
+    if (slash(p).startsWith(cwd)) {
+      return p;
     }
 
-    return ret;
+    throw new Error(`Path ${p} is not in cwd ${cwd}`);
   }
-}
 
-/***/ }),
-/* 920 */
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var wrappy = __webpack_require__(919);
+  return path.join(cwd, p);
+};
 
-module.exports = wrappy(once);
-module.exports.strict = wrappy(onceStrict);
-once.proto = once(function () {
-  Object.defineProperty(Function.prototype, 'once', {
-    value: function () {
-      return once(this);
-    },
-    configurable: true
-  });
-  Object.defineProperty(Function.prototype, 'onceStrict', {
-    value: function () {
-      return onceStrict(this);
-    },
-    configurable: true
-  });
-});
+const getIsIgnoredPredecate = (ignores, cwd) => {
+  return p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p.path || p))));
+};
 
-function once(fn) {
-  var f = function () {
-    if (f.called) return f.value;
-    f.called = true;
-    return f.value = fn.apply(this, arguments);
+const getFile = async (file, cwd) => {
+  const filePath = path.join(cwd, file);
+  const content = await readFileP(filePath, 'utf8');
+  return {
+    cwd,
+    filePath,
+    content
   };
+};
 
-  f.called = false;
-  return f;
-}
+const getFileSync = (file, cwd) => {
+  const filePath = path.join(cwd, file);
+  const content = fs.readFileSync(filePath, 'utf8');
+  return {
+    cwd,
+    filePath,
+    content
+  };
+};
 
-function onceStrict(fn) {
-  var f = function () {
-    if (f.called) throw new Error(f.onceError);
-    f.called = true;
-    return f.value = fn.apply(this, arguments);
+const normalizeOptions = function () {
+  let {
+    ignore = [],
+    cwd = slash(process.cwd())
+  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  return {
+    ignore,
+    cwd
   };
+};
 
-  var name = fn.name || 'Function wrapped with `once`';
-  f.onceError = name + " shouldn't be called more than once";
-  f.called = false;
-  return f;
-}
+module.exports = async options => {
+  options = normalizeOptions(options);
+  const paths = await fastGlob('**/.gitignore', {
+    ignore: DEFAULT_IGNORE.concat(options.ignore),
+    cwd: options.cwd
+  });
+  const files = await Promise.all(paths.map(file => getFile(file, options.cwd)));
+  const ignores = reduceIgnore(files);
+  return getIsIgnoredPredecate(ignores, options.cwd);
+};
+
+module.exports.sync = options => {
+  options = normalizeOptions(options);
+  const paths = fastGlob.sync('**/.gitignore', {
+    ignore: DEFAULT_IGNORE.concat(options.ignore),
+    cwd: options.cwd
+  });
+  const files = paths.map(file => getFileSync(file, options.cwd));
+  const ignores = reduceIgnore(files);
+  return getIsIgnoredPredecate(ignores, options.cwd);
+};
 
 /***/ }),
-/* 921 */
+/* 1100 */
 /***/ ((module) => {
 
-module.exports = function (obj, opts) {
-  if (!opts) opts = {};
-  if (typeof opts === 'function') opts = {
-    cmp: opts
-  };
-  var space = opts.space || '';
-  if (typeof space === 'number') space = Array(space + 1).join(' ');
-  var cycles = typeof opts.cycles === 'boolean' ? opts.cycles : false;
-
-  var replacer = opts.replacer || function (key, value) {
-    return value;
-  };
+"use strict";
 
-  var cmp = opts.cmp && function (f) {
-    return function (node) {
-      return function (a, b) {
-        var aobj = {
-          key: a,
-          value: node[a]
-        };
-        var bobj = {
-          key: b,
-          value: node[b]
-        };
-        return f(aobj, bobj);
-      };
-    };
-  }(opts.cmp);
 
-  var seen = [];
-  return function stringify(parent, key, node, level) {
-    var indent = space ? '\n' + new Array(level + 1).join(space) : '';
-    var colonSeparator = space ? ': ' : ':';
+module.exports = path => {
+  const isExtendedLengthPath = /^\\\\\?\\/.test(path);
+  const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex
 
-    if (node && node.toJSON && typeof node.toJSON === 'function') {
-      node = node.toJSON();
-    }
+  if (isExtendedLengthPath || hasNonAscii) {
+    return path;
+  }
 
-    node = replacer.call(parent, key, node);
+  return path.replace(/\\/g, '/');
+};
 
-    if (node === undefined) {
-      return;
-    }
+/***/ }),
+/* 1101 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
-    if (typeof node !== 'object' || node === null) {
-      return JSON.stringify(node);
-    }
+"use strict";
 
-    if (isArray(node)) {
-      var out = [];
 
-      for (var i = 0; i < node.length; i++) {
-        var item = stringify(node, i, node[i], level + 1) || JSON.stringify(null);
-        out.push(indent + space + item);
-      }
+const {
+  Transform
+} = __webpack_require__(1025);
 
-      return '[' + out.join(',') + indent + ']';
-    } else {
-      if (seen.indexOf(node) !== -1) {
-        if (cycles) return JSON.stringify('__cycle__');
-        throw new TypeError('Converting circular structure to JSON');
-      } else seen.push(node);
+class ObjectTransform extends Transform {
+  constructor() {
+    super({
+      objectMode: true
+    });
+  }
 
-      var keys = objectKeys(node).sort(cmp && cmp(node));
-      var out = [];
+}
 
-      for (var i = 0; i < keys.length; i++) {
-        var key = keys[i];
-        var value = stringify(node, key, node[key], level + 1);
-        if (!value) continue;
-        var keyValue = JSON.stringify(key) + colonSeparator + value;
-        ;
-        out.push(indent + space + keyValue);
-      }
+class FilterStream extends ObjectTransform {
+  constructor(filter) {
+    super();
+    this._filter = filter;
+  }
 
-      seen.splice(seen.indexOf(node), 1);
-      return '{' + out.join(',') + indent + '}';
+  _transform(data, encoding, callback) {
+    if (this._filter(data)) {
+      this.push(data);
     }
-  }({
-    '': obj
-  }, '', obj, 0);
-};
 
-var isArray = Array.isArray || function (x) {
-  return {}.toString.call(x) === '[object Array]';
-};
+    callback();
+  }
 
-var objectKeys = Object.keys || function (obj) {
-  var has = Object.prototype.hasOwnProperty || function () {
-    return true;
-  };
+}
 
-  var keys = [];
+class UniqueStream extends ObjectTransform {
+  constructor() {
+    super();
+    this._pushed = new Set();
+  }
 
-  for (var key in obj) {
-    if (has.call(obj, key)) keys.push(key);
+  _transform(data, encoding, callback) {
+    if (!this._pushed.has(data)) {
+      this.push(data);
+
+      this._pushed.add(data);
+    }
+
+    callback();
   }
 
-  return keys;
+}
+
+module.exports = {
+  FilterStream,
+  UniqueStream
 };
 
+/***/ }),
+/* 1102 */
+/***/ ((module) => {
+
+function webpackEmptyAsyncContext(req) {
+       // Here Promise.resolve().then() is used instead of new Promise() to prevent
+       // uncaught exception popping up in devtools
+       return Promise.resolve().then(() => {
+               var e = new Error("Cannot find module '" + req + "'");
+               e.code = 'MODULE_NOT_FOUND';
+               throw e;
+       });
+}
+webpackEmptyAsyncContext.keys = () => ([]);
+webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
+webpackEmptyAsyncContext.id = 1102;
+module.exports = webpackEmptyAsyncContext;
+
 /***/ })
 /******/       ]);
 /************************************************************************/
@@ -134895,9 +154541,9 @@ var objectKeys = Object.keys || function (obj) {
 /******/       // startup
 /******/       // Load entry module and return exports
 /******/       __webpack_require__(0);
-/******/       __webpack_require__(427);
-/******/       __webpack_require__(428);
-/******/       var __webpack_exports__ = __webpack_require__(878);
+/******/       __webpack_require__(499);
+/******/       __webpack_require__(500);
+/******/       var __webpack_exports__ = __webpack_require__(969);
 /******/       
 /******/       return __webpack_exports__;
 /******/ })()